diff --git a/AGENTS.md b/AGENTS.md index 97578a625a..93f40d6b1e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -173,6 +173,28 @@ Concrete examples: - Legacy app storage marker (`WORKFLOW_MARKER_KEY`): `api/oss/src/core/applications/service.py` - Legacy dedup key normalization (`__dedup_id__` <-> `testcase_dedup_id`): `api/oss/src/apis/fastapi/testsets/router.py` +### Alembic migration chains (OSS + EE) + +Migrations live in two separate, parallel chains that must each resolve to a +single head: +- OSS: `api/oss/databases/postgres/migrations/core/versions/` +- EE: `api/ee/databases/postgres/migrations/core/versions/` + +Rules: +- After adding/editing/renaming any migration, verify each chain has exactly ONE + head with the bundled tool: from each `.../migrations/` directory run + `python3 find_head.py core` and confirm the `Heads:` list has a single entry. + Run it for BOTH OSS and EE. +- New migrations chain linearly after the existing head — never fork off an older + node (a fork produces two heads; alembic then can't resolve a linear upgrade). +- Revision ids must be globally unique within a chain. A duplicate id makes + alembic silently skip one file (the migration never runs). +- The EE chain extends past the shared OSS head with EE-only migrations, so an + OSS migration chains after the OSS head while its EE copy chains after the EE + head — same revision id, different `down_revision`. +- `evaluation_runs.data` / `evaluation_queues.data` are `json` columns (not + `jsonb`); cast `data::jsonb` before using jsonb operators / `jsonb_array_elements`. + ### Router and function style conventions Router style: diff --git a/api/ee/databases/postgres/migrations/core/data_migrations/applications_workflow.py b/api/ee/databases/postgres/migrations/core/data_migrations/applications_workflow.py index 0c078ec15c..2f8216603f 100644 --- a/api/ee/databases/postgres/migrations/core/data_migrations/applications_workflow.py +++ b/api/ee/databases/postgres/migrations/core/data_migrations/applications_workflow.py @@ -254,9 +254,11 @@ def check_url_safety(cls, v: Any) -> Any: # noqa: N805 return v from oss.src.dbs.postgres.git.mappings import map_dto_to_dbe - from oss.src.dbs.postgres.shared.engine import engine as db_engine + from oss.src.dbs.postgres.shared.engine import get_transactions_engine from datetime import datetime, timezone + db_engine = get_transactions_engine() + workflow_create = WorkflowCreate( **application_create.model_dump(mode="json"), ) @@ -267,7 +269,7 @@ def check_url_safety(cls, v: Any) -> Any: # noqa: N805 # Avoid slug collision with existing workflow artifacts (e.g. evaluators) artifact_slug = git_artifact_create.slug - async with db_engine.core_session() as session: + async with db_engine.session() as session: existing = ( await session.execute( select(WorkflowArtifactDBE).filter( @@ -298,7 +300,7 @@ def check_url_safety(cls, v: Any) -> Any: # noqa: N805 dto=artifact_dto, ) - async with db_engine.core_session() as session: + async with db_engine.session() as session: session.add(artifact_dbe) await session.commit() @@ -364,7 +366,7 @@ def check_url_safety(cls, v: Any) -> Any: # noqa: N805 dto=variant_dto, ) - async with db_engine.core_session() as session: + async with db_engine.session() as session: session.add(variant_dbe) await session.commit() @@ -415,7 +417,7 @@ def check_url_safety(cls, v: Any) -> Any: # noqa: N805 dto=revision_dto, ) - async with db_engine.core_session() as session: + async with db_engine.session() as session: session.add(revision_dbe) await session.commit() diff --git a/api/ee/databases/postgres/migrations/core/env.py b/api/ee/databases/postgres/migrations/core/env.py index 492b4f9a69..1faed28fe5 100644 --- a/api/ee/databases/postgres/migrations/core/env.py +++ b/api/ee/databases/postgres/migrations/core/env.py @@ -6,7 +6,7 @@ from alembic import context -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.utils.env import env from oss.src.dbs.postgres.shared.base import Base # Side-effect imports: register SQLAlchemy models with Base.metadata @@ -29,7 +29,7 @@ # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config -config.set_main_option("sqlalchemy.url", engine.postgres_uri_core) # type: ignore +config.set_main_option("sqlalchemy.url", env.postgres.uri_core) # Interpret the config file for Python logging. diff --git a/api/ee/databases/postgres/migrations/core/versions/a1d2e3f4a5b6_add_default_evaluation_queues.py b/api/ee/databases/postgres/migrations/core/versions/a1d2e3f4a5b6_add_default_evaluation_queues.py new file mode 100644 index 0000000000..202db1a3e3 --- /dev/null +++ b/api/ee/databases/postgres/migrations/core/versions/a1d2e3f4a5b6_add_default_evaluation_queues.py @@ -0,0 +1,38 @@ +"""add default evaluation queues + +Revision ID: a1d2e3f4a5b6 +Revises: b2c3d4e5f7a8 +Create Date: 2026-05-15 00:00:00 + +Previously shared revision id `a1b2c3d4e5f6` with +`drop_corrupted_metrics_for_some_runs`, so alembic skipped it and the index +below never ran. Renamed to `a1d2e3f4a5b6`. The EE chain extends past the shared +OSS head `e6f7a8b9c0d1` with EE-only migrations +(`9d3e8f0a1b2c -> a1b2c3d4e5f7 -> b2c3d4e5f7a8`), so this EE copy chains after +`b2c3d4e5f7a8` while the OSS copy chains after `e6f7a8b9c0d1`. + +The partial unique index is scoped to ACTIVE default queues (`deleted_at IS +NULL`) so a default can be archived then recreated/unarchived by reconcile. +""" + +from typing import Sequence, Union + +from alembic import op + +revision: str = "a1d2e3f4a5b6" +down_revision: Union[str, None] = "b2c3d4e5f7a8" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.execute("DROP INDEX IF EXISTS ux_evaluation_queues_default_per_run") + op.execute(""" + CREATE UNIQUE INDEX ux_evaluation_queues_default_per_run + ON evaluation_queues (project_id, run_id) + WHERE (flags ->> 'is_default')::boolean = true AND deleted_at IS NULL + """) + + +def downgrade() -> None: + op.execute("DROP INDEX IF EXISTS ux_evaluation_queues_default_per_run") diff --git a/api/ee/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py b/api/ee/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py new file mode 100644 index 0000000000..5605f57093 --- /dev/null +++ b/api/ee/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py @@ -0,0 +1,145 @@ +"""backfill default evaluation queues + +Revision ID: a2b3c4d5e6f8 +Revises: a1d2e3f4a5b6 +Create Date: 2026-05-15 00:10:00 + +Backfills source-family flags (`has_traces` / `has_testcases` / `has_queries` / +`has_testsets`) to match the runtime derivation rule, then mass-creates default +queues per the runtime policy and recomputes `is_queue`. The query/testset +recompute keys on exact reference-key presence, not a substring match. +""" + +from typing import Sequence, Union + +from alembic import op + +revision: str = "a2b3c4d5e6f8" +down_revision: Union[str, None] = "a1d2e3f4a5b6" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # Backfill source-family flags to match the runtime derivation rule in + # dbs/postgres/evaluations/utils.py. `data` is a `json` column, so cast to + # jsonb before navigating. Direct sources (`has_traces`/`has_testcases`) come + # from the exact step key on a reference-less input; reference-backed sources + # (`has_queries`/`has_testsets`) from exact-key presence (JSONB `?`), not a + # substring match that would misfire on `query_anchor` / `testset_metadata`. + op.execute(""" + UPDATE evaluation_runs + SET flags = COALESCE(flags, '{}'::jsonb) + || jsonb_build_object( + 'has_traces', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) = '{}'::jsonb + AND lower(COALESCE(step ->> 'key', '')) IN ('traces', 'query-direct') + ), + 'has_testcases', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) = '{}'::jsonb + AND lower(COALESCE(step ->> 'key', '')) IN ('testcases', 'testset-direct') + ), + 'has_queries', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) ? 'query_revision' + ), + 'has_testsets', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) ? 'testset_revision' + ) + ) + """) + + # Mass-create default queues, mirroring the runtime create policy in + # EvaluationsService._reconcile_default_queue: a default queue should exist + # only for runs that should have one. The runtime predicate is + # `EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS or has_human`, with the env toggle + # currently hardcoded False, so the backfill condition is `has_human = true`. + # Existing default queues, active or archived, are preserved and block + # duplicates. The created queue carries the run's own status instead of a + # hardcoded 'running', so closed/successful runs are not misrepresented. + op.execute(""" + INSERT INTO evaluation_queues ( + project_id, + id, + created_at, + created_by_id, + flags, + data, + status, + run_id + ) + SELECT + r.project_id, + gen_random_uuid(), + CURRENT_TIMESTAMP, + r.created_by_id, + jsonb_build_object('is_default', true, 'is_sequential', false), + '{}'::json, + COALESCE(r.status, 'running'), + r.id + FROM evaluation_runs r + WHERE COALESCE((r.flags ->> 'has_human')::boolean, false) = true + AND NOT EXISTS ( + SELECT 1 + FROM evaluation_queues q + WHERE q.project_id = r.project_id + AND q.run_id = r.id + AND (q.flags ->> 'is_default')::boolean = true + ) + """) + + # Reconcile the other direction: runs that should NOT have a default queue + # (has_human = false under the current policy) but carry a stale active + # default queue get that queue archived, matching the runtime archive branch + # in _reconcile_default_queue. This keeps the fleet consistent immediately + # instead of waiting for the first per-run edit to reconcile. + op.execute(""" + UPDATE evaluation_queues q + SET deleted_at = CURRENT_TIMESTAMP, + deleted_by_id = r.created_by_id + FROM evaluation_runs r + WHERE q.project_id = r.project_id + AND q.run_id = r.id + AND (q.flags ->> 'is_default')::boolean = true + AND q.deleted_at IS NULL + AND COALESCE((r.flags ->> 'has_human')::boolean, false) = false + """) + + # Recompute simple-queue eligibility under the new meaning. An already + # existing active default queue is as valid as one inserted above. + op.execute(""" + UPDATE evaluation_runs r + SET flags = COALESCE(r.flags, '{}'::jsonb) + || jsonb_build_object( + 'is_queue', + COALESCE((r.flags ->> 'has_human')::boolean, false) + AND EXISTS ( + SELECT 1 + FROM evaluation_queues q + WHERE q.project_id = r.project_id + AND q.run_id = r.id + AND (q.flags ->> 'is_default')::boolean = true + AND q.deleted_at IS NULL + ) + ) + """) + + +def downgrade() -> None: + # Keep generated queues/results intact on downgrade. Remove only the newly + # inferred flags; old is_queue semantics cannot be reconstructed safely. + op.execute(""" + UPDATE evaluation_runs + SET flags = COALESCE(flags, '{}'::jsonb) - 'has_traces' - 'has_testcases' + """) diff --git a/api/ee/databases/postgres/migrations/tracing/env.py b/api/ee/databases/postgres/migrations/tracing/env.py index 2dadd6892e..83ae21ab6b 100644 --- a/api/ee/databases/postgres/migrations/tracing/env.py +++ b/api/ee/databases/postgres/migrations/tracing/env.py @@ -7,7 +7,7 @@ from alembic import context -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.utils.env import env from oss.src.dbs.postgres.shared.base import Base # Side-effect import: register SQLAlchemy model with Base.metadata @@ -19,7 +19,7 @@ # this is the Alembic Config object, which provides # access to the values within the .ini file in use. config = context.config -config.set_main_option("sqlalchemy.url", engine.postgres_uri_tracing) # type: ignore +config.set_main_option("sqlalchemy.url", env.postgres.uri_tracing) # Interpret the config file for Python logging. diff --git a/api/ee/src/apis/fastapi/access/router.py b/api/ee/src/apis/fastapi/access/router.py index 0eefe50d8a..1ce73e467f 100644 --- a/api/ee/src/apis/fastapi/access/router.py +++ b/api/ee/src/apis/fastapi/access/router.py @@ -4,8 +4,8 @@ from oss.src.utils.exceptions import intercept_exceptions -from ee.src.core.entitlements.types import SCOPES, Tracker -from ee.src.core.entitlements.controls import ( +from ee.src.core.access.entitlements.types import SCOPES, Tracker +from ee.src.core.access.controls import ( get_plans, get_plan_description, get_roles, @@ -70,6 +70,6 @@ async def fetch_roles(self) -> Dict[str, List[Dict[str, Any]]]: verbatim from access-controls, including the `"*"` wildcard for `owner` — callers that need to render the full permission list should expand the wildcard themselves (see - `ee.src.services.converters._expand_permissions`). + `ee.src.services.db_manager_ee._expand_permissions`). """ return {scope: list(get_roles(scope)) for scope in SCOPES} diff --git a/api/ee/src/apis/fastapi/billing/router.py b/api/ee/src/apis/fastapi/billing/router.py index 08eb32f632..57e44c9218 100644 --- a/api/ee/src/apis/fastapi/billing/router.py +++ b/api/ee/src/apis/fastapi/billing/router.py @@ -14,7 +14,7 @@ from oss.src.utils.caching import acquire_lock, release_lock, renew_lock from oss.src.utils.env import env -from ee.src.utils.entitlements import period_from, scope_from +from ee.src.core.access.entitlements.service import period_from, scope_from from ee.src.core.meters.types import Meters, MeterPeriod from oss.src.utils.context import get_auth_scope @@ -24,10 +24,10 @@ ) from ee.src.services import db_manager_ee -from ee.src.utils.permissions import check_action_access -from ee.src.models.shared_models import Permission -from ee.src.core.entitlements.types import Tracker, Quota, Period, Scope -from ee.src.core.entitlements.controls import get_plan_entitlements, get_plans +from ee.src.core.access.permissions.service import check_action_access +from ee.src.core.access.permissions.types import Permission +from ee.src.core.access.entitlements.types import Tracker, Quota, Period, Scope +from ee.src.core.access.controls import get_plan_entitlements, get_plans from ee.src.core.subscriptions.settings import ( get_catalog, get_pricing, diff --git a/api/ee/src/apis/fastapi/organizations/router.py b/api/ee/src/apis/fastapi/organizations/router.py index 0315f83cf0..773a99d989 100644 --- a/api/ee/src/apis/fastapi/organizations/router.py +++ b/api/ee/src/apis/fastapi/organizations/router.py @@ -4,8 +4,8 @@ from fastapi import APIRouter, Request, HTTPException from fastapi.responses import JSONResponse, Response -from ee.src.utils.permissions import check_user_org_access -from ee.src.utils.entitlements import ( +from ee.src.core.access.permissions.service import check_user_org_access +from ee.src.core.access.entitlements.service import ( check_entitlements, NOT_ENTITLED_RESPONSE, Tracker, @@ -13,7 +13,7 @@ ) from ee.src.services import db_manager_ee -from ee.src.services.selectors import get_user_org_and_workspace_id +from ee.src.services.db_manager_ee import get_user_org_and_workspace_id from ee.src.services.organization_service import ( OrganizationDomainsService, OrganizationProvidersService, diff --git a/api/ee/src/core/entitlements/__init__.py b/api/ee/src/core/access/__init__.py similarity index 100% rename from api/ee/src/core/entitlements/__init__.py rename to api/ee/src/core/access/__init__.py diff --git a/api/ee/src/core/access/controls.py b/api/ee/src/core/access/controls.py new file mode 100644 index 0000000000..5389c826aa --- /dev/null +++ b/api/ee/src/core/access/controls.py @@ -0,0 +1,144 @@ +"""Access controls: the combined effective plan + role surface. + +This is the single runtime source of truth and the composition root for access +controls. It builds — once, at import time — the effective state from the two +domain builders: + +- plans/entitlements: `ee.src.core.access.entitlements.controls.build_plan_controls` +- roles/permissions: `ee.src.core.access.permissions.controls.build_role_controls` + +and exposes the public `get_plan*` / `get_role*` accessors plus a stable +`controls_hash`. The domain `controls.py` modules are pure builders/parsers with +no module-level state; this module owns the singleton. + +Code defaults live in the domain `types.py` modules; env overrides come from +`AGENTA_ACCESS_PLANS`, `AGENTA_ACCESS_ROLES`, `AGENTA_ACCESS_ROLES_OVERLAY`, and +`AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY` (raw JSON exposed via `env.access_controls`). +""" + +import hashlib +from json import dumps +from typing import Any, Dict, List, Optional + +from oss.src.utils.logging import get_module_logger + +from ee.src.core.access.entitlements.types import SCOPES, Tracker +from ee.src.core.access.entitlements.controls import build_plan_controls +from ee.src.core.access.permissions.controls import build_role_controls + + +log = get_module_logger(__name__) + + +# --------------------------------------------------------------------------- +# Effective controls (built once at import time) +# --------------------------------------------------------------------------- + + +def _build_controls() -> tuple[ + Dict[str, Dict[Tracker, Any]], + Dict[str, str], + Dict[str, List[Dict[str, Any]]], + str, +]: + plans, descriptions, plan_source = build_plan_controls() + roles, role_source = build_role_controls() + + payload = dumps( + { + "plans": sorted(plans.keys()), + "descriptions": descriptions, + "roles": {scope: [r["role"] for r in roles[scope]] for scope in SCOPES}, + }, + sort_keys=True, + default=str, + ) + controls_hash = hashlib.sha256(payload.encode()).hexdigest()[:12] + + log.info( + "[access-controls] %s %s hash=%s", + plan_source, + role_source, + controls_hash, + ) + + return plans, descriptions, roles, controls_hash + + +_PLANS, _PLAN_DESCRIPTIONS, _ROLES, _CONTROLS_HASH = _build_controls() + + +# --------------------------------------------------------------------------- +# Public accessors — plans +# --------------------------------------------------------------------------- + + +def get_plans() -> Dict[str, Dict[Tracker, Any]]: + """Return the effective plan map (slug -> entitlement controls).""" + return _PLANS + + +def get_plan(slug: Optional[str]) -> Optional[Dict[Tracker, Any]]: + """Return the entitlement controls for a plan slug, or None if missing.""" + if not slug: + return None + return _PLANS.get(slug) + + +def get_plan_entitlements(slug: Optional[str]) -> Optional[Dict[Tracker, Any]]: + """Alias for `get_plan`. Kept distinct for readability at call sites.""" + if not slug: + return None + return _PLANS.get(slug) + + +def get_plan_description(slug: Optional[str]) -> Optional[str]: + """Return the operator-facing description for a plan, if any.""" + if not slug: + return None + return _PLAN_DESCRIPTIONS.get(slug) + + +# --------------------------------------------------------------------------- +# Public accessors — roles +# --------------------------------------------------------------------------- + + +def get_roles(scope: str) -> List[Dict[str, Any]]: + """Return the effective role catalog for a scope.""" + if scope not in SCOPES: + return [] + return _ROLES[scope] + + +def get_role(scope: str, slug: str) -> Optional[Dict[str, Any]]: + """Return a single role entry within a scope.""" + for entry in get_roles(scope): + if entry["role"] == slug: + return entry + return None + + +def get_role_permissions(scope: str, slug: str) -> List[str]: + """Return the permission slugs for a role within a scope.""" + role = get_role(scope, slug) + if not role: + return [] + return list(role["permissions"]) + + +def get_role_description(scope: str, slug: str) -> Optional[str]: + role = get_role(scope, slug) + if not role: + return None + return role.get("description") + + +# --------------------------------------------------------------------------- +# Utility +# --------------------------------------------------------------------------- + + +def get_controls_hash() -> str: + """Stable short hash of the effective controls; useful in logs.""" + return _CONTROLS_HASH diff --git a/sdks/python/oss/tests/pytest/integration/.gitkeep b/api/ee/src/core/access/entitlements/__init__.py similarity index 100% rename from sdks/python/oss/tests/pytest/integration/.gitkeep rename to api/ee/src/core/access/entitlements/__init__.py diff --git a/api/ee/src/core/access/entitlements/controls.py b/api/ee/src/core/access/entitlements/controls.py new file mode 100644 index 0000000000..58e6954148 --- /dev/null +++ b/api/ee/src/core/access/entitlements/controls.py @@ -0,0 +1,355 @@ +"""Plan/entitlement controls: pure builders + parsers (no singleton). + +Builds the effective plan map (slug -> entitlement controls: flags, counters, +gauges, throttles) and plan descriptions from code defaults or env overrides +(`AGENTA_ACCESS_PLANS`, `AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY`). + +This module holds no module-level state and no public accessors. The shared +singleton + `get_plan*` accessors live in `ee.src.core.access.controls`, which +calls `build_plan_controls()` once at import time. +""" + +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, ConfigDict, ValidationError + +from oss.src.utils.env import env + +from ee.src.core.access.entitlements.types import ( + Category, + Counter, + DEFAULT_ENTITLEMENTS, + DefaultPlan, + Flag, + Gauge, + Quota, + Throttle, + Tracker, +) + + +# --------------------------------------------------------------------------- +# Override schemas +# --------------------------------------------------------------------------- + + +class _PlanOverride(BaseModel): + description: Optional[str] = None + flags: Optional[Dict[str, bool]] = None + counters: Optional[Dict[str, Quota]] = None + gauges: Optional[Dict[str, Quota]] = None + throttles: Optional[List[Throttle]] = None + + model_config = ConfigDict(extra="forbid") + + +# --------------------------------------------------------------------------- +# Plan entitlements + descriptions +# --------------------------------------------------------------------------- + +# Effective state is a dict[plan_slug, plan_entry] where plan_entry has the same +# shape as DEFAULT_ENTITLEMENTS values (Tracker -> mapping) plus an optional +# "description" key in the top-level plan entry's own description map. + +_DEFAULT_PLAN_DESCRIPTIONS: Dict[str, str] = {} + + +def _default_plans() -> Dict[str, Dict[Tracker, Any]]: + # Keys in DEFAULT_ENTITLEMENTS are `DefaultPlan` (str, Enum) members. + # Coerce to plain strings so the runtime plan map is uniformly keyed by slug. + return {str(plan.value): entry for plan, entry in DEFAULT_ENTITLEMENTS.items()} + + +def _validate_flag_key(key: str) -> Flag: + try: + return Flag(key) + except ValueError as e: + raise ValueError(f"Unknown flag '{key}'") from e + + +def _validate_counter_key(key: str) -> Counter: + try: + return Counter(key) + except ValueError as e: + raise ValueError(f"Unknown counter '{key}'") from e + + +def _validate_gauge_key(key: str) -> Gauge: + try: + return Gauge(key) + except ValueError as e: + raise ValueError(f"Unknown gauge '{key}'") from e + + +def _parse_plans_override( + decoded: Any, +) -> tuple[Dict[str, Dict[Tracker, Any]], Dict[str, str]]: + if not isinstance(decoded, dict) or not decoded: + raise ValueError("AGENTA_ACCESS_PLANS must be a non-empty JSON object") + + plans: Dict[str, Dict[Tracker, Any]] = {} + descriptions: Dict[str, str] = {} + + for slug, payload in decoded.items(): + if not slug or not isinstance(slug, str): + raise ValueError(f"Invalid plan slug '{slug}' in AGENTA_ACCESS_PLANS") + + try: + override = _PlanOverride.model_validate(payload) + except ValidationError as e: + raise ValueError( + f"Invalid plan override for '{slug}' in AGENTA_ACCESS_PLANS: {e}" + ) from e + + plan_entry: Dict[Tracker, Any] = {} + + if override.flags is not None: + plan_entry[Tracker.FLAGS] = { + _validate_flag_key(k): bool(v) for k, v in override.flags.items() + } + + if override.counters is not None: + plan_entry[Tracker.COUNTERS] = { + _validate_counter_key(k): v for k, v in override.counters.items() + } + + if override.gauges is not None: + plan_entry[Tracker.GAUGES] = { + _validate_gauge_key(k): v for k, v in override.gauges.items() + } + + if override.throttles is not None: + plan_entry[Tracker.THROTTLES] = list(override.throttles) + + # Plans with only a description are allowed — they represent custom / + # display-only plans (e.g. self-hosted Enterprise) that don't enforce + # quotas server-side. Downstream consumers must handle the empty + # entitlement map gracefully (e.g. `fetch_usage` returns no rows). + plans[slug] = plan_entry + + if override.description: + descriptions[slug] = override.description + + return plans, descriptions + + +# --------------------------------------------------------------------------- +# Default-plan overlay +# --------------------------------------------------------------------------- +# +# `AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY` lets self-hosted operators tweak individual +# entitlement values on the default plan without restating the entire plan in +# `AGENTA_ACCESS_PLANS`. Common cases: bumping trace retention, raising the +# standard-throttle rate, flipping a flag. +# +# Shape mirrors a plan entry (same keys, same units) with one divergence: +# `throttles` is a map keyed by category slug instead of a list, so per- +# category patches don't require restating the whole list. Throttles that +# combine multiple categories or use `endpoints` cannot be addressed via the +# overlay — operators who need that should use `AGENTA_ACCESS_PLANS`. + + +class _ThrottleOverlay(BaseModel): + """Partial throttle update keyed by a single category. + + Every field is optional; only fields explicitly set on the overlay + replace the matching field on the existing throttle entry. + """ + + bucket: Optional[Dict[str, Any]] = None + mode: Optional[str] = None + + model_config = ConfigDict(extra="forbid") + + +class _DefaultPlanOverlay(BaseModel): + """Partial overlay for the default plan. Same shape as `_PlanOverride` + except `throttles` is a map keyed by category slug.""" + + description: Optional[str] = None + flags: Optional[Dict[str, bool]] = None + counters: Optional[Dict[str, Dict[str, Any]]] = None + gauges: Optional[Dict[str, Dict[str, Any]]] = None + throttles: Optional[Dict[str, _ThrottleOverlay]] = None + + model_config = ConfigDict(extra="forbid") + + +def _merge_quota(existing: Optional[Quota], patch: Dict[str, Any]) -> Quota: + """Patch a Quota field-by-field, preserving fields the overlay didn't set.""" + if existing is None: + # Patching an entitlement key that isn't defined on the base plan: + # treat the overlay as the full definition. + return Quota.model_validate(patch) + merged = existing.model_dump() + merged.update(patch) + return Quota.model_validate(merged) + + +def _merge_throttle(existing: Throttle, patch: _ThrottleOverlay) -> Throttle: + """Patch one throttle entry. `bucket` is field-merged; `mode` replaces.""" + base = existing.model_dump() + if patch.bucket is not None: + bucket = dict(base.get("bucket") or {}) + bucket.update(patch.bucket) + base["bucket"] = bucket + if patch.mode is not None: + base["mode"] = patch.mode + return Throttle.model_validate(base) + + +def _parse_default_plan_overlay(decoded: Any) -> _DefaultPlanOverlay: + if not isinstance(decoded, dict) or not decoded: + raise ValueError( + "AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY must be a non-empty JSON object" + ) + try: + overlay = _DefaultPlanOverlay.model_validate(decoded) + except ValidationError as e: + raise ValueError(f"Invalid AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY: {e}") from e + + # Validate slugs upfront so the error message points at the bad key + # rather than failing inside the merge. + if overlay.flags is not None: + for key in overlay.flags: + _validate_flag_key(key) + if overlay.counters is not None: + for key in overlay.counters: + _validate_counter_key(key) + if overlay.gauges is not None: + for key in overlay.gauges: + _validate_gauge_key(key) + if overlay.throttles is not None: + valid_categories = {c.value for c in Category} + for key in overlay.throttles: + if key not in valid_categories: + raise ValueError( + f"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY.throttles['{key}'] is not a " + f"valid throttle category. Allowed: {sorted(valid_categories)}." + ) + return overlay + + +def _apply_default_plan_overlay( + plans: Dict[str, Dict[Tracker, Any]], + descriptions: Dict[str, str], + overlay: _DefaultPlanOverlay, + default_plan_slug: str, +) -> tuple[Dict[str, Dict[Tracker, Any]], Dict[str, str]]: + """Apply the overlay to the resolved default plan in-place (returning new dicts).""" + if default_plan_slug not in plans: + raise ValueError( + f"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY targets the default plan " + f"'{default_plan_slug}', which is not in the effective plan set " + f"({sorted(plans.keys())}). Add the slug to AGENTA_ACCESS_PLANS or " + "unset AGENTA_DEFAULT_PLAN." + ) + + plans = {slug: dict(entry) for slug, entry in plans.items()} + descriptions = dict(descriptions) + entry = plans[default_plan_slug] + + if overlay.description is not None: + descriptions[default_plan_slug] = overlay.description + + if overlay.flags is not None: + flags = dict(entry.get(Tracker.FLAGS) or {}) + for key, value in overlay.flags.items(): + flags[Flag(key)] = bool(value) + entry[Tracker.FLAGS] = flags + + if overlay.counters is not None: + counters = dict(entry.get(Tracker.COUNTERS) or {}) + for key, patch in overlay.counters.items(): + counter = Counter(key) + counters[counter] = _merge_quota(counters.get(counter), patch) + entry[Tracker.COUNTERS] = counters + + if overlay.gauges is not None: + gauges = dict(entry.get(Tracker.GAUGES) or {}) + for key, patch in overlay.gauges.items(): + gauge = Gauge(key) + gauges[gauge] = _merge_quota(gauges.get(gauge), patch) + entry[Tracker.GAUGES] = gauges + + if overlay.throttles is not None: + existing_throttles = list(entry.get(Tracker.THROTTLES) or []) + + for category_key, patch in overlay.throttles.items(): + category = Category(category_key) + # Find the single-category throttle entry that matches. + target_idx = next( + ( + idx + for idx, t in enumerate(existing_throttles) + if t.categories + and len(t.categories) == 1 + and t.categories[0] == category + ), + None, + ) + if target_idx is None: + raise ValueError( + f"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY.throttles['{category_key}']: " + f"the default plan '{default_plan_slug}' has no single-" + f"category throttle entry for '{category_key}'. Use " + "AGENTA_ACCESS_PLANS to define multi-category or endpoint-" + "keyed throttles." + ) + existing_throttles[target_idx] = _merge_throttle( + existing_throttles[target_idx], patch + ) + entry[Tracker.THROTTLES] = existing_throttles + + plans[default_plan_slug] = entry + return plans, descriptions + + +def _resolve_default_plan_slug(plans: Dict[str, Dict[Tracker, Any]]) -> str: + """Resolve the default plan slug for overlay targeting. + + Mirrors `subscriptions.types.get_default_plan()` without importing it (to + avoid pulling subscription/Stripe code into the access-controls layer). + """ + raw = env.access_controls.default_plan + if raw: + return raw + if env.stripe.enabled: + return DefaultPlan.CLOUD_V0_HOBBY.value + return DefaultPlan.SELF_HOSTED_ENTERPRISE.value + + +# --------------------------------------------------------------------------- +# Build (called once by ee.src.core.access.controls) +# --------------------------------------------------------------------------- + + +def build_plan_controls() -> tuple[Dict[str, Dict[Tracker, Any]], Dict[str, str], str]: + """Build the effective plan map + descriptions from defaults or env overrides. + + Returns ``(plans, descriptions, source_label)`` where ``source_label`` is a + short string for startup logging (e.g. ``"defaults"`` or + ``"env plan_overlay=env→"``). + """ + plans_payload = env.access_controls.plans + plan_overlay_payload = env.access_controls.default_plan_overlay + + if plans_payload is not None: + plans, descriptions = _parse_plans_override(plans_payload) + plans_source = "env" + else: + plans = _default_plans() + descriptions = dict(_DEFAULT_PLAN_DESCRIPTIONS) + plans_source = "defaults" + + plan_overlay_source = "none" + if plan_overlay_payload is not None: + plan_overlay = _parse_default_plan_overlay(plan_overlay_payload) + default_plan_slug = _resolve_default_plan_slug(plans) + plans, descriptions = _apply_default_plan_overlay( + plans, descriptions, plan_overlay, default_plan_slug + ) + plan_overlay_source = f"env→{default_plan_slug}" + + source = f"plans={plans_source} plan_overlay={plan_overlay_source}" + return plans, descriptions, source diff --git a/api/ee/src/utils/entitlements.py b/api/ee/src/core/access/entitlements/service.py similarity index 95% rename from api/ee/src/utils/entitlements.py rename to api/ee/src/core/access/entitlements/service.py index 9b290e4ac6..202f098c6e 100644 --- a/api/ee/src/utils/entitlements.py +++ b/api/ee/src/core/access/entitlements/service.py @@ -8,7 +8,7 @@ from fastapi.responses import JSONResponse from ee.src.core.subscriptions.service import SubscriptionsService -from ee.src.core.entitlements.types import ( +from ee.src.core.access.entitlements.types import ( Tracker, Flag, Counter, @@ -16,7 +16,7 @@ Period, Scope, ) -from ee.src.core.entitlements.controls import get_plan_entitlements +from ee.src.core.access.controls import get_plan_entitlements from ee.src.core.meters.service import MetersService from ee.src.core.meters.types import MeterDTO, MeterScope, MeterPeriod, Meters @@ -86,7 +86,6 @@ def bootstrap_entitlements_services( if subscriptions_service is None: subscriptions_service = SubscriptionsService( subscriptions_dao=SubscriptionsDAO(), - meters_service=meters_service, ) register_entitlements_services( @@ -408,12 +407,6 @@ async def _check_entitlements( check = flags[flag] - if flag.name != "RBAC": - # TODO: remove this line - log.info( - f"[METERS] adjusting: {organization_id} | | {'allow' if check else 'deny '} | {flag.name}" - ) - return check is True, None, None # -------------------------------------------------------------- # @@ -562,17 +555,4 @@ async def _check_entitlements( key=cache_key, ) - # TODO: remove this line - log.info( - f"[METERS] adjusting: {_scope.organization_id} | " - f"{_scope.workspace_id} | " - f"{_scope.project_id} | " - f"{_scope.user_id} | " - f"{(meter.year if meter.year else ' ')}-" - f"{(meter.month if meter.month else ' ')}-" - f"{(meter.day if meter.day else ' ')} | " - f"{'allow' if check else 'deny '} | " - f"{meter.key}: {(meter.value or 0) - (meter.synced or 0)} [{meter.value}]" - ) - return check is True, meter, _ diff --git a/api/ee/src/core/entitlements/types.py b/api/ee/src/core/access/entitlements/types.py similarity index 96% rename from api/ee/src/core/entitlements/types.py rename to api/ee/src/core/access/entitlements/types.py index 39c1eb644b..42adbc953d 100644 --- a/api/ee/src/core/entitlements/types.py +++ b/api/ee/src/core/access/entitlements/types.py @@ -6,7 +6,7 @@ class DefaultPlan(str, Enum): """Code-default plan slugs. - Runtime plan slugs come from `ee.src.core.entitlements.controls.get_plans()` + Runtime plan slugs come from `ee.src.core.access.controls.get_plans()` (env-overridable). This enum is only the default-fallback identifier set, used as keys for `DEFAULT_ENTITLEMENTS` / `DEFAULT_CATALOG` and as fallback in `get_default_plan()` / `get_free_plan()` / `get_trial_plan()`. @@ -21,24 +21,9 @@ class DefaultPlan(str, Enum): SELF_HOSTED_ENTERPRISE = "self_hosted_enterprise" -class DefaultRole(str, Enum): - """Required role slugs per scope. - - `owner` and `viewer` must exist in every scope (organization, workspace, - project) — they are merged in by the access-controls builder regardless of - `AGENTA_ACCESS_ROLES` content, so application code can depend on these - two slugs being valid in any scope. - - Env overrides may customize the permissions of these roles or add - additional roles, but cannot remove them. - """ - - OWNER = "owner" - VIEWER = "viewer" - - # Permission slugs that the OWNER role always implies. `"*"` is the wildcard -# permission recognized by `permissions.py`. +# permission recognized by `permissions.py`. The `RequiredRole` enum itself now +# lives in `ee.src.core.access.permissions.types`. OWNER_PERMISSIONS: list[str] = ["*"] @@ -186,7 +171,7 @@ class Throttle(BaseModel): (Method.POST, "/tracing/spans/analytics"), # LEGACY ], Category.SERVICES_FAST: [ - (Method.ANY, "/permissions/verify"), + (Method.ANY, "/access/permissions/check"), ], Category.SERVICES_SLOW: [ # None defined yet diff --git a/api/ee/src/core/access/permissions/__init__.py b/api/ee/src/core/access/permissions/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/api/ee/src/core/access/permissions/controls.py b/api/ee/src/core/access/permissions/controls.py new file mode 100644 index 0000000000..08e02b636c --- /dev/null +++ b/api/ee/src/core/access/permissions/controls.py @@ -0,0 +1,438 @@ +"""Role/permission controls: pure builders + parsers (no singleton). + +Builds the per-scope role catalogs (organization, workspace, project) and their +role->permission mappings from code defaults or env overrides +(`AGENTA_ACCESS_ROLES`, `AGENTA_ACCESS_ROLES_OVERLAY`). + +This module holds no module-level state and no public accessors. The shared +singleton + `get_role*` accessors live in `ee.src.core.access.controls`, which +calls `build_role_controls()` once at import time. + +Minima contract: every scope MUST expose `owner`, `admin`, and `viewer` with +code-defined permissions. Env overrides may add roles or customize permissions +of non-minima roles, but the minima are always present and their slugs cannot be +re-bound to a different permission set. +""" + +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, ConfigDict, ValidationError + +from oss.src.utils.env import env + +from ee.src.core.access.entitlements.types import OWNER_PERMISSIONS, SCOPES +from ee.src.core.access.permissions.types import ( + Permission, + DefaultRole, + RequiredRole, +) + + +# --------------------------------------------------------------------------- +# Override schemas +# --------------------------------------------------------------------------- + + +class _RoleOverride(BaseModel): + role: str + description: Optional[str] = None + permissions: List[str] + + model_config = ConfigDict(extra="forbid") + + +class _RoleOverlayEntry(BaseModel): + """Partial role update. ``permissions`` and ``description`` are both + optional; whatever is set replaces the matching field on the existing + role entry. To add a new role both fields must be supplied — that + constraint is enforced in :func:`_apply_roles_overlay`. + """ + + description: Optional[str] = None + permissions: Optional[List[str]] = None + + model_config = ConfigDict(extra="forbid") + + +# --------------------------------------------------------------------------- +# Role catalogs (scoped) +# --------------------------------------------------------------------------- + + +def _read_only_permissions() -> List[str]: + """Read-only permission set sourced from the code-default `DefaultRole.VIEWER`. + + Used as the `viewer` minima permissions for the `workspace` and `project` + scopes where permissions are actually enforced. Organization-scope `viewer` + has no permissions (it's just a membership marker today). + """ + return [p.value for p in Permission.default_permissions(DefaultRole.VIEWER)] + + +def _viewer_permissions_for_scope(scope: str) -> List[str]: + """Per-scope code-default permissions for the `viewer` minima role. + + - `organization`: empty — orgs have no permission concept today. + - `workspace` and `project`: the code-default `DefaultRole.VIEWER` read-only set. + """ + if scope == "organization": + return [] + return _read_only_permissions() + + +def _admin_permissions_for_scope(scope: str) -> List[str]: + """Per-scope code-default permissions for the `admin` minima role. + + - `organization`: empty — orgs have no permission concept today. + - `workspace` and `project`: the code-default `DefaultRole.ADMIN` set. + """ + if scope == "organization": + return [] + return [p.value for p in Permission.default_permissions(DefaultRole.ADMIN)] + + +def _minima_for(scope: str) -> List[Dict[str, Any]]: + """Return the required role entries for a scope (owner + admin + viewer). + + Application code relies on these slugs being present in every scope; the + builder synthesizes them up front and re-applies them after any env + overrides so they can never be dropped or relabeled. + + `owner` is always wildcard. The permission sets for `admin` and `viewer` + vary per scope (see `_admin_permissions_for_scope` / + `_viewer_permissions_for_scope`): both are empty at organization scope + (orgs have no permission concept today) and code-default elsewhere. + """ + return [ + { + "role": RequiredRole.OWNER.value, + "description": "Full access (wildcard permissions).", + "permissions": list(OWNER_PERMISSIONS), + }, + { + "role": RequiredRole.ADMIN.value, + "description": ( + "Membership marker (no permissions)." + if scope == "organization" + else DefaultRole.get_description(DefaultRole.ADMIN) + ), + "permissions": _admin_permissions_for_scope(scope), + }, + { + "role": RequiredRole.VIEWER.value, + "description": ( + "Membership marker (no permissions)." + if scope == "organization" + else DefaultRole.get_description(DefaultRole.VIEWER) + ), + "permissions": _viewer_permissions_for_scope(scope), + }, + ] + + +def _default_roles() -> Dict[str, List[Dict[str, Any]]]: + """Return the code-default role catalog for each scope. + + Workspace and project scopes expose the code-default `DefaultRole` + entries on top of the minima — project membership stores the same role + slugs (`admin`/`developer`/`editor`/`annotator`), and the runtime + permission check resolves them through this map. Organization scope + only gets the minima today; new roles can be added per-scope via + `AGENTA_ACCESS_ROLES`. + """ + default_extras: List[Dict[str, Any]] = [] + minima_slugs = { + RequiredRole.OWNER.value, + RequiredRole.ADMIN.value, + RequiredRole.VIEWER.value, + } + for role in DefaultRole: + if role.value in minima_slugs: + continue + default_extras.append( + { + "role": role.value, + "description": DefaultRole.get_description(role), + "permissions": [p.value for p in Permission.default_permissions(role)], + } + ) + + return { + "organization": _minima_for("organization"), + "workspace": _minima_for("workspace") + default_extras, + "project": _minima_for("project") + default_extras, + } + + +def _validate_permission(slug: str) -> str: + if slug == "*": + return slug + try: + Permission(slug) + except ValueError as e: + raise ValueError(f"Unknown permission '{slug}'") from e + return slug + + +def _parse_roles_override(decoded: Any) -> Dict[str, List[Dict[str, Any]]]: + """Parse `AGENTA_ACCESS_ROLES` and merge with scope minima. + + Schema is `{scope: [role, ...]}` where scope is one of `organization`, + `workspace`, `project`. Missing scopes fall back to the code-default + minima for that scope. Within an overridden scope: + + - `owner`, `admin`, `viewer` are reserved slugs; if present, they're + rejected with a clear error so application invariants stay intact. The + minima for that scope are re-applied after parsing. + - Other roles are validated (known permissions, no duplicates) and + appended to the minima list. + + Empty `{}` or an empty per-scope list is rejected. + """ + if not isinstance(decoded, dict) or not decoded: + raise ValueError("AGENTA_ACCESS_ROLES must be a non-empty JSON object") + + # Start with code-default catalogs for every scope. Overrides only mutate + # the scopes they specify; non-overridden scopes keep their full code + # defaults (e.g. workspace's admin/developer/editor/annotator stay even + # when only `project` is overridden). + result: Dict[str, List[Dict[str, Any]]] = _default_roles() + + reserved = { + RequiredRole.OWNER.value, + RequiredRole.ADMIN.value, + RequiredRole.VIEWER.value, + } + + for scope, roles in decoded.items(): + if scope not in SCOPES: + raise ValueError( + f"Unknown role scope '{scope}' in AGENTA_ACCESS_ROLES " + f"(allowed: {list(SCOPES)})" + ) + + if not isinstance(roles, list) or not roles: + raise ValueError( + f"AGENTA_ACCESS_ROLES['{scope}'] must be a non-empty list of roles" + ) + + extras: List[Dict[str, Any]] = [] + seen: set[str] = set() + for entry in roles: + try: + role = _RoleOverride.model_validate(entry) + except ValidationError as e: + raise ValueError( + f"Invalid role override under scope '{scope}': {e}" + ) from e + + slug = role.role + if not slug: + raise ValueError(f"Empty role slug under scope '{scope}'") + if slug in reserved: + raise ValueError( + f"AGENTA_ACCESS_ROLES['{scope}'] cannot redefine reserved " + f"role '{slug}'; minima are always synthesized by the platform" + ) + if slug in seen: + raise ValueError(f"Duplicate role slug '{slug}' under scope '{scope}'") + seen.add(slug) + + permissions = [_validate_permission(p) for p in role.permissions] + + extras.append( + { + "role": slug, + "description": role.description, + "permissions": permissions, + } + ) + + # Minima first, then validated extras. + result[scope] = _minima_for(scope) + extras + + # TEMP: workspace and project use the same role set at runtime (the only + # caller of `workspace`-scope roles today is the Invite Members modal, + # which is really inviting to the underlying project). Operators almost + # always override only `project` via AGENTA_ACCESS_ROLES; without this + # mirror, custom roles silently disappear from the workspace catalog. + # Remove once the workspace/project scope split is reconciled. + if "project" in decoded and "workspace" not in decoded: + project_extras = [ + entry + for entry in result["project"] + if entry["role"] + not in { + RequiredRole.OWNER.value, + RequiredRole.ADMIN.value, + RequiredRole.VIEWER.value, + } + ] + result["workspace"] = _minima_for("workspace") + project_extras + + return result + + +# --------------------------------------------------------------------------- +# Roles overlay +# --------------------------------------------------------------------------- +# +# `AGENTA_ACCESS_ROLES_OVERLAY` lets operators tweak individual fields on +# existing default roles (`admin`, `developer`, `editor`, `annotator`) — or +# add new roles — without restating the whole scope catalog the way +# `AGENTA_ACCESS_ROLES` requires. See the parser docstring for the two accepted +# payload shapes. + + +def _parse_roles_overlay(decoded: Any) -> Dict[str, _RoleOverlayEntry]: + """Parse `AGENTA_ACCESS_ROLES_OVERLAY` and return per-slug entries. + + Two accepted payload shapes: + + 1. Project-focused shortcut — ``{: }``. Used when none + of the scope keys (``organization``, ``workspace``, ``project``) appear + at the root; the payload is interpreted as project-level role patches. + The scope names are therefore reserved and cannot be used as role slugs. + + 2. Full (scoped) form — ``{"project": {: }}``. Triggered + when any of ``organization``, ``workspace``, ``project`` appears at the + root. Only ``project`` is supported today; ``organization`` and + ``workspace`` are rejected. + + The result is the inner ``{: }`` dict; the caller decides + which scopes the patch applies to. + """ + if not isinstance(decoded, dict) or not decoded: + raise ValueError("AGENTA_ACCESS_ROLES_OVERLAY must be a non-empty JSON object") + + scope_keys = {"organization", "workspace", "project"} + + if scope_keys & set(decoded.keys()): + # Full parse: at least one scope key at root. + unsupported = (set(decoded.keys()) & scope_keys) - {"project"} + if unsupported: + raise ValueError( + f"AGENTA_ACCESS_ROLES_OVERLAY only supports the 'project' scope " + f"today (got: {sorted(unsupported)}). The patch is applied to " + "both workspace and project." + ) + unknown = set(decoded.keys()) - scope_keys + if unknown: + raise ValueError( + f"AGENTA_ACCESS_ROLES_OVERLAY mixes scope keys with non-scope " + f"keys at the root ({sorted(unknown)}). Either use the " + "project-focused shortcut (no scope keys, role slugs at the " + "root) or the full form ({'project': {...}})." + ) + project_payload = decoded.get("project") + if not isinstance(project_payload, dict) or not project_payload: + raise ValueError( + "AGENTA_ACCESS_ROLES_OVERLAY['project'] must be a non-empty " + "JSON object keyed by role slug" + ) + else: + # Project-focused shortcut: top-level dict is keyed by role slug. + project_payload = decoded + + reserved = { + RequiredRole.OWNER.value, + RequiredRole.ADMIN.value, + RequiredRole.VIEWER.value, + } + entries: Dict[str, _RoleOverlayEntry] = {} + for slug, patch in project_payload.items(): + if not slug or not isinstance(slug, str): + raise ValueError( + f"Invalid role slug '{slug}' in AGENTA_ACCESS_ROLES_OVERLAY" + ) + if slug in reserved: + raise ValueError( + f"AGENTA_ACCESS_ROLES_OVERLAY cannot patch reserved role " + f"'{slug}'; minima are platform-managed" + ) + try: + entry = _RoleOverlayEntry.model_validate(patch) + except ValidationError as e: + raise ValueError( + f"Invalid AGENTA_ACCESS_ROLES_OVERLAY['project']['{slug}']: {e}" + ) from e + if entry.permissions is not None: + for perm in entry.permissions: + _validate_permission(perm) + entries[slug] = entry + + return entries + + +def _apply_roles_overlay( + roles: Dict[str, List[Dict[str, Any]]], + overlay: Dict[str, _RoleOverlayEntry], +) -> Dict[str, List[Dict[str, Any]]]: + """Apply the parsed overlay to the workspace and project scopes. + + Returns a new dict; the input is not mutated. New roles (where the + slug doesn't already exist on the scope) require both ``description`` + and ``permissions``. + """ + result = {scope: [dict(entry) for entry in roles[scope]] for scope in roles} + + for scope_name in ("workspace", "project"): + scope_entries = result[scope_name] + by_slug = {entry["role"]: idx for idx, entry in enumerate(scope_entries)} + + for slug, patch in overlay.items(): + if slug in by_slug: + # Patch existing role: per-field replace. + idx = by_slug[slug] + if patch.description is not None: + scope_entries[idx]["description"] = patch.description + if patch.permissions is not None: + scope_entries[idx]["permissions"] = list(patch.permissions) + else: + # New role: both fields must be present. + if patch.permissions is None: + raise ValueError( + f"AGENTA_ACCESS_ROLES_OVERLAY['project']['{slug}']: " + f"new role requires 'permissions' (scope '{scope_name}' " + "has no existing role with this slug to patch)" + ) + scope_entries.append( + { + "role": slug, + "description": patch.description, + "permissions": list(patch.permissions), + } + ) + + return result + + +# --------------------------------------------------------------------------- +# Build (called once by ee.src.core.access.controls) +# --------------------------------------------------------------------------- + + +def build_role_controls() -> tuple[Dict[str, List[Dict[str, Any]]], str]: + """Build the per-scope role catalogs from defaults or env overrides. + + Returns ``(roles, source_label)`` where ``source_label`` is a short string + for startup logging (e.g. ``"roles=defaults roles_overlay=none"``). + """ + roles_payload = env.access_controls.roles + roles_overlay_payload = env.access_controls.roles_overlay + + if roles_payload is not None: + roles = _parse_roles_override(roles_payload) + roles_source = "env" + else: + roles = _default_roles() + roles_source = "defaults" + + roles_overlay_source = "none" + if roles_overlay_payload is not None: + roles_overlay = _parse_roles_overlay(roles_overlay_payload) + roles = _apply_roles_overlay(roles, roles_overlay) + roles_overlay_source = "env" + + source = f"roles={roles_source} roles_overlay={roles_overlay_source}" + return roles, source diff --git a/api/ee/src/utils/permissions.py b/api/ee/src/core/access/permissions/service.py similarity index 97% rename from api/ee/src/utils/permissions.py rename to api/ee/src/core/access/permissions/service.py index b18181fbf5..38dcffdebf 100644 --- a/api/ee/src/utils/permissions.py +++ b/api/ee/src/core/access/permissions/service.py @@ -10,16 +10,17 @@ WorkspaceDB, ProjectDB, ) -from ee.src.models.shared_models import ( - Permission, - WorkspaceRole, -) -from ee.src.core.entitlements.controls import get_role, get_role_permissions +from ee.src.core.access.permissions.types import Permission, RequiredRole +from ee.src.core.access.controls import get_role, get_role_permissions from oss.src.services import db_manager from ee.src.services import db_manager_ee -from ee.src.utils.entitlements import check_entitlements, scope_from, Flag -from ee.src.services.selectors import get_user_org_and_workspace_id +from ee.src.core.access.entitlements.service import ( + check_entitlements, + scope_from, + Flag, +) +from ee.src.services.db_manager_ee import get_user_org_and_workspace_id log = get_module_logger(__name__) @@ -65,12 +66,12 @@ def _project_is_owner( ) -> bool: """True if the user is OWNER in the project.""" role = _get_project_member_role(user_id, members) - return role == WorkspaceRole.OWNER + return role == RequiredRole.OWNER def _project_has_role( user_id: str, - role_to_check: WorkspaceRole, + role_to_check: RequiredRole, members: Sequence[Any], ) -> bool: """True if the user's role exactly matches role_to_check.""" diff --git a/api/ee/src/models/shared_models.py b/api/ee/src/core/access/permissions/types.py similarity index 81% rename from api/ee/src/models/shared_models.py rename to api/ee/src/core/access/permissions/types.py index fccba1affd..c3ab36b719 100644 --- a/api/ee/src/models/shared_models.py +++ b/api/ee/src/core/access/permissions/types.py @@ -1,10 +1,16 @@ from enum import Enum -from typing import List -from pydantic import BaseModel, Field +class DefaultRole(str, Enum): + """Code-default role catalog (the roles Agenta ships with). + + Used at all three scopes (organization / workspace / project) to seed the + default role catalog and their permission mappings. Env overrides + (`AGENTA_ACCESS_ROLES`) may add or customize roles on top of these. + + The minimal subset that must always exist in every scope is `RequiredRole`. + """ -class WorkspaceRole(str, Enum): OWNER = "owner" ADMIN = "admin" DEVELOPER = "developer" @@ -14,7 +20,7 @@ class WorkspaceRole(str, Enum): @classmethod def is_valid_role(cls, role: str) -> bool: - return role.upper() in list(WorkspaceRole.__members__.keys()) + return role.upper() in list(DefaultRole.__members__.keys()) @classmethod def get_description(cls, role): @@ -29,6 +35,29 @@ def get_description(cls, role): return descriptions.get(role, "Description not available, Role not found") +class RequiredRole(str, Enum): + """Required role slugs per scope (the minimal guaranteed subset). + + `owner`, `admin`, and `viewer` must exist in every scope (organization, + workspace, project) — they are merged in by the access-controls builder + regardless of `AGENTA_ACCESS_ROLES` content, so application code can depend + on these three slugs being valid in any scope. + + The rationale for the minimal set: `owner` is the single full-access owner, + `admin` is full access that can be granted to many people, and `viewer` is + minimal (read-only) access for many people. Without `admin` in the minimal + set, an env override could leave a scope with only owner + viewer — where no + non-owner can actually do anything. + + Env overrides may customize the permissions of these roles or add + additional roles, but cannot remove them. + """ + + OWNER = "owner" + ADMIN = "admin" + VIEWER = "viewer" + + class Permission(str, Enum): # general READ_SYSTEM = "read_system" @@ -242,17 +271,12 @@ def default_permissions(cls, role): cls.VIEW_WORKSPACE, ] defaults = { - WorkspaceRole.OWNER: [p for p in cls], - WorkspaceRole.ADMIN: ADMIN_PERMISSIONS, - WorkspaceRole.DEVELOPER: DEVELOPER_PERMISSIONS, - WorkspaceRole.EDITOR: EDITOR_PERMISSIONS, - WorkspaceRole.ANNOTATOR: ANNOTATOR_PERMISSIONS, - WorkspaceRole.VIEWER: VIEWER_PERMISSIONS, + DefaultRole.OWNER: [p for p in cls], + DefaultRole.ADMIN: ADMIN_PERMISSIONS, + DefaultRole.DEVELOPER: DEVELOPER_PERMISSIONS, + DefaultRole.EDITOR: EDITOR_PERMISSIONS, + DefaultRole.ANNOTATOR: ANNOTATOR_PERMISSIONS, + DefaultRole.VIEWER: VIEWER_PERMISSIONS, } return defaults.get(role, []) - - -class WorkspaceMember(BaseModel): - role_name: WorkspaceRole - permissions: List[Permission] = Field(default_factory=list) diff --git a/api/ee/src/core/entitlements/controls.py b/api/ee/src/core/entitlements/controls.py deleted file mode 100644 index 5510314f43..0000000000 --- a/api/ee/src/core/entitlements/controls.py +++ /dev/null @@ -1,832 +0,0 @@ -"""Access controls: effective plan/role accessors built from code defaults or env overrides. - -This module is the single runtime source of truth for: - -- the effective plan slug set; -- per-plan entitlement controls (flags, counters, gauges, throttles); -- per-scope role catalogs (organization, workspace, project). - -Code defaults live in `types.py` and `ee.src.models.shared_models`. Environment -overrides come from `AGENTA_ACCESS_PLANS` and `AGENTA_ACCESS_ROLES` (raw JSON -strings exposed via `env.access_controls`). Parsing happens once at import time. -""" - -import hashlib -from json import dumps -from typing import Any, Dict, List, Optional - -from pydantic import BaseModel, ConfigDict, ValidationError - -from oss.src.utils.env import env -from oss.src.utils.logging import get_module_logger - -from ee.src.core.entitlements.types import ( - Category, - Counter, - DEFAULT_ENTITLEMENTS, - DefaultPlan, - DefaultRole, - Flag, - Gauge, - OWNER_PERMISSIONS, - Quota, - SCOPES, - Throttle, - Tracker, -) -from ee.src.models.shared_models import Permission, WorkspaceRole - - -log = get_module_logger(__name__) - - -# --------------------------------------------------------------------------- -# Override schemas -# --------------------------------------------------------------------------- - - -class _PlanOverride(BaseModel): - description: Optional[str] = None - flags: Optional[Dict[str, bool]] = None - counters: Optional[Dict[str, Quota]] = None - gauges: Optional[Dict[str, Quota]] = None - throttles: Optional[List[Throttle]] = None - - model_config = ConfigDict(extra="forbid") - - -class _RoleOverride(BaseModel): - role: str - description: Optional[str] = None - permissions: List[str] - - model_config = ConfigDict(extra="forbid") - - -# --------------------------------------------------------------------------- -# Plan entitlements + descriptions -# --------------------------------------------------------------------------- - -# Effective state is a dict[plan_slug, plan_entry] where plan_entry has the same -# shape as DEFAULT_ENTITLEMENTS values (Tracker -> mapping) plus an optional -# "description" key in the top-level plan entry's own description map. - -_DEFAULT_PLAN_DESCRIPTIONS: Dict[str, str] = {} - - -def _default_plans() -> Dict[str, Dict[Tracker, Any]]: - # Keys in DEFAULT_ENTITLEMENTS are `DefaultPlan` (str, Enum) members. - # Coerce to plain strings so the runtime plan map is uniformly keyed by slug. - return {str(plan.value): entry for plan, entry in DEFAULT_ENTITLEMENTS.items()} - - -def _validate_flag_key(key: str) -> Flag: - try: - return Flag(key) - except ValueError as e: - raise ValueError(f"Unknown flag '{key}'") from e - - -def _validate_counter_key(key: str) -> Counter: - try: - return Counter(key) - except ValueError as e: - raise ValueError(f"Unknown counter '{key}'") from e - - -def _validate_gauge_key(key: str) -> Gauge: - try: - return Gauge(key) - except ValueError as e: - raise ValueError(f"Unknown gauge '{key}'") from e - - -def _parse_plans_override( - decoded: Any, -) -> tuple[Dict[str, Dict[Tracker, Any]], Dict[str, str]]: - if not isinstance(decoded, dict) or not decoded: - raise ValueError("AGENTA_ACCESS_PLANS must be a non-empty JSON object") - - plans: Dict[str, Dict[Tracker, Any]] = {} - descriptions: Dict[str, str] = {} - - for slug, payload in decoded.items(): - if not slug or not isinstance(slug, str): - raise ValueError(f"Invalid plan slug '{slug}' in AGENTA_ACCESS_PLANS") - - try: - override = _PlanOverride.model_validate(payload) - except ValidationError as e: - raise ValueError( - f"Invalid plan override for '{slug}' in AGENTA_ACCESS_PLANS: {e}" - ) from e - - plan_entry: Dict[Tracker, Any] = {} - - if override.flags is not None: - plan_entry[Tracker.FLAGS] = { - _validate_flag_key(k): bool(v) for k, v in override.flags.items() - } - - if override.counters is not None: - plan_entry[Tracker.COUNTERS] = { - _validate_counter_key(k): v for k, v in override.counters.items() - } - - if override.gauges is not None: - plan_entry[Tracker.GAUGES] = { - _validate_gauge_key(k): v for k, v in override.gauges.items() - } - - if override.throttles is not None: - plan_entry[Tracker.THROTTLES] = list(override.throttles) - - # Plans with only a description are allowed — they represent custom / - # display-only plans (e.g. self-hosted Enterprise) that don't enforce - # quotas server-side. Downstream consumers must handle the empty - # entitlement map gracefully (e.g. `fetch_usage` returns no rows). - plans[slug] = plan_entry - - if override.description: - descriptions[slug] = override.description - - return plans, descriptions - - -# --------------------------------------------------------------------------- -# Role catalogs (scoped) -# --------------------------------------------------------------------------- -# -# Minima contract: every scope MUST expose `owner` and `viewer` with code- -# defined permissions. Env overrides may add roles or customize permissions -# of non-minima roles, but the minima are always present and their slugs -# cannot be re-bound to a different permission set. - - -def _read_only_permissions() -> List[str]: - """Read-only permission set sourced from the code-default `WorkspaceRole.VIEWER`. - - Used as the `viewer` minima permissions for the `workspace` and `project` - scopes where permissions are actually enforced. Organization-scope `viewer` - has no permissions (it's just a membership marker today). - """ - return [p.value for p in Permission.default_permissions(WorkspaceRole.VIEWER)] - - -def _viewer_permissions_for_scope(scope: str) -> List[str]: - """Per-scope code-default permissions for the `viewer` minima role. - - - `organization`: empty — orgs have no permission concept today. - - `workspace` and `project`: the code-default `WorkspaceRole.VIEWER` read-only set. - """ - if scope == "organization": - return [] - return _read_only_permissions() - - -def _minima_for(scope: str) -> List[Dict[str, Any]]: - """Return the required role entries for a scope (owner + viewer). - - Application code relies on these slugs being present in every scope; the - builder synthesizes them up front and re-applies them after any env - overrides so they can never be dropped or relabeled. - - The permission set for `viewer` varies per scope (see - `_viewer_permissions_for_scope`); `owner` is always wildcard. - """ - return [ - { - "role": DefaultRole.OWNER.value, - "description": "Full access (wildcard permissions).", - "permissions": list(OWNER_PERMISSIONS), - }, - { - "role": DefaultRole.VIEWER.value, - "description": ( - "Membership marker (no permissions)." - if scope == "organization" - else "Read-only access." - ), - "permissions": _viewer_permissions_for_scope(scope), - }, - ] - - -def _default_roles() -> Dict[str, List[Dict[str, Any]]]: - """Return the code-default role catalog for each scope. - - Workspace and project scopes expose the code-default `WorkspaceRole` - entries on top of the minima — project membership stores the same role - slugs (`admin`/`developer`/`editor`/`annotator`), and the runtime - permission check resolves them through this map. Organization scope - only gets the minima today; new roles can be added per-scope via - `AGENTA_ACCESS_ROLES`. - """ - default_extras: List[Dict[str, Any]] = [] - minima_slugs = {DefaultRole.OWNER.value, DefaultRole.VIEWER.value} - for role in WorkspaceRole: - if role.value in minima_slugs: - continue - default_extras.append( - { - "role": role.value, - "description": WorkspaceRole.get_description(role), - "permissions": [p.value for p in Permission.default_permissions(role)], - } - ) - - return { - "organization": _minima_for("organization"), - "workspace": _minima_for("workspace") + default_extras, - "project": _minima_for("project") + default_extras, - } - - -def _validate_permission(slug: str) -> str: - if slug == "*": - return slug - try: - Permission(slug) - except ValueError as e: - raise ValueError(f"Unknown permission '{slug}'") from e - return slug - - -def _parse_roles_override(decoded: Any) -> Dict[str, List[Dict[str, Any]]]: - """Parse `AGENTA_ACCESS_ROLES` and merge with scope minima. - - Schema is `{scope: [role, ...]}` where scope is one of `organization`, - `workspace`, `project`. Missing scopes fall back to the code-default - minima for that scope. Within an overridden scope: - - - `owner` and `viewer` are reserved slugs; if present, they're rejected - with a clear error so application invariants stay intact. The minima - for that scope are re-applied after parsing. - - Other roles are validated (known permissions, no duplicates) and - appended to the minima list. - - Empty `{}` or an empty per-scope list is rejected. - """ - if not isinstance(decoded, dict) or not decoded: - raise ValueError("AGENTA_ACCESS_ROLES must be a non-empty JSON object") - - # Start with code-default catalogs for every scope. Overrides only mutate - # the scopes they specify; non-overridden scopes keep their full code - # defaults (e.g. workspace's admin/developer/editor/annotator stay even - # when only `project` is overridden). - result: Dict[str, List[Dict[str, Any]]] = _default_roles() - - reserved = {DefaultRole.OWNER.value, DefaultRole.VIEWER.value} - - for scope, roles in decoded.items(): - if scope not in SCOPES: - raise ValueError( - f"Unknown role scope '{scope}' in AGENTA_ACCESS_ROLES " - f"(allowed: {list(SCOPES)})" - ) - - if not isinstance(roles, list) or not roles: - raise ValueError( - f"AGENTA_ACCESS_ROLES['{scope}'] must be a non-empty list of roles" - ) - - extras: List[Dict[str, Any]] = [] - seen: set[str] = set() - for entry in roles: - try: - role = _RoleOverride.model_validate(entry) - except ValidationError as e: - raise ValueError( - f"Invalid role override under scope '{scope}': {e}" - ) from e - - slug = role.role - if not slug: - raise ValueError(f"Empty role slug under scope '{scope}'") - if slug in reserved: - raise ValueError( - f"AGENTA_ACCESS_ROLES['{scope}'] cannot redefine reserved " - f"role '{slug}'; minima are always synthesized by the platform" - ) - if slug in seen: - raise ValueError(f"Duplicate role slug '{slug}' under scope '{scope}'") - seen.add(slug) - - permissions = [_validate_permission(p) for p in role.permissions] - - extras.append( - { - "role": slug, - "description": role.description, - "permissions": permissions, - } - ) - - # Minima first, then validated extras. - result[scope] = _minima_for(scope) + extras - - # TEMP: workspace and project use the same role set at runtime (the only - # caller of `workspace`-scope roles today is the Invite Members modal, - # which is really inviting to the underlying project). Operators almost - # always override only `project` via AGENTA_ACCESS_ROLES; without this - # mirror, custom roles silently disappear from the workspace catalog. - # Remove once the workspace/project scope split is reconciled. - if "project" in decoded and "workspace" not in decoded: - project_extras = [ - entry - for entry in result["project"] - if entry["role"] not in {DefaultRole.OWNER.value, DefaultRole.VIEWER.value} - ] - result["workspace"] = _minima_for("workspace") + project_extras - - return result - - -# --------------------------------------------------------------------------- -# Roles overlay -# --------------------------------------------------------------------------- -# -# `AGENTA_ACCESS_ROLES_OVERLAY` lets operators tweak individual fields on -# existing default roles (`admin`, `developer`, `editor`, `annotator`) — or -# add new roles — without restating the whole scope catalog the way -# `AGENTA_ACCESS_ROLES` requires. -# -# The overlay accepts two shapes: -# -# - Project-focused shortcut (preferred for the common case): -# {: , ...} -# The whole dict is interpreted as project-level role patches. The scope -# names (`organization`, `workspace`, `project`) are reserved and cannot -# be used as role slugs in this form. -# -# - Full form, scoped: -# {"project": {: , ...}} -# Triggered when any of `organization`/`workspace`/`project` appears at -# the root. Today only `project` is supported; `organization` and -# `workspace` are rejected — silent ignore would mislead operators. -# -# In both shapes the patch is applied to both the `workspace` and `project` -# scopes because the two scopes share the same role set in the code defaults. -# -# Merge semantics per role slug: -# - role exists in the scope: per-field replace (`permissions` and/or -# `description`). -# - role does not exist: append as a new role (must include both -# `description` and `permissions`). -# - `owner` and `viewer` minima cannot be patched (platform-managed). - - -class _RoleOverlayEntry(BaseModel): - """Partial role update. ``permissions`` and ``description`` are both - optional; whatever is set replaces the matching field on the existing - role entry. To add a new role both fields must be supplied — that - constraint is enforced in :func:`_apply_roles_overlay`. - """ - - description: Optional[str] = None - permissions: Optional[List[str]] = None - - model_config = ConfigDict(extra="forbid") - - -def _parse_roles_overlay(decoded: Any) -> Dict[str, _RoleOverlayEntry]: - """Parse `AGENTA_ACCESS_ROLES_OVERLAY` and return per-slug entries. - - Two accepted payload shapes: - - 1. Project-focused shortcut — ``{: }``. Used when none - of the scope keys (``organization``, ``workspace``, ``project``) appear - at the root; the payload is interpreted as project-level role patches. - The scope names are therefore reserved and cannot be used as role slugs. - - 2. Full (scoped) form — ``{"project": {: }}``. Triggered - when any of ``organization``, ``workspace``, ``project`` appears at the - root. Only ``project`` is supported today; ``organization`` and - ``workspace`` are rejected. - - The result is the inner ``{: }`` dict; the caller decides - which scopes the patch applies to. - """ - if not isinstance(decoded, dict) or not decoded: - raise ValueError("AGENTA_ACCESS_ROLES_OVERLAY must be a non-empty JSON object") - - scope_keys = {"organization", "workspace", "project"} - - if scope_keys & set(decoded.keys()): - # Full parse: at least one scope key at root. - unsupported = (set(decoded.keys()) & scope_keys) - {"project"} - if unsupported: - raise ValueError( - f"AGENTA_ACCESS_ROLES_OVERLAY only supports the 'project' scope " - f"today (got: {sorted(unsupported)}). The patch is applied to " - "both workspace and project." - ) - unknown = set(decoded.keys()) - scope_keys - if unknown: - raise ValueError( - f"AGENTA_ACCESS_ROLES_OVERLAY mixes scope keys with non-scope " - f"keys at the root ({sorted(unknown)}). Either use the " - "project-focused shortcut (no scope keys, role slugs at the " - "root) or the full form ({'project': {...}})." - ) - project_payload = decoded.get("project") - if not isinstance(project_payload, dict) or not project_payload: - raise ValueError( - "AGENTA_ACCESS_ROLES_OVERLAY['project'] must be a non-empty " - "JSON object keyed by role slug" - ) - else: - # Project-focused shortcut: top-level dict is keyed by role slug. - project_payload = decoded - - reserved = {DefaultRole.OWNER.value, DefaultRole.VIEWER.value} - entries: Dict[str, _RoleOverlayEntry] = {} - for slug, patch in project_payload.items(): - if not slug or not isinstance(slug, str): - raise ValueError( - f"Invalid role slug '{slug}' in AGENTA_ACCESS_ROLES_OVERLAY" - ) - if slug in reserved: - raise ValueError( - f"AGENTA_ACCESS_ROLES_OVERLAY cannot patch reserved role " - f"'{slug}'; minima are platform-managed" - ) - try: - entry = _RoleOverlayEntry.model_validate(patch) - except ValidationError as e: - raise ValueError( - f"Invalid AGENTA_ACCESS_ROLES_OVERLAY['project']['{slug}']: {e}" - ) from e - if entry.permissions is not None: - for perm in entry.permissions: - _validate_permission(perm) - entries[slug] = entry - - return entries - - -def _apply_roles_overlay( - roles: Dict[str, List[Dict[str, Any]]], - overlay: Dict[str, _RoleOverlayEntry], -) -> Dict[str, List[Dict[str, Any]]]: - """Apply the parsed overlay to the workspace and project scopes. - - Returns a new dict; the input is not mutated. New roles (where the - slug doesn't already exist on the scope) require both ``description`` - and ``permissions``. - """ - result = {scope: [dict(entry) for entry in roles[scope]] for scope in roles} - - for scope_name in ("workspace", "project"): - scope_entries = result[scope_name] - by_slug = {entry["role"]: idx for idx, entry in enumerate(scope_entries)} - - for slug, patch in overlay.items(): - if slug in by_slug: - # Patch existing role: per-field replace. - idx = by_slug[slug] - if patch.description is not None: - scope_entries[idx]["description"] = patch.description - if patch.permissions is not None: - scope_entries[idx]["permissions"] = list(patch.permissions) - else: - # New role: both fields must be present. - if patch.permissions is None: - raise ValueError( - f"AGENTA_ACCESS_ROLES_OVERLAY['project']['{slug}']: " - f"new role requires 'permissions' (scope '{scope_name}' " - "has no existing role with this slug to patch)" - ) - scope_entries.append( - { - "role": slug, - "description": patch.description, - "permissions": list(patch.permissions), - } - ) - - return result - - -# --------------------------------------------------------------------------- -# Default-plan overlay -# --------------------------------------------------------------------------- -# -# `AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY` lets self-hosted operators tweak individual -# entitlement values on the default plan without restating the entire plan in -# `AGENTA_ACCESS_PLANS`. Common cases: bumping trace retention, raising the -# standard-throttle rate, flipping a flag. -# -# Shape mirrors a plan entry (same keys, same units) with one divergence: -# `throttles` is a map keyed by category slug instead of a list, so per- -# category patches don't require restating the whole list. Throttles that -# combine multiple categories or use `endpoints` cannot be addressed via the -# overlay — operators who need that should use `AGENTA_ACCESS_PLANS`. - - -class _ThrottleOverlay(BaseModel): - """Partial throttle update keyed by a single category. - - Every field is optional; only fields explicitly set on the overlay - replace the matching field on the existing throttle entry. - """ - - bucket: Optional[Dict[str, Any]] = None - mode: Optional[str] = None - - model_config = ConfigDict(extra="forbid") - - -class _DefaultPlanOverlay(BaseModel): - """Partial overlay for the default plan. Same shape as `_PlanOverride` - except `throttles` is a map keyed by category slug.""" - - description: Optional[str] = None - flags: Optional[Dict[str, bool]] = None - counters: Optional[Dict[str, Dict[str, Any]]] = None - gauges: Optional[Dict[str, Dict[str, Any]]] = None - throttles: Optional[Dict[str, _ThrottleOverlay]] = None - - model_config = ConfigDict(extra="forbid") - - -def _merge_quota(existing: Optional[Quota], patch: Dict[str, Any]) -> Quota: - """Patch a Quota field-by-field, preserving fields the overlay didn't set.""" - if existing is None: - # Patching an entitlement key that isn't defined on the base plan: - # treat the overlay as the full definition. - return Quota.model_validate(patch) - merged = existing.model_dump() - merged.update(patch) - return Quota.model_validate(merged) - - -def _merge_throttle(existing: Throttle, patch: _ThrottleOverlay) -> Throttle: - """Patch one throttle entry. `bucket` is field-merged; `mode` replaces.""" - base = existing.model_dump() - if patch.bucket is not None: - bucket = dict(base.get("bucket") or {}) - bucket.update(patch.bucket) - base["bucket"] = bucket - if patch.mode is not None: - base["mode"] = patch.mode - return Throttle.model_validate(base) - - -def _parse_default_plan_overlay(decoded: Any) -> _DefaultPlanOverlay: - if not isinstance(decoded, dict) or not decoded: - raise ValueError( - "AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY must be a non-empty JSON object" - ) - try: - overlay = _DefaultPlanOverlay.model_validate(decoded) - except ValidationError as e: - raise ValueError(f"Invalid AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY: {e}") from e - - # Validate slugs upfront so the error message points at the bad key - # rather than failing inside the merge. - if overlay.flags is not None: - for key in overlay.flags: - _validate_flag_key(key) - if overlay.counters is not None: - for key in overlay.counters: - _validate_counter_key(key) - if overlay.gauges is not None: - for key in overlay.gauges: - _validate_gauge_key(key) - if overlay.throttles is not None: - valid_categories = {c.value for c in Category} - for key in overlay.throttles: - if key not in valid_categories: - raise ValueError( - f"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY.throttles['{key}'] is not a " - f"valid throttle category. Allowed: {sorted(valid_categories)}." - ) - return overlay - - -def _apply_default_plan_overlay( - plans: Dict[str, Dict[Tracker, Any]], - descriptions: Dict[str, str], - overlay: _DefaultPlanOverlay, - default_plan_slug: str, -) -> tuple[Dict[str, Dict[Tracker, Any]], Dict[str, str]]: - """Apply the overlay to the resolved default plan in-place (returning new dicts).""" - if default_plan_slug not in plans: - raise ValueError( - f"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY targets the default plan " - f"'{default_plan_slug}', which is not in the effective plan set " - f"({sorted(plans.keys())}). Add the slug to AGENTA_ACCESS_PLANS or " - "unset AGENTA_DEFAULT_PLAN." - ) - - plans = {slug: dict(entry) for slug, entry in plans.items()} - descriptions = dict(descriptions) - entry = plans[default_plan_slug] - - if overlay.description is not None: - descriptions[default_plan_slug] = overlay.description - - if overlay.flags is not None: - flags = dict(entry.get(Tracker.FLAGS) or {}) - for key, value in overlay.flags.items(): - flags[Flag(key)] = bool(value) - entry[Tracker.FLAGS] = flags - - if overlay.counters is not None: - counters = dict(entry.get(Tracker.COUNTERS) or {}) - for key, patch in overlay.counters.items(): - counter = Counter(key) - counters[counter] = _merge_quota(counters.get(counter), patch) - entry[Tracker.COUNTERS] = counters - - if overlay.gauges is not None: - gauges = dict(entry.get(Tracker.GAUGES) or {}) - for key, patch in overlay.gauges.items(): - gauge = Gauge(key) - gauges[gauge] = _merge_quota(gauges.get(gauge), patch) - entry[Tracker.GAUGES] = gauges - - if overlay.throttles is not None: - existing_throttles = list(entry.get(Tracker.THROTTLES) or []) - - for category_key, patch in overlay.throttles.items(): - category = Category(category_key) - # Find the single-category throttle entry that matches. - target_idx = next( - ( - idx - for idx, t in enumerate(existing_throttles) - if t.categories - and len(t.categories) == 1 - and t.categories[0] == category - ), - None, - ) - if target_idx is None: - raise ValueError( - f"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY.throttles['{category_key}']: " - f"the default plan '{default_plan_slug}' has no single-" - f"category throttle entry for '{category_key}'. Use " - "AGENTA_ACCESS_PLANS to define multi-category or endpoint-" - "keyed throttles." - ) - existing_throttles[target_idx] = _merge_throttle( - existing_throttles[target_idx], patch - ) - entry[Tracker.THROTTLES] = existing_throttles - - plans[default_plan_slug] = entry - return plans, descriptions - - -def _resolve_default_plan_slug(plans: Dict[str, Dict[Tracker, Any]]) -> str: - """Resolve the default plan slug for overlay targeting. - - Mirrors `subscriptions.types.get_default_plan()` without importing it (to - avoid pulling subscription/Stripe code into the access-controls layer). - """ - raw = env.access_controls.default_plan - if raw: - return raw - if env.stripe.enabled: - return DefaultPlan.CLOUD_V0_HOBBY.value - return DefaultPlan.SELF_HOSTED_ENTERPRISE.value - - -# --------------------------------------------------------------------------- -# Effective controls (built once at import time) -# --------------------------------------------------------------------------- - - -def _build_controls() -> tuple[ - Dict[str, Dict[Tracker, Any]], - Dict[str, str], - Dict[str, List[Dict[str, Any]]], - str, -]: - plans_payload = env.access_controls.plans - roles_payload = env.access_controls.roles - roles_overlay_payload = env.access_controls.roles_overlay - plan_overlay_payload = env.access_controls.default_plan_overlay - - if plans_payload is not None: - plans, descriptions = _parse_plans_override(plans_payload) - plans_source = "env" - else: - plans = _default_plans() - descriptions = dict(_DEFAULT_PLAN_DESCRIPTIONS) - plans_source = "defaults" - - plan_overlay_source = "none" - if plan_overlay_payload is not None: - plan_overlay = _parse_default_plan_overlay(plan_overlay_payload) - default_plan_slug = _resolve_default_plan_slug(plans) - plans, descriptions = _apply_default_plan_overlay( - plans, descriptions, plan_overlay, default_plan_slug - ) - plan_overlay_source = f"env→{default_plan_slug}" - - if roles_payload is not None: - roles = _parse_roles_override(roles_payload) - roles_source = "env" - else: - roles = _default_roles() - roles_source = "defaults" - - roles_overlay_source = "none" - if roles_overlay_payload is not None: - roles_overlay = _parse_roles_overlay(roles_overlay_payload) - roles = _apply_roles_overlay(roles, roles_overlay) - roles_overlay_source = "env" - - payload = dumps( - { - "plans": sorted(plans.keys()), - "descriptions": descriptions, - "roles": {scope: [r["role"] for r in roles[scope]] for scope in SCOPES}, - }, - sort_keys=True, - default=str, - ) - controls_hash = hashlib.sha256(payload.encode()).hexdigest()[:12] - - log.info( - "[access-controls] plans=%s roles=%s plan_overlay=%s roles_overlay=%s hash=%s", - plans_source, - roles_source, - plan_overlay_source, - roles_overlay_source, - controls_hash, - ) - - return plans, descriptions, roles, controls_hash - - -_PLANS, _PLAN_DESCRIPTIONS, _ROLES, _CONTROLS_HASH = _build_controls() - - -# --------------------------------------------------------------------------- -# Public accessors -# --------------------------------------------------------------------------- - - -def get_plans() -> Dict[str, Dict[Tracker, Any]]: - """Return the effective plan map (slug -> entitlement controls).""" - return _PLANS - - -def get_plan(slug: Optional[str]) -> Optional[Dict[Tracker, Any]]: - """Return the entitlement controls for a plan slug, or None if missing.""" - if not slug: - return None - return _PLANS.get(slug) - - -def get_plan_entitlements(slug: Optional[str]) -> Optional[Dict[Tracker, Any]]: - """Alias for `get_plan`. Kept distinct for readability at call sites.""" - if not slug: - return None - return _PLANS.get(slug) - - -def get_plan_description(slug: Optional[str]) -> Optional[str]: - """Return the operator-facing description for a plan, if any.""" - if not slug: - return None - return _PLAN_DESCRIPTIONS.get(slug) - - -def get_roles(scope: str) -> List[Dict[str, Any]]: - """Return the effective role catalog for a scope.""" - if scope not in SCOPES: - return [] - return _ROLES[scope] - - -def get_role(scope: str, slug: str) -> Optional[Dict[str, Any]]: - """Return a single role entry within a scope.""" - for entry in get_roles(scope): - if entry["role"] == slug: - return entry - return None - - -def get_role_permissions(scope: str, slug: str) -> List[str]: - """Return the permission slugs for a role within a scope.""" - role = get_role(scope, slug) - if not role: - return [] - return list(role["permissions"]) - - -def get_role_description(scope: str, slug: str) -> Optional[str]: - role = get_role(scope, slug) - if not role: - return None - return role.get("description") - - -def get_controls_hash() -> str: - """Stable short hash of the effective controls; useful in logs.""" - return _CONTROLS_HASH diff --git a/api/ee/src/core/entitlements/service.py b/api/ee/src/core/entitlements/service.py deleted file mode 100644 index 5cff086467..0000000000 --- a/api/ee/src/core/entitlements/service.py +++ /dev/null @@ -1,98 +0,0 @@ -from typing import Optional, Dict, List - -from ee.src.core.entitlements.types import ( - Tracker, - Constraint, - CONSTRAINTS, -) -from ee.src.core.entitlements.types import Quota, Gauge -from ee.src.core.entitlements.controls import get_plan_entitlements -from ee.src.core.meters.service import MetersService -from ee.src.core.meters.types import MeterDTO - - -class ConstaintsException(Exception): - issues: Dict[Gauge, int] = {} - - -class EntitlementsService: - def __init__( - self, - meters_service: MetersService, - ): - self.meters_service = meters_service - - async def enforce( - self, - *, - organization_id: str, - plan: str, - force: Optional[bool] = False, - ) -> None: - issues = await self.check( - organization_id=organization_id, - plan=plan, - ) - - if issues: - if not force: - raise ConstaintsException( - issues=issues, - ) - - await self.fix( - organization_id=organization_id, - issues=issues, - ) - - async def check( - self, - *, - organization_id: str, - plan: str, - ) -> Dict[Gauge, int]: - issues = {} - - entitlements = get_plan_entitlements(plan) or {} - - for key in CONSTRAINTS[Constraint.BLOCKED][Tracker.GAUGES]: - quotas: List[Quota] = entitlements.get(Tracker.GAUGES) or {} - - if key in quotas: - meter = MeterDTO( - organization_id=organization_id, - key=key, - ) - quota: Quota = quotas[key] - - check, meter = await self.meters_service.check( - meter=meter, - quota=quota, - ) - - if not check: - issues[key] = quota.limit - - return issues - - async def fix( - self, - *, - organization_id: str, - issues: Dict[Gauge, int], - ) -> None: - # TODO: Implement fix - pass - - -# TODO: -# -- P0 / MUST -# - Add active : Optional[bool] = None to all scopes and users -# -- P1 / SHOULD -# - Add parent scopes to all child scope -# - Add parent scopes membership on child scope membership creation -# - Remove children scopes membership on parent scope membership removal -# -- P2 / COULD -# - Add created_at / updated_at to all scopes -# - Set updated_at on all updates + on creation -# - Move organization roles to memberships diff --git a/api/ee/src/core/events/service.py b/api/ee/src/core/events/service.py index 6130203f4a..b2ba69319c 100644 --- a/api/ee/src/core/events/service.py +++ b/api/ee/src/core/events/service.py @@ -14,8 +14,8 @@ from oss.src.utils.logging import get_module_logger -from ee.src.core.entitlements.types import Tracker, Counter -from ee.src.core.entitlements.controls import get_plans +from ee.src.core.access.entitlements.types import Tracker, Counter +from ee.src.core.access.controls import get_plans from ee.src.dbs.postgres.events.dao import EventsDAO diff --git a/api/ee/src/core/meters/interfaces.py b/api/ee/src/core/meters/interfaces.py index 924aafff92..52a46de4b4 100644 --- a/api/ee/src/core/meters/interfaces.py +++ b/api/ee/src/core/meters/interfaces.py @@ -1,6 +1,6 @@ from typing import Tuple, Callable, Optional -from ee.src.core.entitlements.types import Quota +from ee.src.core.access.entitlements.types import Quota from ee.src.core.meters.types import MeterDTO, MeterScope, MeterPeriod, Meters diff --git a/api/ee/src/core/meters/service.py b/api/ee/src/core/meters/service.py index 8d6d9588d5..166a99edb4 100644 --- a/api/ee/src/core/meters/service.py +++ b/api/ee/src/core/meters/service.py @@ -1,13 +1,17 @@ from typing import Awaitable, Tuple, Callable, List, Optional from uuid import uuid4 -import stripe - from oss.src.utils.logging import get_module_logger from oss.src.utils.env import env - -from ee.src.core.entitlements.types import Quota -from ee.src.core.entitlements.types import Counter, Gauge, REPORTS, STRIPE_METER_NAMES +from oss.src.utils.lazy import _load_stripe + +from ee.src.core.access.entitlements.types import Quota +from ee.src.core.access.entitlements.types import ( + Counter, + Gauge, + REPORTS, + STRIPE_METER_NAMES, +) from ee.src.core.subscriptions.settings import get_stripe_meter_price from ee.src.core.meters.types import MeterDTO, MeterScope, MeterPeriod, Meters from ee.src.core.meters.interfaces import MetersDAOInterface @@ -22,13 +26,6 @@ _GAUGE_SLUGS: frozenset[str] = frozenset(g.value for g in Gauge) _COUNTER_SLUGS: frozenset[str] = frozenset(c.value for c in Counter) -# Initialize Stripe only if enabled -if env.stripe.enabled: - stripe.api_key = env.stripe.api_key - log.info("✓ Stripe enabled:", target=env.stripe.webhook_target) -else: - log.info("✗ Stripe disabled") - class MetersService: def __init__( @@ -89,6 +86,11 @@ async def report( log.warn("✗ Stripe disabled") return + stripe = _load_stripe() + if stripe is None: + log.error("[report] Failed to load Stripe module") + return + log.info("[report] ============================================") log.info("[report] Starting meter report job") log.info("[report] ============================================") diff --git a/api/ee/src/core/meters/types.py b/api/ee/src/core/meters/types.py index e249f03914..fda11dc331 100644 --- a/api/ee/src/core/meters/types.py +++ b/api/ee/src/core/meters/types.py @@ -9,7 +9,7 @@ from oss.src.utils.env import env from oss.src.utils.logging import get_module_logger -from ee.src.core.entitlements.types import Counter, Gauge +from ee.src.core.access.entitlements.types import Counter, Gauge from ee.src.core.subscriptions.types import SubscriptionDTO diff --git a/api/ee/src/core/subscriptions/service.py b/api/ee/src/core/subscriptions/service.py index db0624a4aa..6cdbd5e8ab 100644 --- a/api/ee/src/core/subscriptions/service.py +++ b/api/ee/src/core/subscriptions/service.py @@ -2,12 +2,10 @@ from uuid import getnode from datetime import datetime, timezone, timedelta - -import stripe - from oss.src.utils.logging import get_module_logger from oss.src.utils.env import env from oss.src.utils.caching import invalidate_cache +from oss.src.utils.lazy import _load_stripe from ee.src.core.subscriptions.types import ( SubscriptionDTO, @@ -23,18 +21,9 @@ trial_enabled, ) from ee.src.core.subscriptions.interfaces import SubscriptionsDAOInterface -from ee.src.core.entitlements.service import EntitlementsService -from ee.src.core.meters.service import MetersService log = get_module_logger(__name__) -# Initialize Stripe only if enabled -if env.stripe.enabled: - stripe.api_key = env.stripe.api_key - log.info("✓ Stripe enabled:", target=env.stripe.webhook_target) -else: - log.info("✗ Stripe disabled") - MAC_ADDRESS = ":".join(f"{(getnode() >> ele) & 0xFF:02x}" for ele in range(40, -1, -8)) @@ -50,11 +39,8 @@ class SubscriptionsService: def __init__( self, subscriptions_dao: SubscriptionsDAOInterface, - meters_service: MetersService, ): self.subscriptions_dao = subscriptions_dao - self.meters_service = meters_service - self.entitlements_service = EntitlementsService(meters_service=meters_service) async def create( self, @@ -87,6 +73,10 @@ async def start_reverse_trial( if not env.stripe.enabled: raise EventException("Reverse trial requires Stripe to be enabled") + stripe = _load_stripe() + if stripe is None: + raise EventException("Failed to load Stripe module") + if not trial_enabled(): raise EventException( "Reverse trial requires an AGENTA_BILLING_PRICING entry " @@ -303,6 +293,11 @@ async def process_event( log.warn("✗ Stripe disabled") return None + stripe = _load_stripe() + if stripe is None: + log.error("Failed to load Stripe module") + raise EventException("Stripe is not available for plan switching") + if subscription.plan == plan: log.warn("Subscription already on the plan: %s", plan) @@ -331,12 +326,6 @@ async def process_event( subscription.active = True subscription.plan = plan - # await self.entitlements_service.enforce( - # organization_id=organization_id, - # plan=plan, - # force=force, - # ) - stripe.Subscription.modify( subscription.subscription_id, items=[ @@ -356,12 +345,6 @@ async def process_event( subscription.subscription_id = None subscription.anchor = anchor - # await self.entitlements_service.enforce( - # organization_id=organization_id, - # plan=free_plan, - # force=True, - # ) - subscription = await self.update(subscription=subscription) else: diff --git a/api/ee/src/core/subscriptions/settings.py b/api/ee/src/core/subscriptions/settings.py index c3b752a5ba..9c16700a5e 100644 --- a/api/ee/src/core/subscriptions/settings.py +++ b/api/ee/src/core/subscriptions/settings.py @@ -17,8 +17,8 @@ from oss.src.utils.env import env from oss.src.utils.logging import get_module_logger -from ee.src.core.entitlements.controls import get_plans -from ee.src.core.entitlements.types import ( +from ee.src.core.access.controls import get_plans +from ee.src.core.access.entitlements.types import ( DEFAULT_CATALOG, DefaultPlan, ) @@ -124,7 +124,7 @@ def _normalize_pricing_entry(slug: str, entry: Any) -> Dict[str, Any]: plus an optional `"quantity"` (default `1` when omitted). The internal `Counter` / `Gauge` slug → Stripe-side slot name map lives - in `ee.src.core.entitlements.types.STRIPE_METER_NAMES`. The runtime in + in `ee.src.core.access.entitlements.types.STRIPE_METER_NAMES`. The runtime in `ee.src.core.meters.service` resolves the internal slug through that map before looking up the price ID here; that is why the operator's pricing JSON uses Stripe-side names (matching their Stripe dashboard) diff --git a/api/ee/src/core/subscriptions/types.py b/api/ee/src/core/subscriptions/types.py index 35b8285381..652b66d7ef 100644 --- a/api/ee/src/core/subscriptions/types.py +++ b/api/ee/src/core/subscriptions/types.py @@ -7,7 +7,7 @@ from oss.src.utils.env import env from pydantic import BaseModel -from ee.src.core.entitlements.types import DefaultPlan +from ee.src.core.access.entitlements.types import DefaultPlan class Event(str, Enum): diff --git a/api/ee/src/core/tracing/service.py b/api/ee/src/core/tracing/service.py index f76a4644cc..bc060e2689 100644 --- a/api/ee/src/core/tracing/service.py +++ b/api/ee/src/core/tracing/service.py @@ -2,8 +2,8 @@ from oss.src.utils.logging import get_module_logger -from ee.src.core.entitlements.types import Tracker, Counter -from ee.src.core.entitlements.controls import get_plans +from ee.src.core.access.entitlements.types import Tracker, Counter +from ee.src.core.access.controls import get_plans from ee.src.dbs.postgres.tracing.dao import TracingDAO diff --git a/api/ee/src/core/workspaces/types.py b/api/ee/src/core/workspaces/types.py index 4016a564df..3dfa04f9cc 100644 --- a/api/ee/src/core/workspaces/types.py +++ b/api/ee/src/core/workspaces/types.py @@ -3,13 +3,13 @@ from pydantic import BaseModel -from ee.src.models.shared_models import Permission +from ee.src.core.access.permissions.types import Permission class WorkspacePermission(BaseModel): # Role slugs are dynamic (env-overridable via AGENTA_ACCESS_ROLES); # validation against the effective scope catalog happens at the API - # boundary via `ee.src.core.entitlements.controls.get_role`. + # boundary via `ee.src.core.access.controls.get_role`. role_name: str role_description: Optional[str] = None permissions: Optional[List[Permission]] = None diff --git a/api/ee/src/dbs/postgres/events/dao.py b/api/ee/src/dbs/postgres/events/dao.py index f2437a0357..334077bda9 100644 --- a/api/ee/src/dbs/postgres/events/dao.py +++ b/api/ee/src/dbs/postgres/events/dao.py @@ -11,7 +11,7 @@ """ from datetime import datetime -from typing import List +from typing import List, Optional from uuid import UUID from sqlalchemy import bindparam, delete, func, literal, select, tuple_ @@ -22,7 +22,12 @@ from oss.src.models.db_models import ProjectDB -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + AnalyticsEngine, + get_transactions_engine, + get_analytics_engine, +) from oss.src.dbs.postgres.events.dbes import EventDBE from ee.src.dbs.postgres.subscriptions.dbes import SubscriptionDBE @@ -39,6 +44,18 @@ class EventsDAO: collide. Matches the EE/OSS tracing pattern. """ + def __init__( + self, + transactions_engine: Optional[TransactionsEngine] = None, + analytics_engine: Optional[AnalyticsEngine] = None, + ): + if transactions_engine is None: + transactions_engine = get_transactions_engine() + if analytics_engine is None: + analytics_engine = get_analytics_engine() + self.transactions_engine = transactions_engine + self.analytics_engine = analytics_engine + async def fetch_projects_with_plan( self, *, @@ -47,7 +64,7 @@ async def fetch_projects_with_plan( max_projects: int, ) -> List[UUID]: """Page through projects whose org subscribes to the given plan.""" - async with engine.core_session() as session: + async with self.transactions_engine.session() as session: stmt = ( select(ProjectDB.id) .select_from( @@ -88,7 +105,7 @@ async def delete_events_before_cutoff( if not project_ids: return 0 - async with engine.tracing_session() as session: + async with self.analytics_engine.session() as session: project_ids_param = bindparam( "project_ids", value=project_ids, diff --git a/api/ee/src/dbs/postgres/meters/dao.py b/api/ee/src/dbs/postgres/meters/dao.py index 100e8f0f16..26eb462577 100644 --- a/api/ee/src/dbs/postgres/meters/dao.py +++ b/api/ee/src/dbs/postgres/meters/dao.py @@ -8,14 +8,17 @@ from oss.src.utils.logging import get_module_logger -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) -from ee.src.core.entitlements.types import Quota +from ee.src.core.access.entitlements.types import Quota from ee.src.core.meters.types import MeterDTO, MeterScope, MeterPeriod, Meters from ee.src.core.subscriptions.types import SubscriptionDTO from ee.src.core.meters.interfaces import MetersDAOInterface from ee.src.dbs.postgres.meters.dbes import MeterDBE -from ee.src.utils.entitlements import period_from +from ee.src.core.access.entitlements.service import period_from log = get_module_logger(__name__) @@ -90,8 +93,10 @@ def _format_meter_for_log(meter: MeterDTO) -> str: class MetersDAO(MetersDAOInterface): - def __init__(self): - pass + def __init__(self, engine: TransactionsEngine = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine async def dump( self, @@ -99,7 +104,7 @@ async def dump( ) -> list[MeterDTO]: log.info(f"[report] [dump] Starting (limit={limit or 'none'})") - async with engine.core_session() as session: + async with self.engine.session() as session: try: stmt = ( select(MeterDBE) @@ -252,7 +257,7 @@ async def _bump_commit_chunk( missing_count = 0 missing_samples: list[str] = [] - async with engine.core_session() as session: + async with self.engine.session() as session: for meter in meters: stmt = ( update(MeterDBE) @@ -300,7 +305,7 @@ async def fetch( pins lifetime/gauge-sentinel rows (`year/month/day IS NULL`). Any other `MeterPeriod` binds every period dim uniformly. """ - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(MeterDBE).options( joinedload(MeterDBE.subscription) ) # NO RISK OF DEADLOCK @@ -341,7 +346,7 @@ async def check( ) -> Tuple[bool, MeterDTO]: meter = _normalize_period_on_meter(meter, quota, anchor) - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(MeterDBE).filter_by( meter_id=meter.meter_id, ) # NO RISK OF DEADLOCK @@ -458,7 +463,7 @@ async def adjust( where = where | where_clause # 4. Build SQL statement (atomic upsert with RETURNING) - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( insert(MeterDBE) .values( diff --git a/api/ee/src/dbs/postgres/organizations/dao.py b/api/ee/src/dbs/postgres/organizations/dao.py index 00658837db..ead881360c 100644 --- a/api/ee/src/dbs/postgres/organizations/dao.py +++ b/api/ee/src/dbs/postgres/organizations/dao.py @@ -1,9 +1,13 @@ from typing import Optional, List +from datetime import datetime, timezone from sqlalchemy import select, and_ from sqlalchemy.ext.asyncio import AsyncSession -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from ee.src.dbs.postgres.organizations.dbes import ( OrganizationDomainDBE, OrganizationProviderDBE, @@ -18,8 +22,15 @@ class OrganizationDomainsDAO: 2. Without a session (creates own sessions): OrganizationDomainsDAO() """ - def __init__(self, session: Optional[AsyncSession] = None): + def __init__( + self, + session: Optional[AsyncSession] = None, + engine: Optional[TransactionsEngine] = None, + ): self.session = session + if engine is None: + engine = get_transactions_engine() + self.engine = engine async def create( self, @@ -54,7 +65,7 @@ async def create( return domain else: - async with engine.core_session() as session: + async with self.engine.session() as session: domain = OrganizationDomainDBE( organization_id=organization_id, slug=slug, @@ -92,7 +103,7 @@ async def get_by_id( return result.scalars().first() else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationDomainDBE).where( and_( @@ -125,7 +136,7 @@ async def get_by_slug( return result.scalars().first() else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationDomainDBE).where( and_( @@ -158,7 +169,7 @@ async def get_verified_by_slug( return result.scalars().first() else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationDomainDBE).where( and_( @@ -186,7 +197,7 @@ async def list_by_organization( return list(result.scalars().all()) else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationDomainDBE).where( OrganizationDomainDBE.organization_id == organization_id @@ -207,9 +218,12 @@ async def update_flags( """Update domain flags (e.g., mark as verified).""" domain = await self.get_by_id(domain_id=domain_id, organization_id="") + now = datetime.now(timezone.utc) + if self.session: if domain: domain.flags = flags + domain.updated_at = now domain.updated_by_id = updated_by_id await self.session.flush() @@ -218,13 +232,14 @@ async def update_flags( return domain else: - async with engine.core_session() as session: + async with self.engine.session() as session: if domain: # Re-attach to new session domain = await session.get(OrganizationDomainDBE, domain_id) if domain: domain.flags = flags + domain.updated_at = now domain.updated_by_id = updated_by_id await session.commit() @@ -252,7 +267,7 @@ async def delete( return False else: - async with engine.core_session() as session: + async with self.engine.session() as session: domain = await session.get(OrganizationDomainDBE, domain_id) if domain: @@ -272,8 +287,15 @@ class OrganizationProvidersDAO: 2. Without a session (creates own sessions): OrganizationProvidersDAO() """ - def __init__(self, session: Optional[AsyncSession] = None): + def __init__( + self, + session: Optional[AsyncSession] = None, + engine: Optional[TransactionsEngine] = None, + ): self.session = session + if engine is None: + engine = get_transactions_engine() + self.engine = engine async def create( self, @@ -311,7 +333,7 @@ async def create( return provider else: - async with engine.core_session() as session: + async with self.engine.session() as session: provider = OrganizationProviderDBE( organization_id=organization_id, slug=slug, @@ -350,7 +372,7 @@ async def get_by_id( return result.scalars().first() else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationProviderDBE).where( and_( @@ -378,7 +400,7 @@ async def get_by_id_any( return result.scalars().first() else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationProviderDBE).where( OrganizationProviderDBE.id == provider_id @@ -408,7 +430,7 @@ async def get_by_slug( return result.scalars().first() else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationProviderDBE).where( and_( @@ -436,7 +458,7 @@ async def list_by_organization( return list(result.scalars().all()) else: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(OrganizationProviderDBE).where( OrganizationProviderDBE.organization_id == organization_id @@ -458,6 +480,8 @@ async def update( # ) -> Optional[OrganizationProviderDBE]: """Update a provider's secret reference or flags.""" + now = datetime.now(timezone.utc) + if self.session: provider = await self.session.get(OrganizationProviderDBE, provider_id) @@ -466,6 +490,7 @@ async def update( provider.secret_id = secret_id if flags is not None: provider.flags = flags + provider.updated_at = now if updated_by_id: provider.updated_by_id = updated_by_id @@ -475,7 +500,7 @@ async def update( return provider else: - async with engine.core_session() as session: + async with self.engine.session() as session: provider = await session.get(OrganizationProviderDBE, provider_id) if provider: @@ -483,6 +508,7 @@ async def update( provider.secret_id = secret_id if flags is not None: provider.flags = flags + provider.updated_at = now if updated_by_id: provider.updated_by_id = updated_by_id @@ -511,7 +537,7 @@ async def delete( return False else: - async with engine.core_session() as session: + async with self.engine.session() as session: provider = await session.get(OrganizationProviderDBE, provider_id) if provider: diff --git a/api/ee/src/dbs/postgres/subscriptions/dao.py b/api/ee/src/dbs/postgres/subscriptions/dao.py index 93d67dcac4..58f7f26f03 100644 --- a/api/ee/src/dbs/postgres/subscriptions/dao.py +++ b/api/ee/src/dbs/postgres/subscriptions/dao.py @@ -5,7 +5,10 @@ from ee.src.core.subscriptions.types import SubscriptionDTO from ee.src.core.subscriptions.interfaces import SubscriptionsDAOInterface -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from ee.src.dbs.postgres.subscriptions.dbes import SubscriptionDBE from ee.src.dbs.postgres.subscriptions.mappings import ( map_dbe_to_dto, @@ -14,15 +17,17 @@ class SubscriptionsDAO(SubscriptionsDAOInterface): - def __init__(self): - pass + def __init__(self, engine: TransactionsEngine = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine async def create( self, *, subscription: SubscriptionDTO, ) -> SubscriptionDTO: - async with engine.core_session() as session: + async with self.engine.session() as session: subscription_dbe = map_dto_to_dbe(subscription) session.add(subscription_dbe) @@ -38,7 +43,7 @@ async def read( *, organization_id: str, ) -> Optional[SubscriptionDTO]: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(SubscriptionDBE).where( SubscriptionDBE.organization_id == organization_id, @@ -59,7 +64,7 @@ async def update( *, subscription: SubscriptionDTO, ) -> Optional[SubscriptionDTO]: - async with engine.core_session() as session: + async with self.engine.session() as session: result = await session.execute( select(SubscriptionDBE).where( SubscriptionDBE.organization_id == subscription.organization_id, diff --git a/api/ee/src/dbs/postgres/tracing/dao.py b/api/ee/src/dbs/postgres/tracing/dao.py index a3c3b0f91b..2d7578a5e7 100644 --- a/api/ee/src/dbs/postgres/tracing/dao.py +++ b/api/ee/src/dbs/postgres/tracing/dao.py @@ -10,7 +10,12 @@ from oss.src.models.db_models import ProjectDB -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + AnalyticsEngine, + get_transactions_engine, + get_analytics_engine, +) from oss.src.dbs.postgres.tracing.dbes import SpanDBE from ee.src.dbs.postgres.subscriptions.dbes import SubscriptionDBE @@ -70,6 +75,18 @@ class TracingDAO: + def __init__( + self, + transactions_engine: TransactionsEngine = None, + analytics_engine: AnalyticsEngine = None, + ): + if transactions_engine is None: + transactions_engine = get_transactions_engine() + if analytics_engine is None: + analytics_engine = get_analytics_engine() + self.transactions_engine = transactions_engine + self.analytics_engine = analytics_engine + # ---------------- # # Raw-SQL versions # ---------------- # @@ -81,7 +98,7 @@ async def _fetch_projects_with_plan( project_id: Optional[UUID], max_projects: int, ) -> List[UUID]: - async with engine.core_session() as session: + async with self.transactions_engine.session() as session: result = await session.execute( CORE_PROJECTS_PAGE_SQL, { @@ -105,7 +122,7 @@ async def _delete_traces_before_cutoff( if not project_ids: return (0, 0) - async with engine.tracing_session() as session: + async with self.analytics_engine.session() as session: result = await session.execute( TRACING_DELETE_SQL, { @@ -135,7 +152,7 @@ async def fetch_projects_with_plan( project_id: Optional[UUID], max_projects: int, ) -> List[UUID]: - async with engine.core_session() as session: + async with self.transactions_engine.session() as session: stmt = ( select(ProjectDB.id) .select_from( @@ -167,7 +184,7 @@ async def delete_traces_before_cutoff( if not project_ids: return (0, 0) - async with engine.tracing_session() as session: + async with self.analytics_engine.session() as session: project_ids_param = bindparam( "project_ids", value=project_ids, diff --git a/api/ee/src/main.py b/api/ee/src/main.py index d940deb852..a6ae8aaedb 100644 --- a/api/ee/src/main.py +++ b/api/ee/src/main.py @@ -4,6 +4,11 @@ from oss.src.utils.env import env from oss.src.utils.logging import get_module_logger +from oss.src.dbs.postgres.shared.engine import ( + get_transactions_engine, + get_analytics_engine, +) + from ee.src.routers import ( workspace_router, organization_router as _organization_router, @@ -12,6 +17,7 @@ from ee.src.dbs.postgres.meters.dao import MetersDAO from ee.src.dbs.postgres.tracing.dao import TracingDAO from ee.src.dbs.postgres.subscriptions.dao import SubscriptionsDAO +from ee.src.dbs.postgres.organizations.dao import OrganizationDomainsDAO from ee.src.dbs.postgres.events.dao import EventsDAO from ee.src.core.meters.service import MetersService @@ -26,15 +32,24 @@ from ee.src.apis.fastapi.organizations.router import ( router as organization_router, ) -from ee.src.utils.entitlements import bootstrap_entitlements_services +from ee.src.core.access.entitlements.service import bootstrap_entitlements_services # DBS -------------------------------------------------------------------------- -meters_dao = MetersDAO() +# Get engines from shared initialization (instantiated in routers.py) +_transactions_engine = get_transactions_engine() +_analytics_engine = get_analytics_engine() + +meters_dao = MetersDAO(engine=_transactions_engine) -tracing_dao = TracingDAO() +tracing_dao = TracingDAO( + transactions_engine=_transactions_engine, + analytics_engine=_analytics_engine, +) + +subscriptions_dao = SubscriptionsDAO(engine=_transactions_engine) -subscriptions_dao = SubscriptionsDAO() +organization_domains_dao = OrganizationDomainsDAO(engine=_transactions_engine) events_dao = EventsDAO() @@ -54,7 +69,6 @@ subscription_service = SubscriptionsService( subscriptions_dao=subscriptions_dao, - meters_service=meters_service, ) # Wire entitlements module against the freshly-built services so the diff --git a/api/ee/src/services/throttling_service.py b/api/ee/src/middlewares/throttling.py similarity index 96% rename from api/ee/src/services/throttling_service.py rename to api/ee/src/middlewares/throttling.py index ed6ceffcb3..d8acc6afe2 100644 --- a/api/ee/src/services/throttling_service.py +++ b/api/ee/src/middlewares/throttling.py @@ -8,7 +8,7 @@ from oss.src.utils.logging import get_module_logger from oss.src.utils.throttling import Algorithm, check_throttles -from ee.src.core.entitlements.types import ( +from ee.src.core.access.entitlements.types import ( ENDPOINTS, Category, Method, @@ -16,11 +16,9 @@ Throttle, Tracker, ) -from ee.src.core.entitlements.controls import get_plan_entitlements, get_plans +from ee.src.core.access.controls import get_plan_entitlements, get_plans from ee.src.core.subscriptions.settings import get_free_plan -from ee.src.core.meters.service import MetersService from ee.src.core.subscriptions.service import SubscriptionsService -from ee.src.dbs.postgres.meters.dao import MetersDAO from ee.src.dbs.postgres.subscriptions.dao import SubscriptionsDAO log = get_module_logger(__name__) @@ -29,13 +27,8 @@ _warned_no_throttles = False _warned_fallback_pairs: set[tuple[str | None, str | None]] = set() -meters_service = MetersService( - meters_dao=MetersDAO(), -) - subscriptions_service = SubscriptionsService( subscriptions_dao=SubscriptionsDAO(), - meters_service=meters_service, ) diff --git a/api/ee/src/models/api/workspace_models.py b/api/ee/src/models/api/workspace_models.py index f8f9ebacde..9dfe03c00f 100644 --- a/api/ee/src/models/api/workspace_models.py +++ b/api/ee/src/models/api/workspace_models.py @@ -4,13 +4,13 @@ from pydantic import BaseModel from ee.src.models.api.api_models import TimestampModel -from ee.src.models.shared_models import Permission +from ee.src.core.access.permissions.types import Permission class WorkspacePermission(BaseModel): # Role slugs are dynamic (env-overridable via AGENTA_ACCESS_ROLES); # validation against the effective scope catalog happens at the API - # boundary via `ee.src.core.entitlements.controls.get_role`. + # boundary via `ee.src.core.access.controls.get_role`. role_name: str role_description: Optional[str] = None permissions: Optional[List[Permission]] = None diff --git a/api/ee/src/routers/organization_router.py b/api/ee/src/routers/organization_router.py index 717163639a..488e9aeb4c 100644 --- a/api/ee/src/routers/organization_router.py +++ b/api/ee/src/routers/organization_router.py @@ -8,11 +8,11 @@ from oss.src.services import db_manager -from ee.src.utils.permissions import ( +from ee.src.core.access.permissions.service import ( check_user_org_access, check_rbac_permission, ) -from ee.src.utils.entitlements import ( +from ee.src.core.access.entitlements.service import ( check_entitlements, scope_from, Tracker, @@ -24,8 +24,8 @@ db_manager_ee, workspace_manager, ) -from ee.src.services.selectors import get_user_org_and_workspace_id -from ee.src.models.shared_models import Permission +from ee.src.services.db_manager_ee import get_user_org_and_workspace_id +from ee.src.core.access.permissions.types import Permission from ee.src.models.api.workspace_models import ( CreateWorkspace, diff --git a/api/ee/src/routers/workspace_router.py b/api/ee/src/routers/workspace_router.py index 5ed85d6cf7..e46578b58a 100644 --- a/api/ee/src/routers/workspace_router.py +++ b/api/ee/src/routers/workspace_router.py @@ -5,14 +5,14 @@ from oss.src.utils.logging import get_module_logger from oss.src.utils.common import APIRouter -from ee.src.utils.permissions import check_action_access +from ee.src.core.access.permissions.service import check_action_access from ee.src.services import workspace_manager, db_manager_ee from ee.src.models.api.workspace_models import ( UserRole, ) -from ee.src.models.shared_models import Permission -from ee.src.core.entitlements.controls import get_role +from ee.src.core.access.permissions.types import Permission +from ee.src.core.access.controls import get_role router = APIRouter() diff --git a/api/ee/src/services/admin_manager.py b/api/ee/src/services/admin_manager.py index 2aa827c03e..4c8fee002f 100644 --- a/api/ee/src/services/admin_manager.py +++ b/api/ee/src/services/admin_manager.py @@ -7,7 +7,7 @@ from oss.src.utils.logging import get_module_logger -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import get_transactions_engine from oss.src.models.db_models import UserDB from oss.src.services.api_key_service import create_api_key @@ -88,7 +88,7 @@ class ProjectRequest(BaseModel): # Role slugs are dynamic at runtime (env-overridable via AGENTA_ACCESS_ROLES); # validation against the effective per-scope catalog happens at the handler -# boundary via `ee.src.core.entitlements.controls.get_role`. +# boundary via `ee.src.core.access.controls.get_role`. class OrganizationMembershipRequest(BaseModel): role: str is_demo: bool @@ -119,7 +119,9 @@ class ProjectMembershipRequest(BaseModel): async def check_user( request: UserRequest, ) -> Optional[UserRequest]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(UserDB).filter_by( email=request.email, @@ -136,7 +138,9 @@ async def check_user( async def create_user( request: UserRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: user_db = UserDB( # id=uuid7() # use default # @@ -162,7 +166,9 @@ async def create_user( async def create_organization( request: OrganizationRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: organization_db = OrganizationDB( name=request.name, description=request.description, @@ -190,7 +196,9 @@ async def create_organization( async def create_workspace( request: WorkspaceRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: workspace_db = WorkspaceDB( # id=uuid7() # use default # @@ -219,7 +227,9 @@ async def create_workspace( async def create_project( request: ProjectRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project_db = ProjectDB( # id=uuid7() # use default # @@ -250,7 +260,9 @@ async def create_project( async def create_organization_membership( request: OrganizationMembershipRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: membership_db = OrganizationMembershipDB( # id=uuid7() # use default # @@ -293,7 +305,9 @@ async def create_organization_membership( async def create_workspace_membership( request: WorkspaceMembershipRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: workspace = await session.execute( select(WorkspaceDB).filter_by( id=request.workspace_ref.id, @@ -334,7 +348,9 @@ async def create_workspace_membership( async def create_project_membership( request: ProjectMembershipRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project = await session.execute( select(ProjectDB).filter_by( id=request.project_ref.id, diff --git a/api/ee/src/services/commoners.py b/api/ee/src/services/commoners.py index 493735d3fd..e3155467ee 100644 --- a/api/ee/src/services/commoners.py +++ b/api/ee/src/services/commoners.py @@ -24,26 +24,23 @@ delete_user, ) from oss.src.models.db_models import OrganizationDB -from ee.src.services.email_helper import ( - add_contact_to_loops, -) +from oss.src.utils import emailing from oss.src.core.auth.service import AuthService from ee.src.dbs.postgres.subscriptions.dao import SubscriptionsDAO from ee.src.core.subscriptions.service import SubscriptionsService from ee.src.core.subscriptions.types import get_default_plan -from ee.src.dbs.postgres.meters.dao import MetersDAO -from ee.src.core.meters.service import MetersService -from ee.src.utils.entitlements import check_entitlements, scope_from, Gauge +from ee.src.core.access.entitlements.service import ( + check_entitlements, + scope_from, + Gauge, +) from ee.src.core.organizations.exceptions import OrganizationCreationNotAllowedError log = get_module_logger(__name__) subscription_service = SubscriptionsService( subscriptions_dao=SubscriptionsDAO(), - meters_service=MetersService( - meters_dao=MetersDAO(), - ), ) DEMOS = "AGENTA_DEMOS" @@ -247,7 +244,7 @@ async def create_accounts( if is_ee(): try: # Adds contact to loops for marketing emails. TODO: Add opt-in checkbox to supertokens - add_contact_to_loops(user_dict["email"]) # type: ignore + emailing.add_contact(user_dict["email"]) # type: ignore except ConnectionError as ex: log.warn("error adding contact to loops %s", ex) diff --git a/api/ee/src/services/converters.py b/api/ee/src/services/converters.py deleted file mode 100644 index e0520b68e5..0000000000 --- a/api/ee/src/services/converters.py +++ /dev/null @@ -1,158 +0,0 @@ -from typing import List, Any -from datetime import datetime, timezone - -from oss.src.services import db_manager -from ee.src.services import db_manager_ee -from ee.src.core.workspaces.types import WorkspaceResponse -from ee.src.core.entitlements.controls import ( - get_role_description, - get_role_permissions, -) -from ee.src.models.shared_models import Permission -from oss.src.models.db_models import WorkspaceDB - - -def _role_slug(role: Any) -> str: - """Normalize an enum or string role to its slug form.""" - return role.value if hasattr(role, "value") else str(role) - - -def _expand_permissions(slugs: List[str]) -> List[str]: - """Expand the `"*"` wildcard to the full list of Permission enum values. - - Why: `WorkspacePermission.permissions` is typed as `List[Permission]` and - the owner role stores `["*"]` as a wildcard. Pydantic rejects `"*"` since - it's not an enum member, so we materialize it at the API boundary. - """ - if "*" not in slugs: - return slugs - return [p.value for p in Permission] - - -async def get_workspace_in_format( - workspace: WorkspaceDB, - include_members: bool = True, -) -> WorkspaceResponse: - """Converts the workspace object to the WorkspaceResponse model. - - Arguments: - workspace (WorkspaceDB): The workspace object - include_members (bool): Whether to include workspace members. Defaults to True. - - Returns: - WorkspaceResponse: The workspace object in the WorkspaceResponse model - """ - - members = [] - - if include_members: - project = await db_manager_ee.get_project_by_workspace( - workspace_id=str(workspace.id) - ) - project_members = await db_manager_ee.get_project_members( - project_id=str(project.id) - ) - invitations = await db_manager_ee.get_project_invitations( - project_id=str(project.id), invitation_used=False - ) - - if len(invitations) > 0: - for invitation in invitations: - if not invitation.used and str(invitation.project_id) == str( - project.id - ): - user = await db_manager.get_user_with_email(invitation.email) - member_dict = { - "user": { - "id": str(user.id) if user else invitation.email, - "email": user.email if user else invitation.email, - "username": ( - user.username - if user - else invitation.email.split("@")[0] - ), - "status": ( - "pending" - if invitation.expiration_date - > datetime.now(timezone.utc) - else "expired" - ), - "created_at": ( - str(user.created_at) - if user - else ( - str(invitation.created_at) - if str(invitation.created_at) - else None - ) - ), - }, - "roles": [ - { - "role_name": invitation.role, - "role_description": get_role_description( - "workspace", _role_slug(invitation.role) - ), - } - ], - } - members.append(member_dict) - - for project_member in project_members: - member_role = project_member.role - member_dict = { - "user": { - "id": str(project_member.user.id), - "email": project_member.user.email, - "username": project_member.user.username, - "status": "member", - "created_at": str(project_member.user.created_at), - }, - "roles": ( - [ - { - "role_name": member_role, - "role_description": get_role_description( - "project", _role_slug(member_role) - ), - "permissions": _expand_permissions( - get_role_permissions("project", _role_slug(member_role)) - ), - } - ] - if member_role - else [] - ), - } - members.append(member_dict) - - workspace_response = WorkspaceResponse( - id=str(workspace.id), - name=workspace.name, - description=workspace.description, - type=workspace.type, - members=members, - organization=str(workspace.organization_id), - created_at=str(workspace.created_at), - updated_at=str(workspace.updated_at), - ) - return workspace_response - - -async def get_all_workspace_permissions() -> List[Permission]: - """ - Retrieve all workspace permissions. - - Returns: - List[Permission]: A list of all workspace permissions in the DB. - """ - workspace_permissions = list(Permission) - return workspace_permissions - - -def get_all_workspace_permissions_by_role(role_name: str) -> List[str]: - """Retrieve all permissions assigned to a workspace role. - - Resolved via access-controls (env-overridable via AGENTA_ACCESS_ROLES). - """ - return _expand_permissions(get_role_permissions("workspace", role_name)) diff --git a/api/ee/src/services/db_manager.py b/api/ee/src/services/db_manager.py deleted file mode 100644 index a97b52af6d..0000000000 --- a/api/ee/src/services/db_manager.py +++ /dev/null @@ -1,35 +0,0 @@ -import uuid - -from oss.src.dbs.postgres.shared.engine import engine -from oss.src.models.db_models import DeploymentDB - - -async def create_deployment( - app_id: str, - project_id: str, - uri: str, -) -> DeploymentDB: - """Create a new deployment. - Args: - app_id (str): The app variant to create the deployment for. - project_id (str): The project variant to create the deployment for. - uri (str): The URI of the service. - Returns: - DeploymentDB: The created deployment. - """ - - async with engine.core_session() as session: - try: - deployment = DeploymentDB( - app_id=uuid.UUID(app_id), - project_id=uuid.UUID(project_id), - uri=uri, - ) - - session.add(deployment) - await session.commit() - await session.refresh(deployment) - - return deployment - except Exception as e: - raise Exception(f"Error while creating deployment: {e}") diff --git a/api/ee/src/services/db_manager_ee.py b/api/ee/src/services/db_manager_ee.py index 9b57ebf3c8..405e65e2a6 100644 --- a/api/ee/src/services/db_manager_ee.py +++ b/api/ee/src/services/db_manager_ee.py @@ -1,8 +1,7 @@ -from typing import List, Set, Union, NoReturn, Optional, Tuple +from typing import Any, Dict, List, Set, Union, NoReturn, Optional, Tuple import uuid from datetime import datetime, timezone -import sendgrid from fastapi import HTTPException from sqlalchemy import delete, func, update @@ -14,7 +13,9 @@ from oss.src.utils.logging import get_module_logger -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + get_transactions_engine, +) from oss.src.services import db_manager from ee.src.core.workspaces.types import ( UserRole, @@ -27,8 +28,12 @@ CreateOrganization, OrganizationUpdate, ) -from ee.src.models.shared_models import WorkspaceRole -from ee.src.core.entitlements.controls import get_roles +from ee.src.core.access.permissions.types import Permission, RequiredRole +from ee.src.core.access.controls import ( + get_roles, + get_role_description, + get_role_permissions, +) from oss.src.models.db_models import ( OrganizationDB, @@ -44,6 +49,7 @@ from oss.src.models.db_models import ( UserDB, InvitationDB, + DeploymentDB, ) from ee.src.core.organizations.exceptions import ( @@ -54,15 +60,10 @@ OrganizationProvidersDAO, OrganizationDomainsDAO, ) -from ee.src.services.converters import get_workspace_in_format -from ee.src.services.selectors import get_org_default_workspace from oss.src.utils.env import env -# Initialize sendgrid api client -sg = sendgrid.SendGridAPIClient(api_key=env.sendgrid.api_key) - log = get_module_logger(__name__) @@ -77,7 +78,9 @@ async def get_organization(organization_id: str) -> OrganizationDB: OrganizationDB: The fetched organization. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) ) @@ -96,7 +99,9 @@ async def get_organizations_by_list_ids(organization_ids: List) -> List[Organiza List: A list of dictionaries representing the retrieved organizations. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: organization_uuids = [ uuid.UUID(organization_id) for organization_id in organization_ids ] @@ -116,7 +121,9 @@ async def count_organizations_by_owner(owner_id: str) -> int: Returns: int: The count of organizations owned by the user. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(func.count(OrganizationDB.id)).where( OrganizationDB.owner_id == uuid.UUID(owner_id) @@ -136,7 +143,9 @@ async def get_default_workspace_id(user_id: str) -> str: str: The default workspace ID. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceMemberDB) .filter_by(user_id=uuid.UUID(user_id)) @@ -157,7 +166,7 @@ async def get_default_workspace_id(user_id: str) -> str: ( membership for membership in memberships - if membership.role == WorkspaceRole.OWNER + if membership.role == RequiredRole.OWNER ), None, ) @@ -181,7 +190,9 @@ async def get_organization_workspaces(organization_id: str): organization_id (str): The ID of the organization """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceDB) .filter_by(organization_id=uuid.UUID(organization_id)) @@ -199,7 +210,9 @@ async def get_workspace_members(workspace_id: str) -> List[WorkspaceMemberDB]: Used by RBAC / admin helpers to derive roles and permissions. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceMemberDB).where( WorkspaceMemberDB.workspace_id == workspace_id @@ -221,7 +234,7 @@ async def get_workspace_administrators(workspace: WorkspaceDB) -> List[UserDB]: admin_user_ids = [ str(member.user_id) for member in members - if member.role in (WorkspaceRole.ADMIN, WorkspaceRole.OWNER) + if member.role in (RequiredRole.ADMIN, RequiredRole.OWNER) ] administrators: List[UserDB] = [] @@ -385,7 +398,8 @@ async def _sync(db_session: AsyncSession) -> None: await _sync(session) return - async with engine.core_session() as new_session: + engine = get_transactions_engine() + async with engine.session() as new_session: await _sync(new_session) @@ -402,7 +416,9 @@ async def get_default_workspace_id_from_organization( str: The default (first) workspace ID. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: workspace_query = await session.execute( select(WorkspaceDB) .where( @@ -433,7 +449,9 @@ async def get_project_by_workspace( """ assert workspace_id is not None, "Workspace ID is required to retrieve project" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select(ProjectDB).where( ProjectDB.workspace_id == uuid.UUID(workspace_id), ) @@ -494,7 +512,9 @@ async def create_project_member( async def fetch_project_memberships_by_user_id( user_id: str, ) -> List[ProjectMemberDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(ProjectMemberDB) .filter_by(user_id=uuid.UUID(user_id)) @@ -622,7 +642,9 @@ async def create_workspace( user = await db_manager.get_user(user_uid) organization = await get_organization(organization_id) - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: user_result = await session.execute(select(UserDB).filter_by(uid=user_uid)) user = user_result.scalars().first() @@ -652,7 +674,9 @@ async def update_workspace( payload (UpdateWorkspace): The data to update the workspace with. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(WorkspaceDB).filter_by(id=workspace.id)) workspace = result.scalars().first() @@ -681,7 +705,9 @@ async def check_user_in_workspace_with_email(email: str, workspace_id: str) -> b Exception: If there is an error checking if the user belongs to the workspace. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceMemberDB) .join(UserDB, UserDB.id == WorkspaceMemberDB.user_id) @@ -721,7 +747,9 @@ async def update_user_roles( f"No projects found for the provided workspace_id {workspace_id}" ) - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: workspace_member_result = await session.execute( select(WorkspaceMemberDB).filter_by( workspace_id=uuid.UUID(workspace_id), user_id=user.id @@ -804,7 +832,9 @@ async def add_user_to_workspace_and_org( if project and str(project.workspace_id) != str(workspace.id): raise ValueError("Project does not belong to the provided workspace") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # create joined organization for user user_organization = OrganizationMemberDB( user_id=user.id, organization_id=organization.id @@ -910,7 +940,9 @@ async def remove_user_from_workspace( ) project_ids = [project.id for project in projects] - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: if not user: # User is an invited user who has not yet created an account and therefore does not have a user object pass else: @@ -1048,7 +1080,9 @@ async def create_organization( Exception: If there is an error creating the organization. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: create_org_data = payload.model_dump(exclude_unset=True) is_demo = create_org_data.pop("is_demo", False) @@ -1137,7 +1171,9 @@ async def update_organization( Exception: If there is an error updating the organization. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) ) @@ -1299,7 +1335,9 @@ async def delete_organization(organization_id: str) -> bool: Raises: NoResultFound: If organization not found. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) ) @@ -1324,7 +1362,9 @@ async def delete_invitation(invitation_id: str) -> bool: bool: True if the invitation was successfully deleted, False otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by(id=uuid.UUID(invitation_id)) ) @@ -1386,7 +1426,9 @@ async def mark_invitation_as_used( HTTPException: If there is an error marking the invitation as used. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by( project_id=uuid.UUID(project_id), token=invitation.token @@ -1477,7 +1519,9 @@ async def get_project_invitations(project_id: str, **kwargs): project_id (str): The ID of the project """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select(InvitationDB).filter( InvitationDB.project_id == uuid.UUID(project_id) ) @@ -1497,7 +1541,9 @@ async def get_all_pending_invitations(email: str): email (str): The email address of the user. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter( InvitationDB.email == email, @@ -1522,7 +1568,9 @@ async def get_project_invitation( InvitationDB: invitation object """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by( project_id=uuid.UUID(project_id), token=token, email=email @@ -1539,7 +1587,9 @@ async def get_project_members(project_id: str): project_id (str): The ID of the project """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: members_query = await session.execute( select(ProjectMemberDB) .filter(ProjectMemberDB.project_id == uuid.UUID(project_id)) @@ -1567,7 +1617,9 @@ async def project_member_exists( True if the user belongs to the project, False otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select( select(ProjectMemberDB.id) .filter( @@ -1598,7 +1650,9 @@ async def workspace_member_exists( True if the user belongs to the workspace, False otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select( select(WorkspaceMemberDB.id) .filter( @@ -1645,7 +1699,9 @@ async def create_org_workspace_invitation( if not project: raise Exception(f"No project found with ID {project_id}") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: invitation = InvitationDB( token=token, email=email, @@ -1686,7 +1742,9 @@ async def add_user_to_organization( role: str = "viewer", # is_demo: bool = False, ) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: organization_member = OrganizationMemberDB( user_id=user_id, organization_id=organization_id, @@ -1712,7 +1770,9 @@ async def add_user_to_workspace( role: str, # is_demo: bool = False, ) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # fetch workspace by workspace_id (SQL) stmt = select(WorkspaceDB).filter_by(id=workspace_id) workspace = await session.execute(stmt) @@ -1753,7 +1813,9 @@ async def add_user_to_project( if not project: raise Exception(f"No project found with ID {project_id}") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project_member = ProjectMemberDB( user_id=user_id, project_id=project_id, @@ -1793,7 +1855,9 @@ async def transfer_organization_ownership( Raises: ValueError: If new owner is not a member of the organization """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # Verify organization exists org_result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) @@ -1925,7 +1989,9 @@ async def transfer_organization_ownership( async def admin_delete_org_membership(membership_id: uuid.UUID) -> bool: """Delete an org membership by ID. Returns False if not found.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationMemberDB).filter_by(id=membership_id) ) @@ -1939,7 +2005,9 @@ async def admin_delete_org_membership(membership_id: uuid.UUID) -> bool: async def admin_delete_workspace_membership(membership_id: uuid.UUID) -> bool: """Delete a workspace membership by ID. Returns False if not found.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceMemberDB).filter_by(id=membership_id) ) @@ -1953,7 +2021,9 @@ async def admin_delete_workspace_membership(membership_id: uuid.UUID) -> bool: async def admin_delete_project_membership(membership_id: uuid.UUID) -> bool: """Delete a project membership by ID. Returns False if not found.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(ProjectMemberDB).filter_by(id=membership_id) ) @@ -1970,7 +2040,9 @@ async def admin_get_member_org_ids( org_ids: List[uuid.UUID], ) -> Set[uuid.UUID]: """Return the subset of org_ids where the user has a membership row.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: rows = ( ( await session.execute( @@ -1997,7 +2069,9 @@ async def admin_swap_org_memberships( a membership row. For each qualifying org, target gets source's role and source gets target's prior role. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: source_rows = ( ( await session.execute( @@ -2059,7 +2133,9 @@ async def admin_swap_workspace_memberships( have a membership row. For each qualifying workspace, target gets source's role and source gets target's prior role. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: source_rows = ( ( await session.execute( @@ -2121,7 +2197,9 @@ async def admin_swap_project_memberships( have a membership row. For each qualifying project, target gets source's role and source gets target's prior role. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: source_rows = ( ( await session.execute( @@ -2177,7 +2255,9 @@ async def admin_delete_user_memberships(user_id: uuid.UUID) -> None: Called before hard-deleting a user so FK constraints are not violated. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute( delete(OrganizationMemberDB).where(OrganizationMemberDB.user_id == user_id) ) @@ -2188,3 +2268,258 @@ async def admin_delete_user_memberships(user_id: uuid.UUID) -> None: delete(ProjectMemberDB).where(ProjectMemberDB.user_id == user_id) ) await session.commit() + + +# Merged from ee/src/services/selectors.py +async def get_user_org_and_workspace_id(user_uid) -> Dict[str, Union[str, List[str]]]: + """ + Retrieves the user ID and organization IDs associated with a given user UID. + + Args: + user_uid (str): The UID of the user. + + Returns: + dict: A dictionary containing the user UID, ID, list of workspace IDS and list of organization IDS associated with a user. + If the user is not found, returns None + + Example Usage: + result = await get_user_org_and_workspace_id("user123") + + Output: + { "id": "123", "uid": "user123", "organization_ids": [], "workspace_ids": []} + """ + + engine = get_transactions_engine() + + async with engine.session() as session: + user = await db_manager.get_user_with_id(user_id=user_uid) + if not user: + raise NoResultFound(f"User with uid {user_uid} not found") + + user_org_result = await session.execute( + select(OrganizationMemberDB) + .filter_by(user_id=user.id) + .options(load_only(OrganizationMemberDB.organization_id)) # type: ignore + ) + orgs = user_org_result.scalars().all() + organization_ids = [str(user_org.organization_id) for user_org in orgs] + + member_in_workspaces_result = await session.execute( + select(WorkspaceMemberDB) + .filter_by(user_id=user.id) + .options(load_only(WorkspaceMemberDB.workspace_id)) # type: ignore + ) + workspaces_ids = [ + str(user_workspace.workspace_id) + for user_workspace in member_in_workspaces_result.scalars().all() + ] + + return { + "id": str(user.id), + "uid": str(user.uid), + "workspace_ids": workspaces_ids, + "organization_ids": organization_ids, + } + + +async def user_exists(user_email: str) -> bool: + """Check if user exists in the database. + + Arguments: + user_email (str): The email address of the logged-in user + + Returns: + bool: confirming if the user exists or not. + """ + + user = await db_manager.get_user_with_email(email=user_email) + return False if not user else True + + +async def get_org_default_workspace(organization: Organization) -> WorkspaceDB: + """Get's the default workspace for an organization from the database. + + Arguments: + organization (Organization): The organization + + Returns: + WorkspaceDB: Instance of WorkspaceDB + """ + + engine = get_transactions_engine() + + async with engine.session() as session: + result = await session.execute( + select(WorkspaceDB).filter_by( + organization_id=organization.id, + type="default", + ) + ) + workspace = result.scalars().first() + if workspace is not None: + return workspace + + result = await session.execute( + select(WorkspaceDB).filter_by( + organization_id=organization.id, + ) + ) + return result.scalars().first() + + +# Merged from ee/src/services/db_manager.py +async def create_deployment( + app_id: str, + project_id: str, + uri: str, +) -> DeploymentDB: + """Create a new deployment. + Args: + app_id (str): The app variant to create the deployment for. + project_id (str): The project variant to create the deployment for. + uri (str): The URI of the service. + Returns: + DeploymentDB: The created deployment. + """ + + engine = get_transactions_engine() + + async with engine.session() as session: + try: + deployment = DeploymentDB( + app_id=uuid.UUID(app_id), + project_id=uuid.UUID(project_id), + uri=uri, + ) + + session.add(deployment) + await session.commit() + await session.refresh(deployment) + + return deployment + except Exception as e: + raise Exception(f"Error while creating deployment: {e}") + + +# Merged from ee/src/services/converters.py +def _role_slug(role: Any) -> str: + """Normalize an enum or string role to its slug form.""" + return role.value if hasattr(role, "value") else str(role) + + +def _expand_permissions(slugs: List[str]) -> List[str]: + """Expand the `"*"` wildcard to the full list of Permission enum values. + + Why: `WorkspacePermission.permissions` is typed as `List[Permission]` and + the owner role stores `["*"]` as a wildcard. Pydantic rejects `"*"` since + it's not an enum member, so we materialize it at the API boundary. + """ + if "*" not in slugs: + return slugs + return [p.value for p in Permission] + + +async def get_workspace_in_format( + workspace: WorkspaceDB, + include_members: bool = True, +) -> WorkspaceResponse: + """Converts the workspace object to the WorkspaceResponse model. + + Arguments: + workspace (WorkspaceDB): The workspace object + include_members (bool): Whether to include workspace members. Defaults to True. + + Returns: + WorkspaceResponse: The workspace object in the WorkspaceResponse model + """ + + members = [] + + if include_members: + project = await get_project_by_workspace(workspace_id=str(workspace.id)) + project_members = await get_project_members(project_id=str(project.id)) + invitations = await get_project_invitations( + project_id=str(project.id), invitation_used=False + ) + + if len(invitations) > 0: + for invitation in invitations: + if not invitation.used and str(invitation.project_id) == str( + project.id + ): + user = await db_manager.get_user_with_email(invitation.email) + member_dict = { + "user": { + "id": str(user.id) if user else invitation.email, + "email": user.email if user else invitation.email, + "username": ( + user.username + if user + else invitation.email.split("@")[0] + ), + "status": ( + "pending" + if invitation.expiration_date + > datetime.now(timezone.utc) + else "expired" + ), + "created_at": ( + str(user.created_at) + if user + else ( + str(invitation.created_at) + if str(invitation.created_at) + else None + ) + ), + }, + "roles": [ + { + "role_name": invitation.role, + "role_description": get_role_description( + "workspace", _role_slug(invitation.role) + ), + } + ], + } + members.append(member_dict) + + for project_member in project_members: + member_role = project_member.role + member_dict = { + "user": { + "id": str(project_member.user.id), + "email": project_member.user.email, + "username": project_member.user.username, + "status": "member", + "created_at": str(project_member.user.created_at), + }, + "roles": ( + [ + { + "role_name": member_role, + "role_description": get_role_description( + "project", _role_slug(member_role) + ), + "permissions": _expand_permissions( + get_role_permissions("project", _role_slug(member_role)) + ), + } + ] + if member_role + else [] + ), + } + members.append(member_dict) + + workspace_response = WorkspaceResponse( + id=str(workspace.id), + name=workspace.name, + description=workspace.description, + type=workspace.type, + members=members, + organization=str(workspace.organization_id), + created_at=str(workspace.created_at), + updated_at=str(workspace.updated_at), + ) + return workspace_response diff --git a/api/ee/src/services/email_helper.py b/api/ee/src/services/email_helper.py deleted file mode 100644 index 0c91e666cd..0000000000 --- a/api/ee/src/services/email_helper.py +++ /dev/null @@ -1,54 +0,0 @@ -import time - -import httpx - -from oss.src.utils.env import env -from oss.src.utils.logging import get_module_logger - -log = get_module_logger(__name__) - - -def add_contact_to_loops(email, max_retries=5, initial_delay=1): - """ - Add a contact to Loops audience with retry and exponential backoff. - - Args: - email (str): Email address of the contact to be added. - max_retries (int): Maximum number of retries in case of rate limiting. - initial_delay (int): Initial delay in seconds before retrying. - - Raises: - ConnectionError: If max retries reached and unable to connect to Loops API. - - Returns: - httpx.Response: Response object from the Loops API. - """ - - # Endpoint URL - url = "https://app.loops.so/api/v1/contacts/create" - - # Request headers - headers = {"Authorization": f"Bearer {env.loops.api_key}"} - - # Request payload/body - data = {"email": email} - - retries = 0 - delay = initial_delay - - while retries < max_retries: - # Making the POST request - response = httpx.post(url, json=data, headers=headers, timeout=20) - - # If response code is 429, it indicates rate limiting - if response.status_code == 429: - log.warning(f"[LOOPS] Rate limit hit. Retrying in {delay} seconds...") - time.sleep(delay) - retries += 1 - delay *= 2 # Double the delay for exponential backoff - else: - # If response is not 429, return it - return response - - # If max retries reached, raise an exception or handle as needed - raise ConnectionError("Max retries reached. Unable to connect to Loops API.") diff --git a/api/ee/src/services/organization_service.py b/api/ee/src/services/organization_service.py index 5378008ae3..4f05f1bee0 100644 --- a/api/ee/src/services/organization_service.py +++ b/api/ee/src/services/organization_service.py @@ -12,7 +12,7 @@ from oss.src.utils.env import env from oss.src.utils.logging import get_module_logger -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import get_transactions_engine from oss.src.core.secrets.dtos import ( CreateSecretDTO, UpdateSecretDTO, @@ -38,7 +38,7 @@ ) from ee.src.services import db_manager_ee -from oss.src.services import email_service +from oss.src.utils import emailing from oss.src.models.db_models import UserDB from oss.src.models.db_models import ( WorkspaceDB, @@ -87,8 +87,6 @@ async def send_invitation_email( bool: True if the email was sent successfully, False otherwise. """ - html_template = email_service.read_email_template("./templates/send_email.html") - token_param = quote(token, safe="") email_param = quote(email, safe="") org_param = quote(str(organization.id), safe="") @@ -108,22 +106,18 @@ async def send_invitation_email( if not env.sendgrid.enabled: return invite_link - html_content = html_template.format( - username_placeholder=user.username, - action_placeholder="invited you to join", - workspace_placeholder=organization.name, + await emailing.send_email( + from_email="account@hello.agenta.ai", + to_email=email, + subject=f"{user.username} invited you to join {organization.name}", + username=user.username, + action="invited you to join", + workspace=organization.name, call_to_action=( "Click the link below to accept the invitation:


" f'Accept Invitation' ), ) - - await email_service.send_email( - from_email="account@hello.agenta.ai", - to_email=email, - subject=f"{user.username} invited you to join {organization.name}", - html_content=html_content, - ) return True @@ -141,24 +135,21 @@ async def notify_org_admin_invitation(workspace: WorkspaceDB, user: UserDB) -> b organization = await db_manager_ee.get_organization(str(workspace.organization_id)) project = await db_manager_ee.get_project_by_workspace(str(workspace.id)) - html_template = email_service.read_email_template("./templates/send_email.html") - html_content = html_template.format( - username_placeholder=user.username, - action_placeholder="joined your Workspace", - workspace_placeholder=f'"{organization.name}"', - call_to_action=( - "Click the link below to view your Organization:


" - f'View Organization' - ), - ) workspace_admins = await db_manager_ee.get_workspace_administrators(workspace) + for workspace_admin in workspace_admins: - await email_service.send_email( + await emailing.send_email( from_email="account@hello.agenta.ai", to_email=workspace_admin.email, subject=f"New Member Joined {organization.name}", - html_content=html_content, + username=user.username, + action="joined your Workspace", + workspace=f'"{organization.name}"', + call_to_action=( + "Click the link below to view your Organization:


" + f'View Organization' + ), ) return True @@ -280,7 +271,9 @@ async def create_domain( Token expires after 48 hours and can be refreshed. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationDomainsDAO(session) # Block if a verified domain already exists anywhere @@ -337,7 +330,9 @@ async def verify_domain( self, organization_id: str, domain_id: str, user_id: str ) -> OrganizationDomain: """Verify a domain via DNS check.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationDomainsDAO(session) domain = await dao.get_by_id( @@ -403,7 +398,9 @@ async def list_domains(self, organization_id: str) -> List[OrganizationDomain]: Tokens are returned for unverified domains (within expiry period). Verified domains have token=None (cleared after verification). """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationDomainsDAO(session) domains = await dao.list_by_organization(organization_id=organization_id) @@ -430,7 +427,9 @@ async def refresh_token( Generates a new token and resets the 48-hour expiry window. For verified domains, this marks them as unverified for re-verification. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationDomainsDAO(session) domain = await dao.get_by_id( @@ -470,7 +469,9 @@ async def reset_domain( Generates a new token and marks the domain as unverified. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationDomainsDAO(session) domain = await dao.get_by_id( @@ -506,7 +507,9 @@ async def delete_domain( self, organization_id: str, domain_id: str, user_id: str ) -> bool: """Delete a domain.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationDomainsDAO(session) domain = await dao.get_by_id( @@ -573,7 +576,9 @@ async def create_provider( user_id: str, ) -> OrganizationProvider: """Create a new SSO provider.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationProvidersDAO(session) # Use the slug from payload (already validated to be lowercase letters and hyphens) @@ -648,7 +653,9 @@ async def update_provider( user_id: str, ) -> OrganizationProvider: """Update an SSO provider.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationProvidersDAO(session) provider = await dao.get_by_id( @@ -735,7 +742,9 @@ async def update_provider( async def list_providers(self, organization_id: str) -> List[OrganizationProvider]: """List all SSO providers for an organization.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationProvidersDAO(session) providers = await dao.list_by_organization(organization_id=organization_id) @@ -748,7 +757,9 @@ async def get_provider( self, organization_id: str, provider_id: str ) -> OrganizationProvider: """Get a single SSO provider by ID.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationProvidersDAO(session) provider = await dao.get_by_id( provider_id=provider_id, organization_id=organization_id @@ -761,7 +772,9 @@ async def test_provider( self, organization_id: str, provider_id: str, user_id: str ) -> OrganizationProvider: """Test SSO provider connection and mark as valid if successful.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationProvidersDAO(session) provider = await dao.get_by_id( @@ -806,7 +819,9 @@ async def delete_provider( self, organization_id: str, provider_id: str, user_id: str ) -> bool: """Delete an SSO provider.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: dao = OrganizationProvidersDAO(session) provider = await dao.get_by_id( diff --git a/api/ee/src/services/selectors.py b/api/ee/src/services/selectors.py deleted file mode 100644 index 017229d7bb..0000000000 --- a/api/ee/src/services/selectors.py +++ /dev/null @@ -1,113 +0,0 @@ -from typing import Dict, List, Union - -from sqlalchemy.future import select -from sqlalchemy.exc import NoResultFound -from sqlalchemy.orm import load_only - -from oss.src.services import db_manager -from oss.src.utils.logging import get_module_logger - -from oss.src.dbs.postgres.shared.engine import engine -from ee.src.core.organizations.types import Organization - -from oss.src.models.db_models import ( - WorkspaceDB, -) -from ee.src.models.db_models import ( - OrganizationMemberDB, - WorkspaceMemberDB, -) - -log = get_module_logger(__name__) - - -async def get_user_org_and_workspace_id(user_uid) -> Dict[str, Union[str, List[str]]]: - """ - Retrieves the user ID and organization IDs associated with a given user UID. - - Args: - user_uid (str): The UID of the user. - - Returns: - dict: A dictionary containing the user UID, ID, list of workspace IDS and list of organization IDS associated with a user. - If the user is not found, returns None - - Example Usage: - result = await get_user_org_and_workspace_id("user123") - - Output: - { "id": "123", "uid": "user123", "organization_ids": [], "workspace_ids": []} - """ - - async with engine.core_session() as session: - user = await db_manager.get_user_with_id(user_id=user_uid) - if not user: - raise NoResultFound(f"User with uid {user_uid} not found") - - user_org_result = await session.execute( - select(OrganizationMemberDB) - .filter_by(user_id=user.id) - .options(load_only(OrganizationMemberDB.organization_id)) # type: ignore - ) - orgs = user_org_result.scalars().all() - organization_ids = [str(user_org.organization_id) for user_org in orgs] - - member_in_workspaces_result = await session.execute( - select(WorkspaceMemberDB) - .filter_by(user_id=user.id) - .options(load_only(WorkspaceMemberDB.workspace_id)) # type: ignore - ) - workspaces_ids = [ - str(user_workspace.workspace_id) - for user_workspace in member_in_workspaces_result.scalars().all() - ] - - return { - "id": str(user.id), - "uid": str(user.uid), - "workspace_ids": workspaces_ids, - "organization_ids": organization_ids, - } - - -async def user_exists(user_email: str) -> bool: - """Check if user exists in the database. - - Arguments: - user_email (str): The email address of the logged-in user - - Returns: - bool: confirming if the user exists or not. - """ - - user = await db_manager.get_user_with_email(email=user_email) - return False if not user else True - - -async def get_org_default_workspace(organization: Organization) -> WorkspaceDB: - """Get's the default workspace for an organization from the database. - - Arguments: - organization (Organization): The organization - - Returns: - WorkspaceDB: Instance of WorkspaceDB - """ - - async with engine.core_session() as session: - result = await session.execute( - select(WorkspaceDB).filter_by( - organization_id=organization.id, - type="default", - ) - ) - workspace = result.scalars().first() - if workspace is not None: - return workspace - - result = await session.execute( - select(WorkspaceDB).filter_by( - organization_id=organization.id, - ) - ) - return result.scalars().first() diff --git a/api/ee/src/services/templates/send_email.html b/api/ee/src/services/templates/send_email.html deleted file mode 100644 index 7d124ffd8a..0000000000 --- a/api/ee/src/services/templates/send_email.html +++ /dev/null @@ -1,7 +0,0 @@ -

Hello,

-

- {username_placeholder} has {action_placeholder} {workspace_placeholder} on - Agenta. -

-

{call_to_action}

-

Thank you for using Agenta!

diff --git a/api/ee/src/services/workspace_manager.py b/api/ee/src/services/workspace_manager.py index c3b9c11896..6e50ff2351 100644 --- a/api/ee/src/services/workspace_manager.py +++ b/api/ee/src/services/workspace_manager.py @@ -5,7 +5,7 @@ from oss.src.utils.logging import get_module_logger from oss.src.utils.caching import invalidate_cache from oss.src.services import db_manager -from ee.src.services import db_manager_ee, converters +from ee.src.services import db_manager_ee from oss.src.models.db_models import ( OrganizationDB, WorkspaceDB, @@ -20,8 +20,8 @@ CreateWorkspace, UpdateWorkspace, ) -from ee.src.core.entitlements.controls import get_role -from ee.src.models.shared_models import Permission, WorkspaceRole +from ee.src.core.access.controls import get_role +from ee.src.core.access.permissions.types import Permission, RequiredRole from oss.src.services.organization_service import ( create_invitation, check_existing_invitation, @@ -111,11 +111,10 @@ async def get_all_workspace_permissions() -> List[Permission]: Retrieve all workspace permissions. Returns: - List[Permission]: A list of all workspace permissions in the DB. + List[Permission]: A list of all workspace permissions. """ - workspace_permissions_from_db = await converters.get_all_workspace_permissions() - return workspace_permissions_from_db + return list(Permission) async def invite_user_to_workspace( @@ -214,7 +213,7 @@ async def invite_user_to_workspace( else ( str(payload_invite.roles[0]) if payload_invite.roles - else WorkspaceRole.VIEWER.value + else RequiredRole.VIEWER.value ) ) # Validate against the effective workspace catalog diff --git a/api/ee/tests/manual/test_billing_period.py b/api/ee/tests/manual/test_billing_period.py index c4a66b4b22..1242c4e491 100644 --- a/api/ee/tests/manual/test_billing_period.py +++ b/api/ee/tests/manual/test_billing_period.py @@ -11,7 +11,7 @@ import pytest from datetime import datetime, timezone -from ee.src.utils.entitlements import monthly_period_from +from ee.src.core.access.entitlements.service import monthly_period_from # ---- Helpers ---- diff --git a/api/ee/tests/pytest/unit/services/test_db_manager_ee.py b/api/ee/tests/pytest/unit/services/test_db_manager_ee.py index 89bbea5e31..48f64261a5 100644 --- a/api/ee/tests/pytest/unit/services/test_db_manager_ee.py +++ b/api/ee/tests/pytest/unit/services/test_db_manager_ee.py @@ -5,7 +5,7 @@ import pytest from sqlalchemy.exc import NoResultFound -from ee.src.models.shared_models import WorkspaceRole +from ee.src.core.access.permissions.types import DefaultRole from ee.src.services import db_manager_ee @@ -45,10 +45,14 @@ async def __aexit__(self, exc_type, exc, tb): def _patch_core_session(monkeypatch, memberships): + # db_manager_ee calls get_transactions_engine() — patch where it's called + mock_engine = type( + "MockEngine", (), {"session": lambda self: _SessionContext(memberships)} + )() monkeypatch.setattr( - db_manager_ee.engine, - "core_session", - lambda: _SessionContext(memberships), + db_manager_ee, + "get_transactions_engine", + lambda: mock_engine, ) @@ -89,12 +93,12 @@ async def test_get_default_workspace_id_prefers_owner_membership(monkeypatch): [ SimpleNamespace( workspace_id=editor_workspace_id, - role=WorkspaceRole.EDITOR, + role=DefaultRole.EDITOR, created_at=datetime(2026, 4, 9, tzinfo=timezone.utc), ), SimpleNamespace( workspace_id=owner_workspace_id, - role=WorkspaceRole.OWNER, + role=DefaultRole.OWNER, created_at=datetime(2026, 4, 10, tzinfo=timezone.utc), ), ], @@ -115,12 +119,12 @@ async def test_get_default_workspace_id_falls_back_to_oldest_membership(monkeypa [ SimpleNamespace( workspace_id=newer_workspace_id, - role=WorkspaceRole.EDITOR, + role=DefaultRole.EDITOR, created_at=datetime(2026, 4, 10, tzinfo=timezone.utc), ), SimpleNamespace( workspace_id=oldest_workspace_id, - role=WorkspaceRole.VIEWER, + role=DefaultRole.VIEWER, created_at=datetime(2026, 4, 9, tzinfo=timezone.utc), ), ], @@ -180,10 +184,15 @@ async def fail_if_nested_invitation_delete_is_used(invitation_id): "delete_invitation", fail_if_nested_invitation_delete_is_used, ) + mock_engine = type( + "MockEngine", + (), + {"session": lambda self: _PendingInviteSessionContext(session)}, + )() monkeypatch.setattr( - db_manager_ee.engine, - "core_session", - lambda: _PendingInviteSessionContext(session), + db_manager_ee, + "get_transactions_engine", + lambda: mock_engine, ) result = await db_manager_ee.remove_user_from_workspace( diff --git a/api/ee/tests/pytest/unit/test_access_controls.py b/api/ee/tests/pytest/unit/test_access_controls.py index bef7461366..7a66835c74 100644 --- a/api/ee/tests/pytest/unit/test_access_controls.py +++ b/api/ee/tests/pytest/unit/test_access_controls.py @@ -1,5 +1,5 @@ """Unit tests for the access-controls parsers in -``ee.src.core.entitlements.controls``. +``ee.src.core.access.controls``. These exercise the pure parser functions (`_parse_plans_override`, `_parse_roles_override`) so we don't have to manipulate process env vars at @@ -11,9 +11,11 @@ import pytest -from ee.src.core.entitlements import controls -from ee.src.core.entitlements.types import DefaultPlan, DefaultRole, Tracker -from ee.src.models.shared_models import Permission, WorkspaceRole +from ee.src.core.access import controls +from ee.src.core.access.entitlements import controls as entitlement_controls +from ee.src.core.access.permissions import controls as permission_controls +from ee.src.core.access.entitlements.types import DefaultPlan, Tracker +from ee.src.core.access.permissions.types import Permission, DefaultRole, RequiredRole # --------------------------------------------------------------------------- @@ -36,26 +38,28 @@ def test_get_plan_entitlements_returns_none_for_empty_slug(self): def test_get_roles_returns_workspace_role_set(self): ws = controls.get_roles("workspace") slugs = {r["role"] for r in ws} - # Workspace exposes the code-default WorkspaceRole enum set on top of the + # Workspace exposes the code-default DefaultRole enum set on top of the # owner/viewer minima. - assert slugs == {r.value for r in WorkspaceRole} + assert slugs == {r.value for r in DefaultRole} def test_get_roles_returns_empty_for_unknown_scope(self): assert controls.get_roles("garbage") == [] def test_minima_present_in_every_scope(self): - # Every scope must always expose `owner` and `viewer`. + # Every scope must always expose `owner`, `admin`, and `viewer`. for scope in ("organization", "workspace", "project"): slugs = {r["role"] for r in controls.get_roles(scope)} - assert DefaultRole.OWNER.value in slugs - assert DefaultRole.VIEWER.value in slugs + assert RequiredRole.OWNER.value in slugs + assert RequiredRole.ADMIN.value in slugs + assert RequiredRole.VIEWER.value in slugs def test_organization_defaults_to_minima_only(self): # Organization scope has no permission concept today; it stays at the - # minima while workspace and project expose the code-default WorkspaceRole set. + # minima while workspace and project expose the code-default DefaultRole set. assert {r["role"] for r in controls.get_roles("organization")} == { - DefaultRole.OWNER.value, - DefaultRole.VIEWER.value, + RequiredRole.OWNER.value, + RequiredRole.ADMIN.value, + RequiredRole.VIEWER.value, } def test_project_default_mirrors_workspace_role_set(self): @@ -63,7 +67,7 @@ def test_project_default_mirrors_workspace_role_set(self): # (admin/developer/editor/annotator), so the project scope must # surface the same permission map for non-overridden deployments. assert {r["role"] for r in controls.get_roles("project")} == { - r.value for r in WorkspaceRole + r.value for r in DefaultRole } def test_owner_role_is_wildcard(self): @@ -73,7 +77,7 @@ def test_owner_role_is_wildcard(self): def test_viewer_in_workspace_and_project_is_read_only(self): # Viewer permissions in workspace/project come from the code-default - # `WorkspaceRole.VIEWER` set — every entry is a real Permission. + # `DefaultRole.VIEWER` set — every entry is a real Permission. valid = {p.value for p in Permission} for scope in ("workspace", "project"): perms = controls.get_role_permissions(scope, "viewer") @@ -99,7 +103,7 @@ def test_controls_hash_is_stable(self): class TestParsePlansOverride: def test_minimal_valid_override_with_flags(self): - plans, descriptions = controls._parse_plans_override( + plans, descriptions = entitlement_controls._parse_plans_override( { "plan_a": { "description": "Test plan", @@ -117,7 +121,7 @@ def test_minimal_valid_override_with_flags(self): assert descriptions["plan_a"] == "Test plan" def test_counters_and_gauges_validated(self): - plans, _ = controls._parse_plans_override( + plans, _ = entitlement_controls._parse_plans_override( { "p": { "counters": { @@ -132,21 +136,21 @@ def test_counters_and_gauges_validated(self): def test_empty_dict_rejected(self): with pytest.raises(ValueError, match="non-empty"): - controls._parse_plans_override({}) + entitlement_controls._parse_plans_override({}) def test_non_dict_rejected(self): with pytest.raises(ValueError, match="non-empty JSON object"): - controls._parse_plans_override([]) + entitlement_controls._parse_plans_override([]) def test_plan_with_no_entitlements_allowed(self): # Display-only plans (e.g. custom/self-hosted) may carry no # entitlement trackers. The runtime returns an empty entitlement # map for those plans rather than treating them as unknown. - plans, _ = controls._parse_plans_override({"empty_plan": {}}) + plans, _ = entitlement_controls._parse_plans_override({"empty_plan": {}}) assert plans == {"empty_plan": {}} def test_plan_with_only_description_allowed(self): - plans, descriptions = controls._parse_plans_override( + plans, descriptions = entitlement_controls._parse_plans_override( {"p": {"description": "display only"}} ) assert plans == {"p": {}} @@ -154,19 +158,25 @@ def test_plan_with_only_description_allowed(self): def test_unknown_flag_key_rejected(self): with pytest.raises(ValueError, match="Unknown flag"): - controls._parse_plans_override({"p": {"flags": {"bogus": True}}}) + entitlement_controls._parse_plans_override( + {"p": {"flags": {"bogus": True}}} + ) def test_unknown_counter_key_rejected(self): with pytest.raises(ValueError, match="Unknown counter"): - controls._parse_plans_override({"p": {"counters": {"bogus": {"limit": 1}}}}) + entitlement_controls._parse_plans_override( + {"p": {"counters": {"bogus": {"limit": 1}}}} + ) def test_unknown_gauge_key_rejected(self): with pytest.raises(ValueError, match="Unknown gauge"): - controls._parse_plans_override({"p": {"gauges": {"bogus": {"limit": 1}}}}) + entitlement_controls._parse_plans_override( + {"p": {"gauges": {"bogus": {"limit": 1}}}} + ) def test_extra_field_in_plan_rejected(self): with pytest.raises(ValueError, match="Invalid plan override"): - controls._parse_plans_override({"p": {"surprise": "yes"}}) + entitlement_controls._parse_plans_override({"p": {"surprise": "yes"}}) # --------------------------------------------------------------------------- @@ -189,47 +199,49 @@ def test_project_override_is_mirrored_to_workspace_today(self): # workspace role catalog is used by the Invite Members flow for project # membership. A project-only override therefore intentionally replaces # workspace extras too, instead of leaving workspace defaults intact. - result = controls._parse_roles_override( + result = permission_controls._parse_roles_override( {"project": [_custom_role("reviewer", ["read_system"])]} ) - proj_slugs = [r["role"] for r in result["project"]] - ws_slugs = [r["role"] for r in result["workspace"]] + prj_sclugs = [r["role"] for r in result["project"]] + wrk_sclugs = [r["role"] for r in result["workspace"]] org_slugs = [r["role"] for r in result["organization"]] # Project: minima + override (env overrides REPLACE default extras in # the overridden scope). - assert proj_slugs == ["owner", "viewer", "reviewer"] - assert ws_slugs == ["owner", "viewer", "reviewer"] + assert prj_sclugs == ["owner", "admin", "viewer", "reviewer"] + assert wrk_sclugs == ["owner", "admin", "viewer", "reviewer"] # Organization: untouched (minima-only by default). - assert org_slugs == ["owner", "viewer"] + assert org_slugs == ["owner", "admin", "viewer"] def test_empty_dict_rejected(self): with pytest.raises(ValueError, match="non-empty"): - controls._parse_roles_override({}) + permission_controls._parse_roles_override({}) def test_unknown_scope_rejected(self): with pytest.raises(ValueError, match="Unknown role scope"): - controls._parse_roles_override( + permission_controls._parse_roles_override( {"galaxy": [_custom_role("ranger", ["read_system"])]} ) def test_empty_scope_list_rejected(self): with pytest.raises(ValueError, match="non-empty list of roles"): - controls._parse_roles_override({"project": []}) + permission_controls._parse_roles_override({"project": []}) def test_owner_reserved_cannot_be_redefined(self): with pytest.raises(ValueError, match="cannot redefine reserved role 'owner'"): - controls._parse_roles_override({"project": [_custom_role("owner", ["*"])]}) + permission_controls._parse_roles_override( + {"project": [_custom_role("owner", ["*"])]} + ) def test_viewer_reserved_cannot_be_redefined(self): with pytest.raises(ValueError, match="cannot redefine reserved role 'viewer'"): - controls._parse_roles_override( + permission_controls._parse_roles_override( {"project": [_custom_role("viewer", ["read_system"])]} ) def test_duplicate_custom_role_slug_rejected(self): with pytest.raises(ValueError, match="Duplicate role slug"): - controls._parse_roles_override( + permission_controls._parse_roles_override( { "project": [ _custom_role("reviewer", ["read_system"]), @@ -240,19 +252,19 @@ def test_duplicate_custom_role_slug_rejected(self): def test_empty_role_slug_rejected(self): with pytest.raises(ValueError, match="Empty role slug|Invalid role override"): - controls._parse_roles_override( + permission_controls._parse_roles_override( {"project": [{"role": "", "permissions": []}]} ) def test_unknown_permission_rejected(self): with pytest.raises(ValueError, match="Unknown permission"): - controls._parse_roles_override( + permission_controls._parse_roles_override( {"project": [_custom_role("custom", ["totally_made_up_perm"])]} ) def test_known_permission_accepted(self): valid_perm = next(iter(Permission)).value - result = controls._parse_roles_override( + result = permission_controls._parse_roles_override( {"project": [_custom_role("custom", [valid_perm])]} ) # Last entry is the custom role; first two are the minima. @@ -260,13 +272,12 @@ def test_known_permission_accepted(self): assert result["project"][-1]["permissions"] == [valid_perm] def test_minima_always_present_after_override(self): - result = controls._parse_roles_override( + result = permission_controls._parse_roles_override( {"organization": [_custom_role("auditor", ["read_system"])]} ) slugs = [r["role"] for r in result["organization"]] - # Minima are always re-applied at the front of each scope. - assert slugs[0] == "owner" - assert slugs[1] == "viewer" + # Minima are always re-applied at the front of each scope, in order. + assert slugs[:3] == ["owner", "admin", "viewer"] assert "auditor" in slugs @@ -275,7 +286,7 @@ def test_minima_always_present_after_override(self): # --------------------------------------------------------------------------- -from ee.src.core.entitlements.types import ( # noqa: E402 +from ee.src.core.access.entitlements.types import ( # noqa: E402 Category, Counter, Flag, @@ -290,23 +301,25 @@ def test_minima_always_present_after_override(self): class TestDefaultPlanOverlayParse: def test_empty_payload_rejected(self): with pytest.raises(ValueError, match="non-empty"): - controls._parse_default_plan_overlay({}) + entitlement_controls._parse_default_plan_overlay({}) def test_non_dict_rejected(self): with pytest.raises(ValueError, match="non-empty JSON object"): - controls._parse_default_plan_overlay([]) + entitlement_controls._parse_default_plan_overlay([]) def test_unknown_flag_rejected(self): with pytest.raises(ValueError, match="Unknown flag"): - controls._parse_default_plan_overlay({"flags": {"bogus": True}}) + entitlement_controls._parse_default_plan_overlay({"flags": {"bogus": True}}) def test_unknown_counter_rejected(self): with pytest.raises(ValueError, match="Unknown counter"): - controls._parse_default_plan_overlay({"counters": {"bogus": {"limit": 1}}}) + entitlement_controls._parse_default_plan_overlay( + {"counters": {"bogus": {"limit": 1}}} + ) def test_unknown_throttle_category_rejected(self): with pytest.raises(ValueError, match="not a valid throttle category"): - controls._parse_default_plan_overlay( + entitlement_controls._parse_default_plan_overlay( {"throttles": {"galaxy": {"bucket": {"rate": 1}}}} ) @@ -314,7 +327,7 @@ def test_extra_field_rejected(self): with pytest.raises( ValueError, match="Invalid AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY" ): - controls._parse_default_plan_overlay({"surprise": "x"}) + entitlement_controls._parse_default_plan_overlay({"surprise": "x"}) class TestDefaultPlanOverlayApply: @@ -344,10 +357,10 @@ def _base_plan(self) -> dict: def test_quota_field_merge_preserves_other_fields(self): plans = {"the_plan": self._base_plan()} descriptions: dict = {} - overlay = controls._parse_default_plan_overlay( + overlay = entitlement_controls._parse_default_plan_overlay( {"counters": {"traces_ingested": {"retention": 525600}}} ) - plans, _ = controls._apply_default_plan_overlay( + plans, _ = entitlement_controls._apply_default_plan_overlay( plans, descriptions, overlay, "the_plan" ) traces: Quota = plans["the_plan"][Tracker.COUNTERS][Counter.TRACES_INGESTED] @@ -358,10 +371,12 @@ def test_quota_field_merge_preserves_other_fields(self): def test_throttle_category_patch_preserves_other_throttles(self): plans = {"the_plan": self._base_plan()} - overlay = controls._parse_default_plan_overlay( + overlay = entitlement_controls._parse_default_plan_overlay( {"throttles": {"standard": {"bucket": {"rate": 7200}}}} ) - plans, _ = controls._apply_default_plan_overlay(plans, {}, overlay, "the_plan") + plans, _ = entitlement_controls._apply_default_plan_overlay( + plans, {}, overlay, "the_plan" + ) throttles = plans["the_plan"][Tracker.THROTTLES] # Standard throttle: rate patched, capacity preserved. standard = next(t for t in throttles if t.categories == [Category.STANDARD]) @@ -373,26 +388,32 @@ def test_throttle_category_patch_preserves_other_throttles(self): def test_overlay_targeting_unknown_plan_fails(self): plans = {"the_plan": self._base_plan()} - overlay = controls._parse_default_plan_overlay({"flags": {"access": True}}) + overlay = entitlement_controls._parse_default_plan_overlay( + {"flags": {"access": True}} + ) with pytest.raises(ValueError, match="not in the effective plan set"): - controls._apply_default_plan_overlay(plans, {}, overlay, "ghost_plan") + entitlement_controls._apply_default_plan_overlay( + plans, {}, overlay, "ghost_plan" + ) def test_overlay_targeting_throttle_with_no_match_fails(self): plans = {"the_plan": self._base_plan()} - overlay = controls._parse_default_plan_overlay( + overlay = entitlement_controls._parse_default_plan_overlay( {"throttles": {"ai_services": {"bucket": {"rate": 99}}}} ) with pytest.raises( ValueError, match="no single-category throttle entry for 'ai_services'" ): - controls._apply_default_plan_overlay(plans, {}, overlay, "the_plan") + entitlement_controls._apply_default_plan_overlay( + plans, {}, overlay, "the_plan" + ) def test_description_replaces(self): plans = {"the_plan": self._base_plan()} - overlay = controls._parse_default_plan_overlay( + overlay = entitlement_controls._parse_default_plan_overlay( {"description": "Self-hosted override"} ) - _, descriptions = controls._apply_default_plan_overlay( + _, descriptions = entitlement_controls._apply_default_plan_overlay( plans, {}, overlay, "the_plan" ) assert descriptions["the_plan"] == "Self-hosted override" @@ -401,8 +422,12 @@ def test_flag_patch_only_overwrites_named_keys(self): base = self._base_plan() base[Tracker.FLAGS] = {Flag.ACCESS: False, Flag.RBAC: True} plans = {"the_plan": base} - overlay = controls._parse_default_plan_overlay({"flags": {"access": True}}) - plans, _ = controls._apply_default_plan_overlay(plans, {}, overlay, "the_plan") + overlay = entitlement_controls._parse_default_plan_overlay( + {"flags": {"access": True}} + ) + plans, _ = entitlement_controls._apply_default_plan_overlay( + plans, {}, overlay, "the_plan" + ) flags = plans["the_plan"][Tracker.FLAGS] assert flags[Flag.ACCESS] is True assert flags[Flag.RBAC] is True # untouched @@ -416,21 +441,21 @@ def test_flag_patch_only_overwrites_named_keys(self): class TestRolesOverlayParse: def test_empty_payload_rejected(self): with pytest.raises(ValueError, match="non-empty"): - controls._parse_roles_overlay({}) + permission_controls._parse_roles_overlay({}) def test_non_dict_rejected(self): with pytest.raises(ValueError, match="non-empty JSON object"): - controls._parse_roles_overlay([]) + permission_controls._parse_roles_overlay([]) def test_non_project_scope_rejected(self): with pytest.raises(ValueError, match="only supports the 'project' scope"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( {"workspace": {"editor": {"permissions": ["read_system"]}}} ) def test_multiple_scopes_rejected_lists_offenders(self): with pytest.raises(ValueError, match="organization"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( { "project": {"editor": {"permissions": ["read_system"]}}, "organization": {"foo": {"permissions": []}}, @@ -439,33 +464,35 @@ def test_multiple_scopes_rejected_lists_offenders(self): def test_empty_project_block_rejected(self): with pytest.raises(ValueError, match="must be a non-empty"): - controls._parse_roles_overlay({"project": {}}) + permission_controls._parse_roles_overlay({"project": {}}) def test_reserved_role_patch_rejected(self): with pytest.raises(ValueError, match="cannot patch reserved role 'owner'"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( {"project": {"owner": {"permissions": ["read_system"]}}} ) def test_reserved_viewer_patch_rejected(self): with pytest.raises(ValueError, match="cannot patch reserved role 'viewer'"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( {"project": {"viewer": {"permissions": ["read_system"]}}} ) def test_unknown_permission_rejected(self): with pytest.raises(ValueError, match="Unknown permission"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( {"project": {"editor": {"permissions": ["bogus_perm"]}}} ) def test_extra_field_rejected(self): with pytest.raises(ValueError, match="Invalid AGENTA_ACCESS_ROLES_OVERLAY"): - controls._parse_roles_overlay({"project": {"editor": {"surprise": "yes"}}}) + permission_controls._parse_roles_overlay( + {"project": {"editor": {"surprise": "yes"}}} + ) def test_project_focused_shortcut_accepted(self): # Top-level keys are role slugs (no scope wrapper). - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( {"editor": {"permissions": ["read_system"]}} ) assert set(overlay.keys()) == {"editor"} @@ -473,23 +500,25 @@ def test_project_focused_shortcut_accepted(self): def test_project_focused_shortcut_rejects_reserved_role(self): with pytest.raises(ValueError, match="cannot patch reserved role 'owner'"): - controls._parse_roles_overlay({"owner": {"permissions": ["read_system"]}}) + permission_controls._parse_roles_overlay( + {"owner": {"permissions": ["read_system"]}} + ) def test_full_form_with_organization_scope_rejected(self): with pytest.raises(ValueError, match="only supports the 'project' scope"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( {"organization": {"editor": {"permissions": ["read_system"]}}} ) def test_full_form_with_workspace_scope_rejected(self): with pytest.raises(ValueError, match="only supports the 'project' scope"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( {"workspace": {"editor": {"permissions": ["read_system"]}}} ) def test_mixing_scope_and_role_keys_rejected(self): with pytest.raises(ValueError, match="mixes scope keys with non-scope"): - controls._parse_roles_overlay( + permission_controls._parse_roles_overlay( { "project": {"editor": {"permissions": ["read_system"]}}, "auditor": {"permissions": ["read_system"]}, @@ -501,14 +530,14 @@ class TestRolesOverlayApply: def _base_roles(self) -> dict: # Mirror the code-default catalog (minima + default extras for # workspace and project; minima only for organization). - return controls._default_roles() + return permission_controls._default_roles() def test_patch_existing_role_replaces_permissions_in_both_scopes(self): roles = self._base_roles() - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( {"project": {"editor": {"permissions": ["read_system"]}}} ) - result = controls._apply_roles_overlay(roles, overlay) + result = permission_controls._apply_roles_overlay(roles, overlay) for scope in ("workspace", "project"): editor = next(r for r in result[scope] if r["role"] == "editor") @@ -519,10 +548,10 @@ def test_patch_existing_role_preserves_description_when_not_set(self): original_description = next( r for r in roles["project"] if r["role"] == "editor" )["description"] - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( {"project": {"editor": {"permissions": ["read_system"]}}} ) - result = controls._apply_roles_overlay(roles, overlay) + result = permission_controls._apply_roles_overlay(roles, overlay) for scope in ("workspace", "project"): editor = next(r for r in result[scope] if r["role"] == "editor") @@ -533,10 +562,10 @@ def test_patch_existing_role_preserves_permissions_when_not_set(self): original_perms = list( next(r for r in roles["project"] if r["role"] == "editor")["permissions"] ) - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( {"project": {"editor": {"description": "Custom description"}}} ) - result = controls._apply_roles_overlay(roles, overlay) + result = permission_controls._apply_roles_overlay(roles, overlay) for scope in ("workspace", "project"): editor = next(r for r in result[scope] if r["role"] == "editor") @@ -545,7 +574,7 @@ def test_patch_existing_role_preserves_permissions_when_not_set(self): def test_new_role_added_to_both_scopes(self): roles = self._base_roles() - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( { "project": { "auditor": { @@ -555,7 +584,7 @@ def test_new_role_added_to_both_scopes(self): } } ) - result = controls._apply_roles_overlay(roles, overlay) + result = permission_controls._apply_roles_overlay(roles, overlay) for scope in ("workspace", "project"): slugs = [r["role"] for r in result[scope]] @@ -563,16 +592,16 @@ def test_new_role_added_to_both_scopes(self): def test_new_role_without_permissions_rejected(self): roles = self._base_roles() - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( {"project": {"auditor": {"description": "Only description"}}} ) with pytest.raises(ValueError, match="new role requires 'permissions'"): - controls._apply_roles_overlay(roles, overlay) + permission_controls._apply_roles_overlay(roles, overlay) def test_organization_scope_untouched(self): roles = self._base_roles() original_org_slugs = [r["role"] for r in roles["organization"]] - overlay = controls._parse_roles_overlay( + overlay = permission_controls._parse_roles_overlay( { "project": { "auditor": { @@ -582,6 +611,6 @@ def test_organization_scope_untouched(self): } } ) - result = controls._apply_roles_overlay(roles, overlay) + result = permission_controls._apply_roles_overlay(roles, overlay) assert [r["role"] for r in result["organization"]] == original_org_slugs diff --git a/api/ee/tests/pytest/unit/test_billing_router.py b/api/ee/tests/pytest/unit/test_billing_router.py index 07a86012f3..74b311eea7 100644 --- a/api/ee/tests/pytest/unit/test_billing_router.py +++ b/api/ee/tests/pytest/unit/test_billing_router.py @@ -6,7 +6,7 @@ from ee.src.apis.fastapi.billing import router as billing_router_module from ee.src.apis.fastapi.billing.router import BillingRouter -from ee.src.core.entitlements.types import DefaultPlan +from ee.src.core.access.entitlements.types import DefaultPlan from ee.src.core.subscriptions.types import Event diff --git a/api/ee/tests/pytest/unit/test_billing_settings.py b/api/ee/tests/pytest/unit/test_billing_settings.py index f16451c9b8..b6e58ab2c1 100644 --- a/api/ee/tests/pytest/unit/test_billing_settings.py +++ b/api/ee/tests/pytest/unit/test_billing_settings.py @@ -9,7 +9,7 @@ import pytest from ee.src.core.subscriptions import settings -from ee.src.core.entitlements.types import DefaultPlan +from ee.src.core.access.entitlements.types import DefaultPlan # --------------------------------------------------------------------------- diff --git a/api/ee/tests/pytest/unit/test_compute_meter_id.py b/api/ee/tests/pytest/unit/test_compute_meter_id.py index 5ff4973004..622ccab241 100644 --- a/api/ee/tests/pytest/unit/test_compute_meter_id.py +++ b/api/ee/tests/pytest/unit/test_compute_meter_id.py @@ -24,7 +24,7 @@ MeterPeriod, compute_meter_id, ) -from ee.src.core.entitlements.types import Counter +from ee.src.core.access.entitlements.types import Counter from oss.src.utils.env import env diff --git a/api/ee/tests/pytest/unit/test_controls_env_override.py b/api/ee/tests/pytest/unit/test_controls_env_override.py index b0e413b927..51e92414eb 100644 --- a/api/ee/tests/pytest/unit/test_controls_env_override.py +++ b/api/ee/tests/pytest/unit/test_controls_env_override.py @@ -56,12 +56,12 @@ def test_no_env_uses_defaults(self): # Plans count should equal DefaultPlan enum size; catalog count # should match (one entry per plan in DEFAULT_CATALOG plus the # Enterprise contact-sales tier which has no `plan` field). - from ee.src.core.entitlements.types import DEFAULT_CATALOG, DefaultPlan + from ee.src.core.access.entitlements.types import DEFAULT_CATALOG, DefaultPlan expected_plans = len(list(DefaultPlan)) expected_catalog = len(DEFAULT_CATALOG) out = _ok( - "from ee.src.core.entitlements.controls import get_plans; " + "from ee.src.core.access.controls import get_plans; " "from ee.src.core.subscriptions.settings import get_catalog; " "print(len(get_plans())); print(len(get_catalog()))" ) @@ -155,7 +155,7 @@ class TestPlansOverride: def test_consistent_override_works_end_to_end(self): out = _ok( - "from ee.src.core.entitlements.controls import get_plans, get_plan_description; " + "from ee.src.core.access.controls import get_plans, get_plan_description; " "from ee.src.core.subscriptions.settings import get_catalog, get_free_plan; " "print(','.join(sorted(get_plans()))); " "print(get_plan_description('only_plan')); " @@ -171,21 +171,21 @@ def test_consistent_override_works_end_to_end(self): def test_invalid_json_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_plans", + "from ee.src.core.access.controls import get_plans", {"AGENTA_ACCESS_PLANS": "{not json"}, "AGENTA_ACCESS_PLANS is not valid JSON", ) def test_wrong_top_level_type_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_plans", + "from ee.src.core.access.controls import get_plans", {"AGENTA_ACCESS_PLANS": "[1,2,3]"}, "must be a JSON object", ) def test_empty_object_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_plans", + "from ee.src.core.access.controls import get_plans", {"AGENTA_ACCESS_PLANS": "{}"}, "non-empty", ) @@ -194,7 +194,7 @@ def test_plan_with_only_description_allowed(self): # Display-only plans (no enforced trackers) are accepted. They show # up in the effective plan map with an empty entitlements dict. out = _ok( - "from ee.src.core.entitlements.controls import get_plans, get_plan_entitlements; " + "from ee.src.core.access.controls import get_plans, get_plan_entitlements; " "print(sorted(get_plans())); print(get_plan_entitlements('x'))", env_extra={"AGENTA_ACCESS_PLANS": '{"x":{"description":"y"}}'}, ) @@ -517,7 +517,7 @@ class TestRolesOverride: def test_custom_role_with_known_permission_appended_to_minima(self): out = _ok( - "from ee.src.core.entitlements.controls import get_roles, get_role_permissions; " + "from ee.src.core.access.controls import get_roles, get_role_permissions; " "print(','.join(r['role'] for r in get_roles('project'))); " "print(','.join(get_role_permissions('project','reviewer')))", env_extra={ @@ -528,7 +528,7 @@ def test_custom_role_with_known_permission_appended_to_minima(self): ) lines = out.splitlines() # owner + viewer minima first, custom role last. - assert lines[0] == "owner,viewer,reviewer" + assert lines[0] == "owner,admin,viewer,reviewer" assert lines[1] == "read_system" def test_project_override_is_mirrored_to_workspace_today(self): @@ -537,7 +537,7 @@ def test_project_override_is_mirrored_to_workspace_today(self): # membership. A project-only override therefore intentionally replaces # workspace extras too, instead of leaving workspace defaults intact. out = _ok( - "from ee.src.core.entitlements.controls import get_roles; " + "from ee.src.core.access.controls import get_roles; " "print(','.join(r['role'] for r in get_roles('workspace')))", env_extra={ "AGENTA_ACCESS_ROLES": json.dumps( @@ -545,11 +545,11 @@ def test_project_override_is_mirrored_to_workspace_today(self): ) }, ) - assert out.strip() == "owner,viewer,reviewer" + assert out.strip() == "owner,admin,viewer,reviewer" def test_unknown_permission_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES": json.dumps( {"project": [{"role": "x", "permissions": ["bogus_perm_id"]}]} @@ -560,7 +560,7 @@ def test_unknown_permission_fails_startup(self): def test_redefining_owner_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES": json.dumps( {"project": [{"role": "owner", "permissions": ["*"]}]} @@ -571,7 +571,7 @@ def test_redefining_owner_fails_startup(self): def test_redefining_viewer_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES": json.dumps( {"project": [{"role": "viewer", "permissions": ["read_system"]}]} @@ -582,7 +582,7 @@ def test_redefining_viewer_fails_startup(self): def test_duplicate_custom_role_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES": json.dumps( { @@ -598,14 +598,14 @@ def test_duplicate_custom_role_fails_startup(self): def test_empty_roles_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", {"AGENTA_ACCESS_ROLES": "{}"}, "non-empty", ) def test_empty_scope_list_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", {"AGENTA_ACCESS_ROLES": json.dumps({"project": []})}, "non-empty list of roles", ) @@ -649,8 +649,8 @@ def test_overlay_patches_traces_retention(self): # Retention enum values, so we use one of those rather than an # arbitrary minute count. out = _ok( - "from ee.src.core.entitlements.controls import get_plan_entitlements; " - "from ee.src.core.entitlements.types import Tracker, Counter; " + "from ee.src.core.access.controls import get_plan_entitlements; " + "from ee.src.core.access.entitlements.types import Tracker, Counter; " "ent = get_plan_entitlements('cloud_v0_hobby'); " "print(ent[Tracker.COUNTERS][Counter.TRACES_INGESTED].retention.value)", env_extra={ @@ -667,8 +667,8 @@ def test_overlay_preserves_other_quota_fields(self): # retention=Retention.MONTHLY. Overlay sets only retention → free # and period stay. out = _ok( - "from ee.src.core.entitlements.controls import get_plan_entitlements; " - "from ee.src.core.entitlements.types import Tracker, Counter; " + "from ee.src.core.access.controls import get_plan_entitlements; " + "from ee.src.core.access.entitlements.types import Tracker, Counter; " "q = get_plan_entitlements('cloud_v0_hobby')" "[Tracker.COUNTERS][Counter.TRACES_INGESTED]; " "print(q.retention.value, q.free, q.period.value)", @@ -683,8 +683,8 @@ def test_overlay_preserves_other_quota_fields(self): def test_overlay_patches_throttle_rate_only(self): out = _ok( - "from ee.src.core.entitlements.controls import get_plan_entitlements; " - "from ee.src.core.entitlements.types import Tracker, Category; " + "from ee.src.core.access.controls import get_plan_entitlements; " + "from ee.src.core.access.entitlements.types import Tracker, Category; " "ent = get_plan_entitlements('cloud_v0_hobby'); " "t = next(t for t in ent[Tracker.THROTTLES] " " if t.categories == [Category.STANDARD]); " @@ -701,7 +701,7 @@ def test_overlay_patches_throttle_rate_only(self): def test_overlay_invalid_field_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_plans", + "from ee.src.core.access.controls import get_plans", { "AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY": json.dumps( {"flags": {"bogus_flag": True}} @@ -712,7 +712,7 @@ def test_overlay_invalid_field_fails_startup(self): def test_overlay_targeting_unknown_plan_fails(self): _fails( - "from ee.src.core.entitlements.controls import get_plans", + "from ee.src.core.access.controls import get_plans", { "AGENTA_ACCESS_DEFAULT_PLAN": "ghost_plan", "AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY": json.dumps( @@ -724,7 +724,7 @@ def test_overlay_targeting_unknown_plan_fails(self): def test_overlay_empty_object_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_plans", + "from ee.src.core.access.controls import get_plans", {"AGENTA_ACCESS_DEFAULT_PLAN_OVERLAY": "{}"}, "non-empty", ) @@ -794,7 +794,7 @@ class TestRolesOverlay: def test_overlay_patches_editor_permissions_in_both_scopes(self): out = _ok( - "from ee.src.core.entitlements.controls import get_role_permissions; " + "from ee.src.core.access.controls import get_role_permissions; " "print(get_role_permissions('workspace', 'editor')); " "print(get_role_permissions('project', 'editor'))", env_extra={ @@ -809,7 +809,7 @@ def test_overlay_patches_editor_permissions_in_both_scopes(self): def test_overlay_adds_new_role_to_both_scopes(self): out = _ok( - "from ee.src.core.entitlements.controls import get_roles; " + "from ee.src.core.access.controls import get_roles; " "print('auditor' in [r['role'] for r in get_roles('workspace')]); " "print('auditor' in [r['role'] for r in get_roles('project')])", env_extra={ @@ -831,7 +831,7 @@ def test_overlay_organization_scope_untouched(self): # Organization scope only has the minima (owner + viewer) by default. # The overlay must not change that — it targets workspace + project. out = _ok( - "from ee.src.core.entitlements.controls import get_roles; " + "from ee.src.core.access.controls import get_roles; " "print(','.join(r['role'] for r in get_roles('organization')))", env_extra={ "AGENTA_ACCESS_ROLES_OVERLAY": json.dumps( @@ -846,11 +846,11 @@ def test_overlay_organization_scope_untouched(self): ) }, ) - assert out.strip() == "owner,viewer" + assert out.strip() == "owner,admin,viewer" def test_overlay_non_project_scope_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES_OVERLAY": json.dumps( {"workspace": {"editor": {"permissions": ["read_system"]}}} @@ -861,7 +861,7 @@ def test_overlay_non_project_scope_fails_startup(self): def test_overlay_reserved_role_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES_OVERLAY": json.dumps( {"project": {"owner": {"permissions": ["*"]}}} @@ -872,7 +872,7 @@ def test_overlay_reserved_role_fails_startup(self): def test_overlay_unknown_permission_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES_OVERLAY": json.dumps( {"project": {"editor": {"permissions": ["bogus_perm"]}}} @@ -883,14 +883,14 @@ def test_overlay_unknown_permission_fails_startup(self): def test_overlay_empty_object_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", {"AGENTA_ACCESS_ROLES_OVERLAY": "{}"}, "non-empty", ) def test_overlay_new_role_without_permissions_fails_startup(self): _fails( - "from ee.src.core.entitlements.controls import get_roles", + "from ee.src.core.access.controls import get_roles", { "AGENTA_ACCESS_ROLES_OVERLAY": json.dumps( {"project": {"auditor": {"description": "x"}}} diff --git a/api/ee/tests/pytest/unit/test_events_retention.py b/api/ee/tests/pytest/unit/test_events_retention.py index db12544528..468fe330fe 100644 --- a/api/ee/tests/pytest/unit/test_events_retention.py +++ b/api/ee/tests/pytest/unit/test_events_retention.py @@ -13,7 +13,7 @@ import pytest -from ee.src.core.entitlements.types import ( +from ee.src.core.access.entitlements.types import ( Counter, Period, Quota, diff --git a/api/ee/tests/pytest/unit/test_meters_dao_fetch.py b/api/ee/tests/pytest/unit/test_meters_dao_fetch.py index 676f1d4c90..ecdeba0982 100644 --- a/api/ee/tests/pytest/unit/test_meters_dao_fetch.py +++ b/api/ee/tests/pytest/unit/test_meters_dao_fetch.py @@ -68,14 +68,16 @@ async def __aexit__(self, exc_type, exc, tb): return False -def _patch_session(monkeypatch, session: _Session): - from ee.src.dbs.postgres.meters import dao as dao_module +class _Engine: + def __init__(self, session: _Session): + self._session = session - monkeypatch.setattr( - dao_module.engine, - "core_session", - lambda: _SessionContext(session), - ) + def session(self): + return _SessionContext(self._session) + + +def _dao_with_session(session: _Session) -> MetersDAO: + return MetersDAO(engine=_Engine(session)) def _where_sql(stmt) -> str: @@ -103,12 +105,11 @@ def _where_sql(stmt) -> str: class TestFetchScopeFilters: @pytest.mark.asyncio - async def test_org_only_scope_binds_finer_dims_to_is_null(self, monkeypatch): + async def test_org_only_scope_binds_finer_dims_to_is_null(self): """`MeterScope(organization_id=X)` → finer dims IS NULL.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(scope=MeterScope(organization_id=ORG)) assert len(session.executed_statements) == 1 @@ -118,12 +119,11 @@ async def test_org_only_scope_binds_finer_dims_to_is_null(self, monkeypatch): assert "user_id is null" in sql @pytest.mark.asyncio - async def test_workspace_scope_binds_below_to_is_null(self, monkeypatch): + async def test_workspace_scope_binds_below_to_is_null(self): """workspace-scoped read should not match project/user rows.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch( scope=MeterScope(organization_id=ORG, workspace_id=WRK), ) @@ -134,12 +134,11 @@ async def test_workspace_scope_binds_below_to_is_null(self, monkeypatch): assert "user_id is null" in sql @pytest.mark.asyncio - async def test_user_scope_binds_every_dim(self, monkeypatch): + async def test_user_scope_binds_every_dim(self): """fully-bound user scope → all four dims bound to concrete values.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch( scope=MeterScope( organization_id=ORG, @@ -155,12 +154,11 @@ async def test_user_scope_binds_every_dim(self, monkeypatch): assert "is null" not in sql @pytest.mark.asyncio - async def test_scope_none_applies_no_filter(self, monkeypatch): + async def test_scope_none_applies_no_filter(self): """`scope=None` escape hatch — no scope filter at all.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(scope=None) sql = _where_sql(session.executed_statements[0]).lower() @@ -170,12 +168,11 @@ async def test_scope_none_applies_no_filter(self, monkeypatch): assert "user_id" not in sql @pytest.mark.asyncio - async def test_empty_scope_is_equivalent_to_scope_none(self, monkeypatch): + async def test_empty_scope_is_equivalent_to_scope_none(self): """`MeterScope()` (all dims unset) is treated as the same admin escape as `scope=None`.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(scope=MeterScope()) sql = _where_sql(session.executed_statements[0]).lower() @@ -187,12 +184,11 @@ async def test_empty_scope_is_equivalent_to_scope_none(self, monkeypatch): class TestFetchPeriodFilters: @pytest.mark.asyncio - async def test_monthly_period_binds_day_to_is_null(self, monkeypatch): + async def test_monthly_period_binds_day_to_is_null(self): """MONTHLY read (year, month, day=None) must not match DAILY rows.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(period=MeterPeriod(year=2026, month=5)) sql = _where_sql(session.executed_statements[0]).lower() @@ -201,12 +197,11 @@ async def test_monthly_period_binds_day_to_is_null(self, monkeypatch): assert "day is null" in sql @pytest.mark.asyncio - async def test_daily_period_binds_every_dim(self, monkeypatch): + async def test_daily_period_binds_every_dim(self): """DAILY read binds year+month+day to concrete values.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(period=MeterPeriod(year=2026, month=5, day=19)) sql = _where_sql(session.executed_statements[0]).lower() @@ -217,12 +212,11 @@ async def test_daily_period_binds_every_dim(self, monkeypatch): assert "day is null" not in sql @pytest.mark.asyncio - async def test_empty_period_binds_all_to_is_null(self, monkeypatch): + async def test_empty_period_binds_all_to_is_null(self): """`MeterPeriod()` (no period) → all three IS NULL — pins lifetime rows.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(period=MeterPeriod()) sql = _where_sql(session.executed_statements[0]).lower() @@ -231,12 +225,11 @@ async def test_empty_period_binds_all_to_is_null(self, monkeypatch): assert "day is null" in sql @pytest.mark.asyncio - async def test_period_none_applies_no_filter(self, monkeypatch): + async def test_period_none_applies_no_filter(self): """`period=None` escape hatch — no period filter at all.""" session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(period=None) sql = _where_sql(session.executed_statements[0]).lower() @@ -247,22 +240,20 @@ async def test_period_none_applies_no_filter(self, monkeypatch): class TestFetchKeyFilter: @pytest.mark.asyncio - async def test_key_bound(self, monkeypatch): + async def test_key_bound(self): session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(key=Meters.TRACES_RETRIEVED) sql = _where_sql(session.executed_statements[0]).lower() assert "key" in sql @pytest.mark.asyncio - async def test_key_none_applies_no_filter(self, monkeypatch): + async def test_key_none_applies_no_filter(self): session = _Session() - _patch_session(monkeypatch, session) - dao = MetersDAO() + dao = _dao_with_session(session) await dao.fetch(key=None) sql = _where_sql(session.executed_statements[0]).lower() diff --git a/api/ee/tests/pytest/unit/test_meters_dao_strict_soft.py b/api/ee/tests/pytest/unit/test_meters_dao_strict_soft.py index 318e9a9321..91fb80afe6 100644 --- a/api/ee/tests/pytest/unit/test_meters_dao_strict_soft.py +++ b/api/ee/tests/pytest/unit/test_meters_dao_strict_soft.py @@ -26,7 +26,7 @@ import pytest -from ee.src.core.entitlements.types import Quota +from ee.src.core.access.entitlements.types import Quota from ee.src.core.meters.types import MeterDTO, Meters from ee.src.dbs.postgres.meters.dao import MetersDAO @@ -104,14 +104,16 @@ async def __aexit__(self, exc_type, exc, tb): return False -def _patch_session(monkeypatch, session: _Session): - from ee.src.dbs.postgres.meters import dao as dao_module +class _MockEngine: + def __init__(self, session: _Session): + self._session = session - monkeypatch.setattr( - dao_module.engine, - "core_session", - lambda: _SessionContext(session), - ) + def session(self): + return _SessionContext(self._session) + + +def _mock_engine(session: _Session) -> _MockEngine: + return _MockEngine(session) # --------------------------------------------------------------------------- @@ -121,12 +123,10 @@ def _patch_session(monkeypatch, session: _Session): class TestCheck: @pytest.mark.asyncio - async def test_below_limit_with_delta_allows(self, monkeypatch): + async def test_below_limit_with_delta_allows(self): """current=5, delta=3, limit=10 → 8 <= 10 → allowed.""" session = _Session(scalar=SimpleNamespace(value=5, synced=0)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, dto = await dao.check( meter=_meter(delta=3), quota=Quota(limit=10), @@ -136,12 +136,10 @@ async def test_below_limit_with_delta_allows(self, monkeypatch): assert dto.value == 5 # returned current value @pytest.mark.asyncio - async def test_at_limit_with_zero_delta_allows(self, monkeypatch): + async def test_at_limit_with_zero_delta_allows(self): """current=10, delta=0, limit=10 → 10 <= 10 → allowed (boundary).""" session = _Session(scalar=SimpleNamespace(value=10, synced=0)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _ = await dao.check( meter=_meter(delta=0), quota=Quota(limit=10), @@ -150,12 +148,10 @@ async def test_at_limit_with_zero_delta_allows(self, monkeypatch): assert allowed is True @pytest.mark.asyncio - async def test_would_exceed_limit_blocks(self, monkeypatch): + async def test_would_exceed_limit_blocks(self): """current=10, delta=2, limit=10 → 12 > 10 → blocked.""" session = _Session(scalar=SimpleNamespace(value=10, synced=0)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _ = await dao.check( meter=_meter(delta=2), quota=Quota(limit=10), @@ -164,12 +160,10 @@ async def test_would_exceed_limit_blocks(self, monkeypatch): assert allowed is False @pytest.mark.asyncio - async def test_negative_delta_clamps_at_zero(self, monkeypatch): + async def test_negative_delta_clamps_at_zero(self): """current=3, delta=-10, limit=10 → max(-7, 0)=0 <= 10 → allowed.""" session = _Session(scalar=SimpleNamespace(value=3, synced=0)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _ = await dao.check( meter=_meter(delta=-10), quota=Quota(limit=10), @@ -178,12 +172,10 @@ async def test_negative_delta_clamps_at_zero(self, monkeypatch): assert allowed is True @pytest.mark.asyncio - async def test_no_existing_row_treats_current_as_zero(self, monkeypatch): + async def test_no_existing_row_treats_current_as_zero(self): """No row in DB, delta=5, limit=10 → 0+5=5 <= 10 → allowed.""" session = _Session(scalar=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, dto = await dao.check( meter=_meter(delta=5), quota=Quota(limit=10), @@ -194,12 +186,10 @@ async def test_no_existing_row_treats_current_as_zero(self, monkeypatch): assert dto.synced == 0 @pytest.mark.asyncio - async def test_no_limit_always_allows(self, monkeypatch): + async def test_no_limit_always_allows(self): """limit=None → unconditional pass even at huge values.""" session = _Session(scalar=SimpleNamespace(value=10_000_000, synced=0)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _ = await dao.check( meter=_meter(delta=1_000_000), quota=Quota(limit=None), @@ -234,12 +224,10 @@ def _extract_where_sql(statement) -> str: class TestAdjustStrictVsSoft: @pytest.mark.asyncio - async def test_strict_emits_value_plus_delta_predicate(self, monkeypatch): + async def test_strict_emits_value_plus_delta_predicate(self): """Strict mode must gate on `value + delta <= limit`.""" session = _Session(row=(7,)) # post-update value - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=True), @@ -255,7 +243,7 @@ async def test_strict_emits_value_plus_delta_predicate(self, monkeypatch): @pytest.mark.asyncio async def test_nonstrict_emits_value_strictly_less_than_limit_predicate( - self, monkeypatch + self, ): """Non-strict mode gates the SQL predicate on `value < limit`. @@ -266,9 +254,7 @@ async def test_nonstrict_emits_value_strictly_less_than_limit_predicate( already at-or-over limit. """ session = _Session(row=(7,)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=False), @@ -301,15 +287,13 @@ async def test_nonstrict_emits_value_strictly_less_than_limit_predicate( # --------------------------------------------------------------------- @pytest.mark.asyncio - async def test_huge_delta_denied_in_strict(self, monkeypatch): + async def test_huge_delta_denied_in_strict(self): """0 + 12 with limit=10 → predictable self-overshoot → deny. Python-side fast-path; no DB call should land. """ session = _Session(row=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=12), quota=Quota(limit=10, strict=True), @@ -321,15 +305,13 @@ async def test_huge_delta_denied_in_strict(self, monkeypatch): ) @pytest.mark.asyncio - async def test_huge_delta_denied_in_nonstrict(self, monkeypatch): + async def test_huge_delta_denied_in_nonstrict(self): """0 + 12 with limit=10 → predictable self-overshoot → deny. Non-strict shares the same `delta <= limit` rule as strict. """ session = _Session(row=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=12), quota=Quota(limit=10, strict=False), @@ -339,13 +321,11 @@ async def test_huge_delta_denied_in_nonstrict(self, monkeypatch): assert session.executed_statements == [] @pytest.mark.asyncio - async def test_at_limit_denied_in_strict(self, monkeypatch): + async def test_at_limit_denied_in_strict(self): """10 + 2 with limit=10 → strict SQL predicate filters the row out (greatest(10+2, 0) > 10) → RETURNING empty → deny.""" session = _Session(row=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=True), @@ -357,13 +337,11 @@ async def test_at_limit_denied_in_strict(self, monkeypatch): assert len(session.executed_statements) == 1 @pytest.mark.asyncio - async def test_at_limit_denied_in_nonstrict(self, monkeypatch): + async def test_at_limit_denied_in_nonstrict(self): """10 + 2 with limit=10 → non-strict SQL predicate `value < 10` rejects current=10 → RETURNING empty → deny.""" session = _Session(row=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=False), @@ -373,13 +351,11 @@ async def test_at_limit_denied_in_nonstrict(self, monkeypatch): assert len(session.executed_statements) == 1 @pytest.mark.asyncio - async def test_one_over_denied_in_strict(self, monkeypatch): + async def test_one_over_denied_in_strict(self): """9 + 2 with limit=10 → strict SQL predicate `greatest(9+2, 0) > 10` rejects → deny.""" session = _Session(row=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=True), @@ -388,7 +364,7 @@ async def test_one_over_denied_in_strict(self, monkeypatch): assert allowed is False @pytest.mark.asyncio - async def test_one_over_allowed_in_nonstrict(self, monkeypatch): + async def test_one_over_allowed_in_nonstrict(self): """9 + 2 with limit=10 → non-strict SQL predicate `9 < 10` → allow. This is the cross-the-line-once case: the request itself crosses @@ -396,9 +372,7 @@ async def test_one_over_allowed_in_nonstrict(self, monkeypatch): request would then be denied by the same predicate. """ session = _Session(row=(11,)) # post-update value - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=False), @@ -407,13 +381,11 @@ async def test_one_over_allowed_in_nonstrict(self, monkeypatch): assert allowed is True @pytest.mark.asyncio - async def test_fills_exactly_allowed_in_both_modes(self, monkeypatch): + async def test_fills_exactly_allowed_in_both_modes(self): """8 + 2 with limit=10 → equal to limit → allowed in both modes.""" for strict in (True, False): session = _Session(row=(10,)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=strict), @@ -421,16 +393,14 @@ async def test_fills_exactly_allowed_in_both_modes(self, monkeypatch): assert allowed is True, f"strict={strict}: 8+2 should allow" @pytest.mark.asyncio - async def test_strict_blocks_when_proposed_value_exceeds_limit(self, monkeypatch): + async def test_strict_blocks_when_proposed_value_exceeds_limit(self): """`adjust` early-returns False when caller-set value > limit. This is the absolute-value pre-check at the top of `adjust` (delta-mode callers hit the SQL predicate instead). """ session = _Session(row=None) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, _, _ = await dao.adjust( meter=_meter(value=20), # explicit value, no delta quota=Quota(limit=10, strict=True), @@ -441,13 +411,11 @@ async def test_strict_blocks_when_proposed_value_exceeds_limit(self, monkeypatch assert session.executed_statements == [] @pytest.mark.asyncio - async def test_returns_false_when_predicate_blocks(self, monkeypatch): + async def test_returns_false_when_predicate_blocks(self): """When the WHERE clause filters the row out, RETURNING is empty → upsert "succeeded" with zero rows → DAO returns allowed=False.""" session = _Session(row=None) # RETURNING produced nothing - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, dto, _ = await dao.adjust( meter=_meter(delta=5), quota=Quota(limit=10, strict=True), @@ -459,13 +427,11 @@ async def test_returns_false_when_predicate_blocks(self, monkeypatch): assert dto.value == 5 @pytest.mark.asyncio - async def test_returns_true_when_returning_row_present(self, monkeypatch): + async def test_returns_true_when_returning_row_present(self): """RETURNING produced a row → upsert succeeded → allowed=True with the post-update value coming from RETURNING.""" session = _Session(row=(7,)) - _patch_session(monkeypatch, session) - - dao = MetersDAO() + dao = MetersDAO(engine=_mock_engine(session)) allowed, dto, _ = await dao.adjust( meter=_meter(delta=2), quota=Quota(limit=10, strict=True), diff --git a/api/ee/tests/pytest/unit/test_meters_types.py b/api/ee/tests/pytest/unit/test_meters_types.py index ec2ef97c94..c78988055c 100644 --- a/api/ee/tests/pytest/unit/test_meters_types.py +++ b/api/ee/tests/pytest/unit/test_meters_types.py @@ -1,4 +1,4 @@ -from ee.src.core.entitlements.types import Counter, Gauge +from ee.src.core.access.entitlements.types import Counter, Gauge from ee.src.core.meters.types import Meters diff --git a/api/ee/tests/pytest/unit/test_period_from.py b/api/ee/tests/pytest/unit/test_period_from.py index e8f762a6dc..8c74aee4de 100644 --- a/api/ee/tests/pytest/unit/test_period_from.py +++ b/api/ee/tests/pytest/unit/test_period_from.py @@ -18,9 +18,9 @@ import pytest -from ee.src.core.entitlements.types import Period +from ee.src.core.access.entitlements.types import Period from ee.src.core.meters.types import MeterPeriod -from ee.src.utils.entitlements import period_from +from ee.src.core.access.entitlements.service import period_from # --------------------------------------------------------------------------- @@ -47,7 +47,7 @@ def test_period_yearly_sets_only_year(): """YEARLY buckets the meter by year. Month/day must stay None so every row in the same year shares a `meter_id`.""" fake_now = datetime(2026, 5, 18, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p = period_from(period=Period.YEARLY) @@ -65,7 +65,7 @@ def test_period_yearly_sets_only_year(): def test_period_monthly_sets_year_and_month_without_anchor(): """MONTHLY without an anchor returns the calendar (year, month).""" fake_now = datetime(2026, 5, 18, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p = period_from(period=Period.MONTHLY) @@ -78,7 +78,7 @@ def test_period_monthly_advances_when_day_meets_anchor(): """MONTHLY with `anchor=N` and `now.day >= N` rolls into next month — Stripe-style anchor semantics. Day=18, anchor=15 advances to June.""" fake_now = datetime(2026, 5, 18, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p = period_from(period=Period.MONTHLY, anchor=15) @@ -90,7 +90,7 @@ def test_period_monthly_advances_when_day_meets_anchor(): def test_period_monthly_stays_when_day_before_anchor(): """MONTHLY with `now.day < anchor` stays in the current period.""" fake_now = datetime(2026, 5, 10, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p = period_from(period=Period.MONTHLY, anchor=15) @@ -102,7 +102,7 @@ def test_period_monthly_stays_when_day_before_anchor(): def test_period_monthly_year_rollover_with_anchor(): """Dec 20 + anchor=15 → next period is (2027, 1).""" fake_now = datetime(2026, 12, 20, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p = period_from(period=Period.MONTHLY, anchor=15) @@ -118,7 +118,7 @@ def test_period_monthly_year_rollover_with_anchor(): def test_period_daily_sets_full_calendar_date(): """DAILY buckets the meter by full calendar day.""" fake_now = datetime(2026, 5, 18, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p = period_from(period=Period.DAILY) @@ -130,7 +130,7 @@ def test_period_daily_ignores_anchor(): """DAILY is calendar-day-aligned; anchor only applies to MONTHLY. Same input with and without an anchor must produce the same bucket.""" fake_now = datetime(2026, 5, 18, 12, 0, 0, tzinfo=timezone.utc) - with patch("ee.src.utils.entitlements.datetime") as mock_dt: + with patch("ee.src.core.access.entitlements.service.datetime") as mock_dt: mock_dt.now.return_value = fake_now mock_dt.side_effect = lambda *a, **kw: datetime(*a, **kw) p_without = period_from(period=Period.DAILY) diff --git a/api/ee/tests/pytest/unit/test_scope_from.py b/api/ee/tests/pytest/unit/test_scope_from.py index 7b15bf21e9..934cbb238d 100644 --- a/api/ee/tests/pytest/unit/test_scope_from.py +++ b/api/ee/tests/pytest/unit/test_scope_from.py @@ -23,9 +23,9 @@ import pytest -from ee.src.core.entitlements.types import Scope +from ee.src.core.access.entitlements.types import Scope from ee.src.core.meters.types import MeterScope -from ee.src.utils.entitlements import scope_from +from ee.src.core.access.entitlements.service import scope_from from oss.src.utils.context import ( AuthScope, AuthContext, diff --git a/api/entrypoints/routers.py b/api/entrypoints/routers.py index 83cd60839f..d00435f450 100644 --- a/api/entrypoints/routers.py +++ b/api/entrypoints/routers.py @@ -1,5 +1,7 @@ from contextlib import asynccontextmanager +import time +import agenta as ag from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.middleware.gzip import GZipMiddleware @@ -13,6 +15,16 @@ from oss.src.utils.logging import get_module_logger from oss.src.utils.helpers import warn_deprecated_env_vars, validate_required_env_vars +# Engines +from oss.src.dbs.postgres.shared.engine import ( + get_transactions_engine, + get_analytics_engine, +) +from oss.src.dbs.redis.shared.engine import ( + get_cache_engine, + get_streams_engine, +) + from oss.databases.postgres.migrations.core.utils import ( check_for_new_migrations as check_for_new_core_migrations, ) @@ -20,8 +32,8 @@ check_for_new_migrations as check_for_new_tracing_migrations, ) -from oss.src.services.auth_service import authentication_middleware -from oss.src.services.analytics_service import analytics_middleware +from oss.src.middlewares.auth import auth_middleware +from oss.src.middlewares.analytics import analytics_middleware from oss.src.core.auth.supertokens.config import init_supertokens @@ -133,34 +145,49 @@ from oss.src.routers import ( user_profile, - health_router, - permissions_router, projects_router, api_key_router, organization_router, workspace_router, ) +from oss.src.apis.fastapi.access.router import AccessRouter from oss.src.utils.env import env from entrypoints.worker_evaluations import evaluations_worker -import oss.src.core.evaluations.tasks.live # noqa: F401 -import oss.src.core.evaluations.tasks.legacy # noqa: F401 -import oss.src.core.evaluations.tasks.batch # noqa: F401 +import oss.src.core.evaluations.tasks.query # noqa: F401 +import oss.src.core.evaluations.tasks.run # noqa: F401 +import oss.src.core.evaluations.tasks.processor # noqa: F401 -import agenta as ag +print("[STARTUP] About to import agenta SDK") +_t_ag_import = time.perf_counter() +# ag already imported at top +print(f"[STARTUP] agenta SDK imported (+{time.perf_counter() - _t_ag_import:.3f}s)") +_startup_t0 = time.perf_counter() +print("[STARTUP] imports completed, beginning initialization") + +print("[STARTUP] ag.init() starting") +_t_ag_init = time.perf_counter() ag.init( api_url=env.agenta.api_url, ) +print(f"[STARTUP] ag.init() completed (+{time.perf_counter() - _t_ag_init:.3f}s)") ee = None +_t_before_ee = time.perf_counter() if is_ee(): + print("[STARTUP] EE module import starting (Stripe init happens here)") import ee.src.main as ee # type: ignore + _ee_elapsed = time.perf_counter() - _t_before_ee + print(f"[STARTUP] EE module import completed (+{_ee_elapsed:.3f}s)") + log = get_module_logger(__name__) init_supertokens() +_st_elapsed = time.perf_counter() - _startup_t0 +print(f"[STARTUP] init_supertokens completed (+{_st_elapsed:.3f}s)") @asynccontextmanager @@ -184,6 +211,10 @@ async def lifespan(*args, **kwargs): for adapter in _composio_adapters.values(): await adapter.close() + await _transactions_engine.close() + await _analytics_engine.close() + await _streams_engine.close() + _OPENAPI_TAGS = [ { @@ -327,11 +358,11 @@ async def lifespan(*args, **kwargs): app.add_middleware(SupportHeadersMiddleware) if is_ee(): - from ee.src.services.throttling_service import throttling_middleware + from ee.src.middlewares.throttling import throttling_middleware app.middleware("http")(throttling_middleware) -app.middleware("http")(authentication_middleware) +app.middleware("http")(auth_middleware) app.middleware("http")(analytics_middleware) app.add_middleware(GZipMiddleware, minimum_size=1000, compresslevel=5) @@ -359,47 +390,65 @@ async def lifespan(*args, **kwargs): # DAOS ------------------------------------------------------------------------- -secrets_dao = SecretsDAO() -webhooks_dao = WebhooksDAO() +_t_daos = time.perf_counter() +print("[STARTUP] DAO initialization starting") + +# Instantiate engines at startup (lazy — they don't connect until first use) +_transactions_engine = get_transactions_engine() +_analytics_engine = get_analytics_engine() +_streams_engine = get_streams_engine() +_cache_engine = get_cache_engine() + +secrets_dao = SecretsDAO(engine=_transactions_engine) +webhooks_dao = WebhooksDAO(engine=_transactions_engine) -tracing_dao = TracingDAO() -events_dao = EventsDAO() +tracing_dao = TracingDAO(engine=_analytics_engine) +events_dao = EventsDAO(engine=_analytics_engine) testcases_dao = BlobsDAO( + engine=_transactions_engine, BlobDBE=TestcaseBlobDBE, ) testsets_dao = GitDAO( + engine=_transactions_engine, ArtifactDBE=TestsetArtifactDBE, VariantDBE=TestsetVariantDBE, RevisionDBE=TestsetRevisionDBE, ) queries_dao = GitDAO( + engine=_transactions_engine, ArtifactDBE=QueryArtifactDBE, VariantDBE=QueryVariantDBE, RevisionDBE=QueryRevisionDBE, ) workflows_dao = GitDAO( + engine=_transactions_engine, ArtifactDBE=WorkflowArtifactDBE, VariantDBE=WorkflowVariantDBE, RevisionDBE=WorkflowRevisionDBE, ) environments_dao = GitDAO( + engine=_transactions_engine, ArtifactDBE=EnvironmentArtifactDBE, VariantDBE=EnvironmentVariantDBE, RevisionDBE=EnvironmentRevisionDBE, ) -evaluations_dao = EvaluationsDAO() -folders_dao = FoldersDAO() +evaluations_dao = EvaluationsDAO(engine=_transactions_engine) +folders_dao = FoldersDAO(engine=_transactions_engine) -tools_dao = ToolsDAO() +tools_dao = ToolsDAO(engine=_transactions_engine) # SERVICES --------------------------------------------------------------------- +_t_daos_done = time.perf_counter() - _t_daos +print(f"[STARTUP] DAO initialization completed (+{_t_daos_done:.3f}s)") +_t_services = time.perf_counter() + vault_service = VaultService( secrets_dao=secrets_dao, ) @@ -541,6 +590,10 @@ async def lifespan(*args, **kwargs): adapter_registry=tools_adapter_registry, ) +_t_services_done = time.perf_counter() - _t_services +print(f"[STARTUP] Service initialization completed (+{_t_services_done:.3f}s)") +_t_routers = time.perf_counter() + # ROUTERS ---------------------------------------------------------------------- secrets = VaultRouter( @@ -693,6 +746,8 @@ async def lifespan(*args, **kwargs): # MOUNTING ROUTERS TO APP ROUTES ----------------------------------------------- +_t_mount_routers = time.perf_counter() + app.include_router( router=secrets.router, tags=["Secrets"], @@ -1078,15 +1133,16 @@ async def lifespan(*args, **kwargs): tags=["Admin"], ) -app.include_router( - health_router.router, - prefix="/health", - tags=["Status"], -) +@app.get("/health", operation_id="health_check", tags=["Status"]) +async def health_check(): + return {"status": "ok"} + + +access_router = AccessRouter() app.include_router( - permissions_router.router, - prefix="/permissions", + access_router.router, + prefix="/access", tags=["Access"], ) @@ -1120,5 +1176,14 @@ async def lifespan(*args, **kwargs): ) # ------------------------------------------------------------------------------ +_t_routers_done = time.perf_counter() - _t_routers +print(f"[STARTUP] Router initialization completed (+{_t_routers_done:.3f}s)") + +_t_mount_routers_done = time.perf_counter() - _t_mount_routers +print(f"[STARTUP] Router mounting completed (+{_t_mount_routers_done:.3f}s)") + if ee and is_ee(): app = ee.extend_app_schema(app) + +_total_startup = time.perf_counter() - _startup_t0 +print(f"[STARTUP] module initialization completed in {_total_startup:.3f}s") diff --git a/api/entrypoints/worker_evaluations.py b/api/entrypoints/worker_evaluations.py index 8624da4a62..99d0b8ea14 100644 --- a/api/entrypoints/worker_evaluations.py +++ b/api/entrypoints/worker_evaluations.py @@ -15,7 +15,7 @@ # Guard EE imports — see worker_tracing.py for the rationale. if is_ee(): - from ee.src.utils.entitlements import bootstrap_entitlements_services + from ee.src.core.access.entitlements.service import bootstrap_entitlements_services from oss.src.core.evaluations.runtime.locks import run_worker_heartbeat diff --git a/api/entrypoints/worker_events.py b/api/entrypoints/worker_events.py index 76966657e9..ac65d3246b 100644 --- a/api/entrypoints/worker_events.py +++ b/api/entrypoints/worker_events.py @@ -19,7 +19,7 @@ # Guard EE imports — see worker_tracing.py for the rationale. if is_ee(): - from ee.src.utils.entitlements import bootstrap_entitlements_services + from ee.src.core.access.entitlements.service import bootstrap_entitlements_services log = get_module_logger(__name__) diff --git a/api/entrypoints/worker_tracing.py b/api/entrypoints/worker_tracing.py index e87f532bd9..c4c2ef936f 100644 --- a/api/entrypoints/worker_tracing.py +++ b/api/entrypoints/worker_tracing.py @@ -44,7 +44,7 @@ # the `ee.*` package to be importable. The matching `is_ee()` branch in # `main_async` calls `bootstrap_entitlements_services()`. if is_ee(): - from ee.src.utils.entitlements import bootstrap_entitlements_services + from ee.src.core.access.entitlements.service import bootstrap_entitlements_services log = get_module_logger(__name__) diff --git a/api/entrypoints/worker_webhooks.py b/api/entrypoints/worker_webhooks.py index 33a56d98ba..0419429db4 100644 --- a/api/entrypoints/worker_webhooks.py +++ b/api/entrypoints/worker_webhooks.py @@ -14,7 +14,7 @@ # Guard EE imports — see worker_tracing.py for the rationale. if is_ee(): - from ee.src.utils.entitlements import bootstrap_entitlements_services + from ee.src.core.access.entitlements.service import bootstrap_entitlements_services import agenta as ag diff --git a/api/oss/databases/postgres/migrations/core/versions/a1d2e3f4a5b6_add_default_evaluation_queues.py b/api/oss/databases/postgres/migrations/core/versions/a1d2e3f4a5b6_add_default_evaluation_queues.py new file mode 100644 index 0000000000..4aa8efb2a4 --- /dev/null +++ b/api/oss/databases/postgres/migrations/core/versions/a1d2e3f4a5b6_add_default_evaluation_queues.py @@ -0,0 +1,36 @@ +"""add default evaluation queues + +Revision ID: a1d2e3f4a5b6 +Revises: e6f7a8b9c0d1 +Create Date: 2026-05-15 00:00:00 + +Previously shared revision id `a1b2c3d4e5f6` with +`drop_corrupted_metrics_for_some_runs`, so alembic skipped it and the index +below never ran. Renamed to `a1d2e3f4a5b6` and chained after main's head +`e6f7a8b9c0d1` to keep the branch a single linear chain. + +The partial unique index is scoped to ACTIVE default queues (`deleted_at IS +NULL`) so a default can be archived then recreated/unarchived by reconcile. +""" + +from typing import Sequence, Union + +from alembic import op + +revision: str = "a1d2e3f4a5b6" +down_revision: Union[str, None] = "e6f7a8b9c0d1" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + op.execute("DROP INDEX IF EXISTS ux_evaluation_queues_default_per_run") + op.execute(""" + CREATE UNIQUE INDEX ux_evaluation_queues_default_per_run + ON evaluation_queues (project_id, run_id) + WHERE (flags ->> 'is_default')::boolean = true AND deleted_at IS NULL + """) + + +def downgrade() -> None: + op.execute("DROP INDEX IF EXISTS ux_evaluation_queues_default_per_run") diff --git a/api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py b/api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py new file mode 100644 index 0000000000..5605f57093 --- /dev/null +++ b/api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py @@ -0,0 +1,145 @@ +"""backfill default evaluation queues + +Revision ID: a2b3c4d5e6f8 +Revises: a1d2e3f4a5b6 +Create Date: 2026-05-15 00:10:00 + +Backfills source-family flags (`has_traces` / `has_testcases` / `has_queries` / +`has_testsets`) to match the runtime derivation rule, then mass-creates default +queues per the runtime policy and recomputes `is_queue`. The query/testset +recompute keys on exact reference-key presence, not a substring match. +""" + +from typing import Sequence, Union + +from alembic import op + +revision: str = "a2b3c4d5e6f8" +down_revision: Union[str, None] = "a1d2e3f4a5b6" +branch_labels: Union[str, Sequence[str], None] = None +depends_on: Union[str, Sequence[str], None] = None + + +def upgrade() -> None: + # Backfill source-family flags to match the runtime derivation rule in + # dbs/postgres/evaluations/utils.py. `data` is a `json` column, so cast to + # jsonb before navigating. Direct sources (`has_traces`/`has_testcases`) come + # from the exact step key on a reference-less input; reference-backed sources + # (`has_queries`/`has_testsets`) from exact-key presence (JSONB `?`), not a + # substring match that would misfire on `query_anchor` / `testset_metadata`. + op.execute(""" + UPDATE evaluation_runs + SET flags = COALESCE(flags, '{}'::jsonb) + || jsonb_build_object( + 'has_traces', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) = '{}'::jsonb + AND lower(COALESCE(step ->> 'key', '')) IN ('traces', 'query-direct') + ), + 'has_testcases', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) = '{}'::jsonb + AND lower(COALESCE(step ->> 'key', '')) IN ('testcases', 'testset-direct') + ), + 'has_queries', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) ? 'query_revision' + ), + 'has_testsets', EXISTS ( + SELECT 1 + FROM jsonb_array_elements(COALESCE(data::jsonb -> 'steps', '[]'::jsonb)) AS step + WHERE step ->> 'type' = 'input' + AND COALESCE(step -> 'references', '{}'::jsonb) ? 'testset_revision' + ) + ) + """) + + # Mass-create default queues, mirroring the runtime create policy in + # EvaluationsService._reconcile_default_queue: a default queue should exist + # only for runs that should have one. The runtime predicate is + # `EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS or has_human`, with the env toggle + # currently hardcoded False, so the backfill condition is `has_human = true`. + # Existing default queues, active or archived, are preserved and block + # duplicates. The created queue carries the run's own status instead of a + # hardcoded 'running', so closed/successful runs are not misrepresented. + op.execute(""" + INSERT INTO evaluation_queues ( + project_id, + id, + created_at, + created_by_id, + flags, + data, + status, + run_id + ) + SELECT + r.project_id, + gen_random_uuid(), + CURRENT_TIMESTAMP, + r.created_by_id, + jsonb_build_object('is_default', true, 'is_sequential', false), + '{}'::json, + COALESCE(r.status, 'running'), + r.id + FROM evaluation_runs r + WHERE COALESCE((r.flags ->> 'has_human')::boolean, false) = true + AND NOT EXISTS ( + SELECT 1 + FROM evaluation_queues q + WHERE q.project_id = r.project_id + AND q.run_id = r.id + AND (q.flags ->> 'is_default')::boolean = true + ) + """) + + # Reconcile the other direction: runs that should NOT have a default queue + # (has_human = false under the current policy) but carry a stale active + # default queue get that queue archived, matching the runtime archive branch + # in _reconcile_default_queue. This keeps the fleet consistent immediately + # instead of waiting for the first per-run edit to reconcile. + op.execute(""" + UPDATE evaluation_queues q + SET deleted_at = CURRENT_TIMESTAMP, + deleted_by_id = r.created_by_id + FROM evaluation_runs r + WHERE q.project_id = r.project_id + AND q.run_id = r.id + AND (q.flags ->> 'is_default')::boolean = true + AND q.deleted_at IS NULL + AND COALESCE((r.flags ->> 'has_human')::boolean, false) = false + """) + + # Recompute simple-queue eligibility under the new meaning. An already + # existing active default queue is as valid as one inserted above. + op.execute(""" + UPDATE evaluation_runs r + SET flags = COALESCE(r.flags, '{}'::jsonb) + || jsonb_build_object( + 'is_queue', + COALESCE((r.flags ->> 'has_human')::boolean, false) + AND EXISTS ( + SELECT 1 + FROM evaluation_queues q + WHERE q.project_id = r.project_id + AND q.run_id = r.id + AND (q.flags ->> 'is_default')::boolean = true + AND q.deleted_at IS NULL + ) + ) + """) + + +def downgrade() -> None: + # Keep generated queues/results intact on downgrade. Remove only the newly + # inferred flags; old is_queue semantics cannot be reconstructed safely. + op.execute(""" + UPDATE evaluation_runs + SET flags = COALESCE(flags, '{}'::jsonb) - 'has_traces' - 'has_testcases' + """) diff --git a/api/oss/src/apis/fastapi/access/__init__.py b/api/oss/src/apis/fastapi/access/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/api/oss/src/apis/fastapi/access/router.py b/api/oss/src/apis/fastapi/access/router.py new file mode 100644 index 0000000000..a383aef158 --- /dev/null +++ b/api/oss/src/apis/fastapi/access/router.py @@ -0,0 +1,234 @@ +from typing import Optional, Union +from uuid import UUID + +from fastapi import APIRouter, Query, HTTPException +from fastapi.responses import JSONResponse + +from oss.src.utils.logging import get_module_logger +from oss.src.utils.caching import get_cache, set_cache +from oss.src.utils.context import get_auth_context, get_auth_scope +from oss.src.utils.common import is_ee, is_oss + +if is_ee(): + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import check_action_access + from ee.src.core.access.entitlements.service import check_entitlements, Counter + + +log = get_module_logger(__name__) + + +class Allow(JSONResponse): + def __init__( + self, + credentials: Optional[str] = None, + ) -> None: + super().__init__( + status_code=200, + content={ + "effect": "allow", + "credentials": credentials, + }, + ) + + +class Deny(HTTPException): + def __init__(self) -> None: + super().__init__( + status_code=403, + detail="Forbidden", + ) + + +async def _check_scope_access( + scope_type: Optional[str] = None, + scope_id: Optional[UUID] = None, +) -> bool: + auth_scope = get_auth_scope() + + allow_scope = False + + if scope_type == "project": + allow_scope = str(auth_scope.project_id) == str(scope_id) + elif scope_type == "workspace": + allow_scope = str(auth_scope.workspace_id) == str(scope_id) + elif not scope_type and not scope_id: + allow_scope = True + + return allow_scope + + +async def _check_resource_access( + resource_type: Optional[str] = None, +) -> Union[bool, int]: + allow_resource = False + + if resource_type == "service": + allow_resource = True + + if resource_type == "local_secrets": + check, meter, _ = await check_entitlements( # type: ignore + key=Counter.CREDITS_CONSUMED, # type: ignore + delta=1, + ) + + if not check: + return False + + if not meter or not meter.value: + return False + + return meter.value + + return allow_resource + + +class AccessRouter: + def __init__(self) -> None: + self.router = APIRouter() + + self.router.add_api_route( + "/permissions/check", + self.check_permissions, + methods=["GET"], + operation_id="check_permissions", + ) + + async def check_permissions( + self, + action: Optional[str] = Query(None), + scope_type: Optional[str] = Query(None), + scope_id: Optional[UUID] = Query(None), + resource_type: Optional[str] = Query(None), + resource_id: Optional[UUID] = Query(None), + ): + ctx = get_auth_context() + project_id = str(ctx.scope.project_id) + user_id = str(ctx.scope.user_id) + credentials_header = ctx.credentials.header()[1] + + cache_key = { + "action": action, + "scope_type": scope_type, + "scope_id": scope_id, + "resource_type": resource_type, + "resource_id": resource_id, + } + + try: + if is_oss(): + return Allow(credentials_header) + + if not action or not resource_type: + log.warn("Missing required parameters: action, resource_type") + raise Deny() + + allow = await get_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + ) + + if allow == "allow": + return Allow(credentials_header) + if allow == "deny": + log.warn("Permission denied") + raise Deny() + + # CHECK PERMISSION 1/3: SCOPE + allow_scope = await _check_scope_access( + scope_type=scope_type, + scope_id=scope_id, + ) + + if not allow_scope: + log.warn("Scope access denied") + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="deny", + ) + raise Deny() + + # CHECK PERMISSION 2/3: ACTION + allow_action = await check_action_access( + project_id=project_id, + user_uid=user_id, + permission=Permission(action), + ) + + if not allow_action: + log.warn("Action access denied") + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="deny", + ) + raise Deny() + + # CHECK PERMISSION 3/3: RESOURCE + allow_resource = await _check_resource_access( + resource_type=resource_type, + ) + + if isinstance(allow_resource, bool): + if allow_resource is False: + log.warn("Resource access denied") + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="deny", + ) + raise Deny() + + if allow_resource is True: + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="allow", + ) + return Allow(credentials_header) + + elif isinstance(allow_resource, int): + if allow_resource <= 0: + log.warn("Resource access denied") + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="deny", + ) + raise Deny() + else: + return Allow(credentials_header) + + log.warn("Resource access denied") + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="deny", + ) + raise Deny() + + except Exception as exc: # pylint: disable=broad-except + log.warn(exc) + await set_cache( + project_id=project_id, + user_id=user_id, + namespace="check_permissions", + key=cache_key, + value="deny", + ) + raise Deny() from exc diff --git a/api/oss/src/apis/fastapi/annotations/router.py b/api/oss/src/apis/fastapi/annotations/router.py index 32a2b7821a..e6afa8e90a 100644 --- a/api/oss/src/apis/fastapi/annotations/router.py +++ b/api/oss/src/apis/fastapi/annotations/router.py @@ -24,8 +24,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/applications/router.py b/api/oss/src/apis/fastapi/applications/router.py index c6ce00c57d..847da107ce 100644 --- a/api/oss/src/apis/fastapi/applications/router.py +++ b/api/oss/src/apis/fastapi/applications/router.py @@ -86,8 +86,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/environments/router.py b/api/oss/src/apis/fastapi/environments/router.py index 110d63d19a..d9316c8596 100644 --- a/api/oss/src/apis/fastapi/environments/router.py +++ b/api/oss/src/apis/fastapi/environments/router.py @@ -71,8 +71,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/environments/utils.py b/api/oss/src/apis/fastapi/environments/utils.py index 3dc4c403a4..b834270864 100644 --- a/api/oss/src/apis/fastapi/environments/utils.py +++ b/api/oss/src/apis/fastapi/environments/utils.py @@ -36,8 +36,11 @@ if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) async def ensure_environment_deploy_allowed( diff --git a/api/oss/src/apis/fastapi/evaluations/models.py b/api/oss/src/apis/fastapi/evaluations/models.py index 8e87909942..e198183793 100644 --- a/api/oss/src/apis/fastapi/evaluations/models.py +++ b/api/oss/src/apis/fastapi/evaluations/models.py @@ -81,6 +81,28 @@ def __init__( self.queue_id = queue_id +class DefaultQueueDataInvalidException(HTTPException): + """Raised when a default queue carries scenario/step/assignment/batch filters.""" + + def __init__(self, message: str, queue_id: Optional[UUID] = None): + details = dict(message=message) + if queue_id: + details["queue_id"] = str(queue_id) + super().__init__(status_code=422, detail=details) + self.queue_id = queue_id + + +class DefaultQueueEditingForbiddenException(HTTPException): + """Raised when demoting or hard-deleting a default queue is attempted.""" + + def __init__(self, message: str, queue_id: Optional[UUID] = None): + details = dict(message=message) + if queue_id: + details["queue_id"] = str(queue_id) + super().__init__(status_code=409, detail=details) + self.queue_id = queue_id + + # EVALUATION RUNS -------------------------------------------------------------- diff --git a/api/oss/src/apis/fastapi/evaluations/router.py b/api/oss/src/apis/fastapi/evaluations/router.py index 3410b8d852..2ff5b6620f 100644 --- a/api/oss/src/apis/fastapi/evaluations/router.py +++ b/api/oss/src/apis/fastapi/evaluations/router.py @@ -102,9 +102,12 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION - from ee.src.utils.entitlements import check_entitlements, Counter + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) + from ee.src.core.access.entitlements.service import check_entitlements, Counter log = get_module_logger(__name__) @@ -254,6 +257,16 @@ def __init__( operation_id="open_run", ) + # GET /api/evaluations/runs/{run_id}/default-queue + self.router.add_api_route( + path="/runs/{run_id}/default-queue", + methods=["GET"], + endpoint=self.fetch_default_queue, + response_model=EvaluationQueueResponse, + response_model_exclude_none=True, + operation_id="fetch_default_queue", + ) + # EVALUATION SCENARIOS ------------------------------------------------- # POST /api/evaluations/scenarios/ @@ -522,6 +535,26 @@ def __init__( operation_id="delete_queue", ) + # POST /api/evaluations/queues/{queue_id}/archive + self.router.add_api_route( + path="/queues/{queue_id}/archive", + methods=["POST"], + endpoint=self.archive_queue, + response_model=EvaluationQueueResponse, + response_model_exclude_none=True, + operation_id="archive_queue", + ) + + # POST /api/evaluations/queues/{queue_id}/unarchive + self.router.add_api_route( + path="/queues/{queue_id}/unarchive", + methods=["POST"], + endpoint=self.unarchive_queue, + response_model=EvaluationQueueResponse, + response_model_exclude_none=True, + operation_id="unarchive_queue", + ) + # POST /api/evaluations/queues/{queue_id}/scenarios/query self.router.add_api_route( path="/queues/{queue_id}/scenarios/query", @@ -627,6 +660,7 @@ async def create_runs( # PATCH /evaluations/runs/ @intercept_exceptions() + @handle_evaluation_closed_exception() async def edit_runs( self, request: Request, @@ -813,8 +847,32 @@ async def fetch_run( return run_response + # GET /evaluations/runs/{run_id}/default-queue + @intercept_exceptions() + @suppress_exceptions(default=EvaluationQueueResponse(), exclude=[HTTPException]) + async def fetch_default_queue( + self, + request: Request, + *, + run_id: UUID, + ) -> EvaluationQueueResponse: + if is_ee(): + if not await check_action_access( # type: ignore + user_uid=request.state.user_id, + project_id=request.state.project_id, + permission=Permission.VIEW_EVALUATION_QUEUES, # type: ignore + ): + raise FORBIDDEN_EXCEPTION # type: ignore + + queue = await self.evaluations_service.fetch_default_queue( + project_id=UUID(request.state.project_id), + run_id=run_id, + ) + return EvaluationQueueResponse(count=1 if queue else 0, queue=queue) + # PATCH /evaluations/runs/{run_id} @intercept_exceptions() + @handle_evaluation_closed_exception() async def edit_run( self, request: Request, @@ -1734,6 +1792,54 @@ async def edit_queue( return queue_response + # POST /evaluations/queues/{queue_id}/archive + @intercept_exceptions() + @handle_evaluation_closed_exception() + async def archive_queue( + self, + request: Request, + *, + queue_id: UUID, + ) -> EvaluationQueueResponse: + if is_ee(): + if not await check_action_access( # type: ignore + user_uid=request.state.user_id, + project_id=request.state.project_id, + permission=Permission.EDIT_EVALUATION_QUEUES, # type: ignore + ): + raise FORBIDDEN_EXCEPTION # type: ignore + + queue = await self.evaluations_service.archive_queue( + project_id=UUID(request.state.project_id), + user_id=UUID(request.state.user_id), + queue_id=queue_id, + ) + return EvaluationQueueResponse(count=1 if queue else 0, queue=queue) + + # POST /evaluations/queues/{queue_id}/unarchive + @intercept_exceptions() + @handle_evaluation_closed_exception() + async def unarchive_queue( + self, + request: Request, + *, + queue_id: UUID, + ) -> EvaluationQueueResponse: + if is_ee(): + if not await check_action_access( # type: ignore + user_uid=request.state.user_id, + project_id=request.state.project_id, + permission=Permission.EDIT_EVALUATION_QUEUES, # type: ignore + ): + raise FORBIDDEN_EXCEPTION # type: ignore + + queue = await self.evaluations_service.unarchive_queue( + project_id=UUID(request.state.project_id), + user_id=UUID(request.state.user_id), + queue_id=queue_id, + ) + return EvaluationQueueResponse(count=1 if queue else 0, queue=queue) + # DELETE /evaluations/queues/{queue_id} @intercept_exceptions() @handle_evaluation_closed_exception() diff --git a/api/oss/src/apis/fastapi/evaluations/utils.py b/api/oss/src/apis/fastapi/evaluations/utils.py index 3810092b92..6aedb53e6a 100644 --- a/api/oss/src/apis/fastapi/evaluations/utils.py +++ b/api/oss/src/apis/fastapi/evaluations/utils.py @@ -16,6 +16,9 @@ EvaluationQueueQueryFlags, # EvaluationClosedConflict, + DefaultQueueDataInvalid, + DefaultQueueDemotionForbidden, + DefaultQueueDeletionForbidden, ) from oss.src.apis.fastapi.shared.utils import ( @@ -38,6 +41,8 @@ EvaluationQueueQueryRequest, # EvaluationClosedException, + DefaultQueueDataInvalidException, + DefaultQueueEditingForbiddenException, ) log = get_module_logger(__name__) @@ -57,6 +62,19 @@ async def wrapper(*args, **kwargs): result_id=e.result_id, metrics_id=e.metrics_id, ) from e + except DefaultQueueDataInvalid as e: + raise DefaultQueueDataInvalidException( + message=e.message, + queue_id=e.queue_id, + ) from e + except ( + DefaultQueueDemotionForbidden, + DefaultQueueDeletionForbidden, + ) as e: + raise DefaultQueueEditingForbiddenException( + message=e.message, + queue_id=e.queue_id, + ) from e except Exception as e: raise e diff --git a/api/oss/src/apis/fastapi/evaluators/router.py b/api/oss/src/apis/fastapi/evaluators/router.py index 49f660a72c..777d44d0e7 100644 --- a/api/oss/src/apis/fastapi/evaluators/router.py +++ b/api/oss/src/apis/fastapi/evaluators/router.py @@ -97,8 +97,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/events/router.py b/api/oss/src/apis/fastapi/events/router.py index d95b2f1e7d..ae0fbe41ec 100644 --- a/api/oss/src/apis/fastapi/events/router.py +++ b/api/oss/src/apis/fastapi/events/router.py @@ -8,9 +8,12 @@ from oss.src.utils.exceptions import intercept_exceptions if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION - from ee.src.utils.entitlements import ( + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) + from ee.src.core.access.entitlements.service import ( check_entitlements, NOT_ENTITLED_RESPONSE, Flag, diff --git a/api/oss/src/apis/fastapi/folders/router.py b/api/oss/src/apis/fastapi/folders/router.py index fcefb0a611..54875685cb 100644 --- a/api/oss/src/apis/fastapi/folders/router.py +++ b/api/oss/src/apis/fastapi/folders/router.py @@ -31,8 +31,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/invocations/router.py b/api/oss/src/apis/fastapi/invocations/router.py index 50ab6b8713..c95e1a306c 100644 --- a/api/oss/src/apis/fastapi/invocations/router.py +++ b/api/oss/src/apis/fastapi/invocations/router.py @@ -24,8 +24,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/legacy_variants/router.py b/api/oss/src/apis/fastapi/legacy_variants/router.py index 5fee428991..63ce60a680 100644 --- a/api/oss/src/apis/fastapi/legacy_variants/router.py +++ b/api/oss/src/apis/fastapi/legacy_variants/router.py @@ -18,8 +18,11 @@ from oss.src.utils.exceptions import intercept_exceptions if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import FORBIDDEN_EXCEPTION, check_action_access + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + FORBIDDEN_EXCEPTION, + check_action_access, + ) def _as_reference(ref: Optional[ReferenceRequestModel]) -> Optional[Reference]: diff --git a/api/oss/src/apis/fastapi/otlp/router.py b/api/oss/src/apis/fastapi/otlp/router.py index 376c895080..f2aa707c7c 100644 --- a/api/oss/src/apis/fastapi/otlp/router.py +++ b/api/oss/src/apis/fastapi/otlp/router.py @@ -19,9 +19,12 @@ from oss.src.apis.fastapi.otlp.utils.processing import parse_from_otel_span_dto if is_ee(): - from ee.src.utils.entitlements import check_entitlements, Counter - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.entitlements.service import check_entitlements, Counter + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) if TYPE_CHECKING: from oss.src.core.tracing.service import TracingService diff --git a/api/oss/src/apis/fastapi/queries/router.py b/api/oss/src/apis/fastapi/queries/router.py index b50411440d..ecc6ceadd5 100644 --- a/api/oss/src/apis/fastapi/queries/router.py +++ b/api/oss/src/apis/fastapi/queries/router.py @@ -54,8 +54,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/testcases/router.py b/api/oss/src/apis/fastapi/testcases/router.py index be309f68bc..66977ea2a8 100644 --- a/api/oss/src/apis/fastapi/testcases/router.py +++ b/api/oss/src/apis/fastapi/testcases/router.py @@ -28,8 +28,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/testsets/router.py b/api/oss/src/apis/fastapi/testsets/router.py index 27c6d39f3d..07fa08593f 100644 --- a/api/oss/src/apis/fastapi/testsets/router.py +++ b/api/oss/src/apis/fastapi/testsets/router.py @@ -89,8 +89,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/tools/router.py b/api/oss/src/apis/fastapi/tools/router.py index d066c0b8d7..043d114fa7 100644 --- a/api/oss/src/apis/fastapi/tools/router.py +++ b/api/oss/src/apis/fastapi/tools/router.py @@ -56,8 +56,11 @@ _SLUG_SEGMENT_RE = re.compile(r"^[a-zA-Z0-9_-]+$") if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/traces/router.py b/api/oss/src/apis/fastapi/traces/router.py index 6be2f573ab..5dcf555f14 100644 --- a/api/oss/src/apis/fastapi/traces/router.py +++ b/api/oss/src/apis/fastapi/traces/router.py @@ -19,8 +19,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/apis/fastapi/tracing/router.py b/api/oss/src/apis/fastapi/tracing/router.py index c422cc2aea..6012539d71 100644 --- a/api/oss/src/apis/fastapi/tracing/router.py +++ b/api/oss/src/apis/fastapi/tracing/router.py @@ -64,9 +64,12 @@ log = get_module_logger(__name__) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION - from ee.src.utils.entitlements import check_entitlements, Counter + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) + from ee.src.core.access.entitlements.service import check_entitlements, Counter class TracingRouter: diff --git a/api/oss/src/apis/fastapi/vault/router.py b/api/oss/src/apis/fastapi/vault/router.py index 7f05e8bd0f..a78fd3ece0 100644 --- a/api/oss/src/apis/fastapi/vault/router.py +++ b/api/oss/src/apis/fastapi/vault/router.py @@ -17,8 +17,8 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import check_action_access log = get_module_logger(__name__) @@ -185,6 +185,7 @@ async def update_secret( project_id=UUID(request.state.project_id), secret_id=UUID(secret_id), update_secret_dto=body, + user_id=UUID(request.state.user_id), ) if secrets_dto is None: raise HTTPException( diff --git a/api/oss/src/apis/fastapi/webhooks/router.py b/api/oss/src/apis/fastapi/webhooks/router.py index ff344a74e8..6ab1173d2a 100644 --- a/api/oss/src/apis/fastapi/webhooks/router.py +++ b/api/oss/src/apis/fastapi/webhooks/router.py @@ -32,8 +32,11 @@ ) if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) class WebhooksRouter: diff --git a/api/oss/src/apis/fastapi/workflows/router.py b/api/oss/src/apis/fastapi/workflows/router.py index 671cca2a74..a83b241700 100644 --- a/api/oss/src/apis/fastapi/workflows/router.py +++ b/api/oss/src/apis/fastapi/workflows/router.py @@ -94,8 +94,11 @@ if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access, FORBIDDEN_EXCEPTION + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import ( + check_action_access, + FORBIDDEN_EXCEPTION, + ) log = get_module_logger(__name__) diff --git a/api/oss/src/core/accounts/service.py b/api/oss/src/core/accounts/service.py index 4113f5d646..e30cffcdb6 100644 --- a/api/oss/src/core/accounts/service.py +++ b/api/oss/src/core/accounts/service.py @@ -87,15 +87,12 @@ from ee.src.core.subscriptions.types import ( # type: ignore[import] get_default_plan as _ee_get_default_plan, ) - from ee.src.core.entitlements.controls import ( # type: ignore[import] + from ee.src.core.access.controls import ( # type: ignore[import] get_plans as _ee_get_plans, ) - from ee.src.core.meters.service import MetersService as _EeMetersService # type: ignore[import] - from ee.src.dbs.postgres.meters.dao import MetersDAO as _EeMetersDAO # type: ignore[import] _ee_subscription_service = _EeSubscriptionsService( subscriptions_dao=_EeSubscriptionsDAO(), - meters_service=_EeMetersService(meters_dao=_EeMetersDAO()), ) except ImportError: pass diff --git a/api/oss/src/core/auth/helper.py b/api/oss/src/core/auth/helper.py index 503323370f..431d454829 100644 --- a/api/oss/src/core/auth/helper.py +++ b/api/oss/src/core/auth/helper.py @@ -1,12 +1,11 @@ from dataclasses import dataclass from typing import Any, Optional, Set -import posthog - -from oss.src.services.exceptions import UnauthorizedException +from oss.src.utils.exceptions import UnauthorizedException from oss.src.utils.caching import get_cache, set_cache from oss.src.utils.common import is_ee from oss.src.utils.env import env +from oss.src.utils.lazy import _load_posthog from oss.src.utils.logging import get_module_logger @@ -61,10 +60,27 @@ async def _get_posthog_string_entries(feature_flag: str) -> Set[str]: if cached_entries is not None: return _normalize_string_set(cached_entries) - flag_entries = posthog.get_feature_flag_payload( - feature_flag, - "user distinct id", - ) + posthog = _load_posthog() + if posthog is None: + log.warning( + "[AUTH] PostHog feature flag lookup skipped", + feature_flag=feature_flag, + reason="unavailable", + ) + return set() + + try: + flag_entries = posthog.get_feature_flag_payload( + feature_flag, + "user distinct id", + ) + except Exception as exc: + log.warning( + "[AUTH] PostHog feature flag lookup skipped", + feature_flag=feature_flag, + reason=str(exc), + ) + return set() normalized_entries = _normalize_string_set(flag_entries) @@ -147,6 +163,6 @@ async def ensure_auth_info_not_blocked( auth_info: Optional[AuthInfo], ) -> Optional[AuthInfo]: if auth_info and await is_auth_info_blocked(auth_info): - raise UnauthorizedException(detail="Access Denied.") + raise UnauthorizedException(message="Access Denied.") return auth_info diff --git a/api/oss/src/core/auth/service.py b/api/oss/src/core/auth/service.py index effeb69c18..08e9b02905 100644 --- a/api/oss/src/core/auth/service.py +++ b/api/oss/src/core/auth/service.py @@ -11,7 +11,7 @@ from oss.src.models.db_models import InvitationDB, ProjectDB, OrganizationDB from oss.src.services import db_manager -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import get_transactions_engine from oss.src.dbs.postgres.users.dao import IdentitiesDAO if is_ee(): @@ -130,7 +130,9 @@ async def discover(self, email: str) -> Dict[str, Any]: # 2. Organizations with pending project invitations if email: try: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # Query project_invitations for this email, join with projects to get organization_id stmt = ( select(ProjectDB.organization_id) @@ -480,7 +482,9 @@ async def enforce_domain_policies(self, email: str, user_id: UUID) -> None: "Auto-join requires organization, user, and at least one workspace" ) - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: existing_org_member = await session.execute( select(OrganizationMemberDB).filter_by( user_id=user.id, organization_id=organization.id @@ -791,7 +795,9 @@ async def _get_organization_flags( if not is_ee(): return None - async with db_manager.engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select(OrganizationDB.flags).where( OrganizationDB.id == organization_id ) @@ -803,7 +809,9 @@ async def _get_organization_slug(self, organization_id: UUID) -> Optional[str]: if not is_ee(): return None - async with db_manager.engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select(OrganizationDB.slug).where( OrganizationDB.id == organization_id ) @@ -820,7 +828,9 @@ async def _is_organization_member( if not is_ee(): return False - async with db_manager.engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select(OrganizationMemberDB).where( OrganizationMemberDB.user_id == user_id, OrganizationMemberDB.organization_id == organization_id, @@ -837,7 +847,9 @@ async def _is_organization_owner( if not is_ee(): return False - async with db_manager.engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: stmt = select(OrganizationMemberDB.role).where( OrganizationMemberDB.user_id == user_id, OrganizationMemberDB.organization_id == organization_id, diff --git a/api/oss/src/core/auth/supertokens/overrides.py b/api/oss/src/core/auth/supertokens/overrides.py index 0fc3ab1bda..f7d5c1c1c3 100644 --- a/api/oss/src/core/auth/supertokens/overrides.py +++ b/api/oss/src/core/auth/supertokens/overrides.py @@ -1,9 +1,8 @@ from typing import Dict, Any, List, Optional, Union from urllib.parse import urlparse -import posthog - from oss.src.utils.logging import get_module_logger +from oss.src.utils.lazy import _load_posthog from supertokens_python.recipe.thirdparty.provider import ( ProviderInput, @@ -65,7 +64,7 @@ ) from oss.src.services import db_manager -from oss.src.services.exceptions import UnauthorizedException +from oss.src.utils.exceptions import UnauthorizedException from oss.src.services.db_manager import ( get_user_with_email, check_if_user_invitation_exists, @@ -234,7 +233,7 @@ async def _create_account(email: str, uid: str) -> bool: organization_db = await get_oss_organization() if not organization_db: raise UnauthorizedException( - detail="No organization found. Please contact the administrator." + message="No organization found. Please contact the administrator." ) # Verify user can join (invitation check) @@ -244,7 +243,7 @@ async def _create_account(email: str, uid: str) -> bool: ) if not user_invitation_exists: raise UnauthorizedException( - detail="You need to be invited by the organization owner to gain access." + message="You need to be invited by the organization owner to gain access." ) payload["organization_id"] = str(organization_db.id) @@ -252,6 +251,9 @@ async def _create_account(email: str, uid: str) -> bool: if env.posthog.enabled and env.posthog.api_key: try: + posthog = _load_posthog() + if posthog is None: + return True posthog.capture( distinct_id=auth_info.email, event="user_signed_up_v1", @@ -263,8 +265,11 @@ async def _create_account(email: str, uid: str) -> bool: "$set": {"email": auth_info.email}, }, ) - except Exception: - log.error("[AUTH] Failed to capture PostHog signup event", exc_info=True) + except Exception as exc: + log.warning( + "[AUTH] PostHog signup event capture skipped", + reason=str(exc), + ) log.info("[AUTH] _create_account done", email=auth_info.email, uid=uid) return True diff --git a/api/oss/src/core/auth/turnstile.py b/api/oss/src/core/auth/turnstile.py index 7c25951522..c293372ebf 100644 --- a/api/oss/src/core/auth/turnstile.py +++ b/api/oss/src/core/auth/turnstile.py @@ -2,7 +2,7 @@ from supertokens_python.framework.request import BaseRequest -from oss.src.services.exceptions import UnauthorizedException +from oss.src.utils.exceptions import UnauthorizedException from oss.src.utils.common import is_ee from oss.src.utils.env import env from oss.src.utils.logging import get_module_logger @@ -70,7 +70,7 @@ async def verify_turnstile_or_raise( auth_flow, get_client_ip(request), ) - raise UnauthorizedException(detail="Please complete the security check.") + raise UnauthorizedException(message="Please complete the security check.") payload = { "secret": env.auth.turnstile_secret_key or "", @@ -93,7 +93,7 @@ async def verify_turnstile_or_raise( remote_ip, exc_info=True, ) - raise UnauthorizedException(detail=TURNSTILE_FAILURE_MESSAGE) from None + raise UnauthorizedException(message=TURNSTILE_FAILURE_MESSAGE) from None if verification_result.get("success") is True: actual_hostname = _normalize_hostname(verification_result.get("hostname")) @@ -107,7 +107,7 @@ async def verify_turnstile_or_raise( sorted(expected_hostnames), remote_ip, ) - raise UnauthorizedException(detail=TURNSTILE_FAILURE_MESSAGE) + raise UnauthorizedException(message=TURNSTILE_FAILURE_MESSAGE) log.info( "[AUTH] Turnstile verification succeeded auth_flow=%s hostname=%s action=%s client_ip=%s", @@ -126,4 +126,4 @@ async def verify_turnstile_or_raise( verification_result.get("action"), remote_ip, ) - raise UnauthorizedException(detail=TURNSTILE_FAILURE_MESSAGE) + raise UnauthorizedException(message=TURNSTILE_FAILURE_MESSAGE) diff --git a/api/oss/src/core/evaluations/interfaces.py b/api/oss/src/core/evaluations/interfaces.py index 5858682f64..23a2ec7156 100644 --- a/api/oss/src/core/evaluations/interfaces.py +++ b/api/oss/src/core/evaluations/interfaces.py @@ -514,6 +514,26 @@ async def edit_queues( ) -> List[EvaluationQueue]: raise NotImplementedError + @abstractmethod + async def archive_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue_id: UUID, + ) -> Optional[EvaluationQueue]: + raise NotImplementedError + + @abstractmethod + async def unarchive_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue_id: UUID, + ) -> Optional[EvaluationQueue]: + raise NotImplementedError + @abstractmethod async def delete_queue( self, diff --git a/api/oss/src/core/evaluations/runtime/adapters.py b/api/oss/src/core/evaluations/runtime/adapters.py new file mode 100644 index 0000000000..81b89b2868 --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/adapters.py @@ -0,0 +1,443 @@ +from asyncio import Semaphore, gather +from typing import Any, Callable, Dict, List, Optional +from uuid import UUID + +from agenta.sdk.evaluations.runtime.models import ( + ResultLogRequest, + WorkflowExecutionRequest, + WorkflowExecutionResult, +) +from agenta.sdk.models.evaluations import EvaluationStatus as SdkEvaluationStatus + +from oss.src.core.evaluations.runtime.cache import RunnableCacheResolver +from oss.src.core.evaluations.types import ( + EvaluationMetricsRefresh, + EvaluationResultCreate, + EvaluationScenarioCreate, + EvaluationStatus, +) +from oss.src.core.evaluations.utils import fetch_trace +from oss.src.core.workflows.dtos import ( + WorkflowServiceRequest, + WorkflowServiceRequestData, +) + + +def _status(status: Any) -> EvaluationStatus: + value = getattr(status, "value", status) + return EvaluationStatus(value) + + +def _read_field(source: Any, field: str) -> Any: + if isinstance(source, dict): + return source.get(field) + return getattr(source, field, None) + + +def _project_inputs(inputs: Any, data: Any) -> Any: + """Project source inputs onto the revision's declared input schema. + + A source row (e.g. a testcase) carries every column — input columns plus + ground-truth/bookkeeping keys like ``correct_answer`` or ``testcase_id``. + The invoked workflow should only receive the inputs its revision declares, + so filter ``inputs`` down to the keys present in + ``data.schemas.inputs.properties``. + + If the revision declares no input schema (no ``properties``), inputs pass + through unchanged so untyped/legacy revisions are not broken. + """ + if not isinstance(inputs, dict): + return inputs + + schemas = _read_field(data, "schemas") if data is not None else None + inputs_schema = _read_field(schemas, "inputs") if schemas is not None else None + properties = ( + _read_field(inputs_schema, "properties") if inputs_schema is not None else None + ) + if not isinstance(properties, dict) or not properties: + return inputs + + return {key: value for key, value in inputs.items() if key in properties} + + +def _dump_model(source: Any, **kwargs: Any) -> Any: + if hasattr(source, "model_dump"): + return source.model_dump(**kwargs) + return source + + +def _dump_json(source: Any) -> Any: + if hasattr(source, "model_dump"): + return source.model_dump(mode="json", exclude_none=True) + if isinstance(source, dict): + return {key: _dump_json(value) for key, value in source.items()} + if isinstance(source, list): + return [_dump_json(value) for value in source] + return source + + +class BackendWorkflowServiceRunner: + """API adapter from SDK runtime requests to the backend workflow service.""" + + def __init__( + self, + *, + workflows_service: Any, + request_builder: Optional[ + Callable[[WorkflowExecutionRequest], Dict[str, Any]] + ] = None, + ): + self.workflows_service = workflows_service + self.request_builder = request_builder + + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + kwargs = ( + self.request_builder(request) + if self.request_builder + else request.model_dump(mode="python", exclude_none=True) + ) + response = await self.workflows_service.invoke_workflow(**kwargs) + status = getattr(response, "status", None) + status_code = getattr(status, "code", None) + has_error = status_code != 200 + error = None + + if has_error: + error = ( + status.model_dump(mode="json", exclude_none=True) + if hasattr(status, "model_dump") + else {"code": status_code} + ) + + return WorkflowExecutionResult( + status=( + SdkEvaluationStatus.FAILURE + if has_error + else SdkEvaluationStatus.SUCCESS + ), + trace_id=getattr(response, "trace_id", None), + span_id=getattr(response, "span_id", None), + error=error, + outputs=getattr(response, "outputs", None), + ) + + +class BackendScenarioFactory: + def __init__( + self, + *, + project_id: UUID, + user_id: UUID, + timestamp: Any, + interval: Optional[int], + evaluations_service: Any, + ): + self.project_id = project_id + self.user_id = user_id + self.timestamp = timestamp + self.interval = interval + self.evaluations_service = evaluations_service + + async def __call__(self, run_id: UUID) -> Any: + scenarios = await self.evaluations_service.create_scenarios( + project_id=self.project_id, + user_id=self.user_id, + scenarios=[ + EvaluationScenarioCreate( + run_id=run_id, + timestamp=self.timestamp, + interval=self.interval, + status=EvaluationStatus.RUNNING, + ) + ], + ) + if not scenarios: + raise ValueError(f"Failed to create scenario for run {run_id}") + return scenarios[0] + + +class BackendResultLogger: + def __init__( + self, + *, + project_id: UUID, + user_id: UUID, + timestamp: Any, + interval: Optional[int], + evaluations_service: Any, + ): + self.project_id = project_id + self.user_id = user_id + self.timestamp = timestamp + self.interval = interval + self.evaluations_service = evaluations_service + + async def log(self, request: ResultLogRequest) -> Any: + cell = request.cell + results = await self.evaluations_service.create_results( + project_id=self.project_id, + user_id=self.user_id, + results=[ + EvaluationResultCreate( + run_id=cell.run_id, + scenario_id=cell.scenario_id, + step_key=cell.step_key, + repeat_idx=cell.repeat_idx, + status=_status(cell.status), + trace_id=( + request.trace_id + if request.trace_id is not None + else cell.trace_id + ), + testcase_id=( + request.testcase_id + if request.testcase_id is not None + else cell.testcase_id + ), + error=request.error if request.error is not None else cell.error, + timestamp=self.timestamp, + interval=self.interval, + ) + ], + ) + return results[0] if results else None + + +class BackendMetricsRefresher: + def __init__( + self, + *, + project_id: UUID, + user_id: UUID, + timestamp: Any, + interval: Optional[int], + evaluations_service: Any, + ): + self.project_id = project_id + self.user_id = user_id + self.timestamp = timestamp + self.interval = interval + self.evaluations_service = evaluations_service + + async def __call__( + self, + run_id: UUID, + scenario_id: Optional[UUID], + ) -> Any: + return await self.evaluations_service.refresh_metrics( + project_id=self.project_id, + user_id=self.user_id, + metrics=EvaluationMetricsRefresh( + run_id=run_id, + scenario_id=scenario_id, + timestamp=self.timestamp, + interval=self.interval, + ), + ) + + +class BackendTraceLoader: + def __init__( + self, + *, + project_id: UUID, + tracing_service: Any, + ): + self.project_id = project_id + self.tracing_service = tracing_service + + async def load(self, trace_id: str) -> Any: + return await fetch_trace( + tracing_service=self.tracing_service, + project_id=self.project_id, + trace_id=trace_id, + ) + + +class BackendWorkflowRunner: + def __init__( + self, + *, + project_id: UUID, + user_id: UUID, + workflows_service: Any, + ): + self.project_id = project_id + self.user_id = user_id + self.workflows_service = workflows_service + + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + return (await self.execute_batch([request]))[0] + + async def execute_batch( + self, + requests: List[WorkflowExecutionRequest], + semaphore: Optional[Semaphore] = None, + ) -> List[WorkflowExecutionResult]: + async def _guarded( + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + if semaphore is not None: + async with semaphore: + return await self._execute_one(request) + return await self._execute_one(request) + + return list(await gather(*(_guarded(r) for r in requests))) + + async def _execute_one( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + revision = request.revision + data = _read_field(revision, "data") + if isinstance(revision, dict): + revision_dump = revision + elif hasattr(revision, "model_dump"): + revision_dump = revision.model_dump(mode="json", exclude_none=True) + else: + revision_dump = revision + + parameters = _read_field(data, "parameters") if data else None + flags = _read_field(revision, "flags") + flags = ( + _dump_model( + flags, + mode="json", + exclude_none=True, + exclude_unset=True, + ) + if flags + else None + ) + response = await self.workflows_service.invoke_workflow( + project_id=self.project_id, + user_id=self.user_id, + request=WorkflowServiceRequest( + version="2025.07.14", + flags=flags, + data=WorkflowServiceRequestData( + revision=revision_dump, + parameters=parameters, + testcase=( + request.source.testcase.model_dump( + mode="json", + exclude_none=True, + ) + if hasattr(request.source.testcase, "model_dump") + else request.source.testcase + ), + inputs=_project_inputs(request.source.inputs, data), + trace=( + request.upstream_trace.model_dump( + mode="json", + exclude_none=True, + ) + if hasattr(request.upstream_trace, "model_dump") + else request.upstream_trace + ), + outputs=request.upstream_outputs or request.source.outputs, + ), + references=_dump_json(request.references), + links=request.links or {}, + ), + ) + status = getattr(response, "status", None) + status_code = getattr(status, "code", None) + has_error = status_code != 200 + return WorkflowExecutionResult( + status=( + SdkEvaluationStatus.FAILURE + if has_error + else SdkEvaluationStatus.SUCCESS + ), + trace_id=getattr(response, "trace_id", None), + span_id=getattr(response, "span_id", None), + error=( + status.model_dump(mode="json", exclude_none=True) + if has_error and hasattr(status, "model_dump") + else {"code": status_code} + if has_error + else None + ), + outputs=getattr(response, "outputs", None), + ) + + +class BackendEvaluatorRunner(BackendWorkflowRunner): + def __init__( + self, + *, + project_id: UUID, + user_id: UUID, + workflows_service: Any, + ): + super().__init__( + project_id=project_id, + user_id=user_id, + workflows_service=workflows_service, + ) + + +class BackendCachedRunner: + def __init__( + self, + *, + runner: Any, + tracing_service: Any, + project_id: UUID, + enabled: bool, + ): + self.runner = runner + self.tracing_service = tracing_service + self.project_id = project_id + self.enabled = enabled + self.cache_resolver = RunnableCacheResolver() + + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + return (await self.execute_batch([request]))[0] + + async def execute_batch( + self, + requests: List[WorkflowExecutionRequest], + semaphore: Optional[Semaphore] = None, + ) -> List[WorkflowExecutionResult]: + results: List[Optional[WorkflowExecutionResult]] = [None] * len(requests) + missing: List[WorkflowExecutionRequest] = [] + missing_positions: List[int] = [] + + for idx, request in enumerate(requests): + cache = await self.cache_resolver.resolve( + tracing_service=self.tracing_service, + project_id=self.project_id, + enabled=self.enabled and self.tracing_service is not None, + references=request.references, + links=request.links, + required_count=1, + ) + reusable = cache.reusable_traces[0] if cache.reusable_traces else None + if reusable and getattr(reusable, "trace_id", None): + results[idx] = WorkflowExecutionResult( + status=SdkEvaluationStatus.SUCCESS, + trace_id=str(reusable.trace_id), + trace=reusable, + ) + continue + + missing.append(request) + missing_positions.append(idx) + + if missing: + executed = await self.runner.execute_batch(missing, semaphore=semaphore) + for idx, execution in zip(missing_positions, executed): + results[idx] = execution + + return [result for result in results if result is not None] diff --git a/api/oss/src/core/evaluations/runtime/cache.py b/api/oss/src/core/evaluations/runtime/cache.py new file mode 100644 index 0000000000..805e4564f5 --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/cache.py @@ -0,0 +1,60 @@ +from typing import Any, Dict, List, Optional +from uuid import UUID + +from pydantic import BaseModel, ConfigDict + +from oss.src.core.evaluations.utils import ( + fetch_traces_by_hash, + make_hash, + plan_missing_traces, + select_traces_for_reuse, +) + + +class CacheResolution(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + hash_id: Optional[str] + reusable_traces: List[Any] + missing_count: int + + +class RunnableCacheResolver: + async def resolve( + self, + *, + tracing_service: Any, + project_id: UUID, + enabled: bool, + references: Optional[Dict[str, Any]] = None, + links: Optional[Dict[str, Any]] = None, + required_count: int = 1, + ) -> CacheResolution: + hash_id = make_hash(references=references, links=links) + + if not enabled or not hash_id or required_count <= 0: + return CacheResolution( + hash_id=hash_id, + reusable_traces=[], + missing_count=max(0, required_count), + ) + + cached_traces = await fetch_traces_by_hash( + tracing_service, + project_id, + hash_id=hash_id, + limit=required_count, + ) + reusable_traces = select_traces_for_reuse( + traces=cached_traces, + required_count=required_count, + ) + + return CacheResolution( + hash_id=hash_id, + reusable_traces=reusable_traces, + missing_count=plan_missing_traces( + required_count=required_count, + reusable_count=len(reusable_traces), + ), + ) diff --git a/api/oss/src/core/evaluations/runtime/executor.py b/api/oss/src/core/evaluations/runtime/executor.py new file mode 100644 index 0000000000..8db00feb4d --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/executor.py @@ -0,0 +1,62 @@ +from typing import Any, Dict, List, Optional + +from pydantic import BaseModel, ConfigDict + +from oss.src.core.evaluations.types import EvaluationStatus + + +class StepExecutionResult(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + status: EvaluationStatus + trace_id: Optional[str] = None + span_id: Optional[str] = None + hash_id: Optional[str] = None + error: Optional[Dict[str, Any]] = None + outputs: Optional[Any] = None + + +class RunnableStepExecutor: + """Backend compatibility shell for runnable execution adapters. + + This public worker-facing class is kept for now. New orchestration should + target the SDK runtime WorkflowRunner protocol and keep backend workflow + service details in this module. + """ + + async def execute(self, **kwargs: Any) -> StepExecutionResult: + raise NotImplementedError + + +class WorkflowRunnableStepExecutor(RunnableStepExecutor): + def __init__(self, *, workflows_service: Any): + self.workflows_service = workflows_service + + async def execute(self, **kwargs: Any) -> StepExecutionResult: + response = await self.workflows_service.invoke_workflow(**kwargs) + status = getattr(response, "status", None) + status_code = getattr(status, "code", None) + has_error = status_code != 200 + error = None + + if has_error: + error = ( + status.model_dump(mode="json", exclude_none=True) + if hasattr(status, "model_dump") + else {"code": status_code} + ) + + return StepExecutionResult( + status=EvaluationStatus.FAILURE if has_error else EvaluationStatus.SUCCESS, + trace_id=getattr(response, "trace_id", None), + error=error, + outputs=getattr(response, "outputs", None), + ) + + +class ApplicationBatchRunnableStepExecutor(RunnableStepExecutor): + def __init__(self, *, batch_invoke: Any): + self.batch_invoke = batch_invoke + + async def execute_batch(self, **kwargs: Any) -> List[Any]: + return await self.batch_invoke(**kwargs) diff --git a/api/oss/src/core/evaluations/runtime/locks.py b/api/oss/src/core/evaluations/runtime/locks.py index 33cff2b4f0..f5e85b9e7e 100644 --- a/api/oss/src/core/evaluations/runtime/locks.py +++ b/api/oss/src/core/evaluations/runtime/locks.py @@ -121,7 +121,7 @@ async def _write_meta( payload: LockPayload, ttl: int, ) -> None: - await caching.r_lock.set( + await caching._cache_engine.get_r_lock().set( _actual_meta_name(lock_key), orjson.dumps(payload.model_dump(mode="json")), ex=ttl, @@ -134,7 +134,8 @@ async def _touch_meta( ttl: int, ) -> None: meta_key = _actual_meta_name(lock_key) - raw = await caching.r_lock.get(meta_key) + r_lock = caching._cache_engine.get_r_lock() + raw = await r_lock.get(meta_key) if not raw: return @@ -145,7 +146,7 @@ async def _touch_meta( return payload.updated_at = _now_iso() - await caching.r_lock.set( + await r_lock.set( meta_key, orjson.dumps(payload.model_dump(mode="json")), ex=ttl, @@ -157,11 +158,12 @@ async def _read_meta_if_lock_exists( lock_key: str, ) -> Optional[LockPayload]: actual_lock_key = _actual_lock_name(lock_key) - if not await caching.r_lock.exists(actual_lock_key): - await caching.r_lock.delete(_actual_meta_name(lock_key)) + r_lock = caching._cache_engine.get_r_lock() + if not await r_lock.exists(actual_lock_key): + await r_lock.delete(_actual_meta_name(lock_key)) return None - raw = await caching.r_lock.get(_actual_meta_name(lock_key)) + raw = await r_lock.get(_actual_meta_name(lock_key)) if not raw: return None @@ -263,7 +265,7 @@ async def _release_lock( return False try: - await caching.r_lock.delete(_actual_meta_name(lock_key)) + await caching._cache_engine.get_r_lock().delete(_actual_meta_name(lock_key)) except Exception: log.warning( "[LOCK] Released lock but failed to delete metadata", @@ -367,7 +369,8 @@ async def list_active_job_locks( Wildcard discovery must use SCAN, never KEYS. """ payloads: list[LockPayload] = [] - async for raw_lock_key in caching.r_lock.scan_iter( + r_lock = caching._cache_engine.get_r_lock() + async for raw_lock_key in r_lock.scan_iter( match=_actual_lock_name(job_lock_pattern(run_id)) ): meta_key = ( @@ -375,7 +378,7 @@ async def list_active_job_locks( if isinstance(raw_lock_key, bytes) else f"{raw_lock_key}:meta" ) - raw_payload = await caching.r_lock.get(meta_key) + raw_payload = await r_lock.get(meta_key) if not raw_payload: continue @@ -403,9 +406,8 @@ async def is_run_executing( *, run_id: str, ) -> bool: - async for _ in caching.r_lock.scan_iter( - match=_actual_lock_name(job_lock_pattern(run_id)) - ): + r_lock = caching._cache_engine.get_r_lock() + async for _ in r_lock.scan_iter(match=_actual_lock_name(job_lock_pattern(run_id))): return True return False @@ -414,7 +416,8 @@ async def has_mutation_lock( *, run_id: str, ) -> bool: - return bool(await caching.r_lock.exists(_actual_lock_name(run_lock_key(run_id)))) + r_lock = caching._cache_engine.get_r_lock() + return bool(await r_lock.exists(_actual_lock_name(run_lock_key(run_id)))) async def refresh_worker_heartbeat( @@ -424,7 +427,8 @@ async def refresh_worker_heartbeat( ) -> WorkerHeartbeatPayload: now = _now_iso() hb_key = _actual_lock_name(worker_heartbeat_key(worker_id)) - raw = await caching.r_lock.get(hb_key) + r_lock = caching._cache_engine.get_r_lock() + raw = await r_lock.get(hb_key) created_at = now if raw: @@ -442,7 +446,7 @@ async def refresh_worker_heartbeat( created_at=created_at, updated_at=now, ) - await caching.r_lock.set( + await r_lock.set( hb_key, orjson.dumps(payload.model_dump(mode="json")), ex=ttl, diff --git a/api/oss/src/core/evaluations/runtime/models.py b/api/oss/src/core/evaluations/runtime/models.py new file mode 100644 index 0000000000..fd6e8520f8 --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/models.py @@ -0,0 +1,125 @@ +from typing import Any, Dict, List, Literal, Optional +from uuid import UUID + +from pydantic import BaseModel, ConfigDict, Field + +from oss.src.core.evaluations.types import EvaluationStatus, Origin, Type + +InputSourceKind = Literal["query", "testset", "trace", "testcase", "direct"] +SourceBatchKind = Literal["traces", "testcases"] +TopologyStatus = Literal["supported", "potential", "not_planned", "unsupported"] +DispatchKind = Literal[ + "batch_query", + "batch_testset", + "batch_invocation", + "queue_traces", + "queue_testcases", + "live_query", +] + + +class RuntimeModel(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + +class InputSourceSpec(RuntimeModel): + kind: InputSourceKind + step_key: str + references: Dict[str, Any] = Field(default_factory=dict) + + +class ResolvedSourceItem(RuntimeModel): + kind: InputSourceKind + step_key: str + references: Dict[str, Any] = Field(default_factory=dict) + trace_id: Optional[str] = None + span_id: Optional[str] = None + testcase_id: Optional[UUID] = None + testcase: Optional[Any] = None + trace: Optional[Any] = None + inputs: Optional[Any] = None + outputs: Optional[Any] = None + + +class ResolvedSourceBatch(RuntimeModel): + kind: SourceBatchKind + step_key: str + trace_ids: List[str] = Field(default_factory=list) + testcase_ids: List[UUID] = Field(default_factory=list) + + +class ResolvedTestsetInputSpec(RuntimeModel): + step_key: str + testset: Any + testset_revision: Any + testcases: List[Any] = Field(default_factory=list) + testcases_data: List[Dict[str, Any]] = Field(default_factory=list) + + +class ScenarioBinding(RuntimeModel): + scenario_id: UUID + source: ResolvedSourceItem + interval: Optional[int] = None + timestamp: Optional[Any] = None + + +class EvaluationStep(RuntimeModel): + key: str + type: Type + origin: Origin + references: Dict[str, Any] = Field(default_factory=dict) + inputs: List[str] = Field(default_factory=list) + + +class TensorSlice(RuntimeModel): + run_id: UUID + scenario_ids: Optional[List[UUID]] = None + step_keys: Optional[List[str]] = None + repeat_idxs: Optional[List[int]] = None + + +class TensorProbeSummary(RuntimeModel): + existing_count: int = 0 + missing_count: int = 0 + success_count: int = 0 + failure_count: int = 0 + pending_count: int = 0 + any_count: int = 0 + + +class PlannedCell(RuntimeModel): + run_id: UUID + scenario_id: UUID + step_key: str + step_type: Type + origin: Origin + repeat_idx: int + status: EvaluationStatus + should_execute: bool = False + trace_id: Optional[str] = None + span_id: Optional[str] = None + testcase_id: Optional[UUID] = None + error: Optional[Dict[str, Any]] = None + + +class ExecutionPlan(RuntimeModel): + run_id: UUID + cells: List[PlannedCell] + + @property + def executable_cells(self) -> List[PlannedCell]: + return [cell for cell in self.cells if cell.should_execute] + + +class ProcessSummary(RuntimeModel): + created: int = 0 + reused: int = 0 + pending: int = 0 + failed: int = 0 + + +class TopologyDecision(RuntimeModel): + status: TopologyStatus + label: str + reason: str + dispatch: Optional[DispatchKind] = None diff --git a/api/oss/src/core/evaluations/runtime/planner.py b/api/oss/src/core/evaluations/runtime/planner.py new file mode 100644 index 0000000000..46de7bd0ca --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/planner.py @@ -0,0 +1,146 @@ +from typing import Dict, Iterable, List, Optional +from uuid import UUID + +from oss.src.core.evaluations.runtime.models import ( + EvaluationStep, + ExecutionPlan, + PlannedCell, + ResolvedSourceItem, + ScenarioBinding, +) +from oss.src.core.evaluations.types import ( + EvaluationResultCreate, + EvaluationRun, + EvaluationRunDataStep, + EvaluationStatus, +) +from agenta.sdk.evaluations.runtime.planner import ( + EvaluationPlanner as SdkEvaluationPlanner, +) + + +def _step_inputs(step: EvaluationRunDataStep) -> List[str]: + return [step_input.key for step_input in (step.inputs or []) if step_input.key] + + +def normalize_steps( + steps: Optional[Iterable[EvaluationRunDataStep]], +) -> List[EvaluationStep]: + return [ + EvaluationStep( + key=step.key, + type=step.type, + origin=step.origin, + references=step.references or {}, + inputs=_step_inputs(step), + ) + for step in (steps or []) + ] + + +def make_scenario_bindings( + *, + scenario_ids: List[UUID], + source_items: List[ResolvedSourceItem], +) -> List[ScenarioBinding]: + if len(scenario_ids) != len(source_items): + raise ValueError("scenario_ids and source_items must have the same length") + + return [ + ScenarioBinding(scenario_id=scenario_id, source=source_item) + for scenario_id, source_item in zip(scenario_ids, source_items) + ] + + +class EvaluationPlanner: + """Backend DTO adapter around the SDK-owned runtime planner.""" + + def plan( + self, + *, + run: EvaluationRun, + bindings: List[ScenarioBinding], + ) -> ExecutionPlan: + if not run.id: + raise ValueError("run.id is required") + + steps = normalize_steps(run.data.steps if run.data else None) + flags = run.flags + + sdk_plan = SdkEvaluationPlanner().plan_bindings( + run_id=run.id, + bindings=bindings, # type: ignore[arg-type] + steps=steps, # type: ignore[arg-type] + repeats=run.data.repeats if run.data else None, + is_split=bool(flags and flags.is_split), + is_live=bool(flags and flags.is_live), + has_traces=bool(flags and flags.has_traces), + has_testcases=bool(flags and flags.has_testcases), + ) + + return ExecutionPlan( + run_id=sdk_plan.run_id, + cells=[ + PlannedCell( + run_id=cell.run_id, + scenario_id=cell.scenario_id, + step_key=cell.step_key, + step_type=cell.step_type, + origin=cell.origin, + repeat_idx=cell.repeat_idx, + status=EvaluationStatus(cell.status.value), + should_execute=cell.should_execute, + trace_id=cell.trace_id, + span_id=cell.span_id, + testcase_id=cell.testcase_id, + error=cell.error, + ) + for cell in sdk_plan.cells + ], + ) + + +def index_cells_by_slot( + plan: ExecutionPlan, +) -> Dict[tuple[UUID, str, int], PlannedCell]: + return { + (cell.scenario_id, cell.step_key, cell.repeat_idx): cell for cell in plan.cells + } + + +def planned_cells_to_result_creates( + cells: Iterable[PlannedCell], +) -> List[EvaluationResultCreate]: + return [ + EvaluationResultCreate( + run_id=cell.run_id, + scenario_id=cell.scenario_id, + step_key=cell.step_key, + repeat_idx=cell.repeat_idx, + status=cell.status, + trace_id=cell.trace_id, + testcase_id=cell.testcase_id, + error=cell.error, + ) + for cell in cells + ] + + +def plan_source_input_result_creates( + *, + run: EvaluationRun, + scenario_id: UUID, + source_item: ResolvedSourceItem, +) -> List[EvaluationResultCreate]: + plan = EvaluationPlanner().plan( + run=run, + bindings=make_scenario_bindings( + scenario_ids=[scenario_id], + source_items=[source_item], + ), + ) + return planned_cells_to_result_creates( + cell + for cell in plan.cells + if cell.step_type == "input" and cell.step_key == source_item.step_key + ) diff --git a/api/oss/src/core/evaluations/runtime/runner.py b/api/oss/src/core/evaluations/runtime/runner.py new file mode 100644 index 0000000000..fa0723f7ed --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/runner.py @@ -0,0 +1,59 @@ +from datetime import datetime +from typing import Any, List, Optional +from uuid import UUID + +from agenta.sdk.evaluations.runtime.executor import EvaluationTaskRunner + + +class TaskiqEvaluationTaskRunner(EvaluationTaskRunner): + """API adapter from generic evaluation dispatch to Taskiq tasks.""" + + def __init__(self, *, worker: Any): + self.worker = worker + + async def process_run( + self, + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + newest: Optional[datetime] = None, + oldest: Optional[datetime] = None, + ) -> Any: + kwargs = dict( + project_id=project_id, + user_id=user_id, + run_id=run_id, + ) + if newest is not None: + kwargs["newest"] = newest + if oldest is not None: + kwargs["oldest"] = oldest + + return await self.worker.process_run.kiq(**kwargs) + + async def process_slice( + self, + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + source_kind: str, + trace_ids: Optional[List[str]] = None, + testcase_ids: Optional[List[UUID]] = None, + input_step_key: Optional[str] = None, + ) -> Any: + kwargs = dict( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind=source_kind, + ) + if trace_ids is not None: + kwargs["trace_ids"] = trace_ids + if testcase_ids is not None: + kwargs["testcase_ids"] = testcase_ids + if input_step_key is not None: + kwargs["input_step_key"] = input_step_key + + return await self.worker.process_slice.kiq(**kwargs) diff --git a/api/oss/src/core/evaluations/runtime/sources.py b/api/oss/src/core/evaluations/runtime/sources.py new file mode 100644 index 0000000000..b3f25b4994 --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/sources.py @@ -0,0 +1,481 @@ +from datetime import datetime +from typing import Any, Dict, List, Optional +from uuid import UUID + +from oss.src.core.evaluations.runtime.models import ( + ResolvedSourceBatch, + ResolvedSourceItem, + ResolvedTestsetInputSpec, +) +from oss.src.core.evaluations.types import EvaluationRun, EvaluationRunDataStep +from oss.src.core.evaluations.utils import fetch_trace +from oss.src.core.shared.dtos import Reference +from oss.src.core.tracing.dtos import ( + Filtering, + Windowing, + Formatting, + Format, + Focus, + TracingQuery, + LogicalOperator, +) + + +def _extract_root_span(trace: Any) -> Optional[Any]: + spans = ( + trace.get("spans") if isinstance(trace, dict) else getattr(trace, "spans", None) + ) + if not isinstance(spans, dict) or not spans: + return None + + for span in spans.values(): + if isinstance(span, list): + continue + if _extract_span_id(span): + return span + + return None + + +def _extract_span_id(span: Any) -> Optional[str]: + span_id = ( + span.get("span_id") + if isinstance(span, dict) + else getattr(span, "span_id", None) + ) + return str(span_id) if span_id else None + + +def _extract_ag_data(trace: Any) -> Dict[str, Any]: + root_span = _extract_root_span(trace) + if root_span is None: + return {} + + attributes = ( + root_span.get("attributes", {}) + if isinstance(root_span, dict) + else getattr(root_span, "attributes", {}) + ) + if hasattr(attributes, "model_dump"): + attributes = attributes.model_dump(mode="json", exclude_none=True) + if not isinstance(attributes, dict): + return {} + + ag = attributes.get("ag") or {} + data = ag.get("data") if isinstance(ag, dict) else {} + return data if isinstance(data, dict) else {} + + +class SourceResolutionError(Exception): + """An input step does not carry exactly one recognized source reference.""" + + pass + + +class SourceResolver: + # The exact reference key this resolver handles. The dispatch loop selects a + # resolver by which key the step carries, not by which one happens to return + # a non-empty batch. + source_reference_key: str = "" + + def applies(self, step: EvaluationRunDataStep) -> bool: + refs = step.references or {} + return self.source_reference_key in refs + + async def resolve( + self, + *, + project_id: UUID, + step: EvaluationRunDataStep, + ) -> Optional[ResolvedSourceBatch]: + raise NotImplementedError + + +class QueryRevisionTraceResolver(SourceResolver): + source_reference_key = "query_revision" + + def __init__(self, *, queries_service: Any): + self.queries_service = queries_service + + async def resolve( + self, + *, + project_id: UUID, + step: EvaluationRunDataStep, + ) -> Optional[ResolvedSourceBatch]: + refs = step.references or {} + query_revision_ref = refs.get("query_revision") + + if not step.key or not query_revision_ref or not query_revision_ref.id: + return None + + query_revision = await self.queries_service.fetch_query_revision( + project_id=project_id, + query_revision_ref=query_revision_ref, + include_trace_ids=True, + ) + trace_ids = ( + query_revision.data.trace_ids + if query_revision and query_revision.data and query_revision.data.trace_ids + else [] + ) + + if not trace_ids: + return None + + return ResolvedSourceBatch( + kind="traces", + step_key=step.key, + trace_ids=trace_ids, + ) + + +class TestsetRevisionTestcaseResolver(SourceResolver): + source_reference_key = "testset_revision" + + def __init__(self, *, testsets_service: Any): + self.testsets_service = testsets_service + + async def resolve( + self, + *, + project_id: UUID, + step: EvaluationRunDataStep, + ) -> Optional[ResolvedSourceBatch]: + refs = step.references or {} + testset_revision_ref = refs.get("testset_revision") + + if not step.key or not testset_revision_ref or not testset_revision_ref.id: + return None + + testset_revision = await self.testsets_service.fetch_testset_revision( + project_id=project_id, + testset_revision_ref=testset_revision_ref, + include_testcase_ids=True, + ) + testcase_ids = ( + testset_revision.data.testcase_ids + if testset_revision + and testset_revision.data + and testset_revision.data.testcase_ids + else [] + ) + + if not testcase_ids: + return None + + return ResolvedSourceBatch( + kind="testcases", + step_key=step.key, + testcase_ids=testcase_ids, + ) + + +class TestsetRevisionPayloadResolver: + def __init__(self, *, testsets_service: Any): + self.testsets_service = testsets_service + + async def resolve( + self, + *, + project_id: UUID, + step: EvaluationRunDataStep, + ) -> ResolvedTestsetInputSpec: + refs = step.references or {} + testset_revision_ref = refs.get("testset_revision") + + if not testset_revision_ref or not isinstance(testset_revision_ref.id, UUID): + raise ValueError( + f"Evaluation input step {step.key} missing testset_revision reference." + ) + + testset_revision = await self.testsets_service.fetch_testset_revision( + project_id=project_id, + testset_revision_ref=testset_revision_ref, + ) + if not testset_revision: + raise ValueError( + f"Testset revision with id {testset_revision_ref.id} not found!" + ) + if not testset_revision.data or not testset_revision.data.testcases: + raise ValueError( + f"Testset revision with id {testset_revision_ref.id} has no testcases!" + ) + + testset_variant = await self.testsets_service.fetch_testset_variant( + project_id=project_id, + testset_variant_ref=Reference(id=testset_revision.variant_id), + ) + if not testset_variant: + raise ValueError( + f"Testset variant with id {testset_revision.variant_id} not found!" + ) + + testset = await self.testsets_service.fetch_testset( + project_id=project_id, + testset_ref=Reference(id=testset_variant.testset_id), + ) + if not testset: + raise ValueError(f"Testset with id {testset_variant.testset_id} not found!") + + testcases = testset_revision.data.testcases + return ResolvedTestsetInputSpec( + step_key=step.key, + testset=testset, + testset_revision=testset_revision, + testcases=testcases, + testcases_data=[ + {**testcase.data, "testcase_id": str(testcase.id)} + for testcase in testcases + ], + ) + + +async def resolve_queue_source_batches( + *, + project_id: UUID, + run: EvaluationRun, + queries_service: Any, + testsets_service: Any, +) -> List[ResolvedSourceBatch]: + if not run.data or not run.data.steps: + return [] + + resolvers: List[SourceResolver] = [ + QueryRevisionTraceResolver(queries_service=queries_service), + TestsetRevisionTestcaseResolver(testsets_service=testsets_service), + ] + batches: List[ResolvedSourceBatch] = [] + + for step in run.data.steps: + if step.type != "input" or not step.key: + continue + + # Exactly one recognized source reference per input step. Selecting by + # the applicable key (not by first non-empty result) means an empty + # result — a query with zero traces — stays an empty batch instead of + # falling through to the wrong resolver. + applicable = [resolver for resolver in resolvers if resolver.applies(step)] + + if not applicable: + continue + + if len(applicable) > 1: + raise SourceResolutionError( + f"Input step '{step.key}' carries multiple source references " + f"({', '.join(r.source_reference_key for r in applicable)}); " + "exactly one is allowed." + ) + + batch = await applicable[0].resolve( + project_id=project_id, + step=step, + ) + if batch: + batches.append(batch) + + return batches + + +async def resolve_testset_input_specs( + *, + project_id: UUID, + input_steps: List[EvaluationRunDataStep], + testsets_service: Any, +) -> List[ResolvedTestsetInputSpec]: + resolver = TestsetRevisionPayloadResolver(testsets_service=testsets_service) + return [ + await resolver.resolve( + project_id=project_id, + step=input_step, + ) + for input_step in input_steps + ] + + +async def resolve_direct_source_items( + *, + project_id: UUID, + trace_ids: Optional[List[str]] = None, + testcase_ids: Optional[List[UUID]] = None, + testcases_service: Any = None, + tracing_service: Any = None, +) -> List[ResolvedSourceItem]: + source_items: List[ResolvedSourceItem] = [] + testcase_ids = testcase_ids or [] + trace_ids = trace_ids or [] + + testcases = ( + await testcases_service.fetch_testcases( + project_id=project_id, + testcase_ids=testcase_ids, + ) + if testcase_ids and testcases_service is not None + else [] + ) + testcases_by_id = { + testcase.id: testcase for testcase in testcases if getattr(testcase, "id", None) + } + traces_by_id: Dict[str, Any] = {} + + if trace_ids and tracing_service is not None: + for trace_id in trace_ids: + trace = await fetch_trace( + tracing_service=tracing_service, + project_id=project_id, + trace_id=trace_id, + max_retries=1, + delay=0, + ) + if trace is not None: + traces_by_id[trace_id] = trace + + source_items.extend( + ResolvedSourceItem( + kind="testcase", + step_key="", + testcase=testcases_by_id.get(testcase_id), + testcase_id=testcase_id, + ) + for testcase_id in testcase_ids + ) + for trace_id in trace_ids: + trace = traces_by_id.get(trace_id) + ag_data = _extract_ag_data(trace) if trace is not None else {} + root_span = _extract_root_span(trace) if trace is not None else None + source_items.append( + ResolvedSourceItem( + kind="trace", + step_key="", + trace_id=trace_id, + span_id=_extract_span_id(root_span), + trace=trace, + inputs=ag_data.get("inputs"), + outputs=ag_data.get("outputs"), + ) + ) + + return source_items + + +async def resolve_live_query_traces( + *, + project_id: UUID, + query_revisions: Dict[str, Any], + tracing_service: Any, + newest: Optional[datetime] = None, + oldest: Optional[datetime] = None, + use_windowing: bool = False, +) -> Dict[str, List[Any]]: + query_traces: Dict[str, List[Any]] = {} + + for query_step_key, query_revision in query_revisions.items(): + formatting = Formatting( + focus=Focus.TRACE, + format=Format.AGENTA, + ) + filtering = Filtering( + operator=LogicalOperator.AND, + conditions=[], + ) + windowing = Windowing( + oldest=oldest, + newest=newest, + next=None, + limit=None, + order="ascending", + interval=None, + rate=None, + ) + + query_revision_data = getattr(query_revision, "data", None) + if query_revision_data: + query_filtering = getattr(query_revision_data, "filtering", None) + query_windowing = getattr(query_revision_data, "windowing", None) + + if query_filtering: + filtering = query_filtering + + if query_windowing and use_windowing: + windowing = Windowing( + oldest=query_windowing.oldest, + newest=query_windowing.newest, + limit=query_windowing.limit, + order=query_windowing.order, + rate=query_windowing.rate, + ) + elif query_windowing: + windowing.rate = query_windowing.rate + + query_traces[query_step_key] = ( + await tracing_service.query_traces( + project_id=project_id, + query=TracingQuery( + formatting=formatting, + filtering=filtering, + windowing=windowing, + ), + ) + or [] + ) + + return query_traces + + +async def resolve_query_source_items( + *, + project_id: UUID, + run: EvaluationRun, + queries_service: Any, + tracing_service: Any, + newest: Optional[datetime] = None, + oldest: Optional[datetime] = None, + use_windowing: bool = False, +) -> Dict[str, List[ResolvedSourceItem]]: + if not run.data or not run.data.steps: + return {} + + query_revisions: Dict[str, Any] = {} + for step in run.data.steps: + if step.type != "input" or not step.key: + continue + + query_revision_ref = (step.references or {}).get("query_revision") + if not query_revision_ref: + continue + + query_revision = await queries_service.fetch_query_revision( + project_id=project_id, + query_revision_ref=query_revision_ref, + ) + if ( + not query_revision + or not getattr(query_revision, "id", None) + or not getattr(query_revision, "slug", None) + ): + continue + + query_revisions[step.key] = query_revision + + query_traces = await resolve_live_query_traces( + project_id=project_id, + query_revisions=query_revisions, + tracing_service=tracing_service, + newest=newest, + oldest=oldest, + use_windowing=use_windowing, + ) + + return { + query_step_key: [ + ResolvedSourceItem( + kind="trace", + step_key=query_step_key, + trace_id=trace.trace_id, + trace=trace, + ) + for trace in traces + if trace and trace.trace_id + ] + for query_step_key, traces in query_traces.items() + } diff --git a/api/oss/src/core/evaluations/runtime/tensor.py b/api/oss/src/core/evaluations/runtime/tensor.py new file mode 100644 index 0000000000..df2ae6e5bb --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/tensor.py @@ -0,0 +1,233 @@ +from typing import List, Optional, Protocol +from uuid import UUID + +from oss.src.core.evaluations.runtime.models import ( + ProcessSummary, + TensorProbeSummary, + TensorSlice, +) +from oss.src.core.evaluations.types import ( + EvaluationMetricsRefresh, + EvaluationResult, + EvaluationResultCreate, + EvaluationResultQuery, + EvaluationStatus, +) + + +def _empty_dimension(values: Optional[List[object]]) -> bool: + return values == [] + + +def _slice_is_empty(tensor_slice: TensorSlice) -> bool: + return any( + _empty_dimension(values) + for values in ( + tensor_slice.scenario_ids, + tensor_slice.step_keys, + tensor_slice.repeat_idxs, + ) + ) + + +def _query_from_slice(tensor_slice: TensorSlice) -> EvaluationResultQuery: + return EvaluationResultQuery( + run_id=tensor_slice.run_id, + scenario_ids=tensor_slice.scenario_ids, + step_keys=tensor_slice.step_keys, + repeat_idxs=tensor_slice.repeat_idxs, + ) + + +class SliceProcessor(Protocol): + """Execution boundary for `process(slice)`. + + A slice processor takes the canonical output coordinate (existing + scenarios x steps x repeats) and re-executes the runnable cells in that + scope: it plans from the scenarios' existing source bindings, restricts to + the requested `step_keys`/`repeat_idxs`, invokes only missing work, and + populates the result cells. It does NOT refresh metrics — that is the + separate `refresh` op, invoked by the caller on the right boundary. + + It is deliberately adapter-free at this seam so `runtime/` does not depend on + `tasks/`: the concrete implementation (which closes over the tracing / + testcases / workflows / applications services and the run's revisions) is + wired at the composition root and injected here. The same shape lets the SDK + or an in-memory test supply its own processor without changing tensor ops. + """ + + async def process( + self, + *, + project_id: UUID, + user_id: UUID, + tensor_slice: TensorSlice, + ) -> ProcessSummary: ... + + +class TensorSliceOperations: + def __init__( + self, + *, + evaluations_service, + slice_processor: Optional[SliceProcessor] = None, + ): + self.evaluations_service = evaluations_service + self.slice_processor = slice_processor + + async def probe( + self, + *, + project_id: UUID, + tensor_slice: TensorSlice, + ) -> List[EvaluationResult]: + if _slice_is_empty(tensor_slice): + return [] + + return await self.evaluations_service.query_results( + project_id=project_id, + result=_query_from_slice(tensor_slice), + ) + + async def populate( + self, + *, + project_id: UUID, + user_id: UUID, + results: List[EvaluationResultCreate], + ) -> List[EvaluationResult]: + # `populate` only writes result cells. Metrics are a separate operation + # (`refresh`): the three metric kinds refresh on different boundaries + # (scenario-complete / interval / run), so the caller decides when. + if not results: + return [] + + return await self.evaluations_service.create_results( + project_id=project_id, + user_id=user_id, + results=results, + ) + + async def probe_summary( + self, + *, + project_id: UUID, + tensor_slice: TensorSlice, + expected_count: Optional[int] = None, + ) -> TensorProbeSummary: + results = await self.probe( + project_id=project_id, + tensor_slice=tensor_slice, + ) + existing_count = len(results) + expected = expected_count if expected_count is not None else existing_count + + return TensorProbeSummary( + existing_count=existing_count, + missing_count=max(0, expected - existing_count), + success_count=sum( + 1 for result in results if result.status == EvaluationStatus.SUCCESS + ), + failure_count=sum( + 1 + for result in results + if result.status + in { + EvaluationStatus.FAILURE, + EvaluationStatus.ERRORS, + } + ), + pending_count=sum( + 1 for result in results if result.status == EvaluationStatus.PENDING + ), + any_count=existing_count, + ) + + async def prune( + self, + *, + project_id: UUID, + user_id: UUID, + tensor_slice: TensorSlice, + ) -> List[UUID]: + # `prune` deletes result cells only. It does NOT touch metrics: metrics + # are aggregates over a whole scenario/interval/run (not per-cell), so + # pruning cells doesn't delete an aggregate — it just leaves it needing + # recomputation, which is the separate `refresh` op. + results = await self.probe( + project_id=project_id, + tensor_slice=tensor_slice, + ) + result_ids = [result.id for result in results if result.id] + if not result_ids: + return [] + + return await self.evaluations_service.delete_results( + project_id=project_id, + result_ids=result_ids, + ) + + async def process( + self, + *, + project_id: UUID, + user_id: UUID, + tensor_slice: TensorSlice, + ) -> ProcessSummary: + """Execute the runnable cells in the slice and return what changed. + + This is the plan->execute->populate loop of the design's `process(slice)` + operation — results only. Metrics are refreshed by the separate + `refresh` op, not here. The actual execution is delegated to the + injected `slice_processor`; this method owns only the slice-level + guard (an empty dimension means "nothing addressed", so there is + nothing to execute). + + Execution requires a wired `slice_processor`. Earlier this method + silently refreshed metrics and returned an empty summary, which read as + "executed the slice" while doing almost nothing (UEL-015) — so when no + processor is wired we now fail loudly rather than masquerade. + """ + if _slice_is_empty(tensor_slice): + return ProcessSummary() + + if self.slice_processor is None: + raise NotImplementedError( + "process(slice) requires a wired slice_processor; " + "TensorSliceOperations was constructed without one. " + "Use probe/populate/prune for read/write/delete, or wire a " + "SliceProcessor at the composition root to execute the slice." + ) + + return await self.slice_processor.process( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + + async def refresh( + self, + *, + project_id: UUID, + user_id: UUID, + tensor_slice: TensorSlice, + ) -> None: + """Recompute metrics over the slice's scope. + + First-class peer of probe/process/populate/prune. Kept separate from + them because the three metric kinds (variational / temporal / global) + refresh on different boundaries — scenario-complete, interval, run — so + the caller invokes `refresh` at the right boundary rather than having + every write implicitly recompute. + """ + if _slice_is_empty(tensor_slice): + return + + await self.evaluations_service.refresh_metrics( + project_id=project_id, + user_id=user_id, + metrics=EvaluationMetricsRefresh( + run_id=tensor_slice.run_id, + scenario_ids=tensor_slice.scenario_ids, + ), + ) diff --git a/api/oss/src/core/evaluations/runtime/topology.py b/api/oss/src/core/evaluations/runtime/topology.py new file mode 100644 index 0000000000..f7950b6e0d --- /dev/null +++ b/api/oss/src/core/evaluations/runtime/topology.py @@ -0,0 +1,34 @@ +from agenta.sdk.evaluations.runtime.topology import classify_steps_topology + +from oss.src.core.evaluations.runtime.planner import normalize_steps +from oss.src.core.evaluations.runtime.models import TopologyDecision +from oss.src.core.evaluations.types import EvaluationRun + + +def classify_run_topology(run: EvaluationRun) -> TopologyDecision: + """Classify the current evaluation graph for worker dispatch. + + This is intentionally conservative. It mirrors the currently supported + worker-dispatched topologies while naming future-interest and not-planned + shapes explicitly. + """ + + steps = run.data.steps if run.data and run.data.steps else [] + flags = run.flags + + decision = classify_steps_topology( + steps=normalize_steps(steps), + is_live=bool(flags and flags.is_live), + has_queries=bool(flags and flags.has_queries), + has_testsets=bool(flags and flags.has_testsets), + has_traces=bool(flags and flags.has_traces), + has_testcases=bool(flags and flags.has_testcases), + has_evaluators=bool(flags and flags.has_evaluators), + ) + + return TopologyDecision( + status=decision.status, + label=decision.label, + reason=decision.reason, + dispatch=decision.dispatch, + ) diff --git a/api/oss/src/core/evaluations/service.py b/api/oss/src/core/evaluations/service.py index 6869e78e52..845788cf1b 100644 --- a/api/oss/src/core/evaluations/service.py +++ b/api/oss/src/core/evaluations/service.py @@ -20,6 +20,7 @@ EvaluationRunDataMapping, EvaluationRunDataStepInput, EvaluationRunDataStep, + EvaluationRunDataConcurrency, EvaluationRunData, EvaluationRun, EvaluationRunCreate, @@ -49,6 +50,10 @@ EvaluationQueueData, EvaluationQueueEdit, EvaluationQueueQuery, + # DEFAULT QUEUE EXCEPTIONS + DefaultQueueDataInvalid, + DefaultQueueDemotionForbidden, + DefaultQueueDeletionForbidden, ) from oss.src.core.evaluations.types import ( Target, @@ -72,6 +77,7 @@ SimpleQueueSettings, ) from oss.src.core.evaluations.types import CURRENT_VERSION +from oss.src.core.evaluations.types import EvaluationClosedConflict from oss.src.core.tracing.dtos import ( TracingQuery, Filtering, @@ -100,10 +106,18 @@ ) from oss.src.core.evaluations.utils import get_metrics_keys_from_schema +from oss.src.core.evaluations.runtime.topology import classify_run_topology +from oss.src.core.evaluations.runtime.sources import resolve_queue_source_batches +from oss.src.core.evaluations.runtime.runner import TaskiqEvaluationTaskRunner log = get_module_logger(__name__) +# Product policy toggle: when True, every evaluation run keeps a default queue +# even when it has no human evaluators. Keep this as a global until the product +# decision is finalized. +EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS = False + if TYPE_CHECKING: from oss.src.tasks.taskiq.evaluations.worker import EvaluationsWorker @@ -199,6 +213,11 @@ def __init__( self.testsets_service = testsets_service self.evaluators_service = evaluators_service self.evaluations_worker = evaluations_worker + self.evaluations_task_runner = ( + TaskiqEvaluationTaskRunner(worker=evaluations_worker) + if evaluations_worker is not None + else None + ) ### CRUD @@ -225,7 +244,7 @@ async def refresh_runs( log.error(e, exc_info=True) return False - if self.evaluations_worker is None: + if self.evaluations_task_runner is None: log.warning( "[LIVE] Taskiq client is not configured; skipping live run dispatch" ) @@ -266,12 +285,10 @@ async def refresh_runs( run=run, ) - await self.evaluations_worker.evaluate_live_query.kiq( + await self.evaluations_task_runner.process_run( project_id=project_id, user_id=user_id, - # run_id=run.id, - # newest=newest, oldest=oldest, ) @@ -359,34 +376,96 @@ async def _ensure_human_annotation_queue( user_id: UUID, run: EvaluationRun, ) -> None: - """Create an EvaluationQueue for human annotation steps if none exists for this run.""" - if not run.id or not run.data or not run.data.steps: - return + await self._reconcile_default_queue( + project_id=project_id, + user_id=user_id, + run=run, + ) - human_step_keys = [ - step.key - for step in run.data.steps - if step.type == "annotation" and step.origin == "human" and step.key - ] + async def fetch_default_queue( + self, + *, + project_id: UUID, + run_id: UUID, + include_archived: bool = False, + ) -> Optional[EvaluationQueue]: + queues = await self.query_queues( + project_id=project_id, + queue=EvaluationQueueQuery( + run_id=run_id, + flags=EvaluationQueueQueryFlags(is_default=True), + include_archived=include_archived, + ), + ) + return queues[0] if queues else None - if not human_step_keys: - return + async def _reconcile_default_queue( + self, + *, + project_id: UUID, + user_id: UUID, + run: EvaluationRun, + ) -> EvaluationRun: + if not run.id: + return run - existing_queues = await self.query_queues( + has_human = bool(run.flags and run.flags.has_human) + should_exist = EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS or has_human + default_queue = await self.fetch_default_queue( project_id=project_id, - queue=EvaluationQueueQuery(run_id=run.id), + run_id=run.id, + include_archived=True, ) - if any(q.run_id == run.id for q in existing_queues): - return - await self.create_queue( - project_id=project_id, - user_id=user_id, - queue=EvaluationQueueCreate( - run_id=run.id, - status=EvaluationStatus.RUNNING, - data=EvaluationQueueData(step_keys=human_step_keys), - ), + if should_exist: + if default_queue is None: + default_queue = await self.create_queue( + project_id=project_id, + user_id=user_id, + queue=EvaluationQueueCreate( + run_id=run.id, + status=EvaluationStatus.RUNNING, + flags=EvaluationQueueFlags(is_default=True), + data=EvaluationQueueData(), + ), + ) + elif default_queue.deleted_at is not None: + default_queue = await self.unarchive_queue( + project_id=project_id, + user_id=user_id, + queue_id=default_queue.id, + ) + elif default_queue is not None and default_queue.deleted_at is None: + default_queue = await self.archive_queue( + project_id=project_id, + user_id=user_id, + queue_id=default_queue.id, + ) + + is_queue = bool( + has_human and default_queue is not None and default_queue.deleted_at is None + ) + if run.flags and run.flags.is_queue == is_queue: + return run + + flags = run.flags.model_copy() if run.flags else EvaluationRunFlags() + flags.is_queue = is_queue + return ( + await self.evaluations_dao.edit_run( + project_id=project_id, + user_id=user_id, + run=EvaluationRunEdit( + id=run.id, + name=run.name, + description=run.description, + flags=flags, + tags=run.tags, + meta=run.meta, + status=run.status, + data=run.data, + ), + ) + or run ) async def fetch_live_runs( @@ -434,6 +513,120 @@ async def has_run_mutation_lock( return await _has_mutation_lock(run_id=str(run_id)) + @staticmethod + def _step_keys(run: Optional[EvaluationRun]) -> set: + if run is None or run.data is None or not run.data.steps: + return set() + return {step.key for step in run.data.steps} + + async def _reconcile_run( + self, + *, + project_id: UUID, + user_id: UUID, + # + run: EvaluationRun, + prior_step_keys: set, + ) -> EvaluationRun: + """Bring all run-derived state in line with the run's current graph. + + This is the single post-write reconciliation path shared by create and + edit. `create_run` is just `edit_run` starting from an empty graph: it + passes `prior_step_keys=set()`, so the prune step is a no-op (there are + no prior cells), while the default-queue reconciliation runs identically + in both cases. + + Steps: + 1. prune tensor cells (and input-only scenarios + their metrics) for + any step that existed before but is gone from the current graph, + per `docs/designs/unified-eval-loops/step-removal-semantics.md`. + 2. reconcile the default queue + `is_queue` from the current graph. + """ + await self._prune_removed_steps( + project_id=project_id, + user_id=user_id, + run=run, + removed_step_keys=prior_step_keys - self._step_keys(run), + ) + + return await self._reconcile_default_queue( + project_id=project_id, + user_id=user_id, + run=run, + ) + + async def _prune_removed_steps( + self, + *, + project_id: UUID, + user_id: UUID, + # + run: EvaluationRun, + removed_step_keys: set, + ) -> None: + """Destructively prune cells, orphan scenarios, and metrics for steps + that left the graph. Removal is destructive (Model A): stored graph and + stored tensor keep the same shape. A no-op when nothing was removed. + """ + if not removed_step_keys or not run.id: + return + + removed_results = await self.query_results( + project_id=project_id, + result=EvaluationResultQuery( + run_id=run.id, + step_keys=sorted(removed_step_keys), + ), + ) + affected_scenario_ids = sorted( + {r.scenario_id for r in removed_results if r.scenario_id}, + key=str, + ) + + removed_result_ids = [r.id for r in removed_results if r.id] + if removed_result_ids: + await self.delete_results( + project_id=project_id, + result_ids=removed_result_ids, + ) + + # Scenarios sourced only from a removed step have no remaining cells. + orphan_scenario_ids: List[UUID] = [] + for scenario_id in affected_scenario_ids: + remaining = await self.query_results( + project_id=project_id, + result=EvaluationResultQuery( + run_id=run.id, + scenario_ids=[scenario_id], + ), + ) + if not remaining: + orphan_scenario_ids.append(scenario_id) + + if orphan_scenario_ids: + await self.delete_scenarios( + project_id=project_id, + scenario_ids=orphan_scenario_ids, + ) + + # Flush metrics for surviving affected scenarios so current metrics stay + # aligned with the post-removal graph. Orphans are gone. + orphans = set(orphan_scenario_ids) + surviving_scenario_ids = [ + scenario_id + for scenario_id in affected_scenario_ids + if scenario_id not in orphans + ] + if surviving_scenario_ids: + await self.refresh_metrics( + project_id=project_id, + user_id=user_id, + metrics=EvaluationMetricsRefresh( + run_id=run.id, + scenario_ids=surviving_scenario_ids, + ), + ) + async def create_run( self, *, @@ -444,12 +637,21 @@ async def create_run( ) -> Optional[EvaluationRun]: run.version = CURRENT_VERSION - return await self.evaluations_dao.create_run( + created_run = await self.evaluations_dao.create_run( project_id=project_id, user_id=user_id, # run=run, ) + if created_run: + # Create is edit from an empty graph: no prior steps to prune. + created_run = await self._reconcile_run( + project_id=project_id, + user_id=user_id, + run=created_run, + prior_step_keys=set(), + ) + return created_run async def create_runs( self, @@ -462,12 +664,21 @@ async def create_runs( for run in runs: run.version = CURRENT_VERSION - return await self.evaluations_dao.create_runs( + created_runs = await self.evaluations_dao.create_runs( project_id=project_id, user_id=user_id, # runs=runs, ) + return [ + await self._reconcile_run( + project_id=project_id, + user_id=user_id, + run=created_run, + prior_step_keys=set(), + ) + for created_run in created_runs + ] async def fetch_run( self, @@ -505,12 +716,25 @@ async def edit_run( ) -> Optional[EvaluationRun]: run.version = CURRENT_VERSION - return await self.evaluations_dao.edit_run( + # Capture the prior graph so reconciliation can prune any step the edit + # drops. An edit that omits a step is a destructive removal. + prior_run = await self.fetch_run(project_id=project_id, run_id=run.id) + prior_step_keys = self._step_keys(prior_run) + + edited_run = await self.evaluations_dao.edit_run( project_id=project_id, user_id=user_id, # run=run, ) + if edited_run: + edited_run = await self._reconcile_run( + project_id=project_id, + user_id=user_id, + run=edited_run, + prior_step_keys=prior_step_keys, + ) + return edited_run async def edit_runs( self, @@ -523,12 +747,29 @@ async def edit_runs( for run in runs: run.version = CURRENT_VERSION - return await self.evaluations_dao.edit_runs( + prior_runs = await self.fetch_runs( + project_id=project_id, + run_ids=[run.id for run in runs], + ) + prior_step_keys_by_id = { + prior_run.id: self._step_keys(prior_run) for prior_run in prior_runs + } + + edited_runs = await self.evaluations_dao.edit_runs( project_id=project_id, user_id=user_id, # runs=runs, ) + return [ + await self._reconcile_run( + project_id=project_id, + user_id=user_id, + run=edited_run, + prior_step_keys=prior_step_keys_by_id.get(edited_run.id, set()), + ) + for edited_run in edited_runs + ] async def delete_run( self, @@ -1178,7 +1419,15 @@ async def _refresh_metrics( steps_trace_ids[step_key] = trace_ids if not steps_trace_ids: - log.warning("[METRICS] No trace_ids found! Cannot extract metrics.") + # A human/custom annotation is run elsewhere (web / SDK), so it has no + # trace here by design — only warn if a step we expected to trace + # (an invocation or auto annotation) failed to produce one. + expected_traces = any( + step.type != "annotation" or step.origin not in {"human", "custom"} + for step in refreshable_steps + ) + if expected_traces: + log.warning("[METRICS] No trace_ids found! Cannot extract metrics.") return [] inferred_metrics_keys_by_step: Dict[str, List[Dict[str, str]]] = {} @@ -1328,14 +1577,6 @@ async def _refresh_metrics( bucket = buckets[0] - # log.info( - # f"[METRICS] Step '{step_key}': bucket has metrics: {bool(bucket.metrics)}" - # ) - # if bucket.metrics: - # log.info( - # f"[METRICS] Step '{step_key}': metrics keys: {list(bucket.metrics.keys())}" - # ) - if not bucket.metrics: log.warning("Bucket metrics should not be empty") log.warning("Bucket:", bucket) @@ -1538,6 +1779,24 @@ def mapping_key( # - EVALUATION QUEUE ------------------------------------------------------- + @staticmethod + def _validate_default_queue_data( + *, flags: Optional[EvaluationQueueFlags], data: Optional[EvaluationQueueData] + ) -> None: + if not flags or not flags.is_default or not data: + return + if any( + value is not None + for value in ( + data.user_ids, + data.scenario_ids, + data.step_keys, + data.batch_size, + data.batch_offset, + ) + ): + raise DefaultQueueDataInvalid() + async def create_queue( self, *, @@ -1547,13 +1806,21 @@ async def create_queue( queue: EvaluationQueueCreate, ) -> Optional[EvaluationQueue]: queue.version = CURRENT_VERSION + self._validate_default_queue_data(flags=queue.flags, data=queue.data) - return await self.evaluations_dao.create_queue( + created_queue = await self.evaluations_dao.create_queue( project_id=project_id, user_id=user_id, # queue=queue, ) + if created_queue: + await self._sync_run_queue_flag_for_default_queue( + project_id=project_id, + user_id=user_id, + queue=created_queue, + ) + return created_queue async def create_queues( self, @@ -1565,13 +1832,21 @@ async def create_queues( ) -> List[EvaluationQueue]: for queue in queues: queue.version = CURRENT_VERSION + self._validate_default_queue_data(flags=queue.flags, data=queue.data) - return await self.evaluations_dao.create_queues( + created_queues = await self.evaluations_dao.create_queues( project_id=project_id, user_id=user_id, # queues=queues, ) + for created_queue in created_queues: + await self._sync_run_queue_flag_for_default_queue( + project_id=project_id, + user_id=user_id, + queue=created_queue, + ) + return created_queues async def fetch_queue( self, @@ -1608,13 +1883,29 @@ async def edit_queue( queue: EvaluationQueueEdit, ) -> Optional[EvaluationQueue]: queue.version = CURRENT_VERSION + existing = await self.fetch_queue(project_id=project_id, queue_id=queue.id) + if existing and existing.flags and existing.flags.is_default: + if queue.flags and not queue.flags.is_default: + raise DefaultQueueDemotionForbidden(queue_id=queue.id) + effective_flags = existing.flags + else: + effective_flags = queue.flags or (existing.flags if existing else None) + effective_data = queue.data or (existing.data if existing else None) + self._validate_default_queue_data(flags=effective_flags, data=effective_data) - return await self.evaluations_dao.edit_queue( + edited_queue = await self.evaluations_dao.edit_queue( project_id=project_id, user_id=user_id, # queue=queue, ) + if edited_queue: + await self._sync_run_queue_flag_for_default_queue( + project_id=project_id, + user_id=user_id, + queue=edited_queue, + ) + return edited_queue async def edit_queues( self, @@ -1627,12 +1918,116 @@ async def edit_queues( for queue in queues: queue.version = CURRENT_VERSION - return await self.evaluations_dao.edit_queues( + existing_queues = await self.fetch_queues( + project_id=project_id, + queue_ids=[queue.id for queue in queues], + ) + existing_by_id = {queue.id: queue for queue in existing_queues} + for queue in queues: + existing = existing_by_id.get(queue.id) + if existing and existing.flags and existing.flags.is_default: + if queue.flags and not queue.flags.is_default: + raise DefaultQueueDemotionForbidden(queue_id=queue.id) + effective_flags = existing.flags + else: + effective_flags = queue.flags or (existing.flags if existing else None) + effective_data = queue.data or (existing.data if existing else None) + self._validate_default_queue_data( + flags=effective_flags, data=effective_data + ) + + edited_queues = await self.evaluations_dao.edit_queues( project_id=project_id, user_id=user_id, # queues=queues, ) + for edited_queue in edited_queues: + await self._sync_run_queue_flag_for_default_queue( + project_id=project_id, + user_id=user_id, + queue=edited_queue, + ) + return edited_queues + + async def _sync_run_queue_flag_for_default_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue: EvaluationQueue, + ) -> None: + if not queue.flags or not queue.flags.is_default: + return + run = await self.fetch_run(project_id=project_id, run_id=queue.run_id) + if not run: + return + has_human = bool(run.flags and run.flags.has_human) + is_queue = bool(has_human and queue.deleted_at is None) + if run.flags and run.flags.is_queue == is_queue: + return + flags = run.flags.model_copy() if run.flags else EvaluationRunFlags() + flags.is_queue = is_queue + try: + await self.evaluations_dao.edit_run( + project_id=project_id, + user_id=user_id, + run=EvaluationRunEdit( + id=run.id, + name=run.name, + description=run.description, + flags=flags, + tags=run.tags, + meta=run.meta, + status=run.status, + data=run.data, + ), + ) + except EvaluationClosedConflict: + # Archiving/unarchiving a default queue is a worklist action allowed + # on a closed run, but the closed run rejects content edits. The + # derived is_queue flag is best-effort here; it reconciles on reopen. + pass + + async def archive_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue_id: UUID, + ) -> Optional[EvaluationQueue]: + queue = await self.evaluations_dao.archive_queue( + project_id=project_id, + user_id=user_id, + queue_id=queue_id, + ) + if queue: + await self._sync_run_queue_flag_for_default_queue( + project_id=project_id, + user_id=user_id, + queue=queue, + ) + return queue + + async def unarchive_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue_id: UUID, + ) -> Optional[EvaluationQueue]: + queue = await self.evaluations_dao.unarchive_queue( + project_id=project_id, + user_id=user_id, + queue_id=queue_id, + ) + if queue: + await self._sync_run_queue_flag_for_default_queue( + project_id=project_id, + user_id=user_id, + queue=queue, + ) + return queue async def delete_queue( self, @@ -1641,6 +2036,9 @@ async def delete_queue( # queue_id: UUID, ) -> Optional[UUID]: + existing = await self.fetch_queue(project_id=project_id, queue_id=queue_id) + if existing and existing.flags and existing.flags.is_default: + raise DefaultQueueDeletionForbidden(queue_id=queue_id) return await self.evaluations_dao.delete_queue( project_id=project_id, # @@ -1654,6 +2052,12 @@ async def delete_queues( # queue_ids: List[UUID], ) -> List[UUID]: + existing_queues = await self.fetch_queues( + project_id=project_id, + queue_ids=queue_ids, + ) + if any(queue.flags and queue.flags.is_default for queue in existing_queues): + raise DefaultQueueDeletionForbidden() return await self.evaluations_dao.delete_queues( project_id=project_id, # @@ -1800,6 +2204,11 @@ def __init__( self.evaluators_service = evaluators_service self.evaluations_service = evaluations_service self.evaluations_worker = evaluations_worker + self.evaluations_task_runner = ( + TaskiqEvaluationTaskRunner(worker=evaluations_worker) + if evaluations_worker is not None + else None + ) async def create( self, @@ -1856,6 +2265,7 @@ async def create( evaluator_steps=evaluation.data.evaluator_steps, # repeats=evaluation.data.repeats, + concurrency=evaluation.data.concurrency, # is_live=evaluation.flags.is_live, ) @@ -2232,50 +2642,26 @@ async def start( _evaluation = await self._parse_evaluation_run(run=run) return _evaluation - if self.evaluations_worker is None: + if self.evaluations_task_runner is None: log.warning( "[EVAL] Taskiq client missing; cannot dispatch evaluation run", ) return _evaluation - has_query_steps = bool(_evaluation.data.query_steps) - has_testset_steps = bool(_evaluation.data.testset_steps) - has_application_steps = bool(_evaluation.data.application_steps) - has_evaluator_steps = bool(_evaluation.data.evaluator_steps) - - if has_query_steps and has_evaluator_steps: - await self._ensure_human_annotation_queue( - project_id=project_id, - user_id=user_id, - run=run, - ) - await self.evaluations_worker.evaluate_batch_query.kiq( - project_id=project_id, - user_id=user_id, - # - run_id=run.id, - ) + # Worker task names are API-internal, so dispatch through the + # unified run processor rather than topology-specific handlers. + topology = classify_run_topology(run) - elif ( - has_testset_steps and has_application_steps and has_evaluator_steps - ): - await self.evaluations_worker.evaluate_batch_testset.kiq( - project_id=project_id, - user_id=user_id, - # - run_id=run.id, - ) - - elif ( - has_testset_steps - and has_application_steps - and not has_evaluator_steps - and not has_query_steps - ): - await self.evaluations_worker.evaluate_batch_invocation.kiq( + if topology.dispatch: + if topology.dispatch == "batch_query": + await self._ensure_human_annotation_queue( + project_id=project_id, + user_id=user_id, + run=run, + ) + await self.evaluations_task_runner.process_run( project_id=project_id, user_id=user_id, - # run_id=run.id, ) @@ -2283,10 +2669,9 @@ async def start( log.warning( "[EVAL] [start] [skip] unsupported non-live run topology", run_id=run.id, - has_query_steps=has_query_steps, - has_testset_steps=has_testset_steps, - has_application_steps=has_application_steps, - has_evaluator_steps=has_evaluator_steps, + topology=topology.label, + topology_status=topology.status, + reason=topology.reason, ) return _evaluation @@ -2335,7 +2720,7 @@ async def _ensure_human_annotation_queue( run=run, ) - async def evaluate_batch_traces( + async def dispatch_trace_slice( self, *, project_id: UUID, @@ -2347,7 +2732,7 @@ async def evaluate_batch_traces( ) -> bool: if not trace_ids: return False - if self.evaluations_worker is None: + if self.evaluations_task_runner is None: log.warning( "[EVAL] Taskiq client missing; cannot dispatch trace batch", run_id=run_id, @@ -2358,9 +2743,13 @@ async def evaluate_batch_traces( project_id=project_id, run_id=run_id, ) - if not run or not run.flags or not run.flags.is_queue: + if ( + not run + or not run.flags + or not (run.flags.has_traces or run.flags.has_queries) + ): log.warning( - "[EVAL] trace batch dispatch requires a queue evaluation run", + "[EVAL] trace batch dispatch requires a trace-capable evaluation run", run_id=run_id, ) return False @@ -2371,17 +2760,17 @@ async def evaluate_batch_traces( run=run, ) - await self.evaluations_worker.evaluate_batch_traces.kiq( + await self.evaluations_task_runner.process_slice( project_id=project_id, user_id=user_id, - # run_id=run_id, + source_kind="traces", trace_ids=trace_ids, input_step_key=input_step_key, ) return True - async def evaluate_batch_testcases( + async def dispatch_testcase_slice( self, *, project_id: UUID, @@ -2393,7 +2782,7 @@ async def evaluate_batch_testcases( ) -> bool: if not testcase_ids: return False - if self.evaluations_worker is None: + if self.evaluations_task_runner is None: log.warning( "[EVAL] Taskiq client missing; cannot dispatch testcase batch", run_id=run_id, @@ -2404,9 +2793,13 @@ async def evaluate_batch_testcases( project_id=project_id, run_id=run_id, ) - if not run or not run.flags or not run.flags.is_queue: + if ( + not run + or not run.flags + or not (run.flags.has_testcases or run.flags.has_testsets) + ): log.warning( - "[EVAL] testcase batch dispatch requires a queue evaluation run", + "[EVAL] testcase batch dispatch requires a testcase-capable evaluation run", run_id=run_id, ) return False @@ -2417,11 +2810,11 @@ async def evaluate_batch_testcases( run=run, ) - await self.evaluations_worker.evaluate_batch_testcases.kiq( + await self.evaluations_task_runner.process_slice( project_id=project_id, user_id=user_id, - # run_id=run_id, + source_kind="testcases", testcase_ids=testcase_ids, input_step_key=input_step_key, ) @@ -2485,8 +2878,11 @@ async def _make_evaluation_run_data( evaluator_steps: Optional[Target] = None, # repeats: Optional[int] = None, + concurrency: Optional[EvaluationRunDataConcurrency] = None, # is_live: Optional[bool] = None, + # + default_evaluator_origin: Origin = DEFAULT_ORIGIN_EVALUATORS, ) -> Optional[EvaluationRunData]: # IMPLICIT FLAG: is_multivariate=False # IMPLICIT FLAG: all_inputs=True @@ -2791,7 +3187,7 @@ async def _make_evaluation_run_data( if isinstance(evaluator_steps, list): evaluator_steps = { - evaluator_revision_id: DEFAULT_ORIGIN_EVALUATORS + evaluator_revision_id: default_evaluator_origin for evaluator_revision_id in evaluator_steps } @@ -3044,6 +3440,7 @@ async def _make_evaluation_run_data( steps=steps, mappings=mappings, repeats=repeats or 1, + concurrency=concurrency, ) except Exception: # pylint: disable=broad-exception-caught @@ -3149,6 +3546,11 @@ async def _activate_evaluation_run( run.flags.is_active = True + # A (re)dispatched run is running until its slice finalizes. Reset to + # RUNNING on every activation — not just creation — so an extended + # finished run goes back to `running` while the new work executes and is + # re-finalized by the slice. The slice's terminal status then replaces + # this via the (corrected) severity floor in source_slice.py. run = await self.evaluations_service.edit_run( project_id=project_id, user_id=user_id, @@ -3163,7 +3565,7 @@ async def _activate_evaluation_run( tags=run.tags, meta=run.meta, # - status=EvaluationStatus.RUNNING if just_created else run.status, + status=EvaluationStatus.RUNNING, # data=run.data, ), @@ -3387,6 +3789,7 @@ async def create( evaluator_steps=queue.data.evaluators, repeats=repeats, is_live=False, + default_evaluator_origin="human", ) if not run_data or not run_data.steps: return None @@ -3409,7 +3812,7 @@ async def create( is_live=False, is_active=True, is_closed=False, - is_queue=True, + is_queue=False, ), tags=queue.tags, meta=queue.meta, @@ -3534,40 +3937,39 @@ async def query( run_ids_filter = list(dict.fromkeys(requested_run_ids)) + eligible_runs = await self.evaluations_service.query_runs( + project_id=project_id, + run=EvaluationRunQuery( + flags=EvaluationRunQueryFlags(is_queue=True), + ), + ) + eligible_run_ids = [run.id for run in eligible_runs if run and run.id] if query and query.kind is not None: - run_query = EvaluationRunQuery( - flags=EvaluationRunQueryFlags( - is_queue=True, - has_queries=query.kind == SimpleQueueKind.TRACES, - has_testsets=query.kind == SimpleQueueKind.TESTCASES, - ), - ) - runs = await self.evaluations_service.query_runs( - project_id=project_id, - run=run_query, - ) + eligible_run_ids = [ + run.id + for run in eligible_runs + if run and run.id and self._get_kind(run) == query.kind + ] + if not eligible_run_ids: + return [] - kind_run_ids = [run.id for run in runs if run and run.id] - if not kind_run_ids: + eligible_run_ids_set = set(eligible_run_ids) + if run_ids_filter is None: + run_ids_filter = eligible_run_ids + else: + run_ids_filter = [ + run_id for run_id in run_ids_filter if run_id in eligible_run_ids_set + ] + if not run_ids_filter: return [] - kind_run_ids_set = set(kind_run_ids) - if run_ids_filter is None: - run_ids_filter = kind_run_ids - else: - run_ids_filter = [ - run_id for run_id in run_ids_filter if run_id in kind_run_ids_set - ] - if not run_ids_filter: - return [] - queues = await self.evaluations_service.query_queues( project_id=project_id, queue=EvaluationQueueQuery( name=query.name if query else None, description=query.description if query else None, # - flags=EvaluationQueueQueryFlags(), + flags=EvaluationQueueQueryFlags(is_default=True), tags=query.tags if query else None, meta=query.meta if query else None, # @@ -3631,7 +4033,7 @@ async def add_traces( if self._get_kind(run) != SimpleQueueKind.TRACES: return None - ok = await self.simple_evaluations_service.evaluate_batch_traces( + ok = await self.simple_evaluations_service.dispatch_trace_slice( project_id=project_id, user_id=user_id, # @@ -3671,7 +4073,7 @@ async def add_testcases( if self._get_kind(run) != SimpleQueueKind.TESTCASES: return None - ok = await self.simple_evaluations_service.evaluate_batch_testcases( + ok = await self.simple_evaluations_service.dispatch_testcase_slice( project_id=project_id, user_id=user_id, # @@ -3799,63 +4201,33 @@ async def _dispatch_source_batches( if not run.id or not run.data or not run.data.steps: return False - dispatched = False - for step in run.data.steps: - if step.type != "input" or not step.key: - continue - - refs = step.references or {} - query_revision_ref = refs.get("query_revision") - testset_revision_ref = refs.get("testset_revision") - - if query_revision_ref and query_revision_ref.id: - query_revision = await self.simple_evaluations_service.queries_service.fetch_query_revision( - project_id=project_id, - query_revision_ref=query_revision_ref, - include_trace_ids=True, - ) - trace_ids = ( - query_revision.data.trace_ids - if query_revision - and query_revision.data - and query_revision.data.trace_ids - else [] - ) - if not trace_ids: - continue + batches = await resolve_queue_source_batches( + project_id=project_id, + run=run, + queries_service=self.simple_evaluations_service.queries_service, + testsets_service=self.simple_evaluations_service.testsets_service, + ) - ok = await self.simple_evaluations_service.evaluate_batch_traces( + dispatched = False + for batch in batches: + if batch.kind == "traces" and batch.trace_ids: + ok = await self.simple_evaluations_service.dispatch_trace_slice( project_id=project_id, user_id=user_id, run_id=run.id, - trace_ids=trace_ids, - input_step_key=step.key, + trace_ids=batch.trace_ids, + input_step_key=batch.step_key, ) dispatched = dispatched or ok continue - if testset_revision_ref and testset_revision_ref.id: - testset_revision = await self.simple_evaluations_service.testsets_service.fetch_testset_revision( - project_id=project_id, - testset_revision_ref=testset_revision_ref, - include_testcase_ids=True, - ) - testcase_ids = ( - testset_revision.data.testcase_ids - if testset_revision - and testset_revision.data - and testset_revision.data.testcase_ids - else [] - ) - if not testcase_ids: - continue - - ok = await self.simple_evaluations_service.evaluate_batch_testcases( + if batch.kind == "testcases" and batch.testcase_ids: + ok = await self.simple_evaluations_service.dispatch_testcase_slice( project_id=project_id, user_id=user_id, run_id=run.id, - testcase_ids=testcase_ids, - input_step_key=step.key, + testcase_ids=batch.testcase_ids, + input_step_key=batch.step_key, ) dispatched = dispatched or ok @@ -3882,9 +4254,7 @@ async def _make_run_data( annotation_mappings: List[EvaluationRunDataMapping] = [] annotation_step_keys: List[str] = [] - source_step_key = ( - "query-direct" if kind == SimpleQueueKind.TRACES else "testset-direct" - ) + source_step_key = "traces" if kind == SimpleQueueKind.TRACES else "testcases" source_step = EvaluationRunDataStep( key=source_step_key, type="input", @@ -4003,21 +4373,22 @@ def _get_kind(self, run: EvaluationRun) -> Optional[SimpleQueueKind]: if not run.flags or not run.flags.is_queue: return None - if run.flags.has_queries and not run.flags.has_testsets: - return SimpleQueueKind.TRACES - - if run.flags.has_testsets and not run.flags.has_queries: - return SimpleQueueKind.TESTCASES - - return None + families = [ + (run.flags.has_queries, SimpleQueueKind.QUERIES), + (run.flags.has_testsets, SimpleQueueKind.TESTSETS), + (run.flags.has_traces, SimpleQueueKind.TRACES), + (run.flags.has_testcases, SimpleQueueKind.TESTCASES), + ] + enabled = [kind for enabled, kind in families if enabled] + return enabled[0] if len(enabled) == 1 else None @staticmethod def _get_source_kind(*, queue_data: SimpleQueueData) -> Optional[SimpleQueueKind]: if queue_data.queries: - return SimpleQueueKind.TRACES + return SimpleQueueKind.QUERIES if queue_data.testsets: - return SimpleQueueKind.TESTCASES + return SimpleQueueKind.TESTSETS return None diff --git a/api/oss/src/core/evaluations/tasks/batch.py b/api/oss/src/core/evaluations/tasks/batch.py deleted file mode 100644 index 1416010344..0000000000 --- a/api/oss/src/core/evaluations/tasks/batch.py +++ /dev/null @@ -1,148 +0,0 @@ -from uuid import UUID - -from oss.src.utils.logging import get_module_logger -from oss.src.utils.common import is_ee - -if is_ee(): - pass - -from oss.src.dbs.postgres.queries.dbes import ( - QueryArtifactDBE, - QueryVariantDBE, - QueryRevisionDBE, -) -from oss.src.dbs.postgres.testcases.dbes import ( - TestcaseBlobDBE, -) -from oss.src.dbs.postgres.testsets.dbes import ( - TestsetArtifactDBE, - TestsetVariantDBE, - TestsetRevisionDBE, -) -from oss.src.dbs.postgres.workflows.dbes import ( - WorkflowArtifactDBE, - WorkflowVariantDBE, - WorkflowRevisionDBE, -) - -from oss.src.dbs.postgres.tracing.dao import TracingDAO -from oss.src.dbs.postgres.blobs.dao import BlobsDAO -from oss.src.dbs.postgres.git.dao import GitDAO -from oss.src.dbs.postgres.evaluations.dao import EvaluationsDAO - -from oss.src.core.tracing.service import TracingService -from oss.src.core.queries.service import QueriesService -from oss.src.core.testcases.service import TestcasesService -from oss.src.core.testsets.service import TestsetsService -from oss.src.core.testsets.service import SimpleTestsetsService -from oss.src.core.workflows.service import WorkflowsService -from oss.src.core.evaluators.service import EvaluatorsService -from oss.src.core.evaluators.service import SimpleEvaluatorsService -from oss.src.core.evaluations.service import EvaluationsService -from oss.src.core.annotations.service import AnnotationsService - - -log = get_module_logger(__name__) - - -# DBS -------------------------------------------------------------------------- - -tracing_dao = TracingDAO() - -testcases_dao = BlobsDAO( - BlobDBE=TestcaseBlobDBE, -) - -queries_dao = GitDAO( - ArtifactDBE=QueryArtifactDBE, - VariantDBE=QueryVariantDBE, - RevisionDBE=QueryRevisionDBE, -) - -testsets_dao = GitDAO( - ArtifactDBE=TestsetArtifactDBE, - VariantDBE=TestsetVariantDBE, - RevisionDBE=TestsetRevisionDBE, -) - -workflows_dao = GitDAO( - ArtifactDBE=WorkflowArtifactDBE, - VariantDBE=WorkflowVariantDBE, - RevisionDBE=WorkflowRevisionDBE, -) - -evaluations_dao = EvaluationsDAO() - -# CORE ------------------------------------------------------------------------- - -tracing_service = TracingService( - tracing_dao=tracing_dao, -) - -queries_service = QueriesService( - queries_dao=queries_dao, -) - -testcases_service = TestcasesService( - testcases_dao=testcases_dao, -) - -testsets_service = TestsetsService( - testsets_dao=testsets_dao, - testcases_service=testcases_service, -) - -simple_testsets_service = SimpleTestsetsService( - testsets_service=testsets_service, -) - -workflows_service = WorkflowsService( - workflows_dao=workflows_dao, -) - -evaluators_service = EvaluatorsService( - workflows_service=workflows_service, -) - -simple_evaluators_service = SimpleEvaluatorsService( - evaluators_service=evaluators_service, -) - -evaluations_service = EvaluationsService( - evaluations_dao=evaluations_dao, - tracing_service=tracing_service, - queries_service=queries_service, - testsets_service=testsets_service, - evaluators_service=evaluators_service, - # -) - -annotations_service = AnnotationsService( - tracing_service=tracing_service, - evaluators_service=evaluators_service, - simple_evaluators_service=simple_evaluators_service, -) - -# ------------------------------------------------------------------------------ - - -def evaluate_testsets( - self, - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, -): - pass - - -def evaluate_queries( - self, - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, -): - pass diff --git a/api/oss/src/core/evaluations/tasks/legacy.py b/api/oss/src/core/evaluations/tasks/legacy.py deleted file mode 100644 index cdc4128428..0000000000 --- a/api/oss/src/core/evaluations/tasks/legacy.py +++ /dev/null @@ -1,2225 +0,0 @@ -from typing import Dict, List, Optional, Any - -from uuid import UUID -from json import dumps - -from fastapi import Request - -from oss.src.utils.logging import get_module_logger -from oss.src.services import llm_apps_service -from oss.src.models.shared_models import InvokationResult - -from oss.src.core.queries.service import QueriesService -from oss.src.core.testcases.service import TestcasesService -from oss.src.core.testsets.service import TestsetsService -from oss.src.core.applications.service import ApplicationsService -from oss.src.core.workflows.service import WorkflowsService -from oss.src.core.evaluators.service import SimpleEvaluatorsService -from oss.src.core.evaluations.service import EvaluationsService - -from oss.src.core.tracing.service import TracingService - - -from oss.src.core.evaluations.types import ( - EvaluationStatus, - EvaluationRun, - EvaluationRunEdit, - EvaluationScenarioCreate, - EvaluationScenarioEdit, - EvaluationResultCreate, - EvaluationMetricsRefresh, -) - -from oss.src.core.shared.dtos import Reference -from oss.src.core.workflows.dtos import ( - WorkflowServiceRequestData, - WorkflowServiceRequest, -) - - -from oss.src.core.evaluations.utils import ( - build_repeat_indices, - effective_is_split, - fetch_traces_by_hash, - fetch_trace, - make_hash, - plan_missing_traces, - required_traces_for_step, - select_traces_for_reuse, -) - - -log = get_module_logger(__name__) - - -def _resolve_runtime_uri( - *, - revision_data: Optional[Any], -) -> Optional[str]: - if revision_data is None: - return None - - return WorkflowsService._get_service_url(revision_data=revision_data) - - -def _extract_root_span(trace: Optional[Any]) -> Optional[Any]: - if not trace: - # log.debug("[TRACE] [ROOT]", reason="missing-trace") - return None - - spans = getattr(trace, "spans", None) - - if not isinstance(spans, dict): - # log.debug( - # "[TRACE] [ROOT]", - # trace_id=str(getattr(trace, "trace_id", None)) - # if getattr(trace, "trace_id", None) - # else None, - # reason="spans-not-dict", - # spans_type=type(spans).__name__ if spans is not None else None, - # ) - return None - - if not spans: - # log.debug( - # "[TRACE] [ROOT]", - # trace_id=str(getattr(trace, "trace_id", None)) - # if getattr(trace, "trace_id", None) - # else None, - # reason="spans-empty", - # ) - return None - - root_span = list(spans.values())[0] - if isinstance(root_span, list): - # log.debug( - # "[TRACE] [ROOT]", - # trace_id=str(getattr(trace, "trace_id", None)) - # if getattr(trace, "trace_id", None) - # else None, - # reason="first-span-is-list", - # span_keys=list(spans.keys()), - # first_list_len=len(root_span), - # ) - return None - - # log.debug( - # "[TRACE] [ROOT]", - # trace_id=str(getattr(trace, "trace_id", None)) - # if getattr(trace, "trace_id", None) - # else None, - # reason="resolved", - # span_keys=list(spans.keys()), - # root_span_id=str(getattr(root_span, "span_id", None)) - # if getattr(root_span, "span_id", None) - # else None, - # ) - return root_span - - -def _build_trace_context( - *, - trace: Optional[Any], - error: Optional[Dict[str, Any]] = None, -) -> Optional[Dict[str, Any]]: - root_span = _extract_root_span(trace) - trace_id = getattr(trace, "trace_id", None) if trace else None - - if not root_span or not trace_id: - # log.debug( - # "[TRACE] [CONTEXT]", - # trace_id=str(trace_id) if trace_id else None, - # has_root_span=bool(root_span), - # has_error=bool(error), - # error=error, - # ) - return None - - # log.debug( - # "[TRACE] [CONTEXT]", - # trace_id=str(trace_id), - # span_id=str(getattr(root_span, "span_id", None)) - # if getattr(root_span, "span_id", None) - # else None, - # has_error=bool(error), - # ) - return { - "trace": trace, - "trace_id": str(trace_id), - "span_id": getattr(root_span, "span_id", None), - "root_span": root_span, - "error": error, - } - - -async def _resolve_testset_input_specs( - *, - project_id: UUID, - input_steps: List[Any], - testsets_service: TestsetsService, -) -> List[Dict[str, Any]]: - input_specs: List[Dict[str, Any]] = [] - - for input_step in input_steps: - input_refs = input_step.references or {} - testset_revision_ref = input_refs.get("testset_revision") - - if not testset_revision_ref or not isinstance(testset_revision_ref.id, UUID): - raise ValueError( - f"Evaluation input step {input_step.key} missing testset_revision reference." - ) - - testset_revision = await testsets_service.fetch_testset_revision( - project_id=project_id, - testset_revision_ref=testset_revision_ref, - ) - if not testset_revision: - raise ValueError( - f"Testset revision with id {testset_revision_ref.id} not found!" - ) - if not testset_revision.data or not testset_revision.data.testcases: - raise ValueError( - f"Testset revision with id {testset_revision_ref.id} has no testcases!" - ) - - testset_variant = await testsets_service.fetch_testset_variant( - project_id=project_id, - testset_variant_ref=Reference(id=testset_revision.variant_id), - ) - if not testset_variant: - raise ValueError( - f"Testset variant with id {testset_revision.variant_id} not found!" - ) - - testset = await testsets_service.fetch_testset( - project_id=project_id, - testset_ref=Reference(id=testset_variant.testset_id), - ) - if not testset: - raise ValueError(f"Testset with id {testset_variant.testset_id} not found!") - - testcases = testset_revision.data.testcases - input_specs.append( - { - "step_key": input_step.key, - "testset": testset, - "testset_revision": testset_revision, - "testcases": testcases, - "testcases_data": [ - {**testcase.data, "id": str(testcase.id)} for testcase in testcases - ], - } - ) - - return input_specs - - -async def evaluate_batch_testset( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - # - tracing_service: TracingService, - testsets_service: TestsetsService, - queries_service: QueriesService, - workflows_service: WorkflowsService, - applications_service: ApplicationsService, - evaluations_service: EvaluationsService, - # - simple_evaluators_service: SimpleEvaluatorsService, -): - """ - Annotates an application revision applied to a testset using auto evaluator(s). - - All testset, application, and evaluator information is extracted from the - evaluation run's data.steps references. - - Args: - project_id (UUID): The ID of the project. - user_id (UUID): The ID of the user. - run_id (UUID): The ID of the evaluation run. - - Returns: - None - """ - request = Request( - scope={ - "type": "http", - "http_version": "1.1", - "scheme": "http", - } - ) - request.state.project_id = str(project_id) - request.state.user_id = str(user_id) - - run = None - - try: - # ---------------------------------------------------------------------- - log.info( - "[SCOPE] ", run_id=run_id, project_id=project_id, user_id=user_id - ) - # ---------------------------------------------------------------------- - - # fetch run ------------------------------------------------------------ - run = await evaluations_service.fetch_run( - project_id=project_id, - # - run_id=run_id, - ) - - if not run: - raise ValueError(f"Evaluation run with id {run_id} not found!") - - if not run.data: - raise ValueError(f"Evaluation run with id {run_id} has no data!") - - if not run.data.steps: - raise ValueError(f"Evaluation run with id {run_id} has no steps!") - - steps = run.data.steps - repeats = run.data.repeats or 1 - repeat_indices = build_repeat_indices(repeats) - is_cached = bool(run.flags.is_cached) if run.flags else False - - input_steps = [step for step in steps if step.type == "input"] - invocation_steps = [step for step in steps if step.type == "invocation"] - annotation_steps = [step for step in steps if step.type == "annotation"] - - log.info( - "[STEPS] ", - run_id=run_id, - count=len(steps), - input_keys=[step.key for step in input_steps], - invocation_keys=[step.key for step in invocation_steps], - annotation_keys=[step.key for step in annotation_steps], - step_types=[getattr(step, "type", None) for step in steps], - ) - - if not input_steps or len(invocation_steps) != 1: - raise ValueError( - f"Evaluation run with id {run_id} must have at least one input and exactly one invocation step." - ) - - invocation_step = invocation_steps[0] - invocation_step_key = invocation_step.key - is_split = effective_is_split( - is_split=bool(run.flags.is_split) if run.flags else False, - has_application_steps=True, - has_evaluator_steps=bool(annotation_steps), - ) - application_required_count = required_traces_for_step( - repeats=repeats, - is_split=is_split, - step_kind="application", - has_evaluator_steps=bool(annotation_steps), - ) - evaluator_required_count = required_traces_for_step( - repeats=repeats, - is_split=is_split, - step_kind="evaluator", - has_evaluator_steps=bool(annotation_steps), - ) - - application_revision_ref = invocation_step.references.get( - "application_revision" - ) - if not application_revision_ref or not isinstance( - application_revision_ref.id, UUID - ): - raise ValueError( - f"Evaluation run with id {run_id} missing invocation.application_revision reference." - ) - - run_config = { - "batch_size": 10, - "max_retries": 3, - "retry_delay": 3, - "delay_between_batches": 5, - } - - input_specs = await _resolve_testset_input_specs( - project_id=project_id, - input_steps=input_steps, - testsets_service=testsets_service, - ) - testset_revision_ids = [ - str(input_spec["testset_revision"].id) for input_spec in input_specs - ] - - log.info("[TESTSET] ", run_id=run_id, ids=testset_revision_ids) - log.info( - "[APPLICATION] ", - run_id=run_id, - ids=[str(application_revision_ref.id)], - ) - # ---------------------------------------------------------------------- - - # flatten scenario sources --------------------------------------------- - scenario_specs = [ - { - "input_step_key": input_spec["step_key"], - "testset": input_spec["testset"], - "testset_revision": input_spec["testset_revision"], - "testcase": testcase, - "testcase_data": testcase_data, - } - for input_spec in input_specs - for testcase, testcase_data in zip( - input_spec["testcases"], - input_spec["testcases_data"], - ) - ] - nof_scenarios = len(scenario_specs) - # ---------------------------------------------------------------------- - - # fetch application ---------------------------------------------------- - application_revision = await applications_service.fetch_application_revision( - project_id=project_id, - application_revision_ref=application_revision_ref, - ) - - if application_revision is None: - raise ValueError( - f"App revision with id {application_revision_ref.id} not found!" - ) - - application_variant = await applications_service.fetch_application_variant( - project_id=project_id, - application_variant_ref=Reference( - id=application_revision.application_variant_id - ), - ) - - if application_variant is None: - raise ValueError( - f"Application variant with id {application_revision.application_variant_id} not found!" - ) - - application = await applications_service.fetch_application( - project_id=project_id, - application_ref=Reference(id=application_variant.application_id), - ) - - if application is None: - raise ValueError( - f"Application with id {application_variant.application_id} not found!" - ) - - uri = _resolve_runtime_uri(revision_data=application_revision.data) - - if not uri: - raise ValueError( - f"No deployment URI found for revision {application_revision_ref.id}!" - ) - - # fetch evaluators ----------------------------------------------------- - evaluator_references = {step.key: step.references for step in annotation_steps} - # log.debug( - # "[EVALUATORS] ", - # run_id=run_id, - # count=len(annotation_steps), - # refs={ - # step_key: ( - # { - # key: str(reference.id) - # if getattr(reference, "id", None) - # else None - # for key, reference in (references or {}).items() - # } - # ) - # for step_key, references in evaluator_references.items() - # }, - # ) - - evaluators = {} - for evaluator_key, evaluator_refs in evaluator_references.items(): - evaluators[evaluator_key] = await workflows_service.fetch_workflow_revision( - project_id=project_id, - # - workflow_revision_ref=evaluator_refs.get("evaluator_revision"), - ) - # log.debug( - # "[EVALUATORS] [FETCH]", - # run_id=run_id, - # resolved={ - # evaluator_key: ( - # str(evaluator_revision.id) - # if evaluator_revision and evaluator_revision.id - # else None - # ) - # for evaluator_key, evaluator_revision in evaluators.items() - # }, - # ) - # ---------------------------------------------------------------------- - - # create scenarios ----------------------------------------------------- - scenarios_create = [ - EvaluationScenarioCreate( - run_id=run_id, - # - status=EvaluationStatus.RUNNING, - ) - for _ in range(nof_scenarios) - ] - - scenarios = await evaluations_service.create_scenarios( - project_id=project_id, - user_id=user_id, - # - scenarios=scenarios_create, - ) - - if len(scenarios) != nof_scenarios: - raise ValueError(f"Failed to create evaluation scenarios for run {run_id}!") - # ---------------------------------------------------------------------- - - # create input steps --------------------------------------------------- - results_create = [ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=scenario_specs[idx]["input_step_key"], - repeat_idx=repeat_idx, - # - status=EvaluationStatus.SUCCESS, - # - testcase_id=scenario_specs[idx]["testcase"].id, - ) - for idx, scenario in enumerate(scenarios) - for repeat_idx in repeat_indices - ] - - steps = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - # - results=results_create, - ) - - if len(steps) != nof_scenarios * len(repeat_indices): - raise ValueError(f"Failed to create evaluation steps for run {run_id}!") - # ---------------------------------------------------------------------- - - # flatten testcases ---------------------------------------------------- - _testcases = [ - scenario_spec["testcase"].model_dump(mode="json") - for scenario_spec in scenario_specs - ] - - log.info( - "[BATCH] ", - run_id=run_id, - ids=testset_revision_ids, - count=len(_testcases), - size=len(dumps(_testcases).encode("utf-8")), - ) - # ---------------------------------------------------------------------- - - run_has_errors = 0 - run_has_pending = False - run_status = EvaluationStatus.SUCCESS - - # run invocations / evaluators ----------------------------------------- - for idx in range(nof_scenarios): - scenario = scenarios[idx] - scenario_spec = scenario_specs[idx] - testcase = scenario_spec["testcase"] - testcase_data = scenario_spec["testcase_data"] - testset = scenario_spec["testset"] - testset_revision = scenario_spec["testset_revision"] - - scenario_has_errors = 0 - scenario_has_pending = False - scenario_status = EvaluationStatus.SUCCESS - application_references = { - "testcase": {"id": str(testcase.id)}, - "testset": {"id": str(testset.id)}, - "testset_variant": {"id": str(testset_revision.variant_id)}, - "testset_revision": {"id": str(testset_revision.id)}, - "application": {"id": str(application.id)}, - "application_variant": {"id": str(application_variant.id)}, - "application_revision": {"id": str(application_revision.id)}, - } - - application_hash_id = make_hash( - references=application_references, - links=None, - ) - cached_application_traces = [] - if is_cached and application_hash_id: - cached_application_traces = await fetch_traces_by_hash( - tracing_service, - project_id, - hash_id=application_hash_id, - limit=application_required_count, - ) - - cached_application_contexts = [] - for reusable_trace in select_traces_for_reuse( - traces=cached_application_traces, - required_count=application_required_count, - ): - reusable_context = _build_trace_context(trace=reusable_trace) - if reusable_context: - cached_application_contexts.append(reusable_context) - - missing_application_count = plan_missing_traces( - required_count=application_required_count, - reusable_count=len(cached_application_contexts), - ) - - invoked_application_contexts = [] - if missing_application_count > 0: - invocations: List[ - InvokationResult - ] = await llm_apps_service.batch_invoke( - project_id=str(project_id), - user_id=str(user_id), - testset_data=[ - testcase_data for _ in range(missing_application_count) - ], # type: ignore[arg-type] - revision=application_revision, - uri=uri, - rate_limit_config=run_config, - application_id=str(application.id), - references=application_references, - scenarios=[ - scenario.model_dump( - mode="json", - exclude_none=True, - ) - for _ in range(missing_application_count) - ], - ) - - if len(invocations) != missing_application_count: - raise ValueError( - f"Unexpected batch invocation count for scenario {scenario.id}!" - ) - - for invocation in invocations: - invocation_error = ( - invocation.result.error.model_dump(mode="json") - if invocation.result and invocation.result.error - else None - ) - invoked_trace = None - if not invocation_error and invocation.trace_id: - invoked_trace = await fetch_trace( - tracing_service=tracing_service, - project_id=project_id, - trace_id=invocation.trace_id, - ) - - invocation_context = ( - _build_trace_context( - trace=invoked_trace, - error=invocation_error, - ) - if invoked_trace - else None - ) - if invocation_context: - invoked_application_contexts.append(invocation_context) - else: - invoked_application_contexts.append( - { - "trace": invoked_trace, - "trace_id": invocation.trace_id, - "span_id": invocation.span_id, - "root_span": None, - "error": invocation_error - or { - "message": "Invocation trace missing or malformed." - }, - } - ) - - application_contexts = ( - cached_application_contexts + invoked_application_contexts - ) - application_context_by_repeat: Dict[int, Dict[str, Any]] = {} - if is_split: - for repeat_idx, context in zip(repeat_indices, application_contexts): - application_context_by_repeat[repeat_idx] = context - else: - shared_context = ( - application_contexts[0] if application_contexts else None - ) - if shared_context: - for repeat_idx in repeat_indices: - application_context_by_repeat[repeat_idx] = shared_context - - invocation_results_create = [] - scenario_invocation_failed = False - for repeat_idx in repeat_indices: - application_context = application_context_by_repeat.get(repeat_idx) - application_error = ( - application_context.get("error") - if application_context - else {"message": "Invocation trace missing."} - ) - has_invocation_error = not ( - application_context - and application_context.get("trace_id") - and application_context.get("root_span") - and not application_error - ) - if has_invocation_error: - scenario_invocation_failed = True - - invocation_results_create.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=invocation_step_key, - repeat_idx=repeat_idx, - status=( - EvaluationStatus.FAILURE - if has_invocation_error - else EvaluationStatus.SUCCESS - ), - trace_id=( - application_context.get("trace_id") - if application_context - else None - ), - error=application_error if has_invocation_error else None, - ) - ) - - created_invocation_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=invocation_results_create, - ) - if len(created_invocation_results) != len(repeat_indices): - raise ValueError( - f"Failed to create invocation results for scenario {scenario.id}!" - ) - - if scenario_invocation_failed: - scenario_has_errors += 1 - - for annotation_step in annotation_steps: - annotation_step_key = annotation_step.key - - if annotation_step.origin in {"human", "custom"}: - # log.debug( - # "[EVALUATOR] [SKIP]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # origin=annotation_step.origin, - # reason="non-auto-origin", - # ) - scenario_has_pending = True - run_has_pending = True - continue - - evaluator_revision = evaluators.get(annotation_step_key) - if not evaluator_revision: - # log.warning( - # "[EVALUATOR] [MISSING]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # references={ - # key: str(reference.id) - # if getattr(reference, "id", None) - # else None - # for key, reference in ( - # evaluator_references.get(annotation_step_key, {}) or {} - # ).items() - # }, - # ) - log.error( - f"Evaluator revision for {annotation_step_key} not found!" - ) - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - continue - - _revision = evaluator_revision.model_dump( - mode="json", - exclude_none=True, - ) - interface = ( - dict( - uri=evaluator_revision.data.uri, - url=evaluator_revision.data.url, - headers=evaluator_revision.data.headers, - schemas=evaluator_revision.data.schemas, - ) - if evaluator_revision.data - else dict() - ) - configuration = ( - dict( - script=evaluator_revision.data.script, - parameters=evaluator_revision.data.parameters, - ) - if evaluator_revision.data - else dict() - ) - parameters = configuration.get("parameters") - flags = ( - evaluator_revision.flags.model_dump( - mode="json", - exclude_none=True, - exclude_unset=True, - ) - if evaluator_revision.flags - else None - ) - - base_references: Dict[str, Any] = { - **evaluator_references[annotation_step_key], - "testcase": {"id": str(testcase.id)}, - "testset": {"id": str(testset.id)}, - "testset_variant": {"id": str(testset_revision.variant_id)}, - "testset_revision": {"id": str(testset_revision.id)}, - } - - evaluator_results_create = [] - if not is_split: - shared_application_context = application_context_by_repeat.get( - repeat_indices[0] - ) - # log.debug( - # "[EVALUATOR] [PLAN]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # repeats=repeat_indices, - # is_split=is_split, - # has_shared_application_context=bool(shared_application_context), - # has_shared_root_span=bool( - # shared_application_context - # and shared_application_context.get("root_span") - # ), - # ) - if ( - not shared_application_context - or not shared_application_context.get("root_span") - ): - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - evaluator_results_create = [ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.FAILURE, - error={ - "message": "Evaluator skipped because invocation trace is missing." - }, - ) - for repeat_idx in repeat_indices - ] - else: - shared_trace = shared_application_context["trace"] - shared_root_span = shared_application_context["root_span"] - shared_links = { - invocation_step_key: { - "trace_id": shared_application_context["trace_id"], - "span_id": shared_application_context["span_id"], - } - } - workflow_service_request_data = WorkflowServiceRequestData( - revision=_revision, - parameters=parameters, - testcase=testcase.model_dump(mode="json"), - inputs=testcase.data, - trace=shared_trace.model_dump( - mode="json", - exclude_none=True, - ) - if shared_trace - else None, - outputs=( - ( - shared_root_span.model_dump( - mode="json", - exclude_none=True, - ) - .get("attributes", {}) - .get("ag", {}) - .get("data", {}) - ).get("outputs") - if shared_root_span - else None - ), - ) - workflow_service_request = WorkflowServiceRequest( - version="2025.07.14", - flags=flags, - interface=interface, - configuration=configuration, - data=workflow_service_request_data, - references=base_references, - links=shared_links, - ) - evaluator_hash_id = make_hash( - references=base_references, - links=shared_links, - ) - cached_evaluator_traces = [] - if is_cached and evaluator_hash_id: - cached_evaluator_traces = await fetch_traces_by_hash( - tracing_service, - project_id, - hash_id=evaluator_hash_id, - limit=evaluator_required_count, - ) - - reusable_evaluator_traces = select_traces_for_reuse( - traces=cached_evaluator_traces, - required_count=evaluator_required_count, - ) - evaluator_results_create.extend( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - trace_id=str(reusable_trace.trace_id), - ) - for repeat_idx, reusable_trace in zip( - repeat_indices, - reusable_evaluator_traces, - ) - if reusable_trace and reusable_trace.trace_id - ) - - for repeat_idx in repeat_indices[ - len(reusable_evaluator_traces) : - ]: - # log.debug( - # "[EVALUATOR] [INVOKE]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # repeat_idx=repeat_idx, - # cached_reuse_count=len(reusable_evaluator_traces), - # trace_links=shared_links, - # ) - workflows_service_response = ( - await workflows_service.invoke_workflow( - project_id=project_id, - user_id=user_id, - request=workflow_service_request, - annotate=True, - ) - ) - has_error = workflows_service_response.status.code != 200 - result_trace_id = workflows_service_response.trace_id - result_error = None - result_status = EvaluationStatus.SUCCESS - - if has_error: - result_status = EvaluationStatus.FAILURE - result_error = ( - workflows_service_response.status.model_dump( - mode="json", - exclude_none=True, - ) - ) - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - elif result_trace_id: - fetched_evaluator_trace = await fetch_trace( - tracing_service=tracing_service, - project_id=project_id, - trace_id=result_trace_id, - ) - if not fetched_evaluator_trace: - result_status = EvaluationStatus.FAILURE - result_error = { - "message": "Evaluator trace missing after invocation." - } - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - else: - result_status = EvaluationStatus.FAILURE - result_error = { - "message": "Evaluator trace_id is missing." - } - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - - evaluator_results_create.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=result_status, - trace_id=result_trace_id, - error=result_error, - ) - ) - else: - for repeat_idx in repeat_indices: - application_context = application_context_by_repeat.get( - repeat_idx - ) - # log.debug( - # "[EVALUATOR] [PLAN]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # repeat_idx=repeat_idx, - # is_split=is_split, - # has_application_context=bool(application_context), - # has_root_span=bool( - # application_context - # and application_context.get("root_span") - # ), - # ) - if not application_context or not application_context.get( - "root_span" - ): - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - evaluator_results_create.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.FAILURE, - error={ - "message": "Evaluator skipped because invocation trace is missing." - }, - ) - ) - continue - - application_trace = application_context["trace"] - application_root_span = application_context["root_span"] - application_root_span_data = ( - application_root_span.model_dump( - mode="json", - exclude_none=True, - ) - .get("attributes", {}) - .get("ag", {}) - .get("data", {}) - ) - links = { - invocation_step_key: { - "trace_id": application_context["trace_id"], - "span_id": application_context["span_id"], - } - } - workflow_service_request = WorkflowServiceRequest( - version="2025.07.14", - flags=flags, - interface=interface, - configuration=configuration, - data=WorkflowServiceRequestData( - revision=_revision, - parameters=parameters, - testcase=testcase.model_dump(mode="json"), - inputs=testcase.data, - trace=application_trace.model_dump( - mode="json", - exclude_none=True, - ) - if application_trace - else None, - outputs=application_root_span_data.get("outputs"), - ), - references=base_references, - links=links, - ) - evaluator_hash_id = make_hash( - references=base_references, - links=links, - ) - cached_evaluator_trace = None - if is_cached and evaluator_hash_id: - cached_matches = await fetch_traces_by_hash( - tracing_service, - project_id, - hash_id=evaluator_hash_id, - limit=1, - ) - reusable_match = select_traces_for_reuse( - traces=cached_matches, - required_count=1, - ) - if reusable_match: - cached_evaluator_trace = reusable_match[0] - - if cached_evaluator_trace and cached_evaluator_trace.trace_id: - evaluator_results_create.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - trace_id=str(cached_evaluator_trace.trace_id), - ) - ) - continue - - # log.debug( - # "[EVALUATOR] [INVOKE]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # repeat_idx=repeat_idx, - # trace_links=links, - # ) - workflows_service_response = ( - await workflows_service.invoke_workflow( - project_id=project_id, - user_id=user_id, - request=workflow_service_request, - annotate=True, - ) - ) - - result_trace_id = workflows_service_response.trace_id - result_error = None - result_status = EvaluationStatus.SUCCESS - has_error = workflows_service_response.status.code != 200 - if has_error: - result_status = EvaluationStatus.FAILURE - result_error = workflows_service_response.status.model_dump( - mode="json", - exclude_none=True, - ) - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - elif result_trace_id: - fetched_evaluator_trace = await fetch_trace( - tracing_service=tracing_service, - project_id=project_id, - trace_id=result_trace_id, - ) - if not fetched_evaluator_trace: - result_status = EvaluationStatus.FAILURE - result_error = { - "message": "Evaluator trace missing after invocation." - } - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - else: - result_status = EvaluationStatus.FAILURE - result_error = {"message": "Evaluator trace_id is missing."} - scenario_has_errors += 1 - scenario_status = EvaluationStatus.ERRORS - - evaluator_results_create.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=result_status, - trace_id=result_trace_id, - error=result_error, - ) - ) - - created_annotation_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=evaluator_results_create, - ) - # log.debug( - # "[EVALUATOR] [RESULTS]", - # run_id=run_id, - # scenario_id=scenario.id, - # step_key=annotation_step_key, - # created=len(created_annotation_results), - # expected=len(repeat_indices), - # ) - - if len(created_annotation_results) != len(repeat_indices): - raise ValueError( - f"Failed to create evaluation results for scenario with id {scenario.id}!" - ) - - final_scenario_status = ( - EvaluationStatus.PENDING - if scenario_status == EvaluationStatus.SUCCESS and scenario_has_pending - else scenario_status - ) - - if final_scenario_status == EvaluationStatus.ERRORS: - run_has_errors += 1 - - scenario_edit = EvaluationScenarioEdit( - id=scenario.id, - tags=scenario.tags, - meta=scenario.meta, - status=final_scenario_status, - ) - - scenario = await evaluations_service.edit_scenario( - project_id=project_id, - user_id=user_id, - # - scenario=scenario_edit, - ) - - if not scenario: - raise ValueError( - f"Failed to edit evaluation scenario with id {scenario.id}!" - ) - - if scenario_status != EvaluationStatus.FAILURE: - try: - metrics = await evaluations_service.refresh_metrics( - project_id=project_id, - user_id=user_id, - # - metrics=EvaluationMetricsRefresh( - run_id=run_id, - scenario_id=scenario.id, - ), - ) - - if not metrics: - log.warning( - f"Refreshing metrics failed for {run_id} | {scenario.id}" - ) - - except Exception: - log.warning( - f"Refreshing metrics failed for {run_id} | {scenario.id}", - exc_info=True, - ) - # ---------------------------------------------------------------------- - - if run_status != EvaluationStatus.FAILURE: - if run_has_errors: - run_status = EvaluationStatus.ERRORS - elif run_has_pending: - run_status = EvaluationStatus.RUNNING - else: - run_status = EvaluationStatus.SUCCESS - - except Exception as e: # pylint: disable=broad-exception-caught - log.error( - f"An error occurred during evaluation: {e}", - exc_info=True, - ) - - run_status = EvaluationStatus.FAILURE - - if not run: - log.info("[FAIL] ", run_id=run_id, project_id=project_id, user_id=user_id) - return - - if run_status != EvaluationStatus.FAILURE: - try: - metrics = await evaluations_service.refresh_metrics( - project_id=project_id, - user_id=user_id, - # - metrics=EvaluationMetricsRefresh( - run_id=run_id, - ), - ) - - if not metrics: - log.warning(f"Refreshing metrics failed for {run_id}") - - run_status = EvaluationStatus.FAILURE - - except Exception: # pylint: disable=broad-exception-caught - log.warning(f"Refreshing metrics failed for {run_id}", exc_info=True) - - run_status = EvaluationStatus.FAILURE - - # edit evaluation run status ----------------------------------------------- - run_edit = EvaluationRunEdit( - id=run_id, - # - name=run.name, - description=run.description, - # - tags=run.tags, - meta=run.meta, - # - status=run_status, - flags=run.flags, - # - data=run.data, - ) - - await evaluations_service.edit_run( - project_id=project_id, - user_id=user_id, - # - run=run_edit, - ) - - log.info("[DONE] ", run_id=run_id, project_id=project_id, user_id=user_id) - - return - - -async def evaluate_batch_invocation( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - # - tracing_service: TracingService, - testsets_service: TestsetsService, - applications_service: ApplicationsService, - evaluations_service: EvaluationsService, -): - """ - Run batch invocation over a testset without evaluator steps. - - This loop creates scenarios and input/invocation results, but does not - invoke evaluator workflows and does not refresh evaluation metrics. - """ - run = None - run_status = EvaluationStatus.SUCCESS - - try: - # ---------------------------------------------------------------------- - log.info( - "[SCOPE] ", run_id=run_id, project_id=project_id, user_id=user_id - ) - # ---------------------------------------------------------------------- - - # fetch run ------------------------------------------------------------ - run = await evaluations_service.fetch_run( - project_id=project_id, - run_id=run_id, - ) - - if not run: - raise ValueError(f"Evaluation run with id {run_id} not found!") - if not run.data or not run.data.steps: - raise ValueError(f"Evaluation run with id {run_id} has no steps!") - repeats = run.data.repeats or 1 - repeat_indices = build_repeat_indices(repeats) - is_cached = bool(run.flags.is_cached) if run.flags else False - application_required_count = required_traces_for_step( - repeats=repeats, - is_split=False, - step_kind="application", - has_evaluator_steps=False, - ) - - steps = run.data.steps - input_steps = [step for step in steps if step.type == "input"] - invocation_steps = [step for step in steps if step.type == "invocation"] - annotation_steps = [step for step in steps if step.type == "annotation"] - - if annotation_steps: - raise ValueError( - f"Evaluation run with id {run_id} contains annotation steps; " - "use evaluate_batch_testset instead." - ) - if not input_steps or len(invocation_steps) != 1: - raise ValueError( - f"Evaluation run with id {run_id} must have at least one input and exactly one invocation step." - ) - - invocation_step_key = invocation_steps[0].key - invocation_refs = invocation_steps[0].references or {} - - application_revision_ref = invocation_refs.get("application_revision") - if not application_revision_ref or not isinstance( - application_revision_ref.id, UUID - ): - raise ValueError( - f"Evaluation run with id {run_id} missing invocation.application_revision reference." - ) - # ---------------------------------------------------------------------- - - input_specs = await _resolve_testset_input_specs( - project_id=project_id, - input_steps=input_steps, - testsets_service=testsets_service, - ) - scenario_specs = [ - { - "input_step_key": input_spec["step_key"], - "testset": input_spec["testset"], - "testset_revision": input_spec["testset_revision"], - "testcase": testcase, - "testcase_data": testcase_data, - } - for input_spec in input_specs - for testcase, testcase_data in zip( - input_spec["testcases"], - input_spec["testcases_data"], - ) - ] - nof_scenarios = len(scenario_specs) - # ---------------------------------------------------------------------- - - # fetch application ---------------------------------------------------- - application_revision = await applications_service.fetch_application_revision( - project_id=project_id, - application_revision_ref=application_revision_ref, - ) - if not application_revision: - raise ValueError( - f"Application revision with id {application_revision_ref.id} not found!" - ) - - application_variant = await applications_service.fetch_application_variant( - project_id=project_id, - application_variant_ref=Reference( - id=application_revision.application_variant_id - ), - ) - if not application_variant: - raise ValueError( - f"Application variant with id {application_revision.application_variant_id} not found!" - ) - - application = await applications_service.fetch_application( - project_id=project_id, - application_ref=Reference(id=application_variant.application_id), - ) - if not application: - raise ValueError( - f"Application with id {application_variant.application_id} not found!" - ) - - uri = _resolve_runtime_uri(revision_data=application_revision.data) - if not uri: - raise ValueError( - f"No deployment URI found for revision {application_revision_ref.id}!" - ) - - # create scenarios ----------------------------------------------------- - scenarios = await evaluations_service.create_scenarios( - project_id=project_id, - user_id=user_id, - scenarios=[ - EvaluationScenarioCreate( - run_id=run_id, - status=EvaluationStatus.RUNNING, - ) - for _ in range(nof_scenarios) - ], - ) - if len(scenarios) != nof_scenarios: - raise ValueError(f"Failed to create evaluation scenarios for run {run_id}!") - # ---------------------------------------------------------------------- - - # create input results ------------------------------------------------- - input_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=[ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=scenario_specs[idx]["input_step_key"], - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - testcase_id=scenario_specs[idx]["testcase"].id, - ) - for idx, scenario in enumerate(scenarios) - for repeat_idx in repeat_indices - ], - ) - if len(input_results) != nof_scenarios * len(repeat_indices): - raise ValueError(f"Failed to create input results for run {run_id}!") - # ---------------------------------------------------------------------- - - # resolve cache / invoke application ----------------------------------- - run_config = { - "batch_size": 10, - "max_retries": 3, - "retry_delay": 3, - "delay_between_batches": 5, - } - scenario_invocations: Dict[tuple[int, int], Dict[str, Any]] = {} - for idx, scenario in enumerate(scenarios): - scenario_spec = scenario_specs[idx] - testcase = scenario_spec["testcase"] - testcase_data = scenario_spec["testcase_data"] - testset = scenario_spec["testset"] - testset_revision = scenario_spec["testset_revision"] - references = { - "testcase": {"id": str(testcase.id)}, - "testset": {"id": str(testset.id)}, - "testset_variant": {"id": str(testset_revision.variant_id)}, - "testset_revision": {"id": str(testset_revision.id)}, - "application": {"id": str(application.id)}, - "application_variant": {"id": str(application_variant.id)}, - "application_revision": {"id": str(application_revision.id)}, - } - hash_id = make_hash(references=references, links=None) - cached_traces = [] - if is_cached and hash_id: - cached_traces = await fetch_traces_by_hash( - tracing_service, - project_id, - hash_id=hash_id, - limit=application_required_count, - ) - reusable_traces = select_traces_for_reuse( - traces=cached_traces, - required_count=application_required_count, - ) - for repeat_idx, reusable_trace in zip(repeat_indices, reusable_traces): - scenario_invocations[(idx, repeat_idx)] = { - "status": EvaluationStatus.SUCCESS, - "trace_id": ( - str(reusable_trace.trace_id) - if reusable_trace and reusable_trace.trace_id - else None - ), - "error": None, - } - - missing_repeat_indices = repeat_indices[len(reusable_traces) :] - if missing_repeat_indices: - invocations = await llm_apps_service.batch_invoke( - project_id=str(project_id), - user_id=str(user_id), - testset_data=[ - testcase_data for _ in range(len(missing_repeat_indices)) - ], # type: ignore[arg-type] - revision=application_revision, - uri=uri, - rate_limit_config=run_config, - application_id=str(application.id), - references=references, - scenarios=[ - scenario.model_dump( - mode="json", - exclude_none=True, - ) - for _ in range(len(missing_repeat_indices)) - ], - ) - if len(invocations) != len(missing_repeat_indices): - raise ValueError( - f"Unexpected batch invocation count for scenario {scenario.id}!" - ) - for repeat_idx, invocation in zip(missing_repeat_indices, invocations): - invocation_error = ( - invocation.result.error.model_dump(mode="json") - if invocation.result and invocation.result.error - else None - ) - scenario_invocations[(idx, repeat_idx)] = { - "status": ( - EvaluationStatus.FAILURE - if invocation_error - else EvaluationStatus.SUCCESS - ), - "trace_id": invocation.trace_id, - "error": invocation_error, - } - # ---------------------------------------------------------------------- - - # create invocation results + finalize scenarios ------------------------ - run_has_errors = 0 - invocation_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=[ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=invocation_step_key, - repeat_idx=repeat_idx, - status=( - scenario_invocations.get((idx, repeat_idx), {}).get("status") - or EvaluationStatus.FAILURE - ), - trace_id=scenario_invocations.get((idx, repeat_idx), {}).get( - "trace_id" - ), - error=scenario_invocations.get((idx, repeat_idx), {}).get("error"), - ) - for idx, scenario in enumerate(scenarios) - for repeat_idx in repeat_indices - ], - ) - if len(invocation_results) != nof_scenarios * len(repeat_indices): - raise ValueError(f"Failed to create invocation results for run {run_id}!") - - for idx, scenario in enumerate(scenarios): - scenario_status = ( - EvaluationStatus.SUCCESS - if all( - scenario_invocations.get((idx, repeat_idx), {}).get("status") - == EvaluationStatus.SUCCESS - for repeat_idx in repeat_indices - ) - else EvaluationStatus.ERRORS - ) - if not all( - scenario_invocations.get((idx, repeat_idx), {}).get("status") - == EvaluationStatus.SUCCESS - for repeat_idx in repeat_indices - ): - run_has_errors += 1 - - edited_scenario = await evaluations_service.edit_scenario( - project_id=project_id, - user_id=user_id, - scenario=EvaluationScenarioEdit( - id=scenario.id, - tags=scenario.tags, - meta=scenario.meta, - status=scenario_status, - ), - ) - if not edited_scenario: - raise ValueError( - f"Failed to edit evaluation scenario with id {scenario.id}!" - ) - - if run_has_errors: - run_status = EvaluationStatus.ERRORS - # ---------------------------------------------------------------------- - - except Exception as e: # pylint: disable=broad-exception-caught - log.error( - f"An error occurred during batch invocation: {e}", - exc_info=True, - ) - run_status = EvaluationStatus.FAILURE - - if not run: - log.info("[FAIL] ", run_id=run_id, project_id=project_id, user_id=user_id) - return - - await evaluations_service.edit_run( - project_id=project_id, - user_id=user_id, - run=EvaluationRunEdit( - id=run_id, - name=run.name, - description=run.description, - tags=run.tags, - meta=run.meta, - status=run_status, - flags=run.flags, - data=run.data, - ), - ) - - log.info("[DONE] ", run_id=run_id, project_id=project_id, user_id=user_id) - return - - -async def _evaluate_batch_items( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - # - testcase_ids: Optional[List[UUID]] = None, - trace_ids: Optional[List[str]] = None, - input_step_key: Optional[str] = None, - # - tracing_service: Optional[TracingService] = None, - testcases_service: Optional[TestcasesService] = None, - workflows_service: WorkflowsService, - evaluations_service: EvaluationsService, -): - request = Request( - scope={ - "type": "http", - "http_version": "1.1", - "scheme": "http", - } - ) - request.state.project_id = str(project_id) - request.state.user_id = str(user_id) - - run: Optional[EvaluationRun] = None - scenarios = [] - run_status = EvaluationStatus.SUCCESS - - try: - run = await evaluations_service.fetch_run( - project_id=project_id, - run_id=run_id, - ) - if not run: - raise ValueError(f"Evaluation run with id {run_id} not found!") - if not run.flags or not run.flags.is_queue: - raise ValueError( - f"Evaluation run with id {run_id} is not configured for ad-hoc batching!" - ) - if not run.data or not run.data.steps: - raise ValueError(f"Evaluation run with id {run_id} has no data steps!") - repeats = run.data.repeats or 1 - repeat_indices = build_repeat_indices(repeats) - is_cached = bool(run.flags.is_cached) - - testcase_ids = testcase_ids or [] - trace_ids = trace_ids or [] - if not testcase_ids and not trace_ids: - raise ValueError( - f"Evaluation run with id {run_id} has no testcase_ids or trace_ids!" - ) - if trace_ids and tracing_service is None: - raise ValueError("tracing_service is required for trace batches") - if testcase_ids and testcases_service is None: - raise ValueError("testcases_service is required for testcase batches") - - steps = run.data.steps - input_steps = [step for step in steps if step.type == "input"] - invocation_steps = [step for step in steps if step.type == "invocation"] - annotation_steps = [step for step in steps if step.type == "annotation"] - - if input_step_key is not None: - matching_input_step = next( - (step for step in input_steps if step.key == input_step_key), - None, - ) - if matching_input_step is None: - raise ValueError( - f"Evaluation run with id {run_id} has no input step '{input_step_key}'!" - ) - else: - input_step_key = input_steps[0].key if input_steps else None - invocation_step_key = invocation_steps[0].key if invocation_steps else None - evaluator_references = { - step.key: step.references or {} for step in annotation_steps - } - evaluator_revisions: Dict[str, Any] = {} - for annotation_step_key, annotation_refs in evaluator_references.items(): - evaluator_revision_ref = annotation_refs.get("evaluator_revision") - evaluator_revisions[annotation_step_key] = ( - await workflows_service.fetch_workflow_revision( - project_id=project_id, - workflow_revision_ref=evaluator_revision_ref, - ) - if evaluator_revision_ref - else None - ) - - testcases = ( - await testcases_service.fetch_testcases( - project_id=project_id, - testcase_ids=testcase_ids, - ) - if testcase_ids - else [] - ) - testcases_by_id = { - testcase.id: testcase for testcase in testcases if testcase.id - } - - scenario_items = [] - for testcase_id in testcase_ids: - testcase = testcases_by_id.get(testcase_id) - scenario_items.append( - dict( - kind="testcase", - testcase=testcase, - testcase_id=testcase_id, - trace_id=None, - ) - ) - for trace_id in trace_ids: - scenario_items.append( - dict( - kind="trace", - testcase=None, - testcase_id=None, - trace_id=trace_id, - ) - ) - - scenarios = await evaluations_service.create_scenarios( - project_id=project_id, - user_id=user_id, - scenarios=[ - EvaluationScenarioCreate( - run_id=run_id, - status=EvaluationStatus.RUNNING, - ) - for _ in scenario_items - ], - ) - if len(scenarios) != len(scenario_items): - raise ValueError(f"Failed to create scenarios for run {run_id}") - - run_has_errors = False - run_has_pending = False - - for idx, scenario in enumerate(scenarios): - scenario_status = EvaluationStatus.SUCCESS - scenario_has_pending = False - scenario_item = scenario_items[idx] - - source_testcase = scenario_item["testcase"] - source_testcase_id = scenario_item["testcase_id"] - source_trace_id = scenario_item["trace_id"] - - _trace = None - inputs = None - outputs = None - query_span_id = None - - if source_testcase_id and source_testcase is None: - run_has_errors = True - scenario_status = EvaluationStatus.ERRORS - await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=[ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=step.key, - repeat_idx=repeat_idx, - status=EvaluationStatus.ERRORS, - testcase_id=source_testcase_id, - error={ - "message": f"Testcase {source_testcase_id} not found." - }, - ) - for step in annotation_steps - for repeat_idx in repeat_indices - ], - ) - - if source_testcase_id and source_testcase and input_step_key: - input_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=[ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=input_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - testcase_id=source_testcase_id, - ) - for repeat_idx in repeat_indices - ], - ) - if len(input_results) != len(repeat_indices): - raise ValueError( - f"Failed to create input result for scenario {scenario.id}" - ) - - if source_testcase and source_testcase.data: - inputs = source_testcase.data - - if source_trace_id: - trace = await fetch_trace( - project_id=project_id, - trace_id=source_trace_id, - tracing_service=tracing_service, - ) - if not trace or not isinstance(trace.spans, dict): - scenario_status = EvaluationStatus.ERRORS - run_has_errors = True - else: - root_span = list(trace.spans.values())[0] - if isinstance(root_span, list): - scenario_status = EvaluationStatus.ERRORS - run_has_errors = True - else: - query_span_id = root_span.span_id - _trace = trace.model_dump(mode="json", exclude_none=True) - _root_span = root_span.model_dump( - mode="json", exclude_none=True - ) - - root_span_attributes: dict = _root_span.get("attributes") or {} - root_span_ag: dict = root_span_attributes.get("ag") or {} - root_span_ag_data: dict = root_span_ag.get("data") or {} - outputs = root_span_ag_data.get("outputs") - if not inputs: - inputs = root_span_ag_data.get("inputs") - - if ( - source_trace_id - and input_step_key - and scenario_status == EvaluationStatus.SUCCESS - ): - input_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=[ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=input_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - trace_id=source_trace_id, - ) - for repeat_idx in repeat_indices - ], - ) - if len(input_results) != len(repeat_indices): - raise ValueError( - f"Failed to create trace input result for scenario {scenario.id}" - ) - - if ( - source_trace_id - and invocation_step_key - and scenario_status == EvaluationStatus.SUCCESS - ): - invocation_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=[ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=invocation_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - trace_id=source_trace_id, - ) - for repeat_idx in repeat_indices - ], - ) - if len(invocation_results) != len(repeat_indices): - raise ValueError( - f"Failed to create invocation result for scenario {scenario.id}" - ) - - if scenario_status == EvaluationStatus.SUCCESS: - for annotation_step in annotation_steps: - annotation_step_key = annotation_step.key - if annotation_step.origin in {"human", "custom"}: - scenario_has_pending = True - run_has_pending = True - # Human/custom steps are not auto-invoked here. - # Results are created later by the annotator via the annotation submission flow. - continue - - evaluator_revision = evaluator_revisions.get(annotation_step_key) - if not evaluator_revision: - run_has_errors = True - scenario_status = EvaluationStatus.ERRORS - continue - - _revision = evaluator_revision.model_dump( - mode="json", - exclude_none=True, - ) - interface = ( - dict( - uri=evaluator_revision.data.uri, - url=evaluator_revision.data.url, - headers=evaluator_revision.data.headers, - schemas=evaluator_revision.data.schemas, - ) - if evaluator_revision.data - else dict() - ) - configuration = ( - dict( - script=evaluator_revision.data.script, - parameters=evaluator_revision.data.parameters, - ) - if evaluator_revision.data - else dict() - ) - parameters = configuration.get("parameters") - flags = ( - evaluator_revision.flags.model_dump( - mode="json", - exclude_none=True, - exclude_unset=True, - ) - if evaluator_revision.flags - else None - ) - - links: Dict[str, Any] = {} - source_step_key = invocation_step_key or input_step_key - if source_step_key and source_trace_id and query_span_id: - links[source_step_key] = dict( - trace_id=source_trace_id, - span_id=query_span_id, - ) - - workflow_service_request = WorkflowServiceRequest( - version="2025.07.14", - flags=flags, - interface=interface, - configuration=configuration, - data=WorkflowServiceRequestData( - revision=_revision, - parameters=parameters, - testcase=( - source_testcase.model_dump( - mode="json", exclude_none=True - ) - if source_testcase - else None - ), - inputs=inputs, - trace=_trace, - outputs=outputs, - ), - references=evaluator_references.get(annotation_step_key, {}), - links=links, - ) - hash_references: Dict[str, Any] = { - **(evaluator_references.get(annotation_step_key, {}) or {}) - } - if source_testcase_id: - hash_references["testcase"] = {"id": str(source_testcase_id)} - - hash_id = make_hash( - references=hash_references, - links=links, - ) - cached_traces = [] - if is_cached and hash_id and tracing_service is not None: - cached_traces = await fetch_traces_by_hash( - tracing_service, - project_id, - hash_id=hash_id, - limit=len(repeat_indices), - ) - - reusable_traces = select_traces_for_reuse( - traces=cached_traces, - required_count=len(repeat_indices), - ) - _ = plan_missing_traces( - required_count=len(repeat_indices), - reusable_count=len(reusable_traces), - ) - - results_payload = [ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=EvaluationStatus.SUCCESS, - testcase_id=source_testcase_id, - trace_id=str(reusable_trace.trace_id), - ) - for repeat_idx, reusable_trace in zip( - repeat_indices, - reusable_traces, - ) - if reusable_trace and reusable_trace.trace_id - ] - - for repeat_idx in repeat_indices[len(reusable_traces) :]: - workflows_service_response = ( - await workflows_service.invoke_workflow( - project_id=project_id, - user_id=user_id, - request=workflow_service_request, - annotate=True, - ) - ) - - has_error = workflows_service_response.status.code != 200 - result_trace_id = workflows_service_response.trace_id - result_error = None - result_status = EvaluationStatus.SUCCESS - if has_error: - result_status = EvaluationStatus.FAILURE - result_error = workflows_service_response.status.model_dump( - mode="json", - exclude_none=True, - ) - scenario_status = EvaluationStatus.ERRORS - run_has_errors = True - - results_payload.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario.id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - status=result_status, - testcase_id=source_testcase_id, - trace_id=result_trace_id, - error=result_error, - ) - ) - - step_results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - results=results_payload, - ) - if len(step_results) != len(repeat_indices): - raise ValueError( - f"Failed to create annotation results for scenario {scenario.id}" - ) - - final_scenario_status = ( - EvaluationStatus.PENDING - if scenario_status == EvaluationStatus.SUCCESS and scenario_has_pending - else scenario_status - ) - await evaluations_service.edit_scenario( - project_id=project_id, - user_id=user_id, - scenario=EvaluationScenarioEdit( - id=scenario.id, - tags=scenario.tags, - meta=scenario.meta, - status=final_scenario_status, - ), - ) - - try: - await evaluations_service.refresh_metrics( - project_id=project_id, - user_id=user_id, - metrics=EvaluationMetricsRefresh( - run_id=run_id, - scenario_id=scenario.id, - ), - ) - except Exception: # pylint: disable=broad-exception-caught - log.warning( - f"Refreshing metrics failed for {run_id} | {scenario.id}", - exc_info=True, - ) - - if run_has_errors: - run_status = EvaluationStatus.ERRORS - elif run_has_pending: - run_status = EvaluationStatus.RUNNING - else: - run_status = EvaluationStatus.SUCCESS - - except Exception as e: # pylint: disable=broad-exception-caught - log.error( - f"An error occurred during batch items evaluation: {e}", - exc_info=True, - ) - run_status = EvaluationStatus.FAILURE - - if not run: - return - - # For ad-hoc/queue runs (multiple independent batches writing to the same run), - # re-fetch the current stored status and never downgrade it to a less severe state. - # This prevents a later successful batch from overwriting ERRORS from an earlier one. - if run.flags and run.flags.is_queue and run_status != EvaluationStatus.FAILURE: - _severity = { - EvaluationStatus.FAILURE: 4, - EvaluationStatus.ERRORS: 3, - EvaluationStatus.RUNNING: 2, - EvaluationStatus.SUCCESS: 1, - EvaluationStatus.PENDING: 0, - } - current_run = await evaluations_service.fetch_run( - project_id=project_id, - run_id=run_id, - ) - if current_run and current_run.status: - stored_severity = _severity.get(current_run.status, 0) - if stored_severity > _severity.get(run_status, 0): - run_status = current_run.status - - try: - if run_status != EvaluationStatus.FAILURE: - await evaluations_service.refresh_metrics( - project_id=project_id, - user_id=user_id, - metrics=EvaluationMetricsRefresh(run_id=run_id), - ) - except Exception: # pylint: disable=broad-exception-caught - log.warning(f"Refreshing metrics failed for {run_id}", exc_info=True) - run_status = EvaluationStatus.FAILURE - - await evaluations_service.edit_run( - project_id=project_id, - user_id=user_id, - run=EvaluationRunEdit( - id=run_id, - name=run.name, - description=run.description, - tags=run.tags, - meta=run.meta, - status=run_status, - flags=run.flags, - data=run.data, - ), - ) - - log.info("[DONE] ", run_id=run_id, project_id=project_id, user_id=user_id) - - return - - -async def evaluate_batch_traces( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - trace_ids: List[str], - input_step_key: Optional[str] = None, - # - tracing_service: TracingService, - workflows_service: WorkflowsService, - evaluations_service: EvaluationsService, -): - return await _evaluate_batch_items( - project_id=project_id, - user_id=user_id, - run_id=run_id, - # - trace_ids=trace_ids, - input_step_key=input_step_key, - tracing_service=tracing_service, - workflows_service=workflows_service, - evaluations_service=evaluations_service, - ) - - -async def evaluate_batch_testcases( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - testcase_ids: List[UUID], - input_step_key: Optional[str] = None, - # - tracing_service: TracingService, - testcases_service: TestcasesService, - workflows_service: WorkflowsService, - evaluations_service: EvaluationsService, -): - return await _evaluate_batch_items( - project_id=project_id, - user_id=user_id, - run_id=run_id, - # - testcase_ids=testcase_ids, - input_step_key=input_step_key, - tracing_service=tracing_service, - testcases_service=testcases_service, - workflows_service=workflows_service, - evaluations_service=evaluations_service, - ) diff --git a/api/oss/src/core/evaluations/tasks/live.py b/api/oss/src/core/evaluations/tasks/live.py deleted file mode 100644 index 7aa19e1f4e..0000000000 --- a/api/oss/src/core/evaluations/tasks/live.py +++ /dev/null @@ -1,859 +0,0 @@ -from typing import Dict, Any, Optional -from uuid import UUID -from datetime import datetime, timezone - -from oss.src.utils.logging import get_module_logger - -from oss.src.dbs.postgres.queries.dbes import ( - QueryArtifactDBE, - QueryVariantDBE, - QueryRevisionDBE, -) -from oss.src.dbs.postgres.testcases.dbes import ( - TestcaseBlobDBE, -) -from oss.src.dbs.postgres.testsets.dbes import ( - TestsetArtifactDBE, - TestsetVariantDBE, - TestsetRevisionDBE, -) -from oss.src.dbs.postgres.workflows.dbes import ( - WorkflowArtifactDBE, - WorkflowVariantDBE, - WorkflowRevisionDBE, -) - -from oss.src.dbs.postgres.tracing.dao import TracingDAO -from oss.src.dbs.postgres.blobs.dao import BlobsDAO -from oss.src.dbs.postgres.git.dao import GitDAO -from oss.src.dbs.postgres.evaluations.dao import EvaluationsDAO - -from oss.src.core.tracing.service import TracingService -from oss.src.core.queries.service import QueriesService -from oss.src.core.testcases.service import TestcasesService -from oss.src.core.testsets.service import TestsetsService -from oss.src.core.testsets.service import SimpleTestsetsService -from oss.src.core.workflows.service import WorkflowsService -from oss.src.core.evaluators.service import EvaluatorsService -from oss.src.core.evaluators.service import SimpleEvaluatorsService -from oss.src.core.evaluations.service import EvaluationsService -from oss.src.core.annotations.service import AnnotationsService - - -from oss.src.core.evaluations.types import ( - EvaluationMetricsRefresh, - EvaluationStatus, - EvaluationScenarioCreate, - EvaluationScenarioEdit, - EvaluationResultCreate, -) -from oss.src.core.shared.dtos import ( - Reference, - Traces, -) -from oss.src.core.tracing.dtos import ( - Filtering, - Windowing, - Formatting, - Format, - Focus, - TracingQuery, - LogicalOperator, -) -from oss.src.core.workflows.dtos import ( - WorkflowServiceRequestData, - WorkflowServiceRequest, -) -from oss.src.core.queries.dtos import ( - QueryRevisionData, - QueryRevision, -) -from oss.src.core.evaluators.dtos import ( - EvaluatorRevisionData, - EvaluatorRevision, -) - -from oss.src.core.evaluations.utils import ( - build_repeat_indices, - fetch_trace, - fetch_traces_by_hash, - make_hash, - select_traces_for_reuse, -) - - -log = get_module_logger(__name__) - - -# DBS -------------------------------------------------------------------------- - -tracing_dao = TracingDAO() - -testcases_dao = BlobsDAO( - BlobDBE=TestcaseBlobDBE, -) - -queries_dao = GitDAO( - ArtifactDBE=QueryArtifactDBE, - VariantDBE=QueryVariantDBE, - RevisionDBE=QueryRevisionDBE, -) - -testsets_dao = GitDAO( - ArtifactDBE=TestsetArtifactDBE, - VariantDBE=TestsetVariantDBE, - RevisionDBE=TestsetRevisionDBE, -) - -workflows_dao = GitDAO( - ArtifactDBE=WorkflowArtifactDBE, - VariantDBE=WorkflowVariantDBE, - RevisionDBE=WorkflowRevisionDBE, -) - -evaluations_dao = EvaluationsDAO() - -# CORE ------------------------------------------------------------------------- - -tracing_service = TracingService( - tracing_dao=tracing_dao, -) - -queries_service = QueriesService( - queries_dao=queries_dao, -) - -testcases_service = TestcasesService( - testcases_dao=testcases_dao, -) - -testsets_service = TestsetsService( - testsets_dao=testsets_dao, - testcases_service=testcases_service, -) - -simple_testsets_service = SimpleTestsetsService( - testsets_service=testsets_service, -) - -workflows_service = WorkflowsService( - workflows_dao=workflows_dao, -) - -evaluators_service = EvaluatorsService( - workflows_service=workflows_service, -) - -simple_evaluators_service = SimpleEvaluatorsService( - evaluators_service=evaluators_service, -) - -evaluations_service = EvaluationsService( - evaluations_dao=evaluations_dao, - tracing_service=tracing_service, - queries_service=queries_service, - testsets_service=testsets_service, - evaluators_service=evaluators_service, - # -) - -# APIS ------------------------------------------------------------------------- - -annotations_service = AnnotationsService( - tracing_service=tracing_service, - evaluators_service=evaluators_service, - simple_evaluators_service=simple_evaluators_service, -) - -# ------------------------------------------------------------------------------ - - -async def evaluate_live_query( - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - # - newest: Optional[datetime] = None, - oldest: Optional[datetime] = None, - # - use_windowing: bool = False, -): - # count in minutes - timestamp = oldest or datetime.now(timezone.utc) - interval: Optional[int] = None - if newest and oldest: - interval = int((newest - oldest).total_seconds() / 60) - - try: - # ---------------------------------------------------------------------- - log.info( - "[SCOPE] ", - run_id=run_id, - project_id=project_id, - user_id=user_id, - ) - - log.info( - "[RANGE] ", - run_id=run_id, - timestamp=timestamp, - interval=interval, - newest=newest, - oldest=oldest, - use_windowing=use_windowing, - ) - # ---------------------------------------------------------------------- - - # fetch evaluation run ------------------------------------------------- - run = await evaluations_service.fetch_run( - project_id=project_id, - run_id=run_id, - ) - - if not run: - raise ValueError(f"Evaluation run with id {run_id} not found!") - - if not run.data: - raise ValueError(f"Evaluation run with id {run_id} has no data!") - - if not run.data.steps: - raise ValueError(f"Evaluation run with id {run_id} has no steps!") - - steps = run.data.steps - repeats = run.data.repeats or 1 - repeat_indices = build_repeat_indices(repeats) - is_cached = bool(getattr(run.flags, "is_cached", False)) - - input_steps = { - step.key: step - for step in steps - if step.type == "input" # -------- - } - invocation_steps = { - step.key: step for step in steps if step.type == "invocation" - } - annotation_steps = { - step.key: step for step in steps if step.type == "annotation" - } - - input_steps_keys = list(input_steps.keys()) - invocation_steps_keys = list(invocation_steps.keys()) # noqa: F841 - annotation_steps_keys = list(annotation_steps.keys()) - - nof_annotations = len(annotation_steps_keys) - # ---------------------------------------------------------------------- - - # initialize query variables ------------------------------------------- - query_revision_refs: Dict[str, Reference] = dict() - # - query_revisions: Dict[str, QueryRevision] = dict() - query_references: Dict[str, Dict[str, Reference]] = dict() - # - query_traces: Dict[str, Traces] = dict() - # ---------------------------------------------------------------------- - - # initialize evaluator variables --------------------------------------- - evaluator_revision_refs: Dict[str, Reference] = dict() - # - evaluator_revisions: Dict[str, EvaluatorRevision] = dict() - evaluator_references: Dict[str, Dict[str, Reference]] = dict() - # ---------------------------------------------------------------------- - - # get query steps references ------------------------------------------- - for input_step_key in input_steps_keys: - query_refs = input_steps[input_step_key].references - query_revision_ref = query_refs.get("query_revision") - - if query_revision_ref: - query_revision_refs[input_step_key] = query_revision_ref - - # ---------------------------------------------------------------------- - - # get evaluator steps references --------------------------------------- - for annotation_step_key in annotation_steps_keys: - evaluator_refs = annotation_steps[annotation_step_key].references - evaluator_revision_ref = evaluator_refs.get("evaluator_revision") - - if evaluator_revision_ref: - evaluator_revision_refs[annotation_step_key] = evaluator_revision_ref - # ---------------------------------------------------------------------- - - # fetch query revisions ------------------------------------------------ - for ( - query_step_key, - query_revision_ref, - ) in query_revision_refs.items(): - query_revision = await queries_service.fetch_query_revision( - project_id=project_id, - # - query_revision_ref=query_revision_ref, - ) - - if query_revision and not query_revision.data: - query_revision.data = QueryRevisionData() - - if ( - not query_revision - or not query_revision.id - or not query_revision.slug - or not query_revision.data - ): - log.warn( - f"Query revision with ref {query_revision_ref.model_dump(mode='json')} not found!" - ) - continue - - query_step = input_steps[query_step_key] - - query_revisions[query_step_key] = query_revision - query_references[query_step_key] = query_step.references - # ---------------------------------------------------------------------- - - # fetch evaluator revisions -------------------------------------------- - for ( - evaluator_step_key, - evaluator_revision_ref, - ) in evaluator_revision_refs.items(): - evaluator_revision = await evaluators_service.fetch_evaluator_revision( - project_id=project_id, - # - evaluator_revision_ref=evaluator_revision_ref, - ) - - if evaluator_revision and not evaluator_revision.data: - evaluator_revision.data = EvaluatorRevisionData() - - if ( - not evaluator_revision - or not evaluator_revision.id - or not evaluator_revision.slug - or not evaluator_revision.data - ): - log.warn( - f"Evaluator revision with ref {evaluator_revision_ref.model_dump(mode='json')} not found!" - ) - continue - - evaluator_step = annotation_steps[evaluator_step_key] - - evaluator_revisions[evaluator_step_key] = evaluator_revision - evaluator_references[evaluator_step_key] = evaluator_step.references - # ---------------------------------------------------------------------- - - # run query revisions -------------------------------------------------- - for query_step_key, query_revision in query_revisions.items(): - formatting = Formatting( - focus=Focus.TRACE, - format=Format.AGENTA, - ) - filtering = Filtering( - operator=LogicalOperator.AND, - conditions=list(), - ) - windowing = Windowing( - oldest=oldest, - newest=newest, - next=None, - limit=None, - order="ascending", - interval=None, - rate=None, - ) - - if query_revision.data: - if query_revision.data.filtering: - filtering = query_revision.data.filtering - - if query_revision.data.windowing: - query_windowing = query_revision.data.windowing - - if use_windowing: - windowing = Windowing( - oldest=query_windowing.oldest, - newest=query_windowing.newest, - limit=query_windowing.limit, - order=query_windowing.order, - rate=query_windowing.rate, - # next= - # interval= - ) - else: - windowing.rate = query_windowing.rate - - query = TracingQuery( - formatting=formatting, - filtering=filtering, - windowing=windowing, - ) - - query_traces_result = await tracing_service.query_traces( - project_id=project_id, - query=TracingQuery( - formatting=query.formatting, - filtering=query.filtering, - windowing=query.windowing, - ), - ) - - nof_traces = len(query_traces_result) - - log.info( - "[TRACES] ", - run_id=run_id, - count=nof_traces, - ) - - query_traces[query_step_key] = query_traces_result or [] - # ---------------------------------------------------------------------- - - total_traces = sum(len(traces) for traces in query_traces.values()) - if total_traces == 0: - return - - # run online evaluation ------------------------------------------------ - any_results_created = False - for query_step_key in query_traces.keys(): - query_step_traces = [ - trace - for trace in query_traces[query_step_key] - if trace and trace.trace_id - ] - if not query_step_traces: - continue - - # create scenarios ------------------------------------------------- - - nof_traces = len(query_step_traces) - - scenarios_create = [ - EvaluationScenarioCreate( - run_id=run_id, - timestamp=timestamp, - interval=interval, - # - status=EvaluationStatus.RUNNING, - ) - for _ in range(nof_traces) - ] - - scenarios = await evaluations_service.create_scenarios( - project_id=project_id, - user_id=user_id, - # - scenarios=scenarios_create, - ) - - if len(scenarios) != nof_traces: - log.error( - "[LIVE] Could not create evaluation scenarios", - run_id=run_id, - ) - continue - # ------------------------------------------------------------------ - - # create query steps ----------------------------------------------- - query_trace_ids = [ - trace.trace_id for trace in query_step_traces if trace.trace_id - ] - scenario_ids = [scenario.id for scenario in scenarios if scenario.id] - - results_create = [ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario_id, - step_key=query_step_key, - repeat_idx=repeat_idx, - timestamp=timestamp, - interval=interval, - # - status=EvaluationStatus.SUCCESS, - # - trace_id=query_trace_id, - ) - for scenario_id, query_trace_id in zip(scenario_ids, query_trace_ids) - for repeat_idx in repeat_indices - ] - - results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - # - results=results_create, - ) - - if len(results) != nof_traces * len(repeat_indices): - raise ValueError( - f"Failed to create evaluation results for run {run_id}!" - ) - # ------------------------------------------------------------------ - - scenario_has_errors: Dict[int, int] = dict() - scenario_status: Dict[int, EvaluationStatus] = dict() - scenario_has_pending: Dict[int, bool] = dict() - - # iterate over query traces ---------------------------------------- - for idx, trace in enumerate(query_step_traces): - scenario_results_created = False - scenario_has_errors[idx] = 0 - scenario_status[idx] = EvaluationStatus.SUCCESS - scenario_has_pending[idx] = False - - scenario = scenarios[idx] - scenario_id = scenario_ids[idx] - query_trace_id = query_trace_ids[idx] - - if not isinstance(trace.spans, dict): - log.warn( - f"Trace with id {query_trace_id} has no root spans", - run_id=run_id, - ) - scenario_has_errors[idx] += 1 - scenario_status[idx] = EvaluationStatus.ERRORS - continue - - root_span = list(trace.spans.values())[0] - - if isinstance(root_span, list): - log.warn( - f"More than one root span for trace with id {query_trace_id}", - run_id=run_id, - ) - scenario_has_errors[idx] += 1 - scenario_status[idx] = EvaluationStatus.ERRORS - continue - - query_span_id = root_span.span_id - - log.info( - "[TRACE] ", - run_id=run_id, - trace_id=query_trace_id, - ) - - # run evaluator revisions -------------------------------------- - for jdx in range(nof_annotations): - annotation_step_key = annotation_steps_keys[jdx] - annotation_step = annotation_steps[annotation_step_key] - - if annotation_step.origin in {"human", "custom"}: - scenario_has_pending[idx] = True - continue - - step_status = EvaluationStatus.SUCCESS - - references: Dict[str, Any] = { - **evaluator_references[annotation_step_key], - } - links: Dict[str, Any] = { - query_step_key: dict( - trace_id=query_trace_id, - span_id=query_span_id, - ) - } - - # invoke annotation workflow ------------------------------- - evaluator_revision = evaluator_revisions[annotation_step_key] - - if not evaluator_revision: - log.error( - f"Evaluator revision for {annotation_step_key} not found!" - ) - scenario_has_errors[idx] += 1 - # run_has_errors += 1 - step_status = EvaluationStatus.FAILURE - scenario_status[idx] = EvaluationStatus.ERRORS - # run_status = EvaluationStatus.ERRORS - continue - - _revision = evaluator_revision.model_dump( - mode="json", - exclude_none=True, - ) - interface = ( - dict( - uri=evaluator_revision.data.uri, - url=evaluator_revision.data.url, - headers=evaluator_revision.data.headers, - schemas=evaluator_revision.data.schemas, - ) - if evaluator_revision.data - else dict() - ) - configuration = ( - dict( - script=evaluator_revision.data.script, - parameters=evaluator_revision.data.parameters, - ) - if evaluator_revision.data - else dict() - ) - parameters = configuration.get("parameters") - - _testcase = None - inputs = None - - _trace: Optional[dict] = ( - trace.model_dump( - mode="json", - exclude_none=True, - ) - if trace - else None - ) - - _root_span = root_span.model_dump(mode="json", exclude_none=True) - testcase_data = None - - root_span_attributes: dict = _root_span.get("attributes") or {} - root_span_attributes_ag: dict = root_span_attributes.get("ag") or {} - root_span_attributes_ag_data: dict = ( - root_span_attributes_ag.get("data") or {} - ) - root_span_attributes_ag_data_outputs = ( - root_span_attributes_ag_data.get("outputs") - ) - root_span_attributes_ag_data_inputs = ( - root_span_attributes_ag_data.get("inputs") - ) - - outputs = root_span_attributes_ag_data_outputs - inputs = testcase_data or root_span_attributes_ag_data_inputs - - workflow_service_request_data = WorkflowServiceRequestData( - revision=_revision, - parameters=parameters, - # - testcase=_testcase, - inputs=inputs, - # - trace=_trace, - outputs=outputs, - ) - - flags = ( - evaluator_revision.flags.model_dump( - mode="json", - exclude_none=True, - exclude_unset=True, - ) - if evaluator_revision.flags - else None - ) - - workflow_service_request = WorkflowServiceRequest( - version="2025.07.14", - # - flags=flags, - # - interface=interface, - configuration=configuration, - # - data=workflow_service_request_data, - # - references=references, - links=links, - ) - hash_id = make_hash(references=references, links=links) - cached_traces = [] - if is_cached and hash_id: - cached_traces = await fetch_traces_by_hash( - tracing_service, - project_id, - hash_id=hash_id, - limit=len(repeat_indices), - ) - - reusable_traces = select_traces_for_reuse( - traces=cached_traces, - required_count=len(repeat_indices), - ) - results_create = [ - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario_id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - # - timestamp=timestamp, - interval=interval, - # - status=EvaluationStatus.SUCCESS, - # - trace_id=str(reusable_trace.trace_id), - ) - for repeat_idx, reusable_trace in zip( - repeat_indices, - reusable_traces, - ) - if reusable_trace and reusable_trace.trace_id - ] - - for repeat_idx in repeat_indices[len(reusable_traces) :]: - log.info( - "Invoking evaluator... ", - scenario_id=scenario.id, - repeat_idx=repeat_idx, - trace_id=query_trace_id, - uri=interface.get("uri"), - ) - workflows_service_response = ( - await workflows_service.invoke_workflow( - project_id=project_id, - user_id=user_id, - # - request=workflow_service_request, - # - annotate=True, - ) - ) - log.info( - "Invoked evaluator ", - scenario_id=scenario.id, - repeat_idx=repeat_idx, - trace_id=workflows_service_response.trace_id, - ) - - trace_id = workflows_service_response.trace_id - error = None - step_status = EvaluationStatus.SUCCESS - has_error = workflows_service_response.status.code != 200 - - if has_error: - log.warn( - "There is an error in evaluator %s for query %s.", - annotation_step_key, - query_trace_id, - ) - step_status = EvaluationStatus.FAILURE - scenario_has_errors[idx] += 1 - scenario_status[idx] = EvaluationStatus.ERRORS - error = workflows_service_response.status.model_dump( - mode="json", - exclude_none=True, - ) - else: - annotation = workflows_service_response - trace_id = annotation.trace_id - - if not annotation.trace_id: - log.warn("annotation trace_id is missing.") - scenario_has_errors[idx] += 1 - scenario_status[idx] = EvaluationStatus.ERRORS - continue - - fetched_trace = await fetch_trace( - tracing_service=tracing_service, - project_id=project_id, - trace_id=annotation.trace_id, - ) - - if fetched_trace: - log.info( - "Trace found ", - scenario_id=scenario.id, - step_key=annotation_step_key, - trace_id=annotation.trace_id, - ) - else: - log.warn( - "Trace missing", - scenario_id=scenario.id, - step_key=annotation_step_key, - trace_id=annotation.trace_id, - ) - scenario_has_errors[idx] += 1 - scenario_status[idx] = EvaluationStatus.ERRORS - continue - - results_create.append( - EvaluationResultCreate( - run_id=run_id, - scenario_id=scenario_id, - step_key=annotation_step_key, - repeat_idx=repeat_idx, - # - timestamp=timestamp, - interval=interval, - # - status=step_status, - # - trace_id=trace_id, - error=error, - ) - ) - - results = await evaluations_service.create_results( - project_id=project_id, - user_id=user_id, - # - results=results_create, - ) - - if len(results) != len(repeat_indices): - raise ValueError( - f"Failed to create evaluation results for scenario with id {scenario.id}!" - ) - scenario_results_created = True - any_results_created = True - # -------------------------------------------------------------- - - scenario_edit = EvaluationScenarioEdit( - id=scenario.id, - tags=scenario.tags, - meta=scenario.meta, - status=( - EvaluationStatus.PENDING - if ( - scenario_status[idx] == EvaluationStatus.SUCCESS - and scenario_has_pending[idx] - ) - else scenario_status[idx] - ), - ) - - scenario = await evaluations_service.edit_scenario( - project_id=project_id, - user_id=user_id, - # - scenario=scenario_edit, - ) - - if not scenario or not scenario.id: - log.error( - f"Failed to update evaluation scenario with id {scenario_id}!", - run_id=run_id, - ) - - if scenario_results_created: - await evaluations_service.refresh_metrics( - project_id=project_id, - user_id=user_id, - # - metrics=EvaluationMetricsRefresh( - run_id=run_id, - scenario_id=scenario_id, - ), - ) - # ------------------------------------------------------------------ - - if any_results_created: - await evaluations_service.refresh_metrics( - project_id=project_id, - user_id=user_id, - # - metrics=EvaluationMetricsRefresh( - run_id=run_id, - timestamp=timestamp, - interval=interval, - ), - ) - except Exception as e: # pylint: disable=broad-exception-caught - log.error(e, exc_info=True) - - log.info( - "[DONE] ", - run_id=run_id, - ) - - return diff --git a/api/oss/src/core/evaluations/tasks/processor.py b/api/oss/src/core/evaluations/tasks/processor.py new file mode 100644 index 0000000000..5428d08fc0 --- /dev/null +++ b/api/oss/src/core/evaluations/tasks/processor.py @@ -0,0 +1,950 @@ +from typing import Dict, List, Optional, Any +from types import SimpleNamespace + +from uuid import UUID + +from agenta.sdk.evaluations.runtime.models import ( + EvaluationStep as SdkEvaluationStep, + ResolvedSourceItem as SdkResolvedSourceItem, +) +from agenta.sdk.evaluations.runtime.processor import ( + process_evaluation_source_slice as sdk_process_evaluation_source_slice, +) + +from oss.src.utils.logging import get_module_logger + +from oss.src.core.testcases.service import TestcasesService +from oss.src.core.testsets.service import TestsetsService +from oss.src.core.applications.service import ApplicationsService +from oss.src.core.workflows.service import WorkflowsService +from oss.src.core.evaluations.service import EvaluationsService + +from oss.src.core.tracing.service import TracingService + + +from oss.src.core.evaluations.types import ( + EvaluationStatus, + EvaluationRun, + EvaluationRunEdit, + EvaluationResult, + EvaluationResultQuery, + EvaluationScenarioEdit, + EvaluationClosedConflict, +) + +from oss.src.core.evaluations.utils import ( + effective_is_split, +) +from oss.src.core.evaluations.runtime.adapters import ( + BackendCachedRunner, + BackendMetricsRefresher, + BackendResultLogger, + BackendScenarioFactory, + BackendTraceLoader, + BackendWorkflowRunner, +) +from oss.src.core.evaluations.runtime.models import ( + ProcessSummary, + ResolvedSourceItem, +) +from oss.src.core.evaluations.runtime.sources import ( + resolve_direct_source_items, + resolve_testset_input_specs, +) + + +log = get_module_logger(__name__) + + +async def _resolve_runners_and_revisions( + *, + project_id: UUID, + user_id: UUID, + run: EvaluationRun, + invocation_steps: List[Any], + annotation_steps: List[Any], + tracing_service: Optional[TracingService], + workflows_service: Optional[WorkflowsService], + applications_service: Optional[ApplicationsService], +) -> tuple[Dict[str, Any], Dict[str, Any]]: + """Wire one cache-aware runner + its revision per executable step. + + The returned `runners` are `BackendCachedRunner`s, so hashed-trace reuse + (cache lookup by step references/links before invoking) is handled here for + both ingest and slice re-execution. `auto` annotations are wired; `human` + and `custom` annotations are not (the backend never executes them). + """ + run_id = run.id + runners: Dict[str, Any] = {} + revisions: Dict[str, Any] = {} + + if invocation_steps: + if applications_service is None: + raise ValueError("applications_service is required for invocation steps") + if workflows_service is None: + raise ValueError("workflows_service is required for invocation steps") + invocation_step = invocation_steps[0] + application_revision_ref = invocation_step.references.get( + "application_revision" + ) + if not application_revision_ref or not isinstance( + application_revision_ref.id, UUID + ): + raise ValueError( + f"Evaluation run with id {run_id} missing invocation.application_revision reference." + ) + application_revision = await applications_service.fetch_application_revision( + project_id=project_id, + application_revision_ref=application_revision_ref, + ) + if application_revision is None: + raise ValueError( + f"App revision with id {application_revision_ref.id} not found!" + ) + runners[invocation_step.key] = BackendCachedRunner( + runner=BackendWorkflowRunner( + project_id=project_id, + user_id=user_id, + workflows_service=workflows_service, + ), + tracing_service=tracing_service, + project_id=project_id, + enabled=bool(run.flags and run.flags.is_cached), + ) + revisions[invocation_step.key] = application_revision + + auto_annotation_steps = [ + step for step in annotation_steps if step.origin not in {"human", "custom"} + ] + if auto_annotation_steps and workflows_service is None: + raise ValueError("workflows_service is required for auto annotation steps") + for annotation_step in auto_annotation_steps: + evaluator_revision_ref = (annotation_step.references or {}).get( + "evaluator_revision" + ) + evaluator_revision = ( + await workflows_service.fetch_workflow_revision( # type: ignore[union-attr] + project_id=project_id, + workflow_revision_ref=evaluator_revision_ref, + ) + if evaluator_revision_ref + else None + ) + if evaluator_revision is None: + continue + runners[annotation_step.key] = BackendCachedRunner( + runner=BackendWorkflowRunner( + project_id=project_id, + user_id=user_id, + workflows_service=workflows_service, + ), + tracing_service=tracing_service, + project_id=project_id, + enabled=bool(run.flags and run.flags.is_cached), + ) + revisions[annotation_step.key] = evaluator_revision + + return runners, revisions + + +def _source_item_from_input_cells( + *, + input_steps: List[Any], + cells_by_step: Dict[str, List[EvaluationResult]], +) -> Optional[ResolvedSourceItem]: + """Rebuild the scenario's source binding from its stored input result cells. + + A slice addresses EXISTING scenarios, so the source is not re-resolved from + a query/testset — it is recovered from the input step's already-written + cell, which carries the bound `trace_id` (trace/query source) or + `testcase_id` (testcase/testset source). Trace/testcase context is + re-hydrated by the slice processor's trace loader / testcase fetch so cache + reuse and evaluator inputs match the original run. + """ + for step in input_steps: + cells = cells_by_step.get(step.key) or [] + if not cells: + continue + cell = cells[0] + if cell.trace_id: + return ResolvedSourceItem( + kind="trace", + step_key=step.key, + trace_id=cell.trace_id, + ) + if cell.testcase_id: + return ResolvedSourceItem( + kind="testcase", + step_key=step.key, + testcase_id=cell.testcase_id, + ) + return None + + +class BackendSliceProcessor: + """Backend `SliceProcessor`: re-execute the runnable cells in a slice. + + Unlike `process_evaluation_source_slice` (an INGEST loop that creates a new + scenario per source item), this re-executes EXISTING scenarios addressed by + a `TensorSlice` — the retry / fill-missing / re-run-one-evaluator axis. For + each scenario in the slice it: rebuilds the source binding from the stored + input cells, re-hydrates trace/testcase context, plans only the requested + `step_keys`/`repeat_idxs`, runs the cache-aware runners (so hashed traces are + reused), populates the result cells, and refreshes metrics. Modified steps + re-run because the plan is rebuilt from the run's CURRENT graph and the + fresh evaluator revisions resolved here. + """ + + def __init__( + self, + *, + evaluations_service: EvaluationsService, + tracing_service: Optional[TracingService] = None, + testcases_service: Optional[TestcasesService] = None, + workflows_service: Optional[WorkflowsService] = None, + applications_service: Optional[ApplicationsService] = None, + ): + self.evaluations_service = evaluations_service + self.tracing_service = tracing_service + self.testcases_service = testcases_service + self.workflows_service = workflows_service + self.applications_service = applications_service + + async def process( + self, + *, + project_id: UUID, + user_id: UUID, + tensor_slice, + ) -> ProcessSummary: + run_id = tensor_slice.run_id + run = await self.evaluations_service.fetch_run( + project_id=project_id, + run_id=run_id, + ) + if not run or not run.data or not run.data.steps: + return ProcessSummary() + + steps = run.data.steps + input_steps = [step for step in steps if step.type == "input"] + invocation_steps = [step for step in steps if step.type == "invocation"] + annotation_steps = [step for step in steps if step.type == "annotation"] + + # Probe the existing cells in the slice scope, grouped by scenario. + existing = await self.evaluations_service.query_results( + project_id=project_id, + result=EvaluationResultQuery( + run_id=run_id, + scenario_ids=tensor_slice.scenario_ids, + step_keys=tensor_slice.step_keys, + repeat_idxs=tensor_slice.repeat_idxs, + ), + ) + # Inputs are always needed to rebuild the source binding even when the + # slice's step_keys exclude them, so probe inputs separately per scenario. + scenario_ids = sorted( + {cell.scenario_id for cell in existing if cell.scenario_id}, + key=str, + ) + if not scenario_ids: + return ProcessSummary() + + runners, revisions = await _resolve_runners_and_revisions( + project_id=project_id, + user_id=user_id, + run=run, + invocation_steps=invocation_steps, + annotation_steps=annotation_steps, + tracing_service=self.tracing_service, + workflows_service=self.workflows_service, + applications_service=self.applications_service, + ) + + requested_steps = set(tensor_slice.step_keys or []) + requested_repeats = set(tensor_slice.repeat_idxs or []) + + sdk_steps_all = [ + SdkEvaluationStep( + key=step.key, + type=step.type, + origin=step.origin, + references=step.references or {}, + inputs=[step_input.key for step_input in (step.inputs or [])], + ) + for step in steps + ] + + summary = ProcessSummary() + + for scenario_id in scenario_ids: + input_cells = await self.evaluations_service.query_results( + project_id=project_id, + result=EvaluationResultQuery( + run_id=run_id, + scenario_id=scenario_id, + ), + ) + cells_by_step: Dict[str, List[EvaluationResult]] = {} + for cell in input_cells: + cells_by_step.setdefault(cell.step_key, []).append(cell) + + source_item = _source_item_from_input_cells( + input_steps=input_steps, + cells_by_step=cells_by_step, + ) + if source_item is None: + summary.failed += 1 + continue + + # Re-hydrate source context so cache reuse / evaluator inputs match. + hydrated = await resolve_direct_source_items( + project_id=project_id, + testcase_ids=[source_item.testcase_id] + if source_item.testcase_id + else None, + trace_ids=[source_item.trace_id] if source_item.trace_id else None, + testcases_service=self.testcases_service, + tracing_service=self.tracing_service, + ) + resolved = hydrated[0] if hydrated else source_item + resolved.step_key = source_item.step_key + + sdk_source_item = SdkResolvedSourceItem( + kind=resolved.kind, + step_key=resolved.step_key, + references=resolved.references or {}, + trace_id=resolved.trace_id, + span_id=resolved.span_id, + testcase_id=resolved.testcase_id, + testcase=resolved.testcase, + trace=resolved.trace, + inputs=resolved.inputs or getattr(resolved.testcase, "data", None), + outputs=resolved.outputs, + ) + + processed = await sdk_process_evaluation_source_slice( + run_id=run_id, + source_items=[sdk_source_item], + steps=sdk_steps_all, + repeats=run.data.repeats, + create_scenario=_ExistingScenario(scenario_id), + result_logger=BackendResultLogger( + project_id=project_id, + user_id=user_id, + timestamp=None, + interval=None, + evaluations_service=self.evaluations_service, + ), + # process() writes result cells only; metric refresh is the + # separate `refresh` op invoked by the caller on the right + # boundary. The SDK loop requires a callback, so pass a no-op. + refresh_metrics=_noop_refresh_metrics, + runners=runners, + revisions=revisions, + trace_loader=( + BackendTraceLoader( + project_id=project_id, + tracing_service=self.tracing_service, + ) + if self.tracing_service is not None + else None + ), + is_split=effective_is_split( + is_split=bool(run.flags and run.flags.is_split), + has_application_steps=bool(invocation_steps), + has_evaluator_steps=bool(annotation_steps), + ), + log_pending=True, + refresh_metrics_without_auto_results=True, + batch_size=run.data.concurrency.batch_size + if run.data.concurrency + else None, + max_retries=run.data.concurrency.max_retries + if run.data.concurrency + else None, + retry_delay=run.data.concurrency.retry_delay + if run.data.concurrency + else None, + ) + + for item in processed: + for step_key, _result in item.results.items(): + if requested_steps and step_key not in requested_steps: + continue + summary.created += 1 + if item.has_pending: + summary.pending += 1 + if item.has_errors: + summary.failed += 1 + + log.info( + "[SLICE] re-execute complete", + run_id=str(run_id), + scenarios=len(scenario_ids), + created=summary.created, + pending=summary.pending, + failed=summary.failed, + requested_steps=sorted(requested_steps) or None, + requested_repeats=sorted(requested_repeats) or None, + ) + return summary + + +class _ExistingScenario: + """`create_scenario` adapter that returns an existing scenario by id. + + The SDK slice loop calls `create_scenario(run_id)` and uses `.id`; for + re-execution we hand it the existing scenario rather than minting a new one, + so results are populated against the scenario the slice addressed. + """ + + def __init__(self, scenario_id: UUID): + self._scenario = SimpleNamespace(id=scenario_id) + + async def __call__(self, run_id: UUID): + return self._scenario + + +async def _noop_refresh_metrics(run_id: UUID, scenario_id): + """No-op refresh callback for `process` (results-only). + + The SDK slice loop requires a `refresh_metrics` callback, but `process` no + longer refreshes metrics — that is the separate `refresh` op. This satisfies + the contract without recomputing anything. + """ + return None + + +async def _resolve_testset_input_specs( + *, + project_id: UUID, + input_steps: List[Any], + testsets_service: TestsetsService, +) -> List[Dict[str, Any]]: + return [ + { + "step_key": spec.step_key, + "testset": spec.testset, + "testset_revision": spec.testset_revision, + "testcases": spec.testcases, + "testcases_data": spec.testcases_data, + } + for spec in await resolve_testset_input_specs( + project_id=project_id, + input_steps=input_steps, + testsets_service=testsets_service, + ) + ] + + +async def process_testset_source_run( + *, + project_id: UUID, + user_id: UUID, + # + run_id: UUID, + # + tracing_service: TracingService, + testsets_service: TestsetsService, + workflows_service: WorkflowsService, + applications_service: ApplicationsService, + evaluations_service: EvaluationsService, +): + """Resolve testset rows, then process them through the unified source loop.""" + log.info( + "[WORKER] process_testset_source_run: start", + run_id=str(run_id), + project_id=str(project_id), + ) + + run = await evaluations_service.fetch_run( + project_id=project_id, + run_id=run_id, + ) + if not run: + raise ValueError(f"Evaluation run with id {run_id} not found!") + if not run.data or not run.data.steps: + raise ValueError(f"Evaluation run with id {run_id} has no data steps!") + + log.info( + "[WORKER] process_testset_source_run: run fetched", + run_id=str(run_id), + run_name=run.name, + run_status=str(run.status), + steps=[ + {"key": s.key, "type": s.type, "origin": s.origin} for s in run.data.steps + ], + repeats=run.data.repeats, + concurrency=run.data.concurrency.model_dump() if run.data.concurrency else None, + ) + + input_steps = [step for step in run.data.steps if step.type == "input"] + input_specs = await _resolve_testset_input_specs( + project_id=project_id, + input_steps=input_steps, + testsets_service=testsets_service, + ) + + log.info( + "[WORKER] process_testset_source_run: input specs resolved", + run_id=str(run_id), + input_specs=[ + { + "step_key": spec["step_key"], + "testset_id": str(spec["testset"].id), + "testset_revision_id": str(spec["testset_revision"].id), + "testcase_count": len(spec["testcases"]), + } + for spec in input_specs + ], + ) + + source_items = [ + ResolvedSourceItem( + kind="testcase", + step_key=input_spec["step_key"], + references={ + "testcase": {"id": str(testcase.id)}, + "testset": {"id": str(input_spec["testset"].id)}, + "testset_variant": { + "id": str(input_spec["testset_revision"].variant_id) + }, + "testset_revision": {"id": str(input_spec["testset_revision"].id)}, + }, + testcase_id=testcase.id, + testcase=testcase, + inputs=testcase_data, + ) + for input_spec in input_specs + for testcase, testcase_data in zip( + input_spec["testcases"], + input_spec["testcases_data"], + ) + ] + + return await process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_items=source_items, + require_queue=False, + update_run_status=True, + refresh_metrics_without_auto_results=True, + tracing_service=tracing_service, + workflows_service=workflows_service, + applications_service=applications_service, + evaluations_service=evaluations_service, + ) + + +async def process_evaluation_source_slice( + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + testcase_ids: Optional[List[UUID]] = None, + trace_ids: Optional[List[str]] = None, + source_items: Optional[List[ResolvedSourceItem]] = None, + input_step_key: Optional[str] = None, + timestamp: Optional[Any] = None, + interval: Optional[int] = None, + require_queue: bool = True, + update_run_status: bool = True, + refresh_metrics_without_auto_results: bool = True, + tracing_service: Optional[TracingService] = None, + testcases_service: Optional[TestcasesService] = None, + workflows_service: Optional[WorkflowsService] = None, + applications_service: Optional[ApplicationsService] = None, + evaluations_service: EvaluationsService, +): + """Resolve backend adapters, then delegate execution to the SDK runtime.""" + log.info( + "[WORKER] process_evaluation_source_slice: start", + run_id=str(run_id), + project_id=str(project_id), + source_items_count=len(source_items) if source_items else 0, + testcase_ids_count=len(testcase_ids) if testcase_ids else 0, + trace_ids_count=len(trace_ids) if trace_ids else 0, + require_queue=require_queue, + update_run_status=update_run_status, + ) + + run: Optional[EvaluationRun] = None + run_status = EvaluationStatus.SUCCESS + + try: + run = await evaluations_service.fetch_run( + project_id=project_id, + run_id=run_id, + ) + if not run: + raise ValueError(f"Evaluation run with id {run_id} not found!") + if not run.data or not run.data.steps: + raise ValueError(f"Evaluation run with id {run_id} has no data steps!") + + steps = run.data.steps + input_steps = [step for step in steps if step.type == "input"] + invocation_steps = [step for step in steps if step.type == "invocation"] + annotation_steps = [step for step in steps if step.type == "annotation"] + + log.info( + "[WORKER] process_evaluation_source_slice: run fetched", + run_id=str(run_id), + run_name=run.name, + run_status=str(run.status), + total_steps=len(steps), + input_steps=[ + { + "key": s.key, + "references": { + k: (v.id if hasattr(v, "id") else v) + for k, v in (s.references or {}).items() + }, + } + for s in input_steps + ], + invocation_steps=[ + { + "key": s.key, + "references": { + k: str(v.id) if hasattr(v, "id") else v + for k, v in (s.references or {}).items() + }, + } + for s in invocation_steps + ], + annotation_steps=[ + { + "key": s.key, + "origin": s.origin, + "references": { + k: str(v.id) if hasattr(v, "id") else v + for k, v in (s.references or {}).items() + }, + } + for s in annotation_steps + ], + repeats=run.data.repeats, + concurrency=run.data.concurrency.model_dump() + if run.data.concurrency + else None, + flags=run.flags.model_dump() if run.flags else None, + ) + + if len(invocation_steps) > 1: + raise ValueError( + f"Evaluation run with id {run_id} has more than one invocation step." + ) + + if input_step_key is not None and not any( + step.key == input_step_key for step in input_steps + ): + raise ValueError( + f"Evaluation run with id {run_id} has no input step '{input_step_key}'!" + ) + + testcase_ids = testcase_ids or [] + trace_ids = trace_ids or [] + source_items = source_items or [] + if require_queue: + queue_step_key = input_step_key or ( + source_items[0].step_key + if source_items and source_items[0].step_key + else None + ) + source_step = ( + next( + (step for step in input_steps if step.key == queue_step_key), + None, + ) + if queue_step_key is not None + else None + ) + source_step_refs = source_step.references if source_step else {} + source_item_kinds = {item.kind for item in source_items} + has_trace_payload = bool(trace_ids) or "trace" in source_item_kinds + has_testcase_payload = bool(testcase_ids) or "testcase" in source_item_kinds + accepts_trace_batch = bool( + run.flags + and has_trace_payload + and ( + run.flags.has_traces + or ( + run.flags.has_queries + and bool((source_step_refs or {}).get("query_revision")) + ) + ) + ) + accepts_testcase_batch = bool( + run.flags + and has_testcase_payload + and ( + run.flags.has_testcases + or ( + run.flags.has_testsets + and bool((source_step_refs or {}).get("testset_revision")) + ) + ) + ) + if not (accepts_trace_batch or accepts_testcase_batch): + raise ValueError( + f"Evaluation run with id {run_id} is not configured for queue batching!" + ) + + if not source_items and not testcase_ids and not trace_ids: + raise ValueError( + f"Evaluation run with id {run_id} has no source items, testcase_ids, or trace_ids!" + ) + if trace_ids and tracing_service is None: + raise ValueError("tracing_service is required for trace batches") + if testcase_ids and testcases_service is None: + raise ValueError("testcases_service is required for testcase batches") + + if not source_items: + source_items = await resolve_direct_source_items( + project_id=project_id, + testcase_ids=testcase_ids, + trace_ids=trace_ids, + testcases_service=testcases_service, + tracing_service=tracing_service, + ) + effective_input_step_key = ( + input_step_key + or ( + source_items[0].step_key + if source_items and source_items[0].step_key + else None + ) + or (input_steps[0].key if input_steps else "") + ) + sdk_source_items = [ + SdkResolvedSourceItem( + kind=source_item.kind, + step_key=source_item.step_key or effective_input_step_key, + references=source_item.references or {}, + trace_id=source_item.trace_id, + span_id=source_item.span_id, + testcase_id=source_item.testcase_id, + testcase=source_item.testcase, + trace=source_item.trace, + inputs=source_item.inputs + or getattr(source_item.testcase, "data", None), + outputs=source_item.outputs, + ) + for source_item in source_items + ] + + sdk_steps = [ + SdkEvaluationStep( + key=step.key, + type=step.type, + origin=step.origin, + references=step.references or {}, + inputs=[step_input.key for step_input in (step.inputs or [])], + ) + for step in steps + ] + + runners, revisions = await _resolve_runners_and_revisions( + project_id=project_id, + user_id=user_id, + run=run, + invocation_steps=invocation_steps, + annotation_steps=annotation_steps, + tracing_service=tracing_service, + workflows_service=workflows_service, + applications_service=applications_service, + ) + + log.info( + "[WORKER] process_evaluation_source_slice: runners/revisions resolved", + run_id=str(run_id), + runner_keys=list(runners.keys()), + revision_keys=list(revisions.keys()), + sdk_source_items_count=len(sdk_source_items), + sdk_steps=[{"key": s.key, "type": s.type} for s in sdk_steps], + ) + + processed = await sdk_process_evaluation_source_slice( + run_id=run_id, + source_items=sdk_source_items, + steps=sdk_steps, + repeats=run.data.repeats, + create_scenario=BackendScenarioFactory( + project_id=project_id, + user_id=user_id, + timestamp=timestamp, + interval=interval, + evaluations_service=evaluations_service, + ), + result_logger=BackendResultLogger( + project_id=project_id, + user_id=user_id, + timestamp=timestamp, + interval=interval, + evaluations_service=evaluations_service, + ), + refresh_metrics=BackendMetricsRefresher( + project_id=project_id, + user_id=user_id, + timestamp=timestamp, + interval=interval, + evaluations_service=evaluations_service, + ), + runners=runners, + revisions=revisions, + trace_loader=( + BackendTraceLoader( + project_id=project_id, + tracing_service=tracing_service, + ) + if tracing_service is not None + else None + ), + is_split=effective_is_split( + is_split=bool(run.flags and run.flags.is_split), + has_application_steps=bool(invocation_steps), + has_evaluator_steps=bool(annotation_steps), + ), + log_pending=False, + refresh_metrics_without_auto_results=refresh_metrics_without_auto_results, + batch_size=run.data.concurrency.batch_size + if run.data.concurrency + else None, + max_retries=run.data.concurrency.max_retries + if run.data.concurrency + else None, + retry_delay=run.data.concurrency.retry_delay + if run.data.concurrency + else None, + ) + + log.info( + "[WORKER] process_evaluation_source_slice: SDK complete", + run_id=str(run_id), + processed_count=len(processed), + scenarios_with_errors=sum(1 for i in processed if i.has_errors), + scenarios_with_pending=sum(1 for i in processed if i.has_pending), + scenarios_with_auto_results=sum( + 1 for i in processed if i.auto_results_created + ), + result_step_keys=[list(i.results.keys()) for i in processed], + ) + + for item in processed: + scenario_status = ( + EvaluationStatus.ERRORS + if item.has_errors + else EvaluationStatus.PENDING + if item.has_pending + else EvaluationStatus.SUCCESS + ) + try: + await evaluations_service.edit_scenario( + project_id=project_id, + user_id=user_id, + scenario=EvaluationScenarioEdit( + id=item.scenario.id, + tags=getattr(item.scenario, "tags", None), + meta=getattr(item.scenario, "meta", None), + status=scenario_status, + ), + ) + except EvaluationClosedConflict: + # The run was closed (locked) mid-flight by a user. Closing is a + # lock, not a failure signal — skip the write and let the slice + # finish; the finalize below will also tolerate the lock. + log.info( + "[WORKER] scenario write skipped: run closed mid-flight", + run_id=str(run_id), + scenario_id=str(item.scenario.id), + ) + + if any(item.has_errors for item in processed): + run_status = EvaluationStatus.ERRORS + elif any(item.has_pending for item in processed): + run_status = EvaluationStatus.RUNNING + else: + run_status = EvaluationStatus.SUCCESS + + except Exception as e: # pylint: disable=broad-exception-caught + log.error( + f"An error occurred during source slice evaluation: {e}", + exc_info=True, + ) + run_status = EvaluationStatus.FAILURE + + if not run: + return + + if ( + update_run_status + and run.flags + and ( + run.flags.has_traces + or run.flags.has_testcases + or run.flags.has_queries + or run.flags.has_testsets + ) + and run_status != EvaluationStatus.FAILURE + ): + # Only terminal "bad" statuses floor across slices: if an earlier slice + # already marked the run FAILURE/ERRORS, a later SUCCESS-only slice must + # not downgrade it. The transient RUNNING/PENDING states rank BELOW + # SUCCESS so a freshly computed terminal status (incl. SUCCESS) always + # replaces a stale RUNNING — otherwise a run pins at RUNNING forever. + severity = { + EvaluationStatus.FAILURE: 4, + EvaluationStatus.ERRORS: 3, + EvaluationStatus.SUCCESS: 2, + EvaluationStatus.RUNNING: 1, + EvaluationStatus.PENDING: 0, + } + current_run = await evaluations_service.fetch_run( + project_id=project_id, + run_id=run_id, + ) + if current_run and current_run.status: + stored_severity = severity.get(current_run.status, 0) + if stored_severity > severity.get(run_status, 0): + run_status = current_run.status + + if update_run_status: + # When the run reaches a terminal status, it is no longer active. A + # non-terminal status (RUNNING/PENDING) leaves the run active so further + # slices can continue. + final_flags = run.flags + if final_flags is not None and run_status in ( + EvaluationStatus.SUCCESS, + EvaluationStatus.ERRORS, + EvaluationStatus.FAILURE, + ): + final_flags = final_flags.model_copy(update={"is_active": False}) + + try: + await evaluations_service.edit_run( + project_id=project_id, + user_id=user_id, + run=EvaluationRunEdit( + id=run_id, + name=run.name, + description=run.description, + tags=run.tags, + meta=run.meta, + status=run_status, + flags=final_flags, + data=run.data, + ), + ) + except EvaluationClosedConflict: + # The run was closed (locked) mid-flight. Closing is a lock, not a + # failure — the user deliberately froze the run, so leave its status + # as-is rather than turning finalization into an error. + log.info( + "[WORKER] finalize skipped: run closed mid-flight", + run_id=str(run_id), + run_status=str(run_status), + ) + + log.info("[DONE] ", run_id=run_id, project_id=project_id, user_id=user_id) + return diff --git a/api/oss/src/core/evaluations/tasks/query.py b/api/oss/src/core/evaluations/tasks/query.py new file mode 100644 index 0000000000..1dcf3b2d2b --- /dev/null +++ b/api/oss/src/core/evaluations/tasks/query.py @@ -0,0 +1,271 @@ +from typing import Optional +from uuid import UUID +from datetime import datetime, timezone + +from oss.src.utils.logging import get_module_logger + +from oss.src.dbs.postgres.queries.dbes import ( + QueryArtifactDBE, + QueryVariantDBE, + QueryRevisionDBE, +) +from oss.src.dbs.postgres.testcases.dbes import ( + TestcaseBlobDBE, +) +from oss.src.dbs.postgres.testsets.dbes import ( + TestsetArtifactDBE, + TestsetVariantDBE, + TestsetRevisionDBE, +) +from oss.src.dbs.postgres.workflows.dbes import ( + WorkflowArtifactDBE, + WorkflowVariantDBE, + WorkflowRevisionDBE, +) + +from oss.src.dbs.postgres.tracing.dao import TracingDAO +from oss.src.dbs.postgres.blobs.dao import BlobsDAO +from oss.src.dbs.postgres.git.dao import GitDAO +from oss.src.dbs.postgres.evaluations.dao import EvaluationsDAO + +from oss.src.core.tracing.service import TracingService +from oss.src.core.queries.service import QueriesService +from oss.src.core.testcases.service import TestcasesService +from oss.src.core.testsets.service import TestsetsService +from oss.src.core.testsets.service import SimpleTestsetsService +from oss.src.core.workflows.service import WorkflowsService +from oss.src.core.evaluators.service import EvaluatorsService +from oss.src.core.evaluators.service import SimpleEvaluatorsService +from oss.src.core.evaluations.service import EvaluationsService +from oss.src.core.annotations.service import AnnotationsService + +from oss.src.core.evaluations.types import ( + EvaluationStatus, + EvaluationRunEdit, + EvaluationRunFlags, +) + + +from oss.src.core.evaluations.runtime.sources import resolve_query_source_items +from oss.src.core.evaluations.tasks.processor import process_evaluation_source_slice + + +log = get_module_logger(__name__) + + +# DBS -------------------------------------------------------------------------- + +tracing_dao = TracingDAO() + +testcases_dao = BlobsDAO( + BlobDBE=TestcaseBlobDBE, +) + +queries_dao = GitDAO( + ArtifactDBE=QueryArtifactDBE, + VariantDBE=QueryVariantDBE, + RevisionDBE=QueryRevisionDBE, +) + +testsets_dao = GitDAO( + ArtifactDBE=TestsetArtifactDBE, + VariantDBE=TestsetVariantDBE, + RevisionDBE=TestsetRevisionDBE, +) + +workflows_dao = GitDAO( + ArtifactDBE=WorkflowArtifactDBE, + VariantDBE=WorkflowVariantDBE, + RevisionDBE=WorkflowRevisionDBE, +) + +evaluations_dao = EvaluationsDAO() + +# CORE ------------------------------------------------------------------------- + +tracing_service = TracingService( + tracing_dao=tracing_dao, +) + +queries_service = QueriesService( + queries_dao=queries_dao, +) + +testcases_service = TestcasesService( + testcases_dao=testcases_dao, +) + +testsets_service = TestsetsService( + testsets_dao=testsets_dao, + testcases_service=testcases_service, +) + +simple_testsets_service = SimpleTestsetsService( + testsets_service=testsets_service, +) + +workflows_service = WorkflowsService( + workflows_dao=workflows_dao, +) + +evaluators_service = EvaluatorsService( + workflows_service=workflows_service, +) + +simple_evaluators_service = SimpleEvaluatorsService( + evaluators_service=evaluators_service, +) + +evaluations_service = EvaluationsService( + evaluations_dao=evaluations_dao, + tracing_service=tracing_service, + queries_service=queries_service, + testsets_service=testsets_service, + evaluators_service=evaluators_service, + # +) + +# APIS ------------------------------------------------------------------------- + +annotations_service = AnnotationsService( + tracing_service=tracing_service, + evaluators_service=evaluators_service, + simple_evaluators_service=simple_evaluators_service, +) + +# ------------------------------------------------------------------------------ + + +async def process_query_source_run( + project_id: UUID, + user_id: UUID, + # + run_id: UUID, + # + newest: Optional[datetime] = None, + oldest: Optional[datetime] = None, + # + use_windowing: bool = False, +): + # Backward-compatible live-query worker shell. Scheduling/windowing stays + # here for now; query source resolution and evaluator execution are routed + # through the unified runtime. + # count in minutes + timestamp = oldest or datetime.now(timezone.utc) + interval: Optional[int] = None + if newest and oldest: + interval = int((newest - oldest).total_seconds() / 60) + + try: + # ---------------------------------------------------------------------- + log.info( + "[SCOPE] ", + run_id=run_id, + project_id=project_id, + user_id=user_id, + ) + + log.info( + "[RANGE] ", + run_id=run_id, + timestamp=timestamp, + interval=interval, + newest=newest, + oldest=oldest, + use_windowing=use_windowing, + ) + # ---------------------------------------------------------------------- + + # fetch evaluation run ------------------------------------------------- + run = await evaluations_service.fetch_run( + project_id=project_id, + run_id=run_id, + ) + + if not run: + raise ValueError(f"Evaluation run with id {run_id} not found!") + + if not run.data: + raise ValueError(f"Evaluation run with id {run_id} has no data!") + + if not run.data.steps: + raise ValueError(f"Evaluation run with id {run_id} has no steps!") + + source_items_by_step = await resolve_query_source_items( + project_id=project_id, + run=run, + queries_service=queries_service, + tracing_service=tracing_service, + newest=newest, + oldest=oldest, + use_windowing=use_windowing, + ) + for query_step_key, source_items in source_items_by_step.items(): + log.info( + "[TRACES] ", + run_id=run_id, + count=len(source_items), + ) + # ---------------------------------------------------------------------- + + total_traces = sum( + len(source_items) for source_items in source_items_by_step.values() + ) + + # Batch query runs (use_windowing=True) must finalize their run status, + # like batch testset/invocation runs. Live query runs (use_windowing + # =False) intentionally never finalize — the scheduler keeps polling. + update_run_status = use_windowing + + if total_traces == 0: + # A live run with nothing to do just waits for the next tick. A batch + # run with no matching traces is complete: finalize it directly to + # SUCCESS (the slice processor rejects empty input) so it does not + # hang in `running`. + if update_run_status: + flags = run.flags.model_copy() if run.flags else EvaluationRunFlags() + flags.is_active = False + await evaluations_service.edit_run( + project_id=project_id, + user_id=user_id, + run=EvaluationRunEdit( + id=run_id, + name=run.name, + description=run.description, + tags=run.tags, + meta=run.meta, + status=EvaluationStatus.SUCCESS, + flags=flags, + data=run.data, + ), + ) + return + + for query_step_key, source_items in source_items_by_step.items(): + if not source_items: + continue + + await process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_items=source_items, + input_step_key=query_step_key, + timestamp=timestamp, + interval=interval, + require_queue=False, + update_run_status=update_run_status, + refresh_metrics_without_auto_results=False, + tracing_service=tracing_service, + workflows_service=workflows_service, + evaluations_service=evaluations_service, + ) + except Exception as e: # pylint: disable=broad-exception-caught + log.error(e, exc_info=True) + + log.info( + "[DONE] ", + run_id=run_id, + ) + + return diff --git a/api/oss/src/core/evaluations/tasks/run.py b/api/oss/src/core/evaluations/tasks/run.py new file mode 100644 index 0000000000..9b5f2b4818 --- /dev/null +++ b/api/oss/src/core/evaluations/tasks/run.py @@ -0,0 +1,155 @@ +from datetime import datetime +from typing import Literal, Optional +from uuid import UUID + +from oss.src.core.applications.service import ApplicationsService +from oss.src.core.evaluations.runtime.topology import classify_run_topology +from oss.src.core.evaluations.service import EvaluationsService +from oss.src.core.evaluations.tasks.processor import ( + process_evaluation_source_slice, + process_testset_source_run, +) +from oss.src.core.evaluations.tasks.query import process_query_source_run +from oss.src.core.evaluators.service import SimpleEvaluatorsService +from oss.src.core.queries.service import QueriesService +from oss.src.core.testcases.service import TestcasesService +from oss.src.core.testsets.service import TestsetsService +from oss.src.core.tracing.service import TracingService +from oss.src.core.workflows.service import WorkflowsService +from oss.src.utils.logging import get_module_logger + +log = get_module_logger(__name__) + +EvaluationSliceSource = Literal["traces", "testcases"] + + +async def process_evaluation_run( + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + newest: Optional[datetime] = None, + oldest: Optional[datetime] = None, + tracing_service: TracingService, + testsets_service: TestsetsService, + queries_service: QueriesService, + workflows_service: WorkflowsService, + applications_service: ApplicationsService, + evaluations_service: EvaluationsService, + simple_evaluators_service: SimpleEvaluatorsService, +) -> bool: + run = await evaluations_service.fetch_run( + project_id=project_id, + run_id=run_id, + ) + if not run: + log.warning("[EVAL] [process-run] run not found", run_id=run_id) + return False + + topology = classify_run_topology(run) + + if topology.dispatch == "live_query": + await process_query_source_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + newest=newest, + oldest=oldest, + use_windowing=False, + ) + return True + + if topology.dispatch == "batch_query": + await process_query_source_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + newest=None, + oldest=None, + use_windowing=True, + ) + return True + + if topology.dispatch == "batch_testset": + await process_testset_source_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + tracing_service=tracing_service, + testsets_service=testsets_service, + workflows_service=workflows_service, + applications_service=applications_service, + evaluations_service=evaluations_service, + ) + return True + + if topology.dispatch == "batch_invocation": + await process_testset_source_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + tracing_service=tracing_service, + testsets_service=testsets_service, + workflows_service=workflows_service, + applications_service=applications_service, + evaluations_service=evaluations_service, + ) + return True + + log.warning( + "[EVAL] [process-run] unsupported run topology", + run_id=run_id, + topology=topology.label, + topology_status=topology.status, + reason=topology.reason, + ) + return False + + +async def process_evaluation_slice( + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + source_kind: EvaluationSliceSource, + trace_ids: Optional[list[str]] = None, + testcase_ids: Optional[list[UUID]] = None, + input_step_key: Optional[str] = None, + tracing_service: TracingService, + testcases_service: TestcasesService, + workflows_service: WorkflowsService, + evaluations_service: EvaluationsService, +) -> bool: + if source_kind == "traces": + await process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + trace_ids=trace_ids or [], + input_step_key=input_step_key, + tracing_service=tracing_service, + workflows_service=workflows_service, + evaluations_service=evaluations_service, + ) + return True + + if source_kind == "testcases": + await process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + testcase_ids=testcase_ids or [], + input_step_key=input_step_key, + tracing_service=tracing_service, + testcases_service=testcases_service, + workflows_service=workflows_service, + evaluations_service=evaluations_service, + ) + return True + + log.warning( + "[EVAL] [process-slice] unsupported source kind", + run_id=run_id, + source_kind=source_kind, + ) + return False diff --git a/api/oss/src/core/evaluations/types.py b/api/oss/src/core/evaluations/types.py index b9167f13a3..27411a0aa1 100644 --- a/api/oss/src/core/evaluations/types.py +++ b/api/oss/src/core/evaluations/types.py @@ -75,6 +75,56 @@ def __str__(self): return _message +class DefaultQueueError(Exception): + """Base exception for default-queue policy violations.""" + + def __init__(self, message: str, queue_id: Optional[UUID] = None): + super().__init__(message) + self.message = message + self.queue_id = queue_id + + def __str__(self): + _message = self.message + if self.queue_id: + _message += f" queue_id={self.queue_id}" + return _message + + +class DefaultQueueDataInvalid(DefaultQueueError): + """Raised when a default queue carries scenario/step/assignment/batch filters.""" + + def __init__( + self, + message: str = ( + "default queues cannot filter scenarios, steps, assignments, or batches" + ), + queue_id: Optional[UUID] = None, + ): + super().__init__(message, queue_id=queue_id) + + +class DefaultQueueDemotionForbidden(DefaultQueueError): + """Raised when an edit attempts to demote a default queue.""" + + def __init__( + self, + message: str = "default queues cannot be demoted", + queue_id: Optional[UUID] = None, + ): + super().__init__(message, queue_id=queue_id) + + +class DefaultQueueDeletionForbidden(DefaultQueueError): + """Raised when a hard delete targets a default queue (must be archived instead).""" + + def __init__( + self, + message: str = "default queues must be archived, not hard deleted", + queue_id: Optional[UUID] = None, + ): + super().__init__(message, queue_id=queue_id) + + # - EVALUATION RUN ------------------------------------------------------------- @@ -82,12 +132,14 @@ class EvaluationRunFlags(BaseModel): is_live: bool = False # Indicates if the run has live queries is_active: bool = False # Indicates if the run is currently active is_closed: bool = False # Indicates if the run is modifiable - is_queue: bool = False # Indicates this run belongs to a simple annotation queue + is_queue: bool = False # Indicates active default queue + active human work is_cached: bool = False # Indicates the run should reuse traces by hash is_split: bool = False # Indicates repeats fan out at the application step # - has_queries: bool = False # Indicates if the run has queries - has_testsets: bool = False # Indicates if the run has testsets + has_queries: bool = False # Indicates if the run has query-backed inputs + has_testsets: bool = False # Indicates if the run has testset-backed inputs + has_traces: bool = False # Indicates if the run has direct trace inputs + has_testcases: bool = False # Indicates if the run has direct testcase inputs has_evaluators: bool = False # Indicates if the run has evaluators # has_custom: bool = False # Indicates if the run has custom evaluators @@ -100,13 +152,19 @@ class EvaluationRunQueryFlags(BaseModel): is_active: Optional[bool] = None # Indicates if the run is currently active is_closed: Optional[bool] = None # Indicates if the run is modifiable is_queue: Optional[bool] = ( - None # Indicates this run belongs to a simple annotation queue + None # Indicates active default queue + active human work ) is_cached: Optional[bool] = None # Indicates the run should reuse traces by hash is_split: Optional[bool] = None # Indicates repeats fan out at the application step # - has_queries: Optional[bool] = None # Indicates if the run has queries - has_testsets: Optional[bool] = None # Indicates if the run has testsets + has_queries: Optional[bool] = None # Indicates if the run has query-backed inputs + has_testsets: Optional[bool] = ( + None # Indicates if the run has testset-backed inputs + ) + has_traces: Optional[bool] = None # Indicates if the run has direct trace inputs + has_testcases: Optional[bool] = ( + None # Indicates if the run has direct testcase inputs + ) has_evaluators: Optional[bool] = None # Indicates if the run has evaluators # has_custom: Optional[bool] = None # Indicates if the run has custom evaluators @@ -141,9 +199,16 @@ class EvaluationRunDataMapping(BaseModel): step: EvaluationRunDataMappingStep +class EvaluationRunDataConcurrency(BaseModel): + batch_size: Optional[int] = None + max_retries: Optional[int] = None + retry_delay: Optional[float] = None + + class EvaluationRunData(BaseModel): steps: Optional[List[EvaluationRunDataStep]] = None repeats: Optional[int] = 1 + concurrency: Optional[EvaluationRunDataConcurrency] = None mappings: Optional[List[EvaluationRunDataMapping]] = None @field_validator("repeats") @@ -387,10 +452,12 @@ class EvaluationMetricsSpecsRefresh(BaseModel): class EvaluationQueueFlags(BaseModel): is_sequential: bool = False + is_default: bool = False class EvaluationQueueQueryFlags(BaseModel): is_sequential: Optional[bool] = None + is_default: Optional[bool] = None class EvaluationQueueData(BaseModel): @@ -466,6 +533,7 @@ class EvaluationQueueEdit(Identifier, Header, Metadata): class EvaluationQueueQuery(Header, Metadata): flags: Optional[EvaluationQueueQueryFlags] = None # type: ignore + include_archived: Optional[bool] = None user_id: Optional[UUID] = None user_ids: Optional[List[UUID]] = None @@ -500,6 +568,7 @@ class SimpleEvaluationData(BaseModel): evaluator_steps: Optional[Target] = None repeats: Optional[int] = None + concurrency: Optional[EvaluationRunDataConcurrency] = None class SimpleEvaluation(Version, Identifier, Lifecycle, Header, Metadata): @@ -534,6 +603,8 @@ class SimpleEvaluationQuery(Header, Metadata): class SimpleQueueKind(str, Enum): + QUERIES = "queries" + TESTSETS = "testsets" TRACES = "traces" TESTCASES = "testcases" @@ -592,8 +663,12 @@ class SimpleQueueData(BaseModel): evaluators: Optional[Target] = None """ The evaluators to run on each scenario. - Either a list of evaluator revision UUIDs (all treated as 'human'), - or a dict mapping evaluator revision UUID -> origin ('human' | 'auto' | 'custom'). + Either a list of evaluator revision UUIDs (origin-less; for a simple queue + these default to 'human'), or a dict mapping evaluator revision UUID -> + origin ('human' | 'auto' | 'custom'). A simple queue must resolve to at + least one 'human' evaluator; an explicit dict of only non-human evaluators + is rejected at the simple-queue endpoint (the underlying run itself has no + such restriction). """ repeats: Optional[int] = None @@ -632,6 +707,28 @@ def validate_sources(self): if not has_kind and not has_queries and not has_testsets: raise ValueError("simple queue requires kind, queries, or testsets") + if has_queries and self.kind not in (None, SimpleQueueKind.QUERIES): + raise ValueError("query-backed queues must use kind='queries'") + if has_testsets and self.kind not in (None, SimpleQueueKind.TESTSETS): + raise ValueError("testset-backed queues must use kind='testsets'") + if self.kind == SimpleQueueKind.QUERIES and not has_queries: + raise ValueError("kind='queries' requires query sources") + if self.kind == SimpleQueueKind.TESTSETS and not has_testsets: + raise ValueError("kind='testsets' requires testset sources") + + # Simple-queue constraint (endpoint-only, not a run-layer rule): a queue + # is human work, so it must resolve to at least one human evaluator. + # An evaluator is human when it is origin-less (defaults to human at + # build time) or explicitly origin="human". So: + # - a bare list is all origin-less -> always valid. + # - an explicit dict is valid only if at least one value is "human"; + # a dict with only non-human origins (any of auto/custom, or a mix + # of them) has no human evaluator and is rejected. + # The underlying evaluation run has no such restriction. + if isinstance(self.evaluators, dict) and self.evaluators: + if not any(origin == "human" for origin in self.evaluators.values()): + raise ValueError("simple queues must have at least one human evaluator") + return self diff --git a/api/oss/src/core/evaluations/utils.py b/api/oss/src/core/evaluations/utils.py index 8cdc68905b..f27efe659b 100644 --- a/api/oss/src/core/evaluations/utils.py +++ b/api/oss/src/core/evaluations/utils.py @@ -370,11 +370,12 @@ def effective_is_split( *, is_split: bool, is_live: bool = False, - is_queue: bool = False, + has_traces: bool = False, + has_testcases: bool = False, has_application_steps: bool = False, has_evaluator_steps: bool = False, ) -> bool: - if is_live or is_queue: + if is_live or has_traces or has_testcases: return False if not has_application_steps or not has_evaluator_steps: return False @@ -412,16 +413,6 @@ async def fetch_trace( project_id=project_id, trace_id=trace_id, ) - # spans = getattr(trace, "spans", None) if trace else None - # log.debug( - # "[EVAL] [trace] fetch attempt", - # trace_id=trace_id, - # attempt=attempt + 1, - # found=bool(trace), - # spans_type=type(spans).__name__ if spans is not None else None, - # span_count=len(spans) if isinstance(spans, dict) else None, - # usable_root_span=_has_usable_root_span(trace) if trace else False, - # ) if trace and _has_usable_root_span(trace): if isinstance(trace, Trace): return trace diff --git a/api/oss/src/core/events/streaming.py b/api/oss/src/core/events/streaming.py index c8d6f2b0ba..90e19726b4 100644 --- a/api/oss/src/core/events/streaming.py +++ b/api/oss/src/core/events/streaming.py @@ -4,7 +4,6 @@ from orjson import dumps, loads from pydantic import BaseModel -from redis.asyncio import Redis try: from asyncpg.pgproto.pgproto import UUID as AsyncpgUUID @@ -12,7 +11,7 @@ AsyncpgUUID = None from oss.src.core.events.dtos import Event -from oss.src.utils.env import env +from oss.src.dbs.redis.shared.engine import get_streams_engine from oss.src.utils.logging import get_module_logger log = get_module_logger(__name__) @@ -24,16 +23,9 @@ def _orjson_default(obj): raise TypeError(f"Type is not JSON serializable: {type(obj)}") -_redis: Optional[Redis] = None - - -def _get_redis() -> Optional[Redis]: - global _redis - - if _redis is None and env.redis.uri_durable: - _redis = Redis.from_url(env.redis.uri_durable, decode_responses=False) - - return _redis +def _get_redis(): + engine = get_streams_engine() + return engine.get_redis() if engine else None class EventMessage(BaseModel): diff --git a/api/oss/src/core/events/utils.py b/api/oss/src/core/events/utils.py index d08f68085f..b5c5afac3a 100644 --- a/api/oss/src/core/events/utils.py +++ b/api/oss/src/core/events/utils.py @@ -273,11 +273,11 @@ async def _check_l1_events_quota( try: # Deferred import: EE-only symbols stay out of the OSS import graph. - from ee.src.utils.entitlements import ( # noqa: PLC0415 + from ee.src.core.access.entitlements.service import ( # noqa: PLC0415 check_entitlements, scope_from, ) - from ee.src.core.entitlements.types import Counter # noqa: PLC0415 + from ee.src.core.access.entitlements.types import Counter # noqa: PLC0415 allowed, _, _ = await check_entitlements( key=Counter.EVENTS_INGESTED, diff --git a/api/oss/src/core/secrets/services.py b/api/oss/src/core/secrets/services.py index f986ed911a..ebd527ecb8 100644 --- a/api/oss/src/core/secrets/services.py +++ b/api/oss/src/core/secrets/services.py @@ -64,6 +64,7 @@ async def update_secret( update_secret_dto: UpdateSecretDTO, project_id: UUID | None = None, organization_id: UUID | None = None, + user_id: UUID | None = None, ): with set_data_encryption_key( data_encryption_key=self._data_encryption_key, @@ -73,6 +74,7 @@ async def update_secret( update_secret_dto=update_secret_dto, project_id=project_id, organization_id=organization_id, + user_id=user_id, ) return secret_dto diff --git a/api/oss/src/core/tracing/streaming.py b/api/oss/src/core/tracing/streaming.py index eb41d27aa7..81a145aa77 100644 --- a/api/oss/src/core/tracing/streaming.py +++ b/api/oss/src/core/tracing/streaming.py @@ -1,29 +1,20 @@ import zlib -from typing import List, Optional +from typing import List from uuid import UUID from orjson import dumps, loads from pydantic import BaseModel -from redis.asyncio import Redis -from oss.src.utils.env import env +from oss.src.dbs.redis.shared.engine import get_streams_engine from oss.src.utils.logging import get_module_logger from oss.src.core.tracing.dtos import OTelFlatSpan log = get_module_logger(__name__) -_redis: Optional[Redis] = None -def _get_redis() -> Redis: - global _redis - - if _redis is None: - if not env.redis.uri_durable: - raise RuntimeError("REDIS_URI_DURABLE is required for tracing streams.") - _redis = Redis.from_url(env.redis.uri_durable, decode_responses=False) - - return _redis +def _get_redis(): + return get_streams_engine().get_redis() class SpanMessage(BaseModel): diff --git a/api/oss/src/core/workflows/service.py b/api/oss/src/core/workflows/service.py index 0e2fcd9106..780080c01b 100644 --- a/api/oss/src/core/workflows/service.py +++ b/api/oss/src/core/workflows/service.py @@ -86,7 +86,7 @@ ResolutionInfo, ) -from oss.src.services.auth_service import sign_secret_token +from oss.src.middlewares.auth import sign_secret_token from oss.src.services.db_manager import get_project_by_id from agenta.sdk.decorators.running import ( diff --git a/api/oss/src/dbs/postgres/blobs/dao.py b/api/oss/src/dbs/postgres/blobs/dao.py index a14bc1bc5b..527e5e9e8a 100644 --- a/api/oss/src/dbs/postgres/blobs/dao.py +++ b/api/oss/src/dbs/postgres/blobs/dao.py @@ -15,7 +15,10 @@ from oss.src.dbs.postgres.shared.utils import apply_windowing from oss.src.dbs.postgres.shared.exceptions import check_entity_creation_conflict -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.blobs.mappings import map_dbe_to_dto, map_dto_to_dbe @@ -30,8 +33,12 @@ def __init__( self, *, BlobDBE: Type[T], + engine: TransactionsEngine = None, ): self.BlobDBE = BlobDBE # pylint: disable=invalid-name + if engine is None: + engine = get_transactions_engine() + self.engine = engine # ─ blobs ────────────────────────────────────────────────────────────────── @@ -63,7 +70,7 @@ async def add_blob( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -106,7 +113,7 @@ async def fetch_blob( # blob_id: UUID, ) -> Optional[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -138,7 +145,7 @@ async def edit_blob( # blob_edit: BlobEdit, ) -> Optional[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -179,7 +186,7 @@ async def remove_blob( # blob_id: UUID, ) -> Optional[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -239,7 +246,7 @@ async def add_blobs( blob_ids = [blob.id for blob in blobs] try: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -295,7 +302,7 @@ async def fetch_blobs( # blob_ids: List[UUID], ) -> List[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -331,7 +338,7 @@ async def edit_blobs( # blob_edits: List[BlobEdit], ) -> List[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -381,7 +388,7 @@ async def remove_blobs( # blob_ids: List[UUID], ) -> List[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) @@ -422,7 +429,7 @@ async def query_blobs( # windowing: Optional[Windowing] = None, ) -> List[Blob]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.BlobDBE).filter( self.BlobDBE.project_id == project_id, # type: ignore ) diff --git a/api/oss/src/dbs/postgres/evaluations/dao.py b/api/oss/src/dbs/postgres/evaluations/dao.py index 7fd522e215..69a2c7a6da 100644 --- a/api/oss/src/dbs/postgres/evaluations/dao.py +++ b/api/oss/src/dbs/postgres/evaluations/dao.py @@ -47,7 +47,10 @@ from oss.src.dbs.postgres.shared.utils import apply_windowing from oss.src.dbs.postgres.shared.exceptions import check_entity_creation_conflict -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.evaluations.utils import ( create_run_references, edit_run_references, @@ -74,8 +77,10 @@ class EvaluationsDAO(EvaluationsDAOInterface): - def __init__(self): - pass + def __init__(self, engine: TransactionsEngine = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine # - EVALUATION RUN --------------------------------------------------------- @@ -113,7 +118,7 @@ async def create_run( run_dbe.data = _run.data.model_dump(mode="json") # type: ignore try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(run_dbe) await session.commit() @@ -172,7 +177,7 @@ async def create_runs( run_dbes.append(run_dbe) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add_all(run_dbes) await session.commit() @@ -200,7 +205,7 @@ async def fetch_run( # run_id: UUID, ) -> Optional[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -233,7 +238,7 @@ async def fetch_runs( # run_ids: List[UUID], ) -> List[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -258,7 +263,7 @@ async def fetch_runs( return _runs - @suppress_exceptions() + @suppress_exceptions(exclude=[EvaluationClosedConflict]) async def edit_run( self, *, @@ -267,7 +272,7 @@ async def edit_run( # run: EvaluationRunEdit, ) -> Optional[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -309,6 +314,14 @@ async def edit_run( references=run_references, ) + # `status` is a VARCHAR column but `edit_dbe_from_dto` dumps the DTO + # without `mode="json"`, leaving an EvaluationStatus enum that does + # not persist reliably. Write the serialized value explicitly (same + # as `close_run`) so terminal statuses from the slice are saved. + if run.status is not None: + run_dbe.status = run.status.value # type: ignore + flag_modified(run_dbe, "status") + if run.data: run_dbe.data = run.data.model_dump(mode="json") # type: ignore @@ -321,7 +334,7 @@ async def edit_run( return _run - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def edit_runs( self, *, @@ -332,7 +345,7 @@ async def edit_runs( ) -> List[EvaluationRun]: run_ids = [run.id for run in runs] - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -406,7 +419,7 @@ async def delete_run( # run_id: UUID, ) -> Optional[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -438,7 +451,7 @@ async def delete_runs( # run_ids: List[UUID], ) -> List[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -478,7 +491,7 @@ async def close_run( # status: Optional[EvaluationStatus] = None, ) -> Optional[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, EvaluationRunDBE.id == run_id, @@ -526,7 +539,7 @@ async def close_runs( # run_ids: List[UUID], ) -> List[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, EvaluationRunDBE.id.in_(run_ids), @@ -576,7 +589,7 @@ async def open_run( # run_id: UUID, ) -> Optional[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, EvaluationRunDBE.id == run_id, @@ -620,7 +633,7 @@ async def open_runs( # run_ids: List[UUID], ) -> List[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, EvaluationRunDBE.id.in_(run_ids), @@ -671,7 +684,7 @@ async def query_runs( # windowing: Optional[Windowing] = None, ) -> List[EvaluationRun]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE).filter( EvaluationRunDBE.project_id == project_id, ) @@ -704,11 +717,7 @@ async def query_runs( EvaluationRunDBE.tags.contains(run.tags), ) - # meta is JSON (not JSONB) — containment (@>) is not supported - # if run.meta is not None: - # stmt = stmt.filter( - # EvaluationRunDBE.meta.contains(run.meta), - # ) + # meta is JSON (not JSONB) — containment (@>) filtering unsupported if run.status is not None: stmt = stmt.filter( @@ -759,7 +768,7 @@ async def fetch_live_runs( *, windowing: Optional[Windowing] = None, ) -> List[Tuple[UUID, EvaluationRun]]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationRunDBE) stmt = stmt.filter( @@ -806,7 +815,7 @@ async def fetch_live_runs( # - EVALUATION SCENARIO ---------------------------------------------------- - @suppress_exceptions(exclude=[EntityCreationConflict]) + @suppress_exceptions(exclude=[EntityCreationConflict, EvaluationClosedConflict]) async def create_scenario( self, *, @@ -841,7 +850,7 @@ async def create_scenario( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(scenario_dbe) await session.commit() @@ -858,7 +867,9 @@ async def create_scenario( raise - @suppress_exceptions(default=[], exclude=[EntityCreationConflict]) + @suppress_exceptions( + default=[], exclude=[EntityCreationConflict, EvaluationClosedConflict] + ) async def create_scenarios( self, *, @@ -900,7 +911,7 @@ async def create_scenarios( ] try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add_all(scenario_dbes) await session.commit() @@ -928,7 +939,7 @@ async def fetch_scenario( # scenario_id: UUID, ) -> Optional[EvaluationScenario]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -961,7 +972,7 @@ async def fetch_scenarios( # scenario_ids: List[UUID], ) -> List[EvaluationScenario]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -986,7 +997,7 @@ async def fetch_scenarios( return _scenarios - @suppress_exceptions() + @suppress_exceptions(exclude=[EvaluationClosedConflict]) async def edit_scenario( self, *, @@ -995,7 +1006,7 @@ async def edit_scenario( # scenario: EvaluationScenarioEdit, ) -> Optional[EvaluationScenario]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -1041,7 +1052,7 @@ async def edit_scenario( return _scenario - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def edit_scenarios( self, *, @@ -1052,7 +1063,7 @@ async def edit_scenarios( ) -> List[EvaluationScenario]: scenario_ids = [scenario.id for scenario in scenarios] - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -1108,7 +1119,7 @@ async def edit_scenarios( return _scenarios - @suppress_exceptions() + @suppress_exceptions(exclude=[EvaluationClosedConflict]) async def delete_scenario( self, *, @@ -1116,7 +1127,7 @@ async def delete_scenario( # scenario_id: UUID, ) -> Optional[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -1152,7 +1163,7 @@ async def delete_scenario( return scenario_id - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def delete_scenarios( self, *, @@ -1160,7 +1171,7 @@ async def delete_scenarios( # scenario_ids: List[UUID], ) -> List[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -1207,7 +1218,7 @@ async def query_scenario_ids( # scenario: Optional[EvaluationScenarioQuery] = None, ) -> List[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE.id).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -1254,7 +1265,7 @@ async def query_scenarios( # windowing: Optional[Windowing] = None, ) -> List[EvaluationScenario]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationScenarioDBE).filter( EvaluationScenarioDBE.project_id == project_id, ) @@ -1305,11 +1316,7 @@ async def query_scenarios( EvaluationScenarioDBE.tags.contains(scenario.tags), ) - # meta is JSON (not JSONB) — containment (@>) is not supported - # if scenario.meta is not None: - # stmt = stmt.filter( - # EvaluationScenarioDBE.meta.contains(scenario.meta), - # ) + # meta is JSON (not JSONB) — containment (@>) filtering unsupported if scenario.status is not None: stmt = stmt.filter( @@ -1346,7 +1353,7 @@ async def query_scenarios( # - EVALUATION RESULT ------------------------------------------------------ - @suppress_exceptions(exclude=[EntityCreationConflict]) + @suppress_exceptions(exclude=[EntityCreationConflict, EvaluationClosedConflict]) async def create_result( self, *, @@ -1381,7 +1388,7 @@ async def create_result( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(result_dbe) await session.commit() @@ -1398,7 +1405,9 @@ async def create_result( raise - @suppress_exceptions(default=[], exclude=[EntityCreationConflict]) + @suppress_exceptions( + default=[], exclude=[EntityCreationConflict, EvaluationClosedConflict] + ) async def create_results( self, *, @@ -1418,7 +1427,7 @@ async def create_results( run_id=result.run_id, ) - async with engine.core_session() as session: + async with self.engine.session() as session: _results = [ EvaluationResult( **result.model_dump( @@ -1462,7 +1471,7 @@ async def fetch_result( # result_id: UUID, ) -> Optional[EvaluationResult]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1495,7 +1504,7 @@ async def fetch_results( # result_ids: List[UUID], ) -> List[EvaluationResult]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1520,7 +1529,7 @@ async def fetch_results( return _results - @suppress_exceptions() + @suppress_exceptions(exclude=[EvaluationClosedConflict]) async def edit_result( self, *, @@ -1529,7 +1538,7 @@ async def edit_result( # result: EvaluationResultEdit, ) -> Optional[EvaluationResult]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1576,7 +1585,7 @@ async def edit_result( return _result - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def edit_results( self, *, @@ -1587,7 +1596,7 @@ async def edit_results( ) -> List[EvaluationResult]: result_ids = [result.id for result in results] - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1644,7 +1653,7 @@ async def edit_results( return _results - @suppress_exceptions() + @suppress_exceptions(exclude=[EvaluationClosedConflict]) async def delete_result( self, *, @@ -1652,7 +1661,7 @@ async def delete_result( # result_id: UUID, ) -> Optional[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1689,7 +1698,7 @@ async def delete_result( return result_id - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def delete_results( self, *, @@ -1697,7 +1706,7 @@ async def delete_results( # result_ids: List[UUID], ) -> List[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1745,7 +1754,7 @@ async def query_results( # windowing: Optional[Windowing] = None, ) -> List[EvaluationResult]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationResultDBE).filter( EvaluationResultDBE.project_id == project_id, ) @@ -1826,11 +1835,7 @@ async def query_results( EvaluationResultDBE.tags.contains(result.tags), ) - # meta is JSON (not JSONB) — containment (@>) is not supported - # if result.meta is not None: - # stmt = stmt.filter( - # EvaluationResultDBE.meta.contains(result.meta), - # ) + # meta is JSON (not JSONB) — containment (@>) filtering unsupported if result.status is not None: stmt = stmt.filter( @@ -1926,7 +1931,7 @@ async def create_metrics( ] # Classify metrics into 3 groups based on NULL pattern, then batch upsert - async with engine.core_session() as session: + async with self.engine.session() as session: returned_metric_dbes = [] # Convert DBE instances to dicts using SQLAlchemy's inspection mapper = inspect(EvaluationMetricsDBE) @@ -2059,7 +2064,7 @@ async def fetch_metrics( # metrics_ids: List[UUID], ) -> List[EvaluationMetrics]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationMetricsDBE).filter( EvaluationMetricsDBE.project_id == project_id, ) @@ -2084,7 +2089,7 @@ async def fetch_metrics( return _metrics - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def edit_metrics( self, *, @@ -2095,7 +2100,7 @@ async def edit_metrics( ) -> List[EvaluationMetrics]: metrics_ids = [metric.id for metric in metrics] - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationMetricsDBE).filter( EvaluationMetricsDBE.project_id == project_id, ) @@ -2152,7 +2157,7 @@ async def edit_metrics( return _metrics - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def delete_metrics( self, *, @@ -2160,7 +2165,7 @@ async def delete_metrics( # metrics_ids: Optional[List[UUID]] = None, ) -> List[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: if metrics_ids is None: return [] @@ -2211,7 +2216,7 @@ async def query_metrics( # windowing: Optional[Windowing] = None, ) -> List[EvaluationMetrics]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationMetricsDBE).filter( EvaluationMetricsDBE.project_id == project_id, ) @@ -2284,11 +2289,7 @@ async def query_metrics( EvaluationMetricsDBE.tags.contains(metric.tags), ) - # meta is JSON (not JSONB) — containment (@>) is not supported - # if metric.meta is not None: - # stmt = stmt.filter( - # EvaluationMetricsDBE.meta.contains(metric.meta), - # ) + # meta is JSON (not JSONB) — containment (@>) filtering unsupported if metric.status is not None: stmt = stmt.filter( @@ -2325,7 +2326,7 @@ async def query_metrics( # - EVALUATION QUEUE ------------------------------------------------------- - @suppress_exceptions(exclude=[EntityCreationConflict]) + @suppress_exceptions(exclude=[EntityCreationConflict, EvaluationClosedConflict]) async def create_queue( self, *, @@ -2344,6 +2345,10 @@ async def create_queue( run_id=queue.run_id, ) + # At most one ACTIVE default queue per run. This is enforced by the + # partial unique index ux_evaluation_queues_default_per_run; the insert + # below surfaces a duplicate as EntityCreationConflict via + # check_entity_creation_conflict, so no separate pre-check is needed. _queue = EvaluationQueue( **queue.model_dump( mode="json", @@ -2366,7 +2371,7 @@ async def create_queue( queue_dbe.user_ids = _flatten_queue_user_ids(queue.data) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(queue_dbe) await session.commit() @@ -2379,11 +2384,13 @@ async def create_queue( return _queue except Exception as e: - check_entity_creation_conflict(e) + check_entity_creation_conflict(e, entity="Evaluation queue") raise - @suppress_exceptions(default=[], exclude=[EntityCreationConflict]) + @suppress_exceptions( + default=[], exclude=[EntityCreationConflict, EvaluationClosedConflict] + ) async def create_queues( self, *, @@ -2422,7 +2429,7 @@ async def create_queues( queue_dbe.user_ids = _flatten_queue_user_ids(queue.data) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add_all(queue_dbes) await session.commit() @@ -2450,7 +2457,7 @@ async def fetch_queue( # queue_id: UUID, ) -> Optional[EvaluationQueue]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) @@ -2483,7 +2490,7 @@ async def fetch_queues( # queue_ids: List[UUID], ) -> List[EvaluationQueue]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) @@ -2508,7 +2515,7 @@ async def fetch_queues( return _queues - @suppress_exceptions() + @suppress_exceptions(exclude=[EvaluationClosedConflict]) async def edit_queue( self, *, @@ -2517,7 +2524,7 @@ async def edit_queue( # queue: EvaluationQueueEdit, ) -> Optional[EvaluationQueue]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) @@ -2569,7 +2576,7 @@ async def edit_queue( return _queue - @suppress_exceptions(default=[]) + @suppress_exceptions(default=[], exclude=[EvaluationClosedConflict]) async def edit_queues( self, *, @@ -2579,7 +2586,7 @@ async def edit_queues( ) -> List[EvaluationQueue]: queue_ids = [queue.id for queue in queues] - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) @@ -2641,6 +2648,63 @@ async def edit_queues( return _queues + @suppress_exceptions() + async def archive_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue_id: UUID, + ) -> Optional[EvaluationQueue]: + async with self.engine.session() as session: + stmt = ( + select(EvaluationQueueDBE) + .filter( + EvaluationQueueDBE.project_id == project_id, + EvaluationQueueDBE.id == queue_id, + ) + .limit(1) + ) + queue_dbe = (await session.execute(stmt)).scalars().first() + if queue_dbe is None: + return None + + now = datetime.now(timezone.utc) + queue_dbe.deleted_at = now + queue_dbe.deleted_by_id = user_id + queue_dbe.updated_at = now + queue_dbe.updated_by_id = user_id + await session.commit() + return create_dto_from_dbe(DTO=EvaluationQueue, dbe=queue_dbe) + + @suppress_exceptions() + async def unarchive_queue( + self, + *, + project_id: UUID, + user_id: UUID, + queue_id: UUID, + ) -> Optional[EvaluationQueue]: + async with self.engine.session() as session: + stmt = ( + select(EvaluationQueueDBE) + .filter( + EvaluationQueueDBE.project_id == project_id, + EvaluationQueueDBE.id == queue_id, + ) + .limit(1) + ) + queue_dbe = (await session.execute(stmt)).scalars().first() + if queue_dbe is None: + return None + + queue_dbe.deleted_at = None + queue_dbe.deleted_by_id = None + queue_dbe.updated_at = datetime.now(timezone.utc) + queue_dbe.updated_by_id = user_id + await session.commit() + return create_dto_from_dbe(DTO=EvaluationQueue, dbe=queue_dbe) + @suppress_exceptions() async def delete_queue( self, @@ -2649,7 +2713,7 @@ async def delete_queue( # queue_id: UUID, ) -> Optional[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) @@ -2681,7 +2745,7 @@ async def delete_queues( # queue_ids: List[UUID], ) -> List[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) @@ -2716,11 +2780,14 @@ async def query_queues( # windowing: Optional[Windowing] = None, ) -> List[EvaluationQueue]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(EvaluationQueueDBE).filter( EvaluationQueueDBE.project_id == project_id, ) + if not queue or not queue.include_archived: + stmt = stmt.filter(EvaluationQueueDBE.deleted_at.is_(None)) + if queue is not None: if queue.ids is not None: stmt = stmt.filter( @@ -2763,11 +2830,7 @@ async def query_queues( EvaluationQueueDBE.tags.contains(queue.tags), ) - # meta is JSON (not JSONB) — containment (@>) is not supported - # if queue.meta is not None: - # stmt = stmt.filter( - # EvaluationQueueDBE.meta.contains(queue.meta), - # ) + # meta is JSON (not JSONB) — containment (@>) filtering unsupported if queue.name is not None: stmt = stmt.filter( @@ -2812,7 +2875,8 @@ async def _get_run_flags( session: Optional[AsyncSession] = None, ) -> dict: if session is None: - async with engine.core_session() as session: + engine = get_transactions_engine() + async with engine.session() as session: return await _get_run_flags( project_id=project_id, run_id=run_id, diff --git a/api/oss/src/dbs/postgres/evaluations/dbes.py b/api/oss/src/dbs/postgres/evaluations/dbes.py index e3ad7e8490..2852ed52d2 100644 --- a/api/oss/src/dbs/postgres/evaluations/dbes.py +++ b/api/oss/src/dbs/postgres/evaluations/dbes.py @@ -3,6 +3,7 @@ ForeignKeyConstraint, UniqueConstraint, Index, + text, ) from oss.src.dbs.postgres.shared.base import Base @@ -286,6 +287,16 @@ class EvaluationQueueDBE( "ix_evaluation_queues_run_id", "run_id", ), # for filtering + Index( + "ux_evaluation_queues_default_per_run", + "project_id", + "run_id", + unique=True, + postgresql_where=text( + "(flags ->> 'is_default')::boolean = true AND deleted_at IS NULL" + ), + ), # one ACTIVE default queue per run (archived rows excluded so a + # default can be archived then recreated/unarchived by reconcile) Index( "ix_evaluation_queues_user_ids", "user_ids", diff --git a/api/oss/src/dbs/postgres/evaluations/utils.py b/api/oss/src/dbs/postgres/evaluations/utils.py index f1d60fcfa7..9bd596bb8c 100644 --- a/api/oss/src/dbs/postgres/evaluations/utils.py +++ b/api/oss/src/dbs/postgres/evaluations/utils.py @@ -8,6 +8,14 @@ EvaluationRunQuery, ) +# Source-family detection keys. An input step's family comes from the exact +# reference key the resolvers read (`query_revision` / `testset_revision`), or — +# for reference-less direct sources — from the exact step key. +QUERY_REFERENCE_KEY = "query_revision" +TESTSET_REFERENCE_KEY = "testset_revision" +DIRECT_TRACE_STEP_KEYS = {"traces", "query-direct"} +DIRECT_TESTCASE_STEP_KEYS = {"testcases", "testset-direct"} + def _make_run_references( run: Optional[Union[EvaluationRun, EvaluationRunEdit]] = None, @@ -91,8 +99,14 @@ def _make_run_flags( if not run.data or not run.data.steps: return flags + # `is_queue` is deliberately NOT recomputed here: it depends on the + # default-queue lifecycle (which the DAO does not load) and is owned by + # EvaluationsService._reconcile_default_queue. Writing it via the DAO without + # running reconcile leaves it stale. Only the `has_*` shape flags below. flags.has_queries = False flags.has_testsets = False + flags.has_traces = False + flags.has_testcases = False flags.has_evaluators = False # flags.has_custom = False @@ -103,21 +117,22 @@ def _make_run_flags( if _step.type == "input": _references = _step.references or dict() - if flags.is_queue and not _references: + if not _references: step_key = (_step.key or "").lower() - if "query" in step_key: - flags.has_queries = True - if "testset" in step_key: - flags.has_testsets = True - - for _key in _references.keys(): - step_key = str(_key).lower() - - if "query" in step_key: - flags.has_queries = True - if "testset" in step_key: - flags.has_testsets = True + # Direct source inputs are explicit source families. Legacy + # direct keys remain recognized for old rows. + if step_key in DIRECT_TRACE_STEP_KEYS: + flags.has_traces = True + if step_key in DIRECT_TESTCASE_STEP_KEYS: + flags.has_testcases = True + + # Match the exact reference key, not a substring: a substring rule + # misfires on incidental keys like `query_anchor` / `testset_metadata`. + if QUERY_REFERENCE_KEY in _references: + flags.has_queries = True + if TESTSET_REFERENCE_KEY in _references: + flags.has_testsets = True if _step.type == "annotation": flags.has_evaluators = True diff --git a/api/oss/src/dbs/postgres/events/dao.py b/api/oss/src/dbs/postgres/events/dao.py index cb35cdc193..0b6f01c5c4 100644 --- a/api/oss/src/dbs/postgres/events/dao.py +++ b/api/oss/src/dbs/postgres/events/dao.py @@ -13,12 +13,14 @@ map_event_dto_to_dbe, map_event_dbe_to_dto, ) -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import AnalyticsEngine, get_analytics_engine class EventsDAO(EventsDAOInterface): - def __init__(self): - pass + def __init__(self, engine: AnalyticsEngine = None): + if engine is None: + engine = get_analytics_engine() + self.engine = engine ### EVENTS @@ -32,7 +34,7 @@ async def ingest( if not events: return 0 - async with engine.tracing_session() as session: + async with self.engine.session() as session: total_ingested = 0 for event in events: @@ -87,7 +89,7 @@ async def query( # windowing: Optional[Windowing] = None, ) -> List[Event]: - async with engine.tracing_session() as session: + async with self.engine.session() as session: # BASE stmt = select(EventDBE) diff --git a/api/oss/src/dbs/postgres/folders/dao.py b/api/oss/src/dbs/postgres/folders/dao.py index 2a03df3a93..c81b062f8d 100644 --- a/api/oss/src/dbs/postgres/folders/dao.py +++ b/api/oss/src/dbs/postgres/folders/dao.py @@ -20,7 +20,10 @@ FolderPathDepthExceeded, FolderPathLengthExceeded, ) -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.folders.dbes import FolderDBE from oss.src.dbs.postgres.folders.mappings import ( create_dbe_from_dto, @@ -111,8 +114,10 @@ async def _delete_folder_tree( class FoldersDAO(FoldersDAOInterface): - def __init__(self): - pass + def __init__(self, engine: TransactionsEngine = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine @suppress_exceptions( exclude=[ @@ -133,7 +138,7 @@ async def create( parent_path = None if folder_create.parent_id: - async with engine.core_session() as session: + async with self.engine.session() as session: parent = await _get_folder_row( session=session, folder_id=folder_create.parent_id, @@ -153,7 +158,7 @@ async def create( ) folder_dbe.created_by_id = user_id - async with engine.core_session() as session: + async with self.engine.session() as session: try: session.add(folder_dbe) await session.commit() @@ -175,7 +180,7 @@ async def fetch( project_id: UUID, folder_id: UUID, ) -> Optional[Folder]: - async with engine.core_session() as session: + async with self.engine.session() as session: folder = await _get_folder_row( session=session, folder_id=folder_id, @@ -207,7 +212,7 @@ async def edit( ) -> Optional[Folder]: kind = folder_edit.kind or FolderKind.APPLICATIONS - async with engine.core_session() as session: + async with self.engine.session() as session: folder = await _get_folder_row( session=session, folder_id=folder_edit.id, @@ -285,7 +290,7 @@ async def delete( user_id: UUID, folder_id: UUID, ) -> Optional[UUID]: - async with engine.core_session() as session: + async with self.engine.session() as session: folder = await _get_folder_row( session=session, folder_id=folder_id, @@ -311,7 +316,7 @@ async def query( project_id: UUID, folder_query: FolderQuery, ) -> List[Folder]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(FolderDBE).filter(FolderDBE.project_id == project_id) if folder_query.id is not None: diff --git a/api/oss/src/dbs/postgres/git/dao.py b/api/oss/src/dbs/postgres/git/dao.py index 806fa9c231..53051e04e7 100644 --- a/api/oss/src/dbs/postgres/git/dao.py +++ b/api/oss/src/dbs/postgres/git/dao.py @@ -34,7 +34,10 @@ from oss.src.dbs.postgres.shared.utils import apply_windowing from oss.src.dbs.postgres.shared.exceptions import check_entity_creation_conflict from oss.src.utils.exceptions import suppress_exceptions -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.git.mappings import ( map_dbe_to_dto, map_dto_to_dbe, @@ -54,10 +57,14 @@ def __init__( ArtifactDBE: Type[T], VariantDBE: Type[T], RevisionDBE: Type[T], + engine: TransactionsEngine = None, ): self.ArtifactDBE = ArtifactDBE # pylint: disable=invalid-name self.VariantDBE = VariantDBE # pylint: disable=invalid-name self.RevisionDBE = RevisionDBE # pylint: disable=invalid-name + if engine is None: + engine = get_transactions_engine() + self.engine = engine # ─ artifacts ────────────────────────────────────────────────────────────── @@ -96,7 +103,7 @@ async def create_artifact( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(artifact_dbe) await session.commit() @@ -129,7 +136,7 @@ async def fetch_artifact( if not artifact_ref: return None - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ArtifactDBE).filter( self.ArtifactDBE.project_id == project_id, # type: ignore ) @@ -167,7 +174,7 @@ async def edit_artifact( # artifact_edit: ArtifactEdit, ) -> Optional[Artifact]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ArtifactDBE).filter( self.ArtifactDBE.project_id == project_id, # type: ignore ) @@ -224,7 +231,7 @@ async def archive_artifact( # artifact_id: UUID, ) -> Optional[Artifact]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ArtifactDBE).filter( self.ArtifactDBE.project_id == project_id, # type: ignore ) @@ -266,7 +273,7 @@ async def unarchive_artifact( # artifact_id: UUID, ) -> Optional[Artifact]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ArtifactDBE).filter( self.ArtifactDBE.project_id == project_id, # type: ignore ) @@ -313,7 +320,7 @@ async def query_artifacts( # windowing: Optional[Windowing] = None, ) -> List[Artifact]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ArtifactDBE).filter( self.ArtifactDBE.project_id == project_id, # type: ignore ) @@ -452,7 +459,7 @@ async def create_variant( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(variant_dbe) await session.commit() @@ -486,7 +493,7 @@ async def fetch_variant( if not artifact_ref and not variant_ref: return None - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.VariantDBE) .options( @@ -538,7 +545,7 @@ async def edit_variant( # variant_edit: VariantEdit, ) -> Optional[Variant]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.VariantDBE).filter( self.VariantDBE.project_id == project_id, # type: ignore ) @@ -585,7 +592,7 @@ async def archive_variant( # variant_id: UUID, ) -> Optional[Variant]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.VariantDBE).filter( self.VariantDBE.project_id == project_id, # type: ignore ) @@ -644,7 +651,7 @@ async def unarchive_variant( # variant_id: UUID, ) -> Optional[Variant]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.VariantDBE).filter( self.VariantDBE.project_id == project_id, # type: ignore ) @@ -708,7 +715,7 @@ async def query_variants( # windowing: Optional[Windowing] = None, ) -> List[Variant]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.VariantDBE) .options( @@ -1003,7 +1010,7 @@ async def create_revision( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(revision_dbe) await session.commit() @@ -1049,7 +1056,7 @@ async def fetch_revision( if not variant_ref and not revision_ref: return None - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.RevisionDBE) .options( @@ -1118,7 +1125,7 @@ async def edit_revision( # revision_edit: RevisionEdit, ) -> Optional[Revision]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.RevisionDBE).filter( self.RevisionDBE.project_id == project_id, # type: ignore ) @@ -1165,7 +1172,7 @@ async def archive_revision( # revision_id: UUID, ) -> Optional[Revision]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.RevisionDBE).filter( self.RevisionDBE.project_id == project_id, # type: ignore ) @@ -1207,7 +1214,7 @@ async def unarchive_revision( # revision_id: UUID, ) -> Optional[Revision]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.RevisionDBE).filter( self.RevisionDBE.project_id == project_id, # type: ignore ) @@ -1258,7 +1265,7 @@ async def query_revisions( # windowing: Optional[Windowing] = None, ) -> List[Revision]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.RevisionDBE) .options( @@ -1544,7 +1551,7 @@ async def commit_revision( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(revision_dbe) await session.commit() @@ -1656,7 +1663,7 @@ async def log_revisions( # `include_archived`. ROW_NUMBER() over that set gives us each row's # 1-indexed position; we then keep rows up to the target's position # and limit to `depth` from the tail. - async with engine.core_session() as session: + async with self.engine.session() as session: visibility_filter = ( (self.RevisionDBE.deleted_at.is_(None),) # type: ignore if not include_archived @@ -1722,7 +1729,7 @@ async def _get_version( variant_id: UUID, revision_id: UUID, ) -> str: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(func.count()) # pylint: disable=not-callable .select_from(self.RevisionDBE) # type: ignore @@ -1746,7 +1753,7 @@ async def _set_version( revision_id: UUID, version: str, ) -> None: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = update(self.RevisionDBE).filter( self.RevisionDBE.project_id == project_id, # type: ignore ) @@ -1765,7 +1772,7 @@ async def _null_revision_fields( project_id: UUID, revision_id: UUID, ) -> None: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( update(self.RevisionDBE) .filter( diff --git a/api/oss/src/dbs/postgres/secrets/dao.py b/api/oss/src/dbs/postgres/secrets/dao.py index e356e84059..7a755bb8fc 100644 --- a/api/oss/src/dbs/postgres/secrets/dao.py +++ b/api/oss/src/dbs/postgres/secrets/dao.py @@ -3,8 +3,10 @@ from oss.src.dbs.postgres.secrets.dbes import SecretsDBE from oss.src.core.secrets.interfaces import SecretsDAOInterface - -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.core.secrets.dtos import CreateSecretDTO, UpdateSecretDTO from oss.src.dbs.postgres.secrets.mappings import ( @@ -17,8 +19,10 @@ class SecretsDAO(SecretsDAOInterface): - def __init__(self): - pass + def __init__(self, engine: TransactionsEngine = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine @staticmethod def _validate_scope(project_id: UUID | None, organization_id: UUID | None) -> None: @@ -48,7 +52,7 @@ async def create( organization_id=organization_id, secret_dto=create_secret_dto, ) - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(secrets_dbe) await session.commit() @@ -61,7 +65,7 @@ async def get( project_id: UUID | None, organization_id: UUID | None, ): - async with engine.core_session() as session: + async with self.engine.session() as session: scope_filter = self._scope_filter(project_id, organization_id) stmt = select(SecretsDBE).filter_by( id=secret_id, @@ -77,7 +81,7 @@ async def get( return secrets_dto async def list(self, project_id: UUID | None, organization_id: UUID | None): - async with engine.core_session() as session: + async with self.engine.session() as session: scope_filter = self._scope_filter(project_id, organization_id) stmt = select(SecretsDBE).filter_by(**scope_filter) @@ -95,8 +99,9 @@ async def update( update_secret_dto: UpdateSecretDTO, project_id: UUID | None, organization_id: UUID | None, + user_id: UUID | None = None, ): - async with engine.core_session() as session: + async with self.engine.session() as session: scope_filter = self._scope_filter(project_id, organization_id) stmt = select(SecretsDBE).filter_by( id=secret_id, @@ -109,7 +114,9 @@ async def update( return None map_secrets_dto_to_dbe_update( - secrets_dbe=secrets_dbe, update_secret_dto=update_secret_dto + secrets_dbe=secrets_dbe, + update_secret_dto=update_secret_dto, + user_id=user_id, ) await session.commit() @@ -124,7 +131,7 @@ async def delete( project_id: UUID | None, organization_id: UUID | None, ): - async with engine.core_session() as session: + async with self.engine.session() as session: scope_filter = self._scope_filter(project_id, organization_id) stmt = select(SecretsDBE).filter_by( id=secret_id, diff --git a/api/oss/src/dbs/postgres/secrets/mappings.py b/api/oss/src/dbs/postgres/secrets/mappings.py index 14397c3194..4390f6a05b 100644 --- a/api/oss/src/dbs/postgres/secrets/mappings.py +++ b/api/oss/src/dbs/postgres/secrets/mappings.py @@ -1,5 +1,6 @@ import uuid import json +from datetime import datetime, timezone from oss.src.dbs.postgres.secrets.dbes import SecretsDBE from oss.src.core.secrets.dtos import ( @@ -30,8 +31,13 @@ def map_secrets_dto_to_dbe( def map_secrets_dto_to_dbe_update( - secrets_dbe: SecretsDBE, update_secret_dto: UpdateSecretDTO + secrets_dbe: SecretsDBE, + update_secret_dto: UpdateSecretDTO, + user_id=None, ) -> None: + secrets_dbe.updated_at = datetime.now(timezone.utc) + secrets_dbe.updated_by_id = user_id + if update_secret_dto.header: for key, value in update_secret_dto.header.model_dump( exclude_none=True diff --git a/api/oss/src/dbs/postgres/shared/dbas.py b/api/oss/src/dbs/postgres/shared/dbas.py index 846d0f99df..68a9cc5714 100644 --- a/api/oss/src/dbs/postgres/shared/dbas.py +++ b/api/oss/src/dbs/postgres/shared/dbas.py @@ -97,7 +97,6 @@ class LegacyLifecycleDBA: ) updated_at = Column( TIMESTAMP(timezone=True), - server_onupdate=func.current_timestamp(), nullable=True, ) updated_by_id = Column( @@ -116,7 +115,6 @@ class LifecycleDBA: ) updated_at = Column( TIMESTAMP(timezone=True), - server_onupdate=func.current_timestamp(), nullable=True, ) deleted_at = Column( diff --git a/api/oss/src/dbs/postgres/shared/engine.py b/api/oss/src/dbs/postgres/shared/engine.py index 67253fbed1..b37985ccb9 100644 --- a/api/oss/src/dbs/postgres/shared/engine.py +++ b/api/oss/src/dbs/postgres/shared/engine.py @@ -1,5 +1,5 @@ from asyncio import current_task -from typing import AsyncGenerator +from typing import AsyncGenerator, Optional from contextlib import asynccontextmanager from math import floor @@ -11,17 +11,14 @@ async_scoped_session, ) -from oss.src.dbs.postgres.shared.config import ( - POSTGRES_URI_CORE, - POSTGRES_URI_TRACING, -) +from oss.src.utils.env import env DATABASE_MEMORY = 32 * 1024 * 1024 * 1024 # 32 GB DATABASE_FACTOR = 8 * 1024 * 1024 * 1.15 # 8 MB + 15% overhead -DATABASE_MAX_CONNECTIONS = 5000 # 5000 connections +DATABASE_MAX_CONNECTIONS = 5000 MAX_CONNECTIONS = min(DATABASE_MEMORY / DATABASE_FACTOR, DATABASE_MAX_CONNECTIONS) -APP_CONNECTIONS = MAX_CONNECTIONS * 0.9 # reserve 10% for non-app connections +APP_CONNECTIONS = MAX_CONNECTIONS * 0.9 NOF_CONSUMERS = 2 * 4 # 2 engines x 4 containers NOF_CONNECTIONS = floor(APP_CONNECTIONS / NOF_CONSUMERS) POOL_SIZE = floor(NOF_CONNECTIONS * 0.25) @@ -29,98 +26,99 @@ POOL_RECYCLE = 30 * 60 # 30 minutes -class Engine: - def __init__(self) -> None: - self.postgres_uri_core = POSTGRES_URI_CORE +class TransactionsEngine: + """Postgres core DB — application data.""" - self.async_core_engine: AsyncEngine = create_async_engine( - url=self.postgres_uri_core, + def __init__(self) -> None: + self._engine: AsyncEngine = create_async_engine( + url=env.postgres.uri_core, pool_pre_ping=True, pool_recycle=POOL_RECYCLE, pool_size=POOL_SIZE, max_overflow=MAX_OVERFLOW, ) - self.async_core_session_maker = async_sessionmaker( + _session_maker = async_sessionmaker( autocommit=False, autoflush=False, class_=AsyncSession, expire_on_commit=False, - bind=self.async_core_engine, + bind=self._engine, ) - self.async_core_session = async_scoped_session( - session_factory=self.async_core_session_maker, + self._session = async_scoped_session( + session_factory=_session_maker, scopefunc=current_task, ) - self.postgres_uri_tracing = POSTGRES_URI_TRACING + async def close(self) -> None: + if self._engine is not None: + await self._engine.dispose() - self.async_tracing_engine: AsyncEngine = create_async_engine( - url=self.postgres_uri_tracing, + @asynccontextmanager + async def session(self) -> AsyncGenerator[AsyncSession, None]: + session: AsyncSession = self._session() + try: + yield session + await session.commit() + except Exception as e: + await session.rollback() + raise e + finally: + await session.close() + + +class AnalyticsEngine: + """Postgres tracing DB — observability data.""" + + def __init__(self) -> None: + self._engine: AsyncEngine = create_async_engine( + url=env.postgres.uri_tracing, pool_pre_ping=True, pool_recycle=POOL_RECYCLE, pool_size=POOL_SIZE, max_overflow=MAX_OVERFLOW, ) - self.async_tracing_session_maker = async_sessionmaker( + _session_maker = async_sessionmaker( autocommit=False, autoflush=False, class_=AsyncSession, expire_on_commit=False, - bind=self.async_tracing_engine, + bind=self._engine, ) - - self.async_tracing_session = async_scoped_session( - session_factory=self.async_tracing_session_maker, + self._session = async_scoped_session( + session_factory=_session_maker, scopefunc=current_task, ) - async def open(self): - raise NotImplementedError() - - async def close(self): - if self.async_core_engine is not None: - await self.async_core_engine.dispose() - - if self.async_tracing_engine is not None: - await self.async_tracing_engine.dispose() + async def close(self) -> None: + if self._engine is not None: + await self._engine.dispose() @asynccontextmanager - async def core_session(self) -> AsyncGenerator[AsyncSession, None]: - session: AsyncSession = self.async_core_session() - + async def session(self) -> AsyncGenerator[AsyncSession, None]: + session: AsyncSession = self._session() try: yield session await session.commit() - except Exception as e: await session.rollback() raise e - finally: await session.close() - @asynccontextmanager - async def tracing_session(self) -> AsyncGenerator[AsyncSession, None]: - session: AsyncSession = self.async_tracing_session() - - try: - yield session - await session.commit() - - except Exception as e: - await session.rollback() - raise e - - finally: - await session.close() - ### LEGACY CODE ### +_transactions_engine: Optional[TransactionsEngine] = None +_analytics_engine: Optional[AnalyticsEngine] = None - async def init_db(self): - self.open() - async def close_db(self): - self.close() +def get_transactions_engine() -> TransactionsEngine: + global _transactions_engine + if _transactions_engine is None: + _transactions_engine = TransactionsEngine() + return _transactions_engine -engine = Engine() +def get_analytics_engine() -> AnalyticsEngine: + global _analytics_engine + if _analytics_engine is None: + _analytics_engine = AnalyticsEngine() + return _analytics_engine diff --git a/api/oss/src/dbs/postgres/tools/dao.py b/api/oss/src/dbs/postgres/tools/dao.py index f94e87f273..c3cefe279c 100644 --- a/api/oss/src/dbs/postgres/tools/dao.py +++ b/api/oss/src/dbs/postgres/tools/dao.py @@ -16,7 +16,10 @@ ToolConnectionCreate, ) -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.tools.dbes import ToolConnectionDBE from oss.src.dbs.postgres.tools.mappings import ( map_connection_create_to_dbe, @@ -28,8 +31,16 @@ class ToolsDAO(ToolsDAOInterface): - def __init__(self, *, ToolConnectionDBE: type = ToolConnectionDBE): + def __init__( + self, + *, + ToolConnectionDBE: type = ToolConnectionDBE, + engine: TransactionsEngine = None, + ): self.ToolConnectionDBE = ToolConnectionDBE + if engine is None: + engine = get_transactions_engine() + self.engine = engine @suppress_exceptions(exclude=[EntityCreationConflict]) async def create_connection( @@ -49,7 +60,7 @@ async def create_connection( ) try: - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(dbe) await session.commit() await session.refresh(dbe) @@ -80,7 +91,7 @@ async def get_connection( connection_id: UUID, ) -> Optional[ToolConnection]: """Fetch a connection by ID scoped to project_id. Returns None if not found.""" - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.ToolConnectionDBE) .filter(self.ToolConnectionDBE.project_id == project_id) @@ -109,7 +120,7 @@ async def update_connection( data_update: Optional[dict] = None, ) -> Optional[ToolConnection]: """Partially update flags and/or data for a connection. Returns updated DTO or None.""" - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.ToolConnectionDBE) .filter(self.ToolConnectionDBE.project_id == project_id) @@ -158,7 +169,7 @@ async def delete_connection( connection_id: UUID, ) -> bool: """Hard-delete a connection row. Returns True if a row was deleted.""" - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( delete(self.ToolConnectionDBE) .where(self.ToolConnectionDBE.project_id == project_id) @@ -181,7 +192,7 @@ async def query_connections( is_active: Optional[bool] = True, ) -> List[ToolConnection]: """List connections with optional filters. Defaults to active-only (is_active=True).""" - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ToolConnectionDBE).filter( self.ToolConnectionDBE.project_id == project_id, ) @@ -215,7 +226,7 @@ async def activate_connection_by_provider_id( project_id: Optional[UUID] = None, ) -> Optional[ToolConnection]: """Set is_valid=True and is_active=True for the connection matching the provider ID.""" - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(self.ToolConnectionDBE).filter( self.ToolConnectionDBE.data["connected_account_id"].astext == provider_connection_id @@ -252,7 +263,7 @@ async def find_connection_by_provider_id( provider_connection_id: str, ) -> Optional[ToolConnection]: """Lookup any connection by provider-side connected_account_id (no project scope).""" - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = ( select(self.ToolConnectionDBE) .filter( diff --git a/api/oss/src/dbs/postgres/tracing/dao.py b/api/oss/src/dbs/postgres/tracing/dao.py index e2295cac8a..e10ce0f31d 100644 --- a/api/oss/src/dbs/postgres/tracing/dao.py +++ b/api/oss/src/dbs/postgres/tracing/dao.py @@ -30,7 +30,7 @@ ) from oss.src.dbs.postgres.shared.utils import apply_windowing -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import AnalyticsEngine, get_analytics_engine from oss.src.dbs.postgres.tracing.dbes import SpanDBE from oss.src.dbs.postgres.tracing.mappings import ( map_span_dbe_to_link_dto, @@ -67,8 +67,10 @@ class TracingDAO(TracingDAOInterface): - def __init__(self): - pass + def __init__(self, engine: AnalyticsEngine = None): + if engine is None: + engine = get_analytics_engine() + self.engine = engine ### SPANS @@ -85,7 +87,7 @@ async def ingest( if not span_dtos: return [] - async with engine.tracing_session() as session: + async with self.engine.session() as session: link_dtos: List[OTelLink] = [] for span_dto in span_dtos: @@ -158,7 +160,7 @@ async def query( # --------- try: - async with engine.tracing_session() as session: + async with self.engine.session() as session: # TIMEOUT await session.execute(TIMEOUT_STMT) # ------- @@ -413,7 +415,7 @@ async def analytics( # log.trace(str(statistics_stmt.compile(**DEBUG_ARGS)).replace("\n", " ")) # --------- - async with engine.tracing_session() as session: + async with self.engine.session() as session: await session.execute(TIMEOUT_STMT) rows = (await session.execute(select(statistics_stmt))).mappings().all() @@ -544,7 +546,7 @@ async def legacy_analytics( ) = parse_windowing(query.windowing) try: - async with engine.tracing_session() as session: + async with self.engine.session() as session: await session.execute(TIMEOUT_STMT) # BASE QUERY HELPERS @@ -747,7 +749,7 @@ async def fetch( if not trace_ids and not span_ids: return [] - async with engine.tracing_session() as session: + async with self.engine.session() as session: stmt = select(SpanDBE).filter(SpanDBE.project_id == project_id) if trace_ids: @@ -785,7 +787,7 @@ async def delete( if not trace_ids: return [] - async with engine.tracing_session() as session: + async with self.engine.session() as session: stmt = select(SpanDBE).filter( SpanDBE.project_id == project_id, SpanDBE.trace_id.in_(trace_ids), @@ -874,7 +876,7 @@ async def _query_by_group( realtime: If True, use last_active (mutable, shows recent activity but unstable cursors). If False/None, use first_active (immutable, stable cursors but doesn't reflect new activity). """ - async with engine.tracing_session() as session: + async with self.engine.session() as session: # TIMEOUT await session.execute(TIMEOUT_STMT) diff --git a/api/oss/src/dbs/postgres/users/dao.py b/api/oss/src/dbs/postgres/users/dao.py index 2fbe1c71b9..5da796a824 100644 --- a/api/oss/src/dbs/postgres/users/dao.py +++ b/api/oss/src/dbs/postgres/users/dao.py @@ -3,7 +3,10 @@ from sqlalchemy import select from sqlalchemy.exc import IntegrityError -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.users.dbes import UserIdentityDBE from oss.src.dbs.postgres.users.mappings import ( map_identity_dbe_to_dto, @@ -13,10 +16,15 @@ class IdentitiesDAO: + def __init__(self, engine: Optional[TransactionsEngine] = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine + async def create(self, dto: UserIdentityCreate) -> UserIdentity: identity_dbe = map_create_dto_to_dbe(dto) - async with engine.core_session() as session: + async with self.engine.session() as session: try: session.add(identity_dbe) await session.commit() @@ -37,7 +45,7 @@ async def create(self, dto: UserIdentityCreate) -> UserIdentity: async def get_by_method_subject( self, method: str, subject: str ) -> Optional[UserIdentity]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(UserIdentityDBE).filter_by( method=method, subject=subject, @@ -51,7 +59,7 @@ async def get_by_method_subject( return map_identity_dbe_to_dto(identity_dbe) async def list_by_user(self, user_id: UUID) -> List[UserIdentity]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(UserIdentityDBE).filter_by(user_id=user_id) result = await session.execute(stmt) identity_dbes = result.scalars().all() @@ -59,7 +67,7 @@ async def list_by_user(self, user_id: UUID) -> List[UserIdentity]: return [map_identity_dbe_to_dto(dbe) for dbe in identity_dbes] async def list_by_domain(self, domain: str) -> List[UserIdentity]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(UserIdentityDBE).filter_by(domain=domain) result = await session.execute(stmt) identity_dbes = result.scalars().all() diff --git a/api/oss/src/dbs/postgres/webhooks/dao.py b/api/oss/src/dbs/postgres/webhooks/dao.py index 47a31154af..6df48b8e4e 100644 --- a/api/oss/src/dbs/postgres/webhooks/dao.py +++ b/api/oss/src/dbs/postgres/webhooks/dao.py @@ -17,7 +17,10 @@ ) from oss.src.core.webhooks.interfaces import WebhooksDAOInterface -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + TransactionsEngine, + get_transactions_engine, +) from oss.src.dbs.postgres.shared.utils import apply_windowing from oss.src.dbs.postgres.webhooks.dbes import ( WebhookSubscriptionDBE, @@ -33,8 +36,10 @@ class WebhooksDAO(WebhooksDAOInterface): - def __init__(self): - pass + def __init__(self, engine: TransactionsEngine = None): + if engine is None: + engine = get_transactions_engine() + self.engine = engine # --- SUBSCRIPTIONS ------------------------------------------------------ # @@ -57,7 +62,7 @@ async def create_subscription( secret_id=secret_id, ) - async with engine.core_session() as session: + async with self.engine.session() as session: session.add(subscription_dbe) await session.commit() @@ -75,7 +80,7 @@ async def fetch_subscription( # subscription_id: UUID, ) -> Optional[WebhookSubscription]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(WebhookSubscriptionDBE).where( WebhookSubscriptionDBE.project_id == project_id, WebhookSubscriptionDBE.id == subscription_id, @@ -102,7 +107,7 @@ async def edit_subscription( # secret_id: UUID | None = None, ) -> Optional[WebhookSubscription]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(WebhookSubscriptionDBE).where( WebhookSubscriptionDBE.id == subscription.id, WebhookSubscriptionDBE.project_id == project_id, @@ -140,7 +145,7 @@ async def delete_subscription( # subscription_id: UUID, ) -> bool: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(WebhookSubscriptionDBE).where( WebhookSubscriptionDBE.project_id == project_id, WebhookSubscriptionDBE.id == subscription_id, @@ -168,7 +173,7 @@ async def query_subscriptions( # windowing: Optional[Windowing] = None, ) -> List[WebhookSubscription]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(WebhookSubscriptionDBE).filter( WebhookSubscriptionDBE.project_id == project_id, ) @@ -234,7 +239,7 @@ async def create_delivery( delivery=delivery, ) - async with engine.core_session() as session: + async with self.engine.session() as session: values = { c.name: getattr(delivery_dbe, c.name) for c in WebhookDeliveryDBE.__table__.columns @@ -275,7 +280,7 @@ async def fetch_delivery( # delivery_id: UUID, ) -> Optional[WebhookDelivery]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(WebhookDeliveryDBE).where( WebhookDeliveryDBE.project_id == project_id, WebhookDeliveryDBE.id == delivery_id, @@ -301,7 +306,7 @@ async def query_deliveries( # windowing: Optional[Windowing] = None, ) -> List[WebhookDelivery]: - async with engine.core_session() as session: + async with self.engine.session() as session: stmt = select(WebhookDeliveryDBE).filter( WebhookDeliveryDBE.project_id == project_id, ) diff --git a/api/oss/src/dbs/redis/shared/engine.py b/api/oss/src/dbs/redis/shared/engine.py new file mode 100644 index 0000000000..02153a9772 --- /dev/null +++ b/api/oss/src/dbs/redis/shared/engine.py @@ -0,0 +1,89 @@ +from typing import TYPE_CHECKING, Optional + +from oss.src.utils.env import env + +if TYPE_CHECKING: + from redis.asyncio import Redis + + +class CacheEngine: + """Redis volatile — caching and distributed locks.""" + + def __init__(self) -> None: + from redis.asyncio import Redis + + self._r: Optional[Redis] = None + self._r_lock: Optional[Redis] = None + + def get_r(self) -> "Redis": + if self._r is None: + from redis.asyncio import Redis + + self._r = Redis.from_url( + url=env.redis.uri_volatile, + decode_responses=False, + socket_timeout=0.5, + ) + return self._r + + def get_r_lock(self) -> "Redis": + if self._r_lock is None: + from redis.asyncio import Redis + + AGENTA_LOCK_SOCKET_TIMEOUT = 30 + + self._r_lock = Redis.from_url( + url=env.redis.uri_volatile, + decode_responses=False, + socket_timeout=AGENTA_LOCK_SOCKET_TIMEOUT, + ) + return self._r_lock + + async def close(self) -> None: + if self._r is not None: + await self._r.close() + self._r = None + if self._r_lock is not None: + await self._r_lock.close() + self._r_lock = None + + +class StreamsEngine: + """Redis durable — persistent streams for tracing/events.""" + + def __init__(self) -> None: + from redis.asyncio import Redis + + self._redis: Optional[Redis] = None + + def get_redis(self) -> "Redis": + if self._redis is None: + from redis.asyncio import Redis + + if not env.redis.uri_durable: + raise RuntimeError("REDIS_URI_DURABLE is required for streams.") + self._redis = Redis.from_url(env.redis.uri_durable, decode_responses=False) + return self._redis + + async def close(self) -> None: + if self._redis is not None: + await self._redis.close() + self._redis = None + + +_cache_engine: Optional[CacheEngine] = None +_streams_engine: Optional[StreamsEngine] = None + + +def get_cache_engine() -> CacheEngine: + global _cache_engine + if _cache_engine is None: + _cache_engine = CacheEngine() + return _cache_engine + + +def get_streams_engine() -> StreamsEngine: + global _streams_engine + if _streams_engine is None: + _streams_engine = StreamsEngine() + return _streams_engine diff --git a/api/oss/src/middlewares/__init__.py b/api/oss/src/middlewares/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/api/oss/src/services/analytics_service.py b/api/oss/src/middlewares/analytics.py similarity index 89% rename from api/oss/src/services/analytics_service.py rename to api/oss/src/middlewares/analytics.py index 77b08fe8c7..a462ffdb84 100644 --- a/api/oss/src/services/analytics_service.py +++ b/api/oss/src/middlewares/analytics.py @@ -3,12 +3,12 @@ from datetime import datetime from typing import Callable, Optional -import posthog from fastapi import Request from oss.src.utils.caching import get_cache, set_cache from oss.src.utils.common import is_oss from oss.src.utils.env import env from oss.src.utils.logging import get_module_logger +from oss.src.utils.lazy import _load_posthog log = get_module_logger(__name__) @@ -44,15 +44,6 @@ } -# Initialize PostHog only if enabled -if env.posthog.enabled: - posthog.api_key = env.posthog.api_key - posthog.host = env.posthog.api_url - log.info("✓ PostHog enabled") -else: - log.warn("✗ PostHog disabled") - - async def _set_activation_property( distinct_id: str, property_name: str, @@ -66,6 +57,10 @@ async def _set_activation_property( if not distinct_id or not env.posthog.enabled: return + posthog = _load_posthog() + if posthog is None: + return + project_id = getattr(request.state, "project_id", None) user_id = getattr(request.state, "user_id", None) @@ -121,6 +116,10 @@ def capture_oss_deployment_created(user_email: str, organization_id: str): """ if is_oss() and env.posthog.enabled: + posthog = _load_posthog() + if posthog is None: + return + try: posthog.capture( distinct_id=user_email, @@ -247,28 +246,32 @@ async def analytics_middleware(request: Request, call_next: Callable): pass if distinct_id and env.posthog.api_key: - properties["$set"] = {"email": distinct_id} - - posthog.capture( - distinct_id=distinct_id, - event=event_name, - properties=properties or {}, - ) - - # Check if this is an activation event - if event_name in ACTIVATION_EVENTS: - property_name, allowed_auth_methods = ACTIVATION_EVENTS[event_name] - - # Check if auth method is allowed for this activation - if ( - allowed_auth_methods is None - or auth_method in allowed_auth_methods - ): - await _set_activation_property( - distinct_id=distinct_id, - property_name=property_name, - request=request, - ) + posthog = _load_posthog() + if posthog is not None: + properties["$set"] = {"email": distinct_id} + + posthog.capture( + distinct_id=distinct_id, + event=event_name, + properties=properties or {}, + ) + + # Check if this is an activation event + if event_name in ACTIVATION_EVENTS: + property_name, allowed_auth_methods = ACTIVATION_EVENTS[ + event_name + ] + + # Check if auth method is allowed for this activation + if ( + allowed_auth_methods is None + or auth_method in allowed_auth_methods + ): + await _set_activation_property( + distinct_id=distinct_id, + property_name=property_name, + request=request, + ) except Exception as e: log.error(f"❌ Error capturing event in PostHog: {e}") diff --git a/api/oss/src/services/auth_service.py b/api/oss/src/middlewares/auth.py similarity index 99% rename from api/oss/src/services/auth_service.py rename to api/oss/src/middlewares/auth.py index 2470262875..e86b4d5f02 100644 --- a/api/oss/src/services/auth_service.py +++ b/api/oss/src/middlewares/auth.py @@ -27,7 +27,7 @@ from oss.src.utils.common import is_ee from oss.src.services import db_manager from oss.src.services import api_key_service -from oss.src.services.exceptions import ( +from oss.src.utils.exceptions import ( UnauthorizedException, InternalServerErrorException, GatewayTimeoutException, @@ -127,7 +127,7 @@ def _log_bearer_auth_denied( ) -async def authentication_middleware(request: Request, call_next): +async def auth_middleware(request: Request, call_next): """ Middleware function for authentication. @@ -438,7 +438,7 @@ def _deny(stage: str, reason: str, exc: Optional[Exception] = None): log.error("Timeout: get_user_from_supertokens()") raise GatewayTimeoutException( - detail="Failed to reach auth provider. Please try again later.", + message="Failed to reach auth provider. Please try again later.", ) from e if not user_info: diff --git a/api/oss/src/models/api/workspace_models.py b/api/oss/src/models/api/workspace_models.py index f5b8bf66e8..8200b01035 100644 --- a/api/oss/src/models/api/workspace_models.py +++ b/api/oss/src/models/api/workspace_models.py @@ -17,7 +17,7 @@ class InviteRequest(BaseModel): email: str # Role slugs are dynamic at runtime (env-overridable via AGENTA_ACCESS_ROLES); # validation against the effective workspace catalog happens at the API - # boundary via `ee.src.core.entitlements.controls.get_role`. + # boundary via `ee.src.core.access.controls.get_role`. roles: Optional[List[str]] = None diff --git a/api/oss/src/routers/api_key_router.py b/api/oss/src/routers/api_key_router.py index 55e73d4246..0febd547fd 100644 --- a/api/oss/src/routers/api_key_router.py +++ b/api/oss/src/routers/api_key_router.py @@ -7,8 +7,8 @@ from oss.src.models.api.api_models import ListAPIKeysResponse if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import check_action_access router = APIRouter() diff --git a/api/oss/src/routers/health_router.py b/api/oss/src/routers/health_router.py deleted file mode 100644 index 2288ef95ce..0000000000 --- a/api/oss/src/routers/health_router.py +++ /dev/null @@ -1,9 +0,0 @@ -from fastapi import status -from oss.src.utils.common import APIRouter - -router = APIRouter() - - -@router.get("/", status_code=status.HTTP_200_OK, operation_id="health_check") -def health_check(): - return {"status": "ok"} diff --git a/api/oss/src/routers/organization_router.py b/api/oss/src/routers/organization_router.py index fdfaba7846..ded7ea68d3 100644 --- a/api/oss/src/routers/organization_router.py +++ b/api/oss/src/routers/organization_router.py @@ -30,21 +30,21 @@ def _role_description(role: str) -> str: """ if not is_ee(): return "" - from ee.src.core.entitlements.controls import get_role_description + from ee.src.core.access.controls import get_role_description return get_role_description("workspace", role) or "" if is_ee(): - from ee.src.utils.permissions import check_action_access - from ee.src.models.shared_models import Permission + from ee.src.core.access.permissions.service import check_action_access + from ee.src.core.access.permissions.types import Permission from ee.src.services import db_manager_ee, workspace_manager - from ee.src.services.selectors import ( + from ee.src.services.db_manager_ee import ( get_user_org_and_workspace_id, ) from ee.src.services.organization_service import notify_org_admin_invitation - from ee.src.utils.entitlements import ( + from ee.src.core.access.entitlements.service import ( check_entitlements, scope_from, Tracker, diff --git a/api/oss/src/routers/permissions_router.py b/api/oss/src/routers/permissions_router.py deleted file mode 100644 index d2dbf40191..0000000000 --- a/api/oss/src/routers/permissions_router.py +++ /dev/null @@ -1,231 +0,0 @@ -from typing import Optional, Union -from uuid import UUID - -from fastapi.responses import JSONResponse -from fastapi import Query, HTTPException - -from oss.src.utils.logging import get_module_logger -from oss.src.utils.caching import get_cache, set_cache -from oss.src.utils.context import get_auth_context, get_auth_scope - -from oss.src.utils.common import is_ee, is_oss, APIRouter - -if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access - from ee.src.utils.entitlements import check_entitlements, Counter - - -router = APIRouter() - -log = get_module_logger(__name__) - - -class Allow(JSONResponse): - def __init__( - self, - credentials: Optional[str] = None, - ) -> None: - super().__init__( - status_code=200, - content={ - "effect": "allow", - "credentials": credentials, - }, - ) - - -class Deny(HTTPException): - def __init__(self) -> None: - super().__init__( - status_code=403, - detail="Forbidden", - ) - - -@router.get( - "/verify", - operation_id="verify_permissions", -) -async def verify_permissions( - action: Optional[str] = Query(None), - scope_type: Optional[str] = Query(None), - scope_id: Optional[UUID] = Query(None), - resource_type: Optional[str] = Query(None), - resource_id: Optional[UUID] = Query(None), -): - ctx = get_auth_context() - project_id = str(ctx.scope.project_id) - user_id = str(ctx.scope.user_id) - credentials_header = ctx.credentials.header()[1] - - cache_key = { - "action": action, - "scope_type": scope_type, - "scope_id": scope_id, - "resource_type": resource_type, - "resource_id": resource_id, - } - - try: - if is_oss(): - return Allow(credentials_header) - - if not action or not resource_type: - log.warn("Missing required parameters: action, resource_type") - raise Deny() - - allow = await get_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - ) - # allow = None - - if allow == "allow": - return Allow(credentials_header) - if allow == "deny": - log.warn("Permission denied") - raise Deny() - - # CHECK PERMISSION 1/3: SCOPE - allow_scope = await check_scope_access( - scope_type=scope_type, - scope_id=scope_id, - ) - - if not allow_scope: - log.warn("Scope access denied") - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="deny", - ) - raise Deny() - - # CHECK PERMISSION 1/2: ACTION - allow_action = await check_action_access( - project_id=project_id, - user_uid=user_id, - permission=Permission(action), - ) - - if not allow_action: - log.warn("Action access denied") - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="deny", - ) - raise Deny() - - # CHECK PERMISSION 3/3: RESOURCE - allow_resource = await check_resource_access( - resource_type=resource_type, - ) - - if isinstance(allow_resource, bool): - if allow_resource is False: - log.warn("Resource access denied") - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="deny", - ) - raise Deny() - - if allow_resource is True: - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="allow", - ) - return Allow(credentials_header) - - elif isinstance(allow_resource, int): - if allow_resource <= 0: - log.warn("Resource access denied") - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="deny", - ) - raise Deny() - else: - return Allow(credentials_header) - - # else: - log.warn("Resource access denied") - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="deny", - ) - raise Deny() - - except Exception as exc: # pylint: disable=bare-except - log.warn(exc) - await set_cache( - project_id=project_id, - user_id=user_id, - namespace="verify_permissions", - key=cache_key, - value="deny", - ) - raise Deny() from exc - - -async def check_scope_access( - scope_type: Optional[str] = None, - scope_id: Optional[UUID] = None, -) -> bool: - auth_scope = get_auth_scope() - - allow_scope = False - - if scope_type == "project": - allow_scope = str(auth_scope.project_id) == str(scope_id) - elif scope_type == "workspace": - allow_scope = str(auth_scope.workspace_id) == str(scope_id) - elif not scope_type and not scope_id: - allow_scope = True - - return allow_scope - - -async def check_resource_access( - resource_type: Optional[str] = None, -) -> Union[bool, int]: - allow_resource = False - - if resource_type == "service": - allow_resource = True - - if resource_type == "local_secrets": - check, meter, _ = await check_entitlements( # type: ignore - key=Counter.CREDITS_CONSUMED, # type: ignore - delta=1, - ) - - if not check: - return False - - if not meter or not meter.value: - return False - - return meter.value - - return allow_resource diff --git a/api/oss/src/routers/user_profile.py b/api/oss/src/routers/user_profile.py index 13b7b96579..4b92dd232e 100644 --- a/api/oss/src/routers/user_profile.py +++ b/api/oss/src/routers/user_profile.py @@ -11,8 +11,8 @@ if is_ee(): - from ee.src.models.shared_models import Permission - from ee.src.utils.permissions import check_action_access + from ee.src.core.access.permissions.types import Permission + from ee.src.core.access.permissions.service import check_action_access router = APIRouter() diff --git a/api/oss/src/routers/workspace_router.py b/api/oss/src/routers/workspace_router.py index 64a574d315..546112b28f 100644 --- a/api/oss/src/routers/workspace_router.py +++ b/api/oss/src/routers/workspace_router.py @@ -9,13 +9,13 @@ from oss.src.models.api.workspace_models import Workspace if is_ee(): - from ee.src.utils.permissions import check_rbac_permission - from ee.src.models.shared_models import WorkspaceRole - from ee.src.services.selectors import get_user_org_and_workspace_id + from ee.src.core.access.permissions.service import check_rbac_permission + from ee.src.core.access.permissions.types import RequiredRole + from ee.src.services.db_manager_ee import get_user_org_and_workspace_id from ee.src.services import db_manager_ee, workspace_manager - from ee.src.core.entitlements.controls import get_roles + from ee.src.core.access.controls import get_roles - from ee.src.utils.entitlements import ( + from ee.src.core.access.entitlements.service import ( check_entitlements, scope_from, Gauge, @@ -64,7 +64,7 @@ async def get_all_workspace_roles(request: Request) -> List[Dict[str, str]]: Returns a list of all available workspace roles. Returns: - List[WorkspaceRoleResponse]: A list of WorkspaceRole objects representing the available workspace roles. + List[WorkspaceRoleResponse]: A list of DefaultRole objects representing the available workspace roles. Raises: HTTPException: If an error occurs while retrieving the workspace roles. @@ -117,7 +117,7 @@ async def remove_user_from_workspace( has_permission = await check_rbac_permission( user_org_workspace_data=user_org_workspace_data, project_id=str(project.id), - role=WorkspaceRole.ADMIN, + role=RequiredRole.ADMIN, ) if not has_permission: return JSONResponse( diff --git a/api/oss/src/services/admin_manager.py b/api/oss/src/services/admin_manager.py index c0354302ad..20084ca908 100644 --- a/api/oss/src/services/admin_manager.py +++ b/api/oss/src/services/admin_manager.py @@ -10,7 +10,7 @@ from oss.src.utils.logging import get_module_logger -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import get_transactions_engine from oss.src.services import db_manager from oss.src.models.db_models import UserDB @@ -98,7 +98,7 @@ class ProjectRequest(BaseModel): # Role slugs are dynamic at runtime (env-overridable via AGENTA_ACCESS_ROLES); # validation against the effective per-scope catalog happens at the handler -# boundary via `ee.src.core.entitlements.controls.get_role`. +# boundary via `ee.src.core.access.controls.get_role`. class OrganizationMembershipRequest(BaseModel): role: str is_demo: bool @@ -132,7 +132,9 @@ async def legacy_create_organization( return_org_wrk: bool = False, return_org_wrk_prj: bool = False, ) -> Union[OrganizationDB, WorkspaceDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: create_org_data = payload.model_dump(exclude_unset=True) create_org_data.pop("is_demo", None) @@ -235,7 +237,9 @@ async def user_exists(user_email: str) -> bool: async def check_user( request: UserRequest, ) -> Optional[UserRequest]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(UserDB).filter_by( email=request.email, @@ -252,7 +256,9 @@ async def check_user( async def create_user( request: UserRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: user_db = UserDB( # id=uuid7() # use default # @@ -279,7 +285,9 @@ async def create_organization( request: OrganizationRequest, created_by_id: uuid.UUID, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: organization_db = OrganizationDB( name=request.name, description=request.description, @@ -305,7 +313,9 @@ async def create_organization( async def create_workspace( request: WorkspaceRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: workspace_db = WorkspaceDB( # id=uuid7() # use default # @@ -334,7 +344,9 @@ async def create_workspace( async def create_project( request: ProjectRequest, ) -> Reference: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project_db = ProjectDB( # id=uuid7() # use default # diff --git a/api/oss/src/services/api_key_service.py b/api/oss/src/services/api_key_service.py index f8d78af6c7..2398d8425e 100644 --- a/api/oss/src/services/api_key_service.py +++ b/api/oss/src/services/api_key_service.py @@ -13,9 +13,7 @@ from oss.src.utils.logging import get_module_logger from oss.src.models.db_models import APIKeyDB, UserDB -from oss.src.dbs.postgres.shared.engine import engine - -# from oss.src.utils.redis_utils import redis_connection +from oss.src.dbs.postgres.shared.engine import get_transactions_engine log = get_module_logger(__name__) @@ -38,7 +36,9 @@ async def _generate_unique_prefix(): # Define the characters to use for the prefix alphabet = string.ascii_letters + string.digits - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: while True: # Generate a random 8-character prefix prefix = "".join(secrets.choice(alphabet) for _ in range(8)) @@ -82,7 +82,9 @@ async def create_api_key( # get rate limit from env rate_limit = 0 - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # Create an APIKeyDB instance with the prefix, hashed API key, and user_id api_key = APIKeyDB( prefix=prefix, @@ -115,7 +117,9 @@ async def is_valid_api_key(key: str): - The API Key object if the API key is valid, False otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # Check if the API key is valid (not blacklisted and not expired) result = await session.execute( select(APIKeyDB) @@ -136,37 +140,6 @@ async def is_valid_api_key(key: str): return api_key -# async def check_rate_limit(api_key_obj: APIKeyDB, cache_key: str): -# """ -# Checks if an API key has exceeded its rate limit. - -# Args: -# - key: The API key to be checked. - -# Returns: -# - True if the API key has exceeded its rate limit, False otherwise. -# """ - -# if api_key_obj.rate_limit > 0: -# # Check rate limiting in Redis -# r = redis_connection() -# if r is not None: -# api_requests_within_minute = r.get(cache_key) -# if api_requests_within_minute is None: -# # Initialize the count in Redis with an initial value of 1 and a one-minute TTL -# r.setex(cache_key, 60, 1) -# else: -# # Check if requests made within the last minute exceed the rate limit -# count_within_minute = int(api_requests_within_minute.decode("utf-8")) -# if count_within_minute > api_key_obj.rate_limit: -# return True - -# # increment the apikey usage count in redis -# r.incr(cache_key) - -# return False - - async def use_api_key(key: str) -> Union[APIKeyDB, bool]: """ Validates and checks the rate limit of an API key. @@ -234,7 +207,9 @@ async def list_api_keys(user_id: str, project_id: str) -> List[APIKeyDB]: List[APIKeyDB]: A list of APIKeyDB objects associated with the user, sorted by most recently created first. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(APIKeyDB) .filter_by( @@ -260,7 +235,9 @@ async def delete_api_key(user_id: str, key_prefix: str): KeyError: If the API key does not exist or does not belong to the user. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(APIKeyDB).filter_by( created_by_id=uuid.UUID(user_id), prefix=key_prefix diff --git a/api/oss/src/services/db_manager.py b/api/oss/src/services/db_manager.py index 9fdcb50382..bfabcf4758 100644 --- a/api/oss/src/services/db_manager.py +++ b/api/oss/src/services/db_manager.py @@ -17,10 +17,13 @@ from supertokens_python.asyncio import delete_user as delete_user_from_supertokens from oss.src.utils.logging import get_module_logger -from oss.src.services import user_service, analytics_service +from oss.src.services import user_service +from oss.src.middlewares import analytics from oss.src.utils.common import is_ee from oss.src.utils.env import env -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import ( + get_transactions_engine, +) from oss.src.utils.helpers import get_slug_from_name_and_id from oss.src.dbs.postgres.blobs.dao import BlobsDAO @@ -64,7 +67,8 @@ async def fetch_project_by_id( project_id: str, ) -> Optional[ProjectDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + async with engine.session() as session: project = ( ( await session.execute( @@ -91,7 +95,8 @@ async def fetch_projects_by_workspace( List[ProjectDB]: Projects scoped to the workspace. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + async with engine.session() as session: result = await session.execute( select(ProjectDB) .filter(ProjectDB.workspace_id == uuid.UUID(workspace_id)) @@ -103,7 +108,8 @@ async def fetch_projects_by_workspace( async def fetch_workspace_by_id( workspace_id: str, ) -> Optional[WorkspaceDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + async with engine.session() as session: workspace = ( ( await session.execute( @@ -122,7 +128,9 @@ async def fetch_workspace_by_id( async def fetch_organization_by_id( organization_id: str, ) -> Optional[OrganizationDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: organization = ( ( await session.execute( @@ -311,7 +319,9 @@ async def get_user(user_uid: str) -> UserDB: UserDB: instance of user """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # NOTE: Backward Compatibility # --------------------------- # Previously, the user_id field in the api_keys collection in MongoDB used the @@ -331,7 +341,9 @@ async def get_user(user_uid: str) -> UserDB: async def is_first_user_signup() -> bool: """Check if this is the first user signing up (no users exist yet).""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: total_users = ( await session.scalar(select(func.count()).select_from(UserDB)) or 0 ) @@ -401,7 +413,9 @@ async def setup_oss_organization_for_first_user( # org with SELECT ... FOR UPDATE inside a single transaction — the # second caller blocks until the first commits, then sees the # workspace and skips the insert. No schema change required. - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute( select(OrganizationDB.id).filter_by(id=organization_db.id).with_for_update() ) @@ -451,7 +465,7 @@ async def setup_oss_organization_for_first_user( user_id=user_id, ) - analytics_service.capture_oss_deployment_created( + analytics.capture_oss_deployment_created( user_email=user_email, organization_id=str(organization_db.id), ) @@ -470,7 +484,9 @@ async def check_if_user_invitation_exists(email: str, organization_id: str): "Default project not found for user invitation in organization." ) - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by( email=email, @@ -597,7 +613,9 @@ async def get_default_workspace_id_oss() -> str: orgs) cannot shadow the real singleton workspace and steer auth scope resolution to the wrong tenant. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceDB) .join(OrganizationDB, WorkspaceDB.organization_id == OrganizationDB.id) @@ -639,7 +657,9 @@ async def create_organization( EE keeps the previous behavior (one org per signup, slug left NULL). """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # For bootstrap scenario, use a placeholder UUID if not provided _owner_id = owner_id or uuid.uuid4() _created_by_id = created_by_id or _owner_id @@ -709,7 +729,9 @@ async def create_workspace(name: str, organization_id: str): WorkspaceDB: instance of workspace """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: workspace_db = WorkspaceDB( name=name, organization_id=uuid.UUID(organization_id), @@ -739,7 +761,9 @@ async def update_organization(organization_id: str, values_to_update: Dict[str, values_to_update (Dict[str, Any]): The values to update in the organization """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) ) @@ -777,7 +801,9 @@ async def create_or_update_default_project(values_to_update: Dict[str, Any]): "create_or_update_default_project requires 'organization_id' in values_to_update" ) - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(ProjectDB).filter_by( organization_id=organization_id, @@ -807,7 +833,9 @@ async def get_organizations() -> List[OrganizationDB]: List: A list of organizations. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(OrganizationDB)) organizations = result.scalars().all() return organizations @@ -824,7 +852,9 @@ async def get_organization_by_id(organization_id: str) -> OrganizationDB: OrganizationDB: The organization object if found, None otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) ) @@ -843,7 +873,9 @@ async def get_organization_by_slug(organization_slug: str) -> OrganizationDB: OrganizationDB: The organization object if found, None otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(slug=organization_slug) ) @@ -862,7 +894,9 @@ async def get_organization_owner(organization_id: str): UserDB: The owner of the organization if found, None otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).filter_by(id=uuid.UUID(organization_id)) ) @@ -887,7 +921,9 @@ async def get_user_organizations(user_id: str) -> List[OrganizationDB]: if is_ee(): from ee.src.models.db_models import OrganizationMemberDB - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: # Query organizations through organization_members table result = await session.execute( select(OrganizationDB) @@ -916,7 +952,9 @@ async def get_workspace(workspace_id: str) -> WorkspaceDB: Workspace: The retrieved workspace. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: query = select(WorkspaceDB).filter_by(id=uuid.UUID(workspace_id)) result = await session.execute(query) @@ -932,7 +970,9 @@ async def get_workspaces() -> List[WorkspaceDB]: List: A list of workspaces. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(WorkspaceDB)) workspaces = result.scalars().all() return workspaces @@ -958,7 +998,9 @@ async def remove_user_from_workspace(project_id: str, email: str): if not project: raise NoResultFound(f"Project with ID {project_id} not found") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: if user: await session.delete(user) @@ -1004,7 +1046,9 @@ async def get_user_with_id(user_id: str) -> UserDB: Exception: If an error occurs while getting the user from the database. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(id=uuid.UUID(user_id))) user = result.scalars().first() if user is None: @@ -1016,7 +1060,9 @@ async def get_user_with_id(user_id: str) -> UserDB: async def update_user_username(user_id: str, username: str) -> UserDB: """Update a user's username.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(id=uuid.UUID(user_id))) user = result.scalars().first() if user is None: @@ -1051,7 +1097,9 @@ async def get_user_with_email(email: str): if "@" not in email: raise Exception("Please provide a valid email address") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(email=email)) user = result.scalars().first() return user @@ -1089,7 +1137,9 @@ async def create_user_invitation_to_organization( if not project: raise NoResultFound(f"Project with ID {project_id} not found") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: invitation = InvitationDB( token=token, email=email, @@ -1125,7 +1175,9 @@ async def get_project_by_id(project_id: str) -> ProjectDB: str: The retrieve project or None """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project_query = await session.execute( select(ProjectDB) .options(joinedload(ProjectDB.organization).load_only(OrganizationDB.name)) @@ -1149,7 +1201,9 @@ async def get_default_project_id_from_workspace( Union[str, Exception]: The default project ID or an exception error message. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project_query = await session.execute( select(ProjectDB) .where( @@ -1247,7 +1301,8 @@ async def _create( if session is not None: return await _create(session) - async with engine.core_session() as new_session: + engine = get_transactions_engine() + async with engine.session() as new_session: return await _create(new_session) @@ -1259,7 +1314,9 @@ async def delete_project(project_id: str) -> None: project_id (str): Identifier of project to delete. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project = await session.get(ProjectDB, uuid.UUID(project_id)) if project is None: raise NoResultFound(f"Project with ID {project_id} not found") @@ -1290,7 +1347,9 @@ async def set_default_project(project_id: str) -> ProjectDB: ProjectDB: Updated project. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project = await session.get(ProjectDB, uuid.UUID(project_id)) if project is None: raise NoResultFound(f"Project with ID {project_id} not found") @@ -1333,7 +1392,9 @@ async def update_project_name(project_id: str, *, project_name: str) -> ProjectD if not project_name.strip(): raise ValueError("Project name cannot be empty") - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: project = await session.get(ProjectDB, uuid.UUID(project_id)) if project is None: raise NoResultFound(f"Project with ID {project_id} not found") @@ -1364,7 +1425,9 @@ async def get_project_invitation_by_email(project_id: str, email: str) -> Invita InvitationDB: invitation object """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by( project_id=uuid.UUID(project_id), email=email @@ -1384,7 +1447,9 @@ async def get_project_invitations(project_id: str) -> InvitationDB: List[InvitationDB]: invitation objects """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by(project_id=uuid.UUID(project_id)) ) @@ -1404,7 +1469,9 @@ async def update_invitation(invitation_id: str, values_to_update: dict) -> bool: bool: True if the invitation was successfully updated, False otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by(id=uuid.UUID(invitation_id)) ) @@ -1445,7 +1512,9 @@ async def delete_invitation(invitation_id: str) -> bool: bool: True if the invitation was successfully deleted, False otherwise. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by(id=uuid.UUID(invitation_id)) ) @@ -1497,7 +1566,9 @@ async def get_project_by_organization_id(organization_id: str): ProjectDB: project object """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(ProjectDB).filter_by(organization_id=uuid.UUID(organization_id)) ) @@ -1512,8 +1583,9 @@ async def get_default_project_by_organization_id(organization_id: str): so callers that depend on the OSS singleton invariant don't accidentally pick up an ephemeral per-account project. """ + engine = get_transactions_engine() - async with engine.core_session() as session: + async with engine.session() as session: result = await session.execute( select(ProjectDB).filter_by( organization_id=uuid.UUID(organization_id), @@ -1537,7 +1609,9 @@ async def get_project_invitation_by_token_and_email( InvitationDB: invitation object """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(InvitationDB).filter_by( project_id=uuid.UUID(project_id), token=token, email=email @@ -1561,7 +1635,9 @@ async def get_user_api_key_by_prefix( The user api key by prefix. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(APIKeyDB).filter_by( prefix=api_key_prefix, created_by_id=uuid.UUID(user_id) @@ -1577,56 +1653,74 @@ async def get_user_api_key_by_prefix( async def admin_get_user_by_id(user_id: uuid.UUID) -> Optional[UserDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(id=user_id)) return result.scalars().first() async def admin_get_user_by_email(email: str) -> Optional[UserDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(email=email)) return result.scalars().first() async def admin_get_org_by_id(org_id: uuid.UUID) -> Optional[OrganizationDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(OrganizationDB).filter_by(id=org_id)) return result.scalars().first() async def admin_get_org_by_slug(slug: str) -> Optional[OrganizationDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(OrganizationDB).filter_by(slug=slug)) return result.scalars().first() async def admin_get_workspace_by_id(ws_id: uuid.UUID) -> Optional[WorkspaceDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(WorkspaceDB).filter_by(id=ws_id)) return result.scalars().first() async def admin_get_project_by_id(proj_id: uuid.UUID) -> Optional[ProjectDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(ProjectDB).filter_by(id=proj_id)) return result.scalars().first() async def admin_get_api_key_by_id(key_id: uuid.UUID) -> Optional[APIKeyDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(APIKeyDB).filter_by(id=key_id)) return result.scalars().first() async def admin_get_api_key_by_prefix(prefix: str) -> Optional[APIKeyDB]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(APIKeyDB).filter_by(prefix=prefix)) return result.scalars().first() async def admin_get_orgs_owned_by_user(user_id: uuid.UUID) -> List[OrganizationDB]: """Return orgs where user is owner OR creator (both carry RESTRICT FK).""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(OrganizationDB).where( or_( @@ -1641,7 +1735,9 @@ async def admin_get_orgs_owned_by_user(user_id: uuid.UUID) -> List[OrganizationD async def admin_get_workspace_ids_for_orgs( org_ids: List[uuid.UUID], ) -> List[uuid.UUID]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(WorkspaceDB.id).where(WorkspaceDB.organization_id.in_(org_ids)) ) @@ -1651,7 +1747,9 @@ async def admin_get_workspace_ids_for_orgs( async def admin_get_project_ids_for_orgs( org_ids: List[uuid.UUID], ) -> List[uuid.UUID]: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute( select(ProjectDB.id).where(ProjectDB.organization_id.in_(org_ids)) ) @@ -1665,7 +1763,9 @@ async def admin_get_or_create_user( existing = await admin_get_user_by_email(email) if existing: return existing - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: user_db = UserDB( uid=str(uuid.uuid4()), username=username or email.split("@")[0], @@ -1697,7 +1797,9 @@ async def admin_create_organization( On EE behavior is unchanged: a new row is inserted with the supplied ``name``/``slug``. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: if not is_ee(): stmt = ( pg_insert(OrganizationDB) @@ -1753,7 +1855,9 @@ async def admin_create_workspace( On EE behavior is unchanged: a fresh workspace row is always inserted. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: if not is_ee(): await session.execute( select(OrganizationDB.id).filter_by(id=org_id).with_for_update() @@ -1799,7 +1903,9 @@ async def admin_create_project( *, is_default: bool = False, ) -> ProjectDB: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: proj_db = ProjectDB( project_name=name, is_default=is_default, @@ -1814,31 +1920,41 @@ async def admin_create_project( async def admin_delete_user(user_id: uuid.UUID) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute(delete(UserDB).where(UserDB.id == user_id)) await session.commit() async def admin_delete_organization(org_id: uuid.UUID) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute(delete(OrganizationDB).where(OrganizationDB.id == org_id)) await session.commit() async def admin_delete_workspace(ws_id: uuid.UUID) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute(delete(WorkspaceDB).where(WorkspaceDB.id == ws_id)) await session.commit() async def admin_delete_project(proj_id: uuid.UUID) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute(delete(ProjectDB).where(ProjectDB.id == proj_id)) await session.commit() async def admin_delete_api_key(key_id: uuid.UUID) -> None: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: await session.execute(delete(APIKeyDB).where(APIKeyDB.id == key_id)) await session.commit() @@ -1851,7 +1967,9 @@ async def admin_delete_accounts_batch( user_ids: List[uuid.UUID], ) -> None: """Delete a batch of entities atomically, in dependency order.""" - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: for proj_id in project_ids: await session.execute(delete(ProjectDB).where(ProjectDB.id == proj_id)) for ws_id in workspace_ids: @@ -1893,7 +2011,9 @@ async def admin_transfer_org_ownership_batch( of that user does not destroy orgs now owned by the target. """ now = datetime.now(timezone.utc) - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: for org_id in org_ids: await session.execute( update(OrganizationDB) diff --git a/api/oss/src/services/email_service.py b/api/oss/src/services/email_service.py deleted file mode 100644 index 8ad0540996..0000000000 --- a/api/oss/src/services/email_service.py +++ /dev/null @@ -1,73 +0,0 @@ -import os - -import sendgrid -from sendgrid.helpers.mail import Mail - -from fastapi import HTTPException - -from oss.src.utils.env import env -from oss.src.utils.logging import get_logger - -log = get_logger(__name__) - -# Initialize SendGrid only if enabled -if env.sendgrid.enabled: - sg = sendgrid.SendGridAPIClient(api_key=env.sendgrid.api_key) - log.info("✓ SendGrid enabled") -else: - sg = None - if env.sendgrid.api_key and not env.sendgrid.from_address: - log.warn("✗ SendGrid disabled: missing sender email address") - else: - log.warn("✗ SendGrid disabled") - - -def read_email_template(template_file_path): - """ - Function to read the HTML template from the file - """ - - # Get the absolute path to the template file - script_directory = os.path.dirname(os.path.abspath(__file__)) - absolute_template_file_path = os.path.join(script_directory, template_file_path) - - with open(absolute_template_file_path, "r") as template_file: - return template_file.read() - - -async def send_email( - to_email: str, subject: str, html_content: str, from_email: str -) -> bool: - """ - Send an email to a user. - - Args: - to_email (str): The email address to send the email to. - subject (str): The subject of the email. - html_content (str): The HTML content of the email. - from_email (str): The email address to send the email from. - - Returns: - bool: True if the email was sent successfully, False otherwise. - - Raises: - HTTPException: If there is an error sending the email. - """ - - # No-op if SendGrid is disabled - if not env.sendgrid.enabled: - log.info(f"[SENDGRID] Email disabled - would send '{subject}' to {to_email}") - return True - - message = Mail( - from_email=from_email, - to_emails=to_email, - subject=subject, - html_content=html_content, - ) - - try: - sg.send(message) - return True - except Exception as e: - raise HTTPException(status_code=500, detail=str(e)) diff --git a/api/oss/src/services/exceptions.py b/api/oss/src/services/exceptions.py deleted file mode 100644 index 37c62f1292..0000000000 --- a/api/oss/src/services/exceptions.py +++ /dev/null @@ -1,94 +0,0 @@ -from http import HTTPStatus - -from fastapi import HTTPException - - -def code_to_phrase(status_code: int) -> str: - try: - return HTTPStatus(status_code).phrase - except ValueError: - return "Unknown Status Code" - - -class BadRequestException(HTTPException): - def __init__( - self, - code: int = 400, - detail: str = "Bad Request", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) - - -class UnauthorizedException(HTTPException): - def __init__( - self, - code: int = 401, - detail: str = "Unauthorized", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) - - -class ForbiddenException(HTTPException): - def __init__( - self, - code: int = 403, - detail: str = "Fordidden", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) - - -class UnprocessableContentException(HTTPException): - def __init__( - self, - code: int = 422, - detail: str = "Unprocessable Content", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) - - -class TooManyRequestsException(HTTPException): - def __init__( - self, - code: int = 429, - detail: str = "Too Many Requests", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) - - -class InternalServerErrorException(HTTPException): - def __init__( - self, - code: int = 500, - detail: str = "Internal Server Error", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) - - -class GatewayTimeoutException(HTTPException): - def __init__( - self, - code: int = 504, - detail: str = "Gateway Timeout", - ): - self.code = code - self.detail = detail - - super().__init__(self.code, self.detail) diff --git a/api/oss/src/services/llm_apps_service.py b/api/oss/src/services/llm_apps_service.py deleted file mode 100644 index 9a73e768d4..0000000000 --- a/api/oss/src/services/llm_apps_service.py +++ /dev/null @@ -1,826 +0,0 @@ -import json -import asyncio -import shlex -import traceback -import aiohttp -from datetime import datetime -from typing import Any, Dict, List, Optional - -from oss.src.utils.logging import get_module_logger -from oss.src.services.auth_service import sign_secret_token -from oss.src.services.db_manager import get_project_by_id -from oss.src.models.shared_models import InvokationResult, Result, Error - -log = get_module_logger(__name__) - - -def get_nested_value(d: dict, keys: list, default=None): - """ - Helper function to safely retrieve nested values. - """ - try: - for key in keys: - if isinstance(d, dict): - d = d.get(key, default) - else: - return default - return d - except Exception as e: - log.error(f"Error accessing nested value: {e}") - return default - - -def extract_result_from_response(response: dict): - # Initialize default values - value = None - latency = None - cost = None - tokens = None - - try: - # Validate input - if not isinstance(response, dict): - raise ValueError("The response must be a dictionary.") - - # Handle version 3.0 response - if response.get("version") == "3.0": - value = response - # Ensure 'data' is a dictionary or convert it to a string - if not isinstance(value.get("data"), dict): - value["data"] = str(value.get("data")) - - if "tree" in response: - trace_tree = response.get("tree", {}).get("nodes", [])[0] - - duration_ms = get_nested_value( - trace_tree, ["metrics", "acc", "duration", "total"] - ) - if duration_ms: - duration_seconds = duration_ms / 1000 - else: - start_time = get_nested_value(trace_tree, ["time", "start"]) - end_time = get_nested_value(trace_tree, ["time", "end"]) - - if start_time and end_time: - duration_seconds = ( - datetime.fromisoformat(end_time) - - datetime.fromisoformat(start_time) - ).total_seconds() - else: - duration_seconds = None - - latency = duration_seconds - cost = get_nested_value( - trace_tree, ["metrics", "acc", "costs", "total"] - ) - tokens = get_nested_value( - trace_tree, ["metrics", "acc", "tokens", "total"] - ) - - # Handle version 2.0 response - elif response.get("version") == "2.0": - value = response - if not isinstance(value.get("data"), dict): - value["data"] = str(value.get("data")) - - if "trace" in response: - latency = response["trace"].get("latency", None) - cost = response["trace"].get("cost", None) - tokens = response["trace"].get("tokens", None) - - # Handle generic response (neither 2.0 nor 3.0) - else: - value = {"data": str(response.get("message", ""))} - latency = response.get("latency", None) - cost = response.get("cost", None) - tokens = response.get("tokens", None) - - # Determine the type of 'value' (either 'text' or 'object') - kind = "text" if isinstance(value, str) else "object" - - except ValueError as ve: - log.error(f"Input validation error: {ve}") - value = {"error": str(ve)} - kind = "error" - - except KeyError as ke: - log.error(f"Missing key: {ke}") - value = {"error": f"Missing key: {ke}"} - kind = "error" - - except TypeError as te: - log.error(f"Type error: {te}") - value = {"error": f"Type error: {te}"} - kind = "error" - - except Exception as e: - log.error(f"Unexpected error: {e}") - value = {"error": f"Unexpected error: {e}"} - kind = "error" - - return value, kind, cost, tokens, latency - - -def _parse_legacy_chat_messages(datapoint: Any) -> list[Any]: - # Legacy rows may store chat history under either `messages` or `chat`. - raw_messages = datapoint.get("messages") or datapoint.get("chat", "[]") - - if isinstance(raw_messages, list): - return raw_messages - - if isinstance(raw_messages, str): - try: - return json.loads(raw_messages) if raw_messages else [] - except (json.JSONDecodeError, TypeError): - log.warn(f"Failed to parse messages data, using empty list: {raw_messages}") - return [] - - log.warn(f"Unexpected format for messages data, using empty list: {raw_messages}") - return [] - - -def _extract_input_keys(parameters: Any) -> List[str]: - input_keys: List[str] = [] - - def visit(value: Any) -> None: - if isinstance(value, dict): - for key, nested_value in value.items(): - if key == "input_keys" and isinstance(nested_value, list): - for item in nested_value: - if isinstance(item, str) and item not in input_keys: - input_keys.append(item) - continue - visit(nested_value) - return - - if isinstance(value, list): - for item in value: - visit(item) - - visit(parameters) - return input_keys - - -def parse_legacy_inputs( - datapoint: Any, - parameters: Any, - is_chat: Optional[bool] = None, -) -> Dict: - if not isinstance(datapoint, dict): - return {} - - input_keys = _extract_input_keys(parameters) - if input_keys: - inputs = {key: datapoint.get(key, None) for key in input_keys} - else: - inputs = dict(datapoint) - - if is_chat: - inputs["messages"] = _parse_legacy_chat_messages(datapoint) - - return inputs - - -def _format_curl_request( - *, - url: str, - headers: Dict[str, str], - json_body: Dict[str, Any], -) -> str: - # Keep any future debug curl output safe by redacting sensitive headers. - redacted_headers = { - key: "[REDACTED]" - if key.lower() in {"authorization", "proxy-authorization", "cookie"} - else value - for key, value in headers.items() - } - parts = ["curl", "-X", "POST", shlex.quote(url)] - - for key, value in redacted_headers.items(): - parts.extend(["-H", shlex.quote(f"{key}: {value}")]) - - parts.extend( - [ - "--data-raw", - shlex.quote(json.dumps(json_body, ensure_ascii=False)), - ] - ) - - return " ".join(parts) - - -def build_invoke_request( - *, - inputs: Dict[str, Any], - parameters: Dict[str, Any], - references: Optional[Dict[str, Any]] = None, -) -> Dict[str, Any]: - request = { - "data": { - "parameters": parameters, - "inputs": inputs, - } - } - - if references: - request["references"] = references - - return request - - -def _extract_error_details( - app_response: Any, - *, - fallback_message: str, - fallback_stacktrace: str, -) -> tuple[str, str]: - if isinstance(app_response, dict): - detail = app_response.get("detail") - if isinstance(detail, dict): - return ( - detail.get("error", fallback_message), - detail.get("message") or detail.get("traceback") or fallback_stacktrace, - ) - if isinstance(detail, str): - return detail, fallback_stacktrace - - status = app_response.get("status") - if isinstance(status, dict): - return ( - status.get("message", fallback_message), - status.get("stacktrace") or fallback_stacktrace, - ) - - if isinstance(app_response, str) and app_response: - return app_response, fallback_stacktrace - - return fallback_message, fallback_stacktrace - - -async def invoke_app( - uri: str, - datapoint: Any, - parameters: Dict, - openapi_is_chat: Optional[bool], - user_id: str, - project_id: str, - scenario_id: Optional[str] = None, - **kwargs, -) -> InvokationResult: - """ - Invoke an application for one testcase row. - - Args: - uri (str): The URI of the app to invoke. - datapoint (Any): The testcase row data to send as `data.inputs`. - parameters (Dict): The application parameters to send as `data.parameters`. - - Returns: - InvokationResult: The output of the app. - - Raises: - aiohttp.ClientError: If the POST request fails. - """ - - url = f"{uri}/invoke" - - inputs = parse_legacy_inputs( - datapoint, - parameters, - is_chat=openapi_is_chat, - ) - request_body = build_invoke_request( - inputs=inputs, - parameters=parameters, - references=kwargs.get("references"), - ) - - project = await get_project_by_id( - project_id=project_id, - ) - - secret_token = await sign_secret_token( - user_id=str(user_id), - project_id=str(project_id), - workspace_id=str(project.workspace_id), - organization_id=str(project.organization_id), - ) - - headers = {} - if secret_token: - headers = {"Authorization": f"Secret {secret_token}"} - headers["ngrok-skip-browser-warning"] = "1" - - async with aiohttp.ClientSession() as client: - app_response = {} - - try: - log.info( - "Invoking application...", - scenario_id=scenario_id, - testcase_id=( - datapoint["testcase_id"] if "testcase_id" in datapoint else None - ), - url=url, - ) - response = await client.post( - url, - json=request_body, - headers=headers, - timeout=900, - ) - app_response = await response.json() - response.raise_for_status() - - ( - value, - kind, - cost, - tokens, - latency, - ) = extract_result_from_response(app_response) - - trace_id = app_response.get("trace_id", None) - span_id = app_response.get("span_id", None) - - log.info( - "Invoked application. ", - scenario_id=scenario_id, - trace_id=trace_id, - ) - - return InvokationResult( - result=Result( - type=kind, - value=value, - error=None, - ), - latency=latency, - cost=cost, - tokens=tokens, - trace_id=trace_id, - span_id=span_id, - ) - - except aiohttp.ClientResponseError as e: - log.error( - "Application request failed", - scenario_id=scenario_id, - testcase_id=( - datapoint["testcase_id"] if "testcase_id" in datapoint else None - ), - url=url, - status_code=e.status, - ) - error_message, stacktrace = _extract_error_details( - app_response, - fallback_message=f"HTTP error {e.status}: {e.message}", - fallback_stacktrace="".join( - traceback.format_exception_only(type(e), e) - ), - ) - log.error(f"HTTP error occurred during request: {error_message}") - except aiohttp.ServerTimeoutError as e: - error_message = "Request timed out" - stacktrace = "".join(traceback.format_exception_only(type(e), e)) - log.error(error_message) - except aiohttp.ClientConnectionError as e: - error_message = f"Connection error: {str(e)}" - stacktrace = "".join(traceback.format_exception_only(type(e), e)) - log.error(error_message) - except json.JSONDecodeError as e: - error_message = "Failed to decode JSON from response" - stacktrace = "".join(traceback.format_exception_only(type(e), e)) - log.error(error_message) - except Exception as e: - error_message = f"Unexpected error: {str(e)}" - stacktrace = "".join(traceback.format_exception_only(type(e), e)) - log.error(error_message) - - return InvokationResult( - result=Result( - type="error", - error=Error( - message=error_message, - stacktrace=stacktrace, - ), - ) - ) - - -async def run_with_retry( - uri: str, - input_data: Any, - parameters: Dict, - max_retry_count: int, - retry_delay: int, - openapi_is_chat: Optional[bool], - user_id: str, - project_id: str, - scenario_id: Optional[str] = None, - **kwargs, -) -> InvokationResult: - """ - Runs the specified app with retry mechanism. - - Args: - uri (str): The URI of the app. - input_data (Any): The input data for the app. - parameters (Dict): The parameters for the app. - max_retry_count (int): The maximum number of retries. - retry_delay (int): The delay between retries in seconds. - openapi_is_chat (Optional[bool]): Whether the app is chat, if detected. - - Returns: - InvokationResult: The invokation result. - - """ - - if "references" in kwargs and "testcase_id" in input_data: - kwargs["references"]["testcase"] = {"id": input_data["testcase_id"]} - - # references = kwargs.get("references", None) - # links = kwargs.get("links", None) - # hash_id = make_hash_id(references=references, links=links) - - retries = 0 - last_exception = None - while retries < max_retry_count: - try: - result = await invoke_app( - uri, - input_data, - parameters, - openapi_is_chat, - user_id, - project_id, - scenario_id, - **kwargs, - ) - return result - except aiohttp.ClientError as e: - last_exception = e - log.error(f"Error in evaluation. Retrying in {retry_delay} seconds:", e) - await asyncio.sleep(retry_delay) - retries += 1 - except Exception as e: - last_exception = e - log.warn( - f"Error processing datapoint: {input_data}.", - exc_info=True, - ) - log.warn("".join(traceback.format_exception_only(type(e), e))) - retries += 1 - - # If max retries is reached or an exception that isn't in the second block, - # update & return the last exception - log.warn("Max retries reached") - exception_message = ( - "Max retries reached" - if retries == max_retry_count - else f"Error processing {input_data} datapoint" - ) - - return InvokationResult( - result=Result( - type="error", - value=None, - error=Error(message=exception_message, stacktrace=str(last_exception)), - ) - ) - - -async def batch_invoke( - uri: str, - testset_data: List[Dict], - *, - rate_limit_config: Dict, - user_id: str, - project_id: str, - parameters: Optional[Dict] = None, - scenarios: Optional[List[Dict]] = None, - revision: Optional[Any] = None, - schemas: Optional[Dict[str, Any]] = None, - is_chat: Optional[bool] = None, - **kwargs, -) -> List[InvokationResult]: - """ - Invokes the LLm apps in batches, processing the testset data. - - Args: - uri (str): The URI of the LLm app. - testset_data (List[Dict]): The testset data to be processed. - parameters (Dict): The parameters for the LLm app. - rate_limit_config (Dict): The rate limit configuration. - - Returns: - List[InvokationResult]: The list of app outputs after running all batches. - """ - ( - effective_parameters, - effective_schemas, - effective_is_chat, - ) = _extract_batch_invoke_metadata( - revision=revision, - parameters=parameters, - schemas=schemas, - is_chat=is_chat, - ) - - batch_size = rate_limit_config[ - "batch_size" - ] # Number of testset to make in each batch - max_retries = rate_limit_config[ - "max_retries" - ] # Maximum number of times to retry the failed llm call - retry_delay = rate_limit_config[ - "retry_delay" - ] # Delay before retrying the failed llm call (in seconds) - delay_between_batches = rate_limit_config[ - "delay_between_batches" - ] # Delay between batches (in seconds) - - list_of_app_outputs: List[ - InvokationResult - ] = [] # Outputs after running all batches - - project = await get_project_by_id( - project_id=project_id, - ) - - secret_token = await sign_secret_token( - user_id=str(user_id), - project_id=str(project_id), - workspace_id=str(project.workspace_id), - organization_id=str(project.organization_id), - ) - - headers = {} - if secret_token: - headers = {"Authorization": f"Secret {secret_token}"} - headers["ngrok-skip-browser-warning"] = "1" - - schema_parameters, openapi_is_chat = get_parameters_from_schemas( - schemas=effective_schemas, - is_chat=effective_is_chat, - ) - - if not schema_parameters: - max_recursive_depth = 5 - runtime_prefix = uri - route_path = "" - - while max_recursive_depth > 0 and not schema_parameters: - try: - ( - schema_parameters, - openapi_is_chat, - ) = await get_parameters_from_inspect( - runtime_prefix, - route_path, - headers, - ) - except Exception: # pylint: disable=broad-exception-caught - schema_parameters = None - openapi_is_chat = None - - if not schema_parameters: - max_recursive_depth -= 1 - if not runtime_prefix.endswith("/"): - route_path = "/" + runtime_prefix.split("/")[-1] + route_path - runtime_prefix = "/".join(runtime_prefix.split("/")[:-1]) - else: - route_path = "" - runtime_prefix = runtime_prefix[:-1] - - if not schema_parameters: - schema_parameters, openapi_is_chat = await get_parameters_from_inspect( - runtime_prefix, - route_path, - headers, - ) - - # 🆕 Rewritten loop instead of recursion - for start_idx in range(0, len(testset_data), batch_size): - tasks = [] - - end_idx = min(start_idx + batch_size, len(testset_data)) - for index in range(start_idx, end_idx): - task = asyncio.ensure_future( - run_with_retry( - uri, - testset_data[index], - effective_parameters, - max_retries, - retry_delay, - openapi_is_chat, - user_id, - project_id, - scenarios[index].get("id") if scenarios else None, - **kwargs, - ) - ) - tasks.append(task) - - results = await asyncio.gather(*tasks) - - for result in results: - list_of_app_outputs.append(result) - - # Delay between batches if more to come - if end_idx < len(testset_data): - await asyncio.sleep(delay_between_batches) - - return list_of_app_outputs - - -def _to_json_dict(value: Any) -> Dict[str, Any]: - if hasattr(value, "model_dump"): - value = value.model_dump(mode="json", exclude_none=True) - - return value if isinstance(value, dict) else {} - - -def _extract_batch_invoke_metadata( - *, - revision: Optional[Any], - parameters: Optional[Dict[str, Any]], - schemas: Optional[Dict[str, Any]], - is_chat: Optional[bool], -) -> tuple[Dict[str, Any], Optional[Dict[str, Any]], Optional[bool]]: - revision_dict = _to_json_dict(revision) - revision_data = _to_json_dict(revision_dict.get("data")) - revision_flags = _to_json_dict(revision_dict.get("flags")) - - effective_parameters = parameters - if effective_parameters is None: - revision_parameters = revision_data.get("parameters") - effective_parameters = ( - revision_parameters if isinstance(revision_parameters, dict) else {} - ) - - effective_schemas = schemas - if effective_schemas is None: - revision_schemas = revision_data.get("schemas") - effective_schemas = ( - revision_schemas if isinstance(revision_schemas, dict) else None - ) - - effective_is_chat = is_chat - if effective_is_chat is None and "is_chat" in revision_flags: - effective_is_chat = bool(revision_flags["is_chat"]) - - return effective_parameters or {}, effective_schemas, effective_is_chat - - -def get_parameters_from_schemas( - schemas: Optional[Dict[str, Any]], - is_chat: Optional[bool] = None, -) -> tuple[List[Dict[str, Any]], Optional[bool]]: - if hasattr(schemas, "model_dump"): - schemas = schemas.model_dump(mode="json", exclude_none=True) - - if not isinstance(schemas, dict) or not schemas: - return [], is_chat - - parameters_schema = schemas.get("parameters") or {} - inputs_schema = schemas.get("inputs") or {} - - parameter_properties = ( - parameters_schema.get("properties", {}) - if isinstance(parameters_schema, dict) - else {} - ) - input_properties = ( - inputs_schema.get("properties", {}) if isinstance(inputs_schema, dict) else {} - ) - - parameters: List[Dict[str, Any]] = [] - - if isinstance(parameters_schema, dict): - parameters.append( - { - "name": "ag_config", - "type": "dict", - "default": list(parameter_properties.keys()), - } - ) - - input_names: List[str] = [] - has_messages = False - - for name, schema in input_properties.items(): - if not isinstance(schema, dict): - continue - - is_messages_field = name == "messages" or schema.get("x-ag-type-ref") in { - "messages", - "message", - } - - if is_messages_field: - has_messages = True - parameters.append( - { - "name": name, - "type": "messages", - "default": schema.get("default", []), - } - ) - continue - - if schema.get("x-ag-type") == "file_url": - parameters.append( - { - "name": name, - "type": "file_url", - "default": schema.get("default", ""), - } - ) - continue - - input_names.append(name) - - inferred_is_chat = is_chat if is_chat is not None else has_messages - - parameters.append( - { - "name": "inputs", - "type": "dict", - "default": input_names, - } - ) - - if inferred_is_chat and not has_messages: - parameters.append( - { - "name": "messages", - "type": "messages", - "default": [], - } - ) - - return parameters, inferred_is_chat - - -async def get_parameters_from_inspect( - runtime_prefix: str, - route_path: str, - headers: Optional[Dict[str, str]], -) -> tuple[List[Dict], Optional[bool]]: - """ - Read runtime inspect output for an LLM app and derive the UI parameter list. - """ - inspect_url = _build_inspect_url( - runtime_prefix=runtime_prefix, - route_path=route_path, - ) - payload = await _post_json_to_uri( - uri=inspect_url, - headers=headers, - body={}, - ) - - revision = (payload.get("data") or {}).get("revision") or {} - revision_data = revision.get("data") or {} - schemas = revision_data.get("schemas") - flags = payload.get("flags") - - is_chat = None - if isinstance(flags, dict) and "is_chat" in flags: - is_chat = bool(flags["is_chat"]) - - return get_parameters_from_schemas( - schemas=schemas, - is_chat=is_chat, - ) - - -def _build_inspect_url( - *, - runtime_prefix: str, - route_path: str, -) -> str: - runtime_prefix = runtime_prefix.rstrip("/") - route_path = route_path.strip("/") - - if route_path: - return f"{runtime_prefix}/{route_path}/inspect" - - return f"{runtime_prefix}/inspect" - - -async def _post_json_to_uri( - uri: str, - headers: Optional[Dict[str, str]], - body: Dict[str, Any], -): - if headers is None: - headers = {} - headers["ngrok-skip-browser-warning"] = "1" - - async with aiohttp.ClientSession() as client: - resp = await client.post(uri, headers=headers, json=body, timeout=5) - resp_text = await resp.text() - json_data = json.loads(resp_text) - return json_data diff --git a/api/oss/src/services/organization_service.py b/api/oss/src/services/organization_service.py index 46dd4e9495..ab73dace2e 100644 --- a/api/oss/src/services/organization_service.py +++ b/api/oss/src/services/organization_service.py @@ -6,7 +6,8 @@ from oss.src.utils.env import env from oss.src.models.db_models import UserDB -from oss.src.services import db_manager, email_service +from oss.src.services import db_manager +from oss.src.utils import emailing from oss.src.models.api.workspace_models import InviteRequest, ResendInviteRequest @@ -114,26 +115,17 @@ async def send_invitation_email( if not env.sendgrid.enabled: return invite_link - html_template = email_service.read_email_template("./templates/send_email.html") - html_content = html_template.format( - username_placeholder=user.username, - action_placeholder="invited you to join", - workspace_placeholder="their organization", + await emailing.send_email( + to_email=email, + subject=f"{user.username} invited you to join their organization", + username=user.username, + action="invited you to join", + workspace="their organization", call_to_action=( "Click the link below to accept the invitation:


" f'Accept Invitation' ), ) - - if not env.sendgrid.from_address: - raise ValueError("Sendgrid requires a sender email address to work.") - - await email_service.send_email( - from_email=env.sendgrid.from_address, - to_email=email, - subject=f"{user.username} invited you to join their organization", - html_content=html_content, - ) return True diff --git a/api/oss/src/services/templates/send_email.html b/api/oss/src/services/templates/send_email.html deleted file mode 100644 index 7d124ffd8a..0000000000 --- a/api/oss/src/services/templates/send_email.html +++ /dev/null @@ -1,7 +0,0 @@ -

Hello,

-

- {username_placeholder} has {action_placeholder} {workspace_placeholder} on - Agenta. -

-

{call_to_action}

-

Thank you for using Agenta!

diff --git a/api/oss/src/services/user_service.py b/api/oss/src/services/user_service.py index d254510e72..8255f4430a 100644 --- a/api/oss/src/services/user_service.py +++ b/api/oss/src/services/user_service.py @@ -5,9 +5,10 @@ from oss.src.utils.env import env from oss.src.models.db_models import UserDB from oss.src.utils.logging import get_module_logger -from oss.src.dbs.postgres.shared.engine import engine +from oss.src.dbs.postgres.shared.engine import get_transactions_engine from oss.src.models.api.user_models import UserUpdate -from oss.src.services import db_manager, email_service +from oss.src.services import db_manager +from oss.src.utils import emailing log = get_module_logger(__name__) @@ -36,7 +37,9 @@ async def delete_user(user_id: str) -> None: Raises: NoResultFound: If user with the given ID is not found. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(id=user_id)) user = result.scalars().first() @@ -68,7 +71,9 @@ async def create_new_user(payload: dict) -> UserDB: # Attempt to create new user try: - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: user = UserDB(**payload) session.add(user) @@ -110,7 +115,9 @@ async def update_user(user_uid: str, payload: UserUpdate) -> UserDB: NoResultFound: User with session id xxxx not found. """ - async with engine.core_session() as session: + engine = get_transactions_engine() + + async with engine.session() as session: result = await session.execute(select(UserDB).filter_by(uid=user_uid)) user = result.scalars().first() @@ -151,20 +158,11 @@ async def generate_user_password_reset_link(user_id: str, admin_user_id: str): if not env.sendgrid.api_key: return password_reset_link - html_template = email_service.read_email_template("./templates/send_email.html") - html_content = html_template.format( - username_placeholder=admin_user.username, - action_placeholder="requested a password reset for you in their workspace", - workspace_placeholder="", - call_to_action=f"""

Click the link below to reset your password:


Reset Password""", - ) - - if not env.sendgrid.from_address: - raise ValueError("Sendgrid requires a sender email address to work.") - - await email_service.send_email( - from_email=env.sendgrid.from_address, + await emailing.send_email( to_email=user.email, subject=f"{admin_user.username} requested a password reset for you in their workspace", - html_content=html_content, + username=admin_user.username, + action="requested a password reset for you in their workspace", + workspace="", + call_to_action=f"""

Click the link below to reset your password:


Reset Password""", ) diff --git a/api/oss/src/tasks/asyncio/events/worker.py b/api/oss/src/tasks/asyncio/events/worker.py index f21e71cd7b..156d8d718e 100644 --- a/api/oss/src/tasks/asyncio/events/worker.py +++ b/api/oss/src/tasks/asyncio/events/worker.py @@ -14,8 +14,8 @@ log = get_module_logger(__name__) if is_ee(): - from ee.src.utils.entitlements import check_entitlements, scope_from - from ee.src.core.entitlements.types import Counter + from ee.src.core.access.entitlements.service import check_entitlements, scope_from + from ee.src.core.access.entitlements.types import Counter if TYPE_CHECKING: from oss.src.tasks.asyncio.webhooks.dispatcher import WebhooksDispatcher diff --git a/api/oss/src/tasks/asyncio/tracing/worker.py b/api/oss/src/tasks/asyncio/tracing/worker.py index 5a745bfa9f..b93a414262 100644 --- a/api/oss/src/tasks/asyncio/tracing/worker.py +++ b/api/oss/src/tasks/asyncio/tracing/worker.py @@ -21,7 +21,11 @@ log = get_module_logger(__name__) if is_ee(): - from ee.src.utils.entitlements import check_entitlements, scope_from, Counter + from ee.src.core.access.entitlements.service import ( + check_entitlements, + scope_from, + Counter, + ) class TracingWorker: diff --git a/api/oss/src/tasks/asyncio/webhooks/dispatcher.py b/api/oss/src/tasks/asyncio/webhooks/dispatcher.py index b217735756..c0ff2570fc 100644 --- a/api/oss/src/tasks/asyncio/webhooks/dispatcher.py +++ b/api/oss/src/tasks/asyncio/webhooks/dispatcher.py @@ -106,12 +106,6 @@ async def _get_subscriptions( ) if cached is not None: - log.info( - "[WEBHOOKS DISPATCHER] Subscriptions cache hit", - project_id=str(project_id), - count=len(cached), - ) - decrypted = [] for sub in cached: @@ -136,12 +130,6 @@ async def _get_subscriptions( subscription=WebhookSubscriptionQuery(), ) - log.info( - "[WEBHOOKS DISPATCHER] Subscriptions loaded from DB", - project_id=str(project_id), - count=len(subscriptions), - ) - # Resolve secrets (vault reads happen only on cache miss) result: List[WebhookSubscription] = [] @@ -211,10 +199,6 @@ async def dispatch( continue if not subscriptions: - log.info( - "[WEBHOOKS DISPATCHER] No subscriptions for project", - project_id=str(project_id), - ) continue for msg in project_batch["events"]: diff --git a/api/oss/src/tasks/taskiq/evaluations/worker.py b/api/oss/src/tasks/taskiq/evaluations/worker.py index 4c70fa8d25..085f9a9d9f 100644 --- a/api/oss/src/tasks/taskiq/evaluations/worker.py +++ b/api/oss/src/tasks/taskiq/evaluations/worker.py @@ -15,14 +15,10 @@ from oss.src.core.workflows.service import WorkflowsService from oss.src.core.evaluations.service import EvaluationsService -from oss.src.core.evaluations.tasks.legacy import ( - evaluate_batch_testset as evaluate_batch_testset_impl, - evaluate_batch_invocation as evaluate_batch_invocation_impl, - evaluate_batch_testcases as evaluate_batch_testcases_impl, - evaluate_batch_traces as evaluate_batch_traces_impl, -) -from oss.src.core.evaluations.tasks.live import ( - evaluate_live_query as evaluate_live_query_impl, +from oss.src.core.evaluations.tasks.run import ( + EvaluationSliceSource, + process_evaluation_run, + process_evaluation_slice, ) from oss.src.core.evaluations.runtime.locks import ( acquire_job_lock, @@ -225,55 +221,12 @@ def _register_tasks(self): """Register all evaluation tasks with the broker.""" @self.broker.task( - task_name="evaluations.legacy.annotate", + task_name="evaluations.run.process", retry_on_error=False, max_retries=0, # Never retry - handle errors in application logic ) - async def evaluate_batch_testset( + async def process_run( *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - context: Context = TaskiqDepends(), - ) -> Any: - """Legacy annotation task - wraps the existing annotate function.""" - log.info( - "[TASK] Starting evaluate_batch_testset", - project_id=str(project_id), - user_id=str(user_id), - ) - - result = await self._with_job_lock( - run_id, - job_id=context.message.task_id or str(uuid4()), - job_type="api", - allow_concurrency=False, - runner=lambda: evaluate_batch_testset_impl( - project_id=project_id, - user_id=user_id, - # - run_id=run_id, - # - tracing_service=self.tracing_service, - testsets_service=self.testsets_service, - queries_service=self.queries_service, - workflows_service=self.workflows_service, - applications_service=self.applications_service, - evaluations_service=self.evaluations_service, - # - simple_evaluators_service=self.simple_evaluators_service, - ), - ) - log.info("[TASK] Completed evaluate_batch_testset") - return result - - @self.broker.task( - task_name="evaluations.live.evaluate", - retry_on_error=False, - max_retries=0, # Never retry - handle errors in application logic - ) - async def evaluate_live_query( project_id: UUID, user_id: UUID, # @@ -283,8 +236,8 @@ async def evaluate_live_query( oldest: Optional[datetime] = None, context: Context = TaskiqDepends(), ) -> Any: - """Live evaluation task - evaluates traces against evaluators.""" - log.info("[TASK] Starting evaluate_live_query") + """Process one evaluation run using the unified topology dispatcher.""" + log.info("[TASK] Starting process_run") if newest is None: newest = datetime.now(timezone.utc) @@ -296,168 +249,64 @@ async def evaluate_live_query( job_id=context.message.task_id or str(uuid4()), job_type="api", allow_concurrency=False, - runner=lambda: evaluate_live_query_impl( + runner=lambda: process_evaluation_run( project_id=project_id, user_id=user_id, - # run_id=run_id, - # newest=newest, oldest=oldest, - ), - ) - log.info("[TASK] Completed evaluate_live_query") - return result - - @self.broker.task( - task_name="evaluations.queries.batch", - retry_on_error=False, - max_retries=0, - ) - async def evaluate_batch_query( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - context: Context = TaskiqDepends(), - ) -> Any: - """One-shot query evaluation task for non-live runs.""" - log.info("[TASK] Starting evaluate_batch_query") - - result = await self._with_job_lock( - run_id, - job_id=context.message.task_id or str(uuid4()), - job_type="api", - allow_concurrency=False, - runner=lambda: evaluate_live_query_impl( - project_id=project_id, - user_id=user_id, - # - run_id=run_id, - # - newest=None, - oldest=None, - # - use_windowing=True, - ), - ) - log.info("[TASK] Completed evaluate_batch_query") - return result - - @self.broker.task( - task_name="evaluations.invocations.batch", - retry_on_error=False, - max_retries=0, - ) - async def evaluate_batch_invocation( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - context: Context = TaskiqDepends(), - ) -> Any: - log.info("[TASK] Starting evaluate_batch_invocation") - result = await self._with_job_lock( - run_id, - job_id=context.message.task_id or str(uuid4()), - job_type="api", - allow_concurrency=False, - runner=lambda: evaluate_batch_invocation_impl( - project_id=project_id, - user_id=user_id, - # - run_id=run_id, - # tracing_service=self.tracing_service, testsets_service=self.testsets_service, + queries_service=self.queries_service, + workflows_service=self.workflows_service, applications_service=self.applications_service, evaluations_service=self.evaluations_service, + simple_evaluators_service=self.simple_evaluators_service, ), ) - log.info("[TASK] Completed evaluate_batch_invocation") + log.info("[TASK] Completed process_run") return result @self.broker.task( - task_name="evaluations.traces.batch", + task_name="evaluations.slice.process", retry_on_error=False, max_retries=0, ) - async def evaluate_batch_traces( + async def process_slice( *, project_id: UUID, user_id: UUID, # run_id: UUID, - trace_ids: list[str], + source_kind: EvaluationSliceSource, + trace_ids: Optional[list[str]] = None, + testcase_ids: Optional[list[UUID]] = None, input_step_key: Optional[str] = None, context: Context = TaskiqDepends(), ) -> Any: - log.info("[TASK] Starting evaluate_batch_traces") + log.info("[TASK] Starting process_slice", source_kind=source_kind) result = await self._with_job_lock( run_id, job_id=context.message.task_id or str(uuid4()), job_type="api", allow_concurrency=True, - runner=lambda: evaluate_batch_traces_impl( + runner=lambda: process_evaluation_slice( project_id=project_id, user_id=user_id, - # run_id=run_id, + source_kind=source_kind, trace_ids=trace_ids, - input_step_key=input_step_key, - # - tracing_service=self.tracing_service, - workflows_service=self.workflows_service, - evaluations_service=self.evaluations_service, - ), - ) - log.info("[TASK] Completed evaluate_batch_traces") - return result - - @self.broker.task( - task_name="evaluations.testcases.batch", - retry_on_error=False, - max_retries=0, - ) - async def evaluate_batch_testcases( - *, - project_id: UUID, - user_id: UUID, - # - run_id: UUID, - testcase_ids: list[UUID], - input_step_key: Optional[str] = None, - context: Context = TaskiqDepends(), - ) -> Any: - log.info("[TASK] Starting evaluate_batch_testcases") - result = await self._with_job_lock( - run_id, - job_id=context.message.task_id or str(uuid4()), - job_type="api", - allow_concurrency=True, - runner=lambda: evaluate_batch_testcases_impl( - project_id=project_id, - user_id=user_id, - # - run_id=run_id, testcase_ids=testcase_ids, input_step_key=input_step_key, - # tracing_service=self.tracing_service, testcases_service=self.testcases_service, workflows_service=self.workflows_service, evaluations_service=self.evaluations_service, ), ) - log.info("[TASK] Completed evaluate_batch_testcases") + log.info("[TASK] Completed process_slice", source_kind=source_kind) return result # Store task references for external access - self.evaluate_batch_testset = evaluate_batch_testset - self.evaluate_live_query = evaluate_live_query - self.evaluate_batch_query = evaluate_batch_query - self.evaluate_batch_invocation = evaluate_batch_invocation - self.evaluate_batch_traces = evaluate_batch_traces - self.evaluate_batch_testcases = evaluate_batch_testcases + self.process_run = process_run + self.process_slice = process_slice diff --git a/api/oss/src/utils/caching.py b/api/oss/src/utils/caching.py index 5fb83e1a65..96be2adaab 100644 --- a/api/oss/src/utils/caching.py +++ b/api/oss/src/utils/caching.py @@ -5,12 +5,11 @@ import orjson -# from cachetools import TTLCache -from redis.asyncio import Redis from pydantic import BaseModel from oss.src.utils.logging import get_module_logger from oss.src.utils.env import env +from oss.src.dbs.redis.shared.engine import get_cache_engine log = get_module_logger(__name__) @@ -38,20 +37,8 @@ # Original L1 cache: # local_cache: TTLCache = TTLCache(maxsize=4096, ttl=AGENTA_CACHE_LOCAL_TTL) -# Use volatile Redis instance for caching (prefix-based separation) -# decode_responses=False: orjson operates on bytes for 3x performance vs json -r = Redis.from_url( - url=env.redis.uri_volatile, - decode_responses=False, - socket_timeout=0.5, # read/write timeout -) - -# Dedicated Redis client for distributed locks with a longer timeout. -r_lock = Redis.from_url( - url=env.redis.uri_volatile, - decode_responses=False, - socket_timeout=AGENTA_LOCK_SOCKET_TIMEOUT, -) +_cache_engine = get_cache_engine() + # Ownership-safe lock scripts. Owner token must match to renew/release. _LOCK_RENEW_IF_OWNER_SCRIPT = """ @@ -129,7 +116,7 @@ async def _scan(pattern: str) -> list[str]: keys: list[str] = [] while True: # TODO: Really ? - cursor, batch = await r.scan( + cursor, batch = await _cache_engine.get_r().scan( cursor=cursor, match=pattern, count=AGENTA_CACHE_SCAN_BATCH_SIZE, @@ -219,7 +206,7 @@ async def _try_get_and_maybe_renew( # return _deserialize(raw, model=model, is_list=is_list) # Layer 2: Check Redis (distributed, 5min TTL, ~1ms latency) - raw = await r.get(cache_name) + raw = await _cache_engine.get_r().get(cache_name) if raw is not None: if CACHE_DEBUG: @@ -240,7 +227,7 @@ async def _try_get_and_maybe_renew( name=cache_name, ) - await r.expire(cache_name, ttl) + await _cache_engine.get_r().expire(cache_name, ttl) else: if CACHE_DEBUG: log.debug( @@ -306,7 +293,7 @@ async def _maybe_retry_get( lock_name = f"lock::{cache_name}" lock_ex = int(lock_ttl * 1000) # convert seconds to milliseconds - got_lock = await r.set(lock_name, "1", nx=True, ex=lock_ex) + got_lock = await _cache_engine.get_r().set(lock_name, "1", nx=True, ex=lock_ex) if got_lock: if CACHE_DEBUG: @@ -379,7 +366,7 @@ async def set_cache( # # Original L1 write path: # local_cache[cache_name] = cache_value - await r.set(cache_name, cache_value, px=cache_px) + await _cache_engine.get_r().set(cache_name, cache_value, px=cache_px) if CACHE_DEBUG: log.debug( @@ -392,7 +379,7 @@ async def set_cache( lock_name = f"lock::{cache_name}" - check = await r.delete(lock_name) + check = await _cache_engine.get_r().delete(lock_name) if check: if CACHE_DEBUG: @@ -513,7 +500,7 @@ async def invalidate_cache( # # Original L1 invalidation path: # local_cache.pop(cache_name, None) - await r.delete(cache_name) + await _cache_engine.get_r().delete(cache_name) else: cache_name = _pack( @@ -560,7 +547,7 @@ async def invalidate_cache( redis_keys_deleted = 0 for i in range(0, len(keys), AGENTA_CACHE_DELETE_BATCH_SIZE): batch = keys[i : i + AGENTA_CACHE_DELETE_BATCH_SIZE] - deleted_count = await r.delete(*batch) + deleted_count = await _cache_engine.get_r().delete(*batch) redis_keys_deleted += deleted_count if CACHE_DEBUG: @@ -642,7 +629,9 @@ async def acquire_lock( lock_owner = uuid4().hex # Atomic SET NX: Returns True if lock acquired, False if already held - acquired = await r_lock.set(lock_key, lock_owner, nx=True, ex=ttl) + acquired = await _cache_engine.get_r_lock().set( + lock_key, lock_owner, nx=True, ex=ttl + ) if acquired: if CACHE_DEBUG: @@ -704,7 +693,7 @@ async def renew_lock( ) if owner: - renewed = await r_lock.eval( + renewed = await _cache_engine.get_r_lock().eval( _LOCK_RENEW_IF_OWNER_SCRIPT, 1, lock_key, @@ -712,7 +701,7 @@ async def renew_lock( str(ttl), ) else: - renewed = await r_lock.expire(lock_key, ttl) + renewed = await _cache_engine.get_r_lock().expire(lock_key, ttl) if renewed: if CACHE_DEBUG: @@ -774,14 +763,14 @@ async def release_lock( ) if owner: - deleted = await r_lock.eval( + deleted = await _cache_engine.get_r_lock().eval( _LOCK_RELEASE_IF_OWNER_SCRIPT, 1, lock_key, owner, ) else: - deleted = await r_lock.delete(lock_key) + deleted = await _cache_engine.get_r_lock().delete(lock_key) if deleted: if CACHE_DEBUG: diff --git a/api/oss/src/utils/emailing.py b/api/oss/src/utils/emailing.py new file mode 100644 index 0000000000..19399c2e65 --- /dev/null +++ b/api/oss/src/utils/emailing.py @@ -0,0 +1,136 @@ +import time + +import httpx + +from sendgrid.helpers.mail import Mail + +from oss.src.utils.env import env +from oss.src.utils.lazy import _load_sendgrid +from oss.src.utils.logging import get_module_logger + +log = get_module_logger(__name__) + + +# Shared invitation/notification email template. Inlined (rather than a file) +# since it is tiny and avoids per-send file I/O and path resolution. +_EMAIL_TEMPLATE = ( + "

Hello,

\n" + "

\n" + " {username_placeholder} has {action_placeholder} {workspace_placeholder} on\n" + " Agenta.\n" + "

\n" + "

{call_to_action}

\n" + "

Thank you for using Agenta!

\n" +) + + +def _render_email_template( + *, + username: str, + action: str, + workspace: str, + call_to_action: str, +) -> str: + """Render the shared invitation/notification email template.""" + + return _EMAIL_TEMPLATE.format( + username_placeholder=username, + action_placeholder=action, + workspace_placeholder=workspace, + call_to_action=call_to_action, + ) + + +async def send_email( + *, + to_email: str, + subject: str, + # + username: str, + action: str, + workspace: str, + call_to_action: str, + # + from_email: str = None, +) -> bool: + """ + Render the shared email template and send it via SendGrid. + + No-op (returns True) when SendGrid is disabled or unavailable. Callers that + need to short-circuit on a disabled mailer before doing other work should + still gate on `env.sendgrid.enabled` themselves. + + Returns True if the email was sent (or skipped because mailing is disabled), + raises on a send failure or missing sender address. + """ + + sg = _load_sendgrid() + if not env.sendgrid.enabled or sg is None: + log.info(f"[SENDGRID] Email disabled - would send '{subject}' to {to_email}") + return True + + sender = from_email or env.sendgrid.from_address + if not sender: + raise ValueError("Sendgrid requires a sender email address to work.") + + html_content = _render_email_template( + username=username, + action=action, + workspace=workspace, + call_to_action=call_to_action, + ) + + message = Mail( + from_email=sender, + to_emails=to_email, + subject=subject, + html_content=html_content, + ) + + sg.send(message) + + return True + + +def add_contact(email: str, max_retries: int = 5, initial_delay: int = 1): + """ + Add a contact to the Loops audience, with retry and exponential backoff. + + No-op (returns None) when Loops is disabled (no API key configured). + + Args: + email (str): Email address of the contact to be added. + max_retries (int): Maximum number of retries in case of rate limiting. + initial_delay (int): Initial delay in seconds before retrying. + + Raises: + ConnectionError: If max retries reached and unable to connect to Loops API. + + Returns: + Optional[httpx.Response]: The Loops API response, or None when disabled. + """ + + if not env.loops.enabled: + log.info(f"[LOOPS] Disabled - would add contact {email}") + return None + + url = "https://app.loops.so/api/v1/contacts/create" + headers = {"Authorization": f"Bearer {env.loops.api_key}"} + data = {"email": email} + + retries = 0 + delay = initial_delay + + while retries < max_retries: + response = httpx.post(url, json=data, headers=headers, timeout=20) + + # 429 indicates rate limiting; back off and retry. + if response.status_code == 429: + log.warning(f"[LOOPS] Rate limit hit. Retrying in {delay} seconds...") + time.sleep(delay) + retries += 1 + delay *= 2 + else: + return response + + raise ConnectionError("Max retries reached. Unable to connect to Loops API.") diff --git a/api/oss/src/utils/env.py b/api/oss/src/utils/env.py index bfdef670ad..b60c5c3b86 100644 --- a/api/oss/src/utils/env.py +++ b/api/oss/src/utils/env.py @@ -428,7 +428,7 @@ class AccessControls(BaseModel): """Access controls configuration (plans + roles + default plan). JSON env vars are parsed here at startup. Schema validation happens in - ``ee.src.core.entitlements.controls``. + ``ee.src.core.access.controls``. `default_plan` lives here (not under `agenta`) because it's part of the access-controls surface: it selects which entry of the effective plan diff --git a/api/oss/src/utils/lazy.py b/api/oss/src/utils/lazy.py new file mode 100644 index 0000000000..7a0725204d --- /dev/null +++ b/api/oss/src/utils/lazy.py @@ -0,0 +1,96 @@ +from typing import Optional, TYPE_CHECKING + +if TYPE_CHECKING: + import stripe + import posthog + from sendgrid import SendGridAPIClient + + +_stripe_module: Optional["stripe"] = None +_stripe_checked = False + +_posthog_module: Optional["posthog"] = None +_posthog_checked = False + +_sendgrid_client: Optional["SendGridAPIClient"] = None +_sendgrid_checked = False + + +def _load_stripe() -> Optional["stripe"]: + global _stripe_module, _stripe_checked + + if _stripe_checked: + return _stripe_module + + _stripe_checked = True + try: + import stripe as _stripe + from oss.src.utils.env import env + from oss.src.utils.logging import get_module_logger + + log = get_module_logger(__name__) + + if env.stripe.enabled: + _stripe.api_key = env.stripe.api_key + log.info("✓ Stripe enabled:", target=env.stripe.webhook_target) + + _stripe_module = _stripe + except Exception: + _stripe_module = None + + return _stripe_module + + +def _load_posthog() -> Optional["posthog"]: + global _posthog_module, _posthog_checked + + if _posthog_checked: + return _posthog_module + + _posthog_checked = True + try: + import posthog as _posthog + from oss.src.utils.env import env + from oss.src.utils.logging import get_module_logger + + log = get_module_logger(__name__) + + if env.posthog.enabled: + _posthog.api_key = env.posthog.api_key + _posthog.host = env.posthog.api_url + log.info("✓ PostHog enabled") + else: + log.warn("✗ PostHog disabled") + + _posthog_module = _posthog + except Exception: + _posthog_module = None + + return _posthog_module + + +def _load_sendgrid() -> Optional["SendGridAPIClient"]: + global _sendgrid_client, _sendgrid_checked + + if _sendgrid_checked: + return _sendgrid_client + + _sendgrid_checked = True + try: + import sendgrid + from oss.src.utils.env import env + from oss.src.utils.logging import get_module_logger + + log = get_module_logger(__name__) + + if env.sendgrid.enabled: + _sendgrid_client = sendgrid.SendGridAPIClient(api_key=env.sendgrid.api_key) + log.info("✓ SendGrid enabled") + elif env.sendgrid.api_key and not env.sendgrid.from_address: + log.warn("✗ SendGrid disabled: missing sender email address") + else: + log.warn("✗ SendGrid disabled") + except Exception: + _sendgrid_client = None + + return _sendgrid_client diff --git a/api/oss/tests/legacy/old_tests/unit/test_llm_apps_service.py b/api/oss/tests/legacy/old_tests/unit/test_llm_apps_service.py deleted file mode 100644 index 04d729ad0b..0000000000 --- a/api/oss/tests/legacy/old_tests/unit/test_llm_apps_service.py +++ /dev/null @@ -1,209 +0,0 @@ -import pytest -from unittest.mock import patch, AsyncMock -import aiohttp - -from oss.src.services.llm_apps_service import ( - batch_invoke, - InvokationResult, - Result, -) - - -@pytest.mark.asyncio -async def test_batch_invoke_success(): - """ - Test the successful invocation of batch_invoke function. - - This test mocks the get_parameters_from_openapi and invoke_app functions - to simulate successful invocations. It verifies that the batch_invoke - function correctly returns the expected results for the given test data. - """ - with ( - patch( - "src.services.llm_apps_service.get_parameters_from_openapi", - new_callable=AsyncMock, - ) as mock_get_parameters_from_openapi, - patch( - "src.services.llm_apps_service.invoke_app", new_callable=AsyncMock - ) as mock_invoke_app, - patch("asyncio.sleep", new_callable=AsyncMock) as mock_sleep, # noqa: F841 - ): - mock_get_parameters_from_openapi.return_value = [ - {"name": "param1", "type": "input"}, - {"name": "param2", "type": "input"}, - ] - - # Mock the response of invoke_app to always succeed - def invoke_app_side_effect( - uri, - datapoint, - parameters, - openapi_parameters, - user_id, - project_id, - ): - return InvokationResult( - result=Result(type="text", value="Success", error=None), - latency=0.1, - cost=0.01, - tokens=1, - ) - - mock_invoke_app.side_effect = invoke_app_side_effect - - uri = "http://example.com" - testset_data = [ - {"id": 1, "param1": "value1", "param2": "value2"}, - {"id": 2, "param1": "value1", "param2": "value2"}, - ] - parameters = {} - rate_limit_config = { - "batch_size": 10, - "max_retries": 3, - "retry_delay": 3, - "delay_between_batches": 5, - } - - results = await batch_invoke( - uri, - testset_data, - parameters=parameters, - rate_limit_config=rate_limit_config, - user_id="test_user", - project_id="test_project", - ) - - assert len(results) == 2 - assert results[0].result.type == "text" - assert results[0].result.value == "Success" - assert results[1].result.type == "text" - assert results[1].result.value == "Success" - - -@pytest.mark.asyncio -async def test_batch_invoke_retries_and_failure(): - """ - Test the batch_invoke function with retries and eventual failure. - - This test mocks the get_parameters_from_openapi and invoke_app functions - to simulate failures that trigger retries. It verifies that the batch_invoke - function correctly retries the specified number of times and returns an error - result after reaching the maximum retries. - """ - with ( - patch( - "src.services.llm_apps_service.get_parameters_from_openapi", - new_callable=AsyncMock, - ) as mock_get_parameters_from_openapi, - patch( - "src.services.llm_apps_service.invoke_app", new_callable=AsyncMock - ) as mock_invoke_app, - patch("asyncio.sleep", new_callable=AsyncMock) as mock_sleep, # noqa: F841 - ): - mock_get_parameters_from_openapi.return_value = [ - {"name": "param1", "type": "input"}, - {"name": "param2", "type": "input"}, - ] - - # Mock the response of invoke_app to always fail - def invoke_app_side_effect( - uri, - datapoint, - parameters, - openapi_parameters, - user_id, - project_id, - ): - raise aiohttp.ClientError("Test Error") - - mock_invoke_app.side_effect = invoke_app_side_effect - - uri = "http://example.com" - testset_data = [ - {"id": 1, "param1": "value1", "param2": "value2"}, - {"id": 2, "param1": "value1", "param2": "value2"}, - ] - parameters = {} - rate_limit_config = { - "batch_size": 10, - "max_retries": 3, - "retry_delay": 3, - "delay_between_batches": 5, - } - - results = await batch_invoke( - uri, - testset_data, - parameters=parameters, - rate_limit_config=rate_limit_config, - user_id="test_user", - project_id="test_project", - ) - - assert len(results) == 2 - assert results[0].result.type == "error" - assert results[0].result.error.message == "Max retries reached" - assert results[1].result.type == "error" - assert results[1].result.error.message == "Max retries reached" - - -@pytest.mark.asyncio -async def test_batch_invoke_generic_exception(): - """ - Test the batch_invoke function with a generic exception. - - This test mocks the get_parameters_from_openapi and invoke_app functions - to simulate a generic exception during invocation. It verifies that the - batch_invoke function correctly handles the exception and returns an error - result with the appropriate error message. - """ - with ( - patch( - "src.m_apps_service.get_parameters_from_openapi", - new_callable=AsyncMock, - ) as mock_get_parameters_from_openapi, - patch( - "src.services.llm_apps_service.invoke_app", new_callable=AsyncMock - ) as mock_invoke_app, - patch("asyncio.sleep", new_callable=AsyncMock) as mock_sleep, # noqa: F841 - ): - mock_get_parameters_from_openapi.return_value = [ - {"name": "param1", "type": "input"}, - {"name": "param2", "type": "input"}, - ] - - # Mock the response of invoke_app to raise a generic exception - def invoke_app_side_effect( - uri, - datapoint, - parameters, - openapi_parameters, - user_id, - project_id, - ): - raise Exception("Generic Error") - - mock_invoke_app.side_effect = invoke_app_side_effect - - uri = "http://example.com" - testset_data = [{"id": 1, "param1": "value1", "param2": "value2"}] - parameters = {} - rate_limit_config = { - "batch_size": 1, - "max_retries": 3, - "retry_delay": 1, - "delay_between_batches": 1, - } - - results = await batch_invoke( - uri, - testset_data, - parameters=parameters, - rate_limit_config=rate_limit_config, - user_id="test_user", - project_id="test_project", - ) - - assert len(results) == 1 - assert results[0].result.type == "error" - assert results[0].result.error.message == "Max retries reached" diff --git a/api/oss/tests/legacy/vault_router/conftest.py b/api/oss/tests/legacy/vault_router/conftest.py index aef2c39a57..ec4abb182f 100644 --- a/api/oss/tests/legacy/vault_router/conftest.py +++ b/api/oss/tests/legacy/vault_router/conftest.py @@ -6,7 +6,7 @@ AGENTA_HOST = os.environ.get("AGENTA_HOST", "http://localhost") -API_BASE_URL = f"{AGENTA_HOST}/api/vault/v1/" +API_BASE_URL = f"{AGENTA_HOST}/api/" @pytest.fixture diff --git a/api/oss/tests/pytest/acceptance/accounts/test_actions.py b/api/oss/tests/pytest/acceptance/accounts/test_actions.py index c94d1ab81d..a3a7d24ec7 100644 --- a/api/oss/tests/pytest/acceptance/accounts/test_actions.py +++ b/api/oss/tests/pytest/acceptance/accounts/test_actions.py @@ -8,6 +8,8 @@ """ from uuid import uuid4 +import os +import pytest # --------------------------------------------------------------------------- @@ -58,6 +60,10 @@ def _delete_account_by_email(admin_api, *, email): class TestResetPassword: + @pytest.mark.skipif( + not os.getenv("POSTHOG_API_KEY"), + reason="PostHog API key not configured", + ) def test_reset_password_for_existing_identity(self, admin_api): uid = uuid4().hex[:12] email = f"reset-{uid}@test.agenta.ai" diff --git a/api/oss/tests/pytest/acceptance/evaluations/_flow_helpers.py b/api/oss/tests/pytest/acceptance/evaluations/_flow_helpers.py new file mode 100644 index 0000000000..e022d427ae --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/_flow_helpers.py @@ -0,0 +1,251 @@ +""" +Shared helpers for end-to-end evaluation FLOW tests. + +These tests trigger a real evaluation run through the worker + services +container and poll for completion. They run WITHOUT any LLM or code sandbox by +using the `agenta:custom:mock:v0` workflow for both the application +(invocation) and the evaluator (annotation). The mock workflow returns +predefined results selected by `parameters = {"key": ..., "kwargs": {...}}`. + +See `sdks/python/agenta/sdk/engines/running/handlers.py::mock_v0` for the +selector vocabulary (echo / static / pass / fail / score / error / delay). +""" + +from uuid import uuid4 + +from utils.polling import wait_for_response + + +MOCK_URI = "agenta:custom:mock:v0" + + +# - resource creation --------------------------------------------------------- + + +def create_mock_application(authed_api, *, key="echo", kwargs=None) -> dict: + """Create a deterministic mock application (no LLM). Returns the application dict.""" + slug = uuid4().hex + response = authed_api( + "POST", + "/simple/applications/", + json={ + "application": { + "slug": f"application-{slug}", + "name": f"Mock Application {slug}", + "data": { + "uri": MOCK_URI, + "parameters": {"key": key, "kwargs": kwargs or {}}, + }, + } + }, + ) + assert response.status_code == 200, response.text + return response.json()["application"] + + +def create_mock_evaluator(authed_api, *, key="pass", kwargs=None) -> dict: + """Create a deterministic mock evaluator (no LLM). Returns the evaluator dict.""" + slug = uuid4().hex + response = authed_api( + "POST", + "/simple/evaluators/", + json={ + "evaluator": { + "slug": f"evaluator-{slug}", + "name": f"Mock Evaluator {slug}", + "data": { + "uri": MOCK_URI, + "parameters": {"key": key, "kwargs": kwargs or {}}, + }, + } + }, + ) + assert response.status_code == 200, response.text + return response.json()["evaluator"] + + +def create_query(authed_api, *, trace_type="invocation") -> dict: + """Create a simple query (filters over traces). Returns the query dict.""" + slug = uuid4().hex + response = authed_api( + "POST", + "/simple/queries/", + json={ + "query": { + "slug": f"query-{slug}", + "name": f"Query {slug}", + "data": { + "filtering": { + "operator": "and", + "conditions": [ + { + "field": "trace_type", + "operator": "is", + "value": trace_type, + } + ], + } + }, + } + }, + ) + assert response.status_code == 200, response.text + return response.json()["query"] + + +def create_testset(authed_api, *, testcases=None) -> dict: + """Create a simple testset. Returns the testset dict (with revision_id).""" + slug = uuid4().hex + if testcases is None: + testcases = [ + {"data": {"input": "hello", "expected": "world"}}, + {"data": {"input": "hola", "expected": "mundo"}}, + ] + response = authed_api( + "POST", + "/simple/testsets/", + json={ + "testset": { + "slug": f"testset-{slug}", + "name": f"Testset {slug}", + "data": {"testcases": testcases}, + } + }, + ) + assert response.status_code == 200, response.text + return response.json()["testset"] + + +# - triggering and waiting ----------------------------------------------------- + +# Terminal statuses for an evaluation run. +TERMINAL_STATUSES = {"success", "failure", "errors", "cancelled"} + + +def create_simple_evaluation(authed_api, *, name, data, flags=None) -> dict: + """Create (and auto-start) a simple evaluation. Returns the evaluation dict.""" + payload = {"name": name, "data": data} + if flags is not None: + payload["flags"] = flags + response = authed_api( + "POST", + "/simple/evaluations/", + json={"evaluation": payload}, + ) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 1, body + return body["evaluation"] + + +def wait_for_run_terminal(authed_api, run_id, *, max_retries=20): + """Poll the run until it reaches a terminal status. Returns the final response.""" + return wait_for_response( + authed_api, + "GET", + f"/evaluations/runs/{run_id}", + condition_fn=lambda r: ( + r.status_code == 200 + and (r.json().get("run") or {}).get("status") in TERMINAL_STATUSES + ), + max_retries=max_retries, + ) + + +def fetch_run(authed_api, run_id) -> dict: + """Return the run dict.""" + response = authed_api("GET", f"/evaluations/runs/{run_id}") + assert response.status_code == 200, response.text + return response.json().get("run") or {} + + +def query_scenarios(authed_api, run_id): + """Return the list of scenarios for a run.""" + response = authed_api( + "POST", + "/evaluations/scenarios/query", + json={"scenario": {"run_id": str(run_id)}}, + ) + assert response.status_code == 200, response.text + return response.json().get("scenarios", []) + + +def query_metrics(authed_api, run_id): + """Return the list of metrics for a run.""" + response = authed_api( + "POST", + "/evaluations/metrics/query", + json={"metrics": {"run_id": str(run_id)}}, + ) + assert response.status_code == 200, response.text + return response.json().get("metrics", []) + + +def wait_for_metrics( + authed_api, run_id, *, expected_count=1, condition=None, max_retries=20 +): + """Poll metrics until they satisfy a condition, then return them. + + A run can flip to a terminal status a beat before its metric rows are + written, and the worker writes them incrementally per scenario, so tests + poll here rather than reading once. By default waits for `expected_count` + rows; pass `condition` (a callable over the metrics list) to wait for a + settled shape (e.g. the global aggregate reaching its final count). + """ + if condition is None: + + def condition(metrics): + return len(metrics) >= expected_count + + wait_for_response( + authed_api, + "POST", + "/evaluations/metrics/query", + json={"metrics": {"run_id": str(run_id)}}, + condition_fn=lambda r: ( + r.status_code == 200 and condition(r.json().get("metrics", [])) + ), + max_retries=max_retries, + ) + return query_metrics(authed_api, run_id) + + +# - lifecycle mutations -------------------------------------------------------- + + +def start_evaluation(authed_api, evaluation_id): + """Re-start (re-dispatch) an existing simple evaluation.""" + response = authed_api("POST", f"/simple/evaluations/{evaluation_id}/start") + assert response.status_code == 200, response.text + return response.json().get("evaluation") or {} + + +def close_run(authed_api, run_id): + """Close (lock) a run.""" + response = authed_api("POST", f"/evaluations/runs/{run_id}/close") + assert response.status_code == 200, response.text + return response.json() + + +def open_run(authed_api, run_id): + """Open (unlock) a run.""" + response = authed_api("POST", f"/evaluations/runs/{run_id}/open") + assert response.status_code == 200, response.text + return response.json() + + +def fetch_default_queue(authed_api, run_id) -> dict: + """Return the run's default queue dict (or {} if none).""" + response = authed_api("GET", f"/evaluations/runs/{run_id}/default-queue") + assert response.status_code == 200, response.text + return response.json().get("queue") or {} + + +def archive_queue(authed_api, queue_id): + """Archive a queue. Returns the response for status assertions.""" + return authed_api("POST", f"/evaluations/queues/{queue_id}/archive") + + +def unarchive_queue(authed_api, queue_id): + """Unarchive a queue. Returns the response for status assertions.""" + return authed_api("POST", f"/evaluations/queues/{queue_id}/unarchive") diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_closed_run_guard.py b/api/oss/tests/pytest/acceptance/evaluations/test_closed_run_guard.py new file mode 100644 index 0000000000..fac672b743 --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_closed_run_guard.py @@ -0,0 +1,112 @@ +""" +Closed-run mutation guard. + +Closing a run (`POST /runs/{id}/close`) locks it: subsequent content mutations +(edit run, create scenario/result, edit/refresh metrics) raise +`EvaluationClosedConflict`, surfaced as HTTP 409. Opening the run again +(`POST /runs/{id}/open`) lifts the lock. + +Queue archive/unarchive is intentionally NOT blocked on a closed run — that is a +worklist action, covered by test_evaluation_flows_modify.py. +""" + +from uuid import uuid4 + + +def _create_run(authed_api, steps=None) -> dict: + payload = {"name": f"closed-guard-{uuid4()}"} + if steps is not None: + payload["data"] = {"steps": steps} + response = authed_api("POST", "/evaluations/runs/", json={"runs": [payload]}) + assert response.status_code == 200, response.text + return response.json()["runs"][0] + + +def _create_scenario(authed_api, run_id) -> str: + response = authed_api( + "POST", "/evaluations/scenarios/", json={"scenarios": [{"run_id": run_id}]} + ) + assert response.status_code == 200, response.text + return response.json()["scenarios"][0]["id"] + + +def _close(authed_api, run_id): + response = authed_api("POST", f"/evaluations/runs/{run_id}/close") + assert response.status_code == 200, response.text + + +def _open(authed_api, run_id): + response = authed_api("POST", f"/evaluations/runs/{run_id}/open") + assert response.status_code == 200, response.text + + +class TestClosedRunGuard: + def test_close_sets_is_closed_then_open_clears_it(self, authed_api): + run = _create_run(authed_api) + run_id = run["id"] + + _close(authed_api, run_id) + fetched = authed_api("GET", f"/evaluations/runs/{run_id}").json()["run"] + assert fetched["flags"]["is_closed"] is True + + _open(authed_api, run_id) + fetched = authed_api("GET", f"/evaluations/runs/{run_id}").json()["run"] + assert fetched["flags"]["is_closed"] is False + + def test_edit_closed_run_is_blocked(self, authed_api): + run = _create_run(authed_api) + run_id = run["id"] + _close(authed_api, run_id) + + response = authed_api( + "PATCH", + f"/evaluations/runs/{run_id}", + json={"run": {"id": run_id, "name": "renamed-after-close"}}, + ) + assert response.status_code == 409, response.text + + def test_create_scenario_in_closed_run_is_blocked(self, authed_api): + run = _create_run(authed_api) + run_id = run["id"] + _close(authed_api, run_id) + + response = authed_api( + "POST", "/evaluations/scenarios/", json={"scenarios": [{"run_id": run_id}]} + ) + assert response.status_code == 409, response.text + + def test_create_result_in_closed_run_is_blocked(self, authed_api): + run = _create_run(authed_api) + run_id = run["id"] + scenario_id = _create_scenario(authed_api, run_id) + _close(authed_api, run_id) + + response = authed_api( + "POST", + "/evaluations/results/", + json={ + "results": [ + { + "step_key": "input", + "repeat_idx": 0, + "scenario_id": scenario_id, + "run_id": run_id, + } + ] + }, + ) + assert response.status_code == 409, response.text + + def test_edit_allowed_again_after_open(self, authed_api): + run = _create_run(authed_api) + run_id = run["id"] + _close(authed_api, run_id) + _open(authed_api, run_id) + + response = authed_api( + "PATCH", + f"/evaluations/runs/{run_id}", + json={"run": {"id": run_id, "name": "renamed-after-open"}}, + ) + assert response.status_code == 200, response.text + assert response.json()["run"]["name"] == "renamed-after-open" diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_default_queue_lifecycle.py b/api/oss/tests/pytest/acceptance/evaluations/test_default_queue_lifecycle.py new file mode 100644 index 0000000000..2d6bd5d1c2 --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_default_queue_lifecycle.py @@ -0,0 +1,160 @@ +""" +Default-queue reconciliation state machine. + +`_reconcile_default_queue` runs after every create/edit of a run and brings the +default queue + `run.flags.is_queue` in line with the run graph: + + should_exist = EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS or has_human + + required + missing -> create default queue + required + archived -> unarchive default queue + required + active -> no-op + not-required + active -> archive default queue + +`is_queue == has_human AND an active default queue exists`. + +Driven through `/evaluations/runs/` (create + PATCH steps) — no worker needed; +reconciliation is synchronous in the create/edit path. +""" + +from uuid import uuid4 + + +def _input_step(): + return { + "key": "input", + "type": "input", + "origin": "custom", + "references": {"testset": {"id": str(uuid4())}}, + } + + +def _human_step(): + return { + "key": "annotation-human", + "type": "annotation", + "origin": "human", + "references": {"evaluator_revision": {"id": str(uuid4())}}, + "inputs": [{"key": "input"}], + } + + +def _auto_step(): + return { + "key": "annotation-auto", + "type": "annotation", + "origin": "auto", + "references": {"evaluator_revision": {"id": str(uuid4())}}, + "inputs": [{"key": "input"}], + } + + +def _create_run(authed_api, steps): + response = authed_api( + "POST", + "/evaluations/runs/", + json={"runs": [{"name": "dq-lifecycle", "data": {"steps": steps}}]}, + ) + assert response.status_code == 200, response.text + return response.json()["runs"][0] + + +def _patch_steps(authed_api, run, steps): + response = authed_api( + "PATCH", + f"/evaluations/runs/{run['id']}", + json={"run": {"id": run["id"], "name": run["name"], "data": {"steps": steps}}}, + ) + assert response.status_code == 200, response.text + return response.json()["run"] + + +def _default_queue(authed_api, run_id) -> dict: + response = authed_api("GET", f"/evaluations/runs/{run_id}/default-queue") + assert response.status_code == 200, response.text + return response.json().get("queue") or {} + + +class TestDefaultQueueLifecycle: + def test_required_missing_creates_default_queue(self, authed_api): + # required + missing -> CREATE. A run with a human step gets a default + # queue and is_queue=True at creation. + run = _create_run(authed_api, steps=[_input_step(), _human_step()]) + assert run["flags"]["has_human"] is True + assert run["flags"]["is_queue"] is True + + dq = _default_queue(authed_api, run["id"]) + assert dq.get("id"), dq + assert dq["flags"]["is_default"] is True + + def test_not_required_active_archives_default_queue(self, authed_api): + # not-required + active -> ARCHIVE. Dropping the human step removes queue + # eligibility; the default queue is archived and is_queue flips False. + run = _create_run(authed_api, steps=[_input_step(), _human_step()]) + assert _default_queue(authed_api, run["id"]).get("id") + + edited = _patch_steps(authed_api, run, steps=[_input_step(), _auto_step()]) + assert edited["flags"]["has_human"] is False + assert edited["flags"]["is_queue"] is False + # active default queue is gone (archived) + assert _default_queue(authed_api, run["id"]) == {} + + def test_required_archived_unarchives_default_queue(self, authed_api): + # required + archived -> UNARCHIVE. Re-adding a human step after the + # default queue was archived brings it back and re-sets is_queue=True. + run = _create_run(authed_api, steps=[_input_step(), _human_step()]) + # drop human -> archive + _patch_steps(authed_api, run, steps=[_input_step(), _auto_step()]) + assert _default_queue(authed_api, run["id"]) == {} + + # re-add human -> unarchive + re_added = _patch_steps(authed_api, run, steps=[_input_step(), _human_step()]) + assert re_added["flags"]["has_human"] is True + assert re_added["flags"]["is_queue"] is True + dq = _default_queue(authed_api, run["id"]) + assert dq.get("id"), dq + + def test_required_active_is_noop(self, authed_api): + # required + active -> NO-OP. Editing a run that keeps its human step + # (changing an unrelated step) keeps the SAME default queue active. + run = _create_run(authed_api, steps=[_input_step(), _human_step()]) + dq_before = _default_queue(authed_api, run["id"]) + assert dq_before.get("id") + + # edit graph but keep the human step (add an auto step alongside) + edited = _patch_steps( + authed_api, run, steps=[_input_step(), _human_step(), _auto_step()] + ) + assert edited["flags"]["is_queue"] is True + dq_after = _default_queue(authed_api, run["id"]) + assert dq_after.get("id") == dq_before["id"], (dq_before, dq_after) + + def test_non_human_run_has_no_default_queue(self, authed_api): + # auto-only run: not a queue, no default queue created. + run = _create_run(authed_api, steps=[_input_step(), _auto_step()]) + assert run["flags"]["has_human"] is False + assert run["flags"]["is_queue"] is False + assert _default_queue(authed_api, run["id"]) == {} + + def test_planted_is_queue_flag_is_reconciled_back(self, authed_api): + # is_queue is service-derived: an edit that tries to PLANT is_queue=True + # on a run that is not queue-eligible (no human step) must be reconciled + # back to False rather than persisted as-is. + run = _create_run(authed_api, steps=[_input_step(), _auto_step()]) + assert run["flags"]["is_queue"] is False + + response = authed_api( + "PATCH", + f"/evaluations/runs/{run['id']}", + json={ + "run": { + "id": run["id"], + "name": run["name"], + "flags": {"is_queue": True}, + "data": {"steps": [_input_step(), _auto_step()]}, + } + }, + ) + assert response.status_code == 200, response.text + assert response.json()["run"]["flags"]["is_queue"] is False + assert _default_queue(authed_api, run["id"]) == {} diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_default_queue_policy.py b/api/oss/tests/pytest/acceptance/evaluations/test_default_queue_policy.py new file mode 100644 index 0000000000..2bff097009 --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_default_queue_policy.py @@ -0,0 +1,207 @@ +""" +Default-queue policy + validation. + +A *default* queue (`flags.is_default=True`) is a system-managed worklist tied to +a run's human evaluators. It must not carry per-user/scenario/step/batch filters, +must not be demoted to a normal queue, and must not be hard-deleted (archive +instead). These are enforced in the service layer with typed domain exceptions +(`DefaultQueueDataInvalid` -> 422, `DefaultQueueDemotionForbidden` / +`DefaultQueueDeletionForbidden` -> 409). + +These tests drive the `/evaluations/queues/` HTTP surface directly — no worker. +""" + +from uuid import uuid4 + +import pytest + + +def _create_run(authed_api, name=None) -> str: + response = authed_api( + "POST", + "/evaluations/runs/", + json={"runs": [{"name": name or f"run-{uuid4()}"}]}, + ) + assert response.status_code == 200, response.text + return response.json()["runs"][0]["id"] + + +def _create_queue(authed_api, run_id, *, flags=None, data=None, name=None): + queue = {"run_id": run_id} + if name: + queue["name"] = name + if flags is not None: + queue["flags"] = flags + if data is not None: + queue["data"] = data + return authed_api("POST", "/evaluations/queues/", json={"queues": [queue]}) + + +class TestDefaultQueueDataValidation: + # A default queue may not carry scenario/step/assignment/batch filters. + + @pytest.mark.parametrize( + "field,value", + [ + ("user_ids", [[str(uuid4())]]), + ("scenario_ids", [str(uuid4())]), + ("step_keys", ["annotation"]), + ("batch_size", 5), + ("batch_offset", 0), + ], + ids=["user_ids", "scenario_ids", "step_keys", "batch_size", "batch_offset"], + ) + def test_default_queue_with_filter_field_is_rejected( + self, authed_api, field, value + ): + run_id = _create_run(authed_api) + response = _create_queue( + authed_api, + run_id, + flags={"is_default": True}, + data={field: value}, + ) + # DefaultQueueDataInvalid -> 422 + assert response.status_code == 422, response.text + + def test_non_default_queue_may_carry_filter_fields(self, authed_api): + run_id = _create_run(authed_api) + response = _create_queue( + authed_api, + run_id, + flags={"is_default": False}, + data={"step_keys": ["annotation"], "batch_size": 5}, + ) + assert response.status_code == 200, response.text + assert response.json()["count"] == 1 + + def test_default_queue_without_filters_is_accepted(self, authed_api): + run_id = _create_run(authed_api) + response = _create_queue( + authed_api, + run_id, + flags={"is_default": True}, + data={}, + ) + assert response.status_code == 200, response.text + assert response.json()["count"] == 1 + + +class TestDefaultQueueDemotionForbidden: + def _create_default_queue(self, authed_api): + run_id = _create_run(authed_api) + resp = _create_queue(authed_api, run_id, flags={"is_default": True}) + assert resp.status_code == 200, resp.text + return resp.json()["queues"][0]["id"] + + def test_demoting_default_queue_is_forbidden(self, authed_api): + queue_id = self._create_default_queue(authed_api) + response = authed_api( + "PATCH", + f"/evaluations/queues/{queue_id}", + json={"queue": {"id": queue_id, "flags": {"is_default": False}}}, + ) + # DefaultQueueDemotionForbidden -> 409 + assert response.status_code == 409, response.text + + def test_keeping_default_flag_on_edit_is_allowed(self, authed_api): + queue_id = self._create_default_queue(authed_api) + response = authed_api( + "PATCH", + f"/evaluations/queues/{queue_id}", + json={ + "queue": { + "id": queue_id, + "name": "renamed", + "flags": {"is_default": True}, + } + }, + ) + assert response.status_code == 200, response.text + assert response.json()["queue"]["name"] == "renamed" + + def test_promoting_normal_queue_to_default_is_allowed(self, authed_api): + run_id = _create_run(authed_api) + resp = _create_queue(authed_api, run_id, flags={"is_default": False}) + assert resp.status_code == 200, resp.text + queue_id = resp.json()["queues"][0]["id"] + response = authed_api( + "PATCH", + f"/evaluations/queues/{queue_id}", + json={"queue": {"id": queue_id, "flags": {"is_default": True}}}, + ) + assert response.status_code == 200, response.text + + +class TestDefaultQueueDeletionForbidden: + def test_hard_deleting_default_queue_is_forbidden(self, authed_api): + run_id = _create_run(authed_api) + resp = _create_queue(authed_api, run_id, flags={"is_default": True}) + assert resp.status_code == 200, resp.text + queue_id = resp.json()["queues"][0]["id"] + + response = authed_api("DELETE", f"/evaluations/queues/{queue_id}") + # DefaultQueueDeletionForbidden -> 409 + assert response.status_code == 409, response.text + + def test_hard_deleting_normal_queue_is_allowed(self, authed_api): + run_id = _create_run(authed_api) + resp = _create_queue(authed_api, run_id, flags={"is_default": False}) + assert resp.status_code == 200, resp.text + queue_id = resp.json()["queues"][0]["id"] + + response = authed_api("DELETE", f"/evaluations/queues/{queue_id}") + assert response.status_code == 200, response.text + assert response.json()["count"] == 1 + + def test_bulk_delete_including_default_queue_is_forbidden(self, authed_api): + run_id_1 = _create_run(authed_api) + run_id_2 = _create_run(authed_api) + normal = _create_queue(authed_api, run_id_1, flags={"is_default": False}) + default = _create_queue(authed_api, run_id_2, flags={"is_default": True}) + normal_id = normal.json()["queues"][0]["id"] + default_id = default.json()["queues"][0]["id"] + + response = authed_api( + "DELETE", + "/evaluations/queues/", + json={"queue_ids": [normal_id, default_id]}, + ) + assert response.status_code == 409, response.text + + +class TestDefaultQueueUniqueness: + # At most one ACTIVE default queue per run, enforced by the partial unique + # index ux_evaluation_queues_default_per_run; create_queue surfaces the + # unique violation as an EntityCreationConflict (409). + + def test_second_default_queue_for_same_run_is_rejected(self, authed_api): + run_id = _create_run(authed_api) + first = _create_queue(authed_api, run_id, flags={"is_default": True}) + assert first.status_code == 200, first.text + assert first.json()["count"] == 1 + + second = _create_queue(authed_api, run_id, flags={"is_default": True}) + # The second default queue is rejected as a creation conflict. + assert second.json().get("count", 0) == 0, second.text + + def test_default_queue_recreatable_after_archive(self, authed_api): + # Archiving frees the slot — a new active default queue can be created + # (the guard counts only active defaults). + run_id = _create_run(authed_api) + first = _create_queue(authed_api, run_id, flags={"is_default": True}) + first_id = first.json()["queues"][0]["id"] + + archived = authed_api("POST", f"/evaluations/queues/{first_id}/archive") + assert archived.status_code == 200, archived.text + + second = _create_queue(authed_api, run_id, flags={"is_default": True}) + assert second.json().get("count", 0) == 1, second.text + + def test_default_queues_allowed_across_different_runs(self, authed_api): + run_id_1 = _create_run(authed_api) + run_id_2 = _create_run(authed_api) + first = _create_queue(authed_api, run_id_1, flags={"is_default": True}) + second = _create_queue(authed_api, run_id_2, flags={"is_default": True}) + assert first.json()["count"] == 1, first.text + assert second.json()["count"] == 1, second.text diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_modify.py b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_modify.py new file mode 100644 index 0000000000..c9adc5696c --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_modify.py @@ -0,0 +1,105 @@ +""" +End-to-end evaluation FLOW tests for modify-after-run lifecycle: +run to completion, then mutate, then re-verify. + +Uses the deterministic LLM-free `agenta:custom:mock:v0` workflow. See +`_flow_helpers.py`. + +Covers: + - re-start a finished batch run -> it re-dispatches and finalizes again + (validates the finalization rule: a (re)dispatched run resets to running, then + the slice re-finalizes it). + - archive / unarchive a default queue on a CLOSED run -> both succeed + (queue archival is a worklist action, independent of run lock). +""" + +from ._flow_helpers import ( + create_mock_application, + create_mock_evaluator, + create_testset, + create_simple_evaluation, + wait_for_run_terminal, + fetch_run, + fetch_default_queue, + start_evaluation, + close_run, + archive_queue, + unarchive_queue, +) + + +class TestEvaluationModifyFlows: + def test_restart_finished_batch_run_re_dispatches_and_finalizes_again( + self, authed_api + ): + # ARRANGE: run a batch eval to terminal success ------------------------ + testset = create_testset(authed_api) + application = create_mock_application(authed_api, key="echo") + evaluator = create_mock_evaluator(authed_api, key="pass") + evaluation = create_simple_evaluation( + authed_api, + name="flow-restart-finished", + data={ + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + ) + run_id = evaluation["id"] + first = wait_for_run_terminal(authed_api, run_id) + assert first.json()["run"]["status"] == "success" + # ---------------------------------------------------------------------- + + # ACT: re-start the finished run --------------------------------------- + start_evaluation(authed_api, run_id) + # ---------------------------------------------------------------------- + + # ASSERT: it re-dispatches and reaches a terminal status again --------- + # (activation resets status=RUNNING, then the slice + # finalizes it. We assert the end state is terminal again.) + final = wait_for_run_terminal(authed_api, run_id) + assert final.json()["run"]["status"] == "success", final.json()["run"] + # ---------------------------------------------------------------------- + + def test_unarchive_and_archive_default_queue_on_closed_run(self, authed_api): + # A human evaluator makes the run a queue (gets a default queue). + # Closing the run reconciles and archives the default queue; + # archiving/unarchiving a queue must work even on a CLOSED (locked) run, + # because queue archival is a worklist action, not a content edit. + # ARRANGE -------------------------------------------------------------- + testset = create_testset(authed_api) + evaluator = create_mock_evaluator(authed_api, key="pass") + evaluation = create_simple_evaluation( + authed_api, + name="flow-human-queue", + data={ + "testset_steps": [testset["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "human"}, + }, + ) + run_id = evaluation["id"] + + default_queue = fetch_default_queue(authed_api, run_id) + assert default_queue.get("id"), default_queue + queue_id = default_queue["id"] + + # close (lock) the run + close_run(authed_api, run_id) + run = fetch_run(authed_api, run_id) + assert (run.get("flags") or {}).get("is_closed") is True, run + # ---------------------------------------------------------------------- + + # ACT + ASSERT: mutate the queue on the CLOSED run --------------------- + # Regression guard: before the fix these raised + # EvaluationClosedConflict -> HTTP 409. Now the closed run must NOT block + # queue archival, so neither call returns 409. (The exact archived/active + # state depends on close-time reconciliation, which is not what this test + # asserts.) + unarchived = unarchive_queue(authed_api, queue_id) + assert unarchived.status_code != 409, unarchived.text + assert unarchived.status_code == 200, unarchived.text + + archived = archive_queue(authed_api, queue_id) + assert archived.status_code != 409, archived.text + assert archived.status_code == 200, archived.text + # ---------------------------------------------------------------------- diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_run.py b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_run.py new file mode 100644 index 0000000000..c56780976b --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_run.py @@ -0,0 +1,147 @@ +""" +End-to-end evaluation FLOW tests: trigger a run, wait for the worker to finish, +and verify the run reached a terminal state with scenarios/metrics. + +These run through the real worker + services container with NO LLM and NO code +sandbox, using the deterministic `agenta:custom:mock:v0` workflow for both the +application and the evaluator. See `_flow_helpers.py`. + +Coverage spans the worker dispatch topologies (see +`api/oss/src/core/evaluations/runtime/topology.py`): + - batch_testset (testset -> mock app -> mock auto-evaluator) -> success + - batch_invocation (testset -> mock app) -> success + - live_query (live + query -> evaluator) -> stays running + - batch_query (query -> evaluator) -> xfail +""" + +import time + +from ._flow_helpers import ( + create_mock_application, + create_mock_evaluator, + create_query, + create_testset, + create_simple_evaluation, + wait_for_run_terminal, + fetch_run, + query_scenarios, +) + + +class TestEvaluationRunFlows: + def test_testset_to_mock_app_to_mock_evaluator_runs_to_success(self, authed_api): + # ARRANGE -------------------------------------------------------------- + testset = create_testset(authed_api) + application = create_mock_application(authed_api, key="echo") + evaluator = create_mock_evaluator(authed_api, key="pass") + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + evaluation = create_simple_evaluation( + authed_api, + name="flow-testset-app-evaluator", + data={ + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + ) + run_id = evaluation["id"] + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + final = wait_for_run_terminal(authed_api, run_id) + run = final.json()["run"] + assert run["status"] == "success", run + # terminal run is no longer active + assert (run.get("flags") or {}).get("is_active") is False, run + + scenarios = query_scenarios(authed_api, run_id) + # the default testset has 2 testcases -> 2 scenarios + assert len(scenarios) == 2, scenarios + # ---------------------------------------------------------------------- + + def test_testset_to_mock_app_batch_invocation_runs_to_success(self, authed_api): + # batch_invocation: testset -> application, no evaluator. + # ARRANGE -------------------------------------------------------------- + testset = create_testset(authed_api) + application = create_mock_application(authed_api, key="echo") + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + evaluation = create_simple_evaluation( + authed_api, + name="flow-testset-app-only", + data={ + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + }, + ) + run_id = evaluation["id"] + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + final = wait_for_run_terminal(authed_api, run_id) + run = final.json()["run"] + assert run["status"] == "success", run + assert (run.get("flags") or {}).get("is_active") is False, run + # ---------------------------------------------------------------------- + + def test_live_query_evaluation_stays_running_and_active(self, authed_api): + # live_query never finalizes via the slice (update_run_status=False); it + # stays running/active so the scheduler keeps polling. This guards that + # the finalization fix does NOT finalize live evals. + # ARRANGE -------------------------------------------------------------- + query = create_query(authed_api, trace_type="invocation") + evaluator = create_mock_evaluator(authed_api, key="pass") + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + evaluation = create_simple_evaluation( + authed_api, + name="flow-live-query-evaluator", + data={ + "query_steps": [query["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + flags={"is_live": True}, + ) + run_id = evaluation["id"] + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + # give the worker a moment, then assert it has NOT been finalized + time.sleep(5) + run = fetch_run(authed_api, run_id) + assert run.get("status") == "running", run + assert (run.get("flags") or {}).get("is_active") is True, run + # ---------------------------------------------------------------------- + + def test_batch_query_to_evaluator_runs_to_success(self, authed_api): + # batch_query: query -> evaluator (no app, not live). Resolves traces via + # the query filter; with no matching traces in the test env it resolves + # zero items and still finalizes to success (batch query + # runs finalize, unlike live query runs). + # ARRANGE -------------------------------------------------------------- + query = create_query(authed_api, trace_type="invocation") + evaluator = create_mock_evaluator(authed_api, key="pass") + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + evaluation = create_simple_evaluation( + authed_api, + name="flow-batch-query-evaluator", + data={ + "query_steps": [query["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + ) + run_id = evaluation["id"] + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + final = wait_for_run_terminal(authed_api, run_id) + run = final.json()["run"] + assert run["status"] == "success", run + assert (run.get("flags") or {}).get("is_active") is False, run + # ---------------------------------------------------------------------- diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_metrics_flow.py b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_metrics_flow.py new file mode 100644 index 0000000000..bc9034c81f --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_metrics_flow.py @@ -0,0 +1,230 @@ +""" +End-to-end metric VALUE tests as part of the evaluation flow. + +The other metric suites cover plumbing — CRUD (`_basics`), refresh dispatch +routing on bare runs (`_refresh`), and query filters (`_queries`). None of them +assert that a REAL run produces correctly COMPUTED metrics. These tests close +that gap: they run a deterministic flow (mock app + mock evaluator, no LLM), +then assert the computed metric values and the three metric scopes. + +Metric model recap (see `simplified-interface.md` and +`EvaluationsService._refresh_metrics`): + - metric `data` is keyed by step (`{step_key: {...aggregates...}}`) + - variational = per scenario (scenario_id set), across its repeats + - temporal = per interval (timestamp/interval set) + - global = whole run (scenario_id null) — used for batch evaluations + +Scope: BATCH path (variational + global). TEMPORAL metrics belong to LIVE evals, +re-evaluated by a cron that POSTs `/admin/evaluations/runs/refresh` over a narrow +(~1 min) window. Asserting them from a test depends on trace-ingestion timing vs. +that window, which is too brittle to pin here — temporal is left to the live +infrastructure; the live path's "stays running/active" is covered in +`test_evaluation_flows_run.py`. +""" + +from ._flow_helpers import ( + create_mock_application, + create_mock_evaluator, + create_testset, + create_simple_evaluation, + wait_for_run_terminal, + query_scenarios, + wait_for_metrics, +) + + +def _metric_for(metrics, *, scenario_id): + """Return the single metric row matching scenario_id (None = global).""" + matches = [m for m in metrics if m.get("scenario_id") == scenario_id] + return matches[0] if matches else None + + +# The evaluator score aggregate lives under the evaluator step, keyed by the +# canonical output path. Computed metrics are numeric distributions with +# count/mean/sum (see `_refresh_metrics` -> analytics buckets). +SCORE_PATH = "attributes.ag.data.outputs.score" + + +def _score_aggregate(metric): + """Return the evaluator score aggregate ({count, mean, sum, ...}) or None. + + Walks the step-keyed metric `data` for the evaluator step that carries the + score path, without coupling to the evaluator step's generated slug. + """ + for step_key, step_metrics in (metric.get("data") or {}).items(): + if SCORE_PATH in (step_metrics or {}): + return step_metrics[SCORE_PATH] + return None + + +def _refresh_global_score(authed_api, run_id, *, expect_count, attempts=8): + """Drive the whole-run metric refresh and return the global score aggregate. + + The refresh is synchronous, but the run can report "terminal" a beat before + every scenario's result cell is durably persisted under parallel load, so the + first refresh may aggregate fewer cells. Re-refresh (short, ~15s total) until + the global score reaches `expect_count`, then return it; fail fast otherwise. + """ + import time + + last = None + for attempt in range(attempts): + response = authed_api( + "POST", + "/evaluations/metrics/refresh", + json={"metrics": {"run_id": str(run_id)}}, + ) + assert response.status_code == 200, response.text + global_metric = _metric_for(response.json()["metrics"], scenario_id=None) + last = _score_aggregate(global_metric) if global_metric else None + if last and last.get("count") == expect_count: + return last + time.sleep(min(0.5 * (2**attempt), 4.0)) + raise AssertionError( + f"global score did not reach count={expect_count} (last={last})" + ) + + +class TestEvaluationMetricsFlow: + def test_batch_run_produces_global_and_variational_metrics(self, authed_api): + # A deterministic batch run: 2 testcases -> echo app -> score evaluator + # returning a fixed score. After the run finishes, the worker has + # computed metrics. Assert both the global (whole-run) metric and the + # per-scenario (variational) metrics exist, keyed by the evaluator step, + # carrying the score. + # ARRANGE -------------------------------------------------------------- + testset = create_testset(authed_api) # 2 testcases + application = create_mock_application(authed_api, key="echo") + evaluator = create_mock_evaluator( + authed_api, key="score", kwargs={"score": 0.7, "threshold": 0.5} + ) + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + evaluation = create_simple_evaluation( + authed_api, + name="flow-metrics-batch", + data={ + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + ) + run_id = evaluation["id"] + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + final = wait_for_run_terminal(authed_api, run_id) + assert final.json()["run"]["status"] == "success", final.json() + + scenarios = query_scenarios(authed_api, run_id) + assert len(scenarios) == 2, scenarios + scenario_ids = {s["id"] for s in scenarios} + + # global metric: drive the whole-run refresh ourselves (synchronous), + # but POLL it — the run can report "terminal" a beat before BOTH + # scenarios' result cells are durably persisted under parallel load, so a + # single refresh may aggregate count=1. Poll the refresh until it sees + # both (count=2), capped to ~15s so a stuck env fails fast. + global_score = _refresh_global_score(authed_api, run_id, expect_count=2) + # the score evaluator returns 0.7 for both testcases. + assert global_score["count"] == 2, global_score + assert global_score["mean"] == 0.7, global_score + assert global_score["min"] == 0.7 and global_score["max"] == 0.7, global_score + + # variational metrics: one per scenario, written per-scenario during the + # run (so they are present once the run is terminal), scenario_id set, + # keyed by step. Each scenario has one repeat, so its score mean is 0.7. + metrics = wait_for_metrics( + authed_api, + run_id, + condition=lambda ms: ( + len([m for m in ms if m.get("scenario_id") in scenario_ids]) == 2 + ), + max_retries=6, + ) + variational = [m for m in metrics if m.get("scenario_id") in scenario_ids] + assert len(variational) == 2, f"expected 2 variational metrics: {variational}" + for metric in variational: + score = _score_aggregate(metric) + assert score is not None, f"variational metric has no score: {metric}" + assert score["mean"] == 0.7, (metric.get("scenario_id"), score) + # ---------------------------------------------------------------------- + + def test_refresh_recomputes_metrics_for_a_finished_run(self, authed_api): + # `refresh` is the standalone metrics op (decoupled from process). After + # a run finishes, re-invoking refresh over the run scope must recompute + # and return the same metrics (idempotent over a stable tensor). + # ARRANGE -------------------------------------------------------------- + testset = create_testset(authed_api) + application = create_mock_application(authed_api, key="echo") + evaluator = create_mock_evaluator( + authed_api, key="score", kwargs={"score": 1.0, "threshold": 0.5} + ) + evaluation = create_simple_evaluation( + authed_api, + name="flow-metrics-refresh", + data={ + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + ) + run_id = evaluation["id"] + wait_for_run_terminal(authed_api, run_id) + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + response = authed_api( + "POST", + "/evaluations/metrics/refresh", + json={"metrics": {"run_id": str(run_id)}}, + ) + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + assert response.status_code == 200, response.text + body = response.json() + # refresh over a finished run returns the recomputed metric(s). + assert body["count"] >= 1, body + refreshed = body["metrics"] + # the recomputed global metric carries the evaluator score (mean 1.0). + global_metric = _metric_for(refreshed, scenario_id=None) + assert global_metric is not None, f"no global metric after refresh: {refreshed}" + score = _score_aggregate(global_metric) + assert score is not None and score["mean"] == 1.0, score + # ---------------------------------------------------------------------- + + def test_failing_evaluator_metrics_reflect_zero_score(self, authed_api): + # The computed metric must reflect the evaluator's actual output, not a + # constant. A `fail` evaluator scores 0.0 — the metric value must differ + # from the passing case, proving the value is computed, not hardcoded. + # ARRANGE -------------------------------------------------------------- + testset = create_testset(authed_api) + application = create_mock_application(authed_api, key="echo") + evaluator = create_mock_evaluator(authed_api, key="fail") + evaluation = create_simple_evaluation( + authed_api, + name="flow-metrics-fail", + data={ + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + }, + ) + run_id = evaluation["id"] + # ---------------------------------------------------------------------- + + # ACT ------------------------------------------------------------------ + final = wait_for_run_terminal(authed_api, run_id) + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + assert final.json()["run"]["status"] == "success", final.json() + # drive + poll the global refresh (see batch test) until both scenarios + # are aggregated, rather than waiting for the worker's lagging refresh. + score = _refresh_global_score(authed_api, run_id, expect_count=2) + # the score aggregate is the failing value (mean 0.0), not 1 — proving + # the metric reflects the evaluator's real output, not a constant. + assert score["mean"] == 0.0 and score["max"] == 0.0, score + # ---------------------------------------------------------------------- diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_metrics_refresh.py b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_metrics_refresh.py new file mode 100644 index 0000000000..a6fcdccef2 --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_metrics_refresh.py @@ -0,0 +1,121 @@ +""" +Metrics refresh dispatch (`POST /evaluations/metrics/refresh`). + +`EvaluationsService.refresh_metrics` is a dispatcher over the request body: it +fans out to `_refresh_metrics` per run / scenario / timestamp depending on which +of `run_ids` / `run_id` / `scenario_ids` / `timestamps` are present, and returns +the union of the per-call metrics. These tests pin the dispatch contract and the +early-return paths that do not require traces, evaluator schemas, or the worker: + + - no `run_id`/`run_ids` -> [] (count 0) + - unknown `run_id` -> [] (run not found) + - unknown ids in `run_ids` -> [] (each run not found) + - run with no metrics-bearing steps -> [] (nothing to refresh) + +The trace-backed / schema-inference branches of `_refresh_metrics` are covered +by the flow tests that exercise a full run; here we lock the routing shape and +the "nothing to do" outcomes. +""" + +from uuid import uuid4 + + +def _create_run(authed_api, name=None) -> str: + response = authed_api( + "POST", + "/evaluations/runs/", + json={"runs": [{"name": name or f"run-{uuid4()}"}]}, + ) + assert response.status_code == 200, response.text + return response.json()["runs"][0]["id"] + + +def _refresh(authed_api, **metrics): + return authed_api( + "POST", + "/evaluations/metrics/refresh", + json={"metrics": metrics}, + ) + + +class TestRefreshMetricsDispatch: + def test_refresh_with_empty_body_returns_no_metrics(self, authed_api): + # No run_id and no run_ids -> the dispatcher short-circuits to []. + response = _refresh(authed_api) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] + + def test_refresh_unknown_run_id_returns_no_metrics(self, authed_api): + # A syntactically valid but non-existent run resolves to no run, so + # _refresh_metrics returns [] rather than erroring. + response = _refresh(authed_api, run_id=str(uuid4())) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] + + def test_refresh_unknown_run_ids_returns_no_metrics(self, authed_api): + # The run_ids branch loops per id; each unknown id contributes nothing. + response = _refresh(authed_api, run_ids=[str(uuid4()), str(uuid4())]) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] + + def test_refresh_run_without_steps_returns_no_metrics(self, authed_api): + # A bare run (created with just a name) has no metrics-bearing steps, so + # there is nothing to refresh. + run_id = _create_run(authed_api) + response = _refresh(authed_api, run_id=run_id) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] + + def test_refresh_scenario_ids_branch_returns_no_metrics(self, authed_api): + # With run_id set and scenario_ids present, the dispatcher loops the + # scenario_ids branch. Unknown scenarios on a bare run yield nothing. + run_id = _create_run(authed_api) + response = _refresh( + authed_api, + run_id=run_id, + scenario_ids=[str(uuid4()), str(uuid4())], + ) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] + + def test_refresh_timestamps_branch_returns_no_metrics(self, authed_api): + # With run_id set and timestamps present (and no scenario_ids), the + # dispatcher loops the timestamps branch. A bare run yields nothing. + run_id = _create_run(authed_api) + response = _refresh( + authed_api, + run_id=run_id, + timestamps=["2026-01-01T00:00:00Z", "2026-01-02T00:00:00Z"], + interval=3600, + ) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] + + def test_refresh_run_ids_takes_precedence_over_run_id(self, authed_api): + # When both run_ids and run_id are present, the dispatcher uses run_ids + # (the first branch). Two bare runs in run_ids both yield nothing, and a + # would-be conflicting run_id is ignored — count stays 0 either way, but + # this exercises the run_ids branch with real (empty) runs. + run_id_1 = _create_run(authed_api) + run_id_2 = _create_run(authed_api) + response = _refresh( + authed_api, + run_ids=[run_id_1, run_id_2], + run_id=str(uuid4()), + ) + assert response.status_code == 200, response.text + body = response.json() + assert body["count"] == 0 + assert body["metrics"] == [] diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_step_removal.py b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_step_removal.py new file mode 100644 index 0000000000..f12cee39dd --- /dev/null +++ b/api/oss/tests/pytest/acceptance/evaluations/test_evaluation_step_removal.py @@ -0,0 +1,179 @@ +from uuid import uuid4 + + +def _input_step(): + return { + "key": "input", + "type": "input", + "origin": "custom", + "references": {"testset": {"id": str(uuid4())}}, + } + + +def _human_annotation_step(): + return { + "key": "annotation", + "type": "annotation", + "origin": "human", + "references": {"evaluator_revision": {"id": str(uuid4())}}, + "inputs": [{"key": "input"}], + } + + +def _create_run(authed_api, steps): + response = authed_api( + "POST", + "/evaluations/runs/", + json={"runs": [{"name": "step removal run", "data": {"steps": steps}}]}, + ) + assert response.status_code == 200 + return response.json()["runs"][0] + + +def _create_scenario(authed_api, run_id): + response = authed_api( + "POST", + "/evaluations/scenarios/", + json={"scenarios": [{"run_id": run_id}]}, + ) + assert response.status_code == 200 + return response.json()["scenarios"][0] + + +def _create_result(authed_api, run_id, scenario_id, step_key): + response = authed_api( + "POST", + "/evaluations/results/", + json={ + "results": [ + { + "step_key": step_key, + "repeat_idx": 0, + "scenario_id": scenario_id, + "run_id": run_id, + } + ] + }, + ) + assert response.status_code == 200 + return response.json()["results"][0] + + +def _query_results(authed_api, **result): + response = authed_api( + "POST", + "/evaluations/results/query", + json={"result": result}, + ) + assert response.status_code == 200 + return response.json() + + +def _patch_steps(authed_api, run, steps): + response = authed_api( + "PATCH", + f"/evaluations/runs/{run['id']}", + json={ + "run": { + "id": run["id"], + "name": run["name"], + "data": {"steps": steps}, + } + }, + ) + assert response.status_code == 200 + return response.json() + + +class TestEvaluationStepRemoval: + def test_edit_dropping_a_non_input_step_prunes_only_its_cells(self, authed_api): + # ARRANGE -------------------------------------------------------------- + run = _create_run( + authed_api, + steps=[_input_step(), _human_annotation_step()], + ) + run_id = run["id"] + scenario = _create_scenario(authed_api, run_id) + scenario_id = scenario["id"] + + # Cells on both the input step and the annotation step. + _create_result(authed_api, run_id, scenario_id, "input") + _create_result(authed_api, run_id, scenario_id, "annotation") + + assert _query_results(authed_api, run_id=run_id)["count"] == 2 + # ---------------------------------------------------------------------- + + # ACT — edit the run, dropping the annotation step from the graph. + response = _patch_steps(authed_api, run, steps=[_input_step()]) + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + assert response["count"] == 1 + edited = response["run"] + assert [s["key"] for s in edited["data"]["steps"]] == ["input"] + # has_human dropped, queue eligibility gone. + assert edited["flags"]["has_human"] is False + assert edited["flags"]["is_queue"] is False + + # The annotation cell is pruned; the input cell survives. + remaining = _query_results(authed_api, run_id=run_id) + assert remaining["count"] == 1 + assert remaining["results"][0]["step_key"] == "input" + + # The scenario still has an input cell, so it is NOT orphaned. + scenarios = authed_api( + "POST", + "/evaluations/scenarios/query", + json={"scenario": {"run_id": run_id}}, + ).json() + assert scenarios["count"] == 1 + # ---------------------------------------------------------------------- + + def test_edit_dropping_the_input_step_prunes_orphan_scenarios(self, authed_api): + # ARRANGE -------------------------------------------------------------- + run = _create_run(authed_api, steps=[_input_step()]) + run_id = run["id"] + scenario = _create_scenario(authed_api, run_id) + scenario_id = scenario["id"] + + # The scenario's only cell is on the input step. + _create_result(authed_api, run_id, scenario_id, "input") + assert _query_results(authed_api, run_id=run_id)["count"] == 1 + # ---------------------------------------------------------------------- + + # ACT — drop the input step entirely (empty graph). + response = _patch_steps(authed_api, run, steps=[]) + # ---------------------------------------------------------------------- + + # ASSERT --------------------------------------------------------------- + assert response["count"] == 1 + assert response["run"]["data"]["steps"] in (None, []) + + # Cells pruned. + assert _query_results(authed_api, run_id=run_id)["count"] == 0 + + # The scenario was sourced only from the removed input step -> orphaned + # and removed. + scenarios = authed_api( + "POST", + "/evaluations/scenarios/query", + json={"scenario": {"run_id": run_id}}, + ).json() + assert scenarios["count"] == 0 + # ---------------------------------------------------------------------- + + def test_create_run_does_not_prune(self, authed_api): + # Create is "edit from an empty graph": the shared reconcile path runs, + # but prior_step_keys is empty so nothing is pruned and the graph is + # preserved verbatim. + run = _create_run( + authed_api, + steps=[_input_step(), _human_annotation_step()], + ) + assert [s["key"] for s in run["data"]["steps"]] == ["input", "annotation"] + assert run["flags"]["has_human"] is True + + # A human run gets an active default queue on create. + response = authed_api("GET", f"/evaluations/runs/{run['id']}/default-queue") + assert response.status_code == 200 + assert response.json()["count"] == 1 diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_simple_evaluations_workflows.py b/api/oss/tests/pytest/acceptance/evaluations/test_simple_evaluations_workflows.py index 8f994024b1..a932a26c21 100644 --- a/api/oss/tests/pytest/acceptance/evaluations/test_simple_evaluations_workflows.py +++ b/api/oss/tests/pytest/acceptance/evaluations/test_simple_evaluations_workflows.py @@ -63,6 +63,44 @@ def _create_simple_evaluator(authed_api) -> dict: return response.json()["evaluator"] +def _create_simple_testset(authed_api) -> dict: + slug = uuid4().hex + response = authed_api( + "POST", + "/simple/testsets/", + json={ + "testset": { + "slug": f"testset-{slug}", + "name": f"Testset {slug}", + "data": { + "testcases": [ + {"data": {"input": "hello", "expected": "world"}}, + {"data": {"input": "hola", "expected": "mundo"}}, + ] + }, + } + }, + ) + assert response.status_code == 200 + return response.json()["testset"] + + +def _create_simple_application(authed_api) -> dict: + slug = uuid4().hex + response = authed_api( + "POST", + "/simple/applications/", + json={ + "application": { + "slug": f"application-{slug}", + "name": f"Application {slug}", + } + }, + ) + assert response.status_code == 200 + return response.json()["application"] + + class TestSimpleEvaluationsWorkflowReferences: def test_create_live_simple_evaluation_accepts_query_and_evaluator_revision_ids( self, authed_api @@ -124,3 +162,146 @@ def test_create_live_simple_evaluation_rejects_non_invocation_query_revision( body = response.json() assert body["count"] == 0 assert body.get("evaluation") is None + + def test_create_batch_inference_evaluation_preserves_flags_repeats_and_refs( + self, authed_api + ): + testset = _create_simple_testset(authed_api) + application = _create_simple_application(authed_api) + + response = authed_api( + "POST", + "/simple/evaluations/", + json={ + "evaluation": { + "name": "batch-inference-setup", + "flags": { + "is_cached": True, + "is_split": True, + }, + "data": { + "testset_steps": [testset["revision_id"]], + "application_steps": [application["revision_id"]], + "repeats": 3, + }, + } + }, + ) + + assert response.status_code == 200 + body = response.json() + assert body["count"] == 1 + + evaluation = body["evaluation"] + assert evaluation["flags"]["is_cached"] is True + assert evaluation["flags"]["is_split"] is True + assert evaluation["data"]["repeats"] == 3 + assert set(evaluation["data"]["testset_steps"].keys()) == { + testset["revision_id"] + } + assert set(evaluation["data"]["application_steps"].keys()) == { + application["revision_id"] + } + + def test_create_batch_evaluation_preserves_application_evaluator_matrix( + self, authed_api + ): + testset = _create_simple_testset(authed_api) + application = _create_simple_application(authed_api) + evaluator = _create_simple_evaluator(authed_api) + + response = authed_api( + "POST", + "/simple/evaluations/", + json={ + "evaluation": { + "name": "batch-application-evaluator-setup", + "flags": { + "is_cached": False, + "is_split": False, + }, + "data": { + "testset_steps": {testset["revision_id"]: "custom"}, + "application_steps": {application["revision_id"]: "custom"}, + "evaluator_steps": {evaluator["revision_id"]: "auto"}, + "repeats": 2, + }, + } + }, + ) + + assert response.status_code == 200 + body = response.json() + assert body["count"] == 1 + + evaluation = body["evaluation"] + assert evaluation["flags"]["is_cached"] is False + assert evaluation["flags"]["is_split"] is False + assert evaluation["data"]["repeats"] == 2 + assert evaluation["data"]["testset_steps"] == {testset["revision_id"]: "custom"} + assert evaluation["data"]["application_steps"] == { + application["revision_id"]: "custom" + } + assert evaluation["data"]["evaluator_steps"] == { + evaluator["revision_id"]: "auto" + } + + def test_create_testset_to_evaluator_evaluation_does_not_fail_setup( + self, authed_api + ): + testset = _create_simple_testset(authed_api) + evaluator = _create_simple_evaluator(authed_api) + + response = authed_api( + "POST", + "/simple/evaluations/", + json={ + "evaluation": { + "name": "testset-to-evaluator-setup", + "data": { + "testset_steps": [testset["revision_id"]], + "evaluator_steps": [evaluator["revision_id"]], + }, + } + }, + ) + + assert response.status_code == 200 + body = response.json() + assert body["count"] == 1 + evaluation = body["evaluation"] + assert set(evaluation["data"]["testset_steps"].keys()) == { + testset["revision_id"] + } + assert set(evaluation["data"]["evaluator_steps"].keys()) == { + evaluator["revision_id"] + } + + def test_create_query_to_application_evaluation_does_not_fail_setup( + self, authed_api + ): + query = _create_simple_query(authed_api) + application = _create_simple_application(authed_api) + + response = authed_api( + "POST", + "/simple/evaluations/", + json={ + "evaluation": { + "name": "query-to-application-setup", + "data": { + "query_steps": [query["revision_id"]], + "application_steps": [application["revision_id"]], + }, + } + }, + ) + + assert response.status_code == 200 + body = response.json() + assert body["count"] == 1 + evaluation = body["evaluation"] + assert set(evaluation["data"]["query_steps"].keys()) == {query["revision_id"]} + assert set(evaluation["data"]["application_steps"].keys()) == { + application["revision_id"] + } diff --git a/api/oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py b/api/oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py index d8fdabef7a..595dde0ff5 100644 --- a/api/oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py +++ b/api/oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py @@ -170,7 +170,7 @@ def test_create_simple_queue_from_queries(self, authed_api): data = response.json() assert data["count"] == 1 queue = data["queue"] - assert queue["data"]["kind"] == "traces" + assert queue["data"]["kind"] == "queries" assert queue["data"]["queries"] == [query_revision_id] def test_create_simple_queue_from_testsets(self, authed_api): @@ -195,9 +195,162 @@ def test_create_simple_queue_from_testsets(self, authed_api): data = response.json() assert data["count"] == 1 queue = data["queue"] - assert queue["data"]["kind"] == "testcases" + assert queue["data"]["kind"] == "testsets" assert queue["data"]["testsets"] == [testset_revision_id] + def test_create_source_backed_queue_preserves_repeats_and_assignments( + self, authed_api + ): + evaluator_revision_id = _create_evaluator(authed_api) + testset_revision_id = _create_testset(authed_api) + user_id_1 = str(uuid4()) + user_id_2 = str(uuid4()) + + response = authed_api( + "POST", + "/simple/queues/", + json={ + "queue": { + "name": "testset-backed-queue-with-repeats", + "data": { + "testsets": [testset_revision_id], + "evaluators": {evaluator_revision_id: "human"}, + "repeats": 2, + "assignments": [[user_id_1], [user_id_2]], + }, + } + }, + ) + + assert response.status_code == 200 + data = response.json() + assert data["count"] == 1 + queue = data["queue"] + assert queue["data"]["kind"] == "testsets" + assert queue["data"]["testsets"] == [testset_revision_id] + assert queue["data"]["repeats"] == 2 + assert queue["data"]["assignments"] == [[user_id_1], [user_id_2]] + + def test_source_backed_queue_with_bare_evaluator_list_is_human_queue( + self, authed_api + ): + # a source-backed queue created with a bare evaluator list (no + # explicit origin) must default the evaluator to origin="human", so the + # backing run becomes a real queue (has_human -> is_queue). Before the + # fix the source builder defaulted to "custom", leaving is_queue=False + # and the queue unparseable (empty response). + evaluator_revision_id = _create_evaluator(authed_api) + query_revision_id = _create_query(authed_api) + + response = authed_api( + "POST", + "/simple/queues/", + json={ + "queue": { + "name": "query-backed-human-queue", + "data": { + "queries": [query_revision_id], + "evaluators": [evaluator_revision_id], + }, + } + }, + ) + + assert response.status_code == 200 + data = response.json() + assert data["count"] == 1 + queue = data["queue"] + assert queue["data"]["kind"] == "queries" + run_id = queue["run_id"] + + # The backing run must be a real human queue. + run_response = authed_api("GET", f"/evaluations/runs/{run_id}") + assert run_response.status_code == 200 + run = run_response.json()["run"] + assert run["flags"]["has_human"] is True + assert run["flags"]["is_queue"] is True + + def test_simple_queue_rejects_evaluator_dicts_with_no_human(self, authed_api): + # Simple-queue constraint: a queue CAN contain non-human evaluators but + # CANNOT resolve to ZERO human evaluators. A human evaluator is one that + # is origin-less (defaults to human) or explicitly "human". So an + # explicit dict whose values are all non-human is rejected, regardless + # of whether they are auto, custom, or a mix of the two. The underlying + # evaluation run has no such restriction. + eval_a = _create_evaluator(authed_api) + eval_b = _create_evaluator(authed_api) + + non_human_evaluator_specs = [ + {eval_a: "auto"}, # all auto + {eval_a: "custom"}, # all custom + {eval_a: "auto", eval_b: "custom"}, # mix of non-human origins + ] + + for evaluators in non_human_evaluator_specs: + testset_revision_id = _create_testset(authed_api) + response = authed_api( + "POST", + "/simple/queues/", + json={ + "queue": { + "name": "testset-backed-no-human", + "data": { + "testsets": [testset_revision_id], + "evaluators": evaluators, + }, + } + }, + ) + + assert response.status_code == 422, ( + f"expected reject for evaluators={evaluators}, got {response.status_code}" + ) + assert "at least one human evaluator" in response.text + + def test_simple_queue_allows_human_mixed_with_non_human_evaluators( + self, authed_api + ): + # The "at least one human" rule allows a mix: a human alongside any + # non-human origin (auto or custom) is a valid human queue. The explicit + # non-human origin is honored on the underlying run. + for non_human_origin, expected_flag in ( + ("auto", "has_auto"), + ("custom", "has_custom"), + ): + human_evaluator_id = _create_evaluator(authed_api) + other_evaluator_id = _create_evaluator(authed_api) + testset_revision_id = _create_testset(authed_api) + + response = authed_api( + "POST", + "/simple/queues/", + json={ + "queue": { + "name": f"testset-backed-human-plus-{non_human_origin}", + "data": { + "testsets": [testset_revision_id], + "evaluators": { + human_evaluator_id: "human", + other_evaluator_id: non_human_origin, + }, + }, + } + }, + ) + + assert response.status_code == 200 + data = response.json() + assert data["count"] == 1 + run_id = data["queue"]["run_id"] + + run_response = authed_api("GET", f"/evaluations/runs/{run_id}") + assert run_response.status_code == 200 + run = run_response.json()["run"] + # Both origins honored; the human presence makes it a real queue. + assert run["flags"]["has_human"] is True + assert run["flags"][expected_flag] is True + assert run["flags"]["is_queue"] is True + def test_create_simple_queue_without_evaluators_returns_empty(self, authed_api): # ACT ------------------------------------------------------------------ response = authed_api( @@ -284,7 +437,7 @@ def test_add_testcases_rejects_testset_backed_source_queue(self, authed_api): == "Cannot add testcases directly to a source-backed queue. Create a direct testcases queue instead." ) - def test_create_simple_queue_rejects_kind_with_queries(self, authed_api): + def test_create_simple_queue_rejects_resolved_kind_with_queries(self, authed_api): evaluator_revision_id = _create_evaluator(authed_api) query_revision_id = _create_query(authed_api) @@ -303,11 +456,32 @@ def test_create_simple_queue_rejects_kind_with_queries(self, authed_api): ) assert response.status_code == 422 - assert ( - "simple queue source must not include kind alongside queries or testsets" - in response.text + assert "query-backed queues must use kind='queries'" in response.text + + def test_create_simple_queue_rejects_mixed_query_and_testset_sources( + self, authed_api + ): + evaluator_revision_id = _create_evaluator(authed_api) + query_revision_id = _create_query(authed_api) + testset_revision_id = _create_testset(authed_api) + + response = authed_api( + "POST", + "/simple/queues/", + json={ + "queue": { + "data": { + "queries": [query_revision_id], + "testsets": [testset_revision_id], + "evaluators": [evaluator_revision_id], + }, + } + }, ) + assert response.status_code == 422 + assert "simple queue source must be either queries or testsets" in response.text + def test_create_simple_queue_with_assignments(self, authed_api): # ARRANGE -------------------------------------------------------------- evaluator_revision_id = _create_evaluator(authed_api) diff --git a/api/oss/tests/pytest/acceptance/loadables/test_loadable_strategies.py b/api/oss/tests/pytest/acceptance/loadables/test_loadable_strategies.py index 45f9c4b290..878a7fcc50 100644 --- a/api/oss/tests/pytest/acceptance/loadables/test_loadable_strategies.py +++ b/api/oss/tests/pytest/acceptance/loadables/test_loadable_strategies.py @@ -127,8 +127,20 @@ def mock_data(authed_api): # Ingestion is asynchronous; 202 Accepted assert response.status_code == 202, response.text - # Allow a moment for async ingestion to settle - time.sleep(1) + # Ingestion is asynchronous and its latency varies (especially under the + # parallel test run). Poll the trace store until all three ingested traces + # are queryable instead of relying on a fixed sleep, which is racy under + # load. Fast on the happy path; tolerant when ingestion is slow. + ids_param = ",".join(trace_ids) + deadline = time.time() + 15 + while True: + poll = authed_api("GET", f"/traces/?trace_ids={ids_param}") + visible = poll.json().get("traces") or poll.json().get("spans") or [] + if poll.status_code == 200 and len(visible) >= 3: + break + if time.time() >= deadline: + break + time.sleep(0.25) # -- Query revision (stores filtering + windowing) ---------------------- diff --git a/api/oss/tests/pytest/unit/auth/test_helper.py b/api/oss/tests/pytest/unit/auth/test_helper.py index ce4fa55a34..356008393e 100644 --- a/api/oss/tests/pytest/unit/auth/test_helper.py +++ b/api/oss/tests/pytest/unit/auth/test_helper.py @@ -5,7 +5,7 @@ from oss.src.core.auth import helper as auth_helper from oss.src.core.auth.supertokens import overrides -from oss.src.services.exceptions import UnauthorizedException +from oss.src.utils.exceptions import UnauthorizedException from supertokens_python.recipe.thirdparty.interfaces import SignInUpNotAllowed @@ -72,7 +72,7 @@ async def test_get_blocked_domains_accepts_string_posthog_payload(monkeypatch): blocked_emails=set(), allowed_domains=set(), ), - posthog=SimpleNamespace(enabled=True), + posthog=SimpleNamespace(enabled=True, api_key="posthog-key"), ), ) monkeypatch.setattr( @@ -86,9 +86,11 @@ async def test_get_blocked_domains_accepts_string_posthog_payload(monkeypatch): AsyncMock(), ) monkeypatch.setattr( - auth_helper.posthog, - "get_feature_flag_payload", - lambda feature_flag, distinct_id: "agenta.dev", + auth_helper, + "_load_posthog", + lambda: SimpleNamespace( + get_feature_flag_payload=lambda feature_flag, distinct_id: "agenta.dev", + ), ) blocked_domains = await auth_helper.get_blocked_domains() @@ -107,7 +109,7 @@ async def test_get_blocked_domains_splits_comma_separated_posthog_payload(monkey blocked_emails=set(), allowed_domains=set(), ), - posthog=SimpleNamespace(enabled=True), + posthog=SimpleNamespace(enabled=True, api_key="posthog-key"), ), ) monkeypatch.setattr( @@ -121,9 +123,13 @@ async def test_get_blocked_domains_splits_comma_separated_posthog_payload(monkey AsyncMock(), ) monkeypatch.setattr( - auth_helper.posthog, - "get_feature_flag_payload", - lambda feature_flag, distinct_id: "spica.asia, agenta.ai , yopmail.com", + auth_helper, + "_load_posthog", + lambda: SimpleNamespace( + get_feature_flag_payload=( + lambda feature_flag, distinct_id: "spica.asia, agenta.ai , yopmail.com" + ), + ), ) blocked_domains = await auth_helper.get_blocked_domains() @@ -131,6 +137,38 @@ async def test_get_blocked_domains_splits_comma_separated_posthog_payload(monkey assert blocked_domains == {"spica.asia", "agenta.ai", "yopmail.com"} +@pytest.mark.asyncio +async def test_get_blocked_emails_treats_posthog_errors_as_empty(monkeypatch): + monkeypatch.setattr( + auth_helper, + "env", + SimpleNamespace( + agenta=SimpleNamespace( + blocked_domains=set(), + blocked_emails=set(), + allowed_domains=set(), + ), + posthog=SimpleNamespace(enabled=True), + ), + ) + monkeypatch.setattr( + auth_helper, + "get_cache", + AsyncMock(return_value=None), + ) + monkeypatch.setattr( + auth_helper, + "_load_posthog", + lambda: SimpleNamespace( + get_feature_flag_payload=lambda feature_flag, distinct_id: ( + _ for _ in () + ).throw(ValueError("API key is required")), + ), + ) + + assert await auth_helper.get_blocked_emails() == set() + + @pytest.mark.asyncio async def test_thirdparty_sign_in_up_checks_blocking_before_auth(monkeypatch): called = False diff --git a/api/oss/tests/pytest/unit/evaluations/test_cache_split_utils.py b/api/oss/tests/pytest/unit/evaluations/test_cache_split_utils.py index 7c0cef9d24..06ae1026e9 100644 --- a/api/oss/tests/pytest/unit/evaluations/test_cache_split_utils.py +++ b/api/oss/tests/pytest/unit/evaluations/test_cache_split_utils.py @@ -110,7 +110,7 @@ def test_repeat_and_fanout_planning_helpers_follow_split_rules(): assert ( effective_is_split( is_split=True, - is_queue=True, + has_traces=True, has_application_steps=True, has_evaluator_steps=True, ) diff --git a/api/oss/tests/pytest/unit/evaluations/test_query_eval_loops.py b/api/oss/tests/pytest/unit/evaluations/test_query_eval_loops.py index 4f88be8851..c19ea1141c 100644 --- a/api/oss/tests/pytest/unit/evaluations/test_query_eval_loops.py +++ b/api/oss/tests/pytest/unit/evaluations/test_query_eval_loops.py @@ -24,7 +24,7 @@ SimpleQueueData, ) from oss.src.core.evaluations.service import SimpleQueuesService -from oss.src.core.evaluations.tasks import live as live_module +from oss.src.core.evaluations.tasks import query as query_module @pytest.mark.asyncio @@ -92,8 +92,8 @@ async def test_simple_queue_create_dispatches_each_query_source_with_step_key(): ) ), testsets_service=SimpleNamespace(fetch_testset_revision=AsyncMock()), - evaluate_batch_traces=AsyncMock(return_value=True), - evaluate_batch_testcases=AsyncMock(return_value=True), + dispatch_trace_slice=AsyncMock(return_value=True), + dispatch_testcase_slice=AsyncMock(return_value=True), ) service = SimpleQueuesService( @@ -116,9 +116,9 @@ async def test_simple_queue_create_dispatches_each_query_source_with_step_key(): assert created_queue is not None assert created_queue.data is not None - assert created_queue.data.kind == "traces" + assert created_queue.data.kind == "queries" assert created_queue.data.queries == [query_revision_id_1, query_revision_id_2] - assert simple_evaluations_service.evaluate_batch_traces.await_args_list == [ + assert simple_evaluations_service.dispatch_trace_slice.await_args_list == [ call( project_id=project_id, user_id=user_id, @@ -137,7 +137,7 @@ async def test_simple_queue_create_dispatches_each_query_source_with_step_key(): @pytest.mark.asyncio -async def test_evaluate_live_query_marks_human_steps_pending(monkeypatch): +async def test_process_query_source_run_marks_human_steps_pending(monkeypatch): project_id = uuid4() user_id = uuid4() run_id = uuid4() @@ -200,7 +200,7 @@ async def test_evaluate_live_query_marks_human_steps_pending(monkeypatch): refresh_metrics = AsyncMock() monkeypatch.setattr( - live_module, + query_module, "evaluations_service", SimpleNamespace( fetch_run=fetch_run, @@ -211,7 +211,7 @@ async def test_evaluate_live_query_marks_human_steps_pending(monkeypatch): ), ) monkeypatch.setattr( - live_module, + query_module, "queries_service", SimpleNamespace( fetch_query_revision=AsyncMock( @@ -224,7 +224,7 @@ async def test_evaluate_live_query_marks_human_steps_pending(monkeypatch): ), ) monkeypatch.setattr( - live_module, + query_module, "evaluators_service", SimpleNamespace( fetch_evaluator_revision=AsyncMock( @@ -237,22 +237,16 @@ async def test_evaluate_live_query_marks_human_steps_pending(monkeypatch): ), ) monkeypatch.setattr( - live_module, + query_module, "tracing_service", SimpleNamespace(query_traces=AsyncMock(return_value=[trace])), ) monkeypatch.setattr( - live_module, + query_module, "workflows_service", SimpleNamespace(invoke_workflow=AsyncMock()), ) - monkeypatch.setattr( - live_module, - "fetch_traces_by_hash", - AsyncMock(return_value=[]), - ) - - await live_module.evaluate_live_query( + await query_module.process_query_source_run( project_id=project_id, user_id=user_id, run_id=run_id, @@ -268,3 +262,59 @@ async def test_evaluate_live_query_marks_human_steps_pending(monkeypatch): assert isinstance(scenario_edit, EvaluationScenarioEdit) assert scenario_edit.status == EvaluationStatus.PENDING refresh_metrics.assert_not_awaited() + + +@pytest.mark.asyncio +async def test_process_query_source_run_skips_empty_query_results(monkeypatch): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + query_revision_id = uuid4() + evaluator_revision_id = uuid4() + run = EvaluationRun( + id=run_id, + flags=EvaluationRunFlags(has_queries=True, has_evaluators=True), + status=EvaluationStatus.RUNNING, + data=EvaluationRunData( + steps=[ + EvaluationRunDataStep( + key="query-main", + type="input", + origin="custom", + references={"query_revision": Reference(id=query_revision_id)}, + ), + EvaluationRunDataStep( + key="evaluator-auto", + type="annotation", + origin="auto", + references={ + "evaluator_revision": Reference(id=evaluator_revision_id) + }, + ), + ] + ), + ) + process_source_slice = AsyncMock() + monkeypatch.setattr( + query_module, + "evaluations_service", + SimpleNamespace(fetch_run=AsyncMock(return_value=run)), + ) + monkeypatch.setattr( + query_module, + "resolve_query_source_items", + AsyncMock(return_value={"query-main": []}), + ) + monkeypatch.setattr( + query_module, + "process_evaluation_source_slice", + process_source_slice, + ) + + await query_module.process_query_source_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + ) + + process_source_slice.assert_not_awaited() diff --git a/api/oss/tests/pytest/unit/evaluations/test_queue_dao_serialization.py b/api/oss/tests/pytest/unit/evaluations/test_queue_dao_serialization.py index cad44f6ee8..c7444a2b71 100644 --- a/api/oss/tests/pytest/unit/evaluations/test_queue_dao_serialization.py +++ b/api/oss/tests/pytest/unit/evaluations/test_queue_dao_serialization.py @@ -51,10 +51,14 @@ async def test_create_queue_serializes_queue_data_without_uuid_warnings(monkeypa "_get_run_flags", AsyncMock(return_value={}), ) + # Mock get_transactions_engine to return an engine with session method + mock_engine = type( + "MockEngine", (), {"session": lambda self: _DummySessionContext(session)} + )() monkeypatch.setattr( - dao_module.engine, - "core_session", - lambda: _DummySessionContext(session), + dao_module, + "get_transactions_engine", + lambda: mock_engine, ) def fake_create_dto_from_dbe(*, DTO, dbe): diff --git a/api/oss/tests/pytest/unit/evaluations/test_run_flag_matrix.py b/api/oss/tests/pytest/unit/evaluations/test_run_flag_matrix.py new file mode 100644 index 0000000000..84f7c8bfb7 --- /dev/null +++ b/api/oss/tests/pytest/unit/evaluations/test_run_flag_matrix.py @@ -0,0 +1,180 @@ +""" +Representative matrix for run-flag derivation (`create_run_flags`) and simple-queue +validation (`SimpleQueueData.validate_sources`). + +One row per equivalence class rather than the full cartesian product: each source +family once, each evaluator-origin class once, each independent flag toggled once. +Pure unit tests — no DB, no worker. + +Companion to `test_run_flags.py` (which covers cache/split preservation and the +direct-vs-backed source distinction); this file focuses on the broader has_*/origin +matrix and the queue "at least one human evaluator" rule. +""" + +from uuid import uuid4 + +import pytest +from pydantic import ValidationError + +from oss.src.core.evaluations.types import ( + EvaluationRun, + EvaluationRunData, + EvaluationRunDataStep, + EvaluationRunFlags, + SimpleQueueData, + SimpleQueueKind, +) +from oss.src.dbs.postgres.evaluations.utils import create_run_flags + + +# - helpers ------------------------------------------------------------------- + + +def _input_step(key, references=None, origin="custom"): + return EvaluationRunDataStep( + key=key, type="input", origin=origin, references=references or {} + ) + + +def _annotation_step(origin, key=None): + return EvaluationRunDataStep( + key=key or f"annotation-{origin}", + type="annotation", + origin=origin, + references={"evaluator_revision": {"id": str(uuid4())}}, + ) + + +def _run(steps, flags=None): + return EvaluationRun( + flags=flags or EvaluationRunFlags(), + data=EvaluationRunData(steps=steps), + ) + + +# - source family matrix ------------------------------------------------------ +# Each row: (label, input steps, expected source has_* flags) + +_QUERY_REF = {"query_revision": {"id": str(uuid4())}} +_TESTSET_REF = {"testset_revision": {"id": str(uuid4())}} + +SOURCE_ROWS = [ + # label steps expected (queries, testsets, traces, testcases) + ("queries", [_input_step("q", _QUERY_REF)], (True, False, False, False)), + ("testsets", [_input_step("t", _TESTSET_REF)], (False, True, False, False)), + ("traces-direct", [_input_step("traces", {})], (False, False, True, False)), + ("testcases-direct", [_input_step("testcases", {})], (False, False, False, True)), + ( + "multi-input-query+testset", + [_input_step("q", _QUERY_REF), _input_step("t", _TESTSET_REF)], + (True, True, False, False), + ), + ("none", [], (False, False, False, False)), +] + + +@pytest.mark.parametrize( + "label,steps,expected", + SOURCE_ROWS, + ids=[r[0] for r in SOURCE_ROWS], +) +def test_source_family_flag_derivation(label, steps, expected): + flags = create_run_flags(_run(steps)) + assert flags is not None + want_q, want_t, want_tr, want_tc = expected + assert flags.has_queries is want_q + assert flags.has_testsets is want_t + assert flags.has_traces is want_tr + assert flags.has_testcases is want_tc + + +# - evaluator origin matrix --------------------------------------------------- +# Each row: (label, annotation origins, expected (has_evaluators, has_human, has_auto, has_custom)) + +ORIGIN_ROWS = [ + ("none", [], (False, False, False, False)), + ("human", ["human"], (True, True, False, False)), + ("auto", ["auto"], (True, False, True, False)), + ("custom", ["custom"], (True, False, False, True)), + ("human+auto", ["human", "auto"], (True, True, True, False)), + ("human+custom", ["human", "custom"], (True, True, False, True)), + ("auto+custom", ["auto", "custom"], (True, False, True, True)), + ("all", ["human", "auto", "custom"], (True, True, True, True)), +] + + +@pytest.mark.parametrize( + "label,origins,expected", + ORIGIN_ROWS, + ids=[r[0] for r in ORIGIN_ROWS], +) +def test_evaluator_origin_flag_derivation(label, origins, expected): + steps = [_input_step("t", _TESTSET_REF)] + [ + _annotation_step(o, key=f"annotation-{i}") for i, o in enumerate(origins) + ] + flags = create_run_flags(_run(steps)) + assert flags is not None + want_eval, want_human, want_auto, want_custom = expected + assert flags.has_evaluators is want_eval + assert flags.has_human is want_human + assert flags.has_auto is want_auto + assert flags.has_custom is want_custom + + +# - independent flag preservation --------------------------------------------- +# is_live / is_cached / is_split are explicit flags, preserved across derivation. + + +@pytest.mark.parametrize("flag_name", ["is_live", "is_cached", "is_split"]) +def test_explicit_flags_preserved_through_derivation(flag_name): + flags_in = EvaluationRunFlags(**{flag_name: True}) + steps = [_input_step("t", _TESTSET_REF), _annotation_step("auto")] + flags = create_run_flags(_run(steps, flags=flags_in)) + assert flags is not None + assert getattr(flags, flag_name) is True + + +# - simple-queue evaluator validation ----------------------------------------- +# Rule: a simple queue must resolve to >=1 human evaluator. A bare list is +# origin-less (defaults to human) -> always valid. An explicit dict is valid only +# if at least one value is "human"; a dict of only non-human origins is rejected. + +_E1 = uuid4() +_E2 = uuid4() + + +def _queue_data(evaluators): + return SimpleQueueData(kind=SimpleQueueKind.TESTCASES, evaluators=evaluators) + + +def test_bare_evaluator_list_is_valid(): + data = _queue_data([_E1, _E2]) + assert data.evaluators == [_E1, _E2] + + +@pytest.mark.parametrize( + "evaluators,ok", + [ + ({_E1: "human"}, True), + ({_E1: "human", _E2: "auto"}, True), + ({_E1: "human", _E2: "custom"}, True), + ({_E1: "auto"}, False), + ({_E1: "custom"}, False), + ({_E1: "auto", _E2: "custom"}, False), + ], + ids=[ + "human", + "human+auto", + "human+custom", + "all-auto", + "all-custom", + "auto+custom", + ], +) +def test_simple_queue_human_evaluator_rule(evaluators, ok): + if ok: + data = _queue_data(evaluators) + assert data.evaluators == evaluators + else: + with pytest.raises(ValidationError): + _queue_data(evaluators) diff --git a/api/oss/tests/pytest/unit/evaluations/test_run_flags.py b/api/oss/tests/pytest/unit/evaluations/test_run_flags.py index 03bb40cb1a..1c16b4d1a1 100644 --- a/api/oss/tests/pytest/unit/evaluations/test_run_flags.py +++ b/api/oss/tests/pytest/unit/evaluations/test_run_flags.py @@ -56,3 +56,110 @@ def test_evaluation_run_query_flags_include_cache_and_split_when_explicit(): "is_cached": False, "is_split": False, } + + +def test_create_run_flags_keeps_direct_source_families_distinct_from_backed_sources(): + direct_run = EvaluationRun( + data=EvaluationRunData( + steps=[ + EvaluationRunDataStep( + key="traces", + type="input", + origin="custom", + references={}, + ), + EvaluationRunDataStep( + key="testcases", + type="input", + origin="custom", + references={}, + ), + ] + ) + ) + backed_run = EvaluationRun( + data=EvaluationRunData( + steps=[ + EvaluationRunDataStep( + key="query-main", + type="input", + origin="custom", + references={"query_revision": {"id": str(uuid4())}}, + ), + EvaluationRunDataStep( + key="testset-main", + type="input", + origin="custom", + references={"testset_revision": {"id": str(uuid4())}}, + ), + ] + ) + ) + + direct_flags = create_run_flags(direct_run) + backed_flags = create_run_flags(backed_run) + + assert direct_flags is not None + assert direct_flags.has_traces is True + assert direct_flags.has_testcases is True + assert direct_flags.has_queries is False + assert direct_flags.has_testsets is False + assert backed_flags is not None + assert backed_flags.has_queries is True + assert backed_flags.has_testsets is True + assert backed_flags.has_traces is False + assert backed_flags.has_testcases is False + + +def test_create_run_flags_uses_exact_reference_keys_not_substring(): + # Source-family detection keys on the exact reference key + # (`query_revision` / `testset_revision`). Keys that merely contain "query" + # or "testset" as a substring must NOT flip the family flags. + run = EvaluationRun( + data=EvaluationRunData( + steps=[ + EvaluationRunDataStep( + key="input-misc", + type="input", + origin="custom", + references={ + "query_anchor": {"id": str(uuid4())}, + "testset_metadata": {"id": str(uuid4())}, + "subquery_ref": {"id": str(uuid4())}, + }, + ), + ] + ) + ) + + flags = create_run_flags(run) + + assert flags is not None + assert flags.has_queries is False + assert flags.has_testsets is False + + +def test_create_run_flags_detects_exact_reference_keys_among_other_refs(): + # The exact key still triggers even when other (non-source) references are + # present on the same step. + run = EvaluationRun( + data=EvaluationRunData( + steps=[ + EvaluationRunDataStep( + key="input-query", + type="input", + origin="custom", + references={ + "query_revision": {"id": str(uuid4())}, + "query_anchor": {"id": str(uuid4())}, + }, + ), + ] + ) + ) + + flags = create_run_flags(run) + + assert flags is not None + assert flags.has_queries is True + assert flags.has_testsets is False diff --git a/api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py b/api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py new file mode 100644 index 0000000000..b85274ddf3 --- /dev/null +++ b/api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py @@ -0,0 +1,2300 @@ +from types import SimpleNamespace +from unittest.mock import AsyncMock, call +from uuid import uuid4 + +import pytest + +from oss.src.core.evaluations.runtime.adapters import ( + BackendCachedRunner, + BackendEvaluatorRunner, + BackendWorkflowRunner, + BackendWorkflowServiceRunner, +) +from oss.src.core.evaluations.runtime.cache import RunnableCacheResolver +from oss.src.core.evaluations.runtime.executor import ( + ApplicationBatchRunnableStepExecutor, + WorkflowRunnableStepExecutor, +) +from oss.src.core.evaluations.runtime.models import ( + ProcessSummary, + ResolvedSourceItem, + TensorSlice, + TensorProbeSummary, +) +from oss.src.core.evaluations.runtime.planner import ( + EvaluationPlanner, + make_scenario_bindings, + plan_source_input_result_creates, + planned_cells_to_result_creates, +) +from oss.src.core.evaluations.runtime.sources import ( + SourceResolutionError, + resolve_direct_source_items, + resolve_live_query_traces, + resolve_queue_source_batches, + resolve_testset_input_specs, +) +from oss.src.core.evaluations.runtime.tensor import TensorSliceOperations +from oss.src.core.evaluations.runtime.runner import TaskiqEvaluationTaskRunner +from oss.src.core.evaluations.runtime.topology import classify_run_topology +from agenta.sdk.evaluations.runtime.models import ( + EvaluationStep as SdkEvaluationStep, + PlannedCell as SdkPlannedCell, + ResolvedSourceItem as SdkResolvedSourceItem, + WorkflowExecutionRequest, + WorkflowExecutionResult, +) +from agenta.sdk.evaluations.runtime.processor import ( + ProcessedScenario as SdkProcessedScenario, +) +from agenta.sdk.models.evaluations import EvaluationStatus as SdkEvaluationStatus +from oss.src.core.evaluations.types import ( + EvaluationResult, + EvaluationResultCreate, + EvaluationRun, + EvaluationRunData, + EvaluationRunDataStep, + EvaluationRunFlags, + EvaluationStatus, + SimpleEvaluation, + SimpleEvaluationData, + SimpleEvaluationFlags, +) +from oss.src.core.shared.dtos import Reference +from oss.src.core.tracing.dtos import Windowing +from oss.src.core.evaluations.service import SimpleEvaluationsService +from oss.src.core.evaluations.tasks import processor as source_slice_tasks +from oss.src.core.evaluations.tasks import run as run_tasks + + +def _run(*, steps, flags=None, repeats=1): + return EvaluationRun( + id=uuid4(), + flags=flags or EvaluationRunFlags(), + data=EvaluationRunData(steps=list(steps), repeats=repeats), + ) + + +def _step(key, type_, origin="custom", references=None): + return EvaluationRunDataStep( + key=key, + type=type_, + origin=origin, + references=references or {}, + ) + + +def test_topology_classifier_preserves_current_batch_dispatch_shapes(): + query_eval = _run( + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + ] + ) + testset_eval = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + ] + ) + batch_inference = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + ] + ) + + assert classify_run_topology(query_eval).dispatch == "batch_query" + assert classify_run_topology(testset_eval).dispatch == "batch_testset" + assert classify_run_topology(batch_inference).dispatch == "batch_invocation" + + +def test_topology_classifier_names_deferred_shapes(): + query_to_app = _run( + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + ] + ) + testset_to_eval = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + ] + ) + multi_app = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step("application-a", "invocation"), + _step("application-b", "invocation"), + ] + ) + + assert classify_run_topology(query_to_app).status == "potential" + assert classify_run_topology(testset_to_eval).status == "potential" + assert classify_run_topology(multi_app).status == "not_planned" + + +def test_topology_classifier_names_not_planned_source_shapes(): + mixed_sources = _run( + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step("evaluator-auto", "annotation", origin="auto"), + ] + ) + live_testset = _run( + flags=EvaluationRunFlags(is_live=True), + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step("evaluator-auto", "annotation", origin="auto"), + ], + ) + + assert classify_run_topology(mixed_sources).status == "not_planned" + assert classify_run_topology(live_testset).status == "not_planned" + + +def test_planner_creates_repeat_aware_slots_and_keeps_manual_annotations_pending(): + run = _run( + repeats=3, + flags=EvaluationRunFlags(is_split=False), + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-human", + "annotation", + origin="human", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + ], + ) + scenario_id = uuid4() + bindings = make_scenario_bindings( + scenario_ids=[scenario_id], + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ) + ], + ) + + plan = EvaluationPlanner().plan(run=run, bindings=bindings) + cells_by_step = {} + for cell in plan.cells: + cells_by_step.setdefault(cell.step_key, []).append(cell) + + assert [cell.repeat_idx for cell in cells_by_step["testset-main"]] == [0, 1, 2] + assert [cell.repeat_idx for cell in cells_by_step["application-main"]] == [0] + assert [cell.repeat_idx for cell in cells_by_step["evaluator-auto"]] == [0, 1, 2] + assert [cell.status for cell in cells_by_step["evaluator-human"]] == [ + EvaluationStatus.PENDING, + EvaluationStatus.PENDING, + EvaluationStatus.PENDING, + ] + assert {(cell.step_key, cell.repeat_idx) for cell in plan.executable_cells} == { + ("application-main", 0), + ("evaluator-auto", 0), + ("evaluator-auto", 1), + ("evaluator-auto", 2), + } + + +def test_planner_fans_out_application_for_batch_inference_without_evaluators(): + run = _run( + repeats=2, + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + ], + ) + bindings = make_scenario_bindings( + scenario_ids=[uuid4()], + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ) + ], + ) + + plan = EvaluationPlanner().plan(run=run, bindings=bindings) + + assert [ + cell.repeat_idx for cell in plan.cells if cell.step_key == "application-main" + ] == [0, 1] + + +def test_planner_fans_out_application_when_split_is_enabled(): + run = _run( + repeats=3, + flags=EvaluationRunFlags(is_split=True), + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + _step("evaluator-auto", "annotation", origin="auto"), + ], + ) + plan = EvaluationPlanner().plan( + run=run, + bindings=make_scenario_bindings( + scenario_ids=[uuid4()], + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ) + ], + ), + ) + + assert [ + cell.repeat_idx for cell in plan.cells if cell.step_key == "application-main" + ] == [0, 1, 2] + + +def test_planned_cells_convert_to_result_create_payloads(): + run = _run( + repeats=1, + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-human", + "annotation", + origin="human", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + ], + ) + trace_id = "trace-1" + scenario_id = uuid4() + plan = EvaluationPlanner().plan( + run=run, + bindings=make_scenario_bindings( + scenario_ids=[scenario_id], + source_items=[ + ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id=trace_id, + ) + ], + ), + ) + + result_creates = planned_cells_to_result_creates(plan.cells) + + assert [(result.step_key, result.status) for result in result_creates] == [ + ("query-main", EvaluationStatus.SUCCESS), + ("evaluator-human", EvaluationStatus.PENDING), + ] + assert result_creates[0].trace_id == trace_id + assert result_creates[1].trace_id is None + + +def test_plan_source_input_result_creates_filters_to_source_step(): + run = _run( + repeats=2, + steps=[ + _step("query-other", "input"), + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step("evaluator-auto", "annotation", origin="auto"), + ], + ) + scenario_id = uuid4() + + result_creates = plan_source_input_result_creates( + run=run, + scenario_id=scenario_id, + source_item=ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id="trace-main", + ), + ) + + assert [result.step_key for result in result_creates] == [ + "query-main", + "query-main", + ] + assert [result.repeat_idx for result in result_creates] == [0, 1] + assert [result.trace_id for result in result_creates] == [ + "trace-main", + "trace-main", + ] + + +@pytest.mark.asyncio +async def test_cache_resolver_skips_lookup_when_disabled_and_fetches_when_enabled(): + project_id = uuid4() + + class DummyTracingService: + async def query_traces(self, *, project_id, query): + return [SimpleNamespace(trace_id="trace-1"), SimpleNamespace(trace_id=None)] + + disabled = await RunnableCacheResolver().resolve( + tracing_service=DummyTracingService(), + project_id=project_id, + enabled=False, + references={"evaluator_revision": Reference(id=uuid4())}, + required_count=2, + ) + enabled = await RunnableCacheResolver().resolve( + tracing_service=DummyTracingService(), + project_id=project_id, + enabled=True, + references={"evaluator_revision": Reference(id=uuid4())}, + required_count=2, + ) + + assert disabled.reusable_traces == [] + assert disabled.missing_count == 2 + assert [trace.trace_id for trace in enabled.reusable_traces] == ["trace-1"] + assert enabled.missing_count == 1 + + +@pytest.mark.asyncio +async def test_cache_resolver_zero_required_count_does_not_query_traces(): + tracing_service = SimpleNamespace(query_traces=AsyncMock()) + + resolution = await RunnableCacheResolver().resolve( + tracing_service=tracing_service, + project_id=uuid4(), + enabled=True, + references={"evaluator_revision": Reference(id=uuid4())}, + required_count=0, + ) + + assert resolution.reusable_traces == [] + assert resolution.missing_count == 0 + tracing_service.query_traces.assert_not_awaited() + + +@pytest.mark.asyncio +async def test_queue_source_resolver_resolves_query_and_testset_batches(): + project_id = uuid4() + query_revision_id = uuid4() + testset_revision_id = uuid4() + testcase_id_1 = uuid4() + testcase_id_2 = uuid4() + run = _run( + steps=[ + _step( + "query-source", + "input", + references={"query_revision": Reference(id=query_revision_id)}, + ), + _step( + "testset-source", + "input", + references={"testset_revision": Reference(id=testset_revision_id)}, + ), + _step("evaluator-human", "annotation", origin="human"), + ], + ) + queries_service = SimpleNamespace( + fetch_query_revision=AsyncMock( + return_value=SimpleNamespace( + data=SimpleNamespace(trace_ids=["trace-1", "trace-2"]) + ) + ) + ) + testsets_service = SimpleNamespace( + fetch_testset_revision=AsyncMock( + return_value=SimpleNamespace( + data=SimpleNamespace(testcase_ids=[testcase_id_1, testcase_id_2]) + ) + ) + ) + + batches = await resolve_queue_source_batches( + project_id=project_id, + run=run, + queries_service=queries_service, + testsets_service=testsets_service, + ) + + assert [batch.kind for batch in batches] == ["traces", "testcases"] + assert batches[0].step_key == "query-source" + assert batches[0].trace_ids == ["trace-1", "trace-2"] + assert batches[1].step_key == "testset-source" + assert batches[1].testcase_ids == [testcase_id_1, testcase_id_2] + queries_service.fetch_query_revision.assert_awaited_once() + testsets_service.fetch_testset_revision.assert_awaited_once() + + +@pytest.mark.asyncio +async def test_queue_source_resolver_skips_empty_sources(): + run = _run( + steps=[ + _step( + "query-source", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "testset-source", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + ], + ) + + batches = await resolve_queue_source_batches( + project_id=uuid4(), + run=run, + queries_service=SimpleNamespace( + fetch_query_revision=AsyncMock( + return_value=SimpleNamespace(data=SimpleNamespace(trace_ids=[])) + ) + ), + testsets_service=SimpleNamespace( + fetch_testset_revision=AsyncMock( + return_value=SimpleNamespace(data=SimpleNamespace(testcase_ids=[])) + ) + ), + ) + + assert batches == [] + + +@pytest.mark.asyncio +async def test_queue_source_resolver_empty_query_does_not_fall_through_to_testset(): + # A query step whose query revision resolves to zero traces is a real empty + # batch — it must not fall through to the testset resolver, which should + # never be asked about a query-only step. + run = _run( + steps=[ + _step( + "query-source", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + ], + ) + fetch_testset_revision = AsyncMock( + return_value=SimpleNamespace(data=SimpleNamespace(testcase_ids=[uuid4()])) + ) + + batches = await resolve_queue_source_batches( + project_id=uuid4(), + run=run, + queries_service=SimpleNamespace( + fetch_query_revision=AsyncMock( + return_value=SimpleNamespace(data=SimpleNamespace(trace_ids=[])) + ) + ), + testsets_service=SimpleNamespace(fetch_testset_revision=fetch_testset_revision), + ) + + assert batches == [] + fetch_testset_revision.assert_not_awaited() + + +@pytest.mark.asyncio +async def test_queue_source_resolver_rejects_step_with_multiple_source_refs(): + # An input step must carry exactly one recognized source reference. + run = _run( + steps=[ + _step( + "ambiguous-source", + "input", + references={ + "query_revision": Reference(id=uuid4()), + "testset_revision": Reference(id=uuid4()), + }, + ), + ], + ) + + with pytest.raises(SourceResolutionError): + await resolve_queue_source_batches( + project_id=uuid4(), + run=run, + queries_service=SimpleNamespace(fetch_query_revision=AsyncMock()), + testsets_service=SimpleNamespace(fetch_testset_revision=AsyncMock()), + ) + + +@pytest.mark.asyncio +async def test_testset_payload_source_resolver_preserves_testcase_payloads(): + project_id = uuid4() + testset_id = uuid4() + testset_variant_id = uuid4() + testset_revision_id = uuid4() + testcase_id = uuid4() + testcase = SimpleNamespace(id=testcase_id, data={"prompt": "hello"}) + testsets_service = SimpleNamespace( + fetch_testset_revision=AsyncMock( + return_value=SimpleNamespace( + id=testset_revision_id, + variant_id=testset_variant_id, + data=SimpleNamespace(testcases=[testcase]), + ) + ), + fetch_testset_variant=AsyncMock( + return_value=SimpleNamespace( + id=testset_variant_id, + testset_id=testset_id, + ) + ), + fetch_testset=AsyncMock( + return_value=SimpleNamespace( + id=testset_id, + slug="testset-main", + ) + ), + ) + + specs = await resolve_testset_input_specs( + project_id=project_id, + input_steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=testset_revision_id)}, + ) + ], + testsets_service=testsets_service, + ) + + assert len(specs) == 1 + assert specs[0].step_key == "testset-main" + assert specs[0].testcases == [testcase] + assert specs[0].testcases_data == [ + {"prompt": "hello", "testcase_id": str(testcase_id)} + ] + + +@pytest.mark.asyncio +async def test_direct_source_resolver_preserves_order_and_missing_testcases(): + project_id = uuid4() + testcase_id_1 = uuid4() + testcase_id_2 = uuid4() + testcase = SimpleNamespace(id=testcase_id_1, data={"input": "a"}) + testcases_service = SimpleNamespace( + fetch_testcases=AsyncMock(return_value=[testcase]) + ) + + source_items = await resolve_direct_source_items( + project_id=project_id, + testcase_ids=[testcase_id_1, testcase_id_2], + trace_ids=["trace-1"], + testcases_service=testcases_service, + ) + + assert [source_item.kind for source_item in source_items] == [ + "testcase", + "testcase", + "trace", + ] + assert source_items[0].testcase == testcase + assert source_items[1].testcase is None + assert source_items[2].trace_id == "trace-1" + + +@pytest.mark.asyncio +async def test_direct_source_resolver_loads_trace_context(): + project_id = uuid4() + trace_id = "trace-1" + span_id = "span-1" + trace_payload = { + "trace_id": trace_id, + "spans": { + span_id: { + "trace_id": trace_id, + "span_id": span_id, + "attributes": { + "ag": { + "data": { + "inputs": {"prompt": "hello"}, + "outputs": {"answer": "world"}, + } + } + }, + } + }, + } + trace = SimpleNamespace( + trace_id=trace_id, + spans={ + span_id: SimpleNamespace( + trace_id=trace_id, + span_id=span_id, + attributes=trace_payload["spans"][span_id]["attributes"], + ) + }, + model_dump=lambda **_: trace_payload, + ) + tracing_service = SimpleNamespace(fetch_trace=AsyncMock(return_value=trace)) + + source_items = await resolve_direct_source_items( + project_id=project_id, + trace_ids=[trace_id], + tracing_service=tracing_service, + ) + + assert len(source_items) == 1 + assert source_items[0].kind == "trace" + assert source_items[0].trace_id == trace_id + assert source_items[0].span_id == span_id + assert source_items[0].trace is not None + assert source_items[0].inputs == {"prompt": "hello"} + assert source_items[0].outputs == {"answer": "world"} + + +@pytest.mark.asyncio +async def test_live_query_trace_resolver_applies_default_windowing(): + project_id = uuid4() + traces = [SimpleNamespace(trace_id="trace-1")] + + class DummyTracingService: + def __init__(self): + self.query = None + + async def query_traces(self, *, project_id, query): + self.query = query + return traces + + tracing_service = DummyTracingService() + + resolved = await resolve_live_query_traces( + project_id=project_id, + query_revisions={ + "query-main": SimpleNamespace(data=SimpleNamespace()), + }, + tracing_service=tracing_service, + ) + + assert resolved == {"query-main": traces} + assert tracing_service.query.windowing.order == "ascending" + assert tracing_service.query.windowing.limit is None + + +@pytest.mark.asyncio +async def test_live_query_trace_resolver_uses_revision_windowing_when_requested(): + class DummyTracingService: + def __init__(self): + self.query = None + + async def query_traces(self, *, project_id, query): + self.query = query + return [] + + tracing_service = DummyTracingService() + revision_windowing = Windowing( + oldest=None, + newest=None, + limit=25, + order="descending", + rate=0.5, + ) + + await resolve_live_query_traces( + project_id=uuid4(), + query_revisions={ + "query-main": SimpleNamespace( + data=SimpleNamespace(filtering=None, windowing=revision_windowing) + ), + }, + tracing_service=tracing_service, + use_windowing=True, + ) + + assert tracing_service.query.windowing.limit == 25 + assert tracing_service.query.windowing.order == "descending" + assert tracing_service.query.windowing.rate == 0.5 + + +@pytest.mark.asyncio +async def test_tensor_slice_operations_probe_populate_prune_and_process(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + scenario_id = uuid4() + result_id = uuid4() + result = EvaluationResult( + id=result_id, + run_id=run_id, + scenario_id=scenario_id, + step_key="evaluator-auto", + repeat_idx=0, + status=EvaluationStatus.SUCCESS, + ) + evaluations_service = SimpleNamespace( + query_results=AsyncMock(return_value=[result]), + create_results=AsyncMock(return_value=[result]), + delete_results=AsyncMock(return_value=[result_id]), + refresh_metrics=AsyncMock(return_value=[]), + ) + operations = TensorSliceOperations(evaluations_service=evaluations_service) + tensor_slice = TensorSlice( + run_id=run_id, + scenario_ids=[scenario_id], + step_keys=["evaluator-auto"], + repeat_idxs=[0], + ) + + probed = await operations.probe( + project_id=project_id, + tensor_slice=tensor_slice, + ) + populated = await operations.populate( + project_id=project_id, + user_id=user_id, + results=[ + EvaluationResultCreate( + run_id=run_id, + scenario_id=scenario_id, + step_key="evaluator-auto", + repeat_idx=0, + status=EvaluationStatus.SUCCESS, + ) + ], + ) + pruned = await operations.prune( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + + assert probed == [result] + assert populated == [result] + assert pruned == [result_id] + assert evaluations_service.query_results.await_count == 2 + assert evaluations_service.create_results.await_count == 1 + assert evaluations_service.delete_results.await_count == 1 + # probe/populate/prune operate on results only — none of them refresh + # metrics. Metrics are the separate `refresh` op. + assert evaluations_service.refresh_metrics.await_count == 0 + + # refresh() is the metrics op; it recomputes the slice's scope. + await operations.refresh( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + assert evaluations_service.refresh_metrics.await_count == 1 + + # process() with no wired slice_processor must fail loudly rather than + # masquerade as execution by silently refreshing metrics (UEL-015). + with pytest.raises(NotImplementedError): + await operations.process( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + + +@pytest.mark.asyncio +async def test_tensor_slice_process_delegates_to_injected_processor(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + expected = ProcessSummary(created=2, pending=1) + slice_processor = SimpleNamespace(process=AsyncMock(return_value=expected)) + operations = TensorSliceOperations( + evaluations_service=SimpleNamespace(), + slice_processor=slice_processor, + ) + tensor_slice = TensorSlice( + run_id=run_id, + scenario_ids=[uuid4()], + step_keys=["evaluator-auto"], + repeat_idxs=[0], + ) + + summary = await operations.process( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + + assert summary == expected + slice_processor.process.assert_awaited_once_with( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + + +@pytest.mark.asyncio +async def test_tensor_slice_probe_summary_counts_statuses_and_missing_cells(): + project_id = uuid4() + run_id = uuid4() + scenario_id = uuid4() + evaluations_service = SimpleNamespace( + query_results=AsyncMock( + return_value=[ + EvaluationResult( + id=uuid4(), + run_id=run_id, + scenario_id=scenario_id, + step_key="step-success", + repeat_idx=0, + status=EvaluationStatus.SUCCESS, + ), + EvaluationResult( + id=uuid4(), + run_id=run_id, + scenario_id=scenario_id, + step_key="step-failure", + repeat_idx=0, + status=EvaluationStatus.FAILURE, + ), + EvaluationResult( + id=uuid4(), + run_id=run_id, + scenario_id=scenario_id, + step_key="step-pending", + repeat_idx=0, + status=EvaluationStatus.PENDING, + ), + ] + ) + ) + + summary = await TensorSliceOperations( + evaluations_service=evaluations_service + ).probe_summary( + project_id=project_id, + tensor_slice=TensorSlice(run_id=run_id), + expected_count=5, + ) + + assert summary == TensorProbeSummary( + existing_count=3, + missing_count=2, + success_count=1, + failure_count=1, + pending_count=1, + any_count=3, + ) + + +@pytest.mark.asyncio +async def test_tensor_slice_empty_dimension_short_circuits_probe_and_process(): + project_id = uuid4() + user_id = uuid4() + operations = TensorSliceOperations( + evaluations_service=SimpleNamespace( + query_results=AsyncMock(), + refresh_metrics=AsyncMock(), + ) + ) + tensor_slice = TensorSlice(run_id=uuid4(), scenario_ids=[]) + + assert ( + await operations.probe( + project_id=project_id, + tensor_slice=tensor_slice, + ) + == [] + ) + assert ( + await operations.process( + project_id=project_id, + user_id=user_id, + tensor_slice=tensor_slice, + ) + == ProcessSummary() + ) + operations.evaluations_service.query_results.assert_not_awaited() + operations.evaluations_service.refresh_metrics.assert_not_awaited() + + +@pytest.mark.asyncio +async def test_workflow_runnable_executor_normalizes_success_and_failure(): + success_response = SimpleNamespace( + status=SimpleNamespace(code=200), + trace_id="trace-success", + outputs={"score": 1}, + ) + failure_status = SimpleNamespace( + code=500, + model_dump=lambda **kwargs: {"code": 500, "message": "failed"}, + ) + failure_response = SimpleNamespace( + status=failure_status, + trace_id="trace-failure", + outputs=None, + ) + workflows_service = SimpleNamespace( + invoke_workflow=AsyncMock(side_effect=[success_response, failure_response]) + ) + executor = WorkflowRunnableStepExecutor(workflows_service=workflows_service) + + success = await executor.execute(project_id=uuid4(), user_id=uuid4(), request={}) + failure = await executor.execute(project_id=uuid4(), user_id=uuid4(), request={}) + + assert success.status == EvaluationStatus.SUCCESS + assert success.trace_id == "trace-success" + assert success.error is None + assert failure.status == EvaluationStatus.FAILURE + assert failure.error == {"code": 500, "message": "failed"} + assert workflows_service.invoke_workflow.await_count == 2 + + +@pytest.mark.asyncio +async def test_backend_workflow_service_runner_adapts_sdk_runtime_request(): + workflows_service = SimpleNamespace( + invoke_workflow=AsyncMock( + return_value=SimpleNamespace( + status=SimpleNamespace(code=200), + trace_id="trace-success", + span_id="span-success", + outputs={"score": 1}, + ) + ) + ) + runner = BackendWorkflowServiceRunner( + workflows_service=workflows_service, + request_builder=lambda request: { + "project_id": "project", + "step_key": request.step.key, + }, + ) + request = WorkflowExecutionRequest( + step=SdkEvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + cell=SdkPlannedCell( + run_id=uuid4(), + scenario_id=uuid4(), + step_key="evaluator-auto", + step_type="annotation", + origin="auto", + repeat_idx=0, + status=SdkEvaluationStatus.QUEUED, + ), + source=SdkResolvedSourceItem(kind="trace", step_key="query-main"), + revision={"slug": "evaluator-auto"}, + ) + + result = await runner.execute(request) + + assert result.status == SdkEvaluationStatus.SUCCESS + assert result.trace_id == "trace-success" + assert result.span_id == "span-success" + workflows_service.invoke_workflow.assert_awaited_once_with( + project_id="project", + step_key="evaluator-auto", + ) + + +@pytest.mark.asyncio +async def test_taskiq_evaluation_task_runner_omits_empty_optional_kwargs(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + worker = SimpleNamespace( + process_run=SimpleNamespace(kiq=AsyncMock(return_value="run-task")), + process_slice=SimpleNamespace(kiq=AsyncMock(return_value="slice-task")), + ) + runner = TaskiqEvaluationTaskRunner(worker=worker) + + assert ( + await runner.process_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + ) + == "run-task" + ) + assert ( + await runner.process_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind="traces", + trace_ids=["trace-1"], + ) + == "slice-task" + ) + + worker.process_run.kiq.assert_awaited_once_with( + project_id=project_id, + user_id=user_id, + run_id=run_id, + ) + worker.process_slice.kiq.assert_awaited_once_with( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind="traces", + trace_ids=["trace-1"], + ) + + +@pytest.mark.asyncio +async def test_backend_workflow_runner_invokes_application_through_workflow_service(): + project_id = uuid4() + user_id = uuid4() + application_revision_id = uuid4() + workflows_service = SimpleNamespace( + invoke_workflow=AsyncMock( + return_value=SimpleNamespace( + status=SimpleNamespace(code=200), + trace_id="app-trace", + span_id="app-span", + outputs={"answer": "world"}, + ) + ) + ) + runner = BackendWorkflowRunner( + project_id=project_id, + user_id=user_id, + workflows_service=workflows_service, + ) + revision = { + "id": str(application_revision_id), + "data": { + "uri": "http://application", + "schemas": { + "inputs": { + "type": "object", + "properties": {"input": {"type": "string"}}, + } + }, + "parameters": {"temperature": 0.1}, + }, + "flags": {"is_chat": True}, + } + request = WorkflowExecutionRequest( + step=SdkEvaluationStep(key="application-main", type="invocation"), + cell=SdkPlannedCell( + run_id=uuid4(), + scenario_id=uuid4(), + step_key="application-main", + step_type="invocation", + origin="custom", + repeat_idx=0, + status=SdkEvaluationStatus.QUEUED, + ), + source=SdkResolvedSourceItem( + kind="testcase", + step_key="testset-main", + inputs={ + "input": "hello", + "correct_answer": "world", + "testcase_id": "testcase-id", + "testcase_dedup_id": "dedup-id", + }, + ), + revision=revision, + references={"application_revision": {"id": str(application_revision_id)}}, + ) + + result = await runner.execute(request) + + assert result.status == SdkEvaluationStatus.SUCCESS + assert result.trace_id == "app-trace" + workflows_service.invoke_workflow.assert_awaited_once() + kwargs = workflows_service.invoke_workflow.await_args.kwargs + assert kwargs["project_id"] == project_id + assert kwargs["user_id"] == user_id + assert "annotate" not in kwargs + workflow_request = kwargs["request"] + assert workflow_request.flags == {"is_chat": True} + assert workflow_request.data.revision == revision + assert workflow_request.data.revision["data"]["uri"] == "http://application" + assert workflow_request.data.revision["data"]["schemas"] == { + "inputs": { + "type": "object", + "properties": {"input": {"type": "string"}}, + } + } + assert workflow_request.data.parameters == {"temperature": 0.1} + assert workflow_request.data.inputs == {"input": "hello"} + assert ( + workflow_request.references["application_revision"].id + == application_revision_id + ) + + +@pytest.mark.asyncio +async def test_backend_evaluator_runner_sends_normalized_workflow_request(): + project_id = uuid4() + user_id = uuid4() + workflow_revision_id = uuid4() + workflows_service = SimpleNamespace( + invoke_workflow=AsyncMock( + return_value=SimpleNamespace( + status=SimpleNamespace(code=200), + trace_id="eval-trace", + span_id="eval-span", + outputs={"score": 1}, + ) + ) + ) + runner = BackendEvaluatorRunner( + project_id=project_id, + user_id=user_id, + workflows_service=workflows_service, + ) + revision = SimpleNamespace( + id=workflow_revision_id, + data=SimpleNamespace( + uri="http://evaluator", + url=None, + headers={"authorization": "secret"}, + schemas={"outputs": {"type": "object"}}, + script="return score", + parameters={"threshold": 0.5}, + ), + flags=SimpleNamespace(model_dump=lambda **kwargs: {"is_custom": True}), + model_dump=lambda **kwargs: {"id": str(workflow_revision_id)}, + ) + request = WorkflowExecutionRequest( + step=SdkEvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + cell=SdkPlannedCell( + run_id=uuid4(), + scenario_id=uuid4(), + step_key="evaluator-auto", + step_type="annotation", + origin="auto", + repeat_idx=0, + status=SdkEvaluationStatus.QUEUED, + ), + source=SdkResolvedSourceItem( + kind="testcase", + step_key="testset-main", + inputs={"input": "hello"}, + outputs={"answer": "world"}, + ), + revision=revision, + references={"evaluator_revision": {"id": str(workflow_revision_id)}}, + links={"invocation": {"trace_id": "app-trace", "span_id": "app-span"}}, + upstream_trace={"trace_id": "app-trace"}, + upstream_outputs={"answer": "world"}, + ) + + result = await runner.execute(request) + + assert result.status == SdkEvaluationStatus.SUCCESS + assert result.trace_id == "eval-trace" + workflows_service.invoke_workflow.assert_awaited_once() + kwargs = workflows_service.invoke_workflow.await_args.kwargs + assert kwargs["project_id"] == project_id + assert kwargs["user_id"] == user_id + assert "annotate" not in kwargs + workflow_request = kwargs["request"] + assert workflow_request.flags == {"is_custom": True} + assert workflow_request.data.revision == {"id": str(workflow_revision_id)} + assert workflow_request.data.parameters == {"threshold": 0.5} + assert workflow_request.data.inputs == {"input": "hello"} + assert workflow_request.data.outputs == {"answer": "world"} + assert workflow_request.links["invocation"].trace_id == "app-trace" + assert workflow_request.links["invocation"].span_id == "app-span" + + +@pytest.mark.asyncio +async def test_backend_evaluator_runner_preserves_dict_revision_data(): + project_id = uuid4() + user_id = uuid4() + workflow_revision_id = uuid4() + workflows_service = SimpleNamespace( + invoke_workflow=AsyncMock( + return_value=SimpleNamespace( + status=SimpleNamespace(code=200), + trace_id="eval-trace", + span_id="eval-span", + outputs={"score": 1}, + ) + ) + ) + runner = BackendEvaluatorRunner( + project_id=project_id, + user_id=user_id, + workflows_service=workflows_service, + ) + revision = { + "id": str(workflow_revision_id), + "data": { + "uri": "http://evaluator", + "url": None, + "headers": {"authorization": "secret"}, + "schemas": {"outputs": {"type": "object"}}, + "script": "return score", + "parameters": {"threshold": 0.5}, + }, + "flags": {"is_custom": True}, + } + request = WorkflowExecutionRequest( + step=SdkEvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + cell=SdkPlannedCell( + run_id=uuid4(), + scenario_id=uuid4(), + step_key="evaluator-auto", + step_type="annotation", + origin="auto", + repeat_idx=0, + status=SdkEvaluationStatus.QUEUED, + ), + source=SdkResolvedSourceItem( + kind="testcase", + step_key="testset-main", + inputs={"input": "hello"}, + ), + revision=revision, + ) + + result = await runner.execute(request) + + assert result.status == SdkEvaluationStatus.SUCCESS + workflows_service.invoke_workflow.assert_awaited_once() + workflow_request = workflows_service.invoke_workflow.await_args.kwargs["request"] + assert workflow_request.flags == {"is_custom": True} + assert workflow_request.data.revision["data"]["uri"] == "http://evaluator" + assert workflow_request.data.revision["data"]["headers"] == { + "authorization": "secret" + } + assert workflow_request.data.revision["data"]["schemas"] == { + "outputs": {"type": "object"} + } + assert workflow_request.data.revision["data"]["script"] == "return score" + assert workflow_request.data.revision["data"]["parameters"] == {"threshold": 0.5} + assert workflow_request.data.parameters == {"threshold": 0.5} + + +@pytest.mark.asyncio +async def test_backend_cached_runner_preserves_partial_hit_order(): + project_id = uuid4() + cached_trace = SimpleNamespace(trace_id="cached-trace") + tracing_service = SimpleNamespace( + query_traces=AsyncMock(side_effect=[[cached_trace], []]) + ) + + class BatchRunner: + def __init__(self): + self.requests = [] + + async def execute_batch(self, requests, semaphore=None): + self.requests.append(requests) + return [ + WorkflowExecutionResult( + status=SdkEvaluationStatus.SUCCESS, + trace_id="fresh-trace", + ) + ] + + batch_runner = BatchRunner() + runner = BackendCachedRunner( + runner=batch_runner, + tracing_service=tracing_service, + project_id=project_id, + enabled=True, + ) + requests = [ + WorkflowExecutionRequest( + step=SdkEvaluationStep(key="evaluator-auto", type="annotation"), + cell=SdkPlannedCell( + run_id=uuid4(), + scenario_id=uuid4(), + step_key="evaluator-auto", + step_type="annotation", + origin="auto", + repeat_idx=idx, + status=SdkEvaluationStatus.QUEUED, + ), + source=SdkResolvedSourceItem(kind="trace", step_key="query-main"), + revision={"id": "evaluator-revision"}, + references={"evaluator_revision": {"id": f"revision-{idx}"}}, + ) + for idx in range(2) + ] + + results = await runner.execute_batch(requests) + + assert [result.trace_id for result in results] == ["cached-trace", "fresh-trace"] + assert len(batch_runner.requests) == 1 + assert [request.cell.repeat_idx for request in batch_runner.requests[0]] == [1] + + +@pytest.mark.asyncio +async def test_application_batch_runnable_executor_delegates_batch_invocation(): + batch_invoke = AsyncMock(return_value=["invocation-1", "invocation-2"]) + executor = ApplicationBatchRunnableStepExecutor(batch_invoke=batch_invoke) + + invocations = await executor.execute_batch( + project_id="project", + user_id="user", + testset_data=[{"input": 1}], + ) + + assert invocations == ["invocation-1", "invocation-2"] + batch_invoke.assert_awaited_once_with( + project_id="project", + user_id="user", + testset_data=[{"input": 1}], + ) + + +@pytest.mark.asyncio +async def test_simple_evaluation_start_dispatches_batch_invocation_by_topology(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + run = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + ], + ) + run.id = run_id + worker = SimpleNamespace( + process_run=SimpleNamespace(kiq=AsyncMock()), + ) + service = SimpleEvaluationsService( + testsets_service=None, # type: ignore[arg-type] + queries_service=None, # type: ignore[arg-type] + applications_service=None, # type: ignore[arg-type] + evaluators_service=None, # type: ignore[arg-type] + evaluations_service=None, # type: ignore[arg-type] + evaluations_worker=worker, + ) + service.fetch = AsyncMock( + return_value=SimpleEvaluation( + id=run_id, + flags=SimpleEvaluationFlags(is_live=False), + data=SimpleEvaluationData( + status=None, + testset_steps={uuid4(): "custom"}, + application_steps={uuid4(): "custom"}, + ), + ) + ) + service._activate_evaluation_run = AsyncMock(return_value=run) + + await service.start( + project_id=project_id, + user_id=user_id, + evaluation_id=run_id, + ) + + worker.process_run.kiq.assert_awaited_once_with( + project_id=project_id, + user_id=user_id, + run_id=run_id, + ) + + +@pytest.mark.asyncio +async def test_simple_evaluation_start_does_not_dispatch_potential_topology(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + run = _run( + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + ], + ) + run.id = run_id + worker = SimpleNamespace( + process_run=SimpleNamespace(kiq=AsyncMock()), + ) + service = SimpleEvaluationsService( + testsets_service=None, # type: ignore[arg-type] + queries_service=None, # type: ignore[arg-type] + applications_service=None, # type: ignore[arg-type] + evaluators_service=None, # type: ignore[arg-type] + evaluations_service=None, # type: ignore[arg-type] + evaluations_worker=worker, + ) + service.fetch = AsyncMock( + return_value=SimpleEvaluation( + id=run_id, + flags=SimpleEvaluationFlags(is_live=False), + data=SimpleEvaluationData( + status=None, + query_steps={uuid4(): "custom"}, + application_steps={uuid4(): "custom"}, + ), + ) + ) + service._activate_evaluation_run = AsyncMock(return_value=run) + + await service.start( + project_id=project_id, + user_id=user_id, + evaluation_id=run_id, + ) + + worker.process_run.kiq.assert_not_awaited() + + +@pytest.mark.asyncio +async def test_simple_evaluation_queue_batches_dispatch_through_slice_processor(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + testcase_id = uuid4() + run = _run( + flags=EvaluationRunFlags( + is_queue=True, + has_queries=True, + has_testsets=True, + ), + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step("evaluator-human", "annotation", origin="human"), + ], + ) + run.id = run_id + worker = SimpleNamespace( + process_slice=SimpleNamespace(kiq=AsyncMock()), + ) + evaluations_service = SimpleNamespace(fetch_run=AsyncMock(return_value=run)) + service = SimpleEvaluationsService( + testsets_service=None, # type: ignore[arg-type] + queries_service=None, # type: ignore[arg-type] + applications_service=None, # type: ignore[arg-type] + evaluators_service=None, # type: ignore[arg-type] + evaluations_service=evaluations_service, # type: ignore[arg-type] + evaluations_worker=worker, + ) + service._ensure_human_annotation_queue = AsyncMock() + + traces_ok = await service.dispatch_trace_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + trace_ids=["trace-1"], + input_step_key="query-main", + ) + testcases_ok = await service.dispatch_testcase_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + testcase_ids=[testcase_id], + input_step_key="testset-main", + ) + + assert traces_ok is True + assert testcases_ok is True + assert worker.process_slice.kiq.await_args_list == [ + call( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind="traces", + trace_ids=["trace-1"], + input_step_key="query-main", + ), + call( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind="testcases", + testcase_ids=[testcase_id], + input_step_key="testset-main", + ), + ] + + +@pytest.mark.asyncio +async def test_slice_processor_calls_source_slice_loop_directly(monkeypatch): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + testcase_id = uuid4() + tracing_service = object() + testcases_service = object() + workflows_service = object() + evaluations_service = object() + process_source_slice = AsyncMock() + monkeypatch.setattr( + run_tasks, + "process_evaluation_source_slice", + process_source_slice, + ) + + traces_ok = await run_tasks.process_evaluation_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind="traces", + trace_ids=["trace-1"], + input_step_key="query-main", + tracing_service=tracing_service, # type: ignore[arg-type] + testcases_service=testcases_service, # type: ignore[arg-type] + workflows_service=workflows_service, # type: ignore[arg-type] + evaluations_service=evaluations_service, # type: ignore[arg-type] + ) + testcases_ok = await run_tasks.process_evaluation_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_kind="testcases", + testcase_ids=[testcase_id], + input_step_key="testset-main", + tracing_service=tracing_service, # type: ignore[arg-type] + testcases_service=testcases_service, # type: ignore[arg-type] + workflows_service=workflows_service, # type: ignore[arg-type] + evaluations_service=evaluations_service, # type: ignore[arg-type] + ) + + assert traces_ok is True + assert testcases_ok is True + assert process_source_slice.await_args_list == [ + call( + project_id=project_id, + user_id=user_id, + run_id=run_id, + trace_ids=["trace-1"], + input_step_key="query-main", + tracing_service=tracing_service, + workflows_service=workflows_service, + evaluations_service=evaluations_service, + ), + call( + project_id=project_id, + user_id=user_id, + run_id=run_id, + testcase_ids=[testcase_id], + input_step_key="testset-main", + tracing_service=tracing_service, + testcases_service=testcases_service, + workflows_service=workflows_service, + evaluations_service=evaluations_service, + ), + ] + + +@pytest.mark.asyncio +async def test_run_processor_routes_batch_inference_through_testset_application_loop( + monkeypatch, +): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + run = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + ], + ) + run.id = run_id + process_testset_source_run = AsyncMock() + monkeypatch.setattr( + run_tasks, + "process_testset_source_run", + process_testset_source_run, + ) + + processed = await run_tasks.process_evaluation_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + tracing_service=object(), # type: ignore[arg-type] + testsets_service=object(), # type: ignore[arg-type] + queries_service=object(), # type: ignore[arg-type] + workflows_service=object(), # type: ignore[arg-type] + applications_service=object(), # type: ignore[arg-type] + evaluations_service=SimpleNamespace(fetch_run=AsyncMock(return_value=run)), + simple_evaluators_service=object(), # type: ignore[arg-type] + ) + + assert processed is True + process_testset_source_run.assert_awaited_once() + + +@pytest.mark.asyncio +async def test_testset_source_run_resolves_rows_and_uses_source_slice_processor( + monkeypatch, +): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + testcase_id = uuid4() + testset_id = uuid4() + testset_variant_id = uuid4() + testset_revision_id = uuid4() + run = _run( + steps=[ + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=testset_revision_id)}, + ), + _step( + "application-main", + "invocation", + references={"application_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=uuid4())}, + ), + ], + ) + run.id = run_id + testcase = SimpleNamespace(id=testcase_id, data={"prompt": "hello"}) + resolved_specs = [ + { + "step_key": "testset-main", + "testset": SimpleNamespace(id=testset_id), + "testset_revision": SimpleNamespace( + id=testset_revision_id, + variant_id=testset_variant_id, + ), + "testcases": [testcase], + "testcases_data": [{"prompt": "hello"}], + } + ] + process_source_slice = AsyncMock() + monkeypatch.setattr( + source_slice_tasks, + "_resolve_testset_input_specs", + AsyncMock(return_value=resolved_specs), + ) + monkeypatch.setattr( + source_slice_tasks, + "process_evaluation_source_slice", + process_source_slice, + ) + + await source_slice_tasks.process_testset_source_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + tracing_service=object(), # type: ignore[arg-type] + testsets_service=object(), # type: ignore[arg-type] + workflows_service=object(), # type: ignore[arg-type] + applications_service=object(), # type: ignore[arg-type] + evaluations_service=SimpleNamespace(fetch_run=AsyncMock(return_value=run)), + ) + + process_source_slice.assert_awaited_once() + kwargs = process_source_slice.await_args.kwargs + assert kwargs["project_id"] == project_id + assert kwargs["user_id"] == user_id + assert kwargs["run_id"] == run_id + assert kwargs["require_queue"] is False + source_item = kwargs["source_items"][0] + assert source_item.kind == "testcase" + assert source_item.step_key == "testset-main" + assert source_item.testcase_id == testcase_id + assert source_item.testcase is testcase + assert source_item.inputs == {"prompt": "hello"} + assert source_item.references == { + "testcase": {"id": str(testcase_id)}, + "testset": {"id": str(testset_id)}, + "testset_variant": {"id": str(testset_variant_id)}, + "testset_revision": {"id": str(testset_revision_id)}, + } + + +@pytest.mark.asyncio +async def test_source_slice_processor_maps_scenario_and_run_statuses(monkeypatch): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + scenario_success = SimpleNamespace(id=uuid4(), tags=None, meta=None) + scenario_pending = SimpleNamespace(id=uuid4(), tags=None, meta=None) + scenario_errors = SimpleNamespace(id=uuid4(), tags=None, meta=None) + run = _run( + flags=EvaluationRunFlags(is_queue=True, has_queries=True), + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step("evaluator-human", "annotation", origin="human"), + ], + ) + run.id = run_id + evaluations_service = SimpleNamespace( + fetch_run=AsyncMock(return_value=run), + edit_scenario=AsyncMock(), + edit_run=AsyncMock(), + ) + monkeypatch.setattr( + source_slice_tasks, + "sdk_process_evaluation_source_slice", + AsyncMock( + return_value=[ + SdkProcessedScenario(scenario=scenario_success), + SdkProcessedScenario( + scenario=scenario_pending, + has_pending=True, + ), + SdkProcessedScenario( + scenario=scenario_errors, + has_errors=True, + ), + ] + ), + ) + + await source_slice_tasks.process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id="trace-1", + ) + ], + tracing_service=SimpleNamespace(), + workflows_service=SimpleNamespace(), + evaluations_service=evaluations_service, + ) + + assert [ + call.kwargs["scenario"].status + for call in evaluations_service.edit_scenario.await_args_list + ] == [ + EvaluationStatus.SUCCESS, + EvaluationStatus.PENDING, + EvaluationStatus.ERRORS, + ] + assert evaluations_service.edit_run.await_args.kwargs["run"].status == ( + EvaluationStatus.ERRORS + ) + + +@pytest.mark.asyncio +async def test_source_slice_processor_hydrates_direct_trace_batches(monkeypatch): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + trace_id = "trace-1" + span_id = "span-1" + scenario = SimpleNamespace(id=uuid4(), tags=None, meta=None) + run = _run( + flags=EvaluationRunFlags(is_queue=True, has_traces=True), + steps=[ + _step("traces", "input"), + _step("evaluator-human", "annotation", origin="human"), + ], + ) + run.id = run_id + trace_payload = { + "trace_id": trace_id, + "spans": { + span_id: { + "trace_id": trace_id, + "span_id": span_id, + "attributes": { + "ag": { + "data": { + "inputs": {"prompt": "hello"}, + "outputs": {"answer": "world"}, + } + } + }, + } + }, + } + trace = SimpleNamespace( + trace_id=trace_id, + spans={ + span_id: SimpleNamespace( + trace_id=trace_id, + span_id=span_id, + attributes=trace_payload["spans"][span_id]["attributes"], + ) + }, + model_dump=lambda **_: trace_payload, + ) + evaluations_service = SimpleNamespace( + fetch_run=AsyncMock(side_effect=[run, run]), + edit_scenario=AsyncMock(), + edit_run=AsyncMock(), + ) + sdk_process = AsyncMock(return_value=[SdkProcessedScenario(scenario=scenario)]) + monkeypatch.setattr( + source_slice_tasks, + "sdk_process_evaluation_source_slice", + sdk_process, + ) + + await source_slice_tasks.process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + trace_ids=[trace_id], + tracing_service=SimpleNamespace(fetch_trace=AsyncMock(return_value=trace)), + workflows_service=SimpleNamespace(), + evaluations_service=evaluations_service, + ) + + sdk_source_item = sdk_process.await_args.kwargs["source_items"][0] + assert sdk_source_item.trace_id == trace_id + assert sdk_source_item.span_id == span_id + assert sdk_source_item.trace is not None + assert sdk_source_item.inputs == {"prompt": "hello"} + assert sdk_source_item.outputs == {"answer": "world"} + + +@pytest.mark.asyncio +async def test_source_slice_processor_preserves_higher_queue_status(monkeypatch): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + scenario = SimpleNamespace(id=uuid4(), tags=None, meta=None) + run = _run( + flags=EvaluationRunFlags(is_queue=True, has_queries=True), + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step("evaluator-human", "annotation", origin="human"), + ], + ) + run.id = run_id + current_run = run.model_copy(update={"status": EvaluationStatus.ERRORS}) + evaluations_service = SimpleNamespace( + fetch_run=AsyncMock(side_effect=[run, current_run]), + edit_scenario=AsyncMock(), + edit_run=AsyncMock(), + ) + monkeypatch.setattr( + source_slice_tasks, + "sdk_process_evaluation_source_slice", + AsyncMock(return_value=[SdkProcessedScenario(scenario=scenario)]), + ) + + await source_slice_tasks.process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id="trace-1", + ) + ], + tracing_service=SimpleNamespace(), + workflows_service=SimpleNamespace(), + evaluations_service=evaluations_service, + ) + + assert evaluations_service.edit_run.await_args.kwargs["run"].status == ( + EvaluationStatus.ERRORS + ) + + +@pytest.mark.asyncio +async def test_source_slice_processor_marks_run_failure_on_invalid_batch(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + run = _run( + flags=EvaluationRunFlags(is_queue=True), + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step("evaluator-human", "annotation", origin="human"), + ], + ) + run.id = run_id + evaluations_service = SimpleNamespace( + fetch_run=AsyncMock(return_value=run), + edit_run=AsyncMock(), + ) + + await source_slice_tasks.process_evaluation_source_slice( + project_id=project_id, + user_id=user_id, + run_id=run_id, + tracing_service=SimpleNamespace(), + workflows_service=SimpleNamespace(), + evaluations_service=evaluations_service, + ) + + assert evaluations_service.edit_run.await_args.kwargs["run"].status == ( + EvaluationStatus.FAILURE + ) + + +@pytest.mark.asyncio +async def test_run_processor_routes_query_topologies_with_windowing(monkeypatch): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + query_revision_id = uuid4() + evaluator_revision_id = uuid4() + newest = object() + oldest = object() + process_query_source_run = AsyncMock() + monkeypatch.setattr( + run_tasks, + "process_query_source_run", + process_query_source_run, + ) + live_run = _run( + flags=EvaluationRunFlags(is_live=True), + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=query_revision_id)}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=evaluator_revision_id)}, + ), + ], + ) + live_run.id = run_id + batch_run = live_run.model_copy(update={"flags": EvaluationRunFlags(is_live=False)}) + + for run, expected_use_windowing in [(live_run, False), (batch_run, True)]: + process_query_source_run.reset_mock() + + processed = await run_tasks.process_evaluation_run( + project_id=project_id, + user_id=user_id, + run_id=run_id, + newest=newest, # type: ignore[arg-type] + oldest=oldest, # type: ignore[arg-type] + tracing_service=object(), # type: ignore[arg-type] + testsets_service=object(), # type: ignore[arg-type] + queries_service=object(), # type: ignore[arg-type] + workflows_service=object(), # type: ignore[arg-type] + applications_service=object(), # type: ignore[arg-type] + evaluations_service=SimpleNamespace(fetch_run=AsyncMock(return_value=run)), + simple_evaluators_service=object(), # type: ignore[arg-type] + ) + + assert processed is True + kwargs = process_query_source_run.await_args.kwargs + assert kwargs["use_windowing"] is expected_use_windowing + if expected_use_windowing: + assert kwargs["newest"] is None + assert kwargs["oldest"] is None + else: + assert kwargs["newest"] is newest + assert kwargs["oldest"] is oldest + + +@pytest.mark.asyncio +async def test_run_processor_returns_false_for_missing_or_unsupported_run(): + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + unsupported_run = _run( + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "testset-main", + "input", + references={"testset_revision": Reference(id=uuid4())}, + ), + ], + ) + unsupported_run.id = run_id + + common_kwargs = dict( + project_id=project_id, + user_id=user_id, + run_id=run_id, + tracing_service=object(), + testsets_service=object(), + queries_service=object(), + workflows_service=object(), + applications_service=object(), + simple_evaluators_service=object(), + ) + + assert ( + await run_tasks.process_evaluation_run( + **common_kwargs, # type: ignore[arg-type] + evaluations_service=SimpleNamespace(fetch_run=AsyncMock(return_value=None)), + ) + is False + ) + assert ( + await run_tasks.process_evaluation_run( + **common_kwargs, # type: ignore[arg-type] + evaluations_service=SimpleNamespace( + fetch_run=AsyncMock(return_value=unsupported_run) + ), + ) + is False + ) + + +@pytest.mark.asyncio +async def test_backend_slice_processor_reexecutes_existing_scenario(monkeypatch): + # A TensorSlice addresses an EXISTING scenario. The backend slice processor + # must rebuild that scenario's source binding from its stored input cell, + # re-hydrate trace context, and re-run the SDK loop AGAINST THE EXISTING + # scenario (not a freshly created one), returning a populated ProcessSummary. + project_id = uuid4() + user_id = uuid4() + run_id = uuid4() + scenario_id = uuid4() + evaluator_revision_id = uuid4() + trace_id = "trace-existing" + + run = _run( + flags=EvaluationRunFlags(has_traces=True), + steps=[ + _step( + "query-main", + "input", + references={"query_revision": Reference(id=uuid4())}, + ), + _step( + "evaluator-auto", + "annotation", + origin="auto", + references={"evaluator_revision": Reference(id=evaluator_revision_id)}, + ), + ], + ) + run.id = run_id + + # The slice probe returns the evaluator cell; the per-scenario probe returns + # the input cell carrying the bound trace_id. + input_cell = EvaluationResult( + id=uuid4(), + run_id=run_id, + scenario_id=scenario_id, + step_key="query-main", + repeat_idx=0, + status=EvaluationStatus.SUCCESS, + trace_id=trace_id, + ) + evaluator_cell = EvaluationResult( + id=uuid4(), + run_id=run_id, + scenario_id=scenario_id, + step_key="evaluator-auto", + repeat_idx=0, + status=EvaluationStatus.FAILURE, + ) + + async def _query_results(*, project_id, result=None, windowing=None): + if result is not None and result.scenario_id == scenario_id: + return [input_cell, evaluator_cell] + return [evaluator_cell] + + evaluations_service = SimpleNamespace( + fetch_run=AsyncMock(return_value=run), + query_results=AsyncMock(side_effect=_query_results), + ) + workflows_service = SimpleNamespace( + fetch_workflow_revision=AsyncMock( + return_value=SimpleNamespace(id=evaluator_revision_id) + ) + ) + + monkeypatch.setattr( + source_slice_tasks, + "resolve_direct_source_items", + AsyncMock( + return_value=[ + ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id=trace_id, + inputs={"prompt": "hi"}, + ) + ] + ), + ) + sdk_loop = AsyncMock( + return_value=[ + SdkProcessedScenario( + scenario=SimpleNamespace(id=scenario_id), + results={"evaluator-auto": object()}, + auto_results_created=True, + ) + ] + ) + monkeypatch.setattr( + source_slice_tasks, + "sdk_process_evaluation_source_slice", + sdk_loop, + ) + + processor = source_slice_tasks.BackendSliceProcessor( + evaluations_service=evaluations_service, + tracing_service=None, + testcases_service=None, + workflows_service=workflows_service, + applications_service=None, + ) + summary = await processor.process( + project_id=project_id, + user_id=user_id, + tensor_slice=TensorSlice( + run_id=run_id, + scenario_ids=[scenario_id], + step_keys=["evaluator-auto"], + repeat_idxs=[0], + ), + ) + + # The auto evaluator re-ran for the existing scenario. + assert summary.created == 1 + sdk_loop.assert_awaited_once() + kwargs = sdk_loop.await_args.kwargs + # Source rebuilt from the input cell's trace_id. + assert kwargs["source_items"][0].trace_id == trace_id + # The loop reuses the EXISTING scenario rather than creating a new one. + created_scenario = await kwargs["create_scenario"](run_id) + assert created_scenario.id == scenario_id + # The auto evaluator runner was wired from the run's current revision. + assert "evaluator-auto" in kwargs["runners"] + assert "evaluator-auto" in kwargs["revisions"] diff --git a/api/oss/tests/pytest/unit/events/test_events_utils.py b/api/oss/tests/pytest/unit/events/test_events_utils.py index d51104c194..126ff72530 100644 --- a/api/oss/tests/pytest/unit/events/test_events_utils.py +++ b/api/oss/tests/pytest/unit/events/test_events_utils.py @@ -778,9 +778,15 @@ async def _fake_check(**kwargs): ), patch("oss.src.core.events.utils.is_ee", return_value=True), patch( - "ee.src.utils.entitlements.check_entitlements", new=_fake_check, create=True + "ee.src.core.access.entitlements.service.check_entitlements", + new=_fake_check, + create=True, + ), + patch( + "ee.src.core.access.entitlements.service.scope_from", + new=lambda **kw: kw, + create=True, ), - patch("ee.src.utils.entitlements.scope_from", new=lambda **kw: kw, create=True), ): await publish_trace_fetched( request=_make_request(), @@ -805,9 +811,15 @@ async def _fake_check(**kwargs): ), patch("oss.src.core.events.utils.is_ee", return_value=True), patch( - "ee.src.utils.entitlements.check_entitlements", new=_fake_check, create=True + "ee.src.core.access.entitlements.service.check_entitlements", + new=_fake_check, + create=True, + ), + patch( + "ee.src.core.access.entitlements.service.scope_from", + new=lambda **kw: kw, + create=True, ), - patch("ee.src.utils.entitlements.scope_from", new=lambda **kw: kw, create=True), ): await publish_trace_fetched( request=_make_request(), @@ -832,9 +844,15 @@ async def _fake_check(**kwargs): ), patch("oss.src.core.events.utils.is_ee", return_value=True), patch( - "ee.src.utils.entitlements.check_entitlements", new=_fake_check, create=True + "ee.src.core.access.entitlements.service.check_entitlements", + new=_fake_check, + create=True, + ), + patch( + "ee.src.core.access.entitlements.service.scope_from", + new=lambda **kw: kw, + create=True, ), - patch("ee.src.utils.entitlements.scope_from", new=lambda **kw: kw, create=True), ): await publish_trace_fetched( request=_make_request(), @@ -862,9 +880,15 @@ async def _fake_check(**kwargs): ), patch("oss.src.core.events.utils.is_ee", return_value=True), patch( - "ee.src.utils.entitlements.check_entitlements", new=_fake_check, create=True + "ee.src.core.access.entitlements.service.check_entitlements", + new=_fake_check, + create=True, + ), + patch( + "ee.src.core.access.entitlements.service.scope_from", + new=lambda **kw: kw, + create=True, ), - patch("ee.src.utils.entitlements.scope_from", new=lambda **kw: kw, create=True), ): await publish_trace_fetched( request=request, @@ -892,9 +916,15 @@ async def _fake_check(**kwargs): ), patch("oss.src.core.events.utils.is_ee", return_value=False), patch( - "ee.src.utils.entitlements.check_entitlements", new=_fake_check, create=True + "ee.src.core.access.entitlements.service.check_entitlements", + new=_fake_check, + create=True, + ), + patch( + "ee.src.core.access.entitlements.service.scope_from", + new=lambda **kw: kw, + create=True, ), - patch("ee.src.utils.entitlements.scope_from", new=lambda **kw: kw, create=True), ): await publish_trace_fetched( request=_make_request(), diff --git a/api/oss/tests/pytest/unit/test_evaluation_runtime_locks.py b/api/oss/tests/pytest/unit/test_evaluation_runtime_locks.py index 8e739cc170..a1f77a75b2 100644 --- a/api/oss/tests/pytest/unit/test_evaluation_runtime_locks.py +++ b/api/oss/tests/pytest/unit/test_evaluation_runtime_locks.py @@ -85,8 +85,10 @@ async def _release_lock_for_tests( return False return bool(await client.delete(lock_key)) + cache_engine = pytest.importorskip("oss.src.dbs.redis.shared.engine") + with ( - patch("oss.src.utils.caching.r_lock", client), + patch.object(cache_engine._cache_engine, "get_r_lock", return_value=client), patch( "oss.src.utils.caching.renew_lock", _renew_lock_for_tests, @@ -116,22 +118,22 @@ def _job_id() -> str: def _genson_patch(): module = types.ModuleType("genson") - live_module = types.ModuleType("oss.src.core.evaluations.tasks.live") + query_module = types.ModuleType("oss.src.core.evaluations.tasks.query") class SchemaBuilder: ... - async def evaluate_live_query(*args, **kwargs): + async def process_query_source_run(*args, **kwargs): return None module.SchemaBuilder = SchemaBuilder - live_module.evaluate_live_query = evaluate_live_query + query_module.process_query_source_run = process_query_source_run stack = ExitStack() stack.enter_context( patch.dict( sys.modules, { "genson": module, - "oss.src.core.evaluations.tasks.live": live_module, + "oss.src.core.evaluations.tasks.query": query_module, }, ) ) @@ -473,7 +475,7 @@ async def _failing_coro(): @pytest.mark.asyncio async def test_refresh_worker_heartbeat_preserves_created_at_without_fakeredis(): - from oss.src.core.evaluations.runtime import locks + import oss.src.core.evaluations.runtime.locks as locks class DummyRedis: def __init__(self): @@ -487,9 +489,10 @@ async def set(self, key, value, ex=None): return True dummy = DummyRedis() + cache_engine = pytest.importorskip("oss.src.dbs.redis.shared.engine") with ( - patch("oss.src.utils.caching.r_lock", dummy), + patch.object(cache_engine._cache_engine, "get_r_lock", return_value=dummy), patch( "oss.src.core.evaluations.runtime.locks._now_iso", side_effect=["2026-03-25T10:00:00Z", "2026-03-25T10:01:00Z"], @@ -506,7 +509,7 @@ async def set(self, key, value, ex=None): @pytest.mark.asyncio async def test_run_job_heartbeat_fails_after_missing_renew_deadline(): - from oss.src.core.evaluations.runtime import locks + import oss.src.core.evaluations.runtime.locks as locks clock = {"now": 0.0} diff --git a/api/oss/tests/pytest/unit/test_llm_apps_service.py b/api/oss/tests/pytest/unit/test_llm_apps_service.py deleted file mode 100644 index b95aefb76b..0000000000 --- a/api/oss/tests/pytest/unit/test_llm_apps_service.py +++ /dev/null @@ -1,273 +0,0 @@ -from oss.src.services.llm_apps_service import ( - _build_inspect_url, - _extract_batch_invoke_metadata, - build_invoke_request, - get_parameters_from_inspect, - get_parameters_from_schemas, -) -import pytest - - -def test_get_parameters_from_schemas_prefers_revision_schemas_for_completion(): - parameters, is_chat = get_parameters_from_schemas( - schemas={ - "parameters": { - "type": "object", - "properties": { - "prompt": { - "type": "object", - } - }, - }, - "inputs": { - "type": "object", - "properties": { - "country": { - "type": "string", - } - }, - }, - } - ) - - assert is_chat is False - assert parameters == [ - { - "name": "ag_config", - "type": "dict", - "default": ["prompt"], - }, - { - "name": "inputs", - "type": "dict", - "default": ["country"], - }, - ] - - -def test_get_parameters_from_schemas_detects_chat_messages(): - parameters, is_chat = get_parameters_from_schemas( - schemas={ - "parameters": { - "type": "object", - "properties": { - "prompt": { - "type": "object", - } - }, - }, - "inputs": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "x-ag-type-ref": "messages", - }, - "context": { - "type": "string", - }, - }, - }, - } - ) - - assert is_chat is True - assert parameters == [ - { - "name": "ag_config", - "type": "dict", - "default": ["prompt"], - }, - { - "name": "messages", - "type": "messages", - "default": [], - }, - { - "name": "inputs", - "type": "dict", - "default": ["context"], - }, - ] - - -def test_build_invoke_request_wraps_inputs_for_invoke_endpoint(): - request = build_invoke_request( - inputs={ - "country": "France", - "messages": [ - { - "role": "user", - "content": "What is the capital?", - } - ], - }, - parameters={ - "prompt": { - "messages": [ - { - "role": "system", - "content": "You are an expert in geography.", - } - ] - } - }, - references={ - "application": {"id": "app-id"}, - "application_variant": {"id": "variant-id"}, - "application_revision": {"id": "revision-id"}, - }, - ) - - assert request == { - "references": { - "application": {"id": "app-id"}, - "application_variant": {"id": "variant-id"}, - "application_revision": {"id": "revision-id"}, - }, - "data": { - "parameters": { - "prompt": { - "messages": [ - { - "role": "system", - "content": "You are an expert in geography.", - } - ] - } - }, - "inputs": { - "country": "France", - "messages": [ - { - "role": "user", - "content": "What is the capital?", - } - ], - }, - }, - } - - -def test_build_inspect_url_for_root_route(): - assert ( - _build_inspect_url( - runtime_prefix="http://localhost:8080", - route_path="", - ) - == "http://localhost:8080/inspect" - ) - - -def test_build_inspect_url_for_nested_route(): - assert ( - _build_inspect_url( - runtime_prefix="http://localhost:8080/service/", - route_path="/summarize", - ) - == "http://localhost:8080/service/summarize/inspect" - ) - - -def test_extract_batch_invoke_metadata_prefers_revision_values(): - parameters, schemas, is_chat = _extract_batch_invoke_metadata( - revision={ - "data": { - "parameters": {"prompt": {"messages": [{"role": "system"}]}}, - "schemas": { - "inputs": { - "type": "object", - "properties": {"messages": {"x-ag-type-ref": "messages"}}, - } - }, - }, - "flags": {"is_chat": True}, - }, - parameters=None, - schemas=None, - is_chat=None, - ) - - assert parameters == {"prompt": {"messages": [{"role": "system"}]}} - assert schemas == { - "inputs": { - "type": "object", - "properties": {"messages": {"x-ag-type-ref": "messages"}}, - } - } - assert is_chat is True - - -def test_extract_batch_invoke_metadata_prefers_explicit_overrides(): - parameters, schemas, is_chat = _extract_batch_invoke_metadata( - revision={ - "data": { - "parameters": {"prompt": {"temperature": 0.1}}, - "schemas": {"inputs": {"type": "object", "properties": {}}}, - }, - "flags": {"is_chat": False}, - }, - parameters={"prompt": {"temperature": 0.7}}, - schemas={"inputs": {"type": "object", "properties": {"country": {}}}}, - is_chat=True, - ) - - assert parameters == {"prompt": {"temperature": 0.7}} - assert schemas == {"inputs": {"type": "object", "properties": {"country": {}}}} - assert is_chat is True - - -@pytest.mark.asyncio -async def test_get_parameters_from_inspect_prefers_revision_schemas(monkeypatch): - async def fake_post_json_to_uri(uri, headers, body): - assert uri == "http://localhost:8080/inspect" - assert headers == {"Authorization": "Secret test"} - assert body == {} - return { - "flags": {"is_chat": False}, - "data": { - "revision": { - "data": { - "schemas": { - "parameters": { - "type": "object", - "properties": { - "prompt": {"type": "object"}, - }, - }, - "inputs": { - "type": "object", - "properties": { - "country": {"type": "string"}, - }, - }, - } - } - } - }, - } - - monkeypatch.setattr( - "oss.src.services.llm_apps_service._post_json_to_uri", - fake_post_json_to_uri, - ) - - parameters, is_chat = await get_parameters_from_inspect( - runtime_prefix="http://localhost:8080", - route_path="", - headers={"Authorization": "Secret test"}, - ) - - assert is_chat is False - assert parameters == [ - { - "name": "ag_config", - "type": "dict", - "default": ["prompt"], - }, - { - "name": "inputs", - "type": "dict", - "default": ["country"], - }, - ] diff --git a/clients/python/agenta_client/__init__.py b/clients/python/agenta_client/__init__.py index d1a4ed1c7e..ac81903618 100644 --- a/clients/python/agenta_client/__init__.py +++ b/clients/python/agenta_client/__init__.py @@ -5,7 +5,7 @@ import typing from importlib import import_module if typing.TYPE_CHECKING: - from .types import AdminAccountCreateOptions, AdminAccountRead, AdminAccountsCreate, AdminAccountsDelete, AdminAccountsDeleteTarget, AdminAccountsResponse, AdminApiKeyCreate, AdminApiKeyResponse, AdminDeleteResponse, AdminDeletedEntities, AdminDeletedEntity, AdminOrganizationCreate, AdminOrganizationMembershipCreate, AdminOrganizationMembershipRead, AdminOrganizationRead, AdminProjectCreate, AdminProjectMembershipCreate, AdminProjectMembershipRead, AdminProjectRead, AdminSimpleAccountCreate, AdminSimpleAccountDeleteEntry, AdminSimpleAccountRead, AdminSimpleAccountsApiKeysCreate, AdminSimpleAccountsCreate, AdminSimpleAccountsDelete, AdminSimpleAccountsOrganizationsCreate, AdminSimpleAccountsOrganizationsMembershipsCreate, AdminSimpleAccountsOrganizationsTransferOwnership, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero, AdminSimpleAccountsOrganizationsTransferOwnershipResponse, AdminSimpleAccountsProjectsCreate, AdminSimpleAccountsProjectsMembershipsCreate, AdminSimpleAccountsResponse, AdminSimpleAccountsUsersCreate, AdminSimpleAccountsUsersIdentitiesCreate, AdminSimpleAccountsUsersResetPassword, AdminSimpleAccountsWorkspacesCreate, AdminSimpleAccountsWorkspacesMembershipsCreate, AdminStructuredError, AdminSubscriptionCreate, AdminSubscriptionRead, AdminUserCreate, AdminUserIdentityCreate, AdminUserIdentityRead, AdminUserIdentityReadStatus, AdminUserRead, AdminWorkspaceCreate, AdminWorkspaceMembershipCreate, AdminWorkspaceMembershipRead, AdminWorkspaceRead, Analytics, AnalyticsResponse, Annotation, AnnotationCreate, AnnotationCreateLinks, AnnotationEdit, AnnotationEditLinks, AnnotationLinkResponse, AnnotationLinks, AnnotationQuery, AnnotationQueryLinks, AnnotationResponse, AnnotationsResponse, Application, ApplicationArtifactFlags, ApplicationArtifactQueryFlags, ApplicationCatalogPreset, ApplicationCatalogPresetResponse, ApplicationCatalogPresetsResponse, ApplicationCatalogTemplate, ApplicationCatalogTemplateResponse, ApplicationCatalogTemplatesResponse, ApplicationCatalogType, ApplicationCatalogTypesResponse, ApplicationCreate, ApplicationEdit, ApplicationFlags, ApplicationFork, ApplicationQuery, ApplicationResponse, ApplicationRevision, ApplicationRevisionCommit, ApplicationRevisionCreate, ApplicationRevisionDataInput, ApplicationRevisionDataInputHeadersValue, ApplicationRevisionDataInputRuntime, ApplicationRevisionDataOutput, ApplicationRevisionDataOutputHeadersValue, ApplicationRevisionDataOutputRuntime, ApplicationRevisionEdit, ApplicationRevisionFlags, ApplicationRevisionFork, ApplicationRevisionQuery, ApplicationRevisionQueryFlags, ApplicationRevisionResolveResponse, ApplicationRevisionResponse, ApplicationRevisionsLog, ApplicationRevisionsResponse, ApplicationVariant, ApplicationVariantCreate, ApplicationVariantEdit, ApplicationVariantFlags, ApplicationVariantFork, ApplicationVariantResponse, ApplicationVariantsResponse, ApplicationsResponse, BodyConfigsFetchVariantsConfigsFetchPost, Bucket, CollectStatusResponse, ComparisonOperator, Condition, ConditionOperator, ConditionOptions, ConditionValue, ConfigResponseModel, CustomModelSettingsDto, CustomProviderDto, CustomProviderKind, CustomProviderSettingsDto, DictOperator, DiscoverResponse, DiscoverResponseMethodsValue, EeSrcModelsApiOrganizationModelsOrganization, EntityRef, Environment, EnvironmentCreate, EnvironmentEdit, EnvironmentFlags, EnvironmentQueryFlags, EnvironmentResponse, EnvironmentRevision, EnvironmentRevisionCommit, EnvironmentRevisionCreate, EnvironmentRevisionData, EnvironmentRevisionDelta, EnvironmentRevisionEdit, EnvironmentRevisionResolveResponse, EnvironmentRevisionResponse, EnvironmentRevisionsLog, EnvironmentRevisionsResponse, EnvironmentVariant, EnvironmentVariantCreate, EnvironmentVariantEdit, EnvironmentVariantResponse, EnvironmentVariantsResponse, EnvironmentsResponse, ErrorPolicy, EvaluationMetrics, EvaluationMetricsCreate, EvaluationMetricsEdit, EvaluationMetricsIdsResponse, EvaluationMetricsQuery, EvaluationMetricsQueryScenarioIds, EvaluationMetricsQueryTimestamps, EvaluationMetricsRefresh, EvaluationMetricsResponse, EvaluationQueue, EvaluationQueueCreate, EvaluationQueueData, EvaluationQueueEdit, EvaluationQueueFlags, EvaluationQueueIdResponse, EvaluationQueueIdsResponse, EvaluationQueueQuery, EvaluationQueueQueryFlags, EvaluationQueueResponse, EvaluationQueueScenariosQuery, EvaluationQueuesResponse, EvaluationResult, EvaluationResultCreate, EvaluationResultEdit, EvaluationResultIdResponse, EvaluationResultIdsResponse, EvaluationResultQuery, EvaluationResultResponse, EvaluationResultsResponse, EvaluationRun, EvaluationRunCreate, EvaluationRunData, EvaluationRunDataMapping, EvaluationRunDataMappingColumn, EvaluationRunDataMappingStep, EvaluationRunDataStep, EvaluationRunDataStepInput, EvaluationRunDataStepOrigin, EvaluationRunDataStepType, EvaluationRunEdit, EvaluationRunFlags, EvaluationRunIdResponse, EvaluationRunIdsRequest, EvaluationRunIdsResponse, EvaluationRunQuery, EvaluationRunQueryFlags, EvaluationRunResponse, EvaluationRunsResponse, EvaluationScenario, EvaluationScenarioCreate, EvaluationScenarioEdit, EvaluationScenarioIdResponse, EvaluationScenarioIdsResponse, EvaluationScenarioQuery, EvaluationScenarioResponse, EvaluationScenariosResponse, EvaluationStatus, Evaluator, EvaluatorArtifactFlags, EvaluatorArtifactQueryFlags, EvaluatorCatalogPreset, EvaluatorCatalogPresetResponse, EvaluatorCatalogPresetsResponse, EvaluatorCatalogTemplate, EvaluatorCatalogTemplateResponse, EvaluatorCatalogTemplatesResponse, EvaluatorCatalogType, EvaluatorCatalogTypesResponse, EvaluatorCreate, EvaluatorEdit, EvaluatorFlags, EvaluatorFork, EvaluatorQuery, EvaluatorResponse, EvaluatorRevision, EvaluatorRevisionCommit, EvaluatorRevisionCreate, EvaluatorRevisionDataInput, EvaluatorRevisionDataInputHeadersValue, EvaluatorRevisionDataInputRuntime, EvaluatorRevisionDataOutput, EvaluatorRevisionDataOutputHeadersValue, EvaluatorRevisionDataOutputRuntime, EvaluatorRevisionEdit, EvaluatorRevisionFlags, EvaluatorRevisionFork, EvaluatorRevisionQuery, EvaluatorRevisionQueryFlags, EvaluatorRevisionResolveResponse, EvaluatorRevisionResponse, EvaluatorRevisionsLog, EvaluatorRevisionsResponse, EvaluatorTemplate, EvaluatorTemplatesResponse, EvaluatorVariant, EvaluatorVariantCreate, EvaluatorVariantEdit, EvaluatorVariantFlags, EvaluatorVariantFork, EvaluatorVariantResponse, EvaluatorVariantsResponse, EvaluatorsResponse, Event, EventQuery, EventType, EventsQueryResponse, ExistenceOperator, FilteringInput, FilteringInputConditionsItem, FilteringOutput, FilteringOutputConditionsItem, Focus, Folder, FolderCreate, FolderEdit, FolderIdResponse, FolderKind, FolderQuery, FolderQueryKinds, FolderResponse, FoldersResponse, Format, Formatting, FullJsonInput, FullJsonOutput, Header, HttpValidationError, InviteRequest, Invocation, InvocationCreate, InvocationCreateLinks, InvocationEdit, InvocationEditLinks, InvocationLinkResponse, InvocationLinks, InvocationQuery, InvocationQueryLinks, InvocationResponse, InvocationsResponse, JsonSchemasInput, JsonSchemasOutput, LabelJsonInput, LabelJsonOutput, LegacyLifecycleDto, ListApiKeysResponse, ListOperator, ListOptions, LogicalOperator, MetricSpec, MetricType, MetricsBucket, NumericOperator, OTelEventInput, OTelEventInputTimestamp, OTelEventOutput, OTelEventOutputTimestamp, OTelHashInput, OTelHashOutput, OTelLinkInput, OTelLinkOutput, OTelLinksResponse, OTelReferenceInput, OTelReferenceOutput, OTelSpanKind, OTelStatusCode, OTelTracingRequest, OTelTracingResponse, OldAnalyticsResponse, OrganizationDetails, OrganizationDomainResponse, OrganizationProviderResponse, OrganizationUpdate, OssSrcModelsApiOrganizationModelsOrganization, Permission, ProjectsResponse, QueriesResponse, Query, QueryCreate, QueryEdit, QueryFlags, QueryQueryFlags, QueryResponse, QueryRevision, QueryRevisionCommit, QueryRevisionCreate, QueryRevisionDataInput, QueryRevisionDataOutput, QueryRevisionEdit, QueryRevisionQuery, QueryRevisionResponse, QueryRevisionsLog, QueryRevisionsResponse, QueryVariant, QueryVariantCreate, QueryVariantEdit, QueryVariantQuery, QueryVariantResponse, QueryVariantsResponse, Reference, ReferenceRequestModelInput, ReferenceRequestModelOutput, RequestType, ResolutionInfo, RevisionFork, SecretDto, SecretDtoData, SecretKind, SecretResponseDto, SecretResponseDtoData, SessionIdsResponse, SimpleApplication, SimpleApplicationCreate, SimpleApplicationDataInput, SimpleApplicationDataInputHeadersValue, SimpleApplicationDataInputRuntime, SimpleApplicationDataOutput, SimpleApplicationDataOutputHeadersValue, SimpleApplicationDataOutputRuntime, SimpleApplicationEdit, SimpleApplicationFlags, SimpleApplicationQuery, SimpleApplicationQueryFlags, SimpleApplicationResponse, SimpleApplicationsResponse, SimpleEnvironment, SimpleEnvironmentCreate, SimpleEnvironmentEdit, SimpleEnvironmentQuery, SimpleEnvironmentResponse, SimpleEnvironmentsResponse, SimpleEvaluation, SimpleEvaluationCreate, SimpleEvaluationData, SimpleEvaluationDataApplicationSteps, SimpleEvaluationDataApplicationStepsOneValue, SimpleEvaluationDataEvaluatorSteps, SimpleEvaluationDataEvaluatorStepsOneValue, SimpleEvaluationDataQuerySteps, SimpleEvaluationDataQueryStepsOneValue, SimpleEvaluationDataTestsetSteps, SimpleEvaluationDataTestsetStepsOneValue, SimpleEvaluationEdit, SimpleEvaluationIdResponse, SimpleEvaluationQuery, SimpleEvaluationResponse, SimpleEvaluationsResponse, SimpleEvaluator, SimpleEvaluatorCreate, SimpleEvaluatorDataInput, SimpleEvaluatorDataInputHeadersValue, SimpleEvaluatorDataInputRuntime, SimpleEvaluatorDataOutput, SimpleEvaluatorDataOutputHeadersValue, SimpleEvaluatorDataOutputRuntime, SimpleEvaluatorEdit, SimpleEvaluatorFlags, SimpleEvaluatorQuery, SimpleEvaluatorQueryFlags, SimpleEvaluatorResponse, SimpleEvaluatorsResponse, SimpleQueriesResponse, SimpleQuery, SimpleQueryCreate, SimpleQueryEdit, SimpleQueryQuery, SimpleQueryResponse, SimpleQueue, SimpleQueueCreate, SimpleQueueData, SimpleQueueDataEvaluators, SimpleQueueDataEvaluatorsOneValue, SimpleQueueIdResponse, SimpleQueueKind, SimpleQueueQuery, SimpleQueueResponse, SimpleQueueScenariosQuery, SimpleQueueScenariosResponse, SimpleQueueSettings, SimpleQueuesResponse, SimpleTestset, SimpleTestsetCreate, SimpleTestsetEdit, SimpleTestsetQuery, SimpleTestsetResponse, SimpleTestsetsResponse, SimpleTrace, SimpleTraceChannel, SimpleTraceCreate, SimpleTraceCreateLinks, SimpleTraceEdit, SimpleTraceEditLinks, SimpleTraceKind, SimpleTraceLinkResponse, SimpleTraceLinks, SimpleTraceOrigin, SimpleTraceQuery, SimpleTraceQueryLinks, SimpleTraceReferences, SimpleTraceResponse, SimpleTracesResponse, SimpleWorkflow, SimpleWorkflowCreate, SimpleWorkflowDataInput, SimpleWorkflowDataInputHeadersValue, SimpleWorkflowDataInputRuntime, SimpleWorkflowDataOutput, SimpleWorkflowDataOutputHeadersValue, SimpleWorkflowDataOutputRuntime, SimpleWorkflowEdit, SimpleWorkflowFlags, SimpleWorkflowQuery, SimpleWorkflowQueryFlags, SimpleWorkflowResponse, SimpleWorkflowsResponse, SpanInput, SpanInputEndTime, SpanInputStartTime, SpanOutput, SpanOutputEndTime, SpanOutputStartTime, SpanResponse, SpanType, SpansNodeInput, SpansNodeInputEndTime, SpansNodeInputSpansValue, SpansNodeInputStartTime, SpansNodeOutput, SpansNodeOutputEndTime, SpansNodeOutputSpansValue, SpansNodeOutputStartTime, SpansResponse, SpansTreeInput, SpansTreeInputSpansValue, SpansTreeOutput, SpansTreeOutputSpansValue, SsoProviderDto, SsoProviderInfo, SsoProviderSettingsDto, SsoProviders, StandardProviderDto, StandardProviderKind, StandardProviderSettingsDto, Status, StringOperator, TestcaseInput, TestcaseOutput, TestcaseResponse, TestcasesResponse, Testset, TestsetCreate, TestsetEdit, TestsetFlags, TestsetQuery, TestsetResponse, TestsetRevision, TestsetRevisionCommit, TestsetRevisionCreate, TestsetRevisionDataInput, TestsetRevisionDataOutput, TestsetRevisionDelta, TestsetRevisionDeltaColumns, TestsetRevisionDeltaRows, TestsetRevisionEdit, TestsetRevisionQuery, TestsetRevisionResponse, TestsetRevisionsLog, TestsetRevisionsResponse, TestsetVariant, TestsetVariantCreate, TestsetVariantEdit, TestsetVariantQuery, TestsetVariantResponse, TestsetVariantsResponse, TestsetsResponse, TextOptions, ToolAuthScheme, ToolCallData, ToolCallFunction, ToolCallResponse, ToolCatalogAction, ToolCatalogActionDetails, ToolCatalogActionResponse, ToolCatalogActionResponseAction, ToolCatalogActionsResponse, ToolCatalogActionsResponseActionsItem, ToolCatalogIntegration, ToolCatalogIntegrationDetails, ToolCatalogIntegrationResponse, ToolCatalogIntegrationResponseIntegration, ToolCatalogIntegrationsResponse, ToolCatalogIntegrationsResponseIntegrationsItem, ToolCatalogProvider, ToolCatalogProviderDetails, ToolCatalogProviderResponse, ToolCatalogProviderResponseProvider, ToolCatalogProvidersResponse, ToolCatalogProvidersResponseProvidersItem, ToolConnection, ToolConnectionCreate, ToolConnectionCreateData, ToolConnectionResponse, ToolConnectionStatus, ToolConnectionsResponse, ToolProviderKind, ToolResult, ToolResultData, TraceIdResponse, TraceIdsResponse, TraceInput, TraceInputSpansValue, TraceOutput, TraceOutputSpansValue, TraceRequest, TraceResponse, TraceType, TracesRequest, TracesResponse, TracingQuery, UserIdsResponse, ValidationError, ValidationErrorLocItem, VariantFork, WebhookDeliveriesResponse, WebhookDelivery, WebhookDeliveryCreate, WebhookDeliveryData, WebhookDeliveryQuery, WebhookDeliveryResponse, WebhookDeliveryResponseInfo, WebhookEventType, WebhookProviderDto, WebhookProviderSettingsDto, WebhookSubscription, WebhookSubscriptionCreate, WebhookSubscriptionData, WebhookSubscriptionDataAuthMode, WebhookSubscriptionEdit, WebhookSubscriptionQuery, WebhookSubscriptionResponse, WebhookSubscriptionsResponse, Windowing, WindowingOrder, Workflow, WorkflowArtifactFlags, WorkflowCatalogFlags, WorkflowCatalogPreset, WorkflowCatalogPresetResponse, WorkflowCatalogPresetsResponse, WorkflowCatalogTemplate, WorkflowCatalogTemplateResponse, WorkflowCatalogTemplatesResponse, WorkflowCatalogType, WorkflowCatalogTypeResponse, WorkflowCatalogTypesResponse, WorkflowCreate, WorkflowEdit, WorkflowFlags, WorkflowFork, WorkflowResponse, WorkflowRevisionCommit, WorkflowRevisionCreate, WorkflowRevisionDataInput, WorkflowRevisionDataInputHeadersValue, WorkflowRevisionDataInputRuntime, WorkflowRevisionDataOutput, WorkflowRevisionDataOutputHeadersValue, WorkflowRevisionDataOutputRuntime, WorkflowRevisionEdit, WorkflowRevisionFlags, WorkflowRevisionFork, WorkflowRevisionInput, WorkflowRevisionOutput, WorkflowRevisionResolveResponse, WorkflowRevisionResponse, WorkflowRevisionsLog, WorkflowRevisionsResponse, WorkflowVariant, WorkflowVariantCreate, WorkflowVariantEdit, WorkflowVariantFlags, WorkflowVariantFork, WorkflowVariantResponse, WorkflowVariantsResponse, WorkflowsResponse, Workspace, WorkspaceMemberResponse, WorkspacePermission, WorkspaceResponse + from .types import AdminAccountCreateOptions, AdminAccountRead, AdminAccountsCreate, AdminAccountsDelete, AdminAccountsDeleteTarget, AdminAccountsResponse, AdminApiKeyCreate, AdminApiKeyResponse, AdminDeleteResponse, AdminDeletedEntities, AdminDeletedEntity, AdminOrganizationCreate, AdminOrganizationMembershipCreate, AdminOrganizationMembershipRead, AdminOrganizationRead, AdminProjectCreate, AdminProjectMembershipCreate, AdminProjectMembershipRead, AdminProjectRead, AdminSimpleAccountCreate, AdminSimpleAccountDeleteEntry, AdminSimpleAccountRead, AdminSimpleAccountsApiKeysCreate, AdminSimpleAccountsCreate, AdminSimpleAccountsDelete, AdminSimpleAccountsOrganizationsCreate, AdminSimpleAccountsOrganizationsMembershipsCreate, AdminSimpleAccountsOrganizationsTransferOwnership, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces, AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero, AdminSimpleAccountsOrganizationsTransferOwnershipResponse, AdminSimpleAccountsProjectsCreate, AdminSimpleAccountsProjectsMembershipsCreate, AdminSimpleAccountsResponse, AdminSimpleAccountsUsersCreate, AdminSimpleAccountsUsersIdentitiesCreate, AdminSimpleAccountsUsersResetPassword, AdminSimpleAccountsWorkspacesCreate, AdminSimpleAccountsWorkspacesMembershipsCreate, AdminStructuredError, AdminSubscriptionCreate, AdminSubscriptionRead, AdminUserCreate, AdminUserIdentityCreate, AdminUserIdentityRead, AdminUserIdentityReadStatus, AdminUserRead, AdminWorkspaceCreate, AdminWorkspaceMembershipCreate, AdminWorkspaceMembershipRead, AdminWorkspaceRead, Analytics, AnalyticsResponse, Annotation, AnnotationCreate, AnnotationCreateLinks, AnnotationEdit, AnnotationEditLinks, AnnotationLinkResponse, AnnotationLinks, AnnotationQuery, AnnotationQueryLinks, AnnotationResponse, AnnotationsResponse, Application, ApplicationArtifactFlags, ApplicationArtifactQueryFlags, ApplicationCatalogPreset, ApplicationCatalogPresetResponse, ApplicationCatalogPresetsResponse, ApplicationCatalogTemplate, ApplicationCatalogTemplateResponse, ApplicationCatalogTemplatesResponse, ApplicationCatalogType, ApplicationCatalogTypesResponse, ApplicationCreate, ApplicationEdit, ApplicationFlags, ApplicationFork, ApplicationQuery, ApplicationResponse, ApplicationRevision, ApplicationRevisionCommit, ApplicationRevisionCreate, ApplicationRevisionDataInput, ApplicationRevisionDataInputHeadersValue, ApplicationRevisionDataInputRuntime, ApplicationRevisionDataOutput, ApplicationRevisionDataOutputHeadersValue, ApplicationRevisionDataOutputRuntime, ApplicationRevisionEdit, ApplicationRevisionFlags, ApplicationRevisionFork, ApplicationRevisionQuery, ApplicationRevisionQueryFlags, ApplicationRevisionResolveResponse, ApplicationRevisionResponse, ApplicationRevisionsLog, ApplicationRevisionsResponse, ApplicationVariant, ApplicationVariantCreate, ApplicationVariantEdit, ApplicationVariantFlags, ApplicationVariantFork, ApplicationVariantResponse, ApplicationVariantsResponse, ApplicationsResponse, BodyConfigsFetchVariantsConfigsFetchPost, Bucket, CollectStatusResponse, ComparisonOperator, Condition, ConditionOperator, ConditionOptions, ConditionValue, ConfigResponseModel, CustomModelSettingsDto, CustomProviderDto, CustomProviderKind, CustomProviderSettingsDto, DictOperator, DiscoverResponse, DiscoverResponseMethodsValue, EeSrcModelsApiOrganizationModelsOrganization, EntityRef, Environment, EnvironmentCreate, EnvironmentEdit, EnvironmentFlags, EnvironmentQueryFlags, EnvironmentResponse, EnvironmentRevision, EnvironmentRevisionCommit, EnvironmentRevisionCreate, EnvironmentRevisionData, EnvironmentRevisionDelta, EnvironmentRevisionEdit, EnvironmentRevisionResolveResponse, EnvironmentRevisionResponse, EnvironmentRevisionsLog, EnvironmentRevisionsResponse, EnvironmentVariant, EnvironmentVariantCreate, EnvironmentVariantEdit, EnvironmentVariantResponse, EnvironmentVariantsResponse, EnvironmentsResponse, ErrorPolicy, EvaluationMetrics, EvaluationMetricsCreate, EvaluationMetricsEdit, EvaluationMetricsIdsResponse, EvaluationMetricsQuery, EvaluationMetricsQueryScenarioIds, EvaluationMetricsQueryTimestamps, EvaluationMetricsRefresh, EvaluationMetricsResponse, EvaluationQueue, EvaluationQueueCreate, EvaluationQueueData, EvaluationQueueEdit, EvaluationQueueFlags, EvaluationQueueIdResponse, EvaluationQueueIdsResponse, EvaluationQueueQuery, EvaluationQueueQueryFlags, EvaluationQueueResponse, EvaluationQueueScenariosQuery, EvaluationQueuesResponse, EvaluationResult, EvaluationResultCreate, EvaluationResultEdit, EvaluationResultIdResponse, EvaluationResultIdsResponse, EvaluationResultQuery, EvaluationResultResponse, EvaluationResultsResponse, EvaluationRun, EvaluationRunCreate, EvaluationRunData, EvaluationRunDataConcurrency, EvaluationRunDataMapping, EvaluationRunDataMappingColumn, EvaluationRunDataMappingStep, EvaluationRunDataStep, EvaluationRunDataStepInput, EvaluationRunDataStepOrigin, EvaluationRunDataStepType, EvaluationRunEdit, EvaluationRunFlags, EvaluationRunIdResponse, EvaluationRunIdsRequest, EvaluationRunIdsResponse, EvaluationRunQuery, EvaluationRunQueryFlags, EvaluationRunResponse, EvaluationRunsResponse, EvaluationScenario, EvaluationScenarioCreate, EvaluationScenarioEdit, EvaluationScenarioIdResponse, EvaluationScenarioIdsResponse, EvaluationScenarioQuery, EvaluationScenarioResponse, EvaluationScenariosResponse, EvaluationStatus, Evaluator, EvaluatorArtifactFlags, EvaluatorArtifactQueryFlags, EvaluatorCatalogPreset, EvaluatorCatalogPresetResponse, EvaluatorCatalogPresetsResponse, EvaluatorCatalogTemplate, EvaluatorCatalogTemplateResponse, EvaluatorCatalogTemplatesResponse, EvaluatorCatalogType, EvaluatorCatalogTypesResponse, EvaluatorCreate, EvaluatorEdit, EvaluatorFlags, EvaluatorFork, EvaluatorQuery, EvaluatorResponse, EvaluatorRevision, EvaluatorRevisionCommit, EvaluatorRevisionCreate, EvaluatorRevisionDataInput, EvaluatorRevisionDataInputHeadersValue, EvaluatorRevisionDataInputRuntime, EvaluatorRevisionDataOutput, EvaluatorRevisionDataOutputHeadersValue, EvaluatorRevisionDataOutputRuntime, EvaluatorRevisionEdit, EvaluatorRevisionFlags, EvaluatorRevisionFork, EvaluatorRevisionQuery, EvaluatorRevisionQueryFlags, EvaluatorRevisionResolveResponse, EvaluatorRevisionResponse, EvaluatorRevisionsLog, EvaluatorRevisionsResponse, EvaluatorTemplate, EvaluatorTemplatesResponse, EvaluatorVariant, EvaluatorVariantCreate, EvaluatorVariantEdit, EvaluatorVariantFlags, EvaluatorVariantFork, EvaluatorVariantResponse, EvaluatorVariantsResponse, EvaluatorsResponse, Event, EventQuery, EventType, EventsQueryResponse, ExistenceOperator, FilteringInput, FilteringInputConditionsItem, FilteringOutput, FilteringOutputConditionsItem, Focus, Folder, FolderCreate, FolderEdit, FolderIdResponse, FolderKind, FolderQuery, FolderQueryKinds, FolderResponse, FoldersResponse, Format, Formatting, FullJsonInput, FullJsonOutput, Header, HttpValidationError, InviteRequest, Invocation, InvocationCreate, InvocationCreateLinks, InvocationEdit, InvocationEditLinks, InvocationLinkResponse, InvocationLinks, InvocationQuery, InvocationQueryLinks, InvocationResponse, InvocationsResponse, JsonSchemasInput, JsonSchemasOutput, LabelJsonInput, LabelJsonOutput, LegacyLifecycleDto, ListApiKeysResponse, ListOperator, ListOptions, LogicalOperator, MetricSpec, MetricType, MetricsBucket, NumericOperator, OTelEventInput, OTelEventInputTimestamp, OTelEventOutput, OTelEventOutputTimestamp, OTelHashInput, OTelHashOutput, OTelLinkInput, OTelLinkOutput, OTelLinksResponse, OTelReferenceInput, OTelReferenceOutput, OTelSpanKind, OTelStatusCode, OTelTracingRequest, OTelTracingResponse, OldAnalyticsResponse, OrganizationDetails, OrganizationDomainResponse, OrganizationProviderResponse, OrganizationUpdate, OssSrcModelsApiOrganizationModelsOrganization, Permission, ProjectsResponse, QueriesResponse, Query, QueryCreate, QueryEdit, QueryFlags, QueryQueryFlags, QueryResponse, QueryRevision, QueryRevisionCommit, QueryRevisionCreate, QueryRevisionDataInput, QueryRevisionDataOutput, QueryRevisionEdit, QueryRevisionQuery, QueryRevisionResponse, QueryRevisionsLog, QueryRevisionsResponse, QueryVariant, QueryVariantCreate, QueryVariantEdit, QueryVariantQuery, QueryVariantResponse, QueryVariantsResponse, Reference, ReferenceRequestModelInput, ReferenceRequestModelOutput, RequestType, ResolutionInfo, RevisionFork, SecretDto, SecretDtoData, SecretKind, SecretResponseDto, SecretResponseDtoData, SessionIdsResponse, SimpleApplication, SimpleApplicationCreate, SimpleApplicationDataInput, SimpleApplicationDataInputHeadersValue, SimpleApplicationDataInputRuntime, SimpleApplicationDataOutput, SimpleApplicationDataOutputHeadersValue, SimpleApplicationDataOutputRuntime, SimpleApplicationEdit, SimpleApplicationFlags, SimpleApplicationQuery, SimpleApplicationQueryFlags, SimpleApplicationResponse, SimpleApplicationsResponse, SimpleEnvironment, SimpleEnvironmentCreate, SimpleEnvironmentEdit, SimpleEnvironmentQuery, SimpleEnvironmentResponse, SimpleEnvironmentsResponse, SimpleEvaluation, SimpleEvaluationCreate, SimpleEvaluationData, SimpleEvaluationDataApplicationSteps, SimpleEvaluationDataApplicationStepsOneValue, SimpleEvaluationDataEvaluatorSteps, SimpleEvaluationDataEvaluatorStepsOneValue, SimpleEvaluationDataQuerySteps, SimpleEvaluationDataQueryStepsOneValue, SimpleEvaluationDataTestsetSteps, SimpleEvaluationDataTestsetStepsOneValue, SimpleEvaluationEdit, SimpleEvaluationIdResponse, SimpleEvaluationQuery, SimpleEvaluationResponse, SimpleEvaluationsResponse, SimpleEvaluator, SimpleEvaluatorCreate, SimpleEvaluatorDataInput, SimpleEvaluatorDataInputHeadersValue, SimpleEvaluatorDataInputRuntime, SimpleEvaluatorDataOutput, SimpleEvaluatorDataOutputHeadersValue, SimpleEvaluatorDataOutputRuntime, SimpleEvaluatorEdit, SimpleEvaluatorFlags, SimpleEvaluatorQuery, SimpleEvaluatorQueryFlags, SimpleEvaluatorResponse, SimpleEvaluatorsResponse, SimpleQueriesResponse, SimpleQuery, SimpleQueryCreate, SimpleQueryEdit, SimpleQueryQuery, SimpleQueryResponse, SimpleQueue, SimpleQueueCreate, SimpleQueueData, SimpleQueueDataEvaluators, SimpleQueueDataEvaluatorsOneValue, SimpleQueueIdResponse, SimpleQueueKind, SimpleQueueQuery, SimpleQueueResponse, SimpleQueueScenariosQuery, SimpleQueueScenariosResponse, SimpleQueueSettings, SimpleQueuesResponse, SimpleTestset, SimpleTestsetCreate, SimpleTestsetEdit, SimpleTestsetQuery, SimpleTestsetResponse, SimpleTestsetsResponse, SimpleTrace, SimpleTraceChannel, SimpleTraceCreate, SimpleTraceCreateLinks, SimpleTraceEdit, SimpleTraceEditLinks, SimpleTraceKind, SimpleTraceLinkResponse, SimpleTraceLinks, SimpleTraceOrigin, SimpleTraceQuery, SimpleTraceQueryLinks, SimpleTraceReferences, SimpleTraceResponse, SimpleTracesResponse, SimpleWorkflow, SimpleWorkflowCreate, SimpleWorkflowDataInput, SimpleWorkflowDataInputHeadersValue, SimpleWorkflowDataInputRuntime, SimpleWorkflowDataOutput, SimpleWorkflowDataOutputHeadersValue, SimpleWorkflowDataOutputRuntime, SimpleWorkflowEdit, SimpleWorkflowFlags, SimpleWorkflowQuery, SimpleWorkflowQueryFlags, SimpleWorkflowResponse, SimpleWorkflowsResponse, SpanInput, SpanInputEndTime, SpanInputStartTime, SpanOutput, SpanOutputEndTime, SpanOutputStartTime, SpanResponse, SpanType, SpansNodeInput, SpansNodeInputEndTime, SpansNodeInputSpansValue, SpansNodeInputStartTime, SpansNodeOutput, SpansNodeOutputEndTime, SpansNodeOutputSpansValue, SpansNodeOutputStartTime, SpansResponse, SpansTreeInput, SpansTreeInputSpansValue, SpansTreeOutput, SpansTreeOutputSpansValue, SsoProviderDto, SsoProviderInfo, SsoProviderSettingsDto, SsoProviders, StandardProviderDto, StandardProviderKind, StandardProviderSettingsDto, Status, StringOperator, TestcaseInput, TestcaseOutput, TestcaseResponse, TestcasesResponse, Testset, TestsetCreate, TestsetEdit, TestsetFlags, TestsetQuery, TestsetResponse, TestsetRevision, TestsetRevisionCommit, TestsetRevisionCreate, TestsetRevisionDataInput, TestsetRevisionDataOutput, TestsetRevisionDelta, TestsetRevisionDeltaColumns, TestsetRevisionDeltaRows, TestsetRevisionEdit, TestsetRevisionQuery, TestsetRevisionResponse, TestsetRevisionsLog, TestsetRevisionsResponse, TestsetVariant, TestsetVariantCreate, TestsetVariantEdit, TestsetVariantQuery, TestsetVariantResponse, TestsetVariantsResponse, TestsetsResponse, TextOptions, ToolAuthScheme, ToolCallData, ToolCallFunction, ToolCallResponse, ToolCatalogAction, ToolCatalogActionDetails, ToolCatalogActionResponse, ToolCatalogActionResponseAction, ToolCatalogActionsResponse, ToolCatalogActionsResponseActionsItem, ToolCatalogIntegration, ToolCatalogIntegrationDetails, ToolCatalogIntegrationResponse, ToolCatalogIntegrationResponseIntegration, ToolCatalogIntegrationsResponse, ToolCatalogIntegrationsResponseIntegrationsItem, ToolCatalogProvider, ToolCatalogProviderDetails, ToolCatalogProviderResponse, ToolCatalogProviderResponseProvider, ToolCatalogProvidersResponse, ToolCatalogProvidersResponseProvidersItem, ToolConnection, ToolConnectionCreate, ToolConnectionCreateData, ToolConnectionResponse, ToolConnectionStatus, ToolConnectionsResponse, ToolProviderKind, ToolResult, ToolResultData, TraceIdResponse, TraceIdsResponse, TraceInput, TraceInputSpansValue, TraceOutput, TraceOutputSpansValue, TraceRequest, TraceResponse, TraceType, TracesRequest, TracesResponse, TracingQuery, UserIdsResponse, ValidationError, ValidationErrorLocItem, VariantFork, WebhookDeliveriesResponse, WebhookDelivery, WebhookDeliveryCreate, WebhookDeliveryData, WebhookDeliveryQuery, WebhookDeliveryResponse, WebhookDeliveryResponseInfo, WebhookEventType, WebhookProviderDto, WebhookProviderSettingsDto, WebhookSubscription, WebhookSubscriptionCreate, WebhookSubscriptionData, WebhookSubscriptionDataAuthMode, WebhookSubscriptionEdit, WebhookSubscriptionQuery, WebhookSubscriptionResponse, WebhookSubscriptionsResponse, Windowing, WindowingOrder, Workflow, WorkflowArtifactFlags, WorkflowCatalogFlags, WorkflowCatalogPreset, WorkflowCatalogPresetResponse, WorkflowCatalogPresetsResponse, WorkflowCatalogTemplate, WorkflowCatalogTemplateResponse, WorkflowCatalogTemplatesResponse, WorkflowCatalogType, WorkflowCatalogTypeResponse, WorkflowCatalogTypesResponse, WorkflowCreate, WorkflowEdit, WorkflowFlags, WorkflowFork, WorkflowResponse, WorkflowRevisionCommit, WorkflowRevisionCreate, WorkflowRevisionDataInput, WorkflowRevisionDataInputHeadersValue, WorkflowRevisionDataInputRuntime, WorkflowRevisionDataOutput, WorkflowRevisionDataOutputHeadersValue, WorkflowRevisionDataOutputRuntime, WorkflowRevisionEdit, WorkflowRevisionFlags, WorkflowRevisionFork, WorkflowRevisionInput, WorkflowRevisionOutput, WorkflowRevisionResolveResponse, WorkflowRevisionResponse, WorkflowRevisionsLog, WorkflowRevisionsResponse, WorkflowVariant, WorkflowVariantCreate, WorkflowVariantEdit, WorkflowVariantFlags, WorkflowVariantFork, WorkflowVariantResponse, WorkflowVariantsResponse, WorkflowsResponse, Workspace, WorkspaceMemberResponse, WorkspacePermission, WorkspaceResponse from .errors import UnprocessableEntityError from . import access, annotations, applications, billing, environments, evaluations, evaluators, events, folders, invocations, keys, legacy, organizations, projects, queries, secrets, status, testcases, testsets, tools, traces, users, webhooks, workflows, workspaces from .applications import QueryApplicationVariantsRequestOrder @@ -19,7 +19,7 @@ from .traces import QuerySpansAnalyticsRequestNewest, QuerySpansAnalyticsRequestOldest from .webhooks import WebhookSubscriptionTestRequestSubscription from .workflows import QueryWorkflowRevisionsRequestOrder, QueryWorkflowVariantsRequestOrder, QueryWorkflowsRequestOrder -_dynamic_imports: typing.Dict[str, str] = {"AdminAccountCreateOptions": ".types", "AdminAccountRead": ".types", "AdminAccountsCreate": ".types", "AdminAccountsDelete": ".types", "AdminAccountsDeleteTarget": ".types", "AdminAccountsResponse": ".types", "AdminApiKeyCreate": ".types", "AdminApiKeyResponse": ".types", "AdminDeleteResponse": ".types", "AdminDeletedEntities": ".types", "AdminDeletedEntity": ".types", "AdminOrganizationCreate": ".types", "AdminOrganizationMembershipCreate": ".types", "AdminOrganizationMembershipRead": ".types", "AdminOrganizationRead": ".types", "AdminProjectCreate": ".types", "AdminProjectMembershipCreate": ".types", "AdminProjectMembershipRead": ".types", "AdminProjectRead": ".types", "AdminSimpleAccountCreate": ".types", "AdminSimpleAccountDeleteEntry": ".types", "AdminSimpleAccountRead": ".types", "AdminSimpleAccountsApiKeysCreate": ".types", "AdminSimpleAccountsCreate": ".types", "AdminSimpleAccountsDelete": ".types", "AdminSimpleAccountsOrganizationsCreate": ".types", "AdminSimpleAccountsOrganizationsMembershipsCreate": ".types", "AdminSimpleAccountsOrganizationsTransferOwnership": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse": ".types", "AdminSimpleAccountsProjectsCreate": ".types", "AdminSimpleAccountsProjectsMembershipsCreate": ".types", "AdminSimpleAccountsResponse": ".types", "AdminSimpleAccountsUsersCreate": ".types", "AdminSimpleAccountsUsersIdentitiesCreate": ".types", "AdminSimpleAccountsUsersResetPassword": ".types", "AdminSimpleAccountsWorkspacesCreate": ".types", "AdminSimpleAccountsWorkspacesMembershipsCreate": ".types", "AdminStructuredError": ".types", "AdminSubscriptionCreate": ".types", "AdminSubscriptionRead": ".types", "AdminUserCreate": ".types", "AdminUserIdentityCreate": ".types", "AdminUserIdentityRead": ".types", "AdminUserIdentityReadStatus": ".types", "AdminUserRead": ".types", "AdminWorkspaceCreate": ".types", "AdminWorkspaceMembershipCreate": ".types", "AdminWorkspaceMembershipRead": ".types", "AdminWorkspaceRead": ".types", "AgentaApi": ".client", "AgentaApiEnvironment": ".environment", "Analytics": ".types", "AnalyticsResponse": ".types", "Annotation": ".types", "AnnotationCreate": ".types", "AnnotationCreateLinks": ".types", "AnnotationEdit": ".types", "AnnotationEditLinks": ".types", "AnnotationLinkResponse": ".types", "AnnotationLinks": ".types", "AnnotationQuery": ".types", "AnnotationQueryLinks": ".types", "AnnotationResponse": ".types", "AnnotationsResponse": ".types", "Application": ".types", "ApplicationArtifactFlags": ".types", "ApplicationArtifactQueryFlags": ".types", "ApplicationCatalogPreset": ".types", "ApplicationCatalogPresetResponse": ".types", "ApplicationCatalogPresetsResponse": ".types", "ApplicationCatalogTemplate": ".types", "ApplicationCatalogTemplateResponse": ".types", "ApplicationCatalogTemplatesResponse": ".types", "ApplicationCatalogType": ".types", "ApplicationCatalogTypesResponse": ".types", "ApplicationCreate": ".types", "ApplicationEdit": ".types", "ApplicationFlags": ".types", "ApplicationFork": ".types", "ApplicationQuery": ".types", "ApplicationResponse": ".types", "ApplicationRevision": ".types", "ApplicationRevisionCommit": ".types", "ApplicationRevisionCreate": ".types", "ApplicationRevisionDataInput": ".types", "ApplicationRevisionDataInputHeadersValue": ".types", "ApplicationRevisionDataInputRuntime": ".types", "ApplicationRevisionDataOutput": ".types", "ApplicationRevisionDataOutputHeadersValue": ".types", "ApplicationRevisionDataOutputRuntime": ".types", "ApplicationRevisionEdit": ".types", "ApplicationRevisionFlags": ".types", "ApplicationRevisionFork": ".types", "ApplicationRevisionQuery": ".types", "ApplicationRevisionQueryFlags": ".types", "ApplicationRevisionResolveResponse": ".types", "ApplicationRevisionResponse": ".types", "ApplicationRevisionsLog": ".types", "ApplicationRevisionsResponse": ".types", "ApplicationVariant": ".types", "ApplicationVariantCreate": ".types", "ApplicationVariantEdit": ".types", "ApplicationVariantFlags": ".types", "ApplicationVariantFork": ".types", "ApplicationVariantResponse": ".types", "ApplicationVariantsResponse": ".types", "ApplicationsResponse": ".types", "AsyncAgentaApi": ".client", "BodyConfigsFetchVariantsConfigsFetchPost": ".types", "Bucket": ".types", "CollectStatusResponse": ".types", "ComparisonOperator": ".types", "Condition": ".types", "ConditionOperator": ".types", "ConditionOptions": ".types", "ConditionValue": ".types", "ConfigResponseModel": ".types", "CreateSimpleTestsetFromFileRequestFileType": ".testsets", "CreateTestsetRevisionFromFileRequestFileType": ".testsets", "CustomModelSettingsDto": ".types", "CustomProviderDto": ".types", "CustomProviderKind": ".types", "CustomProviderSettingsDto": ".types", "DictOperator": ".types", "DiscoverResponse": ".types", "DiscoverResponseMethodsValue": ".types", "EditSimpleTestsetFromFileRequestFileType": ".testsets", "EeSrcModelsApiOrganizationModelsOrganization": ".types", "EntityRef": ".types", "Environment": ".types", "EnvironmentCreate": ".types", "EnvironmentEdit": ".types", "EnvironmentFlags": ".types", "EnvironmentQueryFlags": ".types", "EnvironmentResponse": ".types", "EnvironmentRevision": ".types", "EnvironmentRevisionCommit": ".types", "EnvironmentRevisionCreate": ".types", "EnvironmentRevisionData": ".types", "EnvironmentRevisionDelta": ".types", "EnvironmentRevisionEdit": ".types", "EnvironmentRevisionResolveResponse": ".types", "EnvironmentRevisionResponse": ".types", "EnvironmentRevisionsLog": ".types", "EnvironmentRevisionsResponse": ".types", "EnvironmentVariant": ".types", "EnvironmentVariantCreate": ".types", "EnvironmentVariantEdit": ".types", "EnvironmentVariantResponse": ".types", "EnvironmentVariantsResponse": ".types", "EnvironmentsResponse": ".types", "ErrorPolicy": ".types", "EvaluationMetrics": ".types", "EvaluationMetricsCreate": ".types", "EvaluationMetricsEdit": ".types", "EvaluationMetricsIdsResponse": ".types", "EvaluationMetricsQuery": ".types", "EvaluationMetricsQueryScenarioIds": ".types", "EvaluationMetricsQueryTimestamps": ".types", "EvaluationMetricsRefresh": ".types", "EvaluationMetricsResponse": ".types", "EvaluationQueue": ".types", "EvaluationQueueCreate": ".types", "EvaluationQueueData": ".types", "EvaluationQueueEdit": ".types", "EvaluationQueueFlags": ".types", "EvaluationQueueIdResponse": ".types", "EvaluationQueueIdsResponse": ".types", "EvaluationQueueQuery": ".types", "EvaluationQueueQueryFlags": ".types", "EvaluationQueueResponse": ".types", "EvaluationQueueScenariosQuery": ".types", "EvaluationQueuesResponse": ".types", "EvaluationResult": ".types", "EvaluationResultCreate": ".types", "EvaluationResultEdit": ".types", "EvaluationResultIdResponse": ".types", "EvaluationResultIdsResponse": ".types", "EvaluationResultQuery": ".types", "EvaluationResultResponse": ".types", "EvaluationResultsResponse": ".types", "EvaluationRun": ".types", "EvaluationRunCreate": ".types", "EvaluationRunData": ".types", "EvaluationRunDataMapping": ".types", "EvaluationRunDataMappingColumn": ".types", "EvaluationRunDataMappingStep": ".types", "EvaluationRunDataStep": ".types", "EvaluationRunDataStepInput": ".types", "EvaluationRunDataStepOrigin": ".types", "EvaluationRunDataStepType": ".types", "EvaluationRunEdit": ".types", "EvaluationRunFlags": ".types", "EvaluationRunIdResponse": ".types", "EvaluationRunIdsRequest": ".types", "EvaluationRunIdsResponse": ".types", "EvaluationRunQuery": ".types", "EvaluationRunQueryFlags": ".types", "EvaluationRunResponse": ".types", "EvaluationRunsResponse": ".types", "EvaluationScenario": ".types", "EvaluationScenarioCreate": ".types", "EvaluationScenarioEdit": ".types", "EvaluationScenarioIdResponse": ".types", "EvaluationScenarioIdsResponse": ".types", "EvaluationScenarioQuery": ".types", "EvaluationScenarioResponse": ".types", "EvaluationScenariosResponse": ".types", "EvaluationStatus": ".types", "Evaluator": ".types", "EvaluatorArtifactFlags": ".types", "EvaluatorArtifactQueryFlags": ".types", "EvaluatorCatalogPreset": ".types", "EvaluatorCatalogPresetResponse": ".types", "EvaluatorCatalogPresetsResponse": ".types", "EvaluatorCatalogTemplate": ".types", "EvaluatorCatalogTemplateResponse": ".types", "EvaluatorCatalogTemplatesResponse": ".types", "EvaluatorCatalogType": ".types", "EvaluatorCatalogTypesResponse": ".types", "EvaluatorCreate": ".types", "EvaluatorEdit": ".types", "EvaluatorFlags": ".types", "EvaluatorFork": ".types", "EvaluatorQuery": ".types", "EvaluatorResponse": ".types", "EvaluatorRevision": ".types", "EvaluatorRevisionCommit": ".types", "EvaluatorRevisionCreate": ".types", "EvaluatorRevisionDataInput": ".types", "EvaluatorRevisionDataInputHeadersValue": ".types", "EvaluatorRevisionDataInputRuntime": ".types", "EvaluatorRevisionDataOutput": ".types", "EvaluatorRevisionDataOutputHeadersValue": ".types", "EvaluatorRevisionDataOutputRuntime": ".types", "EvaluatorRevisionEdit": ".types", "EvaluatorRevisionFlags": ".types", "EvaluatorRevisionFork": ".types", "EvaluatorRevisionQuery": ".types", "EvaluatorRevisionQueryFlags": ".types", "EvaluatorRevisionResolveResponse": ".types", "EvaluatorRevisionResponse": ".types", "EvaluatorRevisionsLog": ".types", "EvaluatorRevisionsResponse": ".types", "EvaluatorTemplate": ".types", "EvaluatorTemplatesResponse": ".types", "EvaluatorVariant": ".types", "EvaluatorVariantCreate": ".types", "EvaluatorVariantEdit": ".types", "EvaluatorVariantFlags": ".types", "EvaluatorVariantFork": ".types", "EvaluatorVariantResponse": ".types", "EvaluatorVariantsResponse": ".types", "EvaluatorsResponse": ".types", "Event": ".types", "EventQuery": ".types", "EventType": ".types", "EventsQueryResponse": ".types", "ExistenceOperator": ".types", "FetchLegacyAnalyticsRequestNewest": ".legacy", "FetchLegacyAnalyticsRequestOldest": ".legacy", "FetchSimpleTestsetToFileRequestFileType": ".testsets", "FetchTestsetRevisionToFileRequestFileType": ".testsets", "FilteringInput": ".types", "FilteringInputConditionsItem": ".types", "FilteringOutput": ".types", "FilteringOutputConditionsItem": ".types", "Focus": ".types", "Folder": ".types", "FolderCreate": ".types", "FolderEdit": ".types", "FolderIdResponse": ".types", "FolderKind": ".types", "FolderQuery": ".types", "FolderQueryKinds": ".types", "FolderResponse": ".types", "FoldersResponse": ".types", "Format": ".types", "Formatting": ".types", typing.Any: ".types", typing.Any: ".types", "Header": ".types", "HttpValidationError": ".types", "InviteRequest": ".types", "Invocation": ".types", "InvocationCreate": ".types", "InvocationCreateLinks": ".types", "InvocationEdit": ".types", "InvocationEditLinks": ".types", "InvocationLinkResponse": ".types", "InvocationLinks": ".types", "InvocationQuery": ".types", "InvocationQueryLinks": ".types", "InvocationResponse": ".types", "InvocationsResponse": ".types", "JsonSchemasInput": ".types", "JsonSchemasOutput": ".types", typing.Any: ".types", typing.Any: ".types", "LegacyLifecycleDto": ".types", "ListApiKeysResponse": ".types", "ListOperator": ".types", "ListOptions": ".types", "LogicalOperator": ".types", "MetricSpec": ".types", "MetricType": ".types", "MetricsBucket": ".types", "NumericOperator": ".types", "OTelEventInput": ".types", "OTelEventInputTimestamp": ".types", "OTelEventOutput": ".types", "OTelEventOutputTimestamp": ".types", "OTelHashInput": ".types", "OTelHashOutput": ".types", "OTelLinkInput": ".types", "OTelLinkOutput": ".types", "OTelLinksResponse": ".types", "OTelReferenceInput": ".types", "OTelReferenceOutput": ".types", "OTelSpanKind": ".types", "OTelStatusCode": ".types", "OTelTracingRequest": ".types", "OTelTracingResponse": ".types", "OldAnalyticsResponse": ".types", "OrganizationDetails": ".types", "OrganizationDomainResponse": ".types", "OrganizationProviderResponse": ".types", "OrganizationUpdate": ".types", "OssSrcModelsApiOrganizationModelsOrganization": ".types", "Permission": ".types", "ProjectsResponse": ".types", "QueriesResponse": ".types", "Query": ".types", "QueryApplicationVariantsRequestOrder": ".applications", "QueryCreate": ".types", "QueryEdit": ".types", "QueryEnvironmentRevisionsRequestOrder": ".environments", "QueryEnvironmentVariantsRequestOrder": ".environments", "QueryEnvironmentsRequestOrder": ".environments", "QueryEvaluatorVariantsRequestOrder": ".evaluators", "QueryFlags": ".types", "QueryQueriesRequestOrder": ".queries", "QueryQueryFlags": ".types", "QueryResponse": ".types", "QueryRevision": ".types", "QueryRevisionCommit": ".types", "QueryRevisionCreate": ".types", "QueryRevisionDataInput": ".types", "QueryRevisionDataOutput": ".types", "QueryRevisionEdit": ".types", "QueryRevisionQuery": ".types", "QueryRevisionResponse": ".types", "QueryRevisionsLog": ".types", "QueryRevisionsResponse": ".types", "QuerySpansAnalyticsRequestNewest": ".traces", "QuerySpansAnalyticsRequestOldest": ".traces", "QueryVariant": ".types", "QueryVariantCreate": ".types", "QueryVariantEdit": ".types", "QueryVariantQuery": ".types", "QueryVariantResponse": ".types", "QueryVariantsResponse": ".types", "QueryWorkflowRevisionsRequestOrder": ".workflows", "QueryWorkflowVariantsRequestOrder": ".workflows", "QueryWorkflowsRequestOrder": ".workflows", "Reference": ".types", "ReferenceRequestModelInput": ".types", "ReferenceRequestModelOutput": ".types", "RequestType": ".types", "ResolutionInfo": ".types", "RevisionFork": ".types", "SecretDto": ".types", "SecretDtoData": ".types", "SecretKind": ".types", "SecretResponseDto": ".types", "SecretResponseDtoData": ".types", "SessionIdsResponse": ".types", "SimpleApplication": ".types", "SimpleApplicationCreate": ".types", "SimpleApplicationDataInput": ".types", "SimpleApplicationDataInputHeadersValue": ".types", "SimpleApplicationDataInputRuntime": ".types", "SimpleApplicationDataOutput": ".types", "SimpleApplicationDataOutputHeadersValue": ".types", "SimpleApplicationDataOutputRuntime": ".types", "SimpleApplicationEdit": ".types", "SimpleApplicationFlags": ".types", "SimpleApplicationQuery": ".types", "SimpleApplicationQueryFlags": ".types", "SimpleApplicationResponse": ".types", "SimpleApplicationsResponse": ".types", "SimpleEnvironment": ".types", "SimpleEnvironmentCreate": ".types", "SimpleEnvironmentEdit": ".types", "SimpleEnvironmentQuery": ".types", "SimpleEnvironmentResponse": ".types", "SimpleEnvironmentsResponse": ".types", "SimpleEvaluation": ".types", "SimpleEvaluationCreate": ".types", "SimpleEvaluationData": ".types", "SimpleEvaluationDataApplicationSteps": ".types", "SimpleEvaluationDataApplicationStepsOneValue": ".types", "SimpleEvaluationDataEvaluatorSteps": ".types", "SimpleEvaluationDataEvaluatorStepsOneValue": ".types", "SimpleEvaluationDataQuerySteps": ".types", "SimpleEvaluationDataQueryStepsOneValue": ".types", "SimpleEvaluationDataTestsetSteps": ".types", "SimpleEvaluationDataTestsetStepsOneValue": ".types", "SimpleEvaluationEdit": ".types", "SimpleEvaluationIdResponse": ".types", "SimpleEvaluationQuery": ".types", "SimpleEvaluationResponse": ".types", "SimpleEvaluationsResponse": ".types", "SimpleEvaluator": ".types", "SimpleEvaluatorCreate": ".types", "SimpleEvaluatorDataInput": ".types", "SimpleEvaluatorDataInputHeadersValue": ".types", "SimpleEvaluatorDataInputRuntime": ".types", "SimpleEvaluatorDataOutput": ".types", "SimpleEvaluatorDataOutputHeadersValue": ".types", "SimpleEvaluatorDataOutputRuntime": ".types", "SimpleEvaluatorEdit": ".types", "SimpleEvaluatorFlags": ".types", "SimpleEvaluatorQuery": ".types", "SimpleEvaluatorQueryFlags": ".types", "SimpleEvaluatorResponse": ".types", "SimpleEvaluatorsResponse": ".types", "SimpleQueriesResponse": ".types", "SimpleQuery": ".types", "SimpleQueryCreate": ".types", "SimpleQueryEdit": ".types", "SimpleQueryQuery": ".types", "SimpleQueryResponse": ".types", "SimpleQueue": ".types", "SimpleQueueCreate": ".types", "SimpleQueueData": ".types", "SimpleQueueDataEvaluators": ".types", "SimpleQueueDataEvaluatorsOneValue": ".types", "SimpleQueueIdResponse": ".types", "SimpleQueueKind": ".types", "SimpleQueueQuery": ".types", "SimpleQueueResponse": ".types", "SimpleQueueScenariosQuery": ".types", "SimpleQueueScenariosResponse": ".types", "SimpleQueueSettings": ".types", "SimpleQueuesResponse": ".types", "SimpleTestset": ".types", "SimpleTestsetCreate": ".types", "SimpleTestsetEdit": ".types", "SimpleTestsetQuery": ".types", "SimpleTestsetResponse": ".types", "SimpleTestsetsResponse": ".types", "SimpleTrace": ".types", "SimpleTraceChannel": ".types", "SimpleTraceCreate": ".types", "SimpleTraceCreateLinks": ".types", "SimpleTraceEdit": ".types", "SimpleTraceEditLinks": ".types", "SimpleTraceKind": ".types", "SimpleTraceLinkResponse": ".types", "SimpleTraceLinks": ".types", "SimpleTraceOrigin": ".types", "SimpleTraceQuery": ".types", "SimpleTraceQueryLinks": ".types", "SimpleTraceReferences": ".types", "SimpleTraceResponse": ".types", "SimpleTracesResponse": ".types", "SimpleWorkflow": ".types", "SimpleWorkflowCreate": ".types", "SimpleWorkflowDataInput": ".types", "SimpleWorkflowDataInputHeadersValue": ".types", "SimpleWorkflowDataInputRuntime": ".types", "SimpleWorkflowDataOutput": ".types", "SimpleWorkflowDataOutputHeadersValue": ".types", "SimpleWorkflowDataOutputRuntime": ".types", "SimpleWorkflowEdit": ".types", "SimpleWorkflowFlags": ".types", "SimpleWorkflowQuery": ".types", "SimpleWorkflowQueryFlags": ".types", "SimpleWorkflowResponse": ".types", "SimpleWorkflowsResponse": ".types", "SpanInput": ".types", "SpanInputEndTime": ".types", "SpanInputStartTime": ".types", "SpanOutput": ".types", "SpanOutputEndTime": ".types", "SpanOutputStartTime": ".types", "SpanResponse": ".types", "SpanType": ".types", "SpansNodeInput": ".types", "SpansNodeInputEndTime": ".types", "SpansNodeInputSpansValue": ".types", "SpansNodeInputStartTime": ".types", "SpansNodeOutput": ".types", "SpansNodeOutputEndTime": ".types", "SpansNodeOutputSpansValue": ".types", "SpansNodeOutputStartTime": ".types", "SpansResponse": ".types", "SpansTreeInput": ".types", "SpansTreeInputSpansValue": ".types", "SpansTreeOutput": ".types", "SpansTreeOutputSpansValue": ".types", "SsoProviderDto": ".types", "SsoProviderInfo": ".types", "SsoProviderSettingsDto": ".types", "SsoProviders": ".types", "StandardProviderDto": ".types", "StandardProviderKind": ".types", "StandardProviderSettingsDto": ".types", "Status": ".types", "StringOperator": ".types", "TestcaseInput": ".types", "TestcaseOutput": ".types", "TestcaseResponse": ".types", "TestcasesResponse": ".types", "Testset": ".types", "TestsetCreate": ".types", "TestsetEdit": ".types", "TestsetFlags": ".types", "TestsetQuery": ".types", "TestsetResponse": ".types", "TestsetRevision": ".types", "TestsetRevisionCommit": ".types", "TestsetRevisionCreate": ".types", "TestsetRevisionDataInput": ".types", "TestsetRevisionDataOutput": ".types", "TestsetRevisionDelta": ".types", "TestsetRevisionDeltaColumns": ".types", "TestsetRevisionDeltaRows": ".types", "TestsetRevisionEdit": ".types", "TestsetRevisionQuery": ".types", "TestsetRevisionResponse": ".types", "TestsetRevisionsLog": ".types", "TestsetRevisionsResponse": ".types", "TestsetVariant": ".types", "TestsetVariantCreate": ".types", "TestsetVariantEdit": ".types", "TestsetVariantQuery": ".types", "TestsetVariantResponse": ".types", "TestsetVariantsResponse": ".types", "TestsetsResponse": ".types", "TextOptions": ".types", "ToolAuthScheme": ".types", "ToolCallData": ".types", "ToolCallFunction": ".types", "ToolCallResponse": ".types", "ToolCatalogAction": ".types", "ToolCatalogActionDetails": ".types", "ToolCatalogActionResponse": ".types", "ToolCatalogActionResponseAction": ".types", "ToolCatalogActionsResponse": ".types", "ToolCatalogActionsResponseActionsItem": ".types", "ToolCatalogIntegration": ".types", "ToolCatalogIntegrationDetails": ".types", "ToolCatalogIntegrationResponse": ".types", "ToolCatalogIntegrationResponseIntegration": ".types", "ToolCatalogIntegrationsResponse": ".types", "ToolCatalogIntegrationsResponseIntegrationsItem": ".types", "ToolCatalogProvider": ".types", "ToolCatalogProviderDetails": ".types", "ToolCatalogProviderResponse": ".types", "ToolCatalogProviderResponseProvider": ".types", "ToolCatalogProvidersResponse": ".types", "ToolCatalogProvidersResponseProvidersItem": ".types", "ToolConnection": ".types", "ToolConnectionCreate": ".types", "ToolConnectionCreateData": ".types", "ToolConnectionResponse": ".types", "ToolConnectionStatus": ".types", "ToolConnectionsResponse": ".types", "ToolProviderKind": ".types", "ToolResult": ".types", "ToolResultData": ".types", "TraceIdResponse": ".types", "TraceIdsResponse": ".types", "TraceInput": ".types", "TraceInputSpansValue": ".types", "TraceOutput": ".types", "TraceOutputSpansValue": ".types", "TraceRequest": ".types", "TraceResponse": ".types", "TraceType": ".types", "TracesRequest": ".types", "TracesResponse": ".types", "TracingQuery": ".types", "UnprocessableEntityError": ".errors", "UserIdsResponse": ".types", "ValidationError": ".types", "ValidationErrorLocItem": ".types", "VariantFork": ".types", "WebhookDeliveriesResponse": ".types", "WebhookDelivery": ".types", "WebhookDeliveryCreate": ".types", "WebhookDeliveryData": ".types", "WebhookDeliveryQuery": ".types", "WebhookDeliveryResponse": ".types", "WebhookDeliveryResponseInfo": ".types", "WebhookEventType": ".types", "WebhookProviderDto": ".types", "WebhookProviderSettingsDto": ".types", "WebhookSubscription": ".types", "WebhookSubscriptionCreate": ".types", "WebhookSubscriptionData": ".types", "WebhookSubscriptionDataAuthMode": ".types", "WebhookSubscriptionEdit": ".types", "WebhookSubscriptionQuery": ".types", "WebhookSubscriptionResponse": ".types", "WebhookSubscriptionTestRequestSubscription": ".webhooks", "WebhookSubscriptionsResponse": ".types", "Windowing": ".types", "WindowingOrder": ".types", "Workflow": ".types", "WorkflowArtifactFlags": ".types", "WorkflowCatalogFlags": ".types", "WorkflowCatalogPreset": ".types", "WorkflowCatalogPresetResponse": ".types", "WorkflowCatalogPresetsResponse": ".types", "WorkflowCatalogTemplate": ".types", "WorkflowCatalogTemplateResponse": ".types", "WorkflowCatalogTemplatesResponse": ".types", "WorkflowCatalogType": ".types", "WorkflowCatalogTypeResponse": ".types", "WorkflowCatalogTypesResponse": ".types", "WorkflowCreate": ".types", "WorkflowEdit": ".types", "WorkflowFlags": ".types", "WorkflowFork": ".types", "WorkflowResponse": ".types", "WorkflowRevisionCommit": ".types", "WorkflowRevisionCreate": ".types", "WorkflowRevisionDataInput": ".types", "WorkflowRevisionDataInputHeadersValue": ".types", "WorkflowRevisionDataInputRuntime": ".types", "WorkflowRevisionDataOutput": ".types", "WorkflowRevisionDataOutputHeadersValue": ".types", "WorkflowRevisionDataOutputRuntime": ".types", "WorkflowRevisionEdit": ".types", "WorkflowRevisionFlags": ".types", "WorkflowRevisionFork": ".types", "WorkflowRevisionInput": ".types", "WorkflowRevisionOutput": ".types", "WorkflowRevisionResolveResponse": ".types", "WorkflowRevisionResponse": ".types", "WorkflowRevisionsLog": ".types", "WorkflowRevisionsResponse": ".types", "WorkflowVariant": ".types", "WorkflowVariantCreate": ".types", "WorkflowVariantEdit": ".types", "WorkflowVariantFlags": ".types", "WorkflowVariantFork": ".types", "WorkflowVariantResponse": ".types", "WorkflowVariantsResponse": ".types", "WorkflowsResponse": ".types", "Workspace": ".types", "WorkspaceMemberResponse": ".types", "WorkspacePermission": ".types", "WorkspaceResponse": ".types", "access": ".access", "annotations": ".annotations", "applications": ".applications", "billing": ".billing", "environments": ".environments", "evaluations": ".evaluations", "evaluators": ".evaluators", "events": ".events", "folders": ".folders", "invocations": ".invocations", "keys": ".keys", "legacy": ".legacy", "organizations": ".organizations", "projects": ".projects", "queries": ".queries", "secrets": ".secrets", "status": ".status", "testcases": ".testcases", "testsets": ".testsets", "tools": ".tools", "traces": ".traces", "users": ".users", "webhooks": ".webhooks", "workflows": ".workflows", "workspaces": ".workspaces"} +_dynamic_imports: typing.Dict[str, str] = {"AdminAccountCreateOptions": ".types", "AdminAccountRead": ".types", "AdminAccountsCreate": ".types", "AdminAccountsDelete": ".types", "AdminAccountsDeleteTarget": ".types", "AdminAccountsResponse": ".types", "AdminApiKeyCreate": ".types", "AdminApiKeyResponse": ".types", "AdminDeleteResponse": ".types", "AdminDeletedEntities": ".types", "AdminDeletedEntity": ".types", "AdminOrganizationCreate": ".types", "AdminOrganizationMembershipCreate": ".types", "AdminOrganizationMembershipRead": ".types", "AdminOrganizationRead": ".types", "AdminProjectCreate": ".types", "AdminProjectMembershipCreate": ".types", "AdminProjectMembershipRead": ".types", "AdminProjectRead": ".types", "AdminSimpleAccountCreate": ".types", "AdminSimpleAccountDeleteEntry": ".types", "AdminSimpleAccountRead": ".types", "AdminSimpleAccountsApiKeysCreate": ".types", "AdminSimpleAccountsCreate": ".types", "AdminSimpleAccountsDelete": ".types", "AdminSimpleAccountsOrganizationsCreate": ".types", "AdminSimpleAccountsOrganizationsMembershipsCreate": ".types", "AdminSimpleAccountsOrganizationsTransferOwnership": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero": ".types", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse": ".types", "AdminSimpleAccountsProjectsCreate": ".types", "AdminSimpleAccountsProjectsMembershipsCreate": ".types", "AdminSimpleAccountsResponse": ".types", "AdminSimpleAccountsUsersCreate": ".types", "AdminSimpleAccountsUsersIdentitiesCreate": ".types", "AdminSimpleAccountsUsersResetPassword": ".types", "AdminSimpleAccountsWorkspacesCreate": ".types", "AdminSimpleAccountsWorkspacesMembershipsCreate": ".types", "AdminStructuredError": ".types", "AdminSubscriptionCreate": ".types", "AdminSubscriptionRead": ".types", "AdminUserCreate": ".types", "AdminUserIdentityCreate": ".types", "AdminUserIdentityRead": ".types", "AdminUserIdentityReadStatus": ".types", "AdminUserRead": ".types", "AdminWorkspaceCreate": ".types", "AdminWorkspaceMembershipCreate": ".types", "AdminWorkspaceMembershipRead": ".types", "AdminWorkspaceRead": ".types", "AgentaApi": ".client", "AgentaApiEnvironment": ".environment", "Analytics": ".types", "AnalyticsResponse": ".types", "Annotation": ".types", "AnnotationCreate": ".types", "AnnotationCreateLinks": ".types", "AnnotationEdit": ".types", "AnnotationEditLinks": ".types", "AnnotationLinkResponse": ".types", "AnnotationLinks": ".types", "AnnotationQuery": ".types", "AnnotationQueryLinks": ".types", "AnnotationResponse": ".types", "AnnotationsResponse": ".types", "Application": ".types", "ApplicationArtifactFlags": ".types", "ApplicationArtifactQueryFlags": ".types", "ApplicationCatalogPreset": ".types", "ApplicationCatalogPresetResponse": ".types", "ApplicationCatalogPresetsResponse": ".types", "ApplicationCatalogTemplate": ".types", "ApplicationCatalogTemplateResponse": ".types", "ApplicationCatalogTemplatesResponse": ".types", "ApplicationCatalogType": ".types", "ApplicationCatalogTypesResponse": ".types", "ApplicationCreate": ".types", "ApplicationEdit": ".types", "ApplicationFlags": ".types", "ApplicationFork": ".types", "ApplicationQuery": ".types", "ApplicationResponse": ".types", "ApplicationRevision": ".types", "ApplicationRevisionCommit": ".types", "ApplicationRevisionCreate": ".types", "ApplicationRevisionDataInput": ".types", "ApplicationRevisionDataInputHeadersValue": ".types", "ApplicationRevisionDataInputRuntime": ".types", "ApplicationRevisionDataOutput": ".types", "ApplicationRevisionDataOutputHeadersValue": ".types", "ApplicationRevisionDataOutputRuntime": ".types", "ApplicationRevisionEdit": ".types", "ApplicationRevisionFlags": ".types", "ApplicationRevisionFork": ".types", "ApplicationRevisionQuery": ".types", "ApplicationRevisionQueryFlags": ".types", "ApplicationRevisionResolveResponse": ".types", "ApplicationRevisionResponse": ".types", "ApplicationRevisionsLog": ".types", "ApplicationRevisionsResponse": ".types", "ApplicationVariant": ".types", "ApplicationVariantCreate": ".types", "ApplicationVariantEdit": ".types", "ApplicationVariantFlags": ".types", "ApplicationVariantFork": ".types", "ApplicationVariantResponse": ".types", "ApplicationVariantsResponse": ".types", "ApplicationsResponse": ".types", "AsyncAgentaApi": ".client", "BodyConfigsFetchVariantsConfigsFetchPost": ".types", "Bucket": ".types", "CollectStatusResponse": ".types", "ComparisonOperator": ".types", "Condition": ".types", "ConditionOperator": ".types", "ConditionOptions": ".types", "ConditionValue": ".types", "ConfigResponseModel": ".types", "CreateSimpleTestsetFromFileRequestFileType": ".testsets", "CreateTestsetRevisionFromFileRequestFileType": ".testsets", "CustomModelSettingsDto": ".types", "CustomProviderDto": ".types", "CustomProviderKind": ".types", "CustomProviderSettingsDto": ".types", "DictOperator": ".types", "DiscoverResponse": ".types", "DiscoverResponseMethodsValue": ".types", "EditSimpleTestsetFromFileRequestFileType": ".testsets", "EeSrcModelsApiOrganizationModelsOrganization": ".types", "EntityRef": ".types", "Environment": ".types", "EnvironmentCreate": ".types", "EnvironmentEdit": ".types", "EnvironmentFlags": ".types", "EnvironmentQueryFlags": ".types", "EnvironmentResponse": ".types", "EnvironmentRevision": ".types", "EnvironmentRevisionCommit": ".types", "EnvironmentRevisionCreate": ".types", "EnvironmentRevisionData": ".types", "EnvironmentRevisionDelta": ".types", "EnvironmentRevisionEdit": ".types", "EnvironmentRevisionResolveResponse": ".types", "EnvironmentRevisionResponse": ".types", "EnvironmentRevisionsLog": ".types", "EnvironmentRevisionsResponse": ".types", "EnvironmentVariant": ".types", "EnvironmentVariantCreate": ".types", "EnvironmentVariantEdit": ".types", "EnvironmentVariantResponse": ".types", "EnvironmentVariantsResponse": ".types", "EnvironmentsResponse": ".types", "ErrorPolicy": ".types", "EvaluationMetrics": ".types", "EvaluationMetricsCreate": ".types", "EvaluationMetricsEdit": ".types", "EvaluationMetricsIdsResponse": ".types", "EvaluationMetricsQuery": ".types", "EvaluationMetricsQueryScenarioIds": ".types", "EvaluationMetricsQueryTimestamps": ".types", "EvaluationMetricsRefresh": ".types", "EvaluationMetricsResponse": ".types", "EvaluationQueue": ".types", "EvaluationQueueCreate": ".types", "EvaluationQueueData": ".types", "EvaluationQueueEdit": ".types", "EvaluationQueueFlags": ".types", "EvaluationQueueIdResponse": ".types", "EvaluationQueueIdsResponse": ".types", "EvaluationQueueQuery": ".types", "EvaluationQueueQueryFlags": ".types", "EvaluationQueueResponse": ".types", "EvaluationQueueScenariosQuery": ".types", "EvaluationQueuesResponse": ".types", "EvaluationResult": ".types", "EvaluationResultCreate": ".types", "EvaluationResultEdit": ".types", "EvaluationResultIdResponse": ".types", "EvaluationResultIdsResponse": ".types", "EvaluationResultQuery": ".types", "EvaluationResultResponse": ".types", "EvaluationResultsResponse": ".types", "EvaluationRun": ".types", "EvaluationRunCreate": ".types", "EvaluationRunData": ".types", "EvaluationRunDataConcurrency": ".types", "EvaluationRunDataMapping": ".types", "EvaluationRunDataMappingColumn": ".types", "EvaluationRunDataMappingStep": ".types", "EvaluationRunDataStep": ".types", "EvaluationRunDataStepInput": ".types", "EvaluationRunDataStepOrigin": ".types", "EvaluationRunDataStepType": ".types", "EvaluationRunEdit": ".types", "EvaluationRunFlags": ".types", "EvaluationRunIdResponse": ".types", "EvaluationRunIdsRequest": ".types", "EvaluationRunIdsResponse": ".types", "EvaluationRunQuery": ".types", "EvaluationRunQueryFlags": ".types", "EvaluationRunResponse": ".types", "EvaluationRunsResponse": ".types", "EvaluationScenario": ".types", "EvaluationScenarioCreate": ".types", "EvaluationScenarioEdit": ".types", "EvaluationScenarioIdResponse": ".types", "EvaluationScenarioIdsResponse": ".types", "EvaluationScenarioQuery": ".types", "EvaluationScenarioResponse": ".types", "EvaluationScenariosResponse": ".types", "EvaluationStatus": ".types", "Evaluator": ".types", "EvaluatorArtifactFlags": ".types", "EvaluatorArtifactQueryFlags": ".types", "EvaluatorCatalogPreset": ".types", "EvaluatorCatalogPresetResponse": ".types", "EvaluatorCatalogPresetsResponse": ".types", "EvaluatorCatalogTemplate": ".types", "EvaluatorCatalogTemplateResponse": ".types", "EvaluatorCatalogTemplatesResponse": ".types", "EvaluatorCatalogType": ".types", "EvaluatorCatalogTypesResponse": ".types", "EvaluatorCreate": ".types", "EvaluatorEdit": ".types", "EvaluatorFlags": ".types", "EvaluatorFork": ".types", "EvaluatorQuery": ".types", "EvaluatorResponse": ".types", "EvaluatorRevision": ".types", "EvaluatorRevisionCommit": ".types", "EvaluatorRevisionCreate": ".types", "EvaluatorRevisionDataInput": ".types", "EvaluatorRevisionDataInputHeadersValue": ".types", "EvaluatorRevisionDataInputRuntime": ".types", "EvaluatorRevisionDataOutput": ".types", "EvaluatorRevisionDataOutputHeadersValue": ".types", "EvaluatorRevisionDataOutputRuntime": ".types", "EvaluatorRevisionEdit": ".types", "EvaluatorRevisionFlags": ".types", "EvaluatorRevisionFork": ".types", "EvaluatorRevisionQuery": ".types", "EvaluatorRevisionQueryFlags": ".types", "EvaluatorRevisionResolveResponse": ".types", "EvaluatorRevisionResponse": ".types", "EvaluatorRevisionsLog": ".types", "EvaluatorRevisionsResponse": ".types", "EvaluatorTemplate": ".types", "EvaluatorTemplatesResponse": ".types", "EvaluatorVariant": ".types", "EvaluatorVariantCreate": ".types", "EvaluatorVariantEdit": ".types", "EvaluatorVariantFlags": ".types", "EvaluatorVariantFork": ".types", "EvaluatorVariantResponse": ".types", "EvaluatorVariantsResponse": ".types", "EvaluatorsResponse": ".types", "Event": ".types", "EventQuery": ".types", "EventType": ".types", "EventsQueryResponse": ".types", "ExistenceOperator": ".types", "FetchLegacyAnalyticsRequestNewest": ".legacy", "FetchLegacyAnalyticsRequestOldest": ".legacy", "FetchSimpleTestsetToFileRequestFileType": ".testsets", "FetchTestsetRevisionToFileRequestFileType": ".testsets", "FilteringInput": ".types", "FilteringInputConditionsItem": ".types", "FilteringOutput": ".types", "FilteringOutputConditionsItem": ".types", "Focus": ".types", "Folder": ".types", "FolderCreate": ".types", "FolderEdit": ".types", "FolderIdResponse": ".types", "FolderKind": ".types", "FolderQuery": ".types", "FolderQueryKinds": ".types", "FolderResponse": ".types", "FoldersResponse": ".types", "Format": ".types", "Formatting": ".types", typing.Any: ".types", typing.Any: ".types", "Header": ".types", "HttpValidationError": ".types", "InviteRequest": ".types", "Invocation": ".types", "InvocationCreate": ".types", "InvocationCreateLinks": ".types", "InvocationEdit": ".types", "InvocationEditLinks": ".types", "InvocationLinkResponse": ".types", "InvocationLinks": ".types", "InvocationQuery": ".types", "InvocationQueryLinks": ".types", "InvocationResponse": ".types", "InvocationsResponse": ".types", "JsonSchemasInput": ".types", "JsonSchemasOutput": ".types", typing.Any: ".types", typing.Any: ".types", "LegacyLifecycleDto": ".types", "ListApiKeysResponse": ".types", "ListOperator": ".types", "ListOptions": ".types", "LogicalOperator": ".types", "MetricSpec": ".types", "MetricType": ".types", "MetricsBucket": ".types", "NumericOperator": ".types", "OTelEventInput": ".types", "OTelEventInputTimestamp": ".types", "OTelEventOutput": ".types", "OTelEventOutputTimestamp": ".types", "OTelHashInput": ".types", "OTelHashOutput": ".types", "OTelLinkInput": ".types", "OTelLinkOutput": ".types", "OTelLinksResponse": ".types", "OTelReferenceInput": ".types", "OTelReferenceOutput": ".types", "OTelSpanKind": ".types", "OTelStatusCode": ".types", "OTelTracingRequest": ".types", "OTelTracingResponse": ".types", "OldAnalyticsResponse": ".types", "OrganizationDetails": ".types", "OrganizationDomainResponse": ".types", "OrganizationProviderResponse": ".types", "OrganizationUpdate": ".types", "OssSrcModelsApiOrganizationModelsOrganization": ".types", "Permission": ".types", "ProjectsResponse": ".types", "QueriesResponse": ".types", "Query": ".types", "QueryApplicationVariantsRequestOrder": ".applications", "QueryCreate": ".types", "QueryEdit": ".types", "QueryEnvironmentRevisionsRequestOrder": ".environments", "QueryEnvironmentVariantsRequestOrder": ".environments", "QueryEnvironmentsRequestOrder": ".environments", "QueryEvaluatorVariantsRequestOrder": ".evaluators", "QueryFlags": ".types", "QueryQueriesRequestOrder": ".queries", "QueryQueryFlags": ".types", "QueryResponse": ".types", "QueryRevision": ".types", "QueryRevisionCommit": ".types", "QueryRevisionCreate": ".types", "QueryRevisionDataInput": ".types", "QueryRevisionDataOutput": ".types", "QueryRevisionEdit": ".types", "QueryRevisionQuery": ".types", "QueryRevisionResponse": ".types", "QueryRevisionsLog": ".types", "QueryRevisionsResponse": ".types", "QuerySpansAnalyticsRequestNewest": ".traces", "QuerySpansAnalyticsRequestOldest": ".traces", "QueryVariant": ".types", "QueryVariantCreate": ".types", "QueryVariantEdit": ".types", "QueryVariantQuery": ".types", "QueryVariantResponse": ".types", "QueryVariantsResponse": ".types", "QueryWorkflowRevisionsRequestOrder": ".workflows", "QueryWorkflowVariantsRequestOrder": ".workflows", "QueryWorkflowsRequestOrder": ".workflows", "Reference": ".types", "ReferenceRequestModelInput": ".types", "ReferenceRequestModelOutput": ".types", "RequestType": ".types", "ResolutionInfo": ".types", "RevisionFork": ".types", "SecretDto": ".types", "SecretDtoData": ".types", "SecretKind": ".types", "SecretResponseDto": ".types", "SecretResponseDtoData": ".types", "SessionIdsResponse": ".types", "SimpleApplication": ".types", "SimpleApplicationCreate": ".types", "SimpleApplicationDataInput": ".types", "SimpleApplicationDataInputHeadersValue": ".types", "SimpleApplicationDataInputRuntime": ".types", "SimpleApplicationDataOutput": ".types", "SimpleApplicationDataOutputHeadersValue": ".types", "SimpleApplicationDataOutputRuntime": ".types", "SimpleApplicationEdit": ".types", "SimpleApplicationFlags": ".types", "SimpleApplicationQuery": ".types", "SimpleApplicationQueryFlags": ".types", "SimpleApplicationResponse": ".types", "SimpleApplicationsResponse": ".types", "SimpleEnvironment": ".types", "SimpleEnvironmentCreate": ".types", "SimpleEnvironmentEdit": ".types", "SimpleEnvironmentQuery": ".types", "SimpleEnvironmentResponse": ".types", "SimpleEnvironmentsResponse": ".types", "SimpleEvaluation": ".types", "SimpleEvaluationCreate": ".types", "SimpleEvaluationData": ".types", "SimpleEvaluationDataApplicationSteps": ".types", "SimpleEvaluationDataApplicationStepsOneValue": ".types", "SimpleEvaluationDataEvaluatorSteps": ".types", "SimpleEvaluationDataEvaluatorStepsOneValue": ".types", "SimpleEvaluationDataQuerySteps": ".types", "SimpleEvaluationDataQueryStepsOneValue": ".types", "SimpleEvaluationDataTestsetSteps": ".types", "SimpleEvaluationDataTestsetStepsOneValue": ".types", "SimpleEvaluationEdit": ".types", "SimpleEvaluationIdResponse": ".types", "SimpleEvaluationQuery": ".types", "SimpleEvaluationResponse": ".types", "SimpleEvaluationsResponse": ".types", "SimpleEvaluator": ".types", "SimpleEvaluatorCreate": ".types", "SimpleEvaluatorDataInput": ".types", "SimpleEvaluatorDataInputHeadersValue": ".types", "SimpleEvaluatorDataInputRuntime": ".types", "SimpleEvaluatorDataOutput": ".types", "SimpleEvaluatorDataOutputHeadersValue": ".types", "SimpleEvaluatorDataOutputRuntime": ".types", "SimpleEvaluatorEdit": ".types", "SimpleEvaluatorFlags": ".types", "SimpleEvaluatorQuery": ".types", "SimpleEvaluatorQueryFlags": ".types", "SimpleEvaluatorResponse": ".types", "SimpleEvaluatorsResponse": ".types", "SimpleQueriesResponse": ".types", "SimpleQuery": ".types", "SimpleQueryCreate": ".types", "SimpleQueryEdit": ".types", "SimpleQueryQuery": ".types", "SimpleQueryResponse": ".types", "SimpleQueue": ".types", "SimpleQueueCreate": ".types", "SimpleQueueData": ".types", "SimpleQueueDataEvaluators": ".types", "SimpleQueueDataEvaluatorsOneValue": ".types", "SimpleQueueIdResponse": ".types", "SimpleQueueKind": ".types", "SimpleQueueQuery": ".types", "SimpleQueueResponse": ".types", "SimpleQueueScenariosQuery": ".types", "SimpleQueueScenariosResponse": ".types", "SimpleQueueSettings": ".types", "SimpleQueuesResponse": ".types", "SimpleTestset": ".types", "SimpleTestsetCreate": ".types", "SimpleTestsetEdit": ".types", "SimpleTestsetQuery": ".types", "SimpleTestsetResponse": ".types", "SimpleTestsetsResponse": ".types", "SimpleTrace": ".types", "SimpleTraceChannel": ".types", "SimpleTraceCreate": ".types", "SimpleTraceCreateLinks": ".types", "SimpleTraceEdit": ".types", "SimpleTraceEditLinks": ".types", "SimpleTraceKind": ".types", "SimpleTraceLinkResponse": ".types", "SimpleTraceLinks": ".types", "SimpleTraceOrigin": ".types", "SimpleTraceQuery": ".types", "SimpleTraceQueryLinks": ".types", "SimpleTraceReferences": ".types", "SimpleTraceResponse": ".types", "SimpleTracesResponse": ".types", "SimpleWorkflow": ".types", "SimpleWorkflowCreate": ".types", "SimpleWorkflowDataInput": ".types", "SimpleWorkflowDataInputHeadersValue": ".types", "SimpleWorkflowDataInputRuntime": ".types", "SimpleWorkflowDataOutput": ".types", "SimpleWorkflowDataOutputHeadersValue": ".types", "SimpleWorkflowDataOutputRuntime": ".types", "SimpleWorkflowEdit": ".types", "SimpleWorkflowFlags": ".types", "SimpleWorkflowQuery": ".types", "SimpleWorkflowQueryFlags": ".types", "SimpleWorkflowResponse": ".types", "SimpleWorkflowsResponse": ".types", "SpanInput": ".types", "SpanInputEndTime": ".types", "SpanInputStartTime": ".types", "SpanOutput": ".types", "SpanOutputEndTime": ".types", "SpanOutputStartTime": ".types", "SpanResponse": ".types", "SpanType": ".types", "SpansNodeInput": ".types", "SpansNodeInputEndTime": ".types", "SpansNodeInputSpansValue": ".types", "SpansNodeInputStartTime": ".types", "SpansNodeOutput": ".types", "SpansNodeOutputEndTime": ".types", "SpansNodeOutputSpansValue": ".types", "SpansNodeOutputStartTime": ".types", "SpansResponse": ".types", "SpansTreeInput": ".types", "SpansTreeInputSpansValue": ".types", "SpansTreeOutput": ".types", "SpansTreeOutputSpansValue": ".types", "SsoProviderDto": ".types", "SsoProviderInfo": ".types", "SsoProviderSettingsDto": ".types", "SsoProviders": ".types", "StandardProviderDto": ".types", "StandardProviderKind": ".types", "StandardProviderSettingsDto": ".types", "Status": ".types", "StringOperator": ".types", "TestcaseInput": ".types", "TestcaseOutput": ".types", "TestcaseResponse": ".types", "TestcasesResponse": ".types", "Testset": ".types", "TestsetCreate": ".types", "TestsetEdit": ".types", "TestsetFlags": ".types", "TestsetQuery": ".types", "TestsetResponse": ".types", "TestsetRevision": ".types", "TestsetRevisionCommit": ".types", "TestsetRevisionCreate": ".types", "TestsetRevisionDataInput": ".types", "TestsetRevisionDataOutput": ".types", "TestsetRevisionDelta": ".types", "TestsetRevisionDeltaColumns": ".types", "TestsetRevisionDeltaRows": ".types", "TestsetRevisionEdit": ".types", "TestsetRevisionQuery": ".types", "TestsetRevisionResponse": ".types", "TestsetRevisionsLog": ".types", "TestsetRevisionsResponse": ".types", "TestsetVariant": ".types", "TestsetVariantCreate": ".types", "TestsetVariantEdit": ".types", "TestsetVariantQuery": ".types", "TestsetVariantResponse": ".types", "TestsetVariantsResponse": ".types", "TestsetsResponse": ".types", "TextOptions": ".types", "ToolAuthScheme": ".types", "ToolCallData": ".types", "ToolCallFunction": ".types", "ToolCallResponse": ".types", "ToolCatalogAction": ".types", "ToolCatalogActionDetails": ".types", "ToolCatalogActionResponse": ".types", "ToolCatalogActionResponseAction": ".types", "ToolCatalogActionsResponse": ".types", "ToolCatalogActionsResponseActionsItem": ".types", "ToolCatalogIntegration": ".types", "ToolCatalogIntegrationDetails": ".types", "ToolCatalogIntegrationResponse": ".types", "ToolCatalogIntegrationResponseIntegration": ".types", "ToolCatalogIntegrationsResponse": ".types", "ToolCatalogIntegrationsResponseIntegrationsItem": ".types", "ToolCatalogProvider": ".types", "ToolCatalogProviderDetails": ".types", "ToolCatalogProviderResponse": ".types", "ToolCatalogProviderResponseProvider": ".types", "ToolCatalogProvidersResponse": ".types", "ToolCatalogProvidersResponseProvidersItem": ".types", "ToolConnection": ".types", "ToolConnectionCreate": ".types", "ToolConnectionCreateData": ".types", "ToolConnectionResponse": ".types", "ToolConnectionStatus": ".types", "ToolConnectionsResponse": ".types", "ToolProviderKind": ".types", "ToolResult": ".types", "ToolResultData": ".types", "TraceIdResponse": ".types", "TraceIdsResponse": ".types", "TraceInput": ".types", "TraceInputSpansValue": ".types", "TraceOutput": ".types", "TraceOutputSpansValue": ".types", "TraceRequest": ".types", "TraceResponse": ".types", "TraceType": ".types", "TracesRequest": ".types", "TracesResponse": ".types", "TracingQuery": ".types", "UnprocessableEntityError": ".errors", "UserIdsResponse": ".types", "ValidationError": ".types", "ValidationErrorLocItem": ".types", "VariantFork": ".types", "WebhookDeliveriesResponse": ".types", "WebhookDelivery": ".types", "WebhookDeliveryCreate": ".types", "WebhookDeliveryData": ".types", "WebhookDeliveryQuery": ".types", "WebhookDeliveryResponse": ".types", "WebhookDeliveryResponseInfo": ".types", "WebhookEventType": ".types", "WebhookProviderDto": ".types", "WebhookProviderSettingsDto": ".types", "WebhookSubscription": ".types", "WebhookSubscriptionCreate": ".types", "WebhookSubscriptionData": ".types", "WebhookSubscriptionDataAuthMode": ".types", "WebhookSubscriptionEdit": ".types", "WebhookSubscriptionQuery": ".types", "WebhookSubscriptionResponse": ".types", "WebhookSubscriptionTestRequestSubscription": ".webhooks", "WebhookSubscriptionsResponse": ".types", "Windowing": ".types", "WindowingOrder": ".types", "Workflow": ".types", "WorkflowArtifactFlags": ".types", "WorkflowCatalogFlags": ".types", "WorkflowCatalogPreset": ".types", "WorkflowCatalogPresetResponse": ".types", "WorkflowCatalogPresetsResponse": ".types", "WorkflowCatalogTemplate": ".types", "WorkflowCatalogTemplateResponse": ".types", "WorkflowCatalogTemplatesResponse": ".types", "WorkflowCatalogType": ".types", "WorkflowCatalogTypeResponse": ".types", "WorkflowCatalogTypesResponse": ".types", "WorkflowCreate": ".types", "WorkflowEdit": ".types", "WorkflowFlags": ".types", "WorkflowFork": ".types", "WorkflowResponse": ".types", "WorkflowRevisionCommit": ".types", "WorkflowRevisionCreate": ".types", "WorkflowRevisionDataInput": ".types", "WorkflowRevisionDataInputHeadersValue": ".types", "WorkflowRevisionDataInputRuntime": ".types", "WorkflowRevisionDataOutput": ".types", "WorkflowRevisionDataOutputHeadersValue": ".types", "WorkflowRevisionDataOutputRuntime": ".types", "WorkflowRevisionEdit": ".types", "WorkflowRevisionFlags": ".types", "WorkflowRevisionFork": ".types", "WorkflowRevisionInput": ".types", "WorkflowRevisionOutput": ".types", "WorkflowRevisionResolveResponse": ".types", "WorkflowRevisionResponse": ".types", "WorkflowRevisionsLog": ".types", "WorkflowRevisionsResponse": ".types", "WorkflowVariant": ".types", "WorkflowVariantCreate": ".types", "WorkflowVariantEdit": ".types", "WorkflowVariantFlags": ".types", "WorkflowVariantFork": ".types", "WorkflowVariantResponse": ".types", "WorkflowVariantsResponse": ".types", "WorkflowsResponse": ".types", "Workspace": ".types", "WorkspaceMemberResponse": ".types", "WorkspacePermission": ".types", "WorkspaceResponse": ".types", "access": ".access", "annotations": ".annotations", "applications": ".applications", "billing": ".billing", "environments": ".environments", "evaluations": ".evaluations", "evaluators": ".evaluators", "events": ".events", "folders": ".folders", "invocations": ".invocations", "keys": ".keys", "legacy": ".legacy", "organizations": ".organizations", "projects": ".projects", "queries": ".queries", "secrets": ".secrets", "status": ".status", "testcases": ".testcases", "testsets": ".testsets", "tools": ".tools", "traces": ".traces", "users": ".users", "webhooks": ".webhooks", "workflows": ".workflows", "workspaces": ".workspaces"} def __getattr__(attr_name: str) -> typing.Any: module_name = _dynamic_imports.get(attr_name) if module_name is None: @@ -37,4 +37,4 @@ def __getattr__(attr_name: str) -> typing.Any: def __dir__(): lazy_attrs = list(_dynamic_imports.keys()) return sorted(lazy_attrs) -__all__ = ["AdminAccountCreateOptions", "AdminAccountRead", "AdminAccountsCreate", "AdminAccountsDelete", "AdminAccountsDeleteTarget", "AdminAccountsResponse", "AdminApiKeyCreate", "AdminApiKeyResponse", "AdminDeleteResponse", "AdminDeletedEntities", "AdminDeletedEntity", "AdminOrganizationCreate", "AdminOrganizationMembershipCreate", "AdminOrganizationMembershipRead", "AdminOrganizationRead", "AdminProjectCreate", "AdminProjectMembershipCreate", "AdminProjectMembershipRead", "AdminProjectRead", "AdminSimpleAccountCreate", "AdminSimpleAccountDeleteEntry", "AdminSimpleAccountRead", "AdminSimpleAccountsApiKeysCreate", "AdminSimpleAccountsCreate", "AdminSimpleAccountsDelete", "AdminSimpleAccountsOrganizationsCreate", "AdminSimpleAccountsOrganizationsMembershipsCreate", "AdminSimpleAccountsOrganizationsTransferOwnership", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse", "AdminSimpleAccountsProjectsCreate", "AdminSimpleAccountsProjectsMembershipsCreate", "AdminSimpleAccountsResponse", "AdminSimpleAccountsUsersCreate", "AdminSimpleAccountsUsersIdentitiesCreate", "AdminSimpleAccountsUsersResetPassword", "AdminSimpleAccountsWorkspacesCreate", "AdminSimpleAccountsWorkspacesMembershipsCreate", "AdminStructuredError", "AdminSubscriptionCreate", "AdminSubscriptionRead", "AdminUserCreate", "AdminUserIdentityCreate", "AdminUserIdentityRead", "AdminUserIdentityReadStatus", "AdminUserRead", "AdminWorkspaceCreate", "AdminWorkspaceMembershipCreate", "AdminWorkspaceMembershipRead", "AdminWorkspaceRead", "AgentaApi", "AgentaApiEnvironment", "Analytics", "AnalyticsResponse", "Annotation", "AnnotationCreate", "AnnotationCreateLinks", "AnnotationEdit", "AnnotationEditLinks", "AnnotationLinkResponse", "AnnotationLinks", "AnnotationQuery", "AnnotationQueryLinks", "AnnotationResponse", "AnnotationsResponse", "Application", "ApplicationArtifactFlags", "ApplicationArtifactQueryFlags", "ApplicationCatalogPreset", "ApplicationCatalogPresetResponse", "ApplicationCatalogPresetsResponse", "ApplicationCatalogTemplate", "ApplicationCatalogTemplateResponse", "ApplicationCatalogTemplatesResponse", "ApplicationCatalogType", "ApplicationCatalogTypesResponse", "ApplicationCreate", "ApplicationEdit", "ApplicationFlags", "ApplicationFork", "ApplicationQuery", "ApplicationResponse", "ApplicationRevision", "ApplicationRevisionCommit", "ApplicationRevisionCreate", "ApplicationRevisionDataInput", "ApplicationRevisionDataInputHeadersValue", "ApplicationRevisionDataInputRuntime", "ApplicationRevisionDataOutput", "ApplicationRevisionDataOutputHeadersValue", "ApplicationRevisionDataOutputRuntime", "ApplicationRevisionEdit", "ApplicationRevisionFlags", "ApplicationRevisionFork", "ApplicationRevisionQuery", "ApplicationRevisionQueryFlags", "ApplicationRevisionResolveResponse", "ApplicationRevisionResponse", "ApplicationRevisionsLog", "ApplicationRevisionsResponse", "ApplicationVariant", "ApplicationVariantCreate", "ApplicationVariantEdit", "ApplicationVariantFlags", "ApplicationVariantFork", "ApplicationVariantResponse", "ApplicationVariantsResponse", "ApplicationsResponse", "AsyncAgentaApi", "BodyConfigsFetchVariantsConfigsFetchPost", "Bucket", "CollectStatusResponse", "ComparisonOperator", "Condition", "ConditionOperator", "ConditionOptions", "ConditionValue", "ConfigResponseModel", "CreateSimpleTestsetFromFileRequestFileType", "CreateTestsetRevisionFromFileRequestFileType", "CustomModelSettingsDto", "CustomProviderDto", "CustomProviderKind", "CustomProviderSettingsDto", "DictOperator", "DiscoverResponse", "DiscoverResponseMethodsValue", "EditSimpleTestsetFromFileRequestFileType", "EeSrcModelsApiOrganizationModelsOrganization", "EntityRef", "Environment", "EnvironmentCreate", "EnvironmentEdit", "EnvironmentFlags", "EnvironmentQueryFlags", "EnvironmentResponse", "EnvironmentRevision", "EnvironmentRevisionCommit", "EnvironmentRevisionCreate", "EnvironmentRevisionData", "EnvironmentRevisionDelta", "EnvironmentRevisionEdit", "EnvironmentRevisionResolveResponse", "EnvironmentRevisionResponse", "EnvironmentRevisionsLog", "EnvironmentRevisionsResponse", "EnvironmentVariant", "EnvironmentVariantCreate", "EnvironmentVariantEdit", "EnvironmentVariantResponse", "EnvironmentVariantsResponse", "EnvironmentsResponse", "ErrorPolicy", "EvaluationMetrics", "EvaluationMetricsCreate", "EvaluationMetricsEdit", "EvaluationMetricsIdsResponse", "EvaluationMetricsQuery", "EvaluationMetricsQueryScenarioIds", "EvaluationMetricsQueryTimestamps", "EvaluationMetricsRefresh", "EvaluationMetricsResponse", "EvaluationQueue", "EvaluationQueueCreate", "EvaluationQueueData", "EvaluationQueueEdit", "EvaluationQueueFlags", "EvaluationQueueIdResponse", "EvaluationQueueIdsResponse", "EvaluationQueueQuery", "EvaluationQueueQueryFlags", "EvaluationQueueResponse", "EvaluationQueueScenariosQuery", "EvaluationQueuesResponse", "EvaluationResult", "EvaluationResultCreate", "EvaluationResultEdit", "EvaluationResultIdResponse", "EvaluationResultIdsResponse", "EvaluationResultQuery", "EvaluationResultResponse", "EvaluationResultsResponse", "EvaluationRun", "EvaluationRunCreate", "EvaluationRunData", "EvaluationRunDataMapping", "EvaluationRunDataMappingColumn", "EvaluationRunDataMappingStep", "EvaluationRunDataStep", "EvaluationRunDataStepInput", "EvaluationRunDataStepOrigin", "EvaluationRunDataStepType", "EvaluationRunEdit", "EvaluationRunFlags", "EvaluationRunIdResponse", "EvaluationRunIdsRequest", "EvaluationRunIdsResponse", "EvaluationRunQuery", "EvaluationRunQueryFlags", "EvaluationRunResponse", "EvaluationRunsResponse", "EvaluationScenario", "EvaluationScenarioCreate", "EvaluationScenarioEdit", "EvaluationScenarioIdResponse", "EvaluationScenarioIdsResponse", "EvaluationScenarioQuery", "EvaluationScenarioResponse", "EvaluationScenariosResponse", "EvaluationStatus", "Evaluator", "EvaluatorArtifactFlags", "EvaluatorArtifactQueryFlags", "EvaluatorCatalogPreset", "EvaluatorCatalogPresetResponse", "EvaluatorCatalogPresetsResponse", "EvaluatorCatalogTemplate", "EvaluatorCatalogTemplateResponse", "EvaluatorCatalogTemplatesResponse", "EvaluatorCatalogType", "EvaluatorCatalogTypesResponse", "EvaluatorCreate", "EvaluatorEdit", "EvaluatorFlags", "EvaluatorFork", "EvaluatorQuery", "EvaluatorResponse", "EvaluatorRevision", "EvaluatorRevisionCommit", "EvaluatorRevisionCreate", "EvaluatorRevisionDataInput", "EvaluatorRevisionDataInputHeadersValue", "EvaluatorRevisionDataInputRuntime", "EvaluatorRevisionDataOutput", "EvaluatorRevisionDataOutputHeadersValue", "EvaluatorRevisionDataOutputRuntime", "EvaluatorRevisionEdit", "EvaluatorRevisionFlags", "EvaluatorRevisionFork", "EvaluatorRevisionQuery", "EvaluatorRevisionQueryFlags", "EvaluatorRevisionResolveResponse", "EvaluatorRevisionResponse", "EvaluatorRevisionsLog", "EvaluatorRevisionsResponse", "EvaluatorTemplate", "EvaluatorTemplatesResponse", "EvaluatorVariant", "EvaluatorVariantCreate", "EvaluatorVariantEdit", "EvaluatorVariantFlags", "EvaluatorVariantFork", "EvaluatorVariantResponse", "EvaluatorVariantsResponse", "EvaluatorsResponse", "Event", "EventQuery", "EventType", "EventsQueryResponse", "ExistenceOperator", "FetchLegacyAnalyticsRequestNewest", "FetchLegacyAnalyticsRequestOldest", "FetchSimpleTestsetToFileRequestFileType", "FetchTestsetRevisionToFileRequestFileType", "FilteringInput", "FilteringInputConditionsItem", "FilteringOutput", "FilteringOutputConditionsItem", "Focus", "Folder", "FolderCreate", "FolderEdit", "FolderIdResponse", "FolderKind", "FolderQuery", "FolderQueryKinds", "FolderResponse", "FoldersResponse", "Format", "Formatting", typing.Any, typing.Any, "Header", "HttpValidationError", "InviteRequest", "Invocation", "InvocationCreate", "InvocationCreateLinks", "InvocationEdit", "InvocationEditLinks", "InvocationLinkResponse", "InvocationLinks", "InvocationQuery", "InvocationQueryLinks", "InvocationResponse", "InvocationsResponse", "JsonSchemasInput", "JsonSchemasOutput", typing.Any, typing.Any, "LegacyLifecycleDto", "ListApiKeysResponse", "ListOperator", "ListOptions", "LogicalOperator", "MetricSpec", "MetricType", "MetricsBucket", "NumericOperator", "OTelEventInput", "OTelEventInputTimestamp", "OTelEventOutput", "OTelEventOutputTimestamp", "OTelHashInput", "OTelHashOutput", "OTelLinkInput", "OTelLinkOutput", "OTelLinksResponse", "OTelReferenceInput", "OTelReferenceOutput", "OTelSpanKind", "OTelStatusCode", "OTelTracingRequest", "OTelTracingResponse", "OldAnalyticsResponse", "OrganizationDetails", "OrganizationDomainResponse", "OrganizationProviderResponse", "OrganizationUpdate", "OssSrcModelsApiOrganizationModelsOrganization", "Permission", "ProjectsResponse", "QueriesResponse", "Query", "QueryApplicationVariantsRequestOrder", "QueryCreate", "QueryEdit", "QueryEnvironmentRevisionsRequestOrder", "QueryEnvironmentVariantsRequestOrder", "QueryEnvironmentsRequestOrder", "QueryEvaluatorVariantsRequestOrder", "QueryFlags", "QueryQueriesRequestOrder", "QueryQueryFlags", "QueryResponse", "QueryRevision", "QueryRevisionCommit", "QueryRevisionCreate", "QueryRevisionDataInput", "QueryRevisionDataOutput", "QueryRevisionEdit", "QueryRevisionQuery", "QueryRevisionResponse", "QueryRevisionsLog", "QueryRevisionsResponse", "QuerySpansAnalyticsRequestNewest", "QuerySpansAnalyticsRequestOldest", "QueryVariant", "QueryVariantCreate", "QueryVariantEdit", "QueryVariantQuery", "QueryVariantResponse", "QueryVariantsResponse", "QueryWorkflowRevisionsRequestOrder", "QueryWorkflowVariantsRequestOrder", "QueryWorkflowsRequestOrder", "Reference", "ReferenceRequestModelInput", "ReferenceRequestModelOutput", "RequestType", "ResolutionInfo", "RevisionFork", "SecretDto", "SecretDtoData", "SecretKind", "SecretResponseDto", "SecretResponseDtoData", "SessionIdsResponse", "SimpleApplication", "SimpleApplicationCreate", "SimpleApplicationDataInput", "SimpleApplicationDataInputHeadersValue", "SimpleApplicationDataInputRuntime", "SimpleApplicationDataOutput", "SimpleApplicationDataOutputHeadersValue", "SimpleApplicationDataOutputRuntime", "SimpleApplicationEdit", "SimpleApplicationFlags", "SimpleApplicationQuery", "SimpleApplicationQueryFlags", "SimpleApplicationResponse", "SimpleApplicationsResponse", "SimpleEnvironment", "SimpleEnvironmentCreate", "SimpleEnvironmentEdit", "SimpleEnvironmentQuery", "SimpleEnvironmentResponse", "SimpleEnvironmentsResponse", "SimpleEvaluation", "SimpleEvaluationCreate", "SimpleEvaluationData", "SimpleEvaluationDataApplicationSteps", "SimpleEvaluationDataApplicationStepsOneValue", "SimpleEvaluationDataEvaluatorSteps", "SimpleEvaluationDataEvaluatorStepsOneValue", "SimpleEvaluationDataQuerySteps", "SimpleEvaluationDataQueryStepsOneValue", "SimpleEvaluationDataTestsetSteps", "SimpleEvaluationDataTestsetStepsOneValue", "SimpleEvaluationEdit", "SimpleEvaluationIdResponse", "SimpleEvaluationQuery", "SimpleEvaluationResponse", "SimpleEvaluationsResponse", "SimpleEvaluator", "SimpleEvaluatorCreate", "SimpleEvaluatorDataInput", "SimpleEvaluatorDataInputHeadersValue", "SimpleEvaluatorDataInputRuntime", "SimpleEvaluatorDataOutput", "SimpleEvaluatorDataOutputHeadersValue", "SimpleEvaluatorDataOutputRuntime", "SimpleEvaluatorEdit", "SimpleEvaluatorFlags", "SimpleEvaluatorQuery", "SimpleEvaluatorQueryFlags", "SimpleEvaluatorResponse", "SimpleEvaluatorsResponse", "SimpleQueriesResponse", "SimpleQuery", "SimpleQueryCreate", "SimpleQueryEdit", "SimpleQueryQuery", "SimpleQueryResponse", "SimpleQueue", "SimpleQueueCreate", "SimpleQueueData", "SimpleQueueDataEvaluators", "SimpleQueueDataEvaluatorsOneValue", "SimpleQueueIdResponse", "SimpleQueueKind", "SimpleQueueQuery", "SimpleQueueResponse", "SimpleQueueScenariosQuery", "SimpleQueueScenariosResponse", "SimpleQueueSettings", "SimpleQueuesResponse", "SimpleTestset", "SimpleTestsetCreate", "SimpleTestsetEdit", "SimpleTestsetQuery", "SimpleTestsetResponse", "SimpleTestsetsResponse", "SimpleTrace", "SimpleTraceChannel", "SimpleTraceCreate", "SimpleTraceCreateLinks", "SimpleTraceEdit", "SimpleTraceEditLinks", "SimpleTraceKind", "SimpleTraceLinkResponse", "SimpleTraceLinks", "SimpleTraceOrigin", "SimpleTraceQuery", "SimpleTraceQueryLinks", "SimpleTraceReferences", "SimpleTraceResponse", "SimpleTracesResponse", "SimpleWorkflow", "SimpleWorkflowCreate", "SimpleWorkflowDataInput", "SimpleWorkflowDataInputHeadersValue", "SimpleWorkflowDataInputRuntime", "SimpleWorkflowDataOutput", "SimpleWorkflowDataOutputHeadersValue", "SimpleWorkflowDataOutputRuntime", "SimpleWorkflowEdit", "SimpleWorkflowFlags", "SimpleWorkflowQuery", "SimpleWorkflowQueryFlags", "SimpleWorkflowResponse", "SimpleWorkflowsResponse", "SpanInput", "SpanInputEndTime", "SpanInputStartTime", "SpanOutput", "SpanOutputEndTime", "SpanOutputStartTime", "SpanResponse", "SpanType", "SpansNodeInput", "SpansNodeInputEndTime", "SpansNodeInputSpansValue", "SpansNodeInputStartTime", "SpansNodeOutput", "SpansNodeOutputEndTime", "SpansNodeOutputSpansValue", "SpansNodeOutputStartTime", "SpansResponse", "SpansTreeInput", "SpansTreeInputSpansValue", "SpansTreeOutput", "SpansTreeOutputSpansValue", "SsoProviderDto", "SsoProviderInfo", "SsoProviderSettingsDto", "SsoProviders", "StandardProviderDto", "StandardProviderKind", "StandardProviderSettingsDto", "Status", "StringOperator", "TestcaseInput", "TestcaseOutput", "TestcaseResponse", "TestcasesResponse", "Testset", "TestsetCreate", "TestsetEdit", "TestsetFlags", "TestsetQuery", "TestsetResponse", "TestsetRevision", "TestsetRevisionCommit", "TestsetRevisionCreate", "TestsetRevisionDataInput", "TestsetRevisionDataOutput", "TestsetRevisionDelta", "TestsetRevisionDeltaColumns", "TestsetRevisionDeltaRows", "TestsetRevisionEdit", "TestsetRevisionQuery", "TestsetRevisionResponse", "TestsetRevisionsLog", "TestsetRevisionsResponse", "TestsetVariant", "TestsetVariantCreate", "TestsetVariantEdit", "TestsetVariantQuery", "TestsetVariantResponse", "TestsetVariantsResponse", "TestsetsResponse", "TextOptions", "ToolAuthScheme", "ToolCallData", "ToolCallFunction", "ToolCallResponse", "ToolCatalogAction", "ToolCatalogActionDetails", "ToolCatalogActionResponse", "ToolCatalogActionResponseAction", "ToolCatalogActionsResponse", "ToolCatalogActionsResponseActionsItem", "ToolCatalogIntegration", "ToolCatalogIntegrationDetails", "ToolCatalogIntegrationResponse", "ToolCatalogIntegrationResponseIntegration", "ToolCatalogIntegrationsResponse", "ToolCatalogIntegrationsResponseIntegrationsItem", "ToolCatalogProvider", "ToolCatalogProviderDetails", "ToolCatalogProviderResponse", "ToolCatalogProviderResponseProvider", "ToolCatalogProvidersResponse", "ToolCatalogProvidersResponseProvidersItem", "ToolConnection", "ToolConnectionCreate", "ToolConnectionCreateData", "ToolConnectionResponse", "ToolConnectionStatus", "ToolConnectionsResponse", "ToolProviderKind", "ToolResult", "ToolResultData", "TraceIdResponse", "TraceIdsResponse", "TraceInput", "TraceInputSpansValue", "TraceOutput", "TraceOutputSpansValue", "TraceRequest", "TraceResponse", "TraceType", "TracesRequest", "TracesResponse", "TracingQuery", "UnprocessableEntityError", "UserIdsResponse", "ValidationError", "ValidationErrorLocItem", "VariantFork", "WebhookDeliveriesResponse", "WebhookDelivery", "WebhookDeliveryCreate", "WebhookDeliveryData", "WebhookDeliveryQuery", "WebhookDeliveryResponse", "WebhookDeliveryResponseInfo", "WebhookEventType", "WebhookProviderDto", "WebhookProviderSettingsDto", "WebhookSubscription", "WebhookSubscriptionCreate", "WebhookSubscriptionData", "WebhookSubscriptionDataAuthMode", "WebhookSubscriptionEdit", "WebhookSubscriptionQuery", "WebhookSubscriptionResponse", "WebhookSubscriptionTestRequestSubscription", "WebhookSubscriptionsResponse", "Windowing", "WindowingOrder", "Workflow", "WorkflowArtifactFlags", "WorkflowCatalogFlags", "WorkflowCatalogPreset", "WorkflowCatalogPresetResponse", "WorkflowCatalogPresetsResponse", "WorkflowCatalogTemplate", "WorkflowCatalogTemplateResponse", "WorkflowCatalogTemplatesResponse", "WorkflowCatalogType", "WorkflowCatalogTypeResponse", "WorkflowCatalogTypesResponse", "WorkflowCreate", "WorkflowEdit", "WorkflowFlags", "WorkflowFork", "WorkflowResponse", "WorkflowRevisionCommit", "WorkflowRevisionCreate", "WorkflowRevisionDataInput", "WorkflowRevisionDataInputHeadersValue", "WorkflowRevisionDataInputRuntime", "WorkflowRevisionDataOutput", "WorkflowRevisionDataOutputHeadersValue", "WorkflowRevisionDataOutputRuntime", "WorkflowRevisionEdit", "WorkflowRevisionFlags", "WorkflowRevisionFork", "WorkflowRevisionInput", "WorkflowRevisionOutput", "WorkflowRevisionResolveResponse", "WorkflowRevisionResponse", "WorkflowRevisionsLog", "WorkflowRevisionsResponse", "WorkflowVariant", "WorkflowVariantCreate", "WorkflowVariantEdit", "WorkflowVariantFlags", "WorkflowVariantFork", "WorkflowVariantResponse", "WorkflowVariantsResponse", "WorkflowsResponse", "Workspace", "WorkspaceMemberResponse", "WorkspacePermission", "WorkspaceResponse", "access", "annotations", "applications", "billing", "environments", "evaluations", "evaluators", "events", "folders", "invocations", "keys", "legacy", "organizations", "projects", "queries", "secrets", "status", "testcases", "testsets", "tools", "traces", "users", "webhooks", "workflows", "workspaces"] +__all__ = ["AdminAccountCreateOptions", "AdminAccountRead", "AdminAccountsCreate", "AdminAccountsDelete", "AdminAccountsDeleteTarget", "AdminAccountsResponse", "AdminApiKeyCreate", "AdminApiKeyResponse", "AdminDeleteResponse", "AdminDeletedEntities", "AdminDeletedEntity", "AdminOrganizationCreate", "AdminOrganizationMembershipCreate", "AdminOrganizationMembershipRead", "AdminOrganizationRead", "AdminProjectCreate", "AdminProjectMembershipCreate", "AdminProjectMembershipRead", "AdminProjectRead", "AdminSimpleAccountCreate", "AdminSimpleAccountDeleteEntry", "AdminSimpleAccountRead", "AdminSimpleAccountsApiKeysCreate", "AdminSimpleAccountsCreate", "AdminSimpleAccountsDelete", "AdminSimpleAccountsOrganizationsCreate", "AdminSimpleAccountsOrganizationsMembershipsCreate", "AdminSimpleAccountsOrganizationsTransferOwnership", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse", "AdminSimpleAccountsProjectsCreate", "AdminSimpleAccountsProjectsMembershipsCreate", "AdminSimpleAccountsResponse", "AdminSimpleAccountsUsersCreate", "AdminSimpleAccountsUsersIdentitiesCreate", "AdminSimpleAccountsUsersResetPassword", "AdminSimpleAccountsWorkspacesCreate", "AdminSimpleAccountsWorkspacesMembershipsCreate", "AdminStructuredError", "AdminSubscriptionCreate", "AdminSubscriptionRead", "AdminUserCreate", "AdminUserIdentityCreate", "AdminUserIdentityRead", "AdminUserIdentityReadStatus", "AdminUserRead", "AdminWorkspaceCreate", "AdminWorkspaceMembershipCreate", "AdminWorkspaceMembershipRead", "AdminWorkspaceRead", "AgentaApi", "AgentaApiEnvironment", "Analytics", "AnalyticsResponse", "Annotation", "AnnotationCreate", "AnnotationCreateLinks", "AnnotationEdit", "AnnotationEditLinks", "AnnotationLinkResponse", "AnnotationLinks", "AnnotationQuery", "AnnotationQueryLinks", "AnnotationResponse", "AnnotationsResponse", "Application", "ApplicationArtifactFlags", "ApplicationArtifactQueryFlags", "ApplicationCatalogPreset", "ApplicationCatalogPresetResponse", "ApplicationCatalogPresetsResponse", "ApplicationCatalogTemplate", "ApplicationCatalogTemplateResponse", "ApplicationCatalogTemplatesResponse", "ApplicationCatalogType", "ApplicationCatalogTypesResponse", "ApplicationCreate", "ApplicationEdit", "ApplicationFlags", "ApplicationFork", "ApplicationQuery", "ApplicationResponse", "ApplicationRevision", "ApplicationRevisionCommit", "ApplicationRevisionCreate", "ApplicationRevisionDataInput", "ApplicationRevisionDataInputHeadersValue", "ApplicationRevisionDataInputRuntime", "ApplicationRevisionDataOutput", "ApplicationRevisionDataOutputHeadersValue", "ApplicationRevisionDataOutputRuntime", "ApplicationRevisionEdit", "ApplicationRevisionFlags", "ApplicationRevisionFork", "ApplicationRevisionQuery", "ApplicationRevisionQueryFlags", "ApplicationRevisionResolveResponse", "ApplicationRevisionResponse", "ApplicationRevisionsLog", "ApplicationRevisionsResponse", "ApplicationVariant", "ApplicationVariantCreate", "ApplicationVariantEdit", "ApplicationVariantFlags", "ApplicationVariantFork", "ApplicationVariantResponse", "ApplicationVariantsResponse", "ApplicationsResponse", "AsyncAgentaApi", "BodyConfigsFetchVariantsConfigsFetchPost", "Bucket", "CollectStatusResponse", "ComparisonOperator", "Condition", "ConditionOperator", "ConditionOptions", "ConditionValue", "ConfigResponseModel", "CreateSimpleTestsetFromFileRequestFileType", "CreateTestsetRevisionFromFileRequestFileType", "CustomModelSettingsDto", "CustomProviderDto", "CustomProviderKind", "CustomProviderSettingsDto", "DictOperator", "DiscoverResponse", "DiscoverResponseMethodsValue", "EditSimpleTestsetFromFileRequestFileType", "EeSrcModelsApiOrganizationModelsOrganization", "EntityRef", "Environment", "EnvironmentCreate", "EnvironmentEdit", "EnvironmentFlags", "EnvironmentQueryFlags", "EnvironmentResponse", "EnvironmentRevision", "EnvironmentRevisionCommit", "EnvironmentRevisionCreate", "EnvironmentRevisionData", "EnvironmentRevisionDelta", "EnvironmentRevisionEdit", "EnvironmentRevisionResolveResponse", "EnvironmentRevisionResponse", "EnvironmentRevisionsLog", "EnvironmentRevisionsResponse", "EnvironmentVariant", "EnvironmentVariantCreate", "EnvironmentVariantEdit", "EnvironmentVariantResponse", "EnvironmentVariantsResponse", "EnvironmentsResponse", "ErrorPolicy", "EvaluationMetrics", "EvaluationMetricsCreate", "EvaluationMetricsEdit", "EvaluationMetricsIdsResponse", "EvaluationMetricsQuery", "EvaluationMetricsQueryScenarioIds", "EvaluationMetricsQueryTimestamps", "EvaluationMetricsRefresh", "EvaluationMetricsResponse", "EvaluationQueue", "EvaluationQueueCreate", "EvaluationQueueData", "EvaluationQueueEdit", "EvaluationQueueFlags", "EvaluationQueueIdResponse", "EvaluationQueueIdsResponse", "EvaluationQueueQuery", "EvaluationQueueQueryFlags", "EvaluationQueueResponse", "EvaluationQueueScenariosQuery", "EvaluationQueuesResponse", "EvaluationResult", "EvaluationResultCreate", "EvaluationResultEdit", "EvaluationResultIdResponse", "EvaluationResultIdsResponse", "EvaluationResultQuery", "EvaluationResultResponse", "EvaluationResultsResponse", "EvaluationRun", "EvaluationRunCreate", "EvaluationRunData", "EvaluationRunDataConcurrency", "EvaluationRunDataMapping", "EvaluationRunDataMappingColumn", "EvaluationRunDataMappingStep", "EvaluationRunDataStep", "EvaluationRunDataStepInput", "EvaluationRunDataStepOrigin", "EvaluationRunDataStepType", "EvaluationRunEdit", "EvaluationRunFlags", "EvaluationRunIdResponse", "EvaluationRunIdsRequest", "EvaluationRunIdsResponse", "EvaluationRunQuery", "EvaluationRunQueryFlags", "EvaluationRunResponse", "EvaluationRunsResponse", "EvaluationScenario", "EvaluationScenarioCreate", "EvaluationScenarioEdit", "EvaluationScenarioIdResponse", "EvaluationScenarioIdsResponse", "EvaluationScenarioQuery", "EvaluationScenarioResponse", "EvaluationScenariosResponse", "EvaluationStatus", "Evaluator", "EvaluatorArtifactFlags", "EvaluatorArtifactQueryFlags", "EvaluatorCatalogPreset", "EvaluatorCatalogPresetResponse", "EvaluatorCatalogPresetsResponse", "EvaluatorCatalogTemplate", "EvaluatorCatalogTemplateResponse", "EvaluatorCatalogTemplatesResponse", "EvaluatorCatalogType", "EvaluatorCatalogTypesResponse", "EvaluatorCreate", "EvaluatorEdit", "EvaluatorFlags", "EvaluatorFork", "EvaluatorQuery", "EvaluatorResponse", "EvaluatorRevision", "EvaluatorRevisionCommit", "EvaluatorRevisionCreate", "EvaluatorRevisionDataInput", "EvaluatorRevisionDataInputHeadersValue", "EvaluatorRevisionDataInputRuntime", "EvaluatorRevisionDataOutput", "EvaluatorRevisionDataOutputHeadersValue", "EvaluatorRevisionDataOutputRuntime", "EvaluatorRevisionEdit", "EvaluatorRevisionFlags", "EvaluatorRevisionFork", "EvaluatorRevisionQuery", "EvaluatorRevisionQueryFlags", "EvaluatorRevisionResolveResponse", "EvaluatorRevisionResponse", "EvaluatorRevisionsLog", "EvaluatorRevisionsResponse", "EvaluatorTemplate", "EvaluatorTemplatesResponse", "EvaluatorVariant", "EvaluatorVariantCreate", "EvaluatorVariantEdit", "EvaluatorVariantFlags", "EvaluatorVariantFork", "EvaluatorVariantResponse", "EvaluatorVariantsResponse", "EvaluatorsResponse", "Event", "EventQuery", "EventType", "EventsQueryResponse", "ExistenceOperator", "FetchLegacyAnalyticsRequestNewest", "FetchLegacyAnalyticsRequestOldest", "FetchSimpleTestsetToFileRequestFileType", "FetchTestsetRevisionToFileRequestFileType", "FilteringInput", "FilteringInputConditionsItem", "FilteringOutput", "FilteringOutputConditionsItem", "Focus", "Folder", "FolderCreate", "FolderEdit", "FolderIdResponse", "FolderKind", "FolderQuery", "FolderQueryKinds", "FolderResponse", "FoldersResponse", "Format", "Formatting", typing.Any, typing.Any, "Header", "HttpValidationError", "InviteRequest", "Invocation", "InvocationCreate", "InvocationCreateLinks", "InvocationEdit", "InvocationEditLinks", "InvocationLinkResponse", "InvocationLinks", "InvocationQuery", "InvocationQueryLinks", "InvocationResponse", "InvocationsResponse", "JsonSchemasInput", "JsonSchemasOutput", typing.Any, typing.Any, "LegacyLifecycleDto", "ListApiKeysResponse", "ListOperator", "ListOptions", "LogicalOperator", "MetricSpec", "MetricType", "MetricsBucket", "NumericOperator", "OTelEventInput", "OTelEventInputTimestamp", "OTelEventOutput", "OTelEventOutputTimestamp", "OTelHashInput", "OTelHashOutput", "OTelLinkInput", "OTelLinkOutput", "OTelLinksResponse", "OTelReferenceInput", "OTelReferenceOutput", "OTelSpanKind", "OTelStatusCode", "OTelTracingRequest", "OTelTracingResponse", "OldAnalyticsResponse", "OrganizationDetails", "OrganizationDomainResponse", "OrganizationProviderResponse", "OrganizationUpdate", "OssSrcModelsApiOrganizationModelsOrganization", "Permission", "ProjectsResponse", "QueriesResponse", "Query", "QueryApplicationVariantsRequestOrder", "QueryCreate", "QueryEdit", "QueryEnvironmentRevisionsRequestOrder", "QueryEnvironmentVariantsRequestOrder", "QueryEnvironmentsRequestOrder", "QueryEvaluatorVariantsRequestOrder", "QueryFlags", "QueryQueriesRequestOrder", "QueryQueryFlags", "QueryResponse", "QueryRevision", "QueryRevisionCommit", "QueryRevisionCreate", "QueryRevisionDataInput", "QueryRevisionDataOutput", "QueryRevisionEdit", "QueryRevisionQuery", "QueryRevisionResponse", "QueryRevisionsLog", "QueryRevisionsResponse", "QuerySpansAnalyticsRequestNewest", "QuerySpansAnalyticsRequestOldest", "QueryVariant", "QueryVariantCreate", "QueryVariantEdit", "QueryVariantQuery", "QueryVariantResponse", "QueryVariantsResponse", "QueryWorkflowRevisionsRequestOrder", "QueryWorkflowVariantsRequestOrder", "QueryWorkflowsRequestOrder", "Reference", "ReferenceRequestModelInput", "ReferenceRequestModelOutput", "RequestType", "ResolutionInfo", "RevisionFork", "SecretDto", "SecretDtoData", "SecretKind", "SecretResponseDto", "SecretResponseDtoData", "SessionIdsResponse", "SimpleApplication", "SimpleApplicationCreate", "SimpleApplicationDataInput", "SimpleApplicationDataInputHeadersValue", "SimpleApplicationDataInputRuntime", "SimpleApplicationDataOutput", "SimpleApplicationDataOutputHeadersValue", "SimpleApplicationDataOutputRuntime", "SimpleApplicationEdit", "SimpleApplicationFlags", "SimpleApplicationQuery", "SimpleApplicationQueryFlags", "SimpleApplicationResponse", "SimpleApplicationsResponse", "SimpleEnvironment", "SimpleEnvironmentCreate", "SimpleEnvironmentEdit", "SimpleEnvironmentQuery", "SimpleEnvironmentResponse", "SimpleEnvironmentsResponse", "SimpleEvaluation", "SimpleEvaluationCreate", "SimpleEvaluationData", "SimpleEvaluationDataApplicationSteps", "SimpleEvaluationDataApplicationStepsOneValue", "SimpleEvaluationDataEvaluatorSteps", "SimpleEvaluationDataEvaluatorStepsOneValue", "SimpleEvaluationDataQuerySteps", "SimpleEvaluationDataQueryStepsOneValue", "SimpleEvaluationDataTestsetSteps", "SimpleEvaluationDataTestsetStepsOneValue", "SimpleEvaluationEdit", "SimpleEvaluationIdResponse", "SimpleEvaluationQuery", "SimpleEvaluationResponse", "SimpleEvaluationsResponse", "SimpleEvaluator", "SimpleEvaluatorCreate", "SimpleEvaluatorDataInput", "SimpleEvaluatorDataInputHeadersValue", "SimpleEvaluatorDataInputRuntime", "SimpleEvaluatorDataOutput", "SimpleEvaluatorDataOutputHeadersValue", "SimpleEvaluatorDataOutputRuntime", "SimpleEvaluatorEdit", "SimpleEvaluatorFlags", "SimpleEvaluatorQuery", "SimpleEvaluatorQueryFlags", "SimpleEvaluatorResponse", "SimpleEvaluatorsResponse", "SimpleQueriesResponse", "SimpleQuery", "SimpleQueryCreate", "SimpleQueryEdit", "SimpleQueryQuery", "SimpleQueryResponse", "SimpleQueue", "SimpleQueueCreate", "SimpleQueueData", "SimpleQueueDataEvaluators", "SimpleQueueDataEvaluatorsOneValue", "SimpleQueueIdResponse", "SimpleQueueKind", "SimpleQueueQuery", "SimpleQueueResponse", "SimpleQueueScenariosQuery", "SimpleQueueScenariosResponse", "SimpleQueueSettings", "SimpleQueuesResponse", "SimpleTestset", "SimpleTestsetCreate", "SimpleTestsetEdit", "SimpleTestsetQuery", "SimpleTestsetResponse", "SimpleTestsetsResponse", "SimpleTrace", "SimpleTraceChannel", "SimpleTraceCreate", "SimpleTraceCreateLinks", "SimpleTraceEdit", "SimpleTraceEditLinks", "SimpleTraceKind", "SimpleTraceLinkResponse", "SimpleTraceLinks", "SimpleTraceOrigin", "SimpleTraceQuery", "SimpleTraceQueryLinks", "SimpleTraceReferences", "SimpleTraceResponse", "SimpleTracesResponse", "SimpleWorkflow", "SimpleWorkflowCreate", "SimpleWorkflowDataInput", "SimpleWorkflowDataInputHeadersValue", "SimpleWorkflowDataInputRuntime", "SimpleWorkflowDataOutput", "SimpleWorkflowDataOutputHeadersValue", "SimpleWorkflowDataOutputRuntime", "SimpleWorkflowEdit", "SimpleWorkflowFlags", "SimpleWorkflowQuery", "SimpleWorkflowQueryFlags", "SimpleWorkflowResponse", "SimpleWorkflowsResponse", "SpanInput", "SpanInputEndTime", "SpanInputStartTime", "SpanOutput", "SpanOutputEndTime", "SpanOutputStartTime", "SpanResponse", "SpanType", "SpansNodeInput", "SpansNodeInputEndTime", "SpansNodeInputSpansValue", "SpansNodeInputStartTime", "SpansNodeOutput", "SpansNodeOutputEndTime", "SpansNodeOutputSpansValue", "SpansNodeOutputStartTime", "SpansResponse", "SpansTreeInput", "SpansTreeInputSpansValue", "SpansTreeOutput", "SpansTreeOutputSpansValue", "SsoProviderDto", "SsoProviderInfo", "SsoProviderSettingsDto", "SsoProviders", "StandardProviderDto", "StandardProviderKind", "StandardProviderSettingsDto", "Status", "StringOperator", "TestcaseInput", "TestcaseOutput", "TestcaseResponse", "TestcasesResponse", "Testset", "TestsetCreate", "TestsetEdit", "TestsetFlags", "TestsetQuery", "TestsetResponse", "TestsetRevision", "TestsetRevisionCommit", "TestsetRevisionCreate", "TestsetRevisionDataInput", "TestsetRevisionDataOutput", "TestsetRevisionDelta", "TestsetRevisionDeltaColumns", "TestsetRevisionDeltaRows", "TestsetRevisionEdit", "TestsetRevisionQuery", "TestsetRevisionResponse", "TestsetRevisionsLog", "TestsetRevisionsResponse", "TestsetVariant", "TestsetVariantCreate", "TestsetVariantEdit", "TestsetVariantQuery", "TestsetVariantResponse", "TestsetVariantsResponse", "TestsetsResponse", "TextOptions", "ToolAuthScheme", "ToolCallData", "ToolCallFunction", "ToolCallResponse", "ToolCatalogAction", "ToolCatalogActionDetails", "ToolCatalogActionResponse", "ToolCatalogActionResponseAction", "ToolCatalogActionsResponse", "ToolCatalogActionsResponseActionsItem", "ToolCatalogIntegration", "ToolCatalogIntegrationDetails", "ToolCatalogIntegrationResponse", "ToolCatalogIntegrationResponseIntegration", "ToolCatalogIntegrationsResponse", "ToolCatalogIntegrationsResponseIntegrationsItem", "ToolCatalogProvider", "ToolCatalogProviderDetails", "ToolCatalogProviderResponse", "ToolCatalogProviderResponseProvider", "ToolCatalogProvidersResponse", "ToolCatalogProvidersResponseProvidersItem", "ToolConnection", "ToolConnectionCreate", "ToolConnectionCreateData", "ToolConnectionResponse", "ToolConnectionStatus", "ToolConnectionsResponse", "ToolProviderKind", "ToolResult", "ToolResultData", "TraceIdResponse", "TraceIdsResponse", "TraceInput", "TraceInputSpansValue", "TraceOutput", "TraceOutputSpansValue", "TraceRequest", "TraceResponse", "TraceType", "TracesRequest", "TracesResponse", "TracingQuery", "UnprocessableEntityError", "UserIdsResponse", "ValidationError", "ValidationErrorLocItem", "VariantFork", "WebhookDeliveriesResponse", "WebhookDelivery", "WebhookDeliveryCreate", "WebhookDeliveryData", "WebhookDeliveryQuery", "WebhookDeliveryResponse", "WebhookDeliveryResponseInfo", "WebhookEventType", "WebhookProviderDto", "WebhookProviderSettingsDto", "WebhookSubscription", "WebhookSubscriptionCreate", "WebhookSubscriptionData", "WebhookSubscriptionDataAuthMode", "WebhookSubscriptionEdit", "WebhookSubscriptionQuery", "WebhookSubscriptionResponse", "WebhookSubscriptionTestRequestSubscription", "WebhookSubscriptionsResponse", "Windowing", "WindowingOrder", "Workflow", "WorkflowArtifactFlags", "WorkflowCatalogFlags", "WorkflowCatalogPreset", "WorkflowCatalogPresetResponse", "WorkflowCatalogPresetsResponse", "WorkflowCatalogTemplate", "WorkflowCatalogTemplateResponse", "WorkflowCatalogTemplatesResponse", "WorkflowCatalogType", "WorkflowCatalogTypeResponse", "WorkflowCatalogTypesResponse", "WorkflowCreate", "WorkflowEdit", "WorkflowFlags", "WorkflowFork", "WorkflowResponse", "WorkflowRevisionCommit", "WorkflowRevisionCreate", "WorkflowRevisionDataInput", "WorkflowRevisionDataInputHeadersValue", "WorkflowRevisionDataInputRuntime", "WorkflowRevisionDataOutput", "WorkflowRevisionDataOutputHeadersValue", "WorkflowRevisionDataOutputRuntime", "WorkflowRevisionEdit", "WorkflowRevisionFlags", "WorkflowRevisionFork", "WorkflowRevisionInput", "WorkflowRevisionOutput", "WorkflowRevisionResolveResponse", "WorkflowRevisionResponse", "WorkflowRevisionsLog", "WorkflowRevisionsResponse", "WorkflowVariant", "WorkflowVariantCreate", "WorkflowVariantEdit", "WorkflowVariantFlags", "WorkflowVariantFork", "WorkflowVariantResponse", "WorkflowVariantsResponse", "WorkflowsResponse", "Workspace", "WorkspaceMemberResponse", "WorkspacePermission", "WorkspaceResponse", "access", "annotations", "applications", "billing", "environments", "evaluations", "evaluators", "events", "folders", "invocations", "keys", "legacy", "organizations", "projects", "queries", "secrets", "status", "testcases", "testsets", "tools", "traces", "users", "webhooks", "workflows", "workspaces"] diff --git a/clients/python/agenta_client/access/client.py b/clients/python/agenta_client/access/client.py index fbf72584bc..57edb177e9 100644 --- a/clients/python/agenta_client/access/client.py +++ b/clients/python/agenta_client/access/client.py @@ -63,7 +63,7 @@ def fetch_access_roles(self, *, request_options: typing.Optional[RequestOptions] verbatim from access-controls, including the `"*"` wildcard for `owner` — callers that need to render the full permission list should expand the wildcard themselves (see - `ee.src.services.converters._expand_permissions`). + `ee.src.services.db_manager_ee._expand_permissions`). Parameters ---------- @@ -229,7 +229,7 @@ def sso_callback_redirect(self, organization_slug: str, provider_slug: str, *, r _response = self._raw_client.sso_callback_redirect(organization_slug, provider_slug, request_options=request_options) return _response.data - def verify_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> typing.Any: + def check_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> typing.Any: """ Parameters ---------- @@ -258,9 +258,9 @@ def verify_permissions(self, *, action: typing.Optional[str] = None, scope_type: client = AgentaApi( api_key="YOUR_API_KEY", ) - client.access.verify_permissions() + client.access.check_permissions() """ - _response = self._raw_client.verify_permissions(action=action, scope_type=scope_type, scope_id=scope_id, resource_type=resource_type, resource_id=resource_id, request_options=request_options) + _response = self._raw_client.check_permissions(action=action, scope_type=scope_type, scope_id=scope_id, resource_type=resource_type, resource_id=resource_id, request_options=request_options) return _response.data class AsyncAccessClient: def __init__(self, *, client_wrapper: AsyncClientWrapper): @@ -324,7 +324,7 @@ async def fetch_access_roles(self, *, request_options: typing.Optional[RequestOp verbatim from access-controls, including the `"*"` wildcard for `owner` — callers that need to render the full permission list should expand the wildcard themselves (see - `ee.src.services.converters._expand_permissions`). + `ee.src.services.db_manager_ee._expand_permissions`). Parameters ---------- @@ -530,7 +530,7 @@ async def main() -> None: _response = await self._raw_client.sso_callback_redirect(organization_slug, provider_slug, request_options=request_options) return _response.data - async def verify_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> typing.Any: + async def check_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> typing.Any: """ Parameters ---------- @@ -564,10 +564,10 @@ async def verify_permissions(self, *, action: typing.Optional[str] = None, scope async def main() -> None: - await client.access.verify_permissions() + await client.access.check_permissions() asyncio.run(main()) """ - _response = await self._raw_client.verify_permissions(action=action, scope_type=scope_type, scope_id=scope_id, resource_type=resource_type, resource_id=resource_id, request_options=request_options) + _response = await self._raw_client.check_permissions(action=action, scope_type=scope_type, scope_id=scope_id, resource_type=resource_type, resource_id=resource_id, request_options=request_options) return _response.data diff --git a/clients/python/agenta_client/access/raw_client.py b/clients/python/agenta_client/access/raw_client.py index 8a2a1e32d3..deb8f88f23 100644 --- a/clients/python/agenta_client/access/raw_client.py +++ b/clients/python/agenta_client/access/raw_client.py @@ -64,7 +64,7 @@ def fetch_access_roles(self, *, request_options: typing.Optional[RequestOptions] verbatim from access-controls, including the `"*"` wildcard for `owner` — callers that need to render the full permission list should expand the wildcard themselves (see - `ee.src.services.converters._expand_permissions`). + `ee.src.services.db_manager_ee._expand_permissions`). Parameters ---------- @@ -305,7 +305,7 @@ def sso_callback_redirect(self, organization_slug: str, provider_slug: str, *, r raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - def verify_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[typing.Any]: + def check_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[typing.Any]: """ Parameters ---------- @@ -328,7 +328,7 @@ def verify_permissions(self, *, action: typing.Optional[str] = None, scope_type: Successful Response """ _response = self._client_wrapper.httpx_client.request( - "permissions/verify",method="GET", + "access/permissions/check",method="GET", params={"action": action, "scope_type": scope_type, "scope_id": scope_id, "resource_type": resource_type, "resource_id": resource_id, } , request_options=request_options,) @@ -405,7 +405,7 @@ async def fetch_access_roles(self, *, request_options: typing.Optional[RequestOp verbatim from access-controls, including the `"*"` wildcard for `owner` — callers that need to render the full permission list should expand the wildcard themselves (see - `ee.src.services.converters._expand_permissions`). + `ee.src.services.db_manager_ee._expand_permissions`). Parameters ---------- @@ -646,7 +646,7 @@ async def sso_callback_redirect(self, organization_slug: str, provider_slug: str raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) - async def verify_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[typing.Any]: + async def check_permissions(self, *, action: typing.Optional[str] = None, scope_type: typing.Optional[str] = None, scope_id: typing.Optional[str] = None, resource_type: typing.Optional[str] = None, resource_id: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[typing.Any]: """ Parameters ---------- @@ -669,7 +669,7 @@ async def verify_permissions(self, *, action: typing.Optional[str] = None, scope Successful Response """ _response = await self._client_wrapper.httpx_client.request( - "permissions/verify",method="GET", + "access/permissions/check",method="GET", params={"action": action, "scope_type": scope_type, "scope_id": scope_id, "resource_type": resource_type, "resource_id": resource_id, } , request_options=request_options,) diff --git a/clients/python/agenta_client/evaluations/client.py b/clients/python/agenta_client/evaluations/client.py index 5c5e1be270..fad60e3759 100644 --- a/clients/python/agenta_client/evaluations/client.py +++ b/clients/python/agenta_client/evaluations/client.py @@ -417,6 +417,34 @@ def open_run(self, run_id: str, *, request_options: typing.Optional[RequestOptio _response = self._raw_client.open_run(run_id, request_options=request_options) return _response.data + def fetch_default_queue(self, run_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EvaluationQueueResponse: + """ + Parameters + ---------- + run_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + EvaluationQueueResponse + Successful Response + + Examples + -------- + from agenta import AgentaApi + + client = AgentaApi( + api_key="YOUR_API_KEY", + ) + client.evaluations.fetch_default_queue( + run_id="run_id", + ) + """ + _response = self._raw_client.fetch_default_queue(run_id, request_options=request_options) + return _response.data + def create_scenarios(self, *, scenarios: typing.Sequence[EvaluationScenarioCreate], request_options: typing.Optional[RequestOptions] = None) -> EvaluationScenariosResponse: """ Parameters @@ -1172,6 +1200,62 @@ def edit_queue(self, queue_id: str, *, queue: EvaluationQueueEdit, request_optio _response = self._raw_client.edit_queue(queue_id, queue=queue, request_options=request_options) return _response.data + def archive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EvaluationQueueResponse: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + EvaluationQueueResponse + Successful Response + + Examples + -------- + from agenta import AgentaApi + + client = AgentaApi( + api_key="YOUR_API_KEY", + ) + client.evaluations.archive_queue( + queue_id="queue_id", + ) + """ + _response = self._raw_client.archive_queue(queue_id, request_options=request_options) + return _response.data + + def unarchive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EvaluationQueueResponse: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + EvaluationQueueResponse + Successful Response + + Examples + -------- + from agenta import AgentaApi + + client = AgentaApi( + api_key="YOUR_API_KEY", + ) + client.evaluations.unarchive_queue( + queue_id="queue_id", + ) + """ + _response = self._raw_client.unarchive_queue(queue_id, request_options=request_options) + return _response.data + def query_evaluation_queue_scenarios(self, queue_id: str, *, queue: typing.Optional[EvaluationQueueScenariosQuery] = OMIT, scenario: typing.Optional[EvaluationScenarioQuery] = OMIT, windowing: typing.Optional[Windowing] = OMIT, request_options: typing.Optional[RequestOptions] = None) -> EvaluationScenariosResponse: """ Parameters @@ -2095,6 +2179,42 @@ async def main() -> None: _response = await self._raw_client.open_run(run_id, request_options=request_options) return _response.data + async def fetch_default_queue(self, run_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EvaluationQueueResponse: + """ + Parameters + ---------- + run_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + EvaluationQueueResponse + Successful Response + + Examples + -------- + import asyncio + + from agenta import AsyncAgentaApi + + client = AsyncAgentaApi( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.evaluations.fetch_default_queue( + run_id="run_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.fetch_default_queue(run_id, request_options=request_options) + return _response.data + async def create_scenarios(self, *, scenarios: typing.Sequence[EvaluationScenarioCreate], request_options: typing.Optional[RequestOptions] = None) -> EvaluationScenariosResponse: """ Parameters @@ -3058,6 +3178,78 @@ async def main() -> None: _response = await self._raw_client.edit_queue(queue_id, queue=queue, request_options=request_options) return _response.data + async def archive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EvaluationQueueResponse: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + EvaluationQueueResponse + Successful Response + + Examples + -------- + import asyncio + + from agenta import AsyncAgentaApi + + client = AsyncAgentaApi( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.evaluations.archive_queue( + queue_id="queue_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.archive_queue(queue_id, request_options=request_options) + return _response.data + + async def unarchive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> EvaluationQueueResponse: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + EvaluationQueueResponse + Successful Response + + Examples + -------- + import asyncio + + from agenta import AsyncAgentaApi + + client = AsyncAgentaApi( + api_key="YOUR_API_KEY", + ) + + + async def main() -> None: + await client.evaluations.unarchive_queue( + queue_id="queue_id", + ) + + + asyncio.run(main()) + """ + _response = await self._raw_client.unarchive_queue(queue_id, request_options=request_options) + return _response.data + async def query_evaluation_queue_scenarios(self, queue_id: str, *, queue: typing.Optional[EvaluationQueueScenariosQuery] = OMIT, scenario: typing.Optional[EvaluationScenarioQuery] = OMIT, windowing: typing.Optional[Windowing] = OMIT, request_options: typing.Optional[RequestOptions] = None) -> EvaluationScenariosResponse: """ Parameters diff --git a/clients/python/agenta_client/evaluations/raw_client.py b/clients/python/agenta_client/evaluations/raw_client.py index 47abfdda12..8521feb957 100644 --- a/clients/python/agenta_client/evaluations/raw_client.py +++ b/clients/python/agenta_client/evaluations/raw_client.py @@ -609,6 +609,46 @@ def open_run(self, run_id: str, *, request_options: typing.Optional[RequestOptio raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def fetch_default_queue(self, run_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[EvaluationQueueResponse]: + """ + Parameters + ---------- + run_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[EvaluationQueueResponse] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"evaluations/runs/{jsonable_encoder(run_id)}/default-queue",method="GET", + request_options=request_options,) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + EvaluationQueueResponse, + parse_obj_as( + type_ =EvaluationQueueResponse, # type: ignore + object_ =_response.json() + ) + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError(headers=dict(_response.headers), body=typing.cast( + HttpValidationError, + parse_obj_as( + type_ =HttpValidationError, # type: ignore + object_ =_response.json() + ) + )) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def create_scenarios(self, *, scenarios: typing.Sequence[EvaluationScenarioCreate], request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[EvaluationScenariosResponse]: """ Parameters @@ -1807,6 +1847,86 @@ def edit_queue(self, queue_id: str, *, queue: EvaluationQueueEdit, request_optio raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def archive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[EvaluationQueueResponse]: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[EvaluationQueueResponse] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"evaluations/queues/{jsonable_encoder(queue_id)}/archive",method="POST", + request_options=request_options,) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + EvaluationQueueResponse, + parse_obj_as( + type_ =EvaluationQueueResponse, # type: ignore + object_ =_response.json() + ) + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError(headers=dict(_response.headers), body=typing.cast( + HttpValidationError, + parse_obj_as( + type_ =HttpValidationError, # type: ignore + object_ =_response.json() + ) + )) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + def unarchive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[EvaluationQueueResponse]: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + HttpResponse[EvaluationQueueResponse] + Successful Response + """ + _response = self._client_wrapper.httpx_client.request( + f"evaluations/queues/{jsonable_encoder(queue_id)}/unarchive",method="POST", + request_options=request_options,) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + EvaluationQueueResponse, + parse_obj_as( + type_ =EvaluationQueueResponse, # type: ignore + object_ =_response.json() + ) + ) + return HttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError(headers=dict(_response.headers), body=typing.cast( + HttpValidationError, + parse_obj_as( + type_ =HttpValidationError, # type: ignore + object_ =_response.json() + ) + )) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + def query_evaluation_queue_scenarios(self, queue_id: str, *, queue: typing.Optional[EvaluationQueueScenariosQuery] = OMIT, scenario: typing.Optional[EvaluationScenarioQuery] = OMIT, windowing: typing.Optional[Windowing] = OMIT, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[EvaluationScenariosResponse]: """ Parameters @@ -3081,6 +3201,46 @@ async def open_run(self, run_id: str, *, request_options: typing.Optional[Reques raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def fetch_default_queue(self, run_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[EvaluationQueueResponse]: + """ + Parameters + ---------- + run_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[EvaluationQueueResponse] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"evaluations/runs/{jsonable_encoder(run_id)}/default-queue",method="GET", + request_options=request_options,) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + EvaluationQueueResponse, + parse_obj_as( + type_ =EvaluationQueueResponse, # type: ignore + object_ =_response.json() + ) + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError(headers=dict(_response.headers), body=typing.cast( + HttpValidationError, + parse_obj_as( + type_ =HttpValidationError, # type: ignore + object_ =_response.json() + ) + )) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def create_scenarios(self, *, scenarios: typing.Sequence[EvaluationScenarioCreate], request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[EvaluationScenariosResponse]: """ Parameters @@ -4279,6 +4439,86 @@ async def edit_queue(self, queue_id: str, *, queue: EvaluationQueueEdit, request raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def archive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[EvaluationQueueResponse]: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[EvaluationQueueResponse] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"evaluations/queues/{jsonable_encoder(queue_id)}/archive",method="POST", + request_options=request_options,) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + EvaluationQueueResponse, + parse_obj_as( + type_ =EvaluationQueueResponse, # type: ignore + object_ =_response.json() + ) + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError(headers=dict(_response.headers), body=typing.cast( + HttpValidationError, + parse_obj_as( + type_ =HttpValidationError, # type: ignore + object_ =_response.json() + ) + )) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + + async def unarchive_queue(self, queue_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[EvaluationQueueResponse]: + """ + Parameters + ---------- + queue_id : str + + request_options : typing.Optional[RequestOptions] + Request-specific configuration. + + Returns + ------- + AsyncHttpResponse[EvaluationQueueResponse] + Successful Response + """ + _response = await self._client_wrapper.httpx_client.request( + f"evaluations/queues/{jsonable_encoder(queue_id)}/unarchive",method="POST", + request_options=request_options,) + try: + if 200 <= _response.status_code < 300: + _data = typing.cast( + EvaluationQueueResponse, + parse_obj_as( + type_ =EvaluationQueueResponse, # type: ignore + object_ =_response.json() + ) + ) + return AsyncHttpResponse(response=_response, data=_data) + if _response.status_code == 422: + raise UnprocessableEntityError(headers=dict(_response.headers), body=typing.cast( + HttpValidationError, + parse_obj_as( + type_ =HttpValidationError, # type: ignore + object_ =_response.json() + ) + )) + _response_json = _response.json() + except JSONDecodeError: + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text) + raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json) + async def query_evaluation_queue_scenarios(self, queue_id: str, *, queue: typing.Optional[EvaluationQueueScenariosQuery] = OMIT, scenario: typing.Optional[EvaluationScenarioQuery] = OMIT, windowing: typing.Optional[Windowing] = OMIT, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[EvaluationScenariosResponse]: """ Parameters diff --git a/clients/python/agenta_client/types/__init__.py b/clients/python/agenta_client/types/__init__.py index ed27c1a673..d3fb1d8477 100644 --- a/clients/python/agenta_client/types/__init__.py +++ b/clients/python/agenta_client/types/__init__.py @@ -187,6 +187,7 @@ from .evaluation_run import EvaluationRun from .evaluation_run_create import EvaluationRunCreate from .evaluation_run_data import EvaluationRunData + from .evaluation_run_data_concurrency import EvaluationRunDataConcurrency from .evaluation_run_data_mapping import EvaluationRunDataMapping from .evaluation_run_data_mapping_column import EvaluationRunDataMappingColumn from .evaluation_run_data_mapping_step import EvaluationRunDataMappingStep @@ -643,7 +644,7 @@ from .workspace_member_response import WorkspaceMemberResponse from .workspace_permission import WorkspacePermission from .workspace_response import WorkspaceResponse -_dynamic_imports: typing.Dict[str, str] = {"AdminAccountCreateOptions": ".admin_account_create_options", "AdminAccountRead": ".admin_account_read", "AdminAccountsCreate": ".admin_accounts_create", "AdminAccountsDelete": ".admin_accounts_delete", "AdminAccountsDeleteTarget": ".admin_accounts_delete_target", "AdminAccountsResponse": ".admin_accounts_response", "AdminApiKeyCreate": ".admin_api_key_create", "AdminApiKeyResponse": ".admin_api_key_response", "AdminDeleteResponse": ".admin_delete_response", "AdminDeletedEntities": ".admin_deleted_entities", "AdminDeletedEntity": ".admin_deleted_entity", "AdminOrganizationCreate": ".admin_organization_create", "AdminOrganizationMembershipCreate": ".admin_organization_membership_create", "AdminOrganizationMembershipRead": ".admin_organization_membership_read", "AdminOrganizationRead": ".admin_organization_read", "AdminProjectCreate": ".admin_project_create", "AdminProjectMembershipCreate": ".admin_project_membership_create", "AdminProjectMembershipRead": ".admin_project_membership_read", "AdminProjectRead": ".admin_project_read", "AdminSimpleAccountCreate": ".admin_simple_account_create", "AdminSimpleAccountDeleteEntry": ".admin_simple_account_delete_entry", "AdminSimpleAccountRead": ".admin_simple_account_read", "AdminSimpleAccountsApiKeysCreate": ".admin_simple_accounts_api_keys_create", "AdminSimpleAccountsCreate": ".admin_simple_accounts_create", "AdminSimpleAccountsDelete": ".admin_simple_accounts_delete", "AdminSimpleAccountsOrganizationsCreate": ".admin_simple_accounts_organizations_create", "AdminSimpleAccountsOrganizationsMembershipsCreate": ".admin_simple_accounts_organizations_memberships_create", "AdminSimpleAccountsOrganizationsTransferOwnership": ".admin_simple_accounts_organizations_transfer_ownership", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects": ".admin_simple_accounts_organizations_transfer_ownership_include_projects", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero": ".admin_simple_accounts_organizations_transfer_ownership_include_projects_zero", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces": ".admin_simple_accounts_organizations_transfer_ownership_include_workspaces", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero": ".admin_simple_accounts_organizations_transfer_ownership_include_workspaces_zero", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse": ".admin_simple_accounts_organizations_transfer_ownership_response", "AdminSimpleAccountsProjectsCreate": ".admin_simple_accounts_projects_create", "AdminSimpleAccountsProjectsMembershipsCreate": ".admin_simple_accounts_projects_memberships_create", "AdminSimpleAccountsResponse": ".admin_simple_accounts_response", "AdminSimpleAccountsUsersCreate": ".admin_simple_accounts_users_create", "AdminSimpleAccountsUsersIdentitiesCreate": ".admin_simple_accounts_users_identities_create", "AdminSimpleAccountsUsersResetPassword": ".admin_simple_accounts_users_reset_password", "AdminSimpleAccountsWorkspacesCreate": ".admin_simple_accounts_workspaces_create", "AdminSimpleAccountsWorkspacesMembershipsCreate": ".admin_simple_accounts_workspaces_memberships_create", "AdminStructuredError": ".admin_structured_error", "AdminSubscriptionCreate": ".admin_subscription_create", "AdminSubscriptionRead": ".admin_subscription_read", "AdminUserCreate": ".admin_user_create", "AdminUserIdentityCreate": ".admin_user_identity_create", "AdminUserIdentityRead": ".admin_user_identity_read", "AdminUserIdentityReadStatus": ".admin_user_identity_read_status", "AdminUserRead": ".admin_user_read", "AdminWorkspaceCreate": ".admin_workspace_create", "AdminWorkspaceMembershipCreate": ".admin_workspace_membership_create", "AdminWorkspaceMembershipRead": ".admin_workspace_membership_read", "AdminWorkspaceRead": ".admin_workspace_read", "Analytics": ".analytics", "AnalyticsResponse": ".analytics_response", "Annotation": ".annotation", "AnnotationCreate": ".annotation_create", "AnnotationCreateLinks": ".annotation_create_links", "AnnotationEdit": ".annotation_edit", "AnnotationEditLinks": ".annotation_edit_links", "AnnotationLinkResponse": ".annotation_link_response", "AnnotationLinks": ".annotation_links", "AnnotationQuery": ".annotation_query", "AnnotationQueryLinks": ".annotation_query_links", "AnnotationResponse": ".annotation_response", "AnnotationsResponse": ".annotations_response", "Application": ".application", "ApplicationArtifactFlags": ".application_artifact_flags", "ApplicationArtifactQueryFlags": ".application_artifact_query_flags", "ApplicationCatalogPreset": ".application_catalog_preset", "ApplicationCatalogPresetResponse": ".application_catalog_preset_response", "ApplicationCatalogPresetsResponse": ".application_catalog_presets_response", "ApplicationCatalogTemplate": ".application_catalog_template", "ApplicationCatalogTemplateResponse": ".application_catalog_template_response", "ApplicationCatalogTemplatesResponse": ".application_catalog_templates_response", "ApplicationCatalogType": ".application_catalog_type", "ApplicationCatalogTypesResponse": ".application_catalog_types_response", "ApplicationCreate": ".application_create", "ApplicationEdit": ".application_edit", "ApplicationFlags": ".application_flags", "ApplicationFork": ".application_fork", "ApplicationQuery": ".application_query", "ApplicationResponse": ".application_response", "ApplicationRevision": ".application_revision", "ApplicationRevisionCommit": ".application_revision_commit", "ApplicationRevisionCreate": ".application_revision_create", "ApplicationRevisionDataInput": ".application_revision_data_input", "ApplicationRevisionDataInputHeadersValue": ".application_revision_data_input_headers_value", "ApplicationRevisionDataInputRuntime": ".application_revision_data_input_runtime", "ApplicationRevisionDataOutput": ".application_revision_data_output", "ApplicationRevisionDataOutputHeadersValue": ".application_revision_data_output_headers_value", "ApplicationRevisionDataOutputRuntime": ".application_revision_data_output_runtime", "ApplicationRevisionEdit": ".application_revision_edit", "ApplicationRevisionFlags": ".application_revision_flags", "ApplicationRevisionFork": ".application_revision_fork", "ApplicationRevisionQuery": ".application_revision_query", "ApplicationRevisionQueryFlags": ".application_revision_query_flags", "ApplicationRevisionResolveResponse": ".application_revision_resolve_response", "ApplicationRevisionResponse": ".application_revision_response", "ApplicationRevisionsLog": ".application_revisions_log", "ApplicationRevisionsResponse": ".application_revisions_response", "ApplicationVariant": ".application_variant", "ApplicationVariantCreate": ".application_variant_create", "ApplicationVariantEdit": ".application_variant_edit", "ApplicationVariantFlags": ".application_variant_flags", "ApplicationVariantFork": ".application_variant_fork", "ApplicationVariantResponse": ".application_variant_response", "ApplicationVariantsResponse": ".application_variants_response", "ApplicationsResponse": ".applications_response", "BodyConfigsFetchVariantsConfigsFetchPost": ".body_configs_fetch_variants_configs_fetch_post", "Bucket": ".bucket", "CollectStatusResponse": ".collect_status_response", "ComparisonOperator": ".comparison_operator", "Condition": ".condition", "ConditionOperator": ".condition_operator", "ConditionOptions": ".condition_options", "ConditionValue": ".condition_value", "ConfigResponseModel": ".config_response_model", "CustomModelSettingsDto": ".custom_model_settings_dto", "CustomProviderDto": ".custom_provider_dto", "CustomProviderKind": ".custom_provider_kind", "CustomProviderSettingsDto": ".custom_provider_settings_dto", "DictOperator": ".dict_operator", "DiscoverResponse": ".discover_response", "DiscoverResponseMethodsValue": ".discover_response_methods_value", "EeSrcModelsApiOrganizationModelsOrganization": ".ee_src_models_api_organization_models_organization", "EntityRef": ".entity_ref", "Environment": ".environment", "EnvironmentCreate": ".environment_create", "EnvironmentEdit": ".environment_edit", "EnvironmentFlags": ".environment_flags", "EnvironmentQueryFlags": ".environment_query_flags", "EnvironmentResponse": ".environment_response", "EnvironmentRevision": ".environment_revision", "EnvironmentRevisionCommit": ".environment_revision_commit", "EnvironmentRevisionCreate": ".environment_revision_create", "EnvironmentRevisionData": ".environment_revision_data", "EnvironmentRevisionDelta": ".environment_revision_delta", "EnvironmentRevisionEdit": ".environment_revision_edit", "EnvironmentRevisionResolveResponse": ".environment_revision_resolve_response", "EnvironmentRevisionResponse": ".environment_revision_response", "EnvironmentRevisionsLog": ".environment_revisions_log", "EnvironmentRevisionsResponse": ".environment_revisions_response", "EnvironmentVariant": ".environment_variant", "EnvironmentVariantCreate": ".environment_variant_create", "EnvironmentVariantEdit": ".environment_variant_edit", "EnvironmentVariantResponse": ".environment_variant_response", "EnvironmentVariantsResponse": ".environment_variants_response", "EnvironmentsResponse": ".environments_response", "ErrorPolicy": ".error_policy", "EvaluationMetrics": ".evaluation_metrics", "EvaluationMetricsCreate": ".evaluation_metrics_create", "EvaluationMetricsEdit": ".evaluation_metrics_edit", "EvaluationMetricsIdsResponse": ".evaluation_metrics_ids_response", "EvaluationMetricsQuery": ".evaluation_metrics_query", "EvaluationMetricsQueryScenarioIds": ".evaluation_metrics_query_scenario_ids", "EvaluationMetricsQueryTimestamps": ".evaluation_metrics_query_timestamps", "EvaluationMetricsRefresh": ".evaluation_metrics_refresh", "EvaluationMetricsResponse": ".evaluation_metrics_response", "EvaluationQueue": ".evaluation_queue", "EvaluationQueueCreate": ".evaluation_queue_create", "EvaluationQueueData": ".evaluation_queue_data", "EvaluationQueueEdit": ".evaluation_queue_edit", "EvaluationQueueFlags": ".evaluation_queue_flags", "EvaluationQueueIdResponse": ".evaluation_queue_id_response", "EvaluationQueueIdsResponse": ".evaluation_queue_ids_response", "EvaluationQueueQuery": ".evaluation_queue_query", "EvaluationQueueQueryFlags": ".evaluation_queue_query_flags", "EvaluationQueueResponse": ".evaluation_queue_response", "EvaluationQueueScenariosQuery": ".evaluation_queue_scenarios_query", "EvaluationQueuesResponse": ".evaluation_queues_response", "EvaluationResult": ".evaluation_result", "EvaluationResultCreate": ".evaluation_result_create", "EvaluationResultEdit": ".evaluation_result_edit", "EvaluationResultIdResponse": ".evaluation_result_id_response", "EvaluationResultIdsResponse": ".evaluation_result_ids_response", "EvaluationResultQuery": ".evaluation_result_query", "EvaluationResultResponse": ".evaluation_result_response", "EvaluationResultsResponse": ".evaluation_results_response", "EvaluationRun": ".evaluation_run", "EvaluationRunCreate": ".evaluation_run_create", "EvaluationRunData": ".evaluation_run_data", "EvaluationRunDataMapping": ".evaluation_run_data_mapping", "EvaluationRunDataMappingColumn": ".evaluation_run_data_mapping_column", "EvaluationRunDataMappingStep": ".evaluation_run_data_mapping_step", "EvaluationRunDataStep": ".evaluation_run_data_step", "EvaluationRunDataStepInput": ".evaluation_run_data_step_input", "EvaluationRunDataStepOrigin": ".evaluation_run_data_step_origin", "EvaluationRunDataStepType": ".evaluation_run_data_step_type", "EvaluationRunEdit": ".evaluation_run_edit", "EvaluationRunFlags": ".evaluation_run_flags", "EvaluationRunIdResponse": ".evaluation_run_id_response", "EvaluationRunIdsRequest": ".evaluation_run_ids_request", "EvaluationRunIdsResponse": ".evaluation_run_ids_response", "EvaluationRunQuery": ".evaluation_run_query", "EvaluationRunQueryFlags": ".evaluation_run_query_flags", "EvaluationRunResponse": ".evaluation_run_response", "EvaluationRunsResponse": ".evaluation_runs_response", "EvaluationScenario": ".evaluation_scenario", "EvaluationScenarioCreate": ".evaluation_scenario_create", "EvaluationScenarioEdit": ".evaluation_scenario_edit", "EvaluationScenarioIdResponse": ".evaluation_scenario_id_response", "EvaluationScenarioIdsResponse": ".evaluation_scenario_ids_response", "EvaluationScenarioQuery": ".evaluation_scenario_query", "EvaluationScenarioResponse": ".evaluation_scenario_response", "EvaluationScenariosResponse": ".evaluation_scenarios_response", "EvaluationStatus": ".evaluation_status", "Evaluator": ".evaluator", "EvaluatorArtifactFlags": ".evaluator_artifact_flags", "EvaluatorArtifactQueryFlags": ".evaluator_artifact_query_flags", "EvaluatorCatalogPreset": ".evaluator_catalog_preset", "EvaluatorCatalogPresetResponse": ".evaluator_catalog_preset_response", "EvaluatorCatalogPresetsResponse": ".evaluator_catalog_presets_response", "EvaluatorCatalogTemplate": ".evaluator_catalog_template", "EvaluatorCatalogTemplateResponse": ".evaluator_catalog_template_response", "EvaluatorCatalogTemplatesResponse": ".evaluator_catalog_templates_response", "EvaluatorCatalogType": ".evaluator_catalog_type", "EvaluatorCatalogTypesResponse": ".evaluator_catalog_types_response", "EvaluatorCreate": ".evaluator_create", "EvaluatorEdit": ".evaluator_edit", "EvaluatorFlags": ".evaluator_flags", "EvaluatorFork": ".evaluator_fork", "EvaluatorQuery": ".evaluator_query", "EvaluatorResponse": ".evaluator_response", "EvaluatorRevision": ".evaluator_revision", "EvaluatorRevisionCommit": ".evaluator_revision_commit", "EvaluatorRevisionCreate": ".evaluator_revision_create", "EvaluatorRevisionDataInput": ".evaluator_revision_data_input", "EvaluatorRevisionDataInputHeadersValue": ".evaluator_revision_data_input_headers_value", "EvaluatorRevisionDataInputRuntime": ".evaluator_revision_data_input_runtime", "EvaluatorRevisionDataOutput": ".evaluator_revision_data_output", "EvaluatorRevisionDataOutputHeadersValue": ".evaluator_revision_data_output_headers_value", "EvaluatorRevisionDataOutputRuntime": ".evaluator_revision_data_output_runtime", "EvaluatorRevisionEdit": ".evaluator_revision_edit", "EvaluatorRevisionFlags": ".evaluator_revision_flags", "EvaluatorRevisionFork": ".evaluator_revision_fork", "EvaluatorRevisionQuery": ".evaluator_revision_query", "EvaluatorRevisionQueryFlags": ".evaluator_revision_query_flags", "EvaluatorRevisionResolveResponse": ".evaluator_revision_resolve_response", "EvaluatorRevisionResponse": ".evaluator_revision_response", "EvaluatorRevisionsLog": ".evaluator_revisions_log", "EvaluatorRevisionsResponse": ".evaluator_revisions_response", "EvaluatorTemplate": ".evaluator_template", "EvaluatorTemplatesResponse": ".evaluator_templates_response", "EvaluatorVariant": ".evaluator_variant", "EvaluatorVariantCreate": ".evaluator_variant_create", "EvaluatorVariantEdit": ".evaluator_variant_edit", "EvaluatorVariantFlags": ".evaluator_variant_flags", "EvaluatorVariantFork": ".evaluator_variant_fork", "EvaluatorVariantResponse": ".evaluator_variant_response", "EvaluatorVariantsResponse": ".evaluator_variants_response", "EvaluatorsResponse": ".evaluators_response", "Event": ".event", "EventQuery": ".event_query", "EventType": ".event_type", "EventsQueryResponse": ".events_query_response", "ExistenceOperator": ".existence_operator", "FilteringInput": ".filtering_input", "FilteringInputConditionsItem": ".filtering_input_conditions_item", "FilteringOutput": ".filtering_output", "FilteringOutputConditionsItem": ".filtering_output_conditions_item", "Focus": ".focus", "Folder": ".folder", "FolderCreate": ".folder_create", "FolderEdit": ".folder_edit", "FolderIdResponse": ".folder_id_response", "FolderKind": ".folder_kind", "FolderQuery": ".folder_query", "FolderQueryKinds": ".folder_query_kinds", "FolderResponse": ".folder_response", "FoldersResponse": ".folders_response", "Format": ".format", "Formatting": ".formatting", typing.Any: ".full_json_input", typing.Any: ".full_json_output", "Header": ".header", "HttpValidationError": ".http_validation_error", "InviteRequest": ".invite_request", "Invocation": ".invocation", "InvocationCreate": ".invocation_create", "InvocationCreateLinks": ".invocation_create_links", "InvocationEdit": ".invocation_edit", "InvocationEditLinks": ".invocation_edit_links", "InvocationLinkResponse": ".invocation_link_response", "InvocationLinks": ".invocation_links", "InvocationQuery": ".invocation_query", "InvocationQueryLinks": ".invocation_query_links", "InvocationResponse": ".invocation_response", "InvocationsResponse": ".invocations_response", "JsonSchemasInput": ".json_schemas_input", "JsonSchemasOutput": ".json_schemas_output", typing.Any: ".label_json_input", typing.Any: ".label_json_output", "LegacyLifecycleDto": ".legacy_lifecycle_dto", "ListApiKeysResponse": ".list_api_keys_response", "ListOperator": ".list_operator", "ListOptions": ".list_options", "LogicalOperator": ".logical_operator", "MetricSpec": ".metric_spec", "MetricType": ".metric_type", "MetricsBucket": ".metrics_bucket", "NumericOperator": ".numeric_operator", "OTelEventInput": ".o_tel_event_input", "OTelEventInputTimestamp": ".o_tel_event_input_timestamp", "OTelEventOutput": ".o_tel_event_output", "OTelEventOutputTimestamp": ".o_tel_event_output_timestamp", "OTelHashInput": ".o_tel_hash_input", "OTelHashOutput": ".o_tel_hash_output", "OTelLinkInput": ".o_tel_link_input", "OTelLinkOutput": ".o_tel_link_output", "OTelLinksResponse": ".o_tel_links_response", "OTelReferenceInput": ".o_tel_reference_input", "OTelReferenceOutput": ".o_tel_reference_output", "OTelSpanKind": ".o_tel_span_kind", "OTelStatusCode": ".o_tel_status_code", "OTelTracingRequest": ".o_tel_tracing_request", "OTelTracingResponse": ".o_tel_tracing_response", "OldAnalyticsResponse": ".old_analytics_response", "OrganizationDetails": ".organization_details", "OrganizationDomainResponse": ".organization_domain_response", "OrganizationProviderResponse": ".organization_provider_response", "OrganizationUpdate": ".organization_update", "OssSrcModelsApiOrganizationModelsOrganization": ".oss_src_models_api_organization_models_organization", "Permission": ".permission", "ProjectsResponse": ".projects_response", "QueriesResponse": ".queries_response", "Query": ".query", "QueryCreate": ".query_create", "QueryEdit": ".query_edit", "QueryFlags": ".query_flags", "QueryQueryFlags": ".query_query_flags", "QueryResponse": ".query_response", "QueryRevision": ".query_revision", "QueryRevisionCommit": ".query_revision_commit", "QueryRevisionCreate": ".query_revision_create", "QueryRevisionDataInput": ".query_revision_data_input", "QueryRevisionDataOutput": ".query_revision_data_output", "QueryRevisionEdit": ".query_revision_edit", "QueryRevisionQuery": ".query_revision_query", "QueryRevisionResponse": ".query_revision_response", "QueryRevisionsLog": ".query_revisions_log", "QueryRevisionsResponse": ".query_revisions_response", "QueryVariant": ".query_variant", "QueryVariantCreate": ".query_variant_create", "QueryVariantEdit": ".query_variant_edit", "QueryVariantQuery": ".query_variant_query", "QueryVariantResponse": ".query_variant_response", "QueryVariantsResponse": ".query_variants_response", "Reference": ".reference", "ReferenceRequestModelInput": ".reference_request_model_input", "ReferenceRequestModelOutput": ".reference_request_model_output", "RequestType": ".request_type", "ResolutionInfo": ".resolution_info", "RevisionFork": ".revision_fork", "SecretDto": ".secret_dto", "SecretDtoData": ".secret_dto_data", "SecretKind": ".secret_kind", "SecretResponseDto": ".secret_response_dto", "SecretResponseDtoData": ".secret_response_dto_data", "SessionIdsResponse": ".session_ids_response", "SimpleApplication": ".simple_application", "SimpleApplicationCreate": ".simple_application_create", "SimpleApplicationDataInput": ".simple_application_data_input", "SimpleApplicationDataInputHeadersValue": ".simple_application_data_input_headers_value", "SimpleApplicationDataInputRuntime": ".simple_application_data_input_runtime", "SimpleApplicationDataOutput": ".simple_application_data_output", "SimpleApplicationDataOutputHeadersValue": ".simple_application_data_output_headers_value", "SimpleApplicationDataOutputRuntime": ".simple_application_data_output_runtime", "SimpleApplicationEdit": ".simple_application_edit", "SimpleApplicationFlags": ".simple_application_flags", "SimpleApplicationQuery": ".simple_application_query", "SimpleApplicationQueryFlags": ".simple_application_query_flags", "SimpleApplicationResponse": ".simple_application_response", "SimpleApplicationsResponse": ".simple_applications_response", "SimpleEnvironment": ".simple_environment", "SimpleEnvironmentCreate": ".simple_environment_create", "SimpleEnvironmentEdit": ".simple_environment_edit", "SimpleEnvironmentQuery": ".simple_environment_query", "SimpleEnvironmentResponse": ".simple_environment_response", "SimpleEnvironmentsResponse": ".simple_environments_response", "SimpleEvaluation": ".simple_evaluation", "SimpleEvaluationCreate": ".simple_evaluation_create", "SimpleEvaluationData": ".simple_evaluation_data", "SimpleEvaluationDataApplicationSteps": ".simple_evaluation_data_application_steps", "SimpleEvaluationDataApplicationStepsOneValue": ".simple_evaluation_data_application_steps_one_value", "SimpleEvaluationDataEvaluatorSteps": ".simple_evaluation_data_evaluator_steps", "SimpleEvaluationDataEvaluatorStepsOneValue": ".simple_evaluation_data_evaluator_steps_one_value", "SimpleEvaluationDataQuerySteps": ".simple_evaluation_data_query_steps", "SimpleEvaluationDataQueryStepsOneValue": ".simple_evaluation_data_query_steps_one_value", "SimpleEvaluationDataTestsetSteps": ".simple_evaluation_data_testset_steps", "SimpleEvaluationDataTestsetStepsOneValue": ".simple_evaluation_data_testset_steps_one_value", "SimpleEvaluationEdit": ".simple_evaluation_edit", "SimpleEvaluationIdResponse": ".simple_evaluation_id_response", "SimpleEvaluationQuery": ".simple_evaluation_query", "SimpleEvaluationResponse": ".simple_evaluation_response", "SimpleEvaluationsResponse": ".simple_evaluations_response", "SimpleEvaluator": ".simple_evaluator", "SimpleEvaluatorCreate": ".simple_evaluator_create", "SimpleEvaluatorDataInput": ".simple_evaluator_data_input", "SimpleEvaluatorDataInputHeadersValue": ".simple_evaluator_data_input_headers_value", "SimpleEvaluatorDataInputRuntime": ".simple_evaluator_data_input_runtime", "SimpleEvaluatorDataOutput": ".simple_evaluator_data_output", "SimpleEvaluatorDataOutputHeadersValue": ".simple_evaluator_data_output_headers_value", "SimpleEvaluatorDataOutputRuntime": ".simple_evaluator_data_output_runtime", "SimpleEvaluatorEdit": ".simple_evaluator_edit", "SimpleEvaluatorFlags": ".simple_evaluator_flags", "SimpleEvaluatorQuery": ".simple_evaluator_query", "SimpleEvaluatorQueryFlags": ".simple_evaluator_query_flags", "SimpleEvaluatorResponse": ".simple_evaluator_response", "SimpleEvaluatorsResponse": ".simple_evaluators_response", "SimpleQueriesResponse": ".simple_queries_response", "SimpleQuery": ".simple_query", "SimpleQueryCreate": ".simple_query_create", "SimpleQueryEdit": ".simple_query_edit", "SimpleQueryQuery": ".simple_query_query", "SimpleQueryResponse": ".simple_query_response", "SimpleQueue": ".simple_queue", "SimpleQueueCreate": ".simple_queue_create", "SimpleQueueData": ".simple_queue_data", "SimpleQueueDataEvaluators": ".simple_queue_data_evaluators", "SimpleQueueDataEvaluatorsOneValue": ".simple_queue_data_evaluators_one_value", "SimpleQueueIdResponse": ".simple_queue_id_response", "SimpleQueueKind": ".simple_queue_kind", "SimpleQueueQuery": ".simple_queue_query", "SimpleQueueResponse": ".simple_queue_response", "SimpleQueueScenariosQuery": ".simple_queue_scenarios_query", "SimpleQueueScenariosResponse": ".simple_queue_scenarios_response", "SimpleQueueSettings": ".simple_queue_settings", "SimpleQueuesResponse": ".simple_queues_response", "SimpleTestset": ".simple_testset", "SimpleTestsetCreate": ".simple_testset_create", "SimpleTestsetEdit": ".simple_testset_edit", "SimpleTestsetQuery": ".simple_testset_query", "SimpleTestsetResponse": ".simple_testset_response", "SimpleTestsetsResponse": ".simple_testsets_response", "SimpleTrace": ".simple_trace", "SimpleTraceChannel": ".simple_trace_channel", "SimpleTraceCreate": ".simple_trace_create", "SimpleTraceCreateLinks": ".simple_trace_create_links", "SimpleTraceEdit": ".simple_trace_edit", "SimpleTraceEditLinks": ".simple_trace_edit_links", "SimpleTraceKind": ".simple_trace_kind", "SimpleTraceLinkResponse": ".simple_trace_link_response", "SimpleTraceLinks": ".simple_trace_links", "SimpleTraceOrigin": ".simple_trace_origin", "SimpleTraceQuery": ".simple_trace_query", "SimpleTraceQueryLinks": ".simple_trace_query_links", "SimpleTraceReferences": ".simple_trace_references", "SimpleTraceResponse": ".simple_trace_response", "SimpleTracesResponse": ".simple_traces_response", "SimpleWorkflow": ".simple_workflow", "SimpleWorkflowCreate": ".simple_workflow_create", "SimpleWorkflowDataInput": ".simple_workflow_data_input", "SimpleWorkflowDataInputHeadersValue": ".simple_workflow_data_input_headers_value", "SimpleWorkflowDataInputRuntime": ".simple_workflow_data_input_runtime", "SimpleWorkflowDataOutput": ".simple_workflow_data_output", "SimpleWorkflowDataOutputHeadersValue": ".simple_workflow_data_output_headers_value", "SimpleWorkflowDataOutputRuntime": ".simple_workflow_data_output_runtime", "SimpleWorkflowEdit": ".simple_workflow_edit", "SimpleWorkflowFlags": ".simple_workflow_flags", "SimpleWorkflowQuery": ".simple_workflow_query", "SimpleWorkflowQueryFlags": ".simple_workflow_query_flags", "SimpleWorkflowResponse": ".simple_workflow_response", "SimpleWorkflowsResponse": ".simple_workflows_response", "SpanInput": ".span_input", "SpanInputEndTime": ".span_input_end_time", "SpanInputStartTime": ".span_input_start_time", "SpanOutput": ".span_output", "SpanOutputEndTime": ".span_output_end_time", "SpanOutputStartTime": ".span_output_start_time", "SpanResponse": ".span_response", "SpanType": ".span_type", "SpansNodeInput": ".spans_node_input", "SpansNodeInputEndTime": ".spans_node_input_end_time", "SpansNodeInputSpansValue": ".spans_node_input_spans_value", "SpansNodeInputStartTime": ".spans_node_input_start_time", "SpansNodeOutput": ".spans_node_output", "SpansNodeOutputEndTime": ".spans_node_output_end_time", "SpansNodeOutputSpansValue": ".spans_node_output_spans_value", "SpansNodeOutputStartTime": ".spans_node_output_start_time", "SpansResponse": ".spans_response", "SpansTreeInput": ".spans_tree_input", "SpansTreeInputSpansValue": ".spans_tree_input_spans_value", "SpansTreeOutput": ".spans_tree_output", "SpansTreeOutputSpansValue": ".spans_tree_output_spans_value", "SsoProviderDto": ".sso_provider_dto", "SsoProviderInfo": ".sso_provider_info", "SsoProviderSettingsDto": ".sso_provider_settings_dto", "SsoProviders": ".sso_providers", "StandardProviderDto": ".standard_provider_dto", "StandardProviderKind": ".standard_provider_kind", "StandardProviderSettingsDto": ".standard_provider_settings_dto", "Status": ".status", "StringOperator": ".string_operator", "TestcaseInput": ".testcase_input", "TestcaseOutput": ".testcase_output", "TestcaseResponse": ".testcase_response", "TestcasesResponse": ".testcases_response", "Testset": ".testset", "TestsetCreate": ".testset_create", "TestsetEdit": ".testset_edit", "TestsetFlags": ".testset_flags", "TestsetQuery": ".testset_query", "TestsetResponse": ".testset_response", "TestsetRevision": ".testset_revision", "TestsetRevisionCommit": ".testset_revision_commit", "TestsetRevisionCreate": ".testset_revision_create", "TestsetRevisionDataInput": ".testset_revision_data_input", "TestsetRevisionDataOutput": ".testset_revision_data_output", "TestsetRevisionDelta": ".testset_revision_delta", "TestsetRevisionDeltaColumns": ".testset_revision_delta_columns", "TestsetRevisionDeltaRows": ".testset_revision_delta_rows", "TestsetRevisionEdit": ".testset_revision_edit", "TestsetRevisionQuery": ".testset_revision_query", "TestsetRevisionResponse": ".testset_revision_response", "TestsetRevisionsLog": ".testset_revisions_log", "TestsetRevisionsResponse": ".testset_revisions_response", "TestsetVariant": ".testset_variant", "TestsetVariantCreate": ".testset_variant_create", "TestsetVariantEdit": ".testset_variant_edit", "TestsetVariantQuery": ".testset_variant_query", "TestsetVariantResponse": ".testset_variant_response", "TestsetVariantsResponse": ".testset_variants_response", "TestsetsResponse": ".testsets_response", "TextOptions": ".text_options", "ToolAuthScheme": ".tool_auth_scheme", "ToolCallData": ".tool_call_data", "ToolCallFunction": ".tool_call_function", "ToolCallResponse": ".tool_call_response", "ToolCatalogAction": ".tool_catalog_action", "ToolCatalogActionDetails": ".tool_catalog_action_details", "ToolCatalogActionResponse": ".tool_catalog_action_response", "ToolCatalogActionResponseAction": ".tool_catalog_action_response_action", "ToolCatalogActionsResponse": ".tool_catalog_actions_response", "ToolCatalogActionsResponseActionsItem": ".tool_catalog_actions_response_actions_item", "ToolCatalogIntegration": ".tool_catalog_integration", "ToolCatalogIntegrationDetails": ".tool_catalog_integration_details", "ToolCatalogIntegrationResponse": ".tool_catalog_integration_response", "ToolCatalogIntegrationResponseIntegration": ".tool_catalog_integration_response_integration", "ToolCatalogIntegrationsResponse": ".tool_catalog_integrations_response", "ToolCatalogIntegrationsResponseIntegrationsItem": ".tool_catalog_integrations_response_integrations_item", "ToolCatalogProvider": ".tool_catalog_provider", "ToolCatalogProviderDetails": ".tool_catalog_provider_details", "ToolCatalogProviderResponse": ".tool_catalog_provider_response", "ToolCatalogProviderResponseProvider": ".tool_catalog_provider_response_provider", "ToolCatalogProvidersResponse": ".tool_catalog_providers_response", "ToolCatalogProvidersResponseProvidersItem": ".tool_catalog_providers_response_providers_item", "ToolConnection": ".tool_connection", "ToolConnectionCreate": ".tool_connection_create", "ToolConnectionCreateData": ".tool_connection_create_data", "ToolConnectionResponse": ".tool_connection_response", "ToolConnectionStatus": ".tool_connection_status", "ToolConnectionsResponse": ".tool_connections_response", "ToolProviderKind": ".tool_provider_kind", "ToolResult": ".tool_result", "ToolResultData": ".tool_result_data", "TraceIdResponse": ".trace_id_response", "TraceIdsResponse": ".trace_ids_response", "TraceInput": ".trace_input", "TraceInputSpansValue": ".trace_input_spans_value", "TraceOutput": ".trace_output", "TraceOutputSpansValue": ".trace_output_spans_value", "TraceRequest": ".trace_request", "TraceResponse": ".trace_response", "TraceType": ".trace_type", "TracesRequest": ".traces_request", "TracesResponse": ".traces_response", "TracingQuery": ".tracing_query", "UserIdsResponse": ".user_ids_response", "ValidationError": ".validation_error", "ValidationErrorLocItem": ".validation_error_loc_item", "VariantFork": ".variant_fork", "WebhookDeliveriesResponse": ".webhook_deliveries_response", "WebhookDelivery": ".webhook_delivery", "WebhookDeliveryCreate": ".webhook_delivery_create", "WebhookDeliveryData": ".webhook_delivery_data", "WebhookDeliveryQuery": ".webhook_delivery_query", "WebhookDeliveryResponse": ".webhook_delivery_response", "WebhookDeliveryResponseInfo": ".webhook_delivery_response_info", "WebhookEventType": ".webhook_event_type", "WebhookProviderDto": ".webhook_provider_dto", "WebhookProviderSettingsDto": ".webhook_provider_settings_dto", "WebhookSubscription": ".webhook_subscription", "WebhookSubscriptionCreate": ".webhook_subscription_create", "WebhookSubscriptionData": ".webhook_subscription_data", "WebhookSubscriptionDataAuthMode": ".webhook_subscription_data_auth_mode", "WebhookSubscriptionEdit": ".webhook_subscription_edit", "WebhookSubscriptionQuery": ".webhook_subscription_query", "WebhookSubscriptionResponse": ".webhook_subscription_response", "WebhookSubscriptionsResponse": ".webhook_subscriptions_response", "Windowing": ".windowing", "WindowingOrder": ".windowing_order", "Workflow": ".workflow", "WorkflowArtifactFlags": ".workflow_artifact_flags", "WorkflowCatalogFlags": ".workflow_catalog_flags", "WorkflowCatalogPreset": ".workflow_catalog_preset", "WorkflowCatalogPresetResponse": ".workflow_catalog_preset_response", "WorkflowCatalogPresetsResponse": ".workflow_catalog_presets_response", "WorkflowCatalogTemplate": ".workflow_catalog_template", "WorkflowCatalogTemplateResponse": ".workflow_catalog_template_response", "WorkflowCatalogTemplatesResponse": ".workflow_catalog_templates_response", "WorkflowCatalogType": ".workflow_catalog_type", "WorkflowCatalogTypeResponse": ".workflow_catalog_type_response", "WorkflowCatalogTypesResponse": ".workflow_catalog_types_response", "WorkflowCreate": ".workflow_create", "WorkflowEdit": ".workflow_edit", "WorkflowFlags": ".workflow_flags", "WorkflowFork": ".workflow_fork", "WorkflowResponse": ".workflow_response", "WorkflowRevisionCommit": ".workflow_revision_commit", "WorkflowRevisionCreate": ".workflow_revision_create", "WorkflowRevisionDataInput": ".workflow_revision_data_input", "WorkflowRevisionDataInputHeadersValue": ".workflow_revision_data_input_headers_value", "WorkflowRevisionDataInputRuntime": ".workflow_revision_data_input_runtime", "WorkflowRevisionDataOutput": ".workflow_revision_data_output", "WorkflowRevisionDataOutputHeadersValue": ".workflow_revision_data_output_headers_value", "WorkflowRevisionDataOutputRuntime": ".workflow_revision_data_output_runtime", "WorkflowRevisionEdit": ".workflow_revision_edit", "WorkflowRevisionFlags": ".workflow_revision_flags", "WorkflowRevisionFork": ".workflow_revision_fork", "WorkflowRevisionInput": ".workflow_revision_input", "WorkflowRevisionOutput": ".workflow_revision_output", "WorkflowRevisionResolveResponse": ".workflow_revision_resolve_response", "WorkflowRevisionResponse": ".workflow_revision_response", "WorkflowRevisionsLog": ".workflow_revisions_log", "WorkflowRevisionsResponse": ".workflow_revisions_response", "WorkflowVariant": ".workflow_variant", "WorkflowVariantCreate": ".workflow_variant_create", "WorkflowVariantEdit": ".workflow_variant_edit", "WorkflowVariantFlags": ".workflow_variant_flags", "WorkflowVariantFork": ".workflow_variant_fork", "WorkflowVariantResponse": ".workflow_variant_response", "WorkflowVariantsResponse": ".workflow_variants_response", "WorkflowsResponse": ".workflows_response", "Workspace": ".workspace", "WorkspaceMemberResponse": ".workspace_member_response", "WorkspacePermission": ".workspace_permission", "WorkspaceResponse": ".workspace_response"} +_dynamic_imports: typing.Dict[str, str] = {"AdminAccountCreateOptions": ".admin_account_create_options", "AdminAccountRead": ".admin_account_read", "AdminAccountsCreate": ".admin_accounts_create", "AdminAccountsDelete": ".admin_accounts_delete", "AdminAccountsDeleteTarget": ".admin_accounts_delete_target", "AdminAccountsResponse": ".admin_accounts_response", "AdminApiKeyCreate": ".admin_api_key_create", "AdminApiKeyResponse": ".admin_api_key_response", "AdminDeleteResponse": ".admin_delete_response", "AdminDeletedEntities": ".admin_deleted_entities", "AdminDeletedEntity": ".admin_deleted_entity", "AdminOrganizationCreate": ".admin_organization_create", "AdminOrganizationMembershipCreate": ".admin_organization_membership_create", "AdminOrganizationMembershipRead": ".admin_organization_membership_read", "AdminOrganizationRead": ".admin_organization_read", "AdminProjectCreate": ".admin_project_create", "AdminProjectMembershipCreate": ".admin_project_membership_create", "AdminProjectMembershipRead": ".admin_project_membership_read", "AdminProjectRead": ".admin_project_read", "AdminSimpleAccountCreate": ".admin_simple_account_create", "AdminSimpleAccountDeleteEntry": ".admin_simple_account_delete_entry", "AdminSimpleAccountRead": ".admin_simple_account_read", "AdminSimpleAccountsApiKeysCreate": ".admin_simple_accounts_api_keys_create", "AdminSimpleAccountsCreate": ".admin_simple_accounts_create", "AdminSimpleAccountsDelete": ".admin_simple_accounts_delete", "AdminSimpleAccountsOrganizationsCreate": ".admin_simple_accounts_organizations_create", "AdminSimpleAccountsOrganizationsMembershipsCreate": ".admin_simple_accounts_organizations_memberships_create", "AdminSimpleAccountsOrganizationsTransferOwnership": ".admin_simple_accounts_organizations_transfer_ownership", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects": ".admin_simple_accounts_organizations_transfer_ownership_include_projects", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero": ".admin_simple_accounts_organizations_transfer_ownership_include_projects_zero", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces": ".admin_simple_accounts_organizations_transfer_ownership_include_workspaces", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero": ".admin_simple_accounts_organizations_transfer_ownership_include_workspaces_zero", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse": ".admin_simple_accounts_organizations_transfer_ownership_response", "AdminSimpleAccountsProjectsCreate": ".admin_simple_accounts_projects_create", "AdminSimpleAccountsProjectsMembershipsCreate": ".admin_simple_accounts_projects_memberships_create", "AdminSimpleAccountsResponse": ".admin_simple_accounts_response", "AdminSimpleAccountsUsersCreate": ".admin_simple_accounts_users_create", "AdminSimpleAccountsUsersIdentitiesCreate": ".admin_simple_accounts_users_identities_create", "AdminSimpleAccountsUsersResetPassword": ".admin_simple_accounts_users_reset_password", "AdminSimpleAccountsWorkspacesCreate": ".admin_simple_accounts_workspaces_create", "AdminSimpleAccountsWorkspacesMembershipsCreate": ".admin_simple_accounts_workspaces_memberships_create", "AdminStructuredError": ".admin_structured_error", "AdminSubscriptionCreate": ".admin_subscription_create", "AdminSubscriptionRead": ".admin_subscription_read", "AdminUserCreate": ".admin_user_create", "AdminUserIdentityCreate": ".admin_user_identity_create", "AdminUserIdentityRead": ".admin_user_identity_read", "AdminUserIdentityReadStatus": ".admin_user_identity_read_status", "AdminUserRead": ".admin_user_read", "AdminWorkspaceCreate": ".admin_workspace_create", "AdminWorkspaceMembershipCreate": ".admin_workspace_membership_create", "AdminWorkspaceMembershipRead": ".admin_workspace_membership_read", "AdminWorkspaceRead": ".admin_workspace_read", "Analytics": ".analytics", "AnalyticsResponse": ".analytics_response", "Annotation": ".annotation", "AnnotationCreate": ".annotation_create", "AnnotationCreateLinks": ".annotation_create_links", "AnnotationEdit": ".annotation_edit", "AnnotationEditLinks": ".annotation_edit_links", "AnnotationLinkResponse": ".annotation_link_response", "AnnotationLinks": ".annotation_links", "AnnotationQuery": ".annotation_query", "AnnotationQueryLinks": ".annotation_query_links", "AnnotationResponse": ".annotation_response", "AnnotationsResponse": ".annotations_response", "Application": ".application", "ApplicationArtifactFlags": ".application_artifact_flags", "ApplicationArtifactQueryFlags": ".application_artifact_query_flags", "ApplicationCatalogPreset": ".application_catalog_preset", "ApplicationCatalogPresetResponse": ".application_catalog_preset_response", "ApplicationCatalogPresetsResponse": ".application_catalog_presets_response", "ApplicationCatalogTemplate": ".application_catalog_template", "ApplicationCatalogTemplateResponse": ".application_catalog_template_response", "ApplicationCatalogTemplatesResponse": ".application_catalog_templates_response", "ApplicationCatalogType": ".application_catalog_type", "ApplicationCatalogTypesResponse": ".application_catalog_types_response", "ApplicationCreate": ".application_create", "ApplicationEdit": ".application_edit", "ApplicationFlags": ".application_flags", "ApplicationFork": ".application_fork", "ApplicationQuery": ".application_query", "ApplicationResponse": ".application_response", "ApplicationRevision": ".application_revision", "ApplicationRevisionCommit": ".application_revision_commit", "ApplicationRevisionCreate": ".application_revision_create", "ApplicationRevisionDataInput": ".application_revision_data_input", "ApplicationRevisionDataInputHeadersValue": ".application_revision_data_input_headers_value", "ApplicationRevisionDataInputRuntime": ".application_revision_data_input_runtime", "ApplicationRevisionDataOutput": ".application_revision_data_output", "ApplicationRevisionDataOutputHeadersValue": ".application_revision_data_output_headers_value", "ApplicationRevisionDataOutputRuntime": ".application_revision_data_output_runtime", "ApplicationRevisionEdit": ".application_revision_edit", "ApplicationRevisionFlags": ".application_revision_flags", "ApplicationRevisionFork": ".application_revision_fork", "ApplicationRevisionQuery": ".application_revision_query", "ApplicationRevisionQueryFlags": ".application_revision_query_flags", "ApplicationRevisionResolveResponse": ".application_revision_resolve_response", "ApplicationRevisionResponse": ".application_revision_response", "ApplicationRevisionsLog": ".application_revisions_log", "ApplicationRevisionsResponse": ".application_revisions_response", "ApplicationVariant": ".application_variant", "ApplicationVariantCreate": ".application_variant_create", "ApplicationVariantEdit": ".application_variant_edit", "ApplicationVariantFlags": ".application_variant_flags", "ApplicationVariantFork": ".application_variant_fork", "ApplicationVariantResponse": ".application_variant_response", "ApplicationVariantsResponse": ".application_variants_response", "ApplicationsResponse": ".applications_response", "BodyConfigsFetchVariantsConfigsFetchPost": ".body_configs_fetch_variants_configs_fetch_post", "Bucket": ".bucket", "CollectStatusResponse": ".collect_status_response", "ComparisonOperator": ".comparison_operator", "Condition": ".condition", "ConditionOperator": ".condition_operator", "ConditionOptions": ".condition_options", "ConditionValue": ".condition_value", "ConfigResponseModel": ".config_response_model", "CustomModelSettingsDto": ".custom_model_settings_dto", "CustomProviderDto": ".custom_provider_dto", "CustomProviderKind": ".custom_provider_kind", "CustomProviderSettingsDto": ".custom_provider_settings_dto", "DictOperator": ".dict_operator", "DiscoverResponse": ".discover_response", "DiscoverResponseMethodsValue": ".discover_response_methods_value", "EeSrcModelsApiOrganizationModelsOrganization": ".ee_src_models_api_organization_models_organization", "EntityRef": ".entity_ref", "Environment": ".environment", "EnvironmentCreate": ".environment_create", "EnvironmentEdit": ".environment_edit", "EnvironmentFlags": ".environment_flags", "EnvironmentQueryFlags": ".environment_query_flags", "EnvironmentResponse": ".environment_response", "EnvironmentRevision": ".environment_revision", "EnvironmentRevisionCommit": ".environment_revision_commit", "EnvironmentRevisionCreate": ".environment_revision_create", "EnvironmentRevisionData": ".environment_revision_data", "EnvironmentRevisionDelta": ".environment_revision_delta", "EnvironmentRevisionEdit": ".environment_revision_edit", "EnvironmentRevisionResolveResponse": ".environment_revision_resolve_response", "EnvironmentRevisionResponse": ".environment_revision_response", "EnvironmentRevisionsLog": ".environment_revisions_log", "EnvironmentRevisionsResponse": ".environment_revisions_response", "EnvironmentVariant": ".environment_variant", "EnvironmentVariantCreate": ".environment_variant_create", "EnvironmentVariantEdit": ".environment_variant_edit", "EnvironmentVariantResponse": ".environment_variant_response", "EnvironmentVariantsResponse": ".environment_variants_response", "EnvironmentsResponse": ".environments_response", "ErrorPolicy": ".error_policy", "EvaluationMetrics": ".evaluation_metrics", "EvaluationMetricsCreate": ".evaluation_metrics_create", "EvaluationMetricsEdit": ".evaluation_metrics_edit", "EvaluationMetricsIdsResponse": ".evaluation_metrics_ids_response", "EvaluationMetricsQuery": ".evaluation_metrics_query", "EvaluationMetricsQueryScenarioIds": ".evaluation_metrics_query_scenario_ids", "EvaluationMetricsQueryTimestamps": ".evaluation_metrics_query_timestamps", "EvaluationMetricsRefresh": ".evaluation_metrics_refresh", "EvaluationMetricsResponse": ".evaluation_metrics_response", "EvaluationQueue": ".evaluation_queue", "EvaluationQueueCreate": ".evaluation_queue_create", "EvaluationQueueData": ".evaluation_queue_data", "EvaluationQueueEdit": ".evaluation_queue_edit", "EvaluationQueueFlags": ".evaluation_queue_flags", "EvaluationQueueIdResponse": ".evaluation_queue_id_response", "EvaluationQueueIdsResponse": ".evaluation_queue_ids_response", "EvaluationQueueQuery": ".evaluation_queue_query", "EvaluationQueueQueryFlags": ".evaluation_queue_query_flags", "EvaluationQueueResponse": ".evaluation_queue_response", "EvaluationQueueScenariosQuery": ".evaluation_queue_scenarios_query", "EvaluationQueuesResponse": ".evaluation_queues_response", "EvaluationResult": ".evaluation_result", "EvaluationResultCreate": ".evaluation_result_create", "EvaluationResultEdit": ".evaluation_result_edit", "EvaluationResultIdResponse": ".evaluation_result_id_response", "EvaluationResultIdsResponse": ".evaluation_result_ids_response", "EvaluationResultQuery": ".evaluation_result_query", "EvaluationResultResponse": ".evaluation_result_response", "EvaluationResultsResponse": ".evaluation_results_response", "EvaluationRun": ".evaluation_run", "EvaluationRunCreate": ".evaluation_run_create", "EvaluationRunData": ".evaluation_run_data", "EvaluationRunDataConcurrency": ".evaluation_run_data_concurrency", "EvaluationRunDataMapping": ".evaluation_run_data_mapping", "EvaluationRunDataMappingColumn": ".evaluation_run_data_mapping_column", "EvaluationRunDataMappingStep": ".evaluation_run_data_mapping_step", "EvaluationRunDataStep": ".evaluation_run_data_step", "EvaluationRunDataStepInput": ".evaluation_run_data_step_input", "EvaluationRunDataStepOrigin": ".evaluation_run_data_step_origin", "EvaluationRunDataStepType": ".evaluation_run_data_step_type", "EvaluationRunEdit": ".evaluation_run_edit", "EvaluationRunFlags": ".evaluation_run_flags", "EvaluationRunIdResponse": ".evaluation_run_id_response", "EvaluationRunIdsRequest": ".evaluation_run_ids_request", "EvaluationRunIdsResponse": ".evaluation_run_ids_response", "EvaluationRunQuery": ".evaluation_run_query", "EvaluationRunQueryFlags": ".evaluation_run_query_flags", "EvaluationRunResponse": ".evaluation_run_response", "EvaluationRunsResponse": ".evaluation_runs_response", "EvaluationScenario": ".evaluation_scenario", "EvaluationScenarioCreate": ".evaluation_scenario_create", "EvaluationScenarioEdit": ".evaluation_scenario_edit", "EvaluationScenarioIdResponse": ".evaluation_scenario_id_response", "EvaluationScenarioIdsResponse": ".evaluation_scenario_ids_response", "EvaluationScenarioQuery": ".evaluation_scenario_query", "EvaluationScenarioResponse": ".evaluation_scenario_response", "EvaluationScenariosResponse": ".evaluation_scenarios_response", "EvaluationStatus": ".evaluation_status", "Evaluator": ".evaluator", "EvaluatorArtifactFlags": ".evaluator_artifact_flags", "EvaluatorArtifactQueryFlags": ".evaluator_artifact_query_flags", "EvaluatorCatalogPreset": ".evaluator_catalog_preset", "EvaluatorCatalogPresetResponse": ".evaluator_catalog_preset_response", "EvaluatorCatalogPresetsResponse": ".evaluator_catalog_presets_response", "EvaluatorCatalogTemplate": ".evaluator_catalog_template", "EvaluatorCatalogTemplateResponse": ".evaluator_catalog_template_response", "EvaluatorCatalogTemplatesResponse": ".evaluator_catalog_templates_response", "EvaluatorCatalogType": ".evaluator_catalog_type", "EvaluatorCatalogTypesResponse": ".evaluator_catalog_types_response", "EvaluatorCreate": ".evaluator_create", "EvaluatorEdit": ".evaluator_edit", "EvaluatorFlags": ".evaluator_flags", "EvaluatorFork": ".evaluator_fork", "EvaluatorQuery": ".evaluator_query", "EvaluatorResponse": ".evaluator_response", "EvaluatorRevision": ".evaluator_revision", "EvaluatorRevisionCommit": ".evaluator_revision_commit", "EvaluatorRevisionCreate": ".evaluator_revision_create", "EvaluatorRevisionDataInput": ".evaluator_revision_data_input", "EvaluatorRevisionDataInputHeadersValue": ".evaluator_revision_data_input_headers_value", "EvaluatorRevisionDataInputRuntime": ".evaluator_revision_data_input_runtime", "EvaluatorRevisionDataOutput": ".evaluator_revision_data_output", "EvaluatorRevisionDataOutputHeadersValue": ".evaluator_revision_data_output_headers_value", "EvaluatorRevisionDataOutputRuntime": ".evaluator_revision_data_output_runtime", "EvaluatorRevisionEdit": ".evaluator_revision_edit", "EvaluatorRevisionFlags": ".evaluator_revision_flags", "EvaluatorRevisionFork": ".evaluator_revision_fork", "EvaluatorRevisionQuery": ".evaluator_revision_query", "EvaluatorRevisionQueryFlags": ".evaluator_revision_query_flags", "EvaluatorRevisionResolveResponse": ".evaluator_revision_resolve_response", "EvaluatorRevisionResponse": ".evaluator_revision_response", "EvaluatorRevisionsLog": ".evaluator_revisions_log", "EvaluatorRevisionsResponse": ".evaluator_revisions_response", "EvaluatorTemplate": ".evaluator_template", "EvaluatorTemplatesResponse": ".evaluator_templates_response", "EvaluatorVariant": ".evaluator_variant", "EvaluatorVariantCreate": ".evaluator_variant_create", "EvaluatorVariantEdit": ".evaluator_variant_edit", "EvaluatorVariantFlags": ".evaluator_variant_flags", "EvaluatorVariantFork": ".evaluator_variant_fork", "EvaluatorVariantResponse": ".evaluator_variant_response", "EvaluatorVariantsResponse": ".evaluator_variants_response", "EvaluatorsResponse": ".evaluators_response", "Event": ".event", "EventQuery": ".event_query", "EventType": ".event_type", "EventsQueryResponse": ".events_query_response", "ExistenceOperator": ".existence_operator", "FilteringInput": ".filtering_input", "FilteringInputConditionsItem": ".filtering_input_conditions_item", "FilteringOutput": ".filtering_output", "FilteringOutputConditionsItem": ".filtering_output_conditions_item", "Focus": ".focus", "Folder": ".folder", "FolderCreate": ".folder_create", "FolderEdit": ".folder_edit", "FolderIdResponse": ".folder_id_response", "FolderKind": ".folder_kind", "FolderQuery": ".folder_query", "FolderQueryKinds": ".folder_query_kinds", "FolderResponse": ".folder_response", "FoldersResponse": ".folders_response", "Format": ".format", "Formatting": ".formatting", typing.Any: ".full_json_input", typing.Any: ".full_json_output", "Header": ".header", "HttpValidationError": ".http_validation_error", "InviteRequest": ".invite_request", "Invocation": ".invocation", "InvocationCreate": ".invocation_create", "InvocationCreateLinks": ".invocation_create_links", "InvocationEdit": ".invocation_edit", "InvocationEditLinks": ".invocation_edit_links", "InvocationLinkResponse": ".invocation_link_response", "InvocationLinks": ".invocation_links", "InvocationQuery": ".invocation_query", "InvocationQueryLinks": ".invocation_query_links", "InvocationResponse": ".invocation_response", "InvocationsResponse": ".invocations_response", "JsonSchemasInput": ".json_schemas_input", "JsonSchemasOutput": ".json_schemas_output", typing.Any: ".label_json_input", typing.Any: ".label_json_output", "LegacyLifecycleDto": ".legacy_lifecycle_dto", "ListApiKeysResponse": ".list_api_keys_response", "ListOperator": ".list_operator", "ListOptions": ".list_options", "LogicalOperator": ".logical_operator", "MetricSpec": ".metric_spec", "MetricType": ".metric_type", "MetricsBucket": ".metrics_bucket", "NumericOperator": ".numeric_operator", "OTelEventInput": ".o_tel_event_input", "OTelEventInputTimestamp": ".o_tel_event_input_timestamp", "OTelEventOutput": ".o_tel_event_output", "OTelEventOutputTimestamp": ".o_tel_event_output_timestamp", "OTelHashInput": ".o_tel_hash_input", "OTelHashOutput": ".o_tel_hash_output", "OTelLinkInput": ".o_tel_link_input", "OTelLinkOutput": ".o_tel_link_output", "OTelLinksResponse": ".o_tel_links_response", "OTelReferenceInput": ".o_tel_reference_input", "OTelReferenceOutput": ".o_tel_reference_output", "OTelSpanKind": ".o_tel_span_kind", "OTelStatusCode": ".o_tel_status_code", "OTelTracingRequest": ".o_tel_tracing_request", "OTelTracingResponse": ".o_tel_tracing_response", "OldAnalyticsResponse": ".old_analytics_response", "OrganizationDetails": ".organization_details", "OrganizationDomainResponse": ".organization_domain_response", "OrganizationProviderResponse": ".organization_provider_response", "OrganizationUpdate": ".organization_update", "OssSrcModelsApiOrganizationModelsOrganization": ".oss_src_models_api_organization_models_organization", "Permission": ".permission", "ProjectsResponse": ".projects_response", "QueriesResponse": ".queries_response", "Query": ".query", "QueryCreate": ".query_create", "QueryEdit": ".query_edit", "QueryFlags": ".query_flags", "QueryQueryFlags": ".query_query_flags", "QueryResponse": ".query_response", "QueryRevision": ".query_revision", "QueryRevisionCommit": ".query_revision_commit", "QueryRevisionCreate": ".query_revision_create", "QueryRevisionDataInput": ".query_revision_data_input", "QueryRevisionDataOutput": ".query_revision_data_output", "QueryRevisionEdit": ".query_revision_edit", "QueryRevisionQuery": ".query_revision_query", "QueryRevisionResponse": ".query_revision_response", "QueryRevisionsLog": ".query_revisions_log", "QueryRevisionsResponse": ".query_revisions_response", "QueryVariant": ".query_variant", "QueryVariantCreate": ".query_variant_create", "QueryVariantEdit": ".query_variant_edit", "QueryVariantQuery": ".query_variant_query", "QueryVariantResponse": ".query_variant_response", "QueryVariantsResponse": ".query_variants_response", "Reference": ".reference", "ReferenceRequestModelInput": ".reference_request_model_input", "ReferenceRequestModelOutput": ".reference_request_model_output", "RequestType": ".request_type", "ResolutionInfo": ".resolution_info", "RevisionFork": ".revision_fork", "SecretDto": ".secret_dto", "SecretDtoData": ".secret_dto_data", "SecretKind": ".secret_kind", "SecretResponseDto": ".secret_response_dto", "SecretResponseDtoData": ".secret_response_dto_data", "SessionIdsResponse": ".session_ids_response", "SimpleApplication": ".simple_application", "SimpleApplicationCreate": ".simple_application_create", "SimpleApplicationDataInput": ".simple_application_data_input", "SimpleApplicationDataInputHeadersValue": ".simple_application_data_input_headers_value", "SimpleApplicationDataInputRuntime": ".simple_application_data_input_runtime", "SimpleApplicationDataOutput": ".simple_application_data_output", "SimpleApplicationDataOutputHeadersValue": ".simple_application_data_output_headers_value", "SimpleApplicationDataOutputRuntime": ".simple_application_data_output_runtime", "SimpleApplicationEdit": ".simple_application_edit", "SimpleApplicationFlags": ".simple_application_flags", "SimpleApplicationQuery": ".simple_application_query", "SimpleApplicationQueryFlags": ".simple_application_query_flags", "SimpleApplicationResponse": ".simple_application_response", "SimpleApplicationsResponse": ".simple_applications_response", "SimpleEnvironment": ".simple_environment", "SimpleEnvironmentCreate": ".simple_environment_create", "SimpleEnvironmentEdit": ".simple_environment_edit", "SimpleEnvironmentQuery": ".simple_environment_query", "SimpleEnvironmentResponse": ".simple_environment_response", "SimpleEnvironmentsResponse": ".simple_environments_response", "SimpleEvaluation": ".simple_evaluation", "SimpleEvaluationCreate": ".simple_evaluation_create", "SimpleEvaluationData": ".simple_evaluation_data", "SimpleEvaluationDataApplicationSteps": ".simple_evaluation_data_application_steps", "SimpleEvaluationDataApplicationStepsOneValue": ".simple_evaluation_data_application_steps_one_value", "SimpleEvaluationDataEvaluatorSteps": ".simple_evaluation_data_evaluator_steps", "SimpleEvaluationDataEvaluatorStepsOneValue": ".simple_evaluation_data_evaluator_steps_one_value", "SimpleEvaluationDataQuerySteps": ".simple_evaluation_data_query_steps", "SimpleEvaluationDataQueryStepsOneValue": ".simple_evaluation_data_query_steps_one_value", "SimpleEvaluationDataTestsetSteps": ".simple_evaluation_data_testset_steps", "SimpleEvaluationDataTestsetStepsOneValue": ".simple_evaluation_data_testset_steps_one_value", "SimpleEvaluationEdit": ".simple_evaluation_edit", "SimpleEvaluationIdResponse": ".simple_evaluation_id_response", "SimpleEvaluationQuery": ".simple_evaluation_query", "SimpleEvaluationResponse": ".simple_evaluation_response", "SimpleEvaluationsResponse": ".simple_evaluations_response", "SimpleEvaluator": ".simple_evaluator", "SimpleEvaluatorCreate": ".simple_evaluator_create", "SimpleEvaluatorDataInput": ".simple_evaluator_data_input", "SimpleEvaluatorDataInputHeadersValue": ".simple_evaluator_data_input_headers_value", "SimpleEvaluatorDataInputRuntime": ".simple_evaluator_data_input_runtime", "SimpleEvaluatorDataOutput": ".simple_evaluator_data_output", "SimpleEvaluatorDataOutputHeadersValue": ".simple_evaluator_data_output_headers_value", "SimpleEvaluatorDataOutputRuntime": ".simple_evaluator_data_output_runtime", "SimpleEvaluatorEdit": ".simple_evaluator_edit", "SimpleEvaluatorFlags": ".simple_evaluator_flags", "SimpleEvaluatorQuery": ".simple_evaluator_query", "SimpleEvaluatorQueryFlags": ".simple_evaluator_query_flags", "SimpleEvaluatorResponse": ".simple_evaluator_response", "SimpleEvaluatorsResponse": ".simple_evaluators_response", "SimpleQueriesResponse": ".simple_queries_response", "SimpleQuery": ".simple_query", "SimpleQueryCreate": ".simple_query_create", "SimpleQueryEdit": ".simple_query_edit", "SimpleQueryQuery": ".simple_query_query", "SimpleQueryResponse": ".simple_query_response", "SimpleQueue": ".simple_queue", "SimpleQueueCreate": ".simple_queue_create", "SimpleQueueData": ".simple_queue_data", "SimpleQueueDataEvaluators": ".simple_queue_data_evaluators", "SimpleQueueDataEvaluatorsOneValue": ".simple_queue_data_evaluators_one_value", "SimpleQueueIdResponse": ".simple_queue_id_response", "SimpleQueueKind": ".simple_queue_kind", "SimpleQueueQuery": ".simple_queue_query", "SimpleQueueResponse": ".simple_queue_response", "SimpleQueueScenariosQuery": ".simple_queue_scenarios_query", "SimpleQueueScenariosResponse": ".simple_queue_scenarios_response", "SimpleQueueSettings": ".simple_queue_settings", "SimpleQueuesResponse": ".simple_queues_response", "SimpleTestset": ".simple_testset", "SimpleTestsetCreate": ".simple_testset_create", "SimpleTestsetEdit": ".simple_testset_edit", "SimpleTestsetQuery": ".simple_testset_query", "SimpleTestsetResponse": ".simple_testset_response", "SimpleTestsetsResponse": ".simple_testsets_response", "SimpleTrace": ".simple_trace", "SimpleTraceChannel": ".simple_trace_channel", "SimpleTraceCreate": ".simple_trace_create", "SimpleTraceCreateLinks": ".simple_trace_create_links", "SimpleTraceEdit": ".simple_trace_edit", "SimpleTraceEditLinks": ".simple_trace_edit_links", "SimpleTraceKind": ".simple_trace_kind", "SimpleTraceLinkResponse": ".simple_trace_link_response", "SimpleTraceLinks": ".simple_trace_links", "SimpleTraceOrigin": ".simple_trace_origin", "SimpleTraceQuery": ".simple_trace_query", "SimpleTraceQueryLinks": ".simple_trace_query_links", "SimpleTraceReferences": ".simple_trace_references", "SimpleTraceResponse": ".simple_trace_response", "SimpleTracesResponse": ".simple_traces_response", "SimpleWorkflow": ".simple_workflow", "SimpleWorkflowCreate": ".simple_workflow_create", "SimpleWorkflowDataInput": ".simple_workflow_data_input", "SimpleWorkflowDataInputHeadersValue": ".simple_workflow_data_input_headers_value", "SimpleWorkflowDataInputRuntime": ".simple_workflow_data_input_runtime", "SimpleWorkflowDataOutput": ".simple_workflow_data_output", "SimpleWorkflowDataOutputHeadersValue": ".simple_workflow_data_output_headers_value", "SimpleWorkflowDataOutputRuntime": ".simple_workflow_data_output_runtime", "SimpleWorkflowEdit": ".simple_workflow_edit", "SimpleWorkflowFlags": ".simple_workflow_flags", "SimpleWorkflowQuery": ".simple_workflow_query", "SimpleWorkflowQueryFlags": ".simple_workflow_query_flags", "SimpleWorkflowResponse": ".simple_workflow_response", "SimpleWorkflowsResponse": ".simple_workflows_response", "SpanInput": ".span_input", "SpanInputEndTime": ".span_input_end_time", "SpanInputStartTime": ".span_input_start_time", "SpanOutput": ".span_output", "SpanOutputEndTime": ".span_output_end_time", "SpanOutputStartTime": ".span_output_start_time", "SpanResponse": ".span_response", "SpanType": ".span_type", "SpansNodeInput": ".spans_node_input", "SpansNodeInputEndTime": ".spans_node_input_end_time", "SpansNodeInputSpansValue": ".spans_node_input_spans_value", "SpansNodeInputStartTime": ".spans_node_input_start_time", "SpansNodeOutput": ".spans_node_output", "SpansNodeOutputEndTime": ".spans_node_output_end_time", "SpansNodeOutputSpansValue": ".spans_node_output_spans_value", "SpansNodeOutputStartTime": ".spans_node_output_start_time", "SpansResponse": ".spans_response", "SpansTreeInput": ".spans_tree_input", "SpansTreeInputSpansValue": ".spans_tree_input_spans_value", "SpansTreeOutput": ".spans_tree_output", "SpansTreeOutputSpansValue": ".spans_tree_output_spans_value", "SsoProviderDto": ".sso_provider_dto", "SsoProviderInfo": ".sso_provider_info", "SsoProviderSettingsDto": ".sso_provider_settings_dto", "SsoProviders": ".sso_providers", "StandardProviderDto": ".standard_provider_dto", "StandardProviderKind": ".standard_provider_kind", "StandardProviderSettingsDto": ".standard_provider_settings_dto", "Status": ".status", "StringOperator": ".string_operator", "TestcaseInput": ".testcase_input", "TestcaseOutput": ".testcase_output", "TestcaseResponse": ".testcase_response", "TestcasesResponse": ".testcases_response", "Testset": ".testset", "TestsetCreate": ".testset_create", "TestsetEdit": ".testset_edit", "TestsetFlags": ".testset_flags", "TestsetQuery": ".testset_query", "TestsetResponse": ".testset_response", "TestsetRevision": ".testset_revision", "TestsetRevisionCommit": ".testset_revision_commit", "TestsetRevisionCreate": ".testset_revision_create", "TestsetRevisionDataInput": ".testset_revision_data_input", "TestsetRevisionDataOutput": ".testset_revision_data_output", "TestsetRevisionDelta": ".testset_revision_delta", "TestsetRevisionDeltaColumns": ".testset_revision_delta_columns", "TestsetRevisionDeltaRows": ".testset_revision_delta_rows", "TestsetRevisionEdit": ".testset_revision_edit", "TestsetRevisionQuery": ".testset_revision_query", "TestsetRevisionResponse": ".testset_revision_response", "TestsetRevisionsLog": ".testset_revisions_log", "TestsetRevisionsResponse": ".testset_revisions_response", "TestsetVariant": ".testset_variant", "TestsetVariantCreate": ".testset_variant_create", "TestsetVariantEdit": ".testset_variant_edit", "TestsetVariantQuery": ".testset_variant_query", "TestsetVariantResponse": ".testset_variant_response", "TestsetVariantsResponse": ".testset_variants_response", "TestsetsResponse": ".testsets_response", "TextOptions": ".text_options", "ToolAuthScheme": ".tool_auth_scheme", "ToolCallData": ".tool_call_data", "ToolCallFunction": ".tool_call_function", "ToolCallResponse": ".tool_call_response", "ToolCatalogAction": ".tool_catalog_action", "ToolCatalogActionDetails": ".tool_catalog_action_details", "ToolCatalogActionResponse": ".tool_catalog_action_response", "ToolCatalogActionResponseAction": ".tool_catalog_action_response_action", "ToolCatalogActionsResponse": ".tool_catalog_actions_response", "ToolCatalogActionsResponseActionsItem": ".tool_catalog_actions_response_actions_item", "ToolCatalogIntegration": ".tool_catalog_integration", "ToolCatalogIntegrationDetails": ".tool_catalog_integration_details", "ToolCatalogIntegrationResponse": ".tool_catalog_integration_response", "ToolCatalogIntegrationResponseIntegration": ".tool_catalog_integration_response_integration", "ToolCatalogIntegrationsResponse": ".tool_catalog_integrations_response", "ToolCatalogIntegrationsResponseIntegrationsItem": ".tool_catalog_integrations_response_integrations_item", "ToolCatalogProvider": ".tool_catalog_provider", "ToolCatalogProviderDetails": ".tool_catalog_provider_details", "ToolCatalogProviderResponse": ".tool_catalog_provider_response", "ToolCatalogProviderResponseProvider": ".tool_catalog_provider_response_provider", "ToolCatalogProvidersResponse": ".tool_catalog_providers_response", "ToolCatalogProvidersResponseProvidersItem": ".tool_catalog_providers_response_providers_item", "ToolConnection": ".tool_connection", "ToolConnectionCreate": ".tool_connection_create", "ToolConnectionCreateData": ".tool_connection_create_data", "ToolConnectionResponse": ".tool_connection_response", "ToolConnectionStatus": ".tool_connection_status", "ToolConnectionsResponse": ".tool_connections_response", "ToolProviderKind": ".tool_provider_kind", "ToolResult": ".tool_result", "ToolResultData": ".tool_result_data", "TraceIdResponse": ".trace_id_response", "TraceIdsResponse": ".trace_ids_response", "TraceInput": ".trace_input", "TraceInputSpansValue": ".trace_input_spans_value", "TraceOutput": ".trace_output", "TraceOutputSpansValue": ".trace_output_spans_value", "TraceRequest": ".trace_request", "TraceResponse": ".trace_response", "TraceType": ".trace_type", "TracesRequest": ".traces_request", "TracesResponse": ".traces_response", "TracingQuery": ".tracing_query", "UserIdsResponse": ".user_ids_response", "ValidationError": ".validation_error", "ValidationErrorLocItem": ".validation_error_loc_item", "VariantFork": ".variant_fork", "WebhookDeliveriesResponse": ".webhook_deliveries_response", "WebhookDelivery": ".webhook_delivery", "WebhookDeliveryCreate": ".webhook_delivery_create", "WebhookDeliveryData": ".webhook_delivery_data", "WebhookDeliveryQuery": ".webhook_delivery_query", "WebhookDeliveryResponse": ".webhook_delivery_response", "WebhookDeliveryResponseInfo": ".webhook_delivery_response_info", "WebhookEventType": ".webhook_event_type", "WebhookProviderDto": ".webhook_provider_dto", "WebhookProviderSettingsDto": ".webhook_provider_settings_dto", "WebhookSubscription": ".webhook_subscription", "WebhookSubscriptionCreate": ".webhook_subscription_create", "WebhookSubscriptionData": ".webhook_subscription_data", "WebhookSubscriptionDataAuthMode": ".webhook_subscription_data_auth_mode", "WebhookSubscriptionEdit": ".webhook_subscription_edit", "WebhookSubscriptionQuery": ".webhook_subscription_query", "WebhookSubscriptionResponse": ".webhook_subscription_response", "WebhookSubscriptionsResponse": ".webhook_subscriptions_response", "Windowing": ".windowing", "WindowingOrder": ".windowing_order", "Workflow": ".workflow", "WorkflowArtifactFlags": ".workflow_artifact_flags", "WorkflowCatalogFlags": ".workflow_catalog_flags", "WorkflowCatalogPreset": ".workflow_catalog_preset", "WorkflowCatalogPresetResponse": ".workflow_catalog_preset_response", "WorkflowCatalogPresetsResponse": ".workflow_catalog_presets_response", "WorkflowCatalogTemplate": ".workflow_catalog_template", "WorkflowCatalogTemplateResponse": ".workflow_catalog_template_response", "WorkflowCatalogTemplatesResponse": ".workflow_catalog_templates_response", "WorkflowCatalogType": ".workflow_catalog_type", "WorkflowCatalogTypeResponse": ".workflow_catalog_type_response", "WorkflowCatalogTypesResponse": ".workflow_catalog_types_response", "WorkflowCreate": ".workflow_create", "WorkflowEdit": ".workflow_edit", "WorkflowFlags": ".workflow_flags", "WorkflowFork": ".workflow_fork", "WorkflowResponse": ".workflow_response", "WorkflowRevisionCommit": ".workflow_revision_commit", "WorkflowRevisionCreate": ".workflow_revision_create", "WorkflowRevisionDataInput": ".workflow_revision_data_input", "WorkflowRevisionDataInputHeadersValue": ".workflow_revision_data_input_headers_value", "WorkflowRevisionDataInputRuntime": ".workflow_revision_data_input_runtime", "WorkflowRevisionDataOutput": ".workflow_revision_data_output", "WorkflowRevisionDataOutputHeadersValue": ".workflow_revision_data_output_headers_value", "WorkflowRevisionDataOutputRuntime": ".workflow_revision_data_output_runtime", "WorkflowRevisionEdit": ".workflow_revision_edit", "WorkflowRevisionFlags": ".workflow_revision_flags", "WorkflowRevisionFork": ".workflow_revision_fork", "WorkflowRevisionInput": ".workflow_revision_input", "WorkflowRevisionOutput": ".workflow_revision_output", "WorkflowRevisionResolveResponse": ".workflow_revision_resolve_response", "WorkflowRevisionResponse": ".workflow_revision_response", "WorkflowRevisionsLog": ".workflow_revisions_log", "WorkflowRevisionsResponse": ".workflow_revisions_response", "WorkflowVariant": ".workflow_variant", "WorkflowVariantCreate": ".workflow_variant_create", "WorkflowVariantEdit": ".workflow_variant_edit", "WorkflowVariantFlags": ".workflow_variant_flags", "WorkflowVariantFork": ".workflow_variant_fork", "WorkflowVariantResponse": ".workflow_variant_response", "WorkflowVariantsResponse": ".workflow_variants_response", "WorkflowsResponse": ".workflows_response", "Workspace": ".workspace", "WorkspaceMemberResponse": ".workspace_member_response", "WorkspacePermission": ".workspace_permission", "WorkspaceResponse": ".workspace_response"} def __getattr__(attr_name: str) -> typing.Any: module_name = _dynamic_imports.get(attr_name) if module_name is None: @@ -661,4 +662,4 @@ def __getattr__(attr_name: str) -> typing.Any: def __dir__(): lazy_attrs = list(_dynamic_imports.keys()) return sorted(lazy_attrs) -__all__ = ["AdminAccountCreateOptions", "AdminAccountRead", "AdminAccountsCreate", "AdminAccountsDelete", "AdminAccountsDeleteTarget", "AdminAccountsResponse", "AdminApiKeyCreate", "AdminApiKeyResponse", "AdminDeleteResponse", "AdminDeletedEntities", "AdminDeletedEntity", "AdminOrganizationCreate", "AdminOrganizationMembershipCreate", "AdminOrganizationMembershipRead", "AdminOrganizationRead", "AdminProjectCreate", "AdminProjectMembershipCreate", "AdminProjectMembershipRead", "AdminProjectRead", "AdminSimpleAccountCreate", "AdminSimpleAccountDeleteEntry", "AdminSimpleAccountRead", "AdminSimpleAccountsApiKeysCreate", "AdminSimpleAccountsCreate", "AdminSimpleAccountsDelete", "AdminSimpleAccountsOrganizationsCreate", "AdminSimpleAccountsOrganizationsMembershipsCreate", "AdminSimpleAccountsOrganizationsTransferOwnership", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse", "AdminSimpleAccountsProjectsCreate", "AdminSimpleAccountsProjectsMembershipsCreate", "AdminSimpleAccountsResponse", "AdminSimpleAccountsUsersCreate", "AdminSimpleAccountsUsersIdentitiesCreate", "AdminSimpleAccountsUsersResetPassword", "AdminSimpleAccountsWorkspacesCreate", "AdminSimpleAccountsWorkspacesMembershipsCreate", "AdminStructuredError", "AdminSubscriptionCreate", "AdminSubscriptionRead", "AdminUserCreate", "AdminUserIdentityCreate", "AdminUserIdentityRead", "AdminUserIdentityReadStatus", "AdminUserRead", "AdminWorkspaceCreate", "AdminWorkspaceMembershipCreate", "AdminWorkspaceMembershipRead", "AdminWorkspaceRead", "Analytics", "AnalyticsResponse", "Annotation", "AnnotationCreate", "AnnotationCreateLinks", "AnnotationEdit", "AnnotationEditLinks", "AnnotationLinkResponse", "AnnotationLinks", "AnnotationQuery", "AnnotationQueryLinks", "AnnotationResponse", "AnnotationsResponse", "Application", "ApplicationArtifactFlags", "ApplicationArtifactQueryFlags", "ApplicationCatalogPreset", "ApplicationCatalogPresetResponse", "ApplicationCatalogPresetsResponse", "ApplicationCatalogTemplate", "ApplicationCatalogTemplateResponse", "ApplicationCatalogTemplatesResponse", "ApplicationCatalogType", "ApplicationCatalogTypesResponse", "ApplicationCreate", "ApplicationEdit", "ApplicationFlags", "ApplicationFork", "ApplicationQuery", "ApplicationResponse", "ApplicationRevision", "ApplicationRevisionCommit", "ApplicationRevisionCreate", "ApplicationRevisionDataInput", "ApplicationRevisionDataInputHeadersValue", "ApplicationRevisionDataInputRuntime", "ApplicationRevisionDataOutput", "ApplicationRevisionDataOutputHeadersValue", "ApplicationRevisionDataOutputRuntime", "ApplicationRevisionEdit", "ApplicationRevisionFlags", "ApplicationRevisionFork", "ApplicationRevisionQuery", "ApplicationRevisionQueryFlags", "ApplicationRevisionResolveResponse", "ApplicationRevisionResponse", "ApplicationRevisionsLog", "ApplicationRevisionsResponse", "ApplicationVariant", "ApplicationVariantCreate", "ApplicationVariantEdit", "ApplicationVariantFlags", "ApplicationVariantFork", "ApplicationVariantResponse", "ApplicationVariantsResponse", "ApplicationsResponse", "BodyConfigsFetchVariantsConfigsFetchPost", "Bucket", "CollectStatusResponse", "ComparisonOperator", "Condition", "ConditionOperator", "ConditionOptions", "ConditionValue", "ConfigResponseModel", "CustomModelSettingsDto", "CustomProviderDto", "CustomProviderKind", "CustomProviderSettingsDto", "DictOperator", "DiscoverResponse", "DiscoverResponseMethodsValue", "EeSrcModelsApiOrganizationModelsOrganization", "EntityRef", "Environment", "EnvironmentCreate", "EnvironmentEdit", "EnvironmentFlags", "EnvironmentQueryFlags", "EnvironmentResponse", "EnvironmentRevision", "EnvironmentRevisionCommit", "EnvironmentRevisionCreate", "EnvironmentRevisionData", "EnvironmentRevisionDelta", "EnvironmentRevisionEdit", "EnvironmentRevisionResolveResponse", "EnvironmentRevisionResponse", "EnvironmentRevisionsLog", "EnvironmentRevisionsResponse", "EnvironmentVariant", "EnvironmentVariantCreate", "EnvironmentVariantEdit", "EnvironmentVariantResponse", "EnvironmentVariantsResponse", "EnvironmentsResponse", "ErrorPolicy", "EvaluationMetrics", "EvaluationMetricsCreate", "EvaluationMetricsEdit", "EvaluationMetricsIdsResponse", "EvaluationMetricsQuery", "EvaluationMetricsQueryScenarioIds", "EvaluationMetricsQueryTimestamps", "EvaluationMetricsRefresh", "EvaluationMetricsResponse", "EvaluationQueue", "EvaluationQueueCreate", "EvaluationQueueData", "EvaluationQueueEdit", "EvaluationQueueFlags", "EvaluationQueueIdResponse", "EvaluationQueueIdsResponse", "EvaluationQueueQuery", "EvaluationQueueQueryFlags", "EvaluationQueueResponse", "EvaluationQueueScenariosQuery", "EvaluationQueuesResponse", "EvaluationResult", "EvaluationResultCreate", "EvaluationResultEdit", "EvaluationResultIdResponse", "EvaluationResultIdsResponse", "EvaluationResultQuery", "EvaluationResultResponse", "EvaluationResultsResponse", "EvaluationRun", "EvaluationRunCreate", "EvaluationRunData", "EvaluationRunDataMapping", "EvaluationRunDataMappingColumn", "EvaluationRunDataMappingStep", "EvaluationRunDataStep", "EvaluationRunDataStepInput", "EvaluationRunDataStepOrigin", "EvaluationRunDataStepType", "EvaluationRunEdit", "EvaluationRunFlags", "EvaluationRunIdResponse", "EvaluationRunIdsRequest", "EvaluationRunIdsResponse", "EvaluationRunQuery", "EvaluationRunQueryFlags", "EvaluationRunResponse", "EvaluationRunsResponse", "EvaluationScenario", "EvaluationScenarioCreate", "EvaluationScenarioEdit", "EvaluationScenarioIdResponse", "EvaluationScenarioIdsResponse", "EvaluationScenarioQuery", "EvaluationScenarioResponse", "EvaluationScenariosResponse", "EvaluationStatus", "Evaluator", "EvaluatorArtifactFlags", "EvaluatorArtifactQueryFlags", "EvaluatorCatalogPreset", "EvaluatorCatalogPresetResponse", "EvaluatorCatalogPresetsResponse", "EvaluatorCatalogTemplate", "EvaluatorCatalogTemplateResponse", "EvaluatorCatalogTemplatesResponse", "EvaluatorCatalogType", "EvaluatorCatalogTypesResponse", "EvaluatorCreate", "EvaluatorEdit", "EvaluatorFlags", "EvaluatorFork", "EvaluatorQuery", "EvaluatorResponse", "EvaluatorRevision", "EvaluatorRevisionCommit", "EvaluatorRevisionCreate", "EvaluatorRevisionDataInput", "EvaluatorRevisionDataInputHeadersValue", "EvaluatorRevisionDataInputRuntime", "EvaluatorRevisionDataOutput", "EvaluatorRevisionDataOutputHeadersValue", "EvaluatorRevisionDataOutputRuntime", "EvaluatorRevisionEdit", "EvaluatorRevisionFlags", "EvaluatorRevisionFork", "EvaluatorRevisionQuery", "EvaluatorRevisionQueryFlags", "EvaluatorRevisionResolveResponse", "EvaluatorRevisionResponse", "EvaluatorRevisionsLog", "EvaluatorRevisionsResponse", "EvaluatorTemplate", "EvaluatorTemplatesResponse", "EvaluatorVariant", "EvaluatorVariantCreate", "EvaluatorVariantEdit", "EvaluatorVariantFlags", "EvaluatorVariantFork", "EvaluatorVariantResponse", "EvaluatorVariantsResponse", "EvaluatorsResponse", "Event", "EventQuery", "EventType", "EventsQueryResponse", "ExistenceOperator", "FilteringInput", "FilteringInputConditionsItem", "FilteringOutput", "FilteringOutputConditionsItem", "Focus", "Folder", "FolderCreate", "FolderEdit", "FolderIdResponse", "FolderKind", "FolderQuery", "FolderQueryKinds", "FolderResponse", "FoldersResponse", "Format", "Formatting", typing.Any, typing.Any, "Header", "HttpValidationError", "InviteRequest", "Invocation", "InvocationCreate", "InvocationCreateLinks", "InvocationEdit", "InvocationEditLinks", "InvocationLinkResponse", "InvocationLinks", "InvocationQuery", "InvocationQueryLinks", "InvocationResponse", "InvocationsResponse", "JsonSchemasInput", "JsonSchemasOutput", typing.Any, typing.Any, "LegacyLifecycleDto", "ListApiKeysResponse", "ListOperator", "ListOptions", "LogicalOperator", "MetricSpec", "MetricType", "MetricsBucket", "NumericOperator", "OTelEventInput", "OTelEventInputTimestamp", "OTelEventOutput", "OTelEventOutputTimestamp", "OTelHashInput", "OTelHashOutput", "OTelLinkInput", "OTelLinkOutput", "OTelLinksResponse", "OTelReferenceInput", "OTelReferenceOutput", "OTelSpanKind", "OTelStatusCode", "OTelTracingRequest", "OTelTracingResponse", "OldAnalyticsResponse", "OrganizationDetails", "OrganizationDomainResponse", "OrganizationProviderResponse", "OrganizationUpdate", "OssSrcModelsApiOrganizationModelsOrganization", "Permission", "ProjectsResponse", "QueriesResponse", "Query", "QueryCreate", "QueryEdit", "QueryFlags", "QueryQueryFlags", "QueryResponse", "QueryRevision", "QueryRevisionCommit", "QueryRevisionCreate", "QueryRevisionDataInput", "QueryRevisionDataOutput", "QueryRevisionEdit", "QueryRevisionQuery", "QueryRevisionResponse", "QueryRevisionsLog", "QueryRevisionsResponse", "QueryVariant", "QueryVariantCreate", "QueryVariantEdit", "QueryVariantQuery", "QueryVariantResponse", "QueryVariantsResponse", "Reference", "ReferenceRequestModelInput", "ReferenceRequestModelOutput", "RequestType", "ResolutionInfo", "RevisionFork", "SecretDto", "SecretDtoData", "SecretKind", "SecretResponseDto", "SecretResponseDtoData", "SessionIdsResponse", "SimpleApplication", "SimpleApplicationCreate", "SimpleApplicationDataInput", "SimpleApplicationDataInputHeadersValue", "SimpleApplicationDataInputRuntime", "SimpleApplicationDataOutput", "SimpleApplicationDataOutputHeadersValue", "SimpleApplicationDataOutputRuntime", "SimpleApplicationEdit", "SimpleApplicationFlags", "SimpleApplicationQuery", "SimpleApplicationQueryFlags", "SimpleApplicationResponse", "SimpleApplicationsResponse", "SimpleEnvironment", "SimpleEnvironmentCreate", "SimpleEnvironmentEdit", "SimpleEnvironmentQuery", "SimpleEnvironmentResponse", "SimpleEnvironmentsResponse", "SimpleEvaluation", "SimpleEvaluationCreate", "SimpleEvaluationData", "SimpleEvaluationDataApplicationSteps", "SimpleEvaluationDataApplicationStepsOneValue", "SimpleEvaluationDataEvaluatorSteps", "SimpleEvaluationDataEvaluatorStepsOneValue", "SimpleEvaluationDataQuerySteps", "SimpleEvaluationDataQueryStepsOneValue", "SimpleEvaluationDataTestsetSteps", "SimpleEvaluationDataTestsetStepsOneValue", "SimpleEvaluationEdit", "SimpleEvaluationIdResponse", "SimpleEvaluationQuery", "SimpleEvaluationResponse", "SimpleEvaluationsResponse", "SimpleEvaluator", "SimpleEvaluatorCreate", "SimpleEvaluatorDataInput", "SimpleEvaluatorDataInputHeadersValue", "SimpleEvaluatorDataInputRuntime", "SimpleEvaluatorDataOutput", "SimpleEvaluatorDataOutputHeadersValue", "SimpleEvaluatorDataOutputRuntime", "SimpleEvaluatorEdit", "SimpleEvaluatorFlags", "SimpleEvaluatorQuery", "SimpleEvaluatorQueryFlags", "SimpleEvaluatorResponse", "SimpleEvaluatorsResponse", "SimpleQueriesResponse", "SimpleQuery", "SimpleQueryCreate", "SimpleQueryEdit", "SimpleQueryQuery", "SimpleQueryResponse", "SimpleQueue", "SimpleQueueCreate", "SimpleQueueData", "SimpleQueueDataEvaluators", "SimpleQueueDataEvaluatorsOneValue", "SimpleQueueIdResponse", "SimpleQueueKind", "SimpleQueueQuery", "SimpleQueueResponse", "SimpleQueueScenariosQuery", "SimpleQueueScenariosResponse", "SimpleQueueSettings", "SimpleQueuesResponse", "SimpleTestset", "SimpleTestsetCreate", "SimpleTestsetEdit", "SimpleTestsetQuery", "SimpleTestsetResponse", "SimpleTestsetsResponse", "SimpleTrace", "SimpleTraceChannel", "SimpleTraceCreate", "SimpleTraceCreateLinks", "SimpleTraceEdit", "SimpleTraceEditLinks", "SimpleTraceKind", "SimpleTraceLinkResponse", "SimpleTraceLinks", "SimpleTraceOrigin", "SimpleTraceQuery", "SimpleTraceQueryLinks", "SimpleTraceReferences", "SimpleTraceResponse", "SimpleTracesResponse", "SimpleWorkflow", "SimpleWorkflowCreate", "SimpleWorkflowDataInput", "SimpleWorkflowDataInputHeadersValue", "SimpleWorkflowDataInputRuntime", "SimpleWorkflowDataOutput", "SimpleWorkflowDataOutputHeadersValue", "SimpleWorkflowDataOutputRuntime", "SimpleWorkflowEdit", "SimpleWorkflowFlags", "SimpleWorkflowQuery", "SimpleWorkflowQueryFlags", "SimpleWorkflowResponse", "SimpleWorkflowsResponse", "SpanInput", "SpanInputEndTime", "SpanInputStartTime", "SpanOutput", "SpanOutputEndTime", "SpanOutputStartTime", "SpanResponse", "SpanType", "SpansNodeInput", "SpansNodeInputEndTime", "SpansNodeInputSpansValue", "SpansNodeInputStartTime", "SpansNodeOutput", "SpansNodeOutputEndTime", "SpansNodeOutputSpansValue", "SpansNodeOutputStartTime", "SpansResponse", "SpansTreeInput", "SpansTreeInputSpansValue", "SpansTreeOutput", "SpansTreeOutputSpansValue", "SsoProviderDto", "SsoProviderInfo", "SsoProviderSettingsDto", "SsoProviders", "StandardProviderDto", "StandardProviderKind", "StandardProviderSettingsDto", "Status", "StringOperator", "TestcaseInput", "TestcaseOutput", "TestcaseResponse", "TestcasesResponse", "Testset", "TestsetCreate", "TestsetEdit", "TestsetFlags", "TestsetQuery", "TestsetResponse", "TestsetRevision", "TestsetRevisionCommit", "TestsetRevisionCreate", "TestsetRevisionDataInput", "TestsetRevisionDataOutput", "TestsetRevisionDelta", "TestsetRevisionDeltaColumns", "TestsetRevisionDeltaRows", "TestsetRevisionEdit", "TestsetRevisionQuery", "TestsetRevisionResponse", "TestsetRevisionsLog", "TestsetRevisionsResponse", "TestsetVariant", "TestsetVariantCreate", "TestsetVariantEdit", "TestsetVariantQuery", "TestsetVariantResponse", "TestsetVariantsResponse", "TestsetsResponse", "TextOptions", "ToolAuthScheme", "ToolCallData", "ToolCallFunction", "ToolCallResponse", "ToolCatalogAction", "ToolCatalogActionDetails", "ToolCatalogActionResponse", "ToolCatalogActionResponseAction", "ToolCatalogActionsResponse", "ToolCatalogActionsResponseActionsItem", "ToolCatalogIntegration", "ToolCatalogIntegrationDetails", "ToolCatalogIntegrationResponse", "ToolCatalogIntegrationResponseIntegration", "ToolCatalogIntegrationsResponse", "ToolCatalogIntegrationsResponseIntegrationsItem", "ToolCatalogProvider", "ToolCatalogProviderDetails", "ToolCatalogProviderResponse", "ToolCatalogProviderResponseProvider", "ToolCatalogProvidersResponse", "ToolCatalogProvidersResponseProvidersItem", "ToolConnection", "ToolConnectionCreate", "ToolConnectionCreateData", "ToolConnectionResponse", "ToolConnectionStatus", "ToolConnectionsResponse", "ToolProviderKind", "ToolResult", "ToolResultData", "TraceIdResponse", "TraceIdsResponse", "TraceInput", "TraceInputSpansValue", "TraceOutput", "TraceOutputSpansValue", "TraceRequest", "TraceResponse", "TraceType", "TracesRequest", "TracesResponse", "TracingQuery", "UserIdsResponse", "ValidationError", "ValidationErrorLocItem", "VariantFork", "WebhookDeliveriesResponse", "WebhookDelivery", "WebhookDeliveryCreate", "WebhookDeliveryData", "WebhookDeliveryQuery", "WebhookDeliveryResponse", "WebhookDeliveryResponseInfo", "WebhookEventType", "WebhookProviderDto", "WebhookProviderSettingsDto", "WebhookSubscription", "WebhookSubscriptionCreate", "WebhookSubscriptionData", "WebhookSubscriptionDataAuthMode", "WebhookSubscriptionEdit", "WebhookSubscriptionQuery", "WebhookSubscriptionResponse", "WebhookSubscriptionsResponse", "Windowing", "WindowingOrder", "Workflow", "WorkflowArtifactFlags", "WorkflowCatalogFlags", "WorkflowCatalogPreset", "WorkflowCatalogPresetResponse", "WorkflowCatalogPresetsResponse", "WorkflowCatalogTemplate", "WorkflowCatalogTemplateResponse", "WorkflowCatalogTemplatesResponse", "WorkflowCatalogType", "WorkflowCatalogTypeResponse", "WorkflowCatalogTypesResponse", "WorkflowCreate", "WorkflowEdit", "WorkflowFlags", "WorkflowFork", "WorkflowResponse", "WorkflowRevisionCommit", "WorkflowRevisionCreate", "WorkflowRevisionDataInput", "WorkflowRevisionDataInputHeadersValue", "WorkflowRevisionDataInputRuntime", "WorkflowRevisionDataOutput", "WorkflowRevisionDataOutputHeadersValue", "WorkflowRevisionDataOutputRuntime", "WorkflowRevisionEdit", "WorkflowRevisionFlags", "WorkflowRevisionFork", "WorkflowRevisionInput", "WorkflowRevisionOutput", "WorkflowRevisionResolveResponse", "WorkflowRevisionResponse", "WorkflowRevisionsLog", "WorkflowRevisionsResponse", "WorkflowVariant", "WorkflowVariantCreate", "WorkflowVariantEdit", "WorkflowVariantFlags", "WorkflowVariantFork", "WorkflowVariantResponse", "WorkflowVariantsResponse", "WorkflowsResponse", "Workspace", "WorkspaceMemberResponse", "WorkspacePermission", "WorkspaceResponse"] +__all__ = ["AdminAccountCreateOptions", "AdminAccountRead", "AdminAccountsCreate", "AdminAccountsDelete", "AdminAccountsDeleteTarget", "AdminAccountsResponse", "AdminApiKeyCreate", "AdminApiKeyResponse", "AdminDeleteResponse", "AdminDeletedEntities", "AdminDeletedEntity", "AdminOrganizationCreate", "AdminOrganizationMembershipCreate", "AdminOrganizationMembershipRead", "AdminOrganizationRead", "AdminProjectCreate", "AdminProjectMembershipCreate", "AdminProjectMembershipRead", "AdminProjectRead", "AdminSimpleAccountCreate", "AdminSimpleAccountDeleteEntry", "AdminSimpleAccountRead", "AdminSimpleAccountsApiKeysCreate", "AdminSimpleAccountsCreate", "AdminSimpleAccountsDelete", "AdminSimpleAccountsOrganizationsCreate", "AdminSimpleAccountsOrganizationsMembershipsCreate", "AdminSimpleAccountsOrganizationsTransferOwnership", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjects", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeProjectsZero", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspaces", "AdminSimpleAccountsOrganizationsTransferOwnershipIncludeWorkspacesZero", "AdminSimpleAccountsOrganizationsTransferOwnershipResponse", "AdminSimpleAccountsProjectsCreate", "AdminSimpleAccountsProjectsMembershipsCreate", "AdminSimpleAccountsResponse", "AdminSimpleAccountsUsersCreate", "AdminSimpleAccountsUsersIdentitiesCreate", "AdminSimpleAccountsUsersResetPassword", "AdminSimpleAccountsWorkspacesCreate", "AdminSimpleAccountsWorkspacesMembershipsCreate", "AdminStructuredError", "AdminSubscriptionCreate", "AdminSubscriptionRead", "AdminUserCreate", "AdminUserIdentityCreate", "AdminUserIdentityRead", "AdminUserIdentityReadStatus", "AdminUserRead", "AdminWorkspaceCreate", "AdminWorkspaceMembershipCreate", "AdminWorkspaceMembershipRead", "AdminWorkspaceRead", "Analytics", "AnalyticsResponse", "Annotation", "AnnotationCreate", "AnnotationCreateLinks", "AnnotationEdit", "AnnotationEditLinks", "AnnotationLinkResponse", "AnnotationLinks", "AnnotationQuery", "AnnotationQueryLinks", "AnnotationResponse", "AnnotationsResponse", "Application", "ApplicationArtifactFlags", "ApplicationArtifactQueryFlags", "ApplicationCatalogPreset", "ApplicationCatalogPresetResponse", "ApplicationCatalogPresetsResponse", "ApplicationCatalogTemplate", "ApplicationCatalogTemplateResponse", "ApplicationCatalogTemplatesResponse", "ApplicationCatalogType", "ApplicationCatalogTypesResponse", "ApplicationCreate", "ApplicationEdit", "ApplicationFlags", "ApplicationFork", "ApplicationQuery", "ApplicationResponse", "ApplicationRevision", "ApplicationRevisionCommit", "ApplicationRevisionCreate", "ApplicationRevisionDataInput", "ApplicationRevisionDataInputHeadersValue", "ApplicationRevisionDataInputRuntime", "ApplicationRevisionDataOutput", "ApplicationRevisionDataOutputHeadersValue", "ApplicationRevisionDataOutputRuntime", "ApplicationRevisionEdit", "ApplicationRevisionFlags", "ApplicationRevisionFork", "ApplicationRevisionQuery", "ApplicationRevisionQueryFlags", "ApplicationRevisionResolveResponse", "ApplicationRevisionResponse", "ApplicationRevisionsLog", "ApplicationRevisionsResponse", "ApplicationVariant", "ApplicationVariantCreate", "ApplicationVariantEdit", "ApplicationVariantFlags", "ApplicationVariantFork", "ApplicationVariantResponse", "ApplicationVariantsResponse", "ApplicationsResponse", "BodyConfigsFetchVariantsConfigsFetchPost", "Bucket", "CollectStatusResponse", "ComparisonOperator", "Condition", "ConditionOperator", "ConditionOptions", "ConditionValue", "ConfigResponseModel", "CustomModelSettingsDto", "CustomProviderDto", "CustomProviderKind", "CustomProviderSettingsDto", "DictOperator", "DiscoverResponse", "DiscoverResponseMethodsValue", "EeSrcModelsApiOrganizationModelsOrganization", "EntityRef", "Environment", "EnvironmentCreate", "EnvironmentEdit", "EnvironmentFlags", "EnvironmentQueryFlags", "EnvironmentResponse", "EnvironmentRevision", "EnvironmentRevisionCommit", "EnvironmentRevisionCreate", "EnvironmentRevisionData", "EnvironmentRevisionDelta", "EnvironmentRevisionEdit", "EnvironmentRevisionResolveResponse", "EnvironmentRevisionResponse", "EnvironmentRevisionsLog", "EnvironmentRevisionsResponse", "EnvironmentVariant", "EnvironmentVariantCreate", "EnvironmentVariantEdit", "EnvironmentVariantResponse", "EnvironmentVariantsResponse", "EnvironmentsResponse", "ErrorPolicy", "EvaluationMetrics", "EvaluationMetricsCreate", "EvaluationMetricsEdit", "EvaluationMetricsIdsResponse", "EvaluationMetricsQuery", "EvaluationMetricsQueryScenarioIds", "EvaluationMetricsQueryTimestamps", "EvaluationMetricsRefresh", "EvaluationMetricsResponse", "EvaluationQueue", "EvaluationQueueCreate", "EvaluationQueueData", "EvaluationQueueEdit", "EvaluationQueueFlags", "EvaluationQueueIdResponse", "EvaluationQueueIdsResponse", "EvaluationQueueQuery", "EvaluationQueueQueryFlags", "EvaluationQueueResponse", "EvaluationQueueScenariosQuery", "EvaluationQueuesResponse", "EvaluationResult", "EvaluationResultCreate", "EvaluationResultEdit", "EvaluationResultIdResponse", "EvaluationResultIdsResponse", "EvaluationResultQuery", "EvaluationResultResponse", "EvaluationResultsResponse", "EvaluationRun", "EvaluationRunCreate", "EvaluationRunData", "EvaluationRunDataConcurrency", "EvaluationRunDataMapping", "EvaluationRunDataMappingColumn", "EvaluationRunDataMappingStep", "EvaluationRunDataStep", "EvaluationRunDataStepInput", "EvaluationRunDataStepOrigin", "EvaluationRunDataStepType", "EvaluationRunEdit", "EvaluationRunFlags", "EvaluationRunIdResponse", "EvaluationRunIdsRequest", "EvaluationRunIdsResponse", "EvaluationRunQuery", "EvaluationRunQueryFlags", "EvaluationRunResponse", "EvaluationRunsResponse", "EvaluationScenario", "EvaluationScenarioCreate", "EvaluationScenarioEdit", "EvaluationScenarioIdResponse", "EvaluationScenarioIdsResponse", "EvaluationScenarioQuery", "EvaluationScenarioResponse", "EvaluationScenariosResponse", "EvaluationStatus", "Evaluator", "EvaluatorArtifactFlags", "EvaluatorArtifactQueryFlags", "EvaluatorCatalogPreset", "EvaluatorCatalogPresetResponse", "EvaluatorCatalogPresetsResponse", "EvaluatorCatalogTemplate", "EvaluatorCatalogTemplateResponse", "EvaluatorCatalogTemplatesResponse", "EvaluatorCatalogType", "EvaluatorCatalogTypesResponse", "EvaluatorCreate", "EvaluatorEdit", "EvaluatorFlags", "EvaluatorFork", "EvaluatorQuery", "EvaluatorResponse", "EvaluatorRevision", "EvaluatorRevisionCommit", "EvaluatorRevisionCreate", "EvaluatorRevisionDataInput", "EvaluatorRevisionDataInputHeadersValue", "EvaluatorRevisionDataInputRuntime", "EvaluatorRevisionDataOutput", "EvaluatorRevisionDataOutputHeadersValue", "EvaluatorRevisionDataOutputRuntime", "EvaluatorRevisionEdit", "EvaluatorRevisionFlags", "EvaluatorRevisionFork", "EvaluatorRevisionQuery", "EvaluatorRevisionQueryFlags", "EvaluatorRevisionResolveResponse", "EvaluatorRevisionResponse", "EvaluatorRevisionsLog", "EvaluatorRevisionsResponse", "EvaluatorTemplate", "EvaluatorTemplatesResponse", "EvaluatorVariant", "EvaluatorVariantCreate", "EvaluatorVariantEdit", "EvaluatorVariantFlags", "EvaluatorVariantFork", "EvaluatorVariantResponse", "EvaluatorVariantsResponse", "EvaluatorsResponse", "Event", "EventQuery", "EventType", "EventsQueryResponse", "ExistenceOperator", "FilteringInput", "FilteringInputConditionsItem", "FilteringOutput", "FilteringOutputConditionsItem", "Focus", "Folder", "FolderCreate", "FolderEdit", "FolderIdResponse", "FolderKind", "FolderQuery", "FolderQueryKinds", "FolderResponse", "FoldersResponse", "Format", "Formatting", typing.Any, typing.Any, "Header", "HttpValidationError", "InviteRequest", "Invocation", "InvocationCreate", "InvocationCreateLinks", "InvocationEdit", "InvocationEditLinks", "InvocationLinkResponse", "InvocationLinks", "InvocationQuery", "InvocationQueryLinks", "InvocationResponse", "InvocationsResponse", "JsonSchemasInput", "JsonSchemasOutput", typing.Any, typing.Any, "LegacyLifecycleDto", "ListApiKeysResponse", "ListOperator", "ListOptions", "LogicalOperator", "MetricSpec", "MetricType", "MetricsBucket", "NumericOperator", "OTelEventInput", "OTelEventInputTimestamp", "OTelEventOutput", "OTelEventOutputTimestamp", "OTelHashInput", "OTelHashOutput", "OTelLinkInput", "OTelLinkOutput", "OTelLinksResponse", "OTelReferenceInput", "OTelReferenceOutput", "OTelSpanKind", "OTelStatusCode", "OTelTracingRequest", "OTelTracingResponse", "OldAnalyticsResponse", "OrganizationDetails", "OrganizationDomainResponse", "OrganizationProviderResponse", "OrganizationUpdate", "OssSrcModelsApiOrganizationModelsOrganization", "Permission", "ProjectsResponse", "QueriesResponse", "Query", "QueryCreate", "QueryEdit", "QueryFlags", "QueryQueryFlags", "QueryResponse", "QueryRevision", "QueryRevisionCommit", "QueryRevisionCreate", "QueryRevisionDataInput", "QueryRevisionDataOutput", "QueryRevisionEdit", "QueryRevisionQuery", "QueryRevisionResponse", "QueryRevisionsLog", "QueryRevisionsResponse", "QueryVariant", "QueryVariantCreate", "QueryVariantEdit", "QueryVariantQuery", "QueryVariantResponse", "QueryVariantsResponse", "Reference", "ReferenceRequestModelInput", "ReferenceRequestModelOutput", "RequestType", "ResolutionInfo", "RevisionFork", "SecretDto", "SecretDtoData", "SecretKind", "SecretResponseDto", "SecretResponseDtoData", "SessionIdsResponse", "SimpleApplication", "SimpleApplicationCreate", "SimpleApplicationDataInput", "SimpleApplicationDataInputHeadersValue", "SimpleApplicationDataInputRuntime", "SimpleApplicationDataOutput", "SimpleApplicationDataOutputHeadersValue", "SimpleApplicationDataOutputRuntime", "SimpleApplicationEdit", "SimpleApplicationFlags", "SimpleApplicationQuery", "SimpleApplicationQueryFlags", "SimpleApplicationResponse", "SimpleApplicationsResponse", "SimpleEnvironment", "SimpleEnvironmentCreate", "SimpleEnvironmentEdit", "SimpleEnvironmentQuery", "SimpleEnvironmentResponse", "SimpleEnvironmentsResponse", "SimpleEvaluation", "SimpleEvaluationCreate", "SimpleEvaluationData", "SimpleEvaluationDataApplicationSteps", "SimpleEvaluationDataApplicationStepsOneValue", "SimpleEvaluationDataEvaluatorSteps", "SimpleEvaluationDataEvaluatorStepsOneValue", "SimpleEvaluationDataQuerySteps", "SimpleEvaluationDataQueryStepsOneValue", "SimpleEvaluationDataTestsetSteps", "SimpleEvaluationDataTestsetStepsOneValue", "SimpleEvaluationEdit", "SimpleEvaluationIdResponse", "SimpleEvaluationQuery", "SimpleEvaluationResponse", "SimpleEvaluationsResponse", "SimpleEvaluator", "SimpleEvaluatorCreate", "SimpleEvaluatorDataInput", "SimpleEvaluatorDataInputHeadersValue", "SimpleEvaluatorDataInputRuntime", "SimpleEvaluatorDataOutput", "SimpleEvaluatorDataOutputHeadersValue", "SimpleEvaluatorDataOutputRuntime", "SimpleEvaluatorEdit", "SimpleEvaluatorFlags", "SimpleEvaluatorQuery", "SimpleEvaluatorQueryFlags", "SimpleEvaluatorResponse", "SimpleEvaluatorsResponse", "SimpleQueriesResponse", "SimpleQuery", "SimpleQueryCreate", "SimpleQueryEdit", "SimpleQueryQuery", "SimpleQueryResponse", "SimpleQueue", "SimpleQueueCreate", "SimpleQueueData", "SimpleQueueDataEvaluators", "SimpleQueueDataEvaluatorsOneValue", "SimpleQueueIdResponse", "SimpleQueueKind", "SimpleQueueQuery", "SimpleQueueResponse", "SimpleQueueScenariosQuery", "SimpleQueueScenariosResponse", "SimpleQueueSettings", "SimpleQueuesResponse", "SimpleTestset", "SimpleTestsetCreate", "SimpleTestsetEdit", "SimpleTestsetQuery", "SimpleTestsetResponse", "SimpleTestsetsResponse", "SimpleTrace", "SimpleTraceChannel", "SimpleTraceCreate", "SimpleTraceCreateLinks", "SimpleTraceEdit", "SimpleTraceEditLinks", "SimpleTraceKind", "SimpleTraceLinkResponse", "SimpleTraceLinks", "SimpleTraceOrigin", "SimpleTraceQuery", "SimpleTraceQueryLinks", "SimpleTraceReferences", "SimpleTraceResponse", "SimpleTracesResponse", "SimpleWorkflow", "SimpleWorkflowCreate", "SimpleWorkflowDataInput", "SimpleWorkflowDataInputHeadersValue", "SimpleWorkflowDataInputRuntime", "SimpleWorkflowDataOutput", "SimpleWorkflowDataOutputHeadersValue", "SimpleWorkflowDataOutputRuntime", "SimpleWorkflowEdit", "SimpleWorkflowFlags", "SimpleWorkflowQuery", "SimpleWorkflowQueryFlags", "SimpleWorkflowResponse", "SimpleWorkflowsResponse", "SpanInput", "SpanInputEndTime", "SpanInputStartTime", "SpanOutput", "SpanOutputEndTime", "SpanOutputStartTime", "SpanResponse", "SpanType", "SpansNodeInput", "SpansNodeInputEndTime", "SpansNodeInputSpansValue", "SpansNodeInputStartTime", "SpansNodeOutput", "SpansNodeOutputEndTime", "SpansNodeOutputSpansValue", "SpansNodeOutputStartTime", "SpansResponse", "SpansTreeInput", "SpansTreeInputSpansValue", "SpansTreeOutput", "SpansTreeOutputSpansValue", "SsoProviderDto", "SsoProviderInfo", "SsoProviderSettingsDto", "SsoProviders", "StandardProviderDto", "StandardProviderKind", "StandardProviderSettingsDto", "Status", "StringOperator", "TestcaseInput", "TestcaseOutput", "TestcaseResponse", "TestcasesResponse", "Testset", "TestsetCreate", "TestsetEdit", "TestsetFlags", "TestsetQuery", "TestsetResponse", "TestsetRevision", "TestsetRevisionCommit", "TestsetRevisionCreate", "TestsetRevisionDataInput", "TestsetRevisionDataOutput", "TestsetRevisionDelta", "TestsetRevisionDeltaColumns", "TestsetRevisionDeltaRows", "TestsetRevisionEdit", "TestsetRevisionQuery", "TestsetRevisionResponse", "TestsetRevisionsLog", "TestsetRevisionsResponse", "TestsetVariant", "TestsetVariantCreate", "TestsetVariantEdit", "TestsetVariantQuery", "TestsetVariantResponse", "TestsetVariantsResponse", "TestsetsResponse", "TextOptions", "ToolAuthScheme", "ToolCallData", "ToolCallFunction", "ToolCallResponse", "ToolCatalogAction", "ToolCatalogActionDetails", "ToolCatalogActionResponse", "ToolCatalogActionResponseAction", "ToolCatalogActionsResponse", "ToolCatalogActionsResponseActionsItem", "ToolCatalogIntegration", "ToolCatalogIntegrationDetails", "ToolCatalogIntegrationResponse", "ToolCatalogIntegrationResponseIntegration", "ToolCatalogIntegrationsResponse", "ToolCatalogIntegrationsResponseIntegrationsItem", "ToolCatalogProvider", "ToolCatalogProviderDetails", "ToolCatalogProviderResponse", "ToolCatalogProviderResponseProvider", "ToolCatalogProvidersResponse", "ToolCatalogProvidersResponseProvidersItem", "ToolConnection", "ToolConnectionCreate", "ToolConnectionCreateData", "ToolConnectionResponse", "ToolConnectionStatus", "ToolConnectionsResponse", "ToolProviderKind", "ToolResult", "ToolResultData", "TraceIdResponse", "TraceIdsResponse", "TraceInput", "TraceInputSpansValue", "TraceOutput", "TraceOutputSpansValue", "TraceRequest", "TraceResponse", "TraceType", "TracesRequest", "TracesResponse", "TracingQuery", "UserIdsResponse", "ValidationError", "ValidationErrorLocItem", "VariantFork", "WebhookDeliveriesResponse", "WebhookDelivery", "WebhookDeliveryCreate", "WebhookDeliveryData", "WebhookDeliveryQuery", "WebhookDeliveryResponse", "WebhookDeliveryResponseInfo", "WebhookEventType", "WebhookProviderDto", "WebhookProviderSettingsDto", "WebhookSubscription", "WebhookSubscriptionCreate", "WebhookSubscriptionData", "WebhookSubscriptionDataAuthMode", "WebhookSubscriptionEdit", "WebhookSubscriptionQuery", "WebhookSubscriptionResponse", "WebhookSubscriptionsResponse", "Windowing", "WindowingOrder", "Workflow", "WorkflowArtifactFlags", "WorkflowCatalogFlags", "WorkflowCatalogPreset", "WorkflowCatalogPresetResponse", "WorkflowCatalogPresetsResponse", "WorkflowCatalogTemplate", "WorkflowCatalogTemplateResponse", "WorkflowCatalogTemplatesResponse", "WorkflowCatalogType", "WorkflowCatalogTypeResponse", "WorkflowCatalogTypesResponse", "WorkflowCreate", "WorkflowEdit", "WorkflowFlags", "WorkflowFork", "WorkflowResponse", "WorkflowRevisionCommit", "WorkflowRevisionCreate", "WorkflowRevisionDataInput", "WorkflowRevisionDataInputHeadersValue", "WorkflowRevisionDataInputRuntime", "WorkflowRevisionDataOutput", "WorkflowRevisionDataOutputHeadersValue", "WorkflowRevisionDataOutputRuntime", "WorkflowRevisionEdit", "WorkflowRevisionFlags", "WorkflowRevisionFork", "WorkflowRevisionInput", "WorkflowRevisionOutput", "WorkflowRevisionResolveResponse", "WorkflowRevisionResponse", "WorkflowRevisionsLog", "WorkflowRevisionsResponse", "WorkflowVariant", "WorkflowVariantCreate", "WorkflowVariantEdit", "WorkflowVariantFlags", "WorkflowVariantFork", "WorkflowVariantResponse", "WorkflowVariantsResponse", "WorkflowsResponse", "Workspace", "WorkspaceMemberResponse", "WorkspacePermission", "WorkspaceResponse"] diff --git a/clients/python/agenta_client/types/evaluation_queue_flags.py b/clients/python/agenta_client/types/evaluation_queue_flags.py index 6aca799bc0..d6e5b3f603 100644 --- a/clients/python/agenta_client/types/evaluation_queue_flags.py +++ b/clients/python/agenta_client/types/evaluation_queue_flags.py @@ -8,6 +8,7 @@ class EvaluationQueueFlags(UniversalBaseModel): is_sequential: typing.Optional[bool] = None + is_default: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/clients/python/agenta_client/types/evaluation_queue_query.py b/clients/python/agenta_client/types/evaluation_queue_query.py index ac5095e78d..5d553524a4 100644 --- a/clients/python/agenta_client/types/evaluation_queue_query.py +++ b/clients/python/agenta_client/types/evaluation_queue_query.py @@ -15,6 +15,7 @@ class EvaluationQueueQuery(UniversalBaseModel): meta: typing.Optional[typing.Dict[str, typing.Any]] = None name: typing.Optional[str] = None description: typing.Optional[str] = None + include_archived: typing.Optional[bool] = None user_id: typing.Optional[str] = None user_ids: typing.Optional[typing.List[str]] = None run_id: typing.Optional[str] = None diff --git a/clients/python/agenta_client/types/evaluation_queue_query_flags.py b/clients/python/agenta_client/types/evaluation_queue_query_flags.py index 21a34f8379..b53163ca48 100644 --- a/clients/python/agenta_client/types/evaluation_queue_query_flags.py +++ b/clients/python/agenta_client/types/evaluation_queue_query_flags.py @@ -8,6 +8,7 @@ class EvaluationQueueQueryFlags(UniversalBaseModel): is_sequential: typing.Optional[bool] = None + is_default: typing.Optional[bool] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/clients/python/agenta_client/types/evaluation_run_data.py b/clients/python/agenta_client/types/evaluation_run_data.py index c71e05048b..19b1ded27e 100644 --- a/clients/python/agenta_client/types/evaluation_run_data.py +++ b/clients/python/agenta_client/types/evaluation_run_data.py @@ -4,6 +4,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .evaluation_run_data_concurrency import EvaluationRunDataConcurrency from .evaluation_run_data_mapping import EvaluationRunDataMapping from .evaluation_run_data_step import EvaluationRunDataStep @@ -11,6 +12,7 @@ class EvaluationRunData(UniversalBaseModel): steps: typing.Optional[typing.List[EvaluationRunDataStep]] = None repeats: typing.Optional[int] = None + concurrency: typing.Optional[EvaluationRunDataConcurrency] = None mappings: typing.Optional[typing.List[EvaluationRunDataMapping]] = None if IS_PYDANTIC_V2: diff --git a/clients/python/agenta_client/types/evaluation_run_data_concurrency.py b/clients/python/agenta_client/types/evaluation_run_data_concurrency.py new file mode 100644 index 0000000000..25e259e1fc --- /dev/null +++ b/clients/python/agenta_client/types/evaluation_run_data_concurrency.py @@ -0,0 +1,20 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel + + +class EvaluationRunDataConcurrency(UniversalBaseModel): + batch_size: typing.Optional[int] = None + max_retries: typing.Optional[int] = None + retry_delay: typing.Optional[float] = None + + if IS_PYDANTIC_V2: + model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 + else: + class Config: + frozen = True + smart_union = True + extra = pydantic.Extra.allow diff --git a/clients/python/agenta_client/types/evaluation_run_flags.py b/clients/python/agenta_client/types/evaluation_run_flags.py index 86a37a6a9a..9558042685 100644 --- a/clients/python/agenta_client/types/evaluation_run_flags.py +++ b/clients/python/agenta_client/types/evaluation_run_flags.py @@ -15,6 +15,8 @@ class EvaluationRunFlags(UniversalBaseModel): is_split: typing.Optional[bool] = None has_queries: typing.Optional[bool] = None has_testsets: typing.Optional[bool] = None + has_traces: typing.Optional[bool] = None + has_testcases: typing.Optional[bool] = None has_evaluators: typing.Optional[bool] = None has_custom: typing.Optional[bool] = None has_human: typing.Optional[bool] = None diff --git a/clients/python/agenta_client/types/evaluation_run_query_flags.py b/clients/python/agenta_client/types/evaluation_run_query_flags.py index fd632af306..3afa6465b5 100644 --- a/clients/python/agenta_client/types/evaluation_run_query_flags.py +++ b/clients/python/agenta_client/types/evaluation_run_query_flags.py @@ -15,6 +15,8 @@ class EvaluationRunQueryFlags(UniversalBaseModel): is_split: typing.Optional[bool] = None has_queries: typing.Optional[bool] = None has_testsets: typing.Optional[bool] = None + has_traces: typing.Optional[bool] = None + has_testcases: typing.Optional[bool] = None has_evaluators: typing.Optional[bool] = None has_custom: typing.Optional[bool] = None has_human: typing.Optional[bool] = None diff --git a/clients/python/agenta_client/types/simple_evaluation_data.py b/clients/python/agenta_client/types/simple_evaluation_data.py index afcec7aab5..62b5723cc6 100644 --- a/clients/python/agenta_client/types/simple_evaluation_data.py +++ b/clients/python/agenta_client/types/simple_evaluation_data.py @@ -4,6 +4,7 @@ import pydantic from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel +from .evaluation_run_data_concurrency import EvaluationRunDataConcurrency from .evaluation_status import EvaluationStatus from .simple_evaluation_data_application_steps import SimpleEvaluationDataApplicationSteps from .simple_evaluation_data_evaluator_steps import SimpleEvaluationDataEvaluatorSteps @@ -18,6 +19,7 @@ class SimpleEvaluationData(UniversalBaseModel): application_steps: typing.Optional[SimpleEvaluationDataApplicationSteps] = None evaluator_steps: typing.Optional[SimpleEvaluationDataEvaluatorSteps] = None repeats: typing.Optional[int] = None + concurrency: typing.Optional[EvaluationRunDataConcurrency] = None if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/clients/python/agenta_client/types/simple_queue_kind.py b/clients/python/agenta_client/types/simple_queue_kind.py index 0f4e53725b..373d6407cd 100644 --- a/clients/python/agenta_client/types/simple_queue_kind.py +++ b/clients/python/agenta_client/types/simple_queue_kind.py @@ -2,4 +2,4 @@ import typing -SimpleQueueKind = typing.Union[typing.Literal["traces", "testcases"], typing.Any] +SimpleQueueKind = typing.Union[typing.Literal["queries", "testsets", "traces", "testcases"], typing.Any] diff --git a/clients/python/agenta_client/workspaces/client.py b/clients/python/agenta_client/workspaces/client.py index d95c7f4b2e..1659e6f9db 100644 --- a/clients/python/agenta_client/workspaces/client.py +++ b/clients/python/agenta_client/workspaces/client.py @@ -203,7 +203,7 @@ def get_all_workspace_roles(self, *, request_options: typing.Optional[RequestOpt Returns a list of all available workspace roles. Returns: - List[WorkspaceRoleResponse]: A list of WorkspaceRole objects representing the available workspace roles. + List[WorkspaceRoleResponse]: A list of DefaultRole objects representing the available workspace roles. Raises: HTTPException: If an error occurs while retrieving the workspace roles. @@ -491,7 +491,7 @@ async def get_all_workspace_roles(self, *, request_options: typing.Optional[Requ Returns a list of all available workspace roles. Returns: - List[WorkspaceRoleResponse]: A list of WorkspaceRole objects representing the available workspace roles. + List[WorkspaceRoleResponse]: A list of DefaultRole objects representing the available workspace roles. Raises: HTTPException: If an error occurs while retrieving the workspace roles. diff --git a/clients/python/agenta_client/workspaces/raw_client.py b/clients/python/agenta_client/workspaces/raw_client.py index 2f329cf079..5e5ccf4567 100644 --- a/clients/python/agenta_client/workspaces/raw_client.py +++ b/clients/python/agenta_client/workspaces/raw_client.py @@ -244,7 +244,7 @@ def get_all_workspace_roles(self, *, request_options: typing.Optional[RequestOpt Returns a list of all available workspace roles. Returns: - List[WorkspaceRoleResponse]: A list of WorkspaceRole objects representing the available workspace roles. + List[WorkspaceRoleResponse]: A list of DefaultRole objects representing the available workspace roles. Raises: HTTPException: If an error occurs while retrieving the workspace roles. @@ -556,7 +556,7 @@ async def get_all_workspace_roles(self, *, request_options: typing.Optional[Requ Returns a list of all available workspace roles. Returns: - List[WorkspaceRoleResponse]: A list of WorkspaceRole objects representing the available workspace roles. + List[WorkspaceRoleResponse]: A list of DefaultRole objects representing the available workspace roles. Raises: HTTPException: If an error occurs while retrieving the workspace roles. diff --git a/docs/designs/access-controls-refactor-plan.md b/docs/designs/access-controls-refactor-plan.md new file mode 100644 index 0000000000..ce557a1771 --- /dev/null +++ b/docs/designs/access-controls-refactor-plan.md @@ -0,0 +1,214 @@ +# Access / Entitlements / Permissions Refactor — Migration Plan + +Status: PROPOSED (no edits applied). For review before execution. + +## Goal (per user) + +Restructure the EE access surface so concerns are cleanly separated: + +- `core/access/controls.py` — **shared** build/orchestration: env loading, + `_build_controls()`, the singleton, `controls_hash`, shared validators/schemas. + **Depends on** `entitlements/controls.py` + `permissions/controls.py` (one-way, + downward — `access` is the composition layer on top). +- `core/entitlements/controls.py` — **plans only**: plan/quota/counter/gauge/ + throttle parsing + overlays + `get_plan*` accessors. +- `core/permissions/controls.py` — **roles only**: role builders/parsers/overlays + + `get_role*` accessors. +- Move `utils/entitlements.py` + `utils/permissions.py` into `core/` (they are + stateful service layers, not utils). + +Dependency direction (no cycles): +``` +core/{entitlements,permissions}/types.py (leaf types) + ▲ +core/entitlements/controls.py (plans) core/permissions/controls.py (roles) + ▲ ▲ + └───────────────┬────────────────────────┘ + core/access/controls.py (shared build + singleton + hash) + ▲ + utils/* (services) , apis/fastapi/access/router.py , db_manager_ee, ... +``` + +## Current `entitlements/controls.py` function inventory (single file today) + +PLAN cluster: +- `_PlanOverride` (47), `_default_plans` (76), `_validate_flag_key` (82), + `_validate_counter_key` (89), `_validate_gauge_key` (96), + `_parse_plans_override` (103) +- `_ThrottleOverlay` (565), `_DefaultPlanOverlay` (578), `_merge_quota` (591), + `_merge_throttle` (602), `_parse_default_plan_overlay` (614), + `_apply_default_plan_overlay` (646), `_resolve_default_plan_slug` (721) +- accessors: `get_plans` (812), `get_plan` (817), `get_plan_entitlements` (824), + `get_plan_description` (831) +- `_DEFAULT_PLAN_DESCRIPTIONS` (module-level, near _default_plans) + +ROLE cluster: +- `_RoleOverride` (57), `_read_only_permissions` (165), + `_viewer_permissions_for_scope` (175), `_admin_permissions_for_scope` (186), + `_minima_for` (197), `_default_roles` (236), `_parse_roles_override` (280), + `_RoleOverlayEntry` (413), `_parse_roles_overlay` (426), + `_apply_roles_overlay` (506) +- accessors: `get_roles` (838), `get_role` (845), `get_role_permissions` (853), + `get_role_description` (861) + +SHARED: +- `_validate_permission` (270) — used by role parsers; depends on `Permission`. + (Move to permissions/controls.py — it is role/permission-only despite the name.) +- `_build_controls` (740) — orchestrates plan+role parse+overlay, builds the + combined `controls_hash`, logs sources. +- singleton: `_PLANS, _PLAN_DESCRIPTIONS, _ROLES, _CONTROLS_HASH = _build_controls()` (804) +- `get_controls_hash` (868) +- imports: `env`, `hashlib`, `dumps`, pydantic; `entitlements.types` (Tracker, + Flag, Counter, Gauge, DEFAULT_ENTITLEMENTS, DefaultPlan, OWNER_PERMISSIONS, + Quota, SCOPES, Throttle); `permissions.types` (Permission, DefaultRole, RequiredRole) + +Verdict: plan and role clusters have **zero cross-calls**. Only `_build_controls` ++ the shared `controls_hash` + `SCOPES` couple them. Clean to split. + +## Target module contents + +### `core/entitlements/controls.py` (plans) +- All PLAN-cluster functions above. +- New internal: `build_plan_controls() -> (plans, descriptions)` — does the + env-or-default + plan-overlay logic currently inlined in `_build_controls` + lines 746-766. +- Public `get_plan*` accessors read a module-level `_PLANS`/`_PLAN_DESCRIPTIONS` + populated by `access/controls.py` via a registration hook (see "singleton" + below) OR keep accessors in access/controls.py. **Decision needed — see Q1.** +- Imports `entitlements.types` only. No permissions import. + +### `core/permissions/controls.py` (roles) +- All ROLE-cluster functions + `_validate_permission`. +- New internal: `build_role_controls() -> roles` — env-or-default + role-overlay + logic currently inlined in `_build_controls` lines 768-779. +- Public `get_role*` accessors. Same singleton question (Q1). +- Imports `permissions.types` (+ `SCOPES`, `OWNER_PERMISSIONS` from + entitlements.types — note this is a small permissions→entitlements.types dep; + acceptable since types are leaf. Alternatively move `SCOPES`/`OWNER_PERMISSIONS` + to a neutral spot — see Q2). + +### `core/access/controls.py` (shared orchestration) +- `_build_controls()` — calls `build_plan_controls()` + `build_role_controls()`, + computes the combined `controls_hash`, logs sources. +- The singleton init. +- `get_controls_hash()`. +- Imports BOTH `entitlements.controls` and `permissions.controls`. + +### `utils/ → core/` service move +- `utils/entitlements.py` → `core/entitlements/service.py` + (NOTE: an `entitlements/service.py` was just deleted — the dead + `EntitlementsService`. This new file is the *check_entitlements* service, a + different thing. Name ok, or use `core/entitlements/checks.py` — see Q3.) +- `utils/permissions.py` → `core/permissions/service.py` (or `checks.py`). + +## The singleton question (Q1 — the crux) + +Today: `get_plans`/`get_roles` read module-level `_PLANS`/`_ROLES` built at import +of `controls.py`. If plans/roles accessors live in their *own* modules but the +build is orchestrated in `access/controls.py`, the accessor modules can't build +their own singletons (they'd each only know their half, and env-override parsing ++ hashing is centralized). + +Two clean designs: + +- **(A) Accessors stay with the data, access registers into them.** + `entitlements/controls.py` owns `_PLANS` + `get_plan*`; `permissions/controls.py` + owns `_ROLES` + `get_role*`. Each exposes `build_*_controls()` (pure, no global) + AND a `register_*_controls(...)` setter. `access/controls.py` at import calls + build for both, computes hash, then registers each half into its module + + stores the hash. Accessors raise if not yet registered. + - Pro: accessors live with their domain; clean reads. + - Con: import order matters — *something* must import `access/controls.py` at + startup before any accessor is called. Today that is implicit (importing + controls.py runs the build). Need an explicit bootstrap call (mirrors how + `utils/entitlements.py` already does `register_entitlements_services`). + +- **(B) access/controls.py owns the singleton AND all accessors.** + `entitlements/controls.py` + `permissions/controls.py` are pure (build + parse, + no globals). `access/controls.py` builds, holds `_PLANS`/`_ROLES`/`_HASH`, and + exposes ALL accessors (`get_plans`, `get_roles`, ...). Every importer switches + to `from ee.src.core.access.controls import get_plans/get_roles/...`. + - Pro: one singleton, one build, no registration hook, no import-order trap + (importing access.controls runs the build, exactly like today). + - Con: accessors live in `access`, not in their domain module. But that is + arguably correct — they read the *combined effective* controls, which is an + access-layer concern. entitlements/permissions controls.py become pure + builder/parser libraries. + +**Recommendation: (B).** It preserves today's "import runs the build" semantics +(no new bootstrap-order bug), keeps the split pure, and matches the existing +`apis/fastapi/access/` framing (access = the combined surface). entitlements/ +permissions `controls.py` become stateless builders; `access/controls.py` is the +stateful composition root. This is also the lowest-cycle-risk design. + +## Open questions for sign-off + +- **Q1 (singleton design):** A (register into domain modules) vs **B (access owns + singleton + all accessors)**. Recommend B. +- **Q2 (`SCOPES`/`OWNER_PERMISSIONS` location):** they sit in `entitlements.types` + but are permission/role concepts. Leave (small types-level dep from permissions + → entitlements.types), or move to `permissions.types` / a neutral `access.types`? + Recommend: leave for now (types are leaf, no cycle); revisit later. +- **Q3 (service file naming):** `core/{entitlements,permissions}/service.py` vs + `checks.py`. `service.py` collides conceptually with the just-deleted + EntitlementsService; `checks.py` is more descriptive (`check_entitlements`, + `check_action_access`). Recommend `service.py` (domain convention) — the + collision was a *deleted* file, so no real clash. +- **Q4 (scope):** do utils→core move in the SAME change as the controls split, or + separate? The controls split is ~15 accessor importers; the utils move is + ~24 (entitlements) + ~30 (permissions) + worker entrypoints. Recommend + **two separate changes**: (1) controls split, (2) utils→core move. + +## Blast radius (importer rewrites) + +Controls split (design B — all accessors move to `access.controls`): +- Plan-accessor importers (6): billing/router, tracing/service, subscriptions/ + settings, events/service, throttling, utils/entitlements. +- Role-accessor importers (5): oss workspace_router, oss organization_router, + ee workspace_router, utils/permissions, workspace_manager. +- `get_plan_description` + `get_plans`/`get_roles` in access/router (1). +- db_manager_ee (imports get_roles? — it imports from entitlements.controls; check). +- `test_controls_env_override.py`: ~28 in-string imports (`from + ...entitlements.controls import get_plans/get_roles/...`) → rewrite to + `...access.controls`. + +utils→core move: +- `utils/entitlements.py`: 24 importer files. +- `utils/permissions.py`: 30 importer files. +- plus worker entrypoints referencing `bootstrap_entitlements_services`. + +## Execution order (proposed) + +Change 1 — controls split (design B): +1. Create `core/entitlements/controls.py` content = pure plan builder/parser + (`build_plan_controls`, `_parse_plans_override`, overlays, `_default_plans`, + `_DEFAULT_PLAN_DESCRIPTIONS`). No globals, no accessors. +2. Create `core/permissions/controls.py` = pure role builder/parser + (`build_role_controls`, role parsers/overlays/minima, `_validate_permission`). + No globals, no accessors. +3. Create `core/access/controls.py` = imports both, `_build_controls()`, + singleton, ALL accessors (`get_plans/get_plan*/get_roles/get_role*`), + `get_controls_hash`. +4. Delete the role/plan logic from the old `entitlements/controls.py` (file + becomes the pure-plan module from step 1). +5. Rewire ~15 accessor importers + the test's in-string imports → `access.controls`. +6. Verify: ruff + per-file tests (test_access_controls, test_controls_env_override). + +Change 2 — utils→core service move (separate): +1. `git mv utils/entitlements.py core/entitlements/service.py`, + `git mv utils/permissions.py core/permissions/service.py`. +2. Rewire ~54 importers + worker entrypoints. +3. Verify. + +## Risks + +- **Import-order / cycle:** design B avoids the bootstrap-order trap. Confirm + `access.controls` importing both domain controls creates no cycle (it won't: + domain controls import only `*.types`, which import nothing). +- **The combined `controls_hash`** stays unified (computed in access) — no + behavior change. +- **Large importer churn**, esp. the utils move (~54 files) and the test file's + 28 in-string imports — mechanical but wide; do with sed + per-file verify. +- **Working tree already large/uncommitted** — recommend committing current + session work before Change 1, and doing Change 1 and Change 2 as separate + commits. diff --git a/docs/designs/eval-loops/desired-architecture.md b/docs/designs/eval-loops/desired-architecture.md deleted file mode 100644 index 56d38165bd..0000000000 --- a/docs/designs/eval-loops/desired-architecture.md +++ /dev/null @@ -1,1227 +0,0 @@ -# Evaluation System - Desired Architecture - -**Created:** 2026-02-16 -**Status:** Design Proposal -**Related:** [Current State - Iteration Patterns](./iteration-patterns.md) - ---- - -## Executive Summary - -This document outlines the desired architecture for the evaluation system, focusing on: - -1. **Unification** - SDK loops become the canonical implementation used by both SDK and backend -2. **Separation of Concerns** - Clear boundaries between graph management, execution, tensor population, and interpretation -3. **Ports & Adapters** - Dependency injection for persistence, enabling different adapters (API, DAO, JSON) for the same core logic -4. **Consistency** - Same loops and patterns across human evaluations, auto evaluations, and live evaluations - ---- - -## Table of Contents - -- [Guiding Principles](#guiding-principles) -- [Four Concerns](#four-concerns) -- [Architectural Goals](#architectural-goals) -- [Ports & Adapters Design](#ports--adapters-design) -- [Loop Unification Strategy](#loop-unification-strategy) -- [Execution Modes](#execution-modes) -- [Migration Path](#migration-path) -- [Open Questions](#open-questions) - ---- - -## Guiding Principles - -### 1. Single Source of Truth for Iteration Logic - -**Current Problem:** -- SDK has one set of loops (`sdk/agenta/sdk/evaluations/preview/evaluate.py`) -- API has different loops (`api/oss/src/core/evaluations/tasks/legacy.py`, `live.py`) -- Logic duplication and divergence over time -- Changes must be made in multiple places - -**Desired State:** -- **SDK loops become the canonical implementation** -- Backend uses the same loops via dependency injection -- One place to modify iteration logic -- Guaranteed consistency between SDK and API - ---- - -### 2. Separation of Concerns - -The evaluation system has **four distinct concerns** that should not be conflated: - -| Concern | Responsibility | Should NOT | -|---------|---------------|------------| -| **Graph Management** | Create, modify steps (`add_step` / `remove_step`) | Execute the graph or populate results | -| **Orchestration (`process`)** | Drive execution across a `TensorSlice` | Manage the graph structure or directly store results | -| **Tensor Interface (`populate` / `probe` / `prune`)** | Write, read, and delete results in the tensor | Execute workflows or interpret data | -| **Tensor Interpretation** | Analyze and aggregate metrics | Modify the tensor or execute workflows | - -**Current Problem:** -- These concerns are mixed in the same functions -- Graph execution code also handles persistence -- Tensor population is tightly coupled to execution - -**Desired State:** -- Clean interfaces between concerns -- Each concern is independently testable -- Can swap implementations without affecting others - ---- - -### 3. Dependency Injection via Ports & Adapters - -**Current Problem:** -- SDK and API have hardcoded persistence mechanisms -- SDK makes HTTP calls directly -- API writes to database directly -- No way to test without external dependencies - -**Desired State:** -- Core iteration logic is pure (no I/O) -- Persistence is injected via interfaces (ports) -- Different adapters for different contexts: - - **SDK Context:** Adapter calls remote API - - **Backend Context:** Adapter calls DAO layer - - **Test Context:** Adapter writes to JSON or in-memory store - ---- - -### 4. Consistency Across Evaluation Types - -**Current Problem:** -- Human evaluations use different code than auto evaluations -- Live evaluations have separate iteration logic -- Batch evaluations have different patterns - -**Desired State:** -- **Same core loops** for all evaluation types -- Differences handled through: - - Configuration (which evaluators to run) - - Execution mode (batch, live, sliced) - - Data source (testset, live traces) -- Consistency reduces bugs and improves maintainability - ---- - -## Four Concerns - -### 1. Graph Management - -**What:** Define and modify the evaluation graph structure - -**Responsibilities:** -- Add/remove steps (`add_step` / `remove_step`) with `type` (input / invocation / annotation) and `origin` (human / custom / auto) -- Validate graph structure -- Persist step list in `run.data.steps` - -**Operations:** -```python -# Graph Management Interface -class EvaluationGraphManager(Protocol): - async def add_step( - self, - *, - type: Literal["input", "invocation", "annotation"], - origin: Literal["human", "custom", "auto"], - references: dict, - ) -> Step - - async def remove_step(self, *, step_key: str) -> None - async def get_steps(self, *, run_id: UUID) -> list[Step] -``` - -**Impacts on Tensor:** -- Adding a step adds a column dimension to the tensor -- Removing a step should be followed by `prune(TensorSlice(steps=[step_key]))` to delete stale results -- Steps are immutable by reference once added — change = `remove_step` + `add_step` - -**Examples:** -- User adds a new evaluator → `add_step(type="annotation", origin="auto", ...)` -- User removes an evaluator → `remove_step(step_key=...)` then `prune` stale results -- User changes evaluator config → new revision = new `step_key` - ---- - -### 2. Orchestration (`process`) - -**What:** Drive execution across a `TensorSlice` — the implementation of `process` - -**Responsibilities:** -- Resolve which cells of the tensor need work (guided by `TensorSlice` + optional `probe`) -- Invoke steps in the correct order (topological sort of the step list) -- Call `populate` for each result produced -- Handle errors by recording them in results (collect-errors mode — see Decisions) -- Concurrency model is up to the implementor (sequential, parallel, distributed) - -**Operations:** -```python -# Orchestration Interface -class EvaluationOrchestrator(Protocol): - async def process( - self, - *, - run: EvaluationRun, - slice: TensorSlice, - persistence: EvaluationPersistence, # provides populate/probe/prune - ) -> ProcessSummary -``` - -**Execution modes** (all expressed as `process(TensorSlice(...))`): -- **Full run:** `TensorSlice(scenarios="all", steps="all", repeats="all")` -- **Live (temporal):** `TensorSlice` scoped to scenarios derived from a trace query window -- **Targeted re-run:** `TensorSlice(scenarios=[id1, id2], steps=["evaluator-x"])` - -**Does NOT:** -- Persist results directly — delegates to `populate` -- Modify graph structure -- Aggregate metrics (delegates to tensor interpretation) - ---- - -### 3. Tensor Interface (`populate` / `probe` / `prune`) - -**What:** The three primitive operations on tensor cells — the persistence port that `process` depends on - -**Responsibilities:** -- `populate` — write a result for a `(scenario, step, repeat)` cell; result holds a `trace_id` reference and/or an `error` by value -- `probe` — read results for a `TensorSlice`; used by `process` to skip already-successful cells -- `prune` — delete results for a `TensorSlice`; used after step removal or to clear stale data - -**Operations:** -```python -# Tensor Interface (persistence port) -class EvaluationPersistence(Protocol): - async def populate( - self, - *, - run_id: UUID, - scenario_id: UUID, - step_key: str, - repeat_idx: int, - trace_id: Optional[UUID] = None, - testcase_id: Optional[UUID] = None, - error: Optional[str] = None, - ) -> EvaluationResult - - async def probe( - self, - *, - run_id: UUID, - slice: TensorSlice, - ) -> list[EvaluationResult] - - async def prune( - self, - *, - run_id: UUID, - slice: TensorSlice, - ) -> int # number of results deleted -``` - -**Storage Adapters:** -- **Remote API Adapter (SDK):** POSTs/queries `/evaluations/results` -- **DAO Adapter (Backend):** Writes/reads `evaluation_results` table -- **In-Memory Adapter (Testing):** Stores in dict - -**Does NOT:** -- Execute workflows -- Aggregate metrics (that's interpretation) -- Modify graph structure - ---- - -### 4. Tensor Interpretation - -**What:** Analyze and aggregate results from the tensor - -**Responsibilities:** -- Aggregate metrics across scenarios (mean, p95, etc.) -- Compute derived metrics -- Generate metrics tensors (aggregated view) -- Support different aggregation scopes (run, scenario, temporal) - -**Operations:** -```python -# Tensor Interpretation Interface -class EvaluationTensorInterpreter(Protocol): - async def aggregate_metrics( - self, - run_id: Optional[UUID], - scenario_id: Optional[UUID], - timestamp: Optional[datetime], - step_keys: list[str], - ) -> MetricsBucket - - async def get_metrics( - self, - scope: AggregationScope, - ) -> EvaluationMetrics - - async def compute_derived_metric( - self, - metric_name: str, - results: list[EvaluationResult], - ) -> Any -``` - -**Aggregation Scopes:** -- **Run-level:** Aggregate across all scenarios in a run -- **Scenario-level:** Metrics for a single scenario -- **Temporal:** Aggregate across time windows (e.g., last hour) -- **Step-level:** Metrics for a specific step across scenarios - -**Does NOT:** -- Execute workflows -- Modify results -- Change graph structure - ---- - -## Architectural Goals - -### Goal 1: SDK Loops as Canonical Implementation - -**Rationale:** -- SDK loops in `evaluate.py` are cleaner and more recent -- Better structured with clear separation of testsets → testcases → apps → evaluators -- Already handles multiple testset revisions, application variants, and evaluators -- More maintainable than legacy API loops - -**Approach:** -1. Extract SDK loops into a **shared core module** -2. Make loops **pure functions** (no I/O, side effects injected) -3. Backend imports and uses the same loops -4. Persistence injected via adapters - -**Example Structure:** -``` -agenta/ -├── core/ -│ └── evaluations/ -│ ├── engine/ -│ │ ├── graph.py # Graph management -│ │ ├── executor.py # Graph execution (canonical loops) -│ │ ├── tensor.py # Tensor population -│ │ └── metrics.py # Tensor interpretation -│ └── interfaces/ -│ ├── persistence.py # Ports (protocols) -│ └── adapters/ -│ ├── api.py # API adapter (SDK uses this) -│ ├── dao.py # DAO adapter (backend uses this) -│ └── json.py # JSON adapter (testing uses this) -``` - ---- - -### Goal 2: Clean Interfaces via Ports & Adapters - -**Port:** Interface (protocol) defining operations -**Adapter:** Implementation of the port for a specific context - -#### Example: Persistence Port - -```python -# Port (interface) -class EvaluationPersistence(Protocol): - """Port for persisting evaluation results.""" - - async def save_scenario(self, scenario: ScenarioCreate) -> Scenario: - """Save a scenario and return with ID.""" - ... - - async def save_result(self, result: ResultCreate) -> EvaluationResult: - """Save a single result.""" - ... - - async def save_results_batch( - self, - results: list[ResultCreate], - ) -> list[EvaluationResult]: - """Save multiple results in a batch.""" - ... - - async def get_result( - self, - run_id: UUID, - scenario_id: UUID, - step_key: str, - ) -> Optional[EvaluationResult]: - """Retrieve a specific result.""" - ... -``` - -#### Adapter 1: Remote API (for SDK) - -```python -class RemoteAPIPersistence: - """Adapter that persists via HTTP calls to backend API.""" - - def __init__(self, api_client: AgentaAPIClient): - self.client = api_client - - async def save_scenario(self, scenario: ScenarioCreate) -> Scenario: - response = await self.client.post( - "/evaluations/scenarios", - json=scenario.model_dump(), - ) - return Scenario(**response.json()) - - async def save_results_batch( - self, - results: list[ResultCreate], - ) -> list[EvaluationResult]: - response = await self.client.post( - "/evaluations/results/batch", - json=[r.model_dump() for r in results], - ) - return [EvaluationResult(**r) for r in response.json()] - - # ... other methods -``` - -#### Adapter 2: DAO (for Backend) - -```python -class DAOPersistence: - """Adapter that persists directly to database via DAO.""" - - def __init__(self, evaluations_dao: EvaluationsDAO): - self.dao = evaluations_dao - - async def save_scenario(self, scenario: ScenarioCreate) -> Scenario: - return await self.dao.create_scenario(scenario=scenario) - - async def save_results_batch( - self, - results: list[ResultCreate], - ) -> list[EvaluationResult]: - return await self.dao.create_results(results=results) - - # ... other methods -``` - -#### Adapter 3: JSON (for Testing) - -```python -class JSONPersistence: - """Adapter that persists to JSON file for testing.""" - - def __init__(self, file_path: Path): - self.file_path = file_path - self.data = {"scenarios": [], "results": []} - - async def save_scenario(self, scenario: ScenarioCreate) -> Scenario: - scenario_with_id = Scenario( - id=uuid4(), - **scenario.model_dump(), - ) - self.data["scenarios"].append(scenario_with_id.model_dump()) - self._write_to_file() - return scenario_with_id - - async def save_results_batch( - self, - results: list[ResultCreate], - ) -> list[EvaluationResult]: - results_with_ids = [ - EvaluationResult(id=uuid4(), **r.model_dump()) - for r in results - ] - self.data["results"].extend([r.model_dump() for r in results_with_ids]) - self._write_to_file() - return results_with_ids - - def _write_to_file(self): - with open(self.file_path, "w") as f: - json.dump(self.data, f, indent=2, default=str) - - # ... other methods -``` - ---- - -### Goal 3: Loop Unification and Refactoring - -#### Current State Analysis - -From [iteration-patterns.md](./iteration-patterns.md), we have: - -| Component | Loops | Pattern | -|-----------|-------|---------| -| SDK | Testsets → Testcases → Apps → Evaluators | 4-level nesting | -| Legacy API | Testcases → Evaluators | 2-level nesting | -| Live API | Query Steps → Traces → Evaluators | 3-level nesting | - -#### Desired State: Unified Loop Structure - -**Single canonical loop structure** that handles all cases: - -```python -async def process( - *, - run: EvaluationRun, - slice: TensorSlice, - persistence: EvaluationPersistence, # provides populate/probe/prune -) -> ProcessSummary: - """ - Canonical process implementation. - - Used by: - - SDK (with RemoteAPIPersistence adapter) - - Backend batch evaluation (with DAOPersistence adapter) - - Backend live evaluation (with DAOPersistence adapter) - - Tests (with InMemoryPersistence adapter) - """ - - # 1. Resolve scenarios from slice - scenarios = await _resolve_scenarios(run, slice) - - # 2. For each scenario - for scenario in scenarios: - node_outputs = {} - - # 3. Execute steps in topological order - for step in run.data.steps: - if slice.steps != "all" and step.key not in slice.steps: - continue - - for repeat_idx in _resolve_repeats(slice): - # Optionally probe to skip already-successful cells - # (idempotency — collect-errors mode means errors are not skipped) - - # Invoke the step (app/evaluator call) - output = await _invoke_step(step, scenario, node_outputs) - - # Populate result - await persistence.populate( - run_id=run.id, - scenario_id=scenario.id, - step_key=step.key, - repeat_idx=repeat_idx, - trace_id=output.trace_id, - error=output.error, - ) - - node_outputs[step.key] = output - - return ProcessSummary(...) -``` - -**Key Benefits:** -- **Same loop** for batch, live, sliced execution -- **Persistence injected** → works in SDK, backend, tests -- **Graph-based** → supports arbitrary node structures -- **Clean separation** → execution logic independent of I/O - ---- - -#### Refactoring Required - -To achieve unification, we need to: - -##### 1. **Split Loops** - -**Current:** SDK has monolithic loop that does execution + persistence + aggregation - -**Desired:** Split into: -- `execute_evaluation()` - Pure execution logic -- `persist_results()` - Delegated to adapter -- `aggregate_metrics()` - Separate interpreter - ---- - -##### 2. **Merge Loops** - -**Current:** Legacy and Live have separate, similar loops - -**Desired:** Single `execute_evaluation()` that handles both via `execution_mode`: -- `ExecutionMode.BATCH` → iterate over testset -- `ExecutionMode.LIVE` → iterate over trace query results -- `ExecutionMode.SLICED` → iterate over subset - ---- - -##### 3. **Change Loop Structure** - -**Current:** Some loops iterate by index (`for idx in range(nof_testcases)`) - -**Desired:** Iterate by object (`for scenario in scenarios`) -- More Pythonic -- Easier to slice/filter -- Better error handling - ---- - -##### 4. **Extract Pure Functions** - -**Current:** Loops have side effects (DB writes, API calls) inline - -**Desired:** Extract to pure functions: -```python -# Pure function (no I/O) -def prepare_evaluator_inputs( - testcase: Testcase, - app_output: dict, - trace: Trace, -) -> dict: - """Prepare inputs for evaluator invocation.""" - return { - "inputs": testcase.inputs, - "output": app_output, - "expected_output": testcase.expected_output, - "trace": trace, - } - -# Execution loop calls pure function, then injects I/O -evaluator_inputs = prepare_evaluator_inputs(testcase, app_output, trace) -result = await persistence.save_result(...) -``` - ---- - -### Goal 4: Support Multiple Execution Modes via `TensorSlice` - -All execution modes are expressed as `process(slice)` — the `TensorSlice` determines what subset of the tensor to work on. - -#### TensorSlice - -```python -@dataclass -class TensorSlice: - """Defines which cells of the tensor to target.""" - - scenarios: Literal["all", "none"] | list[UUID] = "all" - steps: Literal["all", "none"] | list[str] = "all" - repeats: Literal["all", "none"] | list[int] = "all" -``` - -#### Examples - -**Full run (all scenarios × all steps × all repeats):** -```python -await orchestrator.process( - run=run, - slice=TensorSlice(), # defaults to "all" on every dimension - persistence=dao_persistence, -) -``` - -**Live evaluation (scenarios derived from a trace query window):** -```python -trace_scenario_ids = await resolve_live_scenarios(run, start_time, end_time) -await orchestrator.process( - run=run, - slice=TensorSlice(scenarios=trace_scenario_ids, steps="all", repeats="all"), - persistence=dao_persistence, -) -``` - -**Targeted re-run (specific scenarios and evaluators):** -```python -await orchestrator.process( - run=run, - slice=TensorSlice( - scenarios=[scenario_1_id, scenario_2_id], - steps=["evaluator-accuracy", "evaluator-hallucination"], - repeats="all", - ), - persistence=dao_persistence, -) -``` - -**Fill missing results (probe first, then process gaps):** -```python -existing = await persistence.probe(run_id=run.id, slice=TensorSlice()) -missing_slice = compute_missing(full_tensor, existing) -await orchestrator.process(run=run, slice=missing_slice, persistence=dao_persistence) -``` -``` - ---- - -## Loop Unification Strategy - -### Phase 1: Extract Core Execution Logic - -**Goal:** Create pure, testable execution functions - -**Steps:** -1. Identify common iteration patterns across SDK and API loops -2. Extract pure functions (no I/O, no side effects) -3. Create `agenta/core/evaluations/engine/executor.py` with canonical loops -4. Add comprehensive unit tests (no DB, no API required) - -**Example Pure Function:** -```python -def build_execution_plan( - graph: EvaluationGraph, - scenarios: list[Scenario], -) -> list[ExecutionStep]: - """ - Build execution plan: which nodes to run for which scenarios. - - Pure function - no I/O, fully deterministic. - """ - plan = [] - for scenario in scenarios: - for node in graph.topological_order(): - plan.append( - ExecutionStep( - scenario_id=scenario.id, - node_id=node.id, - depends_on=[...], - ) - ) - return plan -``` - ---- - -### Phase 2: Define Ports (Interfaces) - -**Goal:** Define clean contracts for I/O operations - -**Steps:** -1. Create `agenta/core/evaluations/interfaces/persistence.py` with protocols -2. Create `agenta/core/evaluations/interfaces/invocation.py` for app/evaluator calls -3. Create `agenta/core/evaluations/interfaces/data_sources.py` for testsets/traces - -**Example Invocation Port:** -```python -class WorkflowInvoker(Protocol): - """Port for invoking applications and evaluators.""" - - async def invoke( - self, - workflow_id: UUID, - inputs: dict[str, Any], - ) -> InvocationResult: - """Invoke a workflow (app or evaluator) with inputs.""" - ... -``` - ---- - -### Phase 3: Implement Adapters - -**Goal:** Create concrete implementations for each context - -**Steps:** -1. Implement `RemoteAPIPersistence` (SDK uses this) -2. Implement `DAOPersistence` (backend uses this) -3. Implement `JSONPersistence` (tests use this) -4. Implement `InMemoryPersistence` (fast tests use this) - ---- - -### Phase 4: Migrate SDK to Use Core Loops - -**Goal:** SDK uses canonical implementation with remote adapter - -**Steps:** -1. Update `sdk/agenta/sdk/evaluations/preview/evaluate.py` -2. Import `execute_evaluation` from core -3. Pass `RemoteAPIPersistence` adapter -4. Remove duplicate loop logic -5. Ensure backward compatibility (same API surface) - -**Before:** -```python -# sdk/agenta/sdk/evaluations/preview/evaluate.py -async def aevaluate(...): - # 300+ lines of loop logic + HTTP calls - for testset in testsets: - for testcase in testcases: - # ... execute ... - await api_client.post("/results", ...) # Hardcoded API call -``` - -**After:** -```python -# sdk/agenta/sdk/evaluations/preview/evaluate.py -from agenta.core.evaluations.engine.executor import process -from agenta.core.evaluations.interfaces.adapters.api import RemoteAPIPersistence -from agenta.core.evaluations.types import TensorSlice - -async def aevaluate(...): - # Create persistence adapter - persistence = RemoteAPIPersistence(api_client=agenta_api) - - # Execute using canonical process - summary = await process( - run=run, - slice=TensorSlice(), # all scenarios × all steps × all repeats - persistence=persistence, - ) - - return summary -``` - ---- - -### Phase 5: Migrate Backend to Use Core Loops - -**Goal:** Backend uses same loops with DAO adapter - -**Steps:** -1. Update `api/oss/src/core/evaluations/tasks/legacy.py` -2. Import `execute_evaluation` from core (shared module) -3. Pass `DAOPersistence` adapter -4. Remove duplicate loop logic -5. Maintain same task API for worker - -**Before:** -```python -# api/oss/src/core/evaluations/tasks/legacy.py -async def evaluate_batch_testset(...): - # 700+ lines of loop logic + DAO calls - for idx in range(nof_testcases): - for jdx in range(nof_annotations): - # ... execute ... - await dao.create_result(...) # Hardcoded DAO call -``` - -**After:** -```python -# api/oss/src/core/evaluations/tasks/legacy.py -from agenta.core.evaluations.engine.executor import process -from agenta.core.evaluations.interfaces.adapters.dao import DAOPersistence -from agenta.core.evaluations.types import TensorSlice - -async def evaluate_batch_testset(...): - # Create persistence adapter - persistence = DAOPersistence(evaluations_dao=evaluations_dao) - - # Execute using canonical process - summary = await process( - run=run, - slice=TensorSlice(), # all scenarios × all steps × all repeats - persistence=persistence, - ) - - # Update run status - await update_run_status(run.id, summary) -``` - ---- - -### Phase 6: Consolidate Live and Batch - -**Goal:** Same loop handles live and batch via execution mode - -**Steps:** -1. Merge `live.py` and `legacy.py` into single task -2. Use `ExecutionMode.BATCH` vs `ExecutionMode.LIVE` -3. Data source (testset vs traces) resolved by mode -4. Remove code duplication - -**Example:** -```python -# api/oss/src/core/evaluations/tasks/evaluate.py -async def evaluate( - run_id: UUID, - slice: TensorSlice, -): - """ - Universal evaluation task. - - Handles: - - Batch testset evaluation: TensorSlice() - - Live trace evaluation: TensorSlice(scenarios=[...derived from trace query...]) - - Targeted re-run: TensorSlice(scenarios=[...], steps=[...]) - """ - run = await runs_dao.get(run_id) - persistence = DAOPersistence(evaluations_dao=evaluations_dao) - - summary = await process( - run=run, - slice=slice, - persistence=persistence, - ) - - return summary -``` - ---- - -## Execution Modes - -All modes are expressed as `process(run, TensorSlice(...), persistence)`. - -### Full Run (Testset Evaluation) - -**Data Source:** Testset scenarios already in the tensor -**Slice:** `TensorSlice()` — all scenarios × all steps × all repeats -**Use Case:** Evaluate a full testset against applications/evaluators - -**Step structure:** -``` -input step (testset) - → invocation step (application) - → annotation step (evaluator 1) - → annotation step (evaluator 2) -``` - ---- - -### Live Mode (Trace Evaluation) - -**Data Source:** Trace query result (temporal window → scenario IDs) -**Slice:** `TensorSlice(scenarios=[...trace-derived ids...], steps="all", repeats="all")` -**Use Case:** Continuously evaluate production traces - -**Step structure:** -``` -input step (query/traces) - → annotation step (evaluator 1) - → annotation step (evaluator 2) -``` - ---- - -### Targeted Re-run (Partial Execution) - -**Data Source:** Existing scenarios in the tensor -**Slice:** `TensorSlice(scenarios=[id1, id2], steps=["evaluator-x"], repeats="all")` -**Use Case:** Re-run specific evaluators on specific scenarios (e.g., after evaluator update) - ---- - -### Fill Gaps (Idempotent Completion) - -**Slice:** Computed from `probe` result — the set of missing or failed cells -**Use Case:** Resume an interrupted run; fill in cells that errored - -```python -existing = await persistence.probe(run_id=run.id, slice=TensorSlice()) -gap_slice = compute_missing(expected_full_tensor, existing) -await process(run=run, slice=gap_slice, persistence=persistence) -``` - ---- - -## Migration Path - -### Stage 1: Foundation (Weeks 1-2) - -**Goal:** Establish core architecture without breaking existing code - -**Tasks:** -1. ✅ Document current state ([iteration-patterns.md](./iteration-patterns.md)) -2. ✅ Document desired state (this document) -3. Create `agenta/core/evaluations/engine/` module structure -4. Define ports (protocols) in `interfaces/` -5. Extract pure functions from SDK loops -6. Write unit tests for pure functions (no I/O) - -**Deliverables:** -- Core module structure in place -- Ports defined and documented -- Pure execution logic extracted and tested -- No changes to existing SDK or API code yet - ---- - -### Stage 2: Adapters (Weeks 3-4) - -**Goal:** Implement persistence adapters - -**Tasks:** -1. Implement `DAOPersistence` adapter -2. Implement `RemoteAPIPersistence` adapter -3. Implement `InMemoryPersistence` adapter (for tests) -4. Write integration tests for each adapter -5. Document adapter usage patterns - -**Deliverables:** -- All adapters implemented and tested -- Adapter selection guide documented -- Integration tests passing -- Still no changes to existing SDK/API code - ---- - -### Stage 3: SDK Migration (Weeks 5-6) - -**Goal:** Migrate SDK to use core loops - -**Tasks:** -1. Update `sdk/agenta/sdk/evaluations/preview/evaluate.py` -2. Replace loop logic with `execute_evaluation()` call -3. Use `RemoteAPIPersistence` adapter -4. Maintain backward compatibility (same API surface) -5. Run full SDK test suite -6. Update SDK documentation - -**Deliverables:** -- SDK uses canonical loops -- All SDK tests passing -- Backward compatible (no breaking changes) -- SDK documentation updated - ---- - -### Stage 4: Backend Migration - Batch (Weeks 7-8) - -**Goal:** Migrate backend batch evaluation to use core loops - -**Tasks:** -1. Update `api/oss/src/core/evaluations/tasks/legacy.py` -2. Replace loop logic with `execute_evaluation()` call -3. Use `DAOPersistence` adapter -4. Maintain same task API for workers -5. Run full API test suite -6. Performance benchmarking - -**Deliverables:** -- Backend batch evaluation uses canonical loops -- All API tests passing -- Performance meets or exceeds baseline -- Task API unchanged (backward compatible) - ---- - -### Stage 5: Backend Migration - Live (Weeks 9-10) - -**Goal:** Migrate backend live evaluation to use core loops - -**Tasks:** -1. Update `api/oss/src/core/evaluations/tasks/live.py` -2. Replace loop logic with `execute_evaluation()` call -3. Use `DAOPersistence` adapter -4. Use `ExecutionMode.LIVE` with temporal scope -5. Run full API test suite -6. Performance benchmarking - -**Deliverables:** -- Backend live evaluation uses canonical loops -- All API tests passing -- Performance meets or exceeds baseline -- Temporal execution working correctly - ---- - -### Stage 6: Consolidation (Weeks 11-12) - -**Goal:** Merge batch and live into single task - -**Tasks:** -1. Create unified `evaluate()` task -2. Handle batch/live via `ExecutionMode` parameter -3. Deprecate `evaluate_batch_testset` and `evaluate_live_query` -4. Update all callers to use new unified task -5. Remove deprecated code after migration period -6. Update documentation - -**Deliverables:** -- Single evaluation task handles all modes -- Deprecated tasks removed (or marked for removal) -- All callers migrated -- Documentation complete - ---- - -### Stage 7: Metrics & Interpretation (Weeks 13-14) - -**Goal:** Apply same architecture to metrics aggregation - -**Tasks:** -1. Extract metrics aggregation into `TensorInterpreter` -2. Define `MetricsPort` interface -3. Implement adapters for different analytics backends -4. Migrate `refresh_metrics()` to use interpreter -5. Add support for custom aggregation functions - -**Deliverables:** -- Metrics aggregation uses ports & adapters -- Custom aggregations supported -- All metrics tests passing -- Performance validated - ---- - -## Decisions - -### 1. Graph Representation - -**Decided: Declarative configuration** — `run.data.steps` is a list of steps with `type`, `origin`, and `references`. The execution engine derives topology from this list. No explicit nodes+edges graph object. - ---- - -### 2. Error Handling - -**Decided: Collect errors** — execution continues across all cells; failures are recorded as error-valued results. - -This is a natural fit for the data model: every `EvaluationResult` holds either a `trace_id` (reference to a successful trace) or an `error` stored by value — or both if a trace partially succeeded. Errors are visible in the tensor alongside successes without stopping the run. - ---- - -### 3. Concurrency - -**Decided: Implementation concern for `process`** — the architecture does not mandate sequential vs. parallel vs. distributed execution. The `TensorSlice` contract specifies _what_ to run; each `process` implementation (SDK, Taskiq worker, future distributed executor) chooses its own concurrency model. The persistence port (`populate`/`probe`/`prune`) must be safe to call concurrently. - ---- - -### 4. Tensor Sparsity - -**Decided: Handled by `process` and `populate`** — missing cells are a natural outcome of partial runs, failures, or slice-targeted execution. The mechanism for filling gaps is `process(TensorSlice(...))` targeting the missing subset, with `probe` used to discover what is missing. No separate sparsity-handling primitive is needed. - ---- - -### 5. Shared Module Packaging - -**Decided: Monorepo shared module for now.** Revisit if/when the canonical loop is stable and independent versioning becomes necessary. - ---- - -### 6. Backward Compatibility - -**Strategy:** -- Keep old task signatures; delegate to new implementation internally -- New stack ships under `/preview/*` while old endpoints remain mounted -- Remove old loops only after both SDK and backend are migrated and tested - ---- - -## Success Criteria - -### Technical Metrics - -- [ ] **Single Source of Truth:** SDK and API use same execution loops -- [ ] **Test Coverage:** >90% coverage for core execution logic -- [ ] **Performance:** New implementation matches or exceeds current performance -- [ ] **Modularity:** Can swap persistence adapters without changing execution logic -- [ ] **Consistency:** Same loops used for batch, live, sliced, incremental modes - -### Code Quality Metrics - -- [ ] **Reduced Duplication:** <10% code duplication between SDK and API evaluation logic -- [ ] **Pure Functions:** >80% of execution logic is pure (no I/O) -- [ ] **Interface Adherence:** All I/O goes through defined ports -- [ ] **Documentation:** All ports, adapters, and execution modes documented - -### Functional Metrics - -- [ ] **Backward Compatibility:** All existing SDK and API tests pass -- [ ] **Feature Parity:** New implementation supports all current features -- [ ] **Error Handling:** Graceful handling of failures with clear error messages -- [ ] **Observability:** Execution progress and errors are logged/traced - ---- - -## Related Documentation - -- [Current State - Iteration Patterns](./iteration-patterns.md) -- [API Architecture Patterns](../../../AGENTS.md#api-architecture-patterns-oss--ee) -- [Testing Documentation](../testing/README.md) - ---- - -## Appendix: Example End-to-End Flow - -### Before (Current State) - -**SDK:** -```python -# sdk/agenta/sdk/evaluations/preview/evaluate.py -async def aevaluate(...): - for testset in testsets: - for testcase in testcases: - for app in apps: - result = await invoke_app(...) - await agenta_api.post("/results", result) # Direct API call - for evaluator in evaluators: - result = await invoke_evaluator(...) - await agenta_api.post("/results", result) # Direct API call -``` - -**Backend:** -```python -# api/oss/src/core/evaluations/tasks/legacy.py -async def evaluate_batch_testset(...): - for idx in range(nof_testcases): - for jdx in range(nof_annotations): - result = await invoke_evaluator(...) - await dao.create_result(result) # Direct DAO call -``` - -**Problems:** -- Duplicate loop logic (SDK and backend) -- Hardcoded persistence (API calls vs DAO) -- Different iteration patterns (objects vs indices) -- Hard to test without external dependencies - ---- - -### After (Desired State) - -**Core Module (Shared):** -```python -# agenta/core/evaluations/engine/executor.py -async def process( - *, - run: EvaluationRun, - slice: TensorSlice, - persistence: EvaluationPersistence, # Injected — provides populate/probe/prune -) -> ProcessSummary: - scenarios = await resolve_scenarios(run, slice) - - for scenario in scenarios: - node_outputs = {} - - for step in run.data.steps: - for repeat_idx in resolve_repeats(slice): - output = await invoke_step(step, scenario, node_outputs) - - await persistence.populate( - run_id=run.id, - scenario_id=scenario.id, - step_key=step.key, - repeat_idx=repeat_idx, - trace_id=output.trace_id, - error=output.error, - ) - node_outputs[step.key] = output - - return ProcessSummary(...) -``` - -**SDK:** -```python -# sdk/agenta/sdk/evaluations/preview/evaluate.py -from agenta.core.evaluations.engine.executor import process -from agenta.core.evaluations.interfaces.adapters.api import RemoteAPIPersistence -from agenta.core.evaluations.types import TensorSlice - -async def aevaluate(...): - persistence = RemoteAPIPersistence(agenta_api) - return await process(run=run, slice=TensorSlice(), persistence=persistence) -``` - -**Backend:** -```python -# api/oss/src/core/evaluations/tasks/evaluate.py -from agenta.core.evaluations.engine.executor import process -from agenta.core.evaluations.interfaces.adapters.dao import DAOPersistence -from agenta.core.evaluations.types import TensorSlice - -async def evaluate(run_id: UUID, slice: TensorSlice): - run = await runs_dao.get(run_id) - persistence = DAOPersistence(evaluations_dao) - return await process(run=run, slice=slice, persistence=persistence) -``` - -**Benefits:** -- ✅ Single source of truth (shared `process`) -- ✅ Persistence injected via `populate`/`probe`/`prune` port -- ✅ Same iteration pattern (objects, not indices) -- ✅ Testable without external dependencies (use `InMemoryPersistence`) -- ✅ Consistent across SDK, backend, tests - ---- - -**Document Status:** Draft for review and discussion -**Next Steps:** Review with team, refine based on feedback, begin Stage 1 implementation diff --git a/docs/designs/eval-loops/evaluation-operations.md b/docs/designs/eval-loops/evaluation-operations.md deleted file mode 100644 index ac12edf59f..0000000000 --- a/docs/designs/eval-loops/evaluation-operations.md +++ /dev/null @@ -1,540 +0,0 @@ -# Evaluation Operations - -**Created:** 2026-02-17 -**Purpose:** Document the supported operations on an evaluation — graph mutations, tensor interface, and orchestration -**Related:** -- [Evaluation Structure](./evaluation-structure.md) -- [Iteration Patterns](./iteration-patterns.md) -- [Desired Architecture](./desired-architecture.md) - ---- - -## Table of Contents - -- [Design Principle: Everything is a Mutation](#design-principle-everything-is-a-mutation) -- [Layer Model](#layer-model) -- [Step Model](#step-model) -- [Creation](#creation) -- [Graph Mutations](#graph-mutations) - - [add_step](#add_step) - - [remove_step](#remove_step) - - [Edit Step (via Remove + Add)](#edit-step-via-remove--add) -- [Tensor Mutations](#tensor-mutations) - - [add_scenario / remove_scenario](#add_scenario--remove_scenario) - - [increase_repeats / decrease_repeats](#increase_repeats--decrease_repeats) - - [populate / prune](#populate--prune) - - [probe](#probe) -- [Metrics](#metrics) - - [refresh_metrics](#refresh_metrics) -- [Flag Operations](#flag-operations) - - [get_flags / set_flags](#get_flags--set_flags) - - [set_flag](#set_flag) -- [Orchestration: process](#orchestration-process) -- [TensorSlice](#tensorslice) -- [Operation Summary](#operation-summary) - ---- - -## Design Principle: Everything is a Mutation - -**Creation with a graph definition is sugar for: create empty + apply mutations.** - -``` -create(graph_definition) -≡ -create_empty() -+ add_step(type="input", ...) [for each data source in graph] -+ add_step(type="invocation", ...) [for each application in graph] -+ add_step(type="annotation", ...) [for each evaluator in graph] -``` - -This makes the operation model explicit: -- If a mutation is supported, it is supported at creation time -- If a mutation is not supported (or gated by a flag), that applies at creation time too -- There are no "creation-only" special cases - ---- - -## Layer Model - -Operations are organized into two symmetric layers, plus an orchestration layer above both: - -``` -┌─────────────────────────────────────────────────────────┐ -│ Orchestration │ -│ process(slice) │ -│ SDK | Backend | Frontend — each impl. │ -│ All converge on the tensor layer below ↓ │ -└─────────────────────────────────────────────────────────┘ - -┌──────────────────────────┐ ┌──────────────────────────┐ -│ Graph Layer │ │ Tensor Layer │ -│ │ │ │ -│ add_step │ │ add_scenario │ -│ remove_step ───────────┼─►│ remove_scenario │ -│ │ │ │ -│ (steps define the │ │ increase_repeats │ -│ shape of the tensor) │ │ decrease_repeats │ -│ │ │ │ -│ │ │ populate (write) │ -│ │ │ prune (delete) │ -│ │ │ probe (read) │ -└──────────────────────────┘ └──────────────────────────┘ -``` - -**Graph layer** defines the structure: which steps exist, what they reference. -**Tensor layer** operates on the data: scenarios, repeats, and result cells. -**Cross-layer cascade:** `remove_step` triggers tensor-level operations (`remove_scenario` for input steps, `prune` for results of that step). - -**Tensor interface** (`probe` / `prune` / `populate`) is the shared contract. `process` is not a single implementation but a role: the SDK, the backend task runner, and the frontend each implement it differently, but all call `populate` to commit results. - ---- - -## Step Model - -All graph nodes are **steps**. A step has a `type` and an `origin`. - -### Step type - -**Field:** `type: Literal["input", "invocation", "annotation"]` -**Source:** `api/oss/src/core/evaluations/types.py:27` - -| Type | Meaning | Examples | -|------|---------|---------| -| `"input"` | Data source — provides inputs | Testset, Query | -| `"invocation"` | Invokes a workflow, produces a trace | Application/variant | -| `"annotation"` | Evaluates/scores, produces a trace | Evaluator/judge | - -### Step origin - -**Field:** `origin: Literal["human", "custom", "auto"]` -**Source:** `api/oss/src/core/evaluations/types.py:28` - -| Origin | Who populates results | Web behavior | Backend behavior | -|--------|----------------------|--------------|-----------------| -| `"auto"` | Backend | Transparent | Runs step automatically | -| `"human"` | A person via the UI | Prompts user for data | Waits — does not run | -| `"custom"` | External / programmatic | Transparent | Does not run | - -**Key rule:** `process` only runs `"auto"` steps. `"human"` and `"custom"` steps are populated via direct `populate` calls from outside the process orchestration. - -### Step definition (from codebase) - -```python -class EvaluationRunDataStep(BaseModel): - key: str # step_key — unique per run - type: Literal["input", "invocation", "annotation"] - origin: Literal["human", "custom", "auto"] - references: Dict[str, Reference] # points to specific revision - inputs: Optional[List[EvaluationRunDataStepInput]] = None -``` - -**Source:** `api/oss/src/core/evaluations/types.py:113-118` - -Nodes are **immutable by reference** — `references` points to a specific revision. It cannot be changed once set. - ---- - -## Creation - -### `create_empty()` - -Creates an evaluation with no graph and no tensor. All flags at defaults. - -``` -EvaluationRun: - steps: [] - tensor: { scenarios: [], results: [], metrics: [] } - flags: { is_live: false, is_active: true, repeat_target: "application", - reuse_traces: false, is_closed: false, - allow_decrease_repeats: false } -``` - -### `create(graph_definition?)` - -Equivalent to `create_empty()` followed by `add_step(...)` for each step in the definition. All the same mutation rules apply. - ---- - -## Graph Mutations - ---- - -### `add_step` - -**Operation:** `add_step(type, origin, references, key?, inputs?)` - -Adds a step to the graph. Multiple steps of the same type are supported. - -```python -add_step( - type: Literal["input", "invocation", "annotation"], - origin: Literal["human", "custom", "auto"], - references: Dict[str, Reference], - key: Optional[str] = None, # auto-generated if not provided - inputs: Optional[List[StepInput]] = None, -) -``` - -**Compatibility check:** `is_live = true` rejects `type = "input"` steps backed by a testset. - -**Effect on tensor:** None immediately. Data is created during process or via direct populate. - -**Allowed when `is_closed`:** No. - ---- - -### `remove_step` - -**Operation:** `remove_step(step_key: str)` - -Removes a step and all its associated tensor data. - -**Effect:** -1. Remove step from graph -2. `prune(TensorSlice(steps=[step_key], scenarios="all", repeats="all"))` — results -3. Flush metrics referencing `step_key` -4. If `type = "input"`: also prune scenarios sourced exclusively from this step - -**Allowed when `is_closed`:** No. - ---- - -### Edit Step (via Remove + Add) - -**There is no `edit_step` operation.** References are immutable. - -Changing a reference = `remove_step(old_key)` + `add_step(new_references)`. The flush cost is intentional and visible. - ---- - -## Tensor Mutations - -Tensor operations work on the data inside the evaluation — scenarios, repeats, and result cells. They are organized as symmetric pairs plus a read operation. - ---- - -### `add_scenario` / `remove_scenario` - -**`add_scenario(source: TestcaseRef | TraceRef)`** — adds a row to the tensor. - -```python -class TestcaseRef: - testcase_id: UUID - -class TraceRef: - trace_id: UUID - timestamp: Optional[datetime] # required for is_live=true - interval: Optional[str] # required for is_live=true -``` - -Normally created automatically during `process`. Direct `add_scenario` supports manual or incremental construction. - ---- - -**`remove_scenario(scenario_id: UUID)`** — removes a row and all its results. - -Equivalent to: -```python -prune(TensorSlice(scenarios=[scenario_id], steps="all", repeats="all")) -# + delete the scenario row itself -``` - -Triggered automatically by `remove_step` when the removed step was the sole input source for a scenario. - -**Both allowed when `is_closed`:** No. - ---- - -### `increase_repeats` / `decrease_repeats` - -**`increase_repeats(new_count: int)`** — expands the repeat dimension. `new_count > current`. Non-destructive: no data is deleted. New slots are empty until filled by `populate` or `process`. - ---- - -**`decrease_repeats(new_count: int)`** — shrinks the repeat dimension. `new_count < current`. - -**Effect:** -1. `prune(TensorSlice(scenarios="all", steps="all", repeats=[n, ..., old_count-1]))` -2. Full metrics flush — recompute with `refresh_metrics()` - -**Gated by flag:** `allow_decrease_repeats: bool` (default `false`). - -**Both allowed when `is_closed`:** No. - ---- - -### `populate` / `prune` - -**`populate(slice: TensorSlice, results: List[ResultData])`** — writes result cells. Creates or overwrites. - -```python -class ResultData: - scenario_id: UUID - step_key: str - repeat_idx: int - trace_id: Optional[UUID] # reference to execution trace - error: Optional[str] # set if the step failed -``` - -**This is the convergence point.** All `process` implementations — SDK, backend, frontend — call `populate` to commit results, regardless of how they produced them: -- Backend `process`: calls `populate` after running `auto` steps -- Frontend `process`: calls `populate` after a human submits an annotation -- External `process`: calls `populate` after a custom/programmatic step completes - -Does not automatically refresh metrics — call `refresh_metrics()` after bulk populate. - ---- - -**`prune(slice: TensorSlice)`** — deletes result cells within the slice and flushes affected metrics. - -```python -# All results for a specific step -prune(TensorSlice(steps=["eval-rev-abc"], scenarios="all", repeats="all")) - -# High repeat indices (after decrease_repeats) -prune(TensorSlice(steps="all", scenarios="all", repeats=[3, 4, 5])) - -# All results for specific scenarios -prune(TensorSlice(steps="all", scenarios=[sid1, sid2], repeats="all")) -``` - -Metrics are always flushed conservatively — recompute with `refresh_metrics()`. - -**Both allowed when `is_closed`:** No. - ---- - -### `probe` - -**`probe(slice: TensorSlice, status: StatusFilter) → List[ResultRef]`** — read-only. Returns all cells within the slice that match the status. - -```python -StatusFilter = Literal["missing", "success", "failure", "any"] -``` - -| Status | Meaning | -|--------|---------| -| `"missing"` | Cell in slice has no result yet | -| `"success"` | Result exists with no error and a valid `trace_id` | -| `"failure"` | Result exists with a non-null `error` | -| `"any"` | All cells in the slice | - -**Returns:** List of `(scenario_id, step_key, repeat_idx)` composite keys. - -**Primary use:** Determine what to (re-)process, or audit completeness before closing. - -**Allowed when `is_closed`:** Yes. - ---- - -## Metrics - -Metrics are derived from results. They are not part of the core tensor interface but follow the same slice-scoped pattern. - -### `refresh_metrics` - -**Operation:** `refresh_metrics(scope?: GlobalScope | VariationalScope | TemporalScope)` - -Recomputes metrics from current results. - -``` -1. Fetch results matching scope -2. Extract trace_ids -3. Run SQL aggregations over trace data -4. Write metrics entities -``` - -**When to call:** -- After `process` completes -- After `decrease_repeats` -- After `remove_step` -- After bulk `populate` -- On user-initiated recalculate - -**Allowed when `is_closed`:** Yes (metrics are derived, not structural). - ---- - -## Flag Operations - -Flags are properties of the `EvaluationRun` that control behavior. At the storage level there is no per-flag update — flags are always read as a set and written as a set. The user-facing API provides `set_flag` which wraps that read-modify-write cycle. - ---- - -### `get_flags` / `set_flags` - -**`get_flags(run_id) → EvaluationFlags`** — returns all current flag values. - -```python -class EvaluationFlags: - is_live: bool # online vs offline execution - is_active: bool # pause/resume (only meaningful when is_live=true) - repeat_target: Literal["application", "evaluator"] - reuse_traces: bool - is_closed: bool # lock evaluation against mutations - allow_decrease_repeats: bool # gate on destructive repeat reduction -``` - ---- - -**`set_flags(run_id, flags: EvaluationFlags)`** — low-level write of the full flags object. Replaces all flags atomically. - -This is the primitive. Not intended to be called directly in most contexts — use `set_flag` instead. - ---- - -### `set_flag` - -**`set_flag(run_id, name: str, value: Any)`** — set a single flag. Internally performs: - -``` -flags = get_flags(run_id) -flags[name] = value -set_flags(run_id, flags) -``` - -**Available flags and their constraints:** - -| Flag | Type | Constraint on set | -|------|------|-------------------| -| `is_live` | `bool` | Setting `true` when testset input steps exist → rejected | -| `is_active` | `bool` | Only meaningful when `is_live = true` | -| `repeat_target` | `"application" \| "evaluator"` | Changing after results exist → requires `prune` first (or explicit override) | -| `reuse_traces` | `bool` | No structural constraint | -| `is_closed` | `bool` | Setting `true` gates all subsequent mutations; setting `false` reopens | -| `allow_decrease_repeats` | `bool` | Safety gate — must be set `true` before calling `decrease_repeats` | - -**Allowed when `is_closed`:** -- `is_closed` itself: Yes — you must be able to set it to `false` to reopen -- All other flags: No — closed evaluation is read-only - ---- - -## Orchestration: process - -**Operation:** `process(slice: TensorSlice)` - -Drives `auto`-origin steps within the slice, in graph-topological order. - -`process` is **not a single implementation** — it is a role. The SDK, the backend task runner, and the frontend each implement it differently. What they share is the contract: read from the graph, produce results, call `populate`. - -``` -process(slice): - for each scenario in slice: - ensure scenario exists (add_scenario if needed) - for each auto step in slice (topological order): - for each repeat in slice: - if probe({scenario}, {step}, {repeat}, "success"): - skip (already done) - run step → trace_id or error - populate({scenario, step, repeat, trace_id, error}) - refresh_metrics() -``` - -**What it does NOT do:** -- Does not touch `human` or `custom` steps — those are populated from outside -- Does not run steps outside the slice - -**Common patterns:** - -```python -# Full run -process(TensorSlice(scenarios="all", steps="all", repeats="all")) - -# Retry all failures -failed = probe(TensorSlice(scenarios="all", steps="all", repeats="all"), status="failure") -process(TensorSlice( - scenarios=[r.scenario_id for r in failed], - steps="all", - repeats="all", -)) - -# Fill missing results for one evaluator -process(TensorSlice(scenarios="all", steps=["eval-rev-abc"], repeats="all")) - -# Fill new repeat slots after increase_repeats -process(TensorSlice(scenarios="all", steps="all", repeats=[3, 4])) -``` - -**Allowed when `is_closed`:** No. - ---- - -## TensorSlice - -A `TensorSlice` specifies a subset of the tensor along all three dimensions. Used by `probe`, `prune`, `populate`, and `process`. - -```python -class TensorSlice: - scenarios: Literal["all", "none"] | List[UUID] # scenario_ids - steps: Literal["all", "none"] | List[str] # step_keys - repeats: Literal["all", "none"] | List[int] # repeat_idx values -``` - -| Value | Meaning | -|-------|---------| -| `"all"` | Every item in this dimension | -| `"none"` | Nothing (empty slice — no-op for write operations) | -| `[...]` | Only the listed items | - ---- - -## Operation Summary - -### Graph Mutations - -| Operation | Flushes Results | Flushes Metrics | Allowed when `is_closed` | -|-----------|-----------------|-----------------|--------------------------| -| `add_step(...)` | No | No | No | -| `remove_step(key)` | Yes — for `key` | Yes — for `key` | No | -| ~~`edit_step`~~ | — | — | Not supported; use remove + add | - -### Tensor Mutations - -| Operation | Pair | Deletes Data | Flushes Metrics | Gated by Flag | Allowed when `is_closed` | -|-----------|------|--------------|-----------------|---------------|--------------------------| -| `add_scenario(...)` | ↕ | No | No | No | No | -| `remove_scenario(id)` | ↕ | Yes — scenario + its results | Yes — for scenario | No | No | -| `increase_repeats(n)` | ↕ | No | No | No | No | -| `decrease_repeats(n)` | ↕ | Yes — pruned repeats | Yes — full flush | `allow_decrease_repeats` | No | -| `populate(slice, results)` | ↕ | No (overwrites) | No | No | No | -| `prune(slice)` | ↕ | Yes — per slice | Yes — per scope | No | No | -| `probe(slice, status)` | — | No | No | No | Yes | - -### Metrics - -| Operation | Allowed when `is_closed` | -|-----------|--------------------------| -| `refresh_metrics(scope?)` | Yes | - -### Flag Operations - -| Operation | Effect | Allowed when `is_closed` | -|-----------|--------|--------------------------| -| `get_flags(run_id)` | Read all flags | Yes | -| `set_flags(run_id, flags)` | Write all flags atomically (low-level) | Only for `is_closed` itself | -| `set_flag(run_id, name, value)` | Read-modify-write a single flag | Only for `is_closed` itself | - -### Orchestration - -| Operation | Calls | Respects `origin` | Allowed when `is_closed` | -|-----------|-------|-------------------|--------------------------| -| `process(slice)` | probe + populate + refresh_metrics | Yes — only runs `auto` steps | No | - -### Invariants - -1. **Steps are immutable by reference.** Use remove + add to change a reference. The flush is intentional. -2. **Graph and tensor are symmetric.** Graph has `add_step` / `remove_step`; tensor has matching add/remove pairs for scenarios, repeats, and cells. -3. **`remove_step` cascades to the tensor.** It triggers `remove_scenario` (for input steps) and `prune` (for results of that step). -4. **Closed evaluations are read-only for structure and results.** `probe` and `refresh_metrics` work when closed; all mutations do not. -5. **Decreasing repeats is destructive.** Gated by `allow_decrease_repeats`. -6. **Metrics are always derived.** Flushing is cache invalidation, not data loss. -7. **`process` only touches `auto` steps.** `human` and `custom` steps are populated from outside via direct `populate` calls. -8. **`populate` is the convergence point.** All process implementations — SDK, backend, frontend — call `populate` to commit results. -9. **Creation is mutation.** No operation available at creation is unavailable afterward, and vice versa. - ---- - -**Document Status:** Draft -**Next Action:** Review layer model and tensor interface contract with team diff --git a/docs/designs/eval-loops/evaluation-structure.md b/docs/designs/eval-loops/evaluation-structure.md deleted file mode 100644 index 2edcdc2dde..0000000000 --- a/docs/designs/eval-loops/evaluation-structure.md +++ /dev/null @@ -1,1983 +0,0 @@ -# Evaluation Structure - -**Created:** 2026-02-16 -**Purpose:** Document the evaluation structure — graph, tensor, flags, and constraints -**Related:** -- [Current State - Iteration Patterns](./iteration-patterns.md) -- [Desired Architecture](./desired-architecture.md) -- [Refactoring Analysis](./refactoring-analysis.md) -- [Evaluation Operations](./evaluation-operations.md) - ---- - -## Table of Contents - -- [Overview](#overview) -- [Graph Components](#graph-components) -- [Execution Flags](#execution-flags) -- [Data Source Types](#data-source-types) -- [Compatibility Constraints](#compatibility-constraints) -- [Tensor Structure](#tensor-structure) - - [Five Entities](#five-entities) - - [Tensor Dimensions](#tensor-dimensions) - - [EvaluationResult: the Cell](#evaluationeresult-the-cell) - - [Tensor Population Flow](#tensor-population-flow) - - [Metrics](#metrics) -- [Current Graph Structures](#current-graph-structures) -- [Future Graph Structures](#future-graph-structures) - ---- - -## Overview - -An evaluation graph defines: -1. **Data sources** (what to evaluate) -2. **Execution steps** (applications, evaluators) -3. **Execution mode** (online vs offline, batch vs sliced) -4. **Constraints** (compatibility rules between components) - -The graph structure determines: -- What can be executed together -- How data flows between steps -- When and how often execution occurs -- What results are collected - ---- - -## Graph Components - -### Node Types - -#### 1. Query Node (Data Source) -**Purpose:** Load traces from the tracing system - -**Properties:** -- `type: "query"` -- `query_spec`: Query criteria (filters, time window, etc.) -- `time_window`: Optional time bounds (start_time, end_time) - -**Behavior:** -- **Offline mode:** Executes once, returns snapshot of matching traces -- **Online mode:** Executes periodically, windowed by current interval - -**Example:** -```json -{ - "type": "query", - "query_spec": { - "filters": { - "status": "success", - "application_id": "app-123" - }, - "time_window": { - "start_time": "2026-02-16T00:00:00Z", - "end_time": "2026-02-16T23:59:59Z" - } - } -} -``` - ---- - -#### 2. Testset Node (Data Source) -**Purpose:** Load test cases from a testset revision - -**Properties:** -- `type: "testset"` -- `testset_id`: UUID -- `testset_revision_id`: UUID -- `testset_variant_id`: Optional UUID - -**Behavior:** -- **Offline mode:** Returns all test cases from the testset revision -- **Online mode:** ❌ Not compatible (re-execution yields same data) - -**Example:** -```json -{ - "type": "testset", - "testset_id": "ts-123", - "testset_revision_id": "rev-456", - "testset_variant_id": "var-789" -} -``` - ---- - -#### 3. Application Node (Execution Step) -**Purpose:** Invoke an application workflow with inputs - -**Properties:** -- `type: "application"` -- `application_id`: UUID -- `application_revision_id`: UUID -- `application_variant_id`: Optional UUID - -**Inputs:** -- From data source node: `testcase.data` or `trace inputs` - -**Outputs:** -- `trace_id`: Execution trace -- `outputs`: Application outputs (extracted from trace) - -**Example:** -```json -{ - "type": "application", - "application_id": "app-123", - "application_revision_id": "rev-456" -} -``` - ---- - -#### 4. Evaluator Node (Execution Step) -**Purpose:** Invoke an evaluator workflow to score/judge outputs - -**Properties:** -- `type: "evaluator"` -- `evaluator_id`: UUID -- `evaluator_revision_id`: UUID -- `evaluator_variant_id`: Optional UUID - -**Inputs:** -- From data source node: `testcase` or `trace` -- From application node: `outputs`, `trace` - -**Outputs:** -- `trace_id`: Evaluation trace -- `metrics`: Evaluation scores/judgments - -**Example:** -```json -{ - "type": "evaluator", - "evaluator_id": "eval-123", - "evaluator_revision_id": "rev-456" -} -``` - ---- - -## Execution Flags - -### Current Flags - -#### 1. `is_live` - Online vs Offline Evaluation - -**Type:** `boolean` -**Default:** `false` -**Location:** `EvaluationRun.is_live` (or similar field) - -**Purpose:** Determines execution mode - -##### `is_live = false` (Offline / Batch Evaluation) -- **Execution:** One-time, on-demand or scheduled -- **Scenarios:** Created once for all inputs -- **Data sources:** Testsets OR Queries (snapshot) -- **Use case:** Evaluate a specific dataset or time window - -**Behavior:** -``` -1. Load data source (testset or query) -2. Create scenarios (one per input) -3. Execute graph for all scenarios -4. Complete run -``` - ---- - -##### `is_live = true` (Online / Live Evaluation) -- **Execution:** Periodic, runs on interval (e.g., every hour) -- **Scenarios:** Include `timestamp` and `interval` fields -- **Data sources:** Queries ONLY (windowed by interval) -- **Use case:** Continuously evaluate production traffic - -**Behavior:** -``` -For each interval (e.g., hourly): -1. Overwrite query time window with current interval - Example: interval = "2026-02-16T10:00:00Z to 2026-02-16T11:00:00Z" -2. Execute query → get traces from that window -3. Create scenarios (one per trace) with timestamp + interval -4. Execute graph for scenarios -5. Wait for next interval -``` - -**Scenario fields:** -```python -class EvaluationScenario: - id: UUID - run_id: UUID - timestamp: Optional[datetime] # Only for is_live=true - interval: Optional[str] # Only for is_live=true (e.g., "1h") - status: EvaluationStatus -``` - ---- - -#### Why Testsets are Incompatible with Online Evaluation - -**Constraint:** `is_live = true` → Data source MUST be Query - -**Reason:** -- **Testsets are static:** Re-executing a testset always yields the same test cases -- **Queries are dynamic:** Re-executing a query with different time windows yields different traces - -**Example:** - -``` -Testset (static): - Interval 1 (10:00-11:00): [testcase_1, testcase_2, testcase_3] - Interval 2 (11:00-12:00): [testcase_1, testcase_2, testcase_3] ← Same data! - Interval 3 (12:00-13:00): [testcase_1, testcase_2, testcase_3] ← Same data! - -Query (dynamic): - Interval 1 (10:00-11:00): [trace_a, trace_b] from 10:00-11:00 - Interval 2 (11:00-12:00): [trace_c, trace_d, trace_e] from 11:00-12:00 ← Different! - Interval 3 (12:00-13:00): [trace_f] from 12:00-13:00 ← Different! -``` - -**Implication:** -- Online evaluation with testsets would create duplicate scenarios for the same test cases every interval -- No new information would be gained -- Wasteful and confusing - ---- - -### Compatibility Matrix - -| Data Source | `is_live = false` (Offline) | `is_live = true` (Online) | -|-------------|-----------------------------|---------------------------| -| **Testset** | ✅ Compatible | ❌ Not compatible | -| **Query** | ✅ Compatible (snapshot) | ✅ Compatible (windowed) | - ---- - -#### Companion Flag: `is_active` (Works with `is_live`) - -**Type:** `boolean` -**Default:** `true` (when `is_live = true`) -**Location:** `EvaluationRun.is_active` (or similar field) - -**Purpose:** Controls whether online evaluation should actually execute on periodic ticks - -**Interaction with `is_live`:** - -| `is_live` | `is_active` | Behavior | -|-----------|-------------|----------| -| `false` | N/A | Offline evaluation (not periodic) | -| `true` | `true` | Online evaluation **running** (executes on ticks) | -| `true` | `false` | Online evaluation **paused** (skipped on ticks) | - -**Use cases:** -- **Pause online evaluation:** Set `is_active = false` to temporarily stop execution without deleting the run -- **Resume online evaluation:** Set `is_active = true` to restart execution -- **Debugging:** Pause problematic evaluations without losing configuration - -**Behavior on periodic tick:** -```python -# Periodic scheduler (e.g., every hour) -for run in get_online_evaluations(): - if run.is_live and run.is_active: - # Execute this online evaluation - await execute_live_evaluation(run) - elif run.is_live and not run.is_active: - # Skip - evaluation is paused - continue -``` - -**Status:** Likely implemented (needs verification) - ---- - -### Graph Configuration Flags - -These are the key flags that control evaluation behavior: - ---- - -#### 2. `repeat_target` (CRITICAL - Currently Implicit) -**Current state:** Hardcoded (location TBD in code) -**Current value:** Unknown (needs investigation) -**Type:** `Literal["application", "evaluator"]` - -**Purpose:** Determines where repeats are applied in the graph - -This is a **critical degree of freedom** that fundamentally changes: -- What variability is being measured -- Tensor structure (rows vs columns) -- Execution order -- Cost (app invocations vs evaluator invocations) - ---- - -##### `repeat_target = "application"` (Test Application Variability) - -**Fanout location:** Between inputs and application invocations - -**What's being tested:** Variability/consistency of the application under test - -**Graph structure:** -``` -Input 1 → Application (repeat 1) → Evaluator 1 - → Evaluator 2 - → Application (repeat 2) → Evaluator 1 - → Evaluator 2 - → Application (repeat 3) → Evaluator 1 - → Evaluator 2 - -Input 2 → Application (repeat 1) → Evaluator 1 - → Evaluator 2 - → Application (repeat 2) → Evaluator 1 - → Evaluator 2 - ... -``` - -**Execution flow:** -```python -for testcase in testcases: - for repeat_idx in range(repeats): # REPEAT HERE - scenario = create_scenario( - testcase=testcase, - repeat_idx=repeat_idx, - ) - - # Invoke application (different each repeat) - outputs = invoke_application(testcase.inputs) - - # Invoke evaluators (once per app repeat) - for evaluator in evaluators: - metrics = invoke_evaluator(testcase, outputs) -``` - -**Tensor structure:** -``` -Rows: Scenarios (Input × Repeat) -Cols: Steps (Testset, Applications, Evaluators) - - Testset App-1 App-2 Eval-1 Eval-2 Eval-3 -Input-1-r1 ✓ ✓ ✓ ✓ ✓ ✓ -Input-1-r2 ✓ ✓ ✓ ✓ ✓ ✓ -Input-1-r3 ✓ ✓ ✓ ✓ ✓ ✓ -Input-2-r1 ✓ ✓ ✓ ✓ ✓ ✓ -Input-2-r2 ✓ ✓ ✓ ✓ ✓ ✓ -Input-2-r3 ✓ ✓ ✓ ✓ ✓ ✓ - -Each row = one scenario (input + repeat index) -Each column = one step (evaluators run once per row) -``` - -**Use cases:** -- Testing LLM temperature/sampling variability: "How consistent is GPT-4 at temp=0.7?" -- Testing RAG retrieval variability: "Do we get different docs each time?" -- A/B testing with random assignment: "Does feature flag affect results?" -- Measuring baseline noise: "What's the natural variation in our application?" - -**Cost implications:** -- Application invoked: `num_inputs × repeats` times -- Evaluators invoked: `num_inputs × repeats × num_evaluators` times -- Example: 100 inputs, 3 repeats, 2 evaluators = 300 app calls, 600 evaluator calls - ---- - -##### `repeat_target = "evaluator"` (Test Evaluator Variability) - -**Fanout location:** Between application outputs and evaluator invocations - -**What's being tested:** Variability/consistency of the evaluators - -**Graph structure:** -``` -Input 1 → Application (once) → Evaluator 1 (repeat 1) - → Evaluator 1 (repeat 2) - → Evaluator 1 (repeat 3) - → Evaluator 2 (repeat 1) - → Evaluator 2 (repeat 2) - → Evaluator 2 (repeat 3) - -Input 2 → Application (once) → Evaluator 1 (repeat 1) - → Evaluator 1 (repeat 2) - ... -``` - -**Execution flow:** -```python -for testcase in testcases: - scenario = create_scenario(testcase=testcase) - - # Invoke application (ONCE per input) - outputs = invoke_application(testcase.inputs) - - # Invoke evaluators (REPEAT HERE) - for evaluator in evaluators: - for repeat_idx in range(repeats): - metrics = invoke_evaluator(testcase, outputs) - log_result( - scenario=scenario, - step_key=f"{evaluator.id}-r{repeat_idx}", - metrics=metrics, - ) -``` - -**Tensor structure:** -``` -Rows: Scenarios (Input only, no repeat dimension) -Cols: Steps (Testset, Applications, Evaluators × Repeats) - - Testset App-1 Eval-1-r1 Eval-1-r2 Eval-1-r3 Eval-2-r1 Eval-2-r2 Eval-2-r3 -Input-1 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ -Input-2 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ -Input-3 ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ - -Each row = one scenario (input only) -Each column = one step (evaluators have repeat dimension) -``` - -**Use cases:** -- Testing human evaluator agreement: "Do 3 humans agree on quality score?" -- Testing LLM-as-judge consistency: "How stable is GPT-4 as an evaluator?" -- Ensemble evaluation: "Get multiple independent judgments, aggregate later" -- Inter-rater reliability: "Measure Cohen's kappa across evaluator repeats" - -**Cost implications:** -- Application invoked: `num_inputs` times (no repeat multiplier!) -- Evaluators invoked: `num_inputs × num_evaluators × repeats` times -- Example: 100 inputs, 3 repeats, 2 evaluators = 100 app calls, 600 evaluator calls - -**Key difference:** Much cheaper when applications are expensive (e.g., long-running workflows, API costs) - ---- - -##### Comparison Table - -| Aspect | `repeat_target = "application"` | `repeat_target = "evaluator"` | -|--------|----------------------------------|-------------------------------| -| **Fanout location** | Input → Application | Application → Evaluator | -| **What's tested** | Application variability | Evaluator variability | -| **Scenario dimension** | Input × Repeat | Input only | -| **Step dimension** | Evaluators (no repeat) | Evaluators × Repeat | -| **Tensor rows** | `num_inputs × repeats` | `num_inputs` | -| **Tensor cols** | `num_steps` | `num_steps × repeats` | -| **App invocations** | `inputs × repeats` | `inputs` | -| **Eval invocations** | `inputs × repeats × evals` | `inputs × evals × repeats` | -| **Typical use case** | LLM consistency, RAG variability | Human agreement, LLM-judge stability | - ---- - -##### Current Implementation Status - -**Status:** HARDCODED (exact mode needs investigation) - -**Likely location in code:** -- SDK: `sdk/agenta/sdk/evaluations/preview/evaluate.py` (check where `repeats` is used) -- API: May not be implemented yet - -**Questions to answer:** -1. ✅ Is `repeats` currently implemented? -2. ✅ If yes, which mode is hardcoded? (`application` or `evaluator`) -3. ✅ Where in the loop does the repeat happen? -4. ✅ How does it affect scenario creation? -5. ✅ How does it affect the tensor structure in practice? - -**Future requirement:** -- Make `repeat_target` an explicit flag in graph definition -- Support both modes -- Default to `application` for backward compatibility (if that's current behavior) -- Add validation: `repeat_target = "application"` requires application nodes in graph - ---- - -#### 3. `reuse_traces` (CRITICAL - Currently Implicit) -**Current state:** Hardcoded (location TBD in code) -**Current value:** Unknown (likely `false` - needs investigation) -**Type:** `boolean` - -**Purpose:** Avoid re-computing expensive workflows by reusing existing traces with matching inputs - -This is a **critical optimization** that enables: -- Cost savings (reuse expensive LLM calls, long-running workflows) -- Reproducibility (use same outputs across evaluations) -- Faster iteration (skip computation, reuse results) - ---- - -##### Trace Reuse Mechanism - -**1. Compute stable hash:** -```python -hash = compute_hash( - node_config=node.config, - inputs=inputs, - references=references, - links=links, -) -``` - -**Utility location:** `compute_hash()` (exists in codebase - needs verification) - -**Hash represents:** "What this computation means" - deterministic based on: -- Node configuration (workflow, parameters) -- Inputs (testcase data, upstream outputs) -- References (testset, application, evaluator IDs/versions) -- Links (upstream trace IDs, span IDs) - ---- - -**2. Hash-based trace lookup:** - -**Key property:** Hash is **NOT a primary key** (one-to-many relationship) -- Multiple traces can share the same hash (from different runs, repeats) -- Fetch traces by hash index -- Filter out failed traces (with exceptions/errors) - -**Lookup logic:** -```python -if reuse_traces: - hash = compute_hash(node, inputs, references, links) - - # Fetch all traces matching this hash - existing_traces = fetch_traces_by_hash( - hash=hash, - exclude_errors=True, # Only successful traces - ) - - if existing_traces: - # Reuse existing trace - trace = select_trace(existing_traces) - return trace - else: - # No existing trace, compute fresh - trace = invoke_workflow(node, inputs) - return trace -else: - # Always compute fresh (ignore hash) - trace = invoke_workflow(node, inputs) - return trace -``` - ---- - -##### Critical Interaction with `repeat_target` - -The `reuse_traces` flag behaves differently depending on `repeat_target`: - ---- - -###### Case 1: `repeat_target = "application"` + `reuse_traces = true` - -**Constraint:** **CANNOT reuse same trace across repeats** within the same evaluation - -**Reason:** Testing application variability requires different outputs for each repeat - -**Behavior:** -```python -for testcase in testcases: - hash = compute_hash(testcase, application_config, ...) - existing_traces = fetch_traces_by_hash(hash, exclude_errors=True) - - for repeat_idx in range(repeats): - if existing_traces and len(existing_traces) > repeat_idx: - # Reuse DIFFERENT trace for each repeat - trace = existing_traces[repeat_idx] - else: - # Need to compute fresh trace - trace = invoke_application(testcase.inputs) - - # Create scenario with this trace - scenario = create_scenario( - testcase=testcase, - trace_id=trace.id, - repeat_idx=repeat_idx, - ) -``` - -**Requirements:** -- Fetch **multiple different traces** from hash index (one per repeat) -- If not enough traces cached, compute additional ones -- Each repeat gets a different trace (even if inputs are identical) - -**Example:** -``` -Evaluation run 1 (reuse_traces=false): - Input-1, repeat-1: Compute trace_a - Input-1, repeat-2: Compute trace_b - Input-1, repeat-3: Compute trace_c - → All 3 traces stored with same hash - -Evaluation run 2 (reuse_traces=true): - Input-1, repeat-1: Reuse trace_a (from hash) - Input-1, repeat-2: Reuse trace_b (from hash) - Input-1, repeat-3: Reuse trace_c (from hash) - → No computation needed! -``` - ---- - -###### Case 2: `repeat_target = "evaluator"` + `reuse_traces = true` - -**Constraint:** **MUST reuse same trace across evaluator repeats** within the same evaluation - -**Reason:** Testing evaluator variability requires the same app output for all repeats - -**Behavior:** -```python -for testcase in testcases: - hash = compute_hash(testcase, application_config, ...) - existing_traces = fetch_traces_by_hash(hash, exclude_errors=True) - - if existing_traces: - # Reuse SAME trace for all evaluator repeats - trace = existing_traces[0] # Pick any one - else: - # Compute fresh trace - trace = invoke_application(testcase.inputs) - - # Create single scenario (no repeat dimension) - scenario = create_scenario( - testcase=testcase, - trace_id=trace.id, - ) - - # All evaluator repeats use this same trace - for evaluator in evaluators: - for repeat_idx in range(repeats): - metrics = invoke_evaluator( - testcase=testcase, - outputs=trace.outputs, # Same for all repeats - ) -``` - -**Requirements:** -- Fetch **single trace** from hash index -- All evaluator repeats use this same trace -- If multiple traces available (from previous runs), pick any one - -**Example:** -``` -Evaluation run 1 (reuse_traces=false): - Input-1: Compute trace_a - Evaluator-1, repeat-1: Evaluate trace_a - Evaluator-1, repeat-2: Evaluate trace_a (same!) - Evaluator-1, repeat-3: Evaluate trace_a (same!) - → Only 1 trace computed, evaluated 3 times - -Evaluation run 2 (reuse_traces=true): - Input-1: Reuse trace_a (from hash) - Evaluator-1, repeat-1: Evaluate trace_a (same!) - Evaluator-1, repeat-2: Evaluate trace_a (same!) - Evaluator-1, repeat-3: Evaluate trace_a (same!) - → No computation needed! -``` - ---- - -##### Comparison Table - -| Aspect | `repeat_target = "application"` | `repeat_target = "evaluator"` | -|--------|----------------------------------|-------------------------------| -| **Trace reuse constraint** | Different trace per repeat | Same trace across repeats | -| **Traces fetched per input** | `repeats` traces | `1` trace | -| **Trace selection** | `existing_traces[repeat_idx]` | `existing_traces[0]` (any) | -| **Variability source** | Application (different traces) | Evaluator (same trace) | -| **Scenario creation** | One per repeat (with trace_id) | One per input (reused trace_id) | - ---- - -##### Scenario Creation with Trace Reuse - -Even when reusing traces, scenarios are still created: - -**Case 1: `repeat_target = "application"`** -```python -# Multiple scenarios (one per repeat), each with different trace -scenario_1 = Scenario( - testcase_id=testcase.id, - trace_id=trace_a.id, # Reused or fresh - repeat_idx=0, -) - -scenario_2 = Scenario( - testcase_id=testcase.id, - trace_id=trace_b.id, # Different trace - repeat_idx=1, -) - -scenario_3 = Scenario( - testcase_id=testcase.id, - trace_id=trace_c.id, # Different trace - repeat_idx=2, -) -``` - -**Case 2: `repeat_target = "evaluator"`** -```python -# Single scenario, same trace reused across evaluator repeats -scenario = Scenario( - testcase_id=testcase.id, - trace_id=trace_a.id, # Reused or fresh, but same for all evals -) - -# Evaluators reference this same scenario/trace -result_1 = EvaluationResult( - scenario_id=scenario.id, - step_key="evaluator-1-r0", - trace_id=evaluator_trace_1.id, -) - -result_2 = EvaluationResult( - scenario_id=scenario.id, # Same scenario! - step_key="evaluator-1-r1", - trace_id=evaluator_trace_2.id, -) -``` - ---- - -##### Filtering and Selection - -**Filter failed traces:** -```python -existing_traces = fetch_traces_by_hash( - hash=hash, - exclude_errors=True, # Only successful traces -) -``` - -**Selection when multiple available:** -- Order doesn't matter (everything is stochastic) -- Can pick traces in any order (e.g., by creation time, random) -- As long as different traces are used for different application repeats - -**Example:** -```python -# Fetch traces by hash -traces = [trace_a, trace_b, trace_c, trace_d] # All have same hash - -# Application repeats: Use different traces -repeat_0_trace = traces[0] # trace_a -repeat_1_trace = traces[1] # trace_b -repeat_2_trace = traces[2] # trace_c - -# Evaluator repeats: Use same trace -all_repeats_trace = traces[0] # trace_a (any one is fine) -``` - ---- - -##### Use Cases - -**With `repeat_target = "application"`:** -- Caching expensive app runs: "Run GPT-4 once, reuse across evaluations" -- A/B testing with fixed outputs: "Test different evaluators on same app outputs" -- Debugging: "Fix evaluator bug, re-evaluate without re-running app" - -**With `repeat_target = "evaluator"`:** -- Measuring human evaluator agreement: "Same output judged by multiple humans" -- LLM-as-judge stability: "Same output scored by LLM multiple times" -- Cost optimization: "Run app once, test evaluator variability cheaply" - ---- - -##### Current Implementation Status - -**Status:** Unknown - needs investigation - -**Likely locations in code:** -- Hash computation: Utility function `compute_hash()` or similar -- Trace lookup: Tracing service or DAO with hash index -- SDK: May not be implemented yet -- API: May exist in some form - -**Questions to answer:** -1. ✅ Is trace reuse currently implemented? -2. ✅ Where is `compute_hash()` located? -3. ✅ Is there a hash index on traces table? -4. ✅ How are traces fetched by hash? -5. ✅ Does it filter out failed traces? -6. ✅ How does it interact with repeats? - -**Future requirements:** -- Make `reuse_traces` an explicit flag in graph definition -- Implement hash-based trace lookup if not present -- Add validation: `repeat_target = "application"` + `reuse_traces = true` requires enough cached traces -- Document hash computation algorithm - ---- - -#### 4. `is_closed` (State Management - Likely Implemented) -**Current state:** Likely implemented -**Current value:** `false` by default, set to `true` when evaluation is finalized -**Type:** `boolean` - -**Purpose:** Controls whether the evaluation graph and tensor are editable - -**Behavior:** - -##### When `is_closed = false` (Open - Default) -- ✅ Can modify graph structure -- ✅ Can add/edit/delete scenarios -- ✅ Can add/edit/delete results -- ✅ Can re-run evaluation -- ✅ Can edit metadata (name, description) - -##### When `is_closed = true` (Closed - Finalized) -- ❌ **Cannot** modify graph structure -- ❌ **Cannot** add/edit/delete scenarios -- ❌ **Cannot** add/edit/delete results -- ❌ **Cannot** re-run evaluation (execution blocked) -- ✅ **Can still** edit metadata (name, description) -- ✅ **Can** reopen (with appropriate permissions/operations) - -**Enforcement:** -- **DAO level:** Database operations fail for closed evaluations -- **API level:** Returns error (e.g., 409 Conflict, 403 Forbidden) -- **UI level:** Disable edit buttons, show read-only mode - -**Reopening:** -```python -# Some operations can reopen a closed evaluation -await evaluations_dao.update_run( - run_id=run_id, - is_closed=False, # Reopen -) -``` - -**Use cases:** -- **Finalize results:** Prevent accidental modification after review -- **Archival:** Mark completed evaluations as read-only -- **Compliance:** Lock evaluations for audit trail -- **Versioning:** Freeze evaluation state at specific point in time - -**Metadata operations (allowed when closed):** -- Update run name -- Update run description -- Add tags/labels -- Change visibility/permissions - -**Status:** Likely implemented (needs verification) - ---- - -## Summary: Confirmed Flags - -| Flag | Type | Purpose | Status | -|------|------|---------|--------| -| `is_live` | `boolean` | Online (periodic) vs offline (one-time) execution | ✅ Explicit | -| `is_active` | `boolean` | Pause/resume online evaluations | ✅ Explicit (companion to `is_live`) | -| `repeat_target` | `"application" \| "evaluator"` | Where repeats fan out (critical for tensor structure) | ⚠️ Currently implicit | -| `reuse_traces` | `boolean` | Cost optimization via trace caching | ⚠️ Currently implicit | -| `is_closed` | `boolean` | Lock evaluation to prevent edits | ✅ Explicit (state management) | - ---- - -## Future Considerations (Not Confirmed as Flags) - -The following behaviors may need to be configurable in the future, but are not currently discussed as flags: - -### Execution Behavior -- **Concurrency:** Sequential vs parallel scenario execution -- **Error handling:** Fail fast vs collect all errors -- **Application invocation:** Whether to invoke apps (currently determined by graph structure) - -### Metrics Computation -- **Timing:** Immediate vs deferred vs on-demand -- **Scope:** Per-scenario vs per-run -- **Current behavior:** SDK computes immediately, API defers to separate task - -These should be documented separately if/when they become explicit configuration options. - ---- - -## Data Source Types - -### 1. Testset Data Source - -**Structure:** -```python -class TestsetDataSource: - type: Literal["testset"] - testset_id: UUID - testset_revision_id: UUID - testset_variant_id: Optional[UUID] -``` - -**Resolution:** -```python -async def resolve_testset_scenarios( - data_source: TestsetDataSource, -) -> list[Scenario]: - """ - Load test cases from testset revision. - - Returns one scenario per test case. - """ - testset_revision = await testsets_dao.get_revision( - testset_revision_id=data_source.testset_revision_id, - ) - - scenarios = [] - for testcase in testset_revision.testcases: - scenarios.append( - Scenario( - data_source_type="testset", - testcase=testcase, - ) - ) - - return scenarios -``` - -**Properties:** -- **Static:** Same test cases every execution -- **Bounded:** Known size (number of test cases) -- **Versioned:** Tied to specific revision -- **Portable:** Can be shared across projects - -**Compatible with:** -- ✅ Offline evaluation -- ❌ Online evaluation - ---- - -### 2. Query Data Source - -**Structure:** -```python -class QueryDataSource: - type: Literal["query"] - query_spec: QuerySpec - time_window: Optional[TimeWindow] - -class QuerySpec: - filters: dict[str, Any] - limit: Optional[int] - order_by: Optional[str] - -class TimeWindow: - start_time: datetime - end_time: datetime -``` - -**Resolution (Offline):** -```python -async def resolve_query_scenarios_offline( - data_source: QueryDataSource, -) -> list[Scenario]: - """ - Execute query once, return snapshot of traces. - - Returns one scenario per trace. - """ - traces = await tracing_service.query_traces( - filters=data_source.query_spec.filters, - start_time=data_source.time_window.start_time, - end_time=data_source.time_window.end_time, - limit=data_source.query_spec.limit, - ) - - scenarios = [] - for trace in traces: - scenarios.append( - Scenario( - data_source_type="query", - trace=trace, - ) - ) - - return scenarios -``` - -**Resolution (Online):** -```python -async def resolve_query_scenarios_online( - data_source: QueryDataSource, - interval_start: datetime, - interval_end: datetime, -) -> list[Scenario]: - """ - Execute query for current interval window. - - Overwrites data_source.time_window with interval bounds. - Returns one scenario per trace. - """ - traces = await tracing_service.query_traces( - filters=data_source.query_spec.filters, - start_time=interval_start, # Overwritten! - end_time=interval_end, # Overwritten! - limit=data_source.query_spec.limit, - ) - - scenarios = [] - for trace in traces: - scenarios.append( - Scenario( - data_source_type="query", - trace=trace, - timestamp=interval_start, # Online-specific - interval=f"{interval_end - interval_start}", # Online-specific - ) - ) - - return scenarios -``` - -**Properties:** -- **Dynamic:** Different traces every execution (if time window changes) -- **Unbounded:** Size depends on query results (use `limit` for safety) -- **Temporal:** Can be windowed by time -- **Live:** Reflects current system state - -**Compatible with:** -- ✅ Offline evaluation (snapshot) -- ✅ Online evaluation (windowed) - ---- - -## Tensor Structure - -The evaluation tensor is the data structure that holds all results produced by running a graph. It is a 3D table indexed by **scenarios × steps × repeats**, stored as five related entities. - ---- - -### Five Entities - -``` -EvaluationRun -└── EvaluationScenario (one per row) - └── step_key (column label — string, not an entity) - └── repeat_idx (depth label — integer, not an entity) - └── EvaluationResult (the cell) -``` - -| Entity | Nature | Description | -|--------|--------|-------------| -| `EvaluationRun` | Entity (DB row) | The evaluation job. Owns the graph definition and all flag values. | -| `EvaluationScenario` | Entity (DB row) | One row in the tensor. Represents one input × (optionally) one application repeat. | -| `step_key` | String label | Column label — identifies which graph step produced the result (e.g. `"app-123"`, `"eval-456"`, `"eval-456-r2"`). | -| `repeat_idx` | Integer label | Depth label — which evaluator repeat this result belongs to (0-based). | -| `EvaluationResult` | Entity (DB row) | The cell. Identified by `(scenario_id, step_key, repeat_idx)`. | - -**There is no dedicated "Step" or "Repeat" entity** — `step_key` and `repeat_idx` are fields on the result row, forming a composite key together with `scenario_id`. - ---- - -### Tensor Dimensions - -#### Rows: Scenarios - -Each `EvaluationScenario` is one row. Its meaning depends on `repeat_target`: - -| `repeat_target` | Row = | -|-----------------|-------| -| `"application"` | One input × one application repeat (repeat dimension is in the row) | -| `"evaluator"` | One input (repeat dimension is in the column) | - -For online evaluations (`is_live = true`), each scenario also carries: -- `timestamp`: The start of the interval that produced it -- `interval`: The interval duration (e.g. `"1h"`) - -#### Columns: Steps - -Each distinct `step_key` is one logical column. Step keys are stable strings derived from the graph node identity: - -``` -"testset-{testset_id}" ← testset node result -"app-{application_revision_id}" ← application node result -"eval-{evaluator_revision_id}" ← evaluator node result (no repeat) -"eval-{evaluator_revision_id}-r{repeat_idx}" ← evaluator repeat (repeat_target="evaluator") -``` - -#### Depth: Repeats - -`repeat_idx` is the 0-based repeat index. Its role depends on `repeat_target`: - -| `repeat_target` | `repeat_idx` in result | -|-----------------|------------------------| -| `"application"` | Always `0` (repeats are rows, not depth) | -| `"evaluator"` | `0..N-1` across evaluator repeats | - -In practice, for `repeat_target = "application"`, the scenario itself carries the repeat index, and results within a scenario have `repeat_idx = 0`. - ---- - -### EvaluationResult: the Cell - -**Composite key:** `(scenario_id, step_key, repeat_idx)` - -There is no dedicated UUID primary key for a result — the three-field composite uniquely identifies the cell. - -#### Result Content: By Reference Only - -Results do **not** copy values inline. They store references: - -```python -class EvaluationResult: - # Identity - scenario_id: UUID - step_key: str - repeat_idx: int - - # References (no inline values) - testcase_id: Optional[UUID] # Reference to the testcase used as input - trace_id: Optional[UUID] # Reference to the execution trace (app or evaluator) - error: Optional[str] # Error message if the step failed - - # Status - status: EvaluationStatus # pending | running | completed | failed -``` - -**Key principle:** To read the actual inputs or outputs of a result, you follow the reference to the trace and read it there. The result row is only a pointer. - -**Why by reference:** -- Traces are already stored in the tracing system with full span detail -- Copying data into results would duplicate storage and create drift -- Metrics computation reads trace IDs from results and queries the tracing system directly - ---- - -### Tensor Population Flow - -The tensor is populated in three stages that correspond to the execution lifecycle: - -``` -1. Create EvaluationRun → Defines graph, flags, metadata - (tensor shape is implied by graph + inputs) - -2. Create EvaluationScenario → Adds a row - Happens as inputs are enumerated - (one per testcase for offline; one per trace for online) - -3. Create/Update EvaluationResult → Populates a cell - Happens as each step completes - (one per scenario × step × repeat) -``` - -**Example: Offline testset evaluation (2 testcases, 1 application, 2 evaluators, 1 repeat)** - -``` -Stage 1: Create run - run_id = "run-abc" - -Stage 2: Create scenarios (2 rows) - scenario_1 = Scenario(run_id="run-abc", testcase_id="tc-1") - scenario_2 = Scenario(run_id="run-abc", testcase_id="tc-2") - -Stage 3: Populate cells - # Application step - result(scenario_1, step_key="app-rev-1", repeat_idx=0) = { trace_id: "trace-a1" } - result(scenario_2, step_key="app-rev-1", repeat_idx=0) = { trace_id: "trace-a2" } - - # Evaluator steps - result(scenario_1, step_key="eval-rev-1", repeat_idx=0) = { trace_id: "trace-e1" } - result(scenario_1, step_key="eval-rev-2", repeat_idx=0) = { trace_id: "trace-e2" } - result(scenario_2, step_key="eval-rev-1", repeat_idx=0) = { trace_id: "trace-e3" } - result(scenario_2, step_key="eval-rev-2", repeat_idx=0) = { trace_id: "trace-e4" } -``` - -Resulting tensor: - -``` - app-rev-1 eval-rev-1 eval-rev-2 -scenario_1 trace-a1 trace-e1 trace-e2 -scenario_2 trace-a2 trace-e3 trace-e4 -``` - ---- - -### Metrics - -Metrics are **separate entities** from the tensor cells. They are computed after results are collected, by fetching trace IDs from results and running SQL aggregations over the traces. - -#### Metrics Computation - -``` -1. Fetch results for the run (or scenario) -2. Extract trace_ids from those results -3. Query the tracing system for those trace IDs -4. Run SQL aggregations over the trace data -5. Write metrics entity -``` - -This means metrics are always **derived, not stored inline**. They can be recomputed at any time by repeating steps 1–5. - -#### Three Metrics Types - -| Type | Scope | Compatible with | Description | -|------|-------|-----------------|-------------| -| **Global** | Entire run (all scenarios × all repeats) | `is_live = false` (offline only) | Aggregate statistics across the full evaluation | -| **Variational** | Per scenario (across all repeats for that scenario) | Both | Per-input statistics, showing variation across repeats | -| **Temporal** | Per interval / timestamp | `is_live = true` (online only) | Global statistics binned by time interval | - ---- - -#### Global Metrics (Offline Only) - -**Scope:** All scenarios × all repeats in the run. - -**Structure:** Per step → per output key → statistics. - -```python -class GlobalMetrics: - run_id: UUID - - # Nested: step → output_key → stats - steps: dict[str, dict[str, MetricStats]] - # step_key output_key - -class MetricStats: - # Numeric outputs - mean: Optional[float] - std: Optional[float] - min: Optional[float] - max: Optional[float] - p50: Optional[float] - p95: Optional[float] - count: int - - # Categorical / score outputs - distribution: Optional[dict[str, int]] # value → count -``` - -**Example:** -```python -GlobalMetrics( - run_id="run-abc", - steps={ - "eval-rev-1": { - "score": MetricStats(mean=0.72, std=0.15, p50=0.75, count=50), - "category": MetricStats(distribution={"pass": 38, "fail": 12}), - }, - "eval-rev-2": { - "latency_ms": MetricStats(mean=320, p95=850, count=50), - }, - } -) -``` - -**Not available for online evaluations** — there is no well-defined "total" population for a continuously-running evaluation; use Temporal metrics instead. - ---- - -#### Variational Metrics (Both Modes) - -**Scope:** Per scenario, across all repeats for that scenario. - -**Purpose:** Show how variable the results are for a given input. For `repeat_target = "application"` this reveals application stochasticity; for `repeat_target = "evaluator"` it reveals evaluator disagreement. - -**Structure:** Same nested structure as Global, but one entity per scenario. - -```python -class VariationalMetrics: - scenario_id: UUID - - # Nested: step → output_key → stats (across repeats for this scenario) - steps: dict[str, dict[str, MetricStats]] - # step_key output_key -``` - -**Example:** -```python -VariationalMetrics( - scenario_id="scenario-1", # Input: "What is 2+2?" - steps={ - "eval-rev-1": { - # 3 repeats scored this input as: 0.8, 0.7, 0.9 - "score": MetricStats(mean=0.8, std=0.082, min=0.7, max=0.9, count=3), - }, - } -) -``` - -**Available for both offline and online evaluations.** - ---- - -#### Temporal Metrics (Online Only) - -**Scope:** Per time interval (aggregated across all scenarios in that interval). - -**Purpose:** Show how quality changes over time in a live evaluation. - -**Structure:** Same as Global, but keyed by interval. - -```python -class TemporalMetrics: - run_id: UUID - interval_start: datetime - interval_end: datetime - - # Nested: step → output_key → stats (all scenarios in this interval) - steps: dict[str, dict[str, MetricStats]] - # step_key output_key -``` - -**Example:** -```python -TemporalMetrics( - run_id="run-abc", - interval_start=datetime(2026, 2, 17, 10, 0), - interval_end=datetime(2026, 2, 17, 11, 0), - steps={ - "eval-rev-1": { - "score": MetricStats(mean=0.68, count=42), - }, - } -) -``` - -**Not available for offline evaluations** — offline runs have no meaningful interval breakdown; use Global metrics instead. - ---- - -#### Metrics Compatibility Summary - -| Metrics Type | Offline (`is_live = false`) | Online (`is_live = true`) | -|--------------|-----------------------------|-----------------------------| -| **Global** | ✅ Primary aggregate view | ❌ Not applicable | -| **Variational** | ✅ Per-input variation | ✅ Per-input variation | -| **Temporal** | ❌ Not applicable | ✅ Primary time-series view | - ---- - -#### Metrics Entity Relationship - -``` -EvaluationRun -├── GlobalMetrics (1 per run, offline only) -├── TemporalMetrics (N per run, online only — one per interval) -└── EvaluationScenario (N per run) - ├── VariationalMetrics (1 per scenario) - └── EvaluationResult (M per scenario — one per step × repeat) - └── → trace_id (reference into tracing system) -``` - ---- - -## Current Graph Structures - -### Structure 1: Batch Testset Evaluation (SDK) - -**Current implementation:** `sdk/agenta/sdk/evaluations/preview/evaluate.py` - -**Graph:** -``` -Testset → Application(s) → Evaluator(s) -``` - -**Nodes:** -- 1 Testset node -- N Application nodes -- M Evaluator nodes - -**Execution:** -``` -For each testcase in testset: - scenario = create_scenario() - - For each application: - outputs = invoke_application(testcase.inputs) - log_result(scenario, application, outputs) - - For each evaluator: - metrics = invoke_evaluator(testcase, application.outputs) - log_result(scenario, evaluator, metrics) - - compute_metrics(scenario) -``` - -**Flags:** -- `is_live = false` (offline) -- `application_required = true` (implicit) -- `concurrent_execution = false` (implicit) - ---- - -### Structure 2: Batch Testset Evaluation (API Legacy) - -**Current implementation:** `api/oss/src/core/evaluations/tasks/legacy.py` - -**Graph:** -``` -Testset → [Applications already invoked] → Evaluator(s) -``` - -**Nodes:** -- 1 Testset node -- N Application nodes (invoked separately, before this task) -- M Evaluator nodes - -**Execution:** -``` -# Applications already invoked, results available as "invocations" - -For each testcase: - scenario = scenarios[idx] # Already created - invocation = invocations[idx] # Already executed - - If invocation has error: - skip evaluators - - trace = fetch_trace(invocation.trace_id) - - For each evaluator: - metrics = invoke_evaluator(testcase, invocation.outputs) - log_result(scenario, evaluator, metrics) - -# Metrics computed later via separate task -``` - -**Flags:** -- `is_live = false` (offline) -- `application_required = true` (but invoked separately) -- `concurrent_execution = false` (implicit) -- `metrics_computation_mode = "deferred"` (implicit) - ---- - -### Structure 3: Live Query Evaluation (API) - -**Current implementation:** `api/oss/src/core/evaluations/tasks/live.py` - -**Graph:** -``` -Query → Evaluator(s) -``` - -**Nodes:** -- 1 Query node -- M Evaluator nodes -- **No application nodes** (evaluates existing traces) - -**Execution:** -``` -For each interval (e.g., hourly): - # Overwrite query time window with current interval - traces = query_traces( - filters=query_spec.filters, - start_time=interval_start, # Overwritten - end_time=interval_end, # Overwritten - ) - - scenarios = create_scenarios( - nof_scenarios=len(traces), - timestamp=interval_start, - interval=interval_duration, - ) - - For each trace: - scenario = scenarios[idx] - - For each evaluator: - metrics = invoke_evaluator(trace, trace.outputs) - log_result(scenario, evaluator, metrics) - -# Metrics computed later via separate task -``` - -**Flags:** -- `is_live = true` (online) -- `application_required = false` (implicit - no apps invoked) -- `concurrent_execution = false` (implicit) -- `metrics_computation_mode = "deferred"` (implicit) - ---- - -## Future Graph Structures - -### Structure 4: Multi-Application Comparison (Future) - -**Use case:** Compare multiple application variants on the same testset - -**Graph:** -``` -Testset → Application A → Evaluator 1 - → Application B → Evaluator 1 - → Application C → Evaluator 1 -``` - -**Challenge:** -- Current implementation evaluates all evaluators against each application -- Need to support: All applications evaluated by the same evaluators - -**Desired execution:** -``` -For each testcase: - scenario = create_scenario() - - outputs_by_app = {} - For each application: - outputs = invoke_application(testcase.inputs) - outputs_by_app[application.id] = outputs - log_result(scenario, application, outputs) - - For each evaluator: - For each application: - metrics = invoke_evaluator(testcase, outputs_by_app[application.id]) - log_result(scenario, f"{evaluator.id}-{application.id}", metrics) -``` - -**New requirement:** -- Evaluators need access to ALL application outputs for comparison -- Graph edges must specify which app outputs go to which evaluators - ---- - -### Structure 5: Chained Applications (Future) - -**Use case:** Multi-step workflows (e.g., retrieval → generation → verification) - -**Graph:** -``` -Testset → Retrieval App → Generation App → Verification App → Evaluator -``` - -**Challenge:** -- Current implementation assumes applications are independent -- Need to support: Application B takes Application A's outputs as inputs - -**Desired execution:** -``` -For each testcase: - scenario = create_scenario() - - # Step 1: Retrieval - retrieval_outputs = invoke_application(retrieval_app, testcase.inputs) - - # Step 2: Generation (uses retrieval outputs) - generation_inputs = { - **testcase.inputs, - "context": retrieval_outputs["documents"], - } - generation_outputs = invoke_application(generation_app, generation_inputs) - - # Step 3: Verification (uses generation outputs) - verification_inputs = { - **testcase.inputs, - "generated_text": generation_outputs["text"], - } - verification_outputs = invoke_application(verification_app, verification_inputs) - - # Step 4: Evaluate final output - metrics = invoke_evaluator(testcase, verification_outputs) -``` - -**New requirements:** -- Graph edges must specify input/output mappings -- Topological sort to determine execution order -- Support for partial failures (if step 2 fails, skip step 3) - ---- - -### Structure 6: Conditional Evaluation (Future) - -**Use case:** Run different evaluators based on outputs - -**Graph:** -``` -Testset → Application → [if output.type == "chat"] → Chat Evaluator - → [if output.type == "completion"] → Completion Evaluator -``` - -**Challenge:** -- Current implementation runs all evaluators for all scenarios -- Need to support: Conditional evaluator invocation based on outputs - -**Desired execution:** -``` -For each testcase: - scenario = create_scenario() - - outputs = invoke_application(testcase.inputs) - - # Conditional evaluator selection - if outputs.get("type") == "chat": - evaluators = [chat_evaluator_1, chat_evaluator_2] - elif outputs.get("type") == "completion": - evaluators = [completion_evaluator_1] - else: - evaluators = [generic_evaluator] - - For each evaluator in evaluators: - metrics = invoke_evaluator(testcase, outputs) -``` - -**New requirements:** -- Graph edges can have conditions -- Evaluator selection based on runtime data -- Support for dynamic graph execution - ---- - -### Structure 7: Human-in-the-Loop Evaluation (Future) - -**Use case:** Mix automated and human evaluation - -**Graph:** -``` -Testset → Application → Auto Evaluator 1 - → Auto Evaluator 2 - → Human Evaluator (async) -``` - -**Challenge:** -- Current implementation expects synchronous evaluator responses -- Human evaluation is asynchronous (can take hours/days) - -**Desired execution:** -``` -For each testcase: - scenario = create_scenario() - - outputs = invoke_application(testcase.inputs) - - # Automated evaluators (synchronous) - For each auto_evaluator: - metrics = invoke_evaluator(testcase, outputs) - log_result(scenario, auto_evaluator, metrics) - - # Human evaluator (asynchronous) - task = create_human_evaluation_task(testcase, outputs) - log_result(scenario, human_evaluator, status="pending") - -# Later, when human completes evaluation: -update_result(scenario, human_evaluator, metrics=human_metrics) -``` - -**New requirements:** -- Support for async/pending results -- Ability to update results after initial execution -- Separate "automated complete" vs "fully complete" states - ---- - -### Structure 8: Iterative Refinement (Future) - -**Use case:** Evaluate, refine, re-evaluate in a loop - -**Graph:** -``` -Testset → Application v1 → Evaluator → [if score < threshold] → Application v2 → Evaluator -``` - -**Challenge:** -- Current implementation is single-pass -- Need to support: Conditional re-execution based on results - -**Desired execution:** -``` -For each testcase: - scenario = create_scenario() - - version = 1 - max_iterations = 3 - - While version <= max_iterations: - outputs = invoke_application(app[version], testcase.inputs) - metrics = invoke_evaluator(testcase, outputs) - - if metrics["score"] >= threshold: - break # Success! - - version += 1 - - log_final_result(scenario, version, metrics) -``` - -**New requirements:** -- Support for loops in graph -- Conditional loop exit -- Tracking iterations in results - ---- - -## Graph Representation - -### Current Representation (Implicit) - -**Location:** Embedded in execution logic, not explicit data structure - -**Example (SDK):** -```python -# Implicit graph in loop structure -for testset_revision in testsets: - for testcase in testcases: - for application in applications: - # Edge: testset → application - invoke_application(testcase.inputs) - - for evaluator in evaluators: - # Edge: application → evaluator - invoke_evaluator(application.outputs) -``` - -**Problems:** -- Graph structure is code, not data -- Can't serialize/visualize graph -- Hard to validate before execution -- No way to query "what will this evaluation do?" - ---- - -### Desired Representation (Explicit) - -**Goal:** Represent graph as data structure - -**Example:** -```python -class EvaluationGraph: - """Explicit graph representation.""" - - nodes: list[GraphNode] - edges: list[GraphEdge] - -class GraphNode: - id: str - type: Literal["testset", "query", "application", "evaluator"] - config: dict[str, Any] - -class GraphEdge: - from_node_id: str - to_node_id: str - port_mapping: dict[str, str] # Maps output ports to input ports - condition: Optional[str] # Optional condition (future) - -# Example graph for batch testset evaluation -graph = EvaluationGraph( - nodes=[ - GraphNode( - id="testset-1", - type="testset", - config={ - "testset_id": "ts-123", - "testset_revision_id": "rev-456", - } - ), - GraphNode( - id="app-1", - type="application", - config={ - "application_id": "app-789", - "application_revision_id": "rev-abc", - } - ), - GraphNode( - id="eval-1", - type="evaluator", - config={ - "evaluator_id": "eval-xyz", - "evaluator_revision_id": "rev-def", - } - ), - ], - edges=[ - GraphEdge( - from_node_id="testset-1", - to_node_id="app-1", - port_mapping={ - "testcase.data": "inputs", # testcase data → app inputs - } - ), - GraphEdge( - from_node_id="app-1", - to_node_id="eval-1", - port_mapping={ - "outputs": "outputs", # app outputs → eval outputs - "trace": "trace", # app trace → eval trace - } - ), - GraphEdge( - from_node_id="testset-1", - to_node_id="eval-1", - port_mapping={ - "testcase": "testcase", # testcase → eval testcase - } - ), - ], -) -``` - -**Benefits:** -- Serializable (can save/load) -- Validatable (check before execution) -- Visualizable (render as diagram) -- Queryable (analyze without executing) - ---- - -## Validation Rules - -### Rule 1: Data Source Compatibility -**Constraint:** `is_live = true` → Data source MUST be Query - -**Validation:** -```python -def validate_live_data_source(graph: EvaluationGraph, is_live: bool) -> None: - """Validate data source is compatible with is_live flag.""" - data_source_node = graph.get_data_source_node() - - if is_live and data_source_node.type == "testset": - raise ValidationError( - "Live evaluation (is_live=true) requires Query data source, " - "not Testset. Testsets yield the same data every interval." - ) -``` - ---- - -### Rule 2: Graph Connectivity -**Constraint:** All non-source nodes must be reachable from a source node - -**Validation:** -```python -def validate_graph_connectivity(graph: EvaluationGraph) -> None: - """Validate all nodes are reachable from data source.""" - source_nodes = [n for n in graph.nodes if n.type in ["testset", "query"]] - - if not source_nodes: - raise ValidationError("Graph must have at least one data source node") - - reachable = set() - to_visit = [n.id for n in source_nodes] - - while to_visit: - current = to_visit.pop() - if current in reachable: - continue - reachable.add(current) - - # Add downstream nodes - for edge in graph.edges: - if edge.from_node_id == current: - to_visit.append(edge.to_node_id) - - unreachable = set(n.id for n in graph.nodes) - reachable - - if unreachable: - raise ValidationError( - f"Nodes {unreachable} are not reachable from data source" - ) -``` - ---- - -### Rule 3: No Cycles (Current - may relax in future) -**Constraint:** Graph must be a DAG (Directed Acyclic Graph) - -**Validation:** -```python -def validate_no_cycles(graph: EvaluationGraph) -> None: - """Validate graph has no cycles.""" - visited = set() - in_path = set() - - def has_cycle(node_id: str) -> bool: - if node_id in in_path: - return True # Cycle detected - if node_id in visited: - return False - - visited.add(node_id) - in_path.add(node_id) - - for edge in graph.edges: - if edge.from_node_id == node_id: - if has_cycle(edge.to_node_id): - return True - - in_path.remove(node_id) - return False - - for node in graph.nodes: - if has_cycle(node.id): - raise ValidationError( - f"Graph contains a cycle involving node {node.id}" - ) -``` - -**Note:** This rule may be relaxed in the future to support iterative refinement (Structure 8) - ---- - -### Rule 4: Valid Port Mappings -**Constraint:** Edge port mappings must reference valid ports - -**Validation:** -```python -def validate_port_mappings(graph: EvaluationGraph) -> None: - """Validate edge port mappings reference valid ports.""" - - # Define valid ports for each node type - PORT_DEFINITIONS = { - "testset": { - "outputs": ["testcase", "testcase.data", "testcase.id"] - }, - "query": { - "outputs": ["trace", "trace.id", "trace.inputs", "trace.outputs"] - }, - "application": { - "inputs": ["inputs"], - "outputs": ["outputs", "trace", "trace_id", "span_id"] - }, - "evaluator": { - "inputs": ["testcase", "inputs", "outputs", "trace"], - "outputs": ["metrics", "trace", "trace_id"] - }, - } - - for edge in graph.edges: - from_node = graph.get_node(edge.from_node_id) - to_node = graph.get_node(edge.to_node_id) - - from_ports = PORT_DEFINITIONS[from_node.type]["outputs"] - to_ports = PORT_DEFINITIONS[to_node.type]["inputs"] - - for from_port, to_port in edge.port_mapping.items(): - if from_port not in from_ports: - raise ValidationError( - f"Node {from_node.id} ({from_node.type}) " - f"has no output port '{from_port}'" - ) - - if to_port not in to_ports: - raise ValidationError( - f"Node {to_node.id} ({to_node.type}) " - f"has no input port '{to_port}'" - ) -``` - ---- - -## Summary - -### Current State -- **3 graph structures** currently supported (testset batch, testset batch API, query live) -- **1 explicit flag** (`is_live`) -- **5 implicit flags** (hardcoded behaviors) -- **Implicit graph** representation (embedded in code) -- **Tensor model:** 5 entities — EvaluationRun → EvaluationScenario → EvaluationResult (keyed by `step_key`, `repeat_idx`) -- **Results:** By reference only (testcase_id, trace_id, error — no inline values) -- **Metrics:** 3 types — Global (offline), Variational (both), Temporal (online); computed via SQL over trace IDs from results - -### Key Constraints -- **Live evaluation requires Query data source** (testsets yield same data) -- **Graphs must be DAGs** (no cycles, for now) -- **All nodes must be reachable** from data source - -### Future Evolution -- **Explicit graph representation** (nodes + edges as data) -- **More complex structures** (multi-app comparison, chained apps, conditionals) -- **Additional flags** (concurrency, error handling, metrics mode) -- **Relaxed constraints** (cycles for iterative refinement, async evaluators) - -### Next Steps -1. Define explicit graph data structure -2. Implement graph validation rules -3. Support serialization/deserialization -4. Add graph visualization -5. Extend to support future structures - ---- - -**Document Status:** Draft - covers graph structure, confirmed flags, tensor model, and metrics types -**Next Action:** Review flag taxonomy, tensor entity schemas, and metrics computation with team diff --git a/docs/designs/eval-loops/gap-analysis.md b/docs/designs/eval-loops/gap-analysis.md deleted file mode 100644 index 909418b2b7..0000000000 --- a/docs/designs/eval-loops/gap-analysis.md +++ /dev/null @@ -1,267 +0,0 @@ -# Evaluation Gap Analysis - -**Created:** 2026-02-17 -**Purpose:** Map the current codebase (SDK, backend API, frontend) to the desired operation model, identifying what exists, what is named differently, and what is missing -**Related:** -- [Evaluation Structure](./evaluation-structure.md) -- [Evaluation Operations](./evaluation-operations.md) -- [Desired Architecture](./desired-architecture.md) -- [Refactoring Analysis](./refactoring-analysis.md) - ---- - -## Table of Contents - -- [Document Coherence Notes](#document-coherence-notes) -- [Terminology Mapping](#terminology-mapping) -- [Current Implementation by Layer](#current-implementation-by-layer) - - [SDK](#sdk) - - [Backend API](#backend-api) - - [Frontend](#frontend) -- [Operation Model Coverage](#operation-model-coverage) -- [Flag Coverage](#flag-coverage) -- [Structural Gaps](#structural-gaps) - ---- - -## Document Coherence Notes - -The five design documents are broadly coherent. Minor inconsistencies to be aware of: - -| Document | Note | -|----------|------| -| `iteration-patterns.md` | Uses "applications/evaluators" terminology; predates the `type: input/invocation/annotation` vocabulary from `evaluation-operations.md` | -| `desired-architecture.md` | Uses "ports & adapters / RemoteAPIPersistence" framing; SDK analysis shows no such abstraction exists yet — it is all direct HTTP | -| `refactoring-analysis.md` | Identifies 4-level SDK loop vs 2/3-level API loops — still accurate; the `TensorSlice` / `process` vocabulary in `evaluation-operations.md` is the intended reconciliation | -| `evaluation-structure.md` | Tensor entity model (composite key, by-reference results) is consistent with the DB schema (`unique on (project_id, run_id, scenario_id, step_key, repeat_idx)`) | -| `evaluation-operations.md` | `repeat_target`, `reuse_traces`, `allow_decrease_repeats` flags are **not yet in the codebase** — documented as desired state | - ---- - -## Terminology Mapping - -| Desired term | SDK term | Backend term | Frontend term | -|--------------|----------|--------------|---------------| -| `add_step` | Implicit in `acreate_run()` payload | Built inside `setup_evaluation()` | Implicit in creation wizard (evaluator + testset selection) | -| `remove_step` | — | — | — | -| `add_scenario` | `aadd_scenario()` | `create_scenario()` / `POST /scenarios/` | — (backend-driven) | -| `remove_scenario` | — | `delete_scenario()` / `DELETE /scenarios/{id}` | — | -| `populate` | `alog_result()` | `create_result()` / `POST /results/` | `upsertStepResultWithAnnotation()` | -| `prune` | — | `delete_result[s]()` / `DELETE /results/` | — | -| `probe` | — | `query_results()` / `POST /results/query` | `queryStepResults()` | -| `process` | `aevaluate()` (the whole loop) | `SimpleEvaluationsService.start()` → Taskiq worker | "Run" button → triggers backend | -| `refresh_metrics` | `acompute_metrics()` | `refresh_metrics()` / `POST /metrics/refresh` | — (backend-driven) | -| `get_flags` | — | `GET /runs/{run_id}` (returns full run) | — | -| `set_flag` | — | `PATCH /runs/{run_id}` with `flags` in body | Implicit (is_live via online eval creation) | -| `TensorSlice` | Not implemented | Not implemented | Not implemented | -| `step.type = "input"` | Implicit (testset data) | `type: "input"` in `EvaluationRunDataStep` | `type: "input"` in step meta | -| `step.type = "invocation"` | `"application-{slug}"` step_key | `type: "invocation"` | `kind: "invocation"` | -| `step.type = "annotation"` | `"evaluator-{slug}"` step_key | `type: "annotation"` | `kind: "annotation"` | -| `step.origin = "auto"` | Origin enum exists in models | `origin: "auto"` in step | `origin: "automated"` ⚠️ (inconsistent spelling) | -| `step.origin = "human"` | Origin enum exists in models | `origin: "human"` | `origin: "human"` | -| `step.origin = "custom"` | Origin enum exists in models | `origin: "custom"` | Not explicitly exposed | - -**Note:** Frontend uses `"automated"` where backend/SDK use `"auto"`. This is a naming inconsistency to fix. - ---- - -## Current Implementation by Layer - -### SDK - -**File:** `sdk/agenta/sdk/evaluations/preview/evaluate.py` - -The SDK implements the `process` role in a single `aevaluate()` function. All operations are direct HTTP calls to the backend — no abstraction layer. - -#### What exists - -| Operation | SDK function | Endpoint | -|-----------|-------------|---------| -| Create run | `acreate_run()` | `POST /preview/simple/evaluations/` | -| Add scenario | `aadd_scenario()` | `POST /preview/evaluations/scenarios/` | -| Populate (log result) | `alog_result()` | `POST /preview/evaluations/results/` | -| Refresh metrics | `acompute_metrics()` | `POST /preview/evaluations/metrics/refresh` | -| Close run | `aclose_run()` | `POST /preview/evaluations/runs/{id}/close/{status}` | - -#### What is missing / gaps - -- **No `probe`** — SDK does not query existing results before writing. It always writes (no idempotency check / skip-if-success). -- **No `prune`** — SDK cannot delete results or scenarios. -- **No `TensorSlice`** — SDK always processes the full tensor (all scenarios, all steps, all repeats). -- **No `process(slice)` API** — `aevaluate()` is monolithic; there is no way to re-run a subset. -- **No ports & adapters** — `desired-architecture.md` describes `RemoteAPIPersistence`; the SDK currently has direct HTTP with no abstraction boundary. -- **No `repeat_target` or `reuse_traces`** — repeats not implemented in SDK loop. -- **Step keys use short slugs** (`"application-{uuid[:8]}"`) rather than full revision IDs — may cause collisions. -- **4-level nesting** (testset → testcase → application → evaluator) is tightly coupled; cannot be decomposed into slice-based execution. - -#### Desired SDK state - -The SDK loop becomes canonical `process(slice)`, with: -- Injected `RemoteAPIPersistence` implementing `populate`, `prune`, `probe` -- `probe` to skip already-successful cells -- `TensorSlice` to target re-runs or partial execution - ---- - -### Backend API - -**Files:** -- `api/oss/src/core/evaluations/service.py` -- `api/oss/src/core/evaluations/tasks/legacy.py` -- `api/oss/src/core/evaluations/tasks/live.py` -- `api/oss/src/apis/fastapi/evaluations/router.py` -- `api/oss/src/tasks/taskiq/evaluations/worker.py` - -#### What exists - -| Operation | Backend function | HTTP endpoint | -|-----------|----------------|--------------| -| Create run | `create_run()` | `POST /runs/` | -| Add scenario | `create_scenario[s]()` | `POST /scenarios/` | -| Remove scenario | `delete_scenario()` | `DELETE /scenarios/{id}` | -| Populate | `create_result[s]()` | `POST /results/` | -| Probe | `query_results()` | `POST /results/query` | -| Prune | `delete_result[s]()` | `DELETE /results/` | -| Refresh metrics | `refresh_metrics()` | `POST /metrics/refresh` | -| Close run | `close_run()` | `POST /runs/{id}/close` | -| Open run | `open_run()` | `POST /runs/{id}/open` | -| Start processing | `start()` → Taskiq worker | (internal dispatch, no HTTP endpoint) | -| Stop processing | `stop()` | (internal, no HTTP endpoint) | - -**DB unique constraint:** `(project_id, run_id, scenario_id, step_key, repeat_idx)` — matches the composite key in our tensor model. ✅ - -#### What is missing / gaps - -**Steps (critical gap):** -- **No `add_step` endpoint.** Steps are constructed inside `setup_evaluation()` (legacy.py) — the graph is assembled as a single blob and stored. There is no API to add or remove steps after creation. -- **No `remove_step` endpoint.** -- Steps are in `run.data.steps` (a list in a JSON column), not a normalized table. This makes adding/removing expensive (read-modify-write the whole blob). - -**Processing control:** -- **No `POST /runs/{id}/process` endpoint.** Processing is triggered by `start()` internally, which dispatches a Taskiq task. There is no slice parameter. -- **No slice-aware re-run.** `evaluate_batch_testset` and `evaluate_live_query` tasks always re-process the full run. - -**Flags:** -- **`repeat_target` not in `EvaluationRunFlags`.** The current flags model has `is_live`, `is_active`, `is_closed`, `has_queries`, `has_testsets`, `has_evaluators`, `has_custom`, `has_human`, `has_auto`. Missing: `repeat_target`, `reuse_traces`, `allow_decrease_repeats`. -- **No dedicated `set_flag` endpoint.** Flags are set via `PATCH /runs/{id}` with the whole flags object. The desired `set_flag(name, value)` (read-modify-write) is not yet a first-class operation. - -**TensorSlice:** -- **Not implemented anywhere.** All CRUD operations use individual IDs or full-table queries. No slice-based multi-dimension targeting. - -**`process` dispatch:** -- `SimpleEvaluationsService.start()` dispatches either `evaluate_batch_testset` or `evaluate_live_query` based on whether the run has `query_steps` or `testset_steps`. This is the current equivalent of `process`, but: - - It's hardcoded logic in the service, not a general slice executor - - No HTTP endpoint to trigger it externally (used via internal dispatch only) - - No idempotency (no `probe`-before-write to skip successful cells) - ---- - -### Frontend - -**Key files:** -- `web/oss/src/services/evaluations/api/index.ts` — core evaluation CRUD -- `web/oss/src/services/evaluations/results/api.ts` — step results + annotation linkage -- `web/oss/src/services/onlineEvaluations/api.ts` — live evaluation + queries -- `web/oss/src/services/annotations/api/index.ts` — annotation CRUD -- `web/oss/src/components/pages/evaluations/NewEvaluation/` — creation wizard -- `web/oss/src/components/EvalRunDetails/` — legacy results display - -#### What exists - -| Feature | Status | Notes | -|---------|--------|-------| -| Step `type` tracking | ✅ | `type: "invocation" \| "annotation" \| "input"` in step meta | -| Step `origin` tracking | ⚠️ | Uses `"automated"` instead of `"auto"` | -| Human annotation workflow | ✅ | Dedicated Annotate drawer; `upsertStepResultWithAnnotation()` | -| Populate (frontend) | ✅ | `upsertStepResultWithAnnotation()` → `POST /preview/evaluations/results/` | -| Probe (frontend) | ✅ | `queryStepResults()` → `POST /results/query` | -| Live evaluations | ✅ | Online eval drawer with `is_live` flag, query definition, sampling rate | -| Result display | ✅ | Metrics table, spider chart, temporal chart, scenario focus drawer | -| Evaluation creation | ✅ | 5-step wizard: app → variant → testset → evaluators → settings | - -#### What is missing / gaps - -- **No graph builder.** The graph (which steps, in what order) is assembled implicitly by the creation wizard (testset + evaluators = the graph). There is no DAG visualization or explicit step management UI. -- **`origin = "automated"` vs `"auto"`.** The frontend uses `"automated"` in step metadata filtering (`ActionCell.tsx`) while backend uses `"auto"`. This must be aligned. -- **No TensorSlice UI.** No way to select a subset of scenarios/steps/repeats to re-run or prune. -- **No `prune` operation in UI.** Users cannot delete specific results or scenarios. -- **No flag management UI** (beyond implicit toggles like start/stop for `is_active`, close for `is_closed`). -- **No `repeat_target`, `reuse_traces` in UI.** These flags don't exist in the codebase yet. - ---- - -## Operation Model Coverage - -Summary of coverage across all three layers: - -| Operation | SDK | Backend | Frontend | TensorSlice-aware | -|-----------|-----|---------|----------|-------------------| -| `add_step` | ⚠️ Implicit at creation | ❌ No endpoint | ⚠️ Implicit in wizard | — | -| `remove_step` | ❌ | ❌ | ❌ | — | -| `add_scenario` | ✅ `aadd_scenario` | ✅ `POST /scenarios/` | — | ❌ | -| `remove_scenario` | ❌ | ✅ `DELETE /scenarios/{id}` | — | ❌ | -| `increase_repeats` | ❌ | ❌ | ❌ | — | -| `decrease_repeats` | ❌ | ❌ | ❌ | — | -| `populate` | ✅ `alog_result` | ✅ `POST /results/` | ✅ `upsertStepResult...` | ❌ | -| `prune` | ❌ | ✅ `DELETE /results/` | ❌ | ❌ | -| `probe` | ❌ | ✅ `POST /results/query` | ✅ `queryStepResults` | ❌ | -| `refresh_metrics` | ✅ `acompute_metrics` | ✅ `POST /metrics/refresh` | — | — | -| `get_flags` | ❌ | ⚠️ Via `GET /runs/{id}` | — | — | -| `set_flag` | ❌ | ⚠️ Via `PATCH /runs/{id}` | ⚠️ Implicit only | — | -| `process` | ✅ `aevaluate()` (monolithic) | ⚠️ Internal only (Taskiq) | ⚠️ "Run" button triggers it | ❌ | - -Legend: ✅ Exists · ⚠️ Partial/implicit · ❌ Missing - ---- - -## Flag Coverage - -| Flag | In `EvaluationRunFlags` | Set by whom | Gaps | -|------|------------------------|-------------|------| -| `is_live` | ✅ | Frontend (online eval creation) | — | -| `is_active` | ✅ | Backend (`start()` / `stop()`) | No HTTP endpoint to toggle directly | -| `is_closed` | ✅ | Backend (`close_run()` / `open_run()`) | — | -| `has_queries` | ✅ | Backend (derived at creation) | Derived, not user-set | -| `has_testsets` | ✅ | Backend (derived at creation) | Derived, not user-set | -| `has_evaluators` | ✅ | Backend (derived at creation) | Derived, not user-set | -| `has_custom` | ✅ | Backend (derived at creation) | Derived, not user-set | -| `has_human` | ✅ | Backend (derived at creation) | Derived, not user-set | -| `has_auto` | ✅ | Backend (derived at creation) | Derived, not user-set | -| `repeat_target` | ❌ | — | Not implemented anywhere | -| `reuse_traces` | ❌ | — | Not implemented anywhere | -| `allow_decrease_repeats` | ❌ | — | Not implemented anywhere | - ---- - -## Structural Gaps - -### Priority 1 — Critical for the operation model - -1. **`add_step` / `remove_step` endpoints.** Steps need to be first-class entities with their own lifecycle, not a blob inside `run.data`. This is the foundation for the graph mutation model. - -2. **`repeat_target`, `reuse_traces`, `allow_decrease_repeats` flags.** Not in the data model at all. Needed before implementing repeat and trace-reuse behaviors. - -3. **`increase_repeats` / `decrease_repeats`.** No concept of repeat count as a mutable run property. Currently hardcoded per-run at creation. - -### Priority 2 — Important for operational correctness - -4. **`process(slice)` HTTP endpoint.** Processing is currently internal-only (Taskiq dispatch). To support re-runs of failed/missing results, process needs to be externally triggerable with a slice parameter. - -5. **`TensorSlice` in `probe` / `prune` / `populate`.** Current operations are per-entity (single ID) or full-table. Slice-based multi-dimensional targeting is not implemented. - -6. **Idempotent `process` (probe-before-write).** SDK and backend tasks always write results without checking if a successful result already exists. This means re-running overwrites correct data. - -### Priority 3 — Naming and consistency - -7. **Frontend `"automated"` → `"auto"`.** One-line fix in `ActionCell.tsx` and any other frontend files that filter on origin. - -8. **SDK step key format.** Currently `"application-{uuid[:8]}"` — short slugs risk collision and don't match the design's `step_key = revision_id`-based format. - -9. **`set_flag` as a first-class endpoint.** Currently flags are set via `PATCH /runs/{id}` with an arbitrary body. A dedicated `POST /runs/{id}/flags/{flag_name}` (or similar) would match the operation model and make constraints explicit. - -10. **`RemoteAPIPersistence` abstraction in SDK.** The `desired-architecture.md` calls for injecting a persistence adapter. Currently all HTTP calls are inlined in `evaluate.py`. Extracting them into an adapter class would decouple orchestration from transport. - ---- - -**Document Status:** Draft — reflects codebase state as of 2026-02-17 -**Next Action:** Prioritize gaps and assign to refactoring phases diff --git a/docs/designs/scope-only-routers-plan.md b/docs/designs/scope-only-routers-plan.md new file mode 100644 index 0000000000..f6eda2a0fb --- /dev/null +++ b/docs/designs/scope-only-routers-plan.md @@ -0,0 +1,106 @@ +# Scope-Only Routers + Access Router Migration — Plan + +Status: PROPOSED (no edits applied). For review before execution. + +## Goal (per user) + +Make `oss/src/routers/` and `ee/src/routers/` (and the matching `services/`) +**scope-only**: organizations, workspaces, projects, users, api_keys. Everything +else moves out or is removed. + +Non-scope things currently in `routers/`: +1. **health** (`oss/src/routers/health_router.py`) — inline into entrypoints. +2. **permissions** (`oss/src/routers/permissions_router.py`) — move to the new + `oss/src/apis/fastapi/access/` structure, mirroring EE's `access` router, and + change the path `/permissions/verify` → `/access/permissions/check`. + +Decisions locked: +- **Path: new only, no alias.** Update all in-repo callers in the same change. +- **Fern client + API reference regeneration: handled by the user**, not here. + So we do NOT touch `web/packages/agenta-api-client` generated files. + +## Scope of THIS change (API side) + +### 1. Health → inline into entrypoints +- Add `@app.get("/health/", ...)` (or `/health`) directly in + `entrypoints/routers.py` returning `{"status": "ok"}` (status 200, + operation_id `health_check`, tag `Status`). +- Remove the `health_router` import + its `include_router` mount + (entrypoints/routers.py:1139). +- Delete `oss/src/routers/health_router.py`. +- (9-line file, zero deps — trivial.) + +### 2. Permissions → OSS `apis/fastapi/access/` + new path +- Create `oss/src/apis/fastapi/access/router.py` with an `AccessRouter` class + (mirror EE's `AccessRouter`: `self.router = APIRouter()`, + `add_api_route(...)`, `@intercept_exceptions()`). + - Route: `GET /permissions/check` (operation_id `check_permissions`), so + mounted under the `/access` prefix it becomes **`/access/permissions/check`**. + - Move the `Allow`/`Deny` classes + the `verify_permissions` handler body + (rename handler → `check_permissions`) verbatim; keep the `is_oss()` → + Allow / `is_ee()` → real-check behavior unchanged. + - Keep the conditional EE imports (`check_action_access`, `check_entitlements`, + `Permission`, `Counter`) exactly as today — handler works OSS-standalone. + - Add `__init__.py` to `oss/src/apis/fastapi/access/`. +- Mount in `entrypoints/routers.py`: instantiate `AccessRouter()` and + `app.include_router(access_router.router, prefix="/access", tags=["Access"])`. + - **Coexistence:** EE's `extend_main` also mounts its `access_router` at + `/access` (`/access/plans`, `/access/roles`). FastAPI merges routers on the + same prefix, so OSS `/access/permissions/check` + EE `/access/plans|roles` + all coexist when EE runs; OSS-only has just `/access/permissions/check`. + (No collision: distinct subpaths.) +- Remove the old `permissions_router` import + mount + (entrypoints/routers.py:1145, prefix `/permissions`). +- Delete `oss/src/routers/permissions_router.py`. + +### 3. In-repo callers of the old path (update to new path) +- **Throttle map** `ee/src/core/access/entitlements/types.py:174`: + `(Method.ANY, "/permissions/verify")` → `(Method.ANY, "/access/permissions/check")` + (keep it in the SERVICES_FAST category, same as today). +- **Python SDK** (in-repo): + - `sdks/python/agenta/sdk/middlewares/running/vault.py:130,173` — the + `{host}/api/permissions/verify` call + its docstring → + `{host}/api/access/permissions/check`. + - `sdks/python/agenta/sdk/middlewares/routing/auth.py:141` — same path update. + - NOTE: confirm the SDK sends the same query params (`action`, + `resource_type`, …) and reads `effect`/`credentials` from the response — the + handler contract is unchanged, only the path moves. +- **Do NOT touch** `web/packages/agenta-api-client/*` (Fern-generated) or + `web/_reference/*` — user regenerates these. + +### 4. Verify +- ruff on touched api files. +- Runtime: OSS app import (`/access/permissions/check` route present); EE + extend mounts both. Confirm OSS-only path returns Allow. +- SDK: `sdks/python` — ruff format + check on the two middleware files; run any + SDK unit tests that touch these middlewares. +- Throttle: the ENDPOINTS entry resolves (no test asserts the old literal? check + `test_*throttl*`). + +## Deferred (NOT in this change — flagged for later) + +- **Services `admin_manager.py` + `commoners.py`** are non-scope (platform/ + onboarding helpers) but are genuinely service-layer; moving them to a `core/` + home is a separate, lower-priority cleanup. Leave for now. +- **EE routers** (`ee/src/routers/organization_router.py`, + `workspace_router.py`) are already scope-only — no change. +- The 6 pre-existing eval-loop test failures (UEL-017/021/022/023) are unrelated. + +## Open questions for sign-off + +- **Q1 — route path/op:** `GET /access/permissions/check`, operation_id + `check_permissions`? (EE uses `fetch_access_plans`/`fetch_access_roles`; this + would be `check_permissions` under the same `/access` group.) OK? +- **Q2 — health path:** keep trailing slash `/health/` (current) or `/health`? + Inline vs a tiny `entrypoints/health.py`? Recommend: inline `@app.get("/health/")` + in routers.py (matches current path exactly, no new file). +- **Q3 — SDK path:** the SDK calls `{host}/api/permissions/verify` (note the + `/api` prefix). New path `{host}/api/access/permissions/check`. Confirm the + `/api` mount prefix is unchanged (only the sub-path moves). + +## Blast radius +- Delete 2 router files; edit `entrypoints/routers.py` (imports + mounts + inline + health); new `apis/fastapi/access/` package (2 files). +- Update throttle map (1 line) + 2 SDK middleware files (2-3 lines). +- No EE router changes; EE `access` router untouched (keeps adding plans/roles). +- Generated client + API ref: user-handled. diff --git a/docs/designs/third-party-subsystem-access.md b/docs/designs/third-party-subsystem-access.md new file mode 100644 index 0000000000..878ba6268c --- /dev/null +++ b/docs/designs/third-party-subsystem-access.md @@ -0,0 +1,125 @@ +# Third-Party Subsystem Access Patterns + +How `api/` code should reach external subsystems (Postgres, Redis, Stripe, PostHog, +SuperTokens, SendGrid, …), why the patterns differ, and what the current state is. + +Authored 2026-05-21 from a read-only audit of the `api/` tree plus the decisions +made while fixing UEL-024 and UEL-027 (see +`docs/designs/unified-eval-loops/findings.md`). + +## Intent + +There is **no single DI story**, and that is deliberate. Forcing one uniform +pattern across every subsystem fights both the libraries (some are module +singletons, some are instantiated clients) and the call shape (some deps are +required on every request, some are optional one-liners). Instead, the access +pattern is chosen by classifying each subsystem along **two axes**: + +1. **Required vs optional** — is the dependency needed for the app to function on + every request, or is it an optional integration that may be disabled/absent? +2. **Per-request client vs boot-time framework vs shared-orchestration** — how is + the dependency used at the call site? + +The goal: testability (a swappable seam), no eager work at import time for +optional deps, and not duplicating orchestration that several callers share. + +## The model (decision table) + +| Subsystem | Required? | Call shape | Pattern | Rationale | +|-----------|-----------|------------|---------|-----------| +| **Postgres / SQLAlchemy** | required | per-request client | **Lazy singleton factory + constructor injection** | Modern DAOs take `engine=None` and fall back to `get_transactions_engine()`. The factory is a lazy singleton; the constructor param is the test seam. | +| **Redis / cache** | required-ish | per-request, but always behind helpers | **Lazy singleton factory + util wrapper** | Callers never touch the Redis client — they call `get_cache`/`set_cache` in `caching.py`, backed by a module-global lazy engine. | +| **Stripe** | optional | one-liner direct calls (`stripe.Customer.create`) | **Lazy loader, direct use** | `_load_stripe()` returns the module (with `api_key` set), or `None`. No shared orchestration → no util wrapper; callers use it directly and null-check. | +| **PostHog** | optional | one-liner direct calls (`posthog.capture`) | **Lazy loader, direct use** | Same as Stripe. `_load_posthog()` returns the module or `None`. | +| **SendGrid (email)** | optional | shared orchestration (load template → format → validate sender → send) | **Lazy loader + util wrapper** | Email callers share real glue, so it belongs behind a util like Redis behind `caching.py`. `_load_sendgrid()` returns a client instance; `emailing.send_email(...)` is the public entry. | +| **Loops (marketing contacts)** | optional | single HTTP POST | **Util wrapper, direct HTTP (no client to load)** | Not an SDK — a raw `httpx` call to the Loops API. Nothing to lazy-load; lives in `emailing.py` as `add_contact(...)` (same outbound surface as email), enabled-guarded on `env.loops.enabled`. | +| **SuperTokens** | required | boot-time framework | **Eager conditional init at startup** | Not a per-request client — a framework that registers global middleware/recipes. Initialized once via `init_supertokens()` at app boot. DI/lazy would add nothing. | + +### The three loader/access shapes, concretely + +- **Constructor injection (Postgres):** + ```python + class MetersDAO: + def __init__(self, engine: TransactionsEngine = None): + self.engine = engine or get_transactions_engine() + # tests: MetersDAO(engine=mock_engine) + ``` +- **Lazy loader, direct use (Stripe / PostHog):** + ```python + stripe = _load_stripe() # None if disabled/unavailable + if stripe is None: return + stripe.Customer.create(...) + # tests: monkeypatch the loader, e.g. _load_posthog + ``` +- **Lazy loader + util wrapper (Redis, SendGrid):** + ```python + # callers never see the client: + await get_cache(...) ; await set_cache(...) # caching.py + await emailing.send_email(to_email=..., subject=...) # emailing.py + ``` + +## Cross-cutting rules (decided) + +1. **Each `lazy.py` loader owns its enabled-check** and returns `None` when the + subsystem is disabled/unavailable; callers null-check the result. (SendGrid + does this now. Stripe/PostHog still gate `if env.X.enabled` at call sites — see + "Known gaps" — but the intended direction is loader-owns-it.) +2. **Loaders return whatever the library is designed for.** `stripe`/`posthog` + return the module (global `api_key`); `sendgrid` returns a client instance. Do + **not** force uniformity against the library's own shape. +3. **Optional deps must not do work at import time.** No module-global client + construction (the UEL-027 anti-pattern). Build on first use via the loader. +4. **Wrap in a util only when callers share orchestration.** One-liner deps + (Stripe/PostHog) use the loader directly. Deps with shared glue (Redis, email) + get a util so the glue isn't duplicated across call sites. +5. **Don't add production "proxy globals" just to satisfy tests.** Patch the real + seam (constructor, or the loader/factory function). This is the UEL-024 lesson. + +## Current state (2026-05-21) + +- **Postgres:** consistent. Modern DAOs (`MetersDAO`, `SecretsDAO`, `ToolsDAO`, + `EvaluationsDAO`, `GitDAO`, `IdentitiesDAO`, EE `EventsDAO`/`OrganizationsDAO`/ + `SubscriptionsDAO`, `TracingDAO` on `AnalyticsEngine`) all use constructor + injection with factory fallback. Engines wired once at + `api/entrypoints/routers.py` (~lines 398-401). Legacy `db_manager`/ + `db_manager_ee` call `get_transactions_engine()` inline per-function (factory + lookup, no injectable seam) — acceptable for legacy that is being replaced. +- **Redis:** `caching.py` module-global lazy engine + helper functions. Clean + isolation; no DAO takes Redis as a constructor param. +- **Stripe / PostHog:** `_load_stripe` / `_load_posthog` in + `oss/src/utils/lazy.py`; used directly in services (`subscriptions/service.py`, + `meters/service.py`, `auth/helper.py`, `auth/supertokens/overrides.py`, + `analytics_service.py`). +- **SendGrid:** fixed in UEL-027. `_load_sendgrid()` added to `lazy.py`; + `oss/src/utils/emailing.py` is the util (public `send_email`, private + `_read_email_template` / `_render_email_template`); template at + `oss/src/utils/templates/send_email.html`. The old + `oss/src/services/email_service.py` and the dead eager `sg` in `db_manager_ee.py` + were removed. Four call sites migrated to `emailing.send_email(...)`. +- **SuperTokens:** `init_supertokens()` at startup (`routers.py` ~line 189). + +## Known gaps / follow-ups (not yet done) + +- **Stripe/PostHog enabled-check still at call sites.** Per rule 1 it should move + into the loaders (return `None` when disabled). ~5 call sites; not migrated to + avoid unprompted churn. +- **Email render-per-recipient.** The EE `notify_org_admin_invitation` loop calls + `emailing.send_email` per admin, re-rendering identical HTML each time. Cheap; + could split render-once if it ever matters. +- **Legacy `db_manager_ee` has no injectable seam.** Fine while it is slated for + replacement; if it survives, class-ify it or thread `engine` through. + +## Tradeoffs considered (and rejected) + +- **One uniform DI everywhere.** Rejected: fights library shapes (module vs + client) and over-engineers optional one-liner deps. +- **Fully unpacking `email_service` to inline `sg.send` at every call site (to + match Stripe/PostHog).** Rejected: the four email callers share template + + format + sender-validation glue; inlining would duplicate ~10 lines ×4. Email is + a caching-style boundary, not a one-liner dep. +- **Forcing Stripe/PostHog loaders to return wrapped client objects** for surface + uniformity. Rejected: works against how those libraries are built (module + singletons with a global `api_key`). +- **Adding module-level proxy globals so existing tests' `monkeypatch` targets + keep working (UEL-024).** Rejected: hides the real seam and degrades production + code; tests were updated to patch the actual seam instead. diff --git a/docs/designs/unified-eval-loops/findings.md b/docs/designs/unified-eval-loops/findings.md new file mode 100644 index 0000000000..f4b1d6fbda --- /dev/null +++ b/docs/designs/unified-eval-loops/findings.md @@ -0,0 +1,882 @@ +# Unified Eval Loops Findings + +Review scope: full `feat/unified-eval-loops` branch diff against `main`, with emphasis on the most recent `evals<>queues implementation` commit (`603820f5a`). + +Sources: + +- Fresh deep scan of code, docs, tests, and migrations on the active checkout. +- User-provided full pytest failure output from the API suite: 41 failed, 1344 passed, 8 skipped. +- Full reread of every document in `docs/designs/unified-eval-loops/` during the current applicability audit. +- Targeted local checks: + - `pytest -q ee/tests/pytest/unit/test_controls_env_override.py::TestNoOverride::test_billing_pricing_accepts_legacy_agenta_pricing_alias ee/tests/pytest/unit/test_controls_env_override.py::TestNoOverride::test_billing_pricing_accepts_legacy_stripe_pricing_alias` passed locally. + - Targeted auth/meters/db-manager tests reproduced the stale monkeypatch failures from UEL-024. + - Targeted evaluation-runtime tests could not collect in the local shell because `agenta.sdk.evaluations.runtime` was not importable from that invocation; the user-provided full-suite output remains the validation source for those failures. +- Design references: `docs/designs/unified-eval-loops/{proposal,plan,gap,research,step-removal-semantics}.md`. +- Extension references: `docs/designs/unify-evals-and-queues/{proposal,plan,gap,unify-evals-extension-synthesis,unify-evals-extension-verbatim,research}.md`. +- Existing closed findings (UEL-001..UEL-006) retained below for history; reviewed only after the independent pass. + +## Notes + +- 2026-05-20 re-audit: re-scanned current code against every OPEN finding without applying fixes. Status/diagnosis corrections recorded inline under each finding's `Re-audit (2026-05-20)` block. Net result: UEL-021 and UEL-022 share a single confirmed root cause (source-backed evaluator origin default) that is more precise than the original "kind conflation" diagnosis; UEL-021's claimed expected `kind` values are wrong; UEL-017's failing assertion is a flag-gate bug, not the multi-batch race the finding describes; UEL-023's `interface`/`configuration` sub-issue is stale (closed via UEL-003) and the actual failing assertion is unfiltered `inputs`. +- No local full-suite test execution was performed while auditing these findings; findings marked `reproduced` either come from the user-provided full-suite output or from the targeted local checks listed above. +- Findings below were re-checked against current code. Where runtime confirmation is still missing, the finding flags it and may need handoff to `test-codebase`. +- The branch carries two intertwined design tracks: unified evaluation loops (planner / source resolvers / tensor slice / runnable executor) and the evals×queues unification (default queue lifecycle + flag redefinitions). Findings cover both. +- Do not fix test-hook drift by adding broad production proxy objects. Prefer direct test injection/patching where the code already supports it, or add narrow compatibility helpers with a clear production purpose. + +## Open Questions + +- ~~Should the legacy migration that mass-creates default queues for all existing runs gate on `has_human`/policy in a single pass, or is the runtime "first-edit reconciles" lag acceptable?~~ **Resolved (2026-05-21):** the migration now mirrors the runtime create policy in a single pass — it creates default queues only for `has_human=true` runs, archives stale active default queues for runs that no longer qualify, and carries the run's own status instead of a hardcoded `running`. No reconcile lag. See UEL-010 (closed). +- ~~Is destructive `remove_step` + `prune` still the chosen lifecycle per `step-removal-semantics.md`? If so, when is the missing implementation expected?~~ **Resolved (2026-05-21):** destructive remove + prune is confirmed and implemented. Rather than a separate `remove_step` endpoint, the prune cascade is folded into the shared create/edit reconcile path (`EvaluationsService._reconcile_run`): `create_run` is "edit from an empty graph" (`prior_step_keys=set()`, prune is a no-op), and `edit_run` diffs the prior graph and prunes cells + input-only orphan scenarios + flushes metrics for any dropped step. See UEL-014 (closed). +- ~~For source-backed queues, should the public `SimpleQueueData.kind` report the source family (`queries` / `testsets`) or the executable scenario family (`traces` / `testcases`)?~~ **Resolved by 2026-05-20 re-audit:** the failing tests assert the *source* family (`kind="queries"` / `kind="testsets"`), so the current mapping is correct and the real bug is the `is_queue=False` / evaluator-origin default. See UEL-021 re-audit. +- ~~Should legacy unit tests keep monkeypatching module-level `posthog` / `engine` symbols, or should they be updated to patch dependency factories / constructor injection?~~ **Resolved by 2026-05-20 re-audit:** update the tests to patch the current seam (`_load_posthog`, `get_transactions_engine`, or constructor-injected engine) — production proxy globals are explicitly disallowed by the Notes guidance. See UEL-024 re-audit. + +## Open Findings + +None. (UEL-015 was the last open finding; closed 2026-05-22 — see below.) + +## Closed Findings + +### [CLOSED] UEL-015: `TensorSliceOperations.process` only refreshes metrics; the documented `process(slice)` contract is unimplemented + +- ID: `UEL-015` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Completeness` +- Summary: `TensorSliceOperations.process` is the only in-process implementation of the design's central `process(slice)` operation. It does not plan, execute, or populate cells — it only calls `evaluations_service.refresh_metrics(...)` and returns an empty `ProcessSummary`. The actual planner/executor pipeline runs only through `tasks/source_slice.py` and `tasks/run.py`, which are full-batch entrypoints rather than slice-aware. +- Evidence: + - `api/oss/src/core/evaluations/runtime/tensor.py:151-169`: `process` body is `await refresh_metrics(...)` then `return ProcessSummary()`. No planner/runner invocation. + - `docs/designs/unified-eval-loops/proposal.md:160-208` describes `process(run, slice)` as the full plan-and-execute loop. + - `tasks/source_slice.py:174-566` implements something close to the contract but is keyed on `run_id`/`source_items`/`testcase_ids`/`trace_ids`, not on the canonical `TensorSlice` shape. +- Impact: + - Slice-aware retries, partial re-execution by `(scenario_ids, step_keys, repeat_idxs)`, and the "probe-before-write" workflow described in `gap.md` §"Execution Gaps" are not yet possible. + - The current `process` reads like a complete implementation (it does mutate metrics) but silently does almost nothing. Callers may believe they have executed a slice when they have only refreshed metrics. +- Files: + - `api/oss/src/core/evaluations/runtime/tensor.py` + - `api/oss/src/core/evaluations/tasks/source_slice.py` +- Cause: The slice operation surface was scaffolded ahead of the planner/runner wiring needed to make `process(slice)` operational. +- Suggested Fix: + - Either route `process(slice)` through the source-slice processor by translating `TensorSlice` into the parameters that `process_evaluation_source_slice` already accepts, or rename `TensorSliceOperations.process` to clarify that it is only a metrics refresh. + - Add a unit test that asserts the documented behavior (execute auto cells in the slice, populate result cells, return a non-empty `ProcessSummary`). +- Alternatives: + - Mark this method explicitly as `metrics-refresh-only` and provide a separate `execute(slice)` method when planner integration lands. Keep the contract honest. +- Re-audit (2026-05-20): **Still reproduces.** `runtime/tensor.py` `process` (def at line 151) early-returns `ProcessSummary()` (line 159), calls `refresh_metrics(...)` (line 161), and returns an empty `ProcessSummary()` (line 169). No planner/runner invocation. Diagnosis and severity unchanged. +- Resolution (2026-05-22): made `process(slice)` an honest plan->execute->populate->refresh op via the design's "same executor, different adapters" seam, rather than faking it or renaming it down. Two parts: + - **Seam (`runtime/tensor.py`).** Added a `SliceProcessor` protocol and an optional `slice_processor` dep on `TensorSliceOperations`. `process` now short-circuits empty slices, then delegates to the injected processor; with no processor wired it raises `NotImplementedError` instead of silently refreshing metrics and returning an empty summary (the actual bug — it "silently does almost nothing"). The seam is adapter-free so `runtime/` does not depend on `tasks/`; the concrete impl is injected at the composition root. + - **Backend executor (`tasks/processor.py`).** Added `BackendSliceProcessor`, the real slice re-executor for the canonical `TensorSlice` (existing scenarios x steps x repeats — the retry / fill-missing / re-run-one-evaluator axis). For each scenario it rebuilds the source binding from the stored input result cell (`trace_id` for trace/query sources, `testcase_id` for testcase/testset sources), re-hydrates trace/testcase context via `resolve_direct_source_items`, plans from the run's CURRENT graph (so modified steps re-run with freshly resolved revisions), and reuses the SDK `process_evaluation_source_slice` engine with an existing-scenario `create_scenario` adapter — so cells populate against the addressed scenario, not a new one. Hashed-trace handling is correct because the runners are `BackendCachedRunner`s (cache lookup by step references/links before invoking), shared with the ingest path via the extracted `_resolve_runners_and_revisions` helper. + - This is the design distinction the finding's "Suggested Fix" missed: `process_evaluation_source_slice` is an INGEST loop (one source item -> one freshly CREATED scenario), so it could not be a thin translation target for a `TensorSlice` that addresses EXISTING cells. The re-executor bridges the two by reconstructing bindings from stored cells. + - Tests (`api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py`): existing tensor-ops test now asserts `process` raises without a processor (was: returns empty summary + refreshes metrics); added `test_tensor_slice_process_delegates_to_injected_processor` and `test_backend_slice_processor_reexecutes_existing_scenario` (rebuilds source from input cell, reuses the existing scenario, wires the auto evaluator runner). Full api suite green via `py-run-tests`. + +### [CLOSED] UEL-009: Inferred-flag derivation is shared between migration and runtime, with brittle heuristics + +- ID: `UEL-009` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Soundness` +- Summary: The DAO-side helper `_make_run_flags` (`api/oss/src/dbs/postgres/evaluations/utils.py:73-138`) is the canonical place that derives the eight `has_*` flags from `run.data.steps`. It is invoked from `create_run_flags` / `edit_run_flags`, which the DAO calls inside `create_run` / `create_runs` / `edit_run` / `edit_runs`. The data migration (`a2b3c4d5e6f8`) duplicates the same heuristic in SQL. Both rely on two fragile rules: (1) substring matching of reference keys for `has_queries` / `has_testsets`, and (2) hardcoded step.key literals `{"traces", "query-direct", "testcases", "testset-direct"}` with empty references for `has_traces` / `has_testcases`. +- Evidence: + - `api/oss/src/dbs/postgres/evaluations/utils.py:104-136` walks `run.data.steps`, resets the eight `has_*` flags, and recomputes them from step shape. + - Lines 113-116 set `has_traces=True` if `step.key.lower() in {"traces", "query-direct"}` and refs are empty; same idiom for `has_testcases` with `{"testcases", "testset-direct"}`. + - Lines 118-124 set `has_queries=True` if any reference key contains the substring `"query"`; `has_testsets=True` if it contains `"testset"`. A reference key like `query_anchor`, `subquery`, or `testset_metadata` would falsely trigger either flag. + - `api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py:24-39` uses the same literals to backfill `has_traces` / `has_testcases` on existing rows. + - `docs/designs/unified-eval-loops/research.md:316-323` and `docs/designs/unify-evals-and-queues/unify-evals-extension-synthesis.md:30-33` explicitly identify "synthetic step-key inspection" as a target for removal under the new model. + - `api/oss/tests/pytest/unit/evaluations/test_run_flags.py:61-111` locks in the current heuristic (steps named `"traces"` / `"testcases"` with empty refs are expected to produce `has_traces=True` / `has_testcases=True`). +- Impact: + - Runtime and migration agree on the heuristic, so the backfill is internally consistent with new inserts. The risk is structural, not immediate. + - Any caller that constructs a direct-source input step with a non-matching `step.key` (e.g. `"my_traces_source"`) will silently produce `has_traces=False`. Downstream dispatch checks (`SimpleQueuesService._get_kind`, `dispatch_trace_slice`, `dispatch_testcase_slice`) will then misclassify or refuse the run. + - Any future reference key containing the substring `"query"` or `"testset"` (e.g. a hypothetical `query_anchor` or `testset_metadata` ref on an unrelated step) would incorrectly flip `has_queries` / `has_testsets` to `True`. + - The two heuristics live in two languages (Python and SQL). A future change to the rule must be applied in both places to keep backfilled and runtime rows consistent. +- Files: + - `api/oss/src/dbs/postgres/evaluations/utils.py` + - `api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py` + - `api/oss/tests/pytest/unit/evaluations/test_run_flags.py` +- Cause: There is no structural marker on a step that identifies its source family. Until one exists, both the migration and the DAO must infer from `step.key` / `step.references` shape. +- Suggested Fix: + - Introduce a structured marker on `EvaluationRunDataStep` for source family (e.g. a `source_kind: Literal["query","testset","trace","testcase"]` field, or a sentinel reference `{"direct_source": Reference(...)}`) and have both the DAO and the migration read it. + - Until then, harden the substring match by enforcing exact reference-key membership (`"query_revision" in references` rather than substring-on-key) and lock the direct-source step keys in a single shared constant referenced from both Python and the migration. + - Add a unit test that asserts `has_queries` does NOT trigger for a fake reference key like `"some_query_anchor"`. +- Alternatives: + - Accept the heuristic as the persistent rule and document it as a contract; gate any future step-key changes through a versioning check. +- Re-audit (2026-05-20): **Still reproduces.** Confirmed in `oss/src/dbs/postgres/evaluations/utils.py`: hardcoded direct-source step keys `{"traces", "query-direct"}` / `{"testcases", "testset-direct"}` at lines 113-116, and substring matching `"query" in step_key` / `"testset" in step_key` at lines 121-124 (refs in finding cited 104-136 / 118-124; logic unchanged, lines shifted to ~94-124). Diagnosis and severity unchanged. +- Resolution (2026-05-22): adopted the "harden to exact membership" path. `_make_run_flags` now keys `has_queries` / `has_testsets` on EXACT reference-key presence (`query_revision` / `testset_revision`) instead of substring matching, with the key sets pulled into module constants; direct-source keys stay in `DIRECT_TRACE_STEP_KEYS` / `DIRECT_TESTCASE_STEP_KEYS`. The backfill in `a2b3c4d5e6f8` was updated to match (JSONB `?` key-presence, not substring). Unit tests assert `query_anchor` / `testset_metadata` do NOT trigger the flags and that the exact key still triggers among other refs. The duplication across Python + SQL remains (two languages), and the heuristic-vs-structural-marker tradeoff is unchanged — a `source_kind` marker on the step is still the longer-term option but was not needed to remove the substring fragility. + +### [CLOSED] UEL-011: No tests cover default-queue reconciliation, archive/unarchive, or `_validate_default_queue_data` + +- ID: `UEL-011` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Testing` +- Summary: The evals×queues unification adds a lot of new behavior — `_reconcile_default_queue`, `archive_queue`, `unarchive_queue`, `_validate_default_queue_data`, `_sync_run_queue_flag_for_default_queue`, default-queue lookup, partial unique index — but pytest coverage is zero. +- Evidence: + - `grep -rn "default queue\|default_queue\|is_default" api/oss/tests/pytest/` returns no relevant hits (matches are all unrelated workspace/project `is_default`). + - `grep -rn "reconcile_default_queue\|archive_queue\|unarchive_queue\|fetch_default_queue\|EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS" api/oss/tests/` returns nothing. + - Existing acceptance tests in `test_simple_queues_basics.py` cover queue creation and source-family resolution but do not exercise default-queue lifecycle. +- Impact: + - The entire unified-queues lifecycle is unverified. UEL-008/UEL-009/UEL-010/UEL-013 in particular would have been caught by basic coverage. + - Future refactors of `_reconcile_default_queue` have no safety net. +- Files: + - `api/oss/tests/pytest/` (no relevant tests) + - `api/oss/tests/pytest/unit/evaluations/test_run_flags.py` (covers other flag aspects but not queue reconciliation) +- Cause: The implementation was prioritized over tests; the design (`unify-evals-and-queues/gap.md` §Tests) lists exactly these as required test cases. +- Suggested Fix: + - Add unit tests for `_reconcile_default_queue` under all four state transitions (`required+missing`, `required+archived`, `required+active`, `not required+active`). + - Add tests for `archive_queue`/`unarchive_queue` returning `None` when the queue is missing, raising for closed runs, and syncing `run.flags.is_queue`. + - Add tests for `_validate_default_queue_data` rejecting `user_ids`, `scenario_ids`, `step_keys`, `batch_size`, `batch_offset` on `is_default=True` queues, both in create and edit paths. + - Add a DAO/integration test asserting that the partial unique index `ux_evaluation_queues_default_per_run` prevents two default queues per run (including archived rows). + - Add a regression test for `delete_queue`/`delete_queues` raising "default queues must be archived, not hard deleted". +- Alternatives: + - Cover the same surface through acceptance tests over the HTTP routes (`/queues/{id}/archive`, `/runs/{id}/default-queue`). Reduces unit-level reach but covers HTTP wiring at the same time. +- Resolution (2026-05-22): coverage added via the HTTP-route alternative. `test_default_queue_lifecycle.py` exercises all four reconcile transitions (required+missing → create, not-required+active → archive, required+archived → unarchive, required+active → no-op) plus the non-human (no default queue) case, asserting `is_queue` sync each time; `test_default_queue_policy.py` covers `_validate_default_queue_data` rejection of `user_ids`/`scenario_ids`/`step_keys`/`batch_size`/`batch_offset` (create + edit), demotion/deletion-forbidden, and the partial-unique-index uniqueness (reject second active default, recreate after archive, allow across runs — see UEL-030). The planted-`is_queue` reconcile-back regression (UEL-020) is also here. Default-queue lifecycle is no longer untested. + +### [CLOSED] UEL-020: `is_queue` is recomputed only at the service layer; the DAO neither resets nor derives it + +- ID: `UEL-020` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Soundness` +- Summary: The DAO helper `_make_run_flags` resets the eight `has_*` flags on every `create_run` / `edit_run` and re-derives them from `run.data.steps`. It does not touch `is_queue`, which is computed only by `_reconcile_default_queue` and `_sync_run_queue_flag_for_default_queue` at the service layer. Any caller that bypasses the service and writes to the DAO directly (or any future caller that constructs `EvaluationRunFlags(is_queue=True)` and calls `edit_run`) can plant a stale `is_queue` value that survives until reconciliation runs again. The same asymmetry means the DAO has no invariant to detect or correct a desynced `is_queue` on read. +- Evidence: + - `api/oss/src/dbs/postgres/evaluations/utils.py:94-102` resets only `has_queries`, `has_testsets`, `has_traces`, `has_testcases`, `has_evaluators`, `has_custom`, `has_human`, `has_auto`. `is_queue` is left to whatever the caller passed (or the row already had). + - `api/oss/src/core/evaluations/service.py:440-447` writes `is_queue` based on `has_human AND default_queue.deleted_at IS NULL`, only inside `_reconcile_default_queue`. + - `api/oss/src/core/evaluations/service.py:1818-1849` writes `is_queue` only when the changed queue is `is_default=True`. + - `api/oss/src/core/evaluations/service.py:511-533` and `587-635` are the only paths that chain reconcile after a run write. A caller using `evaluations_dao.edit_run` directly will skip reconcile entirely. + - Design contract: `is_queue` is "active default queue exists AND active human evaluator work exists" (`docs/designs/unify-evals-and-queues/unify-evals-extension-synthesis.md:40-55`). This is a derived fact that should not be persistable by the DAO without re-derivation. +- Impact: + - In the current codebase, every write path goes through the service, so reconcile fires. The persisted value is correct in practice. + - Any new code that writes via the DAO (background jobs, EE extensions, future operations like `add_step`/`remove_step`) must remember to call reconcile or it will leave `is_queue` stale. + - There is no DAO-layer invariant test that flags a desynced row, so a regression can go unnoticed. +- Files: + - `api/oss/src/dbs/postgres/evaluations/utils.py` + - `api/oss/src/core/evaluations/service.py` +- Cause: `is_queue` depends on facts outside `run.data.steps` (the existence and lifecycle of a default queue), which the DAO does not load. Service-layer reconciliation was added later as the single source of truth. +- Suggested Fix: + - Document the invariant in `utils.py` (`# is_queue is service-derived; do not write directly`) and add a service-layer regression test that calls `edit_run` with `is_queue=True` on a run that should not be queue-eligible and asserts reconciliation flips it back. + - Alternatively, move `is_queue` out of the persisted flag and compute it on read in the service layer, so it cannot be wrong. +- Alternatives: + - Keep `is_queue` persisted but enforce reconciliation as part of every `edit_run` call (e.g. wrap the DAO call inside a service decorator that always runs reconcile afterward). +- Resolution (2026-05-22): adopted the Suggested Fix. The invariant is now documented in `_make_run_flags` (`is_queue` is service-derived, owned by `_reconcile_default_queue`; do not write via the DAO without running reconcile). A regression test (`test_default_queue_lifecycle.py::test_planted_is_queue_flag_is_reconciled_back`) PATCHes `is_queue=True` onto a non-human (non-eligible) run and asserts the edit path reconciles it back to `False` with no default queue. Kept `is_queue` persisted (the compute-on-read alternative was not needed); every write still routes through the service reconcile. + +### [CLOSED] UEL-017: Source-aware queue runs may transiently flip run status during multi-batch dispatch + +- ID: `UEL-017` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `medium` +- Status: `not-a-bug` +- Category: `Correctness` +- Summary: `process_evaluation_source_slice` writes the run status (`RUNNING`/`SUCCESS`/`ERRORS`/`FAILURE`) at the end of each invocation when `update_run_status=True`. For source-aware queues that dispatch multiple batches (`_dispatch_source_batches` triggers several slice runs), each batch can flip the status before subsequent batches arrive, producing a `SUCCESS` -> `RUNNING` -> `SUCCESS` thrash. +- Evidence: + - `api/oss/src/core/evaluations/tasks/source_slice.py:527-563` writes `run.status = run_status` after the slice, gated only by `severity` ordering against the **current** persisted value (not against in-flight slice arrivals). + - `api/oss/src/core/evaluations/tasks/run.py:109-148` and `tasks/source_slice.py:174-205` are invoked once per slice, not once per run. + - Source-aware queue creation in `SimpleQueuesService._dispatch_source_batches` (referenced at `service.py:3730-3743`) ships multiple slices for a single run. +- Impact: Operators observing a run during multi-batch dispatch may see status oscillate. Idempotent observers and frontend status displays may flicker. The severity rule at line 543-547 floors at the higher status, but only against the previously persisted status — not against still-pending parallel slices. +- Files: + - `api/oss/src/core/evaluations/tasks/source_slice.py` +- Cause: Status update logic was written for the single-slice case and re-used for multi-slice dispatch without coordination. +- Suggested Fix: + - Pass an explicit `expected_total_slices` / `slice_index` (or a "this is the last slice" flag) into `process_evaluation_source_slice`, and only update the run status on the final slice. + - Alternatively, move run-status reconciliation out of the slice loop into a separate run-finalize task that aggregates across slices. +- Alternatives: + - Document the thrash and accept it. Cheaper but degrades the UX promise of the unified loop. +- Re-audit (2026-05-20): **A concrete, test-failing sub-bug exists that this finding does not capture; promote to `reproduced`.** The failing test `test_source_slice_processor_preserves_higher_queue_status` (pytest dump) is not about the multi-batch race this finding describes — it fails because the severity-floor block in `process_evaluation_source_slice` is gated on `run.flags.has_traces or run.flags.has_testcases` (`tasks/source_slice.py:566-571`). The test's run is `EvaluationRunFlags(is_queue=True, has_queries=True)` (query-backed), so `has_traces`/`has_testcases` are both False, the floor is skipped, and `run_status` stays `SUCCESS` instead of being floored up to the persisted `ERRORS` — hence `assert ... == ERRORS` got `SUCCESS`. + - So there are now two distinct issues under the "status preservation" umbrella: (1) **this finding's** multi-slice thrash race (still `medium`/un-reproduced as a *race*), and (2) the severity-floor flag gate excluding `has_queries`/`has_testsets` runs (reproduced, test-failing). They share `source_slice.py:566-586`. + - Corrected suggested fix for (2): include `has_queries`/`has_testsets` (or simply gate on `run.flags.is_queue`) in the severity-floor condition at line 569 so source-backed queue runs preserve their higher persisted status. This is the same `source_slice.py:569` gate referenced in UEL-022's re-audit. +- Resolution (2026-05-21) — **partial; item (2) fixed, item (1) still OPEN.** The severity-floor flag gate (`tasks/processor.py`) was widened from `has_traces or has_testcases` to also include `has_queries or has_testsets`, so source-backed (query/testset) queue runs now preserve their higher persisted status. The test-failing sub-bug `test_source_slice_processor_preserves_higher_queue_status` passes (resolved together with UEL-022). +- Resolution (2026-05-22) — **item (1) is NOT a bug; closing.** Re-analysed the multi-slice (`_dispatch_source_batches` ships one slice per input step) case under the *current* severity order (`FAILURE:4 > ERRORS:3 > SUCCESS:2 > RUNNING:1 > PENDING:0`): + - Each slice computes its status from its OWN processed subset: all-done → a terminal status, only its own pending items → RUNNING. A slice that finishes never computes RUNNING for already-done work, and the floor only keeps a *more severe* stored status. So a later all-success slice can never floor the run back UP to RUNNING — the `SUCCESS -> RUNNING -> SUCCESS` thrash the finding described cannot occur with this ordering. (The thrash was an artifact of the OLD ordering where RUNNING outranked SUCCESS; that was the real UEL-028 single-slice pin, since fixed by the reorder.) + - The only residual is cosmetic: with concurrent slices the first to finish writes the run's terminal status (and clears `is_active`) slightly before its siblings finish. The final resting state is still correct (the last write lands the right terminal status), and **liveness is not read from `status`** — it lives in `is_active`, which only *acts* via `fetch_live_runs` (DAO), gated on `is_live=True`. Source-batch/queue runs are dispatched as `queue_traces` / `queue_testcases` topologies, never `live_query` (`classify_steps_topology` returns a single dispatch), so `is_active` never gates them and the early write cannot cut off a sibling slice (each slice is an already-queued, independent taskiq task). The glitch is a transient readout only. + - Therefore no last-slice-finalize flag is warranted (it would thread a signal through ~6 dispatch hops including the taskiq boundary for a self-correcting cosmetic glitch on a field nobody gates on for these runs). +- Architectural note (root cause of the whole confusion): `status` overloads two orthogonal axes — liveness (running vs done) and outcome (success/errors/failure). The severity-floor exists only to reconstruct the axis that the single enum throws away. The clean model splits them: liveness = `is_active` (already a flag), outcome = a separate terminal value; then there is no floor and no severity map. Tracked as a future cleanup, not required for correctness now. + +### [CLOSED] UEL-018: SDK runtime drops extra runner outputs silently when batch is longer than planned cells + +- ID: `UEL-018` +- Origin: `scan` +- Lens: `verification` +- Severity: `P3` +- Confidence: `medium` +- Status: `fixed` +- Category: `Correctness` +- Summary: `process_evaluation_source_slice` zips `batch_cells` with `executions` and only handles the case where there are fewer executions than cells (closed UEL-004). When the runner returns **more** executions than planned cells (a contract violation in the other direction), the trailing executions are silently discarded. +- Evidence: + - `sdks/python/agenta/sdk/evaluations/runtime/source_slice.py:182-204` iterates `zip(batch_cells, executions)`, naturally truncating to the shorter sequence. + - Lines 216-230 handle only `len(executions) < len(batch_cells)` (`batch_cells[len(executions):]`). + - The mismatch flag at line 216 still sets `scenario_has_errors=True`, but no per-extra-cell logging happens. +- Impact: Low — the contract violation is "extra outputs from the runner," which should be rare. But the silent drop means there is no audit trail for the extra outputs. Closed UEL-004 fixed only the under-return direction. +- Files: + - `sdks/python/agenta/sdk/evaluations/runtime/source_slice.py` +- Cause: The fix for UEL-004 covered the under-count case explicitly; the over-count case was not added. +- Suggested Fix: + - When `len(executions) > len(batch_cells)`, log a structured warning that includes the extra outputs' summaries. + - Optionally, persist a marker result row for the unused executions or surface them in the `ProcessedScenario.metrics`. +- Alternatives: + - Treat extra outputs as a hard error (raise). More aggressive but symmetric with UEL-004. +- Resolution (2026-05-22): the mismatch branch in `processor.py` (SDK runtime) now splits under-count vs over-count. Over-count logs a structured warning with the dropped executions' summaries (`trace_id` / `span_id` / `status` / `error`) and still flags the scenario as having errors; the planned cells are logged from the first executions. Chose the structured-warning path over hard-raise to stay consistent with the soft-worker stance. Unit test `test_sdk_source_slice_handles_over_count_runner_batch` covers it. + +### [CLOSED] UEL-019: Source-resolver `query_revision` lookup ignores resolver returning `None` and falls through to the next resolver + +- ID: `UEL-019` +- Origin: `scan` +- Lens: `verification` +- Severity: `P3` +- Confidence: `medium` +- Status: `fixed` +- Category: `Soundness` +- Summary: `resolve_queue_source_batches` iterates resolvers in order and stops as soon as one returns a non-empty batch. If a `query_revision` reference resolves to zero trace IDs, the function returns `None` and the loop tries the testset resolver next, which silently does the wrong thing if the same step (somehow) had both refs. +- Evidence: + - `api/oss/src/core/evaluations/runtime/sources.py:229-244` iterates `[QueryRevisionTraceResolver, TestsetRevisionTestcaseResolver]` and `break`s on the first truthy batch. + - A step has either a `query_revision` or a `testset_revision` reference under current design, so the fall-through is harmless in practice — but if a future step carries both refs (a possibility under mixed-source planning), the second resolver would win silently. + - The first resolver returns `None` whenever `trace_ids` is empty (line 106-107) instead of returning an empty batch, which conflates "no traces" with "wrong resolver". +- Impact: Low today (single-ref steps), but the resolver chain is brittle to future graph extensions and to legitimately empty query results. +- Files: + - `api/oss/src/core/evaluations/runtime/sources.py` +- Cause: The resolver chain was modeled as "first-match wins" rather than "first-applicable wins". +- Suggested Fix: + - Split the resolver protocol into `applies(step)` and `resolve(step)`; iterate until `applies` returns `True`, and treat empty results as a real empty batch (or a structured error). + - Return `ResolvedSourceBatch(kind=..., step_key=..., trace_ids=[])` for empty query results so the loop sees the resolver applied. +- Alternatives: + - Document the assumption "exactly one source reference per input step" and add a planner-level validator that rejects steps violating it. +- Resolution (2026-05-22): combined both directions of the Suggested Fix. Each resolver now declares its exact `source_reference_key` and an `applies(step)` check; `resolve_queue_source_batches` selects the resolver whose key is present (first-applicable, not first non-empty), so an empty query result is a real empty batch for that resolver and never falls through to the testset resolver. The "exactly one source reference per input step" rule is enforced: a step carrying both `query_revision` and `testset_revision` raises `SourceResolutionError`. Unit tests cover the no-fall-through and multi-ref-rejection cases. + + +### [CLOSED] UEL-030: "one default queue per run" is not enforced — unique index absent and no code-level guard + +- ID: `UEL-030` +- Origin: `test` +- Lens: `validation` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Soundness` +- Summary: The design relies on the partial unique index `ux_evaluation_queues_default_per_run` to guarantee at most one default queue per run, and `_reconcile_default_queue` assumes `fetch_default_queue` returns a single row. But the index is **absent from the running dev DB** and `create_queue` has **no code-level guard**, so creating two `is_default=True` queues for the same run succeeds — both become active default queues. +- Evidence: + - `POST /evaluations/queues/` with `flags.is_default=True` twice for the same `run_id` both return `count=1` (test `test_default_queue_policy.py::test_second_default_queue_for_same_run_is_rejected`, currently xfail). + - `pg_indexes` for `evaluation_queues` lists only `pkey`, `run_id`, `project_id`, `flags`, `tags`, `user_ids` — **no** `ux_evaluation_queues_default_per_run`, even though `alembic_version` is at `b2c3d4e5f7a8` (past `a1b2c3d4e5f6`, which creates it) and no later migration drops it. + - Model declares the index in `api/oss/src/dbs/postgres/evaluations/dbes.py:290-296` with `postgresql_where=text("(flags ->> 'is_default')::boolean = true")` — note this counts **archived** rows (no `deleted_at IS NULL`), which conflicts with the reconcile flow that archives then later unarchives/recreates a default queue. + - Migration `a1b2c3d4e5f6` creates the index with the same `WHERE (flags ->> 'is_default')::boolean = true` (no `deleted_at` predicate). +- Impact: + - Duplicate active default queues per run are possible, breaking the `fetch_default_queue` "single row" assumption used throughout `_reconcile_default_queue` / `_sync_run_queue_flag_for_default_queue`. + - If the index *were* applied as written (`is_default=true` without `deleted_at IS NULL`), the archive→recreate path in reconcile would hit a unique violation against the archived row. So the index predicate is also likely wrong. +- Files: + - `api/oss/src/dbs/postgres/evaluations/dbes.py` + - `api/oss/databases/postgres/migrations/core/versions/a1b2c3d4e5f6_add_default_evaluation_queues.py` + - `api/oss/src/core/evaluations/service.py` (create_queue path) +- Cause: The uniqueness guarantee was specified as a DB index but (a) the index is not present in the environment, and (b) its predicate omits `deleted_at IS NULL`, so it cannot both enforce one *active* default and allow archive→recreate. +- Suggested Fix: + - Correct the index predicate to `(flags ->> 'is_default')::boolean = true AND deleted_at IS NULL` (one *active* default per run, archived rows excluded) in both the model and a new migration; confirm it actually applies in the dev/prod DBs. + - Add a code-level guard in `create_queue` (reject/▸no-op a second active default for a run) so the invariant holds even if the index is missing, and surface it as `EntityCreationConflict`. + - Flip `test_second_default_queue_for_same_run_is_rejected` from xfail to a passing assertion. +- Notes: + - Surfaced while writing default-queue policy coverage (UEL-011). +- Resolution (2026-05-21): + - **Root cause was a duplicate alembic revision id.** `add_default_evaluation_queues` shared the revision id `a1b2c3d4e5f6` with `drop_corrupted_metrics_for_some_runs`, so alembic resolved to one file and silently skipped the index migration — which is why the index was absent from the DB despite `alembic_version` being past `a1b2c3d4e5f6`. + - Renamed the index migration to revision `a1d2e3f4a5b6` and chained both new branch migrations (`a1d2e3f4a5b6` add-index, `a2b3c4d5e6f8` backfill) linearly after each environment's head — OSS after `e6f7a8b9c0d1`, EE after `b2c3d4e5f7a8` (EE carries three extra meter/role migrations past the shared OSS head). Both graphs now resolve to a single head `a2b3c4d5e6f8` (verified with `find_head.py core`). Migrations are mirrored in both `api/oss/.../core/versions/` and `api/ee/.../core/versions/`. + - Corrected the index predicate to `(flags ->> 'is_default')::boolean = true AND deleted_at IS NULL` in both the model (`dbes.py`) and the migration, so it enforces one *active* default per run while allowing archive→recreate. + - Fixed two SQL type bugs in the backfill (`evaluation_runs.data` / `evaluation_queues.data` are `json`, not `jsonb`): cast `data::jsonb` before `jsonb_array_elements`, and insert `'{}'::json` into the `data` column. + - Verified end to end on a `--nuke` rebuild: fresh DB lands at head `a2b3c4d5e6f8` and `ux_evaluation_queues_default_per_run` exists with the corrected predicate. + - **No separate code-level guard was added.** A pre-emptive SELECT guard was prototyped while the index was missing, but it never worked (it didn't block the second insert) and was not race-safe (separate SELECT/INSERT sessions). It was removed: the partial unique index is the real enforcement, and the existing `check_entity_creation_conflict` in `create_queue`/`create_queues` already translates the index's unique-violation `IntegrityError` into `EntityCreationConflict` (HTTP 409). + - `test_second_default_queue_for_same_run_is_rejected` is now a passing assertion (xfail removed). Full `test_default_queue_policy.py` suite: 16 passed, including the three `TestDefaultQueueUniqueness` cases (reject second active default, recreate after archive, allow across different runs). + +### [CLOSED] UEL-031: Closed-run lock was silently ineffective — `EvaluationClosedConflict` swallowed by `@suppress_exceptions` on 21 DAO mutations + +- ID: `UEL-031` +- Origin: `test` +- Lens: `validation` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: Closing a run (`POST /runs/{id}/close`) is meant to lock it: subsequent content mutations should fail with 409. 21 DAO methods raise `EvaluationClosedConflict` when `flags.is_closed`, and 20 user-facing routes carry `@handle_evaluation_closed_exception()` (which converts it to 409) — but every DAO method's `@suppress_exceptions(...)` swallowed the conflict **before** it reached the router, so closed-run mutations silently returned 200/empty instead of 409. The lock was effectively a no-op at the HTTP layer. +- Evidence: + - All 21 raising methods used `@suppress_exceptions()` (or `exclude=[EntityCreationConflict]`) — **none** excluded `EvaluationClosedConflict` (`api/oss/src/dbs/postgres/evaluations/dao.py`). + - `test_closed_run_guard.py`: editing a closed run / creating a scenario / creating a result returned 200 (count 0), not 409. + - The 3 run routes (`create_runs`, `edit_runs`, `edit_run`) additionally lacked `@handle_evaluation_closed_exception()`, so even once the DAO raised, `edit_run` returned a generic 500. +- Worker hazard (why a blanket fix was unsafe): `process_evaluation_source_slice` calls `edit_run`/`edit_scenario` at finalization **without** checking `is_closed`. If a user closes a run mid-flight, making those raise would turn benign finalization into a crash/FAILURE. +- Resolution (2026-05-21) — harden user-facing, keep worker soft: + - Added `EvaluationClosedConflict` to the `exclude` of the 20 user-facing mutation DAO methods that raise it (edit_run/edit_runs, create/edit/delete scenario(s)/result(s), edit/delete metrics, create/edit queue(s)); `create_metrics` already had no suppression so it propagates. Now the decorated routes return 409. + - Added `@handle_evaluation_closed_exception()` to the `create_runs`/`edit_runs`/`edit_run` routes (`api/oss/src/apis/fastapi/evaluations/router.py`). + - Made the worker tolerant: `process_evaluation_source_slice` wraps its finalization `edit_run` and per-item `edit_scenario` in `try/except EvaluationClosedConflict` (log + skip) — closing is a lock, not a failure. +- Files: + - `api/oss/src/dbs/postgres/evaluations/dao.py` + - `api/oss/src/apis/fastapi/evaluations/router.py` + - `api/oss/src/core/evaluations/tasks/source_slice.py` +- Regression coverage: `test_closed_run_guard.py` (5 tests) — close→is_closed, edit/scenario/result blocked with 409, open→edits allowed again. Existing flow tests confirm non-closed runs still finalize. +- Notes: + - Distinct from UEL-012 (which deliberately makes queue archive/unarchive NOT raise on a closed run — those paths were left unguarded on purpose). Surfaced while writing closed-run coverage. + +### [CLOSED] UEL-028: Batch (non-queue) source runs never finalize run status — stuck `running` after all scenarios succeed + +- ID: `UEL-028` +- Origin: `test` +- Lens: `validation` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: A batch (non-queue) source-backed run (testset → application → auto evaluator) processed every scenario to `success` and refreshed metrics, but the run-level `status` never rolled up — it stayed `running` with `flags.is_active=true` indefinitely. Reproduced end-to-end against the dev stack with the new `mock_v0` (LLM-free, sandbox-free) workflow. +- Evidence: + - Worker logs: `[SLICE] Complete processed=2 has_errors=False`, `scenarios_with_pending=0`, `scenarios_with_auto_results=2`. Both scenarios reached `success` in the DB. + - Targeted diagnostic logging proved the chain: the per-item computation correctly produced `run_status=SUCCESS` (`has_errors=[False,False]`, `has_pending=[False,False]`), but the value entering the terminal `edit_run` was `RUNNING`. + - Root cause: the severity-floor block in `process_evaluation_source_slice` (`api/oss/src/core/evaluations/tasks/source_slice.py`) ranked `RUNNING` (2) **above** `SUCCESS` (1). Across slices it floors the persisted status up to the more-severe value — so a run whose stored status was `RUNNING` could never transition to `SUCCESS`; it pinned at `running` forever. The transient `RUNNING`/`PENDING` states were incorrectly treated as outranking the terminal `SUCCESS`. + - Prevalence on the dev DB before the fix (batch/`is_live=false` runs): `success=35` vs `running=114`, `pending=211`. + - Not a caching issue: there is no cache layer on the evaluation-run service/DAO, and the stale value was confirmed directly in Postgres. +- Resolution (2026-05-21) — Option B from `docs/designs/unified-eval-loops/run-status-finalization.md` (no run-wide scenario aggregation): + - **Corrected the severity floor** so terminal statuses outrank the transient ones: `FAILURE(4) > ERRORS(3) > SUCCESS(2) > RUNNING(1) > PENDING(0)`. A freshly computed terminal status (incl. `SUCCESS`) now replaces a stale `RUNNING`, while a prior `FAILURE`/`ERRORS` still floors over a later SUCCESS-only slice (UEL-017's intent). `test_source_slice_processor_preserves_higher_queue_status` still passes. + - **Reset `status=RUNNING` on every (re)dispatch** in the activation flow (`service.py` `_activate_evaluation_run`), not just on creation. This makes the **extended-finished** case correct: extending a `success` run flips it back to `running` while the new work executes, then the slice re-finalizes it. (Previously it kept `run.status` on re-activation, so an extended finished run stayed `success`.) + - Hardening: the terminal `edit_run` clears `flags.is_active` for terminal statuses; `dao.edit_run` writes `status` via `status.value` + `flag_modified` (mirroring `close_run`), since `edit_dbe_from_dto` dumped the DTO without `mode="json"` and left an enum that did not persist reliably. + - **Scope note:** only the `batch_testset` / `batch_invocation` dispatch (`update_run_status=True`) finalizes; `live_query` / `batch_query` pass `update_run_status=False` and are untouched. Batch testset/invocation runs are **single-slice** today (`process_testset_source_run` issues exactly one `process_evaluation_source_slice` call), so the multi-slice early-finalize race (Option C / UEL-017 item 1) does not apply here yet. + - Regression coverage: `api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_run.py` runs a full testset → `mock_v0` app → `mock_v0` auto-evaluator evaluation end-to-end through the real worker and asserts `status=success`. Passes (~4s). DB row after the fix: `status=success`, `is_active=false`. +- Files: + - `api/oss/src/core/evaluations/tasks/source_slice.py` + - `api/oss/src/core/evaluations/service.py` + - `api/oss/src/dbs/postgres/evaluations/dao.py` +- Notes: + - Surfaced by the new `agenta:custom:mock:v0` test workflow (deterministic, no LLM, no code sandbox), which lets evaluation runs execute end-to-end in acceptance tests. + - Full analysis + rejected alternatives: `docs/designs/unified-eval-loops/run-status-finalization.md`. + +### [CLOSED] UEL-029: Batch query→evaluator runs never finalize run status (dispatched with `update_run_status=False`) + +- ID: `UEL-029` +- Origin: `test` +- Lens: `validation` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: The `batch_query` topology (query → evaluator, no application, not live) dispatched through `process_query_source_run` with `update_run_status=False`, so — like UEL-028 on the testset path — it never rolled its status up to a terminal value. The `live_query` topology shares the same function and *must* stay running, so the two cases needed to be distinguished. +- Resolution (2026-05-21): + - `process_query_source_run` already receives `use_windowing` (True for `batch_query`, False for `live_query`). Set `update_run_status = use_windowing`, so batch query runs finalize while live runs keep polling. + - Zero-traces batch case: `process_evaluation_source_slice` rejects empty input (raises "no source items"), so an empty batch query is finalized **directly** via `evaluations_service.edit_run(status=SUCCESS, is_active=False)` rather than through the slice. (A batch query with no matching traces is complete, not failed.) + - With UEL-028's finalization in place, non-empty batch query slices finalize via the same severity-floor path. +- Files: + - `api/oss/src/core/evaluations/tasks/query.py` +- Regression coverage: `test_evaluation_flows_run.py::test_batch_query_to_evaluator_runs_to_success` now asserts `status=success` + `is_active=false` (previously xfail). E1 suite: 4 passed. +- Notes: + - Surfaced while building the run-to-completion flow suite with the `mock_v0` harness. + +### [CLOSED] UEL-012: archive/unarchive a queue must be allowed on a closed run (was: `@suppress_exceptions()` swallows `EvaluationClosedConflict`) + +- ID: `UEL-012` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: `archive_queue`/`unarchive_queue` raised `EvaluationClosedConflict` when the parent run was closed; the bare `@suppress_exceptions()` swallowed it, returning `count=0` instead of a 409. The original finding proposed surfacing the 409. +- Resolution (2026-05-21) — **policy decision: allow both.** Archiving/unarchiving a queue is a worklist/lifecycle action, not a content edit of the run, so it must succeed even on a closed (locked) run. The `is_closed` guard was **removed** from both `archive_queue` and `unarchive_queue` in `api/oss/src/dbs/postgres/evaluations/dao.py` (no `EvaluationClosedConflict` is raised on these paths anymore, so there is nothing left to swallow). This supersedes the "surface a 409" suggestion. +- Files: + - `api/oss/src/dbs/postgres/evaluations/dao.py` +- Regression coverage: `api/oss/tests/pytest/acceptance/evaluations/test_evaluation_flows_modify.py::test_unarchive_and_archive_default_queue_on_closed_run` — closes a human-queue run, then asserts archive + unarchive do **not** return 409. + +### [CLOSED] UEL-016: Service raises bare `ValueError` for default-queue policy violations instead of typed domain exceptions + +- ID: `UEL-016` +- Origin: `scan` +- Lens: `verification` +- Severity: `P3` +- Confidence: `high` +- Status: `fixed` +- Category: `Consistency` +- Summary: `_validate_default_queue_data`, the demotion guards, and `delete_queue`/`delete_queues` raised bare `ValueError` for default-queue policy violations, against the `AGENTS.md` rule that domain exceptions be typed in the core layer and converted at the API boundary. +- Resolution (2026-05-21): + - Added a `DefaultQueueError` base + `DefaultQueueDataInvalid`, `DefaultQueueDemotionForbidden`, `DefaultQueueDeletionForbidden` (with structured `queue_id` context) in `api/oss/src/core/evaluations/types.py`. + - Replaced the bare `ValueError` raises in `service.py` (`_validate_default_queue_data`, the two demotion guards, both delete paths) with these typed exceptions. + - Added HTTP exception classes (`DefaultQueueDataInvalidException` → 422, `DefaultQueueEditingForbiddenException` → 409) in `apis/fastapi/evaluations/models.py`, and extended the `handle_evaluation_closed_exception` decorator (`apis/fastapi/evaluations/utils.py`) to convert the domain exceptions on the queue routes. +- Files: + - `api/oss/src/core/evaluations/types.py` + - `api/oss/src/core/evaluations/service.py` + - `api/oss/src/apis/fastapi/evaluations/models.py` + - `api/oss/src/apis/fastapi/evaluations/utils.py` + +### [CLOSED] UEL-021: Source-backed simple queues are classified as `queries` / `testsets`, but runtime and tests expect `traces` / `testcases` + +- ID: `UEL-021` +- Origin: `test` +- Lens: `validation` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Area: `Evaluations / Simple Queues` +- Summary: Query-backed and testset-backed simple queues currently keep `SimpleQueueKind.QUERIES` / `SimpleQueueKind.TESTSETS` as their queue kind, while the runtime dispatch works on resolved trace/testcase scenario items. The provided test run shows both unit and acceptance failures where query-backed queues are expected to expose `kind="traces"` and dispatch trace slices, and testset-backed queues are expected to expose `kind="testcases"` and dispatch testcase slices. +- Evidence: + - `oss/tests/pytest/unit/evaluations/test_query_eval_loops.py::test_simple_queue_create_dispatches_each_query_source_with_step_key` observed `created_queue.data.kind == "queries"` but expected `"traces"`. + - `oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py::test_create_source_backed_queue_preserves_repeats_and_assignments` observed `"testsets"` but expected `"testcases"`. + - Acceptance tests for creating source-backed queues returned zero queued items where one was expected. + - `api/oss/src/core/evaluations/service.py` maps queue data with `_get_source_kind()` returning `SimpleQueueKind.QUERIES` for `queue.data.queries` and `SimpleQueueKind.TESTSETS` for `queue.data.testsets`. + - `SimpleQueuesService._parse_queue()` reports `kind=self._get_kind(run)`, so the source family leaks into the public simple-queue response. +- Files: + - `api/oss/src/core/evaluations/service.py` + - `api/oss/src/core/evaluations/types.py` + - `api/oss/tests/pytest/unit/evaluations/test_query_eval_loops.py` + - `api/oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py` +- Cause: The model conflates two different concepts: source declaration family (`queries` / `testsets`) and resolved executable item family (`traces` / `testcases`). Source-backed queue creation preserves source revision IDs correctly, but public queue kind and downstream dispatch checks are using the source family where tests expect the resolved family. +- Explanation: A query-backed queue is created from query revisions, but the work assigned to reviewers/evaluators is trace scenarios. Similarly, a testset-backed queue resolves testset revisions into testcase scenarios. The API needs to preserve both facts without using one field for both. +- Suggested Fix: + - Keep `queries` / `testsets` fields as source references. + - Return `kind="traces"` for query-backed queues and `kind="testcases"` for testset-backed queues, or introduce an explicit `source_kind` field if the source family must be exposed. + - Ensure source-backed queue runs are marked/queryable consistently so `query(kind="traces")` and `query(kind="testcases")` include them. + - Add regression tests for query-backed and testset-backed queue creation, fetch, query, and add-source rejection behavior. +- Alternatives: + - If product wants `kind` to mean source family, update the tests and API docs. That would be a deliberate contract change and should not be inferred from the current implementation. +- Sources: + - Provided pytest output. + - Local inspection of `SimpleQueuesService`. +- Re-audit (2026-05-20): **Diagnosis corrected; severity unchanged (P1); confidence raised to high.** The "kind conflation" framing is inaccurate, and two evidence claims are wrong: + - The acceptance tests do NOT expect `kind="traces"`/`kind="testcases"`. `test_create_simple_queue_from_queries` asserts `queue["data"]["kind"] == "queries"` (`test_simple_queues_basics.py:173`) and `test_create_simple_queue_from_testsets` asserts `"testsets"` (line 199). They expect the source family preserved, plus `queries`/`testsets` arrays echoed back. The current `_get_source_kind` mapping to `QUERIES`/`TESTSETS` is therefore *correct*, not the bug. + - The real failure is upstream: the `KeyError: 'queue'` / `count == 0` happen because `_parse_queue` returns `None`. Trace: `SimpleQueuesService.create` source-backed branch calls `simple_evaluations_service._make_evaluation_run_data(...)` (`service.py:3636`). That builder defaults list-shaped evaluators to `DEFAULT_ORIGIN_EVALUATORS = "custom"` (`service.py:124`, applied at `3045-3049`), so `has_human=False` → `_reconcile_default_queue` leaves `is_queue=False` → `_get_kind` short-circuits to `None` at `service.py:4224` (`not run.flags.is_queue`) → `_parse_queue` returns `None` at `4271-4272` → router emits empty envelope. + - Contrast: the non-source `_make_run_data` (`service.py:4087`) defaults list evaluators to `origin="human"` (`4093-4099`), so direct trace/testcase queues get `has_human=True` → `is_queue=True` and parse correctly. This asymmetry between the two builders is the single root cause shared with UEL-022. + - Corrected suggested fix: align the source-backed evaluator-origin default with the non-source builder (default list-shaped evaluators to `"human"` in `_make_evaluation_run_data`), OR decouple `_get_kind`/`_parse_queue` from `is_queue` so a created queue is always parseable. Do NOT change `_get_source_kind`'s family mapping. Keep `kind` reporting the source family per the tests. +- Resolution (2026-05-21): **Fixed via the evaluator-origin default, scoped to the queue path only.** Confirmed the re-audit's root cause: the source builder defaulted bare-list evaluators to `custom` → `has_human=False` → `is_queue=False` → `_parse_queue` returned `None` → empty envelope. + - Added a keyword-only `default_evaluator_origin: Origin = DEFAULT_ORIGIN_EVALUATORS` param to `_make_evaluation_run_data` and used it in the list-coercion. Only `SimpleQueuesService.create` passes `"human"`; the two `SimpleEvaluationsService` callers (create/edit) keep the `custom` default, so simple-evaluation behavior is unchanged. The shared run builder stays general — this is a queue-path default, not a run-layer rule. + - **Explicit origins are always honored:** the `"human"` default applies only to a bare list (origin-less). A dict like `{id: "auto"}` is passed through verbatim — the default never overrides it. + - **New simple-queue constraint** (per user): a queue must resolve to **at least one human evaluator**. A human evaluator is one that is origin-less (defaults to human) or explicitly `"human"`. So a bare list is always valid; an explicit dict is valid only if at least one value is `"human"` — a dict whose values are all non-human (all `auto`, all `custom`, or any `auto`/`custom` mix) is rejected. Enforced as a `SimpleQueueData.validate_sources` model-validator rule ("simple queues must have at least one human evaluator", 422) at request parse — before any run/default-queue is created. The underlying evaluation run has no such restriction. + - `_get_source_kind` family mapping unchanged; `kind` still reports the source family per the tests. + - Tests: `test_simple_queues_basics.py` adds `test_source_backed_queue_with_bare_evaluator_list_is_human_queue` (bare list → `has_human`/`is_queue` true), `test_simple_queue_rejects_evaluator_dicts_with_no_human` (all-auto, all-custom, and auto+custom mix → all 422), `test_simple_queue_allows_human_mixed_with_non_human_evaluators` (human+auto and human+custom → valid queue, both origins honored). Full file 20 passed. + +### [CLOSED] UEL-022: Source-backed queue dispatch enters the source-slice processor with `has_queries` / `has_testsets`, but the processor accepts only direct-source flags + +- ID: `UEL-022` +- Origin: `test` +- Lens: `validation` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Area: `Evaluations / Simple Queues` +- Summary: Source-backed queue creation resolves query revisions into trace batches and testset revisions into testcase batches, then dispatches those batches through the same source-slice processor used by direct trace/testcase queues. The dispatch wrapper accepts source-backed flags (`has_queries` / `has_testsets`), but `process_evaluation_source_slice()` still treats `require_queue=True` as requiring direct-source flags only (`has_traces` / `has_testcases`). Query-backed and testset-backed queues can therefore pass the first dispatch gate and fail inside the slice processor. +- Evidence: + - `oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py::test_create_simple_queue_from_queries` failed with `assert 0 == 1`. + - `oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py::test_create_simple_queue_from_testsets` failed with `assert 0 == 1`. + - `oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py::test_simple_evaluation_queue_batches_dispatch_through_slice_processor` failed because a queue-shaped run fixture with source-backed input was rejected by dispatch. + - `SimpleEvaluationsService.dispatch_trace_slice()` permits `run.flags.has_traces or run.flags.has_queries`. + - `SimpleEvaluationsService.dispatch_testcase_slice()` permits `run.flags.has_testcases or run.flags.has_testsets`. + - `api/oss/src/core/evaluations/tasks/source_slice.py` rejects `require_queue=True` unless `run.flags.has_traces or run.flags.has_testcases`; it does not accept `has_queries` / `has_testsets`. + - `SimpleQueuesService._dispatch_source_batches()` resolves query/testset-backed source batches and calls `dispatch_trace_slice()` / `dispatch_testcase_slice()` with `input_step_key=batch.step_key`, so those batches eventually reach the stricter source-slice guard. +- Files: + - `api/oss/src/core/evaluations/service.py` + - `api/oss/src/core/evaluations/tasks/source_slice.py` + - `api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py` + - `api/oss/tests/pytest/acceptance/evaluations/test_simple_queues_basics.py` +- Cause: The queue dispatch layer was partially updated for source-backed queues, but the source-slice processor still equates "queue batch" with direct trace/testcase source flags. +- Explanation: A query-backed source batch is executable as trace items, but the run still carries `has_queries` because the input step references a query revision. A testset-backed source batch is executable as testcase items, but the run still carries `has_testsets`. The source-slice processor needs to validate the actual batch request plus input step, not only the direct-source family flags. +- Suggested Fix: + - Update `process_evaluation_source_slice()` queue validation so source-backed queue batches are allowed when `input_step_key` points to a `query_revision` or `testset_revision` input step and the concrete `trace_ids` / `testcase_ids` are present. + - Alternatively, pass `require_queue=False` for source-backed queue dispatches after validating the source batch in `SimpleQueuesService._dispatch_source_batches()`. + - Keep direct ad-hoc trace/testcase queues guarded by `has_traces` / `has_testcases`. + - Add tests for query-backed and testset-backed source batch dispatch through the actual source-slice processor. +- Alternatives: + - Persist additional resolved-source flags (`has_traces` for query-backed queues and `has_testcases` for testset-backed queues) alongside source-family flags. This would make the current guard pass, but it blurs the design's separation between source family and resolved executable item family. +- Sources: + - Provided pytest output. + - Local inspection of `SimpleEvaluationsService.dispatch_*`, `SimpleQueuesService._dispatch_source_batches()`, and `tasks/source_slice.py`. +- Re-audit (2026-05-20): **Partially confirmed; shares root cause with UEL-021.** The source-slice processor's `has_traces`/`has_testcases`-only gate is real and reproduced (see UEL-017 re-audit for the exact line — `tasks/source_slice.py:569` gates on `run.flags.has_traces or run.flags.has_testcases`, excluding `has_queries`/`has_testsets`). However, the *primary* reason the acceptance tests see `assert 0 == 1` is the same `is_queue=False` / evaluator-origin-default issue documented in UEL-021's re-audit — the queue never reaches a parseable state, so no scenarios are reported. The processor-gate gap (this finding) is the *secondary* defect that surfaces once UEL-021's origin default is fixed. Fix UEL-021 first, then re-run the source-backed dispatch tests to isolate whether the `source_slice.py:569` gate still blocks query/testset-backed batches. Keep this finding OPEN as the second-order fix. +- Resolution (2026-05-21): **Fixed.** Two parts, as the re-audit predicted: + - The `require_queue` dispatch gate in `process_evaluation_source_slice` (`tasks/source_slice.py:283-326`) had already been updated on the branch to accept `has_queries`+`query_revision` and `has_testsets`+`testset_revision` source batches — verified, no change needed there. + - The remaining offender was the run-status severity-floor block (`source_slice.py:566`), gated on `has_traces or has_testcases` only. Widened it to also accept `has_queries`/`has_testsets` so source-backed queue runs are covered. (This is the same gate as UEL-017 item #2.) + - With UEL-021's origin default fixed (queues now reach a parseable state), the source-backed dispatch tests pass: `test_simple_queues_basics.py` 20 passed, `test_query_eval_loops.py` + `test_runtime_topology_planner.py` all green (including `test_source_slice_processor_preserves_higher_queue_status`). + +### [CLOSED] UEL-023: Backend runtime adapter does not project source inputs onto the revision's declared input schema + +- ID: `UEL-023` +- Origin: `test` +- Lens: `validation` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Area: `Evaluations / Runtime Adapters` +- Summary: Two adapter tests fail for separate compatibility reasons. `BackendWorkflowRunner` now puts `interface` and `configuration` on the outer `WorkflowServiceRequest`, while the unit test expects them on `workflow_request.data`. `BackendCachedRunner` always forwards `semaphore=...` to the wrapped runner, but simple runner implementations may expose `execute_batch(requests)` only. +- Evidence: + - `test_backend_workflow_runner_invokes_application_through_workflow_service` fails with `AttributeError: 'WorkflowRequestData' object has no attribute 'interface'`. + - `test_backend_cached_runner_preserves_partial_hit_order` fails with `TypeError: BatchRunner.execute_batch() got an unexpected keyword argument 'semaphore'`. + - Local inspection confirms `WorkflowServiceRequestData` is constructed with only `revision`, `parameters`, `testcase`, `inputs`, `trace`, and `outputs`. + - Local inspection confirms `BackendCachedRunner.execute_batch()` calls `self.runner.execute_batch(missing, semaphore=semaphore)` unconditionally. +- Files: + - `api/oss/src/core/evaluations/runtime/adapters.py` + - `api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py` +- Cause: The adapter boundary is not using a single explicit protocol. Some callers/tests still expect the older request data shape and a simpler batch runner signature. +- Explanation: These are not the same bug. The request-shape issue needs a contract decision with the workflow service DTOs. The `semaphore` issue can be fixed either by standardizing the runner protocol or by making `BackendCachedRunner` only wrap runners that implement the full protocol. +- Suggested Fix: + - Define the expected `WorkflowServiceRequest` shape once and update either the test or the adapter to match it. Avoid mutating Pydantic DTOs ad hoc to add fields that the model does not declare. + - Define a runner protocol for `execute_batch(requests, semaphore=None)` and update test runners to implement it, or make `BackendCachedRunner` tolerant of wrapped runners that do not accept `semaphore`. + - Add a small protocol-focused unit test for cached partial-hit order and semaphore forwarding. +- Alternatives: + - If the outer `interface` / `configuration` fields are canonical, close the data-shape assertion as stale and update the test to assert `workflow_request.interface` and `workflow_request.configuration`. +- Sources: + - Provided pytest output. + - Local inspection of `BackendWorkflowRunner` and `BackendCachedRunner`. +- Re-audit (2026-05-20): **Evidence stale; real failing assertion is different.** The pytest dump's actual failure for `test_backend_workflow_runner_invokes_application_through_workflow_service` is `assert workflow_request.data.inputs == {"input": "hello"}` — got all four source keys (`correct_answer`, `testcase_id`, `testcase_dedup_id`, `input`). It is NOT the `AttributeError: 'WorkflowRequestData' object has no attribute 'interface'` this finding's Evidence cites; that `interface`/`configuration` assertion was already removed when UEL-003 was closed (the test now asserts via `workflow_request.data.revision[...]`/`parameters`). So this finding's part (a) is stale. + - Confirmed real defect: `BackendWorkflowRunner.execute` sets `inputs=request.source.inputs` verbatim (`adapters.py:309`) with no projection onto the revision's declared input schema (`revision["data"]["schemas"]["inputs"]["properties"]`). The test supplies a schema declaring only `input`, so the adapter should project `request.source.inputs` down to declared properties and drop `correct_answer`/`testcase_id`/`testcase_dedup_id`. + - The `semaphore` sub-issue (`BackendCachedRunner.execute_batch` forwarding `semaphore=` unconditionally) was not re-verified in this pass; left as-is pending a targeted check. + - Corrected suggested fix: in `BackendWorkflowRunner.execute`, filter `request.source.inputs` to the keys present in `revision["data"]["schemas"]["inputs"]["properties"]` before assigning to `WorkflowServiceRequestData.inputs`. Update the finding title to drop the `WorkflowServiceRequestData.interface` shape sub-issue (closed via UEL-003) and add the input-projection sub-issue. +- Resolution (2026-05-21): **Fixed; both sub-issues confirmed closed.** Reproduced the suite: `test_backend_workflow_runner_invokes_application_through_workflow_service` failed exactly per the re-audit (`workflow_request.data.inputs` carried `correct_answer`/`testcase_id`/`testcase_dedup_id`); `test_backend_cached_runner_preserves_partial_hit_order` already **passed** (the `semaphore` sub-issue is stale, no change needed). + - Added `_project_inputs(inputs, data)` in `api/oss/src/core/evaluations/runtime/adapters.py` and applied it at the `inputs=` assignment in `BackendWorkflowRunner.execute`. It filters `request.source.inputs` to the keys declared in `data.schemas.inputs.properties`; revisions with no declared input schema pass through unchanged so untyped/legacy revisions are not broken. + - Verified: the failing test passes; the full `test_runtime_topology_planner.py` file is now 39 passed / 1 failed, where the remaining failure is the separate `test_source_slice_processor_preserves_higher_queue_status` (UEL-017/UEL-022 severity-floor gate), not this finding. + +### [CLOSED] UEL-024: Unit tests patch legacy module globals that no longer exist after dependency lookup refactors + +- ID: `UEL-024` +- Origin: `test` +- Lens: `validation` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Area: `Compatibility / Tests` +- Summary: Several unit tests fail before exercising behavior because they patch module-level globals (`auth_helper.posthog`, `meters.dao.engine`, `db_manager_ee.engine`) that no longer exist. The production code now lazy-loads or constructor-loads dependencies through `_load_posthog()` / `get_transactions_engine()`. +- Evidence: + - Auth helper tests fail with `AttributeError: module 'oss.src.core.auth.helper' has no attribute 'posthog'`. + - Meter DAO tests fail with `AttributeError: module 'ee.src.dbs.postgres.meters.dao' has no attribute 'engine'`. + - Workspace invitation removal test fails with `AttributeError: module 'ee.src.services.db_manager_ee' has no attribute 'engine'`. + - Local inspection shows `auth.helper` imports `_load_posthog()` and assigns no module-level `posthog`. + - Local inspection shows `MetersDAO.__init__()` accepts `engine: TransactionsEngine = None` and defaults to `get_transactions_engine()`, so tests can inject a mock engine directly. + - Local inspection shows `remove_user_from_workspace()` calls `get_transactions_engine()` locally, and the same test file already has helper coverage that patches that function in earlier tests. +- Files: + - `api/oss/src/core/auth/helper.py` + - `api/ee/src/dbs/postgres/meters/dao.py` + - `api/ee/src/services/db_manager_ee.py` + - `api/oss/tests/pytest/unit/auth/test_helper.py` + - `api/ee/tests/pytest/unit/test_meters_dao_strict_soft.py` + - `api/ee/tests/pytest/unit/services/test_db_manager_ee.py` +- Cause: Test monkeypatch targets drifted after implementation changed dependency lookup style. The tests still patch old module-level handles instead of the current seam. +- Explanation: This is a test compatibility problem unless the module-level globals are part of an intentional public contract. Adding broad production proxy globals just to satisfy monkeypatches makes the code worse and hides the real dependency seam. +- Suggested Fix: + - Update auth tests to patch `_load_posthog()` or a small `_get_posthog_client()` helper if one is introduced. + - Update meter DAO tests to pass `MetersDAO(engine=mock_engine)` where `mock_engine.session()` returns the fake context. + - Update `db_manager_ee` pending-invite test to patch `get_transactions_engine()` consistently with the existing `_patch_core_session()` helper in the same file. + - Do not add broad module-level engine proxy objects to production DAO/service code. +- Alternatives: + - Add narrow compatibility aliases only if external code, not just tests, imports those module globals. No evidence of that exists in the provided failures. +- Sources: + - Provided pytest output. + - Local inspection of the affected modules and tests. +- Re-audit (2026-05-20): **Fully confirmed, all three module seams reproduce.** Verified directly: + - `oss/src/core/auth/helper.py` has no module-level `posthog`; it calls `_load_posthog()` inside `_get_posthog_string_entries` (line 63, imported at line 8). Tests patching `auth_helper.posthog` raise `AttributeError`. + - `ee/src/dbs/postgres/meters/dao.py` injects via `MetersDAO.__init__(self, engine: TransactionsEngine = None)` defaulting to `get_transactions_engine()` (lines 96-99); no module-level `engine`. Tests patching `dao_module.engine` raise `AttributeError`. Fix: construct `MetersDAO(engine=mock_engine)`. + - `ee/src/services/db_manager_ee.py` calls `get_transactions_engine()` per-function (lines 82, 103, 125, 147, …); no module-level `engine`. Tests patching `db_manager_ee.engine` raise `AttributeError`. Fix: patch `db_manager_ee.get_transactions_engine`. + - This is the cleanest fix candidate of the failing-test findings — test-only changes, no production code touched, consistent with the "do not add proxy globals" note. Open Question on monkeypatch strategy can be resolved as "update tests to patch the current seam." +- Resolution (2026-05-21): **Already fixed on this branch; verified by running the suite (30 passed, 0 failed).** All three test files now patch the current seam exactly as prescribed: + - `oss/tests/pytest/unit/auth/test_helper.py` patches `_load_posthog` (3 sites), not `auth_helper.posthog`. + - `ee/tests/pytest/unit/test_meters_dao_strict_soft.py` constructs `MetersDAO(engine=_mock_engine(session))`, not module-global `engine`. + - `ee/tests/pytest/unit/services/test_db_manager_ee.py` patches `get_transactions_engine` where it is called, not `db_manager_ee.engine`. + - No production code touched; consistent with the "do not add proxy globals" note. + +### [CLOSED] UEL-025: Legacy billing pricing alias tests are environment-sensitive because the subprocess helper inherits canonical pricing env + +- ID: `UEL-025` +- Origin: `test` +- Lens: `validation` +- Severity: `P3` +- Confidence: `medium` +- Status: `fixed` +- Area: `Environment / Billing Settings` +- Summary: Tests that set legacy `AGENTA_PRICING` or `STRIPE_PRICING` expected those values to populate `env.billing.pricing`, but the user-provided suite output observed a canonical/default Stripe price instead. Local inspection shows `BillingSettings.pricing` already honors legacy aliases after `AGENTA_BILLING_PRICING`, and targeted local execution of both legacy alias tests passed when no canonical pricing env was present. The remaining issue is test isolation: the subprocess helper starts from `dict(os.environ)`, so inherited `AGENTA_BILLING_PRICING` can legitimately mask legacy aliases. +- Evidence: + - `test_billing_pricing_accepts_legacy_agenta_pricing_alias` observed `price_1QmIwGB54aDbaYx3xE5J7WHA` instead of `price_agenta`. + - `test_billing_pricing_accepts_legacy_stripe_pricing_alias` observed the same default/canonical price instead of `price_stripe`. + - `api/oss/src/utils/env.py` uses `_load_json_env_dict_first("AGENTA_BILLING_PRICING", "AGENTA_PRICING", "STRIPE_PRICING")`. + - `api/ee/tests/pytest/unit/test_controls_env_override.py::_run()` copies the full parent environment before applying `env_extra`. + - Targeted local run of the two alias tests passed with `2 passed`, confirming the production alias order works when canonical env is absent. +- Files: + - `api/oss/src/utils/env.py` + - `api/ee/tests/pytest/unit/test_controls_env_override.py` +- Cause: The code path gives canonical env precedence by design, and the test helper does not scrub canonical env when validating legacy fallback. +- Explanation: The production precedence appears correct: canonical `AGENTA_BILLING_PRICING` should beat legacy aliases. The test helper should isolate env vars if it wants to validate legacy alias fallback. +- Suggested Fix: + - In `_run()` / `_ok()` test helpers, explicitly remove `AGENTA_BILLING_PRICING` when a legacy-alias test is running, or construct the subprocess env from a controlled minimal baseline. + - Add one explicit test that canonical env wins when both canonical and legacy aliases are present. +- Alternatives: + - If product wants legacy aliases to override canonical pricing, change `_load_json_env_dict_first()` order. This would contradict the existing canonical precedence test. +- Sources: + - Provided pytest output. + - Local inspection of `BillingSettings`. + - Targeted local pytest run. +- Resolution (2026-05-21): **Already fixed on this branch; verified (13 pricing tests pass).** `ee/tests/pytest/unit/test_controls_env_override.py` now isolates env for the legacy-alias tests exactly as prescribed: `test_billing_pricing_accepts_legacy_agenta_pricing_alias` and `..._stripe_pricing_alias` pass `"AGENTA_BILLING_PRICING": ""` in `env_extra` to clear the inherited canonical var so the legacy alias is consulted. A new `test_billing_pricing_prefers_canonical_env_over_legacy_aliases` locks in canonical-wins precedence. Production precedence (`_load_json_env_dict_first("AGENTA_BILLING_PRICING", "AGENTA_PRICING", "STRIPE_PRICING")`) is unchanged and correct. + +### [CLOSED] UEL-026: Events acceptance tests hit the EE audit permission/entitlement gate and need fixture alignment + +- ID: `UEL-026` +- Origin: `test` +- Lens: `validation` +- Severity: `P2` +- Confidence: `medium` +- Status: `fixed` +- Area: `Events / Acceptance` +- Summary: Four events acceptance tests expected HTTP 200 but received 403. Current code shows `POST /events/query` is gated in EE by both `Permission.VIEW_EVENTS` and the `Flag.AUDIT` entitlement. The acceptance fixture uses `cls_account["credentials"]` without asserting that account has event-view permission and audit entitlement, so the failures are likely fixture/plan setup unless response bodies or logs show a different 403 source. +- Evidence: + - `oss/tests/pytest/acceptance/events/test_events_basics.py::TestEventsBasics::test_query_events_returns_valid_response` failed with `assert 403 == 200`. + - The same 403 pattern appears for event type, unknown event type, and windowing-limit query tests. + - `api/oss/src/apis/fastapi/events/router.py` calls `check_action_access(... permission=Permission.VIEW_EVENTS)` and raises `FORBIDDEN_EXCEPTION` when false. + - The same route calls `check_entitlements(key=Flag.AUDIT)` and returns `NOT_ENTITLED_RESPONSE(Tracker.FLAGS)` when false. + - `api/oss/tests/pytest/unit/events/test_events_router_audit.py` already encodes allow/deny behavior for this gate. +- Files: + - `api/oss/tests/pytest/acceptance/events/test_events_basics.py` + - `api/oss/src/apis/fastapi/events/router.py` + - `api/oss/tests/pytest/unit/events/test_events_router_audit.py` +- Cause: Acceptance account setup likely does not guarantee the event-view permission and audit entitlement required by the route. +- Explanation: This is not evidence of an events DAO/service bug. It is a mismatch between acceptance expectations and the route's current EE access policy. +- Suggested Fix: + - Update the acceptance fixture to use an account/plan with `VIEW_EVENTS` and `AUDIT`, or assert 403 when the fixture lacks audit access. + - Log or assert the response body in the acceptance tests so permission denial and entitlement denial are distinguishable. + - Keep the existing unit coverage for audit allow/deny behavior. +- Alternatives: + - If OSS acceptance runs should bypass EE audit gating, ensure the test environment is actually OSS or conditionally skip/adjust the events acceptance tests under EE without audit entitlement. +- Sources: + - Provided pytest output. + - Local inspection of events router and unit tests. +- Resolution (2026-05-21): **Already fixed on this branch; verified.** The four OSS acceptance tests in `oss/tests/pytest/acceptance/events/test_events_basics.py` are now skipped with reason "Endpoint is plan/role-gated under EE; covered by the EE events suite" (5 skipped), matching the Alternatives fix. The plan/role-gated path is covered by `ee/tests/pytest/acceptance/events/test_events_basics.py` (5 passed). No 403-vs-200 mismatch remains. + +### [CLOSED] UEL-010: Backfill creates default queues for every existing run, bypassing the conditional policy + +- ID: `UEL-010` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Migration` +- Summary: The backfill migration inserts a `flags.is_default=true` queue for every existing run that does not already have one, regardless of `has_human` or `EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS`. The runtime policy in `_reconcile_default_queue` archives default queues for runs that should not have them, but it only fires on the next `create_run`/`edit_run`. Until then the database contains stale active default queues. +- Evidence: + - `api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py:43-71` inserts unconditionally, only checking the absence of an existing default queue. + - `api/oss/src/core/evaluations/service.py:408` policy is `should_exist = EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS or has_human`. With the env constant hardcoded `False` (UEL-007), the steady-state policy requires `has_human=True` for auto-only runs to retain a default queue. + - `api/oss/src/core/evaluations/service.py:433-438` archives default queues that should not exist, but only on run edits. +- Impact: + - For environments where `has_human=False` is the majority, the migration creates many auto-only default queues that will only get archived on the next edit. Until then, `fetch_default_queue` returns active queues that the runtime would not have created. + - Queue analytics, "queues with no work" views, and simple-queue eligibility checks will see inconsistent state across the fleet during the lag window. + - The backfilled rows also default to `status='running'` regardless of run status, which is misleading for `success`/`failure` runs. +- Files: + - `api/oss/databases/postgres/migrations/core/versions/a2b3c4d5e6f8_backfill_default_evaluation_queues.py` +- Cause: The migration favors symmetry (every run gets a queue) over conformance with the runtime policy. +- Suggested Fix: + - Mirror the runtime policy in the migration: only insert default queues for runs that satisfy `has_human OR `. Archive existing default queues for runs that no longer qualify. + - Alternatively, run a one-shot data fix immediately after the migration that calls `_reconcile_default_queue` for each run. + - Set `status` to a more neutral value (e.g., `pending`) or carry over the run's status when creating queues during backfill. +- Alternatives: + - Keep the unconditional behavior and document the lag explicitly. This is acceptable if `EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS` is going to be flipped `True` in deployment, but the constant is currently `False`. +- Resolution (2026-05-21): **Fixed.** `a2b3c4d5e6f8_backfill_default_evaluation_queues.py` now mirrors the runtime create policy (`_reconcile_default_queue`) in a single pass: + - The INSERT is gated on `COALESCE((r.flags ->> 'has_human')::boolean, false) = true`, matching `should_exist = EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS or has_human` with the env toggle hardcoded `False`. + - A new reconcile-the-other-direction UPDATE archives (`deleted_at = now`, `deleted_by_id = r.created_by_id`) any stale active default queue on a run that no longer qualifies (`has_human = false`), so there is no "first-edit reconciles" lag. + - Created queues carry `COALESCE(r.status, 'running')` instead of a hardcoded `'running'`, so closed/success/failure runs are not misrepresented. + - The final `is_queue` recompute is unchanged (already `has_human AND active default queue exists`). + +### [CLOSED] UEL-014: Step lifecycle operations (`add_step`, `remove_step`, `prune`) are absent + +- ID: `UEL-014` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `high` +- Status: `fixed` +- Category: `Completeness` +- Summary: `docs/designs/unified-eval-loops/step-removal-semantics.md` chose **destructive** `remove_step` + `prune` as the lifecycle policy and listed `add_step`, `remove_step`, `add_scenario`, `remove_scenario`, `probe(slice)`, `populate(slice, results)`, `prune(slice)`, `process(slice)`, `refresh_metrics`, `set_flag` as the canonical operation surface (`proposal.md:367-381`). None of these exist in the API or service. +- Evidence: + - `api/oss/src/apis/fastapi/evaluations/router.py` (verified through subagent map) has no `add_step`, `remove_step`, `probe`, `prune`, `populate`, `process`, `set_flag` route. The closest in-process method is `TensorSliceOperations` (see UEL-015). + - `api/oss/src/core/evaluations/service.py` exposes `create_results`, `query_results`, `delete_results`, `refresh_metrics`, run/queue CRUD, but no graph-mutation API. + - `docs/designs/unified-eval-loops/step-removal-semantics.md:1-20` declares destructive remove+prune as the chosen model. +- Impact: Without the operation surface, graph evolution still requires recreating runs or in-place edits without prune cascades, which is the very fragmentation the design was meant to resolve. UI/API affordances for managing steps after creation cannot be built. +- Files: + - `api/oss/src/apis/fastapi/evaluations/router.py` + - `api/oss/src/core/evaluations/service.py` +- Cause: Implementation prioritized planner/runtime/queue plumbing; the operation API surface remains future work per the plan, but is not labeled as deferred in this branch. +- Suggested Fix: + - Track the operation API as an explicit follow-up. Either ship it in this branch or extend `gap.md` to mark it as a known-pending item. + - When implementing, follow the AGENTS.md domain conventions (`apis/fastapi//router.py` + `core//service.py` + `dbs/postgres//dao.py`). +- Alternatives: + - Resolve as `needs-user-decision` if the team prefers to land the unification without the operation surface and ship it as a follow-up PR. +- Resolution (2026-05-21): **Fixed for the `remove_step` + `prune` lifecycle (the part `step-removal-semantics.md` actually mandates).** Per user decision, graph mutation is not exposed as separate `add_step`/`remove_step` endpoints. Instead, since `create_run` is conceptually "edit from an empty graph", create and edit now funnel through one shared post-write reconciler, `EvaluationsService._reconcile_run`: + - `_reconcile_run(run, prior_step_keys)` runs `_prune_removed_steps(run, prior_step_keys - current_step_keys)` then `_reconcile_default_queue(run)`. + - `create_run` / `create_runs` pass `prior_step_keys=set()`, so prune is a guaranteed no-op (no prior cells) — preserving the "create = edit from scratch" property. + - `edit_run` / `edit_runs` fetch the prior run, capture its step keys, and after the DAO write prune the cells of any dropped step. Adding/keeping a step needs no special path: omitting a step from `data.steps` *is* a destructive removal. + - `_prune_removed_steps` implements the documented cascade: delete result cells for removed steps across scenarios/repeats; remove scenarios left with zero remaining cells (i.e. sourced only from a removed input step); flush metrics for surviving affected scenarios. Closed runs are rejected by the existing DAO `edit_run` guard. + - Files: `api/oss/src/core/evaluations/service.py` (`_reconcile_run`, `_prune_removed_steps`, `_step_keys`, rewired create/edit). Tests: `api/oss/tests/pytest/acceptance/evaluations/test_evaluation_step_removal.py` (non-input drop prunes only its cells; input drop prunes orphan scenarios; create does not prune; queue eligibility re-derived). 12/12 targeted acceptance tests pass; 52/54 evaluations unit tests pass (the 2 failures are pre-existing UEL-017/UEL-022/UEL-023, unrelated). + - Still open as separate findings: the slice-level `process(slice)` execution contract (UEL-015) and the other documented ops (`add_step`/`add_scenario`/`set_flag`/etc.) are not part of the remove+prune lifecycle and remain out of scope here. The full operation surface and per-op status (done / partial / deferred) is now catalogued in [`operations.md`](./operations.md); the deferred ops will be implemented later. + +### [CLOSED] UEL-027: SendGrid client is an eager import-time module-global, inconsistent with the lazy-loader pattern used for other optional third-party subsystems + +- ID: `UEL-027` +- Origin: `scan` +- Lens: `verification` +- Severity: `P3` +- Confidence: `high` +- Status: `fixed` +- Area: `Utils / Third-party subsystem access` +- Summary: A 2026-05-21 audit of how `api/` accesses third-party subsystems found that optional dependencies are otherwise reached through once-checked lazy loaders in `oss/src/utils/lazy.py` (`_load_stripe`, `_load_posthog`), but SendGrid was the odd one out: two separate module-level eager initializations at import time. This is the same drift trap as UEL-024 (module-globals are hard to swap in tests) and means SendGrid client construction runs at import regardless of whether email is ever sent. +- Evidence (pre-fix, files since changed/removed): + - `oss/src/services/email_service.py:13-22` (now deleted) constructed `sg = sendgrid.SendGridAPIClient(...)` at module import time, guarded only by `if env.sendgrid.enabled`, and referenced it directly in `send_email` (`sg.send(message)`). + - `ee/src/services/db_manager_ee.py:5,65-66` imported `sendgrid` and constructed `sg = sendgrid.SendGridAPIClient(api_key=env.sendgrid.api_key)` at import time **unconditionally** (no `enabled` guard). Grep confirmed `sg` was assigned and never read anywhere in that module — dead code. + - By contrast, Stripe and PostHog use `oss/src/utils/lazy.py` once-checked loaders that return `None` when disabled/unavailable, and callers null-check the result. + - No external module imports `email_service.sg` or `db_manager_ee.sg` directly; all email goes through `email_service.send_email()` / `read_email_template()` (consumers: `oss/src/services/user_service.py`, `oss/src/services/organization_service.py`, `ee/src/services/organization_service.py`). +- Cause: The audit's "two axes" model (required-vs-optional × per-request-client-vs-boot-time-framework) explains every other subsystem: required per-request deps (Postgres/Redis) get a lazy singleton factory plus constructor-injection on modern DAOs; optional per-call deps (Stripe/PostHog) get `lazy.py` loaders; the boot-time framework (SuperTokens) is initialized once at startup. SendGrid is an optional per-call client and should have been a `lazy.py` loader, but was instead two eager module-globals. +- Resolution (2026-05-21): + - Added `_load_sendgrid()` to `oss/src/utils/lazy.py`, mirroring `_load_stripe`/`_load_posthog` but returning a configured `SendGridAPIClient` instance (not a module — accepted per the "module-vs-client" decision below), or `None` when disabled/unavailable. Owns its own enabled-check and preserves the prior log lines (enabled / missing-sender / disabled). + - `ee/src/services/db_manager_ee.py`: removed the dead `sg = SendGridAPIClient(...)` global and its `import sendgrid` (the symbol was never used). + - **Boundary decision (per user):** email is a *caching-style* subsystem (callers share real orchestration: load template -> format placeholders -> validate sender -> send), unlike Stripe/PostHog which are one-liner direct calls (`stripe.Customer.create`, `posthog.capture`) with no shared glue. So email belongs behind a util like Redis behind `caching.py`, NOT inlined. Created `oss/src/utils/emailing.py` with a single public function `send_email(*, to_email, subject, username, action, workspace, call_to_action, from_email=None)` plus two private helpers (`_read_email_template`, `_render_email_template`). The loader's enabled-check + sender validation + `Mail` construction + `sg.send` all live inside the util; only `send_email` is part of the public surface. + - Deleted `oss/src/services/email_service.py` and moved its template `git mv oss/src/services/templates/send_email.html -> oss/src/utils/templates/send_email.html` (so path resolution relative to the module still works). + - Migrated all four call sites (`oss/src/services/organization_service.py`, `oss/src/services/user_service.py`, `ee/src/services/organization_service.py` x2) from the repeated `read_email_template().format(...)` + `email_service.send_email(...)` dance to a single `emailing.send_email(...)` call. Removed the now-duplicated `if not env.sendgrid.from_address: raise ValueError(...)` guard from call sites (the util owns it). Callers that short-circuit on a disabled mailer with a non-bool return (invite link / reset link) keep their own `if not env.sendgrid.enabled` early-return. + - No production behavior change: disabled SendGrid is still a logged no-op; enabled builds the client on first send instead of at import. + - Follow-up (same session): also folded the Loops marketing-contact helper into `emailing.py`. The former `ee/src/services/email_helper.py::add_contact_to_loops` was a stateless `httpx` POST to the Loops API (no SDK/client, so nothing to lazy-load) but had no enabled-guard. Moved it to `oss/src/utils/emailing.py::add_contact(email, ...)` (the method is edition-agnostic — just an HTTP call — so it lives in OSS utils; the `is_ee()` gate stays at the call site in `ee/src/services/commoners.py`), added an `if not env.loops.enabled: return None` no-op guard mirroring `send_email`, and deleted `email_helper.py`. `emailing.py` is now the single outbound email/contact surface: public `send_email` (transactional via SendGrid) + `add_contact` (Loops audience); helpers stay `_`-prefixed. + - ruff format + check clean; import smoke test passes; template loads from new location. +- Decisions captured during the audit (apply to future subsystem work): + - **Enabled-check placement:** each `lazy.py` loader owns its enabled-check and returns `None` when off; callers null-check. (Stripe/PostHog still gate at call sites today; not migrated in this pass but the intended direction.) + - **Module vs client:** loaders return whatever the library is designed for — `stripe`/`posthog` return the module (global `api_key`), `sendgrid` returns a client instance. Do not force uniformity against the library shape. + - **Boundary:** required per-request deps (Postgres/Redis) -> lazy singleton factory + constructor injection on modern DAOs; optional deps with shared orchestration (email) -> util wrapper (caching-style); optional one-liner deps (Stripe/PostHog) -> direct lazy use; boot-time framework (SuperTokens) -> eager conditional init at startup. +- Alternatives: + - Leave SendGrid eager and accept the inconsistency. Rejected: it was the only optional subsystem not using the `lazy.py` seam, and the EE copy was eager-unconditional dead code. + - Fully unpack `email_service` and inline `_load_sendgrid()` + `sg.send(Mail(...))` at every call site (to match Stripe/PostHog). Rejected: the four callers share template/format/validate orchestration, so inlining would duplicate ~10 lines x4; email is a caching-style boundary, not a one-liner. +- Sources: + - 2026-05-21 read-only subsystem-access audit (Explore agent) covering Postgres, Redis, Stripe, PostHog, SuperTokens, SendGrid. + - Local inspection of the (now-removed) `email_service.py`, `db_manager_ee.py`, `lazy.py`, and the four email call sites. + +### [CLOSED] UEL-008: `has_traces`/`has_testcases` flags are never set on run creation + +- ID: `UEL-008` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `stale` +- Category: `Correctness` +- Summary: Original claim was that the runtime never writes `has_traces`/`has_testcases`/`has_human`/etc. on run creation. +- Resolution: + - Retracted. A deeper trace of the DAO showed that `EvaluationsDAO.create_run`, `create_runs`, `edit_run`, and `edit_runs` all call `create_run_flags(_run)` / `edit_run_flags(run, base_flags=...)`, which delegate to `_make_run_flags` in `api/oss/src/dbs/postgres/evaluations/utils.py:73-138`. That helper resets the eight `has_*` flags and recomputes them from `run.data.steps` on every write that carries a step graph. + - The service-layer `_make_evaluation_run_flags` (3308-3337) does pass all eight `has_*` as explicit `False`, but the DAO overrides them with the derived values. The derived values are correct for the canonical step shapes used by `_make_evaluation_run_data` and `SimpleQueuesService._make_run_data`. + - The reported runtime symptom (`dispatch_trace_slice` short-circuit, `_get_kind` returning `None`) does not occur, because by the time those checks run, the DAO has already populated `has_traces` / `has_testcases` / `has_queries` / `has_testsets` correctly. + - Existing coverage in `api/oss/tests/pytest/unit/evaluations/test_run_flags.py:13-111` locks in the inference for the four families. + - The residual concerns about the inference's brittleness (synthetic step-key + substring matching) are tracked in the rewritten UEL-009. + +### [CLOSED] UEL-013: `SimpleQueuesService.create` forces `is_queue=False` and never re-derives via reconciliation + +- ID: `UEL-013` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `medium` +- Status: `stale` +- Category: `Correctness` +- Summary: Original claim was that `SimpleQueuesService.create` would leave `is_queue=False` because `has_human` was never set, so `_reconcile_default_queue` would never create a default queue. +- Resolution: + - Retracted. The DAO `create_run` runs `_make_run_flags`, which walks the constructed annotation steps and sets `has_human=True` when any annotation step has `origin="human"`. `SimpleQueuesService._make_run_data` defaults list-shaped evaluator inputs to `origin="human"` (service.py:4096-4099). For dict-shaped inputs, the explicit origin is honored. + - `EvaluationsService.create_run` then runs `_reconcile_default_queue(run=created_run)` with the DAO-derived `has_human`. When `has_human=True`, the default queue is created and `is_queue=True` is written via a follow-up `edit_run`. + - The explicit `EvaluationRunFlags(is_queue=False)` the service passes on create is consumed by `_make_run_flags`'s explicit-update merge and then reconciled, so the persisted value is correct. + - End-state: human-evaluator simple queues do reach `is_queue=True`; auto-only "queues" intentionally do not, per design (`unify-evals-extension-synthesis.md:174-181`). + - The layering question — that `is_queue` is service-only and the DAO does not enforce it — is split out as UEL-020. + +### [CLOSED] UEL-007: `EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS` ships as `False` for local-dev UX + +- ID: `UEL-007` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `high` +- Status: `wontfix` +- Category: `Consistency` +- Summary: The global default-queue policy toggle is a Python module-level constant (`False`) inside `service.py`, not an environment variable through `oss/src/utils/env.py`. +- Files: + - `api/oss/src/core/evaluations/service.py` +- Resolution: + - Wontfix per user decision: the constant is intentionally shipped as `False` so local development exercises the human-evaluator-conditional default-queue UX path. The `env` wiring (and the matching unit test) can be revisited when product flips the policy. + +### [CLOSED] UEL-004: Runnable batch length mismatches can silently drop planned cells + +- ID: `UEL-004` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: The shared source-slice loop zipped planned cells with runner results and did not verify that the runner returned one execution per requested cell. +- Files: + - `sdks/python/agenta/sdk/evaluations/runtime/source_slice.py` + - `sdk/tests/pytest/unit/test_evaluations_runtime.py` +- Resolution: + - Fixed by making `process_evaluation_source_slice` treat runner result-count mismatches as explicit scenario errors. + - Missing trailing planned cells are now logged as failed result cells with a contract-violation message instead of disappearing from persistence. + - Added focused SDK unit coverage for a two-repeat auto evaluator batch where the runner returns only one execution. +- Sources: + - The over-return direction is now tracked separately as UEL-018. + +### [CLOSED] UEL-005: Trace-backed queue slices do not load trace context before evaluator execution + +- ID: `UEL-005` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: Direct trace batches entered the unified runtime as `ResolvedSourceItem(trace_id=...)` only, so auto evaluators could receive no source trace, inputs, outputs, or span link. +- Files: + - `api/oss/src/core/evaluations/runtime/sources.py` + - `api/oss/src/core/evaluations/tasks/source_slice.py` + - `api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py` +- Resolution: + - Fixed by hydrating direct trace source items through `tracing_service` before converting them to SDK source items. + - The resolver now populates `trace`, root `span_id`, `inputs`, and `outputs` from `ag.data` when the source trace is available. + - Added focused unit coverage for direct source resolution and for `process_evaluation_source_slice(trace_ids=[...])` forwarding hydrated source context to the SDK runtime. + +### [CLOSED] UEL-006: Source-trace links are hard-coded as `invocation` + +- ID: `UEL-006` +- Origin: `scan` +- Lens: `verification` +- Severity: `P2` +- Confidence: `medium` +- Status: `wontfix` +- Category: `Consistency` +- Summary: The SDK runtime emits upstream links under the key `invocation`. +- Files: + - `sdks/python/agenta/sdk/evaluations/runtime/source_slice.py` + - `api/oss/src/core/evaluations/runtime/adapters.py` +- Resolution: + - Wontfix per user decision: the invocation link key is the workflow contract, and the key for the invocation step should be `invocation`. + +### [CLOSED] UEL-003: Dict-revision regression test asserts fields that the request model drops + +- ID: `UEL-003` +- Origin: `mixed` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Testing` +- Summary: The staged unit test for dict-shaped evaluator revisions fails because it asserts `workflow_request.interface` and `workflow_request.configuration`, but the active `WorkflowServiceRequest` alias is `WorkflowInvokeRequest`, whose declared payload surface is `data`. +- Resolution: + - Fixed by updating the regression test to assert preserved evaluator metadata through `workflow_request.data.revision["data"]` and `workflow_request.data.parameters`, matching the current SDK request model. + +### [CLOSED] UEL-001: Backend evaluator runner receives dumped revisions but reads them like DTOs + +- ID: `UEL-001` +- Origin: `scan` +- Lens: `verification` +- Severity: `P1` +- Confidence: `high` +- Status: `fixed` +- Category: `Correctness` +- Summary: Backend auto-annotation execution can invoke evaluators with an empty `interface` and `configuration` because the shared runtime dumps revisions to dictionaries before handing them to `BackendEvaluatorRunner`. +- Resolution: + - Fixed by making `BackendEvaluatorRunner` read revision, nested `data`, and `flags` from both dict-shaped and DTO-shaped objects. + - Added a focused unit case for dict-shaped evaluator revisions in `api/oss/tests/pytest/unit/evaluations/test_runtime_topology_planner.py`. + +### [CLOSED] UEL-002: Startup instrumentation uses raw prints in the FastAPI module + +- ID: `UEL-002` +- Origin: `scan` +- Lens: `verification` +- Severity: `P3` +- Confidence: `high` +- Status: `wontfix` +- Category: `Compatibility` +- Summary: `api/entrypoints/routers.py` now emits startup timing with top-level `print()` calls during module import. +- Resolution: + - Wontfix per user decision. diff --git a/docs/designs/unified-eval-loops/gap.md b/docs/designs/unified-eval-loops/gap.md new file mode 100644 index 0000000000..1e67168470 --- /dev/null +++ b/docs/designs/unified-eval-loops/gap.md @@ -0,0 +1,404 @@ +# Gap Analysis + +## Summary + +The current system has many pieces of a unified evaluation model, but they are split across setup surfaces, worker loops, SDK code, queue code, and frontend assumptions. + +The largest gaps are: + +- no first-class planner that turns run graph + sources + flags into tensor cells +- source resolution exists in several paths but not behind one resolver interface +- repeat-aware execution exists in current backend loops but not behind one execution planner +- pending/manual lifecycle exists in key loops but is still duplicated and topology-specific +- no slice-aware `process` operation +- no single slice-shaped operation boundary across process/probe/populate/prune +- source-family classification and simple-queue eligibility are still entangled through `is_queue` +- destructive step removal and archival step lifecycle are not yet separated + +## Already Implemented + +Current code already includes several capabilities that older design docs listed as missing or speculative: + +- `EvaluationRunFlags.is_cached` +- `EvaluationRunFlags.is_split` +- `EvaluationRunFlags.is_queue` +- `EvaluationRunData.repeats` +- `EvaluationResult.repeat_idx` +- `EvaluationResultQuery.repeat_idx` / `repeat_idxs` +- repeat helpers: `build_repeat_indices`, `required_traces_for_step`, `effective_is_split` +- cache helpers: `make_hash`, `fetch_traces_by_hash`, `select_traces_for_reuse`, `plan_missing_traces` +- source-aware queue creation from query/testset-backed sources +- source-backed queue dispatch to concrete trace/testcase batches +- human/custom evaluator pending behavior in live query and batch item paths +- repeat-aware input/evaluator result creation in live query +- repeat-aware input/application/evaluator result creation in batch testset +- repeat-aware input/application result creation in batch inference / batch invocation +- repeat-aware source/evaluator result creation in batch trace/testcase items + +## Setup Gaps + +Current setup is fragmented: + +- auto testset evaluation setup builds one specific graph shape +- human evaluation setup builds a related but separate testset shape +- live query setup has separate query semantics +- queue setup accepts direct trace/testcase IDs but not source revisions +- SDK/local setup has its own assumptions + +Still missing or incomplete: + +- canonical graph-oriented create request +- shared validation for input source combinations +- one canonical setup request model used by all wrappers +- wrapper-to-canonical translation for every existing setup API +- one place to enforce step origin semantics +- annotation queue convenience APIs that hide backing run/scenario/result setup while using the same canonical setup path + +## Source Resolution Gaps + +There is no shared abstraction for resolving source descriptors into concrete scenario items, even though source resolution now exists in several code paths. + +Resolver behavior that exists but should be extracted: + +- query revision -> trace refs for live windows +- query revision -> trace refs for source-backed queues +- testset revision -> testcase refs for source-backed queues +- testset revision -> testcase payloads for batch testset/invocation +- direct trace IDs -> trace refs +- direct testcase IDs -> testcase refs + +Current consequences: + +- scenario creation is repeated in each loop +- each loop owns part of source resolution itself +- live and batch query semantics are harder to compare +- unsupported mixed-source cases fail implicitly rather than through clear validation + + +## Source-Family Flag Gaps + +The current runtime still overloads `is_queue` in places where the concern is source family or queue-style ingestion. + +Missing from the target model: + +- explicit inferred `has_traces` +- explicit inferred `has_testcases` +- one place to prevent mixed source families using the source-family flags +- one topology contract that does not need synthetic step-name inspection to distinguish direct traces/testcases from query/testset sources + +## Default Queue Integration Gaps + +The queue layer should be a human-work view over the tensor, but the current runtime/docs still blur several concerns. + +Missing from the target model: + +- default queue as the canonical persisted view over active human work +- `queue.flags.is_default` +- queue lifecycle semantics that can drive simple-queue eligibility +- redefined persisted `run.flags.is_queue` as “active default queue + active human work” +- explicit separation between queue view semantics and source-family classification + +## Step Lifecycle Gaps + +The current mutation model still leans toward: + +```text +remove_step -> prune tensor cells +``` + +That is incomplete if product semantics require evaluator/step archival and retention of historical results. + +Needs explicit decision: + +- whether ordinary evaluator removal is archival/deactivation rather than destructive deletion +- whether active versus archived step state belongs in the graph model +- whether `process` defaults to active steps only +- whether queue eligibility is based on active human steps only +- when hard remove/prune is appropriate + +## Planner Gaps + +The system lacks an execution planner that can materialize these concepts once: + +- scenario cells +- input result cells +- auto executable cells +- human/custom pending cells +- repeat slots +- cache reuse plans +- upstream bindings between steps + +Current loops encode planning inline. This makes it difficult to support new combinations or change semantics consistently. + +- multiple input steps with consistent result slots +- repeat fan-out at different graph boundaries +- partial retries by tensor slice + +## Execution Gaps + +Current execution was specialized: + +- SDK preview evaluation had its own nested loop +- backend legacy batch testset had another loop +- backend live query had another loop +- queue batch evaluation had another loop + +Current backend implementation direction: + +- live query, batch query, direct trace queues, direct testcase queues, batch inference, and testset -> application -> evaluator resolve source items and call one backend source-slice processor +- batch inference is the application-only testset application graph shape +- API-internal task handlers have been collapsed to run and slice processors +- trace/testcase batch task helpers are no longer needed because the slice processor can call the source-slice processor directly +- specialized helper names may remain as wrappers while web/API compatibility is preserved + +Current SDK implementation direction: + +- SDK preview/local evaluation now routes through SDK-owned `process_evaluation_source_slice` +- SDK runner, result logging, trace loading, and metrics work are adapters around the shared SDK runtime contract +- backend execution now delegates to the SDK processor through backend-specific scenario, result, cache, status, trace, and workflow adapters + +Still missing: + +- unified `process(run, slice)` role exposed as a public API or service operation +- topological execution over planned cells +- idempotent probe-before-write behavior +- consistent error-as-result behavior +- shared metrics refresh policy after processing +- clear separation between execution and persistence adapters +- public API/service operation shape for invoking the SDK-owned source-slice processor by tensor slice + +## Runnable Execution Gaps + +The current worker loops still call step-specific invocation helpers directly. + +Known debt: + +- application execution still uses legacy batch invocation helper paths +- evaluator execution assembles workflow invocation requests separately +- cache lookup, trace validation, link/reference construction, and error-to-result conversion are repeated around those calls +- there is no single runnable-step executor that can handle application and evaluator steps through the same contract + +Needed: + +- `RunnableStepExecutor` interface for any auto runnable step +- application-step adapter that can initially wrap the current application invocation path +- evaluator-step adapter that can initially wrap workflow invocation +- shared request/context builder for references, links, inputs, trace, outputs, and parameters +- shared trace validation and result normalization +- migration path to deprecate legacy LLM app batch helper functions after parity is proven + +This should be treated as part of unification, not as a later cleanup. Otherwise the new loop would only centralize iteration while preserving the most brittle execution boundary. + +## Tensor Operation Gaps + +The intended tensor identity exists in storage and query models, but the operation model is incomplete. + +Missing or partial: + +- `TensorSlice` model across backend, SDK, and frontend +- slice-aware `probe` +- slice-aware `populate` +- slice-aware `prune` +- slice-aware `process` +- partial retry/fill-missing workflows +- repeat slot materialization as a shared planner primitive + +Existing APIs are mostly per-entity or full-run oriented. + +## Repeat And Fan-Out Gaps + +`repeat_idx` exists in result identity and current backend loops now expand it in the inspected paths. + +Current gaps: + +- repeat expansion is duplicated across loops +- queue repeats still also carry assignment semantics, so execution repeats and assignment lanes need an explicit shared contract +- `is_split` is enforced through helpers in some paths, but topology validation is still dispatch-specific +- no shared planner decides whether application or evaluator steps fan out + +Needed: + +- repeat-aware result-slot planner +- topology-specific fan-out validation +- deterministic repeat-slot binding for reused traces +- tests for full, partial, and zero cache hits under repeats + +## Cache Gaps + +Hash-based trace reuse is implemented in current backend worker paths, but not centralized. + +Still missing: + +- one shared cache-resolution stage used by every runnable step +- one explicit per-slot cache binding object +- parity tests proving all loops use the same cache rules +- a documented project-scoped cross-run reuse policy + +The current code uses `is_cached`; older docs that say `reuse_traces` should be treated as stale terminology unless an external compatibility need exists. + +## Origin Gaps + +`auto`, `human`, and `custom` origins exist in the current backend model, and human/custom pending behavior is present in several loops. + +Still missing or incomplete: + +- common pending/manual result lifecycle +- consistent frontend/backend origin naming +- external custom-populate contract for custom steps +- annotation queue progress/status semantics layered over evaluation results without duplicating task state + +Verify frontend/generated-client naming before changing UI code; backend type truth is `auto`. + +## Annotation Queue Layer Gaps + +Annotation Queue v2 identifies product/API gaps adjacent to unified loop execution: + +- convenience API for queue creation from traces and testsets +- annotator inbox/list view across queues +- per-item progress computed from evaluation results +- explicit export/write-back flow for testset-sourced annotation queues +- clear distinction between backing infrastructure status and consumer-facing task status +- UI that uses queue assignment instead of allowing annotators to annotate any scenario + +These should be built on top of the unified planner/source resolver/tensor result model, not as a separate runtime. + +## Graph Mutation Gaps + +Steps are stored in run data, but graph operations are not first-class enough. + +Missing: + +- `add_step` endpoint/service operation +- `remove_step` endpoint/service operation +- graph validation outside setup functions +- tensor pruning cascade when removing a step +- explicit immutable-reference policy in code paths +- UI/API affordances for managing steps after creation + +Without these, graph changes require specialized setup edits or recreation. + +## Flag Gaps + +Flags are consistently modeled in the current backend types, but old docs and possibly callers still use stale names. + +Current canonical backend flags include: + +- `is_live` +- `is_active` +- `is_cached` +- `is_split` +- `is_queue` +- `repeats` +- `is_closed` + +Compatibility names to reconcile: + +- `reuse_traces` vs `is_cached` +- `repeat_target` vs `is_split` +- `allow_decrease_repeats` if repeat count becomes mutable + +Still missing: + +- first-class constrained `set_flag` +- validation when flags conflict with topology +- end-to-end propagation through setup, run fetch, queue creation, SDK/local execution, and frontend state + +## Topology Gaps + +Supported topologies are implicit in dispatch logic. + +Missing: + +- explicit topology validation table in code +- structured error messages for unsupported combinations +- explicit rejection for not-planned shapes such as multiple application steps, mixed-source queues, and live testset runs +- future extension point for query -> application flows +- future extension point for testset -> evaluator flows + +Potentially useful future shapes: + +- `query -> application -> evaluator`, with query traces adapted as input data rather than application links +- `testset -> evaluator`, with an explicit evaluator testcase-only input contract + +Not planned for now: + +- multiple application steps in one worker-dispatched run +- mixed query/testset source families in one queue +- live testset evaluation + +The immediate goal should not be to support every theoretical graph. It should be to reject unsupported graphs through one planner, and make adding support localized. + +## API Gaps + +> The full operation surface and the implementation status of each op +> (done / partial / deferred) is catalogued in [`operations.md`](./operations.md). + +Missing or incomplete API surface: + +- graph-oriented create request +- `process(slice)` +- `probe(slice)` +- `prune(slice)` +- `populate(slice, results)` for bulk/slice writes +- `set_flag` +- response payloads that expose resolved source items and pending cells consistently + +Existing APIs should remain as compatibility wrappers while the canonical surface is introduced. + +## SDK Gaps + +The SDK should own the shared runtime contract. The preview loop can keep its +public setup API, but orchestration should move behind SDK runtime planning and +SDK-specific execution/persistence adapters. Backend workers should consume the +same SDK runtime models through backend-specific adapters. + +Missing: + +- remote API persistence adapter +- slice-aware processing +- probe-before-write +- cache parity with backend +- stable step key strategy aligned with backend graph steps +- removal of duplicate backend planner/topology logic once migration coverage is sufficient + +The desired state is not "SDK calls backend worker for everything." It is "SDK and backend share the same loop contract with different persistence/execution adapters." + +## Frontend Gaps + +Missing: + +- explicit graph builder/step management model +- TensorSlice UI concepts for retry, prune, and fill missing +- unified origin naming +- flag editing beyond current implicit flows +- display of pending human/custom cells across query, testset, and queue runs +- source-aware queue creation UI if that product path is enabled + +Frontend work can follow backend planner/API stabilization. + +## Testing Gaps + +Needed test coverage: + +- source resolver outputs for query, testset, trace IDs, testcase IDs +- topology validation success and failure cases +- repeat slot materialization for every supported topology +- `is_split=true` and `is_split=false` on testset -> application -> evaluator +- evaluator-only repeat fan-out for query and queue runs +- cache full hit, partial hit, and miss +- cross-run trace reuse +- human/custom pending cells in query-backed runs +- source-aware queues preserving query/testset revision references +- existing direct queue behavior remains unchanged +- SDK/backend parity for the same planned graph + +## Documentation Gaps + +Needed docs after implementation starts: + +- canonical source matrix +- topology validation matrix +- flag semantics and compatibility names +- manual/custom origin lifecycle +- cache and repeat behavior +- migration guide from specialized setup APIs to canonical graph creation diff --git a/docs/designs/eval-loops/iteration-patterns.md b/docs/designs/unified-eval-loops/legacy-iteration-patterns.md similarity index 97% rename from docs/designs/eval-loops/iteration-patterns.md rename to docs/designs/unified-eval-loops/legacy-iteration-patterns.md index c2991bf2ff..b6526a67f6 100644 --- a/docs/designs/eval-loops/iteration-patterns.md +++ b/docs/designs/unified-eval-loops/legacy-iteration-patterns.md @@ -1,5 +1,12 @@ # Evaluation Iteration Patterns +> **Status: Frozen legacy analysis (2026-02-16).** Moved here from the now-removed +> `docs/designs/eval-loops/`. The canonical unified design lives in +> [`proposal.md`](./proposal.md) and [`plan.md`](./plan.md); naming here (e.g. +> `repeat_target` enum, 8 `has_*` flags) predates and is superseded by those docs. +> Retained because the legacy loop-family nesting analysis below is not replicated +> elsewhere and is useful for assessing migration risk. + **Created:** 2026-02-16 **Purpose:** Document the iteration patterns used to execute evaluation graphs and populate evaluation tensors across API and SDK diff --git a/docs/designs/eval-loops/refactoring-analysis.md b/docs/designs/unified-eval-loops/legacy-refactoring-analysis.md similarity index 99% rename from docs/designs/eval-loops/refactoring-analysis.md rename to docs/designs/unified-eval-loops/legacy-refactoring-analysis.md index 8a53018076..c51e9d5a29 100644 --- a/docs/designs/eval-loops/refactoring-analysis.md +++ b/docs/designs/unified-eval-loops/legacy-refactoring-analysis.md @@ -1,10 +1,16 @@ # Evaluation System - Refactoring Analysis +> **Status: Frozen legacy analysis (2026-02-16).** Moved here from the now-removed +> `docs/designs/eval-loops/`. The canonical unified design lives in +> [`proposal.md`](./proposal.md) and [`plan.md`](./plan.md). Retained for the +> side-by-side loop comparison and the concrete "pure functions to extract" +> signatures, which are not replicated in the current design docs. + **Created:** 2026-02-16 **Purpose:** Detailed analysis of current code and concrete refactoring steps **Related:** -- [Current State - Iteration Patterns](./iteration-patterns.md) -- [Desired Architecture](./desired-architecture.md) +- [Current State - Iteration Patterns](./legacy-iteration-patterns.md) +- Desired Architecture — _removed; superseded by_ [`proposal.md`](./proposal.md) --- diff --git a/docs/designs/unified-eval-loops/operations.md b/docs/designs/unified-eval-loops/operations.md new file mode 100644 index 0000000000..bcf3d2cb30 --- /dev/null +++ b/docs/designs/unified-eval-loops/operations.md @@ -0,0 +1,85 @@ +# Evaluation Operation Surface + +## Purpose + +This document is the single catalogue of the first-class evaluation operations the +unified-eval-loops design intends to expose, and the implementation status of each. + +It exists so the explicit operations (`add_step`, `remove_step`, `add_scenario`, +`add_result`, `refresh_metrics`, …) are tracked in one place. Most are **deferred** +and will be implemented later; this doc records what is done, what is not, and where +each is specified. + +It does not redefine semantics — see the canonical docs: + +- Operation list and direction: [`proposal.md`](./proposal.md) §"Operation API Direction" (lines ~366-383) +- Gaps and deferred surface: [`gap.md`](./gap.md) §"API Gaps", §"SDK Gaps" +- Destructive removal lifecycle: [`step-removal-semantics.md`](./step-removal-semantics.md) + +## Model + +The graph defines the tensor shape; operations mutate either the **graph** +(`add_step` / `remove_step` …) or the **tensor** (`populate` / `prune` …). The two +op families stay symmetric: + +```text +graph: add_step / remove_step / add_scenario / remove_scenario +tensor: probe / populate / prune / process +run: refresh_metrics / set_flag +``` + +A key invariant (per `step-removal-semantics.md`): the **stored graph and stored +tensor have the same shape**. Adding a step adds a tensor column dimension; removing +a step prunes that column's cells. `create_run` is conceptually "edit from an empty +graph", so create and edit share one reconciliation path. + +## Status legend + +- **done** — implemented and reachable through the service/router (or runtime). +- **partial** — exists but does not yet meet the documented contract. +- **deferred** — specified here/in the proposal, not yet implemented. To be done later. + +## Operations + +### Graph operations + +| Operation | Status | Where / Tracking | +| --- | --- | --- | +| `add_step` | deferred (this branch) | No explicit endpoint. Today a step is added by including it in `data.steps` on `create_run`/`edit_run`; flags re-derive and the default queue reconciles. A first-class `add_step` op (with validation, conflict handling) lands later in this branch. proposal.md:370; gap.md:271. | +| `remove_step` (+ `prune`) | **done** (folded into edit) | Destructive removal is implemented via the shared reconcile path, not a dedicated endpoint. Omitting a step from `data.steps` on `edit_run` removes it from the graph and prunes its cells, input-only orphan scenarios, and stale metrics. See `EvaluationsService._reconcile_run` / `_prune_removed_steps` in `api/oss/src/core/evaluations/service.py`; semantics in `step-removal-semantics.md`; closed finding UEL-014. | +| `add_scenario` | deferred (this branch) | `create_scenario`/`create_scenarios` exist as CRUD, but a graph-aware `add_scenario` (resolving source bindings, planning cells) is not yet a first-class op; lands later in this branch. proposal.md:372. | +| `remove_scenario` | deferred (this branch) | `delete_scenario(s)` exist as CRUD; a cascade-aware `remove_scenario` (prune the scenario's cells + flush metrics) lands later in this branch. proposal.md:373. | + +### Tensor operations + +| Operation | Status | Where / Tracking | +| --- | --- | --- | +| `probe(slice)` | **done** | `TensorSliceOperations.probe` / `probe_summary` in `api/oss/src/core/evaluations/runtime/tensor.py`. | +| `populate(slice, results)` | **done** (in-process) | `TensorSliceOperations.populate`. A bulk/slice HTTP write surface is still listed as a gap (gap.md:339). | +| `add_result` | **done** (CRUD) | `create_result`/`create_results` on the service + `/evaluations/results/` routes. This is the low-level cell write that `populate` builds on. | +| `prune(slice)` | **done** | `TensorSliceOperations.prune`. Also driven by `remove_step` via `_prune_removed_steps`. | +| `process(slice)` | **done** | `TensorSliceOperations.process` delegates to an injected `SliceProcessor` (the adapter-free execution seam in `runtime/tensor.py`); the backend impl `BackendSliceProcessor` (`tasks/processor.py`) re-executes the runnable cells for the EXISTING scenarios a `TensorSlice` addresses — rebuilds each scenario's source binding from its stored input cell, re-hydrates trace/testcase context, plans from the run's current graph (so modified steps re-run), runs the cache-aware runners (hashed-trace reuse), populates, and refreshes metrics. With no processor wired it raises rather than silently refreshing metrics. Closed finding UEL-015. proposal.md:160-208. | + +### Run operations + +| Operation | Status | Where / Tracking | +| --- | --- | --- | +| `refresh_metrics(scope)` | **done** | `EvaluationsService.refresh_metrics` + `/evaluations/metrics/refresh`. Also invoked by the prune cascade for affected scenarios. | +| `set_flag` | deferred (this branch) | No first-class constrained `set_flag`. Flags are currently re-derived from the graph (`_make_run_flags`) and reconciled (`is_queue` via `_reconcile_default_queue`). A constrained setter lands later in this branch. proposal.md:379; gap.md:302, 340. | +| run start / stop / close / open | **done** | `create_run`/`close_run`/`open_run` etc. on the service + routes. | + +## What "implement later" means here + +The deferred operations above (`add_step`, `add_scenario`, `remove_scenario`, +`set_flag`, a slice-shaped `process`, and bulk `populate`) are planned for this +branch but not yet implemented — they will land in later commits on this branch. +When implemented, they should: + +- follow the AGENTS.md domain conventions (`apis/fastapi/evaluations/router.py` + + `core/evaluations/service.py`), with typed domain exceptions in + `core/evaluations/types.py`; +- reuse the shared reconcile path so graph mutations keep the graph/tensor invariant + and re-derive flags + default-queue eligibility consistently with create/edit; +- be slice-shaped where applicable (`TensorSlice`) so setup, retry, queue assignment, + manual annotation, live ticks, and SDK/local runs share one tensor contract + (proposal.md:381). diff --git a/docs/designs/unified-eval-loops/origin-execution-model.md b/docs/designs/unified-eval-loops/origin-execution-model.md new file mode 100644 index 0000000000..92acaac6cc --- /dev/null +++ b/docs/designs/unified-eval-loops/origin-execution-model.md @@ -0,0 +1,171 @@ +# Origin execution model: today (`human`/`auto`/`custom`) and the future (`web`/`api`/`sdk`/`custom`) + +Status: design / forward-looking. The "today" section documents shipped +behavior; the "future" section is a proposal, not yet implemented. + +## What `origin` means + +Every evaluation step (`input`, `invocation`, `annotation`) carries an +`origin`. `origin` answers exactly one question: **who is responsible for +executing this step?** It is not "who created the run", not "who started it", +not "who dispatched the job" — only who *runs the work in a given slice*. + +- Type (SDK): `agenta/sdk/models/evaluations.py` — `Origin = Literal["custom", "human", "auto"]` +- Type (API): `api/oss/src/core/evaluations/types.py` — same literal. + +The evaluation runtime (`EvaluationPlanner` + the slice processor) is shared: +the **same** code runs inside the backend worker and inside the SDK +`evaluate()` loop. So `origin` is the only thing that lets one body of code +decide "is this step mine to run, or someone else's?". Two hosts read the same +plan and each runs only its own steps. + +## Today: `human` / `auto` / `custom` + +| origin | Who executes the step | Who reads it | +| -------- | ---------------------------------------------- | ----------------------------------------- | +| `human` | A person, via the web frontend | Web only | +| `auto` | The runtime host (backend worker, or the SDK) | Backend worker; SDK when it is the host | +| `custom` | The SDK / an external client | The SDK runtime, **only** when it is that client | + +Read carefully: `auto` and `custom` are **not** symmetric. + +- `auto` is read by *whatever runtime is currently hosting the run* — the + backend worker when the backend runs it, the SDK runtime when `evaluate()` + runs it. "auto" = "the runtime should run this". +- `custom` means "an external client runs this." The only situation where + `custom` resolves to "run it here" is when the SDK `evaluate()` loop **is** + that external client — i.e. the evaluation was both created and executed in + the SDK via `aevaluate()`. In every other context (a `custom` step on a run + the web created, or one the backend picked up), `custom` means "not mine" and + the step is left for whoever the external client is. + +### Where this is enforced in code + +- **Planner** — `agenta/sdk/evaluations/runtime/planner.py`, + `EvaluationPlanner._runnable_cells`: + + ```python + manual_origins = {"human"} if execute_custom else {"human", "custom"} + is_manual_annotation = step.type == "annotation" and step.origin in manual_origins + # should_execute = not is_manual_annotation + ``` + + `execute_custom` is the context flag that says "I am the external client for + custom steps." It is threaded `aevaluate() -> process_evaluation_source_slice + -> EvaluationPlanner.plan/plan_bindings -> _runnable_cells`. + +- **SDK host** — `agenta/sdk/evaluations/preview/evaluate.py`: wires a local + evaluator runner for `origin != "human"` (so auto **and** custom), and calls + the processor with `execute_custom=True`. The SDK is the custom client. + +- **Backend host** — `api/oss/src/core/evaluations/tasks/processor.py`: wires + runners only for annotation steps with `origin not in {"human", "custom"}` + (auto only), and never sets `execute_custom` (defaults `False`). The backend + leaves both human and custom alone. + + Confirmed in worker logs: a `custom` annotation processed by the backend + resolves to `runner_keys=[]` and the slice completes with the step left + pending — the backend does not run it. + +### How the web labels runs (`custom` = "SDK") + +The web does not store an authoritative "kind" — it **derives** it from the +run's step origins (`web/oss/src/lib/evaluations/utils/evaluationKind.ts`, +`deriveEvaluationKind`), priority order: + +1. online (live / source-backed) +2. `human` — any annotation step with `origin="human"` +3. `custom` — any step with `origin="custom"` +4. `auto` — default + +So in the UI a run containing `custom` steps is shown as the "SDK"/custom kind. +This is *load-bearing*: changing local-callable SDK evaluators from `custom` to +`auto` would silently reclassify every SDK evaluation as a backend `auto` run in +the UI. That is why local-callable evaluators created by `evaluate()` keep +`origin="custom"`, even though the SDK is the one running them. + +### The tension this resolves + +`custom` is overloaded: it means both "the SDK ran this" (when `evaluate()` is +the host) and "an external client owns this" (everywhere else). The +`execute_custom` flag is what disambiguates the two at runtime without changing +the stored origin — so the web's `custom`→"SDK" classification stays intact +while the backend correctly refuses to run custom steps. + +## Future direction (proposal): `web` / `api` / `sdk` / `custom` + +The cleaner long-term model replaces the *role-by-actor* origins with +*role-by-executor* origins. `origin` would name the executor that owns the step: + +| origin | Who executes the step | +| -------- | ---------------------------------------------- | +| `web` | The web frontend (a person, in the browser) | +| `api` | The backend behind the API | +| `sdk` | An Agenta SDK runtime (Python today, others later) | +| `custom` | Anything else — external scripts, third-party code; **no one in the platform picks it up** | + +Each executor runs exactly the steps stamped with its own name; everyone else +treats the rest as no-ops. `custom` becomes a true "nobody here runs this" — +unlike today, where `custom` sometimes means "the SDK runs this." + +This is strictly about **who runs a step in a slice**, independent of who +dispatched the job, who started the run, or who created it. + +### Why this is cleaner — and the open problem it raises + +- It removes the `auto`/`custom` overload. `auto` today secretly means "the + current runtime host", which is ambiguous once there is more than one runtime. +- It removes the need for the `execute_custom` context flag: an `sdk` step is + run by the SDK, full stop; an `api` step by the backend. No "am I the client + for this?" question. + +The open problem (and why we did **not** adopt this now): **the SDK runtime is +unified with the backend runtime.** The same planner/processor runs in both. If +both backend and SDK are "the runtime", what distinguishes an `api` step from an +`sdk` step beyond a label? And once there is a TypeScript SDK — a *different* +codebase also running evaluations — is that `sdk` too, or does it need its own +origin? A second candidate model ("web vs. runtime", only two values) collapses +under exactly this: it cannot tell a backend-run step from an SDK-run step, +because they share the runtime. The four-value `web/api/sdk/custom` model is the +one that survives multiple SDKs, at the cost of every executor having to know +its own identity. + +### Implications + +**Schema.** `origin` is currently `Literal["custom", "human", "auto"]` in both +`sdk/models/evaluations.py` and `core/evaluations/types.py`, stored inside the +run's `data.steps[].origin` (a `json` column, not `jsonb`). Moving to +`web/api/sdk/custom` is a value-domain change, not a column change — no DDL, but +every producer and reader of `origin` must agree on the new vocabulary +simultaneously, which is the hard part. + +**Data migration.** Existing rows carry `human`/`auto`/`custom`. A migration +would remap stored step origins: + +- `human` → `web` +- `auto` → `api` (the backend was the implied runtime host for stored auto runs) +- `custom` → split: SDK-run customs → `sdk`; everything else → `custom`. + This split is the lossy one — historically `custom` did not record *which* + external client ran it. A backfill can only infer "this was an SDK run" from + surrounding signal (e.g. the run was created via the SDK upsert path / has SDK + meta), and must fall back to `custom` when it cannot prove `sdk`. + +**Backward compatibility.** Run during the transition: + +- Keep accepting the legacy literals on write; normalize to the new domain at + the boundary (an adapter mapping `human/auto/custom` → `web/api/sdk/custom`), + the same shape as the existing legacy adapters in the API (cf. the + `__dedup_id__`/`testcase_dedup_id` normalization). +- The web's `deriveEvaluationKind` already special-cases `custom`; it would gain + `sdk` and treat `web`/`api` as the new human/auto. Keep reading the legacy + values for old runs. +- Dual-read for at least one deprecation window: planners must treat `api` and + legacy `auto` identically on the backend, `sdk` and "legacy custom that the + SDK runs" identically in the SDK, until all stored runs are migrated. + +**Net.** The future model is cleaner conceptually but requires (a) every +executor to self-identify, (b) a lossy `custom`→`sdk` backfill, and (c) a +dual-read compatibility window. The shipped `human/auto/custom` + `execute_custom` +model is the pragmatic interim: it fixes the actual bug (the SDK not running its +own custom evaluators) without a vocabulary migration, and keeps the web's +existing `custom`→"SDK" classification working unchanged. diff --git a/docs/designs/unified-eval-loops/plan.md b/docs/designs/unified-eval-loops/plan.md new file mode 100644 index 0000000000..2ccb00ab5e --- /dev/null +++ b/docs/designs/unified-eval-loops/plan.md @@ -0,0 +1,199 @@ +# Plan + +## Goal + +Move from multiple specialized setup and execution functions to unified evaluation loop(s) built around: + +- source resolvers +- run graph steps +- tensor slices +- repeat-aware planning +- origin-aware execution +- runnable-step execution +- adapter-based persistence + +This plan describes required work, not phases or timeline. + +## Baseline Inventory + +1. Lock down the current behavior with code references and tests before changing semantics. +2. Treat these as implemented baseline behavior: + - `is_cached` + - `is_split` + - current `is_queue` + - `repeats` + - repeat-indexed result creation in current backend workers + - hash-based cache helpers and worker integration + - source-aware queue creation and source batch dispatch + - human/custom pending behavior in query/queue-related paths +3. Maintain a parity matrix from current tests: + - `test_cache_split_utils.py` + - `test_query_eval_loops.py` + - `test_run_flags.py` + - queue assignment and queue DAO tests + - acceptance tests for evaluation steps/runs/queues/results + +## Vocabulary And Flags + +1. Use current backend names as canonical: + - `is_cached` + - `is_split` + - `repeats` +2. Normalize origin values: + - `auto` + - `human` + - `custom` +3. Add explicit source-family flags: + - `has_queries` + - `has_testsets` + - `has_traces` + - `has_testcases` +4. Separate source-family classification from simple-queue eligibility. +5. Redefine target `run.flags.is_queue` as: + +```text +active default queue exists + active human evaluator work exists +``` + +6. Document topology validation rules in one table used by implementation and tests. + +## Shared Runtime Models + +Introduce or consolidate shared internal models: + +1. `InputSourceSpec` +2. `ResolvedSourceItem` +3. `ScenarioBinding` +4. `EvaluationStep` +5. `TensorSlice` +6. `PlannedCell` +7. `ExecutionPlan` +8. `ProcessSummary` + +The common runtime contract should live in the SDK so SDK-local evaluations and API workers share the same planner/topology/result-cell model. Backend code should keep API-specific source, DAO, workflow-service, and worker-dispatch adapters in backend modules. + +## Source Resolution + +Create resolver interfaces that cover: + +1. query revision -> trace refs for live windows +2. query revision -> trace refs for source-backed queues +3. testset revision -> testcase refs for source-backed queues +4. testset revision -> testcase payloads for batch testset/invocation +5. direct trace IDs -> trace refs +6. direct testcase IDs -> testcase refs + +Resolver requirements: + +- preserve existing source behavior +- own live query windowing +- preserve original source references in input steps +- reject unsupported mixed-source combinations explicitly +- expose source-family flags consistently + +## Tensor Slice Operations + +Add or adapt backend service operations around existing CRUD: + +1. `probe(slice)` +2. `populate(slice, results)` +3. `prune(slice)` +4. `process(slice)` + +Requirements: + +- slice dimensions support all/none/explicit selections +- `probe` identifies missing, success, failure, and any cells +- `populate` writes by `scenario_id + step_key + repeat_idx` +- `prune` deletes by slice and refreshes affected metrics + +## Planner + +Implement planner logic that produces result slots before execution. + +Planner responsibilities: + +1. validate topology +2. order steps +3. materialize scenario bindings +4. create input cells +5. expand repeat slots +6. decide fan-out boundary +7. bind upstream context +8. mark `human` and `custom` cells pending +9. select `auto` cells for execution + +Planner requirements: + +- one planned cell exists for every required repeat slot +- unsupported topologies fail with structured validation errors +- human/custom steps are planned as pending rather than silently skipped + +## Cache Resolution + +Reuse the existing cache helpers: + +1. `make_hash(...)` +2. `fetch_traces_by_hash(...)` +3. `select_traces_for_reuse(...)` +4. `plan_missing_traces(...)` +5. per-slot trace binding + +Requirements: + +- cache lookup is skipped when `is_cached=false` +- full cache hit invokes nothing +- partial cache hit invokes only missing slots +- misses invoke all required slots +- reused and newly generated traces populate identical tensor cells + +## Runnable-Step Execution + +Add a runnable execution boundary for any auto step whose type maps to a runnable. + +Initial adapters: + +1. SDK workflow-runner protocols for application/evaluator execution +2. SDK/local adapters wrapping decorator/service endpoint execution +3. API adapters wrapping the current backend workflow invocation path +4. API application adapter wrapping the current legacy batch invocation path + +The interface should own: + +- request construction from step references and upstream bindings +- cache resolver integration +- invocation +- trace fetch/validation +- normalized `StepExecutionResult` + +## Queue Integration + +1. Treat default queues as persisted human-work views over the tensor, not orchestration. +2. Add `queue.flags.is_default` to identify the canonical queue. +3. Keep default queues open over scenarios, steps, and assignments. +4. Let source-family flags describe where scenarios come from. +5. Let `run.flags.is_queue` describe simple-queue eligibility. +6. Ensure queue eligibility depends on active human steps and active default queue lifecycle. + +## Mutation Semantics + +1. Decide whether ordinary evaluator removal is archival/deactivation rather than destructive deletion. +2. If history must remain visible, represent active versus archived step state in the graph model. +3. Make planner defaults operate on active steps. +4. Reserve hard remove/prune for explicit destructive cleanup. +5. Keep queue eligibility tied to active human steps. + +## Verification + +Add or preserve coverage for: + +1. topology classification +2. resolver behavior +3. repeat slot creation +4. cache reuse +5. human/custom pending behavior +6. query/testset/direct trace/direct testcase source families +7. source-family validation +8. tensor slice probe/populate/prune/process behavior +9. queue/default-queue integration semantics +10. active-versus-archived step behavior once chosen diff --git a/docs/designs/unified-eval-loops/proposal.md b/docs/designs/unified-eval-loops/proposal.md new file mode 100644 index 0000000000..ac5e2bcca1 --- /dev/null +++ b/docs/designs/unified-eval-loops/proposal.md @@ -0,0 +1,476 @@ +# Proposal + +## Goal + +Introduce unified evaluation loop(s) that avoid separate setup and execution functions for every evaluation shape while preserving the capabilities already implemented in the current backend: + +- input steps +- application and evaluator origins +- evaluation run flags +- input sources +- evaluation graph steps +- repeat and cache behavior through `repeats`, `is_cached`, and `is_split` +- live, batch, queue, and SDK/local execution contexts + +This proposal does not require every source to become the same thing. It requires every source to enter the same planning and tensor execution contract. + +The current code has already implemented several parts that older docs described as missing: + +- `EvaluationRunFlags.is_cached` +- `EvaluationRunFlags.is_split` +- `EvaluationRunFlags.is_queue` +- `EvaluationRunData.repeats` +- repeat helper functions in `evaluations/utils.py` +- hash/cache helper functions in `evaluations/utils.py` +- source-aware queue creation from query/testset-backed sources +- live and batch query human/custom pending behavior +- repeat-aware result creation in the inspected backend worker loops + +The proposal is therefore a unification/refactor proposal, not a first implementation of those behaviors. + +## Design Principle + +Separate source resolution, graph planning, execution, and tensor persistence. + +```text +setup request + -> source resolver + -> run graph + -> scenario materializer + -> execution planner + -> step executor + -> tensor writer + -> metrics refresh +``` + +Each current loop family becomes a configuration of this pipeline instead of a separate handwritten loop. + +## Canonical Concepts + +### Run Graph + +A run graph is a list of immutable step definitions: + +```python +class EvaluationStep: + key: str + type: Literal["input", "invocation", "annotation"] + origin: Literal["auto", "human", "custom"] + references: dict + inputs: list[StepInput] | None +``` + +Step references point to concrete revisions or direct-source descriptors. Editing a step means removing it and adding a new step. + +### Tensor Cell + +Every produced or pending result targets: + +```text +run_id + scenario_id + step_key + repeat_idx +``` + +All execution, retry, prune, cache binding, and manual annotation work should address this coordinate. + +### Tensor Slice + +Use one slice model for read, write, delete, and processing operations: + +```python +class TensorSlice: + scenarios: Literal["all", "none"] | list[UUID] + steps: Literal["all", "none"] | list[str] + repeats: Literal["all", "none"] | list[int] +``` + +The same slice shape should power: + +- `probe` +- `populate` +- `prune` +- `process` +- retry failed cells +- fill missing cells +- re-run a single evaluator +- materialize new repeat slots + +## Source Resolver Layer + +Input sources should be modeled as descriptors that resolve into concrete source items. + +| Descriptor | Resolver output | Scenario source | +|---|---|---| +| query revision | trace refs | queried traces | +| testset revision | testcase refs | testcases | +| direct trace source | trace refs | queued traces | +| direct testcase source | testcase refs | queued testcases | + +The resolver is responsible for source-specific rules: + +- live query windows +- batch query snapshots +- testset revision loading +- direct item validation +- source-aware queue expansion +- preserving original source references in input steps + +The executor should not care whether a trace came from live query, batch query, or a queue. It should receive concrete scenario bindings. + +## Annotation Queue Convenience Layer + +Annotation Queue v2 should be treated as a consumer-facing layer over the same unified evaluation infrastructure. + +Principles: + +- `EvaluationRun`, `EvaluationScenario`, `EvaluationResult`, and `EvaluationQueue` remain the backing entities. +- The annotation queue API hides run/scenario/result setup for trace and testset annotation use cases. +- Queue assignment remains based on `EvaluationQueue.data.user_ids`, optional `scenario_ids`, optional `step_keys`, and result `repeat_idx`. +- Queue creation from traces/testsets should translate into canonical source specs and graph steps, then use the same source resolver and planner as evaluation runs. +- Annotation submission can continue to create annotation traces and link them to evaluation results. + +Unified eval loops should provide the infrastructure contract for this layer. They should not replace the annotation queue convenience API. + +## Planner Layer + +The planner converts a graph and concrete scenarios into execution slots. + +```python +class PlannedCell: + scenario_id: UUID + step_key: str + repeat_idx: int + action: Literal["bind_input", "invoke", "pending", "skip"] + upstream: dict +``` + +Planner responsibilities: + +- validate topology +- derive step order +- materialize input cells +- decide repeat fan-out point +- compute required result slots +- bind upstream trace/testcase/application output context +- mark human/custom annotation cells as pending +- skip cells that are already successful when requested + +The planner is where topology-specific behavior belongs. + +## Execution Layer + +`process(slice)` executes planned `auto` cells only. + +```text +process(run, slice): + resolve concrete scenarios for input steps + plan cells for the requested slice + probe existing cells if skip-success is enabled + for each executable auto cell in dependency order: + resolve cache/reuse if enabled + invoke only missing work + populate result cells + create pending cells for human/custom work + refresh metrics for affected scope +``` + +The same executor can run in different contexts with different adapters: + +| Context | Adapter | +|---|---| +| backend worker | API source/DAO/workflow-service adapters | +| SDK/local | local decorator or remote service adapters | +| tests | in-memory adapter | +| frontend human annotation | direct `populate` adapter for submitted cells | + +The planner, topology classifier, and result-cell models should be SDK-owned so +SDK-local evaluation and backend workers use the same runtime contract. API code +should not fork the runtime; it should translate backend DTOs into SDK runtime +models and keep only backend-specific adapters beside the worker/service code. + +The backend implementation should have one scenario execution loop. Source +wrappers may still differ because live queries, query snapshots, direct queue +items, and testset rows resolve differently, but after resolution they should +all call one source-slice processor. That processor owns input cell creation, +application invocation, evaluator invocation, pending manual/custom cells, +cache resolution, metrics refresh, and run/scenario status updates. Batch +inference is therefore just the application-only graph shape, not a separate +loop. Task-level trace/testcase batch helpers are unnecessary once the slice +worker calls the source-slice processor directly; service/API wrapper methods +can remain for compatibility. + +The SDK should own the generic source-slice contract. SDK preview/local +execution can run through SDK-owned `process_evaluation_source_slice` now using +local decorator runners, SDK result logging, and SDK trace loading. The backend +processor should use that same contract with backend adapters for scenario +creation, result persistence, cache reuse, status updates, trace loading, and +workflow service execution. + +## Runnable Step Executor + +The unified loop should introduce a new runnable-step execution boundary rather than directly preserving the current helper calls inside each loop. + +Current application execution is still routed through legacy helper paths such as batch LLM app invocation. Those paths have accumulated patches and are not the right long-term abstraction. Evaluator execution is also assembled separately even though it has the same core shape: prepare a runnable request, bind upstream context, invoke or reuse a trace, validate the trace, and produce a result cell. + +Proposed contract: + +```python +class WorkflowRunner: + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + ... +``` + +`WorkflowExecutionResult` should be independent of whether the runnable was an application or evaluator: + +```python +class WorkflowExecutionResult: + status: EvaluationStatus + trace_id: str | None + span_id: str | None + hash_id: str | None + error: dict | None + outputs: dict | None +``` + +Responsibilities: + +- build the service request from step references and upstream bindings +- apply cache lookup/reuse when enabled +- invoke missing work +- fetch and validate traces where required +- normalize failures into result payloads +- return enough context for downstream steps + +The first implementation can wrap existing application and workflow services. +The SDK should expose the runner protocol and shared models. The API should +provide backend workflow-service and legacy batch-invocation adapters. The SDK +should provide local decorator and remote service adapters. This makes those +wrappers replaceable so the legacy batch helpers can be deprecated without +changing the planner, tensor operations, or queue APIs. + +## Origin Semantics + +`origin` controls who can populate a step: + +| Origin | Planner behavior | Executor behavior | +|---|---|---| +| `auto` | create executable cells | invoke and populate | +| `human` | create pending cells | do not invoke | +| `custom` | create pending cells or external-awaiting cells | do not invoke | + +This gives query-backed, testset-backed, and queue-backed runs the same pending/manual semantics. Current behavior where query-backed runs lack human/custom pending branches should become a topology limitation only until the planner supports those cells. + +## Flag Model + +Use the current backend flag set as canonical. Bridge older design names only where old clients or docs still mention them. + +| Canonical flag | Legacy design name | Purpose | +|---|---|---| +| `is_live` | `is_live` | periodic windowed source resolution | +| `is_active` | `is_active` | pause/resume live processing | +| `is_cached` | `reuse_traces` in older docs | enable hash-based trace reuse | +| `is_split` | `repeat_target` in older docs | select fan-out location where meaningful | +| `repeats` | `repeats` | number of repeat slots | +| `is_closed` | `is_closed` | block structural and tensor mutations | + +Recommended compatibility mapping: + +```text +repeat_target = "application" <=> is_split = true +repeat_target = "evaluator" <=> is_split = false +reuse_traces = true <=> is_cached = true +``` + +Do not introduce `reuse_traces` or `repeat_target` as new model fields unless there is a compatibility requirement. The current code already uses `is_cached` and `is_split`. + +## Topology Validation + +The unified planner should support every valid topology explicitly and reject invalid combinations before execution. + +| Topology | Valid? | Notes | +|---|---:|---| +| query -> evaluator | yes | live or batch; evaluator fan-out only | +| query -> human/custom evaluator | yes target | creates pending cells | +| query -> application -> evaluator | potentially useful | Requires query trace to application input adapter. Do not pass query traces as application `links`; that can make application traces look like annotations rather than invocations. | +| testset -> application -> evaluator | yes | app or evaluator fan-out | +| testset -> application | yes | Batch inference / batch invocation. Application fan-out only; no evaluator execution or evaluator metrics. | +| testset -> evaluator | potentially useful | Requires evaluator testcase-only contract. | +| direct trace -> evaluator | yes | queue trace shape | +| direct testcase -> evaluator | yes | queue testcase shape | +| mixed query + testset in one queue | not planned | Keep queues single-source-family for now. | +| multiple application steps | not planned | Use separate evaluations for A/B comparison for the foreseeable future. | +| live testset | not planned | Static sources do not make sense for live periodic evaluation. | + +The key shift is that unsupported shapes should fail through planner validation, not because there is no matching handwritten function. Potentially useful shapes should be explicitly modeled when implemented; not-planned shapes should stay rejected with clear errors. + +## Repeat Semantics + +Repeats are always represented as `repeat_idx` result slots. Fan-out determines which runnable step produces multiple traces. + +Rules: + +- query/queue trace/testcase evaluator-only runs fan out at evaluator steps. +- application-only runs, also called batch inference or batch invocation, fan out at application steps. +- testset -> application -> evaluator runs use `is_split`: + - `true`: application produces one trace per repeat, evaluators consume matching repeat traces + - `false`: application produces one trace, evaluators produce one trace per repeat +- if a topology has no application/evaluator boundary, `is_split` is ignored or rejected according to validation policy. + +## Cache Semantics + +Cache reuse is explicit through `is_cached`. + +At each runnable step: + +1. Compute the expected hash from step references and upstream links. +2. Fetch all candidate traces by hash. +3. Select deterministic traces for requested repeat slots. +4. Invoke missing slots only. +5. Populate the same tensor cells whether the trace was reused or newly generated. + +Cache lookup is step-local and already exists in the current backend loops inspected: + +- application steps reuse application traces +- evaluator steps reuse evaluator traces + +Cross-run reuse is structurally supported by project-scoped trace lookup by hash. The unified planner should reuse the existing helper functions instead of reimplementing this per loop. + +The cache resolver should sit inside or immediately beside the runnable-step executor so applications and evaluators use the same reuse semantics. + +## Setup API Direction + +Consolidate specialized setup functions behind one graph-oriented creation path plus convenience wrappers. + +Canonical create request: + +```python +class EvaluationCreate: + inputs: list[InputSourceSpec] + steps: list[ExecutableStepSpec] + flags: EvaluationFlags +``` + +Convenience wrappers may remain: + +- create auto testset evaluation +- create live query evaluation +- create annotation queue from traces +- create annotation queue from testcases +- create source-aware queue from query/testset +- create Annotation Queue v2 convenience flows from traces or testsets + +Several wrappers already use `_make_evaluation_run_data()`. The next step is to make that builder and its validations explicit enough that wrappers only translate into canonical graph/source specs and do not own separate graph semantics. + +## Operation API Direction + +Expose or normalize first-class operations: + +- `add_step` +- `remove_step` +- `add_scenario` +- `remove_scenario` +- `probe(slice)` +- `populate(slice, results)` +- `prune(slice)` +- `process(slice)` +- `refresh_metrics(scope)` +- `set_flag` + +This lets setup, retry, queue assignment, manual annotation, live ticks, and SDK/local runs share the same tensor contract. + +Some CRUD operations already exist in service/router form (`create_results`, `query_results`, `delete_results`, `refresh_metrics`, run start/stop, queue creation). The missing piece is a slice-shaped operation boundary and a shared `process(slice)` planner/executor. + +## Migration Strategy + +Do not rewrite all loops at once. Introduce the unified planner and adapters beside existing loops, then move topologies one at a time while preserving current behavior. + +Recommended order: + +1. Inventory current behavior and lock it with parity tests. +2. Define shared models: source descriptor, scenario binding, tensor slice, planned cell. +3. Extract current source resolution behavior into resolver interfaces. +4. Extract current repeat/cache planning into shared planner functions. +5. Introduce a runnable-step executor that initially wraps existing invocation services. +6. Route one simple topology through the planner, likely batch query or queue traces. +7. Move pending human/custom planning into the shared planner. +8. Move batch testset after repeat, cache, and runnable-executor parity are proven. +9. Move live query once windowed source resolution and idempotency are stable. +10. Collapse API-internal worker handlers to run/slice processors. +11. Share one backend source-slice processor across live query, batch query, queue slices, batch inference, and testset application evaluation. +12. Route SDK preview/local evaluation through SDK-owned source-slice processing with SDK-specific adapters. +13. Move backend execution onto the SDK source-slice contract through backend adapters that preserve current cache/result/status behavior. +14. Treat batch inference as the application-only shape of the testset application graph. +15. Retire specialized setup/execution branches after parity tests pass, leaving compatibility wrappers around the canonical processor. + +## Success Criteria + +The design succeeds when adding a new valid combination requires: + +- adding or extending a source resolver if the source is new +- adding or extending a step executor if the runnable is new +- adding planner validation if the topology is new + +It should not require creating a new end-to-end setup function and a new end-to-end execution loop. + +## Default Queue Integration + +Unified eval loops should treat default queues as a consumer-facing layer over the tensor, not as part of orchestration. + +```text +default queue = canonical persisted human-work view over the run tensor +``` + +A default queue is open over the run by default: + +```text +scenario_ids = None +step_keys = None +user_ids = None +``` + +The runtime should continue to own: + +- source resolution +- topology validation +- planning +- auto-step execution +- tensor persistence + +The queue layer should own: + +- human-work visibility +- assignment +- queue lifecycle +- simple queue interaction + +### Run flags + +The unified model should distinguish source family from queue eligibility. + +Source-family flags: + +- `has_queries` +- `has_testsets` +- `has_traces` +- `has_testcases` + +Queue eligibility flag: + +```text +run.flags.is_queue = active default queue exists + active human evaluator work exists +``` + +That keeps query-backed, testset-backed, trace-backed, and testcase-backed runs expressible through the same planner while allowing any human-bearing run with an active default queue to participate in the simple queue surface. + +### Step lifecycle + +The mutation model should distinguish lifecycle changes from destructive cleanup. + +If the product needs historical evaluator results to remain visible, then: + +- archive/deactivate should be the normal operation for steps that stop participating in future work +- remove/prune should remain available only for explicit destructive cleanup +- planner defaults should target active steps +- default queue eligibility should depend on active human steps diff --git a/docs/designs/unified-eval-loops/research.md b/docs/designs/unified-eval-loops/research.md new file mode 100644 index 0000000000..44e834b97c --- /dev/null +++ b/docs/designs/unified-eval-loops/research.md @@ -0,0 +1,344 @@ +# Research + +## Scope + +This document consolidates the existing evaluation-loop design notes and the +current implementation state from: + +- `application/docs/designs/eval-loops` +- `application/docs/designs/loops` +- `application/docs/designs/query-eval-loops` +- `application/docs/design/annotation-queue-v2` +- `application/api/oss/src/core/evaluations/types.py` +- `application/api/oss/src/core/evaluations/utils.py` +- `application/api/oss/src/core/evaluations/service.py` +- `application/api/oss/src/core/evaluations/tasks/source_slice.py` +- `application/api/oss/src/core/evaluations/tasks/query.py` +- `application/api/oss/tests/pytest/unit/evaluations/*` + +The goal is to identify the common execution model behind the current loop families and the places where setup and execution still diverge. + +## Current Loop Families + +The runtime historically had several explicit evaluation loop families: + +| Loop family | Source unit | Input steps | Application steps | Evaluator steps | Scenario represents | +|---|---|---:|---:|---:|---| +| Live query | trace returned by query | `1..N` query | `0` | `1..N` | queried trace | +| Batch query | trace returned by query | `1..N` query | `0` | `1..N` | queried trace | +| Batch testset | testcase | `1..N` testset | `1` | `1..N` | testcase | +| Batch inference / batch invocation | testcase | `1..N` testset | `1` | `0` | testcase | +| Queue traces | trace ID | `1` synthetic source | `0` | `1..N` | provided trace | +| Queue testcases | testcase ID | `1` synthetic source | `0` | `1..N` | provided testcase | +| SDK/local | runner-defined | run-defined | run-defined | run-defined | runner-defined | + +## Related Design: Annotation Queue v2 + +`application/docs/design/annotation-queue-v2` matters because annotation queues are one of the main consumers of unified evaluation loop infrastructure. + +The durable direction from that design is: + +- keep `EvaluationRun`, `EvaluationScenario`, `EvaluationResult`, and `EvaluationQueue` as backing infrastructure +- expose a simpler annotation queue API/UI that hides backing run/scenario/result setup +- do not introduce a separate annotation task runtime unless the existing entities prove insufficient +- map assignment/repeats through `EvaluationQueue.data.user_ids` and `EvaluationResult.repeat_idx` +- support trace and testset annotation as consumer-facing queue creation flows + +Some current-state claims in that older design are stale. In current code, source-aware queue creation and human/custom pending behavior are already partially implemented. The useful takeaway is the layering principle: annotation queues are a convenience layer over evaluation entities, not a separate execution model. + +The current worker dispatch only supports a subset of possible graphs: + +- `query(1..N) -> evaluator(1..N)` +- `testset(1..N) -> application(1) -> evaluator(1..N)` +- `testset(1..N) -> application(1)` +- `queue source(1) -> evaluator(1..N)` + +Unsupported by the current simple-evaluation worker dispatch, with product priority: + +| Unsupported shape | Priority | Notes | +|---|---|---| +| multiple application steps in one worker-dispatched run | not planned | A/B comparison can remain separate evaluations for the foreseeable future. | +| query inputs followed by application steps | potentially useful | The planner must treat query traces as input data, not as invocation links for the application step. If query trace IDs are placed in application `links`, the resulting application traces may be classified as annotations rather than invocations. | +| testset inputs followed directly by evaluator steps in non-queue mode | potentially useful | Useful for evaluators that can score testcase payloads without first invoking an application. Requires an explicit evaluator input contract. | +| mixed query and testset source families in one queue | not planned | Keep queues single-source-family for now. | +| live testset evaluation | not planned | Static testsets do not make sense as periodic live sources. | + +## Shared Runtime Model + +All loop families can be described with the same conceptual entities: + +- input source descriptors +- materialized scenarios +- executable steps +- result cells +- repeat slots +- execution flags + +The intended result identity is already visible in the persistence model: + +```text +scenario_id + step_key + repeat_idx +``` + +That identity is the core tensor coordinate. A unified loop should treat every execution as filling, probing, or pruning cells in this coordinate system. + +The current code already models this directly: + +- `EvaluationResult` has `scenario_id`, `step_key`, and `repeat_idx`. +- `EvaluationResultQuery` can filter by `scenario_ids`, `step_keys`, and `repeat_idxs`. +- worker loops now create repeat-indexed result rows in the main batch, queue, and live paths. + +## Steps + +Current run data already carries step definitions with: + +- `key` +- `type` +- `origin` +- `references` +- optional input links + +The shared step types are: + +| Step type | Meaning | Typical references | +|---|---|---| +| `input` | Source materialization | query revision, testset revision, direct trace/testcase source | +| `invocation` | Application/workflow execution | application revision, variant, workflow revision | +| `annotation` | Evaluator/judge/manual annotation | evaluator revision, annotation task | + +The shared origins are: + +| Origin | Populated by | Execution behavior | +|---|---|---| +| `auto` | Backend/SDK runner | invoked by `process` | +| `human` | UI/user annotation | runner creates or leaves pending work | +| `custom` | External/programmatic actor | runner creates or leaves pending work | + +Backend types use `auto`, `human`, and `custom`. Any frontend or generated-client naming drift should be treated as compatibility debt and verified before changing. + +## Input Sources + +The current code distinguishes source descriptors from concrete execution items. + +| Source descriptor | Concrete item | Current usage | +|---|---|---| +| query revision | trace | live query, batch query | +| testset revision | testcase | batch testset, batch inference / batch invocation | +| direct trace IDs | trace | queue traces | +| direct testcase IDs | testcase | queue testcases | + +Source-aware queue creation has been partially implemented. `SimpleQueuesService.create()` can accept query/testset-backed queue sources, builds run data through `_make_evaluation_run_data()`, preserves source revision references in input steps, and dispatches concrete trace/testcase batches through `_dispatch_source_batches()`. Direct trace/testcase queue additions remain supported. + +Annotation Queue v2 frames this as a consumer-facing convenience layer: users should be able to create annotation queues from traces or testsets without manually constructing the backing evaluation run, scenarios, results, and queue. + +## Scenario Semantics + +A scenario is a concrete source item inside a run. + +Depending on the source family, a scenario may represent: + +- a trace returned by a query +- a testcase from a testset revision +- a direct trace queue item +- a direct testcase queue item + +Live query scenarios additionally need temporal metadata such as timestamp and interval. Testset-backed online evaluation is intentionally unsupported because the same static testcases would be reprocessed every interval. + +## Application And Evaluator Boundaries + +Application steps produce application traces and outputs. Evaluator steps consume either: + +- an existing source trace from query/queue trace inputs +- an application trace/output from an invocation step +- testcase payload where the evaluator supports testcase-only input + +The current loop families differ mostly in which upstream object exists before evaluator execution. + +| Shape | Evaluator input | +|---|---| +| query -> evaluator | source trace | +| queue trace -> evaluator | source trace | +| testset -> application | no evaluator; output is application trace/result | +| testset -> application -> evaluator | application trace and outputs | +| queue testcase -> evaluator | testcase item | + +This difference is real and should be modeled as planning data, not hidden in separate handwritten loops. + +## Repeats And Fan-Out + +Older docs used two naming schemes for the same underlying concern: + +| Older eval-loop name | Current code name | Meaning | +|---|---|---| +| `repeat_target = "application"` | `is_split = true` | fan out at the application step | +| `repeat_target = "evaluator"` | `is_split = false` | fan out at evaluator steps | +| `reuse_traces` | `is_cached` | enable hash-based trace reuse | + +The current backend model uses `is_cached`, `is_split`, and `repeats`. `EvaluationRunFlags` contains `is_cached` and `is_split`; `EvaluationRunData.repeats` defaults to `1`. + +The worker loops now expand repeat slots in the core paths inspected: + +- batch testset creates input, invocation, and evaluator results per `repeat_idx` +- batch inference / batch invocation creates input and invocation results per `repeat_idx` +- batch trace/testcase queue items create input/source and evaluator results per `repeat_idx` +- live query creates query and evaluator results per `repeat_idx` + +The remaining issue is not absence of repeat support. It is that repeat planning is still duplicated inside specialized loops rather than centralized in one planner. + +Fan-out validity depends on topology: + +| Topology | Valid fan-out | +|---|---| +| query -> evaluator | evaluator only | +| queue source -> evaluator | evaluator only | +| testset -> application -> evaluator | application or evaluator | +| testset -> application | application only; this is batch inference / batch invocation | + +## Trace Reuse + +Hash-based trace reuse is explicit through `is_cached`. + +Reuse flow: + +1. Compute a stable hash for the runnable node from canonical references and upstream links. +2. Fetch matching traces by hash at project scope. +3. Select deterministic reusable traces for the requested repeat slots. +4. Invoke only the missing slots. +5. Populate result cells with reused or newly produced trace IDs. + +The lookup is already plural in `fetch_traces_by_hash(...)`, and helper tests cover selection and missing-count behavior. Cache lookup is now wired into the inspected application and evaluator worker boundaries. The remaining issue is duplicated per-loop cache resolution logic. + +## Setup Fragmentation + +Current setup is not one universal flow. It is split across: + +- auto evaluation creation for app + variant + testset + evaluators +- human evaluation creation for testset + single variant + evaluators +- live evaluation setup for query-backed trace sampling +- queue creation from trace IDs or testcase IDs +- SDK/local setup +- annotation queue convenience setup from traces/testsets, backed by evaluation entities + +These setup paths build similar run-data concepts through `_make_evaluation_run_data()` in several paths, but they still apply different validation and dispatch rules. That is why new combinations still tend to require setup and execution changes in multiple places. + +## Execution Consolidation + +The SDK and backend now route concrete source items through the SDK-owned +source-slice processor. Backend task modules are source/dispatch shells: + +- `run.py` classifies a run and dispatches to the right source resolver +- `query.py` resolves live/batch query source traces +- `source_slice.py` resolves direct/testset source items and builds backend adapters + +The remaining backend-specific work lives behind adapters for scenario creation, +result persistence, metrics refresh, trace loading, cache reuse, and workflow +execution. +- application invocation +- evaluator invocation +- human/custom pending behavior +- repeat handling +- cache lookup +- metrics refresh + +This duplication is now the main remaining problem. Some formerly missing capabilities are implemented, but they are implemented repeatedly across specialized loops. + +## Runnable Execution Debt + +Unifying the loop should not mean preserving every current invocation helper as-is. + +The current application execution path is especially legacy. Batch testset and batch inference paths still rely on older application invocation helpers such as the LLM app service batch invocation path, which has been patched repeatedly over time. Evaluator execution uses workflow invocation paths with similar but not identical request assembly, links, reference handling, cache handling, trace fetch handling, and error handling. + +The repeated pattern is broader than "application vs evaluator": + +- build runnable request from step references, upstream bindings, inputs, trace, and outputs +- optionally compute hash and reuse existing traces +- invoke a runnable when cache does not satisfy the slot +- fetch/validate the resulting trace +- convert response or failure into an evaluation result cell + +That should become a shared runnable-step execution contract. Application and evaluator steps can then be two runnable kinds handled by the same boundary, rather than separate loop-local helper stacks. + +## Research Conclusion + +The product does not need one flattened source type, but it does need one loop contract. + +The common contract should be: + +```text +resolve sources -> materialize scenarios -> plan result slots -> execute auto steps -> leave human/custom slots pending -> populate tensor cells -> refresh metrics +``` + +Current code has many pieces of that contract, including flags, repeat helpers, cache helpers, source-aware queue dispatch, and pending human/custom behavior in key loops. The missing layer is a shared planner that owns these decisions once. + +Source-specific behavior should live in resolvers and planners. Step execution should be generic over: + +- scenario +- step +- repeat slot +- upstream bindings +- origin +- cache policy +- fan-out policy +- runnable invocation policy + +## Relationship To Default Queues + +The queue-unification work clarifies that annotation queues are not another execution runtime. They are a persisted human-work view over the same evaluation tensor described in this document. + +The useful separation is: + +```text +evaluation runtime + = graph + tensor + process(slice) + +default queue + = canonical persisted human-work view over that tensor +``` + +The queue dimensions align with tensor dimensions: + +- scenario selection maps to scenarios +- step selection maps to steps +- repeat assignment maps to scenario × repeat lanes + +A default queue leaves those dimensions open: + +```text +scenario_ids = None +step_keys = None +user_ids = None +``` + +The queue layer decides how human work is exposed and assigned. It does not decide how auto steps are planned or executed. + +### Source-family flags versus queue eligibility + +The current runtime still uses `is_queue` in places where it is really distinguishing queue-style source ingestion. The cleaner target model is to expose source family directly through inferred flags: + +- `has_queries` +- `has_testsets` +- `has_traces` +- `has_testcases` + +Those flags should describe where scenarios come from and should drive topology validation and mixed-source prevention. + +Separately, `run.flags.is_queue` should answer the product question: + +```text +active default queue exists +and active human evaluator work exists +``` + +That makes source classification and simple-queue eligibility separate facts rather than overloading one flag. + +### Shared mutation question + +The queue-unification work also exposes a question this design must answer explicitly: whether step removal is usually destructive or archival. + +If historical results should remain visible after an evaluator is no longer active, then the graph model needs an active-versus-archived distinction. In that world: + +- `archive_step` is the common lifecycle operation +- hard `remove_step` and `prune` are stronger cleanup operations +- queue eligibility should depend on active human steps, not merely historical human steps + +This needs to be settled before hardening the mutation contract around remove/prune behavior. diff --git a/docs/designs/unified-eval-loops/run-status-finalization.md b/docs/designs/unified-eval-loops/run-status-finalization.md new file mode 100644 index 0000000000..391a2a6f05 --- /dev/null +++ b/docs/designs/unified-eval-loops/run-status-finalization.md @@ -0,0 +1,180 @@ +# Run-status finalization: analysis and options + +Status: analysis for UEL-028 (and its overlap with UEL-017 item 1). +Date: 2026-05-21. +Decision: **Option B implemented** (no aggregation) — corrected severity order + +reset `status=RUNNING` on every (re)dispatch. Batch testset/invocation runs are +single-slice today (`process_testset_source_run` issues exactly one slice), so the +multi-slice race (Option C) is not needed now and stays tracked under UEL-017 item 1. + +## 1. Problem + +A batch (non-queue) evaluation run that completes all its work never transitions to a +terminal `status` — it stays `running` with `flags.is_active=true` indefinitely. On the +dev DB this affected the majority of batch runs (`success=35` vs `running=114`, +`pending=211`). + +Reproduced end-to-end with the new LLM-free `mock_v0` workflow: a testset → app → +auto-evaluator run processes both scenarios to `success` and refreshes metrics, but the +run row stays `running` / `is_active=true`. + +## 2. Where run status is written + +Run status is finalized in `process_evaluation_source_slice` +(`api/oss/src/core/evaluations/tasks/source_slice.py`), and **only** when the caller +passes `update_run_status=True`. + +Dispatch (in `tasks/run.py::process_evaluation_run`, by topology): + +| topology | task | `update_run_status` | finalizes run status? | +| ------------------ | --------------------------- | ------------------- | --------------------- | +| `live_query` | `process_query_source_run` | **False** | no (stays running) | +| `batch_query` | `process_query_source_run` | **False** | no | +| `batch_testset` | `process_testset_source_run`| **True** | yes | +| `batch_invocation` | `process_testset_source_run`| **True** | yes | + +Implication: **live and batch-query runs never enter the finalize block.** Any change to +finalization affects only `batch_testset` / `batch_invocation`. (Whether `batch_query` +*should* finalize is a separate gap — see §6.) + +## 3. The current finalize logic + +After processing this slice's scenarios: + +```python +if any(item.has_errors for item in processed): run_status = ERRORS +elif any(item.has_pending for item in processed): run_status = RUNNING +else: run_status = SUCCESS +# (exception path) -> run_status = FAILURE +``` + +This `run_status` is computed from **this slice's `processed` subset only**, not from the +whole run. To reconcile across slices, a "severity floor" then compares it to the stored +status and keeps whichever is more severe: + +```python +severity = {FAILURE:4, ERRORS:3, RUNNING:2, SUCCESS:1, PENDING:0} # ORIGINAL +current = fetch_run(run_id) +if severity[current.status] > severity[run_status]: + run_status = current.status +``` + +### Root cause of UEL-028 + +`RUNNING` (2) outranks `SUCCESS` (1). When the stored status is `running` (the start +state of every run), a slice that computes `SUCCESS` is floored back **up** to `running`: +`severity[running]=2 > severity[success]=1`. So the run can never leave `running`. It pins +forever. + +This is a true P1: the floor's "keep the more severe status" rule treats the transient +`RUNNING` as more severe than the terminal `SUCCESS`, which is backwards for finalization. + +## 4. The cases finalization must satisfy + +| case | what should happen | +| ---- | ------------------ | +| **single-slice batch** (one slice = whole run; e.g. testset→app→eval) | all scenarios success → run `success`; any error → `errors`; exception → `failure`. | +| **multi-slice batch** (run dispatched as several slices; UEL-017 item 1) | run is terminal only when **all** slices/scenarios are done; an early SUCCESS-only slice must not finalize the whole run while other slices are pending. | +| **extended finished run** (a `success` run gets new steps/scenarios and is re-dispatched) | while new work is pending the run should read `running` again; when the new work completes it should read `success` (or `errors`/`failure` as appropriate). | +| **live / batch-query** | unaffected — never finalizes via this path (`update_run_status=False`). | + +The fundamental flaw shared by the original logic **and** the quick severity-reorder fix +is that `run_status` is derived from **one slice's subset** plus a `max()` against the +**stored** status. Neither reflects the run's *actual current* aggregate state, so: + +- single-slice: stored `running` wrongly floors over computed `success` (UEL-028). +- multi-slice: a slice can't see other slices' scenarios, so it either finalizes too early + (no floor) or never (bad floor). +- extended: stored `success` floors over a computed `running`, hiding in-flight pending + work — or, with the reorder, the opposite mishandling. + +## 5. Options + +**Constraint (per maintainer):** no full run-wide scenario aggregation in the finalize +path. The finalize must work from what the slice already has plus, at most, cheap O(1) +state — not a scan/count of all the run's scenarios on every slice. + +### Option A — Reorder the severity floor (minimal) + +Swap `RUNNING` and `SUCCESS` in the severity map so terminal statuses outrank the transient +ones: + +```python +severity = {FAILURE:4, ERRORS:3, SUCCESS:2, RUNNING:1, PENDING:0} +``` + +- **Fixes:** single-slice batch (UEL-028). A computed `SUCCESS` now replaces stored + `running`. FAILURE/ERRORS still floor over a later SUCCESS-only slice (preserves + UEL-017's "don't downgrade errors" intent). +- **Does NOT fix:** the **extended-finished** case. If an extension's new slice computes + `RUNNING` (pending cells), the floor keeps stored `success` (`2 > 1`), so the run wrongly + shows `success` while new work is in flight. Symmetrically, multi-slice early-finalize is + not addressed (a SUCCESS slice still finalizes the whole run). +- **Cost:** one-line change; lowest risk; lowest correctness. +- **Verified:** unit test `test_source_slice_processor_preserves_higher_queue_status` still + passes; the `mock_v0` single-slice flow reaches `success` in ~4s. + +### Option B — Correct the severity floor + scope it to a fresh-dispatch start state + +Two-part, no aggregation: + +1. **Reorder severity** so terminal statuses outrank transient ones (as in A): + `FAILURE:4 > ERRORS:3 > SUCCESS:2 > RUNNING:1 > PENDING:0`. Fixes UEL-028 single-slice. +2. **Reset the run to a known start state at dispatch** so the floor compares against a + meaningful baseline. The dispatch/start flow (`service.py:3540-3556`) already sets + `is_active=True`; have it also set `status=RUNNING` for **every** (re)dispatch — not just + `just_created`. Then a finished run that is extended starts the new dispatch at `running`, + and the slice's computed status (SUCCESS / ERRORS) cleanly replaces it via the corrected + floor. No run-wide scan. + +- **Fixes:** single-slice batch (UEL-028) **and** extended-finished (it restarts at + `running`, then the slice writes the new terminal status). +- **Partial on multi-slice:** with the corrected order, a SUCCESS-only slice can still + finalize the run before sibling slices finish. The `ERRORS`/`FAILURE` floor still prevents + *downgrading*, but `RUNNING→SUCCESS` can happen early. Acceptable if batch testset/invocation + runs are effectively single-slice today (confirm); otherwise pair with Option C. +- **Cost:** the severity one-liner + a one-line change to the start flow + (`status=RUNNING` on every dispatch). No new queries. +- **Risk:** changing the start flow to always reset `status=RUNNING` affects the perceived + status of any run being (re)started. This is arguably the correct semantic ("a dispatched + run is running"), but it is a behavior change for restart. + +### Option C — Finalize only on the last slice (for multi-slice, if needed) + +Pass `slice_index` / `expected_total_slices` (or a "last slice" flag) into +`process_evaluation_source_slice`; only run the finalize block on the final slice. Cheap +per-dispatch counter, **no aggregation**. + +- **Fixes:** multi-slice early-finalize. +- **Does NOT by itself fix:** UEL-028 (the last slice still needs the corrected severity + order). Layer on top of B only if batch runs are genuinely multi-slice. +- **Cost:** thread a slice counter through dispatch + the SDK boundary; more invasive than B. + +## 6. Adjacent gap (not UEL-028) + +`batch_query` runs dispatch through `process_query_source_run` with +`update_run_status=False`, so they **also never finalize** their run status — by a different +path than the testset/invocation one fixed here. This should be confirmed with a flow test +and tracked as its own finding (candidate: extend UEL-017 or a new UEL-0xx) rather than +folded into UEL-028. + +## 7. Recommendation + +No run-wide aggregation. Adopt **Option B**: corrected severity order + reset +`status=RUNNING` on every (re)dispatch in the start flow. Keep the two independent hardening +fixes already applied: + +- clear `flags.is_active` when status is terminal (SUCCESS/ERRORS/FAILURE); +- `dao.edit_run` persists `status` via `status.value` + `flag_modified`. + +This fixes single-slice (UEL-028) and extended-finished with only O(1) local changes (no +scenario scans). Prove with the flow suite: + +- single-slice batch → `success`; +- extended finished run → `running` during extension, `success` after; +- live eval → stays `running`/active (unchanged). + +**Multi-slice:** first confirm whether batch testset/invocation runs are ever dispatched as +multiple slices today. If not, B is sufficient and the multi-slice race stays tracked under +UEL-017 item 1. If they are, layer **Option C** (last-slice finalize, cheap per-dispatch +counter — still no aggregation) on top of B. diff --git a/docs/designs/unified-eval-loops/simplified-interface.md b/docs/designs/unified-eval-loops/simplified-interface.md new file mode 100644 index 0000000000..10b9cfd238 --- /dev/null +++ b/docs/designs/unified-eval-loops/simplified-interface.md @@ -0,0 +1,178 @@ +# Simplified Interface: the evaluation operation vocabulary + +Status: design / forward-looking. Concentrates the operation surface scattered +across `proposal.md`, `gap.md`, `operations.md`, and `step-removal-semantics.md` +into one place. No new semantics — it organizes what we want the **public +interface** to be. + +## Why this document + +We want a small, atomic vocabulary of evaluation operations that maps cleanly to: + +1. **HTTP endpoints** with clean URLs and explicit `operation_id`s, so they + surface as named methods in the generated Fern clients (TS + Python). +2. **The SDK `evaluate()` utility** — built *on top of* these atomic operations, + not as a parallel code path. +3. **User-built utilities** — a user should be able to assemble their own + evaluation flow from the same atomic operations `evaluate()` uses. + +The test: adding a new evaluation flow should mean *composing existing +operations*, never adding a new end-to-end endpoint. + +## The vocabulary + +There are three layers (and a fourth, queues, set aside for now): + +1. **Run** — the container. RPC-style lifecycle, not a graph/tensor mutator. +2. **Graph** — the shape: steps, scenarios, repeats, and their connections. +3. **Tensor** — the contents: results, and metrics. +4. *(Queues — a human-work view over the tensor. Noted, left aside here.)* + +```text +run: create / edit / delete | start / stop / close / open +graph: add_step / remove_step | add_scenario / remove_scenario | set_repeats +tensor: results → probe / process / populate / prune + metrics → refresh (variational / temporal / global) +``` + +### Run + +The run is acted on by **RPC operations**, not by editing fields: + +- `create` / `edit` / `delete` — `edit` mostly for completeness; real editing is + graph ops (add/remove steps & scenarios). +- `start` / `stop` / `close` / `open` — lifecycle. + +**There is no `set_flag`.** The `has_*` flags are inferred from the graph, +`is_queue` is reconciled, and the remaining config flags are set through +`create`/`edit` — never a dedicated flag RPC. + +### Graph → tensor shape + +Mutating the graph mutates the tensor's shape — the three graph axes map +one-to-one onto the three tensor dimensions: + +- **steps** → columns (add/remove a step adds/prunes a column of cells) +- **scenarios** → rows (add/remove a scenario adds/prunes a row of cells) +- **repeats** → depth (`set_repeats` materializes or prunes repeat slots) + +Steps and scenarios are named entities (add/remove); repeats is a count, so it +is **set** (`set_repeats`), which re-shapes the tensor depth. + +### Tensor: results + +Result ops act on a **slice** (`TensorSlice = scenarios x steps x repeats` = +rows x columns x depth), so retry, fill-missing, re-run-one-evaluator, queue +assignment, and live ticks are all a slice op: + +- `probe` — read cells (what exists, what's missing). +- `process` — run the runnable cells (whatever the current executor owns by + origin; see [`origin-execution-model.md`](./origin-execution-model.md)) and + populate the results. +- `populate` — write result cells directly. The shared write primitive for any + origin, including the runtimes themselves. +- `prune` — delete cells. + +### Tensor: metrics + +Metrics are derived from result cells. There are **three kinds**, differing by +scope and by *when* they may be refreshed. Each is an object **keyed by step**. + +| kind | aggregates over | refresh trigger | +| --- | --- | --- | +| **variational** | one scenario, across all its repeats | only when the scenario is **fully computed** — used in both live and batch evaluations | +| **temporal** | all scenarios + repeats within a timestamp **interval** | per interval — used for **live** evaluations | +| **global** | all scenarios + repeats in the run | at run scope — used for batch evaluations | + +**Results and metrics are decoupled.** `probe`/`process`/`populate`/`prune` +operate on **result cells only** — none of them refresh metrics. `refresh` is a +separate, first-class op that recomputes metrics, invoked by the caller on the +right boundary (scenario-complete / interval / run). `prune` deletes cells but +not metrics: a metric is an aggregate over a whole scenario/interval/run, so +pruning cells leaves it to be recomputed by `refresh`, not deleted. + +## Target endpoint shape + +All under `/api/evaluations/`. Conventions follow AGENTS.md (POST `/query`, +`/{id}/archive`, explicit `operation_id`, cursor pagination, `count` + payload +envelopes). + +### Run (RPC lifecycle) + +| operation_id | Method + path | Status | +| --- | --- | --- | +| `create_runs` / `edit_runs` / `delete_runs` / `query_runs` | `…/runs/` `/runs/query` | done | +| `fetch_run` / `edit_run` / `delete_run` | `…/runs/{run_id}` | done | +| `start_run` / `stop_run` | `POST /runs/{run_id}/start` `/stop` | done (via simple-evaluation start/stop) | +| `close_run` / `open_run` | `POST /runs/{run_id}/close` `/open` | done (lock) | + +No `set_flag`: `has_*` flags are inferred from the graph, `is_queue` is +reconciled, and the config `is_*` flags are written through `create`/`edit`. + +### Graph — steps & scenarios + +| operation_id | Method + path | Status | +| --- | --- | --- | +| `add_step` | `POST /runs/{run_id}/steps` | **deferred** — today a step is added by editing `data.steps`. | +| `remove_step` | `DELETE /runs/{run_id}/steps/{step_key}` | done as behavior (folded into `edit_run` reconcile + prune), **deferred** as a named endpoint. | +| `create_scenarios` / `edit_scenarios` / `delete_scenarios` | `…/scenarios/` | done (CRUD) | +| `add_scenario` | `POST /runs/{run_id}/scenarios` | **deferred** — graph-aware add (resolve source binding, plan cells), vs. raw CRUD. | +| `remove_scenario` | `DELETE /runs/{run_id}/scenarios/{scenario_id}` | **deferred** — cascade-aware (prune cells + flush metrics). | +| `set_repeats` | `POST /runs/{run_id}/repeats` | **deferred** — set the depth; materialize new repeat slots or prune surplus, then `process` the new cells. | + +### Tensor results — endpoints + +| operation_id | Method + path | Status | +| --- | --- | --- | +| `create_results` / `edit_results` / `delete_results` | `…/results/` | done (CRUD; the low-level cell write) | +| `probe_slice` | `POST /runs/{run_id}/slice/probe` | in-process (`TensorSliceOperations.probe`), **deferred** as endpoint. | +| `process_slice` | `POST /runs/{run_id}/slice/process` | in-process (`process` → `BackendSliceProcessor`), **deferred** as endpoint. | +| `populate_slice` | `POST /runs/{run_id}/slice/populate` | in-process, **deferred** as endpoint (bulk/slice write). | +| `prune_slice` | `POST /runs/{run_id}/slice/prune` | in-process, **deferred** as endpoint. | + +The four `*_slice` ops all take a `TensorSlice` body. They are the atomic +primitives `evaluate()` and user utilities compose; only their HTTP exposure is +deferred — the in-process implementations exist (`runtime/tensor.py`). + +### Tensor metrics — endpoints + +| operation_id | Method + path | Status | +| --- | --- | --- | +| `refresh_metrics` | `POST /metrics/refresh` | done — single endpoint today; refreshes the affected scope. | +| `create_metrics` / `edit_metrics` / `delete_metrics` / `query_metrics` | `…/metrics/` `/metrics/query` | done (CRUD) | + +Whether refresh stays one endpoint or splits per kind (variational / temporal / +global) — and whether it stays coupled to `process` or becomes its own +operation — is the open question above. + +## How `evaluate()` composes these + +The SDK utility is a thin client-side orchestration over the vocabulary: + +```text +evaluate(testset, app, evaluators): + create_run(...) # container + add_step per app + evaluator # graph + add_scenario per testset row # graph (resolve source bindings) + process_slice(all scenarios, all steps) # tensor: run the runnable cells + refresh metrics + -> returns {run, scenarios, metrics} +``` + +A user wanting a custom flow (e.g. re-run only one evaluator on failed rows) +calls the same ops directly: `probe_slice` to find failures, then +`process_slice` scoped to that evaluator's `step_key`. + +## What this unlocks + +- Generated clients expose `evaluations.processSlice(...)`, + `evaluations.addScenario(...)`, etc. as named methods. +- One mental model for setup, retry, queue assignment, manual annotation, live + ticks, and SDK/local runs — all are slice ops. +- New flows are compositions, not new endpoints. + +## Pointers + +- Operation list + direction: [`proposal.md`](./proposal.md) §"Operation API Direction". +- Per-op status (done / partial / deferred): [`operations.md`](./operations.md). +- Removal lifecycle (why `remove_step` prunes): [`step-removal-semantics.md`](./step-removal-semantics.md). +- Gaps: [`gap.md`](./gap.md) §"Tensor Operation Gaps". diff --git a/docs/designs/unified-eval-loops/step-removal-semantics.md b/docs/designs/unified-eval-loops/step-removal-semantics.md new file mode 100644 index 0000000000..585e520f62 --- /dev/null +++ b/docs/designs/unified-eval-loops/step-removal-semantics.md @@ -0,0 +1,448 @@ +# Step Removal Semantics + +## Decision + +For now, evaluation step removal is **destructive**: + +```text +remove_step -> prune the removed step's tensor cells +``` + +Removing a step means: + +1. remove it from the active run graph +2. delete result cells for that step across scenarios and repeats +3. refresh/flush metrics that depended on that step +4. if the removed step is an input step, also remove scenarios that are sourced only from that step + +This keeps the stored graph and stored tensor aligned with the current evaluation definition. + +The alternative — archiving/deactivating steps while retaining historical cells — remains a valid future model, but it is **not** the model chosen for the current design. + +## Why This Decision Exists + +There are two coherent models for step lifecycle. + +### Model A — Destructive removal + +```text +stored graph = current active graph +stored tensor = cells for the current active graph +``` + +A removed step no longer exists in the graph, and its cells are pruned. + +### Model B — Archival lifecycle + +```text +stored graph = historical graph +active execution = projection over active steps +stored tensor = historical cells, including archived steps +``` + +An archived step remains historically present, but no longer participates in future work. + +Both models are internally coherent. The current design chooses **Model A** because it is simpler, cleaner, and matches the existing unified-loop operation model. + +## Existing Design Rationale For Remove + Prune + +The existing eval-loop documents already leaned toward destructive removal for good reasons. + +### Steps are immutable by reference + +A step points to a concrete referenced revision. Changing a reference should not mutate the step in place. + +Instead: + +```text +change evaluator revision = remove old step + add new step +``` + +That preserves step identity semantics and avoids silently rewriting what a historical step meant. + +### The graph defines tensor shape + +The design treats graph steps as tensor dimensions: + +- add a step -> add a tensor column dimension +- remove a step -> remove that tensor column's cells + +This creates a simple invariant: + +```text +current graph and current tensor have the same shape +``` + +### Remove + prune prevents stale state + +If a step disappears but its result cells remain: + +- cells exist for steps no longer in the graph +- metrics may still refer to retired steps +- UI needs to distinguish active from historical columns +- planner and topology logic need lifecycle-aware filtering + +Pruning avoids all of that in the default path. + +### The mutation model stays symmetric + +The lower-level operation model remains clean: + +```text +graph: add_step / remove_step +tensor: populate / prune +``` + +That symmetry is useful for reasoning, implementation, and testing. + +## Why Archival Was Considered + +Archival has one major product advantage: + +> it preserves auditability. + +If a human evaluator or automatic evaluator is no longer active, retaining the old step and its cells would preserve: + +- who evaluated what +- what outputs existed before the step was retired +- historical metric context +- a full explanation of past evaluation state + +That is especially attractive if evaluations are treated as long-lived collaborative records rather than disposable execution definitions. + +## Cost Of Destructive Removal + +The chosen model deliberately gives up some history. + +When a step is removed: + +- its result cells are deleted +- metrics derived from it disappear from the active run +- prior human work for that step is no longer represented in the run tensor +- the run no longer explains that the step ever existed + +If auditability becomes a product requirement later, destructive removal will not satisfy it by itself. + +## Cost Of Archival + +Archival avoids data loss, but it has broad implications across every layer of the system. + +The rest of this document records those implications so the tradeoff remains explicit. + +# Archival Implications + +## 1. Model implications + +Archival requires step lifecycle state, for example: + +```python +archived_at: datetime | None +archived_by_id: UUID | None +``` + +A run would then contain two conceptual graphs: + +```text +historical graph = all steps ever attached to the run +active graph = historical graph minus archived steps +``` + +Any presence-style flags would need explicit semantics: + +- `has_evaluators` +- `has_human` +- `has_auto` +- `has_custom` + +For most product behavior, they would likely need to mean **active presence**, not historical presence. + +If historical presence also matters, that would require separate query behavior or additional flags. + +## 2. Data implications + +Archived steps retain their tensor cells: + +```text +scenario_id + step_key + repeat_idx +``` + +That preserves history, but results now divide into: + +- active-step results +- archived-step results + +Queries and APIs would need to decide whether they default to: + +- active-only results +- all historical results +- or support explicit `include_archived_steps` + +If archived steps remain embedded in JSON run data, active/historical filtering is service-derived and less relationally natural. If steps become first-class rows, lifecycle handling becomes cleaner but requires a larger schema refactor. + +Archival also increases retained data volume over time because old cells remain instead of being pruned. + +## 3. Metrics implications + +Archival makes metric meaning more complex. + +At minimum, the system would need to distinguish: + +### Active metrics + +Metrics over the current active graph, used for: + +- current dashboards +- current summary views +- present-tense evaluation interpretation + +### Historical metrics + +Metrics including archived steps, used for: + +- audit +- history +- lineage + +Without that distinction, archived evaluators would continue to affect current dashboards. + +Metric refresh would need to know whether it is computing over active steps only or over historical steps as well. Run mappings may also need lifecycle awareness so archived step mappings do not keep contributing to current aggregates. + +## 4. Compute and planner implications + +The planner would need to operate on **active steps only** by default. + +Every execution path would need a shared helper such as: + +```python +active_steps(run) +has_active_human_steps(run) +``` + +If archived steps remained in `run.data.steps`, raw iteration over `run.data.steps` would become unsafe. + +`process(slice)` would need explicit semantics: + +- `steps="all"` likely means all **active** steps +- archived steps require explicit inclusion for any historical replay or audit operation + +Planner complexity would remain manageable if active filtering is centralized, but every planner, topology classifier, queue reconciler, and flag refresher would need to use the same lifecycle-aware projection. + +## 5. Queue implications + +Default queue eligibility would need to depend on **active** human steps: + +```text +active default queue exists +and active human evaluator work exists +``` + +For default queues: + +```text +step_keys=None +``` + +would need to mean all **active** queue-relevant steps, not all historical steps. + +Custom queues that explicitly reference later-archived steps would need a policy, such as: + +- retain the queue row +- stop generating active work for archived steps +- surface that the queue references inactive steps +- perhaps mark the queue degraded/inactive if all included steps are archived + +## 6. API implications + +Archival would require new lifecycle operations: + +- `archive_step` +- `unarchive_step` + +or equivalent run-mutation semantics. + +Any response that exposes step definitions would need archival metadata so clients can distinguish active from historical steps. + +The API would also need explicit lifecycle-aware query semantics, likely including some form of: + +- active-only default behavior +- optional archived inclusion for audit/history views + +Backward compatibility becomes non-trivial because older clients may assume every returned step is active. + +## 7. UI implications + +The UI would need an explicit active-versus-archived presentation model. + +Likely implications: + +- active steps shown normally +- archived steps grouped under a collapsed historical section +- current results tables show active columns by default +- archived result columns appear only in audit/history contexts or behind an explicit toggle +- current metric charts exclude archived steps by default +- historical metric views expose archived-step data intentionally +- queue screens show only active human work +- archived human work remains visible in evaluation history but not as new actionable queue work + +Action labels would also need to change: + +- ordinary user action: `Archive evaluator` +- stronger destructive action: `Delete step and results` + +Without UI support for archived state, archival would preserve data technically but create user confusion. + +## 8. Controller and service implications + +Archival requires centralized lifecycle orchestration. + +A step archive/unarchive transition would need to coordinate: + +- active graph projection +- run flag recomputation +- queue reconciliation +- metric refresh +- possible custom-queue invalidation/degradation + +Those changes should not be scattered across ad hoc call sites. They require one authoritative lifecycle path. + +## 9. Conceptual implication + +Archival changes the core invariant from: + +```text +stored tensor = current graph +``` + +to: + +```text +stored tensor = historical graph +active execution = projection over active graph +``` + +That is a richer but more expensive model. + +# Destructive Removal Implications + +## 1. Model implications + +No additional step lifecycle state is required. + +The run graph remains: + +```text +run.data.steps = active graph +``` + +Presence flags continue to reflect the graph directly. + +## 2. Data implications + +Removed step cells are deleted. + +This avoids: + +- stale cells +- historical-vs-active result interpretation +- extra retained data volume for removed steps + +But it sacrifices historical traceability inside the run. + +## 3. Metrics implications + +Metric handling stays simple: + +- prune step cells +- refresh/flush dependent metrics +- current metrics remain aligned with the current graph + +No separate active/historical metric families are required. + +## 4. Compute and planner implications + +Planner logic remains simpler: + +- every step in the graph is active +- `steps="all"` means literally every stored step +- topology validation does not need step lifecycle filtering + +## 5. Queue implications + +Queue eligibility can be computed from the current graph without active/historical distinction. + +A removed human step no longer contributes to queue eligibility because it no longer exists. + +## 6. API implications + +Only destructive graph operations are needed: + +- `add_step` +- `remove_step` + +No step archive/unarchive surface is required. + +## 7. UI implications + +The UI stays much simpler: + +- no archived-step sections +- no archived-result toggles +- no historical metric mode +- “remove” means the thing is gone + +The downside is that users cannot inspect retired step history through the run afterward. + +## 8. Controller implications + +Mutation side effects remain narrow: + +- remove step +- prune cells +- refresh metrics +- if needed, reconcile queue flags from the new active graph + +No long-lived archival state needs to remain synchronized. + +# Comparison + +| Concern | Destructive remove + prune | Archive/deactivate | +|---|---|---| +| Auditability | weak | strong | +| Current-state simplicity | strong | weaker | +| Storage growth | lower | higher | +| Planner complexity | lower | higher | +| Metric semantics | simple | active vs historical required | +| UI complexity | lower | higher | +| Queue semantics | simpler | must ignore archived steps | +| API lifecycle surface | smaller | larger | +| Graph/tensor invariant | identical current graph/tensor | historical storage + active projection | + +# Current Choice + +The current unified-eval-loop design chooses: + +```text +remove + prune +``` + +as the normal behavior. + +This is intentionally destructive, and the tradeoff is accepted for now because it provides: + +- a clean graph/tensor invariant +- simpler planning and topology logic +- simpler metrics +- simpler UI/API behavior +- direct alignment with the existing operation model + +If auditability becomes a product requirement later, the design should be revisited explicitly rather than approximated halfway. A future archival model would need full support across: + +- step lifecycle metadata +- active/historical result semantics +- metric semantics +- queue eligibility +- APIs +- UI +- planner defaults + +Until then, retaining removed-step cells without modeling archival everywhere is not acceptable because it would introduce ambiguity without delivering coherent auditability. diff --git a/docs/designs/unify-evals-and-queues/gap.md b/docs/designs/unify-evals-and-queues/gap.md new file mode 100644 index 0000000000..81b0efa296 --- /dev/null +++ b/docs/designs/unify-evals-and-queues/gap.md @@ -0,0 +1,92 @@ +# Gap Analysis + +## Queue Semantics + +Missing from current state: + +- no explicit meaning that `step_keys=None` is the open/default step scope +- current auto-created human queues snapshot human step keys instead of leaving step scope open +- no canonical default-queue marker distinct from arbitrary custom queues + +Already present: + +- `scenario_ids=None` already leaves scenario scope open over the run +- `user_ids=None` already means unassigned +- repeats are already run-owned rather than queue-owned + +## Default Queue Lifecycle + +Missing from current state: + +- no default-queue reconciliation tied to run creation/editing +- current helper is path-dependent and only reached from selected execution flows +- no two-policy model separating: + - human-step structural condition + - unconditional default-queue global setting +- no logic to archive/unarchive the default queue as human evaluator availability changes + +## Queue Archival + +Missing from current state: + +- no queue archive endpoint +- no queue unarchive endpoint +- no queue service/DAO archive lifecycle path +- no `include_archived` support on queue query/fetch surfaces +- default-queue lookup cannot currently search archived queues for restoration + +Present but underused: + +- queue DTOs already inherit lifecycle fields such as `deleted_at` and `deleted_by_id` + +## Queue Identity + +Missing from current state: + +- no reliable way to distinguish the canonical default queue from a custom queue with the same open shape +- current ensure logic stops if any queue exists for the run, which is insufficient once default and custom queues coexist + +## Run Semantics + +Needs clarification or adjustment: + +- `is_queue` currently distinguishes simple queue-created runs from simple evaluations +- linked default queues should not require ordinary evaluation runs to become queue-ingest runs +- the old meaning of `is_queue` must be replaced by persisted simple-queue eligibility + +## Configuration + +Missing from current state: + +- no global policy toggle for unconditional default queues +- no shared policy helper for deciding default-queue lifecycle mode + +## Tests + +Missing from current state: + +- open default queue behavior with `step_keys=None` +- default queue creation for simple evaluations under unconditional mode +- conditional creation when human evaluator steps exist +- no creation / archive when conditional mode has no active human evaluator steps +- unarchive of an existing archived default queue instead of duplicate creation +- coexistence of default and custom queues +- archived-inclusive queue query behavior +- regression tests for existing queue assignment and scenario selection behavior + +## API Surface + +Missing from current state: + +- archive/unarchive queue endpoints +- `include_archived` request/query support for queues +- response behavior that lets callers distinguish active from archived queues where relevant + +## UI Surface + +Not covered by this backend design: + +- whether auto-only evaluations show an empty queue +- whether users are nudged to add human evaluators +- how the default queue appears inside evaluation details versus Queues +- any migration of frontend terminology from “human evaluation” to “evaluation with human evaluators” diff --git a/docs/designs/unify-evals-and-queues/plan.md b/docs/designs/unify-evals-and-queues/plan.md new file mode 100644 index 0000000000..2f62a34e2c --- /dev/null +++ b/docs/designs/unify-evals-and-queues/plan.md @@ -0,0 +1,16 @@ +# Plan + +1. Define the canonical default queue shape with open filters: `scenario_ids=None`, `step_keys=None`, `user_ids=None`, and no default batching restrictions. +2. Add a durable default-queue identifier, preferably an explicit queue flag or role that distinguishes default queues from custom queues independently of shape. +3. Add queue archival support across DTOs, service methods, DAO methods, and API endpoints, including archive and unarchive operations. +4. Extend queue query/fetch paths with `include_archived` support and ensure archived default queues can be found during reconciliation. +5. Add global policy toggle for unconditional default queues, e.g. `EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS`, as a module-level global. +6. Implement shared policy helpers for: + - whether a run has active human evaluator steps + - whether default queues are unconditional for all runs +7. Replace the current path-specific human-queue helper with a default-queue reconciliation operation that can create, unarchive, no-op, or archive according to the two-policy model. +8. Invoke default-queue reconciliation from simple evaluation run creation and run-editing flows so queue lifecycle follows evaluation lifecycle rather than dispatch timing. +9. Use source-family flags for ingestion semantics; persist `is_queue` as active default queue + active human evaluator work. +10. Update simple queue/default queue creation paths so the default queue leaves `step_keys` open instead of snapshotting human step keys. +11. Add backend tests for unconditional mode, conditional mode, archive/unarchive behavior, coexistence with custom queues, open step scope, and existing queue regressions. +12. Update design/API documentation to describe the default queue model, the two policies, queue archival semantics, and the frontend decisions intentionally left outside this backend work. diff --git a/docs/designs/unify-evals-and-queues/proposal.md b/docs/designs/unify-evals-and-queues/proposal.md new file mode 100644 index 0000000000..63666386a1 --- /dev/null +++ b/docs/designs/unify-evals-and-queues/proposal.md @@ -0,0 +1,144 @@ +# Proposal + +## Goal + +Unify human evaluation and annotation queues at the backend model level by making the queue a default companion of evaluation runs rather than a separately created product concept. + +This proposal covers API and service semantics only. Frontend behavior, copy, and product nudges can vary later without requiring a different backend model. + +## Proposed Model + +Keep the current evaluation substrate: + +- runs define evaluation structure and repeats +- scenarios are concrete work items +- results are step × repeat outputs +- queues overlay a run to expose and distribute human work + +Add one canonical **default queue** concept for evaluation runs. + +A default queue has: + +- `scenario_ids=None` +- `step_keys=None` +- `user_ids=None` +- no queue-specific batching restriction + +Those open fields mean: + +- all scenarios in the run are eligible +- all queue-relevant steps are eligible +- no users are assigned by default +- run repeats remain fully covered because repeats belong to the run + +## Queue Axes + +The queue has three independent axes: + +| Axis | Governs | +|---|---| +| scenario selection | which scenarios belong to the queue | +| repeat assignment | which scenario × repeat lanes a user receives | +| step selection | which steps must be completed for each assigned scenario × repeat | + +Default queues leave all three axes open except for the run boundary itself. + +## Default Queue Policies + +### Structural policy + +The structural condition is simple: + +```text +has_human_evaluator_steps(run) +``` + +This says whether a run warrants a default queue when queues are conditional. + +### Global lifecycle policy + +A configuration value controls whether default queues exist for all runs regardless of human steps, for example: + +```text +EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS +``` + +When enabled: + +- every run gets a default queue at creation +- the default queue is never archived merely because no active human evaluator steps remain + +When disabled: + +- a default queue exists only while active human evaluator steps exist +- adding/restoring human evaluator work creates or unarchives the default queue +- removing/archiving the last active human evaluator archives the default queue + +## Default Queue Lifecycle + +Default queue reconciliation should use durable identity: + +- missing + required -> create +- archived + required -> unarchive +- active + required -> no-op +- active + not required -> archive + +Default queues should not be hard-deleted as part of normal reconciliation. + +## Queue Lifecycle Support + +Queues should gain product-level soft-delete support: + +- archive endpoint/service/DAO path +- unarchive endpoint/service/DAO path +- `include_archived` query support +- archived-inclusive lookup for default-queue reconciliation + +Hard delete may remain available for existing low-level semantics, but default-queue lifecycle should use archive/unarchive. + +## Canonical Queue Identity + +The system needs a reliable way to identify the default queue independently of shape. A custom queue may coincidentally have no scenario filter, no step filter, and no assignments. + +The proposal requires one of: + +- an explicit queue role/flag such as `is_default` +- or another canonical linkage that uniquely identifies the default queue for a run + +An explicit marker is the clearer fit. + +## Service Placement + +Default-queue reconciliation belongs with run creation and run mutation, not only dispatch flows. + +The current `_ensure_human_annotation_queue(...)` seam should evolve into a more general lifecycle operation such as: + +```text +reconcile_default_queue(run) +``` + +It should evaluate the global lifecycle policy and, when needed, the structural human-step policy. + +## Compatibility + +This proposal preserves: + +- existing evaluation-run primitives +- existing custom queue behavior +- existing queue-backed execution paths +- hard-delete support where still needed + +It changes the default composition: + +- default queue existence becomes managed by run lifecycle +- open `step_keys` become a supported queue shape rather than a snapshot omission +- simple evaluations can participate in the same queue model as simple queues + +## Product Boundary + +The backend supports both product postures: + +- default queues for every evaluation, including auto-only evaluations +- default queues only when human evaluator work exists + +The frontend can later decide whether to expose empty queues, nudge users toward adding human evaluators, or hide queues until human work appears. The API does not need to change again for that choice. diff --git a/docs/designs/unify-evals-and-queues/research.md b/docs/designs/unify-evals-and-queues/research.md new file mode 100644 index 0000000000..fcfbc2cf36 --- /dev/null +++ b/docs/designs/unify-evals-and-queues/research.md @@ -0,0 +1,500 @@ +# Research: Unifying Evaluations and Queues + +## Scope + +This note maps the evaluation/queue model that exists today and answers one concrete exploration question: + +> What would it mean, in the current architecture, for a regular evaluation to always have a default linked queue that behaves like a simple queue when human evaluators are present? + +The focus is backend behavior in: + +- `api/oss/src/core/evaluations/*` +- `api/oss/src/apis/fastapi/evaluations/*` +- `api/oss/src/dbs/postgres/evaluations/*` +- the neighboring annotations layer where it clarifies the boundary + +## Executive Summary + +The system already has a single low-level evaluation substrate: + +- an **evaluation run** defines the workflow graph and repeats +- **scenarios** are concrete work items within a run +- **results** are per-step, per-repeat outputs for a scenario +- **metrics** summarize results +- an **evaluation queue** is an overlay over a run that selects which scenarios and annotation steps are visible to which users + +The split users see today is mostly created by wrapper layers: + +- `SimpleEvaluationsService` wraps runs without queue-centric defaults +- `SimpleQueuesService` wraps runs plus a queue with queue-centric defaults + +That means the proposed product direction is structurally plausible: it does **not** require inventing a new primitive. It mostly requires deciding what the canonical/default queue attached to a run means and when it should be created or updated. + +The codebase is also already partway toward that direction: + +- `EvaluationsService._ensure_human_annotation_queue(...)` creates a queue for a run with human annotation steps when none exists. +- Human-bearing live runs call this during refresh. +- Queue-backed batch dispatch paths call it before processing traces/testcases. + +However, that helper currently creates a **narrow, snapshot-style** queue: + +- only when human steps exist +- only if the run has no queue at all +- with `step_keys` captured from the run at that moment +- with no assignments +- with no explicit scenario restriction + +It is a useful seam, but not yet the full default-queue model. + +The sharper target model is simpler than the current helper: + +- `scenario_ids=None` means all scenarios in the run +- `step_keys=None` means all steps included by the queue policy +- `user_ids=None` means unassigned +- repeats remain owned by the run, while assignments distribute scenario × repeat work + +## Current Domain Model + +### 1. Evaluation runs are the canonical execution object + +`EvaluationRun` stores the durable definition of an evaluation: + +- `data.steps`: input, invocation, and annotation steps +- `data.repeats`: repeat count for the run +- `data.mappings`: metric/result extraction mappings +- flags such as `is_live`, `is_queue`, `has_human`, `has_auto`, `has_testsets`, `has_queries` + +A run is therefore already capable of representing: + +- automatic-only evaluations +- human-only evaluations +- mixed human + automatic evaluations +- queue-backed and non-queue-backed flows + +The evaluator origin is not a separate resource type. It is encoded on annotation steps as `origin in {custom, human, auto}`. + +### 2. Queues are overlays over runs, not separate executions + +`EvaluationQueue` points to a `run_id` and stores queue-specific selection/distribution state in `EvaluationQueueData`: + +- `user_ids: List[List[UUID]] | None` +- `scenario_ids: List[UUID] | None` +- `step_keys: List[str] | None` +- optional batching controls + +The queue does **not** own scenarios or results. It derives visible scenarios from the underlying run and optionally filters them. + +This is important for the proposed default queue: + +- if `scenario_ids is None`, the queue automatically covers **all current scenarios in the run** +- if `user_ids is None`, the queue is effectively **unassigned** +- if the queue has no user filter, the scenario query path returns the run scenarios directly + +So the desired “default queue that follows future scenarios” already matches existing semantics **if** we leave `scenario_ids=None`. + +### 3. Scenario assignment is derived, not persisted per scenario + +Assignment behavior is computed from queue data at read time: + +- no `user_ids` -> everyone sees the run’s scenarios +- with `user_ids` -> `filter_scenario_ids(...)` deterministically partitions scenarios per repeat/user lane +- sequential vs randomized distribution is controlled by queue flags/settings + +That means the queue model already supports: + +- no assignees +- assignees per repeat lane +- repeated review lanes +- deterministic re-computation as scenarios are added later + +The subtle point is that **repeats live on the run**, while **assignment lanes live on the queue**. `SimpleQueuesService.create(...)` currently reconciles the two by setting run repeats to at least the number of assignment lanes. + +## Current Public/Service Surfaces + +### `SimpleEvaluationsService` + +This is a convenience wrapper over runs. It builds run steps from query/testset/application/evaluator revision IDs and exposes CRUD/lifecycle operations as “simple evaluations.” + +Notably: + +- evaluator inputs can be lists or explicit origin maps +- run flags are inferred from step origins +- it is run-first, not queue-first + +### `SimpleQueuesService` + +This is a different convenience wrapper over the same substrate. It: + +1. builds or reuses run data +2. creates a run with `is_queue=True` +3. creates one linked `EvaluationQueue` +4. stores queue-specific behavior such as assignments, step keys, and batching + +It is effectively a preset constructor for “evaluation run + annotation queue.” + +### Low-level evaluation endpoints + +The main evaluations API exposes separate resources for: + +- runs +- scenarios +- results +- metrics +- queues + +This exposes the true underlying shape more directly than either simple wrapper. + +### Annotations + +The annotations module is adjacent but distinct. It creates/edit annotations as trace-linked artifacts and may provision evaluators, but it is not the queue abstraction itself. The queue system is still implemented in evaluations. + +## How Simple Queues Work Today + +A simple queue is not a separate backend domain. It is a prescribed composition: + +1. Create an evaluation run whose input is either: + - direct traces/testcases, or + - source-backed queries/testsets +2. Add evaluator annotation steps. +3. Create one queue against that run. +4. Store only the annotation `step_keys` in the queue. +5. Optionally store assignments and batching settings. + +The queue then queries scenarios by: + +- starting from scenarios belonging to the run +- optionally applying `queue.data.scenario_ids` +- optionally applying user/repeat distribution + +That is why a queue with: + +- `scenario_ids=None` +- `step_keys=None` +- `user_ids=None` + +is the natural shape of the default queue. + +These are three independent axes: + +- scenario selection decides which scenarios are in the queue +- repeat assignment decides which scenario × repeat lanes a user gets +- step selection decides which steps must be completed for each assigned scenario × repeat + +`step_keys` do not participate in scenario or repeat selection, and they do not need to. Leaving them open is still the correct queue-level analogue of leaving `scenario_ids` open. + +## The Existing Proto-Unification Seam + +`EvaluationsService._ensure_human_annotation_queue(...)` currently does this: + +1. inspect run steps +2. collect human annotation step keys +3. if there are no human steps, do nothing +4. if any queue already exists for the run, do nothing +5. otherwise create an `EvaluationQueue` with: + - `run_id=run.id` + - `status=RUNNING` + - `step_keys=` + - no assignments + - no explicit scenario IDs + +This already gives the queue open scenario coverage and no default assignments, but it freezes step membership instead of leaving the queue open over the run’s steps. + +Today it is invoked from: + +- live run refresh before dispatch +- queue-backed trace/testcase batch evaluation dispatch + +That tells us two things: + +1. The architecture already treats queues as a natural companion to human annotation work. +2. The current behavior is still opportunistic and path-dependent, not a universal invariant of evaluation creation/editing. + +## What the Desired Default Queue Maps To in Current Terms + +| Desired behavior | Current primitive that already supports it | +|---|---| +| Queue linked to an evaluation | `EvaluationQueue.run_id` | +| No scenario selection; include all current/future scenarios | `queue.data.scenario_ids = None` | +| No assigned users by default | `queue.data.user_ids = None` | +| Cover all repeats | run-level `data.repeats`; queue assignment lanes can be absent | +| Step scope is not frozen | `queue.data.step_keys = None` | +| New scenarios added later become visible | queue scenario lookup derives from `run_id`, not a frozen list | + +So the cleanest first interpretation of a **default queue** is: + +```text +one canonical queue per evaluation run, +with no scenario restriction, +no step-key restriction, +and no assignees. +``` + +## Default Queue Policy + +The target model has two separate policies. + +### Structural policy + +This is the run-level condition: + +```text +has_human_evaluator_steps(run) +``` + +When default queues are conditional, this decides whether a run should currently have one. + +### Global lifecycle policy + +This is a configuration choice, for example: + +```text +EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS +``` + +When enabled: + +- create a default queue for every run +- never archive it merely because the run has no active human evaluators + +When disabled: + +- create or unarchive the default queue when the run has human evaluator steps +- archive the default queue when the run has no active human evaluator steps + +These policies are related but not interchangeable. The global setting defines whether default queues are unconditional. The structural rule only governs lifecycle when default queues are conditional. + +## Default Queue Lifecycle + +The desired queue identity is durable: + +- if the default queue does not exist and policy requires one, create it +- if it exists and is archived, unarchive it +- if it exists and is active, leave it alone +- if policy no longer requires it, archive it rather than hard-delete it + +This fits the broader evaluator model if evaluators are archived rather than removed. A queue can disappear from normal views while retaining identity and later return if human evaluator work becomes active again. + +The current queue API is not yet aligned with that lifecycle: + +- queues have lifecycle fields +- queue endpoints currently expose hard deletion +- queue queries do not yet expose `include_archived` +- queue lookup does not currently distinguish active from archived queues + +If default queues become durable linked objects, queue archive/unarchive operations and archived-aware lookup become part of the needed foundation. + +## Remaining Model Gaps + +### 1. `step_keys` are currently stored as a snapshot + +The current helper captures the human step keys that exist at creation time. The default queue should instead leave step scope open with `step_keys=None`, so later step changes do not require queue rewrites. + +### 2. There is no first-class distinction between default and custom queues + +Currently, a queue is just a queue. `_ensure_human_annotation_queue(...)` only checks whether **any** queue exists for the run. + +That creates ambiguity: + +- if a custom filtered queue exists, should it suppress creation of the evaluation’s default queue? +- if multiple queues exist, which one is the queue shown inside the evaluation? +- which archived queue should be restored when the default-queue invariant becomes true again? + +A stable default-queue marker or equivalent canonical linkage is needed once default queues and custom queues can coexist. + +### 3. `is_queue` still encodes a product distinction on the run + +Simple queues create runs with `is_queue=True`; simple evaluations generally do not. This flag is used for querying and queue-specific dispatch guards. + +If ordinary evaluations can have linked queues, `is_queue` should remain a technical execution flag rather than the signal that a run has a queue companion. + +### 4. Queue lifecycle is currently path-dependent + +Today automatic queue creation is reached from execution paths, not from the run mutation paths that define whether human work exists. + +Default-queue reconciliation belongs next to run creation/editing so it can enforce either: + +- unconditional queue existence, or +- conditional existence based on active human evaluator steps. + +## Multiple Human Evaluators, Assignments, and Repeats + +### Multiple human evaluators + +The run model supports many human evaluator steps already. A queue can target multiple annotation steps through `step_keys`. + +So there is no fundamental blocker to one default queue covering multiple human evaluators. The real question is product semantics: + +- should one task card represent one scenario with multiple human fields? +- or one scenario × evaluator step as separate queue work? + +The current queue primitive points at multiple step keys but scenario listing is scenario-oriented, not step-oriented. That suggests today’s model is closer to “one scenario can carry several annotation steps” than “each evaluator creates a separate queue item.” + +### Assignments + +The queue model already supports repeat-lane assignments: + +```text +user_ids = [[repeat_0 users], [repeat_1 users], ...] +``` + +A default queue with `user_ids=None` naturally means “unassigned.” + +What still needs product clarification is how assignment should behave when: + +- the evaluation repeat count increases later +- a human evaluator is added after assignments exist +- different human evaluators should have different assignee pools + +The current queue data model has one assignment matrix for the whole queue, not per evaluator step. If evaluators need separate assignment rules, one shared default queue may be insufficient or the model must evolve. + +### Repeats + +Repeats are owned by `EvaluationRunData.repeats`, not by the queue. Simple queue creation enforces: + +```text +run.repeats >= number of assignment lanes +``` + +That is compatible with a default queue that “covers all existing repeats,” provided the queue derives from the run rather than freezing repeat-specific scope. + +The open design question is what happens if repeats are later edited downward/upward after a queue already has assignments. The current storage model permits temporary mismatch. + +## Likely Design Direction + +### Recommended conceptual model + +Treat the queue as a **view/controller over human annotation work for an evaluation run**, not as a sibling product object that users must create manually. + +A practical backend direction would be: + +1. Every evaluation run may have one **canonical/default queue**. +2. The default queue is created automatically when the run first contains human annotation steps. +3. The default queue has: + - no scenario filter + - no assignments + - derived human-step membership, or managed synchronization +4. Additional custom queues may still exist for advanced filtered/assigned workflows. +5. The evaluation API should expose the canonical queue link directly so the UI can render the same queue both inside the evaluation and on the Queues surface. + +### Why this fits the current code well + +It reuses what already exists: + +- run/scenario/result storage +- evaluation queue storage +- scenario derivation by `run_id` +- assignment logic by repeat lane +- the already-present `_ensure_human_annotation_queue(...)` seam + +The largest required addition is not storage volume; it is **semantics**: + +- how to mark the canonical queue +- how default queue step membership stays current +- where invariant enforcement lives + +## Concrete Gaps to Resolve Before Implementation + +### Product/behavior questions + +1. Is the default queue only for **human** steps, or for all annotation steps? + - The current helper chooses human-only. + - The product statement sounds human-focused. + +2. With multiple human evaluators, is assignment shared across them or evaluator-specific? + - Current queue data supports shared assignment only. + +3. When a run already has a custom queue, should the default queue still exist? + - Current helper says no because it stops if *any* queue exists. + +4. If human evaluators are removed, should the default queue remain, archive, or disappear? + +5. Should all evaluation runs have a default queue immediately, or only runs with human work? + - The latter better matches current semantics and avoids empty queues for automatic-only runs. + +### Technical questions + +1. Should default queue membership be derived with `step_keys=None`, or synchronized explicitly? +2. How is “default queue” represented? +3. Should queue creation/update happen in service-layer run mutation methods rather than dispatch flows? +4. Does `is_queue` remain meaningful once ordinary evaluations can have linked queues? +5. What migration/backfill is needed for existing runs with human steps but no queue? + +## Candidate Implementation Shapes + +### Option A — Minimal evolution + +Keep explicit `step_keys`, add a default queue marker, and update `_ensure_human_annotation_queue(...)` plus run-edit paths to keep the default queue synced. + +**Pros** + +- smallest delta from current code +- easiest to reason about with existing queue reads +- preserves explicit custom queue semantics + +**Cons** + +- sync bugs remain possible +- every run edit touching human steps must remember to update the queue + +### Option B — Derived default queues + +Define `step_keys=None` on a default queue as “all current human annotation steps for this run.” Custom queues continue to use explicit step keys. + +**Pros** + +- best match for “follows the evaluation as it changes” +- new human evaluators appear automatically +- fewer synchronization paths + +**Cons** + +- requires read-time logic to distinguish default/derived queues from unconstrained queues +- needs crisp semantics for historical behavior and custom queues + +### Option C — No persisted default queue; virtualize it + +Do not persist a canonical queue. Derive one virtually from the run whenever human steps exist. + +**Pros** + +- no sync issue +- cleanest conceptual model + +**Cons** + +- weaker fit with “visible in Queues” unless the Queues API/UI also supports virtual resources +- assignments and future edits become awkward because there is no row to mutate + +**Current recommendation:** Option B looks like the strongest long-term fit, with Option A as the lower-risk incremental step if we want a small migration first. + +## Key References + +- `api/oss/src/core/evaluations/types.py` + - `EvaluationRun*` + - `EvaluationQueue*` + - `SimpleEvaluation*` + - `SimpleQueue*` +- `api/oss/src/core/evaluations/service.py` + - `EvaluationsService._ensure_human_annotation_queue(...)` + - `EvaluationsService.fetch_queue_scenarios(...)` + - `SimpleEvaluationsService` + - `SimpleQueuesService` +- `api/oss/src/core/evaluations/utils.py` + - `filter_scenario_ids(...)` +- `api/oss/src/dbs/postgres/evaluations/dao.py` + - queue CRUD and user filtering +- `api/oss/src/apis/fastapi/evaluations/router.py` + - low-level evaluation endpoints + - simple evaluation endpoints + - simple queue endpoints +- `api/oss/src/core/annotations/service.py` + - neighboring annotation abstraction, distinct from queueing + +## Bottom Line + +The backend already has the right primitive split for unification: + +- **evaluation run** = what is being evaluated +- **queue** = how human annotation work over that run is exposed/distributed + +The exploration should therefore avoid introducing a new “human evaluation” abstraction. The more promising path is to make a linked default queue a first-class, automatically maintained aspect of evaluation runs that contain human steps, while keeping custom queues as an advanced overlay when users need narrower assignment or filtering behavior. diff --git a/docs/designs/unify-evals-and-queues/unify-evals-extension-synthesis.md b/docs/designs/unify-evals-and-queues/unify-evals-extension-synthesis.md new file mode 100644 index 0000000000..832b12eae5 --- /dev/null +++ b/docs/designs/unify-evals-and-queues/unify-evals-extension-synthesis.md @@ -0,0 +1,263 @@ +# Unify Evals Extension Synthesis + +## Purpose + +This note captures the refined model that emerged after relating the queue-unification work to the parallel eval-loop unification work. + +The central clarification is that several concepts currently overloaded into “queue” should be separated: + +- source family +- default queue identity +- simple-queue eligibility +- queue lifecycle + +## Final Vocabulary + +### Source-family flags on runs + +Runs should expose distinct inferred flags for each source family: + +- `has_queries` +- `has_testsets` +- `has_traces` +- `has_testcases` + +These flags answer where scenarios come from and should drive: + +- validation +- topology classification +- source-family filtering +- mixed-input prevention + +They should replace the current tendency to infer direct trace/testcase behavior indirectly through `is_queue` plus synthetic step-key inspection. + +### `run.flags.is_queue` + +`is_queue` should become the persisted derived flag that answers: + +> Can this evaluation currently be interacted with through the simple annotation queue surface? + +The intended condition is: + +```text +active default queue exists +and active human evaluator work exists +``` + +This aligns the name with the product meaning and makes the flag directly useful for querying. + +It should be maintained eagerly, like the other persisted run flags, whenever: + +- the default queue is created +- the default queue is archived or unarchived +- active human evaluator work appears or disappears + +### `queue.flags.is_default` + +Queues need an explicit canonical-default marker: + +```text +queue.flags.is_default = true +``` + +Shape alone is not enough to identify the canonical queue, because a custom queue may coincidentally have the same open filters. + +## Default Queue Model + +A default queue is the canonical persisted queue view for a run. + +Its invariant shape is: + +```text +scenario_ids = None +step_keys = None +user_ids = None +``` + +and no queue-specific batching constraints. + +Interpretation: + +- no scenario filter -> all run scenarios +- no step filter -> all included steps +- no user assignments -> unassigned +- repeat coverage remains run-owned + +### Uniqueness + +There must be at most one default queue per run, including archived queues. + +Because queue flags are persisted JSONB, this can be enforced with a partial unique index over the materialized JSONB flag: + +```sql +CREATE UNIQUE INDEX ux_evaluation_queues_default_per_run +ON evaluation_queues (project_id, run_id) +WHERE (flags ->> 'is_default')::boolean = true; +``` + +An archived default queue still occupies the uniqueness slot. Reconciliation should unarchive it rather than create a duplicate. + +### Edit restrictions + +When `is_default=true`, editing must not allow: + +- scenario filters +- step-key filters +- assignments +- batching settings + +Default queues are canonical open views, not user-customizable slices. + +## Default Queue Lifecycle + +There are two policies. + +### Structural policy + +```text +has_active_human_evaluator_steps(run) +``` + +This says whether a run warrants a default queue when queues are conditional. + +### Global lifecycle policy + +A global policy toggle determines whether default queues are unconditional for all runs, for example: + +```text +EVALUATIONS_DEFAULT_QUEUES_FOR_ALL_RUNS +``` + +When enabled: + +- every run gets a default queue +- the default queue is not archived merely because active human work disappears + +When disabled: + +- active human work requires a default queue +- absence of active human work archives the default queue + +### Reconciliation behavior + +```text +required + missing -> create +required + archived -> unarchive +required + active -> no-op +not required + active -> archive +``` + +Queue lifecycle should use soft deletion for this behavior. Hard deletion may remain available separately where still needed. + +Queue queries need archived-aware support so reconciliation can restore the existing canonical row. + +## Simple Queue Semantics + +A `SimpleQueue` should be understood as: + +```text +a simplified human-work projection of an evaluation's default queue +``` + +not as a wrapper around runs that happen to use a special ingestion mode. + +### Eligibility + +A run is simple-queue eligible when: + +```text +run.flags.is_queue == true +``` + +under the redefined meaning above. + +That means all of these can appear through the simple queue surface when they have active human work and an active default queue: + +- query-backed evaluations +- testset-backed evaluations +- direct trace-backed evaluations +- direct testcase-backed evaluations + +Auto-only evaluations with an eager but empty default queue are not simple-queue eligible unless product later decides otherwise. + +### Identifiers + +Simple queue endpoints should remain queue-ID based. + +If a caller starts from a run, add one small lookup endpoint: + +```http +GET /evaluations/runs/{run_id}/default-queue +``` + +This returns the canonical queue resource or ID, after which existing simple queue endpoints can continue using queue IDs. + +There is no need for run-scoped archive/unarchive endpoints. + +## Relationship to Unified Eval Loops + +The parallel eval-loop work formalizes: + +```text +evaluation = graph + tensor + process(slice) +``` + +The queue model fits above that as: + +```text +default queue = canonical persisted human-work view over the tensor +``` + +The queue axes align naturally with tensor dimensions: + +- scenarios +- steps +- repeats + +A default queue is the open/default view over those dimensions. + +### Boundary + +The default queue is not orchestration. + +- eval runtime owns planning, processing, and tensor population +- queues own visibility, assignment, queue lifecycle, and user workflow + +## Shared Design Tension: Step Lifecycle + +The unified-loop design currently leans toward: + +```text +remove_step -> prune tensor cells +``` + +But if product semantics require evaluators or steps to be archived rather than hard-removed, the graph model needs to support active versus archived steps. + +That affects queue logic directly: + +- queue eligibility should depend on active human steps +- archived human steps may remain visible historically without keeping the queue active +- old tensor cells may remain instead of being pruned + +This needs explicit alignment with the eval-loop mutation model. + +## Recommended Backend Changes + +1. Add inferred run flags: + - `has_traces` + - `has_testcases` +2. Redefine persisted `run.flags.is_queue` as simple-queue eligibility. +3. Add `queue.flags.is_default`. +4. Enforce one default queue per run with a partial unique index over `flags.is_default`. +5. Reject filters/assignments/batching edits on default queues. +6. Add queue archive/unarchive support and archived-aware queries. +7. Add default-queue reconciliation tied to run creation/editing and queue lifecycle changes. +8. Persist and eagerly refresh `run.flags.is_queue` when the default queue or active human-work state changes. +9. Keep simple queue endpoints queue-ID based. +10. Add a small run-scoped lookup endpoint for the default queue: + +```http +GET /evaluations/runs/{run_id}/default-queue +``` + +11. Align eval-loop mutation semantics around active vs archived steps before hardening remove/prune behavior. diff --git a/docs/designs/unify-evals-and-queues/unify-evals-extension-verbatim.md b/docs/designs/unify-evals-and-queues/unify-evals-extension-verbatim.md new file mode 100644 index 0000000000..66e41f27e7 --- /dev/null +++ b/docs/designs/unify-evals-and-queues/unify-evals-extension-verbatim.md @@ -0,0 +1,533 @@ +Yes — I think this is a better model than the one I was circling around before. + +It gives each fact its own place instead of forcing `is_queue` to carry a hidden runtime meaning that does not match its name. + +## The revised flag model + +### Add inferred source flags + +Alongside: + +- `has_queries` +- `has_testsets` +- `has_evaluators` + +add: + +- `has_traces` +- `has_testcases` + +Then the source family becomes explicit: + +| Source shape | Flags | +|---|---| +| query-backed | `has_queries=True` | +| testset-backed | `has_testsets=True` | +| externally supplied traces | `has_traces=True` | +| externally supplied testcases | `has_testcases=True` | + +That gives us the right vocabulary for: + +- validation +- topology classification +- query filtering +- avoiding mixed source families +- distinguishing declared sources from externally supplied concrete items + +And importantly: + +> that source distinction does not need to be smuggled through `is_queue`. + +I like that a lot. + +## Then redefine `is_queue` + +Under your proposal: + +```text +is_queue = there is an active default queue + and at least one active human evaluator step +``` + +or more plainly: + +```text +this evaluation is currently interactable as a simple annotation queue +``` + +That is much more intuitive. + +It answers the product-relevant question: + +> Can this run be interacted with through the simple queue / annotation queue surface? + +And it can turn off when: +- the default queue is archived +- there are no active human evaluator steps + +That means `is_queue` is no longer an execution/input-source flag. It becomes a derived **human-work availability** flag. + +I think that is actually the right use of the name. + +## The clean separation becomes + +| Fact | Where represented | +|---|---| +| declared query source | `has_queries` | +| declared testset source | `has_testsets` | +| external trace source | `has_traces` | +| external testcase source | `has_testcases` | +| has evaluators | `has_evaluators` | +| has active human evaluators | `has_human` or eventually `has_active_human` if step archival becomes explicit | +| can be used via simple queues | `is_queue` | +| this particular queue is canonical | `EvaluationQueue.flags.is_default` | + +That is much clearer. + +--- + +# A few important consequences + +## 1. `is_queue` can no longer be derived from the run alone + +Today run flags are derived only from run data. + +Under this model, `is_queue` depends on: + +- run graph state +- queue existence +- queue archival state + +So we should stop thinking of all run flags as purely “derived from steps.” + +Some are graph-derived: +- `has_queries` +- `has_testsets` +- `has_traces` +- `has_testcases` +- `has_evaluators` +- `has_human` +- `has_auto` + +But `is_queue` is relationship/lifecycle-derived: +- active default queue exists +- active human work exists + +That is fine, but it means the reconciliation path needs to update the run flag whenever the default queue is created, archived, or unarchived. + +## 2. `has_traces` / `has_testcases` solve the current synthetic-source hack + +Right now the code has this awkward logic: + +```python +if flags.is_queue and not _references: + inspect step_key text for "query" or "testset" +``` + +That exists because direct queues use synthetic input steps and the system still wants to classify them as trace/testcase-ish through the old flags. + +With explicit: + +- `has_traces` +- `has_testcases` + +we can stop overloading: +- `has_queries` to mean “trace-like” +- `has_testsets` to mean “testcase-like” +- `is_queue` to help infer source family from missing references + +That should make validation and topology much more honest. + +## 3. Source-backed human evaluations can naturally be simple queues + +Then your desired product rule becomes straightforward: + +```text +simple queue eligible +iff +run.is_queue == True +``` + +because `is_queue` now means exactly: + +```text +active default queue + active human evaluator work +``` + +So: + +| Run | `is_queue` | +|---|---:| +| query-backed + human evaluator + active default queue | true | +| testset-backed + human evaluator + active default queue | true | +| direct traces + human evaluator + active default queue | true | +| direct testcases + human evaluator + active default queue | true | +| auto-only eval with eager default queue | false | +| human eval whose default queue is archived | false | + +That is much more useful than the current meaning. + +--- + +# On the default queue itself + +Yes: I think we need an explicit queue flag: + +```python +EvaluationQueueFlags.is_default: bool +``` + +because shape alone is not enough once custom queues exist. A custom queue could happen to also have: + +- no scenario filter +- no step filter +- no assignments + +and still not be the canonical default queue. + +## Default queue invariants + +For `is_default=True`, enforce: + +```text +scenario_ids is None +step_keys is None +user_ids is None +``` + +You mentioned “no repeat index”; today queues do not have a repeat-index filter field, so in current schema that translates to **no assignments**, because assignment lanes are the queue-level way repeats are partitioned. If repeat-index filtering is later added explicitly, then yes, default queues should also forbid that. + +And I agree with the behavior: + +- default queue archived → it still exists +- creating another default queue for same run should fail +- reconciliation should unarchive the existing one rather than create a second row + +So the invariant is: + +```text +at most one default queue per run, including archived queues +``` + +That likely wants a real uniqueness guarantee, not just service logic. Since `is_default` inside JSONB flags is awkward for constraints, I would at least consider making `is_default` a real DB column or adding an explicit indexed field rather than burying it only in JSON flags. If we keep it only inside JSONB, enforcement is still possible but less pleasant and less obvious. + +--- + +# On simple queue identifiers + +Yes — today the simple queue endpoints are queue-ID-centric. + +If after unification the simple queue is fundamentally: + +```text +the simple projection of the run’s default queue +``` + +then using the **run ID** is probably the better canonical identifier for that surface. + +Because the user-facing thing is increasingly “the evaluation’s queue,” not “some arbitrary queue row.” + +## Compatibility shape + +Your compatibility idea is reasonable: + +- if the identifier resolves to a queue ID, use that queue +- otherwise, if it resolves to a run ID, fetch that run’s default queue +- eventually prefer run IDs in the new API/UI paths + +Since both are UUIDs, this is a pragmatic compatibility shim rather than a semantically clean contract. It works, but the implementation should be careful and deterministic: + +1. try queue ID lookup first +2. if no queue exists, try default queue by run ID +3. if both could theoretically exist, queue ID wins + +UUID collision across tables is extraordinarily unlikely, but the precedence should still be explicit. + +Longer term, I would probably prefer: +- queue-specific endpoints remain queue-ID based +- simple queue endpoints become run-ID based +- maybe add explicit routes like `/simple/queues/by-run/{run_id}` during transition + +But as an internal compatibility move, your suggestion is sound. + +--- + +# The resulting model is much stronger + +I would now summarize it this way: + +```text +Source flags describe where scenarios come from: + has_queries + has_testsets + has_traces + has_testcases + +Queue flags describe queue identity: + is_default + +Run.is_queue describes product eligibility: + active default queue + active human evaluator work + +SimpleQueue is the simplified API view over: + the run's default queue +``` + +That gives each concern one home. + +It also removes the awkwardness where a run could “have a queue” but `is_queue=False`, or have `is_queue=True` mostly because it accepts source batches. Under your model, the name and the meaning line up again. + +## One thing I would still decide explicitly + +Whether `is_queue` should be persisted at all or always recomputed. + +Because it depends on both: +- run state +- queue state + +If it is persisted, reconciliation must update it transactionally whenever: +- default queue created +- default queue archived/unarchived +- active human evaluator steps appear/disappear + +If it is recomputed, queries become more expensive or need joins. + +Given that you explicitly want it queryable, persisting it as a denormalized derived flag is reasonable — but then I would treat **default queue reconciliation + run flag refresh** as one logical operation. + +This is a much cleaner design than the earlier alternatives. + +--- + +Yes — on both points. + +## 1. Uniqueness for the default queue + +`scenario_ids`, `step_keys`, and `user_ids` all currently live inside `EvaluationQueueData`, which is stored in the queue’s JSON `data` column. So if we define the default queue only by the shape: + +```text +scenario_ids is None +step_keys is None +user_ids is None +``` + +then a normal relational unique index over those fields is not straightforward. + +You could technically build expression indexes over JSON paths, but that would be a poor foundation for a first-class invariant like: + +```text +at most one default queue per run +``` + +I think your instinct is right: if **defaultness** matters enough to enforce uniqueness, it wants a first-class indexed column. + +### Recommended shape + +Add something like: + +```python +is_default: bool +``` + +as a real queue column, even if it is also mirrored into DTO flags for API symmetry. + +Then enforce: + +```text +unique(project_id, run_id) where is_default = true +``` + +That gives you the exact invariant you want: + +- only one default queue per run +- archived default queue still occupies the slot +- trying to create another default queue fails +- reconciliation can find and unarchive the existing one + +And separately, enforce in service validation: + +```text +if is_default: + scenario_ids must be None + step_keys must be None + user_ids must be None + batch settings must be None +``` + +The uniqueness invariant should key on **identity** (`is_default`), not on a coincidental combination of empty filters. + +That is much safer than saying “whichever queue happens to have no filters is default.” + +## 2. Simple queues can stay queue-ID based if default queue lookup is easy + +I agree with your revised take. + +If we add a very small direct way to fetch the default queue for a run, then we do **not** need to overload simple queue identifiers with run IDs. + +Something like: + +```http +GET /evaluations/runs/{run_id}/queue +``` + +or more explicitly: + +```http +GET /evaluations/runs/{run_id}/default-queue +``` + +would be enough. + +Then the flow becomes: + +1. evaluation screen has `run_id` +2. fetch default queue in one cheap call +3. receive `queue_id` +4. use existing simple queue endpoints with `queue_id` + +That preserves the clean existing identity model: +- queue resources use queue IDs +- runs use run IDs +- no ambiguous UUID interpretation +- no compatibility shim needed unless product wants one for some other reason + +I’d favor: + +```http +GET /evaluations/runs/{run_id}/default-queue +``` + +because it is unambiguous and leaves room for other queue relationships later. + +Possibly also: + +```http +POST /evaluations/runs/{run_id}/default-queue/archive +POST /evaluations/runs/{run_id}/default-queue/unarchive +``` + +if we want run-scoped convenience operations, though the generic queue archive/unarchive endpoints may already be enough. + +## 3. Persisting `run.flags.is_queue` + +I agree with you. + +Because we want: + +- cheap filtering +- parity with the other persisted inferred run flags +- no joins for the common read paths +- and queue archival/unarchival is a meaningful state transition anyway + +then `is_queue` should be persisted and eagerly maintained. + +Under the new meaning: + +```text +run.flags.is_queue = + active default queue exists + and active human evaluator work exists +``` + +And yes, that means queue lifecycle operations must update the run flags eagerly: + +| Event | `run.flags.is_queue` effect | +|---|---| +| default queue created and human work exists | `true` | +| default queue unarchived and human work exists | `true` | +| default queue archived | `false` | +| last active human evaluator archived | `false` | +| human evaluator added/restored while default queue active | `true` | + +This is analogous to the other denormalized flags: +- they are persisted +- they are inferred/maintained eagerly +- query paths stay cheap + +The only thing I would be careful about is **where** that synchronization lives. I would want one narrow service-level operation that owns the invariant, rather than scattered manual edits: + +```text +reconcile_default_queue_and_run_flags(...) +``` + +or maybe two lower-level pieces used transactionally: + +```text +reconcile_default_queue(...) +refresh_run_flags(...) +``` + +But conceptually, yes: persist it and keep it in sync. + +## Updated model after your refinements + +```text +EvaluationRunFlags + has_queries + has_testsets + has_traces + has_testcases + has_evaluators + has_human + has_auto + is_queue # can be used via simple queue surface + +EvaluationQueue + is_default # first-class indexed identity field + +Default queue invariant + at most one per run + scenario_ids=None + step_keys=None + user_ids=None + no batching constraints + +Simple queue endpoints + remain queue-ID based + +Default queue lookup + add a direct run-scoped endpoint to get queue_id cheaply +``` + +That feels quite settled to me now. + +--- + +Yes — if `is_default` is materialized inside the queue `flags` JSONB, then Postgres can enforce uniqueness from that directly. We do **not** necessarily need a dedicated physical column just for the index. + +For example, conceptually: + +```sql +CREATE UNIQUE INDEX ux_evaluation_queues_default_per_run +ON evaluation_queues (project_id, run_id) +WHERE (flags ->> 'is_default')::boolean = true; +``` + +That would give us the important invariant: + +```text +at most one default queue per run, including archived rows +``` + +because archived rows still satisfy the partial-index predicate. + +So yes: if we are comfortable treating `flags.is_default` as a materialized persisted field, a partial unique index over the JSONB expression is enough. + +The tradeoff is mainly ergonomics: +- **JSONB expression index**: no extra column, keeps queue flags grouped together +- **real column**: easier to inspect/query/index conventionally + +But technically, your approach is sound, and in this codebase it may be the more consistent choice if other queue flags already live in JSONB. + +And agreed: **no** to run-scoped archive/unarchive endpoints. + +We only need: +- generic queue archive/unarchive operations +- plus a simple way to fetch the default queue for a run + +So the useful addition is something like: + +```http +GET /evaluations/runs/{run_id}/default-queue +``` + +but not special lifecycle endpoints hanging off the run. diff --git a/docs/docs/reference/api/accept-invitation.api.mdx b/docs/docs/reference/api/accept-invitation.api.mdx index 3efa153093..6ca62ee9af 100644 --- a/docs/docs/reference/api/accept-invitation.api.mdx +++ b/docs/docs/reference/api/accept-invitation.api.mdx @@ -5,7 +5,7 @@ description: "Accept an invitation to an organization." sidebar_label: "Accept Organization Invitation" hide_title: true hide_table_of_contents: true -api: eJztVk1v4zYQ/SvEnFpAtd1ge1EvdbcB1t22CZK0RZEYwViaWNxIJJekkriC/nsxpGTJcpJ+YNtTdRM5fG84M3wzDXjcOkiv4cxuUcnf0UutHKwTyMllVhr+hxSWWUbGC1RCqgfpg5nwmhf06OTsRt2oC5SOXHqjhBDi3dXV+ekTH5ZapeJ2BHv7tXAefe1uM51TKr5aLJ49sxoYlfbiTtcqF9qKAp2gJyMt5ROkNy8g/aZrgaUlzHdiQ6VWW76DL6Q7uMVzaDfqgnxtVX+v7y/PfrogZ7RylIoYHson0XnU9t4ZzGiCeLJYQALakA2mqxxSwABxOwBAAgYtVuTJcooaUFgRpDB29VbmkIDkFBn0BSRg6WPNIYHU25oScFlBFULagN8ZPu68lWoLCXjpS14Yp16scmjbZM+1v8GnIPq1B5uyGKs/UOZHHB9rsrt/RHIesSLFOiKQ89/qfMfHpoCZVp6U5y00ppRZCMP8g+Oyb0Z8xnK+vCQX2PU9qdfcuAoGbQJUoSxfszwNBm2b9BZ6wxc4uPx1R9jDrYfj4XVQR9cyjO3KMjjKpZY2k9d8WWcZOXdXl6KvYfjroYgsb05OjoF/wVLmsZBOrdX2b6BOApyT7+ImPVXu2KDU2cEuqt3ZXXgmh4HmMutWpPK0JQvtegg2Wou7UTZ+0NFBTl3ltq8l7kdyDrcEe7BXcszBEFe823KFmzoEZMghL7QJZP5pBLMvhN7uLcfyyf9psXBsovud3ahehhTFDL0ciu9iCp4j601YX48AY31U5AvNwma080HLfAEpzMfq5ebNRMza+V5x3LwZq087D9JI8yiUkIAj+9BLY21LBkcjQ8Ljb+G9cel8TvUsK3Wdz3BLyuMMZTRcM0ZWW+l3AWR5vnpPu3eEOVlIr9djg0uu01h5h2b7bKGR74nj14nasvaFtt3Vel0r4ikOEL+Ai0GcTp+wMiWNxGUoo05DhpIGqe70uIKW4WZieb6Co9Y93uLXiFkovt7NsA3JJGZDqEb8nrD6Zr/DfnACIs1i9uVswUuc7wrVmCIOD4d9ZtznDhxuBsn4f+z4F8aOrlxZSOamRBmkLiS/6R7p9cGI4SCB9HjmGN4p7x/NCfxUIemmGtafgmUgvYam2aCjn23ZtrwcGz2/vlw63JQsYHdYOnqlKj676LTuc/HSfe5pN50rHrCs2TC8+we0ktk+PXOvBmo35uw9msaRxeo/pD9IU2iDRa92TWfyNrJ9EZrVAHHUu9nzeGLZC/LLtutRPzg/u7yCBDbdQFbpnM9YfOQmho/RXW1i6fHExmsNlKi2NbfbFCImf38A9KNlug== +api: eJztVk1v4zYQ/SvEnFpAjdxge1EvdbcB1t22CZK0RZEYwViaWNxIJJekEruC/nsxpGTJdpJ+YNtTdRM5895wZvg4LXhcO8hu4NyuUcnf0UutHCwTKMjlVhr+hwzmeU7GC1RCqkfpg5nwmhf0xPPkVt2qS5SOXHarhBDi3fX1xdmGnaVWmbibwN59LZxH37i7XBeUia9ms2d9FiOj0l7c60YVQltRohO0MdJScYD05gWk33QjsLKExVasqNJqzWfwpXR7p3gO7VZdkm+sGs71/dX5T5fkjFaOMhHTQ8VBdp60fXAGczpAPJ3NIAFtyAbTRQEZYIC4GwEgAYMWa/JkuUQtKKwJMpiGeicLSEByiQz6EhKw9LHhlEDmbUMJuLykGiFrwW8NuztvpVpDAl76ihempReLArou2XHtTvApiH4dwA5ZjNUfKPcTjo8N2e0/IrmIWJFiGRHI+W91sWW3Q8BcK0/K8xYaU8k8pCH94Ljt2wmfsVwvL8kFdv1A6rUwroNBlwDVKKvXLM+CQdclg4Ve8QH2Dn/TEw5wy9E93A7q6TqGsX1bhkC51bL24DZfNXlOzt03lRh6GP56KiLLm9PTY+BfsJJFbKQza7X9G6gHCS7I93mTnmp3bFDpfG8X1fb8PlyT/URzm/UrUnlak4VuOSYbrcXtpBo/6Bggl65269cK9yM5h2uCHdgrNeZkiGve7bjDTRMSMtaQF7oEcr+ZwOwaYbB7y7nc+D9tFs5NDL+3m/TLWKJYoZdT8V0swXNkgwnr6xFg7I+afKlZ2Ix2PmiZLyGDdKpeLm0PxKxLd4rj0naqPl0apJHSKJSQgCP7OEhjYysGRyNDweNv6b3J0rTSOValdj5uL9kzb6z02+A6v1i8p+07woIsZDfLqcEVd2fst32zXY3QyPfEWeulbN74Utv+QIOaldGL08J9fzlK0tkGa1PRRFLG5umVY2xkkOpeT/tmviblUcwvFnD0YE+3+A5iHlpuCDNsQzLJlMvSFMPyCcp0wu8J6292OxwHpz3SzE6+PJnxEle5RjWliCPD/usyfd32Am5Hofh/2PgXho2+XVk+UlOhDAIXit/2V/Nmb7BwkEB2PGmMt5P3j6YDvqCQ9LMMqw5fO4Zu2xU6+tlWXcfL8Xnn21dIh6uKZeseK0evdMVnl73CfS5eOs8DbQ+niUesGjYM9/4RrWS2T888qIHaTjmHiA7zyBL1H9LvlSk8fuWgdm1v8jayfRGeqBHi6MXmyKPHfJDhl22Xk1fg4vzqGhJY9WNYrQv2sfjETxc+xXC1ia3HcxqvtVChWjf8yGYQMfn7A1CSYls= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/add-simple-queue-testcases.api.mdx b/docs/docs/reference/api/add-simple-queue-testcases.api.mdx index a64520e4b0..05ca9953cc 100644 --- a/docs/docs/reference/api/add-simple-queue-testcases.api.mdx +++ b/docs/docs/reference/api/add-simple-queue-testcases.api.mdx @@ -5,7 +5,7 @@ description: "Add Simple Queue Testcases" sidebar_label: "Add Simple Queue Testcases" hide_title: true hide_table_of_contents: true -api: eJydVttu2zgQ/RVjnraAfKmTuF091ZsNUKO7aJq4+2IIwVgc2exKosJLGlfQvxdDypZc5wLULzY5w8OZM2fGrMHixkC8gqsHzB1aqUoDSQSqIu1XCwExoBB3RhZVTnf3jhzdWTI2RUMGIqhQY0GWNOPUUGJBEEPwkwIikCXEUKHdQgSa7p3UJCC22lEEJt1SgRDXYHcVnzNWy3IDEWRKF2ghBuc8ipU2Z4cvDDxYCGiaJOCRsX8psWOQX+FTVVoqLZuwqnKZ+pzG34wqea+7vdKcsZVkfCxtendS+LW0VJjXg2yivQNqjbte0MsWcLAQBprOT62/UWqPeFkd3550ILe+Aj7/PZ651ISWbgIL0DSMrclUqjQhlelkwl+CTKplxdkzkktTMiZz+eCmdYbfJitVLhxqc5KlpQ3pXvaX3iMCQRm63EI8aaJOIHxdufucefW8RvDBo3R5Dk3ypC5O6X2CwoU4pB5oO59OT5n6D3MpPA+DK62V/n2aBFmU+ZGajh1ylR5ZnyOlR8Ke6iZ5Xnr/qBAgq7Mwm6dUvHf9l4zBDXU6ft7VkzFYsrXhDq9ckEBrXviNJoLUPvZgTupxyVw+2ldbgrkJ4bd+vcJ3JQoVep6Kv0MJXhLIx+Xy+gQw6ONYGHMhBkFNg6C8ZW8kFmS3igdnpYz1I9JuIYZxmKFjL30zrvct0IwP83QMERjSD/tp6nTOB7GSvu5hubW2MvF4TG6U5sqJEW6otDhCGRwTxkidlnbnQebXi0+0+0goSEO8SvoOtyzXIMBjt0PRsJKfiGlsJ/vc2a3S8kdQVTvet+EU88SNcNON5atH5KRPx+oKzjJ8f5HNzocX796+G55fzKbD9VmWDqfpn7OzbDbDDGeQeH1lqi+vuc93ML9ewEld+iZuVUy9MvfBezNEvzDZEQgRUOEbFSxh8eFgYV1xWcI1k9Hb0YS3uMIFlv0rXlLGUbAHirkHxlWO0nepD61uRbOCIBpoJyaDxL0/1/4/MXfFlhUXr6Cu12joq86bhrfvHWkWQxLBA2qJa+ZxVYOQhn8LiDPMDZ0EeBh28MdN249vBhA9HfheMCWrhd8TvIII/qdd/0Xgp9V2r8a6NV+Gm4Z+pnTHT0Yst0E4MU9TquyLvkmvF68/3y4hgnX7VCiU4DMav/Oswe8hVFWFJxC/JXivhhzLjeOpGEPA5M9PnKUkig== +api: eJydVt9v2zYQ/leEe1oBOXKdxN30VC8LUKMbmiVeXwwhOIsni50kKiSVxhP0vw9HSrZc5wdQv9gk74533333mS1Y3BqI13D9iEWDVqrKQBKCqkm71VJADCjEvZFlXdD9Q0MN3VsyNkVDBkKoUWNJljTHaaHCkiAGbycFhCAriKFGm0MImh4aqUlAbHVDIZg0pxIhbsHuavYzVstqCyFkSpdoIYamcVGstAUb/M2Bg6WArkt8PDL2dyV2HOTH8KmqLFWWj7CuC5m6mqJvRlW8d7i91lyxlWRcLn1591K4tbRUmreT7MLBALXG3SjpVR8wWAoD3cFObb5Rao9wWR/fnhyC3LkOuPqHeOZKE1q69ShA13FsTaZWlfGlzKZT/hJkUi1rrp4jNWlKxmRNEdz2xvDTYKWq8U59TbKytCU9qv7KWYQgKMOmsBBPu/BAEL6u2n3JHHveAnhvUTVFAV3yLC9O4X0GwqXYl+5hu5jNTpH6ioUUDofgWmulfx4mQRZlccSmY4NCpUenL4EyAmGAuktept6fyifI7CzN9jkWD6Z/kTG4pQOPXzZ1YAQrPu14wuvGU6A/XrqNLoTUPo3CnPTjirF8sm+OBGPj0+/tRo0/tMh36GUo/vAteI0gn1arm5OAnh/HxFgIEXg2BZ55q5EklmRzxcJZK2OdRNocYoi8hkaO+iZqhxHoor2eRhCCIf04qGmjC3bEWrq++2VubR1HUaFSLHJlrD9O2DNttLQ757q4WX6m3SdCQRridTI2uGOSetodm+1bhbX8TAxer+eLxuZKy/88l3pRz70Xo8P0vz2I8fUTcqmnYrqG8wx/vczmF5PLD+8/TC4u57PJ5jxLJ7P0t/l5Np9jhnNIHKsyNSbVYkuVxWBxs4STboyPeEAxdXwcknfHEI7wM3EUods+Q8moU+nGEyxh+XF/wmziZvhrpmfvz6a8xX0tsRpf8RofjpLdQ8zMj+oCpZtNl1rbU2UNnirQ6yQHiUd/qeP/X54FZgF7te0GDf2ji67j7YeGNJMhCeERtcQN47huQUjDvwXEGRaGThLcSxz8cttP4bsAwucTHwhTMVv4FcErCOFf2o3fAU6j8oGNbX985W+aOCU5uJ8IK5PfeyzSlGr7qm0ymsCbL3crCGHTPxBKJdhH43dWGPzuU1W1f/jwC4L3Wiiw2jashTH4mPz5HxTyISs= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/add-simple-queue-traces.api.mdx b/docs/docs/reference/api/add-simple-queue-traces.api.mdx index 0edc5ca862..170f68ae3b 100644 --- a/docs/docs/reference/api/add-simple-queue-traces.api.mdx +++ b/docs/docs/reference/api/add-simple-queue-traces.api.mdx @@ -5,7 +5,7 @@ description: "Add Simple Queue Traces" sidebar_label: "Add Simple Queue Traces" hide_title: true hide_table_of_contents: true -api: eJydVk1v4zYQ/SvCnLoAa3mDnnSqmwZYY1tsmri9GEIwEccWt5Ko8CMbV9B/XwwpWXIcp8Dm4pCcGc68efOoDhzuLWRbuHnGyqNTurGQC9AtmbBaS8gApXywqm4renjy5OnBGSzIgoAWDdbkyHCQDhqsCTKIRkqCANVABi26EgQYevLKkITMGU8CbFFSjZB14A4t+1lnVLMHATttanSQgfchilOuYoO/OHCyltD3eYxH1v2m5YGDvA5f6MZR4/gI27ZSRSgo/Wp1w3vT7a3hcp0iG3Lh2h6UDAvlqLbnGfZi3EBj8DDLcMPeyVpa6Ccj/fiVCneCwHZ2Tz653weUQ5khkr02hI7uYqXQ9xzVkG11Y2O6V8sl/0iyhVEtV8hhfFGQtTtfJXeDMfwwIIX20WmoRjWO9mRmRV8HCwGSdugrB9myFxMJ+Lrm8GUXGPJ+p3txtGh8VUGfv9n7c2DfwG8tj6VH2H65ujpH6h+slAw4JDfGaPPjMElyqKoT0pwaVLo4Ob0EygyEEeo+v8y4P3RMkElZ2/1b4zSa/knW4p4m+l42DWAkGz7teYpbHykwHK/DRi+gcC+zMGf9uGYsX9z/DgNjE9Mf7GaNn1oUO3QZit9jC94jyKfN5vYsYOTHKTFWUiaRTUlk3mbUvJpcqVkWW21d0EBXQgZpVMg08N6m3cj/Po1qmYIAS+Z51EpvKvbCVoWOx2XpXGuzNCW/KCrt5QL31DhcoIqGOccovFHuEIKsbtef6fCJUJKBbJvPDe6ZqJF6p2bHdmGrPhMDOOj2yrtSG/Vf5NMg3mX0YoR4BO4m0b15Qa74lWhuRzLlgTg7PefNKpSTrG7XcAb4/IhnEItAuTG3cAziFVATPiCA6jCB4AjrX48nTBhGPV6zXHxcLHmLu1djM7/iYstPMj3Cx8xO2wpVmL2QVzewYQuRDTDoIAfJZs/i8QFlopfMo2wLXfeIlv42Vd/z9pMnw13OBTyjUfjICG47kMry/xKyHVaWzrI76hf8dDeM2IcExNtZj0xomAb8DcArEPAvHeYPeRCgcqRZNxxfx5t+DjIxuZ+pJvM7eqyKglr3rm0+m7DbL/cbEPA4vPC1luxj8BvLB36Lqeo2frbwJwDvdVBhs/csdBnEmPz3HaMpC5w= +api: eJydVk1v4zYQ/SvCnFpAjdygJ53qpgHW2BabJm4vhhBMxLHFLSUy/MjGFfTfF0NKtryOU2B9scn54Mybx0f34HHnoNzA7QuqgF7qzkGVgzZk42oloAQU4tHJ1ih6fA4U6NFbrMlBDgYttuTJcpIeOmwJSkhOUkAOsoMSDPoGcrD0HKQlAaW3gXJwdUMtQtmD3xuOc97Kbgc5bLVt0UMJIcQsXnrFDn9x4mwlYBiqlI+c/02LPSf5Nn2tO0+dZxMao2QdGyo+O93x3vF0Y7ldL8nFWri3RyniQnpq3XmFQz5toLW4n1W45uhsJRwMRyf99Jlqf4LAZnZOdQx/iCjHNmMmd2MJPd2nTmEYOKslZ3TnUrnXiwV/CXK1lYY75DShrsm5bVDZ/egM3w1IrUMKGruRnacd2VnTN9EjB0FbDMpDuRjyIwn4uG7/aRsZ8v6kh/zg0QWlYKjenP05sG/gtxKH1hNsv1xfnyP1DyopIg7ZrbXafj9MgjxKdUKaUwel6xPrJVBmIExQD9Vlxv2hU4FMytbt3rpOk+uf5Bzu6Ejfy64RjGzN1oFvsQmJAqN5FTeGHGr/OktzNo8bxvLV/+9lYGxS+aPfbPDHEaUJXYbi9zSC9wjyYb2+O0uY+HFKjKUQWWJTlpi3njSvJd9olkWjnY8a6BsooUgKWUTeu6Kf+D8USS0LyMGRfZm0MljFUWhknHhaNt6bsiiUrlE12vlkrjiyDlb6fQxd3q0+0v4DoSAL5aaaOzwwPRPhTt0OQ0IjPxLDNqr1MvhGW/lfYtEo2U2KYlyY+PdHqb19Re7zG6ncTBSqIl22es6W5Y46j9nybgVnMM9NfPOwjkSbaotmyGfwuLIoMG5foWRQqY33Djxh++vBwjRhrNMxi6ufrxa8xTNrsZsfcXHQJ5Ue4GM+F0ahjDcu1tWPHNhA4gCM6sdJytljeHg2md48Xg7p+yd09LdVw8Dbz4EsT7nK4QWtxCdGcNODkI5/Cyi3qBydVXdQLfjhfrxYP2aQv131xISOacAvP68gh39pP3++o+w0E8360XyTTvopisMx/EwrmdUpYlnXZPy7vtXsXt19elhDDk/ju95qwTEWv7Bo4JdUqjbpzwo//LzXg8JuF1jeSkg5+fMVLdgIPQ== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-application.api.mdx b/docs/docs/reference/api/archive-application.api.mdx index 5a0be75d2b..4865b3fe62 100644 --- a/docs/docs/reference/api/archive-application.api.mdx +++ b/docs/docs/reference/api/archive-application.api.mdx @@ -5,7 +5,7 @@ description: "Soft-delete an application." sidebar_label: "Archive Application" hide_title: true hide_table_of_contents: true -api: eJztWEuP2zYQ/ivE9NAEkO1N0JOLAnWzCeKmbRZZJxevsaalscWUJlVy6MQ19N+LoSRbtvaVxebW066kmW+G3zw44x2QXHkYTmFUFFqlkpQ1HmYJZOhTpwp+hiFc2iX1MtRIKKQR8iDcvzJXZuTSXG2UWQmP5MW8ksyuJc2FNYJybKsIaTKRqwy9UCSWzq6vzD8BnUIvKJckMmt+JIYSc2VSHTK8ltECZkNBLuC8L8bkxUY6JQ15BrwyDjfKs/tigaldowjGoUxzudAYrQitPLGTi0Dsk3JifO6Fw7VUhvW91Zso7a3IlSfrVCq1ICdT9MKT3AplSKbUvzKXiGL6CR1bVGY1ezZwuESHJsWBLFRvFVSGg81e4If6BD1psl4w9dPzPiRgC3SRmHEGQ6i/XLcIgwQK6eQaCR0HawdGrpFlDzLXKoMEFAerkJRDAg7/CcphBkOmLAGf5riWMNwBbQvW9uSUWUECS+vWkmAIIUQUUqRZoJUTYpxBWc4Y1RfWePQM9PLsjP+c5EpIU/R+GbT4UAtDAqk1hIZYvOX14LNnnV3LucIxH6QqC6kNlVLtszKEK3QtJ19FidOEnb+Yiy85dnPvi/RiaYPJEjE/mwtLObovymM/Qixl0ATDszJpexmdNtv3y8j9sYNLqzN0zP6R0N0Ul8lewgStgYltzvMmAka+E1jqWJ63m1f++sTRGndhrUZpWkSNvRgd5dT+uEupPZYJg+FG6iDJuvugXu8FbwbyRhUF0n0wl7VYB6RMGj27+Iwp3ZyWI0dqKVN6E3k6TYJ2/kYmRU8cE/bLxAX8ucoCUTvoRfBY9wfDYdOi9s2LYDR6L/ArIyjSW+5S/Rviye53QiezTLFVqS+OgthJm4aqFm6dSfzmZhhIlUuDlu7ZH3KB+ndvTe99oCLQczjlsp1vp9LQYf6ubJ3wIcsE1kjykYdtneykyI8MrxfHb9oc3cfIm6DvISTZgSJcP1BLOie3d1fxse63kfonk1kmdZd/EGUdjL9YtzypiMdBnbcgygRSh7K63B/Y8jJJ2CMV/bndyqsKVowiWaHIvoeRjxVsbeQwpjypkfMKtjbS0LXYPuEl0ZD127a+KBq+ntRKw9beSkPYk1pp6Npb8TqsHpurl6zLN9CTuRcHnwddRjfCHN9Ik9NJuL6/EmGdmLPSXKilMJaqIaX/UNutSetkGlNmpbHXNtqMcALNBrUtkK2wnZ9evuyOc5+kVlml+Nq5eN8/cpbLkKTScWqpWu2pgLbp0ddvuSpm5Ul3bt1wdh8fWPvVTRPwofN6L1d4aNe3i0YyxIS/cr4Z7vIs3qSNqdt+Sl9bMJ0YvmIuv9KNcT5M8NPITeV+LddK0UOIqgjdTsV5FYK7kurtZHLRAazyY42UW95RCuspLiWUwxAGrSTwg93xUlIO6oUGEvDoNs0GE5yuVFUMZ/WYExV+OBhg6KfahqwvV2hI9qWqBGeMkQanaBtBRhfjd7h9izJDB8PprC1wyVlY5dWx2D4WslDvkNmpt6lRoNw69W8zH8dlKq+0yhjjpW2HeBSdE6OLcXfybH/icpFpzI7GUvwMycmxD6eFBHgr5Y+Ecv3r/gvHtl4qYQhn/Rf9M37FAVlL0zZRsd4Z+Y+mgX0h/7/gf88Fv843rvNBoaWKnSiGflfX0LTdSHmRGXZW+6aMZgnkXH7DKex2C+nxo9Nlya+ZYq6LWQKRuAVn6XQHmfL8f1avVndkwbMPdcd5Lm5zu6kdw4XDOyA/QQJ/47b7g0TsynlTnrtaaJSmWFBLvXOJcB3vm83F+8sJlOV/Ezp9YA== +api: eJztWN1v2zYQ/1cI7mEtIFtpsScNA+Y1Lep1W4PG7UtixLR0sthRpEYe3XqG/vfhKMmWLeejQfq2p0Tifel3vzveectRrBxPrvikqpRMBUqjHZ9HPAOXWlnRM0/4pclxlIECBCY0E3vh8bW+1hObFnIt9Yo5QMcWjWR2I3DBjGZYQF+FCZ2xQmbgmESWW1Ne6388WAmOYSGQZUb/iGSKLaROlc/gRgQPkCUMrYfFmE3RsbWwUmh0ZPBaW1hLR+GzJaSmBOa1BZEWYqkgeGFKOqQglx4pJmnZ9NwxC6WQmvSdUesg7QwrpENjZSoUQytScMyh2DCpUaQ4vtaXAOzqE1jyKPVq/iy2kIMFnUIsKjlaeZlBvN4J/NB+wUjobOR1+/R8zCNuKrABmGnGE96e3PQA4xGvhBUlIFhK1pZrUQLJ7mVuZMYjLilZlcCCR9zCP15ayHhCkEXcpQWUgidbjpuKtB1aqVc84rmxpUCecO+DFZSoSKDHCTbNeF3PyaqrjHbgyNDLszP6c8QVn6bgXO4V+9AK84inRiNoJPFe1PFnRzrbXnCVJTxQNh5S4xulNmapEVZge0G+ChLHhF28WLAvBQy590U4lhuvs4gtzhbMYAH2i3QwDiZy4RXy5KyO+lGGoPXmfR6wPwwwNyoDS+gfCN0NcR3tJLRXihOw3fe8CQYD3hHPVSjP291Ld3MUaGt3aYwCoXtATR2bHHBq97m5UA7qiIzBWigv0Nj7TL3eCZ425LSsKsD7zFy2YgMjddTpmeVnSPE0LScWZS5SfBNwOiZBn78BSTZih4D9MrMefm5YwNoAHfMO2v6gKW2KtbE55rUC5xh8JQsS1Ya61PhEPin8QepElknyKtTFQRIHtOmg6tltmURvTpvhqbSpV8I++0MsQf3ujB6991h5fM6Psezz7ViaD5C/i60z+sg64iWgeOTH9r7sqMgPHJfLwzd9jO5D5I1X9wASbblEKB+oJawVm7ur+FD320D9k8Cso7bLPwiygY2/SLc+qojHmTrvmagjnloQzeX+wJaXCYQRyhDP7V5eNWbZJIDlq+x7OPnYmG2d7MeUJ3Vy3phtnXRwLTdPeEl0YP22aS+KDq8n9dKhtfPSAfakXjq4dl6c8qvHcvWSdOkGerLwwuDzoMvopJnDG2l2PAm391fEjGULUlowmTNtsBlSxg/13Zu0jqYxqVcKRn2n3QjHQK9BmQrIC/n56eXL4Tj3SSiZNYqvrQ33/SNnuQxQSBWmlqbVHgsokx6cfstVMa+PunPvhjO7/PDSrU5NwPvO65xYwb5d3y4awGAzOiW+aeryJN7RRrdtP8WvPTODHL4iLL/iyTzvJ/irgE0TfivXo+g+RU2GbofivEnBXaR6O5tdDAw2/CgBC0M7SmUchqUEC57wuEcCF28Pl5I6bhcaHnEHdt1tMN6qRlWGdDaPBWKVxLEyqVCFcdgcz0kz9VbiJqhOLqbvYPMWRAaWJ1fzvsAlca9h06HYLgOiku+AMGl3qInHwlj5bzcVhxWqaLTqkNnc9BM7WYFGwSYX0+G82T+iIhFp4ETnKRzzqPexLoljEV6PhYx5xGkXpUMEUf66O6GMtqskT/jZ+MX4jF5RGkqh+y4arAeD/sEMsCvf/9f677nWt3yj6o4rJWToPyH127Zyrvrtk9aXZLDQd8UzjzgVBOlst0vh4KNVdU2vCWKqi3nEA3BLYunVlmfS0f9Zu1DdwYJnH9o+85zdFnZXO5oKhzY/euIR/xs2w58hQi8uuvLctkKTNIUKe+qDq4PqeNdiLt5fznhd/we10XoB sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-environment.api.mdx b/docs/docs/reference/api/archive-environment.api.mdx index d0dd7cf297..3b0994f047 100644 --- a/docs/docs/reference/api/archive-environment.api.mdx +++ b/docs/docs/reference/api/archive-environment.api.mdx @@ -5,7 +5,7 @@ description: "Archive Environment" sidebar_label: "Archive Environment" hide_title: true hide_table_of_contents: true -api: eJy1V0tv20YQ/ivCnBJgY7lGTzxV9aNR09ZGrPQiCMaIO5I2XT6yDyEqwf8ezJKUlqLsOIZzksid5/fNzgwrcLi2kMzhOt8qU+QZ5c7CQkBRkkGninwqIQE06UZt6YEOUiCgRIMZOTJsoYIcM4IEIpkHJUGAyiGBEt0GBBj64pUhCYkzngTYdEMZQlKB25WsbZ1R+RoErAqToYMEvA9WnHKaBaJAR1MJdb1gq7YsckuWDV2cn/OPJJsaVXIKkMC9T1OyduX16GMrDALSInecSlIBlqVWach4/NmyThUFVxrGw6nGQ1r4RqmNWeWO1mSiIC+DhABJK/TaQXJeixiY4DHf3a4CcH3rq0JLMgxdT+hpfGqxl8i91sCodMHcBIMBLAErHQh/3L2yD2uPRpKMMlwWhSbMowyndvRHKxaluUJtqa5Fp1csP1PqTrN3EyIZBs7agxhRSsXcoL7rRTvAp4s0sttCxm9Om4FUmdRrNG/+wiXpP22Rv7v1rvTuLRynEgN7LA2DxJ+iZdakDxk5fGGyUWZHpdhznC37b2KMvofIjdffAURUoBxlz9RCY3D3dLn2dX8M1L8ZzFq0vehZkA1s/MO6teh3kJeZuopM1AJSQ+hIPqB75t2W6OidUyGex71cNmZHkwCWL+XPcPKpMds6kaTpJzi5asy2Tjq4lrtX7IYdWL/v2o7Y4fWqXjq09l46wF7VSwfX3ovVfv3SWr1n3VrA64UXxvOzZsGpMfA8zf00r2vW+PXiYjj8/0WtZBjto2tjCvPyyS/JodJhTDYt71hAF2nv9Eda9qI+6pLRpCmaAMO8sOtT+9KhA1qLazq0zcdFAxijGZ8y7zl3Wxbv6Mvb9pu6r5GZARuXjOVXd5Lrw743D9g04bdyUakcKGoYehyKq4aCp8rj/Wx2NzDY1Ee/MCbNWju67q21GblNwVtvWdhmzXUbSGAc7W92XPXX3HrcrsggwJLZdjuxN5pVsVSB8uZx41xpk/GY/FmqCy/PcE25wzNUjeCCbaTeKLcLRiZ30w+0e08oyUAyX8QC91ypTe31xfZ8Yak+ECPY7ucT7zaFUf83BdWu55tGqw51sCriMpiE4EaTuykM8IuP+EphGiqo8xSOQRylfcgWBFAWLhQ4wuy3/Qnzzxg2bs7Pfjk751dMSIZ57OIkg0eTuwWCi3RcalThGoWYqpbcebycWxCQDL5iOn4XAjZcF8kcqmqJlj4ZXdf8+osnw4QtBGzRKFwyfPMKpLL8X7br8SC8fS+CNx/b6/J2dNiY+mF3pObM6Ba15ycQ8B/tht9eoaVsurqpWqFJmlLpIvVBB+QC29+Cu9v7GdT1N+Cg2As= +api: eJy1V0tv20YQ/ivCnBJgY7pGTzxV9aNx09ZGrPRiCMaIHEmbLrnMPoyoBP97MEtSWoqyoxjOSdLuPL9vdmZUg8OVhfQeLstHaXRZUOkszAXoigw6qcvrHFJAk63lIz3QTgoEVGiwIEeGLdRQYkGQQiTzIHMQIEtIoUK3BgGGvnhpKIfUGU8CbLamAiGtwW0q1rbOyHIFApbaFOggBe+DFSedYoEo0Ml1Dk0zZ6u20qUly4bOTk/5IyebGVlxCpDCnc8ysnbp1eRjJwwCMl06TiWtAatKySxknHy2rFNHwVWG8XCy9ZBp3yp1McvS0YpMFOR5kBCQ0xK9cpCeNiIGJngsNzfLANzQ+lKrnAxDNxB6Hp9GbCVKrxQwKn0wV8FgAEvAUgXCn3Yv7cPKo8kpjzJcaK0IyyjDazv5oxOL0lyistQ0otfTi8+UucPsXYVIxoGz9ihGzHPJ3KC6HUQ7wqePNLLbQcYnh81AJk3mFZo3f+GC1J9Wl+9uvKu8ewv7qcTA7kvDKPHnaJm16UNBDl+YbJTZXikOHBeL4UmM0fcQufLqO4CIGqSj4kgtNAY3z5frUPfHQP2bwWxE14uOgmxk4x/WbcSwg7zM1EVkohGQGUJH+QO6I992jo7eORniedrLeWt2Mg1g+Sr/GU4+tWY7Jzkp+glOLlqznZMersXmFbthD9bvm64j9ni9qpcera2XHrBX9dLDtfVilV+9tFbvWLcR8HrhhfF81Cw4NAaO09xO86ZhjV/PzsbD/19UMg+jfXJpjDYvn/w5OZQqjMm25e0LKJ0Nbn+kZc+bvS4ZTRrdBhjmhV0d2pd2HdBaXNGubT4tGsCYzPiWeS+527J4T1/Ztd/MfY3MjNg4Zyy/uoNc7/a9+4BNG34nF5XKjqKWoaehuGgpeK483s9mtyODbX0MC2ParrWTy8FaW5Bba956K23bNdetIYUk2t9sUg/X3CbpVmQQYMk89juxN4pVsZKB8vbn2rkqTRKlM1RrbV17PWfNzBvpNkF1env9gTbvCXMykN7PY4E7rs+24oZiW5awkh+Iceu28ql3a23k/20ZdUv5utVqAvtLHZM/XVHpcDK9vYYRavEVPyTMQt30nsI1iChZmyYJhuMTlAkIoCI8I3CExW/bG2adkWvdnJ78cnLKR0xDgWXs4iBve/O6A4JLM6kUyvB4Qkx1R+l9vJJbEJCO/rv0rM4FMFOsU9cLtPTJqKbh4y+eDBM2F/CIRuKC4buvIZeWv+fdUjwKb9uB4M3H7pG8nez2pGHYPaklM/qIyvMvEPAfbcb/uEIjWfd1U3dC0yyjykXqo77HBbat/dubuxk0zTd/fdSs sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-evaluator.api.mdx b/docs/docs/reference/api/archive-evaluator.api.mdx index ee389ecebc..2f5a7dd307 100644 --- a/docs/docs/reference/api/archive-evaluator.api.mdx +++ b/docs/docs/reference/api/archive-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Soft-delete an evaluator artifact." sidebar_label: "Archive Evaluator" hide_title: true hide_table_of_contents: true -api: eJzdV91v4zYM/1cEPt0BbtIr9mRgwLJ+4Lrb1uLa20tbtIrNxLrJkitRucsC/+8DZTuxk35d0b3sqY1F/kj+SFHkCkjOPaRXcLyQOkiyzsNNAjn6zKmKlDWQwoWd0V6OGgmFNAI7USEdqZnMaHRtrs0Fkhd3jVh+K+lOWCOowL68yUWhcvRCkZg5Wwofph7vAxq6Nnfj+4BueScc+soaj14Eo9F7cadMpkOOt9JlhVpg/jO5gHcj8RkXyitrxOmRvzYOS6kMq1u9kFONwltRKE/WqUxqQU5m6IUnuRTKEDsOCdgKneRIT3NIobVwu3YaEqikkyUSOmZqBUaWCCmsJW5VDgkoZqqSVEACDu+DcphDyn4m4LMCSwnpCmhZsa4np8wcEphZV0qCFEKIKKRIs8A6HeI0h7q+YcyWFIY52N/nP1tpClmG3s+CFp9bYUggs4bQEIvLqtIqi7GOv3rWWfVcqxwzQaqxkNnQKLUeK0M4R9dz8TBKbNfKB/GtQDMsE+WFQwrOYJ6IfWGpQPdNeRxF7ZkMmiDdr5MNpdFbszybRcKHns2szjGSPhB6mtk6WUuYoDUwo10gJxEwEp3ATMcL8bh55W97PPYYmlqrUZoeQ6deTHqivWBnUnusEwYbxPwU1HGvIh8C8kZVFdJzMBet2A5InXR6dvoVM3qoGifthT+JLO2Syhg7/Mk8V0yA1OcDJndy1/nbw23TyV8ehoFMuSxo6d79Lqeof/PW7J0FqgK9h+2A+knfload8J8qmcsmfCiR5CuD7UW2dcUGhsvp8Eufo+cYOQn6GUKSFSjC8oVa0jm5fPoqDXV/jNQ/mMw6afvriyjbwfiTdeutpvQ6qKMeRJ1A5lA2D9sL+04uCfdIRX8et3LYwIpJJCtU+X9h5EsD2xrZPNFvauSogW2NdHRNl2/YqTuyfl223brj602tdGytrXSEvamVjq61Fa/D/LW1esG6/Ay8mXtx7HjBi/AgyHAkuBzOgO0TkgjrBGs0A4OxBkUpKSswH73MdG/IGRo8NgvUtkIxY3vCKzPXfRe6UYrtsKWfDg52p6m/pFZ5fLjFsXPx1X3lKJUjSaXj7ND02m0BbbPB6Y+8FTf1VnvuPXG2HTz4ofLzh8bPTev1Xs5x068fF41kiEs+5YIz3OZZvKsb0/b9jL73YHayeMhcfqcHM70Zn68iN437rVyvRjcpajL0OBVHTQqeKquPl5fnO4BNfZRIheXloLKe4j5ABaQwXleUH6/620A9brcISMCjW3SLQ3Ca1WSlYiqbnwVR5dPxGMMo0zbkIzlHQ3IkVSN4wxhZcIqWEWRyfvoJlx9R5uggvbrpC1xwBTY1NRRb50FW6hMyM+0SMwlUWKf+6SbUuMUUjVYd8zuz/fROonNicn66c+sGR3xVZBYro7MUjyHZCnsTLSTA+xsfEsryl/UJ55U5bMzsjz6M9vkTJ6OUpm+iYX1rUh4MAusr/D9fatt08xUbV1qq2AQi86u2fK8225aHBNKtdbar4JsECq769ApWq6n0+MXpuubPMS6uwAQW0il2LRZorjz/n7d7xRMpePe5vejvxWMud2VruGbZQ/4FCfyNy+0VPLbCorsXq1ZkkmVYUU95p3PzBVrf8POzi0uo638Ba4roPA== +api: eJzdV0tv20YQ/iuLOSXAWnKMnggUqOoH4qatjdjpxTbsFTkSN13u0rtDJarA/17MkpRIya8Y7qUnW9x5fvNeAal5gOQKjhfKVIqcD3AjIcOQel2SdhYSuHAz2svQIKFQVmBHKpQnPVMpja7ttb1ACuKuIctuFd0JZwXl2Ke3mch1hkFoEjPvChGqacD7Ci1d27vxfYV+eSc8htLZgEFU1mAI4k7b1FQZ3iqf5nqB2c/kK7wbic+40EE7K06PwrX1WChtmd2ZhZoaFMGJXAdyXqfKCPIqxSACqaXQlthwkOBK9Io9Pc0ggVbD7dpokFAqrwok9IzUCqwqEBJYU9zqDCRoRqpUlIMEj/eV9phBwnZKCGmOhYJkBbQsmTeQ13YOEmbOF4oggaqKUkiTYYJ1OMRpBnV9wzJbUFjMwf4+/9kKU5WmGMKsMuJzSwwSUmcJLTG5Kkuj0+jr+GtgnlXPtNIzEqQbDamrGqbWYm0J5+h7Jh5Giu1c+SC+5WiHaaKD8EiVt5hJsS8c5ei/6YCjyD1TlSFI9mu5gTRaa5dnswj40LKZMxlG0AdETyNbyzWFrYwBRrRz5CQKjEBLmJlYEI+r1+G2h2MPoalzBpXtIXQaxKRH2nN2pkzAWrKwgc9PiTruZeRDgoLVZYn0nJiLlmxHSC07Pjf9iik9lI2TtuBPIkq7oLKMHfxUlmkGQJnzAZI7sevs7cltw8lfHhYDqfZpZZR/97uaovktOLt3VlFZ0XvYdqgf9G1q2HH/qZS5bNyHAkm90tmeZ1slNlBcTIdf+hg9h8hJZZ4BRK5AExYv5FLeq+XTpTTk/TFQ/2Awa9n21xdBtiPjT+att5rS60Qd9UTUElKPqhlsL+w7mSLcIx3teVzLYSNWTCJYVZn9F0q+NGJbJZsR/aZKjhqxrZIOrunyDTt1B9avy7Zbd3i9qZYOrbWWDrA31dLBtdYSTDV/ba5eMC+PgTczL64dL5gIDwoZrgSXwx2wHSFSOC+Yo1kYrLMoCkVpjtnoZap7S85Q4bFdoHElihnrE0Hbuemb0K1SrIc1/XRwsLtN/aWMzuLgFsfex6n7ylUqQ1LaxN2h6bXbBMalg9cfmRU39VZ77o041y4ePKjC/KH1c9N6Q1Bz3PTrx0kjGOKSXznhLLd5Ju/yxrZ9P6XvPTE7UTxkLL/Tg5HerM9XEZvG/Jaul6ObEDURehyKoyYET6XVx8vL8x2BTX4USLnj46B0geI9QDkkMF5nVBiv+tdAPW6vCJAQ0C+6w6HyhtlUqWMom585UZmMx8alyuQuUPN8w5xp5TUtI+vk/PQTLj+iytBDcnXTJ7jgvGsyaUi2Rl+V+hMyHu3pMqkod17/0+2l8XbJG646RnXm+kGdzNGSEpPz051aGzxxgag05kOnKT6D7DkbkvFYxc8jpccgga82fiRUxS/rF44mI9eo2R99GO3zJw5BoWxfRYP11n48GP/rwv2fn7JtuLmwxqVROpZ+RH7VJu3V5sYKICHZOmK7vL2RwLnI9KvVVAX84k1d8+foF2eghIXymk2LCZrpwP9n7TXxRAjefW7L+714zOQubS3nLFvIv0DC37jcPrxjA8y7uli1JJM0xZJ6zDv9mgtoXdfnZxeXUNf/Arag5N0= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-query.api.mdx b/docs/docs/reference/api/archive-query.api.mdx index d4102ffcdc..dcd87035a3 100644 --- a/docs/docs/reference/api/archive-query.api.mdx +++ b/docs/docs/reference/api/archive-query.api.mdx @@ -5,7 +5,7 @@ description: "Archive Query" sidebar_label: "Archive Query" hide_title: true hide_table_of_contents: true -api: eJy1V0tv20YQ/ivCnBJgY6lGTzxVtWvESVsrsdKLIBgjciRusnx4H0ZYgv89mF1SIkW/YjgnUdx5ft/szLAGizsD0Qo+OdKSDKwFFCVptLLILxOIAHWcyju6uXWkKxBQosaMLGlWqyHHjCACf3ojExAgc4igRJuCAE23TmpKILLakQATp5QhRDXYqmQ9Y7XMdyBgW+gMLUTgnLdipVUswHFVk8sEmmbN9kxZ5IYMmzidzfgnIRNrWXLAEMG1i2MyZuvU5HMrDALiIreUWxbHslQy9vlNvxrWqXthlZqztzJ4iAsXlNpoZW5pR7oX3pmXEJDQFp2yEM0aEcDwvvLqauthGtrdFiohzXANhB7HpBF7idwpBYxHF8aFN+hhErBVntMH3Teis1NsvlJsj9G+8Ppjd6w3soxJIhlLVItBiqOsNkWhCPO+3TZRfnO/GYiljp1C/eZv3JD6YIr83ZWzpbNv4TiJPhzH0jBK+TEwlyF9yMjiC5PtZXZUOgPH2Wb4po/RU4hcOPUEIKIGaSl7phZqjdXjRTbU/TlQ/2EwG9H2i2dBNrLxL+s2YnjjX2bqvGeiERBrQkvJDdpn3sgELb2z0sfzsJezYHYy92C5MvkVTr4Es62ThBT9AifnwWzrpINrU71iD+vA+rNq+1iH16t66dDae+kAe1UvHVx7L0a53Utr9Zp1GwGvF54fp09MgfsGwFM6+4nbNCz7++npeED/h0omfvxO/tK60C+fzglZlIqf2jZ3LKCKeHD6M2163Rx1xt50KUKAfkaY3X3bzKHrGYM7OrTKh0U9GJMlnzLXOXdYFu8oy9uWG9vvPTMjHs4Yy+/2Xn4P29jKYxPCb+V65XGgKDD0MBTngYLHCuP9crkYGQz1MSyMeVg0J5/aRTMjmxa8gZaFsX7xtClEML0Nm+q07nbOZtruqCDAkL7rVlOnFctjKT3D4W9qbWmi6ZTcSawKl5zgjnKLJyiD4JptxE5LW3kj88XlR6reEyakIVqt+wLXXJih1IZie3qwlB+Jk2nX5LmzaaHl/6F+2l05DVqNp31b9Fmf++Am88UljODqH/ENwtgXTOfJH4M4SvuQLQigzN8fsITZH/sTppsxDG5mJ7+dzPgVs5Bh3ndxRNjRWG4h4Gqclgqlvy8+mrrlcgUtlyAg6n1BdHSuBaTMfbSCut6goS9aNQ2/bjfs1VrAHWqJG0ZrVUMiDT8nEG1RGRrFtO808OZzexneTg470DDWjsOck7tD5fgfCPhGVf+Lx7eKtCuQuj2exzGVtqc46mxcSfsaX1xdL6FpfgC8j5xm +api: eJy1V0tv20YQ/ivCnBJgY6pGTzxVtWvESVsrsdKLIBgjciRtsnx4H0ZYgv89mF1SIkW/YjgnSbvz/L7ZmVENFrcG4iV8cqQlGVgJKErSaGWRX6YQA+pkJ+/o5taRrkBAiRozsqRZrYYcM4IY/O2NTEGAzCGGEu0OBGi6dVJTCrHVjgSYZEcZQlyDrUrWM1bLfAsCNoXO0EIMznkrVlrFAhxXNblMoWlWbM+URW7IsInT6ZQ/UjKJliUHDDFcuyQhYzZOTT63wiAgKXJLuWVxLEslE59f9NWwTt0Lq9ScvZXBQ1K4oNRGK3NLW9K98M68hICUNuiUhXjaiACG95VXVxsP09DuplApaYZrIPQ4Jo3YS+ROKWA8ujAuvEEPk4CN8pw+6L4RnZ1i/ZUSe4z2hdcfu2O9kWVMU8lYopoPUhxltS4KRZj37baJ8sn9ZiCROnEK9Zu/cU3qgynyd1fOls6+heMk+nAcS8Mo5cfAXIT0ISOLL0y2l9lR6QwcZ+vhSR+jpxC5cOoJQEQN0lL2TC3UGqvHi2yo+3Og/sNgNqLtF8+CbGTjX9ZtxPDFv8zUec9EIyDRhJbSG7TPfJEpWnpnpY/nYS9nwexk5sFyZfornHwJZlsnKSn6BU7Og9nWSQfXunrFHtaB9WfV9rEOr1f10qG199IB9qpeOrj2Xoxy25fW6jXrNgJeLzw/Tp+YAvcNgKd09hO3aVj299PT8YD+D5VM/fid/KV1oV8+nVOyKBV/a9vcsYAqksHtz7TpVXPUGXvTpQgB+hlhtvdtM4euZwxu6dAqHxb1YEwWfMtc59xhWbyjLG9bbmK/98yMeDhjLL/be/k9bGNLj00Iv5XrlceBosDQw1CcBwoeK4z3i8V8ZDDUx7AwZmHRnHxqF82M7K7gDbQsjPWLp91BDNFt2FSjuts5m6jdUUGAIX3XraZOK5bHUnqGw8+dtWUcRapIUO0KY8P1ijUTp6WtvOpsfvmRqveEKWmIl6u+wDWXYyiwodieFCzlR+IU2uV45uyu0PL/UDXthrwLWo0ne1P0uZ5tKbc4mc0vYQRS/4rfDSa+TDpP/hpEL1kTRxH64xOUEQigzL8asITZH/sbJpmRC26mJ7+dTPmIsc8w77s4ouloGLcQcA1GpULpX4mPpm4ZXELLIAiIe/8bOhJXApgYFqzrNRr6olXT8HG7Vy9XAu5QS1wzWssaUmn4ewrxBpWhUUz7/gJvPrdP4O3ksPkMY+04zDm5O1SOf4GAb1T1/+f4BrHrCqRur2dJQqXtKY76GVfSvrLnV9cLaJofnP+ZBw== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-queue.ParamsDetails.json b/docs/docs/reference/api/archive-queue.ParamsDetails.json new file mode 100644 index 0000000000..13bffd7a89 --- /dev/null +++ b/docs/docs/reference/api/archive-queue.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"queue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Queue Id"}}]} \ No newline at end of file diff --git a/docs/docs/reference/api/verify-permissions.RequestSchema.json b/docs/docs/reference/api/archive-queue.RequestSchema.json similarity index 100% rename from docs/docs/reference/api/verify-permissions.RequestSchema.json rename to docs/docs/reference/api/archive-queue.RequestSchema.json diff --git a/docs/docs/reference/api/archive-queue.StatusCodes.json b/docs/docs/reference/api/archive-queue.StatusCodes.json new file mode 100644 index 0000000000..babed34b89 --- /dev/null +++ b/docs/docs/reference/api/archive-queue.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/archive-queue.api.mdx b/docs/docs/reference/api/archive-queue.api.mdx new file mode 100644 index 0000000000..517c506f14 --- /dev/null +++ b/docs/docs/reference/api/archive-queue.api.mdx @@ -0,0 +1,69 @@ +--- +id: archive-queue +title: "Archive Queue" +description: "Archive Queue" +sidebar_label: "Archive Queue" +hide_title: true +hide_table_of_contents: true +api: eJy1WEtz2kgQ/itUn5IqxXhde9JpiZ1UWO+unWDn4qKoRmpgkmEkz8MVQum/p3pGEiPAGHudEzDT/fVz+sEaLM4NpHfw4QGlQysKZWCcQFGS9r+GOaSAOluIB5rcO3IECZSocUmWNLOuQeGSIAV/OxE5JCAUpFCiXUACmu6d0JRDarWjBEy2oCVCuga7KpnPWC3UHBKYFXqJFlJwzqNYYSUTfGbg3jCHqhoznikLZcgwxNnpKX/kZDItSlYYUhi5LCNjZk72vtTEkEBWKEvKMjmWpRSZt6//zTDPOlKr1Gy9FUFCVrjAVGsrlKU56Ui9c0+RQE4zdNJCelolwRlellpdzbyburgz6T3/OIEwE0P3jpQVKCMFpkUhCVWkwND0RhvKSJEZSkNVwlDt2WGci5psB6RKGr5i+o0yG7FtUscH6qM3rEpaQcpJCdWYEXZMxjwXzInyumP8hmJL2wi3zhs+2Q8DmdCZk6jf/INTkn+bQr27crZ09i1sm8OZ1Ri0TQ07xu9at+G+CebDkiy+0NjIsq2s6wheTrsnsY+e8shHJ59wSLIGYWl5JBdqjauDftnifZ5T/2VnVkldao5y2Q7Gf8xbJd1i8TKoiwiiSiDThJbyCdpDgFGBy9HSOyu8Po9LOQ+wvYF3livz3yHkNsDWQnKS9BuEXATYWkjjrumKu8VxcnxLOMZZ71e+U2z89apSGm+1UhqHvaqUxl2tlNeDDngPpM3/SP+vNXuVgLFo3cEqlgApt+QZoySVhxPfHbnFa6dUODKhabMxKKTT3LJJ60LzUYYqIykph/G+vjMKSuxTuW1jrXQOGm6X5m7rdYb0RORbZtXVMPryVBi2i+PxxfLWkO4Nc99ITEYKtSgOaPRcRR4XPKqFtcItlZPvtDpO8rMkWSp7l4xcJTBFmy0mRvzcX933tr8tvPcM0RsxRAtYzGaG9pey4yGvAsgzRqAL9N1qzwSknarrxLHD7xenwui7K30zWd81wHufh9dpnz7HW9TO0VXFXH+ene2O3V9Rityz9D7ww335zJ2TRSE7T61LIIusc/ucCWq8naTR4FcEBf34Zub7wrQZSIzBOW0y/nFS74zeDd9yKVc8/DB5U5FVPQ1l9kcEsxORc/blj/15GGcC+yaoX9PFhbsNUYjQ4664CCE4lCKfbm6udwBDfnQTYxDWx97nen1ckl0UvFeWhbF+nbQLSKFPmx207zuE6a+bpbLq10sotwrSD83u6bRkViyFD3b4ubC2TPt9WWQoF4Wx4XrMnJnTwq486+B6eEmrT4Q5aUjvxjHBiDMz5FqXrI0PluKS2GP19jtwdlFo8TMkUL0CLwJX5eM+K+KwD+akLPYG10PY8Vd8xU8IM58xjSR/DUlkrEn7ffTHJyj63DmX/gGBJVz+1d50Wj+cnvxxcspHHIYlqljEVsS2RubaBZyO/VKi8A/Ga7Oug3kHUTCbhs9f0uhfgiai4wQ4Ssy1Xk/R0K2WVcXH9440B2ucwANqgVN23d0acmH4e15vpzsKtnUH3nypn8bb3mZZ6SreBFRxNFlr/gUJfKdV/K+GLxyLJlvW9fUgy6i0EeNOneO0ajP++mp0A1X1CxHP9Fs= +sidebar_class_name: "post api-method" +info_path: reference/api/agenta-api +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Archive Queue + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/docs/reference/api/archive-simple-application.api.mdx b/docs/docs/reference/api/archive-simple-application.api.mdx index 81bdf88491..7a260a772e 100644 --- a/docs/docs/reference/api/archive-simple-application.api.mdx +++ b/docs/docs/reference/api/archive-simple-application.api.mdx @@ -5,7 +5,7 @@ description: "Archive an application through the simple endpoint layer." sidebar_label: "Archive Simple Application" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWd1v2zYQ/1cIvqwFVDst9uS9zEtaJGu3BPnoS2LEtHS22FKkSlJOPUP/+3AkZVP+TFIXGLA82ZLufnf83fFIHufUsomhvVvaL0vBU2a5koYOEpqBSTUv8Zn2aF+nOZ8CYZKwpSCxuVbVJCc2B2J4UQogILNScWmJYDPQnTt5J99/q/iUCZCWWEWGF+dX16QbwZjuPHq651ndZd7e8DeiwVZamjuJNsLrrOUEl7F9k7MSyKsHbnPCrSGCGUu+SvUg7+SUac6kTYiGKTdcyYQwmZFhxiwbvu7QhKoStEM9y2iPBnP3Hvo+MkoTWjLNCrCgkb45lawAVGkNhCaUI30lszlNqIZvFdeQ0Z7VFSTUpDkUjPbm1M5K1DZWczmhCR0rXTBLe7SqHIrlVqBAFCVyltG6HiCqKZU0YBDo3dER/rSjd1WlKRgzrgS5DMI0oamSFqRF8cjr7heDOvPIuVIjLZZ7C6mqvFLwmUsLE9CRk8dOYjWFhm+H5CEHH6w4fg/MkLGqZJaQ4dGQKJuDfuAGOg5izCphae+oTmIvndNydj523LcdHAuX0tsFuLlfgQpDGSklgMloKGeG9FtRXzg0ZsJAnSAYTJmomFV6H9T7heBmICN5WYLdB3MVxDaDFEyyCebYbpC/gthmkLQyVhX7MI691GYIIfbqfxLblHOlvu7TPkWZLe6rDPY6jzLbKLRpvp9AFNoMMAbIRizdO4QPjdyWYeRsbzIco8wG9ZyZ+0qLneqnzJAbLbap+9m7F+HKi20ByZnMBOyeGohyGuTWYOqkUVSjL5DaSO/K1eVogn5wU79OFrZkJQStB4ixVhRYlnFUYuKiVR6WEisOR7ihUOObzTA05TqtBNOvPrERiD+Nkm/OK1tW9jVdHRAW8WZIq9J0bfjro1tqX/vh0wIse+Zgo5GtFPiW4WLUfhNztI+RD5XYQ0gyp9xC8UgtpjWb7eRlRfdppP6FZNZJWOEfRdkaxt+oW68sic+DOokg6oSmGpiF7N5Xim2A0Y4iYxbeWO782W7l2MOSviOrKrOfYeTGwwYjGQj4CUZOPGww0tA1muH27HF23B7sMWT9MXObsiVfB7XSsLWw0hB2UCsNXQsrRlST5+bqFeriWnYw98LI2Wp9a+/wKs2f6/KN5i6Cful8HoJAhBxY5g4HP1qG20ObgjY/UD0+B/X/ZGB3LPWXMAYNMoWwmj+6ep+GMNQJ1ZV01WKnxyCrAs/D5czmbsePAqbZ4nxhUxYeBrusXgZTSPNiF/Usor123RwWdx5s4iPpy+J/kMX/YkkpprssK/tC7qHIPfN01glVTvuF2UMxex743FVSEfwqFJWNR6aXcvJTy8lTDrYnzJ1BNgQp9DQPuAP87BHD9q9plR7QwGWAJHvW/DUWNqK2u4zXq81F7AMPlyQNEzKMhjT0HWBsSTZvfzGhIUwK0BPIOv6xU2kxJNw4WS6nKhi4ufzUedooohbsSpvWSb6J3TdcTgS80eqBNG1eAnIKQpWAZtHwr+/erbd8PzPBM4/xXmvXcXxmvzcDy7jbDIdptCogVNr6+pQyEO3l/MyLOiFqEXRamMmmLvnyhG4Mm8ByKm4XdWSQa/zarOdOPF6R3DnRfo9g1oJ6jFx+txsDv+zy3zpuvPtBrjXPmhD5CG2n4sSHYFeWnV5fX6wB+vwowOYKrzNKZay7uLA57dGuv9V43EUMTagBPW0uO9zpiHZZyV1U/WNubdnrdoVKmciVsf7zADXTSnM7c6r9i7OPMPO7ctq7HcQCbjXySdUWWwSClfwjIDXhuqVf2Vxp/k/Tnne3Lf7k5ejicqzi+PYnIC0j/YuztdnX+oRzhaUuNRpL7jNNosGaXrfL3OsO4108OxRuplALrPh98QUDuzi10aPO284RvsJoFEzGJsIlm68DaxcPrc7RYjL/b67mQgbgtOuWgnEZHdN9St9Sb4i2rooMTWhv7VquyetBQjFXUXk+HzEDN1rUNb7+VoHGlB2ENXaECXQ7pxk3+D8L/ekdkXl1GSrBa7LN/yatJeY03g7hE03oV5itXya6apk3M2cehPppCu5s2qivFXecYosigCGmdf0vbt9ZaA== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-simple-environment.api.mdx b/docs/docs/reference/api/archive-simple-environment.api.mdx index 42c70041b4..3a93c51ff0 100644 --- a/docs/docs/reference/api/archive-simple-environment.api.mdx +++ b/docs/docs/reference/api/archive-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Archive Simple Environment" sidebar_label: "Archive Simple Environment" hide_title: true hide_table_of_contents: true -api: eJzNWFFv2zYQ/ivEPSUAI2fFngQMmNe0a9ZtDZI0L4mR0NLZZkdRKkkZ9Qy97gfsJ+6XDEdKNiU7aZKlwPxiSbz77u6744mnNTgxt5Bewxu9lKbUBWpnYcKhrNAIJ0t9mkMKwmQLucRbK4tK4S1uhYFDJYwo0KEhoDVoUSCkEMncyhw4SA0pVMItgIPBz7U0mEPqTI0cbLbAQkC6BreqSNs6I/UcOMxKUwgHKdS1R3HSKRKI/GWnOTTNhFBtVWqLloBeHR/TX442M7KiSCCFizrL0NpZrdh5KwwcslI7CiVdg6gqJTMf+OiTJZ115FxliBYng4WsrINS67PUDudoIidfewkOOc5ErRykxw2PifEW9erDzBPXR58pn5n7BaS9ndfC5MTixodpWSoUOvLh1LKfW7HIkZlQFpuGd3rl9BNmbj+/b70nDd8Y0bVS0ExIe8dHkeeS2BPqrOftVmLgaYTbJp2e7IeBTJqsVsIc/CqmqH6xpT76ULuqdocwDIUKogtmKA07ge9Gt9W+DOFDgU48M9goskGx9AwX0/6TmKOvMfK2Vl8hhK9BOiweqSWMEasHeRnoPo3U34jMhrfd4lGU7WD8TroN7+/x50GdRBANh8ygcJjfCvcQYNSdcuHwyEnvz/1WXgdYNvZk1VX+LYx8DLCtkRwVfgMjJwG2NdLRNV1Rq3+cHd/PH0PWTyvf4Ld8vaiVjq2NlY6wF7XS0bWxYlU9f26tXpBuw+Hl3GsjF8P+1n/hGJyhQZ0Ne9y9XfCe533UJRr7HzbuVav+v+T0gffreUfmvrb5hD56vk3KI1/n57iURNkJpXvQPOEMzZGoKrbNNZuVhkVnFmZafUb1ktzoG/0eV5YJg0xU1ZHNygpzJnPUTs4kGssOMJknnN3d3UBlMOkAbuDu7jC50VdC1RgAcpk5y8oZI2W3OqJw2D9//c02YXJWmXIpc6nnbFYrxZwRGYqpVNKt0pTcYYyxdfij39BoGi8GgejUR+sbYwcy/yFJEs6otMJVW650c8gfwLldCiOFdi+GFwfwDMAmuk6SJNw0+091resv2P+uAmLb/LpQXtBAV9TsK9vuwg8w0W7Yx8BT9DdjRNOQ3vevXu1OHVdCydxnkb0xpjTPHzlydEIqf/oPJ7mhgCqz3upTTqKTZnD4iw7QZXDQH4PtfN+gtj3YWSvmUVu7X9STwS5plVqvpkMkiXcdVLenysx9iWB2cvKauPzi9uZ9O2hee26C+61cr0C7FIUM3U/FSUjBQ0Xy7vLybAcw1Ee/MMZhrGahqtib3lhdoFuUNHxXpQ1jtltACqMwg4+ilmxH6/603YzagR04WDTLbjSvjSIEUUlfAOF24Vxl09EI6yRTZZ0nYo7aiUTIIDghjKw20q08yPjs9D2u3qHI0UB6PYkFLqhuQyX2xTbZE5V8j8Rn+5lgXLtFaeSfobzarwSLoNX4qpiVcVGMvXNsfHa68+7qLdEGE5mvp86SXwY+CHsbLXDAwm8vcCiKHzcrVA2bYwocJ98lx/SI8lIIHZt4KJ+DKaXlgyp3VCkh/d7yrq3bVF9DSDX0vhlY4JDufFzp8j3hsKBySa9hvZ4Kix+Nahp6/LlGQwmctP19SnReryGXlq7z9pvAjp+bTgUH5+1mOmTbMbHvf5dkTRle0nsdUgAOf+Bq95OQbziLro7WrdA4y7BykfpOf6SC22yOsw8Xl9A0/wLXm2PU +api: eJzNWF9v2zYQ/yrEPSUAI2fFngQMmNe0a9ZtDZI0L4mR0NLZZkdRKkkZ9QS97gPsI+6TDEdKNmU7aZKlwPxiiby/vzue7tiAE3ML6TW80UtpSl2gdhYmHMoKjXCy1Kc5pCBMtpBLvLWyqBTe4oYYOFTCiAIdGhLUgBYFQgoRza3MgYPUkEIl3AI4GPxcS4M5pM7UyMFmCywEpA24VUXc1hmp58BhVppCOEihrr0UJ50igshedppD205Iqq1KbdGSoFfHx/SXo82MrMgTSOGizjK0dlYrdt4RA4es1I5cSRsQVaVk5h0ffbLE00TGVYZgcTJoyMo6MHU2S+1wjiYy8rWn4JDjTNTKQXrc8hgYr1GvPsw8cEPpM+Ujcz+BtLfzWpicUFzbMC1LhUJHNpxa9nNHFhkyE8pi2/Ker5x+wsztx/ett6TlayW6VgraCXHv2CjyXBJ6Qp0NrN1QbFkaye2CTiv7xUAmTVYrYQ5+FVNUv9hSH32oXVW7Q9h2hRKid2abGnYc3/Vuw30Z3IcCnXims5FnW8kyUFxMhysxRl9D5G2tvgIIb0A6LB7JJYwRqwdx2eJ9Gqi/EZgt76rFoyDbkfE78bZ8eMafJ+okEtFyyAwKh/mtcA8JjKpTLhweOentuV/L6yCWjT1YdZV/CyUfg9hOSY4Kv4GSkyC2U9LDNV1RqX+cHl/PHwPWTytf4Dd4vaiWHq21lh6wF9XSw7XWYlU9f26uXhBvy+HlzOs8F9v1bfjBMThDgzrbrnH3VsF71odSl2jsfzi4Vx37/xLTB76v5z2Y+8rmE+ro+SYoj/ycn+NSEmQnFO6t4glnaI5EVbFNrNmsNCzqWZjp+BnlS3Kjb/R7XFkmDDJRVUc2KyvMmcxROzmTaCw7wGSecHZ3dwOVwaQXcAN3d4fJjb4SqsYgIJeZs6ycMWJ2qyNyh/3z199s7SZnlSmXMpd6zma1UswZkaGYSiXdKk3JHMYYa8If/baVpvFmIIi6PtpfKzuQ+Q9JknBGqRWeunSll0P+gJzbpTBSaPdi8mIHniGwjZ6TJAkv7f6urjP9BevfVZDYFb/elRdU0Cc1+8qxu/ADTHQa9iHwFP71GNG2xPf9q1e7U8eVUDL3UWRvjCnN80eOHJ2Qynf/oZPbJlBlNth9Sic6abeav6iBLoOBvg22832D2qaxs1bMo7J2P6kHg13SLpVeTU0kkfcVVHddZea+RGJ2YvKasPzi9sZ9M2hee2yC+R3dIEH7EIUI3Q/FSQjBQ0ny7vLybEdgyI9hYozDWM1CVrE3g7G6QLcoafiuShvGbLeAFEZhBh9FJdmOmuG03Y66gR04WDTLfjSvjSIJopI+AcLrwrkqHY1UmQm1KK0L2xPizGoj3cqzjs9O3+PqHYocDaTXk5jggrI15N+QbB0zUcn3SCh2lwPj2i1KI/8MSdXdDSwCV+tzYVbGqTCeo3aCjc9Od75Ygy06ViLzWdRr8tvAI2dtOhoJv5wIOQIOWPhDBQ5F8eN6h3Jg3ZzAcfJdckxLFI1C6FjFQ1Hcmk06PChfR5US0p8ob1rTBfgaQoBhcFNggUO6c6XSR3nCgSJHzE0zFRY/GtW2tPy5RkMBnHRVfUpwXjeQS0vPeXcTsGPnuj7BwXl3hA7ZZjgc2t8HWVOEl/Q1hxSAwx+42r0I8mVm0edR0xGNswwrF7HvVEVKuPWROPtwcQlt+y8CIWB1 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-simple-evaluator.api.mdx b/docs/docs/reference/api/archive-simple-evaluator.api.mdx index 31a4417da9..bde08a2b88 100644 --- a/docs/docs/reference/api/archive-simple-evaluator.api.mdx +++ b/docs/docs/reference/api/archive-simple-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Soft-delete an evaluator via the simple surface." sidebar_label: "Archive Simple Evaluator" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-simple-query.api.mdx b/docs/docs/reference/api/archive-simple-query.api.mdx index 967a79dcf5..a29a83dbfd 100644 --- a/docs/docs/reference/api/archive-simple-query.api.mdx +++ b/docs/docs/reference/api/archive-simple-query.api.mdx @@ -5,7 +5,7 @@ description: "Archive Simple Query" sidebar_label: "Archive Simple Query" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-simple-testset.api.mdx b/docs/docs/reference/api/archive-simple-testset.api.mdx index 46373b404e..d0e710a70c 100644 --- a/docs/docs/reference/api/archive-simple-testset.api.mdx +++ b/docs/docs/reference/api/archive-simple-testset.api.mdx @@ -5,7 +5,7 @@ description: "Archive Simple Testset" sidebar_label: "Archive Simple Testset" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zYQ/iuYPSUztORkeuKprt1M3LS1J1ZykTU2RKxEJCDA4OFE1fC/dxYgJUqyYsdVLh2fJBGL3Q/fPrBcLcHzuYN8DCN03qF3MMnA1Gi5l0afC8iB26KUd3jjZFUrvPFJEDKoueUVerSkYAmaVwg5tOs3UkAGUkMONfclZGDxS5AWBeTeBszAFSVWHPIl+EVNO523Us8hg5mxFfeQQwhRi5dekUCLkZ0LaJoJaXS10Q4dKXl9fEwfAl1hZU3oIYerUBTo3Cwo9r4VhgwKoz1qT+K8rpUs4mGHnxztWfaA1Zao8DJZKExIm1q8Unuco+0BPI0S2RaIV0zOGGctMewrd8yiD1ajyNgxM75E+1U6HMSdMx6Uh/y4yToqI069uJhFmjcxzVT0314B0pLQmuknLPwum2+ihm3Ml4oXWBol0LKZsR34I4V3qFi0OrjW13pUSscqI1Ax6ZiMvEqjuVILhlXtF2waPPuMtWfcMc4ECqIbBSNYzBnmS+7za33E8Jt0Xuo5szhDi7pAx7xht9FYzi7qpHjcxz25ZRYrLjW740qKjHEtSJfzNhQ+WBQJKyu4ZlNkXAgUrESLTGrmS2SzQGLsq/SlCZ5NLfLPBMKXeK0Zc8FaE7SgR2ejCzeAJlsFgA5KQTMhjne8wIWQCfDlhsPWEq2SqTEKue7rbROBntyvBgppi6C4ffEnn6L6wxl9dBF8HfxL2HY4JUrn8m1p2AmP3dP1AoYO2WRQoedPPGzvZFtJtGG4mm4+6XP0ECNvgnqAkGwJ0mP1yF3cWr74Li9be3+M1L+IzCZrq+ejKNvR8TftbbZS+GmqznoqmgwKi5SsN9x/T2GvYgvu8cjLiGe/ldOklp1EskItfoaRD0lta0Sgwp9g5CypbY10dE0XdP09zk684x5D1m+LePGt+TqolY6tlZWOsINa6ehaWXEqzJ8aq1e0t8ngcPDak/Pt+rZ559JdWHCHN1JsVbm2rDwM4fHFZdQaY+ciFt/O+D7Lu1DbZuxAFPV7sAwOq/tqpfe57jzXnZ9adw5dM+7pw/+HHWB6V3jud5/73f/c7+5ess+kPpnUMyKzeeBdn7qGJ7Ue7kHVDv17vJNOGp2g3PeObFuJA5b1zmhb1O+4lVwfsiP5mDSmidN+Dq7iaKxl4l6Fm9OVUYnrcZD0JZPeMcXpEetoYqtOj1Vo5yhoumLYLSXOYLV2G0cecZKx2nh+xoxmtz2+bwePh7+akzUN7fnl9evdsdpHGrbEoRn73Vpjnz5TE+i5VPRtTwerTLGx+iPVYLId7b2bwSSAsb67+X09+7piOcfnvdTZLxrJYCNapR5DUyKTeNcq6DazC/+tp2bHH6fE5Td/r8/WU9Rx5CbBb+U2IrdzUfLQfirOkgu+FyBvR6PLHYUpPjYD4yTNilmKKDZazYor9KWhaXJtXJod+xJyGKah8rBNBjdcrt9YmmE7eQZ6z7B33Zw5WEU7eS2j09PP0vva5cMhhkGhTBADPkft+YDLJDghHUWw0i+ikpPL83e4eItcoIV8POkLXFGspujbFFt5jNfyHRKH7cz7JPjSWPlPCql27F2mXU2MhJnpB8JJBMdOLs93Bq8bS5RUvIgx1FmKy5BtHXt9WsiABqIqTuJ59etqJRZItC6ZOR68GhzTI/JHxXXfxD4fbo2XWi4oUoe14jLmUoS1bN07huReWI2yadCcb/xD0Pl4kkFJoZGPYbmccocfrGoaevwloCWnTdoCPyUKx0sQ0tF3AfmMK4c7+FYVCV68b5PmJVtfyZu4O8dq8uodV4F+QQafcbH5n0YsKmUXN8tW4KQosPa9rTs1kAJslQSXF1cjaJp/AQmCwMg= +api: eJztWU1z2zYQ/Ss7e0pmaMnJ9MRTXbuZuGlrT6zkYmtsiFiJSCCAAUAnqob/vbMAKVOSFTuucun4JAnYL75dLJZPSwxi5jG/xBH54Cl4HGdoK3IiKGtOJeYoXFGqW7r2al5pug5JEDOshBNzCuTYwBKNmBPm2O5fK4kZKoM5ViKUmKGjL7VyJDEPrqYMfVHSXGC+xLCoWNMHp8wMM5xaNxcBc6zraCWooFmgjRFOJTbNmC36yhpPno28PjzkD0m+cKri6DHHi7ooyPtpreF9K4wZFtYEMoHFRVVpVcSHHX7yrLPsBVY5hiKo5KGwdVJq41Um0IxcL8DjKJFtBPEK1BQEtMDAV+HBUaidIZnBIdhQkvuqPA2i5lTUOmB+2GQdlDFOszibRpjXY5rqmL+dAmwlRWsnn6gI22i+iRY2Yz7XoqDSakkOptZ1wR9ouiUN0evgylyZUak8zK0kDcqDirgqa4TWC6B5FRYwqQN8piqA8CBAkmS4SQKHBd5CKEXIr8wB0DflgzIzcDQlR6YgD8HCTXSWw1mVDF/24x7fgKO5UAZuhVYyA2Ek2/LB1UWoHckUKxTCwIRASEkSSnIEykAoCaY1i8FXFUpbB5g4Ep85iFDSlQHwtXO2NpKXTkZnfoBNtioAU2uNzZgx3sqCkFKlgM/XEnYn0RqZWKtJmL7d9iDwyv1msFCuqLVwL/4UE9J/eGsOzupQ1eElbiacD0qX8k1p3CqP7afrFQw/ZJPhnIJ44sP2nmzjEK05nk/WV/oYPYTIm1o/AEi2RBVo/kgt4ZxYfBeXDd0fA/UvBrPJ2u75KMi2bPzNus3GEX6aqZOeiSbDwhEf1msRvmew17GlCHQQVIxnt5fjZBaOIlh1JX+Gkw/JbOtEkqaf4OQkmW2ddHBNFnz9Pc5PvOMeA9Zvi3jx3eG1Vy8dWisvHWB79dLBtfLidT17aq1esG6T4f7Ca59cbPa39TuX78JCeLpWcqPLtW3l4RAe31xGrTM4lbH5ds53ed4OtR3G9gRRfwbLcL+2L1Z2n/vOc9/5qX1n3z3jnjn8fzgBpneF53n3ed79z/Pu9iX7DOqTQT1hMJsH3vV5anjS6OEfNO0pvKdb5ZU1KZT73pFdK7HHtt45bZv6rXBKmH1OJB+TxcQ47cbgIlJjLRL3GlxnV0Yl3dFBKpSgggcteAk6mGA16cGc3IwksysWbvjgDFZ7N5HyiEzGSvH0BKyBmx7eN4PHh7/iyZqGdX55/XqbVvvIZEskzeB356x7OqcmKQil+duOCVbbYm33R7rBeLPaezeDTQHG/u5n983sdx3LezHrHZ3dohEMGPEuzxiGDzKLd6OCaU92Eb71zGzl45ix/Bbuzdkdi3oZsUnht3JrldulKGVoNxQnKQXfK5C3o9H5lsFUH+uFcZS4YkgVBaMVVzynUFpmkyvrE3ccSsxxmEjlYXsY/HB598bSDFvmGfk9w912PHPtNGuKSsWkp59lCFU+HGpbCF1aH9L2mDWL2qmwiKpH56fvaPGWhCSH+eW4L3DBFZpqbl1slSdRqXfEyLVM91EdSuvUP6mQWrK7TFpNzP/U9tN/NCMTBBydn27RrWtbfJREESun8xS3Mes9rM+HQxGXB0INMUOmQXXk38X819VObIvkfHJzOHg1OOQlzsJcmL6LXZnbIJVaLLg+h5UWKp6gGNayTeolpqTiisBmejlf+1+gy+w4Q84WKy2XE+Hpg9NNw8tfanKctHHb1icM4eUSpfL8XWI+FdrTVnyrPoQv3rdH5SXcXcTrcXeJNZzVW6Fr/oUZfqbF+j8ZsZWUXd0sW4GjoqAq9FS3Oh8X2Kr0z88uRtg0/wKFvb1p sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-simple-workflow.api.mdx b/docs/docs/reference/api/archive-simple-workflow.api.mdx index 9ef825430b..0c8598f488 100644 --- a/docs/docs/reference/api/archive-simple-workflow.api.mdx +++ b/docs/docs/reference/api/archive-simple-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Archive Simple Workflow" sidebar_label: "Archive Simple Workflow" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zgM/isanNoZNU47e9JpvUk7ybbdZPJoDxlPSkuwxZaiVD6cej367zsgKVvyu647s4ecEtvAB+ADCJLgDAwba0ge4HOpvo1E+aRhEENZoWKGl/IygwSYSnM+wUfNi0rg41OQhBgqpliBBhVBzECyAiGBRuCRZxADl5BAxUwOMSj8brnCDBKjLMag0xwLBskMzLQiVW0Ul2OIYVSqghlIwFqHYrgRJNC4GV1mUNcDgtRVKTVqQnlzekp/MtSp4hUFAAnc2jRFrUdWRDdBGGJIS2lQGhJnVSV46uLtfdWkM2t5Viliw3BvIS2tVwoOc2lwjKrl4ZmTiJec+PL6S/SUo4xY5GmMGpYiriOFxiqJWRx9OQ1yspQYFcykOWYnDm7ErDCQnNbxnGHnvZxejRz9XU9HwmV2swDXj63IWzENy1Igk62YLnXUb4m2vBkxobGOCQwnTFhmSrUL6u1ccD2Qlryq0OyCuQ1i60EKJtmYKm07yMcgth4ktdqUxS6MMy+1HkKInfofxCblvCy/7dK+IJkN7pcZ7nSeZDZRaNJ8N4EktB5ghJgNWbozhHeN3IYwcrazGM5IZo16zvSjVWKr+gXT0b0Sm9T9Mt6JcOvFNoDkTGYCty8NQrkIciswddwolsOvmJqW3q1rKE1nfOfWfR3PDUkrBNQDAljpCCzLOC1pJq47vWEhseRtCzf0avpmPQykXKVWMPXiAxui+FuX8tWVNZU1L2E5GmrlTTzL0rAS+2p0C+07Hz4UaNiBwbYiW2rzHcPFsPtNm6NdjLyzYgch8Qy4wWJPLaYUm27lZUn350j9SGTWcdjh96JsBeMf0q2XNsbDoM5bEHUMqUJmMHv0bWITYOtQkTGDrwx3/my2cuZho74jy1bZ7zBy72GDkQwF/gYj5x42GGnoGk7phLafHXcM24esv6buaLbg66hWGrbmVhrCjmqloWtuRQs7PrRWb0mXNrKjuRciZ8v9rXu8s4of6vK94i6Dft88DEEQQo4sc5eDX23D3dAmqPQvdI9PQf1/mdgt+/wNjlChTDHs5nt374uQhjoGZaXrFls9RmkLuhNWU5O74z4J6OZ885VNWPgw2Gb1JpgimudHqIOI9tp1c1/ceqtpX0mfN/+jbP7XC0qp3GVlzTO5xyL30tNZx1A67Wdmj8XsVeBzW0sl8NvQVNZemZ7byW9tJ3vfas+Zu4CsydCEKc6kOeLx75NHDGc/hRNOx4UjGrgJkNGODb9LwVrI7pRxPh1lyvARS030xE0ecUMjRl2KCWZR4CtiMoua2KIC1ZjmjPt7Mx+l1jUp/fHmzerk9RMTPHMjw+itUm7ed+DYNUPDuDuNhjpeFhBl2vn1Z9Zh6zDlS781iijDyJMGCnq8blK9uCJrzca4WAubRR0Z0R392myoTry9JbiLmvnRgllJyBlx+cOsTdpi0v7guPHuB7lOrTcp8hnaTMW5T8G2Crm4u7teAfT10S2Mvn9RiHxJRZ8XLwoFmrykR4eq1Ma9MJgcEuj5oXmvGXzr3qz1ylD3whMFxKBRTZr3CHeBgR6ruMu7/5gbU+mk10N7korSZidsjNKwE8a94IAwUqu4mTqQ/vXle5z6IzQkD4O2gNs6fAF2xeZJYxV/j0RjeBvpW5OXiv/bDNLd64i/JjlquRyV7VroO+ei/vXlypNC5ydaVyx1ZdRYcj9DvBT2Ilo66BduVYFBVvw5/4WKYH7FgtOT1yen9BVlpGCybWJjGpdmPIEMqtZeJRiXreulz/AD+AzD4nFDQwxJ9y2pSfMghpzqI3mA2WzINN4rUdf09XeLivI2CBvDkFh8mEHGNf2fhXHqiofzvgQvbsLSeRkttsSu501uJSWWHjPoE8TwDadLz1+ut+RN7cyCRD9N0V2lGt2VVkhFNl8K11e3d1DX/wEgM39Y +api: eJztWUtz2zgM/isanNoZNU47e/JpvUk7ybbdZPJoDxlPCkuwxZaiVJJy6vXov++ApGzJzzR1Z/aQU2IJ+AB8gEASnIPFiYH+HXwu9LexLB4MDGMoStJoRaHOU+gD6iQTU7o3Ii8l3T8ESYihRI05WdIMMQeFOUEfGoF7kUIMQkEfSrQZxKDpeyU0pdC3uqIYTJJRjtCfg52VrGqsFmoCMYwLnaOFPlSVQ7HCShZo3IzOU6jrIUOaslCGDKO8OT7mPymZRIuSA4A+XFdJQsaMKxldBWGIISmUJWVZHMtSisTF2/tqWGfe8qzUzIYV3kJSVF4pOCyUpQnplocnTiJeceLL6y/RQ0YqwsjTGDUsRcJEmmylFaVx9OU4yKlCUZSjTTJKjxzcGCtpoX9cxwuGnfdqdjF29Hc9HUuX2e0Cwty3Im/FNCoKSahaMZ2baNASbXkzRmmojhmMpigrtIXeB/V2IbgZyChRlmT3wVwHsc0gOSqccKXtBvkYxDaDJJWxRb4P48RLbYaQcq/+B7lNOSuKb/u0z1hmi/tFSnudZ5ltFNok208gC20GGBOlI0z2hvCukdsSRoZ7i+GEZTaoZ2juKy13qp+hiW613KbuP+O9CNdebAtIhiqVtPvTYJSzILcGU8eNYjH6Solt6V27htJ0xnfuu6/jhSFVSQn1kAHWOgKmqeBPGuVlpzcsJVa8beGGXs1PNsNAInRSSdQvPuCI5N+mUK8uKltW9iWsRsOtvIlnVRrWYl+Pbql948OHnCw+MdhWZCttvmM4H3WftDnax8i7Su4hJJ6DsJQ/Ugu1xtlOXlZ0f47Uj0xmHYcV/lGUrWH8w7r1ysL4NKjTFkQdQ6IJLaX3vk1sA2xtKlK09MoK5892KyceNho4sqoy/R1Gbj1sMJKSpN9g5NTDBiMNXaMZ79AeZ8dtwx5D1l8ztzVb8nVQKw1bCysNYQe10tC1sGJkNXlqrV6zLi9kB3MvRI6r/a27vau0eKrLt1q4DPp182kIkhEywtQdDn61DXdDm5I2v9A9PgX1/2Vid6zzVzQmTSqhsJo/unufhTTUMehKuW6x02NSVc5nwnJmM7fdZwHT7G++4hTDj+Euq1fBFNO82EI9iWivXTfnxZ2nmvaR9HnxP8jif7mklMtdlZV9JvdQ5J57OusYCqf9zOyhmL0IfO5qqQx+HZrKxiPTczv5re3k0afaU3QHkA0ZmqIWqOwBt3+fPGLY+2maCt4uHNDAVYCM9iz4XQo2QnanjIvpKGorxpjY6EHYLBKWR4ymkFNKo8BXhCqNmtiinPSE54yP92YxSq1rVvrjzZv1yesnlCJ1I8PordZu3vfEsWtKFoXbjYY6XhWQRdJ5+zPfYWsz5Uu/NYoowsiTBwpmsmlSvTwiG4MTWn4L20UdGdENv20WVCfeXhLcQc3+aMGsJeSEufxhNyZtOWm/c9x494Ncp9abFPkMbafi1KdgV4Wc3dxcrgH6+ugWxsDfKES+pKLPyxuFnGxW8KVDWRjrbhhsBn3o+aF5rxl8m968dctQ98IVBcRgSE+b+wh3gIEelsLl3f/MrC37vZ4sEpRZYax/PWTNpNLCzpzq4PL8Pc38xhn6d8O2gFswfNl1xRapwlK8JyYv3IgMKpsVWvzbjM/dnYg/HDlChRoX7QoYTEhZjAaX52sXCZ1X/DVh4oqnseReQ9wK1vR7PXSPj1D0eHufu28JLGH+5+INp35xsILjo9dHx/yI85CjapvYmryVyU4gg2u0V0oUqnWo9Hm9A59XWF5pGIih371BapI7jIETxmrz+QgN3WpZ1/z4e0Wa8zYMy8GIWbybQyoM/5+GIeqah4tuBC+uwgfzMlouhF3Pm9wqTixfYfAviOEbzVYuvVxHyZramQeJQZKQO0A1umsNkIts8QFcXlzfQF3/By7Xe/k= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-testset.api.mdx b/docs/docs/reference/api/archive-testset.api.mdx index a1a74cf6f5..3066adb125 100644 --- a/docs/docs/reference/api/archive-testset.api.mdx +++ b/docs/docs/reference/api/archive-testset.api.mdx @@ -5,7 +5,7 @@ description: "Soft-delete a testset artifact." sidebar_label: "Archive Testset" hide_title: true hide_table_of_contents: true -api: eJzdV0tz2zYQ/is7ODUztOxkeuKpatxM3LS1J1Z6sTUWRCxFJBDAAAvHqob/vbMgKVGSH4nHvfQkCtgXvv12gV0Lkosg8isxwUABKYhpJhSGwuuatLMiF5eupCOFBglBArVyID3pUhY0urbX9hIpwKyVUTeSZuAsUIW99AjGvqj0Lap+JYD0CHhXmKhQXdvSuyXMjvvd468R/WoG0RoMAWbaJsEb2ZmZgQ5APuIIPgW8tgPNdfd1o1VzHG2nMQNy4DGQ8zgSmXA1eskHPFMiF53QTacqMlFLL5dI6BmctbByiSIXW9MiE5rBqSVVIhMev0btUYmcg8pEKCpcSpGvBa1q1gzktV2ITJTOLyWJXMSYrJAmwwId/nCmRNNM2WKonQ0Y2MibkxP+2ctLLAoMoYwGPnbCIhOFs4SWWFzWtdFFOuXx58A660FgtWcMSLceChdbpS5ebQkX6AcBvk0S++R4DbocsOKbDOCRoreoMjgBRxX6bzokzBWWMhoS+UmT9VCmOO3qvEww78ZUOqPQM9g7Qo8j2mQbCRuNEYxlf4R3yWCCOBOlScx/0D3H2Npx889Y0GGu3iUL+4hcGFlg1Xoqne+hOTJ4iwaS11Qzk0oHWDqFhrmsU9a0s9KYFeCyphXMI8EXrAlkAAkKFSeTS2hVIwQHVEnKr+0R4J0OpO0CPJbo0RYYmO6z5CyH87o1fDWMezoDj0upLdxKo1UG0iq2FcjHgqJH1cYKhbQwR5BKoYIKPYJua7uMLAbfNFUuEsw9yi8cBFV4bQFC9N5Fq3jpdHIeRvekhjE+yIJUSrcBX+zQ4YABc+cMSju025GCV+43Iwrti2ik/+kPOUfze3D26DxSHemV2E/4kDr70uKAHo8Rb8KHbDKxRJLPPOzgZHsluuN4Od9dGWL0FCLvonkCkGwtNOHyO7Wk93L1eEHu6v4YqH8ymE3W9ebvguzAxl+s2+yV8PNMnQ5MNJkoPMr2MvzO7qUk4RHpFM/DXt62ZmGcwIq1+i+cfGrNdk621/qLOjltzXZOerjmqxfs9z1Yv666nt/j9aJeerQ2XnrAXtRLD9fGSzBx8VyuXrJuk4mXCy89W568Me81sXt9Travxu0bE04dBrCOoHsIJpFCBuRr5Wm/m/dR07D0z2/eHD6n/uZrMD2W4DfvnX/+W0ohSW34q2uW+wLGFTu7P9Lsp81efx3cUa4NMN00YXHf63PbO0OQC9w23IdFExgw4V1mjOU+zeJ94m3XuAu6G5g5yMRbxvKO7s3W9vV8lbBpw+/kBiTbpqjN0MNQnLYpeIwa7yeTiwODLT+WSJXjuaB2oR0GqBK5eGDG6IYHkYmA/rafGKI3rCJrndLY/q2I6pAfH2McFcZFNZILtCRHUreCU7ZRRK9plYyML84+4Oo9SoVe5FfTocAls6/l067YJgey1h+QUemml3Gkynn9T0uSboCpWq0m5bZ0w9SOU3Awvjg7eOTubHGZyCKxoveUtkW2d+ztaUUm+PFp0kwll79sdjinjGHr5mT0enTCS5yIpbRDFy3qMNmMbHt3+KZ4/58DbJdjrqnj2kidqj7Bve74etXPWDyj5Duja0/ZaSYqpnh+JdbruQz4yZum4eUUPlMuE7fSazlnRlythdKBv5XIS2kCPoL6Tx+7qn4FD4Xb89QySW+lifxPZOILrnaH7dT1qr4M1p3AuCiwpoHqQZPmetkU88X55UQ0zb9XU96V +api: eJzdV0tz2zYQ/is7ODUztORkeuKpbtxM3LS1J1Z6sTUWRCxFJBDAAAvHqob/vbMgKVGSH4nHvfQkCtgXvv12gV0Lkosg8isxwUABKYhpJhSGwuuatLMiF5eupCOFBglBArVyID3pUhY0urbX9hIpwKyVUTeSZuAsUIW99AhOfFHpW1T9SgDpEfCuMFGhurald0uYjfvd8deIfjWDaA2GADNtk+CN7MzMQAcgH3EEnwJe24Hmuvu60aoZR9tpzIAceAzkPI5EJlyNXvIBz5TIRSd006mKTNTSyyUSegZnLaxcosjF1rTIhGZwakmVyITHr1F7VCLnoDIRigqXUuRrQauaNQN5bRciE6XzS0kiFzEmK6TJsECHP5wp0TRTthhqZwMGNvLm+Jh/9vISiwJDKKOBj52wyEThLKElFpd1bXSRTjn+HFhnPQis9owB6dZD4WKr1MWrLeEC/SDAt0linxyvQZcDVnyTATxS9BZVBsfgqEL/TYeEucJSRkMiP26yHsoUp12dlwnm3ZhKZxR6BntH6HFEm2wjYaMxgrHsj/AuGUwQZ6I0ifkPuucYWztu/hkLOszVu2RhH5ELIwusWk+l8z00RwZv0UDymmpmUukAS6fQMJd1ypp2VhqzAlzWtIJ5JPiCNYEMIEGh4mRyCa1qhOCAKkn5tT0CvNOBtF2AxxI92gID032WnOVwXreGr4ZxT2fgcSm1hVtptMpAWsW2AvlYUPSo2lihkBbmCFIpVFChR9BtbZeRxeCbpspFgrlH+YWDoAqvLUCI3rtoFS+dTs7D6J7UMMYHWZBK6Tbgix06HDBg7pxBaYd2O1Lwyv1mRKF9EY30P/0h52h+D84enUeqI70S+wkfUmdfWhzQ4zHiTfiQTSaWSPKZhx2cbK9Edxwv57srQ4yeQuRdNE8Akq2FJlx+p5b0Xq4eL8hd3R8D9U8Gs8m63vxdkB3Y+It1m70Sfp6p04GJJhOFR9leht/ZvZQkPCKd4nnYy9vWLJwksGKt/gsnn1qznZPttf6iTk5bs52THq756gX7fQ/Wr6uu5/d4vaiXHq2Nlx6wF/XSw7XxEkxcPJerl6zbZOLlwkvPlidvzHtN7F6fk+2rcfvGhFOHAawj6B6CSaSQAflaedrv5n3UNCz985s3h8+pv/kaTI8l+M1755//llJIUhv+6prlvoBxxc7ujzT7abPXXwd3lGsDTDdNWNz3+tz2zhDkArcN92HRBAZMeJcZY7lPs3ifeNs17oLuBmYOMvGWsbyje7O1fT1fJWza8Du5Acm2KWoz9DAUp20KHqPG+8nk4sBgy48lUuV4LqhdaIcBqkQuHpgxuuFBZCKgv+0nhugNq8hapzS2fyuiOh+PjSukqVygdnvKmkX0mlZJ9eTi7AOu3qNU6EV+NR0KXDLnWhbtim2Ql7X+gIxFN7OcRKqc1/+01OjGlqrValJGSzdM6MkCLUk4uTg7eNrubHFxyCJxofeUtkU2OGzIx2OZlkdSj0Um+Mlp0iQll79sdjiTjFzr5nj0enTMSwz/UtqhixZrmGwGtb2be1Oy/8+xtcsxV9K4NlKnWk9wrzuWXvWTFU8m+c7A2hN1mgkmH8uu13MZ8JM3TcPLKXymXCZupddyzoy4WgulA38rkZfSBHwE9Z8+drX8Ch4Kt+epZZLeShP5n8jEF1ztjtip11V9Gaw7gZOiwJoGqgetmetlU8IX55cT0TT/Av3I2zY= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/archive-workflow.api.mdx b/docs/docs/reference/api/archive-workflow.api.mdx index 1ca48aaaa7..ba6c8d17b2 100644 --- a/docs/docs/reference/api/archive-workflow.api.mdx +++ b/docs/docs/reference/api/archive-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Archive a workflow artifact (soft delete)." sidebar_label: "Archive Workflow" hide_title: true hide_table_of_contents: true -api: eJztV99v2zgM/lcEPrWAl3TDPRk44HLrhvV2dyvWbntIg4ax6VibInkSnS4X+H8/SJYTJ+mvFb23e2pjkR/JjxRFroFx7iAdwxdjvxXK3DiYJJCTy6ysWBoNKYxsVsolCRQ3UUigZVlgxuLImYJFToqYjgdX+kpfEDsxbb/k18hTYbTgknrKOheSnViilajZDUS0kF/pTsgJtCRKmeekRWHNQnyvyUpyotaKnBNTqTNV53SNUfdXtjVNB1f6Iy2lk0aLs1MnLC1QamHJGbXEmSLhjCilY2NlhkqwxYyccIwrITVjxjEISsX4M1kPJPV8cjS0VJAlndEQK/liXsuchsuNwPEAEjAVWfSkneWQQnTsugsJEqjQ4oKYrKd8DRoXBCl0AtcyhwSkp7xCLiEBS99raSmH1AeXgMtKWiCka+BV5VUdW6nnkEBh7AIZUqjrgMKSlRfo0irOcmiaiYd0ldGOnEd5dXLi/+ym+6LOMnKuqJX4GIUhgcxoJs1eHKtKySwEOvzqvM6651llPQ0sWwuZqVul6LDUTHOyPQ9fB4n9mpu+nIqbknS/6KRPJ9dWU56I6UkU0EaTWCBnJeWDgFNgrRjSkybZUBvc1qsPReB918XCqJysJ39H6H6Gm2QjoWulwFPbRfQ2AAbGEyhUuGB3m5fuukdoj6qZMYpQ96g6c2LUE+3FWqBy1CQejJaoamRjH4J6sxG8HchpWVXED8FcRLEDkCbp9MzsK2V8S1WOYht5G0g65NRDHNCHeS59/KjOd4g8SF3nbg83ZtN/uR0GMmmzWqE9+hNnpP5wRr/4UHNV8zHsx9PP+b40HER/X8VctuHDghifGGwvsr2rtmN4Mdv90ufoIUbe1uoBQpI1SKbFI7XQWlzdf5N2dX+O1L88mU0Su+yjKDvA+NvrNnvN6WlQpz2IJoHMErYP5CPbTo5ML1gGf+628rqFFaNAVl3l/4WRTy1sNLJ96p/VyGkLG410dM1Wz9ioO7J+X8Vm3fH1rFY6tjZWOsKe1UpH18aKU/X8qbV64XX9K/Bs7oXx4+EH4VaM3cngcmeUjA/I4FHom3Gmabz4L69eHU4/n1HJPLyv4o214XF84uiTE6NU4Ylve+K+gDLZzunP9PRJs9dGe0+RifOBf1Dc/LZpcdsincM5bfvq3aKBDHHpT31haN+OvXiXXx37c8Y/ejAHqXjtufzBt6ZrO+2OAzet+1GuV0vbFLUZupuK0zYF99XGu8vL8wPAtj4WxKXxk3xlHIfpnUtIYbjZUYbr3ujeDOPADwk4sstuyK+t8kpYyZDI9mfJXLl0OKR6kClT5wOck2YcoGwFJx4jq63kVQAZnZ+9p9U7wpwspONJX+DC119bUbtimyxgJd+T5yUuHKOaS2PlP90YGVaOstVqQnYL00/uKDgnRudnB3P6zpG/KJiFuugshWNI9sLeRgsJ+A3NHzLh4rfNic9qXK8ghZPBy8GJ/+RTsUDdNxG30y/bNWvvtd7c3/832cdusrFw/FUdVgplaCYhh+t4Dcab3cpBAunuDtvdhEkCpb876RjW6xk6+mRV0/jPngNf2pMEAnkzX2jjNeTS+f/zuETck8ujj7FdHIu7HO7KX/va99uO/wUJfKPV3tod+mnZXa91lBhlGVXc0z1o//4ebtrE+YeLS2iafwGIMf4A +api: eJztV91v2zYQ/1eIe0oA1U6LPQkYMK9p0azbGjRp+5AY8Vk6WWxpUiUpp56h/304inIkO18Nsrc9JRbvfsf73fE+NuBx4SC9gC/GfiuUuXYwTSAnl1lZeWk0pDCxWSlXJFBcRyGB1ssCMy8OnCm8yEmRp8PRpb7UZ+SdmLVf8iv0M2G08CX1lHUupHdihVai9m4kooX8UndCTqAlUco8Jy0Ka5bie01WkhO1VuScmEmdqTqnK4y6v3pb02x0qT/SSjpptDg5dsLSEqUWlpxRK5wrEs6IUjpvrMxQCW8xIyecx7WQ2mPmoxOUiovPZBlI6sX0YGypIEs6ozFW8sWiljmNV1uBwxEkYCqyyKSd5JBCvNhV5xIkUKHFJXmyTPkGNC4JUugErmQOCUimvEJfQgKWvtfSUg4pO5eAy0paIqQb8OuKVZ23Ui8ggcLYJXpIoa4DipdesUAXVnGSQ9NMGdJVRjtyjPLq6Ij/DMN9VmcZOVfUSnyMwpBAZrQn7Vkcq0rJLDg6/upYZ9O7WWWZBi9bC5mpW6V4Yak9Lcj2bvg6SOzm3OzlTFyXpPtJJzmcvraa8kTMjqKANprEEn1WUj4KOAXWykN61CRbasO19fpDEXgfXrEwKifL5A+E7me4SbYSulYKmNrOo7cBMDCeQKHCA7vbvHRXPUJ7VM2NUYS6R9WJE5OeaM/XApWjJmEwWqGq0Rv7ENSbreDtQE7LqiL/EMxZFNsDaZJOz8y/UuZvycpJLCNvA0n7nDLEHn2Y55L9R3U6IHIvdN11e7gxmvzldhjIpM1qhfbgT5yT+sMZ/eJD7avaH8KuP/2Y70rDnvf3Zcx56z4syeMTne15tvPUBoaX8+GXPkcPMfK2Vg8QkmxAelo+UgutxfX9L2mo+3Ok/sVkNkmsso+ibA/jb9ZtdorT06COexBNApklbBvkI8tOjp5eeBnuc7eV1y2smASy6ir/L4x8amGjkZtW/6xGjlvYaKSja75+xkLdkfX7Ohbrjq9ntdKxtbXSEfasVjq6tlacqhdPzdUz1uUu8GzXC+PHww3hVozhZHA+GCVjAxk9Cn07zjQNi//y6tX+9PMZlcxDfxVvrA3N8YmjT04epQotvq2JuwLKZIPTn6np02anjPZakYnzATcUt7htWrwpkc7hgm7q6t2igQxxzqecGJrLMYt38dWxPmf+Rw9mLxSvmcsf/tZw3Uy7F4Gb9vpRrpdLNyFqI3Q3FcdtCO7LjXfn56d7gG1+LMmXhif5yjgfpndfQgrj7Y4y3vRG92YcB35IwJFddUN+bRUrYSVDINufpfdVOh4rk6EqjfPt8ZQ1s9pKvw6qk9OT97R+R5iThfRi2hc446xr82gotuUeK/memI24ZkxqXxor/+mGx7BolK1WE2JamH5IJwvSHsXk9GRvOh8c8fPALGRDZykcQ9Jz1qXjMYbPI5RjSID3Mj70hMvfticcy7hUQQpHo5ejI/7EAVii7puIO+mXm+Vqp0dvX+3/++tj99eYOPxAx5VCGUpIiOEmJv/FdqNykEA63Fy7/J8mwDnN0pvNHB19sqpp+DNzwKk9TSCQN+dEu9hALh3/n8fV4Z5YHnyMReJQ3HXhLv015z7vOPwLEvhG651lO1TRsntemygxyTKqfE93r+jzO9wWh9MPZ+fQNP8CC7z6oQ== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/assign-role-to-user.api.mdx b/docs/docs/reference/api/assign-role-to-user.api.mdx index d349804a0e..8032fcb5d9 100644 --- a/docs/docs/reference/api/assign-role-to-user.api.mdx +++ b/docs/docs/reference/api/assign-role-to-user.api.mdx @@ -5,7 +5,7 @@ description: "Assigns a role to a user in a workspace." sidebar_label: "Assign Role To User" hide_title: true hide_table_of_contents: true -api: eJztVk1z2zYQ/SuYPTkzrOR6euKpauJMNGnHHlluD7LGsyZXJBISYADQtsrhf+8swC9JjZqcU18sAvv59uEBDTjMLMQb+Eubz7bChCxsI0jJJkZWTmoFMSyslZmyAoXRBQmnBYrakhFSCRQvvefsQT2ohcls/KCEEKLCfaExFRf3lsxKF/QmFuuchvVEK4dSSZUJl5PQJkMl/0ZOKmQahRRUoiwigSodk/tyZiHJkP1RpuLCOtMlWb4TeufjTutjD0NfarJOXKzCj87hPVq3uF0O2/rpEyXO97QiVxvVt/WkdRGLtalJyJDBF/aCVtg6ScjaXV0U+65MSiPxHgtLQruczIu0AacVSkt9yA/r9e31a0Ie8FgsQ1jff6rJCqWdyPGZREWmlNYyQk7z106bUrhcWoEJO8/OBDQk2E4JMkabrr4e/R7cPvEMItAVGT+OZQoxBPtHNnx0+pGNIIIKDZbkyDCLGlBYEsQwnQpEIJlFFbocImB8paEUYmdqisAmOZUIcQNuX7GvdUaqDCJw0hW8MFBTLFNo222IQdb9ptM9Ox6HZGKRcryFVVXIxDcx/2SZzc0kY2W4RSfJ8pen2rlCrr1BGwFj4KOr/c3O933o0kbDiqqLArjmPggfBI4xpTujdCbvzfRkeAyi3jaw9ADWTdfIaYpJFf2RhLblaIZspZUNOFxdXvK/Qw24G6gtVp0xfDvSIcsvV1engf/EQqahtWvm5XdEPZpfSq4boHRU2lODQicHu98wPqkcZWSg3Y6YozG4n4zndx0K5KmWNjs3yT/IWsz8/IPJGbL5Q7rm3ZZPUFV7QPrtpV9oI0jc6yTMwIfe7i1j+er+kzOMTSi/s5uQZRxRmNDXoXgXRvBvyXoTlqaTgIEfJblcs9RU2jqvLS6HGOaDmth5M1WWds4H0UIElsxzL0G1KdgJK+kHGT5z5yobz+dUz5JC1+kMM1IOZyiD4ZZjJLWRbu+DLG6XH2n/gTAlA/FmOzW4Y/4FRh2aDVPASn4kxqWTw0Xtcm26k9jrYR68uHFm9mrUtOtXLKugMJ0mjfQI0jN+n8jISGKQaqennFn4nsXidgknV/x0y1/Miadb34DfhugIzRFEiIZSHWH567DDdfBoQprL2c+zS17iCZeopin89SJYlMRai/twvRxU2YzK8P+b5Ad9k3QnjDVtXhUovep6VjadXmzG1wdLQ3z0FgmSsY0gZ5GJN9A0T2jp3hRty8tfajKsAdsIntFIfOKjs2kglZZ/pxDvGLoz1PRDZF19I75WcK8TikXiGYuavyCCz7Q/fj35myfvhajpTN6GbD/5+2EMcXJdsgIGj0XC0J+13U4k+Pbmbg0RPHVPrFKn7GPwhSHEl1Cu9t17JfRrDRSosppvuBhCTP77BykxRak= +api: eJztVk1z2zYQ/SuYPTkzrOR6euKpauJMNGnHHlluD7bGsyZXJBIQYADQtsrhf+8sQFKU1ajJOfXFIrCfbx8e0ILHwkF6B38Z+9nVmJGDTQI5uczK2kujIYWFc7LQTqCwRpHwRqBoHFkhtUDxPHjO7vW9XtjCpfdaCCFq3CmDuTi7dWRXRtGbVKxLGtczoz1KLXUhfEnC2AK1/Bs5qZB5ElNQhVIlAnW+Tx7KmcUkY/YHmYsz522fZPlOmG2IO62PPSx9ach5cbaKP3qH9+j84no5bpvHT5T50NOKfGP10NajMSoVa9uQkDFDKOwZnXBNlpFz20apXV8m5Yl4j8qRML4k+yxdxGmF0tEQ8sN6fX35klEAPBXLGDb0nxtyQhsvSnwiUZOtpHOMkDf8tTW2Er6UTmDGzrMTAS0JttOCrDW2r29AfwB3SDyDBExNNoxjmUMK0f6BDR+8eWAjSKBGixV5ssyiFjRWBClMpwIJSGZRjb6EBBhfaSmH1NuGEnBZSRVC2oLf1ezrvJW6gAS89IoXRmqKZQ5dt4kxyPnfTL5jx9chmVikPW9hXSuZhSbmnxyzuZ1krC236CU5/gpUO1XIZTDoEmAMQnS9u9qGvg9dumRc0Y1SwDUPQfggcIwp3RmlE3mvpicjYJAMtpGlB7De9Y0cp5hUMRxJ6DqOZsnVRruIw8X5Of871ICbkdpi1RvDtyMds/xycXEc+E9UMo+tXTIvvyPqq/nl5PsBSk+VOzZQJjvY/YbxSe2pIAvdZo85Wou7yXh+N7FAnmrlilOT/IOcwyLMP5qcIFs4pGve7fgE1U0AZNhehoUugcy/TMKMfBjs3jKWL/4/OcPYxPJ7uwlZ9iOKE/o6FO/iCP4t2WDC0nQUMPKjIl8alpraOB+0xZeQwnxUEzdvp8rSzfkgOkjAkX0aJKixip2wlmGQ8bP0vk7nc2UyVKVxPm5v2DNrrPS74Lq4Xn6k3QfCnCykd5upwQ2zLvLo0GzEHmv5kRiNXgQXjS+N7c/foIJl9OJ2mc+rvZJdvmBVR13plWhPiig4++8j8dhTF6TemilTFgVpj2JxvYSji326Fa7jLJBsaCBsQzLB0KXzOYblGco5JGOpnrD6ddzhOnggMc357OfZOS/xXCvU0xThUhEsRWJtxG28VA6qbPd68P9L5Ad9ifQnjJVsXiuUQWsDK9teJe72bw4WhPTVCyQKxSYBPvxs3baP6OjWqq7j5S8NWdaATQJPaCU+8tG5ayGXjn/nkG4ZuhPUDENkNX0jvlbwoBOaReIJVcNfkMBn2r1+M4X7phyEqO1N3sZsP4VbYR/i6JJk3Ysei4yhP2m7mQjv9dXNGhJ47B9WlcnZx+IzQ4jPsVwTug9KGNZaUKiLhu+1FGJM/vsHvd9CSg== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/call-tool.api.mdx b/docs/docs/reference/api/call-tool.api.mdx index 3b91047a34..22a7a34474 100644 --- a/docs/docs/reference/api/call-tool.api.mdx +++ b/docs/docs/reference/api/call-tool.api.mdx @@ -5,7 +5,7 @@ description: "Call a tool action with a connection." sidebar_label: "Call Tool" hide_title: true hide_table_of_contents: true -api: eJydV81u2zgQfhVizqqdDXrSab1pFzWaNIHj3UtgBGNpbLOhRJWknHgNAfsQfcJ9ksWQskz/F8khsIbzp5lvPo7W4HBuIX2CsdbKwiSBnGxmZOWkLiGFG1RKoHBaK4EZC8WrdAuBItNlSV7SgwR0RQb5YZhDChkq9cw2kIChHzVZ94fOV5CuIdOlo9LxT6wqJTNv1f9uOdwabLagAvlXZdink2T5KUd3RCpz/u9WFUEK1hlZziEBJ51iwTCHJmlPT2uNWc6vPcNaOUhhVpf+tdi4+30QusTirNtvfN4kgGZeF1Q6b7Q5HHTCpssQ9PQ7Za6tmDSUc1t8mNjLJMpca8X9+XOT5H7z7qQx2lhxX1E5GIrNywhuTyrW7DsRneumdzEbmUNUkyOpfOI27afRhmc8PHNoK9AYXAnpqBD//ftTVGgt5WJJZopOFmJmdCHcgsTt7d3lpDw0juRykMcoIFFQuSSlK/KxXw1W1gcz+CqiVH2VOHoTh3OmJi+wlS5tgML11ZWH6E6wxzrLyNpZrcSoVYbkvejnVE6hH8vV/QzSp0MozrQpkBFd15JHodMoa6WgmexPinXoarvrczeikwVZh0V1DPlduBwdfWDVeMo6y2gkT6V+LlU/rg1XMn+3jxu2bRIoyFqcv9vNXWseSpe9OIPZu509bj0cA3ykxj069NQkHUee6p7R6ixljfg8ZkLP4JzMZnKfzxMuT57wN0YAVIT2UyY3rcqlId9JYet5b+xHZGvlLpGQaPt+lHummL0IpyP6OSz1mf5sszhCP4EGtvzjb9LBnEqHQuZUOulWiQhjmAgsc5/Fkcwvk6JnjCOk2HFR44nt4/X1IXX9jUrmnpjEZ75A3s9bOTmUnrmY6+2hgtLZzukvTI4sHc3JBMi3Mn+fRF241SFBP+R2fg6A0RBf2hR8McSGgGRZ1S6+1IdewLB3b5GbA4h4yL9dhjzXJqTf6kXt3LYodOh0KT6FFpzD7Jfx+OHAYcBHQW6heaOrtGWTCt0CUugzGG0/C7esJbMkY33baqP4HCvpexYeF85VNu33qe5lStd5Dz3meyiD4oR9ZLWRbuWdDB6GX2n1hTAnA+nTJFZ4ZKgF8OyqdQXHSn4lLkFY0WBQu4U28h9sdyTJGF8EK35HBvFou6R+fsOiCkS5IVRmvQgOIcxsu3XFW2IbdIPbxiNlpne2vzDxg4fhAUfsHPHQYeYir+EYkr26bssJCVDhRw4cYfF7d8II4SaFMFe933pXLOK2Fhgn7ul7HFb3ndyi1f2XvwraUjHc+5VC6QfS575uoRSY3fLbtoy1YKSlT7BeT9HSX0Y1DYt/1GQYHZMElmgkTrmUT8wBiw1O1vBCq+2d8qHd7Jeo6oCLPeJigAaLQZZR5c7qTqJheLh/HEMC0/aTpvCrCBh85QnGV0jBfxGxdbh4WbYGheW89vsGBJ/89z9dSJ+u +api: eJydV81u4zYQfhVizto4DXrSqe7uFhts0gSJ20tgBGNpbHNDiVpylMQ1BPQh9gn7JMWQsk3Hf4v4YEhDzg9nvvk4WgLjzEP+ACNrjYdxBiX5wumGta0hh49ojELF1hqFhQjVi+a5QlXYuqYgOYMMbEMO5eWyhBwKNOZRdCADR99b8vy7LReQL6GwNVPN8ohNY3QRtAbfvLhbgi/mVKE8NU5ssiYvbyXyHqku5Z8XDUEOnp2uZ5ABazYiuCyhy/rVw7tGIpdjT7E1DDlM2zocS5TXzzuua6yOmv1T1rsM0M3aimoOSqvF4VrYrSMEO/lGBfcZ045KKUtwk1oZJ5Fba6Q+f6yCfFu8a+2cdV7dNFQPL9XqMErKk6ul2M7U2nR3djIaXUKSkz2hfJIyvQ2jdy94eBTXXqFzuFCaqVL//ftDNeg9leqZ3ARZV2rqbKV4Turq6vp0UAEae2LZieMuIlFR/UzGNhR8vzhsfHDm8EUloYYsifcudceupSDwja19hMLF+XmA6Jaz+7YoyPtpa9Rdvxmy96JfQjmEfqwXN1PIH3ahOLWuQkF022pphfWOujUGuvHbTvGM3Pptm9seWVfkGatmH/LX7kpk+iBb0y5bayYteSj0Y6GGdu0kk+W7bXwU3S6DirzH2bvNXPfqMXXFEzss3m3sfmNhH+CTbVKjXUtdtubIQ9Vz1hylrDtZT5kwMLgEs+rcx+OEK52nwo0RAZWg/ZDKx37LqSbfCmFj+U3b35FvDZ8iIdXXfS/3TLB4UmwT+tlN9ZH6bKLYQz+RBjb8E27S4YxqRqVLqlnzIlOxDTOFdRmi2BP5aVIMjLGHFNdc1AVi+/XiYpe6/kajy0BM6rNcIO/nrZIYdWAu4Xq/u8HYYmv1JzpH10wzchHyvSzcJ0kVrmwMMDS5nx0DYNLEpyaFkAy1IiBdNy2nl/plEAjs+TUxswORAPnX05CX3MTw+31JOTclihU6nIpPsQTHMPtlNLrdMRjxURHPrUx0jfWi0iDPIYeBgNEPinjLenLP5HwoW+uMrGOjQ83i65y5yQcDYws0c+s5Lo9Fs2id5kVQHd5efqXFF8KSHOQP43TDvQAsQmZ72zrN2OivJAePgxkMW55bp//BfjLSgux51JKTCXTvNqPp51esmkiPKxoVrktAEN1MN7NWOhv2Tldo7QI+pnZr5ot9Pry93GGGrSVpNSw4sRqXIUuy6fPBAIP4DPUAMqAqNBowYfXbekVwIaWJbs7Pfjk7F5EUs8I08EDaoziwb8WWDOw//S3Qp0pAPmgM6tCGIfZlD6DI515O2/OUwELky+UEPf3lTNeJ+HtLTtAxzuAZncaJpPJBOn++wskSnmixuUk+9PP8M5o24uINXQkso8awKKjho3vHSQvc3tyPIINJ/yFThQEEHL5I3+IL5BC+g0Q7XrciW4LBetaGKQOiTfn9DyVknE8= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/callback-tool-connection.api.mdx b/docs/docs/reference/api/callback-tool-connection.api.mdx index 9651988d97..57ac04a1d0 100644 --- a/docs/docs/reference/api/callback-tool-connection.api.mdx +++ b/docs/docs/reference/api/callback-tool-connection.api.mdx @@ -5,7 +5,7 @@ description: "Handle OAuth callback from Composio." sidebar_label: "Callback Connection" hide_title: true hide_table_of_contents: true -api: eJy1VVFvGjEM/isnP0fAqj3xNMSqFXVTq8H2UiEUcgbS5i7XxFeVnfLfJyccHDAk9tAnuOSzP8f+bDdAcu1h+AQza42HuYAcvXK6Im1LGMKdLHOD2cOopk2mpDFLqV6ylbNFNrZFZb22PRBgK3SSTSY5DKHFLchas1C2LFFFfwIq6WSBhI5JGyhlgWyQIJgvpFK2LmmhcxCgOYLXGt0WBDh8rbXDHIYraTwK8GqDhYRhA7LcPqyiP9pW7M+T0+UagtiflLUxEOYCSJPhg3FLmY0SZTbJIbDFLiZPkmr/wVFME0mXF52zblGg93KNH0x/y1zZjx3X6es/mn0aOQIfOfSVLT169nUzGPDPsRCntVLo/ao22c8dGAQLh7CkGEFVGa2iCPvPnm2aQ3whhCDg883NuePf0ug8mmUxHf/hFSrHwied4s6RpDb8TxMW/hxgrDq6vSJpuiRco4MwD6I9k85JLkebx+82BQhBQOHX7PnY3wG6L3Xr7DI0aWPGt4F1UNUxIe31JB4EAYreO27s8hkVwVGfEb4Ti+sMc9DTU8xNCn+H6wjlUKJUocup+JpK8C+yFnI3mz2eOUz6KJA2lgfYGinOKtrAEPo8xXz/MMZ8vx1wIMCje2unWe0M42WlYwnT54ao8sN+H+ueMrbOe3KNJcme1Ak4Zx+qdpq20cnocXKP2zuUOToYPs27gCkrL2npGLbPv6z0PXJGdn3Mc9s6/Ufu5m/s502yCrGuK9st6ygGl40eJ3C6Co6uuEWkiopomeI1iJNnH14LArCIDQKEsviyv+F6cg4TzaD3qTfgo8p6KmTZoRi3+2fcXSlHUTaH5r12d+0yxyrtV0bq2EfxEc1OAk8QJZCe3YqAv1oZzAVsrCdGNs1SevzlTAh8nEYn1zXXXi5NZ3i+4Pby6nuTpuaoopAumO431DXg07VyLcExds4fTjM4alO0WuIXJqORUlhRx+pshLKXfat9u51BCH8BGjfnVQ== +api: eJy1VcFu2zAM/RWDZ6Huip18WtAVa9ANK9ZslyIIWJlJ1MmWJ9FDs0D/PlCKE6dZge7QU2LqkY8iH6ktMK4CVPcwc84GmCuoKWhvOjauhQqusa0tFV8nPa8LjdY+oP5ZLL1rikvXdC4YdwYKXEcexWVaQwUDbsHO2YV2bUs6xVPQoceGmLyQbqHFhsQhQ6heoNaub3lhalBgJINfPfkNKPD0qzeeaqiWaAMpCHpNDUK1BWw3X5cpHm86iRfYm3YFUe0tbW8txLkCNmzFcDlQFpNMWUxriOKxyykwch/eOIu7TDLmJe+dXzQUAq7ojemvhKv4suN6fvu3Zr9LHFFMnkLn2kBBYl2cn8vPsRDveq0phGVvi287MCgRDlPLKYOus0YnEZaPQXy2h/xijFHB+4uL08A/0Jo6uRWpHP8RFTovwmeT866J0Vj5Z5iacAqwTh+dvqJopmVakYc4j2qwofco7Rjq+NnlBCEqaMJKIh/HO0D3rR6CvQzN2pjJaRQddH0qyHA8TYaoQPPTKIx7eCTNcDRnTE8s4jrBHPR0n2qT09/hRkI5tCh36OVSfMwt+BfZALmezW5PAmZ9NMRrJwtsRZx2Fa+hglK2WCgPayyUw4IDBYH872Gb9d4KHjuTWpg/18xdVZbWabRrFzgfz8VT997wJrlObqc3tLkmrMlDdT8fA+5Eb1lBx7B91bEzNyR12E2vbGvnzR/cbd00xevsFVM3l27czMmKWsZicjuF5w/A0ZEMBuqkg4EpHYMaXTZUZYnJfIamBAXUpLEAJmw+7E+ki1K5THN+9u7sXEydC9xgO6K4HF6dy/FDcpTl9jCyr32xdpUTbZadRZOmJ11iu2v8PaTG52sPrZevoflzBdJQQW63Dxjou7cxijkvTOlrbQI+2NHK/Emblx+832h7ySrJ5wXX/bv0GvDzx+S1BMfYuXx4I+CkTTVoSW6YnSZaU8cjr5PFKVH2A/bpagYx/gUVt+P2 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/cancel-plan.api.mdx b/docs/docs/reference/api/cancel-plan.api.mdx index 0d5b68d274..9a9703c813 100644 --- a/docs/docs/reference/api/cancel-plan.api.mdx +++ b/docs/docs/reference/api/cancel-plan.api.mdx @@ -5,7 +5,7 @@ description: "Cancel Subscription User Route" sidebar_label: "Cancel Subscription User Route" hide_title: true hide_table_of_contents: true -api: eJyFUsuO2kAQ/BVU55FN9uhTSC5BewhasidkRc3Qiyc7Hk/mgeJY/veobSDAZX2xph/VXVU9INExotrhi7HWuCNqhc5zoGQ6tz6ggian2f70lhwUAkffucgR1YCn5VJ+B446GC8dqLDNWnOMb9kuXs7FUNCdS+ySlJP31uhpQPkrSs+AqBtuCdUwyqceIL9OKyy2eX+NLl4jh8VLl5Ogt5yaTpb1XUxQ8JQaVCj3M6ky3nSWMyEoRA4nDsJ+QA5WGsgbjOrybFLysSpLzoW2XT4UdGSXqCAzF9aCoXMwqZ9AVpv1M/ffmA4cUO3q24KtMJxluy8bkHrPqEDePHMPBUetvFc5NV0wfyeloGBEimbuEo2Me+umdpPsVD8tt1ht1ngU8C4lVpCerLhMmtJQD7T/s4UCt2QkmZjaz9cMRgXRcB6zLD4VSwmJDS25mxEfWni38FWTxH9S6S0ZJ7DTesPZ3R3O7oqTN7DCcHa4VmjkHqodhmFPkV+DHUcJ/84cxLJa4UTB0F4E3NWjuugrbr5zL9pozV5u6kQ2zzY9nK+4fD3AzfftD4zjP8RjJEQ= +api: eJyFUrGu2zAM/BXjZiFOO3pq2qXBGxq89E2BUTAKX6xWllRJDuoa/veCdhI4WerFEMkjeXcckOmcUB3w2Vhr3Bm1gg8cKRvvtidU0OQ02x/BkoNC5BS8S5xQDfi4XsvvxElHEwSBCvtOa07pvbPF67UYCtq7zC5LOYVgjZ4GlD+TYAYk3XBLqIZRPvXU8su0QrHvjvdo8ZY4Fq++y9K95dx4WTb4lKEQKDeoUB5nUmVaIMuZEBQSxwtHYT+gi1YAFAxGdXs2OYeqLK3XZBuf8pyuBam7aHI/QTe77Qv3X5lOHFEd6mXBXnjNYj2WDch9YFSgYF64h4KjVt6bLjc+mr+TPlAwIkAzo0QZ4979BDfZTvVndpmKzW6LZ9keUmIA6cmA26QpDbUgm6qypCm8IlNCgVsyksxM7ad7BqOCKDePWa8+rNYSEvFbcosR/zXuYeG7Jpn/5DJYMk7aTusNV08PuHoq/i3aCsPZ11pBvJLSYThS4rdox1HCvzuOYlmtcKFo6CgCHupR3fQVN39xL9pozUEu6UK2m216Olpx+X52u2/77xjHf2MkIOU= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/check-organization-access.api.mdx b/docs/docs/reference/api/check-organization-access.api.mdx index f5c835a107..0b9b843855 100644 --- a/docs/docs/reference/api/check-organization-access.api.mdx +++ b/docs/docs/reference/api/check-organization-access.api.mdx @@ -5,7 +5,7 @@ description: "Check if the current session satisfies the organization's auth pol sidebar_label: "Check Organization Access" hide_title: true hide_table_of_contents: true -api: eJzNVU1vGzkM/SsCL90FBNvN9jSnGo3RGN1FU9fZS2oEzAztUTsjTSVOUtfQf19Q8se4aQrsrSfbIvn09MhH74BxE6C4hWlZUgiw0lBRKL3p2DgLBbypqfyizFpxTarsvSfLKlAIxlkVkE1YGwop6vwGrfmOUvkiKOy5Vp1rTLkdfbKf7IK49zaoi8lEPdZkFaYrlQkKm8Y9UqXVq8lf6tFwraY3y6u7m+u3i+nl7G4x+3AzX8wuc5l1PAINriOfrppXUEApNO+GDO4yPGjo0GNLTF4eugOLLUEBZ7mmAg1G3vu1J78FDZ6+9sZTBQX7njSEsqYWodgBbzupD+yN3YAGNtzIwfsBoJpXEONKYELnbKAglReTiXycC/yxTzzXfaMW+2TQUDrLZFnSsesaUybY8ecgNbsTmxhj1PDq4uIp8L/YmCqzmXnv/P9Ahc6LvGwy74oYTSPfDFMbniY0rjyLot2+Xyexz8WK+nhiLNOGPMRV1Icz9B63A0X/dpkgRA1t2PxK/H8oBNwQHMGeT01iqKVEozS965Mgh/A8HUQNJX8bwLj7z1TyAOaNaPmNIZ74H3NOw3ObtMn093mrE8apRblDz0txmVvws8sOKVfL5fUTwDwfLXHtxCYb4mQIrqGAsTh0fLRJIP9w8Ejvm5TQmdSz/LNm7kIxHlM/KhvXVyPckGUcocmJK8Eoe294m0Cm1/N3tL0irMhDcbsaJnyUUcvDc552FBw7845Egr1fpz3Xzu/9dXBrnatiauTaDfs4TeTU9HoOP+60s5B4Ass0AoebUhj0D88+vRY0UJscAUzYvj5GpIGiYb5mMno5mshR5wK3aAdX5K16tjGmhz6ccd2dPPv7ruJ9x8QO465BkwybxNvtZ+0WhAJowOPfTO0CS2C3u8dAN76JUY7z/pXxqUzA+0ZMtMYm0C+E+WOx99uf6jk2X2j7053/gE0v2Wl6H9AbuTINqz4Ml3DJ5dKijgdVT5aooBzN9na2hBj/A0SThZM= +api: eJzNVU1vEzEQ/SvWXADJyobCaU9ENKIRIEpIuZSocncnWYPXXuzZlhD5v6Ox87GhFIkbpyTz+fxm3mQLpNYBymuYVBWGAEsJNYbK6460s1DC6warb0KvBDUoqt57tCQChqCdFUGRDiuNIXmdXyurfyrOfBKE6qkRnTO62oy+2C92jtR7G8TZeCzuG7RCpZZCB6GMcfdYS/Fy/ELca2rE5GpxcXN1+WY+OZ/ezKcfr2bz6XlOs45GIMF16FOrWQ0lVAzzZojgJpcHCZ3yqkVCzw/dglUtQgknsboGCZrf+71HvwEJHr/32mMNJfkeJYSqwVZBuQXadJwfyGu7BgmkybDhw6CgmNUQ45LLhM7ZgIEzz8Zj/jgl+FOfcK56I+a7YJBQOUtoicNV1xldpbLF18A52yOaGGOU8PLs7GHhz8roOqOZeu/8P1SFzjO9pDPuGklpw980YRseBhhXnXiV3XxYJbJPyYryYNGWcI0e4jLKvU15rzYDRt+5DBCihDas/0b+ewxBrREOxR4PTWSIBXsjD73rEyF79ywZooSKfgzKuNuvWNGgzGvm8gdBPOI/xByX5zpxk+Hv4pbHGscR5Qk9TsV5HsGfmu1DLhaLywcF8360SI1jmayRkiCogRIKVmhxkElAf7fXSO9NCuh0mln+2RB1ZVEYVynTuEDZveTMqveaNil1cjl7i5sLVDV6KK+Xw4BPvGB5ZU7DDjSrTr9FfvhOpZOeGud3qtprtMlZMY1v5YbTm6zRkhKTyxn8fslOXKwEVaXB7zslN8jBY0NZFCqZR0oXIAHbpAMgVO2rg4fHxszlNuPR89GYTZ0L1Co7aJFv6cmdmOzZP8G6PSr1/z3Au4mxCIrOKJ1kmsjb7jbsGhgCSFCHPxfeG3Zst7cq4JU3MbI5X11en1oHdWtYOitlAv6FmKfzncqeicfQfMPNHy/9nTI9R6ftvVNec8u0rHK/XIwlp/OIOhpkPTidXOUgsTfTBcT4CyDigjQ= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/verify-permissions.ParamsDetails.json b/docs/docs/reference/api/check-permissions.ParamsDetails.json similarity index 100% rename from docs/docs/reference/api/verify-permissions.ParamsDetails.json rename to docs/docs/reference/api/check-permissions.ParamsDetails.json diff --git a/docs/docs/reference/api/check-permissions.RequestSchema.json b/docs/docs/reference/api/check-permissions.RequestSchema.json new file mode 100644 index 0000000000..c96bcede2f --- /dev/null +++ b/docs/docs/reference/api/check-permissions.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/docs/docs/reference/api/verify-permissions.StatusCodes.json b/docs/docs/reference/api/check-permissions.StatusCodes.json similarity index 100% rename from docs/docs/reference/api/verify-permissions.StatusCodes.json rename to docs/docs/reference/api/check-permissions.StatusCodes.json diff --git a/docs/docs/reference/api/check-permissions.api.mdx b/docs/docs/reference/api/check-permissions.api.mdx new file mode 100644 index 0000000000..5842a56139 --- /dev/null +++ b/docs/docs/reference/api/check-permissions.api.mdx @@ -0,0 +1,69 @@ +--- +id: check-permissions +title: "Check Permissions" +description: "Check Permissions" +sidebar_label: "Check Permissions" +hide_title: true +hide_table_of_contents: true +api: eJy9Vl1P2zAU/SvVfbZIh/aUp1UMjYpNq6DbC4qQcW4bgxMb20F0lf/7dO0mJC1IRdp4anO/e865N92C52sH+Q3MhEDnoGCgDVrupW7mJeQgKhQPtwZtLZ2TunHAwHDLa/RoKXMLDa8RcuCCkoCBbCCHxxbtBhhYfGylxRLyFVcOGThRYc0h3wJvNj9XsYLfGKrgvJXNGgLrLU2rFISCgZdekWGWmgSK2fV1Qhu8jQn/t/c1NZosyXvYX5b/oDuDlbY195BD28ryiGnm5WgWi063VnwIHFe7XoeI9FN8OCj9TBGXgvo5oxuHjjqcTqf0UaITVpoopByu26j8VasmV7tgYCB047HxcS5jlBRxI7J7Rznbl6lDCIHB59PTw8K/uZJlTJucW6vtO6qCsbSFXqa5S/RcKvomPdbuMEBpMfIeQadsPK7RQigC62zcWk4kdWh+12lACAxqt6bK+9R0oT/QOb5G6Iu9HRrB2ImG1GHaCEjnnkdDYCD886CMvrtH4QdlzgjLZ0/CO4h5UdlNxCaNv4sbyOWFosTQ21B8TRS81qwLuVguFwcFkz7GwjijkzpZjE5qjb7SdG/X6OOF9RXkkPGozWxwfrN4kIGBQ/vUXeDWqhhtZKQ4PVbemzzLlBZcVdr55C4oU7RW+k1MnS3ml7i5QF6ihfymGAZckx6TwsZhPSvcyEsknHabP2t9pa38w4evgiplhcj2Sg/Jnq2x8XwyW8xhH6WRixaHi6iTrlN0Axv8WJdnGY/mEy4zYIB1XBvwyOsvvYdYJuRSm+nJp5MpmYx2vubNoMVrPI1m7GEgIWZGcRlXJU603XF4A4lDInVUKfFYMCBuKG67veMOf1kVApnTxSSKSun4nRrczAfcDN+3T1y1NEXk/o3g0Uvy+IR4wI8J33/xvCtnr0tBD1ZSSlQk6xREYKRU+rdi/CDr4JxSlX6pvp0vIYS/bdMGgg== +sidebar_class_name: "get api-method" +info_path: reference/api/agenta-api +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Check Permissions + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/docs/reference/api/close-run-with-status.StatusCodes.json b/docs/docs/reference/api/close-run-with-status.StatusCodes.json index af6f5e9ecc..e6d39ee0ba 100644 --- a/docs/docs/reference/api/close-run-with-status.StatusCodes.json +++ b/docs/docs/reference/api/close-run-with-status.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/close-run-with-status.api.mdx b/docs/docs/reference/api/close-run-with-status.api.mdx index 80b77ee25a..010c3185d5 100644 --- a/docs/docs/reference/api/close-run-with-status.api.mdx +++ b/docs/docs/reference/api/close-run-with-status.api.mdx @@ -5,7 +5,7 @@ description: "Close Run" sidebar_label: "Close Run" hide_title: true hide_table_of_contents: true -api: eJzNWUtv20YQ/ivCnBKAsRyjJ52q2g6sJq5dycnFMIwVOZI2XS2ZfbhRBf73YnaXFEmJIu04RU8yyZlvnjszO96CYUsNo3u4fGLCMsNTqeEhgjRD5Z4mCYwgFqnGR2Xl49/crB61YcZqiCBjiq3RoCKILUi2RhgB0fEEIuASRpAxs4IIFH6zXGECI6MsRqDjFa4ZjLZgNhlxaaO4XEIEi1StmYERWOtQDDeCCKZWDiYJ5HlUSioV6SeJyc3NwmnalInSrskLGcrEv/lm0SKJV1ZK/0rbOEZN4haMC6uQGJVKFb2KmYxRCEzIe4XKO6fOvKake5AtrRCQV4gLEnqnUGep1KhJ7bPTU/pJUMeKZ4RG1F6ZhRWDaSAmLVJpUBpnbJYJHjvhw6+aeLYVV2SKImy4lxCn1jMF3bg0uERVcf65o4ggwQWzwsDoNHeuqbu1jroQLrfaCbh+FPwJK4LnaSqQyYrgiR58IpqK6AUTGvOI2FlsegCMPdVhCJfbSRfEuac6DOFypQvhT0fUogOLVz108FSHIXQmuOlCmDmiAwAr5qxQITCtGFfMGeLoWmAMaqPRdOPcFYQtQOgPDx2vLqjLHWkLWGy1SdedQOeerAVkZddMdmJcOaoWCGZN2okwJqI9gDwquNL5V4wNHKozUys/uGO3X2mIf+9AsiThxMfEbe1o7pXKQtMKbqie9OYwDMRcxVYw9eYTm6P4Xafy3Y01mTVvoWlMtRI2qWHP9GN19M6bD2s07IXGVixrVMSa4PW8/qbqoy6PfLCiwyHRFrjBdU8uphTbHPVLg/d5Tr0mZ+ZRaLy9XLaH8Qfx5lG9kb0M6qICkUcQK2QGk0dmjrf5crRImMF3hjt92qWce9jB2DnLZsnPEPLZwwYhCQr8CUIuPGwQUrhrvqE5rZ8cN4z1cdZvGzel7fz1qlIKb5VSCoe9qpTCXaWU14P2eE+o9A+k/5fAnkfFCPy/nW7LJlZKp6CxZmmuD4baYNawKZTCJuVfuDl0hyhU/IibXZ1rdwyXVBDpGvGU+pEZImBSpsY/VLsLQeQRpIovuTwGGhezxCoMBK73V6BuPAQN0rhAhTIO7ailTdUtf8UUEnb5UpgZ8b76ATky6kwLV+33rwNEbhBw0X29dDogd3flvHcQBw/J1MoLZtjMYDaR9Qbc3bwn3oY+wgNFmaK19OrS7FlKzdwxdfmbIWu6+Njk1ACaBv5KuXhPExzLMi6bI2tL6OJU2LU8EFIuk6Mxpe+VyaaNzk8vXf4nsIB1zNXX3rJzr7Mr45i9tLq5vccRslv63i9zHFQPxX2qdECGiATjeqA+K/mui+TofTEiSYfuRX35f4S33NHkOfH8cna2v9L5wgRPHMPgkhrvy/c5CRrGhVuxHD4sIo1rX59zA3poRqlycSu6Jx1evTyWlNeoNVvise5cOpKcMSgar+/VRF4tjW6sNd8rMHvxOCdffjedaUu+8eoHumrXLEPkI9TuigsfgmMJcnV3d7sH6POjnhhu+TSgDHS32lVKO9ks1aY4sSMY4m5/O1RW6uHWr2HzoVtwDbd+UMzpOKJ6Kla2VgniZhl3sfaPK2MyPRoO0Z7EIrXJCVuiNOyEcU/4QBixVdxsHMj4dvIRN1fIElQwun+oEswoRX3S1cnKQLGMf3TFJyx1x9asUsX/KeYwt9tdea7cJcAircZ/7JQbjG8n0HRc7ROdJRa71Ckkuc8QNczeWUvT3NqdJDDI1r+WX2ozPJyevD85dZU41SasiIKIauga995gPuXkMBPMT4JOk22I6j1UouqHdfoZlQt2F1p6E24BDxGsKC1G97DdzpnGz0rkOb2m5R4F6yGCJ6Y4m5Pr7reQcE1/J2HJtKdkWYDgzTSckbeD3dahrnwRUEnRJM3pCSLfxop/C1Ca/YdSg2dc1VoVGRo6K4zjGDNTYdsrspTK5ZG7vZndQZ7/C8SklVY= +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/close-run.StatusCodes.json b/docs/docs/reference/api/close-run.StatusCodes.json index af6f5e9ecc..e6d39ee0ba 100644 --- a/docs/docs/reference/api/close-run.StatusCodes.json +++ b/docs/docs/reference/api/close-run.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/close-run.api.mdx b/docs/docs/reference/api/close-run.api.mdx index c03d2df85f..1c8ebce78b 100644 --- a/docs/docs/reference/api/close-run.api.mdx +++ b/docs/docs/reference/api/close-run.api.mdx @@ -5,7 +5,7 @@ description: "Close Run" sidebar_label: "Close Run" hide_title: true hide_table_of_contents: true -api: eJzNWEtv20YQ/ivCnhKAsRyjJ56q2g6sOq5dycnFMIwROZI2XS6ZfRhRBf73YnZJiqRIUXYcoCdB5Mw37wdnywysNAsf2OUzCAuGp1Kzx4ClGSr3bxqzkEUi1fikrGQBy0BBggYVsW2ZhARZyJSVTzxmAeOShSwDs2YBU/jdcoUxC42yGDAdrTEBFm6Z2WTEpY3icsUCtkxVAoaFzFqHYrgRRDCzcjSNWZ4HlSRtwFhdSvpuUW0aopYgdEMWyM3t0unalorSJmR7hjL2T75btEgKKCulf6RtFKEmgUvgwiokRqVSRY8ikBEKgTH5rFR658q515W0L2RLKwTLa8QlCT1TqLNUatSk9tnpKf3EqCPFM0Ijaq/M0orRrCAmLVJpUBpnbJYJHjnh42+aeLY1V2SK4mq4lxCl1jMVunFpcIWq5v5zRxGwGJdghWHhae5c03RrE3UpXEb1E3D9JPgz1gQv0lQgyJrgqR59JpqaaBfXPCB2iMwRABNP1Q3hMjoegjj3VN0QLleGEP52RD06QLQ+QgdP1Q2hM8HNEMLcEXUArMFZoYrA9GJcgTPE0fXAGNRGoxnGuS8Je4DQFw+V1xDU5Y60Byyy2qTJINC5J+sBWdsE5CDGlaPqgQBr0kGECRHtAeRByZUuvmFkWFefmVn5yZXdfqch/r2ChDjmxAfirlGae62y1LSGW3RPetINwyKuIitAvfsMCxR/6lR+uLUms+Y9axtT74RtarZn+qE+eu/NZwkaeKWxNctaHbEhOFk0n9R9NOSRT1YMOCTYMm4wOZILlILNQb+0eF/m1BtyZh4Uo/col+1h/EW8edAcZK+DuqhB5AGLFILB+AnM4TFfLRcxGPxguNOnX8q5hx1NnLNsFv8KIV88bCEkRoG/QMiFhy2ElO5abGhTO06OW8eOcdYfG7en7fz1plJKb1VSSoe9qZTSXZWUt4P2eM+o9E+k/9eCPQ/KJfh/u91WQ6ySTkGDdmtuLobaYNayqWiFbcp/cNP1FVGqeI2bXZ/rdwyX1BDpQ+I59SszCxhImRr/pz5dCCIPWKr4istDoFG5S6yLhcDN/hrUrYegRRqXqFBGxTjqGVNNy98whYRdvRZmTrxvXiAHVp1Z6ar9+dVB5BYBF923S6cOubtvzgcH0VkkMysvwMDcYDaVzQE8PLyn3oZjhBcUVYo20mtIsxcpNXdl6vI3Q2i7+NDm1AKaFfy1dvGRNjjIMi7bK2tP6KJU2ER2hJTL+GBM6X1ts+mj89vLkP8JrMA65Oobb9m519m1ccxe293cjeUA2R29Py5zHNQRivtUGYAsIlIYdwTqi5LvpkyOoz+MSFLXd9Gx/D/DW91o8px4fjs72z/pfAXBY8cwuqTB+/p7TowGuHAnlu5iEWnUePuSL6DHdpRqH27l9KTi1atDSXmDWsMKD03nypHkjFE5eP2sJvJ6a3RrrflRg9mLxzn58ocZTFvyjVe/oKtPzSpEPkL9rrjwITiUIFf393d7gD4/monhjk+jmTu6JmjWKV1is1SbsmJDNsbd1XasrNTjrT/E5mN34KIqRPVc3mqtEsQEGXch9n/XxmQ6HI/RnkQitfEJrFAaOAHuCR8JI7KKm40DmdxNr3FzhRCjYuHDY51gTpnpc61JVsUHMn7tek5xzZ1Ys04V/7dcv9xRd+25chf3ZVoP+8QpN5rcTVnbX41XVEIQuYwpJbnXLGiZvbOWlrjEFRAzCMnv1ZvG6s5OTz6enLoGnGpTXIYKEfWItT53C/MpFceZAL8AOk22RTAfWC2Yfkenn7C6rPuIPgZsTTkQPrDtdgEavyiR5/TYn8IpRDHXsBC1Y7ibKLvLOckhbVxwn0Fxou7mbJlRdSb2blYUz/vR7hzRNK8MudzUZZbaFHa5xrIus6kYfmwSRZiZGtteHyTVq6q4u53fszz/DzvqcWI= +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/close-runs.StatusCodes.json b/docs/docs/reference/api/close-runs.StatusCodes.json index c33d986a40..469f9f0054 100644 --- a/docs/docs/reference/api/close-runs.StatusCodes.json +++ b/docs/docs/reference/api/close-runs.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/close-runs.api.mdx b/docs/docs/reference/api/close-runs.api.mdx index e1a7ecc962..039f48f84f 100644 --- a/docs/docs/reference/api/close-runs.api.mdx +++ b/docs/docs/reference/api/close-runs.api.mdx @@ -5,7 +5,7 @@ description: "Close Runs" sidebar_label: "Close Runs" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/close-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/close-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/close-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/close-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/close-simple-evaluation.api.mdx b/docs/docs/reference/api/close-simple-evaluation.api.mdx index 167d740dc8..3ebd46ace6 100644 --- a/docs/docs/reference/api/close-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/close-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Close Evaluation" sidebar_label: "Close Evaluation" hide_title: true hide_table_of_contents: true -api: eJzlWEtv20gM/isGTy2gxtlgTzqtN0mRbLvbbOz2YhjBeERH0x09Oo+gXkP/veCMZL1jJ01POSWWyI/kR4rD4Q4Mu9cQLuHygUnLjMhSDasAshyV+3UdQQhcZhrvtEhyiXe4l4QAcqZYggYVgewgZQlCCLXInYggAJFCCDkzMQSg8JsVCiMIjbIYgOYxJgzCHZhtTsraKJHeQwCbTCXMQAjWOhQjjCSB2tXJdQRFsSJQnWepRk04Z6en9CdCzZXInaMhzC3nqPXGysltKQwB8Cw1mBoSZ3kuBXew06+adHYN33JFjBjhLfDMeqXSZZEavEfV8PHcSQQQ4YZZaSA8LYIGLc5guv20cay1wTfSpWRcQOg7KR6wYX+dZRJZ2rB/rScfSabhwYZJjUVA6oybIwBmXmoYwpVEdAji3EsNQ3yzaA868a8TGvGB8fgIH7zUMITOpTCHEOZOaAAgZi4KVSZmFOOKuUCc3AiMQW00msM4i0pwBKgsskwdhrqsRUfAuNUmSw4CnXuxEZDYJiw9iHHlpEYgmDXZQYQZCfUAiqDSytZfkZvBRnJr0/fusyuCvZHUSgnFivR7HySLIkF6TN60Ps1aouNpA7fsb/RkGAa4UNxKpt58ZGuUf+ksfffJmtyat9ANhppfFU5XGnqh96OrtRc+fEjQsGcG24is0xhbhpN1+0mTo0OMvLfyACHBDoTB5EgtphTbPspLR/dppP5NZBZBeS4eRVkP4x/SLYL2efY8qIsGRBEAV8gMRnfMPAbYOIgjZvCdEc6fcSvnHnYyc2TZPPoVRj572NJIhBJ/gZELD1saqehab2mqOc6OG12OIevPrRtmar5e1ErF1t5KRdiLWqno2lt5OWiP94BK/0T5fynVKX7W7XLtGUsbZuyjXS4ATG1Co3OOaeSfuImGRg1l09Q/0n7upGCZkFbRLINK+TOXs5SjlBjBauhUmnsnBs8kGju2d9pg3vGybH6Hye63wLFGPxY4r479uDy73TFN3pVkbql3+aF2xPgRPZQGp+1k7iIlRT//vIrQy1mvDr5xSXkVBMzqeGsS9hPuq6BgP6TXBCjMkZnh7jQ4cXUgb0v9x2bjubvs173ogrlJpteJngDxk+r7a3tRkNrvZ2f9W/4XJkXky+WSmuzzr/gRGiaku25XFdUWkBlvvX3KNLzqll9jiM94RRYk+n6o/urhUmt2j3U5jYs6MiYLekvHckqDLIlXp2taTrbcfG/A9FJyTlx+N4OFU+91lo4b734p1zyE9ynyGRqn4sKn4LEauVosbnqAvj7aheEWEZPL5uoqQRNntN3KM23cKsvEEMLUr7mm9bJGT3ethVYxdcsPOtxRPVSrL6skabNcuJT7n7ExuQ6nU7QnXGY2OmH3mBp2woQXXBEGt0qYrQOZ3Vx/wO0VsggVhMtVU2BOleprry22zxfLxQckBss13MyaOFPi/ypit4aLvVbh6mCTNctg5pybzG6uoctf6xV9Uoy7CqosudcQdMKuo6W2mbgPCgyy5I/9m9ZYB6cnv52c0iPKSbk1KE0MZLBzIypZoAqd5pIJ9w05h3ZlcpfgkwvNXRwNYmF3Y+kzvAogpuIIl7DbrZnGz0oWBT124xdlKIAHpgRbE4HLHURC0/9RuX3o+bjvRvDmtvxg3k7q62jb9yqtKeWUHKRfEMB/uO0tWV1PiavC2ZUyM84xNw3tXgukCtt/CTef5gsoih8xMJEL +api: eJzlWEtz2zgM/isenNoZtc529uTTukk6ybbdZmO3l4zHA1NIzC71KB+ZqB799x2QkiXZku2+Tj0lpoAPwAcSBLEBiw8GJndw+YjKoZVZamARQZaT9r+uY5iAUJmhpZFJrmhJW0mIIEeNCVnSDLKBFBOCCTQiSxlDBDKFCeRo1xCBpi9OaophYrWjCIxYU4Iw2YAtclY2Vsv0ASK4z3SCFibgnEex0ioWaFwdXcdQlgsGNXmWGjKM8+rsjP/EZISWuXd0AjMnBBlz79TothKGCESWWkoti2OeKyk87PizYZ1Ny7dcMyNWBgsic0Gpclmmlh5It3w89xIRxHSPTlmYnJVRixZvMC0+3HvWuuD3yqdkWECapZKP1LK/yjJFmLbsX5vRO5ZpeXCPylAZsToKewLANEj1Q/gtER+DOA9S/RBfHLmjTvzrhQZ8QLE+wYcg1Q9hciXtMYSZF+oBWKOPQleJGcS4Qh+IlxuAsWSsIXscZ14LDgFpFCe4Mw9iB7wRaE7B2UoOQFWbPtPHsS4b0QEw4YzNkqNA50FsAGTtEkyPYlx5qQEIdDY7ijBloT2AMqq1stVnEra3sN269I0vA2W0NZI6paBcsP5egcA4lqyH6qZTKhqJHU9buFW95ZV+GBBSC6dQP3uHK1J/myx98cHZ3NnnsBsMF+M6nF1p2At9P7pGex7Ch4Qsfmewrch2CnXHcLLqrrQ5OsbIG6eOEBJtQFpKTtRCrbE4yMuO7reR+p7JLKPqnj6Jsj2Mf1i3jLr36/dBXbQgygiEJrQUL9EeAmw1BjFaemGl92fYynmAHU09WS6Pf4WRjwG2MhKTol9g5CLAVkZqulYFd1mn2fGt1ClkvS58c9Xw9VOt1GxtrdSE/VQrNV1bKz8POuA9kjY/sP0/VeocP+5WuW7PZyxad7DKRUCpS7iVzymNw4rvsLj10S5Nw5IJfTAHi1I5zb0VaR3uXIGpIKUohkXfrTQLTvTeSdwGFUtjKd/xsip+x8neL4FDhX4ocFFf++vq7vbXNHtXkVlw7QpN9oDxE2ooN3LFaOYjZcXQj/0WoVe9ZxN869H0WxAwbeJtSNh2uL8FBdsmvSFAU05o+6tTb8e1A3lb6Zf+QS6c1pSK4lA5XKEV66WRX/u7mFOMvmaI0YwhuMvEp6Umq4dayVMQ3+PT6LbC8KxYXSxjUlj0Qu43nj3EWF2MLjzEyQ+HC7R43qKxp1wfgJr5IU8DyGg/CPGD6ttxTVmy2p+vXu1Pdz6hknE4lpd8mX3/aCcmi1L5MUt9crsCKhOdr9/y6ljsHvPWYykTNVmQmIe+c9408cbgAzXHdljUkzGa81duf1J+MLB43cWk1QtC2KcWzF5KzpnLJ9u7B5t53p3nJrhfybWbnW2KQoaGqbgIKTi0R67m85s9wLA/uhvDD6BGl+2RZUJ2nfFUM8+M9SNMu4YJjMN4c9wM6cx40xlklmM/9OImivRjPfJ0WrE25tKnPPxcW5tPxmOVCVTrzNjwecGawmlpC686vbl+S8UVYUwaJneLtsCM92fYcV2xbZYwl2+JeauGrlNn15mWX+s4/dB1HbRKn/37rJ386QOlFkfTm2vYZa3ziQ8SCr9vakv+M0StYM1kPEa//BLlmC+lxB8jsITJX9svnaYZzl7+8fKMlzgT1UymMtGTt533ZsUC78txrlD6k+Md2lQpvYOQUmhPXrnNnezOp0NeFxFwrlhxs1mhoY9alSUv++aWMxTBI2qJKybwbgOxNPx/XM129nzc1iB4dlsdk+ej5rHf9b1Oa8o5ZQf5F0TwHxV7I3VfSdb1xtlUMlMhKLct7b3Cxztsu/9vPszmUJb/A688PCA= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/configs-fetch-variants-configs-fetch-post.api.mdx b/docs/docs/reference/api/configs-fetch-variants-configs-fetch-post.api.mdx index 9a088d1365..cec41797d4 100644 --- a/docs/docs/reference/api/configs-fetch-variants-configs-fetch-post.api.mdx +++ b/docs/docs/reference/api/configs-fetch-variants-configs-fetch-post.api.mdx @@ -5,7 +5,7 @@ description: "Configs Fetch" sidebar_label: "Configs Fetch" hide_title: true hide_table_of_contents: true -api: eJztWWFv2jwQ/ivoPgfoaMveN5/G1k2rtqmopfuCEDLOBbw3sTPb6Zqh/PdXZycQKEUVkyYq0S9N7PNj5567892xBMvmBsIxXGGmkTOLEUwCUBlqZoWS1xGEwJWMxdxMY7R8MX1gWjBpzXRzOFPGQgAaf+Zo7HsVFRAuaalFaemRZVkiuEPt/jBK0pjhC0wZPWWa9rQCDb1Ve0w1xm6pLG5iCMfbYibJ55vztsgQQjBWCzmHMliNyDxJoJwEYIVNaOCO1pYBPKA2wp/mEJjv1fIyAK7SVNhpisawOR4K+MGhtL5VKGUAItqHFUCsdMoshJDnItqLfR1BWQb1tJr9QE6c1dO3GKNGyfHWk/hNRZjsACwDQPkgtJIpnkg6XpIaHnci6ThJ2oNBIXT68tBblgSm0WRKGk9q7+yM/kVouBaZddzAXc45GhPnSeu2Eobg0DidMc1S98SiSNASlgwbElbn+PwXDv3qMoBcJ4eyfK9Jscdk60JanKM+GfvTiGRQPwiOJ4aOlqEjybxODL2G1OvE0otyr0TEyAue4D6uuEaqvqbMHqwYj9AaWHelZtEf4t17hC28WTHdr++XQL4vWqTqJuqfQ+6l7ivOGS++1kxcjW7231Anzl4PZ/WddeLs9XDWvMVOvL0W3vYAfHAlaV1SVjejq0kver2nZeh3lojIXY+tj1orfXgNGqFlwpWPwqIvRjcFEsU3Zl+gxVViM1l/MdOaFU2NKX9Aoik1Ls/aTjxq0Uau4kWeF3XKaI1oljIbmeVOIasExQ1QLmUfGzC72LD4aHdSTi1aoTGiti/pxh+/kmtmbiuKPEPPq+LKU7DPPD6PRsMngN4+onXruWoYbJqKtyzT+kTNDjot2oWivnTVcs6YXUAI3bo70q26I924WkB3OmrjKHedBuiyTDi+/evC2syE3S7mHZ6oPOqwOUrLOkx4wQlh8FwLWziQwfD6CxafkUWoIRxPmgJ3ZKbe8DbFVmSxTHxBUp9kKb0PcrtQWvz21kSk05H8KtIPOcDtuq3+8ZGlmY+VW8WaT/fXNrVK3ddD2yn4eoaCFpzH7J/LuH/Rvnz75m374rLfa8/OY97u8X/753G/z2LWh901yN/bfEer529t7lwyVk2PHDhTaQ2G17BtuBtTFN0Yd85c8+6mIdgywrXtQQCYutgGFln6bjWzUZfBWedN54yGyB9SJhtbbLvOxvlWBkmRopslTMhGL8571bi2MeM/gdCoonJ4kwAW5ILhGJbLGTN4r5OypOGfOWpylUmVnM1IVWMKpovaaZbwHxZ1pJK27UIeiSe5d5KtG4C81a8YcI6Z3Ss7aUSJ4c3dCAKYVb9IpSqiNZr9olDIfkEIQD940WrntW5sCQmT89xbisekv/8BdzJIwA== +api: eJztWdFu2zoM/ZWAz07dpW12r5+WrRtWbEODNt1LEASKTCfatSVPkrt6gf/9gpKdOGkaFBkwtED6Ulsij20ekiKZJVg2NxCN4RJzjZxZjGESgMpRMyuUvIohAq5kIuZmmqDli+k904JJa6aby7kyFgLQ+LNAY9+ruIRoSaoWpaVLluep4A41/GGUpDXDF5gxuso1PdMKNHRXP2OqMXGqsrxOIBpvi5m0mG/u2zJHiMBYLeQcqmC1Ios0hWoSgBU2pYVb0q0CuEdthH+bQ2C+1+pVAFxlmbDTDI1hczwU8IND6XyrUaoARLwPK4BE6YxZiKAoRLwX+yqGqgqabTX7gZw4a7ZvMEGNkuONJ/GbijHdAVgFgPJeaCUzPJL0cklqRdyRpJdJ0h4MSqHT56feqiIwjSZX0nhSe6en9C9Gw7XIreMGbgvO0ZikSDs3tTAEh+bpnGmWuSsWx4JUWDpsSVhd4NNfOPTaVQCFTg9l+U6TYV+SrwtpcY766OyPM5JBfS84Hhl6sQy9kMrryNBrKL2OLD2r9kpFgrzkKe7jimuk7mvK7MGG8QidgXVHah7/Id6dR9jCm5XT/fZ+DuT7skOmbqP+OeRe6r7inPHya8PE5eh6/wl15Oz1cNacWUfOXg9n7VPsyNtr4W0PwAfXkjYtZX0yup70vNd73IZ+Z6mI3fHY+ai10of3oDFaJlz7KCz6ZnRTIFV8Y/cZVlwVNpP1FzOtWdm2mPIvSDRlxtVZ24VHI9qqVbzI06LOGJ0R7VJlI/PCGWRVoLgFqqXsQwtmFxsWH+xOymlEKzTGNPYl2/jXr+XalduKIs/Q06a49BTsc4/Po9HwEaD3j3g9eq4HBpuu4j3LdD7RsIPeFu1C0Vy6HjnnzC4ggrCZjoT1dCRMagU601EbR7mbNEDIcuH49rcLa/MoDFPFWbpQxvrtCWnyQgtbOtXB8OoLlp+RxaghGk/aArfknN7dNsVWFLFcfEEymmQZ3Q8Ku1Ba/PY+RFTTi3gtsgq5/c16mP7xgWW5z5BbLZov8teetCrY10vbhfd6h1IVnCXsn4ukf969ePvmbff8ot/rzs4S3u3xf/tnSb/PEtaH3Z3H33v4jgHP33q4C8REteNwMEdpWWcwvIJtd93YopzGuAvhhne3DUHL9UwUhswtnzARQgCYuYwGFln2brWz0Y3B6cmbk1NaoijImGw9YjtgNt5v5ZCUH8I8ZUK2JnA+lsaNjxn/CYRGfZTDmwRAMUJSy+WMGbzTaVXR8s8CNYXKpC7JZmSqMaXQRRM0S/gPyyY/Sdt1iY7E08IHyVbepxj1GgPOMbd7ZSet3DC8vh1BALP6d6hMxaSj2S9KgOwXRAD0Mxdpu6h1a0tImZwX3lM8Jv39D2CCRWE= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-accounts-admin-accounts-post.api.mdx b/docs/docs/reference/api/create-accounts-admin-accounts-post.api.mdx index 00f28fdbf4..66bdd0b072 100644 --- a/docs/docs/reference/api/create-accounts-admin-accounts-post.api.mdx +++ b/docs/docs/reference/api/create-accounts-admin-accounts-post.api.mdx @@ -5,7 +5,7 @@ description: "Create accounts" sidebar_label: "Create accounts" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-annotation.api.mdx b/docs/docs/reference/api/create-annotation.api.mdx index f6c3a4524e..f84d90d723 100644 --- a/docs/docs/reference/api/create-annotation.api.mdx +++ b/docs/docs/reference/api/create-annotation.api.mdx @@ -5,7 +5,7 @@ description: "Create Annotation" sidebar_label: "Create Annotation" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztXNtu2zgQ/RVjnnYBuU7TNt3107ppF822iwSJ25cgCMYSbbOhRJWkknoN/ftiSMmSfEt8KxqAeUlMzYU8GnJGc+RMweBIQ/caekkiDRouEw03AciUKfvpLIIuhIqhYbc4k4EAFPueMW3eyWgC3SmEMjEsMfQnpqngoZXrfNMyoTEdjlmM9FeqyLbhTFvZyuTCNan4iNtxM0kZdEEbxZMRBMCSLKZJh5k2MoYAxlmMNCnMjKTpG24EaVzxOBWsrzBk585aABEbYiYMLcup5wHc8SRa5wijsQzp8z0KCCAVOFnh5hNZqjtxqnkA4RiThIl1bqQRKQTwwAYQgI7uaEUpX+HptLDXcJZycuVuKqE7OR9C93oKGEWcUEZxMYd/KVHMaSClYJhAHsxPk0aWm4GQqzATqH77jAMm/tEyaZ8laWZ+h6A0IgffWGggr61lTthOvClczSHJhGgo92mJeQAxM7jlUmvrKkZ4YtiIqabjeNAcqSP0GB5/Z2I9HMEUuGHx05RQKZysRaWpuhmi/xKSeQARFoh6HFfiWEm+R4eaYkOmWBI6jJoH2feMqUkTuqbAPVO6OAKfgO7CbL8W6nkAWmSjbc1ckW4eAI/WWQhgKFWMdNpkGY/WWjyLIF+D3WWJ2RIjeeBgu71HxbFILB6+jeFT7J4vguPxexw/w7TRzAfetsD5nbsrgH7vbotg7RHEg7cDeH4P7wNEv4+3RZGetzM0UnnotobO7+HdIfQ7eJdaJkTNPHKbIbdGr9YDvKy6DnkAgid3T+z7NW+ATjG5Xb/utcilmLRosQEYmtUOpuyqCltojOKDzMy3nXxjarsGX6/Cc114nfeZ+MyTu+XGi8X4CPIRtEkEFfOqd//tYbXMDDFLXLGIGBHbjG50V8tjrj6tGYl0aomqR63WWKc1Zi4dwwV5ntfVjcqYHdCpTLQLnOOjI/oVMR0qnrrHTrjKwpBpPcxE67IQhmBboiyUmVOai8Nq+qdWosYGHdEOaPBrqxKw4/eiWzRPTH0RGtY2PF6WumozcmZbPRtmWRodwskXZ7ZwEjHBDuDkvTNbOCnhGkweOac2KRZKsN5NisOrxGuvXkq0Zl5KwPbqpYRr5sWnh53Tw3lmtsgPC1obJAinu32GCDyD/5wZ/JUBt5TC3yZYnhmH/zx24LOg8X8dKD2T75n85wGf70Hu0oP0TL5n8j2T//wQ9Ey+Z/J/HRD9Pt4WRc/keyb/V4DQ7+BdahnP5G+OnGfyfaN9KUJ7a7R7Mt8H0U8Oop/E5294nlaKM8I9t+z96+PjRX7+KwoeWenWB6Wk2p6cj5hBbnmhFTtKyLBxdZPYvJlHvYa5DEuYINajZcRURQtojSNW3cLVohaMVp+uUhK1r4mQeJkLy/dGQvOjZmbhZpwSlj/MoyEhLC9H0y/k6gXB7Ba5O7QaivfuFqyLjo/9/sWCQRcfzcBwVHyrV/+6c8zMWNJ3oVOpyWiKZgxd6FQvWOgOUX5MUQ1kb22mhJWwjF75cWxM2u10hAxRjKU27vINaYaZ4mZiVXsXZ5/Y5CPDiCnoXt/UBa4oCF1YNcVmtwJT/okROAnGdltkZiwV/69cC1GyMHZatHoK78vq69wffiCVJS5O66+PlHRuxdo61nVGrs4IUktjzljMiuKreKkFomVGrcxqyCoyXTFYfaaEAq+G+Meb4cnr9pu3L9+2X785OW4PXg3D9nH458mr4ckJDvEElpEPh3FQf7DYt4daA/tApg+Jz7Im6L59zLUJD2j+kEitajXt20+jGXMw44dEavkD/SEit3zk3a/t2jOeTUA8Gcp6ku2NWGKw1bs4g/ns1LhEBQuGFuLysLeXIajlG93tdNAOv0BOWYrFtlwBwzD+a3aFVlyt8ujFyxdHNEQJj97NqVwsy4+NOc4yERUAnVQgtyWKndG0SJ31tzCpCqS0TwmRrkynA9TsixJ5TsNFari+CcCG1IAguqa6aFxmyCncsUlZdCSmbasXEheZy4hzxRwlZKfRC0OWmrWyN7X0f3F+1YcABsW/PYllRDoKH6iqwQfoAtB/T3Gr6k7d2BQEJqOM6q8uOJv08z9WFYud sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-api-key-admin-simple-accounts-api-keys-post.api.mdx b/docs/docs/reference/api/create-api-key-admin-simple-accounts-api-keys-post.api.mdx index 178785a8e0..c80db049d1 100644 --- a/docs/docs/reference/api/create-api-key-admin-simple-accounts-api-keys-post.api.mdx +++ b/docs/docs/reference/api/create-api-key-admin-simple-accounts-api-keys-post.api.mdx @@ -5,7 +5,7 @@ description: "Create API keys" sidebar_label: "Create API keys" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-api-key.api.mdx b/docs/docs/reference/api/create-api-key.api.mdx index 8c59cf36bc..92fd08fa7d 100644 --- a/docs/docs/reference/api/create-api-key.api.mdx +++ b/docs/docs/reference/api/create-api-key.api.mdx @@ -5,7 +5,7 @@ description: "Creates an API key for a user." sidebar_label: "Create Api Key" hide_title: true hide_table_of_contents: true -api: eJzVU02P2jAQ/SvWnFrJCrTHnBq1hyIORbA9AVrNmoF4SRyvPUFNo/z3ahzCLvyD5hJ7Zjwf773pgfEUId/CkroIew0HiiZYz7ZxkMP3QMgUFTpVrBbqTJ06NkGhaiOFbOd2rginmO+cUkoFemspsvq0Hg+fc/VU0s3cvLySYWUax2iddSfFJaVEavFDWZeuU3BkZEoF1sRtcFONyGHMalJnh6mtDDQ0ngJK44sD5DAGPKO3z2fqQEOg6BsXKULew9f5XH73025aYyjGY1up9TUYNEjD5FjC0fvKmlRj9hrlTQ/RlFSjnLjzBDlEDtadQANbrsQw5VIjmqrwVi2pg0E+DTVx2UjHvokMGjxyCTnMzsKIhkjhQkE46qENlXjQWxj0dC2ZfcxnM2ozUzXtIcMTOcYM7Ri4lxymDZa7lKRYLZbU/SQ8UIB8u/8YsJFhRoTuw27TobfLBKfDWu5Fy2UT7N8ECmiwAmQ5vpLprDs26fkVjCI1J7TBo9juXEkmJqE+VUpu0A9jv08LGqhGK04mrL/dPDBoEAzHMvPsSzYXk+Bdo/tQ4oGghwb7dyn8X4txpY7pD898hdbJ9AnF/qq2LZyv+1+KCPMt9P0LRvodqmEQ81tLQeSz13DBYPFFyNzuBz1xLcqSPcuhMIa8CPmCVTtK5mFrRHE31a9+bZ5gGP4BIeaKBQ== +api: eJzVU82O2jAQfhVrTq1kEdpjTo3aQxGHItieAK0GMxAvwfHaE9Q0yrtX4xAKvMHmEs//zDffdMB4jJCvYU5thK2GPUUTrGdbO8jheyBkigqdKhYzdaJWHeqgUDWRwmTjNq4Ix5hvnFJKBXpvKLL6tBwen3P1UtJNXe/eyLAytWO0zrqj4pJSIjX7oaxL4ugcGZlSgSVxE9xYI3IYsprU2X5sawIaak8BpfHZHnIYHF7R29cTtaAhUPS1ixQh7+DrdCq/x2lXjTEU46Gp1PLqDBqkYXIs7uh9ZU2qkb1FiekgmpLOKC9uPUEOkYN1R9DAlitRjLnUgKYqvFVzaqGXT8OZuKylY19HBg0euYQcspNsREOkcKEgO+qgCZVY0Fvo9SiWzD7Psqo2WJV15MG8lUjTBMttCi0Wszm1Pwn3FCBfb+8dVjLCgMuj220m9HaeQHR4FrlouKyD/ZugAA1W4CuHKJnJukOdwq8QFEdyjLIseKbYgymRwySsx0rJDPpu2JhnGSb1BG0GGuiMVoxMeP52s0CvQZAbykwnXyZTUQnKZ3R3JZ7W8tRg958AH+scrqtj+sOZr9A6mT6h2F05tobT9eqFNyJ33Q4j/Q5V34v6vaEg9NlquGCwuJNlrre9HnctzJLryqEwhrzQ94JVM1Dm6VaEcTeuL36tXqDv/wHCBIam sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-application.api.mdx b/docs/docs/reference/api/create-application.api.mdx index 88a5c32e63..a3f7dbc40d 100644 --- a/docs/docs/reference/api/create-application.api.mdx +++ b/docs/docs/reference/api/create-application.api.mdx @@ -5,7 +5,7 @@ description: "Create an application artifact only." sidebar_label: "Create Application" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-checkout.api.mdx b/docs/docs/reference/api/create-checkout.api.mdx index 0cb904fab5..8f261a9a06 100644 --- a/docs/docs/reference/api/create-checkout.api.mdx +++ b/docs/docs/reference/api/create-checkout.api.mdx @@ -5,7 +5,7 @@ description: "Create Checkout User Route" sidebar_label: "Create Checkout User Route" hide_title: true hide_table_of_contents: true -api: eJy1VN9r2zAQ/lfMPW0g4qzsyU/LukFDNxradC8hFEW+xGplS5Xk0izofx8n2XHStIUx9pRYuvt0+n5oB55vHBQL+CqVks0Glgy0Qcu91M20hAKERe7xTlQoHnTrgYHhltfo0VLjDhpeIxRgFG+AgWyggMcW7RYYWHxspcUSCm9bZOBEhTWHYgd+a6jJeUuHMvDSK1qYEUoIbA/rWiHQubvWqn9Hv0lg2a1VEMKSIJzRjUNHXWfjMf2U6ISVhggYWtatyq67YmAgdOOx8VTOjVFSRL7ye0c9u2GSEEJg8Pns7BT4F1eyjG3Zd2u1/QtUMJY08jLNXaLnUtE/6bF2pwVKi6Nd3myv1lG7Y6KI9m5FNh43aCEsA+vXuLV8e8DmD50GhMCgdpv3iP+JzvENwh7s7dJIRjan3UCCmzYS0m9P40JgIPzzAYxe3aPwBzDnxOWzJy+d1AzGWURu0vhd3XLAGCRKCr1NxbckwWuH9SUX8/nsBDD549gY5zFw2XkXuOzWoc2udevJeDX6SlMsjXYpi76CAvJVim9OdBrM+7S6HBg4tE99WClGBeTcyKh2+qy8N67Ic2xHQum2HPENNp6PuEyFS8IQrZV+G0Ems+klbi+Ql2ihWCwPC27IpMl2x2V7qbiRl0jkdQmftL7SVv5OXuoyXqWuEC2w1ocOmMThsslsCi+pO9qiNHERzdOfFLeBvbj2cFtggHXMEnjk9Zf9DklPHKZjxqNPozEtkQg1bw6OeFe8o2H3fJBNc6O4jEGKo+06XRfQ6UoqRmXpXr22wIDcWpETigXsdivu8NaqEGg5vZIkVykdXymy+5orhydz7J8d+HDdJeNjBuz1+R5wOzz2T1y1VBK99B+OOX78h9OW9GElHRf9x3q/0HVT60QINP6g6+RFJZR9nGZXN3MI4Q+qAWVY +api: eJy1VFtr2zAU/ivmPG0g6qzsyU/LukFDNxradC8hFEU5idXKlirJZZnRfx9HshN7aQtj7Cnx0bnpu6gFz3cOiiV8lkrJegcrBtqg5V7qeraBAoRF7vFelCgedeOBgeGWV+jRUmELNa8QCjCK18BA1lDAU4N2DwwsPjXS4gYKbxtk4ESJFYeiBb83VOS8paEMvPSKAnPqEgI7tHWNEOjcfWPVv3e/Tc2yO6sghBW1cEbXDh1VnU8m9LNBJ6w0BMCxZNuo7KZLBgZC1x5rT+ncGCVFxCt/cFTTHjcJIQQGH8/PTxv/4EpuYln21Vpt/6IrGEsceZn23qDnUtE/6bFypwlKi9Epr/fX28jdGCiCvYvI2uMOLYRVYH2MW8v3AzS/6bQgBAaV270F/Hd0ju8QDs1eT41gZAs6DUS4aSIg/fEsBgID4X8O2uj1Awo/aHNBWP70pKWTnKNwlhGbtH6Xtzr2OFKUGHodii+JgpeG9SmXi8X8pGHSx1gYF9Fw2UVnuOzOoc1udONJeBX6UpMtjXbJi76EAvJ1sm9OcBrMe7e6HBg4tM+9WclGBeTcyMh2+iy9N0WeKy24KrXz6XhFlaKx0u9j6XQ+u8L9JfINWiiWq2HCLUkziW2cdiCIG3mFBFnn62njS23lr6SgztllqgqR+K0e8j7dYe15Np3P4E/ARkfkIS6iZPpJ8RjY4LKuyHMew2dcEkRYRQeBR159OpwQ4YRcGjM5+3A2oRBBX/F6MOJNykbLHvAgceZGcRntE1drOzaX0LFJ3EU+6V49o8CANEo8UWrbrrnDO6tCoHB6G4mujXR8rUjkW64cnuxxeGzg3U3nh/cZsJf3e8T98Yl/5qqhlKig/zBm/OQfp63ow0oaF/XHer3QdVPpVAg0flB18o5Sl4OJ5te3CwjhN7D5Yfk= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-environment.api.mdx b/docs/docs/reference/api/create-environment.api.mdx index 1a1d819160..301e809003 100644 --- a/docs/docs/reference/api/create-environment.api.mdx +++ b/docs/docs/reference/api/create-environment.api.mdx @@ -5,7 +5,7 @@ description: "Create Environment" sidebar_label: "Create Environment" hide_title: true hide_table_of_contents: true -api: eJztWNtuGzcQ/RVhnlqAshzbUdp9quJLoyatDdvpiyEY1O6sxJR7CS+OVWH/vRhyV7urlRVZdYCgqF4EkXPjmeHhaJZg+ExDcAfn6YNQWZpgajRMGGQ5Km5Elo4jCCBUyA3eYy0EDHKueIIGFRlYQsoThAAaMvciAgYihQA+W1QLYKDwsxUKIwhiLjUy0OEcEw7BEni6uIydJbPIyZI2SqQzYBBnKuEGArBWRFCwlURqpYRiwsAII2mhcYreOIKC9sglavM2ixbkpo7AKIsMwiw1dB6KIM+lCN2pB590ltJaHV+uCBMjUNOvJhSdzTiTESo6/gud68IZdEdiEEuXs6bltnuh72eWqwid/9LmNMsk8hRqo2Pd+7UUYxBhzK00ZV6KglV62fQThgY2YnzhIukGTtqdGHkUCYKWy6tWtB18qkgbdkvIaGWzGQiFCq3k6ocPfIryN52l/XGaW/MjrJ+kieuaMHSOvS0pt/7wkKDhex61ca5yRaQGZ6jajpNpe6WJ0NfwuLByOxxsCcJgspsSV4ovtpdqS/V5iP5OSBaspJKd8OrY+IN0CypoHSqREzT7mjprmCgYaGln+5q6Id0db9WpI9uN0jV53bUYaDMFekPXnv+gKMiiQp1nqfb1eHR4SF8tqODGhiFqHVvZuy6FYW+aDDPrldbKu4731Ek0COiwYOvs+hTR/c+z3wPPXlrzDKL10v9ppn0SkK1U29F6BtfuA+r3Tba+44zuudnxbkfcYN8IF8/TXjwlRr2RA8vm0bdw8tGbLZ1EKPEbODnzZksnFVzTxQuyYQXW20XJiBVeL+qlQmvlpQLsRb1UcK28/PvXnMHLhef+rOz0Fmx6BnbTXL3mvhM4OTrqPv5/ciki97T3zpXK1P4vf4SGC+meSU956wIyC1u7z6HsSbHGko2XJvMBuvdCzxov8yotNQNqzWdY0+bTog6M3i3tUt5da0viVfqqXjc0jw0znWycEpaP5qu9HWHjwy/lGqVSp8hn6GkoznwKtpXHu9vbq45BXx/twvBc0DtvTQASNPOM5gN5pv1EwMwhgEGjfdMDYKBRPVRjAqskifBcuMz6n3Njch0MBmgPQpnZ6IDPMDX8gAsvOCEboVXCLJyR0dX4PS7eIY9QQXA3aQrcUEH6EmuLrdLCc/EeCahyZDGyZp4p8bevm3JiMfdahASV+nU9RTh/5EkuccMUoNGPwnHMf3odD0/6r9+8etM/eT086k+P47B/FP48PI6HQx7zITSazGYz6XvDVXNXdz6r57qu0HaaVsue3lZ3yBVtnDVrduQg7o2uxh0rrS26/zx056vwctvA1pJX5wwYYOJuPxjkyS+rHSpWqgTv5vDg1cEhLVH5JDxtuNhYbmtdRplNulCDXHLhrrwLaVlWYutPkgYGdI/mVKvBHSyXU67xo5JFQct+QkXFFQnNp7Ixo/oLF5sGWw9cWgrAlecDV4K0XDWyqnrInNc+9SzadxRS63YYle6E1xiFIeZmq+ykcQWvLm9ugcG0HHMlWUQ6in8hauFfKE6a6pG2qze3tgTJ05klEgzA26TPPzYM4LE= +api: eJztWFtv2zYU/ivGedoAuU5zcTc9zc1l9dotQZLuJTCCY4my2VGiSlJpPEP/fTikZFGW4zpeChTD8hKYPNfvHH484hIMzjSEd3CePXAls5RlRsMkAJkzhYbLbBxDCJFiaNg9a4QggBwVpswwRQaWkGHKIARP5p7HEADPIITPBVMLCECxzwVXLIYwQaFZADqasxQhXAJmi8vEWjKLnCxpo3g2gwASqVI0EEJR8BjKYCWRFUJAOQnAcCNowcuiN46hpD1yybR5K+MFuWkiMKpgAUQyM5QPRZDngkc268EnLTNaa+LLFWFiONP0y4eis5lIETNF6b9QXhfWoE0pgETYmvmW2+65vp8VqGJm/Vc2p1IKhhk0Rse692slFkDMEiyEqepSlkGtJ6efWGRgI8YXNpJu4KTdiRHjmBO0KK5a0XbwqSP17FaQ0cpmMxBxFRUC1Q8fcMrEb1pm/XGWF+ZHWM/Ex3VNGDppbyvKrUseUmZwz1S9vKoVnhk2Y6rtOJ22V3yEvobHRSG2wxEsgRuW7qaESuFie6u2VJ+H6O+EZBlUVLITXh0bf5BuSQ2tI8VzgmZfU2eeiTIALYrZvqZuSHfHU3VqyXajdENedy0G2kyBztC14z8oS7KomM5lpl0/Hh4c0L8WVHBTRBHTOilE77oShr1pMpKFU1pr7ybeUyvhEdBBGayz61NE9z/Pfg88e1mYZxCtk/5PM+2TgGyl2o7WM7h2H1C/b7J1E2d8j2bHsx2jYX3DbTxPe3GUGPdGFqwij7+Fk4/ObOUkZoJ9AydnzmzlpIZrunhBNqzBeruoGLHG60W91GitvNSAvaiXGq6Vl39/mwfwcuHZj5Wd7oJN18Bumqvb3E0Cx4eH3cv/TxQ8tld771wpqfa/+WNmkAt7TTrKWxcQMmrtPoeyJ+UaS3o3jXQB2vtCz7ybeVWWhgG1xhlraPNpUQtG75Z2qe52tCXxunz1rBuZR89MpxqnhOWj+epsR9i48Cs5r1WaErkKPQ3FmSvBtvZ4d3t71THo+qPdGI4LeuetF4CUmbmk94FcavciYOYQwsAb3/QAAtBMPdTPBIUSJII5t5V1P+fG5OFgIGSEYi61cdsT0owKxc3Cqo6uxu/Z4h3DmCkI7ya+wA21oWusttiqGJjz94zgqR4qRoWZS8X/dt1SvVPMnRblTw1+3bwdnD9imgu24dvfm0LhKMGfTpLhcf/kzes3/eOT4WF/epRE/cPo5+FRMhxigkPwRkt/hHQT4Wqka+ad1SXd9GW7OKtlR2qrk2NbNZF+p45mLDPYG12NO1ZaW3TqMbL51XjZbQi8kulwMEC7/Ao5FZql9syDYZj+stqhFqX6OzcHr16/OqAlapoUM8/FxiZbmy2qatIxGuQCuT3oNqRl1X+tTyMNAdDpoa6ireVyipp9VKIsadm9S1FzxVzjVHgvU3+xxabnrAcUBQVg2/MBFSct241B3T1kzmmfOu7sW+JodDs8SifBaYyiiOVmq+zEO3hXlze3EMC0etxKZUw6Cr8QoeAXipPe8kjb9ptdW4LAbFYQ9YXgbNLfP2rS3VI= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-evaluator.api.mdx b/docs/docs/reference/api/create-evaluator.api.mdx index 3c57fd5b58..73b17d25d6 100644 --- a/docs/docs/reference/api/create-evaluator.api.mdx +++ b/docs/docs/reference/api/create-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Create an evaluator artifact, its first variant, and its initial r sidebar_label: "Create Evaluator" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-folder.api.mdx b/docs/docs/reference/api/create-folder.api.mdx index 7f0c94f2e5..f649b0304f 100644 --- a/docs/docs/reference/api/create-folder.api.mdx +++ b/docs/docs/reference/api/create-folder.api.mdx @@ -5,7 +5,7 @@ description: "Create a folder." sidebar_label: "Create Folder" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWV9z2zYS/yoYvCSeo2TFcdyr8lI3bqZu7mqP4/Yl9oQrcikiAQEGWNpRNPruNwuQEiU5ru1x5tKb85MI7P9d/HYBzyXB1MvxO/na6hydl5eJzNFnTtWkrJFj+cohEAoQRaAYXpgLc15i+ykMVCiqxpOogLJSpO8uLq7F4PIfqXiqkQidT0Supop8IhrDOjLrMLkwvoYME1HO6hLNzkthqUQnshIcZMwmHFLjjEj3R6N0KFinQ99oUmYqaqDywjylEoXXzVR8sMpgLsgKXqrBoaEnPpCJa0WlAJFb2omWTlA0Rn1q8MLwnjKRydkPmFESDblWHsNyBlq3pni25cd0KE7Be7YCLkwadb1XeSqoBBK5RS+MJYGflac+537gpNILcCy3rjEXQBfm2UhovELthS2EQR88BJMH17wAEgf7vcAMZSJtjQ44Q8e5HMss5Oh9TIlMpMNPDXr62eYzOZ7LzBpCQ/wT6lqrLHDufvCc4Ln0WYkV8K/asVxS6PmrFTeeb1RELBWOddQ7FCkbmgrFOfvUKIf5S9EPDPvkQzQNXneVE4pBgImBYpetQfZtwwodKnQuwcxOCjl+N5eQ54ptAX26RrqioFmNciwn1moEIxfJcsmTU2YaVm4WIzPlskaDe/ovmKD+zVszODZ1Qzsy6YTYCVeKXFwmkhRpXtoglost4pUNptF6jfl18JFZ/vd9PW9drZDgga72/GpXlCGcoltXXE3WV/oR+qt4vG707eFI5lIRVndjAudgdnsFrLHeL6L/5kguEslQfMd4bcn4nXkXG9j/MFFHPRGLRDI0PFTUW+ZdJPKjMvltMhKJpqm4jfXwLfSyZXwD5rxhOTcpXAe4M/S2cRmKAiqlZwG4WtCybgpGfUE/FEdYQKMZ16xI+3pTcV2iEbZSRJgP2YElFt7uRWFdBSTHsmnUzYZ2/pwGgeI4l5vGH+fcRVZdsOvb4qRSJKwTHimYzDLTFYoLEM7aJblcbNXgZjTjZHAjYdcGOCVtG9lKRmQ/i61KLljMio1cg2HB19b4iAN7o9F2M3rbZBl6XzRanLXEMnlox8tsE5k2YGVl+qtAsRnz3wPWcNyjs93sgrl4mo5Sjnr6LN0ZBsZQNXI8WiS9Druqie+v+500dI+WEKn/vv3v23v7N+uAXw3IrS1wi+sePfAhQf2+m2CE2Pw90B0bQA6EA1LBnq9riRCai8MQrKbOv4WSP6LYVkmOGr+BkqMotlXShWsye8SW2QXr5xm3zV68HlVLF62lli5gj6qlC9dSy2NMWY9nXrTpvz61KX/D2HZi9GxzXlNe5Fi0Lwg5zJJw+1YkQHsrMnvFLf3auo+Fttc+EXgFugGy/LbBlMT3WyQv+EFiJnzJF3wewcCRKiAjQTDRuNPOglQ+NFX8fLA1fRxZGniswYXCq4DQKdDqC+bx/WPSKE2icLbqTbJPfHw4iY56ASZDzx49ia8OQ3GGkA+s0bOXIkenrjAXkzgLe3RXYUT8HgbbJExXcZgtrLv/GHuH0lq9dyVxti9sY/I4UnPMw1oapsdQTOkovYvm5cC6CNPv/t7e9nz7J2iVhzoVvzhn3cOH2xwJlOZfbdfeJNA2W9u9z9Rxudho9L1hyUYDw8jjp73xelkeqybuPUxx1fm/ThqCIc55l6Er3JqZvEOg7hqd0eeemK1EvOJYfqa/vMRwbKL5LV2vZFcpihn6eiiOYgpuq4xfz89PtwTG+qiQSsvPfbX1zBKBRO62d45dmch4Mn1IWuM070KtQsbiZ0lUj3d3tc1Al9ZT3L5kzqxximaB9fD0+A3OfkUIt5N3l32Ct1xesWDWyZZBhlq9QXY7zmLysKHSOvUlVgEniw2JXOwXF+7Z6sXyl89Q1RrXXyC7e9DqjrAaoJdT36pK1s/Qcjl2ydV37FDr7WcN0+TzAv75ojjYH7z44dkPg/0XB3uDyfMiG+xlPx48Lw4OoICD4IQyhe0X4OEUDYE4PD3eMmdtiw8zZKF2u3CFbZn0MubHu7sQloegOM9YhaMsCaH6abnDlcfpj2pGw2fDUcBo66kC01PRvum/7t6LNwbeJcD8//H/u3z8b88ZA9durUEFaA3VMm9BoXt14XJmqOKjzqvz+QQ8/uH0YsHLnxp0fOIvE3kFTvGMEo570h1PBoOPOOuA0tAgIC6T6wbXj05sQAw1keMwy7CmW2kve6B2evL2XCZy0v7PorI58zi4ZiSGazmW4d8e8ZCO53FtLjWYacM9YyyjTP77D56PP9s= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-invocation.api.mdx b/docs/docs/reference/api/create-invocation.api.mdx index 7ddcaeea46..fb05590142 100644 --- a/docs/docs/reference/api/create-invocation.api.mdx +++ b/docs/docs/reference/api/create-invocation.api.mdx @@ -5,7 +5,7 @@ description: "Create Invocation" sidebar_label: "Create Invocation" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-metrics.api.mdx b/docs/docs/reference/api/create-metrics.api.mdx index a0c763804f..c3a246269e 100644 --- a/docs/docs/reference/api/create-metrics.api.mdx +++ b/docs/docs/reference/api/create-metrics.api.mdx @@ -5,7 +5,7 @@ description: "Create Metrics" sidebar_label: "Create Metrics" hide_title: true hide_table_of_contents: true -api: eJztWdtu2zgQ/RVjnnYBOXacW6unTZMUzbZBgiTtwxpGMJbGNrsUpVBkGtfwvy+GlCzJTpwLEqBZ1C+2qOEZ8vDMRfIMDI5zCPtwdIPSohGpymEQQJqRdlfHMYQQaUJDVwkZLaIcAtB0bSk3H9J4CuEMolQZUoZ/YpZJEbmpne95qngsjyaUIP/KNAMbQTlflXjhDIShJF+1GEm3vBmgmp6OIOzPAONYMDrKs4ZpZWGmGUEIwzSVhArmwWIoN1qosRu5GwYioSMrUf/xBYck/85T1T5WmTV/QlCCpMPvFBmYDwIwwkgeWjKG+YpxtQZlpWxM/uj2yFP+/3u9LLaakMFnbrW2r2JEKENj0k3HybA5UmfoIT4+WrmejmAh2EdMQq1xul4BjalPY/SEmZwHcEM6Fz7cmkRVpt8KkwBiGqGVBkLodXs77e5ee3ObQXKDxq6lPQBSNuGEkZGK/ci1JUsxZwWrlB/KbRRRzplihEJaTTxR61TzUIQqIikphto+qvxz4Rexuul5ADH+1s3L6OYQvW6YBH2D8k7O7mRoCei4BGD3IqHcYJKtl9Ao1Qmy+mI01OZJ65PGApUlGpFCLdIrET/SibUiXot/UUC2jtmOVVyAr4esAM6tcnNXDsAXSqEp5ogpgO8U/YkvhQeu0NZO0ougEe6uZD7kqyytDzs796Uc5gxZQRhtyQ3kWapyH1O9bpe/YsojLTLj0g1c+FAfWdk6L4w5xp/XEUSp9ZOWBFjt4sBZ1FJY15eTN9BInFrzhOrqrd9uK/H6u31jzcS9hKytCiuznlAWnkNq2U/4lj++QvOiudznnLi175Zls/g1nHz1sIWTmCS9gpNDD1s4KekaTl+wMJVkfZgWpank60W9lGwtvJSEvaiXkq6Fl5eD9ni1BvgRYb4CUjbHv3wXXO/eS+9vpzN+G0nwd3P8KzbHj2iLa8HRH9zl8l7wRe86d43wdq+32up+QyliN6l1xGH8/D43JoNCrulXZRo17j4laAf38/Ql9Qt0bVM+Xve24ITyHMe1Z5H7TR0ZrUu+64KG443NF0FQBGBkbmswK2dywFzemgelwtz45Rd29TS+OCJ/QvdTceiPYJ1IPl1enq0Aen00heELdatSYUJmkvKb0yzNGTFDM4EQOlS9Ze0UDy0dLhSkuXy587VasiVmwh2uv5wYk+Vhp0N2I5KpjTdwTMrgBgpvOGCMyGphpg5k/+z4M00/EcakXSjUDC5Yk15lTbPFyWAmPhNzpTDh631rJqkWP710+IR5SX4Wk8FqP6/eCB/dYpJJarzh7VePYNXjSdW71+t3/Z1UVYxrlbYodY383G3kV4bYZoje+8vNnXBnM+y92+jubf4DSzkStkb4bme0u93e2dvca2/v7Pbaw61R1O5F73e3Rru7OMJdqNLe4+xdBAo1SutRsO9OrLV/dgzL8mnc4oyCkQugkn53G4IlLVQS4LYicfkEDGHy1+JOoy+C7sbmRpeHWJQJqpqLFQE3FrgQBodnJ5MoXAJxy5kV2u5DTdtQPZIHwOE54TAI+zCbDTGnr1rO5zx8bUmzYAcB3KAWOGSm+szepJTuDP6laZkclGm7LMPm0nqpLiVdjhk/Yz+KKDNrbQe1SD07vbiEAIbFXxpJGvMcjT/4+PEHhAD8t4jfXzjzYzOQqMaW82QIHpM//wG/uqOa +api: eJztWVtP20oQ/ivRPJ0jOSSkXFo/HdpSldMiENA+HBShiT1Jtme9NnuhpFH++9Hs2rFNIFxEpXLUvCQez3yzO/vNxc4cLE4MxOewf4XSoRW5MjCMIC9I+6uDFGJINKGli4ysFomBCDRdOjL2bZ7OIJ5DkitLyvJPLAopEm/a+2ZyxTKTTClD/lVoBraCDF9VePEchKXMrGqMpV/eHFDNjsYQn88B01QwOsrjlmqtYWcFQQyjPJeEChbRUmSsFmriJbfDQCJ04iTqPz7jiOTfJlfdA1U4+ydEFUg++kaJhcUwAiusZNENZVisKNdrUE7KlvEHv0c2+f/v9azcakYWn7jVxr5KiVCWJqTbjrNRW9KM0H3x+ODk+nBES8I+wAi1xtl6BrRMHxfRQ47kIoIr0kaEdGsHqlb9WqpEkNIYnbQQw6A/2O72d7ubWwxiLFq3NuwRkHIZF4yCVBokl44cpVwVnFJBZFySkOFKMUYhnSY21DrXLEpQJSQlpdDYR11/TsMiVje9iCDF37x5Ht68x8AbDoK+QnlrzG6N0A2ggwqA3YuMjMWsWE+hca4zZPalaKnLRuuLxhKVKZqQQi3yC5E+0IlzIl2Lf1pCdg5Yj1lcgq+HrAFOnPK2KwcQGqXQlHLGlMC3kv4wtMJ3vtE2TjKQoJXuvmXe56tqrfc7OwmtHBYMWUNY7cgLTJErE3Jq0O/zV0om0aKwvtzAaUj1sZOdk1KZc/xpE0GSu2B0g4D1Lt55jUYJ64d28gIGiSNnH9Fdg/bLHSV+/m5f2DBxZ0DWdoUVq0e0hacEtZonwsifXqB91loeak7a2fPLckX6M5x8CbClk5Qk/QQn7wNs6aQK12j2jI2pCtbbWdmaqng9q5cqWksvVcCe1UsVrqWX54MOeI0B+AFpvgJSDce//BTcnN4r7y9nMn4ZRfD3cPwrDscPGIsbyXE+vM3lneDL2XXhB+GtwWB11P2KUqTeqLPPafz0OTcli0KumVdlnrTuPiZph3fH6XMeFujHJjNZ97bgkIzBSeNZ5G5VH4zOGd/1ScP5xurLJCgTMLHXDZiVM3nHsby291KFYxOWX+o1y/jyiMIJ3R2K9+EI1pHk49nZ8Qpg4EebGKFRd2oWZmSnOb85LXLDiAXaKcTQo/ota698aOlxoyDN7cufr9OSNbEQ/nDD5dTaIu71ZJ6gnObGhttDtkycFnbmTfeODz7R7CNhStonQEPhlJkYuNVWW54HFuITcYQUZny95+w01+JHIAyfKy8kWHEImOMn9Xvg/WvMCkmt97rn9YNX/VBST+zNrt18E1W34EZ/LRtcqyr3W1WVIbYYYvDmbHM73t6MB683+rub/8CNygivxvh6e7yz1d3e3dztbm3vDLqjV+OkO0je7Lwa7+zgGHegLnYP0/d5J9Q4b3J/b0LKYmfv+ABukqZ1i+sIJj5tqvD72xA1GGDiXg+9eAMF84YyX0XAEmZ/Le+0piHob2xu9FnEVMxQNVys0La1wCUxOCl7hUThy4Zfzrxk9Dk0GA31g3gEnJTMVNaZz0do6IuWiwWLLx1pJuwwgivUAkccqXOO3rSi7hz+pVlVEpTt+trC6tIFqt4otZwpwWIvSaiwa3WHjfw8Pjo9gwhG5R8ZWZ6yjcbvfPz4HWIA/jMk7C+eB9kcJKqJ4+oYQ8Dkz3/vZKA7 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-organization-admin-simple-accounts-organizations-post.api.mdx b/docs/docs/reference/api/create-organization-admin-simple-accounts-organizations-post.api.mdx index a56029df4c..e9ed98f68c 100644 --- a/docs/docs/reference/api/create-organization-admin-simple-accounts-organizations-post.api.mdx +++ b/docs/docs/reference/api/create-organization-admin-simple-accounts-organizations-post.api.mdx @@ -5,7 +5,7 @@ description: "Create organizations" sidebar_label: "Create organizations" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWk1v4zgS/SsET7uAOu5t7Mmn9XYCTNCTSeB0eg6ZwGCkss0JRXJIKh2v4f8+KJL6tmXHSe8EmOQSSyqWisX3iiVWraljC0vHt3SS5VzSu4QqDYY5ruR5Rsc0NcAczJRZMMn/5+/PGIrOLM+1gBlLU1VIZ1sidjbTyjqaUAN/FGDdf1W2ouM1TZV0IB3+ZFoLnnrx0e9WSbxn0yXkDH9pg3Y4DhavlPZa/TC5upzT8W1XJDOrmSlkW8StNNAxvVdKAJN0k1S3ZCEE3dwl1HEn8MapWZFpIWlCM5izQjg6njNhYZNQnkGulQOZrmYPsNr6CusMl4vBN5zXasgXWNFNUnqXZyAdL2dylPmfvSZyXmuq1TPN0e4XK59ojoZ71QZcYeTLVU+9npZqC5DN4iIcr/gaICOnpZbGqjpTgJ8Ai6A7Zi2nYfRmk5Qi6v53SBHxpYgn1CSwIzjwMqK4r3iT0CZ9+gSQLAf837awftkv+Bx9J4rFsXO6xrFoyXcJZlZYMDMD8yHO9R4/x4Fz6ql1PJtea76QMy6OVXLmBw/h4AwJucL5IghtargOa0yvlFjlyuglT4mBORiQKRC3ZI6kTBKtuHTEKcJIjKIfhEqZIA+wSgiTv0l44tZxuSAajOXWQUbOTxPCiHXsXgBB7yREGcIk8bMkLMsMWHvymzx7YqkTK6IkkDkHkZG8sI7cA7HgTrZjNAfHMuZY21ksyzjOiImrBjqQZl2nDDnyotS9zZc4f24gw43KU+Guw7PLBnsC2SokDwG4WvpdvIrLm1CkQ0nCY3ByU47fJPQlekqicxu24aPj47klYcsPyoxS7iW6pjj+rUAkLGsXI7gEFTZ66N6jshWeu5qvfSoUY71tYtGWL9xsmvqqPchqJW3A4qePH30e0woR10WagrXzQpBpFKbJsVlUmarhb+4gt30RhHmQ3bpiXfEQvneRJ4ToYljohmetIPzOxFdiYkj+shnbru2AGQbsZmTi9RU6e6G+m6Ah6nsTkYJnNCA0GQgaU2Aeo7t2+BtPmkaKud5EnHYz+2eQ6vicKL54kHQWDAnSObilGhS+CBKYbRVh6gPC10W5OjRTOdtBiwPmchpGv1J+llDrmCvsNtNBFjliIRKGJlRw+eB/aJAZl4tZquScmzxE/4TaB661F5gzLiBrouY6vKeBhkrxJqGPYPicw/YVPoTg30oFb57he5hXorRCYA2vbRyMH7arQ7jY/ArusrJ1SvG6G91f9I12fLi4RCWkEQveNqDe0pax9yNkH05bSWIPpd+VebCapc/fNt4QRJtHhsPGNZ3xDsVjoNh3dxecv5aQ2ofMX2vsdWGpjULhvy0oK1ruGVq5MI7jdlY78ujEPh5mvrPjFdjRWcsuWa4C0PdR5arkw1CWMcshvwdjl1y/MnFeBubnfSYYJQZJOsXnbx6ZhyCmD5U6VfVeGNr2L6q1fk4CQC4aENmZC/w4IB0b194htB1CLX/uxU/l1cPBUy/EEHLidv3jcFO+YFg2Rsl3zAxipuHLvYiJHj0cL+USDKHFFvfVybM9ZOPuIkYLJgdxIHyOQ1nq+OP2Y9dDMqFJGL7Pqd6a3kF9Y47bfTaYRLY8hDPZWv3+/5zyaQNz/jTMOy/xSsfcP57r8KS5AfsCzp0FDZHDrx0TDDyqhxfpmwYNUd8jE8XRy/LND64aMSCbKZkeT6pp1EIuUctebgVk7QhaXdJNNP8Cq6p89SzK1X0hB3ZaeFb3Cu1gPsTiF4kmY9bFJXFLIPNCCLIwTC9JWZAj/9CiMEyQcOhIcqbtP08apjNj2KppQllaa0TVWyyZgzHKdALEjtpbqrLBve4zPvcfV9ayxaDoRRTBU3hwjIuDQtRzv8ROo+p9cPETq+3uBWVnitQVBrIzdFbPy4OMD+49FB22RqGvyP7706d+zfUbEzwLeXkw6OiCa/D9QLlVqLT19IBIwKWDBZjQkLEDjT+rYKBHi10ciJQgMlCBRWeQr/gUzzSkLkIlqNyW/A2Mu665LfXW4zP68ml/VoS+CeZHuXb0i0u0HTJdjA4C5KevX696CgM+2sCIbXCqc3RbVtBobHnUzC3pmI58VXgU2iRHZe191Bo9wqoHmEdfdL9d08IIP1Jzv+ThcumcHo9GvvdnqawLj+9wZFoY7lZ+6OTq/AusfgKWYcvL7V1T4BrxGRDXFqtWifkYXZ6XjOmkcEtlyn4HXG00JIxCxyDyp3Vr59kTw1nSdqtm1ZIZAkuvjbKG2JY+yDCm18EYbve6D8PtTudgKRsa/Wou9Xrt4qQrc8JJY33d74jz/2oBzHF2D48FzIYBjfOxTbNPqSPZbHao73Wv6waE6OeyhyBctt7liTtXTd5OFiAdI5Or896+2XqEMZCF4m8JEv8YraxwasejEfO3TxgfNebugOX/qZ7EUqgNr/l48q+Tjz7HVNblrLkkOyjXMrMCMYaVkRaxbOyNWkc23tLgooQGPtKk7obpFgUTiqEGmYbj1ut7ZuHGiM0Gb/9RgEHC3WH+Zji22cWdfllSb00Duj+HTeODj5hVutffQJDpYcQkTUG7Qdm7Rry5urz+ShN6H3urc58/UMO+YyRl3+mY4txqPvp7ayqYXBQ+gaBBJ/79CQJyzEk= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-organization-domain.api.mdx b/docs/docs/reference/api/create-organization-domain.api.mdx index 7c23c3de0a..3078cd0a27 100644 --- a/docs/docs/reference/api/create-organization-domain.api.mdx +++ b/docs/docs/reference/api/create-organization-domain.api.mdx @@ -5,7 +5,7 @@ description: "Create a new domain for verification." sidebar_label: "Create Domain" hide_title: true hide_table_of_contents: true -api: eJztVk1z2zYQ/SuYPTOU4/bEU9U4TTxpY4+tdDojazwwsZKQkACND9sqh/+9swApgZKtND71UF1EArtvF7vvLdGC4ysLxRwuzIor+Td3UisLiwwE2tLIht6hgHcGuUPGmcJHJnTNpWJLbdgDGrmUZXDLb9SNmq2lZahEo6VyTCrpJHdomVvj4Jf6sMboEq1ld5viRr3NWQgk1YrxwdxgqY24Uac5+4AKzbDtlbz3OEZz+huqG/VTzq7QeaPI8uzzNSu1WsqVN9FKKuuML8NRY87IvEXDam8d40IwHrxmf8366MzpGGjD9KNCY9eyySED3WDEPBdQQBmKdKuTUt7GQ0AGBu89WverFhsoWii1cqgcPfKmqfoDTL5aKncLtlxjzempMRTESbT0pniNwUdtLpZQzFtwmwahAOuMVCvosu2K8lUF3SIDJ11FC5/Jt9vr7OugzhIIQoyHLPYhEodo0XXZYKLvvmLp+sJIg4JY2AMlkVJeRpBIRdhn6FWsL6u1wCpws9ynUg4dJbAL6IzHsGAbrWys8OnJCf2Nwa99SSxd+opd9caQvbaHUjxXqaU2NXdQgPdSJJU7F1RhW/nVsfpe036X/Uf5sazClGmBCyFpkVeXSUmoDYe8GLB+C85EHBL3azOaBecu60Uqbrk72gXBHb5xssYkk8g8waaOgHwjEqCXcnoW8liiXyJsH2Q0S36MOKlyGLHoO9oLzoFnPY3GTBi6OPRhVMlRNQ6zPqrnRFD7io4biaRHSu4y+Pn09FCsf/JKinjs98Zo83qlCnRcVkGzDmt7aFDpcrT7L5gplcMVGugWu35wY/gmad3vOiZIDKjtUeH/gdbyVdBtNHnZNBSDzWi3y0CqxkcJDIMmLJBC3FMCc6DHd1TLJ/ddPlFtYvq9XcKCXYtih14uxVlswXPBBpOPs9nlAWDkR41urenT3GhLLg13ayhgkhLUTiKn7IT4j+YBjQ0t9KYiW97I0L/4unauscVkgj4vK+1FzleoHM+5jIYLwii9kW4TQKaX559w8xG5QAPFfJEaXBPtIpHGZtvi80Z+ws0gyAKm3q216RMHaiKlFL3ovEToq91F4/0Tr5sKdxeHHSnGktkt91/yHXFBqqVOeTINB2bTy/MDmNEWaY6XLgket2lYjEq5qyBkgHVQHDjk9S/bHcqD+hLDnORv8xNaoq7WXCUh+nvq2XDr2vuWbefA/xfa5y+0Pe9I4JOmCle2vl1tL575aLrbLWfoiSS+JqUVc2jbO27xi6m6jpbvPRpSxCKDB24kvyMuzWkGrgdttPANN8OAUe5NmFRkXvmohb3BTaKMHtOyxMYdtV0kw+Dy4noGGdz1V3H6vEABhj/SBOOPUEC42sfzFW1ca6HiauVp1hYQMen3D1TCllA= +api: eJztVk1z2zYQ/SuYPTOS4/bEU9U4bTxpY4+tdDpjazwwuZKQkAANLOyoHP73zgKkBEq20vrUQ3URCewX3r63RAskVw7yG7iwK6nVX5KU0Q4WGZToCqsafocc3lmUhEIKjU+iNLVUWiyNFY9o1VIVwW1yq2/1fK2cQF02RmkSSitSktAJWuPgl/qIxpoCnRP3m/xWv52IkEjplZCDucXC2PJWn07Er6jRDtteqweP42hkvqK+1T9MxBWSt5otzz5di8LopVp5G62UdmR9EY4aa0bhHVpRe0dClqWQwWv+57zPLsjERBthnjRat1bNBDIwDcaY5yXkUASQ7kwC5V08BGRg8cGjo59NuYG8hcJoQk38KJum6g8w/eIY7hZcscZa8lNjOQkpdPymZY3BR28ulpDftECbBiEHR1bpFXTZdkX7qoJukQEpqnjhE/t2e519XaizJARHjIfM90MkDtGi67LBxNx/wYJ6YJTFklnYB0oypbyMQSIVYZ+hVxFfUZsSq8DNYp9KE+i4gF1Csh7DgmuMdhHh05MT/hsHv/YFs3TpK3HVG0P22h6q8jmklsbWkiAH71WZIHdeMsKu8qtj+F7zfpf9R/mxrMKUaUGWpeJFWV0mkHAbDnkxxPolODNxWNyvrWgenLusF2l5J+loF0pJ+IZUjUklkXmlmBEH8k2ZBHqppmdDHiv0cwzbJxnNkn9HnFQ5gln0He0F58CznkZjJgxdHPowQnKExmHVR/WcCGpf0XEjkfRIyV0GP56eHor1D1mpMh77vbXGvl6pJZJUVdAsYe0ODSpTjHb/ATOVJlyhhW6x64e0Vm6S1v1mYoHMgNodFf7v6JxcBd1Gk5dNAxhizrtdBko3PkpgGDRhgRVC35IwB3p8x1h+o+/yibGJ5fd2CQt2LYodehmKs9iC55INJh/m88uDgJEfNdLa8Ke5MY5dGklryGGaEtRNI6fclPmP9hGtCy30tmJb2ajQv/i6Jmry6bQyhazWxlHcXrBn4a2iTXCdXZ5/xM0HlCVayG8WqcE1ky3SZ2y2hVw26iNuBhnmMPO0NrYvF7h1XEj04lMyja9214v332TdVLi7LuyoMBbKbrn/fu/oCkovTcqO2Qo1STG7PD8IM9pipcmCkuRxm0fEFkCXT6cyLE+kYtixDjoDQln/tN3hOrgbMc3J5O3khJe4l7XUSYr+dno23LX2vmBb9f9/jX3+GtvzjmU9bapwUevb1faSuRnNdLflDD+xsFkKbNW299LhZ1t1HS8/eLSsiEUGj9Iqec9cuuHJtx600cJX3AxjRdObMJ/YvPJRC3vjmqUYPWZFgQ0dtV0kI+Dy4noOGdz3F3D+qEAOVj7x3JJPkEO40Mfz5W1ca6GSeuV5wuYQY/Lvb890kvE= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-organization-membership-admin-simple-accounts-organizations-memberships-post.api.mdx b/docs/docs/reference/api/create-organization-membership-admin-simple-accounts-organizations-memberships-post.api.mdx index 00243c7562..ac31cb7534 100644 --- a/docs/docs/reference/api/create-organization-membership-admin-simple-accounts-organizations-memberships-post.api.mdx +++ b/docs/docs/reference/api/create-organization-membership-admin-simple-accounts-organizations-memberships-post.api.mdx @@ -5,7 +5,7 @@ description: "Create organization memberships" sidebar_label: "Create organization memberships" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-organization-provider.api.mdx b/docs/docs/reference/api/create-organization-provider.api.mdx index e29a5f064b..f148c9a068 100644 --- a/docs/docs/reference/api/create-organization-provider.api.mdx +++ b/docs/docs/reference/api/create-organization-provider.api.mdx @@ -5,7 +5,7 @@ description: "Create a new SSO provider configuration." sidebar_label: "Create Provider" hide_title: true hide_table_of_contents: true -api: eJzVl99v2zYQx/8V4bCHDpN/LNiTnuYlHWq0XYw43YvjBox0ttlRJEtSSVxD//twpGRRduJ0AYZhebFFHu9Od5/vmdmBY2sL2QIuzZpJ/o05rqSFZQoF2txwTc+QwblB5jBhicSHZD6/TLRR97xAk+RKrvi6Mv7k8EbeyHmltTIOi87IbTXa7EYOEsWLPEsuNcrpRXKupMTc0bplpciS+eTjh+RsOE7e5Krkcp1YpeSPkILSGCJMC8gg99ncqijn2zYWpGDwa4XW/aaKLWQ7yJV0KB19ZVoLnvsDoy+W3mwHNt9gyeibNhTGcbR+XVRr+qTcIQPrDJdrSEEz59BQUT4v2ODbYPnTD5CC406Q2ZxO1SlIVqKPKLeXK8gWh37qdL8iKyGgXnY+/qCz9UELXufqInJRp7ASvt2xL1YUnLaZmEWv70yFaetV3X3B3J2M87t3XKdg0TkumyDf7TqqX3u+ro+NqLHcYEHA+vZE8aJkYpZnDRYBYDjk+iqgkpSqQJGslEk8W4Qekz3Qh1BTSl0K9B5+wWolbWDmbDymj36MeZXnaO2qEslVYwzpa6nkxVNMrpQpmYMMqooXUTWnhe/JMyT/35h9BU7/ApdpM36KW+ZO9qJgDgeOlxi5CRgWyYTkBJUuIkfP1epJl6cK+Cm4bYL0puQ/wycWUkIsvaBJf7gRpoepz0Pby6gbvWL2CnKc+AsKj7R1qPGwEYn8KW3XKfxydnYs3z+Z4EUowVtjlHm9dgt0jAuvYoelPTYQKu/tfod6uHS4RgP1susNM4ZtozZ+UCFBoqG0J0fBR7SWrb2Sg8nzpr4YyTXt1ilwqasgh3b0+AVSi3uM3BwJ65xq+eheZItqE9Jv7CIcuhaFDj1fiovQgqeCtSbvrq9nRw4DHyW6jaILiFbWhavABjIYxaTaUUuVHXnSzT0a65tYGUHWTHPfwfC4cU7bbDTCapgLVRVDtkbp2JDxYLgkH3lluNt6J5PZ9D1u3yGju062WMYGcwIvoNQ325efaf4et608M5hUbqNMkzpQGymlcIremJC+6q5Tbx9ZqQV216MOi8bh/rkvom7UNNO8P5JrT9BKxQBNfB2SyWx65K23RWJkuWevfSm/TeOkV+GusJACll6K4JCVv+53iBxqVwgzHv48HNMStbtkMgrR3Idn3aXz4IdvPyL+86tz03kS2UgLxv0Y8JXZNQAveqOWhvIeYUiBhLYh3rMF7HZ3zOInI+qalr9WaIjKZQr3zHB2R41b0CTatHzu4C/ctjKXbuDnBZmLKvB4MD5JGOHEJM9Ru5O2y0iSs8v5NaRw11z6adZDBoY90BxhD5CB/zcivGG2C2s7EEyuK5p4GQSf9Pc3YSJ/2w== +api: eJzVl99v2zYQx/8V4bCHDpN/LNiTnuYlHWq0XYw43YvjBox0ltlRJEtSSVxD//twpGRTduJ0AYZhebFFHu9Od5/vmdmCY6WFbAGXpmSSf2OOK2lhmUKBNjdc0zNkcG6QOUxYIvEhmc8vE23UPS/QJLmSK17Wxp8c3sgbOa+1VsZhsTdyG402u5GDRPEiz5JLjXJ6kZwrKTF3tG5ZJbJkPvn4ITkbjpM3uaq4LBOrlPwRUlAaQ4RpARnkPptbFeV828WCFAx+rdG631SxgWwLuZIOpaOvTGvBc39g9MXSm23B5musGH3ThsI4jtavi7qkT8odMrDOcFlCCpo5h4aK8nnBBt8Gy59+gBQcd4LM5nSqSUGyCn1EublcQbY49NOkuxVZCwHNcu/jDzrbHLTgda4uIhdNCivh2x37YkXBaZuJWfT6ztSYdl7V3RfM3ck4v3vHTQoWneOyDfLdrqP6deeb5tiIGssNFgSsb08UL0omZnnWYhEAhkOurwIqSaUKFMlKmcSzRegx2QN9CA2ltE+B3sMvWK2kDcycjcf00Y8xr/McrV3VIrlqjSF9LZW8eIrJlTIVc5BBXfMiqua08D15huT/G7OvwOlf4DJtx09xy9zJXhTM4cDxCiM3AcMimZCcoNZF5Oi5Wj3p8lQBPwW3bZDelPxn+MRCSoilFzTpD7fC9DD1eeh6GXWjV8xeQY4Tf0HhkbYONR42IpE/pe0mhV/Ozo7l+ycTvAgleGuMMq/XboGOceFV7LCyxwZC5b3d71APlw5LNNAs971hxrBN1MYPKiRINFT25Cj4iNay0is5mDxv6ouRXNNukwKXug5y6EaPXyC1uMfIzZGwzqmWj+5Ftqg2If3WLsJh36LQoedLcRFa8FSwzuTd9fXsyGHgo0K3VnQB0cq6cBVYQwajmFQ76qiyI0+6uUdjfRNrI8iaae47GB7XzulsNBIqZ2KtrAvbSzqZ14a7jT86mU3f4+YdMrrhZItlbDAn3AJAfbNd0Znm73HTiTKDSe3WyrQJAzWPEgmn6D0J5Kv9JertI6u0wP2laA9D63D33JfOfsC0M7w/iBvPzUrF2ExKlI4lk9n0yFtviyTIck9c91J+m4bIrq42G42YXx4yTt3AygsQHLLq190O8UJNCmHGw5+HY1qiJldMRiHaW/Bsf9U8+LnbDYb//MLcdp6kNdKCcS9+X5lti+2iN2BpFO/AhRRIXoQj2W23d8ziJyOahpa/1miIymUK98xwdkeNW9D8WXd8buEv3HTilm7gpwSZizrweDA0SQ7hxCTPUbuTtstIiLPL+TWkcNde9WnCQwaGPdD0YA+Qgf/nIbxhtg1rWxBMljXNuQyCT/r7G4FxfHw= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-organization.api.mdx b/docs/docs/reference/api/create-organization.api.mdx index 21dd6c3a49..0a35dfe95e 100644 --- a/docs/docs/reference/api/create-organization.api.mdx +++ b/docs/docs/reference/api/create-organization.api.mdx @@ -5,7 +5,7 @@ description: "Create a new organization." sidebar_label: "Create Organization" hide_title: true hide_table_of_contents: true -api: eJydVcFu2zAM/ZWAZy/pip18WrYWaNBtCdpslyAYGJu11cmSKsltM8P/PlBKYjtZi265xCIfKenxkWrAY+EgXcHcFqjEb/RCKwfrBHJymRWG15DCZ0voaYQjRU8j3cOOIQFtyIbFLIcUsgD92QdBApYeanL+k863kDaQaeVJef5EY6TIAm5y73i3BlxWUoX8ZSxn94IcrxRWFGLUdn4H6aoBvzUEKThvhSqgTQ4WVUsJ7ToBL7xkwzeObY8u9n+pLnop2jbZ4/TmnjIPHS6y1qd2gVupMYeWw5gTYSmH1NuagsEZrVy86/nZGf8N63BbZxk5d1fL0c0ODMmb2WzDth/Oz08T/0Ap8hA2urRW23/IelSjnDwKyV/CU+VOAVJnA+8bKiCUp4IstOuObbQWtz2yv+h4QK5x5QrOPMzXQb+Sc1gENUTIy9BAxmjJ3jYBoUwdCNm7Z8HQJpD5516aUyUwl8/+r2rpZLAK3MTj73A91XUlihV6mYqLWILXpHm1XC5OEkZ9VORLzZ1stOMQg76EFCZ6MCIScGQfybpQudpKhqARoWxxWXpvXDqZUD3OpK7zMRakPI5RROCac2S1FX4bkkwXs2vaXhHmZCFdrfuAW1Zb1M8QduAcjbgmZiEOCZjWvtS2m0CCZV7GKL4m6/imm0qXz1gZSd2U6bQw7JSDOkGoO90XwzRcbzRdzE6CBi5uLMx8b6vohuSIuI4vSICq0FbgCauPBw+fg6sQtzkbvx+fsYlLV6HqbbGb4PPhWD4ahoeWf33g7xhnRU+MRBF6Lhy92allBfr4QSlZTekKmmaDjr5b2bZsfqjJcvnXCTyiFbhhKlfc5+VeCA38ou2+iZR/F7qR4bKOhT8aTqzAGDHNMjL+Vey6J/jF/HYJCWx2j1Slc46x+MRdik+QQnjt4pXSJtoakKiKmudJCjEn//4ARUOGsA== +api: eJydVcFu2zAM/ZWAZy/uip18WrYWaNBtCdpslyAYGJu11cmSK8ltPcP/PlBKYjtZi265xCIfKenxkWrBYW4hWcPC5KjEb3RCKwubCDKyqREVryGBz4bQ0QQnip4meoCdQgS6IuMX8wwSSD305xAEERh6qMm6TzprIGkh1cqRcvyJVSVF6nHxveXdWrBpQSXyV2U4uxNkeaWwJB+jmsUdJOsWXFMRJGCdESqHLjpYVC0ldJsInHCSDd84tju62P+luhik6Lpoj9Pbe0od9LjA2pDaJTZSYwYdhzEnwlAGiTM1eYOttLLhrudnZ/w3rsNtnaZk7V0tJzc7MERvZrPz2344Pz9N/AOlyHzY5NIYbf4h61GNMnIoJH8JR6U9BUidjrxvqIBQjnIy0G16ttEYbAZkf9HhgFzj0uaceZyvh34lazH3agiQl6GejMmKvV0EQlW1J2TvnntDF0HqngdpTpXAXD67v6qll8HacxOOv8MNVNeXKFToZSouQglek+bVarU8SRj0UZIrNHdypS2HVOgKSCDWoxERgSXzSMb6ytVGMgQr4csWloVzVRLHUqcoC21dcG84Mq2NcI0PnS3n19RcEWZkIFlvhoBb1lhQzRh2YBorcU189zAaYFa7Qpt+7ggWdxGi+HKs3pt+Fl0+Y1lJ6mdLr4Bxfxw0CULd6aEEZjkph5PZcn4SNHJxO2HqBlsFN0QDumwSx+jNUxQxREClbyZwhOXHg4fPwdyHbc6m76dnbOKClagGW+zm9mI8jI9G4KHRXx/zO8ZZx3ElUfhO80dvdxpZgz5+Rrju7GjbLVr6bmTXsfmhJsPl30TwiEbglqlcc3cXeyG08Iuafeso9873IMNlHQp/NJJYdyFilqZUuVexm4HMl4vbFUSw3T1Npc44xuAT9yY+QQL+jQtXStpga0GiymueIgmEnPz7Axv9g1E= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-portal.api.mdx b/docs/docs/reference/api/create-portal.api.mdx index fc01eca9f8..7a70db312b 100644 --- a/docs/docs/reference/api/create-portal.api.mdx +++ b/docs/docs/reference/api/create-portal.api.mdx @@ -5,7 +5,7 @@ description: "Create Portal User Route" sidebar_label: "Create Portal User Route" hide_title: true hide_table_of_contents: true -api: eJx9kkGP2jAQhf8KemeL0B5zKu2laA9FS/eEUDWYWeLWiV17gkqj/PdqHKALh80lsmc88+Z9M0DomFFv8dl577ojdgYhciJxoVsdUMMmJuEfMSQhD4PEOYYuc0Y94ONiob8DZ5tc1Deosemt5Zxfez97viTDwIZOuBNNpxi9s6VF9TPrmwHZNtwS6mHUzzyU/FJEzNZFxOwlc5o9h160bsvSBBUaQxYYRJIGNar9NFCVJbnI1aQ/VzDInE6cdOoBffKaTNFhNNdjIxJzXVXcz60P/WFOR+6E5uSmxJ3WsH1yci5FluvVE5+/Mh04od7u3iZsdK7JrPu0AXKOjBoU3ROfYdBRq+dlL01I7m/xBwZODWimV+qM615Dee7El/wibrZcr/Bo211IAZAtAK6dShjmYez/08KAW3IaFKb20y2C0UA9nNos5h/mC71SBC11b1q8A+5O6s0N4T9SRU+u04JF2HBhusWFqTIsVBX3xBUGurqN7kC9xTDsKfNL8uOo1797TopqZ3Ci5Givxm13o7n6qhR/8Vk9sZaj7tGJfD/heVhWpXtbuvW3zXeM4z94Thzw +api: eJx9kkGP2jAQhf8KemeL0B5zKu2laA9FS/eEUDWYWeLWiV17gkqj/PdqHEDAoblE9rzxzHxvBggdM+otPjvvXXfEziBETiQudKsDatjEJPwjhiTkYZA4x9BlzqgHfFws9HfgbJOLmoMam95azvm997PXixgGNnTCnaicYvTOlhLVz6w5A7JtuCXUw6ifeXryS2liti5NzN4yp9lr6EXfbVmaoI3GkAUGkaRBjWo/DVRlSS5yNfWfKxhkTidOOvWAPnkVU3QYzfXYiMS6qnyw5JuQZQrvNNP2ycm5pC7Xqxc+f2U6cEK93d0LNjrNhOhRNkDOkVGDonvhMww6avW87KUJyf0tVGDgdOxmylIernsPJd2JL/ojd0Kz5XqFZ1gPIcVOtmC/ViphmLthc11VVK7n5BQRt+Q0KEztp1sEo4GSm8os5h/mC71S8C11dyX+Y9dDqzcawn+kip5cpw+WxoaLk1tcnFTnipdq8uQmDHRh1SMVDsOeMr8lP456/bvnpFbtDE6UHO0V3HY3mitXdfEXn5WJtRx1e07k+8mepxVVd2+rtv62+Y5x/AdTJxmR sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-project-admin-simple-accounts-projects-post.api.mdx b/docs/docs/reference/api/create-project-admin-simple-accounts-projects-post.api.mdx index e194717c3a..d5cccb607a 100644 --- a/docs/docs/reference/api/create-project-admin-simple-accounts-projects-post.api.mdx +++ b/docs/docs/reference/api/create-project-admin-simple-accounts-projects-post.api.mdx @@ -5,7 +5,7 @@ description: "Create projects" sidebar_label: "Create projects" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-project-membership-admin-simple-accounts-projects-memberships-post.api.mdx b/docs/docs/reference/api/create-project-membership-admin-simple-accounts-projects-memberships-post.api.mdx index a7e1e48a97..a5420f0c82 100644 --- a/docs/docs/reference/api/create-project-membership-admin-simple-accounts-projects-memberships-post.api.mdx +++ b/docs/docs/reference/api/create-project-membership-admin-simple-accounts-projects-memberships-post.api.mdx @@ -5,7 +5,7 @@ description: "Create project memberships" sidebar_label: "Create project memberships" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-project.api.mdx b/docs/docs/reference/api/create-project.api.mdx index ec882d5aeb..b0ad8ef33f 100644 --- a/docs/docs/reference/api/create-project.api.mdx +++ b/docs/docs/reference/api/create-project.api.mdx @@ -5,7 +5,7 @@ description: "Create Project" sidebar_label: "Create Project" hide_title: true hide_table_of_contents: true -api: eJytVk1v2zgQ/SvGnFU7DXrSqd5tgRr9iJGkuwfDCMbS2GZDiSw/mngN/ffFkKIk241TpPXFEjkznHlv3lB7cLixkC9gbtQ3KpyFZQZKk0EnVD0rIYfCEDq609EAMjD03ZN1f6lyB/keClU7qh0/otZSFMF18s2qmtdssaUK+UkbDuwEWX6rsSL+dztNkIN1RtQbyMAJJ3nhC+83GVR4T3clrdFLN7BfKSUJ64HDZ7yn0bvWMIPOZY3SUtNkyVOtBnUIQyWXH7JZ9sH+DkW3oFzHgqHhKL2XM57CgtWqtrGqy4vX/FeSLYzQDATkcOOLgqxdezm6bo0heyluymywFv8F4ztRBvd6d7WGfHEK5lqZCh3k4L0oock6i9pLCc2g4KtB2NGMbQ9PSnQ9ddYvx068PihzbzUW9AeL+DfFbCvoz/id9PuoKfdWC23m5/Pt47Td1OaWYjyng+SVzhY2qaGT5DlVzGzSxGjeKfhIGxl4S+bOKPlijL5aMqNrDpBSrNRPY6UMzwULOVcKnhPtgIYjPJcn+NlOeU2Q8ZvLy1Oh/oNSlLFN3xujzMtVWpJDIflJOKrsqYFUxcHuL4AuakcbMtAse1zQGNwN6P6kYoJhctrNucb6TNbiJhAWTZ42DWCMbnmX6a21j02X+AoLTQaFexyE6Tjrhipj+eie5ZWxiem3dgM6e4oiQ09D8S5S8LPDksmH29v5ScDYH4eNEa+DgYIqclvFt6NWlt81ui3kMNHpGs3AkvlBxgZOvZG8i1oEQuPr1jlt88mE/LiQypdj3FDtcIwiGi45RuGNcLsQZDqffaTdB8KSDOSL5dDghvswdtahWccGavGRGJ84cGDq3VaZdioDs8opRS8GgDv8ur/p3z9ipeN8aAN0XXJ4Q6eRIuq1GjbJNBQ3ms5ncIzuwRYLDuNQS5mGbciOYOvRggyoCnIDR1i97Xa4O5iDeMzF+PX4IoxeZV2F9eCIE34PEuww5O6daIki6Cuks2+p76ZR+ILaclfkC9jvV2jpq5FNw8vfPRnmcpnBDzQCV4zMguW8Tazu4Z52SSu1exVEx+bSRxaPZhC3U/SYFgVpd9Z2OWjc+dXNLWSwar/iKlWyj8EHFiM+QA7AX4LsHdoqrO1BYr3xPDZyiDH59z9904Vk +api: eJytVlFP2zAQ/ivVPWcU0J7ytG4grWIbFbDtAVXomlxbD8c2tgN0Vf77dHacpnQUxNaXJvbd+e777jtnDR4XDvJrmFj9iwrvYJqBNmTRC63GJeRQWEJPNyYaQAaW7mpy/qMuV5CvodDKk/L8iMZIUQTX4S+nFa+5YkkV8pOxHNgLcvymsCL+9ytDkIPzVqgFZOCFl7zwjfebDCq8pZuS5lhL37OfaS0JVc/hK97S4KQ1zKBzmaN01DRZ8tSzXh3CUsnlh2ymm2CfQtEtKBexYGg4ysbL25rCgjNauVjV8eER/5XkCisMAwE5XNZFQc7Nazm4aI0heytu2i5Qid/B+EaUwV2tzueQX++COde2Qg851LUoock6C1VLCU2v4PNe2MGYbbdPSnQ9d9arYydeH7S9dQYL+o9F/Ewx2wo2Z/xL+puoKfdWC23m+/PdxGm7qc0txXhJB8krnS1cUkMnyX2qGLukicGkU/ATbWRQO7I3Vss3Y/TdkR1ccICUYqX/GitluC9YyLnS8JJoezQ8wXO6g5/rlNcEGb8/Pt4V6g+Uooxtemqttm9XaUkeheQn4alyuwZSF1u7rwBdKE8LstBMN7igtbjq0f1FxwTD5HSLfY31lZzDRSAsmjxvGsAYXPEu06tMHZsu8RUWmgwK/9gL03HWDVXG8tG/yCtjE9Nv7Xp0biiKDD0PxUmk4G+HJZPPV1eTnYCxP7YbI14HPQVV5Jeab0ejHb8b9EvIYWjSNZqBI3tP1gVOayt5F40IhMbXpfcmHw6lLlAutfNxe8qeRW2FXwXX0WR8RqvPhCVZyK+nfYNL7r7YT9tmHQdoxBkxKnHMwKj2S23bWQzMJScSvbhs7uuLzf1++oiViVOhDdD1xva9nAaJUHPdb43RgpTHwWgyhqeYbm2xzDCOspRp2IasB5bLh0MMywcohpABVUFk4AmrD90O9wQjH485PDg6OAwDVztfoeodscPqVoIdhtyzQyNRBFWFdNYt4d0MCt9NTCKvrdczdPTdyqbh5buaLHM5zeAercAZI3PNIl4mVtdwS6ukEOXfBamxuawji08mDzdR9BgVBRm/13baa9fJ+eUVZDBrv90qXbKPxQeWID5ADsDff+wd2iqsrUGiWtQ8LHKIMfn3B1X4ggU= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-query.api.mdx b/docs/docs/reference/api/create-query.api.mdx index 795ba795a1..a701cc40d5 100644 --- a/docs/docs/reference/api/create-query.api.mdx +++ b/docs/docs/reference/api/create-query.api.mdx @@ -5,7 +5,7 @@ description: "Create Query" sidebar_label: "Create Query" hide_title: true hide_table_of_contents: true -api: eJztWF1T4zYU/SuZ+9TOKITlI9v6qVlYZum2hQW2L0yGUezrRFvZMrLE4mb83ztXsmM7hgBZdqbTKS+AdD90zz06krwEw+c5BNfwyaIWmMOUgcpQcyNUehpBAKFGbvDm1qIugEHGNU/QoCavJaQ8QQjAzd6ICBiItP4fGGi8tUJjBEHMZY4M8nCBCYdgCTwtzmIXwxQZxciNFukcGMRKJ9xAANaKCEq2skitlFBOGRhhJA3QoovBaQQljVIyzM07FRWUoMlttEUGoUoNpsblzjIpQlfj6EuuUhprVpZpQsAQGsGyKqU3HCsZoaaSX6mWExfQFcMglq4t7cid9CWr46jZFwwNrGFy4vz76civF5lHkSAouDzvlNiraqaURJ6241aF0sjDYSAUOrSS6x9+4zOUv+YqHZ6mmTU/wnoNbTTWjKFX8CYor3zxkKDhW5baqqsaEanBOepu4mTWHWkj9BQeJ1ZuhoMtQRhMnufEtebFZoJ1XF+G6O+EZMmq7f4svHox/iDfkkGEeahFRtBsG+q4FaJkkEs73zbUJfmWT+2nIyeCD9o1MnNdacW6QHnnC69OUJYURWOeqTT37Nvb3aVfHWDg0oYh5nls5eCiMoatRSxU1jutkblZ6ZGzoO7E3EoDwW7JGu17RIb+V8FvUMEza14gg976P62DjwKyUQh7Xi9Qwm1A/XdLob+tRTfcPHNHRtzg0Ai3nsezeAmLBhMHls2i75Hksw9bJYlQ4ndIcuzDVklquGbFK2pYDda7otKxGq9XzVKjtcpSA/aqWWq4Vlm+/axl8HrLc1f/J06Bhw6Ap3xWJ64/rQ/29voH9J9cisgdv4P3Wiu9/ekcoeFC0l+VzK0bSBV2Zl8i09NyTRlbp4vyC3RnRD5v3Q9WrWhUL8/5HBupfNzUgTG4olnqtbtsknndsvr2GZr7VpheH44Iy3vz5J2LsPHLr+xa9Gha5Dv0OBTHvgWbiPHh6uq8F9Dzo0sMv/8Hn6o3cIJmoeglnancuBe0WUAAo1v/4h4Bgxz1Xf2itlrSLM+Ea6f/d2FMlgejEdqdUCob7fA5pobvcOENpxQjtFqYwgWZnJ9+xOID8gg1BNfTtsElsdDzqmu26gXPxEekpVev+4k1C6XF354s1RN/4b2ofOL3RfP4fn/Pk0xi5/HcuijCfsx/OozHB8PDt2/eDg8Ox3vD2X4cDvfCn8f78XjMYz6G5vbX3Naaq8zq/G3o1+3Batjr1WqDOEbGqk3IiYNyMDk/7UXpTNHm5qHjco2Lmwa21qSmN8AAE7e1wSBPflnNEBOp4z7N7s6bnV0aIoYkPG2lWOPS2oWh6hftk1EmuXA72S1mWdHMv0lIRhjQzlgQB4NrWC5nPMfPWpYlDVd9ul5CJHI+k60vNn9h0f3Ac8elpayOdXdcC7J3JGM1KSiQ9zvyijh0ctD49tSRqO49JmGImdloO21tqvOzyytgMKs++iQqIh/Nv5JM8K+0TvqiRd6O8m5sCZKnc0uCFoCPST//AB/VfT0= +api: eJztWF1T4zYU/SuZ+9TOKITlI9v6qVlYZum2hQW2L0yGubHlRFvZMpLM4mb83ztXsmM7hgBZdqbTKS+AdD90zz06krwEi3MDwTV8yrkW3MCUgcq4RitUehpBAKHmaPnNbc51AQwy1JhwyzV5LSHFhEMAbvZGRMBApPX/wEDz21xoHkEQozScgQkXPEEIloBpcRa7GLbIKIaxWqRzYBArnaCFAPJcRFCylUWaSwnllIEVVtIALboYnEZQ0igl48a+U1FBCZrcVuecQahSy1PrcmeZFKGrcfTFqJTGmpVlmhCwhEawrErpDcdKRlxTya9Uy4kL6IphEEvXlnbkTvqS1XHU7AsPLaxhcuL8++nIrxcZo0gQFCjPOyX2qpopJTmm7bhVoTTycBgIhQ5zifqH33DG5a9GpcPTNMvtj7BeQxuNNWPoFbwJyitfPCTc4paltuqqRkRq+ZzrbuJk1h1pI/QUHie53AwHW4KwPHmeE2qNxWaCdVxfhujvhGTJqu3+LLx6Mf4g35JBxE2oRUbQbBvquBWiZGBkPt821CX5lk/tpyMngg/aNTJzXWnFukB55wuvTlCWFEVzk6nUePbt7e7Srw4wcJmHITcmzuXgojKGrUUsVLl3WiNzs9IjZ0HdiTGXFoLdkjXa94gM/a+C36CCZ7l9gQx66/+0Dj4KyEYh7Hm9QAm3AfXfLYX+thbdoH3mjozQ8qEVbj2PZ/ESFg0mDqw8i75Hks8+bJUk4pJ/hyTHPmyVpIZrVryihtVgvSsqHavxetUsNVqrLDVgr5qlhmuV5dvPWgavtzx39X/iFHjoAHjKZ3Xi+tP6YG+vf0D/iVJE7vgdvNda6e1P54hbFJL+qmRu3UCqsDP7EpmelmvK2DpdlF+gOyPMvHU/WLWiUT1jcM4bqXzc1IExuKJZ6rW7bJJ53bL69hna+1aYXh+OCMt7++Sdi7Dxy6/sWvRoWuQ79DgUx74Fm4jx4erqvBfQ86NLDL//B5+qN3DC7ULRSzpTxroXtF1AAKNb/+IeAQPD9V39os61pFnMhGun/3dhbRaMRlKFKBfKWD89Jc8w18IWznVyfvqRFx84RlxDcD1tG1wS9zybumarDmAmPnJacPWmn+R2obT421OketgvvBcVTay+aJ7c7+8xySTvPJlb10PYj/Gnw3h8MDx8++bt8OBwvDec7cfhcC/8ebwfj8cY4xiaO19zR2suMKtTtyFdF/nVsFep1bZwPIxVm4aTOU8tDibnp70onSna0hg6Bte4uGlgrdaYYDRCN7yDghrKE7ehwXJMflnNEP+ozz7N7s6bnV0aIl4kmLZSrDFo7ZpQ9Yt2xyiTKNz+dYtZVuTyLxESDwa0H4gyNLpcztDwz1qWJQ1XfbpeQiQMzmTrO81fvOh+1rlDmVNWx7o71ILsHclYTQoK5P2OvA4OnQg0vj1NJIJ7j0kY8sxutJ22ttL52eUVMJhVn3oSFZGPxq8kDviV1knfscjbUd6NLUFiOs9JxgLwMennHx7Qed4= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-queues.RequestSchema.json b/docs/docs/reference/api/create-queues.RequestSchema.json index 909eb949c7..b7f0118797 100644 --- a/docs/docs/reference/api/create-queues.RequestSchema.json +++ b/docs/docs/reference/api/create-queues.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueueCreate"},"type":"array","title":"Queues"}},"type":"object","required":["queues"],"title":"EvaluationQueuesCreateRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueueCreate"},"type":"array","title":"Queues"}},"type":"object","required":["queues"],"title":"EvaluationQueuesCreateRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-queues.StatusCodes.json b/docs/docs/reference/api/create-queues.StatusCodes.json index 868401dc1b..bdfd9245c8 100644 --- a/docs/docs/reference/api/create-queues.StatusCodes.json +++ b/docs/docs/reference/api/create-queues.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},"type":"array","title":"Queues","default":[]}},"type":"object","title":"EvaluationQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},"type":"array","title":"Queues","default":[]}},"type":"object","title":"EvaluationQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-queues.api.mdx b/docs/docs/reference/api/create-queues.api.mdx index 6513186abf..a8de1312cb 100644 --- a/docs/docs/reference/api/create-queues.api.mdx +++ b/docs/docs/reference/api/create-queues.api.mdx @@ -5,7 +5,7 @@ description: "Create Queues" sidebar_label: "Create Queues" hide_title: true hide_table_of_contents: true -api: eJztWdtuGzcQ/RWBTy2wshTFdlo91YkTxE1SO5aTF0EQRruzEhOKu+EliSLsvxdD7l0XW64DtIX9Yok7c2Z4OLel1szAXLPhmL38CsKC4YnUbBKwJEXlvl1EbMhChWBw+sWiRc0CpvCLRW2eJ9GKDdcsTKRBaegjpKngodPsfdKJpDUdLnAJ9ClVhGs4avqWww3XjBtc6k2BWDjn1gzk6jJmw3FbgOupJlek4SBowaxSZEM2SxKBIFnADDeCVi50Z1RJBizCGKwwbBiD0JhlQaGazD5haGqaFTHvyd9XzqcsKG1JKwTLJoSw4S1EESdNEFcNvyuJlsM1XG0Ul3O3sh2GhVyFVoD65S3MUPypE9m9kKk1v7L2brJJtZ+WMNvY+ubeKuUbv3m2RAP33GptX/kKlwbnqJqGl7PmSp2h2/h4ZcV+OoIy5O6gBErBai8rTdXDGH1HTGYBk7DEO/K1gfEX6WYU1DpUPCVq7gt1XoPIAvYVlc7RmhiVxsdcpJZTbNAfnHT7z7pPjglEGzB2bzAEDKVdUhlKUUZ+xVWHiIqNldIvaRuGqKkAxcCFVUiKSiWKlkKQIQqBEZtsS96Rd2Lb3iu/C+vEJbQjvFl6rEY15VFrW2UhKz+0Nxonaglky1oe1UKliLK7R90HjapzEbl81CFKUDzZ49Ghjuw2PMqNlcYNptPPuLqb5YMsGUw7bwg5C9gMTLiYav5je55srSItvOcE0RkRRAmYxLFG8w8hLz3IAX3kHFzeb2kjysopj24/sgr62srORbTVOnVqrjCi3MqBt6aH8+mFa/MbJ1TJv/cd+zZDeWPfbUh7S9d+jGAZAVYARll0CzpNpPbpNuj36V+jwrGRrwexFZ3rXJgKwf2mkTCxXql1+NUmXjiJWr3oZ8HjEPPwQ8ylNQdMMV76fz3G7CRk7xyzoXXAIHMfUv/dk4x/hYmmsL3Ub9bYCAx2DXf+7LbiC1nUOXNk2TT6GUY+eNjcSIQCf4KRcw+bGynomq3yXnQHO/kgcTtZz1euXVV8PaiVgq3SSkHYg1op6CqtPBy0x6uN3vcJ/2Isf5y/H+fvx/n7vzF/3z5515JlPDlgt7qcjzM3bB8PBpvj9EcQPHI6nZeU1fefpSM0wMWeoVgkYePpIePVZDdLbxPvoJvt9HzftcU71BrmNcp3izoyOjf0lOq8u+Mh8aJcF5c+ofleg9k4khfE5fftQVoPE+LGu5/L1at6eUT+hHZTce6PYF+MvL65udoA9PHRDAzftztlDC7RLBK6F04TTYApmAUbsh5Wd8g9/17Uo66BinqZO12rBAlCyt3R+q8LY1I97PXQHoUisdERzFEaOALuBSeEEVrFzcqBnF1dvMHVa4QIlcuDmsCIItLHWFOsPBdI+Rskpvycys6sWSSK//CBQ+dLLnktooJi/bq67375HZapwPr99bj2ktd6mfMvZuVbVfXKUc7JVbg1OS+XyzmgfqtWNfVaxy5aZtUax+xpDL+dxKfH3ZNnT551j09OB93Z0zjsDsLfT5/Gp6cQwykFWLOBHaBX9Z5x4fOk2Sv67UrfrxXZuxlyOc9lnNTz7sxFSefs6mKDvMYjqmEQupQtjtw9ZkEr/qqwo7lm6SoYMwjLP8onjcGM9Y+eHPVpifJgCbJmop0yrReaPBapHvRSAdxVLOfNOs+mMatlEyvvGQJG9C4o74Zjtl7PQOMHJbKMlr9YVJQik4B9BcVhRjyNibtFkSxr9hlXRTGSpuuqGokL65OjVeQpS73GWRhiavbKTmql4epydMMCNst/IlomEeko+EbVDr6xIWP0K5Pf3nDt19ZMgJxbqstD5jHp728QGBD8 +api: eJztWdtyE0cQ/RXVPCVVKySEbZJ9isFQKITYWIYXlUrV2u2VBkazy1wAodp/T/XMXnWz5UAVSdkvlma7T0+f6dus1szAXLNwzF58BmHB8FRqNglYmqFy34YxC1mkEAxOP1m0qFnAFH6yqM2zNF6xcM2iVBqUhj5ClgkeOc3eB51KWtPRApdAnzJFuIajpm8FXLhm3OBSbwskwm1uzUCuLhMWjjcFuJ5q2oo0HAQtmFWGLGSzNBUIkgXMcCNoZag7o1oyYDEmYIVhYQJCYx4QVLV2GOeiENsCyYNSL519wMg01Gp235LTL51jeVAZklYIlk8IYctliGNOmiCuWs7XEhu7beBqo7icu5XdMCziKrIC1C9/wQzFnzqV3aHMrPmVbXqTT2p/NoTZluvbvtXKN955tkQD93S14VexwqXBOaq24eWsvdJk6DY+XlpxmI6gits7KIFSsDrISlv1OEbfEJN5wCQs8Y58bWH8Tbo5BbWOFM+ImvtCXTQg8oB9RqULtDZGrfG+EGnkFBv0B6fd/tPu4xMC0QaMPRgMAUNpl1TLMpSxX3ElJqaKZaX0S9pGEWqqYglwYRWSolKpoqUIZIRCYMwmu5J35Dexy/d636V14hI2I7xdv6xGNeXxhltVNaw+bDqapGoJZMtaHjdCpYyyu0fdO42qM4xdPuoIJSieHtjRsRvZb3hUGKuMG8ymH3F1N8tHWTKYdV4Tch6wGZhoMdX82+482VlFNvCeEURnRBAVYJokGs2/hLz0IEf0kQtweb+jjSgrpzy+/chq6GsrO8N4p3Vq91xhTLlVAO9MD7en525W2DqhWv6tb/u3GSqmg/2GtLd07WcRlhNgDWCURbegs1Rqn26Dfp/+tSocG/l6kFjRuS6EqRDcb6SJUiubA0R5+LUTz51Eo1708+BhEvpJJ6FLa44Yhbz0/3oW2kvIwWFoS+uIaeg+pP7c45C/TMVT2N0vtgt1DAa7hrv97Lfiq2HcOXdk2Sz+EUbeedjCSIwCf4CRCw9bGCnpmq2KhnYHO8U0cjtZz1au59V8fVcrJVuVlZKw72qlpKuy8v2gPV5jfr9P+Jez/cMQ/zDEPwzx/40h/vbxvZEs48kR3upqyM7dxH4yGGzP5O9B8NjpdF5QVt9/II/RABcHJmuRRq2nx4xXk/0s/ZX6DbrZTs8Pvft4g1rDvEH5flFHRueGnlKddy+KSLws1+Wbo8h8bcBsHclz4vLr7iBthglx47dfyDWrenVE/oT2U3Hhj+BQjLy6ubnaAvTx0Q4M37c7VQwu0SxSekOdpZoAMzALFrIe1m+ze/5y1aOugYp6mTtdqwQJQsbd0fqvC2OysNcTaQRikWrjH09IM7KKm5VTPb8avsbVK4QYlYv+hsCI4tBHVlusOg3I+Gskfvx0ys6tWaSKf/PhQqdKG/FaRABF+HX9vv3FV1hmApvvz8eN++HGPdBdx9pXuvKaV1yv6rtHNTDXcdcmv1quBoLmO7q6uzdad9k76x45Zk8S+O00OTvpnj59/LR7cno26M6eJFF3EP1+9iQ5O4MEzijS2p3sCL26CY3LPU/aTaO/WfL7jWp7N0Mu+blM0mYCns9RGuicXw23yGs9omIGkcvdMgrcYxY0AlGHvR645UfAKXxx6UoZMwjLP6onrQmN9R89ftSnJUqIJciGic3c2bjZFOFJhaGXCeCudLndrIu0GrNGWrHqrUXAiF5KFxJZr2eg8Z0SeU7LnywqyppJwD6D4jAjnsbE3aLMnzX7iKuyKknTdeWNxIX1+bJR7SldvcZ5FGFmDspOGjXi6nJ0wwI2K361WqYx6Sj4QmUPvrCQMfrhy7sXrv3amgmQc0sFOmQek/7+AVJdQ1Q= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-results.api.mdx b/docs/docs/reference/api/create-results.api.mdx index 27e48cbbb8..a4817e8756 100644 --- a/docs/docs/reference/api/create-results.api.mdx +++ b/docs/docs/reference/api/create-results.api.mdx @@ -5,7 +5,7 @@ description: "Create Results" sidebar_label: "Create Results" hide_title: true hide_table_of_contents: true -api: eJztWVlv20YQ/ivCPLUAZcmKj4RPdZwEUdMghq3koYJgjMiRxHR5ZA/HqqD/XswuSS0lmz7gPLiwXywtZ2Znv/3mElegca4gHMP7KxQGdZJnCiYB5AVJ+20YQwiRJNR0KUkZoRUEIOmHIaXf5vESwhVEeaYp0/wRi0IkkVXtfVd5xmsqWlCK/KmQbFgnpPhbZS9cQaIpVbsSM2HdWwFmyy8zCMcrwDhO2DqKs4boRkIvC4IQpnkuCDNYB/WS0jLJ5nblZjMQJTIyAuVvf+GUxJ8qz7rDrDD6dwgqI/n0O0Ua1pMAdKIFL20Jw3pHeONDZoRoKH+wZ2SV//9ZR+VRU9L4yKN65ypXkkzTnGRz43TaXPERuguPD0a0wxHUhL2HEkqJy3YGNFQfhuhnRnIdwBVJlbhwawK1Ef1WigQQ0wyN0BDCoD847PaPu/sHbGSBanGZxG24BzDLZYqsa0wSt/r2EdWiM4ztgSRGdIfpVuKwfmWLlI5Q3WXuIZ6OSpPlDiRlLl/4+RT8fG+hXAegNGrTClkAlJmUi1FBWexWfhgyFHPFMVnmlpSJIlJchWaYCCMJygvjpQiziISgGHwf6tp24ZzYdXgd2GuSVyhudPHGO9w66rAywAAlKSmNaXFPhsaoqctK7TStra65BheE+jKJrx/t8bk10RnG135S6NvbouLyH1q25ZMLTUXnEy3t7UaUoUzyMibbI9EzUaqVcSdN9kAD5yazujucdD1KIilmQtXHaXpa73gjWc5te3Jqex+P9C5efBBdF3OXD1W307KXcpudu+4K1uu1b0JLQ3ZBFXmmXPoZ9Pv8LyYVyaTQtgLAhYuQmRGd81KYQ+NxTVqUG6e0xavNKU6txBaBnkdv98XoBzQ8Tvr5dne//rTPrL+7FZDWArqj9YAK+hhQqxbPTWHxJeonLSou58SdE+uWKeJfsclXZ7bcJCZBv2CTd85suUkF13T5hI1iBdbbZVmyKryedJcKrXqXCrAn3aWCq97l6Uw7e95M8piev5pXXgaTZzeYPI/E+kxmE39er3Z/mVde5pWbZ4h7TCoeduPJTa7cOp/U48TaziYHg8Hu9PENRRJbpY4LsEePHjFpTETLCCHyqPH0ITlvcjtOf+XOQdvJqnkbpz6TUjj3xsPbRS0YnRE/tdHL6YrF62gs81ekrz0zO3dyylhe6zspxNg490s5v7LWV1SnwFugeOeuoI0kH0ejsx2Djh9NYrjeqbNhYUp6kfP7hSJXbLFAvYAQerR5F9Er58geRwJJ7ijs/RopWBKLxF6u+7rQulBhr0dmLxK5ifdwTpnGPUyc4IRtREYmemmNnJwNP9HyI2FM0oaCJ3DBnHQsa4rVN4NF8slGaIYpfz8xepHL5F9HHb5hdslpMRjM9vPNe5P315gWghrvQcabqXgzMW7GKb+l8n+59fojeDXD14ezo4Pu4fH+cffg8GjQnb6aRd1B9Obo1ezoCGd4BH7b4xHVb1/ua6jqSLwq6pXITY3qN2oMe3/A3g/ejPYPw8P9cPB6r3+8/zc060Tfz+wbTxvZ+76eVsn6fvLlT4Kz3I/RE8unzsnZELbJ3XjE+Q4jG94VOexjCLaYuiEoQ5nabAeaMP2jftJopKG/t7/X5yUOmRQzb4ud8Go4WNOWk0evEJjY9GbdWZWRNwYv8mDzG04AnDwWHKThGFarKSr6KsV6zcs/DEkOp0kAVygTnDJSY0ZvUQXWCtz9nboy0LU5kMWFcYG0VRI4op3GSRRRoVtlJ14eOftyMYIApuVryTSPWUfiTz4M/oQQgF9tuvNx4PHaCgRmc8NZPARnk//+A4t04uo= +api: eJztWVlv20YQ/ivCPLUAZcmKj4RPdZwEUdMghq3koYZgjMiRxHR5ZA/HqsD/XswuSS0tmz7gPLiwXywN59rZby5xDRoXCsJzeH+JwqBO8kzBNIC8IGm/jWMIIZKEmi4kKSO0ggAk/TCk9Ns8XkG4hijPNGWaP2JRiCSyooPvKs+YpqIlpcifCsmKdUKKv9X6wjUkmlK1zTEX1r01YLb6MofwfA0YxwlrR3HSYt1w6FVBEMIszwVhBmXQkJSWSbawlJvVQJTIyAiUv/2FMxJ/qjzrj7PC6N8hqJXks+8UaSinAehECyZdY4Zyi3njQ2aEaAl/sGdkkf//WSfVUVPS+MijeueqKEmmaUGybTidtSl+hO6KxwcjusMRNIC9hxBKiatuBLREHxbRzxzJMoBLkipx6dYO1Ib1W8USQExzNEJDCKPhaL8/POzv7rGSJarlRRJ3xT2AeS5TZFljkrjTt4+olr1xbA8kMaI7VHcCh+VrXaR0hOoudQ/xdFKprCyQlLl8wedT4PO9DWUZgNKoTWfIAqDMpNyMCspiR/lhyFDMHcdkmSMpE0WkuAvNMRFGElQXxqQIs4iEoBh8H5reduac2Ha4DOw1yUsUN7p44x1eO+q4VsABSlJSGtPingiNUVOfhbph2mgtuQcXhPoiia8e7fGpVdEbx1d+URja26Li4h9addWTM01F7xOt7O1GlKFM8ionuzPRU1GJVXknTfZABacms7JbmHQzSiIpZkA1x2l72li8ESyndjw5trOPB3qXL34Q3RRzlw/1tNNhSzljp266grIsfRVaGrIEVeSZcuVnNBzyv5hUJJNC2w4AZy5D5kb0TitmTo3HDWlRbpzQNVxtTnFsOa4B6HnMdl+MfsDA47if73T360/7zOa7WwPS2UC3pB7QQR8T1HrEc1tYfIH6SZuKqzlx78i6ZYr4Vxj56tRWRmIS9AuMvHNqKyN1uGarJxwU62C9XVUtq47Xk1qpo9VYqQP2pFbqcDVWnk610+ftJI+Z+et95WUxeXaLyfMorM9kN/H39dr6y77ysq/cvEPcY1PxYnc+vcmVW/eTZp0o7W6yNxptbx/fUCSxFeq5BHv06hGTxkR0rBAij1pPH1LzprfH6a/cOWgnWbXowtRnUgoX3np4O6sNRm/CT232crli9iYbq/oV6StPzdadHHMsr/SdEOLYOPcrPr+zNlfUlMBbQvHOXUEXSD5OJidbCh0+2sBws1Nvg8KU9DLn9wtFrlhjgXoJIQxo8y5iUO2RA84EkjxR2Ps1UjAnFom9XPd1qXURDgYij1Asc6Xd4ylLRkYmemVFj07Gn2j1kTAmaRPAYzhjJDpstdma+8Ai+WTzMsOUvx8Zvcxl8q8DDN8rO+KkOASM8dPN25L3V5gWglpvP843u/BmT9wsUf4g5f9e601F8GqOr/fnB3v9/cPdw/7e/sGoP3s1j/qj6M3Bq/nBAc7xAPxhx4OnP7TcV1E9h3i902uMm840bHUW9n6PvR+9mezuh/u74ej1zvBw929od4ehX883nrZq9n09rUv0/firHwLnuZ+ZRwvKNPaOTsZwHdKtR1zlMLJJXYPDPobAw6cKBwO05B1MGNWU2hoHmjD9o3nSGp9huLO7M2QSJ0qKmWdiK6laDjaw5ZIxKAQmtqhZd9ZVvp2Dl2+w+eUmAC4ZnEfMs17PUNFXKcqSyT8MSU6naQCXKBOccaTOOXrLOrHW4O7v2BX/vq18zC6MS6RrjYDz2EkcRREVupN36lWPky9nEwhgVr2MTPOYZST+5MPgTwgB+IWmOx8nHtPWIDBbGK7dITid/PcfB0Tfiw== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-runs.RequestSchema.json b/docs/docs/reference/api/create-runs.RequestSchema.json index 5f43cb77d9..d6919f9ca3 100644 --- a/docs/docs/reference/api/create-runs.RequestSchema.json +++ b/docs/docs/reference/api/create-runs.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRunCreate"},"type":"array","title":"Runs"}},"type":"object","required":["runs"],"title":"EvaluationRunsCreateRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRunCreate"},"type":"array","title":"Runs"}},"type":"object","required":["runs"],"title":"EvaluationRunsCreateRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-runs.StatusCodes.json b/docs/docs/reference/api/create-runs.StatusCodes.json index c33d986a40..469f9f0054 100644 --- a/docs/docs/reference/api/create-runs.StatusCodes.json +++ b/docs/docs/reference/api/create-runs.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-runs.api.mdx b/docs/docs/reference/api/create-runs.api.mdx index a8ef801613..25f1bdba63 100644 --- a/docs/docs/reference/api/create-runs.api.mdx +++ b/docs/docs/reference/api/create-runs.api.mdx @@ -5,7 +5,7 @@ description: "Create Runs" sidebar_label: "Create Runs" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-scenarios.api.mdx b/docs/docs/reference/api/create-scenarios.api.mdx index 95f7214766..5ccdda74aa 100644 --- a/docs/docs/reference/api/create-scenarios.api.mdx +++ b/docs/docs/reference/api/create-scenarios.api.mdx @@ -5,7 +5,7 @@ description: "Create Scenarios" sidebar_label: "Create Scenarios" hide_title: true hide_table_of_contents: true -api: eJztWVtv2zYU/ivGedoAOXbcXFo9LU1bNOslQZJ2wAyjoKVjmx1Fqbwk8Qz99+GQutqO4wQOsA7LSyLqnI/kx+9cqCzAsKmGcAhvb5iwzPBUahgFkGao3NNZDCFECpnBbzpCyRRPNQSg8IdFbV6n8RzCBUSpNCgN/cmyTPDIOfe+61TSmI5mmDD6K1MEbThqP14ihgvgBhO9ajMRbokLYHJ+PoFwuAAWx5zwmbhomdYWZp4hhDBOU4FMQh5UQ9ooLqduZD0MRFxFVjD1y0c2RvG7TmX3TGbW/ApBCZKOv2NkIB8FYLgRNLRkDPmKcb0GaYVoOb9zeySX//5er4utJmjYE7fa2FcxwqXBKar2xMm4PdJk6CE+3lmxmY6gEuwWTkwpNt+sgJbr4xj9REzmAdyg0twHXJuo2vRrYRJAjBNmhYEQBv3BYbd/3N0/IBBtmLEbaQ8ApU0oaWQoYz/yw6LFmPKCldIPaRtFqClXTBgXViE5KpUqGoqYjFAIjKGxjzoHXflFrG46D9xRqxsm1i5xrQ6W6DorAYhknqA2LMk2b3iSqoQRVzEz2CWnzRKvUHPHyDcerzuUCtVaHjcO6dLKzlkM+YoIfNrlCmNivwBeT2CRWE9d5m7IySuxdrmqMvBD09W5euOM2k956esD5ARbwxhl0Q3oLJXah/eg36dfMepI8cw4BcOVV8/Eis5lYUyyeVqZiVLrnZZUUu/j1Fk0oqJPofCTVKdzax6Rsr31z1ufnn+3P1mFupeQjSVqxesRNeoppJZFyveS8TdmdppyfdaJOyduWTaLn2OSLx62mCRGgc8wyRsPW0xS0jWeF0Vki3lcOdmGrNdzV2dqvnY6S8lWNUtJ2E5nKemqZtkdtMdrdFVbhPkKSNlx/etbq2ZLWM7+f7v1uHZrq0arQfSQGtpbLuP0ltbYIqXdZ0i8pXZql7R99pB5AKmIdw1+7iHzACTebQv9YER+Jqw8AMETvh50G0V+dN60bxWj2i4eGTWDRURSp1o8jDZy4OB3HUOKGvp1QKvtxArOpbsMrBF6afBHpcU1d68NfmvuAVXbnrs7wMFgsNrlf2WCx86t85by19Nb/BgN42JDoy7SqPX2MS3b6P6w/pj6Bbp+UU833b0/odZs2riM3W/qyOhc01snH+q2yLySQ9F+ReauAbNyKqfEJUXMA6mNuPHLL+ya9as6In9C91Pxxh/BJpm8v76+WAH0+mgLw3conWbSTNDMUvoamaWaMDNmZhBCD+svl73qxtajKomKarc7Y6sE2bKMuwP2jzNjMh32emj3IpHaeI9NURq2x7g3HBFGZBU3cwdycnH2AefvkbmsMRw1Da5Il15pbbPqdFjGPyDxJVlCzyfWzFLF//byoVOmJXkvIoQUf1l/ZX17x5JM4NJX02F9A61vZ/XVpdm+NL/z1L1Io9Gos1S/VanJ8YAcB6+u9w/Dw/1w8HKvf7z/J9TVFl5M2MvDydFB9/B4/7h7cHg06I5fTKLuIHp19GJydMQm7Kj8fjNJm2I+caR3Ti7OYFkFrVeUGFjk4qBk0L2GYOk461Ok/J24tAAGWfJb9abV10F/b3+vT0OkrITJxhRrdNhaYnW6FGe9TDDuMoFb0KKQ6BAaEoXmZ4UAKNJmpOdwCIvFmGn8okSe0/APi4p0NwrghinOxsSWaxhmpQIX8BfOyziXpusSBpkL6xW3lD9J+t7jJIowMxttR42Quzi/uoYAxsXX/iSNyUexW5IAu4UQgP5n4HcYLvzYAgSTU0spLwSPST//AEWqViI= +api: eJztWVlP40gQ/itRPe1KDgkZjhk/LXNp2DlAwMxKiyLUsStJz7bbnj6AbOT/vqpunySYgDLSslpewOU6ur/+6mizBMNmGsJLeHfNhGWGp1LDOIA0Q+WejmMIIVLIDF7pCCVTPNUQgMIfFrV5ncYLCJcQpdKgNPQnyzLBI2c8+K5TSTIdzTFh9FemyLXhqL289BgugRtM9KrOVLglLoHJxckUwsslsDjm5J+J05ZqrWEWGUIIkzQVyCTkQSXSRnE5c5L1biDiKrKCqV8+sQmK33Uq+8cys+ZXCEon6eQ7RgbycQCGG0GiO8qQryjXa5BWiJbxe7dHMvnv7/Wi2GqChj1xq419FRIuDc5QtQMnk7akidBDeLy3ohuOoCLsBkZMKbboZkDL9HGIfiYk8wCuUWnuE64NVK36rVAJIMYps8JACKPhaL8/POzv7pETbZixnbAHgNImVDQylLGX/LBoMaa6YKX0Im2jCDXViinjwiokQ6VSRaKIyQiFwBga+6hr0LlfxOqm88AdtbpmYu0S1/LgDlzHpQMCmSeoDUuy7g1PU5UwwipmBvtk1E3xymvuELni8bpDqbxay+PGIZ1Z2TuOIV8hgS+7XGFM6BeO1wNYFNY3rnI36OSZWJucVxX4oXB1re6MqH3IM98fICe3tRujLDqBzlKpfXqPhkP6FaOOFM+MYzCce/ZMreidFcpEm6e1mSi13ugOS+p9vHEajawYUio8k+50Ys0jSrbXfr796efv9pl1qHsB6WxRK1aP6FFPAbVsUn6WjK+Y2WrJ9VUn7h25Zdks/hlBvnq3RZAYBf6EIG+92yJICddkUTSRDeK4drIJWK8Xrs/UeG01SolWFaUEbKtRSriqKNtz7f01pqoN0nzFSTlx/etHq+ZIWEb/f9x63Li10aDVAPqSBtobLuP0htbYAqU9Z0i8oXFqm7B98S7zAFIRb9v5iXeZByDxdlPXD2bkF/KVByB4wtc73YSRn5w17VvFqDbLR0bDYJGRNKkWD+NODJz7beeQooF+naPVcWLFz5m7DKwheqnwR8XFNXevDrs194BqbM/dHWBvNFqd8r8xwWNn1ntH9evpI36MhnHRMaiLNGq9fczINr4/rT+lfoFuXtSzrrv3Z9SazRqXsftVHRi9C3rr6EPTFqlXdCjGr8jcNtysnMobwpIy5oHSRtj45Rd6zf5VHZE/ofuheOuPoIsmHy4uTlccen60ieEnlF6zaCZo5il9jcxSTT4zZuYQwgDrL5eD6sY2oC6Jinq3O2OrBOmyjLsD9o9zY7JwMBBpxMQ81ca/HpNlZBU3C2d6dHr8ERcfkLlacTluKpwTGz2/2mrVmbCMf0RCSbKEno+smaeK/+1JQ2dLC/FWBAPx/Kz+tvruliWZwDvfSi/re2d9J6svLM2hpfl1p55AGuNFXZuGrf5MhntkOHp1sbsf7u+Go5c7w8PdP6HusfBiyl7uTw/2+vuHu4f9vf2DUX/yYhr1R9GrgxfTgwM2ZQflV5tp2qTw0QylYb2j02O4e/atV1QOWOTYXyLoXkPQOEQdDgbMiXcYp6PHxBUDMMiS36o3rWkOhju7O0MSEZ8SJhsh1rCvtcTqdCm7Bplg3OW/W9CyIOYlNIgJzY8JAVB+EeFIa7mcMI1flchzEv+wqIh34wCumeJsQmi5MWFeMnAJf+GizG5p+q5MkLqwnnF3qiYR3lscRRFmplN33Ei005PzCwhgUnzjT9KYbBS7IQqwGwgB6D8Ffofh0suWIJicWSp0IXif9PMPoMJSww== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-secret.api.mdx b/docs/docs/reference/api/create-secret.api.mdx index 6421658d19..34e3d422a7 100644 --- a/docs/docs/reference/api/create-secret.api.mdx +++ b/docs/docs/reference/api/create-secret.api.mdx @@ -5,7 +5,7 @@ description: "Create Secret" sidebar_label: "Create Secret" hide_title: true hide_table_of_contents: true -api: eJztWVtv2zYU/ivGeebirNiTnpY2ARakXYI67R4Mw2CkE4sNJTIklVgN/N+HQ+ruWEncAhs2+8USL5/O5TsXSk/g+MpCNIcZxgadhQUDpdFwJ1R+nkAEsUHucGn9PDAweF+gde9VUkL0BLHKHeaOLrnWUsR+5/SbVTmN2TjFjNOVNoTrBFq6S5EnaLbHc56hx8rLy1uI5k/gSo0QgXVG5CvYsGYkL6SEzYKBE07SwJ+0d8MgQRsboUmOfaFOOxCbDavXqZtvGJMR6nV/BDU2DCr7bCl0J/KE/vvPZoB5kZHdtVEPIkGzvMMSGMSFdSpb1qPAwFrVvX3Em1Spu3aoI3Xw4QU9kczAHe/r/zbJlMacC5JJpWgQGCHZmEu6TBC1yG8Np2GJOuVSp3SzMuoeGGQiFxlf+yvrDJftlcfkuUuN0iIGBhqNlrgWrvRTTq3QpWiW/o6kMKpwXvkVEm5PZcfzhJvkqjJHrXxjnm2HYPmc1jXgBZbPepxoLwwmZBmCGJFhhs6JfGVPry9fhiJ5O+KOwHo49lYvBkKRxb8X3ok3mBgV3xGz+Aozfuct+4DG4bo1+b/e8R+8Xq93e2Hkvsngi5GE/YDG/kBK+Vpt37CagvugeHoywLUz3PZBeJIISlhcXnU0d6bAIQXHHnAWkMeSXt/0PbYzyFSC0ksmHGZ22xFWFquxAJzR/D+lYjc0vaBbjPtE+g10rlC4MbzsaPIpmKJDy2Wt/D6urw0+qS3kTU11Y2ClxvBD7L6gY8/yok8uCPqtGayhwM5gfT6R7Q7dWArM3VI8m+eaR/hFk3OfBqodbU1+YVconLRTWFugWVbZYte2c79qUiUGGyuNfcqPW75D9rC1prv346s5PmD0i55q7Ti0UE/vRqFuLZpd7lPdni1rLdRbifDzS/dfoZv6WboN4DxMt6ukjuyV8eS7t63e7jWCVa1105J249D38l2oTXcvkcwPWK1yG2z+7viY/no9NcyKOEZrbws5+Vwt9u3CXkeBQ4d86JAPHfKhQz50yIcO+dAhHzrkQ4f8f++QGQQm78oBDG6VybiDCIpCJKNxGuj+n3vdLMUtxmUsB9IP0oJv95Mld/sKFg4MyeTEh36hkx/E+xIQBng35XLc4a+BfF9Wqa1F/XHIUW98xBWPy4+1J+pY7aO+5bjX8HTrxFKfsqpD24bBb+/ebZ/LvnIpEn/qmpwZo8z+h7IEHRdypEmRKu7NvsLOIne4Ivoudqf7jyoI6Ku3HW2DPqGl/rytHbuXemNMrmmWkkuui1Dz6hzhB6gqunUHZrutI1uu3YuJj2wTxK/WdZvcxkXBQ7tNcRpcMJoPrq+vtgADP/rECHFcV3EGGbpU0dc9rSzda+5SiGAaqp2d+rcHhvp571Jf7GHKtfD+DLepc9pG0ykWR7FURXLEV5g7fsRFWLjwbyAKI1zpQU6uzi+wrFJYNF90F8yIhoFY/WWNM7gWF/78H1I2nBQuVUZ8D2whp5JIVX7cMCCCf24/VZ6teaZDtmxrQQXV0KVvs7Y1abukcJYcvpKo3yNUs83psFunfWVuML2LRH6rujQ88fabnFydb8nSm6KQ5rHraBCmgQ080zqEjruZD2hwyLPfm5nesQ2Oj349OvbtuLIu43nnEUMGDape5SUKj6mWXPgArnrEQK55ZUYLDCggUmJeNIenpxtu8YuRmw0N3xdoiC8LBg/cCH5DppkvOjV8XhvzQ0htv/i4puWyCEwZpDmibNhxEseo3ejaRSc4ri5n1/Q+oPrUTV07RGD4I8U7f4QI/Cmcdnvq+rEnkDxfFZSZIgiY9Psb6WLLgA== +api: eJztWVtP4zgU/ivVefZSFu1TnpYZkBYBC5oysw9VVZnk0HhwYmM70Azqf18dO0mTlAYoI+1qt31p4suXc/nOxckzOL6wEE1hgrFBZ2HGQGk03AmVnyUQQWyQO5xbPw8MDD4UaN0nlZQQPUOscoe5o0uutRSx3zn+blVOYzZOMeN0pQ3hOoGW7lLkCZrN8Zxn6LHy8uoOoukzuFIjRGCdEfkCVqwZyQspYTVj4ISTNPAn7V0xSNDGRmiSY1eokxbEasXqder2O8ZkhHrdH0GNFYPKPhsK3Ys8of/usxlgXmRkd23Uo0jQzO+xBAZxYZ3K5vUoMLBWtW+f8DZV6n491JI6+PCcnkhm4I539X+fZEpjzgXJpFI0CIyQbMwlXSaIWuR3htOwRJ1yqVO6WRj1AAwykYuML/2VdYbL9ZXH5LlLjdIiBgYajZa4FK70U04t0KVo5v6OpDCqcF75BRJuR2XH84Sb5LoyR618Y55Nh2D5ktY14DmWL3qcaC8MJmQZghiQYYLOiXxhT26uXocieVviDsB6OPZeLwZCkcV/FN6Jt5gYFd8Ts/gCM37vLfuIxuFybfJ/veM/e73e7vbCyF2TwVcjCfsRjf1ASvlWbV+xmoK7oHh6MsClM9x2QXiSCEpYXF63NHemwD4Fhx5wGpCHkl7X9B22M8hUgtJLJhxmdtMRVhaLoQCc0Pw/pWI7NL2gG4y7JP16Olco3BhetjS5DKZo0XJeK7+L62uDj2oLeVNT3ehZqTF8H7sr6NCzvOijc4J+bwZrKLA1WF9OZNtDN5YCczcXL+a55hF+0ejMp4Fqx7omv7IrFE7aKawt0MyrbLFt25lfNaoSg42Vxi7lhy3fInvYWtPd+/HNHO8x+lVPre3Yt1BH70ahdi2aXO1S3V4sa2uo9xLh55fuv0I39bN068F5mHZXSR3ZG+PJd28bvd1bBKta66Ylbceh7+XbUKv2XiKZH7Ba5TbY/OjwkP46PTVMijhGa+8KOfpSLfbtwk5HgX2HvO+Q9x3yvkPed8j7DnnfIe875H2H/H/vkBkEJm/LAQzulMm4gwiKQiSDcRro/p973SzFHcZlLHvS99KCb/eTOXe7ChYODMno2Id+oZMP4n0NCD2823I+7PC3QH4qq9S2Rv045KA3LnDB4/Ki9kQdq13U9xz3Gp5unFjqU1Z1aFsx+O3oaPNc9o1LkfhT1+jUGGV2P5Ql6LiQA02KVHFn9g12FrnDBdF3tj3dX6ggoK/edrANukRL/fm6dmxf6o0xuqFZSi65LkLNq3OEH6Cq6JYtmM22jmy5dK8mPrJNEL9a125yGxcFD203xUlwwWA+uLm53gAM/OgSI8RxXcUZZOhSRV/3tLJ0r7lLIYJxqHZ27N8eGOrnvUt9sYcx18L7M9ymzuloPJYq5jJV1oXpmX/vUBjhSr/1+PrsHMsqcUXTWXvBhMgX6NRd1riAa3HuT/0hUcNx4VJlxI/AEXIlCVJlxRUDovWX9QfK0yXPdMiR6wpQQTUk6Vpq3ZCse6Nwguy/iKjfHlSzzZmwXZ19PW4wvWNEfqfa5DteYO746Pj6bEOWzhQFMo9dS4MwDazlDxuNx9wPH3BBXsTMhzE45NnvzUznsAaHB78eHPomXFmX8bz1iD5verWu8hIFxVhLLnzYVp1hoNS0MqMFBhQGRBQafX6+5Ra/Grla0fBDgYb4MmPwyI3gt2Sa6axVuae1MT+HhPaLj2ZaLovAlF5yI6KGHcdxjNoNrp21QuL6anJDbwGqD9zUq0MEhj9RlPMniMCfvWm3p64fewbJ80VB+SiCgEm/vwEBn8gh sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-accounts-admin-simple-accounts-post.api.mdx b/docs/docs/reference/api/create-simple-accounts-admin-simple-accounts-post.api.mdx index c9fb11f4db..ba3f751538 100644 --- a/docs/docs/reference/api/create-simple-accounts-admin-simple-accounts-post.api.mdx +++ b/docs/docs/reference/api/create-simple-accounts-admin-simple-accounts-post.api.mdx @@ -5,7 +5,7 @@ description: "Create simple accounts" sidebar_label: "Create simple accounts" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-application.api.mdx b/docs/docs/reference/api/create-simple-application.api.mdx index f46f700a27..0e1c4a8879 100644 --- a/docs/docs/reference/api/create-simple-application.api.mdx +++ b/docs/docs/reference/api/create-simple-application.api.mdx @@ -5,7 +5,7 @@ description: "Create an application end-to-end." sidebar_label: "Create Simple Application" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztW1lz27YW/isYvDSZoSU3c5/Ul+s6ydhteuPxkhfbY0HkkYgUBFgAlKPr0X/vHAAkQa1elJm4ld4EngU4Gw4+gg/Usomhg2t6VJaCp8xyJQ29TWgGJtW8xP90QI81MAuEScJaOgIyO7DqAGTWu5E30hMZYnPokDFt+ZilNiGMZDBmlbBkyjRnEodkRhgZc23sjUxVUXBrISMaptwg832uDJBhxiwbklQVYMhYq8Ip0fBXBcb2yGXODeFO843UgGJAZpARkFbPSKm4tGSsNLmhpuSSVCVhRMJ9Z5pOLLuRFopSMAs3tEc+Kk0KpYGkSlqtBFFT0PXk3dybiaa4eq5kQioDNxLnZ6yuUltpN5HMzcKQSmagybAfqTb9Ye9GXgCQ6wtelALIh5r89k1fwxg0yBT6rOQHk4pn0DeO7KCR+rZHE6pK0E7eaUYH1M0H7jzlXaSNJrRkmhVgQaPrH6hkBdABjWjueEYTytH1f1WgZzShaGyuIaODMRMGEmrSHApGBw+UydnnsZNkZyVKMlZzOaEJHStdMEsHtKp4RudJQyErIej8NqGWW4EDUfyR04zO8Vnw768qm6GadgZWV5BQ9AlI62bQcve/GgzZh2h+pUbTWA5mgRb/dgM9nsaYg8gMKUVl6gDEGELPunhtfN/zj3uV5kNiQEBqfRbUoUTeICN8Y865QzYBadlgVHFhuRykCodR5WB6OHz7S5DWOmlIUqY1D6lValWUPvgKlYHA2BzzCUZAd6Fj4XI79k+XgJu7BWME74yUEsAwUmr3nBpy1AmhkMghGuYJCoMpExWzSm8T9aEhXC3ISF6WYLeJuQhkq4UUTLIJRstmIX8EstVC0spYVWyTceypVosQYiv/J7GOOVfqz23cJ0izZvoqg62TR5p1JrRpvt2ASLRawBggG7F06xI+1nRrlpGzrcFwjDQr2HNm7iotNrKfMEOutFjH7gvEVgkXnmyNkJzJTMDm1EApJ4FuScw8qRnV6CukNuLzu0aUoB9d6i/XW5SxVBRYlnFkYuKsWygXy3o94UhuqPQ4sloMTblOK8H0m09sBOI3o+TBqSwr+5YurifeDhaI6dLiN+0ll37xtADLnrnUaF1hhEsLE9BdxcWoOxJbaJs9PlZiszmSB8otFI9jYlqz2UardFmfZtE/0JLzJHQKj7LXkoz/Ie98obN8nqj3kYh5Qo2oJs8VdYG8OCu2GCvdvbLS/LkqrjRHDaEIPU+CQAk5sMz1bC8N6e7SpqDNC5zxJbDvyBE821VL6drI9UXzvO6rQ118dDKcBDfME6orafnmlEgoyKrAI1Y5s7nrnZDA1JvFVzZl4c/tJq3nQRWaudmPnmVozz2vO/iNLWJ8UtgX0pcX0rPWnhjrKGBv2Z1Y9tTbcp5QVdm9WXdl1s/BmJsqKcq+CLVkZc+5ryLfr4o85Vjwnrk2bslDT5HhUb6VeluA5rqDstxuFXfukR66iDuGcTJS2cyBL8OzzxeXJOBfyxjay0FI0mCQiCQ+BYS8MkAsApE1SISSEBhkiAeq8SPARxJhjy8GBOdz9JEGUyppfF69OzxchrwuqjQFY8aVIOeBmD4bXEtVJeOTcp2mbQQcO4pFRw9/HpL7HOSS3+4ZGrSSWUKGh0OibA76nhvoxQfkw3myCOuta2j2oNgeFNuDYntQDH40UMw3Wo9FxTz1PxoWW2uQjY3YEtcTOrHnGPXHRsb8S8Dsjm1ECyJQJWMWDgLOsF6Lb7IycuSMVZXZ91By5cUGJRkI+A5K3nuxQUltrtHsbncwVG2sX2fuxWZrr51qqa3VaKkNtlMttbkaLT8e4reHcvdQ7h7Kfe1Q7uvY/F8pmvs6jPsaAd3XYdl/H6b7Ovyya1g3oQHh3GEH+CXcffStVo2Q7lDBeQ26btnzl6ywUmoXZbxcBBe5zcmwNdIwIcNoSUOPDHuU14/+1FwFLEBPIGuv/olhuIFKuJyqoODq/FPvaauIINgFmNYjvPH0DZcTAQda3ZMa5iUgpyBUCTX++59375Yh3y9M8MzL+KC1QxyfifdmYBl3zXBIo0UCodLO06eUgaiX85kXISGqcTotzCQCkJqQa0/oxrAJtKm4ntQZg1zi03o/d+TxjuTOifZbJGbJqcdoy2926zsStI2ffqDr5FntIu+h9aZ4712wKcpOLi/PlgT6+CjA5grvC5fKvX8pmc3pgK58w0ITakBP62vD7hRE8SWE857/m1tbDvp9oVImcmWsf3yLnGmluZ051qOz099h5rtvOri+jQncruODp0vWGJyV/HdAE4SLy0eVzZXm/69heHdv2Z+wnFkwiM/bu8Qf/D3cFXeBm5cDiy8BwpXnLpzfDjbQfDvUAO3tUA2btyMOBW//elw7YnBAdSzTIc/tQIskR0wOFg7/G5w3+l8fOaKhBoatsdmAh7ZgYYNwtUnTLSnNsD84RmThNO5O3e2wj5bmb3sejo9i7TmrnnSkpz3xdFqRuBHv9I7zxabFJwCXYxUn+ZG7nE2Ozk6X1th5hAWTpa4+1GHoHjdrw0wwg37f3/buMY75A4Url9QCK/7bPMHsbo7u9LD3c+8QhzAlCyYjFeE7jPBScPHlUwc9bAr6/uON1/DxRihtuG/0S8G4jHAmX5OvqWeknXedhiYU9w2stUjz8DBiBq60mM9x2H+9gSU344aNRFSR/oTZqo8+sL7hTFzRdsYaYV5c3zaolRPnuY99kB24LbPlXeogcH/wHEdpCg4sWU97G+1K+LqfJnQUPgEpXEWkmt3jVsrucZ744Yu3BH4jgmMPVDA5qXDTH1AvE39/A8UVWbQ= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-environment.api.mdx b/docs/docs/reference/api/create-simple-environment.api.mdx index 2c0fec41be..4e7e10878b 100644 --- a/docs/docs/reference/api/create-simple-environment.api.mdx +++ b/docs/docs/reference/api/create-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Create Simple Environment" sidebar_label: "Create Simple Environment" hide_title: true hide_table_of_contents: true -api: eJztWdtuGzcQ/RVinhJgvXKDPi1QoI7tNG7axrAdv9iCTO2OJKbcS0iuE1XY135AP7FfUgy5F65uthUFCArrRVpyOOScOZw9FBdg+FRDdAOn2b1QeZZiZjQMA8gLVNyIPDtLIIJYITc40iItJI6ws4UACq54igYV+VlAxlOECDybkUggAJFBBJ9KVHMIQOGnUihMIJpwqTEAHc8w5RAtgGfz9xPrycwL8qSNEtkUApjkKuUGIihLkUAVtBZZKSVUwwCMMJIavGDYWQIV9dGUqM3rPJnTNN0KjCoxgDjPDMVDKygKKWIb/OCjzjNq69ZXKILGCNT05EOx0jmRFlw/pr6B0KNpyVVCy2ijGee5RJ5BF86ZZr/UZgEkOOGlNDVyVRU04/LxR4wNrEXhjV3JKmQ0emWNPEkEBc/leW+1K5lpVur5rZNFLevdQCxUXEquXvzGxyh/1Xl2cJYVpXkJy5H4GV0yhpWwt9HhygUPKRq+Y6heXHWLyAxOUfUnTsf9Fh+hh/B4U8rtcAQLEAbTxw3iSvH5VlT6Q5+G6O+EZBXUm/1ReK34+IPGVkRoHStREDS7ujrxXFQBaFlOd3V1SWNpVXyZK/2tq3CCCrN4mS8bGbWhve/1HpX+Chyu6+F7wkAk+yrItghvrlQXDZjrWPgEWl50SXlkYbzAe0GQnVC6l7gI56gOeFGwLtdskivm1Xym6vGM+BLeZrfZO5xrxhUyXhQHOs4LTJhIMDNiIlBp9gLDaRiwu7tbKBSGjYNbuLt7Gd5m11yW6BwkIjaa5RNGg838gMJh//79D2vDDFih8nuRiGzKJqWUzCgeIx8LKcw8img5jDG2cF/0WZ408judgff6o/52shci+SkMw4ARtdyvmq708DLY4md0z5XgmdmbPz+AHRxW3u8wDN1Dte79uIVFl1YMeVw6tiJpLfM6tXHTkwzDB91dONkCVUV+Feoiz7QrFq8OD+mrz9nLMo5R60kp2UVtDDurmzgv3aCld1636mNr4amSwypYFkWbSuizPHqcPHpfmifoI2f9vxZIGwHZqpBWRj1BIu0C6vetkdyJLhlx88h3fMINHhhh17N5Fle0EnZkwSqL5FtM8sG5rSdJUOI3mOTEua0naeAaz0f7U0UNWK/n9pTa4bXXWRq02lkawPY6SwNXO8v3J0CfRf2zqH8W9c+ivgqgXvoe69+181gXvyaUPU7QkJo9sO1WzhFfe6xpjxHuCPLjq1erp45rLkVis8hOlcrV7keOBA0X0qp/p+SWDWQe93qfokSH1ZL48wR07hZoZbCeegeONledsNOaT72yttnUgsGuqJdKr/2jjcybCtr88xabL56blZwcE5ZfzINHS8LGLb+26xG0SZHL0GYoTlwKtpHk7dXV+YpDx48+MZzEYY5U7LR3cZCimeV0u1Dk2l0kmBlEMHC3DAOvIusBBKBR3TeXDKWSZMkLYfPsHmfGFDoaDLAMY5mXScinmBkecuEMh+QjLpUwc+vk6PzsHc7fIk9QQXQz9A0uiZ6OcH2zNkm8EO+QYKsvPI5KM8uV+MuxqL7vmLlRhAsR/6K7gzj9winKNXcI7bHYP/6602x7HO3Oau0BoyNfPwNtsxMPnlkthnqix+VQZJPc5+mRBZIdnZ+tuO910Z7nsY2iQcV2Q7CUoi4zEACmdseDQZ7+3PYQQVvlBIfhD+EhNRFXUp55U2yj2NK5qU4d7aVBIbmwu92ubFGz7wYc+6D3L4aGAGgvzYio0Q0sFmOu8YOSVUXN7laLKJUIzcfSu9f6E+frLsPuSRBABJaU9mU0JqBvqEDNGkIu6tHHrpIe2DLSjV2pqrQT3IijOMbCbLUdevvv/P3lFQQwrq/G0jyhMYp/pvLCP9M66UKQRjuZTG0LkDybllQII3A+6fMfG2Cj4Q== +api: eJztWdtuGzcQ/RVinhJgvXKDPi1QoI7tNG7axrAdv9iCTO2OJKbcS0iuE1XY135AP7FfUgy5F65uthUFCAr7RRY5M+ScOTt7KC7A8KmG6AZOs3uh8izFzGgYBpAXqLgReXaWQASxQm5wpEVaSBxhZwsBFFzxFA0qirOAjKcIEXg2I5FAACKDCD6VqOYQgMJPpVCYQDThUmMAOp5hyiFaAM/m7yc2kpkXFEkbJbIpBDDJVcoNRFCWIoEqaC2yUkqohgEYYSQNeMmwswQqmqMlUZvXeTKnZbodGFViAHGeGcqHdlAUUsQ2+cFHnWc01u2vUASNEajpmw/FyuREWnD9nPoGQo+mJVcJbaPNZpznEnkGXTpnmv1SmwWQ4ISX0tTIVVXQ+OXjjxgbWIvCG7uTVcjIe2WPPEkEJc/leW+3K5VpdurFrYtFI+vDQCxUXEquXvzGxyh/1Xl2cJYVpXkJy5n4FV0yhpW0t9HhyiUPKRq+Y6peXvWIyAxOUfUXTsf9ER+hh/B4U8rtcAQLEAbTxzlxpfh8Kyp916ch+jshWQX1w/4ovFZi/EG+FRFax0oUBM2uoU68EFUAWpbTXUNdki/tii9zpf/oKpygwixe5stGRm0Y70e9R6W/Aofr2n1PGIhkXw3ZNuHNneqiAXMdC59Ay4uuKI9sjBd4LwiyEyr3EhfhHNUBLwrW1ZpNcsW8ns9U7c+IL+Ftdpu9w7lmXCHjRXGg47zAhIkEMyMmApVmLzCchgG7u7uFQmHYBLiFu7uX4W12zWWJLkAiYqNZPmHkbOYHlA779+9/WJtmwAqV34tEZFM2KaVkRvEY+VhIYeZRRNthjLGF+6C/5UUjf9IZeK8/mm8XeyGSn8IwDBhRy/1X05W+vAy2xBndcyV4ZvYWz09gh4CV938Yhu5Lte79uIVFl1YMeVw6tiJpLfM6tXHTkwzDB8NdONkCVUVxFeoiz7RrFq8OD+mjz9nLMo5R60kp2UVtDDurmzgvndPSO6/b9bG18FTJYRUsi6JNLfRZHj1OHr0vzRP0kbP+XwukjYBsVUgrXk+QSLuA+n1rJHeiS0bcPPIdn3CDB0bY/WxexTWthB1ZsMoi+RaLfHBh60USlPgNFjlxYetFGrjG89H+VFED1uu5PaV2eO11lQatdpUGsL2u0sDVrvL9CdBnUf8s6p9F/bOorwKot77H/nftItbNr0lljws0pGYPPHYr54ivPda0xwh3BPnx1avVU8c1lyKxVWSnSuVq9yNHgoYLadW/U3LLBjKPe7NPUaLDakn8eQI6dxu0MlhPvQNHW6tO2GnNp15b22xqwWBXNEut1/7QRuZNB21+eYvNFy/MSk2OCcsv5sGjJWHjtl/b9QjalMhVaDMUJ64E20jy9urqfCWg40efGE7iMEcqdtq7OEjRzHK6XShy7S4SzAwiGLhbhoHXkfUAAtCo7ptLhlJJsuSFsHV2X2fGFNFgIPOYy1mujZsekmdcKmHm1vXo/Owdzt8iT1BBdDP0DS6JlI5mfbO2NLwQ75DAqq85jkozy5X4y3GnvuWYOS9Cg+h+0d08nH7hlNuam4P2MOwfet0Ztj2Edie09ljRUa6PezvsJINnVkugntRxlRPZJPfZeTTFzHB2dH62Er43RU86j20WDSp2GgKvMDoaDLgdDrmgcmJqn3MwyNOf2xmiZauX4DD8ITykIWJIyjNviW3EWjot1aWjJ2hQSC7sM253tqg5dwOOc9D77UJDAPQEEZfIZrEYc40flKwqGnZ3WUSpRGg+lt5t1p84X3cFdk8yACKwpLSvoDEBfUNtadYQclF7H7v+eWCbR+e70kuJ/87jKI6xMFtth95Td/7+8goCGNcXYmmekI/in6mp8M+0T7oGJG8njmlsAZJn05LaXwQuJv39B9ZcoII= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-evaluation.RequestSchema.json b/docs/docs/reference/api/create-simple-evaluation.RequestSchema.json index 101c7cf438..105180a820 100644 --- a/docs/docs/reference/api/create-simple-evaluation.RequestSchema.json +++ b/docs/docs/reference/api/create-simple-evaluation.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"evaluation":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationCreate"}},"type":"object","required":["evaluation"],"title":"SimpleEvaluationCreateRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"evaluation":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationCreate"}},"type":"object","required":["evaluation"],"title":"SimpleEvaluationCreateRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/create-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/create-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/create-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-simple-evaluation.api.mdx b/docs/docs/reference/api/create-simple-evaluation.api.mdx index 9eacaa4167..52a6cd306e 100644 --- a/docs/docs/reference/api/create-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/create-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Create Evaluation" sidebar_label: "Create Evaluation" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWt1v2zYQ/1cMPm2AXbtpkm5+mpukSNZmzeK0L4FhnCk6ZkdLKj/SqIb+9+FIfVCWZDtpC6yr8xL7dPcj73i8L2tFNNwpMrwlZ/cgDGgehYpMuiSKmbTfLgIyJFQy0Gyq+DIWbMoKVtIlkn0yTOlXUZCQ4YrQKNQs1PgR4lhwavn6H1UUIk3RBVsCfoolLqE5U/jNg6w9mwu7xRWBMHk3J8PbdQaupoLfM/yok5iRIZlFkWCA29NcC6RcqM5b5OmSgM3BCE2GcxCKpV0UB6p3ABg5rmYIKiLFgm0QJ46rGeKTYWbrJv62TC17ALrYYQ+OqxlCxYLrbQhjy9QAsACrhcwOphXjHKwilq8FRjOlFdPbcW5yxjYgCXSH7dw4tg27oaB2wSk4W6AyV4/kdqyzkrUFjBqlo+VWoBPH1gKyMEsIt2KcW64WCDA62oowQqYaQNrNpaLZR0a1J1TGpGsTvrZhIO0Wi4RGCJJOUL4WICAIOMqBuKqEipJjbacertKSh3eW0gxDKJfUCJC/vIUZE3+qKOxdhLHRv5J1XdJJqc0aM6kpXtetFL5xypMl0/BEVT29MgoPNbtjsrrwclal+BbaZo/XRmw2R3dFuGbL3YRASkg2WqUq+jiLXqIl0y4JYcl2tFcN4y+UTdGlFZU8zvPXU6BOPYi0S+6ZVBlaFaOU+JCxeDeKHAwOjnqDl73nh3ZbsO4s1cSpNGiz0Vm6hIVmifVBzMLAUWyawvwhTRg6kjKUMoVRag5cGIkJiknpAheFkDIhWEAmTVd77DbReLExlyRTpVm8tsvMierbnUdyCWgJY3jgOUTpS233pU1xmsfORRYAbazD3WXGTNALXKXSsvgO3ojZMOmMraYo6JLaT6F6lsBL5b3C8acwwKjUtzRCUSb8FCYoKp3SAJLFDHRzdGpMXGuQ15l82sWmhBopWUiTTeFwBpoupop/ac4Huyz6CiE6Y4TAZA0PU8m0bMvIuyBewkPnOsOwVtEymQZMQNIIWc/fDYbRMumcWoidq69T0HDimbEhXG+AGtvGsQREtK+EOLEtaaMC2JJyiY3Qrd9YTraBXbtWlqRp6oNoaZglqDgKsxbgYDDAf5W8T8YuC86N6FxnzKT71I6YRib0G7HcV0olTiyHl/0HZdioFSL7lnrfUu9b6n1L/QO11O+MfkRP7bj/1011q0E2dtU1qUe01U8x6n+7r3aT7GAKenPbW9SyAWjW09zup30VV0AEnZE1lomD77HIewebLRIwwb7DIqcONlskN9csmfJgx3Wy6n+7sV4lnYvAt9c3XSW3VrFKbrBvukpurmKVbwft8LxB0FPcPx8S7adBP1I7vJ8G7adB+2nQfhq0nwbtCPGV4sW4JrWzn8ODg/p05wMIHrhreYbJ7OmjnYBp4MKOWfKbW2UQEa08fUzXMVm/5l6zFNHcWGSp7jb9tnTJlII7Vl7bdlZrjM4NPsXyx/4Qh+x5FZP/Mkf1gwdTO5ITtOWD3jrQQ9u47Wd8frFTHJE7oXZTnLoj2OQj5zc3VzVA5x9Vx3DlbOfMfytmyfQiwjdn4kghaAx6QYak796g6ZdTOtXHgolJLPPsCRspkBFibo/XfV1oHQ/7fRFREItIafd4gpLUSK4TKzq6unjDknMGAZNkeDvxGcboi867qmzFiUDM3zC0kWvcyMjoRST5l1wljrounBQaAb38unz55+wBUDVSe5mnmDUWM0U7pKgMCUtKPvMrKdkIz2PJRnIlJZuwZYTKxMyjleMvn5iNstb4ssGUR/VnTB45nxZ5pGz241HcKCcf7mSjlXLuUDTL5eWqelhBLpoB/4fesrLPK/hqeV7WzLfkxRx+O5ofH/aOXj5/2Ts8Oj7ozV7Mae+A/n78Yn58DHM4tjeqWnHuLthQre0uXKtydhct6oNBLcH7iXywloYHazl04C44D+eRH8RGdyzU0BldXdTOpvIIEwJQG//yW2Qfk653kdWw3wdLfgYcrz9b2nRANIPlH8WTSvNHBs+ePxsgCQNKNlvMlmiKP2uDk+yKY4DtxwK4TQF2R6ssNN0SF5qI/xMC9mtoXAw5yLJazUCx91KkKZKtb2Gg6ZJ7kBxmaKtbTECLPAatyD8syaN7qHs2TSC7MC7mrGVNDHlOYkQpi/VG3okXZ6/ejW9Il8yy1xCXUYAyEj5j+oDPZEgIvtTotBquHG1FBIR3BhPdkDhM/PsX2qwVlQ== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-evaluator.api.mdx b/docs/docs/reference/api/create-simple-evaluator.api.mdx index 7138a77039..e2a4faf2d7 100644 --- a/docs/docs/reference/api/create-simple-evaluator.api.mdx +++ b/docs/docs/reference/api/create-simple-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Create an evaluator via the simple surface." sidebar_label: "Create Simple Evaluator" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-query.api.mdx b/docs/docs/reference/api/create-simple-query.api.mdx index 6dd7b693e2..cf69c057d7 100644 --- a/docs/docs/reference/api/create-simple-query.api.mdx +++ b/docs/docs/reference/api/create-simple-query.api.mdx @@ -5,7 +5,7 @@ description: "Create Simple Query" sidebar_label: "Create Simple Query" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-queue.RequestSchema.json b/docs/docs/reference/api/create-simple-queue.RequestSchema.json index b6fb53fd22..658f5a2923 100644 --- a/docs/docs/reference/api/create-simple-queue.RequestSchema.json +++ b/docs/docs/reference/api/create-simple-queue.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queue":{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]}},"type":"object","title":"SimpleQueueCreate"}},"type":"object","required":["queue"],"title":"SimpleQueueCreateRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queue":{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["queries","testsets","traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]}},"type":"object","title":"SimpleQueueCreate"}},"type":"object","required":["queue"],"title":"SimpleQueueCreateRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-simple-queue.StatusCodes.json b/docs/docs/reference/api/create-simple-queue.StatusCodes.json index 961d14870c..d5cb121cd9 100644 --- a/docs/docs/reference/api/create-simple-queue.StatusCodes.json +++ b/docs/docs/reference/api/create-simple-queue.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"SimpleQueue"},{"type":"null"}]}},"type":"object","title":"SimpleQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["queries","testsets","traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"SimpleQueue"},{"type":"null"}]}},"type":"object","title":"SimpleQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/create-simple-queue.api.mdx b/docs/docs/reference/api/create-simple-queue.api.mdx index e55e77d893..8ae66da63c 100644 --- a/docs/docs/reference/api/create-simple-queue.api.mdx +++ b/docs/docs/reference/api/create-simple-queue.api.mdx @@ -5,7 +5,7 @@ description: "Create Simple Queue" sidebar_label: "Create Simple Queue" hide_title: true hide_table_of_contents: true -api: eJztWVlv20YQ/ivCPLUAZSlO4rR8qhI7qJu2diynL4JgrMihtMlyyeyRRBH434vZJUVSl2XVBpzCfrG0nGvn/EZcgGFTDeEIzr4wYZnhmdQwDiDLUblv5zGEEClkBm80T3OBN58tWoQAFH62qM3rLJ5DuIAokwaloY8szwWPHH/vo84knelohimjT7ki6Yajpm9e2tpxIpxhC2ByfpFAOFoAi2NOIpm4bJHWFGaeI4QwyTKBTEIRLI+0UVxO3clmMRBxFVnB1E9/sgmKP3Qmu+cyt+ZnCCoh2eQjRgaKcQCGG0FHK8RQrBHXNkgrRIv5rbsjsfz/73pdXjVFww68auNe5QmXBqeo2orTSfuk6aHb/PHWit3uCBbADab7MTGl2Hx3BrRY7+bRv8iTRQCSpbinv9Zk/E28RQAx6kjxnFxzqKjThogiAG2YsTvjGABKm1LvyVHG/sQ1g5h6i5XSH2kbRag1BJAwLqyizoNKZYqOIiYjFAJjaFhSt7KhN2LdbLoyW03EdgP6xGW8n/lGsQjJGoPaREyjblozdE3zPV3sHYncaMxni2ot7ctEW1ecZCplBkKwlseNpLk9396XegpvrEbz8DqvK0VFAOhDQ8G7L7Xb2se2aEVWmyyFAGY2ZRICYNZkQEEo4z+novAzaIvyPYrzrL5oQZMyR7bq6l09bEXaVclfBMC05lOZotwauYN9uX9IBw0jqNbRGC5XR1i7nCbMRLMbzb9v7lX7eOE1iegMSUQRlAKzJNFo/qPICy+kWIvwxioeVrfdUMn7SThlrnMfyP3GgbGN1hIi4wpjynOPqzY3Ii/iyuM3KIqiyWqURXeg80xqH73jfp/+tcYEDH1nTqzoXJXE1JIPg4FRZj3TSvRq+984CppVCbPCQNgvgho9bsu7x4AjL6y5A7jy1D8uknz42/5gWHKrQ3aCyTWuO6DJQ5z6uOGk30DjG7a516/PuJgZ7Bru7NmuxTfCuDNwzrJ5/BBKPnixpZIYBT6AklMvtlRSuWsyv+G3oNhVVHC7s17PO+dx01/3qqXy1lJL5bB71VK5a6nl/kR7eY97/2lM0aX2p53oaSd62omedqLHtRO5Vlg2/t3Ba6SGla6r37IhlYI396XDb7LchQq3WL04Pl5fnf5hgseuRXfOqJcfvjfFaBgXrRxvE4gsaj29CxQerxZAA8Fn3kCHw/V0U3hqZKk1m2JdTdtJnTM61/SUZrL7UZTIq9Fa/UoamW8NMWvReEO+/LY5e5sZQL7x5pd0jVyoQ+QjtN0Vpz4Eu9Lj9+vryzWBPj/aieExVsenU+d9+aYlRTPL6EVMnmkSmzMzgxB6/oVMz6EG3SOwgOoL0iAZLcAqQTQs5y62/uvMmFyHvR7ao0hkNj5iU5SGHTHuCcckI7KKm7kTMrg8f4fz35HFqCAcjZsEQ0pJn2RtsmVgWM7fIbnKLxUwsGaWKf7dZw4FmEzyXOQLSvar+q3S2TdG92u9Jar2+XrXrRfB5fZSJ1bbu8vjCp01oFeFfTzGqQHMEoaM4HnCfnmZnLzovnz17FX3xcuT4+7keRJ1j6NfT54nJycsYScuhZYwYn+eJgrYn2s5RPsrU3B/Ec1B1RxI/dVx0vf5ymWSNWty4BKoM7g8X3N36xH1Nxa5cq6ywT2GYCU164wkhJK67gYGWfrb8gkVI+W5V9M/enbUpyOqDsIvtYrN5bSynpbJSh2jlwvGXU9zNi3KShuBr7QKoVNekO9mVI7hCBaLCdP4QYmioGNKGSqfcQBfmOJsQo4aUTOdVYW0gE84rzqVNF3X8ohcWF84KxOAKthzDKIIc7OTdtzoGJcXw2sIYFK+pE2zmHgU+0qtkH2FEIDe9voXv+HCny1AMDm11LRD8DLp7194O0r1 +api: eJztWVlv20YQ/ivCPLUAFSlO4rR8qhM7qJu2diynL4JgjMiRtAm5ZPZIogj878XskiKpy7JqA0lhv1ga7hw7xzcz4gIMTjWEQzj7jIlFIzKpYRRAlpNy385jCCFShIZutEjzhG4+WbIEASj6ZEmbV1k8h3ABUSYNScMfMc8TETn+3gedSabpaEYp8qdcsXQjSPM3L22NPEmcYQtAOb+YQDhcAMaxYJGYXLaO1ifMPCcIYZxlCaGEIliStFFCTh1lsxiIhIpsguqnP3FMyR86k91zmVvzMwSVkGz8gSIDxSgAI0zCpJXDUKwdrm2QNklazG/cHZnl/3/X6/KqKRk88KqNe5UUIQ1NSbUVp+M2pemh2/zxxia73REsQBhK92NCpXC+OwNarHfz6F/sySIAiSnt6a81GX8zbxFATDpSImfXHCrqtCGiCEAbNHZnHAMgaVPGnpxk7CkODGLGFiulJ2kbRaQ1BDBBkVjFyENKZYpJEcqIkoRiaFhSQ9nAG7FuNl8ZVxOxDUAfhYz3M/+TJcVMARjSRpNxHxVGS1qEmnTTxIFD0nd827esZ6OFldyWEWX2rVszyVSKBkKwVsSNTLo9Cd+VeorGBR5a53WlqAiAfLw4oveldhumbAthZLXJUghgZlOUEABakwEHoUyKOVeKb0xblO9RsWf1RQtunznhqqt3AduKtKuSvwgAtRZTmZLcGrmDfbl/SE8aRjAAkDFCrva1do2N0USzGy2+bQawfbzwikV0BiyiCEqB2WSiyfxHkRdeSLEW4Y1VPKhuu6GS95Nwig7OD+R+7Sa0jdbymCYUxSVUWdoCRF7ElR/qoCiKJqtRlhxB55nUPnpH/T7/a/UOGHi4ntikc1UeZpw+bDaMMuuZVqJX2//aneAGNkGbGAj7RVCPlNvy7nsYLi+sucPE5U//uOPlw9/2Bxswtzpk54S5xnWHEfMQp37fM6ZfS+Mb3Iz16z0uRkNdI5w927V4IIw7J85ZNo8fQsl7L7ZUElNCD6Dk1IstlVTuGs9vxC2j7epUcLuzXs0753HTX/eqpfLWUkvlsHvVUrlrqeX+RHt53/dS1OiiS+2Pi9LjovS4KD0uSj/AouTwsewGu4PXSA0rHdTfsjaVgjfj0uE3WS5Ihdu2nh8dre9T/2AiYofbnTMG+MOXqZgMiqSV4+0DSRa1nt5lPh6tFkBjrM+8gW4419NN4anHTa1xSnU1bT/qnNG55qfcqN3Pp3y86rfV76mR+doQsxaN1+zLr5uzt5kB7BtvfnmukQt1iHyEtrvi1IdgV3r8fn19uSbQ50c7Mfzg1fHp1HlXvpNJycwyfmWTZ5rF5mhmEELPv7rpuVFC93iCIPWZuJEMF2BVwmcwFy62/uvMmDzs9ZIswmSWaeMfj5gzskqYuWM9uTx/S/PfCWNSEA5HzQMDTkSfWu1jy3BgLt4SO8jvF3BizSxT4pvPFw4rG+K52AOc4lf1W6ezr8i3ar1Fqlb7eu2td8LlIlOnU9unS3I1qDWmsGoM8uNOY5ZZTh9DeDbBX15Mjp93X7x8+rL7/MXxUXf8bBJ1j6Jfj59Njo9xgscuc5bTw/48zea/P9eyd/ZXmt/+Ipr9qdmH+qtdpO/TVMhJ1izFkylJg52Ty/M1f7ceMaxh5Kq4Sgf3GIJGRuqw10NHfoKC85hSB2pgCNPflk+4Bjm9vZr+k6dP+kziouCxpVaxuYpWVtUyWxkoenmCwkGZs2lRFtgQfIFV0zrnBfuOC4efLhZj1PReJUXBZE4Zrp9RAJ9RCRyzo4aMobOqkhbwkeYVQEnTdUjHxxPrK2cF+LlwPcdJFFFudp4dNYDi8mJwDQGMy7e4aRYzj8IvjID4BUIAfh3s3wyHC09bQIJyahmrQ/Ay+e9fSaVWzA== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-testset-from-file.api.mdx b/docs/docs/reference/api/create-simple-testset-from-file.api.mdx index dff167d414..1c8fc13335 100644 --- a/docs/docs/reference/api/create-simple-testset-from-file.api.mdx +++ b/docs/docs/reference/api/create-simple-testset-from-file.api.mdx @@ -5,7 +5,7 @@ description: "Create Simple Testset From File" sidebar_label: "Create Simple Testset From File" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zYQ/isYnNoZWnIyPelUJ64nbpraEyu52BoZIlYiEhBggIUSRaP/3lmAlChKfiRWLh2fRIHLbxffPrBcLjmKmeeDaz4Ejx7Q81HGbQVOoLLmXPIBzx0IhLFXZaVhjEluPHW2HE+VBp5xB18CeHxl5YIPljy3BsEgXZZBo6qEw/7UuvJIChS07PMCynhVOVKGCjz9i3iDJcdFBXzAPTplZjxrEN+BVGKY7omq0iqPVvZtjoBHHh2IkmccFRIMPyO0VRZRxwlyFxpMKGn/uZ/zjH/y1hADbQgWNWZcwlQEjcSInxNuQ4XXYUbQwiwupnxw3VWyytYrJmjNVy0FNe3sijBamEaU8FTMfwmjhSnB505VRNlToU9bUC0NKZieBj0kjBZmCSlmnoL5jjBWBJoE7eQT5FhHrnIgKQJi8LUepnAePxT8K0LdoKALEBd8ZY1PQf3y+Jh+ttjnVyHPwftp0Ox9LbyJ87jdVnzHqLwnbXIb0kP19pRBmIFrpcLrKJF1jHjB1JQJVu+KfRWeOcDgDMiMHTOLBbivykOvHf3HG99su6WTynonFrYE9jij47WziNC1+VKLHAqrJTg2ta4x/kjDHDSLWns35sYMC+VZaSVopjxTkVdljdB6waCscMEmAdlnqJAJzwSTIIlukIzMYt4yLAQObswRg2/KozIz5mAKDkwOnqFlt1HZgF1UCfi6bffoljkohTJsLrSSGRNGEpZHF3IMDmSyleXCsAkwISVIVoADpgzDAtg0kBj7qrCwAdnEgfhMRmABN4YxH5yzwUhaOh1e+N6eRCCOd7wgpFTJ4Msth+3k18RaDcK0cVsptx+G58rlQQv32z9iAvpvb83RRcAq4O+86/B2onal+U543JvmdcnYLRWP3uxuMWmSaEtxOdleaXP0ECNnQT9ASLbkCqF85FPCObG4l5fOsz9GaqqZGX/KSdScQAc4eTonTqrLcizwPsCMU9tBMlwKhCNU0Z67tbxOsOwkkhUq+SuUfEiwtRIJGn6BktMEWytp6Josxko+Uk8ISj6KrFcLdi7bfB1US8PWWktD2EG1NHSttTylqWuaucOZV+9cdOvb9plLZ2EuPIyV7FS5uqw8bMLji8uwVsbO5bpfo/93ad41lTqpw1HU9Hq1+w6KfbXGfa47z3Xnl9adQ9eMPX34/7ADTO8Kz/3uc7/75H5395B9JvWnST0Vdwxeul3ET7Ue/kFoD/ge5sora5Ip+96RXS1xwLLeKK2L+lw4JcwhO5KPCTHi38PBVZxb1UzsBdyergwL2IyDFBZMoWda0BJraGLrTo+V4GYgabpi2S0lTm997zaOPOIkY/3g+Smzht22+L7tPd789ZxsFYduf7x8uTtW+0jDljg0Y385Z93Pz9QkoFCaru7oYLXNt+7+SDUYdaO9dTLYZGCs7362r2ffVCzvxayVOneLRjLSIJt6DEOJTOJNq2DqzM7xWwtmxx+victv+OAolbhJ5tdyW5HbuCh56G4qTpML7guQN8Ph5Q5gio/twEg9I0sBxZp3hTNnS3aWPmKUgIWl7x2V9aSiEljwAe+n0W+/zgrfD5W2QnJ6xXBzcD66PDhNsqJS0d/pb4FY+UG/D6GXaxtkT8zAoOgJlQRHhJEHp3ARQU4uz9/C4g0ICY4PrkdtgSsK0xR422JrZ4lKvQWiLw1s+EnAwjr1PUUTOZ1MSk+tYhBMbTsGTqJx7OTyfGfmunWL8knkMXwaTfE2zzrb3uyWPrOUMZs4gij/XN+JtRGcT2qOey96x7REHiiFaal42H2dEVNNCkVrv9JCxXyK9i1rz17z5Fm+HmfTsLn27ijjBYXB4JovlxPh4YPTqxUtfwngyF2juqpPiLxrSuiicdySf4ZFky0Gj+rvR3OhA9m075sYBU166CTPocKW+E7RorBYB+vlxdWQZ3xSf3qjgTcfxHMk4mabSzJytfoP//CdwQ== +api: eJztWUtz2zYQ/isYnNoZSnIyPelUJ64nbpraEyu52BoZIlYiEhBggIUSRaP/3lmAlKmHLSdSLh2fRIGLb5ffPrBcLjiKqef9Gz4Ajx7Q82HGbQVOoLLmQvI+zx0IhJFXZaVhhEluNHG2HE2UBp5xB18CeHxl5Zz3Fzy3BsEgXZZBo6qEw97EurIjBQpa9nkBZbyqHClDBZ7+Rbz+guO8At7nHp0yU541iO9AKjFI90RVaZVHK3s2R8CORwei5BlHhQTDzwltmUXUUYLchgYTSnr+3M94xj95a4iBNgSLGjMuYSKCRmLEzwi3ocLrMCVoYeaXE96/2VSyzFYrJmjNly0FNe3smjBamEaUcCjmv4TRwpTgc6cqouxQ6LMWVEtDCqbDoAeE0cIsIcXMIZjvCGNJoEnQjj9BjnXkKgeSIiAGX2szhfNoX/AvCfUeBV2AuOAra3wK6pcnJ/Szxj6/DnkO3k+CZu9r4fs4j4/biu8YlY+kTW5D2lQ/njIIU3CtVHgdJbINI14wNWGC1U/FvgrPHGBwBmTGTpjFAtxX5aHbjv6Te9+su2UjlfVWLKwJ7HDGhtfOI8KmzVda5FBYLcGxiXWN8R0NM9Asau3emlszKJRnpZWgmfJMRV6VNULrOYOywjkbB2SfoUImPBNMgiS6QTIyi3nLsBDYvzUdBt+UR2WmzMEEHJgcPEPL7qKyPrusEvBN2+7hHXNQCmXYTGglMyaMJCyPLuQYHMhkK8uFYWNgQkqQrAAHTBmGBbBJIDH2VWFhA7KxA/GZjMACbg1jPjhng5G0dDa49N0diUAcb3lBSKmSwVdrDtvKr7G1GoRp47ZSbjcMz5XLgxbut3/EGPTf3prOZcAq4O980+HtRN2U5lvh8Wia1yVju1Q8+WG3i0mTRGuKy/H6SpujfYycB72HkGzBFUL5xF3COTF/lJeNvT9GaqqZGT/kJGpOoCOcPBsnTqrLciTwMcCMU9tBMlwKhA6qaM/DWl4nWHYayQqV/BVKPiTYWokEDb9AyVmCrZU0dI3nIyWfqCcEJZ9E1qs5u5Btvo6qpWFrpaUh7KhaGrpWWg5p6ppm7njm1U8uNuvb+plLZ2EuPIyU3KhydVnZb8LTi8ugVsYu5Kpfo/8Pad42lTqp41HU9Hq1+46Kfb3Cfa47z3Xnl9adY9eMHX34/7ADTO8Kz/3uc797cL+7fcg+k/rTpJ6JBwYvm13ET7Uefi+0B3wPM+WVNcmUXe/IrpY4YllvlNZFfSacEuaYHcnHhBjxH+HgOs6taiZ2Aq5PVwYF3I+DFBZMoWda0BJraGKrTo+V4KYgabpi2R0lTnd17y6OPOIkY7Xx4oxZw+5afN91n27+ak62jEO3P16+3B6rfaRhSxyasb+cs+7nZ2oSUChNVw90sNrma3d/pBoMN6O9dTLYZGCs7366q2e/r1jei2krdR4WjWSkQTb1GIYSmcSbVsHUmZ3jtxbMlj9eE5ffcO8olbhJ5tdya5HbuCh56GEqzpILHguQN4PB1RZgio/1wEg9I0sBxZp3hXNnS3aePmKUgIWl7x2V9aSiEljwPu+l0W+vzgrfC5W2QnJ6xXAzcD66PDhNsqJS0d/pb4FY9Xs9bXOhC+sx3R7Szjw4hfO49fTq4i3M34CQ4Hj/ZtgWuKbgTOG2LrZykajUWyDS0piGnwYsrFPfUwyRq8mQtGsZXT+xbc+fTsGgYKdXF1uT1rVblEUij0HTaIq3edZ6WN/v9URc7grVo48rZcwhjiDKP1d3YkUE55Oak+6L7gktEe+lMC0V+522MViqSaEY7VVaqJhF0b5F7c8bnvzJV0NsGjHXPh1mnPxEUovFWHj44PRySctfAjhy17Cu5WMi74bSuGgct+CfYd7kiMFO/dVoJnQgm3Z9CaNQSZtO8xwqbIlvlSoKi1WIXl1eD3jGx/UHNxpz8348PSJudn9JRi6X/wHd1ppi sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-testset.api.mdx b/docs/docs/reference/api/create-simple-testset.api.mdx index ef47f50c96..39455b26f0 100644 --- a/docs/docs/reference/api/create-simple-testset.api.mdx +++ b/docs/docs/reference/api/create-simple-testset.api.mdx @@ -5,7 +5,7 @@ description: "Create Simple Testset" sidebar_label: "Create Simple Testset" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-trace.api.mdx b/docs/docs/reference/api/create-simple-trace.api.mdx index b7dfb17933..f78db3427e 100644 --- a/docs/docs/reference/api/create-simple-trace.api.mdx +++ b/docs/docs/reference/api/create-simple-trace.api.mdx @@ -5,7 +5,7 @@ description: "Create a single-span 'simple' trace." sidebar_label: "Create Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-simple-workflow.api.mdx b/docs/docs/reference/api/create-simple-workflow.api.mdx index a0c3a0bc38..48ffcd7119 100644 --- a/docs/docs/reference/api/create-simple-workflow.api.mdx +++ b/docs/docs/reference/api/create-simple-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Create Simple Workflow" sidebar_label: "Create Simple Workflow" hide_title: true hide_table_of_contents: true -api: eJztWktv2zgQ/ivCnHYBxU6LPfm0adIi2bbbII/2EBgpLY1tthSlklRar6H/vhiSkig/U9cFml33UED0PMiP5HDmy8zBsImGwR18yNXnsci/ahjGkBeomOG5vEhhAIlCZvBe86wQeP/VC0IMBVMsQ4OKLMxBsgxhALXAPU8hBi5hAF9KVDOIQeGXkitMYTBmQmMMOplixmAwByZn78bWjJkVZEYbxeUEYhjnKmMGBlCWPIUqbiRkKQRUwxgMN4IG6jVEFylU9AP5Q21e5OmMfLTujSoxhiSXBqWx7otC8MSuuf9J55LG2skVihAxHDV9NQgM5pCiThQvSA8GcG0hOqoFIodcVLCZyFnai07tt47MFCOmDB+zxMQRi1Ics1KY6IEpziQNyTRiMuKSG85EpPCBa57TQJRLjBImRI82oDOvsbB7GWLZFeD6PlgnjXgkR3kukEloobzQ0UkgGoOfot+5KiZj+MBEyUyutpl62QiuNqQlLwo028xce7HVRjIm2YQ2d7ORt15stZGk1CbPttk4dVKrTQixVf+NWKc8zfPP27TPSWbN9PMUt06eZNZBaJLpdgBJaLWBMWI6YsnWJbyq5dYsY8q2HoZTklmhPmX6vlRio/o509GtEuvU3ZXeauHaia0xMmUyFbj5apCVcy+3ZKaKa8V89AkTE+i5OFOHu1f23i8HRjKwFBFYmnK60kxcdmLDUvytZxvY9SGZRlabgYSrpBRM/faGjVD8pXN5dCGL0vwOi4sJ4/aCMCytfFPQv3GLhwwN23Gpwbr8CJcGJ6i6jrNRdyREaBser0qxGY54Dtxg9jglphSbbUSlq/p9iL4lJKvYv+ePwmvJxt+kW8Xd93E3U2eBiSoGLcrJrqauSZdmxRbPSvehLBXf1cWt4uTBR6DdLAiyMEWW2szqR490d2kPqPQPbMZ7r76njeDpvnI/m/Ktj5hXOEaFMkEfFx99Gc79NlQxqFIavvlKxICyzCifLmZmahMnEtD1S/GJPTD/Mdzk9cq7Ipibx2gnoJ12VafaG/PDMJ8/BNIfD6SXLZ501snAAdm9IHvhsKxiyEtzgHVfsL7zYG6KpGT72seSlTnnIYr8vCjy6JrgjNkcbml7Hm3AURUrPbY0yl3LhQw3G7pyTAxUFVlUqItcarf/z4+PVzApZZKg1uNSRFdeGHYmbJK8lGE5Vx+ndsqnVmIhXYWPzz5GX6coIxY58itqmB2uI4WmVBLTOPp47OUkkTO2iMa0F1Z0x1XcoY3WvcAHCudA4RwonAOF82tROC4teCyH46T/0yTOWkA2pg1LWt+RN+wC6q/N47i/jaT3bGNtG1AAKTN45Kvi9V5cupFGJxasskh/hpNbZ9Y7SVHgT3By5sx6JzVco9n9/kiTGqwXM/snsxavvXqp0Wq81IDt1UsNV+Pl1+OnDsTjgXg8EI9PnXh8Go//E+Uenwa4T5F+fBrI/v8YyKexL3slIWPwjU57TP/eO4s+96sbpvbo4Kruwdry4HchWGmyyzI2XWt1R1j0lZtpxA1RjDoXD5jWjWG2L6xpBstQTYhnfPxsGirV0bB/PH++zLy+Z4KnljKMXipl+b4dadcUDeM2G/XneFFA5Enn1++5h0Ey5Y5+QEXknvIkQkFPAvqm2fa2RNaaTbC9C+tFLRjRDf1aP6hWPHwSbKFmvgVmljbklLD8ZrYS64SNm76X65z1eovcDq2H4sxtwaYTcn5zc7lk0J2P7sFwxWLkTlT0oW0DzdBMc2oULXJtbFuomcIA+o4z79e8t+5DDBrVQ90vaksV6LOC2x12n1NjCj3o97HsJSIv0x6boDSsx7gTHJKNpFTczKyRk8uL1zhzyTIM7oahgH0k3FHrijXbwwr+Ggkw37t6Uppprvg/NWVuu1ddQWRBpCN/1TaVvvzGaImLTaENi7/I1vuu1y7v3g42HHo71DDi7VDNb7cjlq5uPx0BHShYRjm0aSnidqClfAMly9/674aQDb7r8iAYavjSmkT13GVL7DVsVHu/uoesGXZFXiDmK2dbIbfD7tA0n23tGpZNbU1UTzrw01YnnbQhTJo7eV61mGC4u8LlOA/jwYk9ttHJ5cXSGjs/UWxliQ0l9Rm0Pzdrqy9Eew+o2MtsZAWDLPuz+YUCQVNmw3HvWe+YhuhaZkwGLtZe5QWaz98SClj9QjAuA4bB3fI7cLcc2r9vaYiBotWUosHgDubzEdN4q0RV0bDrBaerm3LNRiI43J9xttQ/TveE5mBvvn0GR4Tv3bBhKqwtp3rqHqojG6Vb3aVHi8KN0zhJErQF8nrZYRDhLt9d30AMI99QntmbBYoRdvT/AIC650nbHik7NgfB5KSkd2YAzib9+xeCLFiw +api: eJztWktv2zgQ/ivCnHYBJU6LPfm0adIi2bbbII/2EAQpLY0tthSlklRar6H/vhiSkig/U9cFml3nEEDUPMSPnOHMZ87AsImG4S18KNTnsSi+ariLoShRMcMLeZ7CEBKFzOC95nkp8P6rF4QYSqZYjgYVWZiBZDnCEBqBe55CDFzCEL5UqKYQg8IvFVeYwnDMhMYYdJJhzmA4Ayan78bWjJmWZEYbxeUEYhgXKmcGhlBVPIU6biVkJQTUdzEYbgQNNHOIzlOo6QX5Q21eFOmUfHTujaowhqSQBqWx7stS8MTOefBJF5LGuo8rFSFiOGp6ahEYziBFnShekh4M4cpCdNAIRA65qGRTUbD0MDqxzzoyGUZMGT5miYkjFqU4ZpUw0QNTnEkakmnEZMQlN5yJSOED17yggaiQGCVMiENagN53jYVdyxDLvgDX98E8acQjOSoKgUxCB+W5jo4D0Rj8J/qVq2Myhg9MVMwUapOpl63gckNa8rJEs8nMlRdbbiRnkk1ocdcbeevFlhtJKm2KfJONEye13IQQG/XfiFXKWVF83qR9RjIrPr9IcePHk8wqCE2SbQaQhJYbGCOmI5ZsnMKrRm7FNDK2cTOckMwS9Yzp+0qJtepnTEc3SqxSdyG90cKVE1thJGMyFbg+NMjKmZdbMFPHjWIx+oSJCfRcnmnS3Ssb94uJkQwsZASWppxCmomLXm5YyL/N1wZ2fUqmkeVmIOEqqQRTv71hIxR/6UIenMuyMr/D/GTCvD0nDAszX5f0r93kIUfDtpxqMC8/wqXBCaq+43zUHwkR2oTHq0qshyOeATeYP06JKcWma1Hpq34fom8JyTr25/mj8Fqw8Tfp1nH/fNzO1Glgoo5Bi2qyrakr0qWvYvN7pX9QVopv6+JGcfLgM9B2FgRZyJCltrL60S3dn9oDKv0Di/Heq+9oIXi6q9rPlnyrM+YljlGhTNDnxUcHw5lfhjoGVUnD14dEDCirnOrpcmoyWziRgG5Oik/sgfmHu3VeL70rgrk9jLYC2mnXTam9tj4M6/l9Iv3xRHrR4Ul7nQzskd0JsucOyzqGojJ7WHcF6zsP5rpMSravfC5ZWnPus8jPyyKP7glOma3hFpbn0QYcVbHUY0ej3HZcyN16Q5eOiYG6JosKdVlI7db/+dHREialShLUelyJ6NILw9aETVJUMmznmu3UffKJlZgrV+Hjs4/R1wxlxCJHfkUts8N1pNBUSmIaRx+PvJwkcsY20Zgehh3dUR33aKNVJ/CewtlTOHsKZ0/h/FoUjisLHsvhOOn/NImzEpC1ZcOC1nfUDduA+mvzOO63kfSere1tAwogZQYPfFe82osrN9Lo2IJVlenPcHLjzHonKQr8CU5OnVnvpIFrNL3fHWnSgPVian8y6/DaqZcGrdZLA9hOvTRwtV5+PX5qTzzuicc98fjUicencfg/Ue7xaYD7FOnHp4Hs/4+BfBrrslMSMgZ/0WmH5d97Z9HXfs2FqR06uGzuYG048PsQLDXZZxnbW2vNjbDoKzdZxA1RjLoQD5g2F8PsvbD2MliOakI84+O/pqVSHQ37x/Pni8zreyZ4ainD6KVSlu/bknZN0TBuq1G/j+cFRJH03n5PHAbFlNv6ARVReMqTCAU9Ceibdtm7FllrNsEuFlaLWjCia3rbHKhWPDwSbKNmvgVmFhbkhLD8ZjYS64SN+3wv19vrzRK5FVoNxalbgnU75Oz6+mLBoNsf/Y3hmsXI7ajoQ3cNNEeTFXRRtCy0sddCTQZDGDjOfNDw3noAMWhUD819UduqwICV3K6we8yMKYeDgSgSJrJCG/f6jjSTSnEztarHF+evcepKZBje3oUC9mhwG6wv1i4KK/lrJJj8jdXjymSF4v80RLm9s+raIAsdbfTL7irpy2+MJjZ/FbTl7uc5en/Xtc+2d4Mtc94NtTx4N9Sw2t2IJam7R0c7BwqWRw5tWmK4G+iI3kDJsrb+uaVhg+emKQiGWpa0oU49Y9nReS0H1UVVf2u1w661C8R8v2z74m7YbZX2setYw2ap64Sajw78dD1Jr1gIS+VedVfPlxUuQrgcF2EWOJ6gNCw6vjhfmGPvFWVUltgE0uxB+7qdG4WBHg4GzA4fMk7Bg7nNp2CQ5X+2byj82+Yajg6fHR7REAVjzmTgYmUAz5F7PkooTQ1KwbgMeAUX27fgYhu6X7U0xEA5imKWBGazEdN4o0Rd07C7AU6hm3LNRiLY3J9xunBrnOKEvsFGvj38RoTv7V3LT1hbTvXEHU8HNjd3ugtHFSUZp3GcJGjb4tWyd0Feu3h3dQ0xjPw18txGFihG2NH/IQDdmSdtu6Xs2AwEk5OKTpchOJv09y9ilVVR sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-testset.api.mdx b/docs/docs/reference/api/create-testset.api.mdx index 206399e628..94ba1408b6 100644 --- a/docs/docs/reference/api/create-testset.api.mdx +++ b/docs/docs/reference/api/create-testset.api.mdx @@ -5,7 +5,7 @@ description: "Create an empty testset artifact." sidebar_label: "Create Testset" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-tool-connection.api.mdx b/docs/docs/reference/api/create-tool-connection.api.mdx index 8bd76345e1..334f78fe3d 100644 --- a/docs/docs/reference/api/create-tool-connection.api.mdx +++ b/docs/docs/reference/api/create-tool-connection.api.mdx @@ -5,7 +5,7 @@ description: "Create a new tool connection." sidebar_label: "Create Connection" hide_title: true hide_table_of_contents: true -api: eJztWEtvGzcQ/ivCnFpgLblGT3uqIieI6qY2bLkXQRCo3ZHEhLvc8GFbFfa/F0Ou9hnLsmIXdVBfrCVnviFnPs4MuQXDVhrCKUykFBpmAcSoI8Uzw2UKIYwUMoM91kvxvmekFL1IpilGNN2HAGSGitHHOIYQIic9J7l5JQcBKPxqUZt3Mt5AuIVIpgZTQz9ZlgkeOYjBZ002t6CjNSaMfmWKDBiOulDbQXbmlsJtZAss3VwuIZxugcUxJ2EmrhqilYTZZAghLKQUyFLIg3JIG8XTlRv5NgxEXEVWMPXTH2yB4nct05NxmlnzMwQ7ELn4jJGBfBaA4UbQUEsY8o5wtYbUCtFQ/uD2SCo//l4nxVYTNOzIrdb2VYzw1OAKVdNwsmiO1D30lD8+WLHfHcEWuMHkMCWmFNvsZ0BD9Xke/USezANIWYIH+quD8Sfp5q0kcRzUeQ0iD0ALuzoW6oZ084Aywh2PUc2/oEszTYQAMLUJ5bpIJpnUXEIAbIWpYVAnnpQUbAd0wdOYgB1vfJ57DHunPq5Eexe4cc5ibQq30hoTYsGiL3OrxLEuGBUYvVslyCazZj13eXRvrCufSNIgh2TcbbHlkaE16xsP111G3uFhU3lU5m1fTs6ZY+IhMFQ4uMKYltgIbzcos/1G4Sn4WnV5AuraVzPICbKCMMqiG9CZTLWP7dnpKf1rFtUbG0Wo9dKK3nUhDMHxRdF6pVaOq3HDSdChXTIrDISnedCqpY9R879QVS+teUap8dJvt66+/m7fWGV91CF7S2tH6xm19Rin7oqr74DjOTP70+5SqoRkqDjgieHfzKu1I+xhe0O3LJvFr2Hk1sMWRmIU+ApGzj1sYWTnrsVmzuMD7VjL44Oc9W7TG8d1f72olZ23Sis7h72olZ27Sis/bvf2ck7znnoz3eD/affotFt0kqANM1bv62QUxlxhZL6nyb4uMHyTfXDTe+MX9+81vN/Vopcdae7a21/PzroN7F9M8Niz+r1SUh3fvcZoGHcBKUjVFhAyasw+51DM8hYPay2U9At0jZBe7TvDn1BrtsKKmI+LOmf0JjTr8gTxmcTLbFAQPDIPNZhOQEbkywfz5I2FfOOXX8jVGFGFyEfocVec+xDsY8jHyeSqA+j5kaBZS3r7y6QmlYyZNYQwoDdAPahuGXoAAWhUd6i0C587hzBgGXex859rYzIdDgZo+5GQNu77jNxn3AvOCCOyipuNAxlejS9w8xFZjArC6awu4K+rjjRNsdLxLOMX7mT5ogp0yZWK/82KV0tOXF97Ldorkfm6esl8/8CSTGD3ZXJ3a6puFFW7XZbwij3Ns1UO+5pafTfrWb1sdQpSDbuoNs03hmq+8U5QPAK4uPJ0KevcHbpA9IZX486KG1OUB1jkaL/zqi+qQSvEVWSpFicuC4BBlvxWzhBpiS/ezGn/l/6pK+xSm4SlNRPFK/Wo/uTcanLK/PTkk3ZBDjqBg0ww7nJEUTU8u6fg2A31WzR90flb0zEIp7DdLpjGWyXynIa/WlRE2VkAd0xxtiCnTilBrXfk3YKP3civ9MSlERIX1pO1lVXp1HiNYRRhZvbKzmon9eryZgIBLIrH+ETGpKPYPaUXdg8huId9vysqnTS2BcHSlaVEGILHpL9/ADB/XI4= +api: eJztWEtv4zYQ/ivGnFpAidOgJ53qdXaxbrpNkEcvgWGMpYnNXUrU8pHENfTfiyFlS7I2juNNimbRXGKR8yC/+Tgz5BIszgzEN3CllDQwjiAlk2hRWKFyiGGoCS31sJfTfc8qJXuJynNKePoQIlAFaeSPUQoxJF56wnKTWg4i0PTVkbHvVLqAeAmJyi3lln9iUUiReBP9z4Z9LsEkc8qQfxWaHVhBplJbmezM3Uq/kSVgvji7hfhmCZimgoVRnrdEawm7KAhimColCXMoo/WQsVrkMz/ybTOQCJ04ifqnP3BK8nej8oNRXjj7M0QrI2r6mRIL5TgCK6zkoQ1hKDvC9RpyJ2VL+YPfI6v8+Hu9qraakcU9t9rYVzUicksz0m3H2bQ90kToKTw+OLkdjmgJwlK2mxJqjYvtDGipPg/RT4xkGUGOGe2IV8fGn6xbbiSJ/UydNEyUERjpZvuaumTdMuKMcCdS0pMv5NNM20IElLuMc12iskIZoSACnFFuEZrEU4qD7Q2dijxlw543Ic89ZnulPqpFe6e08GDhJoU30hpKOcXky8RpuS8Ew8pG71pL9onOzic+j26NdY2JYg0GpBB+ixuIDJydXwZz3WWUHR62lYfrvB3KyQl6Ju5ihguH0JTyElvh7QZlvN0pPGW+UV2eMHURqhmUbLI2YbUjP2AKlZsQ2+OjI/7XLqqXLknImFsnexeVMET7F0UXlDZyXIMbXoIP7S06aSE+KqONWvoYNf8LVfXM2WeUmiD9duvq6+/2jVXWRwHZWlo7Ws+orfuAuiquoQNOJ2i3p91bpTOW4eJAB1Z8M682jnAw2xv4ZbkifQ0n18Fs5SQlSa/g5CSYrZys4JouJiLd0Y9zIt0JrHeL3iht4vWiXlZorb2sAHtRLyu41l5+3O7t5UALSL2ZbvD/tLt32q06STAWrTPbOhlNqdCU2O9psi8qG6HJ3rnpvQyL+/ca3u9q0dcdaenb21+Pj7sN7F8oRRpY/V5rpffvXlOyKHxAKlJtCkiVtGafcyjG5QYPGy2UCgv0jZCZbTvDn8gYnFFNzMdFPRi9K571eYL5zOLrbFARPLEPDTOdgAwZywf75I2FsQnLr+QajKhDFCL0OBQnIQTbGPLx6uq8YzDwIyM7V/z2VyjDKgXaOcTQ5zdA069vGaYPERjSd6SND58/h9DHQvjYhc+5tUXc70uVoJwrY8P0mDUTp4VdeNXB+eiUFh8JU9IQ34ybAuGS6qnSFlvDjYU49ecplFLgq63S4m+s3ioFM3wetHiHTOGL+v3y/QNmhaTue+TqrlTfI+ome124a860T9R6OFTS+rtdxZrFqlOGGrarGtN+WajnW68D1dXfR1Pkt6rJ2IEviL3B+aiz4tYUn35MPNlXqIZSGjUCa+J+P1TYQxRMB8r82QdLmP22nmGqMkuCm6PDXw6PfDlXxmaYN1xUb9PD5kPzRmuzzkpPPmRX5OBz1y8kCp8ZqloROH0DntPQvDvzF5865ipLLJdTNHStZVny8FdHmik7juAOtcApg3rDaWm+Iu8SQuyGYaUHPnmwuHSBrBu5lM9K0BgkCRV2q+y4cT7Pzy6vIIJp9QSfqZR1NN5zUsF7iME/54ddccHksSVIzGeO018MwSb//QO2zlkv sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-trace-tracing.api.mdx b/docs/docs/reference/api/create-trace-tracing.api.mdx index 5f00d34eb3..fc3909862a 100644 --- a/docs/docs/reference/api/create-trace-tracing.api.mdx +++ b/docs/docs/reference/api/create-trace-tracing.api.mdx @@ -5,7 +5,7 @@ description: "Create a trace from one or more spans." sidebar_label: "Create Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztXFtvG7kV/isE+1AbkCzHue2qLVCvrUW8ydqGLOehlmFRM0carjnkLMmxoxoC+tQfUPQX7i8pDjkzoi6WZefSJJg8JPEMec7hufHMR/rcUcvGhrYv6CFkGiJmIaaXDRqDiTTPLFeStumBBmaBMGI1i4CMtEqJkkCUJqnSQEzGpNnpy77sJdwQbohNgBguxwKafk6kcmlBZ0xbYhUZnJ6c9UgL33E5bjkCLS7HYOxgpy/3owgyW5BhKZDBSQ9Ez4/uwu85jiNDFU/IFnCbgCYDR2NARoJZIrixfak0GTjuZkAkGAsxsRpgmwxzSzT8nnMNhjAh/AJQLpMwjQv1sveln3/F44FbXhdsrqUhg73dPeKFhHhAbrlNnKyCy2tDRkp7yT3VhFkCuHiI+xKf+3USYzWwdIecAZCLYm3kj3/9l+ybiYzIreYW+jJSEmWwl1stDSPQICNosYw3xzmPodTgnxjOabo5zXJKc293b9vJ/asylkRMCNCGmETlIiaZI7fWEmRLqr6cs6MGYzWP0DG20f7FdMPTTHhpwLQGZCsBkYF2qmB9qSQ0kTLJ2EQoFm/v0AZVGWiGhI5i2qaR87Err+9CGtqg2hv7JxVPaPuO4tJAWvwvyzLBI0eg9ZtBP72jJkogZfi/TCN5y8G457gqN0lOTka0fXFHuYXULI/0YsRXzM4Pt5MMaJvi4p1cI6VTHENjZqFpeQp02qiGyVwIOr1sUMutgCqCYrJv6bRB8yz+HEzOPdmCSQwCPgOTQ0+2YFKqazi54vGGfPKcxxsp66cJOYpDfX1SLqW2Ki6lwj4pl1JdFZcyoSCDRbLlpJ4LNT8eXfeB4WcYWX50xjRI+4D86+Q9dQTmZPVD16kDZJ7iHsLljfIRSRuUSals+UMur6W6lfRyYZE9pLQsT7nuzVmzMaaFBo0SxpHhrdLXI6FuUU3MXOM/SgmckA4hjv3k33PQE9qgQqQ4VWEOKwSOEmZd+tFMXq9eAKr9AfmvuXzAk0r5z073j6/eHh0fXp0fn512Do5+Puoc0kbw/Oi41+ke77+be3jW6b7vdOceHbw76hz35h6ddk8Ozw8Wx50cn53/2umGS8JdFpf1FuW+f1mSpWvNss7BnLMeM5dlqLFM2yuXcz4iR3FpYQx6PVvkRHp+JgUZfxGuHRlXPI1lNjdXkYo3dOmz3n7v/Ozq4OSwg07RcTYNnp28XXjQ6XZPls3p2B4g19UG9WKlYAwbP92qjgr5taAybVBmrebD3MLCvsvimGOMMXE6t/FuwHWlxtPh/JOhUgKYdI9W86IR11EumN76ORfiF6Nk80hmud3GJOGJqOFvEFlHo6gTNpjEtGaTtVqan+oy7BK/++buz/Q5xbxUlIKbVTU3oA33JdJTrPu+mI7uIvLxk50E504b9NPtrn6bql3t87na0sT57NIt/TDg8LBw3Zn3ThvUfTRt5MZBLfTkrWe5CnsKqbBCq93v/+Z+77i8fpTnvXO+Nm3QhJlkw+RZp6vvxl/eMJM8yl/eeDfBkvEDoj1Lm2httKcZrVOpE3V7A9JuFozlp8d938LllwVW68ayNPskJX6Y+SvCdSh/6VAuMNsYv46cI4R2Xvju6aBPPSrWO94LH2JclQ4zbGahxngU1zMHTS4i7j+XKDZRowJeJ+cGiEV8/TYBSSYqJ0xoYPGEJOwGQesK+iZMxsRDQa0o4SImGoSDYkzCM0MQ44YPmQZjICY3nBFgUeL4/NmQQQUiDXaqWmlDB38Qdn04Mj6axMyLnW6PVQzbdJWTh68XDHb5KLf1Ngzg0Bo9rtHjGj2u0eMaPV6xrBo9rtHjGj2u0eMaPf7uXa1Gj1eSqtHjr8L9avS49pcaPf4WjVajx7VXfK/osUMkQ73WkGgNidaQaA2J1pBoDYnWkGgNidbVYg2J1pDot+pqNSS6klQNiX4V7ldDorW/1JDot2i0GhKtveJ7h0Q/BSK5JqG5ET0N8Dgd9/z92MUrvMezjhPVJV5yDROIyXBCZo0lyB///o97S9ACDd9Mwt3a1SBJLmPQ/nquVDHg9dyy0QUHEe8Q13EjZTZKoOiXkbAM+zRgp4qC16oWDw6qKVpXDEYqys3f+t4UfYr3fh9I/PO9OJYWf+RbXChNHJ+y74PrB3GSgeyBgBSsnjSNnYiwg0jnA4usmPj+IqNqtWEvj6KBxRBIptUNjyH2l6OLsX3puk4E16G35u5CY3lcXHsOrjpv/4XkSKNgUhIJ+oaQrVXWs3gZezgJLVgary8TJsfY1UONRvfbcBuNCMTeKm87dz+7LzFv6QgpABsKcHe60b5eoSDjTHFpC0N70wcaQh8YTvoyhhHLhXWqDRuNrG8nsl31MBnlQpAqK/clrtBkWKuX8rjOI2VPk7L1CDrQNAxzq3NwD0ympPHJe293D/+Z95yzPIrAmFEuSLcY7KDEJ/X9cF1ngt2t3AsCaNyNWIpdt0HMwtb1cLkFbA1TNH3xV+zzoeAmQf9QZEVnlwOVZq6fzJhxaawbIhdI4z1+gwixVSQGC5HFm/uWM0FGjItcg9lx8jk70vZu/YH3ZXf5k9w+YZtfmvWIfd7P/dq+8RZj5F3x2ymDrdI1GqRwt+0ByRjXs05IVdQ4n28QLonJhyk3iIIRpWPQD285TowgJ8yLU77w3alcNvbRyJV02W/gksGAaBgJiKwhibolKZOTIhBdeJsq+wjctLRZjPS+XB3qRyMfybgqiys9LsjibANAPHvyV3I8aPSlUWnZHwqjHDUD+gZ00/AYyA0TPHYZzk13kkllSYawoduPtqIEouu+9LOIUGOv7Bgs48Jsf+6uUsjMN7NyG4SBlEnLI4MO4Xai+QZZZdp328K0QV/srcj872er7mit9NPTvteCgxpWp0Whorm3j0kwl4uhEwRKeVg3bdDUjNd9VgXAfnkmd99QpwxSHIxR7j4CcHiJgZRfBZH9EJBZCqED1OUH+2A5jrrx4hfjQty6MpG30P2qOPQmWBfTb3q90yWC3j/iWTM6Vzk0aAo2UdgnLFOu3MyYTWibVkVt0XkMvyFcSBhnzVwLHMQy7kzpf0yszdqtllARE4ky1r++xJlRrrmduKn7p0dvYfIGWAyati8uwwFn6Hfek+aHVdpnGX8LqA//eU33c5sozf9ZHt9ydPjEz8IFo0d3Z63OOh8YHp0Gtz0u5luTYe30orn7urn3Y+/Zy/bLZ+29H3Z2Xz/7B52/DLFuXHifYd24hSsJ9PmI/fBy9OpF8+XrZ6+bL16+2msOn4+i5l7046vno1ev2Ii9okt3DDadtnBpYNNps/JkFkBV8TN7FBznB4EWnMrPH7kHZ+bVgXhwDn3vIXNwqBuIE5zNrtP37Cx13ai508+VR5uLB5EzSebqr4XDr4vgcCuQ3Z1SzX5+jGnmuWEcFfXrxd0qE62y5DKJEm6+uPtIWUIYMkDOLkpkLMzHFQK2zjCLLFwlVf4K7dRl8JEKE/g+OhYj+6dHS0XN3CvcDFlkZ6Bd8RpjrUpspt1qOU9lO4y33PUMtxVSCyz9e/UGM/fMzLs7z3Z23W0XZWzKZMCiaP3pqvdF8YJ2jHWL0LpF6GdoEVqkXqxbWpnAi0jTwtnvigrAw4dB5sAPFSxZcGfH13d3Q2bgXIvpFB/7G0rti8sGvWGaI7LidvdGuRtj5F/DpCyYpG26yguHi9xv7QuFKFYWfoY399qxl0Epg3qhDTosepumPpVrhnes8O82dV1S3e/t4wD37I4KJse5z+ieJv75H7dWCC8= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-trace.api.mdx b/docs/docs/reference/api/create-trace.api.mdx index 4a37a4b289..1f420f84d2 100644 --- a/docs/docs/reference/api/create-trace.api.mdx +++ b/docs/docs/reference/api/create-trace.api.mdx @@ -5,7 +5,7 @@ description: "Create a single trace from the canonical `Trace` shape." sidebar_label: "Create Trace" hide_title: true hide_table_of_contents: true -api: eJztW19z4jgS/yoq3UtSZUg2d088HZswNVxmSQrIvCRUUKwGayNLXkkewlJU3Ye4T3ifZKslGwwkkGQze7dbnochlvufun9qt9vSgjo2tbR1S4eGxWDpKKIcbGxE5oRWtEXPDTAHhBEr1FQCcUhHJkanxCVAYqa0EjGTZOwljIlNWAbNO3Wn2nEMmbNEq5LtaOx/7wUfk0zmljCiwDrgZGwzpuyYOANwTJjid8qAy42yXo0Bm0sn1JSsJTTJMAGSsbnUjBNhiVAOjGJSzu+U0iZlUvwKHIe1F2JZCkSoKVhHMpGBFAoIs3dqfH01GJITlCzU9MSbchIIx34m/cKU8dnpGQnTgtIAZucqJjMjHJBYKxTiCMsyKcCS//77P8QC3KnbYRDuR9prljtV8oyOTgxMwICK4YRlojHNBYfSqL95NQ3P0yhZGmenZ8fewBsLxCXCklkCisx1TmZMOeI00RkYDKBWZJboMoDoLPTJnZLCuoaPGV+FsPBpk3zShkwkcw2kKlwntCLakBTjkUm4U2uBGOiYSRmR3AKpeBVW7iRHmcwNk8dNGtFgm9Cqy2mLxh5p956eRtTALzlY96Pmc9pa+EthgNOWMzlEFH0AyuEt7+zYCzr52SJqF9TGCaQM/8oMqnECLF4F6cik5lcT2rrdJvDB3yRgnAsUzuT1BukHiqCxMHEumTkaIHNPczim0YIKB6lF3zx3m7p5BrRFmTFsTpej5WpEP/wMsaPLaFGOqFxKuhxF1AknccALosuocDu/Z27T5ILROiPUlEZ0givK0RblzEHDiRT2yg95g5M2mkHzjH8PJTdBbKGEg4TvoOQiiC2UlO56mN8L/ko9eS74q5z145x0edVfH6ql9NZKS+mwD9VSumulpUzYfvltiS2ZfOIp6HH5HCBH8BbUGTOg3AH799l77QVs2BpI97kDVJ7ishXqmw6Zh0aUKaVdeZGrR6Vnio62JjlESbv2lPN+vWo2xfQX0ThhAhXOtHmcSD1DNzH7iD9aS2RIH4DzwPxLDmZOIypliqw6zSQUBscJcz7tGqYen58Auv2A/Y9CHUBSaf/gut27v+z2Lu5veoPrznn3U7dzQaPKeLc37PR77S8bg4NO/2unvzF0/qXb6Q03hq77Vxc359t0V73BzU+dfnVKV0OQOK1LtPvlaSmW7g3LoUxLesxnGWodM+7e55zfkaOw0pmC2a8WNZFh4KSg+B+itaP4Sqd1zOX2Ptb8lZAeDNvDm8H9+dVFB0HR8TGtjF1dbg10+v2r3XB6teeo9fmABrNSsJZN3x9VL4X8VEhZRpQ5Z8RD7raLg8Plw4tan/V4+rA58qC1BKb80PO61uXDp1zKf1mtGl2V5a5SQ1Qqhp2a40WmovDY46VNVvqmCqW99ucS81JRG2/5rrB2uwb7BsaKUAq+J7pfC3aEi8yn7wYJ8i4j+nFP1/CYqqH2/aC2w7iZXfolDisaDhvXX6N3GVEp1OPrYFyphd796Nmtwt4jqlqh1fD7n8Hvi1CPb0LeF4+1ZUQTZpNXJs86Xf1l8PKZ2eRNePkcYIIl4xP2uXYeonXQ3he0zsqd6NtvoNzrFmP56vHSu3D5ZoHVunUszT6kxK9m/pXgein/0Ut53fW8DUCoxnnrvaeDmHrTWu8EFB5SvCod1r2Z7UZir3zb2lPH1C3RuiVat0TrlmjdEq1bonVLtG6J1tVi3RKtewx/BqjVLdFnRdUt0f8L+NUt0RovdUv0zxi0uiVao+Kv3hL9mI7kx5Uqe5KjJ3pWzOaW8PbmXnADsTacHJU2hp3dxb5u3/g9DjulK5u/09w6kjIXJ35ndsZcQjJmWAoODO5VBi4cAcUzLZSzzcN298N2YbptbDfs99YmiCy3i0+0We9p39nEjvqW/g3LZlrZsG7PTs/wZ1P8II9jsHaSS9IviOm7NyfHOg9MW2mg0hX1FNtzHP8wJmJCWNXDM2ZJ2EEPPCLj0zHRLgEzExaaXsCE5dLR1ulHomvbsL+fNeKEGZLAE7m56V4QwUE5MZnjTngMfECQS5jzBhed5DJawF8R+C5fOT4E7R9nz8TpK5OC+yiQjjHavD9IHBwT0teEzz+dpI437r4l34+2E0alai27qsuIpna67/lX6cCUzdOXSL0zSNHBpMJnayQvi9UyfcfuqSJmJxLn6MsndzBvom+C+QVdtcGwClGI0MuuuAgh2AeNz8Ph9Y7AgI8UXKLxwEGmfb7A5ENbtDyogCkdDDZLfMxyI/Emy4QPWLhMnMts6+QE8mYsdc6bvvPMmkwEwhHKiHMj3NwLaV93L2H+GRgHQ1u3oyrBAHEWkLNJtvI2y8Ql4PxD3UPbuUu0Eb+WfXWBAE8CF04QEdxfn57oPDHsadPq6Yfye9zG4l8B0yNhoqtAaPsJkvZ1d2eRb9zCRcVit67SitvYPd9w3dpjvh/vlxR1wNJ/ru4gAlZNK3ra/KF56j9vaOtSpioqijNKw+LkyIZ5i/U6r88y1WeZvttZpmKtYhY8ySR+f1oWkF8UGaaoGi2NKKa9BLNP65YuFg/Mwo2RyyUOh89RrdtRRL8xI9gDLr9bfC4kZfpY0EeYl0lXuYbP3kgu85Auth5mmLcCRwj3XtpRJUHipGlEH4ojWKn/akENww9q+H+L+kNcyO3zlx9bUMnUNPffEWiQif9+Aw3BWd4= +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-user-admin-simple-accounts-users-post.api.mdx b/docs/docs/reference/api/create-user-admin-simple-accounts-users-post.api.mdx index 12d40303a0..d4ea280740 100644 --- a/docs/docs/reference/api/create-user-admin-simple-accounts-users-post.api.mdx +++ b/docs/docs/reference/api/create-user-admin-simple-accounts-users-post.api.mdx @@ -5,7 +5,7 @@ description: "Create users" sidebar_label: "Create users" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-user-identity-admin-simple-accounts-users-identities-post.api.mdx b/docs/docs/reference/api/create-user-identity-admin-simple-accounts-users-identities-post.api.mdx index e7df5c6b55..b4d7c3c4f2 100644 --- a/docs/docs/reference/api/create-user-identity-admin-simple-accounts-users-identities-post.api.mdx +++ b/docs/docs/reference/api/create-user-identity-admin-simple-accounts-users-identities-post.api.mdx @@ -5,7 +5,7 @@ description: "Create user identities" sidebar_label: "Create user identities" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWt9v4zYS/lcIPvUAbby3uCc/nW8ToME2jeFstg9pYDDS2GZDkSpJJXEN/++HIakflmzZkZ1DcE0fto40HFEz3zcz4syKWjY3dHhHR0nKJb2PqMpAM8uVvEzokMYamIVpbkBPeQLScrucMpSdGp5mAqYsjlUurXEyphDiYKbTTBlLI6rhzxyM/Y9KlnS4orGSFqTFnyzLBI/d0wZ/GCXxmokXkDL8lWncC6rCv1SGYu4nk8vrGR3eNUUSvZzqXG6K2GUGdEgflBLAJF1H5SWZC0HX9xG13Aq8cK6XZJJLGtEEZiwXlg5nTBhYR5QnkGbKgoyX00dYbn2EsZrLeecTLis15Bss6ToqLFzZrff2vzpN5LLSVKlnGcd9H618lHHcuFOtweZaHq964vRsqDYAyTQ4ob/iG4CEnBdaal61Ogf3AiyAro8vJ371eh0VIurhD4gR8YWII9XIE8Qb8DqguK14HVHHMg2zNvjDxX7bnFEH4P6YdR4R+byvhhtcu44opIyLvkou3OIua1+46ITvi642sebO2HRIx0osU6WzBY+JhhlokDEQu2CWxEySTHFpiVWEkRCrPgkVM0EeYRkRJn+X8MKN5XJOMtCGGwsJuTyPCCPGsgcBBK0TEaUJk8S9JWFJosGYs9/lxQuLrVgSJYHMOIiEpLmx5AGIAXtGC78X0bXt/DosdoW+D4D8HwNkS6hIwS6U89imgaqXvfIS6JncG6JD+CaIrCOaqJTx3kHx3K8+kS8jmjFjnpXujc1xsX4d0SfQfMZhu65D8smPQgFuTKsnnoAuSqPeGwx6yK0BTTyVYsF42kh7LEk4gpWJcY34mMiaeO/M4l7zNpIgsLlG69wV6Kqgc9/IabjZUGcsfWLbq7OMYs1419R94+rKkDUNPslUJU35sHVde5nPTaak8RHxy+fPribc4PlNHsdgzCwXZBKEadS3Ii0qX/zNLXiPtUO3l93qvqY472S0B0feLXTLkw327ZIrGYZblCyFvgC+LdavI3qMnl+DDm7890Vvll4a4j9mvDKtlD1G1wTXl4V0MmXbtR3whh67CRk5fXmWHKnv1msI+lKwLGGWvUXYuCp07yM5x6CRu389ArcFjgkwh9FdadpRvl6ur9aNIqkg4CtI1b+wqQX4naSrYvffJTEby2xutm0dZJ4iFgJhaEQFl4/uRwYy4XI+jZWccZ26MItZ5pFnmROYMS4gqaPmxj+nhoZS8alT+vtm+CHp1RHvVcn7EC7WTxSarFR6ziT/i1VnMydLdEUy2SVVJIxTfHioZ3l8KXeNSjbquHcNqPeUMpyvmzi9rmFrH06vN3DYROmz0o8mY/Hr08Y7gmjtDfeko7oxPqDYB4ptczfB+VsBqX3I/K3CXhOWmVYo/LcFZUnLPUtLE4Z13EwrQ/Yu7MPB8Ac7TsCOhi+bZBl7oO+jyrjgQ1eVMU0hfQBtFjw7MXGOA/PrPhO0Ep0kneD9d4/MQxDThkpVqjordKX9q9LXrykAyFUNIjtrgbcDUt+49gGh7RDasOde/JRWPRw8lSO6kBPS9dvhpnhAt2yIkh+Y6cRMzZZ7ERMsejheChd0ocXkD+XJ80Fn+U3EZILJThwIV+NQFlv+tP3Y9ZBKaOSX7zOq203rqL72jttt1llEblgI32TrJMH/5pQv0zDjL928cxInOuZ+e67DS8Y1mCM4d+E1BA6fOiZoeFKPR+mbeA1B3xMTeW+3/HCLy6EWSKZKxv1JNQlayDVq2cstj6wdQatJulHGv8GybF+9inLVjM2BUyuO1a1uOehPoflFwpax6uKS2AWQWS4EmWuWLUjRkCM/ZSLXTBB/6EhSlpl/nNW2zrRmy/oWitZaLareYd8btFa6ESB29N5ilXTmuq94331cGcPmnaJXQQRP4cEyLt6kOXseVO+Di3uxat+toGx1HttcQ3KBxmpZuZPx3ryHosNUKHQd2X99+dLuuf5ggie+Lvcb6t1w9bbvaLcKFW/cPSAScGlhDtpPVexA4y/Kb9ChxcwPRIoX6ejAojHId7yLZxoyy30nqEhL7gLGXVtPSy1/fEVbvuyvitA2fvtBbjP6BRdth0wTo50A+fn793FLocfHJjDCSCHGOcLrLYaih0bDAGnG7IIO6cD1hQd+7nRQdN8Hrsc+qBQMsPUB+sl13u9WNNfCLc6487v/c2FtNhwM3BTPQhnrb9/jyjjXbgzrbkVH48tvsPwZWALaBaCawA2C1MNuU6x0FXOBujg0GdJRbhdKh29Uii7HjfhVaB2E/6Salb14YfiidHP2tZxx9dGlNZda4WzLYKlf0xoJ9Zdb45z+cmMUs5D1k5MVoTam1Nz/qp1gyVL95c8da/1C349sqqrPw51Qd4mtak3Rha0uFa3WnYrqg0nVtaob6a3UnhGqeaeY8XHE4HKm6uQfzUFaRkbjy1by3biFgZT5DnIBMncby4cS52Y4GDB3+YzxQe1lLLD03+Wd0E81/jGfz/559tkVqsrY1H+JhEfs5O3GRksaYHQaZCJ0n922VoHSd9SPekTUk5pG1VBNFIZnHMarZ2DYQsLi4tXqgRm41WK9xst/5qCRt/dYC2qOc3ehalgUDF5RT5KvPgF9ctG3LB3byQgDhl8ximPIbKfsfQ1d4+ub7zSiD2HmPXW1CNXsGaMye6ZDikdjFa3dtRUVTM5zV4xQrxP/+y9H0lmv sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-webhook-delivery.api.mdx b/docs/docs/reference/api/create-webhook-delivery.api.mdx index f76a7c6876..cbe2903d8c 100644 --- a/docs/docs/reference/api/create-webhook-delivery.api.mdx +++ b/docs/docs/reference/api/create-webhook-delivery.api.mdx @@ -5,7 +5,7 @@ description: "Create Delivery" sidebar_label: "Create Delivery" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-webhook-subscription.api.mdx b/docs/docs/reference/api/create-webhook-subscription.api.mdx index 517e1bca58..a67d28c664 100644 --- a/docs/docs/reference/api/create-webhook-subscription.api.mdx +++ b/docs/docs/reference/api/create-webhook-subscription.api.mdx @@ -5,7 +5,7 @@ description: "Create Subscription" sidebar_label: "Create Subscription" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-workflow.api.mdx b/docs/docs/reference/api/create-workflow.api.mdx index 80721a5742..e8d27c646c 100644 --- a/docs/docs/reference/api/create-workflow.api.mdx +++ b/docs/docs/reference/api/create-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Create a workflow artifact." sidebar_label: "Create Workflow" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-workspace-admin-simple-accounts-workspaces-post.api.mdx b/docs/docs/reference/api/create-workspace-admin-simple-accounts-workspaces-post.api.mdx index 2c01092d95..2614f8a9c2 100644 --- a/docs/docs/reference/api/create-workspace-admin-simple-accounts-workspaces-post.api.mdx +++ b/docs/docs/reference/api/create-workspace-admin-simple-accounts-workspaces-post.api.mdx @@ -5,7 +5,7 @@ description: "Create workspaces" sidebar_label: "Create workspaces" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-workspace-membership-admin-simple-accounts-workspaces-memberships-post.api.mdx b/docs/docs/reference/api/create-workspace-membership-admin-simple-accounts-workspaces-memberships-post.api.mdx index a24d735273..f0b12e2ea6 100644 --- a/docs/docs/reference/api/create-workspace-membership-admin-simple-accounts-workspaces-memberships-post.api.mdx +++ b/docs/docs/reference/api/create-workspace-membership-admin-simple-accounts-workspaces-memberships-post.api.mdx @@ -5,7 +5,7 @@ description: "Create workspace memberships" sidebar_label: "Create workspace memberships" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/create-workspace.api.mdx b/docs/docs/reference/api/create-workspace.api.mdx index 0e181a612e..6c3f906367 100644 --- a/docs/docs/reference/api/create-workspace.api.mdx +++ b/docs/docs/reference/api/create-workspace.api.mdx @@ -5,7 +5,7 @@ description: "Create Workspace" sidebar_label: "Create Workspace" hide_title: true hide_table_of_contents: true -api: eJzdWEtvGzcQ/ivCnFpga7lBTzrVTQLESNMIjtMcDGFBLUcSYy7JkFwrqqD/Hgy5u+SuHkmNnuqLxXlxOPPNcLh78GztYPYA7+2aKfEP80IrB4sCtEEbVrccZlBZZB7LrbaPzrAKoQDDLKvRoyX9PShWI8xAZ3ZKwaEAoWAGhvkNFGDxSyMscph522ABrtpgzWC2B78zpO68FWoNBXjhJRFyvya3HA6HRTSDzv+h+Y50x1YrrTwqTyxmjBRV0J5+dloRLW1qLJ3SC3S0iifYA1O796twpqFTh6KnqEZKIE86N/8i3UMBHF1lhaH9nmvqVWbiULRizzN1T/RDbwT08jNWPovuy5DWT31WDweStuiMVi5G5cX1Nf0bHAw+NFWFzq0aOblrheHZcY/Y4iXzl4AQXeWTG09RaQz/AZ2PUarVEfySLGGr+N9ioBgU5o8WHOnVWC9DjefbC4+1O85k49AGQc4F6TM5z/ixOM9B8SPpEvi0jMbO7EH8skvTuUPcaYmTLh9B4z9ISjA6yoxBWwvnQtM8HaGxi6iamhquRcZLt3MeayjgSeC2zIrGkSQXPqdRhcU2zIwpn5gVTFEEOUo8Itaai9WuI5SVViuxbmxvPCl15jNl26jSoX0SodEH37a43Gj92PuVrQPfYWXRd9x+FXmGpQN1i8BZackJXC0vLdt4iPIRd1ks+nUXrxLVk7Ba1ah8ydFIvaOfWfTOS2TBPCsT9vHovEuHS8vWQiK0UU2EoI9PTDZdCim2idCfbSDT2h3QWtMjGrk6wkhMV3ZRx3xlhBOXeWs9J7UIopouY1EWVNilwm0ken28zaDL9GZH1LGVEduiQ18a5txWW96daCmkbCuINkrL/rwrqbcuP29HoJDn6zwp2o5ToBMAM1gkqSGtTcGIGrS/NGgF9oppmYPKjVCVwK2U9qNeMCAFKaGe9KhjDEkjAJa2OYW5jjyWdhUqZoU+pZLzjnZB10h/cqOeM9ap0VtRndJJnLHOlwYbPKXSM1qNPC9ea5nC3i4II/F31vHnfXdPtzAwa9nu4kUxzy6FU9NXmlcfsussM9APZBccGN5L398o3M3d9Xpqr3fhou/HuX9z4HftjPA9H8J7IAiM5pFT/iRPwlD624sXx3Po30wKHt8Gr63V9vlDKEfPhLwwd0hdDbg/MEEI5XFNU83ifPL+bGs1jFpufWmoeYfOsTXmA+E50RCMSTf6CWWaOCd3s24gHAqo/NfMzPHzgGL51X83rxSb6H4rl+UzpShm6HwoXsUUXHqvvLm/nx8ZjPgYAiO+Fiaf8vsM/UbTW9Zo58P71W9gBtMciG66Hz1gD9P+jqM2QVNR9+JtrCR9ZkRIelxuvDduNp1ic1VJ3fArtkbl2RUTUXBBNqrGCr8LRm7mt29x9wYZp9H5YZELfCCsRvQNxfqMMSPeIsWwfX3fNH6jbbpKw9t7E7UoSFQFd+nx/Porq43E9PhNSBqGMwFshHUQaqVzaN2E405u5rdHRgYsKlNW+WzryIZiFMgUP2rZdShS8Mjq33sO+UFZidtcX/16dR1mc+18zVS2xQlUjN4F7fkI9VMjmQh1GRzat4B5GHQuwsTs+JtHhplFARsC3OwB9vslc/jRysOByDQQEAgWBYTRe0kBfNgDF45+c5itmHR45GPf4eCnu7YIf56k3Ax974CiCCV0P9IKCnjE3YmvNaFTbTow7lupl3HDX+5j5+6sHLVXqoKocVNVaPxF2UVWkfP3H+6hgGX7PafWnHQs21KfYdvosTa+e2YF2h4kU+uGOuIMok36+wa7Jah2 +api: eJzdWEtvGzcQ/ivCnFpgG7lBTzrVTQLESNMIjtMcDGFBLUcSYy7JkFwrqqD/Hgy5u+SuHk6NnuqLxXlxOPPNcLh78GztYHYPH+yaKfEP80IrB4sCtEEbVjccZlBZZB7LrbYPzrAKoQDDLKvRoyX9PShWI8xAZ3ZKwaEAoWAGhvkNFGDxayMscph522ABrtpgzWC2B78zpO68FWoNBXjhJRFyvyY3HA6HRTSDzv+h+Y50x1YrrTwqTyxmjBRV0J5+cVoRLW1qLJ3SC3S0iifYA1O7D6twpqFTh6KnqEZKIE86N/8i3UMBHF1lhaH9nmvqdWbiULRizzN1R/RDbwT08gtWPovuq5DWz31WDweStuiMVi5G5eXVFf0bHAw+NlWFzq0aObltheHZcY/Y4iXzl4AQXeWTa09RaQz/AZ1PUarVEfySLGGr+N9ioBgU5o8WHOnVWC9DjefbC4+1O85k49AGQc4F6TM5z/ixOM9B8RPpEvi0jMbO7EH8skvTuUPcaomTLh9B4z9ISjA6yoxBWwvnQtM8HaGxi6iamhquRcZLt3MeayjgUeC2zIrGkSQXPqdRhcU2zIwpH5kVTFEEOUo8Itaai9WuI5SVViuxbmxvPCl15jNl26jSoX0UodEH37a43Gj90PuVrQPfYWXRd9x+FXmGpQN1i8BZackJXC0vLdt4iPIBd1ks+nUXrxLVo7Ba1ah8ydFIvaOfWfTOS2TBPCsT9vHovEuHS8vWQiK0UU2EoI+PTDZdCim2idCfbSDT2h3QWtMjGrk6wkhMV3ZRx3xlhBOXeWs9J7UIopouY1EWVNilwm0ken28zaDL9GZH1LGVEduiQ18a5txWW96daCmkbCuINkrL/rwrqbcuP29HoJDn6zwp2o5ToBMAM1gkqSGtTcGIGrS/NmgF9oppmYPKjVCVwK2U9qNeMCAFKaEe9ahjDEkjAJa2OYW5jjyWdhUqZoU+pZLzjnZB10h/cqOeM9ap0VtRndJJnLHO1wYbPKXSM1qNPC9ea5nC3i4II/F31vHnfXdPtzAwa9nu4kUxzy6FU9NXmlfvs+ssM9APZBccGN5LT28U7ubuej211/tw0ffj3L858Pt2RnjKh/AeCAKjeeSUP8mTMJT+9vLl8Rz6N5OCx7fBG2u1ff4QytEzIS/MHVJXA+4PTBBCeVzTVLM4n7w/21oNo5ZbXxpq3qNzbI35QHhONARj0o1+QpkmzsndrBsIhwIq/y0zc/w8oFh+80/mlWIT3W/lsnymFMUMnQ/F65iCS++Vt3d38yODER9DYMTXwuRzfp+h32h6yxrtfHi/+g3MYJoD0U33owfsYdrfcdQmaCrqXryNlaTPjAhJj8uN92Y2nUpdMbnRzkf2gjSrxgq/C6rX85t3uHuLjNPAfL/IBT4SQiPmhmJ9npgR75Ai1765rxu/0TZdoOHFvYlaFBrC/m16Mr/5xmojMT15E36GQUywGiEchFrpHFDXa1SeTa7nN0dGBiwqTlb5bOvIhiILn5tNpyyQXzAxpUZdh9IEj6z+veeQH5SLuM3Vi19fXIWJXDtfM5VtcQILo9dAez7C+tRIJkI1Bof2LUzuB/2KkDA7/tKRIWVRAGWfFPf7JXP4ycrDgcg0BhAIFgWEgXtJAbzfAxeOfnOYrZh0eORj39fgp9u29H6epNwMfe+AoggldCvSCgp4wN2JbzShP206MO5bqVdxw1/uYr/urBw1VcJ+1LiuKjT+ouwiq8P5h493UMCy/YpTa046lm2pu7Bt9Fgb3z2uAm0Pkql1Q31wBtEm/X0HQiClFw== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-accounts-admin-accounts-delete.api.mdx b/docs/docs/reference/api/delete-accounts-admin-accounts-delete.api.mdx index 7d2f9a0b8c..33c25c5547 100644 --- a/docs/docs/reference/api/delete-accounts-admin-accounts-delete.api.mdx +++ b/docs/docs/reference/api/delete-accounts-admin-accounts-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete accounts" sidebar_label: "Delete accounts" hide_title: true hide_table_of_contents: true -api: eJztWt9vIjkM/leQn+dKr7qneTquRVrUXRW13dsHhFCYGMh2JskmmW05NP/7ycn8pqXd6iqdBH0pkziO8/mzx8TswLG1hXgGI54JCfMIlEbDnFBywiEGjik6XLAkUbl0dsFIrHlchHmIwOCPHK37S/EtxDtIlHQoHX1kWqci8SqH362SNGaTDWaMPmlDGzqBlp4cM2t0++O5RbMQ3H9mcnuzgni2A+EwC8u2GiEG64yQayiiaoAZw7ZQRLWEzNMUinkETriUBr5aNIMJt7TIb4IZE+kH7TMOuosIlFkzKf7xoHzIuW5aG1Tne1TmwWqW4Ifs+K3SXm2njfqOifuQzaZBd9iqWaiWNAqNnGf1qGTrlefqfaBYEQE324XJZde4UtNSqRSZPGjEldkObnMJEXBcsTx1EDuTY0HBwEqi7ymuD/uy3tuwuogoilbCZO9VdFkufw4hildhkFPsl1E3P4gbFEXRXlYf1WolbQjTi/Nz+sfRJkZo4h7EcJcnCVq7ytPBbSkM0XsTRMtnPU8d9MuKpZasDemKByPLuV3gai/bvMTZrqTg+zxuDJlw8Ait3s+E1avOE3zPccFhfCydcNtfTlNNLhQcSUV51qMEYzBpMOjl7eME5aaDQPutcpx4fGuO37zzjhOKaXX4foGTYbZEYzdCHycwnWLsSwuMTlF27Cg1BWQPoqqQPHaAqqK3Bw/TYvGA2+PEZKTF4JoO/+q3gPYe5dvcPgitQzXYHPZUCp5KwVMpeCoFT6XgqRQ8lYKnUvB/CdCpFPxvS8G+1iICNEa9sfRLFMdDWF7SfBFBhtay9UHRL6WIv6t0+60Ixrmg3MHSacsEuovtn/ngzXWp+jX/+IM1dvd9dedMnrjcIB8TWL/krXGA942+qi+OC38L/cfFxf49898sFTwk1mDO+y+ZPTw+Rp53eKqSzuwb4kNIh2s0gVsdlJoDf1bBQM8Vu34jT4LIy6IejME9zRYRCKlzD0gd6H6Amg3uqaVmzxuXhOWTe5UzhE0wv5RrOb1x0fOE6TP0ID0+3d9P9xQGfnSJESg0qJqWntBuo5r2JkSgmdtADEPf3xxWokOIwKL56b8DznaQm9QLaeFdGx43zmkbD4eYnyWpyvkZW6N07IyJIDgnHUluKJ+RktF0co3bT8g4Gohn87bAHTEycKwrVvuFaXGNhJRkmQ+S3G2UKSsKIP+SSWEVQUFcv216s+Mnluk08KXutTbd1VlFn3mvHdqe2G9etmd7Xcb2VKcj2Ey0W3Ehk1X9s4bMdSes1S0UcqXaTB553Aej6QT6FOhMUVZgiT95BaKfhqjn0caREIFHAmJwyLI/6xmyg+gRtjk/+/3s3NcpyrqMydYW+yTsWFj7l2JsqFMmfBbw9uxKds7AsxMiaGkhXDfKOpre7ZbM4leTFgUN/8jREOXmEfxkRrAloTQjuDcV+XbwgNsquKX7zWcJEk/zQLZe0iTWhxWjJEHtDsrOW4F2Nf48vh9DBMvyBwKZf2eCYY+UP9gjxAD044P667Qf20HK5Dr3L00IWunvX+4lJXw= +api: eJztWt9vIjkM/leQn+dKr7qneTquRVrUXRW13dsHhFCYGMh2JskmmW05NP/7ycn8pqXd6iqdBH0pkziO8/mzx8TswLG1hXgGI54JCfMIlEbDnFBywiEGjik6XLAkUbl0dsFIrHlchHmIwOCPHK37S/EtxDtIlHQoHX1kWqci8SqH362SNGaTDWaMPmlDGzqBlp4cM2t0++O5RbMQ3H9mcnuzgni2A+EwC8u2GiEG64yQayiiaoAZw7ZQRLWEzNMUinkETriUBr5aNIMJt7TIb4IZE+kH7TMOuosIlFkzKf7xoHzIuW5aG1Tne1TmwWqW4Ifs+K3SXm2njfqOifuQzaZBd9iqWaiWNAqNnGf1qGTrlefqfaBYEQE324XJZde4UtNSqRSZPGjEldkObnMJEXBcsTx1EDuTY0HBwEqi7ymuD/uy3tuwuogoilbCZO9VdFkufw4hildhkFPsl1E3P4gbFEXRXlYf1WolbQjTi/Nz+sfRJkZo4h7EcJcnCVq7ytPBbSkM0XsTRMtnPU8d9MuKpZasDemKByPLuV3gai/bvMTZrqTg+zxuDJlw8Ait3s+E1avOE3zPccFhfCydcNtfTlNNLhQcSUV51qMEYzBpMOjl7eME5aaDQPutcpx4fGuO37zzjhOKaXX4foGTYbZEYzdCHycwnWLsSwuMTlF27Cg1BWQPoqqQPHaAqqK3Bw/TYvGA2+PEZKTF4JoO/+q3gPYe5dvcPgitQzXYHPZUCp5KwVMpeCoFT6XgqRQ8lYKnUvB/CdCpFPxvS8G+1iICNEa9sfRLFMdDWF7SfBFBhtay9UHRL6WIv6t0+60Ixrmg3MHSacsEuovtn/ngzXWp+jX/+IM1dvd9dedMnrjcIB8TWL/krXGA942+qi+OC38L/cfFxf49898sFTwk1mDO+y+ZPTw+Rp53eKqSzuwb4kNIh2s0gVsdlJoDf1bBQM8Vu34jT4LIy6IejME9zRYRCKlzD0gd6H6Amg3uqaVmzxuXhOWTe5UzhE0wv5RrOb1x0fOE6TP0ID0+3d9P9xQGfnSJESg0qJqWntBuo5r2JkSgmdtADEPf3xxWokOIwKL56b8DznaQm9QLaeFdGx43zul4OExVwtKNsi5Mz2llkhvKYrR0NJ1c4/YTMo4G4tm8LXBHPAzM6orV3mBaXCPhI1nmQyN3G2XKOgLIq2RIWEUAEMNvm47s+IllOg0sqTusTU91VpFm3muCtif2W5bt2V5vsT3V6QM2E+0GXMhfVdesoXDd/2r1CIVcqTZ/R2uUjg1G0wn0Hd+ZolzAEn/yCkQ/DVHLjzYeDpkfPmOCvO+RgBgcsuzPeobsIFKEbc7Pfj8799WJsi5jsrXFPvU6Ftb+pcga6pQJH/venl3JyRl4TkIELS2EK3GNpne7JbP41aRFQcM/cjREuXkEP5kRbEkozQjuTUW+HTzgtgpp6X7zuYHE0zyQrZcqiethxShJULuDsvNWeF2NP4/vxxDBsvxZQObflGDYI2UN9ggxAP3koP4S7cd2kDK5zv2rEoJW+vsXmKkiHQ== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-annotation.api.mdx b/docs/docs/reference/api/delete-annotation.api.mdx index 16f870b31a..c679caba1d 100644 --- a/docs/docs/reference/api/delete-annotation.api.mdx +++ b/docs/docs/reference/api/delete-annotation.api.mdx @@ -5,7 +5,7 @@ description: "Delete Annotation" sidebar_label: "Delete Annotation" hide_title: true hide_table_of_contents: true -api: eJylVk1vGzkM/SsGTy0wtd2gpznVaLKot1kkaLy9BEZAz9C2Wo00laigrjH/fUHNt50E3fZkWyIfyfco0kdg3HlI72FhjGVkZY2HdQK2JBd/LXNIISdNTA/Y2UACJTosiMmJ+xEMFgQpsMOMHlQOCSgDKZTIe0jA0fegHOWQsguUgM/2VCCkR+BDKX6enTI7SIAVazlYCdBkmUNVJR26L9EMwL8HcocR+ha1H8GjOdxsY4LjQALanJigNVTrPvRdiaaOvBZsX1rjyQvaxXwuHzn5zKkyEpHCXcgy8n4b9ORzYwwJZNYwGY45lKVWWeRt9tWLz3GQYemEa1Z1hMyG2qlJThmmHbkBMR+iRQI5bTFohnReJdAr86CV+TaufByh5fBPyUl6rX8Tqpc4AWR2ahO4zrFHwzxXUhbq21EVvxCvpW6UQrEZn2ys1YQmHj0dCzLlsqDRvforaP23t+bNTeAy8GsRpUaxm6+UcQRRTMUveqFzeHiRoRPfSPpZxOecFz2l1Zljb3azIn0tPXOO9ZJbPy/EuWv8qhKndxcX5+/kC2qVR4/JlXPW/f4jyYlRafnWsH1qoG02uv0/3bKuTgTqa762dYKiQ+F3L42vf8h73FGv2POmkYzJSm4rGWwitJg310vTKJ/xjwHMmSAfhMsf/KTW/YC8j9zU6Td2g5bpJaoVep6Ky1qClzrk42p1ewZY98e4MS7jdpkshtulIN7bfvXEfcN7SGHWjzo/O7YjqIIEPLnHdhsFp6NtqaLG9c89c+nT2YzCNNM25FPckWGcoqoN14KRBaf4EEEWt8tPdPhImJOD9H49NLiT1qybbWzWCYSl+kRCWbO7FoH31qmfbYVxg+1rryoKv7VD3RcxucnidgmnhI2u5A1hFlumjRSvITkpu68WEqAiviBgwuJ9dyOCC4d1mPn07XQuR6X1XKAZhHhKslGOHQ3Sk7NSo4qvJmZ0bLS8H6wtD4n8N2gWyjqBvfUsJsfjBj3963RVyXG98kWdXHnc6MHS/0aH0V+ER9RBMojCPqJTYv6060nq3ViCV5+bl/N60s/tcUmt3OYwjNmm05UU58q+7aVjc73IMip54Hg2BiX57jFcXl1fra6gqv4DOGpQ2A== +api: eJylVk1v20YQ/SvCnBKANRWjJ54qxC6ixoWNWM3FEIwRORI3We4yu0MjKsH/XszyW7KNNDlJ2p03H+/NzqgGxoOH5AFWxlhGVtZ42EZgS3Lh1zqDBDLSxPSIgw1EUKLDgpicwGswWBAkwA5TelQZRKAMJFAi5xCBo2+VcpRBwq6iCHyaU4GQ1MDHUnCenTIHiIAVaznYiKPFOoOmiQbvvkQzcf6tIneced+j9jP3aI63+5DgPJA47U5MpTU02zH0fYmmjbwV3760xpMXb5fLpXxk5FOnykBEAvdVmpL3+0ovPnXGEEFqDZPhkENZapUG3uIvXjD1JMPSCdes2giprVpQl5wyTAdyE2LeB4sIMtpjpRmSZRPBqMyjVubrvPJ5hJ7DXyUnGrX+SVejxBEgs1O7itscR2+YZUrKQn03q+IH4vXUzVIodvOTnbWa0ISj52NBqlxaaXRv/qy0/stb89ttxWXFb0WU1ovdfaGUgxPFVPwgCp3D46sMnWAD6WcRXwKvRkqbM+BodrshfSM9c+7rNdg4LwQ8NH7TCOj3y8vzd/IZtcoCYnHtnHU//0gyYlRavnVsnxpom85u/0+3bJsTgcaab2yboOhQ+MNr4+tv8h4PNCr2smkgY7GR20YGmwgt5t312nTKp/x94uZMkPfC5Xd+VutxQD4Ebtr0O7tJy4wStQq9TMVVK8FrHfJhs7k7c9j2x7wxrsJ2Waym26Ugzu24esK+4RwSiMdR5+O6H0ENRODJPfXbqHI62JYqaNz+zJnLJI61TVHn1nN7vRVkWjnFxwBd3a0/0vEDYUYOkoft1OBeGrJtsbnZIAuW6iMJUd3GWlWcW6f+7esKeytvUU2Qe2+naq8OZBgXq7s1nNI0u5KXg2lolD5SuIZoUqxP4hjD8QWqGCKgIrwbYMLij+FGZBbm2jDLi3cXSzkqrecCzSTEc0LNchxokE6MS40qvJWQUd0p+DBZVh4i+UfQrZFtBCKLmNT1Dj3943TTyHG76EWdTHnc6cmq/0rH2R+DJ9SVZBCEfUKnxPx56EnqwzCCN5+69/J2MU7reUm93OY4jdmnM5QUpkne91LdXa/SlEqeAM+GnyQ/PIGr65vrzTU0zX8KGE15 sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-api-key-admin-simple-accounts-api-keys-api-key-id-delete.api.mdx b/docs/docs/reference/api/delete-api-key-admin-simple-accounts-api-keys-api-key-id-delete.api.mdx index 1b34ce3d06..62f83b3baf 100644 --- a/docs/docs/reference/api/delete-api-key-admin-simple-accounts-api-keys-api-key-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-api-key-admin-simple-accounts-api-keys-api-key-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete API key" sidebar_label: "Delete API key" hide_title: true hide_table_of_contents: true -api: eJztWUtvGzcQ/ivCnBqAtRwjpz1ViAVEcIIIttMeBGFBLUdaxvtgSK4bdcH/Xgy5q33IUdyihwLSyRY5M5z55hvugFOD5TsD0QpmIpcFrBmUCjW3siwWAiIQmKHFmCsZP+E+5iQVG5mrDGOeJGVVWNPumvggJ0UcB1VgoLjmOVrUdFANBc8RIuhEgYEsIALFbQoMNH6rpEYBkdUVMjBJijmHqAa7V6RprJbFDhhYaTNamCk5ucP9ZCHAuTVZMKosDBpSurm+pj8CTaKlosAggocqSdCYbZVN7hthYJCUhcXCkjhXKpOJx2H61ZBO3XNEaULJynCC0PtYV0XPw01ZZsiLnou3ej+5r2hF4JZXmYVoyzODjjUQi+Bks1c7NjqkMh6/Gnix/7z1QEqLuTl2R4pTWBFGhNB2aGso7thhpaiyDAjU1sA9bsE51u6Xm6+Y2EHaVuRCT8NT6zZEOS+stHvo9LnWfH/ywC8+csc8BLEUSCaaWM8SjMmiw8AxKPWOF/Ivz9XzBOXzAAHH4M9SPxnFkzMlyR9d+OEeoQPPE4plG/yoUOIc8w1qk0p1nsD0a2byqQdGv3zOHqVDJY0haorq7AFq6msMT9sRniUmTTtqXjz1h2c0X3PzJJUK3WAX7KUVvLSCl1bw0gpeWsFLK3hpBS+t4P8SoEsr+N+2gmOrjgFqXb6y9UtKgaewfE/7jkGOxvDdSdFPjYh/q7RcZiMPuBCS7g6eLXsuhMfbYcynoLptTP8sPz6wzu9xrh6srhJbaRRzAusfZWse4H1lrg4Px86Rxrubm+N35t95JkW4WIM7//6R2cPja+TlhGdlMth9RX3IwuIOdeDWAKUu4I9lcNBzxexeyZMg8mNRD8bkkXYdvf6rygNyKHS/4Bgk9nvPzFE23hOW3+1POUPYBPcbuV7SuxS9TJgxQ0/S48Pj4/LIYODHkBiBQpPZcjF5wr3ns03LbuLixyY2hQimfuYyDTOXaTtzmXIlf6VrdVp3gxQHDAzq53bSUunMG1DSZz38TK1VJppOsbpKsrISV3yHheVXXAbBNdlIKk1XHRmZLRd3uP+AXKCGaLXuCzwQWQP9hmKHlHEl73x8zdRnVtm01E2z0Q5+0qDlPBW2ZZ8JM+8c4QRjCAdbVFU88SRqT/LbwEZhd9ECA8x9TYFFnv922CEKEIbhmOurt1fX/jtfGpvzonfEURIHDh4wIIpOVcalLyLvTt1kdwU+u5Q3n19g0GYY/KfT5xgYRL1x2ZpBWhpL2nW94Qa/6Mw5Wv5WoaasrRk8cy35hjBc1SCkof9FM3Q6cvRwJ8Ev903ZvJkAezmANrMFRfzMs4p+AQOCYDDW89dK2hKnbgRmSYLK9lSPbkFi2KEcbucf549zcO5vh+u9fg== +api: eJztWUtvGzcQ/iuLOTUA63WMnPZUIRYQwQki2E57EIQFtTuSGO+DIblutgv+92LIfUqO4hY9FJBOtsgZzsz3zXAHnAYM32mIVjBLc1HAmkEpUXEjymKRQgQpZmgw5lLET1jHnKRiLXKZYcyTpKwKo7tdHfdyIo1jrwoMJFc8R4OKDDVQ8BwhgkEUGIgCIpDc7IGBwm+VUJhCZFSFDHSyx5xD1ICpJWlqo0SxAwZGmIwWZlIEd1gHixSsXdMJWpaFRk1KN9fX9CdFnSghKTCI4KFKEtR6W2XBfSsMDJKyMFgYEudSZiJxOIRfNek0I0ekIpSM8BZSVceqKkYebsoyQ16MXLxVdXBf0UqKW15lBqItzzRa1kKceifbvcayAyOVdvg1wIv689YBKQzm+tgdkZ7CijAihLbTs6bilvUrRZVlQKB2B9zjFqxl3X65+YqJmdC2IhdGGi61bn2U88IIU8Ogz5Xi9UmDX1zkljkIYpEiHdHGepZgBIsBA8ugVDteiL9crp4nKJ8nCFgGf5bqSUuenGmS/DGE7+8RMnieUCy74A8KJc4x36DSeyHPE5hxzQSfRmCMy+fsUeor6RCitqjOHqC2vg7h6TrCs8SkbUf1i1Z/aKP9musnIaXvBodgL63gpRW8tIKXVvDSCl5awUsreGkF/5cAXVrB/7YVPDzVMkClyle2fkmZ4iks39O+ZZCj1nx3UvRTK+LeKg0X2YEHPE0F3R08W45c8I+305hPQXXbHv0zflxgg9+HXD0YVSWmUpjOCax/xNbcw/tKrvqHY2tJ493NzfE78+88E6m/WL07//6R2cHjauRlwrMymey+oj5EYXCHyufWBKUh4I+ld9Dlit69Mk+8yI9FHRjBI+1aev2XlQOkL3S3YBkk5vvomCM23hOW381Pc4aw8e63ciPSB4peTpjDDD2ZHh8eH5dHB/r8mCaGT6FgtlwET1i7fDb7cpi4uLGJ2UMEoZu5hH7mEnYzl5BL8Stdq2EzDFIsMNConrtJS6Uyd4AUjnX/c2+MjMIwKxOe7Utt/PaaNJNK0QVHqrPl4g7rD8hTVBCt1mOBB0pRn3RTsZ4oLsWdi6qd9cwqsy9V22J0456917IuAbblmP/ZDgvDCR04BG6yRbXEE5c6nSW3DWwUrI7CkLvlKy5CYIC5qyQwyPPf+h0inpDzZq6v3l5du697qU3Oi5GJI+omDvYYUGKGMuPClY5zp2k5XYHjlNhyrAKDjldwH0zHLDCIRkOyNQOii7SbZsM1flGZtbT8rUJFrK0ZPHMl+IYwXDWQCk3/p+2o6cjR/iaCX+7bYnkTAHs5gI7ZgiJ+5llFv4ABQTAZ5rnLZN8lTtMKzJIEpRmpHt19lGF9EdzOP84f52Dt3xGwuh8= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-api-key.api.mdx b/docs/docs/reference/api/delete-api-key.api.mdx index af0fc07d92..f058b8a417 100644 --- a/docs/docs/reference/api/delete-api-key.api.mdx +++ b/docs/docs/reference/api/delete-api-key.api.mdx @@ -5,7 +5,7 @@ description: "Delete an API key with the given key prefix for the authenticated sidebar_label: "Delete Api Key" hide_title: true hide_table_of_contents: true -api: eJztVU1v2zgQ/SvEnFqAsLNBTzrV2Bio4S7WSL17cYyAlsYSG4lUyVE2WkH/fTGkZNlxU6CnXvYkab749ObNsANSuYdkB2tsPewlZOhTp2vS1kACd1gioVBGLDYr8YSt+EdTIahAketnNMFUOzzqF3G0LjhUQwUa0qkizETj0c0ezINZuNwnD0YIwUmPQ9I7T+59IrYFjmXsMVQZzyMrDiiygCObxXyH3xr0JN7dx5ehgDaprbTJT357+IophdPvkRpnRgCZTikRi/DU1ijXitQaUtpwuhK+SVP0XlTovcpRNLU1o/HYlBGOtiaWVtrjWPnTdrtZvqQYCEzE6vJntBfGkjjaxmTCOpFZjJYDltbk/LMcHjgDCbZGp7jQKoMEIgePqtaPT9iChFo5VSGh4wZ2YFSFkMBELkjQ3MRaUQESmBXtMIOEXIMSfFpgpSDpgNqaMz05bXKQQJpKNqyxFZtYqu/3XMHX1nj0nHR7c8OPS718mTi6H4JBAnOLhjhc1XXJytDWzL96zumugcS+gQSVZTo0qNw4JoM0nx3hjyDHc8Sg1UWtxRpb6Pu+l/Dh9vYa5d+q1FnAIJbOWfczEOszIFyXlC75TRNW/jqgtOmFV5n2z2No1yXpvTxZtCHM0UG/7+VoU86p9qwzn20ECL2Eyuc/auIfUcNwKvZ2aCBDbNnbs3bqJhAyulfB0EtI6eV73RrjfmcuXwj6Cf8pZhLhLnAT4Q9x+6nG1KLYobepuIst+N5hYwgP5VXBqI8KqbDTdIWpogISmD9h6+fdNE09SPDonsdxa1zJYarWoXnxsyCqfTKfYzNLS9tkM5WjITVTOgbuuUbaOE1tKLLYrNbYfkKVoYNktz8P+MKaiyq6DDsxr2q9DptgGP1FQ4V1+t8ojWH6i5jVh44e7XlDFwEcbyd4vfgvXGE3pkEL40nBDfLVb09/CxKwCqMBhKr6ePJwJ5nDeMzN7LfZDZtq66lS5uyIV+P8CmA3Tez/l9QvvaQGLfLEz+tS6bCTgiy6YZZ2fCd5kJCc3U17CYX1xN6uOyiPf7my79n8rUHH07GX8KycVgfW6q6DTHt+zyA5qtLjDwQRKOct8168BXCcIMPKelZlw18gGenlHRq2cDEOaDcELFJm7yz16tLgST4tl7vl5+V2CX3/HyNpPFw= +api: eJztVU1v4zYQ/SvEnHYBwk6DnnSq0RhYw1vUyLq9JEZAS2OJG4nUkqM0qsD/Xgwp+SPeLNBTLz1Jmm+9eY8cgFTpIXuANfYedhIK9LnTLWlrIIM7rJFQKCMWm5V4xl78pakSVKEo9QuaaGodHvSrOFgXHaqjCg3pXBEWovPoZo/m0Sxc6bNHI4TgpKcx6YMn9zET2wqnMvYQq0z9yIo9iiLOUcxSvsNvHXoSH+7Ty1hAm9w22pRHv91/xZxi93ukzplpgELnlIlFfGprlOtFbg0pbThdCd/lOXovGvRelSi61prJeOjqNI62JpVW2uNU+dN2u1m+5hgBzMTq8me0F8aSONjOFMI6UVhMlj3W1pT8sxweMQMJtkWnuNCqgAwSBk+q1U/P2IOEVjnVIKHjBQ5gVIOQwQlckKB5ia2iCiQwKtphARm5DiX4vMJGQTYA9S1nenLalCCBNNVsWGMvNqlUCDuu4FtrPHpOur254cclX76cMLofg0ECY4uGOFy1bc3M0NbMv3rOGa4HSXsDCaoodFxQvXEMBmnuncafhpz6iJGri1aLNfYQQggSfr69vZ7yT1XrIs4gls5Z929GbM8G4bqkdM1vmrDx1wG1zS+8yvS/H+K6LkEP8mjRhrBEB2EX5GRTzqn+bDOfbRoQgoTGlz9a4m+Jw3As9n5oBENs2RuYO20XAZncq2gIEnJ6/d62prhfGctXgnCa/xhzIuFDxCaNP8btTjVOK0obeh+Ku7SC7zWbQliUVwUTPxqkyp7UFVVFFWQwf8bez4eTmgJI8OheJrl1ruYw1eq4vPRZEbXZfF7bXNWV9ZTcO87MO6epj6mLzWqN/SdUBTrIHnbnAV+YaYk7l2FHvFWr11H/o+AXHVXW6b8TIUbNVykrxD0e7PkaFyUaUnwmwdvj/sIVT8Q8MmDqFN0gz37WZ/O5iuaZ0nOQgE0UBBCq5pejh/fHyKU2N7OfZjdsaq2nRpmzFm9E/GbA4aTT/6+m//RqGrnIOp+3tdLxJIq0GEYFPfBN5EFCdnYj7SSwLNg7DHvl8Q9Xh8Dmbx06VsdOwotyWu2Zqw8DFNrzewHZQdUef0CICDmfLR/FewNOCjLMrBdVd/wFkie9vDnj2VtNAh3GgEXO6J2lXl0VrOTjkXK3/LzcLiGEfwDwfDj9 sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-folder.api.mdx b/docs/docs/reference/api/delete-folder.api.mdx index f5964c0402..1b1f2652a5 100644 --- a/docs/docs/reference/api/delete-folder.api.mdx +++ b/docs/docs/reference/api/delete-folder.api.mdx @@ -5,7 +5,7 @@ description: "Delete a folder and every descendant." sidebar_label: "Delete Folder" hide_title: true hide_table_of_contents: true -api: eJztVk1v3DYQ/SvEnFqA0G6MntRLjdhBFkkRw3F78S7isTgrMZVIhRyts13ovxdDSfvhjX0o0FtPK3KGwzfvzQx3B4xlhPwe3vnaUIiw0mAoFsG2bL2DHK6oJiaFap08FDqjaENhq8SPnEHH2dIt3S01fkNRcUWTrzXk2K4tGfW4VQ/D7hdrHhT7kriioJ4sV0O8pRtPPZIj5EpZ1so6hSpaV9akOKCLWAiuTCVY1jtl49J1rvDOWFlj/asgCKRsVM4rDEVlN6R8UJ2bFpGpzdQtRd+FguLScYWsnuQUxmhLR0axV+i2yq9TQiElZ8bEoiq8Y+s6UuyXjr7byIkYDCSX1t6VFFQgLCp8FOhV8F1ZpVAmETqFykCDbymggF8YyGGwfxnMoKHFgA2xiJPf78BhQ5DDnkvQYEWnFrkCDYG+dTaQgZxDRxpiUVGDkO+At60cjBysK0HD2ocGGXLouhSFLdfiMFSCWhjo+5UEjK13kaLEuJjP5ee0Qj53RUExrrtaKE3OoEEYIsfijm1b2yJlOPsa5czuCFcbJH+2ww2F74ZDI1zrmMrEw4TvbfJ4XqYPbx6UXR/K9AnjxLRWD/NkdH6yNshFRSZLYdbY1Qz5vNdgTcLrtp/WiezXOev13sN1dQ1C14RyYc4gLsxUTc9KQH1qLMv6qSKnnOfKuvI4gwz6Xk9X+cevVPCZYAuzJ7/vxf2Xi4tzrf7E2pqkhLoOwYd/L5QhRlvLl2Vq4rlD7YsT60usHrE4id2vDuliCLg9yvajHwBCr6GJ5Y8qe3L9nWLEkmAf7GXXRIa6E6uUgWu7oQgnNdNGr6Hg70dhzqR4K1x+5x/KdejM+8TNAH/0O6qcg0SDQi9TcTVI8FptvL+7uzkLONRHQ1z5w8BJk4YryGE2DrnZbj9ketAQKWymIdSFWhyxtUm+YVkxtzGfzajLitp3JsOSHGOGdnBcSYyiC5a3KcjlzeIDbd8TypzL71fHDp+l6oY6OnXbc4+t/UDCxjgQLzuufLB/D8UxDsVqONUnTdf+WNLLBE5d3izOGvXEJO2BRaqG6aZkBv0s7UO2oIGa1BzAhM1ve4toKRwO18yzN9lctlofuUF3dMX46L6b3oATfLtDy/7/Ov/3r/NYb9LXs7ZGmyZPkn43dsz9+BpH0JAfHuaVhspHFvtu94iR/gh138v2t46C9MBKwwaDFRCpI4yN8m0gX2Md6RXdf7odp8nP6iWIU584aZIN1p2sQMNftD35/5CGbTV14W60XxYFtXx08uxtkHbdz5Cr64/Xd9fQ9/8AqQuVJA== +api: eJztVlFv2zYQ/ivEPW0AYbvBnrSXBU2KGu3QIM32EhvNRTxL7CRSJU9OPEP/fThKsuW6ycOAve3JIu94vPu+747eA2MRIbuHd74yFCKsNRiKebANW+8ggyuqiEmh2iQPhc4o2lLYKfEjZ9DxbOVW7pZqv6WouKTR1xpybDeWjHrcqYd+94s1D4p9QVxSUE+Wyz7eyg2nHskRcqksa2WdQhWtKypSHNBFzCWvmUppWe+UjSvXutw7Y2WN1a+SQSBlo3JeYchLuyXlg2rduIhMzUzdUvRtyCmuHJfI6klOYYy2cGQUe4Vup/wmFRRScWYoLKrcO7auJcV+5ejZRk7AYCC5tPKuoKACYV7io6ReBt8WZQplEqBjqBlo8A0FlOSXBjLo7V96M2hoMGBNLORk93twWBNkcMASNFjhqUEuQUOgb60NZCDj0JKGmJdUI2R74F0jByMH6wrQsPGhRoYM2jZFYcuVOPRKUEsDXbeWgLHxLlKUGBeLhfycKuRzm+cU46atBNLkDBoEIXIs7tg0lc1ThfOvUc7sJ3k1Qepn29+Q+7Y/NKRrHVORcBjze5s8vpfpw5sHZTdHmT5hHJHW6mGRjM6P1ho5L8nMUpgNthVDtug0WJPydbtPmwT265h1+uDh2qoCgWvMcmnOUlyaUU3fSUB9qi3L+qkkp5zn0rpiWsEMuk6PV/nHr5TzGWFLcwC/68T9l4uLc67+xMqaxIS6DsGHf0+UIUZbyZdlquO5Q+XzE+tLqE5QHMnu1sdyMQTcTar96PsEodNQx+JHyh5df6cYsSA4BHvZNYGh7sQqMnBN24twZDNtdBpyfp6EOaPirWD5zD+k69iZ9wmbPv3Bb6KcI0U9Qy9DcdVT8Jo23t/d3ZwF7PVRE5f+OHDSpOESMpgPQ26+PwyZDjRECttxCLWhEkdsbKKvX5bMTTafVz7HqvSRe/NaTuZtsLxLRy9vlh9o955Qplt2v546fBat9eo5dTsgjo39QILBMAYvWy59sH/3khhGYdmf6hKTGz8l8rIgx6gub5Zn7XlikqbAPGlgvCmZQU+Kjdl8jml7hnYOGqhOLQFMWP92sAiDglx/zWL2ZraQrcZHrtFNrhie2nfj5D/Jb39s1P/f5P/+TR70Jt08byq0ad4k6vdDn9wPb3AEDdnxOV5rEPGLfb9/xEh/hKrrZPtbS0F6YK1hi8FKEqkjjI3ybSDbYBXpFd5/uh1myM/qpRTHPnHSJFusWlmBhr9od/KvIY3YcuzC/WC/zHNqeHLy7EWQdj1Mjqvrj9d319B1/wBCjZHF sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-invocation.api.mdx b/docs/docs/reference/api/delete-invocation.api.mdx index 5ef637afda..1b6ae71494 100644 --- a/docs/docs/reference/api/delete-invocation.api.mdx +++ b/docs/docs/reference/api/delete-invocation.api.mdx @@ -5,7 +5,7 @@ description: "Delete Invocation" sidebar_label: "Delete Invocation" hide_title: true hide_table_of_contents: true -api: eJylVk1v20gM/SsGTy2g2m7Qk041mizqbRYJGm8vgRHQEm1NOxqpM5ygrqD/vuDo206CbnuyPUM+ku9xSFfAeHAQ38PaPBYJsiqMg20ERUk2/FqnEENKmpgeVG8DEZRoMScmK+4VGMwJYmCLCT2oFCJQBmIokTOIwNJ3ryylELP1FIFLMsoR4gr4WIqfY6vMASJgxVoONgI0W6dQ11GP7ko0I/Dvnuxxgr5H7SbwaI43+5DgNJCAtifGaw31dgh9V6JpIm8F25WFceQE7WK5lI+UXGJVGYiI4c4nCTm393r2uTWGCJLCMBkOOZSlVg1vi69OfKpRhqUVrlk1EZLCN05tcsowHciOiPkQLCJIaY9eM8TLWujolHnQynybVj6N0HH4p+REg9a/CTVIHAEyW7Xz3OQ4oGGaKikL9e2kil+I11E3SSHfTU92RaEJTTh6OhYkyiZeo331l9f6b1eYNzeeS8+vRZQGpdh9pYQDiGLKf9ELrcXjiwyd+AbSzyI+57waKK3PHAezmw3pa+mZc6yX3IZ5Ic5949e1OL27uDh/J19QqzR4zK6sLezvP5KUGJWWby3bpwa6SCa3/6dbtvWJQEPN1930qyPI3eGl8fUPOYcHGhR73jSQMdvIbXjJIrSY90S3yif8YwRzJsgH4fIHP6n1MCDvAzdN+q3dqGUGiRqFnqfispHgpQ75uNncngE2/TFtjMuwXWbr8XbJibNiWD1h33AGMSyGUecWVTeCaojAkX3stpG3WmyxVEHj5mfGXLp4sSA/T3Th0zkeyDDOUTWGW8FIvFV8DCCr2/UnOn4kTMlCfL8dG9xJazbNNjXrBcJSfSKhrN1dK89ZYdXPrsKwwbLGqw7C74ux7quQ3Gx1u4ZTwiZX8oYwCS3TRQrXEJ2UPVQLEVAeXhAwYf6+vxHBhcMmzHL+dr6Uo7JwnKMZhXhKskmOPQ3Sk4tSowqvJmRUtVrej9aWg0j+G7QLZRtBVjgWk6raoaN/ra5rOW5WvqiTKoc7PVr63+g4+YvwiNpLBkHYR7RKzJ92PUm9H0vw6nP7cl7Phrk9LamT2xzHMbt0+pLCXMm6Xqra61WSUMkjx7MxKMn3j+Hy6vpqcwV1/R8QgVDQ +api: eJylVk1v20YQ/SvCnBKANRWjJ54qxC6ixoWNWM3FEIzRciRuslwyu0MjKsH/XszyW7KNNDlJ2p03H+/NzqgGxoOH5AHW9qlQyLqwHrYRFCW58GudQgIpGWJ61IMNRFCiw5yYnMBrsJgTJMAOFT3qFCLQFhIokTOIwNG3SjtKIWFXUQReZZQjJDXwsRScZ6ftASJgzUYONuJosU6haaLBuy/RTpx/q8gdZ973aPzMPdrj7T4kOA8kTrsTWxkDzXYMfV+ibSNvxbcvC+vJi7fL5VI+UvLK6TIQkcB9pRR5v6/M4lNnDBGowjJZDjmUpdEtb/EXL5h6kmHphGvWbQRVVC2oS05bpgO5CTHvg0UEKe2xMgzJshE6emUejbZf55XPI/Qc/io50aj1T7oaJY4AmZ3eVdzmOHrDNNVSFpq7WRU/EK+nbpZCvpuf7IrCENpw9HwsUNqpyqB782dlzF++sL/dVlxW/FZEab0Uuy+kODjRTPkPotA5PL7K0Ak2kH4W8SXwaqS0OQOOZrcbMjfSM+e+XoON80LAQ+M3jYB+v7w8fyef0eg0IBbXzhXu5x9JSozayLeO7VMDU6jZ7f/plm1zItBY800//ZoIcn94bXz9Td7jgUbFXjYNZCw2chtesggt5gPRnfKKv0/cnAnyXrj8zs9qPQ7Ih8BNm35nN2mZUaJWoZepuGoleK1DPmw2d2cO2/6YN8ZV2C6L9XS75MRZMa6esG84gwTicdT5uO5HUAMReHJP/TaqnBFbLHXQuP2ZMZdJHJtCockKz+31VpCqcpqPAbq6W3+k4wfClBwkD9upwb00ZNtic7NBFiz1RxKiuo21qjgrnP63ryvsraxFNUHufTFVe3Ugy7hY3a3hlKbZlbwcVKFR+kjhGqJJsT6JYwzHF6hjiIDy8G6ACfM/hhuRWZhrwywv3l0s5agsPOdoJyGeE2qW40CDdGJcGtThrYSM6k7Bh8my8hDJP4JujWwjEFnEpK536OkfZ5pGjttFL+qk2uPOTFb9VzrO/hg8oakkgyDsEzot5s9DT1IfhhG8+dS9l7eLcVrPS+rltsdpzD6doaQwTbK+l+rueqUUlTwBng0/SX54AlfXN9eba2ia/wDiXE1x sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-metrics.api.mdx b/docs/docs/reference/api/delete-metrics.api.mdx index 3146b79cf7..4233f75a75 100644 --- a/docs/docs/reference/api/delete-metrics.api.mdx +++ b/docs/docs/reference/api/delete-metrics.api.mdx @@ -5,7 +5,7 @@ description: "Delete Metrics" sidebar_label: "Delete Metrics" hide_title: true hide_table_of_contents: true -api: eJy1ldtu00AQhl8lmuvNgbQN4CsCjdSIVlSlcBNFaLIeJ1tsr9lDaYj87mh23dhpaJGQyE32MDs7+80/4x04XFtIFjC7x9yjU7q0sBSgKzJhNk8hgZRycvStIGeUtCDA0A9P1r3X6RaSHUhdOiodD7GqciXD0eGd1SWvWbmhAnlUGXbsFFmeNf6+qTRMlaMiDNy2IkjAOqPKNQjItCnQQQLeqxRq8WiAxuAWBDjlcp5fRX+9eWqhbs306o6ka6JWhlJ+b/fuZeuixdA4m6f2Jj4WavbZ+nDGU1iwlS5tfNF4NOK/lKw0qmI3kMBnLyVZm/m8d9MYg/hXZlL7eKh5nCodrcl0KHwIFgJSytDnDpJRLf4r6s5Vi+WfuL8MtyFSB7yn4/ExwK+YqzSc682M0ebf6aXkUOUHBA4Nci0PdrHcfsogWTwlVYujDNTL53Fd6hggEy3s+k/kW7LW4ppa9s+bBhi9W96tBaiy8lEZzfY8LNQCpHvouDlKywdm+eD+WjLMJobf2HXqpk1RzNDzKM5jCl7SycXt7fWRw6iPQ2Gch77Uu9r3pYLcRrcdCwRU6DaQwJDa/jZsimEIAiyZezI2ZNibnC2xUiG9cbpxrrLJcEh+IHPt0wGuqXQ4QBUNl+xDeqPcNjiZXs8/0vaCMCUT6qFj8JlVGXV2aLbPDVbqIzGtEgueT73baKN+RfFwjjmkeIpxsN5v2l48e8Ciyumoty7gJMM3Z9nktH/2+tXr/unZZNxfnWSyP5ZvJyfZZIIZTmAZVJTproim4bm96fUcntI/2OKCRBn09xh72AbxBGTLDwRQEcoRHGHxbr/D6uGsxGtGg1eDES9V2roCy84VR/k/CHBPldU9rHJUof5COLtGGAvoCAP2fRIEsLo32nJTg91uhZa+mLyuefmHJ8PZXgq4R6NwxaQWTG/zmPcdfKftY22Vrh+KlM1zH/P8pGex4OKJqZRUuRdtlx2hn88uZ7czELBqvsWFTvmUwZ9cvvgTEgD+nscXJru4toMcy7XnRpNA9Mq/30odv6g= +api: eJy1VVFv0zAQ/ivVPbtL6bYCeaJslagAMY3BS1Whq3NpDU4cbGesVPnv6OysSVc2pEn0pfb57nz+vu8uO/C4dpAuYHaLukavTOlgKcBUZMNunkEKGWny9K0gb5V0IMDSz5qcf2uyLaQ7kKb0VHpeYlVpJUNo8t2Zkm1ObqhAXlWWE3tFjndtvm8qC1vlqQgLv60IUnDeqnINAnJjC/SQQl2rDBpx74DW4hYEeOU17z/GfIN55qDp3MzqO0nfVq0sZfze/t3LLkUHQ5tsnrnr+FhoOGeXw9uagsFVpnTxRePRiP8yctKqitNACp9rKcm5vNaD69YZxHMxk6aOQe3jVOlpTbaHwkXwEJBRjrX2kI4a8V+h7l21WP4N96fBbRFpArxn4/ExgF9RqyzEDWbWGvt89DLyqPQBAocO2siDUyy3n3JIFw+RasQRA83ycbg+mFggI1q49d+Q75B1DtfUYf+4awBjcMOnjQBVVnVURns8D4ZGgPR3vTRHtFwwlnf+ny3D2MTyW79e33QURYYeh+IyUvCUTt7d3FwdJYz6OBTGZZhLg4/7uVSQ35huYoGACv0GUkiom29J2wwJCHBkb8m6wHBtNXtipQK9cbvxvkqTRBuJemOcj8dLjpS1VX4bQqdX8/e0fUeYkQ1d0HP4zFqM6jp02zOClXpPjFGJBe+ntd8Yq35HyTCzXEiMYhBY5dfdBJ7dYVFpOpqoCzjN8dV5Pjkbnr988XJ4dj4ZD1enuRyO5evJaT6ZYI4TWAbt5KYvnemaSo+D6dUcHmJ+cMRtiDKo7r72cAyiB59LkwSD+QQVg05FaELwhMWb/QlrhrmI14xOXpyM2FQZ5wsse1ccsX5Q4B5V1nRSaVSh60I5u1YOC+jJAfbTEQSwpplm9tntVujoi9VNw+afNVlmeyngFq3CFSO1YPQ297zv4Adt7zuq9MPQmuyu68jzg0nFMosRUymp8k/6Lnvyvpx9mN3MQMCq/QIXJuMoi7+4afEXpAD8FY8vTHfRtgON5brm8ZJCzMq/P7WBvEk= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-organization-admin-simple-accounts-organizations-organization-id-delete.api.mdx b/docs/docs/reference/api/delete-organization-admin-simple-accounts-organizations-organization-id-delete.api.mdx index ae7b33b232..f2f3b05eb2 100644 --- a/docs/docs/reference/api/delete-organization-admin-simple-accounts-organizations-organization-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-organization-admin-simple-accounts-organizations-organization-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete organization" sidebar_label: "Delete organization" hide_title: true hide_table_of_contents: true -api: eJztWUuPGjkQ/iuoThvJgtnRnvq0KIMUNIkGzUx2Dwi1TLugnemHY7tnw7b831dlN/QDQmajPawEJ8Au1+Orr9xFVw2Wbw1ES5iKXBawYlAq1NzKspgLiEBghhbjUm95If/26zEn0djIXGUY8yQpq8KanoiJ+yekiOOgCRgornmOFjXZraHgOUIEA3lgIAuIQHGbAgONXyupUUBkdYUMTJJiziGqwe4UHTdWy2ILDKy0GS08dPSN5gKcW5Eao8rCoKGTtzc39CHQJFoqkoMInqokQWM2VTZ6bISBQVIWFgtL4lypTCZe7eSLoTN1xxulCT4rgwWhd7Guio6b67LMkBcdP+/0bvRY0YrADa8yC9GGZwYda7AXwclmr3ZsYKQyHskaeLF72HhIpcXcHLsjxTnACCNCaNPX1Rd37LBSVFkGBOpewSNuwDm23y/XXzCxvdwtyYXOCc+5uxDlrLDS7qA9z7Xmu7MGP/vIHfMQxFIgqWhivUgwRvMWA8d6JXWZoDz0EHAM/ir1i1E8uVCS/NmGH+4RMniZUCz2wQ8KJc4xX6M2qVSXCUzvwfmpA0a3fC4epUMlDSFqiuriAWrqawgPVzJ+wd1lYjJVcnRPwZ+y+l0bzdPcvEilQjfYBnttBa+t4LUVvLaC11bw2gpeW8FrK/i/BOjaCv63reBQq2OAWpdvbP2SUuA5LN/TvmOQozF8e1b0UyPi31VaLrOBB1wISXcHzxYdF8Ib3H7M56C6a1T/KD8+sNbvYa6erK4SW2kUMwLrX2VrFuB9Y64OL46doxO/3d4ev2f+g2dShIs1uPPzL5k9PL5GTic8K5Pe7hvqQxYWt6gDt3ootQF/LIODnitm+0aeBJHvi3owRs+062gEoCoPyKHQ/YJjkNhvHTVH2XhPWH6zP+QMYRPcb+Q6SW9TdJowQ4aepceH5+fFkcLAjz4xAoVG3T7Ek9qmZTuP8VMUm0IEEz+MmYRhzGQ/jJn0+v1JPRiuOGBgUL/uRzCVzrwqJT0Jws/UWmWiyQSrcZKVlRjzLRaWj7kMgivSkVSabj5SMl3M73H3AblADdFy1RV4Iu4GNvbFDhnkSt4jYdqMg6aVTUvdAuCHQWk45TwzNmWXGFPv3Gi6mMMQ0d4WFRlPPKf2lvw2sEHYbbTAAHNfYmCR578fdogRhGEwczP+dXzjH/ulsTkvOiZO57Tn5QEIou1EZVz6wvI+1U2yl+CTTcnz6QYG+4TD8C8eg2g4UVsxSEtjSU9dr7nBzzpzjpa/VqgpiSsGr1xLviZIlzUIaei7aEZSRy4fbiz45bEpqncjYKdD2Se6oCy/8qyiX8DgBXcnxn/+5kn3ZKobqWmSoLKd80cXJbHuUCx3s4+z5xk49w/569nj +api: eJztWVFv2zYQ/ivGPa0AEWXBnvQ0ozFQIy1iJOn2EBgCLZ5tNpTEklRWT+B/H46UbUl23azYwwD7yTZ5d7z77jvqrGvA8ZWF9BnGopAlzBlUGg13siqnAlIQqNBhVpkVL+XfYT3jJJpZWWiFGc/zqi6d7YnYrK8hRZZFS8BAc8MLdGjo3AZKXiCkMJAHBrKEFDR3a2Bg8GstDQpInamRgc3XWHBIG3AbTerWGVmugIGTTtHCfcfeaCrA+zmZsboqLVrSvLm+pg+BNjdSkxyk8FjnOVq7rNXooRUGBnlVOiwdiXOtlcyD2eSLJZ2m4402BJ+T8QRhNpmpy46bi6pSyMuOn7dmM3qoaUXgktfKQbrkyqJnLfYiOtnuNZ4NDqltQLIBXm7ulwFS6bCwh+5IcQowwogQWvZt9cU9262UtVJAoG4NPOASvGfb/WrxBXPXy90zudDRCJy7jVFOSifdBvb63Bi+OXng5xC5ZwGCTAokE22sZwnGaLrHwLNeSZ0nKPc9BDyDvyrzYjXPz5Qkf+7Dj/cIHXieUMy2wQ8KJSuwWKCxa6nPE5jeg/NTB4xu+Zw9SrtKGkLUFtXZA9TW1xAermX2gpvzxGSs5eiOgj926nfPaJ/m9kVqHbvBfbCXVvDSCl5awUsreGkFL63gpRW8tIL/S4AureB/2woOrXoGaEz1xtYvrwSewvI97XsGBVrLVydFP7Ui4V2l41INPOBCSLo7uJp1XIhvcPsxn4LqtjX9o/yEwPZ+D3P16Eydu9qgmBBY/ypbkwjvG3O1e3HsPWn8dnNz+J75D66kiBdrdOfnXzIHeEKNHE+4qvLe7hvqQ5YOV2git3oo7QP+WEUHA1fs6o08iSLfFw1gjJ5o19MIQNcBkF2hhwXPIHffOmYOsvGesPzmfsgZwia638p1kr5P0XHCDBl6kh4fnp5mBwYjP/rEiBQadfuQQGq3rvbzmDBFcWtIIQnDmCQOY5LtMCbp9ftJMxiueGBg0bxuRzC1UcGUloEE8efaOZ0miapyrtaVdXF7Tpp5bei+I9XxbHqHmw/IBRpIn+ddgUdibORgX2yXN67lHRKS7RBoXLt1ZfZhhxHQOmr5wIdl1aXDeIWl46PxbApDHHtbVFo8D0zanhS2gXWCtWmS8LB8xWUCDLAIhQUOefH7bod4QMjFY66vfr26Dg/7yrqCl50jjmey5+UOCCJrohWXoZyCT02b4mcIKaaUhSQDg22aYfjHjkE6nKPNGVD2yE7TLLjFz0Z5T8tfazSUxDmDV24kXxCkzw0Iaem7aAdRBy7v7in45aEtpXcjYMdD2Sa6pCy/clXTL2DwgpsjQ79w36y3ZGpaqXGeo3Yd/YPrkVi3K5HbycfJ0wS8/weEZdaE sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-organization-domain.api.mdx b/docs/docs/reference/api/delete-organization-domain.api.mdx index c86f7a5836..1e4cc29ece 100644 --- a/docs/docs/reference/api/delete-organization-domain.api.mdx +++ b/docs/docs/reference/api/delete-organization-domain.api.mdx @@ -5,7 +5,7 @@ description: "Delete a domain." sidebar_label: "Delete Domain" hide_title: true hide_table_of_contents: true -api: eJx9VFFP4zAM/iuVn+6kaAPEU59uuk1ighMIdvcyVci03hqubUKSInZV/vvJabu2DNjLmvizY3+f7QYc7i3EW7g1e6zkP3RSVRYSARnZ1EjNZ4hhSQU5ijDKVImymoEApckE+DqDGLIAeFSjMI8tFgRoNFiSI8NPNVBhSewSzI8yAwGSH9HochBg6KWWhjKInalJgE1zKhHiBtxBs6N1RlZ7EOCkK/hiGSJF6wy8TziA1aqyZNnn4uyS/6blPNRpStbu6iK678DgBVxeXJxi/2Ahs1BQtDJGGRCQqspR5RiLWhcyDeb5s2WHZpSwNsySk20qGTmUBX9JR6U9BRQqnVixOtzuAmXTyr043sjK0Z4M+MSL/g6NwcOInhvVJsgllnb/FZO/yFrcBzJayOfQQEa0YatnAXUdCOnN63DhBaTubRRGPT1T6kZhfjKXbw78kP8RM3TCNnDTpt/hkiHGIFGr0OdULFsJPnqsh1xtNncnAfknoCSXq6HbQ2e7HGKYj/veztvOtvPm2OIeBFgyr/0I1KZgN9QyiNkec+e0jedzqmdpoepshnuqHM5QtsCEY6S1ke4Qgizu1td0uCLMyEC8TcaAB+7BtqumsKMSqOU1MTfdOC5qlyvT1dCPZN56+aDwTo0FXoTkosXdGt5vi4mJhwXT0Bv9S8EM4l3ZQ7UggMowKuAIyx9HCyvLHLbPnM3OZ2d8pZV1JVajJ7p9tew30CS/ZhjgjxZbxw935VwX7O+7VJtO7y1M9Ob4reIgIB7WWiIgV9Yxvmme0NJvU3jP1y81GdYwEfCKRuITM7ptIJOWvzOId1hY+iLvb/fdbHyPPku517likV+xqPkEAv7SYbJ9w+rI+y5qOvsiTUm7kefJpuN2O07EcnWz2qzA+/80TSWM +api: eJx9VMFu2zAM/RWDpw0Q4q7oyacFS4AG7dCizXYJjIC1mVidbamSXDQz9O8DZTuxl7a5xCIfKeo9ki043FtINnBn9ljLv+ikqi2kAnKymZGaz5DAgkpyFGGUqwplPQMBSpMJ8FUOCeQBsFWjNNsOCwI0GqzIkeGrWqixIg4J7q3MQYDkSzS6AgQYemmkoRwSZxoSYLOCKoSkBXfQHGidkfUeBDjpSjYsQqZolYP3KSewWtWWLMdcXlzx3/Q5j02WkbW7poweejB4AVeXl+fY31jKPDwoWhqjDAjIVO2odoxFrUuZBXf8bDmgHRWsDbPkZFdKTg5lyV/SUWXPAaXKJl6sD3e7QNn05V4cLbJ2tCcDPvVisKExeBjRc6u6AvmJld1/xuRPshb3gYwO8jE0kBGt2etZQN0EQgb3Khi8gMy9jdKop2fK3CjND+byzYE/1X/EnDphE7jpyu9x6SnHSaJOoY+pWHQSvHfZALler+/PEvJPQEWuUKduD53tCkggHve9jbvOtnF7bHEPAiyZ12EEGlNyGGoZxOyOhXM6ieNSZVgWyrrOnXJk1hjpDiF0fr+6ocM1YU4Gkk06Bjxy53W9NIUd+Uctb4gZ6Ydw3rhCmb7yYRCLLsoHXXdqLOt8T7XDaH6/gv93xMTFI4JZ6IjhpuAGMXqsTeIYg3mGMgYBVIUBAUdYfT96WE9mrrvmYvZtdsEmrayrsB5d0W+pxbB3JvW1p7F9b531/HAvxrrkeN+X2vYqb2CiMufvdAYByWmZpQJYPMa37RNa+mVK79n80pBhDVMBr2gkPjGjmxZyafk7h2SHpaVP6v7y0E/E1+ijkgedaxb5FcuGTyDgDx0mOzcsjGLoorb3z7OMtBtFnu03brfjHCyWt8v1Erz/B7aIIi0= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-organization-membership-admin-simple-accounts-organizations-organization-id-memberships-membership-id-delete.api.mdx b/docs/docs/reference/api/delete-organization-membership-admin-simple-accounts-organizations-organization-id-memberships-membership-id-delete.api.mdx index 694298a987..aef0bd76d4 100644 --- a/docs/docs/reference/api/delete-organization-membership-admin-simple-accounts-organizations-organization-id-memberships-membership-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-organization-membership-admin-simple-accounts-organizations-organization-id-memberships-membership-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete organization membership" sidebar_label: "Delete organization membership" hide_title: true hide_table_of_contents: true -api: eJztWUtv4zYQ/ivCnFqAsNKgJ51qbAxskA1iJNn2YBgGLY4tbvTgklS6rsD/Xgwp25LsddIHigL2KRE5nMc331BjTQOWrw0kMxiLQpYwZ1Ap1NzKqrwVkIDAHC0uKr3mpfzDry8KLJaoTSbVgtOphZGFynHB07SqS2t60mbRPyzFoqPAdB/8XjAIDBTXvECLmtxroOQFQgIDXcBAlpCA4jYDBhq/1lKjgMTqGhmYNMOCQ9KA3Sg6bqyW5RoYWGlzWnjo6ItuBTjHdrZ6nv1jS/c7bcHOnJQYVZUGDZ27vrqiPwJNqqUifyCBpzpN0ZhVnUePrTAwSKvSYmlJnCuVy9S7H38xdKbp+KI0ZdPKYEHozULXZcfJZVXlyMuOlzd6Ez3WtCJwxevcQrLiuUHHWiqI4GS71zg2MFIbn7EGeLl5WPnUSYuFOXRHilNwEUaE0Kqvqy9OyWpXyjrPgUDdKnjEFWVzu18tv2Bqe5mbkQudE74EbkKUk9JKu4H9ea4135w0+NlH7piHYCEFkoo21rMEI7rdY+BYr3TPE5SHHgKOwe+VfjGKp2dKkt/24Yd7hAyeJxTTbfCDQum+K88SmN4L+r4DRrd8zh6lXSUNIWqL6uwBautrCA9XcvGCm/PEZKxkdEfBH7P6XRvt29y8SKVCN7gP9tIKXlrBSyt4aQUvreClFby0gpdW8H8J0KUV/HdbwaFWxwC1rt7Z+qWVwFNYfqB9x6BAY/j6pOh9K+K/VVou84EHXAhJdwfPpx0XwvfbfsynoLppVb+VHx/Y3u9hrp6srlNbaxQTAusvZWsS4H1nrnYfjp2jEz9fXx9+Z/6V51KEizW48/c/Mnt4fI0cT3hepb3dd9SHLC2uUQdu9VDaB/ypCg56rpj1O3kSRL4v6sGInmnX0QBA1R6QXaH7Bccgtd86ag6y8YGw/Gbf5AxhE9xv5TpJ36foOGGGDD1Jj4/Pz9MDhYEffWIECkXdPiTav0A8v21W7SdFfnBjM0gg9rOhOMyG4u1sKO61/nEzmOe4uPN2ipveBMYBA4P6dTsRqnXuzSjpuRIeM2uVSeIY61GaV7UY8TWWlo+4DIJz0pHWmi5IUjKe3t7h5iNygRqS2bwr8EQUD6Tti+0SzZW8Q4K+nRiNa5tVug1nOzHKwinnCbSquvwZe+ei8fQWhsD3tqgWeeqpt7Xkt4ENwt5HCwyw8JUIFnnxy26HiEMYBjNXo59GV747qIwteNkx8Wbqew7vMCGixyrn0peid69pOTEDzwnKo2cFMNjyAoY/Chkkh7O+buvCIOkP6OYMsspYMtM0S27ws86do+WvNWpK95zBK9eSLwn8WQNCGvpftDOug4h2VyD88NhW6Y8RsOORbilREh9eeV7TEzB4wc2RuSUx9j8030fK36PZlvNNKzNOU1S2c/rg2qfi2NX7zeTT5HkCzv0J9NpV/Q== +api: eJztWUtv4zYQ/ivGnFqAiNKgJ51qbAyskQ1iJNn2YBgCLY0tbvTgklS6rqD/XgwpyZTsddIHigL2KRE5nMc331BjTQ2GbzWES5gmuShgxaCUqLgRZTFPIIQEMzQYlWrLC/GHXY9yzNeodCpkxOlUpEUuM4x4HJdVYfRAWkfDwyKJPAXaf7B7ziAwkFzxHA0qcq+GgucIIYx0AQNRQAiSmxQYKPxaCYUJhEZVyEDHKeYcwhrMTtJxbZQotsDACJPRwoOnbzJPoGlYb2vg2T+2dN9rc3ZWpETLstCo6dzN9TX9SVDHSkjyB0J4quIYtd5U2eSxFQYGcVkYLAyJcykzEVv3gy+aztSeL1JRNo1wFhK1i1RVeE6uyzJDXnhe3qrd5LGilQQ3vMoMhBueaWxYS4XEOdnu1Q0bGam0zVgNvNg9bGzqhMFcH7ojklNwEUaE0GaoayhOyWpXiirLgEDtFDzihrLZ7ZfrLxibQeaW5IJ3wpbArYtyVhhhdrA/z5Xiu5MGP9vIG2YhiESCpKKN9SzBmMz3GDRsULrnCcrDAIGGwe+letGSx2dKkt/24bt7hAyeJxSLLvhRofjvyrMEZvCCvvfA8Mvn7FHqK2kMUVtUZw9QW19jeLgU0QvuzhOTqRSTOwr+mNXv2mjf5vpFSOm6wX2wl1bw0gpeWsFLK3hpBS+t4KUVvLSC/0uALq3gv9sKjrU2DFCp8p2tX1wmeArLD7TfMMhRa749KXrfithvlYaLbOQBTxJBdwfPFp4L7vvtMOZTUN22qt/Kjw1s7/c4V09GVbGpFCYzAusvZWvm4H1nrvoPx01DJ36+uTn8zvwrz0TiLlbnzt//yGzhsTVyPOFZGQ9231EfojC4ReW4NUBpH/Cn0jlouaK37+SJE/m+qAVj8ky7DQ0AZGUB6QvdLjQMYvPNU3OQjQ+E5TfzJmcIG+d+K+clfZ+i44QZM/QkPT4+Py8OFDp+DInhKDTx+5DJ/gVi+W3Scj8psoMbk0IIgZ0NBW42FHSzoWDQ+gf1aJ7TBN7bKagHE5gGGGhUr91EqFKZNSOF5Yp7TI2RYRBkZcyztNTGba/oZFwpuhbp6HQxv8PdR+QJKgiXK1/giYjtqDoU69PLpbhDArydE00rk5aqDaKbE6XuVGNpsyl91ky3WBg+mS7mMIZ7sEUVyGNLuM6S3QbmBavDIOB2+YqLABhgbusPDPL8l36H6ELIOTPXVz9dXdueoNQm54Vn4s2EDxzuMSF6BzLjwhagda9umbAEywTKnuUCMOjYAOOfggzCwwmf37AwCIdjuRUDyjOZqes11/hZZU1Dy18rVJTuFYNXrgRfE/jLGhKh6f+knWwdRNRffPDDY1ubP06AHY+0o0RBfHjlWUVPwOAFd0emlcTT/9D8ECl7e6Yd5+tWZhrHKI13+uCyp+Loq/x29mn2PIOm+ROwLFKe sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-organization-provider.api.mdx b/docs/docs/reference/api/delete-organization-provider.api.mdx index 7bb7f0ce74..34ffe7a626 100644 --- a/docs/docs/reference/api/delete-organization-provider.api.mdx +++ b/docs/docs/reference/api/delete-organization-provider.api.mdx @@ -5,7 +5,7 @@ description: "Delete an SSO provider configuration." sidebar_label: "Delete Provider" hide_title: true hide_table_of_contents: true -api: eJyNVMFu2zAM/RWDpw0Qkq7oyacFa4AG7dCg6XYJjIK1GVudbamSHDQz9O8DZTt2mnVYLrHER4p8fGQLDnML8RbuTY61/I1OqtpCIiAjmxqp+QwxXFNJjiKso83mPtJG7WVGJkpVvZN5Y4LbDAQoTd1hlUEMWfB6UpPYT4MvCNBosCJHhjNoocaKIIYB8CQzECD5dY2uAAGGXhtpKIPYmYYE2LSgCiFuwR00u1pnZJ2DACddyRfrIdFVBt4nHMJqVVuy7HV5ccV/p5VumjQla3dNGT30YPACri4vz7E/sZRZKCtaGqO4plTVjmrHWNS6lGkwz18sO7STlLVhrpzsUsnIoSz5Szqq7DmgVOmJFevD/S7Qdlq7F8cbWTvKyYBPvBju0Bg8TAi6U12CXGJl839x+Z2sxTyQ0UE+hgYyoke2em6hbgIhg3kVLryA1L1NwqjnF0rdJMw35vLNgR/zP2JGLWwDN136PS4ZY4wt6jr0MRXXXQv+9tgAuXl8XJ8F5J+AilyhRs0HdbsCYphP1W/ng7rtvJ0I3YMAS2Y/jEJjSnZFLUNDu2PhnLbxfE7NLC1Vk80wp9rhDGUHTDhG2hjpDiHIYr26pcMNIU9bvE2mgA3rsFPWKezYDdTylpiffiwXjSuU6esYBrPovHzo8k5Nm7wIyUWL9QreL5MTEw8MpkEfw0vBDOJd2WO1IICqMC7gCKuvRwt3lznsnrmYfZld8JVW1lVYT57o19l63EUnGbbjGP/35utpY8HOdYkyjFSooO2lsIUTKbBEBjGAgHi69xIBhbKOfdr2GS39MKX3fP3akOH2JgL2aCQ+M9nbFjJp+TuDeIelpX8U9OmhH53P0UdpDxKouf97LBs+gYBfdHi3oMNuKQaJtT1ikaak3cT3bBWyFo8jc728Wz4uwfs/Sr4+Mw== +api: eJyNVMFu2zAM/RWDpw0Q6q7oyacFa4AG7dCgyXYJjIK1GVudbamSHDQz9O8DZTtxmnVYLrHIR4l8fGQHDgsLyQYeTIGN/I1OqsZCKiAnmxmp+QwJ3FBFjiJsotXqIdJG7WROJspUs5VFa0LYBQhQmvrDIocE8hD1pCZ3P42xIECjwZocGc6ggwZrggRGwJPMQYDk1zW6EgQYem2loRwSZ1oSYLOSaoSkA7fXHGqdkU0BApx0FRuWY6KLHLxP+QqrVWPJctTV5TX/nVa6arOMrN22VfQ4gMELuL66Osf+xErmoaxobozimjLVOGocY1HrSmbBHb9YDugmKWvDXDnZp5KTQ1nxl3RU23NApbITLzb7h22g7bR2Lw4W2TgqyIBPvRhtaAzuJwTdqz5BLrG2xb+4/E7WYhHI6CEfQwMZ0Zq9nluo20DI6F4EgxeQubfJNer5hTI3ueYbc/nmwB/zP2COWtgEbvr0B1x6vOPYor5DH1Nx07fgb4+NkNv1enl2If8E1ORKddR8ULcrIYF4qn4bj+q2cTcRugcBlsxuHIXWVByKWoaG9sfSOZ3EcaUyrEplXe9OOTJrjXT7EDpbLu5of0vIM5Zs0ilgxerr9XQKO/QAtbwjZmUYxlnrSmWG7MdxLPsoH3q7VdPWzgpqHEaz5QLer5ATF48JZkEV40vBDWJSrE3iGIP5AmUMAqgOQwKOsP568HBPmbn+mcuLLxeXbNLKuhqbyRPDElseN9BJht1xeP973w20sUxjXaEMgxQq6AYBbOBEACyMUQIgIJluu1QA95Vjuu4ZLf0wlfdsfm3JcHtTATs0Ep+Z7E0HubT8nUOyxcrSPwr69DgMzOfoo7RHCTTc/x1WLZ9AwC/av1vLYaOUo8S6ATHLMtJuEnu2AFmLh0G5md/P13Pw/g/rJTrU sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-organization.api.mdx b/docs/docs/reference/api/delete-organization.api.mdx index 19d5d55960..000856b7bd 100644 --- a/docs/docs/reference/api/delete-organization.api.mdx +++ b/docs/docs/reference/api/delete-organization.api.mdx @@ -5,7 +5,7 @@ description: "Delete an organization (owner only)." sidebar_label: "Delete Organization" hide_title: true hide_table_of_contents: true -api: eJyVVE1v2zAM/SsGTysgJFmxk08L1gAN2qFFm+0SGAVrM7E621IluWtm6L8PlJ3YTtpiO9kSHz/0yMcGHG4txGu4MVus5B90UlUWEgEZ2dRIzWeI4YIKchRhFakBMPqkfldkIlUVu7MJCFCaTLAsM4ghC04PQw8QoNFgSY4M522gwpIghiHoQWYgQHJejS4HAYaea2kog9iZmgTYNKcSIW7A7TS7W2dktQUBTrqCL4bviZYZeJ9wGKtVZcmy5/lsxp/xO+/rNCVrN3UR3XVgEJCqylHlGI5aFzINYadPln2avhrvvRfw5fz8NPBPLGTWVrMwRpn/iAraMK9OtnVn5FAW/CcdlfYUUKh0ZMVqd7MJXI/J8uJwIytHWzLgEy/2d2gM7gaMXqu2QPACSrv9iPzvZC1uCQ7B3ocGMqIVWz33XNeBkL15GS68gNS9DsKoxydK3SDMN+by1YHv6z9g+uFZB27a8jtc0sfoW9R26H0qLtoWvJVsD7lcrW5PArbzUZLLVa+PIAmXQwzToQjstDnShAcBlszLXjm1KdgJtQytbI+5c9rG0ynVk7RQdTbBLVUOJyhbYMIx0tpItwtB5rfLK9pdEmZkIF4nQ8A9T2A7U2PYoQ+o5RUxM52K57XLlem1HjSct14+9Hejhu2dh+Ki+e0SjjfOyMRSwTRMxj5TMIM4enb/WhBAZRAKOMLy68HCfWUO2zSzyefJjK+0sq7EapCi23k34/U1qrLpRfyvK7Jjjqd1qguUQU/hEU03B+vRMrQgID7ejomAXFnH2KZ5REs/TOE9Xz/XZLiziYAXNBIfmed1A5m0/J9BvMHC0gfv+HTX6eUseq/cffcrbv0LFjWfQMAv2r2xysNSyfcT1nSoeZqSdgP/kx3Io3jQysXierFagPd/AYw5S3M= +api: eJyVVN9P2zAQ/leiexqS1XRoT3laNSpRwQSCbi9VhI7kaMyS2NgOo4v8v0/npE1CAW1Pie+Xz99337XgcGsh2cCV2WIt/6CTqraQCsjJZkZqPkMCZ1SSowjrSI0Co0/qd00mUnW5O5mBAKXJBM8qhwTykHQ3zgABGg1W5MjwvS3UWBEkMA66kzkIkHyvRleAAENPjTSUQ+JMQwJsVlCFkLTgdprTrTOy3oIAJ13JhvF7olUO3qdcxmpVW7KceTqf82f6ztsmy8jah6aMbvpgEJCp2lHtOBy1LmUWysaPlnPaoRvvvRfw5fT0uPBPLGXedbM0Rpn/qAraMK5Odn3n5FCW/CcdVfY4oFTZxIv17uohYD0Fy4uDRdaOtmTAp17sbWgM7kaIXqquQfACKrv9CPzvZC1uCQ7F3g8NYERr9nrmXDcBkL17FQxeQOZeRmXU/SNlblTmG2P54sAP/R9ihuHZBGy69vu4dKgxUNQx9D4UZx0Fb122Dzlfr6+PCnbzUZEr1KCPIAlXQALxWAQ2bl9pwoMAS+Z5r5zGlJyEWgYqu2PhnE7iuFQZloWyrnOnnJk1RrpdSF1cry5od06Yk4Fkk44Dbnnuukmahh3QRy0viPHotbtoXKHMoPCg3KLL8oHVBzUmdbGl2mG0uF7B6z0zcbFAMAvzsL8puEGMHmuTOMZgnqGMQQBVQR7gCKuvBw+zych118xnn2dzNmllXYX16Ip+011Nl9aky3aQ7r8uxh45ntFYlyiDisIj2p79zWQFWhCQvN6JqQCmlGPb9h4t/TCl92x+asgws6mAZzQS7xnnTQu5tPyfQ/KApaUP3vHpplfJSfReu3v2a6b+GcuGTyDgF+3eWOBhlRT7CWv7qEWWkXaj/KPNx6N4UMjZ8nK5XoL3fwGtLUgU sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-project-admin-simple-accounts-projects-project-id-delete.api.mdx b/docs/docs/reference/api/delete-project-admin-simple-accounts-projects-project-id-delete.api.mdx index da8efc345c..fec720ebb1 100644 --- a/docs/docs/reference/api/delete-project-admin-simple-accounts-projects-project-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-project-admin-simple-accounts-projects-project-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete project" sidebar_label: "Delete project" hide_title: true hide_table_of_contents: true -api: eJztWVFv4zYM/isBnzZASLpiT35acA1wQe9wQdvbHoLAUCwm0dW2dJLcXWbovw+U7NhOerlu2MOA5KmNRFLkx48yIdbg+NZCsoSpKGQJKwZKo+FOqnIuIAGBOTpMtVFfMHMpJ6nUykLnmPIsU1XpbLtr04OcFGkaVYGB5oYX6NDQQTWUvEBIoBMFBrKkFe52wMDg10oaFJA4UyEDm+2w4JDU4PaaNK0zstwCAyddTguLaGo0F+D9iixYrUqLlpRub27oj0CbGakpMEjgscoytHZT5aOHRhgYZKp0WDoS51rnMgs4TL5Y0ql7jmhDKDkZTxBmn5qq7Hm4VipHXvZcvDP70UNFKwI3vModJBueW/SsgVhEJ5u92rOjQyob8KuBl/tPmwCkdFjYU3ekOIcVYUQIbYa2huKeHVbKKs+BQG0NPOAGvGftvloT9IO0LcmFnkag1l2MclY66fbQ6XNj+P7sgZ9D5J4FCFIpkEw0sV4kGKN5h4FnoMyWl/KvwNXLBOXTAAHP4E9lnq3m2YWS5I8u/HiPhNv5IqFYtMEfFUpaYLFGY3dSXyYw/ZoZfeyB0S+fi0fpUEnHELXdy6UD1LZeR/BwLdNn3F8mJlMtR/cU/GunfveM5mtun6XWsRvsgr22gtdW8NoKXlvBayt4bQWvreC1FfxfAnRtBf/bVvDYqmeAxqg3tn6ZEngOy3e07xkUaC3fnhX92IiEt0rHZX7kARdC0t3B80XPhfh4O4z5HFR3jekf5ScE1vl9nKtHZ6rMVQbFjMD6R9maRXjfmKvDw7H3pPHr7e3pO/PvPJciXqzRnX//yBzgCTXyesJzlQ1231AfsnS4RRO5NUCpC/iDig4GrtjtG3kSRb4vGsAYPdGup9d/XQVADoUeFjyDzH3rmTnJxjvC8pv7IWcIm+h+I9dLepei1wlzzNCz9Hj/9LQ4MRj5MSRGpNCo+XYEPrud6iYuYWzidpDAJMxcJnHmMmlnLpO2lZvU3SDFAwOL5qWdtFQmDwa0DFmPP3fOaZtMJliNs1xVYsy3WDo+5jIKrshGVhm66sjIdDG/x/175AINJMtVX+CRyBrpNxQ7pIxreY8EYjP1mVZup0zTbLSDn13U8oEKG9VnwjQ4N5ou5nAM4WCLqopngUTtSWEb2FHYXbTAAItQU+CQF78ddogChGE85mb8y/gmfOeVdQUve0ecJHHg4AEDouhE51yGIgru1E12lxCyS3kL+QUGbYah164zSHrjshWDnbKOtOt6zS1+Nrn3tPy1QkNZWzF44UbyNWG4rEFIS/+LZuh04ujhToKfHpqy+XkE7PUA2syWlNYXnlf0Cxg843441gvXyq4lTt0ITLMMteupntyCxLBDOdzNPsyeZuD93yKXwHs= +api: eJztWd9v4zYM/lcCPm2AUHfFnvy04Brggt7hgra3PRSBodhMrKtt6SS5u8zQ/z5Q8s+kl+uGPQxIntpIJEV+HykTYgOW7wzETzDPSlHBmoFUqLkVslpmEEOGBVpMlJZfMLUJJ6nEiFIVmPA0lXVlTbdrkl5OZEkSVIGB4pqXaFHTQQ1UvESIYRAFBqKiFW5zYKDxay00ZhBbXSMDk+ZYcogbsHtFmsZqUe2AgRW2oIVVMDVbZuDcmiwYJSuDhpRurq/pT4Ym1UJRYBDDQ52maMy2Lmb3rTAwSGVlsbIkzpUqROpxiL4Y0mlGjihNKFkRTsj0PtF1NfJwI2WBvBq5eKv3s/uaVjLc8rqwEG95YdCxFuIsONnuNY4dHFIbj18DvNp/2noghcXSHLsjslNYEUaE0HZqayruWL9S1UUBBGpn4B634Bzr9uWGoJ/Q9kQujDR8at2GKBeVFXYPgz7Xmu9PHvjZR+6YhyARGZKJNtazBGO2HDBwDKTe8Ur85XP1PEH5NEHAMfhT6mejeHqmSfLHEH64R/ztfJZQrLrgDwolKbHcoDa5UOcJzLhmZh9HYIzL5+xR6ivpEKKuezl3gLrW6wAerkTyjPvzxGSuxOyOgn/t1O+e0X7NzbNQKnSDQ7CXVvDSCl5awUsreGkFL63gpRW8tIL/S4AureB/2woeWnUMUGv5xtYvlRmewvId7TsGJRrDdydFP7Yi/q3SclEceMCzTNDdwYvVyIXweDuN+RRUt63pH/HjAxv8PuTqweo6tbXGbEFg/SO2FgHeN3LVPxw7Rxq/3twcvzP/zguRhYs1uPPvH5k9PL5GXie8kOlk9w31ISqLO9QhtyYoDQF/kMFBnytm98Y8CSLfF/VgzB5p19Hrv6o9IH2h+wXHILXfRmaO2HhHWH6zP8wZwia438qNSB8oej1hDjP0ZHq8f3xcHRkM+TFNjJBCs/bb4fPZ5nKYuPixic0hhsjPXKIwc4m6mUvUtXJRMwxSHDAwqF+6SUutC29ACc96+Jlbq+IoKmTKi1waG7bXpJnWmi44Up2vlne4f488Qw3x03os8EApGpJuKtYTxZW4Q4KunfXMa5tL3bYY3bgnD1rOJ8BWjvmf77CyfDZfLeEQuMkW1RJPfep0J/ltYKNgTRxF3C9fcREBAyx9JYFFXv7W7xDxhFw45vrql6tr/3WXxpa8Gh1xRN3EwR4DSsxIFVz40vHuNC2nT+A5JbY8q8Cg4xVGTTqDeDQkWzMguki7aTbc4GddOEfLX2vUxNqawQvXgm8Iw6cGMmHo/6wdNR052t9E8NN9Wyw/z4C9HkDHbEW0vvCipl/A4Bn302Gev0zyLnGaVmCepqjsSPXo7qMM64vgdvFh8bgA5/4Gmd29HA== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-project-membership-admin-simple-accounts-projects-project-id-memberships-membership-id-delete.api.mdx b/docs/docs/reference/api/delete-project-membership-admin-simple-accounts-projects-project-id-memberships-membership-id-delete.api.mdx index d2a482c837..ad19a8d646 100644 --- a/docs/docs/reference/api/delete-project-membership-admin-simple-accounts-projects-project-id-memberships-membership-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-project-membership-admin-simple-accounts-projects-project-id-memberships-membership-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete project membership" sidebar_label: "Delete project membership" hide_title: true hide_table_of_contents: true -api: eJztWUtv4zYQ/ivCnFqAsNKgJ51qbAxskA3WSLLtwTAMWhzb3Egil6TSdQX992JIPe2sN32gKGCfEpPDeXzzDTnQVOD41kKygKnIZQFLBkqj4U6q4lZAAgIzdLjSRn3G1K1yzNdo7E7qFacDKytzneGKp6kqC2dbQbvqjkixGhyzwx9+L1gABpobnqNDQ/5UUPAcIYFeDTCQBa1wtwMGBr+U0qCAxJkSGdh0hzmHpAK313TSOiOLLTBw0mW0MA+qolsBdc06CyN//rGR+05bsLMkJVarwqKlc9dXV/RHoE2N1IQzJPBYpilauymz6KERBgapKhwWjsS51plMfVriz5bOVANftKGkORksCLNfmbIYOLlWKkNeDLy8MfvooaQVgRteZg6SDc8s1qzJuAhONntVzQ6MlNbnqQJe7D9ufMKkw9weuyPFKbgII0JoM9Y1FqdkNStFmWVAoLYKHnBD2Wz31ZpSPMrcglwYnPBMvwlRzgon3R7689wYvj9p8JOPvGYegpUUSCqaWM8SjOi2x6BmoMyWF/IPz9XzBOXjCIGawe/KPFvN0zMlyW99+OEe8S/EWUIxb4M/KJThC3mWwAxrJrofgDEsn7NHqaukQ4iO+7PzBKht8Q7g4VqunnF/nphMtYzuKPjXrH7TRvOa22epdegG+2AvreClFby0gpdW8NIKXlrBSyt4aQX/lwBdWsF/txU81FozQGPUG1u/VAk8heU72q8Z5Ggt354UvW9E/LdKx2V24AEXQtLdwbP5wIXw/XYc8ymobhrV38uPD6z3+zBXj86UqSsNihmB9ZeyNQvwvjFX3YfjuqYTP19fH39n/pVnUoSLNbjz9z8ye3h8jbye8Eylo9031IcsHG7RBG6NUOoD/qCCg54rdvtGngSRb4t6MKIn2q1pAKBLD0hX6H6hZpC6rwM1R9l4R1h+dd/lDGET3G/kBknvU/Q6YQ4ZepIe75+e5kcKAz/GxAgUipq3I+rfDk9tt1P9LMhPatwOEoj9CCgOI6C4HQHFbVcXV/3spo4Hz1FcjUYuNTCwaF7awU9pMq9cS0+O8HPnnLZJHGM5STNVignfYuH4hMsguCQdaWnoRiQl0/ntHe7fIxdoIFkshwKPxOnA0rFYl1mu5R0S1s2IaFq6nTJNT9KOiHbhVO0Zs1FDwky9c9F0fguHSI+2qPh46rnWWvLbwA7C7qMFBpj70gOHPP+l2yGmEIbBzNXkp8mVbweUdTkvBiZO5XrkawcHkTrWGZe+7LxnVUOCBXgSUAo9DYBBSwQYNPgMktEgb9icMEjGI7glg52yjpRX1Zpb/GSyuqblLyUayu+SwQs3kq8J7UUFQlr6XzRTrKM4uksOfnho6vDHCNjr8bUcKIgALzwr6RcweMb9eB5J7PwPLY9B8pfkruV31chM0xS1G5w+utOpELqKvpl9mD3NoK7/BOxgPJU= +api: eJztWUtv4zYQ/ivCnFqAiNKgJ51qbAyskQ3WSLLtwTAMWhrb3Egil6TSdQX992JIPSg7600fKArYp8Qk5/V9M+RAU4PlWwPJAiZZIUpYMpAKNbdClrMMEsgwR4srpeVnTO2qwGKN2uyEWnESWBlRqBxXPE1lVVrTHTSrXkRkq0DMhD/cnrcADBTXvECLmvypoeQFQgKDGmAgSlrhdgcMNH6phMYMEqsrZGDSHRYckhrsXpGksVqUW2Bghc1pYe5VRbMMmob1Fkb+/GMj9702b2dJSoySpUFDcjfX1/QnQ5NqoQhnSOCxSlM0ZlPl0UN7GBiksrRYWjrOlcpF6miJPxuSqQNflCbSrPAWMr1f6aoMnFxLmSMvAy9v9T56qGglww2vcgvJhucGG9Yynnkn2726YQdGKuN4qoGX+48bR5iwWJhjd0R2Ci7CiBDajHWNjxNZ7UpZ5TkQqJ2CB9wQm92+XBPFI+YW5EIg4TL91kc5La2wexjkudZ8f9LgJxd5wxwEK5EhqWhjPUswotmAQcNA6i0vxR8uV88TlI8jBBoGv0v9bBRPzzRJfhvC9/eIeyHOEop5F/xBoYQv5FkCE9ZMdB+AEZbP2aPUV9IhRMf92XkC1LV4B/BwJVbPuD9PTCZKRHcU/GtWv2mjfc3Ns1DKd4NDsJdW8NIKXlrBSyt4aQUvreClFby0gv9LgC6t4L/bCh5qbRig1vKNrV8qMzyF5TvabxgUaAzfnjx63x5x3yotF/mBBzzLBN0dPJ8HLvjvt+OYT0F126r+Hj8usMHvQ64era5SW2nMpgTWX2Jr6uF9I1f9h+OmIYmfb26OvzP/ynOR+YvVu/P3PzI7eFyNvE54LtPR7hvqQ5QWt6h9bo1QGgL+IL2DLlfM9o154o98+6gDI3qi3YYGAKpygPSF7hYaBqn9Gqg5YuMdYfnVfjdnCBvvfnsuIH2g6PWEOczQk+nx/ulpfqTQ58c4MXwKRe3bEQ1vh0ttu5PDLMhNauwOEojdCCj2I6C4GwHFXVcX18PspomD5yiuRyOXBhgY1C/d4KfSuVOuhEsO/3NnrUriOJcpz3fSWL+9JMm00nQPkuhkPrvD/XvkGWpIFsvwwCNlss/N8bGeT67EHRLC7WBoUtmd1G0n0g2Gdl6qcXmykWGaTLZYWh5N5jM4xHe0RSXHU5dhnSW3DSwI1iRxzN3yFRcxMMDCFRxY5MUv/Q7lByHnzVxf/XR17ZoAaWzBy8DEKYZHvvZwUCrHKufCFZvzrG6pX4Cjnohz5AODjn4I2noGyWh8F7YkDJLx4G3JgIgl5XW95gY/6bxpaPlLhZr4XTJ44VrwNaG9qCEThv7P2tnVURz91QY/PLTV92ME7PX4uhwoKQFeeF7RL2DwjPvxFJJy8j+0PAbJXY27Lr/r9swkTVHZQProJqdC6Ov4dvph+jSFpvkTlI05Ng== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-project.api.mdx b/docs/docs/reference/api/delete-project.api.mdx index 686965253d..5b5c5d2641 100644 --- a/docs/docs/reference/api/delete-project.api.mdx +++ b/docs/docs/reference/api/delete-project.api.mdx @@ -5,7 +5,7 @@ description: "Delete Project" sidebar_label: "Delete Project" hide_title: true hide_table_of_contents: true -api: eJyVVE1v2zAM/SsBTxsgJFmxk08L1gAN2mFB2+0SBAVrM7E621Ilumhm6L8PlL+Spj3sZJt8ouj3+NgA495DsoG1M0+UsoetAmPJIWtTrTJIIKOCmB5sCwAFFh2WxOTkYAMVlgQJdPkHnYECXUkEOQcFjp5r7SiDhF1NCnyaU4mQNMAHKyc9O13tQcHOuBIZEqjrWIU1FwLoepusMghhKxW9NZUnL0Uu5nN5ZORTp610DQnc1WlK3u/qYnLbgUFBaiqmigWO1hY6jT85e/JyphkbCyEEBV8vLs4L/8ZCZ/HYZOmccf9RVRiy5Fi3fWfEqAt500ylPwcUJj3JYnX4uYuMn/IW1BDRFdOeHIRtUH0MncPDEZk3pm0QgoLS79/ToYf+IO9xTzAU+xgayZjcSzaI/LaOhPTpVQwEBSm/HpUxj91I9bjvwuUrQxj7HzDjHG0iN237HW471hglahX6mIrLVoL3LushV/f367OC7XycDsZldMlkPbikJM7N6J/oG84hgVnnFD9rRs8EUODJvfSmql0hULQ66tt+5szWJ7MZ1dO0MHU2xT1VjFPULXArNdLaaT7EIov16poOV4QZOUg222PAnYxlO2insEEctPqahK7O4Iuac+P033Z6Oo/n7akQRd+ZY80XsbnJYr2Ct2SdpMQ/mMZx6W+KaVBvfnv8W1BAZXQPMGH5bciI2MJhe818+mU6l5A1nkusjq44k+ukwYEDGcaZLVBHu8R2mk7HTb/xPChIjrbfVkFuPAuiaR7R0y9XhCDh55qcKLNV8IJO46PwtGkg017eM0h2WHg6a2bYMPDptjPB5wmo95vs1atEuhcsavkCBX/ocLql45LI++FoOsAiTcny0dGznSZTNAz35fJmeb+EEP4BoI0ikA== +api: eJyVVE1v2zAM/SsBTxsg1Fmxk08L1gAN2mFB2+0SBAVrM7E621Ilulhm6L8PlD/iLO1hJ9vkI0W/96gWGPce0g2snXmmjD1sFRhLDlmbepVDCjmVxPRoOwAosOiwIiYnhS3UWBGk0OcfdQ4KdC0R5AIUOHpptKMcUnYNKfBZQRVC2gIfrFR6drreg4KdcRUypNA0sQtrLgXQzzZb5RDCVjp6a2pPXppczufyyMlnTluZGlK4b7KMvN815eyuB4OCzNRMNQscrS11Fn8yefZS0x4HCyEEBZ8vL88b/8RS57FstnTOuP/oKgxZcqy7uXNi1KW8aabKnwNKk51ksT5830XGT3kLaozommlPDsI2qCGGzuFhQuat6QaEoKDy+7d0GKDfyHvcE4zN3odGMmYPkg0iv20iIUN6FQNBQca/J23MU2+pAfdVuPzNEI7zj5ijjzaRm278Hrc99jhK1Cn0PhVXnQRvHTZArh8e1mcNO3+cGuMqbslsPW5JRVyY4/7EveECUkj6TfFJe9yZAAo8uddhqRpXChStjvp2nwWzTZOkNBmWhfHcpbdSmTVO8yGWLtarGzpcE+bkIN1sp4B7MWNnr1PYKAlafUNCUr/Wi4YL4/SfzjP9ZhddVYhS78xU6cWeasbZYr2Cfyk6ScnWYBZNMpwU06AmP+vTJMEYvkCdgAKq4s4AE1ZfxoxILMx1x8wvPl3MJWSN5wrryRFnIp0MOHIgFkxsiTouSRyn7dXbDPecBwXp5M7bKhBJBNG2T+jphytDkPBLQ06U2Sp4RafxSXjatJBrL+85pDssPZ0NM94r8OGut/7HGai3hxzUq0W6Vywb+QIFv+hwejfHq6EYzNH2gEWWkeVJ6dlNJi4aLX21vF0+LCGEv0PwHzE= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-queue.api.mdx b/docs/docs/reference/api/delete-queue.api.mdx index c3787f7a21..6eafe399e9 100644 --- a/docs/docs/reference/api/delete-queue.api.mdx +++ b/docs/docs/reference/api/delete-queue.api.mdx @@ -5,7 +5,7 @@ description: "Delete Queue" sidebar_label: "Delete Queue" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsBTxsgJFmxk08L1gAN2mH92i5BUKg2E6uTLVWiimaG//tA+TNN2sNOsc1HinzviamA5M5Dsobli9RBkjKlh40AY9HFt1UGCWSokfDhOWBAEGClkwUSOs6soJQFQgIx+qAyEKBKSMBKykGAw+egHGaQkAsowKc5FhKSCmhvOc+TU+UOBGyNKyRBAiHEKqRIM+CGC09WGdT1hut5a0qPnkuczef8k6FPnbLcLyRwF9IUvd8GPbltwSAgNSVhSQyX1mqVxvFmT55zqlFb1vHwpJoTUhOapLZbVRLu0I3a+x4RAjLcyqAJknktBjL4uHL/cxuZ+njiWvSIMmgNPO0JDkQHMo9PmNKok0HDCF9l/fh1zXlfz86O2fottcpi0mTpnHH/T1WGJJXmJ0VY+GOANulB9D1iRkR0dNebYW7pnNyPxr4yTYNQCyj87pS1OugP9F7uEPpi70MjGZN7jtbsaBsaG7ThVfxQC0jpdVTmSJPvzOUrndRtuBrryE3TfosbiT9I1Cj0PhXnjQQfmeTi/v76qGDjj0NjnMdLP7lpL32BlJthGcQ1QDkkMMNhdcyi7/2s6vxfgwCP7qXbFcFpTpFWRZWb15zI+mQ2wzBNtQnZVO6wJDmVqgFuuEYanKJ9LLK4Xl3i/gJlhg6S9WYMuGNzNnY7hPUSSasukUlr99YiUG6c+tt4qF1eeZNVR+m3Zqz8IjY3WVyv4C1lByG+RTKNpulOimEQb8YepgUBWMQ7BISy+NZHWHLmsDlmPv0ynfMnazwVshwd8Ua0g/Z6BtiQM6ulilcmNlO1aq5hpCa0e4wfkn6jbQTkxhNjq+pRevzldF3z5+eAjhXaCHiRTslH5mtdQaY8P2eQbKX2eNRWv2/g0217JT5PQJxut1OxZAm5V34DAX9wP/4Tigsj7yxSteFFmqKlUeLRfmMv9VY/X14t75dQ1/8AcKhuOg== +api: eJydVUtv2zAM/isBTxsg1Fmxk08L1gAN2mF9ZLsEQaHaTKxOtlyJKpoZ+u8D5UecJu1hp8jiQ+T3fWQaILl1kK5g/iK1l6RM5WAtwNRo49cihxRy1Ej48OzRIwiopZUlElqObKCSJUIK0fqgchCgKkihllSAAIvPXlnMISXrUYDLCiwlpA3QruY4R1ZVWxCwMbaUBCl4H7OQIs0Ot5x4ssghhDXnc7WpHDpOcT6d8k+OLrOq5nohhXufZejcxuvJXecMAjJTEVbE7rKutcpie8mT45hmVFZtuXlS7QuZ8W1QV62qCLdoR+V9jx4CctxIrwnSaRB7MPi5avdzE5H6uOMgBo/Kaw3c7QkMRO9kHp8wo1Elew6j+yIf2g+B476enx+j9VtqlcegydxaY/8fqhxJKs0nRVi6YwdtsgPre8CMgOjhDut939JauRu1fW3aAiEIKN32lLR61x/onNwiDMned41gTJZsDazo2rcy6MyLeBEEZPQ6SnPEyXfG8pVO8rYfjVXEpi2/8xuRv6eoZeh9KC5aCj4SyeVyeXOUsNXHoTAu4tBPbruhL5EKs18GcQ1QASkkuF8dSdS9S5pe/wEEOLQv/a7wVnOIrFVkuf0siOo0SbTJpC6Mo9a85sjMW0W7GDq7WVzh7hJljhbS1XrscM+SbEV26DYQI2t1hQxVt61mngpj1d9WOd3KKtqoEAnfmDHfsy1WJCezmwW8BerAxLMjsyiV/qVoBjFq1qVJIuP1mVQJCMAyTg4QyvLbYGGiGbn2menZl7MpX9XGUSmr0RNvqDoob0CAZZjUWqo4KLGYpuNwBSMOodtefEiHPbYWwNSwb9M8Soe/rA6Br589WmZoLeBFWiUfGa9VA7lyfM4h3Ujt8KisYcvAp7tuED5PQJwut2exYgq5Vv4CAX9wN/7riWui6CXSdOZZlmFNo8CjrcZaGgR+Mb+eL+cQwj8dPmrb sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-queues.api.mdx b/docs/docs/reference/api/delete-queues.api.mdx index b80d4c3bae..da43f145e8 100644 --- a/docs/docs/reference/api/delete-queues.api.mdx +++ b/docs/docs/reference/api/delete-queues.api.mdx @@ -5,7 +5,7 @@ description: "Delete Queues" sidebar_label: "Delete Queues" hide_title: true hide_table_of_contents: true -api: eJy1Vdtu00AQ/ZVonjcX0jaAnwhtJCJAlFJ4iSI0WY+TBdvr7qU0RP53NLtO7aS0SJXIS/ZyZnbmzJnxDhyuLSQLmN1i7tEpXVpYCtAVmbCbp5BASjk5+n7jyZMFAYZuPFn3VqdbSHYgdemodLzEqsqVDJbDH1aXfGblhgrkVWXYr1NkeRfcfVdp2ChHRVi4bUWQgHVGlWsQkGlToIMEvFcp1GIPQGNwCwKccjnvP7O33jy1ULcgvfpB0jURK0Mpp9q+u2zN2/yDo3lqr2KSULO/1t4ZT+HAVrq0MZPxaMR/KVlpVMVOIIEvXkqyNvN576oBg3guV1L7aNQkpkpHazKd/M8DQkBKGfrcQTKqxX+juPPMYvk3vp+iteGiDsSejscPqfuGuUqDVW9mjDbP5y0lhyo/yP4QkGt5cIvl9lMGyeKYpVo84L5ePk7VBx0DZDYLu/4b63voR7IW19Ty/jg0kNG75ttagCorHzXRXM/DQS1AuruOmwdFOWcu79w/G4W5ieE3uE6/tCWKFXqciotYgqdU8u76+vKBw6iPQ2FchEHU+7wfRAW5jW4nFAio0G0ggSG182wY59YQBFgyt2RsqK83OQOxUqG4cbtxrrLJcEh+IHPt0wGuqXQ4QBWBS/YhvVFuG5xML+fvafuOMCUTeqED+MKajCo7hN1XBiv1npirEgveT73baKN+R+lwhTmkaMVksNqv2tk7u8Oiyuloli7gJMNXZ9nktH/28sXL/unZZNxfnWSyP5avJyfZZIIZTmAZFJTproCmIdne9HIOx8wfXHEzogza20cerkEc0diyBwKoCK0IjrB4c3/DyuGaxGdGgxeDER9V2roCy84Tx7U/iO+eUhb2sMpRhdYL0ewaUSygIwpohiMvWNcbbXmYwW63QktfTV7XfHzjyXCllwJu0ShcMU8L5m6zr/kOftJ231Wl64f2ZHjuY42PphWLLVpMpaTKPYlddjR+Mfswu56BgFXz3S10ylYGf3Hj4i9IAPjTHRNMdvFsBzmWa88jJoHolX9/AFM9tz0= +api: eJy1Vdtu00AQ/ZVonp06pG0APxFoJCJAlFJ4iSI0WY+ThbXX3UtpiPzvaHad2klpkZDIS3bntjNnzox34HBtIVvA7BaVRyd1ZWGZgK7JhNs8hwxyUuTo240nTxYSMHTjybrXOt9CtgOhK0eV4yPWtZIieKbfra5YZsWGSuRTbTiuk2T5FsJ9k3m4SEdlOLhtTZCBdUZWa0ig0KZEBxl4L3Nokr0BGoNbSMBJp/j+iaMN5rmFpjPSq+8kXJuxNJRzqd27y869qz8Emuf2KhYJDcfr/J3xFAS21pWNlYxHI/7LyQojaw4CGXz2QpC1hVeDq9YYkn/FSmgfndrCZOVoTaZX/5tgkUBOBXrlIBs1yX+DuPfMYvknvJ+CtcWiCcCejccPofuKSubBazAzRpt/xy0nh1IdVH9ooLQ40GK1/VhAtjhGqUkeYN8sH4fqvY4JMpqlXf8J9b3pB7IW19Th/rhpAGNwzdomAVnVPnKiVc+DoElAuLtemAdNecNY3rm/DgpjE9Nv7Xrz0rUoduhxKC5iC55iydvr68sHASM/DolxERbR4NN+EZXkNrrbUJBAjW4DGaTU7bM07q0UErBkbsnY0F9vFBtiLUNz43XjXJ2lqdIC1UZbF9VL9hTeSLcNrtPL+TvaviXMyYQJ6Bl8ZiZGbh2a3fcDa/mOGKEKS75PvdtoI39FwnBfOZHoxRAwx6+6jTu7w7JWdLRBF3Ba4IvzYnI2PH/+7Pnw7HwyHq5OCzEci5eT02IywQInsAy8KXSfNtM1VQ4H08s5HON9oOIRRBEYt888qCHpgWezNMUgPkHJkFMZBhAcYfnqXsN84U7EZ0Ynz05GLKq1dSVWvSeOO36Q3z2kTOe0VijDwIVsdi0VFtCjArQrkQ/MZm4xm+x2K7T0xaimYfGNJ8OdXiZwi0biinFaMHabfc938IO2+1mq3DAMJZsrH3t8tKOYYtFjKgTV7knbZY/ZF7P3s+sZJLBqv7alztnL4E8eV/wJGQB/sGOB2S7KdqCwWnteLBnEqPz7DRC6s94= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-result.api.mdx b/docs/docs/reference/api/delete-result.api.mdx index 017ef6ae3b..a825f92e1d 100644 --- a/docs/docs/reference/api/delete-result.api.mdx +++ b/docs/docs/reference/api/delete-result.api.mdx @@ -5,7 +5,7 @@ description: "Delete Result" sidebar_label: "Delete Result" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsBTxsgJFmxk08L2gAN2mFF2u0SBIVqM7E62VL1UTQz9N8HSv5Kk+6wU2zzkSLfe2IacHxvIdvA8pVLz51QtYUtA6XRxLdVARkUKNHho0HrpQMGmhteoUNDqQ3UvELIIIUfRQEMRA0ZaO5KYGDwxQuDBWTOeGRg8xIrDlkD7qAp0Toj6j0w2ClTcQcZeB+rOOEkAdax8mRVQAhbKmi1qi1aqnExn9NPgTY3QlPLkMG9z3O0duflZN2CgUGuaoe1IzjXWoo8Tjh7tpTTjPrShuZ3Ip2QK5+S2nZF7XCPZtTfZUQwKHDHiaFsHtiIDjqvPvzYRbL+PXNgPaL2UgKNe44F1qHU0zPmbtTLIGTCr4qegRAo8evFxSlhv7gURcyaLI1R5v/ZKtBxIelJOKzsKUCq/Cj6ETUjKjrGw3YYnBvDD6O5b1VqEAKDyu7P2auDfkdr+R6hL/YxNJIxeaBoIFdrn5zQhlfxQ2CQu7dRmRNRLonLN3dWuOF6bCI3qf0WN5J/kCgp9DEVV0mCf7nk+uHh7qRg8sexMa7i1Z+su6tfoSvVsBPiMnAlZDDDYYPMkvftrOkvQQAGFs1rtzO8kZTEtYhCp9fSOW2z2Qz9NJfKF1O+x9rxKRcJuKUauTfCHWKRxd3qBg/XyAs0kG22Y8A9+TM57hjWq8S1uEHird1fC+9KZcSfZKN2h5UpK0T1d2os/iI2N1ncreA9a0chukg8j77pTophYO/GHqYFBljFawQOefWtj5DqxGE6Zj79Mp3TJ62sq3g9OuK9bkf99RSQKWdachGvTeymaQXdwEhQ6NYZPWXDZtsyKJV1hG6aJ27xp5Eh0OcXj4ZE2jJ45UbwJ6Js00AhLD0XkO24tHjSWL914NO6vRifJ8DON9wJWZOK1C29AYPfeDj6P4p7o+xs0rTxRZ6jdqPMkzVHfuoNf7W8XT4sIYS/Ahl0bA== +api: eJydVU1v2zAM/SsBTxsg1Fmxk08L2gAN2mFFmu0SBIVqM7E62XIlumhm6L8PlGzHadIddoosfoh875FpgeTOQbqG+avUjSRlKgcbAaZGG74WOaSQo0bCR4uu0QQCamlliYSWQ1uoZImQQjQ/qhwEqApSqCUVIMDiS6Ms5pCSbVCAywosJaQt0L7mQEdWVTsQsDW2lAQpNE3IQoo0OyxD5skiB+83nNDVpnLoOMfldMo/ObrMqppLhhQemixD57aNniw7ZxCQmYqwInaXda1VFjpMnh3HtKO6asv9k4ovZKaJQV25qiLcoR3VdxU8BOS4lYxQOvViBAe/V+1/bANY/+7Zi8GjarQGbvccCqL3Mk/PmNGolgOR0X+RDwh4z4FfLy9PAfsltcpD1GRurbH/j1aOJJXmkyIs3amDNtmR9SNoRlD0iPvNoXFprdyP+r4zsUDwAkq3Oyev3vU7Oid3CEOyj10DGJMVWz2rum6iEjrzIlx4ARm9jdKckHLFWL7RWeIO47EO2MTyO78R/QeKIkMfQ3EdKfiXSm5Wq/uThFEfx8K4DqM/WfajXyIV5rATwjKgAlJI8LBBkqh9l7TDEHgQ4NC+9jujsZqDZK0C0fGzIKrTJNEmk7owjqJ5w5FZYxXtQ+jsfnGL+xuUOVpI15uxwwOrMurs2G3gRtbqFhmtbmvNGiqMVX+ieLrNVcQoHzjfmjHlsx1WJCez+wW8x+rIxOMjs6CW/qVgBjFq1qVJIsP1hVQJCMAyDA8QyvLbYGGuGbn4zPTiy8WUr2rjqJTV6In3bB3VN0DAUkxqLVUYllBN29G4hhGN0C8xPqWHfbYRwOywd9s+SYc/rfaer18atEzSRsCrtEo+MWTrFnLl+JxDupXa4Ulhw66BT8tuHD5PQJwvuCeyYha5Wv4CAb9xf/QvFLZF0cuk7eyzLMOaRpEny431NMj8en43X83B+792QHEN sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-results.api.mdx b/docs/docs/reference/api/delete-results.api.mdx index ea5b82d4db..3c2dcb0fe6 100644 --- a/docs/docs/reference/api/delete-results.api.mdx +++ b/docs/docs/reference/api/delete-results.api.mdx @@ -5,7 +5,7 @@ description: "Delete Results" sidebar_label: "Delete Results" hide_title: true hide_table_of_contents: true -api: eJy1Vdtu00AQ/ZVonp0LaRvATwQaiQgQVSi8RBGarMfJwtpr9lIaIv87ml2ndhJaJCTykr2cmZ05c2a8B4cbC+kSZneoPDqpSwurBHRFJuzmGaSQkSJHXw1Zr5yFBAz98GTda53tIN2D0KWj0vESq0pJEUyH36wu+cyKLRXIq8qwYyfJ8i76+yqzsJOOirBwu4ogBeuMLDeQQK5NgQ5S8F5mUCcHABqDO0jASad4vwjuevPMQt2i9PobCdfELA1lnG3n5VXroOUguppndhEThZo9th6c8RQObKVLG7MZj0b8l5EVRlbsBVL45IUga3OveosGDMm/8iW0j0ZNarJ0tCHToeBNQCSQUY5eOUhHMcr/RHPnoeXqT5w/yWxDRx24vRyPz9n7gkpmwaw3M0abf6cuI4dSHeV/DFBaHN1iufuYQ7o85alOzuivV4+T9V7HAJnPwm7+xPsB+oGsxQ21zD8ODWT0bvm2TkCWlY+yaK7n4aBOQLj7jpuzqrxhLu/dX7uFuYnhN7hOz7QlihV6nIrrWIKnZPL29vbmzGHUx7EwrsNA6i0eBlJBbqvbUQUJVOi2kMKQ2sE2bAbYEBKwZO7I2FBhbxQjsZKhvHG7da6y6XBIfiCU9tkAN1Q6HKCMwBX7EN5ItwtOpjfzd7R7S5iRCe3QAXxiVUadHcMeaoOVfEfMVokF76febbWRv6J4uMYcUrRiOljvi3YIz+6xqBSdDtUlXOT44iqfXPavnj973r+8moz764tc9Mfi5eQin0wwxwmsgohy3dXQNGTbm97M4ZT8oyvuRxRBfofQwzUkJzy29EECVIRuBEdYvHq4YfFwUeIzo8GzwYiPKm1dgWXnibPyHwX4QCqLe1gplKH9Qjj7RhdL6OgCDjOSVyzurbY80mC/X6Olz0bVNR//8GS42KsE7tBIXDNTS2Zveyj7Hr7T7tBapeuHHmW48rHMJyOL9RYtpkJQ5Z7Erjo6v569n93OIIF18w0udMZWBn9yOvgTUgD+jscMWRh8tgeF5cbznEkheuXfb8qqvW8= +api: eJy1Vdtu00AQ/ZVonp06pG0APxFoJCJAVKHwEkVosh4nC2uv2UtpiPzvaHad2mlokZDIS3bntjNnzoz34HBjIVvC7BaVRyd1ZWGVgK7JhNs8hwxyUuToqyHrlbOQgKEfnqx7rfMdZHsQunJUOT5iXSspgmv6zeqKZVZsqUQ+1YYDO0mWbzHeV5mHm3RUhoPb1QQZWGdktYEECm1KdJCB9zKHJjkYoDG4gwScdIrvixBuMM8tNJ2VXn8j4dqcpaGcq+29vOoCdBjEUPPcLmKh0HDELoIznoLA1rqysZrxaMR/OVlhZM1RIINPXgiytvBqsGiNIflXvIT20aktTVaONmR6ELwJFgnkVKBXDrJRzPI/wdx7aLn6E+ZPItvC0QRsL8bjU/S+oJJ5cBvMjNHm36HLyaFUR/UfGygtjrRY7T4WkC0f4tQkJ/A3q8fBeq9jgoxnaTd/wv1g+oGsxQ11yD9uGsAY3LC2SUBWtY+0aNXzIGgSEO6uF+akK28Yyzv312lhbGL6rV1vZroWxQ49DsVVbMFTNHl7c3N9EjDy45gYV2EhDRb3C6kkt9XdqoIEanRbyCClbrGl7QJLIQFL5paMDR32RrEl1jK0N163ztVZmiotUG21dVG9Yk/hjXS74Dq9nr+j3VvCnEwYgp7BJ+ZiZNex2X1HsJbviDGqsOT71LutNvJXpAx3lhOJXgwCs3zRrd7ZHZa1ooerdAnnBb64LCYXw8vnz54PLy4n4+H6vBDDsXg5OS8mEyxwAqtAnUL3mTPdUOVwML2ew0PIj1Q8hSgC6Q6pBzUkPfRslqYYxGcoGXMqwwyCIyxf3WuYMtyK+Mzo7NnZiEW1tq7EqvfESdOPErwHlSmd1gplGLqQzr5lwxJ6bIDDZuQTU5q7zDb7/RotfTaqaVj8w5PhZq8SuEUjcc1ILRm97aHte/hOu8NAVW4YJpPNlY9tfrComGXRYyoE1e5J21WP3Vez97ObGSSwbr+8pc7Zy+BPLgd/QgbAX+9YIRODZXtQWG08b5cMYlT+/QZOYroQ sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-run.api.mdx b/docs/docs/reference/api/delete-run.api.mdx index a4e34afda8..12c8731222 100644 --- a/docs/docs/reference/api/delete-run.api.mdx +++ b/docs/docs/reference/api/delete-run.api.mdx @@ -5,7 +5,7 @@ description: "Delete Run" sidebar_label: "Delete Run" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsBTxsgJFmxk08L2gAN2mFFmu0SBIVqM7E6WVL1UTQz9N8Hyp9p2h12im09UuR7j0wNnh8cZFtYvnAZuBdaOdgx0AZtelsVkEGBEj0+2KCAgeGWV+jRUlwNilcIGdigHkQBDISCDAz3JTCw+ByExQIybwMycHmJFYesBn80FOW8FeoADPbaVtxDBiGkLF54SYB1UJNVATHuKJszWjl0lOBiPqefAl1uhaFKIYP7kOfo3D7IyboFA4NcK4/KE5wbI0WeGps9OYqpR0UZS2170dyQ69AEtbUK5fGAdlTcZUIwKHDPg/SQzSPriKDL1PHHPnH0724j6xEqSAnU61n/rIPoxyfM/aiKQbl1UKuibzxGivp6cXHO0y8uRZFCJktrtf1/kgr0XEh6Eh4rdw6QOj85/YiUEQkd0XE3dM2t5cdR07e6KRAig8od3rNUB/2OzvEDQp/sY2giY7Kh00hONqExQHu8Sh8ig9y/jtKcKXJJXL76d1UbRmKbuGnKb3Ej4QeJGoU+puKqkeBfFrnebO7OEjb+ODXGVRr0yToNeoW+1MP4p9H3JWQww2FZzGxQblY3ro/AwKF96XZDsJLg3Iikb/Naem9cNpthmOZSh2LKD6g8n3LRAHeUIw9W+GNKsrhb3eDxGnmBFrLtbgy4J1s2RjuF9eJwI26Q6Gr31CL4Ulvxp3FPu67KJiom0fd6rPkiFTdZ3K3gLVknRzQ/PE926W5Kx8DetD10CwywStMDHnn1rT8hsYnD5pr59Mt0Tp+Mdr7ianTFiVwnxfX9kxFnRnKRRiWVUrc6bmGkI6TNRT9Zu8F2DErtPOHq+pE7/GlljPT5OaAlbXYMXrgV/JGY2tZQCEfPBWR7Lh2eldTvGPi0bsfg8wTY+6V2+ikSj+qkN2DwG4/D301aEWVnjbo9XOQ5Gj8KO9to5KHe3lfL2+VmCTH+BQ4yY6o= +api: eJydVcFu2zAM/ZWApw0Q6qzYyacFbYAG7bAi7XYJgkK1mVidLKkSVTQz/O8DZTtxlraHnWKbjxL53iPTAMltgHwF8xepoyRlTYC1AOvQp7dFCTmUqJHwwUcDApz0skZCz3kNGFkj5OCjeVAlCFAGcnCSKhDg8TkqjyXk5CMKCEWFtYS8Ado5zgrkldmCgI31tSTIIcZ0CinSDFhGM1mU0LZrPi04awIGPuB8OuWfEkPhleNKIYe7WBQYwibqybIHg4DCGkJDDJfOaVWkxrKnwDnNqCjnuW1S3Q2FjV1SX6syhFv0o+IuEkJAiRsZNUE+bcVABF9mdj82iaOPu23FHmGi1sC9nvQvBoh9fMKCRlUclFtGsyj3jbctZ309Pz/l6ZfUqkwpk7n31v8/SSWSVJqfFGEdTgHaFkfR90gZkTAQ3a4PXUvv5W7U9I3tCoRWQB22b1lqgH7HEOQWYX/Y+9BExuSeoy072cXOAH14kT60Agp6HR1zosgFc/lKb6p2GIlV4qYrv8eNhD9I1Cn0PhWXnQQfWeTq/v725MDOH8fGuEyDPlmmQa+RKnsY/zT6VEEOGR6WReajCVnTub4FAQH9y7AbotcMl04lfbvXisjlWaZtIXVlA3XhNWcW0SvapdTZ7eIad1coS/SQr9ZjwB2bsbPXMWwviXTqGpmkfjvNIlXWqz+dZ/olVXVZbZJ6Y8dKz7ZoSE5mtwv4l6KjEE+NLJJJhptSGMSo2ZBnmUyfz6TKQADWaWaAUNbf9hGWmJnrrpmefTmb8idnA9XSjK44EumouH3/bL/MaanSgKRSml69FYzUg7Sv+Cfv99ZaAIvCuKZ5lAF/et22/Pk5omdt1gJepFfykZlaNVCqwM8l5BupA56UtN8s8GnZm//zBMTbpQ76GRaP6+Q3EPAbd4c/mbQYqsEaTR+cFQU6GqWd7DH20N7Ul/Ob+f0c2vYvHuBgSw== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-runs.api.mdx b/docs/docs/reference/api/delete-runs.api.mdx index 0c59b74fce..5fc54376a6 100644 --- a/docs/docs/reference/api/delete-runs.api.mdx +++ b/docs/docs/reference/api/delete-runs.api.mdx @@ -5,7 +5,7 @@ description: "Delete Runs" sidebar_label: "Delete Runs" hide_title: true hide_table_of_contents: true -api: eJy1Vdtu00AQ/ZVonp1L0zaAnwg0UiNAVGnhJYqqyXqcbLF3zV5KQ+R/R7Ob1HZLQUIiL9nLmdmZM2fGe3C4sZAuYXaPhUcntbKwSkBXZMJunkEKGRXk6NZ4ZSEBQ989WfdOZztI9yC0cqQcL7GqCimC3fDOasVnVmypRF5Vhr06SZZ3xqtbmYWldFSGhdtVBClYZ6TaQAK5NiU6SMF7mUGdHAFoDO4gASddwfuFV715ZqFuIHp9R8IdopWGMk7y+OaqMW3yXng1z+wiJgc1+2psnfEUDmyllY0ZjEcj/svICiMrdgEpXHshyNrcF73FAQzJv3IktI9Gh6SkcrQh08r8fUAkkFGOvnCQjjjK/0Bt64nl6nc8v0zogYU6UHo2Hj8n7SsWMgs2vZkx2vw7Yxk5lEUn8y6g0KJzi2r3OYd0+ZShOnnGer16maaPOgbITJZ28zvGj9BPZC1uqOH8ZWggo3fDt3UCUlU+quFwPQ8HdQLCPbTcPCvJe+bywf21PZibGP4B1+qTpkSxQi9TcRFL8CeNXN7cXD1zGPXRFcZFGDy9RRw8JbmtbuYRJFCh20IKQ2qm15Cn1BASsGTuydhQW28KhmElQ2HjdutcZdPhkPxAFNpnA9yQcjhAGYEr9iG8kW4XnEyv5h9od0mYkQld0AJcsx6jwrqwx6pgJT8Q86Sw5P3Uu6028meUDVeXQ4pWTAQrfdFM2tkDllVBncm5hNMcX5/nk7P++auTV/2z88m4vz7NRX8s3kxO88kEc5zAKmgn123pTEOqvenVHJ5y3rniNkQRVHeMO1xD8oTEhjtIgMrQhOAIy7ePN6wZrkh8ZjQ4GYz4qNLWlahaT3Sr3onukU4W9LAqUIaWC7HsD3JYQksOEMYh/7Gat9ryAIP9fo2Wvpiirvn4uyfDNV4lcI9G4po5WjJv22O19/CNdsdeUq4fmpLhhY/VfTKjWGbRYioEVe6P2FVL2xezj7ObGSSwPnxfS52xlcEfnAv+gBSAP9AxPdYDn+2hQLXxPFhSiF759wtO36yt +api: eJy1Vd9v2zgM/lcCPjt1lrbZnZ+WWwMs2A5XZL17CYKBkelEO1ny9KNrFvh/P1BKartdN2DA5SUSRUrk932kj+Bx56BYw+IeVUAvjXawycA0ZONuWUIBJSny9MkG7SADS18COf+HKQ9QHEEY7Ul7XmLTKCliXP7ZGc02J/ZUI68ay7d6SY53NuhPsoxL6amOC39oCApw3kq9gwwqY2v0UEAIsoQ2OzugtXiADLz0iveroEfL0kHbuZjtZxL+lK20VHKR5zc3XWhX9yroZelWqTho+a4u1ttA0eAao12qYDqZ8F9JTljZ8BVQwMcgBDlXBTVanZwh+1WMhAkp6FSU1J52ZHuVv40eGZRUYVAeigln+T9A23tivfkezi8DekKhjZBeTafPQfsHlSxjzGhhrbG/jlhJHqUaVD50UEYMTlEf/qqgWD9FqM2eod5uXobpg0kJMpK1230P8bPrn+Qc7qjD/GXXCMbojk/bDKRuQlLD6XgZDW0Gwj/0rnlGyVvG8sH/tD0Ym5T+ya/XJx1FiaGXobhJFPxII+/u7m6fXZj0MRTGTRw8o1UaPDX5venmEWTQoN9DATl10yvnKZVDBo7sPVkXuQ1WsRs2MhKbtnvvmyLPlRGo9sb5dLzhSBGs9IcYOr9dvqfDO8KSbNR+z+EjqzDpauj2yAU28j0xOhpr3s+D3xsrvyWxMKecSIri8lnfq26+Lh6wbhQN5uUaLiv87bqaXY2vX796Pb66nk3H28tKjKfi99llNZthhTPYRMVUpi+Y+Y60x9H8dglPkR4ccfOhiFo75x2PIetB54o8x2i+QMmAUx1bDzxh/ebxhJXCPKRnJhevLiZsaozzNereE0OuB9k9wskyzhuFMjZazOV4EsEaeiKAOAT5jzXM5LLD8bhFR39b1bZs/hLIMsebDO7RStwyRmvGbX9m+wj/0uHcQdqPYyuyuwqJ3SeTicWVIuZCUON/6LvpKfpm8WFxt4AMtqevam1KjrL4lWvBr1AA8Gc5lcd6YNsRFOpd4HFSQLqVf/8BcdapTg== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-scenario.api.mdx b/docs/docs/reference/api/delete-scenario.api.mdx index a78e0ff3c1..20f62c127a 100644 --- a/docs/docs/reference/api/delete-scenario.api.mdx +++ b/docs/docs/reference/api/delete-scenario.api.mdx @@ -5,7 +5,7 @@ description: "Delete Scenario" sidebar_label: "Delete Scenario" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsBTxsgJFmxk08L2gAN2mFFm+0SBIUqM7E62VL1UTQz9N8Hyp9p0h12im09UuR7j0wNnu8dZBtYvnIVuJe6crBloA3a9LbKIYMcFXp8dAIrbqUGBoZbXqJHS8E1VLxEyKADPMocGMgKMjDcF8DA4kuQFnPIvA3IwIkCSw5ZDf5gUqi3stoDg522JfeQQQgpi5deEeChzT1Z5RDjllI6oyuHjrJczOf0k6MTVhoqnEKCEOjcLqjJfQsGBkJXHitPcG6MkiL1OXt2FFOPKjOWWPCyuUHo0AS1BcvK4x7tqMLLhGCQ444H5SGbR3ZECd1YHX7sEmX/7juyHlEFpYAaPs8E63D66RmFH9UzSNpFrPKehxgp9OvFxSltv7iSeYqbLK3V9v85y9FzqehJeizdKUBpcXT6ET0jOjre43ZonVvLD6POb3VTIEQGpdufs1kH/Y7O8T1Cn+xjaCJjsqbTSO42ofFDe7xKHyID4d9GaU5kuSQu3/xZ6YYx2SRumvJb3MgCg0SNQh9TcdVI8C+fXK/XdycJG38cG+MqrYHJw7AGSvSFHjZEWgy+gAxmOOyTWTcDblaPxiECA4f2tdshwSoK5EYmuZvXwnvjstkMw1QoHfIp32Pl+ZTLBrilHCJY6Q8pyeJudYOHa+Q5Wsg22zHggVza+O4Y1mvFjbxBYq/dZ4vgC23ln8ZM7UYrmqiYPLDTYwssUnGTxd0K3nN3dETjxEVyT3dTOgb2ru2hW2CAZRom8MjLb/0JaU8cNtfMp1+mc/pktPMlr0ZXnKp3VGFPAplzZhSXaXxSPXUr6wZGssKw3Og5G2+6LYNCO08Rdf3EHf60Kkb6/BLQklRbBq/cSv5ExG1qyKWj5xyyHVcOT4rrNxB8um+H5PME2PmiOzkr0pIqpjdg8BsP7/6l0hYpOrvULWIhBBo/ij1ZeuSr3vxXy9vlegkx/gXAJH2d +api: eJydVU1v2zAM/SsBTxsg1Fmxk08L2gAN2mFF2+0SBIUqM7E62VIlumhm+L8PlD/TpDvsFFnko6j3npgaSO4CpGtYvkpTSdK2DLARYB36+LXKIIUMDRI+BoWl9NqCACe9LJDQM7iGUhYIKfQJjzoDAbqEFJykHAR4fKm0xwxS8hUKCCrHQkJaA+1dhJLX5Q4EbK0vJEEKVRWrkCbDCfdd7dkqg6bZcMngbBkwcJXz+Zx/MgzKa8eNM6RSCkPYVmZ21yWDAGVLwpI4XTpntIr3TJ4DY+pJZ84zC6TbE5StWlDXsC4Jd+gnHV7EDAEZbmVlCNJ5Iw4o4RPL/Y9tpOzf927EkFFWxgBf+DQTos+zT8+oaNLPKGmPWGUDD03D0K/n58e0/ZJGZxE3W3pv/f9zliFJbXilCYtwnGCsOoh+RM+Ejp73ZjNeXXov95Ob39i2QWgEFGF3ymZ96ncMQe4QhmIfp0YyZg8cbdjdrmr90IVXcaMRoOhtUuZIlgvm8o1OSjc+k3Xkpm2/y5tYYJSoVehjKi5bCf7lk6uHh9ujgq0/Do1xGcfA7H4cAwVSbscJEQcD5ZBCguM8Sfo3EJJ68hwaEBDQv/YzpPKGgdLpKHf7mRO5NEmMVdLkNlAb3jBSVV7TPkIXt6tr3F+hzNBDut5ME+7Zm63bDtMGhaTT18icdVNsUVFuvf7TWqibY3mLaqLyWzsVfrHDkuRscbuC94wdhPgRSRU9058UwyAmlw1pksi4fSZ1AgKwiE8ICGXxbYiw4sxce8z87MvZnLecDVTIcnLEsWYHHQ4ksCUTZ6SOjyb2U3dirmEiJowjjdfpdL5tBLBGjKjrJxnwpzdNw9svFXqWaiPgVXotn5i4dQ2ZDrzOIN1KE/CouWHuwKe77ml8noE43XQvZ8lacsf8BQJ+4/7df1OcHXlvl7rLWCiFjibYo1HHvhosf7m8WT4soWn+Atmxej4= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-scenarios.api.mdx b/docs/docs/reference/api/delete-scenarios.api.mdx index 6fbe8d9481..cf450dbbf8 100644 --- a/docs/docs/reference/api/delete-scenarios.api.mdx +++ b/docs/docs/reference/api/delete-scenarios.api.mdx @@ -5,7 +5,7 @@ description: "Delete Scenarios" sidebar_label: "Delete Scenarios" hide_title: true hide_table_of_contents: true -api: eJy1Vdtu00AQ/ZVonjeXpm0APxHaSESAqNrCSxShyXqcbLG9Zi+lIfK/o9l1aqdpQUIiL9nL2dnZc86Md+BwbSFZwOwec49O6dLCUoCuyITZPIUEUsrJ0TcrqUSjtAUBhn54su6dTreQ7EDq0lHpeIhVlSsZDg/vrC55zcoNFcijynBop8jG9Rjxm0rDXDkqwsBtK4IErDOqXIOATJsCHSTgvUqhFnsAGoNbEOCUy3l+0wTszVMLdYvTqzuSrslbGUr5zQe3L9sgLRf7cPPUXscHQ81R2yjOeAoLttKlja8aj0b8l5KVRlUchzPzUpK1mc971w0YxL/yJrWPh5rnqdLRmkyHiIuAEJBShj53kIxq8Z/p7ly2WD7H/V/4bUipA8Nn4/Exh18xV2k42JsZo82/E5iSQ5UfcHAIyLU82MVy+zmDZPGUq1ociVAvXybso44JMqeFXT/H/R76iazFNbXsvwwNZPRuebcWoMrKR3M02/OwUAuQ7qET5kiXC+bywf21bpibmH6D69ROK1FU6GUqLqMEfzLK+9vbq6OA0R+HxrgMDap302lQBbmNbpsXCKjQbSCBIbWtbvjY0oYgwJK5J2ODyt7kjMVKBYnjdONcZZPhkPxA5tqnA1xT6XCAKgKXHEN6o9w2BJlezT/Q9j1hSiYURQdww86MXjuEPeqDlfpAzFiJBc+n3m20Ub+igVhnTimeYkrY89dtW549YFHldNxmF3Ca4evzbHLWP3918qp/dj4Z91enmeyP5ZvJaTaZYIYTWAYrZbrrpGl4b296NYenEhxscVWiDCbcJx+2QTxhsiUQBFARahIcYfH2cYctxLLEa0aDk8GIlyptXYFl54pnTHCQ4iOxbPJhlaMKZRgS2jXuWEDHHdB2TB6zzTfacnuD3W6Flr6YvK55+Ycnw5IvBdyjUbhithbM4GYv/g6+03ZfZKXrh2pleO6j2E+aF7sunphKSZX7I3bZ8fvl7OPsdgYCVs23udApnzL4k+sYf0ICwF/4+MZkF9d2kGO59txxEohR+fcbiwLGoA== +api: eJy1VVFP2zAQ/ivVPaekFChbntaNSlQwDQHbS1VNV+fSenPiYDtAV+W/T2enJKUwJKT1pfb57nz+vu8uG3C4tJDMYHKPqkIndWFhHoEuyfjdNIUEUlLk6KcVVKCR2kIEhu4qsu6zTteQbEDowlHheIllqaTwwfEvqwu2WbGiHHlVGk7tJNlgDxl/ytTvpaPcL9y6JEjAOiOLJUSQaZOjgwSqSqZQR1sHNAbXEIGTTvH+pknYm6YW6tZPL36RcE3d0lDKb965fd4mabHYppum9jo8GGrO2mZxpiJvsKUubHjVcDDgv5SsMLLkPFxZJQRZm1Wqd904Q/Re3ISuQlDzPFk4WpLpAPHFe0SQUoaVcpAM6ug/w925bDZ/Cfs38G1AqT3Cx8PhPoY/UMnUB/YmxmjzfgBTcijVDga7DkqLnVMs1t8ySGbPsaqjPRLq+euAXepQIGOa2+VL2G9dv5K1uKQW/dddPRi9Wz6tI5BFWQVxNMdTb6gjEO6xk2aPly+M5aN7s28Ym1B+49fpnZaiwNDrUJwFCv4llPPb26u9hEEfu8I48wOqd9MZUDm5lW6HF0RQoltBAjG1oy5+GmkxRGDJ3JOxnuXKKPbFUnqKw3blXJnEsdIC1UpbF47nHCkqI93ah46vphe0PidMyfhW6DjcsB6DwnbdnljBUl4Q41Rgzvtx5VbayD9BNswuFxKiGAhW+nU7jCePmJeK9ofrDI4y/HCSjY77J6eHp/3jk9GwvzjKRH8oPo6OstEIMxzB3Aso0139jJdUOOyNr6bwHPidI+5FFF562+L9MUQd/GwSx+jNBygZdcp9J4IjzD89nbBwmIxwzeDg8GDAplJbl2PRueIF6ndKfAKWpR2XCqVvPl/QptHEDDqagHZO8prFzVyz12azQEvfjaprNt9VZJjyeQT3aCQuGK0ZI7jakr+B37Tetlbh+r5H2V1VgexnI4u1FiLGQlDp/uk776j8bHI5uZ1ABIvmi5zrlKMMPnD34gMkAPxdD29MNsG2AYXFsuI5k0DIyr+/s73DQQ== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-secret.api.mdx b/docs/docs/reference/api/delete-secret.api.mdx index c3ea95f1d4..3be2bd1075 100644 --- a/docs/docs/reference/api/delete-secret.api.mdx +++ b/docs/docs/reference/api/delete-secret.api.mdx @@ -5,7 +5,7 @@ description: "Delete Secret" sidebar_label: "Delete Secret" hide_title: true hide_table_of_contents: true -api: eJx9VE1v2zAM/SsBTxsgJF3Rk08L1gAN2mFFm+0SGIUqM7E6f6gSXTQz9N8HSv5Kss4X2+IjRb33qBZI7h0kW3hEZZEcpAJqg1aSrqt1BglkWCDhkwtxEGCklSUSWk5roZIlQgIx/KQzEKArSMBIykGAxddGW8wgIdugAKdyLCUkLdDBhESyutqDANJU8EJsZLbOwPuUCzhTVw4d51xeXPErQ6esNtwiJzRKoXO7ppg9dGDwAq4uL8+xv2Shs3C22cra2oIAVVeEFTFWGlNoFcKLF8cJ7aRhY5kY0rGVDEnqgr80YenOAUWtjqKyOvzYBcqOT+7FsKIrwj1a8KkX/Zq0Vh4m9NzVsUE+Yun2/2PyOzon94GMCPkYGsiYbTjqWUDTBEL68DoseAGK3idl6ucXVDQp8425fCfwY/8DZnTCNnAT2+9w6VhjlCgq9DEV11GCf23WQ242m/uzgvyIE2NcB5fPHnuXl0h5Pdo/+J5ySGARne4W7WB5DwIc2rd+JBpbMFAaHcSNvzmRccligc1cFXWTzeUeK5JzqSMw5RqqsZoOocjyfn2LhxuUGVpItukU8MiejC47hg3KSKNvkbnqxnPZUF5b/SdapxvRPGb5oPiungq+DM3NlvdrOGXqKMTDI1XwSr9TCIM4OfZ4WhCAZRgdIJTl1yHCSjOHcZuL+Zf5BS+Z2lEpq8kWp1od9TdQwEZcmELqMCqhm7YTcdtdVw4EJOPNlQrIa0ccb9tn6fCnLbzn5dcGLcuSCniTVstnJmnbQqYdf2eQ7GTh8KyV4W6BTw+d/T/PQPy7xV66inV7k0XDfyDgNx6OLthwO+S9MdouvlQKDU0yzy4zdtBg6+vV3WqzAu//ArCDCBQ= +api: eJx9VE1v2zAM/SsGTxsg1F3Rk08L1gAN2mFFm+0SGIUqM7E6f6gSXTQz9N8HSrbjNOt8sc1HStR7T+yB5M5BtoEHVBbJQS6gNWgl6bZZFZBBgRUSPrqAgwAjrayR0HJZD42sETKI8KMuQIBuIAMjqQQBFl86bbGAjGyHApwqsZaQ9UB7EwrJ6mYHAkhTxYHYSLIqwPucF3CmbRw6rrk4v+RXgU5ZbbhFLuiUQue2XZXcD8ngBVxeXJzm/pKVLsLZkqW1rQUBqm0IG+JcaUylVYDTZ8cF/axhY5kY0rGVAknqir80Ye1OE6pWHaGy2f/YBsqOT+7FFNEN4Q4t+NyLMSatlfsZPbdtbJCPWLvd/5j8js7JXSAjpnycGshI1ox6FtB0gZARXoWAF6DobbZM+/SMimbLfGMu3wj8of8p5+CETeAmtj/k5Yc1DhJFhT6m4ipK8K/NxpTr9fruZEF+xDtjXAWXJw+jy2uksj3YP/ieSsggjU53aT9Z3oMAh/Z1vBKdrThRGh3Ejb8lkcnStGqVrMrWUYRzrlSd1bQPpYu71Q3ur1EWaCHb5POEB3Zi9NZx2qSHNPoGmaHhUi46Klur/0TDDBezjFU+6Lxt5zIvdtiQTBZ3K3jPzxHEV0aq4JBxpwCDmB3WZWkqQ/hM6hQEYB0uDBDK+uuEsL7MXNzm/OzL2TmHTOuols1si/cKHfU3UcD2S00ldbggoZt+kG4zDCkHArLDvMoFsB6M9/2TdPjTVt5z+KVDy7LkAl6l1fKJSdr0UGjH3wVkW1k5PGllmijw6X4w/ecExL9bHKVrWLdXWXX8BwJ+4/5orIaZUI7G6Ad8oRQamlWejDB20GTmq+Xtcr0E7/8CWKEEtQ== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-simple-accounts-admin-simple-accounts-delete.api.mdx b/docs/docs/reference/api/delete-simple-accounts-admin-simple-accounts-delete.api.mdx index 74e0a0a73b..12acc6b032 100644 --- a/docs/docs/reference/api/delete-simple-accounts-admin-simple-accounts-delete.api.mdx +++ b/docs/docs/reference/api/delete-simple-accounts-admin-simple-accounts-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete simple accounts" sidebar_label: "Delete simple accounts" hide_title: true hide_table_of_contents: true -api: eJydllFv2zgMx7+KwKc7wE16xZ7ydLk1wILtsKLt3UsbBIxNJ9pkyZPorb7A332g5CRO03aH9KWO9Cctkj9S3gLjOsDkAaZFpS0sMnA1eWTt7LyACRRkiGkZdFUbWmKeu8ZyWKKoT1aXSQ0ZePrWUOC/XNHCZAu5s0yW5RHr2ug8vmD8JTgrayHfUIXyVHt5PWsKUds7js9FocUIzc2R5tiiCeRPVz2V0YVtP5cwedgCtzXBBAJ7bdfQZfsV2xgD3SID1mxk4ZZK6DLQxbkO5oXYB9Osz/VwJ7ZdBlShNuc6mUXjrst2Crf6QjnDQGFZcyvxZlBQyL2uJd8wgRtn2sr5eqNz5akkTzYnxRtklaNVtdOWFTuFqi/7hXE5GvWV2kyhfbT0pANru1Y1+aADU6Hm15lCFRhXhpRkJ1POK7QqRqmwKDyFMHq0syfM2bTKWVKlJlOoqgmsVqQC8ejFiOQU2lMhWEcgBnmImN9FbqeJruvI7Myyb08i/2xJ9RAqEoXSVqFaIecblei/2EGqEvy7HIwe7aOdF2RZl5qC4s3B1apVmoOSs6nfuK11jsa0cbn4fQRvFGm664gug8K3S9/YF4lYOWcI7ZtIXPtW3TY2Bl1iYxgmJZpAnWQQ+9Y8r2eidZdJ35faV+c6et+b/6rI+znxZqFDqjR0XTc0Z9+kkEPtbEgD4+rynfw7huGuyXMKoWyMuu3FEuO7q6tT7b9odBGHnJp57zxk587Agrhve81UvTDyjMuPdv9HorVlWpOHbnFILHqP7YC0Ty4dUEKsQhxex/4O0r8pBFzTgdvXpTEZ6l52ZarauokJ2Q/LuCDg8NPAzUkbvJdcPvEvwZDcpOP3ugEghxKlCr2eiutUgreG54f7+5sTh10k7RiMxGA/O9Qe3Awq4o073LiQQY28gQmM4107ThbjncUYMgjkv5MPsdaNN1Fb61jo9HPDXIfJeEzNKDeuKUa4Jss4Qp2EC/GRN15zG51Mb+Yfqf1AWMgt+rAYCu6Ez0TcsWxfJaz1R5K8WaxiBza8cV7/lzCSasuRkpUkRsi/PXwnzJ5QInx27w/nnHTqYTYd4NpPmQPqoG3phmRNY+RqejM/GfJHW9KlmEcod2HEbcie5fSQSthfzcCE1Z/7HTmHFCi95nL0x+hSlmoXuEI7eMWrUBwddJ9oQX9cG9SxOeOxtj0tDxBpETiiM8hg4E7w37jAottuVxjoH2+6Tpa/NeQFgkUG39FruZYjAdmuYsLHV2p3zWf5InaxyE2Tyv9sqAmHyWKa51Tzm9rFoAOuZ59m9zPIYNV/PlauECuPP6S/8QdMAORDVezTB56sbcGgXTcyiSaQvMrfT4BEv2E= +api: eJydllFv2zgMgP+KwKc7wE16xZ78dLk1wILtsKLt3UsbFIxNJ9pkyZPorb7A/32g5CTOsnaH9KUORVIi+ZHSFhjXAfIHmJW1trDMwDXkkbWzixJyKMkQ01PQdWPoCYvCtZbDE4r2ifQpaUMGnr60FPgvV3aQb6FwlsmyfGLTGF3EDaafgrMiC8WGapSvxsv2rClE3cFx/C5LLUZobo50ji3aQP5U6qmKLmz3sYL8YQvcNQQ5BPbarqHP9hLbGgP9MgPWbERwSxX0GejyXAeLUuyDadfnergT2z4DqlGbc53Mo3HfZzsNt/pEBcNIw7LmTuLNoKRQeN1IviGHG2e62vlmowvlqSJPtiDFG2RVoFWN05YVO4VqKPuFcQUa9Zm6TKF9tPSsA2u7Vg35oANTqRbXmUIVGFeGlGQnU84rtCpGqbAsPYUwebTzZyzYdMpZUpUmU6q6DaxWpALx5KcRySm0p1KwjkCM8hAxv4vczhJd15HZuWXfnUT+0ZIaIFQkGkpbhWqFXGxUov9iB6lK8O9yMHm0j3ZRkmVdaQqKNwdXq05pDkrOpn7jrtEFGtNFcfn7BF4p0mzXEX0Gpe+efGt/SsTKOUNoX0Xi2nfqtrUx6Apbw5BXaAL1kkEcWvO8nonWfSZ9X2lfn+vo7WD+qyLv58SrhQ6p0tD3/dicfZtCDo2zIQ2Mq8s38u8Yhru2KCiEqjXqdlCWGN9cXZ3q/otGl3HIqbn3zkN27gwsiYe210z1T0aeccXR6v9ItLZMa/LQLw+JRe+xG5H2waUDSoh1iMPr2N9B9W8KAdd04PZl1ZgMdS+rMlVt08aE7IdlFAg4/Dxyc9IGbyWXz/xLMCQ36fiD3giQQ4lShV5OxXUqwWvD8939/c2Jwz6SdgxGYnCYHWoPbgY18cYdblzIoEHeQA7TeNdOk8V0ZzGFDAL5r+RDrHXrTdRtdCx0+rlhbvLpNE7jjQuclpdiWbRecxdNZzeL99S9Iyzl7nxYjhXuhMrE2bHavjbY6Pck2bJYx75reeO8/i/BIzWWgyQrSYfwfnt4HcyfUeL64bYfTzfpz8NEOiC1ny0HwEHbyo15mq3JMqrZzeJktB8tSW9iEVHchRGXIRtlMuTTKUbxBLXkf7iQgQnrP/crcg4pS9rmcvLH5FJEjQtcox1t8SIKRwfdJ1qAnzYGdWzJeKztwMgDREYEiegMMhi5E+il+qK33a4w0D/e9L2Iv7TkBYJlBl/Ra7mMIwHZrmLCx2fqdi1n+SL2rqibNpX/h1Em9CWLWVFQw6/qLkfcX88/zO/nkMFqeDTWrhQrj9+kq/Eb5ADyPBX79KwT2RYM2nUr8yeH5FX+vgMSKLwC sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-simple-evaluation.api.mdx b/docs/docs/reference/api/delete-simple-evaluation.api.mdx index 6d873e596d..cb274208d2 100644 --- a/docs/docs/reference/api/delete-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/delete-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Delete Evaluation" sidebar_label: "Delete Evaluation" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsBTxsgJFmxk08L2gAN2mFF2+0SBIVqM7E62VL1UTQz9N8HSv5Kk+ywU2zrkSLfe2QacHxnIVvD8o1Lz51QtYUNA6XRxLdVARkUKNHhkxWVlviEPRQYaG54hQ4NZWmg5hVCBgPkSRTAQNSQgeauBAYGX70wWEDmjEcGNi+x4pA14Paagq0zot4Bg60yFXeQgfcxixNOEmCodbIqIIQNJbVa1RYt5bmYz+mnQJsboWOhGTz4PEdrt15O7lswMMhV7bB2BOdaS5HHtLMXSzHNqDZtiBIn0g258imoLVnUDndoRjVeRgSDArfcSwfZPLAPtNCd9f7HNhL3794D6xG1lxKo5XNssA6pnl8wd6OaHqJ+A35V9EyEQIFfLy6OifvFpShS/qUxyvw/awU6LiQ9CYeVPQZIlR+cnqNnREfHfNgMjXNj+H7U961KBUJgUNndKat10O9oLd8h9MnOQyMZk0c6DeRw7ZMj2uNV/BAY5O59lOZIlEvi8t2dFG4YlXXkJpXf4kYWGCRKCp2n4ipJ8C+XXD8+3h0lTP44NMZV3AqT5XgdVOhKNayMuCBcCRnM0vKYDSNgZ83BPARgYNG8davEG0lxXIuod3otndM2m83QT3OpfDHlO6wdn3KRgBvKkXsj3D4mWdytbnB/jbxAA9l6MwY8kE2T8Q5hvVhcixsk+tq1tvCuVEb86bqNa61MUSGaYKvGHljE4iaLuxV8JO/giOaJ59E+3U3xGNiHtodugQFWcZrAIa++9SckPnGYrplPv0zn9Ekr6ypej644Jd9BjT0N5M+ZllzECYoVNa2ua0i6wni5WWCQHe66DYNSWUcBTfPMLf40MgT6/OrRkFYbBm/cCP5MzK0bKISl5wKyLZcWj2rrdxB8um/H5PME2OmaOz1rEpMKozdg8Bv3R/9WcZOUnWOaFrPIc9RuFH20+Mhavf2vlrfLxyWE8BdKi4Yq +api: eJydVU1v2zAM/SsBTxsg1Fmxk08L2gAN2mFFm+0SBIVqM7E62VYlumhm6L8PlOKPNMkOO8USHynqvSemBZJbB+kK5m9SN5JUXTlYC6gN2rBa5JBCjhoJn5wqjcYn7KEgwEgrSyS0XKWFSpYIKQyQJ5WDAFVBCkZSAQIsvjbKYg4p2QYFuKzAUkLaAu0MJzuyqtqCgE1tS0mQQtOEKqRIM2DodbLIwfs1F3Wmrhw6rnM5nfJPji6zyoRGU3hssgyd2zR68rAHg4CsrggrYrg0RqsslE1eHOe0o96MZUpIxROyuolJ+5ZVRbhFO+rxKiAE5LiRjSZIp158oIXPrHY/NoG4f9/dix5RNVoDX/kcG6JD1s8vmNGop8eg34Bf5D0T3nPi18vLY+J+Sa3yWH9ubW3/n7UcSSrNX4qwdMcAXWcH0XP0jOjomPfr4eLSWrkb3fuujg2CF1C67SmrddDv6JzcIvTFzkMDGZMlRz073DTREfvwImx4ARm9j8ociXLFXL7TSeGGp7IK3MT297iRBQaJokLnqbiOEvzLJTfL5f1RweiPQ2Nch6kwmY/HQYlU1MPICAOCCkghicMjGZ6AS9qD9+BBgEP71o2SxmrOk0YFveOyIDJpkug6k7qoHcXwmjOzxirahdTZ/eIWdzcoc7SQrtZjwCObM9rtENZLJI26RSZtP8xmDRW1VX+6O4ZhVsQsH6Tf1GPlZ1usSE5m9wv4SNlBiF+RzIJpupNCGMTosi5NEhm2L6RKQACW4Q0BoSy/9RGWnJmLx0wvvlxMecvUjkpZjY44JdpBjz0N7MrEaKnCuwkdtXs1VxDVhPFIcyAgPZxwawEsEie07bN0+NNq73n7tUHLWq0FvEmr5DMzt2ohV46/c0g3Ujs86q2fPPDpYf84Pk9AnO6507NiMbkxXoGA37g7+o8K86PoHNPuMbMsQ0Oj7KNxx9bqTX89v5sv5+D9XxLPgss= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-simple-trace.api.mdx b/docs/docs/reference/api/delete-simple-trace.api.mdx index 2c04145d04..8db0fafaf7 100644 --- a/docs/docs/reference/api/delete-simple-trace.api.mdx +++ b/docs/docs/reference/api/delete-simple-trace.api.mdx @@ -5,7 +5,7 @@ description: "Delete a 'simple' trace." sidebar_label: "Delete Trace" hide_title: true hide_table_of_contents: true -api: eJztVk1v2zgQ/SvEnBpAtd1gTzqt0WTRbLNIkLh7iY2YlsYSW4pUyVFSr6D/vhhKjiQ7Mbo978kyOV98782QNZDMPMQPsHAyQQ+rCFL0iVMlKWsghgvUSCikWIJXRalxCYLYdrI0S3OHhX1CLyhH4ZXJNL73pTSthUgcSsJUPCm5NOvbm/uFmLZBpsHAT9cTcYdUOdOGWL8L648qjQTHeVTp2VqUUrmloVySeJZeuJAzjcTWOqFtlimTCetEap+NJ4eyEIlGaapyIr54XJr1xeX15eJShKTKZPvk9T5ZsxbPORphS3SSQjgj5NIUlSY1ONAEIuhsrLlKIYY0oPPYHuoxGEEEpXSyQELHyNZgZIEQwz4bRKAY2VJSDhE4/F4phynE5CqMwCc5FhLiGmhXsp8np0wGEZAizQuBKnGVQtOs2N+X1nj07HI+m/HPmML7KknQ+22lxV1nDBEk1hAaYnNZllol4VTTr5596kEZpeMzk2ozJLZqnbrqlCHM0A3K+xgsDnW0/rAWaitkJ40RkevZWljK0T0rH0BOcSsrTRDPmgi0Mt9ClWZ3sw2AjivqhDI2GWPXRC8rptIaGLd9ufdML4MZ9Qz9YqiemAgkkVObitoa+2gyTRVDIvXt6BQ/kW8P9aiEYjNe2VjL4g9Lr+eCRLmk0tK9+6PS+k9vzfubisqKzpjENordfMWEQhBFWPykl3RO7k4idOAbQD/K+JbzvIe0OXLszW4WqK9ZM6/FGotycXLmiMORMzmZ9z4MgaABTj9otXHS/YbYOluIl+E0HoyD2cRZOe9v5+fHvf231CoNnSsunbPu1xs7RZJK81fH+KGBtslo978odtUciKSH7dq2BbIWCp+dGnx/ofcyw141b5sGMMSCdxuetyw2Nu+2r0ynvoR+DMIccfqRsfxBr/LeD+6HgE1bfmc3kG1PUcvQ21BctBScEtmnxeL2KGCrjwIpt/2lFO4hyiGGN6UFEXh0T/t7qnKarWWpAoft35yo9PF0itUk0bZKJzJDQ3IiVWu44hhJ5RTtQpD57dVn3H1CmaKD+GE1NLhn6bViGpu9ECBL9RkZku7OnFeUW6f+aRXSXZx569UEYrd2yOs8FCfmt1dHbTfa4h6RSZDEPlPYhujg2P1pIQIsQocAoSx+f9lhQhnDNs1s8mEy46XSeiqkGaTonlKL7pUwKq/u2/b/J9fBk6vTBjfitNRShVERaKo7iT90QEF3h3uI+DnV3earCHLric3qeiM9fnG6aXj5e4WOZbuK4Ek6JTcsoocaUuX5O4V4K7XHE1y9u+umwJl4q9K9tA3r+knqiv9BBN9wN3wVhhmZ7/um7rbnSYIlDRyPRjo32Evrt7BD0/wLyAUVfA== +api: eJztVk1v2zgQ/SvEnBpAtd1gTz6t0WTRbLNIkLh7iY14LI0tthSpkqOkXkP/fTGUHEt2YnR73pNlcr743psht8C4DjB+gKnHlALME8gopF6XrJ2FMVyQISaFagZBF6WhGSgW28HMzuwdFe6JguKcVNB2beh9KNE2Fir1hEyZetI4s4vbm/upGjZBhtEgDBcDdUdceduEWLyL6486S5TEedTZ2UKVqP3Mco6snjEoH3NmiVo5r4xbr7VdK+dV5p5tYE9YqNQQ2qocqC+BZnZxcXl9Ob1UMam2613y7S5ZvVDPOVnlSvLIMZxVOLNFZVh3DjSABFobZ68yGEMW0XlsDvUYjSCBEj0WxOQF2S1YLAjGsMsGCWhBtkTOIQFP3yvtKYMx+4oSCGlOBcJ4C7wpxS+w13YNCbBmIwuRKnWVQV3PxT+UzgYK4nI+GslPn8L7Kk0phFVl1F1rDAmkzjJZFnMsS6PTeKrh1yA+204ZpZczs24ypK5qnNrqtGVak++U9zFaHOpo8WGh9EphK40ekYvRQjnOyT/rEEHOaIWVYRiP6gSMtt9ilXZzs4qA9itqhdI36WNXJy8rtjIGBLddufdCr4CZ7Bn6xVB7YhJAZq+XFTc17qNhlmmBBM1t7xQ/kW8Hda+EYtlfWTon4o9Lr+eCVPu0Mujf/VEZ82dw9v1NxWXFZ0JiE8Utv1LKMYhmKn7SC73HzUmEDnwj6EcZ33Ke7CGtjxz3ZjdTMteimddi9UU5PTlz1OHIGZzMex+HQNSApO+0Wj/pbkOtvCvUy3DqD8bObJKskve38/Pj3v4bjc5i56pL753/9cbOiFEb+WoZPzQwLu3t/hfFzusDkexhu3ZNgaKFIqxPDb6/KARc0141b5tGMNRUdmuZtyI2MW+3r2yrvpR/dMIccfpRsPzBr/K+H9wPEZum/NauI9s9RQ1Db0Nx0VBwSmSfptPbo4CNPgri3O0vpXgPcQ5jeFNakEAg/7S7pypvxBpLHTls/ubM5Xg4NC5Fk7vAzfZcPNPKa95E18nt1WfafCLMyMP4Yd41uBfBNRLqm73AjqX+TAJEe1NOKs6d1/80umivy7zxqiOdK9dlc7Imy6gmt1dHzdbbks7ANAphlyluQ9I5bBgPhxiXB6iHkAAVsS+ACYvfX3aERkGuSTMafBiMZKl0gQu0nRTtA2ravg165W33zfr/Q+vgodVqQ9pvWBrUcUBEmratsB9aoKC9uQMk8ohq7/B5AqJXMdtulxjoizd1LcvfK/Ii23kCT+g1LkVED1vIdJDvDMYrNIFOcPXuru39M/VWpTtpW9H1E5pK/kEC32jTfQvGyZjv+mbbbk/SlEruOB4Ncmmwl4ZvYIe6/hclmhId sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-tool-connection.api.mdx b/docs/docs/reference/api/delete-tool-connection.api.mdx index cb47bb7e7e..3f227fc301 100644 --- a/docs/docs/reference/api/delete-tool-connection.api.mdx +++ b/docs/docs/reference/api/delete-tool-connection.api.mdx @@ -5,7 +5,7 @@ description: "Delete a connection by ID." sidebar_label: "Delete Connection" hide_title: true hide_table_of_contents: true -api: eJx9VFFvm0AM/ivIT5t0SrqqTzwtWiI1aqdVbbaXCFUOOOE64OidqZoh/vvkAwI0bXkB7O989vfZroHx4CDcwsaYzEGkICEXW12yNgWEsKSMmAIMYlMUFIs12B2D9XIGCkxJFsW0TiCExEMf2ZjscUCDghIt5sRk5aIaCswJQhggjzoBBVquK5FTUGDpudKWEgjZVqTAxSnlCGENfCzlsGOriwMo2BubI0MIVeWjsOZMAD+GdNcJNE0kQV1pCkdO4lxeXMlrWuxDFcfk3L7KgvsODI2Cq8vLc+wfzHTiiw9W1hoLSipiKliwWJaZjr17/uTkQD0qorTCHOs2lYQYdSZfmil354DMxBMvFsdfe0/llI1GnSy6YDqQhSZqVG9Da/E4oujWtAlKibk7vMduD/1JzuHBk9FCPoZ6MoKNeBsRtaw8Ib177Q2NgphfR2HM7olinurH9MrQDPmfMEN3bD03bfodLhpiDBK1Cn1MxbKV4L3Lesj1ZnN3FlAeBTlxaoYJ8B3PKYQwl1lw86HT3byetH0DChzZl340KpvJMSy1F7P9TZlLF87nVM3izFTJDA9UMM5Qt8BIYsSV1Xz0QRZ36xs6XhMmZCHcRmPAg/Rg21VT2EkJLPUNCTfdmC4qTo3V/7AbZj+maXuq8QrvzVjghU8uWNyt4e0umbhkWDD2vdHf5N2g3pQ9VAsKKPejAkyYfz95RFnhsL3mYvZtdiGm0jjOsRhd0W2zH+PtNMmxHob489XXsSU9Oi8z1H6KfOJ1p/4WvPptqb3+oCCcLr5IQWocC76ud+jot82aRszPFVlRNFLwglbjTvjd1pBoJ98JhHvMHH1SwZf7blK+Bh+l3KteiOQvmFXyBwr+0vFsR/tlkvZ9VXeYRRxTyaPTZ7tPGvA0I8vV7Wqzgqb5D2riM5Y= +api: eJx9VFFvm0AM/ivIT5t0Cl3VJ54WNZEatdOqNttLFFUOOOE64OidqZoh/vvkAwIsbXkB7M939vfZroHx4CDawNqYzMFWQUIutrpkbQqIYEEZMQUYxKYoKBZrsDsGq8UMFJiSLIpplUAEiYc+sTHZ04AGBSVazInJykU1FJgTRDBAnnQCCrRcVyKnoMDSS6UtJRCxrUiBi1PKEaIa+FhKsGOriwMo2BubI0MEVeVPYc2ZAK6HdFcJNM1WDnWlKRw5Oefy4kpe02Ifqzgm5/ZVFjx0YGgUXF1enmN/Y6YTX3ywtNZYUFIRU8GCxbLMdOzd4bOTgHpURGmFOdZtKgkx6ky+NFPuzgGZiSdeLI4/957KKRuNOll0wXQgC822Ub0NrcXjiKI70yYoJebu8B67PfQHOYcHT0YL+RjqyQjW4m1E1LLyhPTulTc0CmJ+Gx1jds8U81Q/pjeGZsj/hBm6Y+O5adPvcNvhjEGiVqGPqVi0Erx3WQ+5Wa/vzw6UR0FOnJphAnzHcwoRhDILLhw63YX1pO0bUODIvvajUdlMwrDUXsz2N2UuozDMTIxZahy37q1ExpXVfPSh8/vVLR1vCBOyEG22Y8CjdF7bS1PYiX8s9S0JI91wzitOjdV/sRthP5xpG9V4XfdmLOv8QAVjML9fwf8bZOKSEcHYd0R/k3eDGhXrojBEb56hDkEB5X5AgAnz7yeP6CnMtddczL7NLsRUGsc5FqMruh12Pd5JkxzrYXQ/X3gdW9KZYZmh9rPjE687zTfgNW9L7VUHBdF03W0ViJSCr+sdOvpls6YR80tFVhTdKnhFq3En/G5qSLST7wSiPWaOPqngy0M3H1+Dj1LuVS9E8lfMKvkDBX/oeLaZ/QpJ+76qO8w8jqnkUfTZxpMGPE3GYnm3XC+haf4BaSUwNw== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-trace-tracing.api.mdx b/docs/docs/reference/api/delete-trace-tracing.api.mdx index 437598add0..d9be322070 100644 --- a/docs/docs/reference/api/delete-trace-tracing.api.mdx +++ b/docs/docs/reference/api/delete-trace-tracing.api.mdx @@ -5,7 +5,7 @@ description: "Delete a trace and all its spans." sidebar_label: "Delete Trace" hide_title: true hide_table_of_contents: true -api: eJztV81u20YQfpXB9mIDlOSqPQk91IgdxI2bBLHTiyVEK3IkbrzcZXaGdlRBQB+iT9gnKWaXsijJdtMceurFFrnzP983s1wp1gtSoxt1hnXAXDMWapKpAikPpmbjnRqpM7TICBo46BxBuwK0tWCYgGrtqD92Y/ceK3+HBHiHYRnfA5eagUodkIBLQzCNBj6aYgr3hksjIgh18J8w577Y4CY4gunwZAineY41YysbJa1xtwRzH+JT9J2c3GPAsat0uMUinhcSsvGu3/VZNcQwk0R+GPbyUgco8Qt8+HBxFjM4a3XAEDjPECQVMjOLfXjpA5Cfcy9ImtoCYaUdm5zAO9BjR8YtLPZShchUtZVCOc9aTGZQB5xjGLvp2fnl+fU5DJLMICrQYLWJcj3tq0z5GkNUvCjUSMVk8GMSkb/GLZQ06aFlIw4NZqrWQVfIGKSlK+V0hWqkNqZVpoy0s9ZcqkwF/NyYsFWmvMRKq9FK8bIWPeKQHLFhKy+uY3IXhVqvJ6JPtXeEJCrDk6H828XNVZPnSDRvLLxvhVWmcu8YHYu4rmtr8pjo4BOJzqoTRh2kDGySh9w3SamNzjjGBYZOeC+ixD543zTVDAP4+T5eQLcAi4Cum5k1VGIB7CO6jFsgMRAH1FUfXviq1qK00MYRRxG3Z3rpGyB0LCYKZMwZah3YaAtzbWwTkPoxvrluLKvRyTpTEdKxFm75dh7bZhgrOiyA+JAu7sjutmqdPbxxjbVK2rSpzpUwUnqXbQHxjaa2OMiUZg5m1jDuJaGLwkgHtH23k8VX+Nt0dicEqXT3zcx7i9rFV4/7UrkJeWN1OHrZWPsLedd723Dd8LFgJlnxM5k80Uhb9a/R0iHo5bMV2tONRT/w+JTy6bak6wPFrdjba7SXxt12jP9zYJcRbvscuTTEAuPp0QYaGbRwO55CrU3YTt0H1kTMZ2AcUDOrDJGMTh8KDP2vips6M2E3nM0BzIOv0ipJbJSBLpN6GofBFALOLeZMUPp7qLRbtkSM9KaH6WOXwkPaZ/rYPU71i3lismTFkumb1qxoEyIk9/ATvJlmY0e+2uwiYblUBsMdhh6ZAuFOW1PECRfVY2SyXGpZLSTWj/IS89uxS1pg/YLaFcbaWDruwxUi3FynuQ9//fEnnNLS5XAfDOPYyTwNOufJ0SDuGHQ5DnRteovGFGnBGLf4TotOL+r0Niq94cnwWJyNndRBStVdbPNYnb1lvBn70mRp84/DRyb/b9usz0Pw4dvHfqqC/HpiLFqf75z+mwEz2adOhyg+BSjsqmjx3Fr8FYn0Arc8fFo0FgOu5XQt21hmg4i3xxeuHRY5f+mYOaDQC6nlF36UZtu1fhNrk8Jv5TqTYNui1KGnS3GWWvAcp19dX787MJjwUSGXfnuLUVm6f4zUBpmHVyCVqUSGdI1pghVxXZvYxPRYMtc0Ggyw6efWN0VfL9Cx7muTBCdiI2+C4WU0cvru4jUuX6EuMKjRzaQrcCXYS2jaFXvogK7Na5SatFeq04ZLH8zvCSLtvapMWuvY2bnvNvY0Bgen7y4Oht3OkZBE5xETG0/xWGV7aW+zVZnCKlJEMerq54cT6Wi8wEY3J/3v+yfyqvbElXYdF+31Pm71/fBWW97+/xnwn38GtOgTrg9qq02cRhEIq5ZFN2r7PZBsqEwu9O0Fb5Kp0hOL3Go104Qfgl2v5fXnBoMwY5KpOx2MnglOb1aqMCS/CzWaa0v4DByO3reT5hieCnXDHifUudO2kSeVqVtcdr9L4hwuN9Rctcep8R3Fg7UhHH4YL6mgar3+G3z5Lb8= +api: eJztV81uGzcQfhWCvdjASnLVnoQeasQO4sZNgtjpxRKi0e5Iy5hLbjizdlRBQB+iT9gnKYZcWSvJdtMceurFlsj5n++boVaaYUF6dKPPsA6YA2OhJ5kukPJgajbe6ZE+Q4uMChQHyFGBKxRYqwyTohoc9cdu7N5j5e+QFN5hWMZzxSWwohICkuLSkJpGAx9NMVX3hksjIqjq4D9hzn2xwU1wpKbDk6E6zXOsGVvZKGmNuyU19yF+i76Tk3sMOHYVhFss4n0hIRvv+l2fVUOsZpLID8NeXkJQJX5RHz5cnMUMzlodZUg5zypIKmRmFvvqpQ+K/Jx7QdIEqwgrcGxyUt4pGDsybmGxlypEpqqtFMp5BjGZqTrgHMPYTc/OL8+vz9UgyQyiAg1WmyjX077OtK8xRMWLQo90TAY/JhH5a9xCS5MeWjbi0GCmawhQIWOQlq60gwr1SG9M60wbaWcNXOpMB/zcmLBVprzECvRopXlZix5xSI7YsJWD65jcRaHX64noU+0dIYnK8GQo/3Zxc9XkORLNG6vet8I607l3jI5FHOramjwmOvhEorPqhFEHKQOb5CH3TVJqozOOcYGhE96LKLEP3jdNNcOg/HwfLwpagEVA183MGiqxUOwjuoxbILEiDghVX73wVQ2itADjiKOI2zO99I0idCwmCmTMWdUQ2IBVczC2CUj9GN8cGst6dLLOdIR0rIVbvp3HthnGig4LID6kizuyu61aZw8nrrFWS5s21bkSRkrvsi0gvtHUFgeZBuZgZg3jXhJQFEY6APbdThZf4W/T2Z0QpNLdk5n3FsHFo8d96dyEvLEQjl421v5C3vXeNlw3fCyYSVb8TCZPNNJW/Wu0IARYPluhPd1Y9AOPTymfbku6PlDcir29Rntp3G3H+D8Hdhnhts+RS0MsMJ4ebaCRqRZux1NVgwnbqfvAmoj5TBmnqJlVhkhGpw8Fhv5XxU2dmbAbzuZCzYOv0ipJbJSBLpN6GofBVAWcW8yZVOnvVQVu2RIx0psepo9dCg9pn+lj9zjVL+aJyZIVS6ZvWrOiTYgquVc/qTfTbOzIV5tdJCyXymC4w9AjU6C6A2uKOOGieoxMlkstq4XE+lFeYn47dklLWb+gdoUxGEvHfXWFqG6u09xXf/3xpzqlpcvVfTCMYyfzNEDOk6NB3DHochxAbXqLxhRpwRi3+A5Epxd1ehuV3vBkeCzOxk7qIKXqLrZ5rM7eMt6MfWmytPnH4SOT/7dt1uch+PDtYz9VQT49MRatz3du/82AmexTp0MUnwIUdlW0eG4t/opEsMAtD58WjcVQ13K7lm0ss0HE2+sL1w6LnL90zBxQ6IXU8gs/SrPtWr+JtUnht3KdSbBtUerQ06U4Sy14jtOvrq/fHRhM+KiQS799xegsvT9GeoPMwyeQznQiQ3rGNMGKONQmNjF9LZnr0WBgfQ629MTpeiKaeRMML6Pq6buL17h8hVBg0KObSVfgShCXMLQr9lB3qM1rlEq0D6nThksfzO8JGO1rqkxa69jPue+283SBjkGdvrs4GHE7V0INyCMSNp7itc46ydJoMIB43Acz0JnGKhJDM0L188ON9DE+W6Obk/73/RM5qj1xBa7jon3Ux12+H95qy9b/H///+eO/RZ8wfFBbMHEGRSCsWu7c6O2vgGRDZ/KMb591k0wLJURutZoB4Ydg12s5/txgEGZMMn0HwcBMcHqz0oUh+Vzo0Rws4TNwOHrfzpdj9VSoG/Y4oc4d2Ea+6Uzf4rL7ayRO33JDzVV7nRrfUTxYFsLhh6GSCqrX678BBCIqYA== sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-trace.api.mdx b/docs/docs/reference/api/delete-trace.api.mdx index 022915b930..a4adc6164b 100644 --- a/docs/docs/reference/api/delete-trace.api.mdx +++ b/docs/docs/reference/api/delete-trace.api.mdx @@ -5,7 +5,7 @@ description: "Delete Trace" sidebar_label: "Delete Trace" hide_title: true hide_table_of_contents: true -api: eJydVcGO2zYQ/RViTi3A2M42J51qZBeIkRRdJN5cDCOeJccWU0lUyNFmHUH/Xgwl27K9CYqeJHFmyMf33oxaYNxFyFawDGgowlqDrykgO18tLGRgqSCmLyxh0FBjwJKYghS1UGFJkEGKfnEWNLgKMqiRc9AQ6FvjAlnIODSkIZqcSoSsBd7XUhc5uGoHGthxIQsJhVpY6Lq11MfaV5GilNzMbuRhKZrgasEHGXxqjKEYt02hPg7JoMH4iqliSce6LpxJ15l+jVLTjmDUQS7Lrj/B+KYvGtC5imlHYQTvbcrQFyA2rzfKbRWqzYGHjfqOUQXiJlRktdrMNspzTuG7izRJG2yxKRiyWadP7Aneav/3NlF7TlGnjytVUxQg9FyRdgnsj5tXJsegcnpWDw+LW+UsVey2e1ftFOek0smKc+QE2ARCJqt8UGQdk51AJ/j6c/3jVzJ8KdbCHonvOsl+c/OCTp+xcDapoO5C8OH/i2SJ0RXy5pjKeJ1QeHMW/Q+MHoTu1qfbYgi4H132g+8BQqehjLtfmfgvihF3BMfNfp6ayFBLiXbSO3XTG3AIL9JCp8Hw82ibKyXeCpfP/KJapyZcJW56+EPeyEUniXqFfk7FbS/Br6zxbrm8v9qw98e5MW7TeFHLYbyUxLk/jZ00cDiHDKbJqnHaHpqlAw2RwtNhEjWhkDSsXVK2/8yZ65hNp9RMTOEbO8EdVYwTdH3iWvYwTXC8T5vM7xfvaf+O0FKAbLUeJ3wSQ/YWO087yoK1e09C1DAV5w3nPrgfvW+G0Zj3VV2Se+vHas8TODW/X1x18llIOgdNMsrhpBQGfXHt021BA5Wpb4AJyz+PEZFZOOyPmU1eT2ayVPvIJVajIy6EOoN3ZEBMOK0LdKlNEph2UHDVj7kIWv4Gw8Bba8h9ZIm27SNGeghF18nyt4aCaLLW8ITB4aMwtGrBuijvFrItFpGugBynCvz2cTD+7wr0ywAPulUi2hMWjXyBhn9oP/6ppbGQH0zRDuG5MVTzqPBqiol7joa+vftwt7yDrvsXLQeFrA== +api: eJydVcGO2zYQ/RViTi3AWs62J51qZBeIkRRdJN5eDCOepcYWU0lUyNFmXYH/Xgwl2/J6ExQ9SeLMkI/vvRn1wLgPkK9h5dFQgI0G15JHtq5ZFpBDQRUxfWYJg4YWPdbE5KWohwZrghxS9LMtQINtIIcWuQQNnr521lMBOfuONARTUo2Q98CHVuoCe9vsQQNbrmQhoVDLAmLcSH1oXRMoSMnN/EYeBQXjbSv4IIdPnTEUwq6r1McxGTQY1zA1LOnYtpU16TrZlyA1/QRG6+WybIcTjOuGohGdbZj25Cfw3qYM/QLE9s1W2Z1CtT3ysFXfMChP3PmGCq22861yXJL/ZgPN0gY77CqGfB71mT3B2xz+3CVqLymK+rTSdFUFQs8VaS+B/XrziynRq5Ke1cPD8lbZghq2u4Nt9opLUulkxSVyAmw8IVOhnFdUWKZiBlHwDee6xy9k+KVYy+JEfIyS/dvNKzr9hZUtkgrqznvn/79IBTHaSt4sUx2uEypnLqL/gdGj0HFzvi16j4fJZT+4ASBEDXXY/8jEf1AIuCc4bfb91ESGWkk0Su+03WDAMbxMC1GD4efJNldKvBUun/lVtc5NuE7cDPDHvImLzhINCn2fittBgh9Z491qdX+14eCPS2PcpvGiVuN4qYlLdx47aeBwCTlkyaoh64/NEkFDIP90nESdryQNW5uUHT5L5jbPssoZrEoXeAhvpNJ03vIhlS7ul+/p8I6wIA/5ejNN+CQ2HIx1mXYSA1v7noSecRYuOi6dt/8MbhkHYjlUxSTyzk01XuypYVSL++VV/16EpF/QJHscT0ph0JPLhjzLMC3P0GaggerULcCE9e+niIgrzA3HzGdvZnNZal3gGpvJES/kuYB3YkCsl7UV2tQcCUw/6rYehlsALf+AccxtNIgYEu37Rwz04KsYZflrR1402Wh4Qm/xURha91DYIO8F5DusAl0BOc0S+OnjaPefFejXAR51a0S0J6w6+QINf9Nh+itLw6A8mqIfwwtjqOVJ4dXsEvecbHx79+FudQcx/gvnv4JN sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-user-admin-simple-accounts-users-user-id-delete.api.mdx b/docs/docs/reference/api/delete-user-admin-simple-accounts-users-user-id-delete.api.mdx index 43528c1f29..df4d2ac422 100644 --- a/docs/docs/reference/api/delete-user-admin-simple-accounts-users-user-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-user-admin-simple-accounts-users-user-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete user" sidebar_label: "Delete user" hide_title: true hide_table_of_contents: true -api: eJztWUuP2zYQ/ivCnBqAsLeLnnSqkTUQYxPE2Ed7WBgCLY4tZvVgSGobV+B/L4aUbEneONughwL2ybY4M5z55ht6xGnA8q2B+AlmopAlrBhUCjW3sioXAmIQmKPFpDaoE04iiZGFyjHhaVrVpTV+ySRBQookCRrAQHHNC7SoyX4DJS8QYmjlgIEsIQbFbQYMNH6tpUYBsdU1MjBphgWHuAG7U6RmrJblFhhYaXN68GhQRwsBzq1I3aiqNGhI4/rqij4EmlRLRZFADPd1mqIxmzqP7lphYJBWpcXSkjhXKpepD3z6xZBO0/NCaYLFyrCD0LtE12XPvXVV5cjLnn83ehfd1fRE4IbXuYV4w3ODjrWYiuBku9Y4NtrE4+o9K3efNx5CabEwx+5IcQoowogQ2gxtDcUd2z8p6zwHArUzcIcbcI5169X6C6Z2kLMncqGn4bl0E6Kcl1baHRz0udZ8d3LDRx+5Yx1XkEy0sZ4lGNHigIFjUOktL+XfnqvnCcrnAQKOwV+VfjaKp2dKkj8P4YdzhDY8TyiWXfCjQkkKLNaoTSbVeQLTr5noUw+MfvmcPUr7ShpD1BbV2QPU1tcYHq5k8oy788RkpmR0S8G/tut392j/zc2zVCp0g4dgL63gpRW8tIKXVvDSCl5awUsreGkF/5cAXVrB/7YVHFt1DFDr6o2tX1oJPIXle1p3DAo0hm9Pin5qRfxdpeUyH3nAhZB0dvB82XMh3NwOYz4F1U1r+kf58YEd/B7n6t7qOrW1RjEnsP5VtuYB3jfman9x7Bxp/HZ9fXzP/AfPpQgHa3Dn5y+ZPTy+Rl5PeF6lg9U31IcsLW5RB24NUDoE/LEKDnqumO0beRJEvi/qwYgeaNXR1b+qPSD7QvcPHIPUfuuZOcrGe8Lym/0hZwib4H4r10v6IUWvE2bM0JP0+PDwsDwyGPgxJEagUETvMZ7MNqsO8xU/LbEZxDD1Q5ZpGLJMuyHL1L8BTpv2LcgBA4P6pRut1Dr3qkr6ZIefmbXKxNMp1pM0r2ox4VssLZ9wGQRXZCOtNZ1wZGS2XNzi7gNygRrip1Vf4J44Glg3FNtniit5i4RdO+aZ1TardNtjdMOeLGg5z4BN1SfAzDsXzZYLGCM3WKJi4qnnTreTXwY2CvsQLTDAwpcSWOTF7/sVyjxhGLa5mvw6ufJ/75WxBS97WwxzN/BuDwDRcqpyLn3heF+aNqlP4JNKSfNpBQZdYoG1L/cM4m4ytmKQVcaSXtOsucFHnTtHj7/WqClZKwYvXEu+JuieGhDS0HfRjpiOXNyfQPDLXVsk7yJgr7veJbSkbL7wvKZfwOAZd73xnT9Bso4sTbs6S1NUtqd3dOARq/bkv5l/nD/Mwbl/AC4csds= +api: eJztWd+P2zYM/lcMPq2AcL4d9uSnBb0ADa5Fg/uxPQSBodhMrJ5tqZJ8a2bofx8o2YmdXNNbsYcByVMSkZTI7yMV2mzB8o2BZAGTvBI1LBlIhZpbIetZDgnkWKLFtDGoU04qqRGVKjHlWSab2hovMmnQEHmaBgtgoLjmFVrUtH8LNa8QEuj0gIGoIQHFbQEMNH5thMYcEqsbZGCyAisOSQt2q8jMWC3qDTCwwpa08GRQR7McnFuSuVGyNmjI4ub6mj5yNJkWiiKBBB6aLENj1k0Z3XfKwCCTtcXakjpXqhSZDzz+YsimHXihNMFiRTgh19tUN/XAvZWUJfJ64N+t3kb3Da3kuOZNaSFZ89KgYx2meXCyk7WOHRzicfWe1dvPaw+hsFiZY3dEfgoowogQWo/3Gqs7tlupm7IEArXf4B7X4Bzr5XL1BTM74mxBLgwsfC7dhiintRV2C3t7rjXfnjzwyUfuWJ8rSFt0sZ4lGNFsj4FjIPWG1+Jvn6vnCcrnEQKOwV9SPxvFszNNkj/34Yd7hA48TyjmffAHhZJWWK1Qm0Ko8wRmWDPRpwEYw/I5e5R2lXQIUVdUZw9QV1+H8HAl0mfcnicmEyWiOwr+tVO/e0b3b26ehVKhG9wHe2kFL63gpRW8tIKXVvDSCl5awUsr+L8E6NIK/ret4OGujgFqLd/Y+mUyx1NYvie5Y1ChMXxzUvVTp+LfVVouygMPeJ4Lujt4OR+4EN7cjmM+BdVtt/WP+PGB7f0+5OrB6iazjcZ8SmD9K7amAd43crV7cewcWfx2c3P8nvkPXoo8XKzBnZ9/yezh8TXyOuGlzEbSN9SHqC1uUIfcGqG0D/ijDA76XDGbN+ZJUPm+qgcjeiSpo1f/qvGA7ArdLzgGmf022OaIjfeE5Tf7w5whbIL7nd6A9D1FryfMYYaeTI8Pj4/zow1DfowTI6RQRM8xPpltIffzFT8tsQUkEPshSxyGLHE/ZIn9E2Dcdk9BDhgY1C/9aKXRpTdVwpMdfhbWqiSOS5nxspDGBvGSLLNG071GppP57A63H5DnqCFZLIcKD5SZIdfGajt+uBJ3SIh1w51JYwupu86iH/EUwcp53tdySPtkg7Xl0WQ+g0O8RiIqIZ75jOlP8mJgg2BNEsfcL19xEQMDrHwBgUVe/b6TEN+EXDjm+urXq2v/py6NrXg9OGLM2Mi7HQCUjLEqufDl4n1pOyoX4KkkqjyZwKCnE1j3SM8g6edhSwbEEtm17YobfNKlc7T8tUFNZC0ZvHAt+IqgW7SQC0Pf826wdOTi7t6BX+670ngXAXvd9Z7Qmth84WVDv4DBM24HQzt/bxR9srSddJJlqOzA7uiao6zapfzt9OP0cQrO/QMvZa58 sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-user-identity-admin-simple-accounts-users-user-id-identities-identity-id-delete.api.mdx b/docs/docs/reference/api/delete-user-identity-admin-simple-accounts-users-user-id-identities-identity-id-delete.api.mdx index edfd9100f8..faf03571b5 100644 --- a/docs/docs/reference/api/delete-user-identity-admin-simple-accounts-users-user-id-identities-identity-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-user-identity-admin-simple-accounts-users-user-id-identities-identity-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete user identity" sidebar_label: "Delete user identity" hide_title: true hide_table_of_contents: true -api: eJztWU1v4zYQ/SvCnLoAEaVBTzrV2BhYI7tYIx/tITAEWhrb3OiDS1LpuoL+ezEkZVF24k23RVHAPiURh8OZ994oI04Lhq81JI8wyUtRwYJBLVFxI+pqlkMCORZoMG00qlTkWBlhtikn21SLUhaY8iyrm8poa6PT3jTtzQXqdNhKC84nMJBc8RINKoqghYqXCAl4B8BAVJCA5GYDDBR+bYTCHBKjGmSgsw2WHJIWzFbSNm2UqNbAwAhT0IMHjSqa5dB1bOc7iOMf+595X+6MBbnQsq40atp1dXlJP3LUmRKS8IQE7posQ61XTRHdemNgkNWVwcqQOZeyEJmFP/6iaU8bRCIVkUOIWtdqm6qmCkJc1nWBvApivFbb6LahJzmueFMYSFa80Ngxz2zugvRrbcf2DrGk2siq7eeVpUkYLPVhOCI/DhZ0hNBq7GtsTkT5J1VTFECg9g5ucUVM9uv18gtmZsTbI4UQ7LCKvnZZTi1TMOznSvHt0QMfbOYdg1D7PteTBCOaDRh0DGq15pX402r1NEH5PEKgY/BHrZ605NmJiuT3IX33HqEDTxOKeZ/8XqGkJZZLVHoj5GkCE9ZM9CkAIyyfk0dpV0n7EPmiOnmAfH3tw8OlSJ9we5qYTKSIbij5l0599Qz/31w/CSldNzgke24Fz63guRU8t4LnVvDcCp5bwXMr+L8E6NwK/rut4L7XjgEqVb+x9cvqHI9h+Z7WOwYlas3XR00/eRN7V2m4KPYi4Hku6N3Bi3kQgru9Hed8DKpr7/p7/NjEhrj3ubozqslMozCfElh/i62pg/eNXO0ujruOdvxydXV4z/wbL0TuXqwunB+/ZLbw2Bp5mfCizkarb6gPURlco3LaGqE0JPyxdgFarej1G3XiTF43tWBE97Ta0fW/bCwgu0K3DzoGmfkWuDlg4z1h+c18VzOEjQvf2wWkDxS9LJh9hR6Vx4f7+/mBQ6ePsTCchCL6jon6WYhVtdnUw7jHjmbMBhKI7agndqOeuB/1xPZTMG7951AXD59EcRuMWDpgoFE99wOeRhXWpxRWDu7PjTFSJ3GMzUVW1E1+wddYGX7BhTNckI+sURQpOZnMZze4/YA8RwXJ4yI0uCMVO12OzXZccilukFL2A6FJYza18l1IPxLauF2d1ciqDiUyscFFk/kM9rEdLVG58cyqqz/JLgPbS3vIFhhgaYsNDPLy190KaYMwdMdcXvx8cWkbgFqbklfBEa+wOwpzhwQpOJYFF7bGbFCtp/0RLO3EniUeGPTUA/P3AAySYFA3fA4ySMIh24LBptaGfLbtkmt8UEXX0eOvDSpidMHgmSvBl4TvYwu50PR77idVB+HvXmTw062vtXcRsJfT6lmvCIdnXjT0FzB4wm0waSQx/ofHhvjYd+CmF3PrLSZZhtIEew9e2aT6XdVeTz9O76fQdX8BJigl3A== +api: eJztWU1v4zYQ/SvCnLoAEaVBTzrV2BhYI7tYIx/tITAEWhrb3OiDS1LpuoL+ezEkZVF24k23RVHAPtkWh8OZ997II00Lhq81JI8wyUtRwYJBLVFxI+pqlkMCORZoMG00qlTkWBlhtikn21SLUhaY8iyrm8poa6PT3jTtzQXqdNhKC84nMJBc8RINKoqghYqXCAl4B8BAVJCA5GYDDBR+bYTCHBKjGmSgsw2WHJIWzFbSNm2UqNbAwAhT0IUHjSqa5dB1bOc7iOMf+595X+6MBbnQsq40atp1dXlJHznqTAlJeEICd02WodarpohuvTEwyOrKYGXInEtZiMzCH3/RtKcNIpGKyCFErWu1TVVTBSEu67pAXgUxXqttdNvQlRxXvCkMJCteaOyYZzZ3Qfq1tmN7h1hSbWTV9vPK0iQMlvowHJEfBws6Qmg19jU2J6L8laopCiBQewe3uCIm+/V6+QUzM+LtkUIIdlhFX7ssp5YpGPZzpfj26IEPNvOOQah9n+tJghHNBgw6BrVa80r8abV6mqB8HiHQMfijVk9a8uxERfL7kL67j9CBpwnFvE9+r1DSEsslKr0R8jSBCWsm+hSAEZbPyaO0q6R9iHxRnTxAvr724eFSpE+4PU1MJlJEN5T8S6e+eob/N9dPQkrXDQ7JnlvBcyt4bgXPreC5FTy3gudW8NwK/i8BOreC/24ruO+1Y4BK1W9s/bI6x2NYvqf1jkGJWvP1UdNP3sS+qzRcFHsR8DwXdO/gxTwIwb29Hed8DKpr7/p7/NjEhrj3ubozqslMozCfElh/i62pg/eNXO1eHHcd7fjl6urwPfNvvBC5u7G6cH78JbOFx9bIy4QXdTZafUN9iMrgGpXT1gilIeGPtQvQakWv36gTZ/K6qQUjuqfVjl7/y8YCsit0e6FjkJlvgZsDNt4Tlt/MdzVD2LjwvV1A+kDRy4LZV+hReXy4v58fOHT6GAvDSSii55ion4VYVZtNPYx77GjGbCCB2I56YjfqiftRT2wfBePWPw518fBIFLfBiKUDBhrVcz/gaVRhfUph5eB+boyRSRwXdcaLTa2NW17QzqxRFB9tncxnN7j9gDxHBcnjIjS4I+06NY7NdgxyKW6QEvVjoEljNrXyvUc/CNq4XZ1VxqoOhTFZY2V4NJnPYB/R0RIVGc+spvqT7DKwIFmdxDG3ly+4iIEBlrbEwCAvf92tkCIIOXfM5cXPF5f2b7/WpuRVcMQrnI7C3CFBuo1lwYWtLBtU68l+BEs2cWbpBgY94cD80z+DJBjPDQ+BDJJwtLZgQFSSz7Zdco0Pqug6uvy1QUWMLhg8cyX4kvB9bCEXmr7nfj51EP7u9gU/3foKexcBezmtnvWKcHjmRUO/gMETboP5IknwPzw2xMfe+Ta9mFtvMckylCbYe3CjJtXvavV6+nF6P4Wu+wul3iJ9 sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-webhook-subscription.api.mdx b/docs/docs/reference/api/delete-webhook-subscription.api.mdx index df4c4166ea..11329e5b5e 100644 --- a/docs/docs/reference/api/delete-webhook-subscription.api.mdx +++ b/docs/docs/reference/api/delete-webhook-subscription.api.mdx @@ -5,7 +5,7 @@ description: "Delete Subscription" sidebar_label: "Delete Subscription" hide_title: true hide_table_of_contents: true -api: eJx1VE1v2zAM/SsBTxsgJG3Rk08L1gAN2mFFm22HwCgYm4nV2pYq0V0zw/99oGwnzkd9sS0+UtR7fKqBceMhWsIfWmXGvHqIFRhLDlmbcp5CBCnlxPT8twU8+2rlE6etxEGBRYcFMTmpUkOJBUEEQ9CzTkGBLiECi5yBAkdvlXaUQsSuIgU+yahAiGrgrQ3p7HS5AQVr4wpkiKCqQhXWnAvgaVB/NE+haWIp660pPXmpdHVxLa+U9s1KWpKQ9+sqHz12YGgUXF9dnWJ/Y67TwMJo5pxxoCAxJVPJgkVrc52E8OTFS0I9OIZ1QiHrtpWUGHUuX5qp8KeA3CQHUSy3P9eBzkM+GrVb0SXThhw0caP6NXQOtwOS7k3boByx8Jtz/PbQH+Q9bgIZLeRzaCBjtJBoI7LaKhDSh+dhoVGQ8MegjFm9UMKDMt+Fyw+GZt//DrOfj2Xgpm2/w8X7GnuJWoU+p+KmleDcZj3kdrF4OCkojzoajJvgh9HToQ8K4szs7RKcwRlEMOmM4ydDU/hJfeSRBhR4cu+9kyqXSzZaHXRvfzNm66PJhKpxkpsqHeOGSsYx6hYYS42kcpq3ocj0YX5H21vClBxEy3gIeJJxbQfwELYTDa2+I6Gxc/W04sw4/Q+7MwdPZ21WE4ZhbYazMA3NjaYPczgm8SAkvsIkjFG/UwiDOjr2/rSggIrgKmDC4tsuIkMgHLbbXIwvxxeyZI3nAsvBFudlPOhyR4RM6sTmqIOXQk91p+8Sen1Fv6HCoCA6vgdjBZnxLGl1vUJPv1zeNLL8VpETzWIF7+g0roTBZQ2p9vKdQrTG3NNJh7s7Cb48drb5OgJ1vvNe11JEfce8kj9Q8ErbM5d2uFuyfnbqDjVNErI8yD+5CmXIdna4md3PFjNomv+ZfDKS +api: eJx1VE1v2zAM/SsBTxsg1F3Rk08L1gAN2mFFm22HwCgYm4nV2pYq0d0yw/99oGwnzkd9sS0+UtR7fGqAceMhXsJvWuXGvHpIFBhLDlmbap5BDBkVxPT8pwM8+3rlU6etxEGBRYclMTmp0kCFJUEMY9CzzkCBriAGi5yDAkdvtXaUQcyuJgU+zalEiBvgrQ3p7HS1AQVr40pkiKGuQxXWXAjgaVR/Ms+gbRMp662pPHmpdHV5La+M9s1KWpqS9+u6mDz2YGgVXF9dnWJ/YaGzwMJk5pxxoCA1FVPFgkVrC52GcPTiJaEZHcM6oZB110pGjLqQL81U+lNAYdKDKFbbH+tA5yEfrdqt6IppQw7apFXDGjqH2xFJ96ZrUI5Y+s05fgfod/IeN4GMDvIxNJAxWUi0FVltHQgZwvOw0CpI+e+ojFm9UMqjMt+Ey78M7b7/HWY/H8vATdd+j0v2NfYSdQp9TMVNJ8G5zQbI7WLxcFJQHnU0GDfBD5OnQx+UxLnZ2yU4g3OIIeqN46OxKXzUHHmkBQWe3PvgpNoVko1WB92735zZxlFUmBSL3HjuwolkprXTvA2p04f5HW1vCTNyEC+TMeBJhrQbu0PYTiq0+o6EvN7L05pz4/Q/7E8anJx3WW0YgbUZT8B0QxXjZPowh2PqDkLiJkzD8Aw7hTCo0WF9HEUYli9QR6CAyuAlYMLy6y4i0gtz3TaXF18uLmXJGs8lVqMtzot30OWOCJnPyBaog4NCT02v6hIGVUW1sa6gID6+/RIFIpakNc0KPf10RdvK8ltNTjRLFLyj07gSBpcNZNrLdwbxGgtPJx3ubiL49Nib5fME1PnOB10rEfUdi1r+QMErbc9c1eFGyYfZaXrUNE3J8ij/5AKUIduZ4GZ2P1vMoG3/A7GfLzM= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-workspace-admin-simple-accounts-workspaces-workspace-id-delete.api.mdx b/docs/docs/reference/api/delete-workspace-admin-simple-accounts-workspaces-workspace-id-delete.api.mdx index 60f66da985..de652b6275 100644 --- a/docs/docs/reference/api/delete-workspace-admin-simple-accounts-workspaces-workspace-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-workspace-admin-simple-accounts-workspaces-workspace-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete workspace" sidebar_label: "Delete workspace" hide_title: true hide_table_of_contents: true -api: eJztWUuPGjkQ/iuoTruSBbOjPfVpUQYpaBIFzUw2B4Rapl2AM/1wbPds2Jb/+6rsbvoBIZMoh5XgBLTL9fjqK3fhqsDyrYFoCVORyRxWDAqFmltZ5HMBEQhM0WL8T6GfjeIJxpzkYiMzlWLMk6Qoc2vadRN3ZKWI46AAGCiueYYWNZmrIOcZQgRdYWAgc4hAcbsDBhq/lFKjgMjqEhmYZIcZh6gCu1e011gt8y0wsNKm9OBTo2w0F+DcinQYVeQGDW27vbmhD4Em0VJRiBDBY5kkaMymTEcPtTAwSIrcYm5JnCuVysQjMvlsaE/VcUVpwsvKYEHofazLvOPjuihS5HnHyTu9Hz2U9ETghpephWjDU4OO1WCL4GS9Vjk2MFIaj2EFPN9/2HgwpcXMHLsjxTm0CCNCaNPX1Rd37PAkL9MUCNRGwQNuwDnWrBfrz5jYXuKW5EJnhyfZXYhylltp99Du51rz/VmDH33kjnkIYimQVNSxXiQYo3mLgWNQ6C3P5b+eq5cJyoceAo6158tl4vGpDT+cI2TwMqFYNMEPCiXOMFujNjupLhOYbs2M3nfA6JbPxaPU9hYDiOqiuniA6voawsOVjJ9xf5mYTJUc3VPwp6x+00b9NjfPUqnQDbbBXlvBayt4bQWvreC1Fby2gtdW8NoK/i8BuraCv7YVHGp1DFDr4pWtX1IIPIflG1p3DDI0hm/Pir6vRfxdpeUyHXjAhZB0dvB00XEhXN/2Yz4H1V2t+nv58YG1fg9z9Wh1mdhSo5gRWD+UrVmA95W5OlwcO0c7/ry9Pb5n/punUoSDNbjz85fMHh5fI6cTnhZJb/UV9SFzi1vUgVs9lNqA3xXBQc8Vs30lT4LIt0U9GKMnWnV0/69KD8ih0P0DxyCxXztqjrLxhrD8ar/LGcImuF/LdZLepug0YYYMPUuPt09PiyOFgR99YgQKjQ6vV89ouyva6YsfntgdRDDx05dJmL5MmunLpO1sJ1V3oOKAgUH90sxcSp16JUr63IefO2uViSYTLMdJWpRizLeYWz7mMgiuSEdSajrwSMl0Mb/H/VvkAjVEy1VX4JEoG0jYFzskjit5jwRlPf+ZlnZX6LrlaAZAu7DLeUJsii4fpt650XQxhyGQvSWqLZ54KjWW/DKwQdhttMAAM19ZYJFnfx1WiAiEYTBzM/5jfOPf9oWxGc87Jk6ksufiAQWi6kSlXPpi8g5VdY6X4HNMmfNZBgZNnqH3H4ZB1BuerRjsCmNJQ1WtucGPOnWOHn8pUVPuVgxeuJZ8TUguKxDS0HdRD6COnD2cT/DbQ11Cv4+AnQ6iyW9OyX3haUm/gMEz7odjPn/I7BoCVbXINElQ2c7mozORmHYojbvZu9nTDJz7Dxj7yps= +api: eJztWUtv2zgQ/ivCnHYBIsoGe9JpjcZAjbSokaTbQ2AItDS22OjBklS2XoH/fTGkZD3sumnRwwL2KTE5nMf3zdBjTgOGbzVETzBLC1HCikElUXEjqnKRQgQp5mgw/qdSz1ryBGNOcrEWhcwx5klS1aXR/b6OB7IijWOvABhIrniBBhWZa6DkBUIEQ2FgIEqIQHKTAQOFX2qhMIXIqBoZ6CTDgkPUgNlJOquNEuUWGBhhclr41CkLFilYuyIdWlalRk3Hbq6v6U+KOlFCUogQwUOdJKj1ps6D+1YYGCRVabA0JM6lzEXiEAk/azrTDFyRivAywltI1S5WdTnwcV1VOfJy4OSt2gX3Na2kuOF1biDa8FyjZS3YqXey3WssmxiptcOwAV7uPmwcmMJgoQ/dEekptAgjQmgz1jUWt2y/UtZ5DgRqp+AeN2At6/ar9WdMzIi4J3JhcMIl2a2Pcl4aYXbQn+dK8d1Jgx9d5JY5CGKRIqloYz1LMIJFj4FlUKktL8W/LlfPE5QPIwQs6++X88TjUx++v0fI4HlCseyCnxRKXGCxRqUzIc8TmGHNBO8HYAzL5+xR6nuLCURtUZ09QG19TeHhUsTPuDtPTGZSBHcU/DGr37TRfpvrZyGl7wb7YC+t4KUVvLSCl1bw0gpeWsFLK3hpBf+XAF1awV/bCk61WgaoVPXK1i+pUjyF5RvatwwK1JpvT4q+b0XcW6XhIp94wNNU0N3B8+XABf98O475FFS3rerv8eMC6/2ecvVgVJ2YWmE6J7B+iK25h/eVXO0fjq2lE3/e3By+M//Nc5H6i9W78/OPzA4eVyPHCc+rZLT7ivoQpcEtKp9bI5T6gN9V3kGXK3r7yjzxIt8WdWAEj7Rr6f1f1g6QfaG7BcsgMV8Hag7YeENYfjXfzRnCxrvfyg1I7yk6njDTDD2ZHm8fH5cHCn1+jBPDp1Cw/3p1GW2yqp++uOGJySCC0E1fQj99CbvpS9h3tmEzHKhYYKBRvXQzl1rlTokUjnv/MTNGRmGYVwnPs0obv72ik0mt6Jqjo7Pl4g53b5GnqCB6Wg0FHihRfeqNxfZ0cSnukABspz6z2mSVahuNbuyT+VPWpcGmGmbBbIul4cFsuYApfKMtqiieuATqLLltYINgdRSG3C1fcRECAyxcPYFBXvy13yH6CTlv5vrqj6tr9x1faVPwcmDiCIEjF/coUIKGMufClZBzqGmZfQLHLPHluAUGHbsw+uXCIBqNzFYMiDTS0DRrrvGjyq2l5S81KuJuxeCFK8HXhORTA6nQ9H/ajp0OnN3fSvDbfVs4vwfAjgfR8VsSuS88r+kTMHjG3XS4566WrEugphWZJQlKMzh8cBNSpu0L4nb+bv44B2v/AzHJxzw= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/delete-workspace-membership-admin-simple-accounts-workspaces-workspace-id-memberships-membership-id-delete.api.mdx b/docs/docs/reference/api/delete-workspace-membership-admin-simple-accounts-workspaces-workspace-id-memberships-membership-id-delete.api.mdx index ff63fa65bb..e6733f20ea 100644 --- a/docs/docs/reference/api/delete-workspace-membership-admin-simple-accounts-workspaces-workspace-id-memberships-membership-id-delete.api.mdx +++ b/docs/docs/reference/api/delete-workspace-membership-admin-simple-accounts-workspaces-workspace-id-memberships-membership-id-delete.api.mdx @@ -5,7 +5,7 @@ description: "Delete workspace membership" sidebar_label: "Delete workspace membership" hide_title: true hide_table_of_contents: true -api: eJztWd1v2zYQ/1eEe9oAwsqCPelpRmOgQRrUSNL1ITAMWjzbbPTBklRWT9D/PhwpWZScumk7DAPsp0Ti8T5+9zvyrKvB8o2B5BGmIpcFLBiUCjW3siyuBSQgMEOLy79K/WQUT3GZY75CbbZSLTltWRqZqwyXPE3LqrCmFzXLYJsUy2CrCR/cmrcDDBTXPEeLmryqoeA5QgKhImAgC0hAcbsFBho/V1KjgMTqChmYdIs5h6QGu1O011gtiw0wsNJm9OJjpyy6FtA0bG9l4NNPm7nda/N2FqTEqLIwaGjf5cUF/RFoUi0VIQ4J3Fdpisasqyy6a4WBQVoWFgtL4lypTKYuQfEnQ3vqwBelKX1WegtC75a6KgInV2WZIS8CL6/0Lrqr6I3ANa8yC8maZwYb1uZeeCfbtbphIyOVcbmqgRe792uXNGkxN4fuSHEMLsKIEFoPdQ3FKVntm6LKMiBQOwV3uKZsduvl6hOmdpC5R3Ih2OE4f+WjnBVW2h30+7nWfHfU4AcXecMcBEspkFS0sZ4kGNF1j0HDoNQbXsi/HVdPE5T3AwQa1p9jp4nHxz58f46QwdOEYt4FPyqU8JY8SWDCmoluAzDC8jl5lPoeZgRRW1QnD1BbX2N4uJLLJ9ydJiZTJaMbCv4lq1+10d7m5kkq5bvBPthzK3huBc+t4LkVPLeC51bw3AqeW8H/JUDnVvDfbQXHWhsGqHX5ytYvLQUew/INrTcMcjSGb46K3rYi7lul5TIbecCFkHR28GweuOC/3w5jPgbVVav6W/lxgfV+j3N1b3WV2kqjmBFY35WtmYf3lbnafzhuGtrx++Xl4XfmP3kmhT9YvTs//pHZweNq5OWEZ2U6WH1FfcjC4ga159YApT7gd6V30HHFbF7JEy/ydVEHRvRAqw0NAFTlANkXunvRMEjtl0DNQTbeEJZf7Dc5Q9h491u5IOl9il4mzJihR+nx9uFhfqDQ82NIDE+haH+9Rv3t4chtt2U/F3LzGruFBGI3DIr9MCjuhkFx3+TGdTjDaeLgUorrweClAQYG9XM3Aqp05gwo6SjiH7fWKpPEMVaTNCsrMeEbLCyfcOkFF6QjrTSdi6RkOr++wd1b5AI1JI+LUOCemO25OhTb55creYOEeDsomlZ2W+q2M+kGRVu/q3G8WZchbabOuWg6v4Yx3oMlKkGeOsZ1ltwysFHYfbTAAHNXgGCR53/sV4gvhKE3czH5bXLhmoLS2JwXgYnjGR94uweEyB2rjEtXfs63uqXCIzgqUBIdGYBBRwcY/OphkIzGemGjwiAZjuMWDLalsWSgrlfc4AedNQ29/lyhpiwvGDxzLfmKMH+sQUhD/4t2onUQy/7Ag1/u2pr8NQL2cowdEwqiwTPPKnoCBk+4G88niaX/oe0hTO7I3HY8r1uZaZqissHugxOeCmJf3Vezd7OHGTTNPyDCRrU= +api: eJztWd1v2zYQ/1eEe9oAIsqCPelpRmOgRhrUSNL1ITAEWjrbbPTBklRWT9D/PhypD0pO3bQdhgH2UyLyjnf3u99RZ10Nhm81RI8wS3NRwIpBKVFxI8pikUIEKWZoMP6rVE9a8gTjHPM1Kr0TMuakEmuRywxjniRlVRg9iOrYUxNp7Klq/8HuOTvAQHLFczSoyKsaCp4jROAfBAxEARFIbnbAQOHnSihMITKqQgY62WHOIarB7CXpaqNEsQUGRpiMFj52hwWLFJqG9VZGPv20mdv+NGdnRYdoWRYaNeldXV7SnxR1ooQkxCGC+ypJUOtNlQV3rTAwSMrCYGFInEuZicQmKPykSaf2fJGK0meEs5CqfayqwnNyXZYZ8sLz8lrtg7uKVlLc8CozEG14prFhbe5T52S7VzdsYqTSNlc18GL/fmOTJgzm+tAdkR6DizAihDbjs8bilKx2paiyDAjU7oA73FA2u/1y/QkTM8rcI7ngaVjOX7so54URZg+DPleK748a/GAjb5iFIBYp0hFtrCcJRrAYMGgYlGrLC/G35eppgvJ+hEDDhnvsNPH4OITv7hEyeJpQLLvgJ4XivyVPEhi/ZoJbDwy/fE4epaGHmUDUFtXJA9TW1xQeLkX8hPvTxGQmRXBDwb9k9as22re5fhJSum5wCPbcCp5bwXMreG4Fz63guRU8t4LnVvB/CdC5Ffx3W8HpqQ0DVKp8ZeuXlCkew/IN7TcMctSab4+K3rYi9lul4SKbeMDTVNDdwbOl54L7fjuO+RhU1+3R38qPDWzwe5qre6OqxFQK0zmB9V3Zmjt4X5mr/sNx05DG71dXh9+Z/+SZSN3F6tz58Y/MFh5bIy8nPCuT0e4r6kMUBreoHLdGKA0Bvyudg5YrevtKnjiRr4taMIIH2m1oACArC0hf6HahYZCYL94xB9l4Q1h+Md/kDGHj3G/lvKQPKXqZMFOGHqXH24eH5cGBjh9jYjgKBf3rNRjeHpbcZlcOcyE7rzE7iCC0w6DQDYPCbhgUDk1uWPsznCb0XkphPRq8NMBAo3ruRkCVyqwBKSxF3OPOGBmFYVYmPNuV2rjtFWkmlaLbkFRny8UN7t8iT1FB9LjyBe6Jz46hY7E+q1yKGySc2/HQrDK7UrX9SDce2jmtxrJlU/pkmW2xMDyYLRcwRXm0RYXHE8uzzpLdBuYFq6Mw5Hb5gosQGGBuyw4M8vyPfodYQsg5M5cXv11c2lag1CbnhWfieJ5H3vaAEKVDmXFhi876VrcEeARLAEqdpQAw6EgAo986DKLJMM9vTxhE4yHcigGllwzU9Zpr/KCypqHlzxUqyvKKwTNXgq8J88caUqHp/7SdYx3E0l9z8MtdW4m/BsBejrFjQkE0eOZZRU/A4An306kkcfM/tD2GyV6Uu47ndSszSxKUxtM+uNepIPqavp6/mz/MoWn+AWpoQ1Y= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/discover-access.api.mdx b/docs/docs/reference/api/discover-access.api.mdx index 8aef9f8f95..93086d43f5 100644 --- a/docs/docs/reference/api/discover-access.api.mdx +++ b/docs/docs/reference/api/discover-access.api.mdx @@ -5,7 +5,7 @@ description: "Discover authentication methods available for a given email." sidebar_label: "Discover" hide_title: true hide_table_of_contents: true -api: eJztVk1v4zYQ/SvEnFpAsbNBTzqt2wRYY7u1ETtFAccIaHFsc0uRWpJyohr678WQkiV/rAPseXOJRc4X33sz5B483zhIFzDKMnQOlgkIdJmVhZdGQwr30mVmh5bx0m9Re5lx2mE5+q0RjvEdl4qvFLK1sYyzjdyhZphzqQbP+lnPt9Ix1KIwUnsmDDr212TOLO6Qq/RZ37CJ3XAt/4thNc/R0eqTQ8vwTTqPOkP2iwkFcaUqdsOy0lrUXlUxIGV++udXcrtHz6VCwQqjZFYxqdfG5iE2VfOIvrTasVxqmXPV32YaUaCIxzg+61qZ1wEkYAq0YWUsIAXRIPPCI3QJWPxWovO/G1FBuofMaI/a009eFKqJNvzqCNg9uGyLOadfhaXIXqKjr4Ad/fBVgZCC81bqDSQQS4W0sUjAS6/I4iF813XSupjVV8x8U5G0KIjh6LXs3FpqH2PZUFOEzsPbEsOCK4x2sba721v6dyyRWRkAWJeKPTbGkPzw6Yly1zv+yhiFXPePG03qBBoRhhxCyKiQ6VE8rqvJGtLFWbw6OU1dWLOTAm34kB5zd16eFJeYaSsbC6rKqXJzzWpG+0TWVlrxUnDrq5frcedkyaZkySjHO0xLAU0VZ0l69M9mk2lz4rFeG+iCcmt51Us/PQDzXuYOwsuJHNTLCyFayy8Nn+9KOSqgE8BFVTdSrIOuf7u7O1fu31xJEXv8wVpjf1y2IsydK8JRJjvaPdNlQzrJslmR2uMG7RFkp9T8aWKBoRvcVdl9Qef4Bjuev28awGBz2q0TkLooAyAHmYeFOoHMv/XCnNH5B2H55t+lk7CJ5Td2PTo7iiJD34cijv6LyVqTT/P59Cxg1EdUEqRQGEcuBfdbSGFIV8GwHfXUVmh3YUQs9lBaFUwKGWiLn1vvC5cOh1gOMmVKMeAb1J4PuIyGS4qRlVb6KgQZTcefsfqEXKCFdLHsG8xIbVE/x2YHzHkhPyOhQBcnpDAq/dbY5jYF4o5Kil50TNLxY3dNPbzxvFDYu3agdGg/YlwfZCaPClibvgBG4UhsNB3D6XvhaIuaiWdBO219YRuSE7A6jCA5VOKR5x8PO1QHIR/T3A4+DG5piejKue6luO/IOiqtdyH/fNX0XjWNkqhTh4XiMsySQM++6YIFkCvh2UK7TGBLfZIuYL9fcYdPVtU1LX8r0ZKwlwnsuJWEYVB10qqQNP8vVu140P4mzBkyV2WU9MnYpd6KHvRILfxV22WvlaeT2RwSWDXvsdwI8rH8leYPf4UUwqOOvEOPhbU9KK43JU3KFGJM+vsf3STg0w== +api: eJztVk1v4zYQ/SvEnFpAsbNBTzpt2gTYYLuNETtFgcQIxuLY5pYitSTlRDX034shpViOvQ6w5/XF4nxz3uOQWwi48pA/wGVRkPcwz0CSL5yqgrIGcrhSvrAbcgLrsCYTVIGsESWFtZVe4AaVxoUmsbROoFipDRlBJSo9ejSPZrZWXpCRlVUmCGnJi79uZ8LRhlDnj+ZM3LoVGvVfCmuwJM/Se09O0IvygUxB4hcbC0KtG3Emito5MkE3KSBnvv/nV3a7ooBKkxSV1apohDJL68oYm6u5o1A740WpjCpRD9XCEEmSaRv7e11q+zyCDGxFLkpuJOQgu848YWpdBo6+1eTD71Y2kG+hsCaQCfyJVaW7aOOvnhu7BV+sqUT+qhxHDoo8r2Lv+CM0FUEOPjhlVpBBKhXyziKDoIJmi+u4btusd7GLr1SEriLlSDLCyWu+c+uhvUtlQ8sRdh7B1RQFvrLGp9ouzs/5b58i0zo2YFlrcdcZQ/bDu2fI/WD7C2s1oRluN5m0GXQkjDmkVIkhk714aJrbJeQPB/Ha7G3qytmNkuTiQgUq/WF5Sh5Dpq/sRnJVXterU1ZT1jNYa+XkU4UuNE+n487YUkzYUnCOd5BWEroqDpIM4J9Obyfdjm/M0sIuKDqHzSD95LUx72XetfB4Ig/t/EiI3vJLh+e7VE4M2BHgKKs7KraR179dXBwy92/USqYzfu2cdT9OWxnnzgniaFvsaQ942YHOtOwkygRakdtr2Vto/rSpwHga/EnafSHvcUU7nL9vGpshZqxtM1CmqmNDXmkeBW0GRXgZhDmA8w/u5Ut4F07uTSq/sxvAuYMoIfT9VqTRfzRZb/JpNpscBEz8SEyCHCrr2aXCsIYcxnwVjPtRz8eK3CaOiIct1E5Hk0pF2NJyHUKVj8faFqjX1oeknrNnUTsVmuh6Obn5TM0nQkkO8of50GDKHEus2Td77TRW6jPx3vm6hBwu67C2rrtDgRHjQpIXb47Ze7e7nK5fsKw0DS4bqD25j5Tko8KWCfelHcJ+uSITUFxObuDtK2FPxUcIi8iYvr6ohmzQIp+PxxjFI1RjyF4rCYTlx1cN18H9TmnORx9G5yxikEo0gxRXO4j2Shtcwz/fMoO3TMckPp/jSqOKEyTCs+24/wDsyv3sWzvPgBnNqu12gZ7unW5bFn+ryTGx5xls0CnuYWR11rOQOf8vNf1QMOEsThc213Wi9JthyycqefDTtAonbeeDAzy5nc4gg0X3CiutZB+Hzzx18BlyiE859o5nLMq2oNGsap6POaSY/PsfeQnddA== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-annotation.api.mdx b/docs/docs/reference/api/edit-annotation.api.mdx index bb93f89a26..7a61ae46e1 100644 --- a/docs/docs/reference/api/edit-annotation.api.mdx +++ b/docs/docs/reference/api/edit-annotation.api.mdx @@ -5,7 +5,7 @@ description: "Edit Annotation" sidebar_label: "Edit Annotation" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-application.api.mdx b/docs/docs/reference/api/edit-application.api.mdx index 4636521635..13c83007cb 100644 --- a/docs/docs/reference/api/edit-application.api.mdx +++ b/docs/docs/reference/api/edit-application.api.mdx @@ -5,7 +5,7 @@ description: "Edit artifact-level fields on an application." sidebar_label: "Edit Application" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-environment.api.mdx b/docs/docs/reference/api/edit-environment.api.mdx index 5b17a02f49..1d63b1f69e 100644 --- a/docs/docs/reference/api/edit-environment.api.mdx +++ b/docs/docs/reference/api/edit-environment.api.mdx @@ -5,7 +5,7 @@ description: "Edit Environment" sidebar_label: "Edit Environment" hide_title: true hide_table_of_contents: true -api: eJztWFtv2zYU/ivGeWoBOU5zcTc9zc1l9dqtQS57CYyAlo5sdpSoklQaT9B/Hw4pWZJlu46RYsWwvDiizvU7hx+PmINhMw3+PVwkj1zJJMbEaJh4IFNUzHCZjEPwAUNuHrAWAQ9SpliMBhWp55CwGEmwlnngIXjAE/AhZWYOHij8knGFIfhGZeiBDuYYM/BzMIuUtLVRPJmBB5FUMTPgQ5ZZK4YbQQKNKHvjEIpi4qyiNu9kuCBTq04CmRiK2M+Bpanggc1q8FnLhNbqGFJFORuOmp6ayXZeRlKEqChBsposPkUWg+1ZFN5SIsmEAIq9yuvSGrQpeRAJW5Om5bZ7rh9mGVMhhg3splIKZEkDrLHu/VqKeRBixDJhwI+Y0FgUXqUnp58xMOsxvrSRdAMn7U6MLAw5QcvEVSvaDj5VpA27JWS0st4MBFwFmWDq1Uc2RfGblkl/nKSZeQ2rmTRxXRGGTtrbinLrkocYDdsz1UZe5QpPDM5QtR3H0/ZKE6Fv4XGZie1weDlwg/FuSkwpttjeqi3V5yH6OyFZeCVZ7IRXx8YfpFtQQ+tA8ZSg2dfUecNE4cHLbWdLTTvtsIuQm7WyNY3dt7hostHMteNBKAqyp1CnMtGuL48OD+mnBRncZEGAWkeZ6F2XwrA3XQYyc0orbV5He2YlGkR0WHirLLuJ8P7n2x+Bbz9l5hmE66T/04y7EZCtlNvRegbn7gPqj026gUJmMHxgZse9HTKDfcNtPJu9nDmzvZEFK0vD7+HkzpktnYQo8Ds4OXdmSycVXNPFC7JhBda7RcmIFV4v6qVCa+mlAuxFvVRwLb1okc327dUb0v2XJoN1x8BumsvT3E0CJ0dH3cP/TyZ4aI/23oVSUu1/8odoGBf2mHSUtyogZNB6+xzKnhQrLNk4aaQL0J4XerbuK7JmQK3ZDGva3Cxqwejd0luqux1xSbwqXzXzBuapYaZTjTPC8unbkx1h48Iv5RqtUpfIVWgzFOeuBNva4/3t7VXHoOuPdmPQJNm7aH3px2jmkm4BKHfPfcz7MGjMbnqQtz/8C/BAo3qsbgcyJUiFpdyW2T3OjUm1PxhgdhAImYUHbIaJYQeMO8EJ2Qgyxc3CGhldjT/g4j2yEBX495OmwA11p+u3ttiyRizlH5BQK28qRpmZS8X/dk1UXlTMnRbBQn1/XV8tXDyxOBW45mqgMZzCccR+Oo2GJ/3Tt2/e9k9Oh0f96XEU9I+Cn4fH0XDIIjaExsTZnCzdoLic9OoxaHl21+3artlyefcYCtvdkWw298jC3xtdjTseWq+IKFhgc6+wtK/BWylsXU/wAGNLE2CQxb8s31BXU5c4N4cHbw4OaSmV2sQsabhY05crw0hZZ9p3g1QwbpnBBpSXPdv6ktLggb9yXTXxYC61Ick8nzKNd0oUBS1/yVBRF048eGSKsykhdp9DyDX9X5WvE9SSVOHVdbnvX/fq0a8dbNWpCbXpIxMZPYEHf+Gie7VmuXFebYa8FDpz/vqWwWojHUKnXeg0RkGAqdkqO2lwwNXdLXgwLS/bYhmSimJfidjYVxevtOnbBrdrOQiWzDKiYB+cSfr7B3smABk= +api: eJztWFtv2zYU/ivGeWoBOU5zcTc9zc1l9dqtQS57CYzgWKJsdpSoklQaT9B/Hw4pWZJlu46RYsWwvqQmz/U7hx+PmIPBmQb/Hi6SR65kErPEaJh4IFOm0HCZjEPwgYXcPLBaBDxIUWHMDFOknkOCMSPBWuaBh+ABT8CHFM0cPFDsS8YVC8E3KmMe6GDOYgQ/B7NISVsbxZMZeBBJFaMBH7LMWjHcCBJoRNkbh1AUE2eVafNOhgsyteokkImhiP0cME0FD2xWg89aJrRWx5AqytlwpulXM9nOZiRFyBQlSFaTxafIYrA9i8JbSiSZEECxV3ldWoM2JQ8iYWvStNx2z/XDLEMVsrCB3VRKwTBpgDXWvV9LMQ9CFmEmDPgRCs2Kwqv05PQzC8x6jC9tJN3ASbsTI4YhJ2hRXLWi7eBTRdqwW0JGK+vNQMBVkAlUrz7ilInftEz64yTNzGtYzaSJ64owdNLeVpRblzzEzOCeqTbyKld4YtiMqbbjeNpeaSL0LTwuM7EdDi8Hbli8mxIqhYvtrdpSfR6ivxOShVeSxU54dWz8QboFNbQOFE8Jmn1NnTdMFB683HG21LTTCbsIuVkrW9PYfYuLJhvNXDsehKIge4rpVCba9eXR4SH9aUEGN1kQMK2jTPSuS2HYmy4DmTmllTavoz2zEg0iOiy8VZbdRHj/8+2PwLefMvMMwnXS/2nG3QjIVsrtaD2Dc/cB9ccm3UAxNCx8QLPj2Q7RsL7hNp7NXs6c2d7IgpWl4fdwcufMlk5CJth3cHLuzJZOKrimixdkwwqsd4uSESu8XtRLhdbSSwXYi3qp4Fp60SKb7durN6T7L00G666B3TSXt7mbBE6OjrqX/58oeGiv9t6FUlLtf/OHzCAX9pp0lLcqIGTQ2n0OZU+KFZZs3DTSBWjvCz1b9xVZM6DWOGM1bW4WtWD0bmmX6m5HXBKvylfNvIF5apjpVOOMsHz69mRH2LjwS7lGq9QlchXaDMW5K8G29nh/e3vVMej6o90YNEn2Llpf+jEzc0mvAJS75z7mfRg0Zjc9yNsf/gV4oJl6rF4HMiVIBVNuy+x+zo1J/cFAyADFXGrjtiekGWSKm4VVHV2NP7DFe4YhU+DfT5oCN9STrsvaYsvKYMo/MMKqfJ8YZWYuFf/btU75PDF3WgQGdft1/aBw8YRxKtiaB4HGSArHEf50Gg1P+qdv37ztn5wOj/rT4yjoHwU/D4+j4RAjHEJjzmzOk248XM539fCzvLHrJm1Xarm8ewyF7elINlt6NGOJwd7oatzx0NoiesDA5l5habfBa5RT+4MB2uUD5APwgMWWHMAwjH9Z7lAvU284N4cHbw4OaSmV2sSYNFys6caVEaSsM522QSqQWz6wAeVlp7a+nzR44K88Uk08oPYjyTyfomZ3ShQFLX/JmKIunHjwiIrjlBC7zyHkmv5fla8T1JJK4dV1edpf9+qBrx1s1akJtekjiox+gQd/sUX3Qc0y4rw6DHkpdOb89S1v1UY6NE5nz2mMgoClZqvspHHyr+5uwYNp+cQWy5BUFH4lOsOvLl5p07cNbtdyEJjMMiJeH5xJ+vcPWYb8qw== sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-evaluator.api.mdx b/docs/docs/reference/api/edit-evaluator.api.mdx index 204a1c5c34..bfdc2589e5 100644 --- a/docs/docs/reference/api/edit-evaluator.api.mdx +++ b/docs/docs/reference/api/edit-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Edit an evaluator artifact's metadata." sidebar_label: "Edit Evaluator" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-folder.api.mdx b/docs/docs/reference/api/edit-folder.api.mdx index 4bca1ab55a..29a94d46cb 100644 --- a/docs/docs/reference/api/edit-folder.api.mdx +++ b/docs/docs/reference/api/edit-folder.api.mdx @@ -5,7 +5,7 @@ description: "Rename or move a folder." sidebar_label: "Edit Folder" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-invocation.api.mdx b/docs/docs/reference/api/edit-invocation.api.mdx index cebbfb3f70..be23da72bb 100644 --- a/docs/docs/reference/api/edit-invocation.api.mdx +++ b/docs/docs/reference/api/edit-invocation.api.mdx @@ -5,7 +5,7 @@ description: "Edit Invocation" sidebar_label: "Edit Invocation" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-metrics.api.mdx b/docs/docs/reference/api/edit-metrics.api.mdx index 7a6c82db49..c37b82a4c3 100644 --- a/docs/docs/reference/api/edit-metrics.api.mdx +++ b/docs/docs/reference/api/edit-metrics.api.mdx @@ -5,7 +5,7 @@ description: "Edit Metrics" sidebar_label: "Edit Metrics" hide_title: true hide_table_of_contents: true -api: eJztWNtu20YQ/RVhnlqAshT51uqpiuPAbmLEsJ28GEIwIkfSpsslsxfHqqB/L2aXFEnJZmzDBuqifpG5nD27e+bMhbsEizMDw2s4vkHp0IpMGRhHkOWk/dNpAkOgRNivKVktYgMRaPruyNi3WbKA4RLiTFlSlv/FPJci9hN730ymeMzEc0qR/8s1w1pBhp9KvOEShKXUbFtMpd/cElAtPk1heL0ETBLB6CjPG6aVhV3kBEOYZJkkVLCK1kPGaqFmfuRuGIiFjp1E/ctHnJD802Sqe6pyZ3+FqATJJt8otrAaR2CFlTy0YQyrLeNqD8pJ2Zj83p+Rp/z3z3pVHDUli088au1cxYhQlmakmwunk+ZInaGf8fHeyXY6orVgHzAJtcZFuwIaUx/H6BkzuYpAJG1sRTDNdIoWhuCcSFoRT/k13JA2IoTvJlRp+KUwiSChKTrJ6IP+YL/bP+y+2WMQY9G6VjdGQMqlnH5yUkkY+e7IUcJZxikVhoyLYzKceaYopNPEE7XONA/FqGKSkhKonaLKZpdhE9tHXkWQ4P86fB4dvmMmV1tT7nLIWUj7x4morxG21xC2Lw53YXL5EZoS1k1ZRO70fW2pi1CyYMWAFYDVjvyAyTNlgq8H/T7/JGRiLXLrwwAugwSnTnYuCmPW3tMqX5y5MGlDOtUZjrxFLbT6IW2+goL5ydlHVJFg/XpL5suf9pUVzXsJac1WW7Meka6eQmpZN2NNaCn5ivaB9TNBS10rUmqFPwqwnZHflsuTl1jkc4AtFklI0gss8i7AFouUdE0WX5+v4yjJervohOaj5OtZVynZWq9SEvasq5R0rVd5wcbsAWG+BVI2bf/67qzeVZarv56O7XUkwdC0RZ4HfYPyTtruJGlTmiUALy9SMhbT/FnT0NUalZUbk0ItsmeM28sCsoha7VQB3g5ZAVw45ef+pF0tgNu61Qc0xbXguB4/qute964r3wjvDQbbre4XlCLxkzrHHMZP73MTsihkS78qs7jx9jFBO76fp49Z2KBvm8ys7Sv2jIzBGVWk32/qyehc8VsfNBxvbL4OgiIAY3tbg9nyyRFzeWt/KhXmJmy/sKun8bWLgofup+JdcEGbSE6urs63AIM+msLg76hOpcGU7Dzj28EcbTyHiH/nMIQeVVeJveKbpcd1gjRXL+9epyVbYi68b8Pj3NrcDHs9cjuxzFyygzNSFndQBMMxY8ROC7vwIKPz0w+0OCFMSPtIqBlcsiSDyJpma8dgLj4QU6Uw5eeRs/NMi7+DctjBvKUwi7lgsV9UF5/Ht5jmkhoXmdfVF1j1dVK17kU7ALtT/G1/erDX3T98c9jd2z8YdCe707g7iH8/2J0eHOAUD6BW6uvXKlXdrhXloiqufEwINc3quhx5Ejuj81PYdGjjFcc4xl7SJSP+NUQb7qm8woU+9REOljD9Y/2m0alAf+fNTp+H8szYFFVtiQ1JNba39hSHSy+XKHxA+80sC7FdQ01sUH0iR8DhMs8Mp0hYLido6LOWqxUPf3ekWUHjCG5QC5wwT9fM3bzU0hL+okUZrMp2fdSzuXRBOxtJkEUcZozimHLbajuuxc756OroBCKYFHfpaZbwJI0/OB3gDxgC8G18OOBwGcaWIFHNHCeuIQRQ/vsHIr4jQQ== +api: eJztWFtv2zYU/ivGedoAuXbdJN30NDdN0awtGiRpXwIjOKaObXYUpVJkWs/wfx8OKVmSnSgXJMAyLC+OqHMhv/Odi7gCi/MC4gs4ukLl0MpMFzCJIMvJ+KfjBGKgRNrLlKyRooAIDH13VNg3WbKEeAUi05a05X8xz5UUXnHwrcg0rxViQSnyf7lhs1ZSwU+VvXgF0lJa7ErMlN/cClAvP88gvlgBJolk66hOWqK1hF3mBDFMs0wRalhHm6XCGqnnfuV6MyCkEU6h+eUjTkn9WWS6f6xzZ3+FqDKSTb+RsLCeRGClVby0JQzrHeF6D9op1VJ+58/IKv/9s56XR03J4gOP2jhXuSK1pTmZtuN02l5pInQbHu+c6oYj2hD2DkpoDC67GdBSvR+inxjJdQQy6UIrgllmUrQQg3My6bR4zK/hikwhQ/pum6oEv5YiESQ0Q6fY+mg42u8PX/df7rGRwqJ1nWGMgLRLufzkpJOw8t2Ro4SrjNM6LBVOCCq48sxQKmeIFY3JDC8J1IKUogQap6ir2VnYxO6R1xEk+D8PH4eHbxnJ9Y7KdQH5FMr+USKbPsL2WsT2zeE6m9x+pKGEeVM1kWtj33B1GloWrNlgbcAaR36hyDNdhFiPhkP+SagQRubWpwGcBQrOnOqdlsLMvYd1PpG5oLRFnfoMh16ikVrDUDafQcP87Ow9ukiQfr4t8+lP+8ya5o2AdFarHa17lKuHgFr1TWEILSWXaO/YPxO01LcypU7zh8Fsb+y35fLkKZx8CWZLJwkpegInb4PZ0kkF13R5+XgTRwXWm2UvDB8VXo/qpUJr46UC7FG9VHBtvDzhYHaHNN8xUg1t//rprDlVVt6fz8T2PIpgGNoij4O5QnUtbNeCtE3NygC7lykVFtP8UcvQ+cYqM1eQRiOzR8zbs9JkmbXG6dJ4t8nawKnTXveWcbU03DWt3mEobiTHxeReU/dmdl37QXhvNNoddb+ikolX6h1xGj98zk3IolQd86rKROvtfZJ2cjNOH7OwQT82FfOur9hPVBQ4pxr0m0U9GL1zfuuThvONxTdJUCagsD8bZnZicshY/rS3UoWxCdsv5ZplfBOiEKGboXgbQtBFkvfn5yc7BgM/2sTg76hezcGU7CLj28EcrVhAxL8LiGFA9VXioPxmGXCfIMPdy4fXGcWSmEsf2/C4sDaPBwOVCVSLrLDh9YQ1hTPSLr3q+OT4Ay3fEyZkPP8bAmdMxECtttgmHJjLD8QAaUz5eezsIjPy78AXDitvJGgxAkzx0/q68+gnprmi1vXlRf3dVX+T1AN7OQTAqxn+tj872Ovvv375ur+3fzDqT1/NRH8kfj94NTs4wBkeQKPBNy9T6m7daMVlL1z7TJB6ljXZOJ6TttgbnxzDdhhbrzizUXgiV4j41xA1glLEgwH65RcoOZSU+rwGS5j+sXnTmk9g+OLliyEv5VlhU9QNF1tEam1vEylOkkGuUPo09ptZlRS7gAbFoP4wjoCThKnDMqvVFAv6YtR6zcvfHRlm0CSCKzQSp4zTBWO3qLi0gr9oWaWotn2f6yyuXODOVulj6gaNsRCU207ZSSNjTsbnh+8hgml5g55mCSsZ/MFFAH9ADMB38OGA8SqsrUChnjsuVzEEo/z3D5EzH+I= sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-query.api.mdx b/docs/docs/reference/api/edit-query.api.mdx index 4d26f65074..66ec93becb 100644 --- a/docs/docs/reference/api/edit-query.api.mdx +++ b/docs/docs/reference/api/edit-query.api.mdx @@ -5,7 +5,7 @@ description: "Edit Query" sidebar_label: "Edit Query" hide_title: true hide_table_of_contents: true -api: eJztWFlz2zYQ/iuafUpmKMvxlZZPVXxM3LSN46MvHo0HIpcSUpCgcThWOfzvnQVIkRRt2VadTqdTv1gC9sB+u/sBqwIMm2kIr+GLRcVRwyQAmaNihsvsNIYQMObm5taiWkAAOVMsRYOKdArIWIoQgtu94TEEwDMIIWdmDgEovLVcYQyhURYD0NEcUwZhAWaRk542imczCCCRKmUGQrDWWTHcCBKgQy0GpzGU5cTbQ20+yHhBRlbNRzIzmBnaYnkueORiGH3VMqO1xnuuKEJD0YaFP3x/OZEiRkVBkb1s8TlxEa8/eRksJTIrBNCp61hOnEEXTACJcLC3LXfcl0FtR06/YmRWMTlx+n13pNezzOKYExRMnHVC7EU1lVIgy9p2q0Bp5WEzEHEVWcHUm1/YFMXPWmbD0yy35i2sxtBGY0UYegGvg/LSBw8pGrZhqK24qhWeGZyh6jpOp92VNkJP4XFixXo4ggK4wfR5SkwptlhfYB3VlyH6KyFZBlVDPwuvno3fSLcMIEYdKZ4TNJuaOmqZKAN4vSZ0VPJEbx3H3Dwo1RDOdcUakwdUzz1LQVmSDYU6l5n2VbizvU3/OgDBhY0i1DqxYnBeCcPGZBZJ65VWiro556GToCwlzAoD4XYZNBz4CB39z4Z/gw0/W/MCOvTS/2k+fBSQtYTY03oBI24C6r+bEiOFzGB8w8wzOzJmBoeGu/M87uXQmx2MHVg2j7+HkytvtnISo8Dv4OTIm62c1HBNF6/IYTVYHxYVj9V4vaqXGq2llxqwV/VSw7X0ooWdbVqrF6T7j9/bD10AT+ksb1x/W+/t7PQv6N+Z4LG7fgfHSkm1+e0co2Fc0KeK5lYFhIw6uy+h6Um5woyt20X6A7o7Qs8emsAa1tOazbChysdFHRiDS9qlXLtHJ4nXKatfoZG5b5np5eGQsLx/+sVF2PjjV3Kt8mhS5DP0OBRHPgXrCuPj5eVZz6Cvj25h0Gtv8KWajFM0c0nzMkUd+BE4hNGtH6tHRT0jlxCARnVXj9BWCZJjOXdZ9V/nxuQ6HI3QbkVC2niLzTAzbItxLzghG5FV3CyckfHZ6SdcfEQWo4LwetIWuKBi9OXVFVumhOX8E1IM1Tg/tmYuFf/T10w108+9FqFAZX7ezOLH9yzNBXZm6dZ7EXYT9sN+crA33H//7v1wb/9gZzjdTaLhTvTjwW5ycMASdgDNI7B5tDUvmuU13FRhNxXL5ed7LF3RJrJds2MH82B8dtrz0Nmi/meRK/caM7cNwUoCm7xBAJi67geDLP1puUPFStXg3WxvvdvapqVcapOyrOWiU24rL4oqk9RIo1ww7lrdHaWoStGPLMQzAYTLH2wmAcylNrRdFFOm8UqJsqTlKpXXkwDumOJsSgBdFxBzTZ9jCBMmNPZOsqRGeHNede/bQfNo656wLsCMQrpjwtI3COAPXLR/VnLcNq+ru6i2D72noWOgRr1HyNRWXmMcRZibtbKTViefXV1CANPq56ZUxqSi2DciJvbNn1S6wF13ubUCBMtmlig0BG+S/v4CcySXmA== +api: eJztWFtv2zYU/ivGeWoBOk5z66anubmgWbc1zWUvgREcS5TNjhIVkkrjCfrvwyElS7ISJ/HSYRiWl9jkuX7nnI+kC7A4MxBcw5eca8ENTBiojGu0QqWnEQTAI2FvbnOuF8AgQ40Jt1yTTgEpJhwCcLs3IgIGIoUAMrRzYKD5bS40jyCwOucMTDjnCUJQgF1kpGesFukMGMRKJ2ghgDx3VqywkgQoqMXgNIKynHh73NgPKlqQkVXzoUotTy1tYZZJEbocRl+NSmmt8Z5pytBStkHhg+8vx0pGXFNSZC9dfI5dxusjL9lSIs2lBIq6zuXEGXTJMIilg71tueO+ZLUdNf3KQ7uKyYnT77sjvZ5ljCJBUKA866TYy2qqlOSYtu1WidLKw2YgFDrMJeo3v+CUy5+NSoenaZbbt7CaQxuNFWHoJbwOykufPCTc4oaptvKqVkRq+YzrruNk2l1pI/QUHie5XA8HK0BYnjxPCbXGxfoG66i+DNFfCcmSVQP9LLx6Nn4j3ZJBxE2oRUbQbGrqqGWiZPB6Q+io5InZOo6EfVCqIZzrijUmD6iee5aCsiQbmptMpcZ34c72Nv3rAAQXeRhyY+JcDs4rYdiYzEKVe6WVpm7iPHQSVKUYc2kh2C5Zw4GP0NH/bPg32PBzbl9Ah176P82HjwKylhB7Wi9gxE1A/XdTYqg5Wh7doH3mREZo+dAKF8/jXg692cHYgZVn0fdwcuXNVk4iLvl3cHLkzVZOarimi1fksBqsD4uKx2q8XtVLjdbSSw3Yq3qp4Vp6MTKfbdqrF6T7j5/bDx0AT+ksT1x/Wu/t7PQP6N9Risgdv4NjrZXe/HSOuEUh6VNFc6sCUoWd3ZfQ9KRcYcbW6aJ8gO6MMLOHXmAN6xmDM95Q5eOiDozBJe1Srd2lk8TrktW30NDet8z06nBIWN4/feMibHz4lVyrPZoS+Qo9DsWRL8G6xvh4eXnWM+j7o9sYdNsbfKlexgm3c0XvZcqa+SdwAKNb/6weFfUbuQQGhuu7+gmda0lymAlXVf91bm0WjEZShSjnyli/PSHNMNfCLpzq+Oz0E1985BhxDcH1pC1wQS3om6ortiwEZuITp8irR/w4t3OlxZ++U6qX/NxrUe7U3OfNC/z4HpNM8s4LunVLhN0Yf9iPD/aG++/fvR/u7R/sDKe7cTjcCX882I0PDjDGA2iufs1VrbnHLA/fpve6BVguP99j6Vo1Vu1OHc94anEwPjvteehs0dRj6Jq8xsxtA2uVzQSjEbrlLRQjYMATN/NgOSY/LXeoRakHvJvtrXdb27SUKWMTTFsuOk22co+oKknjM8okCjfgLpSiakD/UCF2YRAsf6aZMKCuou2imKLhV1qWJS1XpbyeMLhDLXBKAF0XEAlDnyMIYpSG9yJZEiK8Oa9m9u2guap1I6wbMKWU7lDm9A0Y/MEX7R+THKPN6+4uqu1D72noeKdR79EwDZPXGIchz+xa2Ulrfs+uLoHBtPqRKVERqWj8RnSE33ykyiXupsutFSAxneVEnAF4k/T3F0jplDk= sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-queue.RequestSchema.json b/docs/docs/reference/api/edit-queue.RequestSchema.json index 8be4e2967a..515dc66c4b 100644 --- a/docs/docs/reference/api/edit-queue.RequestSchema.json +++ b/docs/docs/reference/api/edit-queue.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"required":true,"content":{"application/json":{"schema":{"properties":{"queue":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueEdit"}},"type":"object","required":["queue"],"title":"EvaluationQueueEditRequest"}}}}} \ No newline at end of file +{"title":"Body","body":{"required":true,"content":{"application/json":{"schema":{"properties":{"queue":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueEdit"}},"type":"object","required":["queue"],"title":"EvaluationQueueEditRequest"}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-queue.StatusCodes.json b/docs/docs/reference/api/edit-queue.StatusCodes.json index f815b1ad52..babed34b89 100644 --- a/docs/docs/reference/api/edit-queue.StatusCodes.json +++ b/docs/docs/reference/api/edit-queue.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-queue.api.mdx b/docs/docs/reference/api/edit-queue.api.mdx index 49b8b4f629..168811ea28 100644 --- a/docs/docs/reference/api/edit-queue.api.mdx +++ b/docs/docs/reference/api/edit-queue.api.mdx @@ -5,7 +5,7 @@ description: "Edit Queue" sidebar_label: "Edit Queue" hide_title: true hide_table_of_contents: true -api: eJztWW1z0zgQ/iuZ/XTMOE0IbbnLpwttGXIcR2kLXzKZjGKvE4FiG70UQsb//WYlvzsJSYE55oZ+aSzvPrta7a4eyRvQbKFgOIGreyYM0zyOFEw9iBOU9mkcwBAw4Hr20aBB8CBhkq1QoyS9DURshTAE+3bGA/CARzCEhOkleCDxo+ESAxhqadAD5S9xxWC4Ab1OSE9pyaMFeBDGcsU0DMEYi6K5FiTwhoA74wDSdOrwUOlncbAmkCa8H0caI02vWJII7ts59N6rOKKx0noiaYaao6InN7XWcChscDbAovXr0M62LsDVTJFDkeZMVCY1j2OBLKrMYqw6t6WkBwGGzAgNw5AJhWnq5arx/D36uqJZLoyNxHPrU+oVtiIjBKRTQmh5y4KAkyYT1zW/S4mGwxXcbGFoZDsM+Fz6RjD5299sjuIvFUfdcZQY/Qias6GVy+fTEIbW1NtzK5Xv3ORhhZo9cKqVeWUjPNK4QFk3vJrXR6oR+lo8nhuxPxzeBrjG1WFKTEq23huVuupxEX1FkUy9rIwPilcL4x/STSmplS95QqF5KNRlBSL1gAf7gJpNYx8wNRAP7lGqzLsmVC74LhOp1CgM+oOzbv9p9/EpgSjNtNmbXB5gZFbUVhOMAjdieww1NmmiyA0p4/uoFM2DcWEkdVeUMpY05LPIRyEwgOm2ZnDrnNjaCALWrI562zIK5YwHjSlkGVn58bVoNzP08Ix9q1B2xoGtZeVjxCSP93h0rCO7Dd9mxgrjGpPZB1wfZvkoSxqTzktCTj2YM+0vZ4p/2V5jWztQA+8ZQXRuCaIAjMNQof5GyNcO5Ig96JLZntHKvMMRrgK+3WK5oU+yXXlr9hcgN44PQJoSmkSVxJFyWT7o9+lfrSnBrSu50IjOTSYMD6YNfmycUiPmpccXVqLSSvqpV7KNXfX5i3ccyzteG30E8XDS/2vmsTMge6lHS+sI7vGQoP7c5MOXyDQGM7a9w7Z3o4Bp7Gpu/dlt5cLBdkY2WCYJfoSRtw42MxKgwB9g5NLBZkbycM3Xs+9H2/JgPVt3HIPL4/VdreTRKqzkAfuuVvJwFVZ+ILt9SPrnzPenp7hVap5b/0V7f9He/4j22nzP+sSht1o3JnJ3WvspcAa8mwN/Gw0vKLCjz6eDQZsxv2OCB1alc0WF+3C6HKBmXNRKrS4gYr/29hgGNW0maYX4xc5BS9/UYt/h/xUqxRZYZvxuURuMzh29pVZub15IPO/I+VWMrz9XYForckGx/Pz1wxDFxrmfyVUbd7FEboV2h+LSLcG+FHlxd3fdAnT5UU8MOn513mSXwivUyzhw977+0t4S6yUMoYflvXLP7g+qt8nvilPaIFDe51fJRgpSYQm3S+wel1onatjroTnxRWyCE7bASLMTxp3glDB8I7leW5DR9fglrl8gC1DCcDKtCtxSZrpcq4sV68MS/hIpYtm19sjoZSz5F5dA2d320mlRSCjnb8o76avPbJUIrN0pF6e5xqnNncCK41N5tigIcZl09cgXw9Rz4EnIfj8Lz0+7Z08fP+2enp0PuvMnod8d+H+cPwnPz1nIzqFCDqq3WeVOX9nG83203C8nhxmZNne1I/TKDWmSz29a30D6zfbft0nJozCuFt7IpkdndD1uxa32ipoY823N5mttX4PXSLwy34i7rGwLA41s9Wfxpka+oH/y+KRPQ0ms9IpFFRO1mmmcWLIMpG7QSwTjtl9ZVzZZNU2gUk0536Ifw+Lry9SDZaw0yW42c6bwrRRpSsMfDUqqkKkH90xyNqdoTTYQcEW/gywhW24VzR5+u8n60aNOeUKsu5tXUUQlRL7SE3jwAdfVb0S2Wy/zEt1kry+cpa7tqaV6a4uh3uA0Rr6Pid4rO630puvR3cUL8GCefT1axQEpSfaJmi375HyNExdf+rxEYxsQLFoY2haG4EDp71/yJUHj +api: eJztWW1vEzkQ/ivRfAJpQ0Joy91+utAWkeM4Slv4EkWRszubGLwv2N5CiPa/n8be901CUkCgE/3SxJ55xjOeGT92NqDZUoE7hcs7JlKmeRwpmDkQJyjNt4kPLqDP9fxjiimCAwmTLESNkvQ2ELEQwQUzO+c+OMAjcCFhegUOSPyYcok+uFqm6IDyVhgycDeg1wnpKS15tAQHgliGTIMLaWpQNNeCBN4QcG/iQ5bNLB4q/Sz21wTShvfiSGOkaYolieCe8WHwXsURjVXWE0keao6KvlnXOsOBMMHZAIvWrwPjbVOAq7miBUWaM1FzahHHAllU82KiejeVpAM+BiwVGtyACYWZQ1Dl2H6ci1ysA5I5hV68eI+erqlVu2vC+dw4ljmloSgVArIZIXRcZr7PSZOJq4bzlURrtTXcfHdpZDsMeFx6qWDywT9sgeJvFUf9SZSk+iG0vaHtL/xpCUPH9a5vlfKtdR5C1Oyertb8ykd4pHGJsmk4XDRH6hH6Wjyep2J/OJwNcI3hYUpMSrbeG5Wm6nERfUWRzJy8FxwUrw7Gv6SbUVIrT/KEQnNfqIsaBJWWvw+o3Xn2AVMXcuAOpcpX14YqBN/lIrUahdFwdNofPu0/PiEQpZlO9yaXAxilIfXmBCPfjphGRd1RplFkh1TqeagU+cG4SCW1aJQyljTkschDIdCH2bZmcGMXsbUR+KxdHc3elyqUc+63XMgzsvbha9FuZ+jhGftWoexNfFPLysOISR7vWdGxC9lt+CY3VhrXmMw/4Powy0dZ0pj0XhJy5sCCaW81V/zL9hrb2oFaeM8IondDECVgHAQK9TdCvrYgR5xBF8z0jE7mHY5w6fPtFitWMM2P9q3ZX4JcW1IBWUZoElUSR8pm+Wg4pH+NpgQ3tuSCVPSuc2G4N/fw4jSqn/lFzKsVnxuJWisZZk5FWXbV52/y8lPIy+tUH8FerPT/mr7sDMhe/tLROoLA3CeovzaD8SQyjf6cbW/T3SPNZxr7mpv17LZybmF7YxOsNPF/hJG3FjY34qPAH2DkwsLmRopwLdbz78f9imA9W/csDSzi9V2tFNEqrRQB+65WinCVVn4gRb5P+hf0+ZfnyXV+X1j/zZ1/c+efxJ1Nvud94tD3tes0sq9r+3l0DrybSH8bly95tOXgJ6NRl3a/Y4L7RqV3SYV7f87to2ZcNEqtKSBirzF7DIOatZO0Rvxiu0BD39Ry3wvCK1SKLbHK+N2iJhi9W5qlVm6eb0i86MjFe46nP9dgOjtyTrH8/PUbFcXGLj+XqzfucovsDu0OxYXdgn0p8uL29qoDaPOjmRh0h+u9yZ+nQ9Sr2Lcv0N7KvFfrFbgwwOqFe2DOBzXYFK/WGR0QKO+KR+1UClJhCTdbbL+utE7cwUDEHhOrWGk7PSNNL5Vcr43q+GryEtcvkPkowZ3O6gI3lI82w5pi5a6whL9EilP+rD5O9SqW/ItNm/xtfWW1KBCU6dfVm/jlZxYmAhtv2uVFsHXhM/eu5t2tuM/l96jqklEy4yr7mltQDlPzgScB++M0ODvpnz59/LR/cno26i+eBF5/5P159iQ4O2MBO4MaS6i/jVVHfu08Lw7U6uCcHmZk1j7ejtCrTqZp4d+seZIM2+fA0GQnj4K4XoHjJUaa9cZXk07cGlPUzZhnirfYfjMNTi0DlTsYMDP8iPEBkZjQ9DLQyMK/ypkGC4Pho8ePhjSUxEqHLKqZaBRP6+qSJyW1hUEiGDeNyyxlk5fVFGplVRAv+uCWPwjNHKBqIdnNZsEUvpUiy2j4Y4qSimbmwB2TnC0oWtMN+FzRZ7/M0dayyq4PD67zxvSwV10Vm8stCiuiqqK10jdw4AOu6z9bmba9Kqp2k0+fW0t901wr9c5ZQ03Caow9DxO9V3ZWa1JX49vzF+DAIv9BK4x9UpLsE3Vd9smuNU5sfOkXLxrbgGDRMqXzwQULSn//AcaEdDs= sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-queues.RequestSchema.json b/docs/docs/reference/api/edit-queues.RequestSchema.json index 8b69cdffe8..16a4a87d53 100644 --- a/docs/docs/reference/api/edit-queues.RequestSchema.json +++ b/docs/docs/reference/api/edit-queues.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueEdit"},"type":"array","title":"Queues"}},"type":"object","required":["queues"],"title":"EvaluationQueuesEditRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueEdit"},"type":"array","title":"Queues"}},"type":"object","required":["queues"],"title":"EvaluationQueuesEditRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-queues.StatusCodes.json b/docs/docs/reference/api/edit-queues.StatusCodes.json index 868401dc1b..bdfd9245c8 100644 --- a/docs/docs/reference/api/edit-queues.StatusCodes.json +++ b/docs/docs/reference/api/edit-queues.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},"type":"array","title":"Queues","default":[]}},"type":"object","title":"EvaluationQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},"type":"array","title":"Queues","default":[]}},"type":"object","title":"EvaluationQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-queues.api.mdx b/docs/docs/reference/api/edit-queues.api.mdx index 6e7b26c63a..ef94aeae74 100644 --- a/docs/docs/reference/api/edit-queues.api.mdx +++ b/docs/docs/reference/api/edit-queues.api.mdx @@ -5,7 +5,7 @@ description: "Edit Queues" sidebar_label: "Edit Queues" hide_title: true hide_table_of_contents: true -api: eJztWdtu2zgQ/RVjnnYBOXbdJN3V07pJinp7S5O0L4Zh0NLIZktLKi9pXUP/vhhSd18SZ1NssWheYlMzZ8jDmeERvQbN5gr8MVzcMmGY5kmsYOJBkqK030Yh+IAh19MvBg0q8EDiF4NKP0/CFfhrCJJYY6zpI0tTwQPr1/ukkpjGVLDAJaNPqSRUzVHRtxzOXwPXuFSbBpGwU1sDi1fvIvDHbQOupoqmEmvOBA3oVYrgwyxJBLIYPNBcCxoZqc51ZelBiBEzQoMfMaEwy7zCNZl9wkDXPCta3tN8X9g5ZV4ZKzZCQDYhhI3ZsjDk5MnEZWPelUVrwjVcpSWP53ZkOwwEXAZGMPnbazZD8bdK4u4oTo3+HdqrySbVelrGsLH0zbVVzjdu8bBEzR641Nq68hEea5yjbAZezpojdYbu4uOFEfvp8MqUu4cTk5Kt9rLSdD2M0TfEZOZBzJZ4T742MN6Sb0ZJrQLJU6LmoVDnNYjMAx7uA/IgSuSSafDBGB7uBR7RY7hFqfLZtaEKw4+5Sa1GYdAfnHT7z7pPjglEaabN3uTyAGOzpKaWYhy6EdttQmpeJo7dkDJBgIoaWsS4MBLJUcpE0lDA4gCFwBAm25rBtZvE1kYQsnZ1NNuWUSinPGwtoWyC5Ye72G5n6P0z9oNC2RmFtpZVgDGTPNkzo0MnsjvwdR6sDK4xnX7G1f0iHxRJY9p5RciZBzOmg8VU8e/ba2xrB2rhPSeIzjVBlIBJFCnU/xLynQM54Aw6Z7ZnbGTe/REuQq432Kys37uTeRsgHf1cYkjFlR/gW+vDQVCcKycWICO4yl1Lg3ZApUmsXGEM+n361+hjcO2qNDKic5UbU3k+THMEiXFOrW2qlnBmLWrdp595v6TK40uVd0YfoFWc9f9arOwkZK9a2fA6QK48hNSfW68EEpnGcMq2N+XNAyxkGrua2/nsjnLmYDtDS5ZJwx8R5IODzYOEKPAHBDl3sHmQgq7Zavp4Sq8g6/mq40RfwdejRinYKqMUhD1qlIKuMsoPFMQPSf9CLP/0qriu5ovov5TyL6X8Hyllm+95n9i/ZRX0lYltE7hDFOfAu0Xx3bq7VizjQ1S9KvVxZsX28WCwKac/MsFD69O5oKp+uJYOUTMu9ohikQSNp4fIq8lull4nboJW26n5vsuEN6gUm9co321qyejc0FPq8/Ymh8yLdl1c7QT6Ww1mY0vOiMtv25O0nibEjZt+blfv6uUWuR3aTcW524J9OfLy5uZyA9DlRzMx6F2tU2bgEvUioZvflEoPPPq/AB96WF0T99xrUY8ODZR0lNnNNVKQIUu53Vn3daF1qvxeD81RIBITHrE5xpodMe4MJ4QRGMn1yoIML0evcPUSWYjSlkHN4JoS0qVY06zcFpbyV0hEOZkKQ6MXieTfXd7Q9tKUnBcxQal+VV1qX3xjy1Rg/ZJ6XHvHa73Lufey8qWqeuMoZXKVbU3Ky2HqRPA0Yn+cRKfH3ZNnT551j09OB93Z0yjoDoI/T59Gp6csYqdQkwz1a7Hq/K8d7sXpWp2i4/sFmbTPugP8qmNqXKxv0jxW+u1DoZ/ZcudxlNRLbmgzpDO8HG0Q13hE7YsFtlqL7baPwWvlXpVyJGmWtnmBRrb8q3zS0GTQP3py1KehNFF6yeJaiGa1tN5k8iykRtBLBeO2Vdm5rPM6GkOtjqC8YPCAyFokilo/rNczpvCDFFlGw18MSiqOiQe3THI2I5bGxNyiKJM1fMZV0YVi3bXtjMyFcWXR6u5Un85jGASY6r22k1pXuBzenL0ED2b5T0DLJCQnyb5Sn2NfwQeg35Dc+vy1G1uDYPHcUEf2wYHS3z9TdgP7 +api: eJztWW1zEzcQ/iue/dTOnLExSWjvU00SBpdSQhL44vF45Ls9WyDfHXoBjOf+e2elez/biVOYMh3yJfZq91lptbt6JG9Bs6UCfwqXn5gwTPMkVjDzIElR2m+TEHzAkOv5R4MGFXgg8aNBpZ8l4Qb8LQRJrDHW9JGlqeCBtRu8V0lMMhWscM3oUyoJVXNU9C2H87fANa5VVyESdmpbYPHmdQT+tK3A1VzRVGLNmSCB3qQIPiySRCCLwQPNtSDJRPVuKk0PQoyYERr8iAmFmUdQpewwzkWu1gHJvMIuWbzHQNfMqti+oUU/twvLvNJRbISAbEYInSWzMORkycRVY/GVRmu2NVylJY+XVrIbBgIuAyOY/OUvtkDxp0ri/iROjf4V2qvJZtV6WsrQWXp3bZXxrVs8rFGzBy61tq5cwmONS5RNx+tFU1KP0F3xeG7E4XB4Zd7ew4hJyTYHo9I0PS6iryiSmQcxW+M949XB+JtsM0pqFUieUmgeCnVRg6DSCg8BeRAlcs00+GAMDw8CT2gYPqFU+ezaUIXiu1ylVqMwGo5O+8On/ccnBKI00+ZgcnmAsVlTZ0wxDp3EtqyQOqCJYydSJghQUVeMGBdGIhlKmUgSBSwOUAgMYbarGdy4SexsBCFrV0ez9xmFcs7D1hLKTlp+uCva7Qy9f8a+VSh7k9DWsgowZpInB2Z07ET2O77JnZXONabzD7i5n+ejPGlMey8JOfNgwXSwmiv+dXeN7exALbxnBNG7IYgSMIkihfpfQr52IEecQRfM9oxO5t0f4TLkuhPNSvuNO953ARJ/4BJDKq6cBeysDwdBfq4d44CM4CpzLQ1agUqTWLnCGA2H9K/Rx+DGVWlkRO86V6byfBhxCRIT12lCsU3VEs6tRq37DDPvJ9/5QfnOa6OPIDxO+3/NePYG5CDl6VgdwXkeEtQfm/QEEpnGcM52d/buKRgyjX3N7Xz2ezl3sL2xDZZJw+/h5K2DzZ2EKPA7OLlwsLmTIlyLzfzb0cUiWM82Pccci3h9Uy9FtEovRcC+qZciXKWX78iqH5L+BeP+4al1/UpQeP9Jt3/S7f+Ibtt8z/vE4S2roK9NbJvAHcw6B97PrO8m77VimR5zNVAlyc4sYz8Zjbqc/B0TPLQ2vUuq6ocT8hA14+IAsxZJ0Bg9hl7N9kfpr8RN0HI7tTz0IvEKlWLLWsj3q9pg9G5plPq8fQ4i9aJdF+9Dgf5Sg+lsyTnF8svuJK2nCcXGTT/Xq3f1covcDu0PxYXbgkM58uL29qoD6PKjmRh04euVGbhGvUroDTql0gOP/q/AhwFWD9YDd7ca0KGBko4yu7lGClJkKbc7676utE79wUAkAROrRGk3PCPLwEiuN9Z0fDV5iZsXyEKUNvlrCjeUhi6xmmrlZrCUv0QKjyOnMDZ6lUj+1WULbSpNxFnR+inBr6tH9csvbJ0KrD+ST2vXw9Y10N7Gmje64paX366qq0fJl6u0a8a+FFNLgicR++00Ojvpnz59/LR/cno26i+eREF/FPx+9iQ6O2MRO4Mad6g/slVEoHbKF8dsdZxO7+dk1j70jrCrzqtpsb5Z83wZtk+HYWbrnsdRUq+98RJjzXrjq0kncI0h6mMssGVbZIAdBq+WhMofDJgVP2KcUhfXtouBRrb+oxxpkDMYPnr8aEiiNFF6zeKai2bZtK40eWJSRxikgnHbs+xctnlBTaFWUFA+V3hAwaJCIZXtdsEUvpUiy0j80aCkepl58IlJzhYUpSlFblVUzhY+4KZoR7Hu275G6sK4Smm1eSpUZzEOAkz1Qd1ZrT1cjW/PX4AHi/xXqXUSkpFkn6nhsc/gA9DPWm59/tbJtiBYvDTUmn1woPT3D7XONlM= sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-result.api.mdx b/docs/docs/reference/api/edit-result.api.mdx index 4626ca10d7..519f1b258e 100644 --- a/docs/docs/reference/api/edit-result.api.mdx +++ b/docs/docs/reference/api/edit-result.api.mdx @@ -5,7 +5,7 @@ description: "Edit Result" sidebar_label: "Edit Result" hide_title: true hide_table_of_contents: true -api: eJztWVlvGkkQ/iuonhJpMITYzi5PSxxH9majWJjkxUJWMV1AZ+dKH44J4r+vqntOcMbH2tJ6Fb8Yuqu+qq6us1mDwYWG4QUcX2Fk0cg00TANIM1IuW+nAoZAQppLRdpGBgLIUGFMhhQzriHBmGAIfvtSCghAJjCEDM0SAlD0zUpFAoZGWQpAh0uKEYZrMKuMGbVRMllAAPNUxWhgCNY6FCNNxARjh9w5FbDZTD0gafM2FStG2cYP08RQYngLsyySoTtG76tOE16rxGeKD2kkaQ/jTrezPo+cgdaAyerT3B0YhZCMidFZg7SiyE82S9OIMIFNsH1YXrkZBkKpQhuhevEXzij6U6dJ9zTJrHnJFvEg6ewrhQbYGIWNtohhs0Nc6ZDYKGowv3dnZJb//1kn+VFjMvjAo9bOla/IxNCCVFNwPGuu1C10mz3e26jdHMEapKH4bkyoFK7aPaDBej+LfmRLbgKQos1a2+HdhsiRHsAVKS190G5DFYRfcpIABM3RxS8M+oODbv9N99U+gyxRLy8fT7MT1MuOV88oDOkW6FZHZP4Ci7QJUd8Gdx9NJzlkLoGUStUvf38Mfz92ptwEoA0a22qyACixMZfXjBLhV75ZssTlTdkk8UvahiFpzfeLMrKKIL8wXgoxCSmKSEBdh7Jan3sldhXe7BzqJnZfW4+FNHATQ1VcL4oKeaMWFczYV2fYbBhPkc7SRHvHGvT7/E+QDpXMjIttOPdnn9uoM86J4cFFPEytZ9ry00rlI0dRyxd9r2Ve+6uL/O91AZ+suUdp9NTPtw94+tM+s07gpwZpTY07XPfIjQ8xatEMhIrQkLhEc8eCJtBQ18iYWuGPPGxn5NSymXgKIZ89bC5EUERPIOSdh82FFOaarR6xBSiM9XaVNwGFvR5VSmGtUkphsEeVUpirlPKE3eZDurmiE/3Vcj67lvN5JNZn0nXWJ7FCOkdrYkhdYXSj2jde7XaQFgBsNBmTNhhnj5qQJyWq6wgzQn7Mun6wxmMH0TkV19vtpjaUXf5Nq7bJ9txQ1vlAK3fjISWoZJqH6l2fzc5ztjwclU3uCTC2iX90a58LyuM0NS0ltgwM/3JsKQcGP2zsDwa788UXjKRwPB0fQg8eLgQZlM6D86ywTRClYWP3PlltutlKJLUuN/UKul5VL9q85iNpjQuqMsvPSZ0xOhPedfHJCYnJy3jLM1RormswO1dyxLa8vn14ZNt49XO6eu0sr6hMcj8xxTt/BW0+cjKZnO0Aev9oOgYPq51x8aYdk1mmwr9ah0v3yG2WMIQeVe/iPT8n6t66fOvesNOTuirewq2KmAkz6W7Zf10ak+lhr0d2L4xSK/ZwQYnBPZSecMoYoVXSrBzI6Oz0A61OCAUpGF5M6wTn7Jze3Zpk5RVhJj+4YMzf5UfWLFMlf3gfyt/ml56LrcJuP66e1I+vMc4iaj6JF+NvNRpWc1Pei8HrOf52MD/c7x68efWmu39wOOjOXs/D7iD8/fD1/PAQ53gItT6r/lBXa5ruilP1QjXfrvc0dwUq2pRaaa0qlwuNeVqPjJG7vM7o7BS2XaqxxVkGQ2e+4ibcNgRbblF5A2sTuxwDhjD+o9xpNKjQ33u11+elLNUmxqQmounUDe1KB+F47WURSpdRnC7r3N0voObuUDyM8Kdh9fPONIBlqg1Tr9cz1PRZRZsNL3+zpNiFpwFcoZI4Y4NdrEFIzZ8FDOcYadpRrEzI8GKc54yXnaqzaipcuHnCPs7a8jcIwBXU2q9QLqUuiyBa5/tHXlTXJb6Kf6cOcPR6jlEYUmZaaae1/HE2mhydQACz/OepOBXMpPA72xO/e2XTzJuYo4zX1hBhsrCcu4fgQfnvHzRkZ3c= +api: eJztWVlvGzcQ/ivCPDXAKlIU22n3qYrjwG4axJCVvBiCMdodWUy5R3g4VgX992LIPSVnfdQG6iJ+sUTOfDMczkmtweClhvAcjq5QWjQiSzXMAshyUu7bSQwhUCzMhSJtpYEAclSYkCHFjGtIMSEIwW9fiBgCECmEkKNZQgCKvlmhKIbQKEsB6GhJCUK4BrPKmVEbJdJLCGCRqQQNhGCtQzHCSCaYOOTeSQybzcwDkjZvs3jFKNv4UZYaSg1vYZ5LEbljDL7qLOW1Wnyu+JBGkPYw7nQ76wvpDLQGTFefFu7AGMeCMVGetkhriuJk8yyThClsgu3D8srNMBAJFVmJ6pc/cU7yD52l/ZM0t+YFW8SDZPOvFBlgY5Q22iKGzQ5xrUNqpWwxv3dnZJb//1mnxVETMvjAozbOVayI1NAlqbbgZN5eaVroNnu8t7LbHMEahKHkbkyoFK66PaDFej+LfmRLbgIQcZe1tsO7C5EjPYArUlr4oN2GKgm/FCQBxLRAF78wGo72+8M3/Vd7DLJEvbx4PM2OUS97Xj2jMKJboDsdkflLLNImQn0b3H00nRaQhQRSKlM//f0x/P3ImXITgDZobKfJAqDUJlxec0pjv/LNkiUub8qmqV/SNopIa75fFNIqguLCeCnCNCIpKYamDlW1PvNK7Cq82TnUTey+th7FwsBNDHVxPS8r5I1a1DATX51hs2E8RTrPUu0dazQc8r+YdKREblxsw5k/+8LK3qQghgcX8SiznmnLT2uVDx1FI18MvZZF7a8v8r/XBXyy5h6l0VM/3z7g6U/7zDqBHxqkMzXucN0jNz7EqGUzEClCQ/EFmjsWtBgN9Y1IqBP+0MP2xk4tm8dPIeSzhy2ExCTpCYS887CFkNJc89UjtgClsd6uiiagtNejSimtVUkpDfaoUkpzVVKesNt8SDdXdqI/W85n13I+j8T6TLrO5iRWSudoTQ2pK5Q3qn3j1W4HaQnARhMJaYNJ/qgJeVqhuo4wJ+THrOsHazxxEL2T+Hq73dSG8ou/aNU12Z4ZynsfaOVuPKIUlciKUL3rs9lZwVaEo7LpPQEmNvWPbt1zQXWctqaVxI6B4V+OLdXA4IeNvdFod774glLEjqfnQ+jBw0VMBoXz4CIrbBPILGrt3ierzTZbiaTR5WZeQder6ssur/lIWuMl1Znlx6TOGL0p77r45ITE5FW8FRkqMtcNmJ0rOWRbXt8+PLJtvPoFXbN2VldUJbkfmOKdv4IuHzmeTk93AL1/tB2Dh9XepHzTTsgss9i/WkdL98htlhDCgOp38YGfE/VgXb11b9jpSV2Vb+FWSWbCXLhb9l+XxuThYCCzCOUy08Zvz5gzskqYlWMdn558oNUxYUwKwvNZk+CMXdI7WZusuhjMxQcXgsVr/NiaZabE395zihf5pediW7CzT+qH9KNrTHJJ7YfwcuitB8J6Wio6MHi9wF/3Fwd7/f03r9709/YPRv3560XUH0W/HbxeHBzgAg+g0V01n+cardJdceoOqOHRzU7mrkBlc9IoqHW9cgGxyJrxML6k1GBvfHoC247U2uLcgpEzX3kTbhuChjPocDBAt/wSxYC1SVxmAUOY/F7ttNpSGL589XLIS3mmTYJpQ0TblVvaVQ7CUTrIJQqXR5wu68LJz6Hh5FA+h/CnsP5RZxYA+y5Tr9dz1PRZyc2Gl79ZUuzCswCuUAmcs8HO1xALzZ9jCBcoNe0oVqVh+GVSZIoXvbqfaitcunnKPs7a8jcIwJXRxm9PLpEuyyBaF/uHXlTfpbuafyf7c8x6jnEUUW46aWeNrHE6nh4eQwDz4kepJIuZSeF3tid+98pmuTcxRxmvrUFiemk5Y4fgQfnvH73TZBg= sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-results.api.mdx b/docs/docs/reference/api/edit-results.api.mdx index d15f4b3cb5..b00e020929 100644 --- a/docs/docs/reference/api/edit-results.api.mdx +++ b/docs/docs/reference/api/edit-results.api.mdx @@ -5,7 +5,7 @@ description: "Edit Results" sidebar_label: "Edit Results" hide_title: true hide_table_of_contents: true -api: eJztWVlvGkkQ/iuonnalwWB87fK0xHFkbxLFwiQvFrKKmQI623OkD8cs4r+vqnsuwB4by37wKn7B9FR9Xf11ncMSDM409K/h7BalRSPSRMM4gDQj5b5dRNAHioS5UaStNBoCUPTDkjbv0mgB/SWEaWIoMfwvZpkUoVPsfNdpwms6nFOM/F+mGNYI0vytwOsvQRiK9bbEVDrjloDJ4ssU+tdLwCgSjI7yck20kjCLjKAPkzSVhAmsgnJJGyWSmVu5HwZCoUIrUf32CSck/9Zp0r5IMmt+h6AASSffKTSwGgdghJG8tCEMqy3hyobESrmm/MGdkVX+/2cd5UeNyeAzj1o7V74iEkMzUusbx5P1lTpDj/HxwcpmOoLSYZ+ghErhotkD1lR3Y/QzM7kKQERNbAUwTVWMBvpgrYgaES/4MdyS0sKH7yZUIfgtFwkgoilayei9bu+o3T1p7x8yyBz1/OblLDtHPW9584zCkB6BbnRE1i+wSJsQ9WNwu1g6yiHzHUipVP3y95fw9zNH5SoAbdDYRsoCoMTGXNoySiK/8sOSpYgrmE0Sv6RtGJLmqjZFIa0iyC+Ml0JMQpKSIqjbUFbKK2/EtsGrrUPdpz50BfAsEnUSPH+V+DCvkvdBch0WiiI+ZFFN7zU0B+Gthr52w4oBKwCjLLkFnaWJ9s7Y63b5IyIdKpEZlw/gyvM1tbI1zIWZqOe1AGFqvdKGb1dnOHUStRzT9Va+gc7hizU7lFMv/XZ7h9c/7RvrHh4kpDGdbmntkE+fQ2rRQISK0FB0g+aJRTBCQ20jYmqEP/WwrYEzy2bRa2zy1cPmm0Qk6RU2ee9h800KuiaLF2wbCrLeLfLGoeDrRXcp2Cp3KQh70V0KuspdXrFDfU4HWHSvv9rUN9emvo3E+kY61fr0VuzO0ZoYUrco7zX73qvdDNICgEkTMWmDcfaiCXlUorqOMCM0NyK6e7bFQwfRuojuNttNbSi7+YcWTdPwlaGs9ZEW7sZDSlCJNA/V5gCtQeRqeTgqm+wIMLSJ031kUiiPs25puWPDBPGEOaXG3fVOc5Aux4mVm00Oe73t6eMbShE5pZYPsGePHhEZFLJhhJBpuPZ0l5w3fpinT6k30HWyetbkU59Ja5xRRfrDoo6M1oifuujldMXiZTTm+Ss0dzWYrTs5ZS7vzKMuxNx483O5emUtr6hMgQ9Q8d5fQZOTnI9Gl1uA3j/WHYNH21blgzGZecpvrjM04RwC/pxDHzpUvebu5GNkhwOBFDcU7nqtkiyJmXB367/Ojcl0v9MhuxfK1EZ7OKPE4B4KLzhmjNAqYRYOZHB58ZEW54QRKRcJNYErdknvZOti5cVgJj66AE0w5u8Da+apEv96z+ELZpO8FnPBzj6sXsqf3WGcSVp7yX5dDcXVwFhNU3mHBgdT/ONoenzYPjrZP2kfHh332pODadjuhX8eH0yPj3GKx1Drvuqv/Gqt1FNxqg6p5tP1TuepQEXzUiu4VT0bu5iYpvWQGLj7aw0uL2DTl9YecXrB0EVTcRnuMQQbnlE5BJsTu+QChjD+q3yy1rdCd29/r8tLWapNjEltiw1vXjOvdBKO1E4mUbhc4oxZ5n5+DTU/h+qFSQAcqfNUc3aG5XKCmr4quVrx8g9Lip13HMAtKoET5umauZsXbrwEVwZ9nkhM2yUcFpfWu+1G/uX48RqDMKTMNMqOa2F7ORidnkMAk/wnpjiNWEnhTz4N/oQ+AP9I5Q/Ifs5rS5CYzCznzD54UP77DyVsKCE= +api: eJztWUtPG0kQ/itWnXalcew4QHZ9WocQwSZRkHFyQRYqz5TtzvY80g+C1/J/X1X3PG0YMIIDq3Ax7qn6uvrreo7XYHChYXgJJ9coLRqRJhqmAaQZKfftLIIhUCTMlSJtpdEQgKIflrR5l0YrGK4hTBNDieF/McukCJ1i77tOE17T4ZJi5P8yxbBGkOZvBd5wDcJQrHcl5tIZtwZMVl/mMLxcA0aRYHSU5w3RSsKsMoIhzNJUEiawCcolbZRIFm7ldhgIhQqtRPXbJ5yR/FunSfcsyaz5HYICJJ19p9DAZhqAEUby0pYwbHaEKxsSK2VD+YM7I6v8/886yY8ak8FHHrV2rnxFJIYWpJobx7PmSp2h+/j4YGU7HUHpsA9QQqVw1e4BDdX9GP3MTG4CEFEbWwHMUxWjgSFYK6JWxDN+DNektPDhuw1VCH7LRQKIaI5WMvqgPzjs9t92Xx8wyBL18urpLDtFvex484zCkO6BbnVE1i+wSJsQ9X1w+1g6ySHzHUipVP3y96fw9xNH5SYAbdDYVsoCoMTGXNoySiK/8sOSpYgrmE0Sv6RtGJLmqjZHIa0iyC+Ml0JMQpKSIqjbUFbKC2/ErsGbnUPdpj52BfAkEnUSPH+V+DivkrdBch0WiiI+ZFFNbzU0B+Gtxr52w4YBKwCjLLkFnaWJ9s446Pf5IyIdKpEZlw/gwvM1t7IzzoWZqMe1AGFqvdKWb1dnOHYStRzT91a+gM7hizV7lFMv/XJ7h+c/7QvrHu4kpDWd7mjtkU8fQ2rRQISK0FB0heaBRTBCQ10jYmqFP/awnZEzy2bRc2zy1cPmm0Qk6Rk2ee9h800KumarJ2wbCrLerfLGoeDrSXcp2Cp3KQh70l0KuspdnrFDfUwHWHSvv9rUF9emvozE+kI61fr0VuzO0ZoYUtcobzX71qvdDtICgEkTMWmDcfakCXlSorqOMCM0VyK6ebTFYwfROYtutttNbSi7+odWbdPwhaGs85FW7sZDSlCJNA/V9gCtQeRqeTgqm+wJMLaJ071nUiiP07S03LFlgnjAnFLj7nKvOUiX48TGzSYHg8Hu9PENpYicUscH2KNHj4gMCtkyQsg0bDzdJ+dN7+bpU+oNdJ2sXrT51GfSGhdUkX63qCOjM+GnLno5XbF4GY15/grNTQ1m506Omcsbc68LMTfe/FyuXlnLKypT4B1UvPdX0OYkp5PJ+Q6g94+mY/Bo26l8MCazTPnNdYYmXELAn0sYQo+q19y9fIzscSCQ4obCXa9VkiUxE+5u/delMdmw15NpiHKZauMfT1kztEqYlVMdnZ99pNUpYUTK+X9N4IId0btWU6y8DszERxeWCcb8fWTNMlXiX+8vfK1siNdiBtjFx9Wr+JMbjDNJjVfrl9UoXI2J1QyV92XwZo5/HM6PDrqHb1+/7R4cHg26szfzsDsI/zx6Mz86wjkeQa3nqr/oqzVQD8Wp+qKaJ9f7m4cCFS1LrcxWVWzqImGe1gNhtKDEYGd0fgbbHtR4xEkFQxdDxWW4xxDU/EEPez10y69QsBdR7FIKGML4r/JJo1uF/qvXr/q8lKXaxJjUttjy4YZ5pZNwfPYyicJlEGfMOvfuS6h5N1SvSQLg+GSvZZn1eoaaviq52fDyD0uKnXcawDUqgTPm6ZK5WxZuvAZX/Hx2SEzXpRkWl9a77VbW5ajxGqMwpMy0yk5rwXo+mhyfQgCz/IelOI1YSeFPPg3+hCEA/zTlD8h+zmtrkJgsLGfKIXhQ/vsPJ3Ikwg== sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-run.RequestSchema.json b/docs/docs/reference/api/edit-run.RequestSchema.json index c700bfc620..ab6ce3eb4a 100644 --- a/docs/docs/reference/api/edit-run.RequestSchema.json +++ b/docs/docs/reference/api/edit-run.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"required":true,"content":{"application/json":{"schema":{"properties":{"run":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRunEdit"}},"type":"object","required":["run"],"title":"EvaluationRunEditRequest"}}}}} \ No newline at end of file +{"title":"Body","body":{"required":true,"content":{"application/json":{"schema":{"properties":{"run":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRunEdit"}},"type":"object","required":["run"],"title":"EvaluationRunEditRequest"}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-run.StatusCodes.json b/docs/docs/reference/api/edit-run.StatusCodes.json index af6f5e9ecc..e6d39ee0ba 100644 --- a/docs/docs/reference/api/edit-run.StatusCodes.json +++ b/docs/docs/reference/api/edit-run.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-run.api.mdx b/docs/docs/reference/api/edit-run.api.mdx index e9fe2b1309..8602a79efb 100644 --- a/docs/docs/reference/api/edit-run.api.mdx +++ b/docs/docs/reference/api/edit-run.api.mdx @@ -5,7 +5,7 @@ description: "Edit Run" sidebar_label: "Edit Run" hide_title: true hide_table_of_contents: true -api: eJztWltvEzkU/iuRn0CatGlpy26eNqRF7UKXblp4qaLKmXESg+MZfClko/nvq+NLxjPJTNJQJHYVXiCecz4fH587XiCFJxJ179HFI2YaK5pyiYYRSjMizK+rBHURSah6EJqjCGVY4BlRRADXAnE8I6iLhOYPNEERohx1UYbVFEVIkK+aCpKgrhKaREjGUzLDqLtAap4Bl1SC8gmK0DgVM6xQF2ltUBRVDAgGmreuEpTnQ4tGpHqTJnOAqILHKVeEK/iEs4zR2Eh/+FmmHNaKvTMBZ1OUSAOj+erimBmlLBDm8w9jc84yAZUPjD6S4CijNGUE80D2K9l6DzQRSsgYa6ZQd4yZJHkE7DhWWwD0LNV6iJilEs7fDNG3VOshvmqiNwrxtyGqkQHH0y1ksFTrIWTGqNqEcGuI1gBMsTmFcBdTi3GJzUEMXQ2MIlJJojbj3HnCGiBiXSkVm6EuCtIasFhLlc42AvUtWQ3IVM8w34hxaahqILBW6UaEHhCtAOSR50pHn0msAqYi6gw0f2vcLo+Wm3DNGMqHwL/ikDhJKPBhdlNyzYKiImmA6+IOrKyHQTEVsWZYvHiPR4T9KVPevuKZVi9R9SwQmvxpKsRo5eCrZyuY7+zh0YwovONRg3O5FcoVmRBR3ng2Kq+EGtqkj7eaNasjWiCqyGw7JiwEnjdqpcz6NI1egybzyOWorfS1gvEX8OZg0jIWNAPV7Ap1HkBA6EuagKo5sQkYMmSEHomQTroqlCf85EgCD0XHnePTdud1++gEQKTCSjcaV4QI1zOoGDLCE7ti0gjEd6E5t0tSxzGRENXGmDItIIEQIWygizGPCWMkQcN1oeDWCrE2ECS46h3lzCwVySryO3OsUn4h8yZdvSPzwtrqlUCNWULd85jakgNFCHOeKvsjdHCAyCOUCjqha+/Jg8Y+mE9dRDbBN4D6YCFyqIrGRBAeu4hQEynKJw8sZRc79lYE5sL0ZFeYW+B9dj9oyDUDr6rVKLKGyMRic7vPZ05r9i3K2HsDsdYhBpqfY4VvFcmqYXBzBL2yZ9hmc0exNNGSeW2S7ElC3Ro3NfabEVxVcVPyqgANHH8Q0o4gieIso7xaM9RcXZwyPVvTBnyhPGm8U/ge5Jc6OptDNukfwBxWk6qv7cn6VmYTskm2a3QzjVoD2Q18385yDNQWgltT2QDpbsQdbgvUJxnftTeOrStT2GldPtqW/yKhauOhoRWtOyoADGwDjPI8N44js5RLe9vHnQ78VSpS0K1NwWPNWgNHjHbuk+NU87BL875ZyNs3FIEfdvLIt9d12XrfaO8b7X2jvW+0S432B62e0Glb6v91q12rkMZee4XrCc32Lkr9tbvtWBCsSPKA1ZbdRoIVaStq5KnfpW9hWz2jLJ0lP2OTjxbWbZIQRn7CJucW1m3i1TWaPzxff+aV9WbesiMLr69n3cVra7mLV9iz7uLVtdzlJ45zfrRJ/6VnOuEsyu++n/Ps5zz7Oc9+zrOf8+znPP+pOc+P8C5nNHa+c3J8vDrS+YQZTQxD6wIS7+7znIQoTJkZsax3FpbGpa9P6YCG1VsKGjefPcF55aTJKK+JlHhCmrLzUpGgjJZPvDZXA3kYGk1Zq74HMCv30Qddft88qQPdWPEdXZg1l1dkb6heFef2CpoM5PLu7mYF0NpH2TBgPtgamAc6M6KmaWJf4cRT77FddEiKFz6HQnN5uLCvdnLwPyIe/ZMeLRiQ44yay7U/p0plsnt4SPRBzFKdHOAJ4QofYGoJh4ARa0HV3ID0bq7ekfklwQkRqHs/DAluwSatlZXJljeDM/rORBv3vKin1TQV9B9feJlXRlPLBcoAax8U74MuvuNZxozFuAHkctC4HCiaiUlpQlis+IFfseLmdwGJm8cVK2685hZK47JgrZh9BYvhHCtY9hOpYMnNl4IVOy7yAyQ3vilmG8u0VThN2XKWy1CfoVdj/Nvp+Oykffr66HX75PTsuD16NY7bx/HvZ6/GZ2d4jM9Q0JyE/31cdBpBG+HreFev37uMFbiwjx22vvZFc1EblyrfoFarQuVD+0rM1RmdsDi4D5O/TfeFBGX9BJm2IqnzI08Hod2IM07DWNMzftHq3VytqLr0CeI2jk2Y8kZuPqOo4nGFo0HnMDNRGymCZ38sv5T6RdQ5ODromKyfSuXGkW6LIExURizuGiD8HWYM26bDCLJwB79HQQCxfSH81XVP/4YRmqZSAd1iMcKSfBQsz2EZ3ACCwjBCj1hQPAI93S9QQiX8u3CiikjLzIZeDFzwfdkqLKYsqg8cHKIGyAm/UOTu0MloEtPUxyR/wX27T/vO1sSeeSWbQjC0HL04JplqpB0Ggfimd9e/RBEauaeLszQBJoG/gRrxNytpmlnNQtCCtQVimE80ZMAusqDw51+SqTXy +api: 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 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-runs.RequestSchema.json b/docs/docs/reference/api/edit-runs.RequestSchema.json index 9e22d55097..b6f307ed7f 100644 --- a/docs/docs/reference/api/edit-runs.RequestSchema.json +++ b/docs/docs/reference/api/edit-runs.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRunEdit"},"type":"array","title":"Runs"}},"type":"object","required":["runs"],"title":"EvaluationRunsEditRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRunEdit"},"type":"array","title":"Runs"}},"type":"object","required":["runs"],"title":"EvaluationRunsEditRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-runs.StatusCodes.json b/docs/docs/reference/api/edit-runs.StatusCodes.json index c33d986a40..469f9f0054 100644 --- a/docs/docs/reference/api/edit-runs.StatusCodes.json +++ b/docs/docs/reference/api/edit-runs.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-runs.api.mdx b/docs/docs/reference/api/edit-runs.api.mdx index 4b2ff0ea6d..801837eabe 100644 --- a/docs/docs/reference/api/edit-runs.api.mdx +++ b/docs/docs/reference/api/edit-runs.api.mdx @@ -5,7 +5,7 @@ description: "Edit Runs" sidebar_label: "Edit Runs" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-scenario.api.mdx b/docs/docs/reference/api/edit-scenario.api.mdx index 2060605d76..04658789a5 100644 --- a/docs/docs/reference/api/edit-scenario.api.mdx +++ b/docs/docs/reference/api/edit-scenario.api.mdx @@ -5,7 +5,7 @@ description: "Edit Scenario" sidebar_label: "Edit Scenario" hide_title: true hide_table_of_contents: true -api: eJzdWN1P20gQ/1eieWolh6Qp0Ds/XUqpyvWqIqB9QRGaeCfJ9tYf3Q9KLvL/fppdO3YcmgIHUnu8EK9nZmd+8+lZgcW5gfgSjq9RObQyzwxMIsgL0v7pREAMJKS9MgllqGUOERSoMSVLmllXkGFKEENNcCUFRCAziKFAu4AINH11UpOA2GpHEZhkQSlCvAK7LDyr1TKbQwSzXKdoIQbnvBQrrWKC80p270RAWU6CSDL2dS6WLKd7Q5JnljLLr7AolEy8MYMvJs/4rFGg0GyqlWTCeWXj1puZ8kCtALPlx5k3G4WQLBXV6QZpQ1FZN81zRZhBGXUN5pPbxUAideIU6md/4ZTUnybP+idZ4exzRiUIyadfKLHAcNQ4dYih3CJudMicUhvMb72NzPL/t/WiMjUliw80tWVXdSIzS3PSmxen082TNkI/wuOtU7vhiFYgLaV3Y0Ktcbk7AjZY74foB0ayjECKXWh1U3yXRM71CK5JGxnStiuqJvxckUQgaIZOsfTRcHTQH77qv9hnIcaidTvdGAFlLuVSWFAmwslXR464DGmXZeHIuCQhY9gOlMppYkatc81HCWYJKUUCWlY0lfU8KLFtcrkF9K3sVXE6FtLCbSxNEbxsKtntmrREnYVKCmXJMjWZIs9MCPnRcMj/BJlEy8J6L8B5QGDmVO+sIoYHF9wkd4Gpk0GN0keeouXZIbuzVacbh/58Ffujs/coY4H6163ZT2/tL1a1vwvIzrK9xXWPuv0QUOvCnWhCS+IK7R0LuEBLfStT2in+KIjtjb1arhBPccmnILa6RJCiJ7jkTRBbXVLDNV1ePV7Lq8F6veyF7lfj9ai31Gitb6kBe9RbarjWtzzhZHCHNN8SUk8NP/140B5r6tsZzsySvkZ1q9q3FrUuirUALhcyJWMxLR41Yy7WUkuPUhVdd/3qO3NZ+ODbPetUgndOOv956lrPOmFO2h+Ntkejz6ik8Fy9Y3b6w+ciQRal92zVJ7oEKk823t6nz03KTmtptec8KOibrJnvGro/kDE4p6bXfJ/Ug9G74Lc+brlFMfk6Dqueldiblpgtpxwxljc/nn0Zm6B+RddO+rWLgoe+D8Wb4IJdUfLu4uJ0S2CIj83A4Dm7d94sUFKyi1yEBUmy8BsVu4AYBtSsYQb1kGsGq9ZqpeQqQ/q6Xr44rZgRC+l9HR4X1hYmHgzI7SUqd2IP55RZ3EMZCCcsI3Fa2qUXMj49eU/Ld4SCNMSXkzbBOYdoCLpNsrWjsJDviaGrFkFjZxe5lv+ESKpWQYvAxdhw8J81+5vjG0wLRd39Sz2/N7NtM/hVzQRezvC3g9nhfv/g1YtX/f2Dw1F/+nKW9EfJ74cvZ4eHOMNDaDWK9ldhU/Wbouqjc5a3g3PskeuNT0+g69WNV5zomPi4rmHwryHq+KRxBfeG1Kc5WML0j/WbjeYGw70Xe0M+KnJjU8xaV3TjakO/tX84aQaFQunT2muzqiLuEloRB82HFf+O2wu9SQSL3FjmWK2maOiTVmXJx18daY6iSQTXqCVOGbbLFQhp+LeAeIbK0JZy68oIz86q5H3ea4beTaXrSMs4zFhjfoII/qZlZ/Poq9uijuRVRXEULuv7GtRI2CrJnEKBY5wkVNidtJNWIp+OL47eQQTTaiGZ5oKZNH7j4oTfgrp5EYDmjSWfrUBhNndcRmMIQvnvXzDTYEI= +api: eJzdWN1P20gQ/1eieWolpwkp0Ds/XUqpyvWqIqB9QRGa2JNke+u1ux+0ucj/+2l27dhxIAUOpPZ4IdmdmZ35zWdmBRbnBuJLOL5G6dCKXBmYRJAXpP23kxRioFTYK5OQQi1yiKBAjRlZ0sy6AoUZQQw1wZVIIQKhIIYC7QIi0PTVCU0pxFY7isAkC8oQ4hXYZeFZrRZqDhHMcp2hhRic81KssJIJzivZvZMUynISRJKxr/N0yXK6LyS5sqQsX2FRSJF4YwZfTK74rFGg0GyqFWTCeWXj1s1MeqBWgGr5cebNxjQVLBXl6QZpQ1FZN81zSaigjLoG88nNYiAROnES9bO/cEryT5Or/okqnH3OqAQh+fQLJRYYjhqnDjGUW8SNDspJucH81tvILP9/Wy8qUzOy+EBTW3ZVJ0JZmpPefDibbp60EfoRHm+d3A1HtAJhKbsbE2qNy90RsMF6P0Q/MJJlBCLdhVY3xXdJ5FyP4Jq0ESFtu6Jqws8VSQQpzdBJlj4ajg76w1f9vX0WYixat9ONEZByGZfCglQaTr46csRlSDulwpFxSULGsB0opNPEjFrnmo8SVAlJSSm0rGgq63lQYtvkcgvoG9mr4nScCgs3sTRF8LKpZDdr0hJ1FioplCXL1GSKXJkQ8qPhkP+lZBItCuu9AOcBgZmTvbOKGB5ccJPcBaZOBjVKH3mKlmeH7M5WnW4c+vNV7I/O3qOMBepft2Y/vbW/WNW+FZCdZXuL6x51+yGg1oU70YSW0iu0dyzgKVrqW5HRTvFHQWxv7NVyRfoUj3wKYqtHUpL0BI+8CWKrR2q4psurx2t5NVivl73Q/Wq8HvWVGq31KzVgj/pKDdf6lSecDO6Q5ltC6qnhpx8P2mNN/TrDqSzpa5Q3qn1jUeuiWAvgciEyMhaz4lEz5mIttfQoVdF11199Z06FH3y7Z51K8M5J5z9PXetZJ8xJ+6PR9mj0GaVIPVfvmJ3+8LkoJYvCe7bqE10CmScbt/fpc5Oy01pa7TkPCvoma+a7hu4PZAzOqek1t5N6MHoXfOvjllsUk6/jsOpZif3eErPllCPG8vuPZ1/GJqhf0bWTfu2i4KHboXgTXLArSt5dXJxuCQzxsRkYPGf3zpsFSkZ2kadhQZIs/EbFLiCGATVrmEE95JrBqrVaKbnKkL6uly9OS2bEQnhfh68La4t4MJB5gnKRGxuuJ8yZOC3s0rOOT0/e0/IdYUoa4stJm+CcAzOE2ibZ2j1YiPfEgFXrn7Gzi1yLf0L8VAugReBiRDjkz5qtzfF3zApJ3a1LPbU3E20z7lUtBF7O8LeD2eF+/+DV3qv+/sHhqD99OUv6o+T3w5ezw0Oc4SG02kP7t2BT65tS6mNylrdDcjwnZbE3Pj2Bri83rji9MfHRXMPgryFqecLEgwH64xcoBtwRMp/cYAmzP9Y3Gy0Nhi/2Xgz5qMiNzVC1nuhG04Z+a/9wqgwKicIns9dmVcXZJbTiDJqfU/w5bq/xJhFw+DDHajVFQ5+0LEs+/upIcxRNIrhGLXDKsF2uIBWGP6cQz1Aa2lJuXQ/h2VmVss97zai7qXQdaYrDjDXmbxDB37Ts7Bt9TVvUkbyqKI7CY31feRoJW4WYEydwjJOECruTdtJK39PxxdE7iGBarSGzPGUmjd+4JOG3oG5eBKB5T8lnK5Co5o6LZwxBKP/9C0Q+XOM= sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-scenarios.api.mdx b/docs/docs/reference/api/edit-scenarios.api.mdx index 0c82e17a82..44fb1dc91d 100644 --- a/docs/docs/reference/api/edit-scenarios.api.mdx +++ b/docs/docs/reference/api/edit-scenarios.api.mdx @@ -5,7 +5,7 @@ description: "Edit Scenarios" sidebar_label: "Edit Scenarios" hide_title: true hide_table_of_contents: true -api: eJzdWNty2zYQ/RXNPrUzlKUottPqqYrjTNzcPLaTPmg0HohcSUhBkMHFjqLhv3cW4FWSadmVZ+r6RSa4ewCc3T1cYAWGzTUMx3B6w4RlhidSwySAJEXlns4iGAJG3FzrECVTPNEQgMLvFrV5nURLGK4gTKRBaehflqaCh861900nksZ0uMCY0X+pImDDUfvxAnG4Am4w1ps2M+EWuAIml59nMByvgEURJ3wmzhumlYVZpghDmCaJQCYhC8ohbRSXczeyHQZCrkIrmPrlA5ui+FMnsnsmU2t+haAASabfMDSQTQIw3AgaWjOGbMO4WoO0QjSc37o9ksv/f69X+VZjNOyRW63tKx/h0uAcVXPieNocqTN0Hx9vrWinIygTdgcnphRbtmdAw/VhjH4kJrMAeNTGVgCzRMXMwBCs5VEr4hm9hhtUmvsCXocqDL/mJgFEOGNWEPqgPzjq9l91XxwSiDbM2NYwBoDSxiRBKcrIj3y3aDEinbFS+iFtwxA1ac+McWEVkqNSiaKhkMkQhcAIaruoFO3SL2Jzy9kG0Vvdc5k6jXg9ND6qlcNlqWbbYEkxucKINlrp3vblFq9pwguvtJARaAVilEU3oNNEal8og36ffiLUoeKpcbGDS8/bzIrORW5MhD1OsMPEeqe1uqt2ceIsavnQpyR4Jjr/2ZoHiJ+3fr5K//S7fWZafychrWK/4fUAtX8MqYXchwqZweiamR1lP2IGu4bH2Ap/4mE7I7csm0ZPMckXD5tPEqHAJ5jkjYfNJynomi6v9/ehLMh6vez4b2bB115nKdgqZykI2+ssBV3lLE/YT+xQ5hsgRa/xn28q6s1QMTvRKQ2qGya2LnurqK2zWACQXPAYtWFxuteKuSpRM8dSnl3tga/cL6x0qXNP95MDt7Y+O7VZNaLHkyyAWy6j5JbW2CCl2WdIvKV2ap+0ffKQWQCJiPYN/tlDZgFI/LEr9L0V+YmwsgAEj/l20F0y8oPzpn2rCNVu9cioGcwrkjrV/GHSyoGD33cNKWZwK9BmO7GBc0G+baeHv8pc/LenDl227Zk7AxwOBptd/lcmeOTcOqekX49v8SM0jIuWRl0kYePtQ1q2yd1l/SHxC3T9op63nTo/otZsjpVG3G3qyOhc0VuXPtRtkXmZDnn7FZofNZiNqJwQl1Qx90gbceOXn9vVv19liHyE7qbijQ9BW5q8u7o63wD0+dFMDDpCduqSGaNZJHSnlzITLiCg3wUMoYfVBWCvPLD16COJij7dLsRWCbJlKXfx9Y8LY1I97PXQHoQisdEBm6M07IBxbzghjNAqbpYOZHR+9h6X75A50RhP6gaXlJY+0ZpmZXBYyt8j0SVZTM8jaxaJ4j999lCQaUnei/ighL+oritPf7A4Fbh2/TiuDqDV4aw6ueTdELycsd+OZseH3aNXL151D4+OB93py1nYHYS/H7+cHR+zGTuGWqdTvwyp2paqK5i4pJwl9ZwcOfI6o/MzWA9m4xXVNwtdOhdMuNcQrIWligbJcOyqGwyy+I/yTaM9g/7Bi4M+DaWJNjGTtSk20qmxwDJGVCy9VDDuytktZ5Un2hhqiQb1u4EAqFwWCX1Ax7BaTZnGL0pkGQ1/t6goeyYB3DDF2ZS4cl/9RZFHK/gbl0WxStN1VU/mwvq8WRNBSmDvMQpDTE2r7aRWOeejq5N3EMA0v/2Ok4icFLslOWC3MASgG3S/xeHKj61AMDm3JFxD8KD09w+0MgWW +api: eJzdWFlvGzcQ/ivCPLXAKlIUH+0+VXEcxM1l2E76YAgBtTuSmHK5Gx52FGH/ezHknpK8ll0ZaOoXeYczH8lvDg65AsPmGsJrOL1hwjLDU6lhEkCaoXJfZzGEgDE3X3SEkimeaghA4TeL2rxM4yWEK4hSaVAa+pdlmeCRMx181akkmY4WmDD6L1MEbDhqLy8RwxVwg4ne1JkJt8AVMLn8OIPwegUsjjnhM3HeUq01zDJDCGGapgKZhDyoRNooLudOsh0GIq4iK5j65R2bovhTp7J/JjNrfoWgBEmnXzEykE8CMNwIEq0pQ76hXK9BWiFaxq/dHsnk/7/Xq2KrCRr2yK029lVIuDQ4R9WeOJm2JU2G7uPjtRXddARVwO5gxJRiy+4IaJk+jNH3xGQeAI+72ApglqqEGQjBWh53Ip7RMNyg0twn8DpUqfi5UAkgxhmzgtBHw9Fhf3jcf35AINowYzvdGABKm1AJylDGXvLNosWY6oyV0ou0jSLUVHtmjAurkAyVShWJIiYjFAJjaOyirmiXfhGbW843iN5qXpSp05g3XeO9WhtcVtVsGyxVTK4wpo3WdW/7csthmvDCV1rICbQGMcqiE+gsldonymg4pJ8YdaR4Zpzv4NLzNrOid1EoE2GPK9hRar3RWt7VuzhxGo14GFIQ/CR1/qM1Dyh+XvvnrfRPv9ufrNbfSUhnsd+wekC1fwypZbmPFDKD8Rdmdiz7MTPYNzzBTvgTD9sbu2XZLH6KST552GKSGAU+wSSvPGwxSUnXdPllfwdlSdbLZc+fmSVfe52lZKuapSRsr7OUdFWzPGE/sUOab4CUvcZ/vqloNkPl7ESnNKhumNi67K1FbZ3FEoDKBU9QG5Zke82Yqwo1dywV0dXt+Nr8wkoXOvd0PwVwZ+uzU5vVIPp6kgdwy2Wc3tIaW6S0+wyJt9RO7ZO2Dx4yDyAV8b7BP3rIPACJ33eFvjcjPxBWHoDgCd8OuktEvnPWtG8Vo9otHxk1g0VGUqdafEw6OXDw+84hxQxuBdpsJzZwLsi26/bwVxWL//bWoau2PXd3gIPRaLPL/8wEj51Z75Tq1+Nb/BgN46KjURdp1Bp9SMs2uTut36V+ga5f1POuW+d71JrNsa4Rd6s6MnpXNOrCh7otUq/CoWi/IvO9AbPhlRPikjLmntJG3PjlF3rN86tykffQ3VS88i7oCpM3V1fnG4A+PtqBQVfIXrNkJmgWKb3pZcxECwjodwEhDLB+ABxUF7YBHZKo6Oh2LrZKkC7LuPOv/1wYk4WDgUgjJhapNn54QpaRVdwsnen4/OwtLt8gc6XietJUuKRg9OHVVqtcwjL+FokkyRL6HluzSBX/4WOGXEsL8VbEAoX5Rf1IefqdJZnAtUfH6/raWV/J6vtK0QPBixn77XB2dNA/PH5+3D84PBr1py9mUX8U/X70YnZ0xGbsCBr9TfMJpG5W6l5g4kJxljYjcTxHaVhvfH4G6y5sDVFWs8gFccmEG4ag4QwdDgbMiZ8xTi7ExOU0GGTJH9VIqymD4bPnz4YkylJtEiYbU2wEUWuBlY8oRQaZYNwlsVvOqgiva2iEFzRfBAKgJKGwIa3Vaso0flIiz0n8zaKi6JkEcMMUZ1Piyp31izKOVvA3LssUlabvcp3UhfVxs1b6KGy9xTiKMDOdupNGvpyPr07eQADT4s07SWMyUuyWigC7hRCA3s39FsOVl61AMDm3VK5C8KD09w9Q9wI3 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-application.api.mdx b/docs/docs/reference/api/edit-simple-application.api.mdx index 6229b90491..2ff59147c8 100644 --- a/docs/docs/reference/api/edit-simple-application.api.mdx +++ b/docs/docs/reference/api/edit-simple-application.api.mdx @@ -5,7 +5,7 @@ description: "Edit an application and commit a new revision if configuration cha sidebar_label: "Edit Simple Application" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-environment.api.mdx b/docs/docs/reference/api/edit-simple-environment.api.mdx index 54c03dcf4e..4de285574e 100644 --- a/docs/docs/reference/api/edit-simple-environment.api.mdx +++ b/docs/docs/reference/api/edit-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Edit Simple Environment" sidebar_label: "Edit Simple Environment" hide_title: true hide_table_of_contents: true -api: eJztWdtu20YQ/ZXFPNkARTlO4rQECtSxncZN2xiy4xdbkFfkUNqUt+wulagCX/sB/cR+STFc3nWxrShAUFgvEpdzPTMcntUuQPOJAucGzqKZkHEUYqQVDC2IE5Rcizg698AB9IQeKREmAY6wlgQLEi55iBolWVlAxEMk+VpmJDywQETgQML1FCyQ+CkVEj1wtEzRAuVOMeTgLEDPE9JWWopoAhb4sQy5BgfSNLeihQ5IoBEsO/cgy4bGKir9OvbmZKrrxI0jTRE7C+BJEgg3T67/UcURrdUxJJJS1wIVXTWTXbrpBzl4C+DR/L2f598WEGo0Sbn0KIwqu3EcB8ijRjrniv1SiFngoc/TQIPj80BhllmlXjz+iK5ejcKbPJLMqpxEaRBANiTtpRi55wlKngcXrWhriU6kDbtFaWhltRlwhXTTgMu93/gYg19VHPXOoyTV+9DNhKpW5tIRhqW0l3Orla9M8hCi5lum2sirWBGRxgnKtuNw3F5pInQfHm/SYDMc1gKExvBhSlxKPt+ISlv1cYj+TkhmVvE4PwivJRt/kG5GDa1cKRKCZltTpw0TmQXC22SoOzY2GabhYYHHu33Tfowl+igxcru9s7a71qy3rc5Qqq/A5LpQzyxQQTrZ1swl6e4c0w1Ta1CCuaojH9Gig7ooDxySA5wJguyUyt3pS7hA2eNJwupaMz+WrDH/mSz0GfWLfRvdRu9wrhiXyHiS9JQbJ+gx4WGkhS9QKraH9sS22N3dLSQS7dLALdzd7du30TUPUjQGPOFqxWKfkbKe9ygd9u/f/7AqTYslMp4JT0QT5qdBwLTkLvKxCISeOw6FwxhjC/NFn65Tp3nTCDRehXS/crYnvJ9s27YYtZb5VbQrXexbG+yMZlwKHumd2WsmsIXBrPHbtm1zka16V27oosuc+jR66cwTemXf1bzjpkUehvcYGxj6AllGViWqJI6UGRSHBwf01e7Xy9R1USk/DdigEIatWY4bp0ap8+6rYz7JJRrs5CCzuuRo3fh8okkPo0nvU/0InmSk/9dEaS0gG5nSktYjqNI2oH7fXMmVyDV6I64f+H73uMaeFnk8672cGLPsOAcrTbxv4eSDMVs48TDAb+Dk1JgtnJRwjeej3TGiEqzXc2YIZ4nXTr2UaFVeSsB26qWEq/Ly/ZHPJ0L/ROifCP0Toc8sKELf4fy7NhaL4VemskMHZVOzex67pV3E125pqm2E2YK8ODxc3nVc80B4eRXZmZSx3H7L4aHmIsjZv2FyXYEgdlt3H8NEh1mH/DUIdGwCzGmwmqz617kmdkrxSWOsrRfNwWBXdJdGb/6HG4mXE7T8B87VXxpmlmpyQlh+uX9jSdiY8Au5VoOWJTIVWg/FqSnBpiZ5e3V1sWTQ9Ee7MWgLy0xLsbPWAUGIehrTGQJBYJkzAAf65jCh3xjHqr9oHxtkYIFCOSvPFlIZkCZPRF50cznVOlFOv4+p7QZx6tl8gpHmNhdGcEg23FQKPc+NHF+cv8P5W+QeSnBuhk2BS+pV031tsapiPBHvkDAszjmOUz2NpfjLtFRxzDE1WgQSPQWD+mDi7AunrFccLFR75OZe2Gxtq71pvXGrdht1J7bLUS3TXILnPv/hpX/0ovfy1bNXvRcvjw574+e+2zt0fzx67h8dcZ8fQc2aWuzIFFtEftxs6OMcZHZ8cb7kunWLhgN38wxLxPLbYHXKV1cNLMAwHw2gkYc/V3eokyuKBQf2M/uAlpJY6ZBHDRfre7GzvSqKSo9cPwm4yIdCHtei6NMbMH0KrT87FFjgdI64hhZMY6VJZbEYc4UfZJBltPwpRUm9NyxeR2NC8GYBnlD0u6zzUnTVYIW9QfHs77N6V9uOuuzPiJpzRjQEHAAL/sT58nFcPh+n5SOwKIROjL9ePsVqI0tDnZ49o3HsupjojbLDxgC4+HAFFoyLA7ow9khF8s803PhnE2+cp29IOq0tIODRJKUx7IAxSZ//AE4lwzo= +api: eJztWd1u2zYUfhXiXCWAbKdpm24CBixN0jXrtgZOmpvEcGjpyGZHSypJufUM3e4B9oh7kuGI+vdPEtcFiiG5iU2e//Pp6KO5AMPHGtwbOAtnQkXhFEOjYeBAFKPiRkThuQ8uoC/MUItpLHGIlSQ4EHPFp2hQkZUFhHyKJF/JDIUPDogQXIi5mYADCj8lQqEPrlEJOqC9CU45uAsw85i0tVEiHIMDQaSm3IALSZJZMcJIEqgFy859SNOBtYravI78OZlqO/Gi0FDE7gJ4HEvhZcn1PuoopLUqhlhR6kagpm/1ZJc2A5kVbwE8nL8PsvybAkIPxwlXPoVRZjeKIok8rKVzrtkvuZgDPgY8kQbcgEuNaeoUetHoI3pmdRXeZJGkTukkTKSEdEDaSzFy3xeUPJcXjWgriVakNbt5a2hltRnwhPISydXeb3yE8lcdhZ3zME7MPrQzoa4VubSEYSnt5dwq5SubPEzR8C1TreWVr4jQ4BhV0/F01FypV+i+erxJ5OZyOAsQBqcPU+JK8fnGqjRVH1fR36mSqZM/zg+q15KNP0g3JUBrT4mYSrOtqdOaidQB4W8y1B4bmwzT8HDA523cNB9jhQEqDL02dtaia8160+oMlf6Kmlzn6qkDWibjbc1cku7Oa7phavWLYq5C5CMg2q+a8sAh2ceZoJKdUrtbuIQLVB0ex6zqNQsixWrzn6lcnxFeurfhbfgO55pxhYzHcUd7UYw+Ez6GRgQClWZ72B13HXZ3dwuxwm5h4Bbu7va7t+E1lwlaA77wjGZRwEjZzDuUDvv3739YmabDYhXNhC/CMQsSKZlR3EM+ElKYuetSOIwxtrD/6K/t1K1vWoHaq5D2S2d7wv+p2+06jKBlP+VwpS/7zgY7wxlXgodmZ/bqCWxhMK197na79ku66l25AUWXGfWpYenMF2Yl7irecdMgD4N7jPUtfYE0JasKdRyF2g6Kw4MD+tfE62Xieah1kEjWz4Vha5bjRYlVar37qphPMokaOzlInTY5Wjc+n2jSw2jS+8Q8gidZ6f81UVpbkI1MaUnrEVRpm6J+31zJU8gN+kNuHvh+97nBjhFZPOu9nFiz7DgrVhL738LJB2s2d+KjxG/g5NSazZ0U5RrNh7tjREWxXs+ZJZxFvXbqpahW6aUo2E69FOUqvXx/5POJ0D8R+idC/0ToUwfy0Hc4/66txXz4Fans0EEBanbPY7d0ivjaI015jLBHkBeHh8unjmsuhZ91kZ0pFantjxw+Gi5kxv4tk2sLyMhr7D6GiQ7SFvmrEejIBpjRYD1e9atzRey05uPaWFsvmhWDXdEujd7sBzcSLyZo8QucZ77UzCz15IRq+eX+gyXVxoafyzUAWrTIdmh9KU5tCzaB5O3V1cWSQYuPJjDoCMsspNhZ44JgimYS0R0ClcCxdwAu9OxlQq82jnVv0bw2SMEBjWpW3C0kSpImj0XWdPt1Ykzs9noy8ricRNrY7QFpeokSZp6pHl+cv8P5W+Q+KnBvBnWBS0KoxVxTrOwTj8U7pMrltxvHiZlESvxlgZRfbkysFpWGsN+vriPOvnDKdcV1Qnkyrp+A7YG2PJFWx7XyjFHhr9mEcpmmETwP+A8vg6MXnZevnr3qvHh5dNgZPQ+8zqH349Hz4OiIB/wIKq7U4ES2xSIMojqMj8cYGs6OL86XXDe2aCRwL8uwqFi2DU6tadrt9Xi23OWiBw7gNBsIYJBPfy53CL8lsYKD7rPuAS3FkTZTHtZcrEdg61CVN5UetF4suchGQRbXIkfnDVh0QuMnDg0OuK2LrYEDBDpSWSxGXOMHJdOUlj8lqAh7g/wlNKIK3izAF5o+F31eiq4cp7DXz5/4fVadZZtRF/gMCZwzIh/gAjjwJ86XL+GyqTgpHoFFLnRi/XWy2VUZWRrl9MRZjWPPw9hslB3UHvuLD1fgwCi/lptGPqko/plGGv9s442y9C01p7UFSB6OExq+LliT9Pcfsru/2w== sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-evaluation.RequestSchema.json b/docs/docs/reference/api/edit-simple-evaluation.RequestSchema.json index ed41345a0e..f2045ffc8c 100644 --- a/docs/docs/reference/api/edit-simple-evaluation.RequestSchema.json +++ b/docs/docs/reference/api/edit-simple-evaluation.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"required":true,"content":{"application/json":{"schema":{"properties":{"evaluation":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationEdit"}},"type":"object","required":["evaluation"],"title":"SimpleEvaluationEditRequest"}}}}} \ No newline at end of file +{"title":"Body","body":{"required":true,"content":{"application/json":{"schema":{"properties":{"evaluation":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"type":"string","title":"Version","default":"2025-07-14"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationEdit"}},"type":"object","required":["evaluation"],"title":"SimpleEvaluationEditRequest"}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/edit-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/edit-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/edit-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/edit-simple-evaluation.api.mdx b/docs/docs/reference/api/edit-simple-evaluation.api.mdx index 891a46b5dd..5e06c28378 100644 --- a/docs/docs/reference/api/edit-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/edit-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Edit Evaluation" sidebar_label: "Edit Evaluation" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-evaluator.api.mdx b/docs/docs/reference/api/edit-simple-evaluator.api.mdx index d953a2335c..f25faa952e 100644 --- a/docs/docs/reference/api/edit-simple-evaluator.api.mdx +++ b/docs/docs/reference/api/edit-simple-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Edit an evaluator via the simple surface." sidebar_label: "Edit Simple Evaluator" hide_title: true hide_table_of_contents: true -api: eJztWtty2zgS/RUUXjapomXHSTy7elqP45S9c3P5khdH5UBkS0QGBDkAaEer4r9vNQCSoC6UozhV8az8RqhxGn0ANBrHmFPDppoOb+npPRMlM7nSdBTRBHSseGF4LumQnibcECYJ1DbknjNiUiCaZ4UAoks1YTEMPsqP8jov4xQ0ycCwhBlGmEzIi4cUJPmE358I10SXRSE4JC9JnGcZN5owIuHho1RwzzXPJcmlddC4/Icm90xxJs2AXIJkGZdTRDKQFbliiovZR5lwzcYCEutTgSmV1OTNwcGARjQvQDEM6DyhQwoJN3du9HeNDxrRgimWgQGFpMypZBmgdW1xxxMaUY6kFMykNKIK/iq5goQOjSohojpOIWN0OKdmVmBfbRSXUxrRSa4yZuiQlqVFMdwINGiYJ+cJraqRwwRtfs6TGQItuohzaUAa/IkhjbENa/+zxsmaByMoFAZtOGj8asMczhcm+MpNYzu/SA8p2EzkLEG+7QB0d0bIJ558WjsZpJ4L5L47kImwa25OmZz9MbE8dw24vgsCC7gc57kAJgPyzjU5Dkxx5U5YKQwdTpjQUEUI1om8D+o0WAmrgLTkRQFmE8yVN1sNkjHJpjib/SC/ebPVIHGpTZ5twjhxVqshhNjY/1exrnOa539u6n2GNmuGnyewcfBos45CE6ebCUSj1QATgGTM4o0hvK/t1oSRso2L4QRtVnRPmb4rlejtfsY0uVFiXXe3hTciXDmzNSApk4mA/q2BKGfebgmmiuqO+fgzxCbo5/JKs6ve241fRY0nWQpBqxEiLKUEliQc9zQTF53k0FosDDfA9TkXW1bD0JiruBRMvfiVjUH8R+dy71wWpXlJF6PBhFzHs2BMl0Jfjq3tfO2Cp3gwbhlqEJdv4dLAFFTXcTbutoQMbeLjfSn66YjmlBvIHteJKcVmvax0u34do78hk1XkT+lH8bWE8Tv2rRYqnu2g3gUQmB+SPqDFeqAPGOuCiGLx1HdqlopvO/IbxdGDT0fbIQhESIEltnb61uXdDe0elP6Gifngu1cR1aKcbgtzhX2ffGJ70uclTECBjMHnyEdvjDM/DVVEVSkN798eEQVZZngJKGYmtVUUGuj62PjM7pn/GPV5vfSukObmZNqKaNe7qqvp3mIxrNh3SfXbk+pFyyeudQTYMfskzJ47LquI5qXZ0fpUtP7hyezLpIh95XPJyvpzl0W+XxZ5/AXhHbMF3dL8PB4BpaqVHlsR5TZQQka9QJdOh6GLehgKM2TiZRKUPh6jjdGqwnEp0EUutVtFhwcHK8SYMo5B60kpyKU3pluLPnFeyvCGWC/KNu4Ta7EY4itiFbtOYFx7TQ2SiByQ3KSgHriGQXgnPKiirtK07tzeqUA7FWinAu1UoB9MBXLVxGNlIGf9t9aB1hLSW20s9fqKcmMbUn9sKShWwAwkd6z3ShwoBwkzsOcv0+u9nDhYcmzJKovkezi5cbDeSQICvoOTdw7WO6npGs/unk5rqcn6eUacnlbz9aRearYaLzVhT+qlpqvx8uPJWju9cqdX7vTK565XPo/D/5lKls+D3OeoWj4PZv//hMvnMS9Pq11G1L9be8L674ND9MVf/WbuCR1c1s/wNpz4CxysxOwKi9cpkIlgJtAVFcS5SsgDNykRzIA29VM//47PjyUDNYWEcGly/5Rw8DWDC8TUheeN8h5EXoCVdBnRXE5FI982w6wF3DeHh8ua7QcmeGLFR3KqlFUOtxRsEzCM27LWb4hFA5HHnV+/ZkMHVZnbQ4GmkXvxFJUJPV31gLG9a2vNptBuqvWmlgxyjb/WJ7M1D88We+MzXwKYpZk8QS6/bBb2kRs3fG/X2TP1FLkZWk/FOzcFfUvr7Pr6YgnQrY8MTJrjE1MMLXLPRId03y2n/WY56f15+Kq0ohHVoO7rh6f2akP3WcHtRLrP1JhCD/f3oRzEIi+TAZuCNGzAuDMcIUZcKm5mFuT44vwXmLnimg5vR6GBPVTciuqaNbPACv4LIC/+EexxadJc8f/WGrt9BesuUJYrXNmX7cvV0y8MI156edro/ov6vtURF5X6trFR3dumRkNvm2pFvG2xAnf76STroIPVoENMKyq3Da1IHHSyiq//biTc4Lu+TwRNjcJay65e7GyVwEa+avdRN8s0zZjo6esJ++fbydGbvbc/vfpp783bo8O98etJvHcY/+vo9eToiE3YEW2v4fa63UK4FdV8thfh8A7WXrDqgNoewVWnU4OEFXinaKwWqxW3X7ic5GFOOLZrmhxfnC/F3/kJ8yuLbTqpF6j9uYmt3i3tJsGbY2azKzXAsn83v2AyaO7s9GDwanCATUWuTcZk4MK+hPevpbv/JupIhk3u/3s8nfcJAVPwfiEYl4H44vLbLXXh0OCff5pGdNh5OT+KaJprg+bz+ZhpuFGiqrD5rxIU5qyRr5bGuBRu57QeVbOT1hL9wj9ST16SdSOu85rEpIbjwi8a0T9htvjG356UaZ04597kxHnbs+dZC7F0vGPGdj2O4xisJrHedhQcGRc31zSiY//uP7OpiSr2gMcce3CjzW3wdt/ZtjkVTE5LPJCH1EHi3/8Az+MvFA== +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-query.api.mdx b/docs/docs/reference/api/edit-simple-query.api.mdx index 7a2a35099b..b3d2a0b7bd 100644 --- a/docs/docs/reference/api/edit-simple-query.api.mdx +++ b/docs/docs/reference/api/edit-simple-query.api.mdx @@ -5,7 +5,7 @@ description: "Edit Simple Query" sidebar_label: "Edit Simple Query" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-testset-from-file.api.mdx b/docs/docs/reference/api/edit-simple-testset-from-file.api.mdx index a66424538e..a60409468b 100644 --- a/docs/docs/reference/api/edit-simple-testset-from-file.api.mdx +++ b/docs/docs/reference/api/edit-simple-testset-from-file.api.mdx @@ -5,7 +5,7 @@ description: "Edit Simple Testset From File" sidebar_label: "Edit Simple Testset From File" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-testset.api.mdx b/docs/docs/reference/api/edit-simple-testset.api.mdx index bd1922d98a..545961c0f3 100644 --- a/docs/docs/reference/api/edit-simple-testset.api.mdx +++ b/docs/docs/reference/api/edit-simple-testset.api.mdx @@ -5,7 +5,7 @@ description: "Edit Simple Testset" sidebar_label: "Edit Simple Testset" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWltv2zYU/isEnzZAvsRt0k1Py5oOy24NUncPS42EFo8srhSpkVRSz/B/Hw4pyZKdOE7mDevgPqXkufHj0bmZC+rYzNL4io7BOgvO0klEdQGGOaHVOacxBS7ctRV5IeHaBSoa0YIZloMDg9wLqlgONKbV/rXgNKJC0ZgWzGU0ogb+KIUBTmNnSoioTTLIGY0X1M0L5LTOCDWjEU21yZmjMS1LL8UJJ5GgMpCcc7pcToJEsO5bzecoZl1BopUD5XCLFYUUiT/Q4HerFa6t9BcGj+sEWG9NdcB4QTnYxIgC2WhM33kASLVPUgGSW+I0KQvOHPTJeUpuOHOsjyQJs2BviLCkMPpWcOARYUTBHTFwK6zQCvcSnefCOeDkTriMuEzboMGz9xHljnGp9Je1oEzN36Ye9w7BMqrR1NPfIXGb6H3nJURrZ7uQLIFMSw6GpNrUh+xJuAVJvNb+B/VBjTNhSa45SLReeICFVkzKOYG8cHMyLR35CIUjzBJGOHDEHThBs4jVxGXMxR9Uj8AnYZ1QM2IgBQMqAQ/mjVcWk7dFEHzVtntyQwzkTChyy6RARBVHWdaZMnGlAR5sJQlTZAqEcQ6cZGCACEVcBiQtkcyjrUtHpgbYRzTCZfBBEWJLY3SpOC6djd/aPl1GjYOqUkq6nCDGG7fAOBfB4IvOha0oKiFTrSUw1ZZbOT6u3C+GJsIkpWTmi5/YFOQPVqveuSpK9yVdv2/8LuobXyOmG86xebaWu+ARlxHNwbFnHrV1rmoFHWYGpqs4n3ZX2gg9hsd3pdwOR7SgwkG+GxMzhs23otJlfRqiPyOSy6gKlDvhtSHjF+Rdrn29zxN11hKxjKjg2wStB+VtgjE8RxQD4ZZAResgdy34mvdU9/W4Cbtf27hSRs65d+omwj6g+d6McL0/iNqZLKL7lf2ukZsYwNB7zdyOsjGN9ZzwLvawgtdBLDn1/h+S396VvA9iKyUcJPwDSs6C2EpJDdd0vsfbqMH6dl5dSo3XXrXUaDVaasD2qqWGq9Gy75hxT3Xzv8urof461BCHGuLv1BCb2fWA6PMQPUMkl4/0TVgrPKvgsI+KtuAuq4YwmLLZb2yREHrSSs4bLty9+lad8VXT3k62CLkMjTVdLlGaAVtoVRVLo+Hwns64TBKwNi0luayI6bP770SXgWnNO1s51VOst7BHRKSENe35HbPEgCuNws57SLTLwNwJC33PmbJSOhoPq2KwavgfKlYPbfeh7Q4R5m3pnpAzA/X/Omk+CMjWGL/B9YQg/xxQ/9u996FROzRq/2ijZmU5e66vvkPew4DoMCA6xJ1D3DkMiP6FCvC/NCI61Lufdb37mcyJPg9QP4NREU5rAsUew3qttArqt8wIpvZZkfwaJIaHHTsOu+4V2J2ujLPVaw3/vEI4SyTDpdUjjKbSIzmYGXCcruiNdxx+5OEnGQ3j+RnRity08L7p725+MycLM7aXo9HmWO1XHLb4oRl5Y4w2z5+pcXBMSPzrgQpW6qSz+5RoMFn39lZm0MFAH9/t7L6afRWxrGWz1qfzMKkHg4xxF2sMP/NF8rpUqIfAifvUErNxH68Ry0+PT0wRm2B+Rdfx3PqKwg09DMVZuIJtDvL9eHyxITD4R9cxcEZLqudI4+Y9Vg4u0/hcC48fhWdXMR2Ed1uD6kOwg8WqW1lS7C3Mbf2EqzQSOVgh/EWH/2bOFfFgIHXCZKatC9sT5ExKI9zcs55enP8I8++BcTA0vpq0Cd6hVwY/65I1d8MK8SMgWtUjstPSZdqIP4PzVO/IssCFcKC/X65ef735xPCMa6+36mJxVUitqoxmFLTyri7EzTJGOfoiZV8dpycve8evjl71Xh6fjHrTF2nSGyVfn7xIT05Yyk7oKtt2W9er3dgnna7zqttV7mrBU+nbHSAdDUcve8NXvdHX46Pj+PgoHn3VH746+o12m7htdO0+bBvdWiu1q7lrvdHO99JtdnZlewrtI85WecYSf83xMSvV7ZB1OgPlGDm9ON9wxM4Whn+WeO+uvxS/jdA0H6uNBwPml/tMDGhEcXQv/dNMln/T7PhUDsYGNcP+UX+IS4W2LmeqpeL+aLM2Ba0+ZAyog0Iy4UO+t2lRRaIrGiIRbX5xwd9D4paXTyKKAQZJF4sps/DeyOUSl/8owWCcmVTVxxRRu1pQLiz+zWmcMmlhw6omXdIvLquI/iVZ1Ytda+tYpDAQ3TJZ4v9oRD/CvPuu1We8rA51i4rgddDV83lpJWAjTWNkDRynSQKF20o7aYX1i/djGtFp9doVfw2iMTXsDtMVuwu2an90H2r92oJKpmYlJtaYBpH47y9gCPn4 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-trace.api.mdx b/docs/docs/reference/api/edit-simple-trace.api.mdx index 3eb3f9fd97..a1c1232d50 100644 --- a/docs/docs/reference/api/edit-simple-trace.api.mdx +++ b/docs/docs/reference/api/edit-simple-trace.api.mdx @@ -5,7 +5,7 @@ description: "Update an existing 'simple' trace." sidebar_label: "Edit Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztXN9v2zgS/leIeWoBxU7TNnvne7ls2qK9dtEgcfclCWJaHFvc0KSWpJL6DP/vhyEly7/TOAkuAdQXNxJnhvz4kRzNjDQBz4cOOufQtTxFB5cJCHSplbmXRkMHfuSCe2RcM/wpnZd6yC7AyVGu8AKYJ6nWhb7QZ0WeK4mCDSQq4Zi5QXtrpUfmM6xlowD7FBtp41lu0aH2F1rq0NTi3wU6z/pGjBm3yBQOPCt0mnE9RNFiPcE97zHpQlNpUbBXPsMLnfOxMlywPpIli6mxAsXrf7EeDbKXsN4IPadfiwO0qFOkq1yLC91TUl+7XjBowti5CuPqZtIx1CI3UnsyKrVHLWigxjKutfGcmjvSwwaIos/Ta4baW4kuudC3GdoIQuh4yxQ+L7wLA6CrObee+Yx75se5TLlSYzZET6O7kQ5F60J/Mpa5nOs9hTeoGArpXcIKh6x38qPL2gSq1MPwi649Cb9XUkx7LUjA5GhDF78I6AAJX8X5uwrtIIGcWz5Cj5aYMAHNRwgdqLRAApKYkHOfQQIV6NDxtsAEXJrhiENnAn6ck5zzVuohJOClV3QhUIt9ETCdXkZ5dP53I8YktKwuNYSvp1ucGJWGrrf/csTGyZy13NLAvEQXbIehdCZL7O1mWBHSG1YELq9jUOtujrCKIgvMlpalhbWoPbvhqkDHbjPUFakJ/qV+huU2Aa7H3wcBbS6EjHw7WWhZtyhx7RujkGuYJstQ05X1aiCVNi0Ut6++8T6q/zij977ovPCvaX6iEtP/C1MPNDfVjC01hulK47oPulBqQbhLQ5wmQEDuONS5cZVXaNUN0S4aHvUXr8wjdBcenwq1HY5kAtLj6NeEuLV8vBWVRdH7IfoHITlNgGgb8Gpw3Ihj3fIDj6jVC3kRo8WF+XeBdrytwQ1aJ+Mm9As4r/T7z1J8moBTxXBXNWckO01Aim0aEhgYO+IeOlAUUmzVGPblzSieVuitUTJNImxXN9xKXm7aDXz3hi+c9CvgNPjdjZ9H5x02xNsVuGblPhTAZu3uiuCce9+A9wDwmjX8GCA263hXFJEefLk3toFuZ+iaNfxwCJsV/BBfJuUOG+Tuh9wWubMQYQ2Rz9M6/rAW/RBW/LVA2eKUUEj4ajsSW7HMuQ5R2aQO9e6oqo7wJsC9t7Jf+OVwSxO02i34d1TjuY1w37uovkl9vV55OZiGQQ2D7sOgu/v1LWxe69TWiZ3zGLi+XLs7fhTS3ykfszubFZzGnBIsJy9P53OJlK+j7BclB7emM2E6nYa4scuNdpFjB/v7q9mlsyJN0blBodhp2Rh2zmClpohCS5StB30cWiyPsfemx+QgpBJD99ktp7yWL6xGkbDefo8Zn6G9lQ5bQXrAC+Whs18t223HfmqRexRX3P/igUsZtj0vR+sOzLmhRLXsKFA55uUe3UhMXVdGBCp8AiMfotrSSAVXf3zHXngfF6UC6/dxuUFWeD2qlQqtmZUKsEe1UsE1s9IcQQ8+gr6HioL7nkErUvc4hKLs7qdQAsbKodRxSy33I0gL582o7tCMXqiLER0DswZZMeIaEuCFNxuOhe/RwDSBa6nFoiEuMpNusVPdp2dLyuArPt5g5SvppnWfca1RLZnJ5RYjxqscErjFPiTgxDUNJ5cb7ByX+gnx/38FwUbCrS0h2IUsL6yG4GWswBdRRvB8oLyrkqCpH2jqB54HfE3k8yGRz6Z+oKkfaOoHXh6CTf1AUz/wfEBs1vGuKDb1A039wHOAsFnBD/FlmvqB+yO3Q/1AUy3QxKaagoGGRM+XRGXHdqsRWIixVpvd+pTI2u6vvv1ZZmSZsWyAPs1QxDR5wqROVSGoAsChvUG7x52TQ42C9Spy9uKLnyXre62tWCxs2bNqgOWChHiDDawZMc6c1EOFezFxH7vaDt1sU6VCVYnw7uBgtfjgT66kCM8e7KO1xu5eeSDQcxlyVxtWvTLpwt37rJ/LZWbM8cKUT++U6HFD2PIK8R/oHB9iTbPNTQMYrEt36aAP5TLUvDqvq/qZ1P+cU7Mym8eE5c+7S1NUyBRS98t2807LbIriDG2G4kOcgm30+tztnqwojPwYoc+MiK9op1l4odtn0IF2LGxZfS+cMo6B8/GF78Iqak3pR5rC+Gfmfd5pt5VJucqM8/H2JUmmhZV+HESPTr58xfFn5AItdM4v5xucEd8igxabzVDnufyKhEP5yvlR4TNj5X8jLcr3zrMoRQMlJp/W749//MlpfDD//neZHq1zh3XCayWDM8vZzJzTmk7Ry6z/ppMK3g74P94PDt/tvf/tzW97794fHuz13w7SvYP0n4dvB4eHfMAPYV1W42kMzD+xPLaFucj4E6l+SnzWRVcf28ZS/PEJ1T8lUptiWI9tZyHK82TKnxKp9ZGCp2Bu9Sz9uLrnHh7DqSH1wMyfjEdD1J6zo5MvK27Lwi3yMngaIK627XAbkrmTw3XabR4ut7hsU9nLKPgY4JGP/j27QyOuR7nfetPap0u5cZ4qfGoTVOXJuuX3ShY6N6ndnuZjNS/+YzWlY0CuVztXPFZwBVpNSq/mvJxQKJ8h6TmhM3uavEyAnBVqNpn0ucMfVk2ndLk87M8vEwibRJ9Ifz4BIR39X0BnwJXDLex6dVpO4Wu2qaeVX6PJqQkfhIEOQALXOJ7/ok7wirPKaZqUt4+jpb3gu9biK648+WhR4ihNMfdb217OuYcnR93jz5BAv/z2zsgIErL8lpxafhv7GhkVHKRwbQKK62FB7ncHolL69z/pFkeZ sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-simple-workflow.api.mdx b/docs/docs/reference/api/edit-simple-workflow.api.mdx index b5b2c2210b..affde2346a 100644 --- a/docs/docs/reference/api/edit-simple-workflow.api.mdx +++ b/docs/docs/reference/api/edit-simple-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Edit Simple Workflow" sidebar_label: "Edit Simple Workflow" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-testset.api.mdx b/docs/docs/reference/api/edit-testset.api.mdx index 396cfba004..c2ebdc9bce 100644 --- a/docs/docs/reference/api/edit-testset.api.mdx +++ b/docs/docs/reference/api/edit-testset.api.mdx @@ -5,7 +5,7 @@ description: "Update metadata on a testset artifact." sidebar_label: "Edit Testset" hide_title: true hide_table_of_contents: true -api: eJztWEtz2zgS/itdOCVVlOw4iWeHp/XESY13dteuRNlLrIpbRFPEBAQ4AGhHq9J/n2qAlCjJdhKX51G745MM9gtfP9FLEXDuRf5BTMgHT8GLaSYk+cKpJihrRC7eNxIDQU0BJQYEawAhJHJAF1SJRRhfmktzbvRifTLSdE0aSkVaenhisKYMBpIz8LqdZ1BqnPsM2I7s0rCWDEqrJbmngI6ApAo40wQVORoD21mgJygqNHPykaawda1CIAnoL42hG3B0rbyyxsO1Qrg66Oz1B+sPB4npaiwyYRtyyEadSZEL1vixYxCZaNBhTYEc47QUfBGRi+77RyVFJhTj1GCoRCYc/dIqR1LkwbWUCV9UVKPIlyIsGub0wSkzF5korasxiFy0bZQSVNBM0LkCzqRYraZJIvnwg5ULFrOroLAmkAn8CZtGqyLe5OBnz95bDvQ3ju8ZFPloTXfBfLnj78mOa3sXBgttDIUxTCqCKyWvQBkIFcHMygXUrQ9QYyiqeHa1QWhNxxAx3tuWJG8zknwFszgvI9D3w7XK1hSm1VowUD2Ab6LAiF8mYnxtS95Sv8p6OXb2MxVh3xFvooTdtLjQWFCVNJXW9RnRhz3zxKSYVMpDbSVpUB5U9JWyBrVeANVNWMCsDfCJmgDoAUGSZBeSBDYLvIVQYcgvzQjos/JBmTk4KsmRKSh65Soqy+G8SYI/DO2eXoGjGpWBa9RKZoBGsiwfXFuE1pFMtkKBBmYEKCXJmGu908qWyeBGhcq2AWaO8BMbESq6NAC+dc62RvLR6eTcj29xDWO85wWUUiWDL7bCYS8CZtZqQjOU2wUFn9wuRhTKFa1G9+SfOCP9D2/N6Mw0bXgqdv09jJwdYrEXHPeF3YSvuMoE17AHXnVwr+6EA2ZObltxPds+GSL0JTzetPp+OLKlUIHqr2NC53BxfzJusX4bov9iJFdZV3O/Cq89Gf9m3tVO9j5M1OlAxCoTj1ewYqX/Yh16LVW4lW7TET6sy/r0Vva3qZWI1YrlOPKNNT7F4tHh4X4veNcWBXlfthredsTiwR2nsG1i2gntjaWvIsVupX0GqhyMHDfowVFonSGZwSHYUJG7UZ7GkbPEVgeRHzJOmxZ3R/H/q/f81Xt+l95z3oZvaD6J+n+6+9wJyL3tZ4/rG/rPQ0D9czegwhEn60cMX1m9eHofBRXtuVvLqyQWTiJYaeZ/dCXpVdkrkaTpN1BymsR2Snq4ZotHrPc9WD8suprf4/WoWnq01lp6wB5VSw/XWgu/0B8aq++Y9w+Ykm4VsfPCrWh/gQGnljwYG0CZQrcykfCqgdvKl/Wu56M0W704Otofp/7DbTAOS/DaOesePktJCqg0/+qK5S6BtsXW128p9tPVTn0d9CibDIydxs9vW2tsaqf3OKdNwb2bNIIBE/7KERMfCkzeO75/ORTh80DMnideMZafvzwjMzbJ/I5uEGQbFyUP3Q3FaXLBfaHx42RysScwxUdNobK8beKrZWl5lIvNnmq5WZ+sRCY8uet+A9U6zaTYqOi99G8VQuPzgwNqx4W2rRzjnEzAMapEOGUZRetUWEQhJxdnP9HiR0JJTuQfpkOCdxx0KYy2ydbQY6N+Igaj24adtKGyTv03xUa3EKsSF9+Ww/ntZo31+jPWjaadNdRgFhfPS/zby/L4xejld8++G714eXw0mj0vi9FR8f3x8/L4GEs8FpsBezPkbSagddvexNt2Nq6Pv17jKoZnaYfReRKBhpOLsz0NW58407GIN+1Ri59FtuPCjedEJnh+1nHfiPXf1184LDkekprD8bPxIR811ocazUAFP/pgst5l7swg6+Lz/7Dk7UKXK8RBo1HFGhaRX3bpt34984srH2x4p5morA9MsVzO0NN7p1crPv6lJccJNc3ENTrFd4jpJZXn31LkJWpP9yD/5G1XmZ7CXUb2SWc4465Rt/yfyMQnWmxvomPlrvqcXnYEr5KuUayvGwF77YaLSeI4KQpqwr2000EJu3g/EZmYdftpfm+KXDi84bKLN8lWG68ea0o8WwqNZt5yg8hFEsl/vwIhWXrO +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-trace-tracing.api.mdx b/docs/docs/reference/api/edit-trace-tracing.api.mdx index 171b6ffb04..6f22f232f6 100644 --- a/docs/docs/reference/api/edit-trace-tracing.api.mdx +++ b/docs/docs/reference/api/edit-trace-tracing.api.mdx @@ -5,7 +5,7 @@ description: "Replace the spans of an existing trace." sidebar_label: "Edit Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-trace.api.mdx b/docs/docs/reference/api/edit-trace.api.mdx index f746cad8ac..69e3323de7 100644 --- a/docs/docs/reference/api/edit-trace.api.mdx +++ b/docs/docs/reference/api/edit-trace.api.mdx @@ -5,7 +5,7 @@ description: "Replace a trace's spans using the canonical `Trace` shape." sidebar_label: "Edit Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-webhook-subscription.api.mdx b/docs/docs/reference/api/edit-webhook-subscription.api.mdx index d6136bbcb1..88c0a032e0 100644 --- a/docs/docs/reference/api/edit-webhook-subscription.api.mdx +++ b/docs/docs/reference/api/edit-webhook-subscription.api.mdx @@ -5,7 +5,7 @@ description: "Edit Subscription" sidebar_label: "Edit Subscription" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/edit-workflow.api.mdx b/docs/docs/reference/api/edit-workflow.api.mdx index c3174d15d3..a7928f321c 100644 --- a/docs/docs/reference/api/edit-workflow.api.mdx +++ b/docs/docs/reference/api/edit-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Update artifact-level fields on a workflow." sidebar_label: "Edit Workflow" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-access-plans.api.mdx b/docs/docs/reference/api/fetch-access-plans.api.mdx index 8957ca1752..dbe39d7d7a 100644 --- a/docs/docs/reference/api/fetch-access-plans.api.mdx +++ b/docs/docs/reference/api/fetch-access-plans.api.mdx @@ -5,7 +5,7 @@ description: "Return the effective plan catalog: slug -> entitlement controls." sidebar_label: "Fetch Plans" hide_title: true hide_table_of_contents: true -api: eJztU9tu2zAM/RWBz2rS7dEPw4yh64oORdB0T23QsDJjqZMlT6K7ZUb+faCc9BL0E+YXS7yIPIeHIzC2GapbqI2hnGGloaFskuvZxQAVXBMPKSi2pGizIcPuiVTvMSiDjD62lcp+aNXJJ0WBHXvqKLAyMXCKPs/uwl24saSyxZ5U51KKKavfFlmt6/Ozq5v6vv7y5Wy5vF98r6+Wa4XGUM9Zq4eB1Wbwfqt6TJmau4ChUU/oXYNMzUzJs5sUA1NoVCJsslpvPLZ5rdXaxCEwpXJucWhJThiau7BmmyKzp7yW9E5ZSqQSsqWk2GIogE46ZGNdaBW26EIukDJj4DwDDbGnhELRRQMVbIiNvcdC4b2Qk0FDotzHkClDNcLH01P5veV2OZSMzeDV9T4YNJiCiCUc+947U+rMH7PkjJCNpQ6Lt2mcuNAvkvTDbqr1vp3TQBp42xNUEB8eyTDsjg0aygjL3KeG1FfBpiZ5qEXBtpNPQ0dso8BvSTJ7ZAsVzCca5gcaMqUnSqKxEYbkS0TvYKcPV8vc52o+p2FmfByaGbYUGGfopsCVvGGG5HhbHqkXF5e0/UbYUILqdvU6YCnkTCy8DRsPQLF3l7QFDQE7udcD25jc30IyaHAyGDtlCUgXNrGk73mpS3OqXlzA8aq8cckU0ZQpHioVN+gj2C9oQQN16MTJhN3nZ4/MSTicypzOPsxOxdTHzB2GVyWmWS32zL/pbnzR1f+dfn+n9wph+sOiXheE5DKscS/uW5jELWovJK802JhZPOP4gJl+JL/bifnXQEn0utLwhMnhg6jndrXTB3GJlH/SVoRR2AEJ9MOk0aO1F4k/b9v52Q3sdv8AMTIAJQ== +api: eJztU8Fu2zAM/RWBZzXpdvRhmFF0XdGhCJru1AYNIzOWOlnyJLpbZuTfB8pJ1xb9hPlii+Qz9R4fR2BsM1R3UBtDOcNKQ0PZJNeziwEquCEeUlBsSdF2S4bdE6neY1AGGX1sK5X90KqTT4oCO/bUUWBlYuAUfZ7dh/twa0lliz2pzqUUU1a/LLJa1xfn17f1Q312dr5cPiy+1dfLtUJjqOes1WZgtR2836keU6bmPmBo1BN61yBTM1Py222KgSk0KhE2Wa23Htu81mpt4hCYUvlucWhJvjA092HNNkVmT3kt8E5ZSqQSsqWk2GIohE46ZGNdaBW26EIulDJj4DwDDbGnhCLRZQMVbImNfcAi4YOIk0FDotzHkClDNcLH01N5vdZ2ORTEdvDq5lAMGkxhxFKOfe+dKX3mj1kwI2RjqcOSbRonKfSLJPdhN/V6P85pIA286wkqiJtHMgz7twENZYRl7tOF1BfhpiZ7qEXhtpdHQ0dso9BvSZA9soUK5pMM86MMmdITJfHYCEPypaJ3sNfHo2Xuq/ncR4PexsxTeiVIMyTHuwKtF5dXtPtK2FCC6m71smApkkzcX5eNR3rYuyvagYaAnZzrgW1M7k+RFjQ4GYedUELNhW0s8IMadUuBUdWLS3i7IK9SMjs0ZXbHTiUN+gXZXM3nWMIzdHPQQB06STJh9/k5I9MR5aY2p7MPs1MJ9TFzh+FFi2lCi4Per243/nPT/01+f5MPDmH6zeJZF0TkMqzxYOk7mCwtHi8irzSIUSUzjhvM9D35/V7CPwdK4teVhidMDjfinrvVXh/NJVb+QTsxRlEHpNAPk0ffLLtY/HnHLs5vYb//C3Pe/Lc= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-access-roles.api.mdx b/docs/docs/reference/api/fetch-access-roles.api.mdx index 1acb85213c..9f847d988a 100644 --- a/docs/docs/reference/api/fetch-access-roles.api.mdx +++ b/docs/docs/reference/api/fetch-access-roles.api.mdx @@ -5,7 +5,7 @@ description: "Return the effective role catalog per scope." sidebar_label: "Fetch Roles" hide_title: true hide_table_of_contents: true -api: eJztVMFuIzcM/RWBp7ZQx2mPPq0Pu22wlyDpnjJGhtHQHu1qJJXiOOs1DOxH9Av7JQU1juME6L2H+jKmSJF8j3w6gOC2wPIeVs5RKbC20FNx7LP4FGEJtyQTRyMDGdpsyInfkeEUyDgUDGlrMrEpLmVq2tjGO/1XDDKZLvEWo/+GmqqzpntK/KVkdKRG5vSZnHSNeY9uMBSF92bA0sZO02vIRSedNRh702Xi0ZfiUyxdY25erFqRa7PUt3FH/IjiR7PhNBqs4H52KQqnUKzx0YWp93FbgXUt/NRCZ5586B1ybzaJ29ilp0jcmb+//2UchkBcjAwoJhL1RpJhij1xzbCZQjAvvZngi7SxDGkKvaGvWXvXuHMFGWgsFHZUzA+FqI0dUVPYNYV45x2VxiUFIcSleZgzPFyC/7EBCykTV3ave1jChsQNDzPWB+WwgAWmklMsVGB5gF+vrvTzesJ3U72xmYK5PQWDBeWKomg45hy8q3UWn4veOUBxA41YvX3v1YXhhrUf8XMtLzSWfw8QnsiC7DPBEtKjrgIczwfIjPsL+xRgQbwEqms5d2o+KGgzb6+5raCP+rMwkgxJedmS3swoAyxhMfOzeOZH+SZWCRxg4lAjsoejfTYHkVyWiwVNjQtp6hvcUhRs0M+Ba83hJvayr0lWN9cfaf87YU8My/v1ZcCdsjbT8zrscAae/Ufag4WIo9qrSYbEJw2BBa8TG+ZbCtLHTarXT7ysanNmdXMNb5X8yqXjRVfH+1ypusG+gf2CFizQiF6dQji+O3t0TsrhXOaq+aW50qOciowYL0rMs7o9Mf+qu8PLwv3/5PyXn5zTngp9lUUO6KOOuq7M4SSxe5ix6+NTR722MKQi6jkcHrHQJw7Hox7/ORGratYWdsgeH3WH79dH+7ziKqgvtNf1dI6y6niHYZqV8uZVUqGdNf/b+z/gePwHSLd0EQ== +api: eJztVM2O4zYMfhWBp7ZQ7WmPPm0O+zPYy2CmPY2DmJGZWLuypFJyZlMjwD5En7BPUlDOZDIL9L6HzcWhSIr8PvLTDBn3CZpHWBlDKcFaQ0/JsI3ZBg8N3FOe2Ks8kKLdjky2B1IcHCmDGV3Yq0iskgmRqta3/kH+JYVMqgu8R2//Rrmq06p7Cvw5RTQkRuTwiUzuKvUWzaDIZz6qAVPrO7leQq466bRC36suEo82JRt86ip192KVilyapb71B+ItZjuqHYdRYQH3qwk+c3BJK+uNm3rr9wVY18IvLXTqybreIPdqF7j1XXjyxJ369+s/yqBzxEnlAbPyRL3KQTH5nrjcsJucUy+9KWdTbn0awuR6RV+i9C5xlwp5oDGRO1BSPyWi1ndEVWJTJeKDNZSqfrsZ0eOeeENUbZZLNtf4f65AQ4jEheDbHhrYUTbDZoG7ERoTaGBKMfhECZoZfr+5kc/rIT9MJWM3OXV/DgYNQhf5LOEYo7Om1Kk/JcmZIZmBRizevrfiQnfH0k+2Sy2baUz/H5B5Ig35GAkaCFvZBjhdDpAZj1f2OUBDttlR2cylU/VOQKtlgdV9AX2Sn4aR8hCElz1JZsQ8QAP1wk/9zI9QTiwqmGFiVyKihZN+NoecY1PXLhh0Q0h5ca8l00xs87Gkru5uP9LxA2FPDM3j+jrgQbhaSHkdNl/gRvuRjqDB4yj2aspD4LN4QIOVOQ1LlkCzfhdK+pmN1Z58RrW6u4VvJfzKJUNFU4b6XKm4QV+BTU1dYzmu0NaggUa04syE45uLR6YjzC1lbqrfqhs5iiHlEf1ViWVC92e+X3U3v6zZj7fmO39rzqua6Uuuo0PrZdpla+azth5hgS+vTpn2WoMoRjzzvMVEf7I7neT4r4lYhLPWcEC2uJU1flyf9POWi6Y+01E21BiKIuADumkRyzfPkWjtIvb3b/+A0+k/5txybg== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null @@ -44,7 +44,7 @@ Scopes are `organization`, `workspace`, `project`. Each entry has verbatim from access-controls, including the `"*"` wildcard for `owner` — callers that need to render the full permission list should expand the wildcard themselves (see -`ee.src.services.converters._expand_permissions`). +`ee.src.services.db_manager_ee._expand_permissions`). diff --git a/docs/docs/reference/api/fetch-annotation.api.mdx b/docs/docs/reference/api/fetch-annotation.api.mdx index 2a8f96b924..431fac8eee 100644 --- a/docs/docs/reference/api/fetch-annotation.api.mdx +++ b/docs/docs/reference/api/fetch-annotation.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Annotation" sidebar_label: "Fetch Annotation" hide_title: true hide_table_of_contents: true -api: eJztWktv2zgQ/ivGnFpATbLBnnxab9pus22RIHV7CYyAlsY2G4pUyWG2XkP/fTHU2684TnpZ6GRYmhe/eVEcroDE3MHwFkZaGxIkjXYwicBkaMO/ywSGMEOKF3eiJoEIMmFFioSWuVegRYowBLIixjuZQARSwxAyQQuIwOIPLy0mMCTrMQIXLzAVMFwBLTPmc2SlnkMEJEnxgzELGlwmkOdRLd1lQreE//Bolx3pM6FcR7zQy6tZMLCriIWWT7RXCvJJo/pLJnShecKyXWa0Q8fSzs/O+CdBF1uZBSCG8MXHMTo382pwUxJDBLHRhJqCDVmmZBxwO/3umGfVsjCzDDXJQkNsfMFUGic14RxtC5iLQBFBgjPhFcHwLI+g5ZnOoteEWxSEyZ2gfdBEMDM2ZRpIBOEbkinuxeuiEDsYEeQR+Cz5FUq+FmJLJQkq/AVK3hZiSyUVXNMlx9xheryXyUFg/bkMIdbg9aJaKrRqLRVgL6qlgqvWUuXncxMvaurIkaKa8hGBILJy6qlIgkaaSBLJKSPUdSdNDtBXpWXHhHTafTI1RqHQ4dF2XRBLG3sl7Kv3Xqm/ndFvrjxlnl5zwhdSzPQ7xhSESML0QC5hrVjuRWiNN4C+oXEX86iBNI/AWDmXels1R+1Tbi6xd2RSiGDhU8HdQ3gy0Ha9TDOFwWtXhbRWhavY8wjupU72KRLJwsT8/0EoblJKLHeo+ciS2koKVs77hdAa1T41hlQGEfyDU4jAJfe8okzu0HRRyusoy2RAPDTfo4KyHV2bcfpYvH0SU3wk4FqLWad+WrCMeZF5BCmS6DPwhTLwM4PJhV2UoPZQ7oOy1bREAZzFGVrUcQFTd6NUbCz37KQe0LqNzdbh3elbyc4tU/n50f2SefMIXq6jF/vtndjdVJhtEZJHBWx3D8JKoamH7zj4LD7ITXB6/B7Hj9CRwz7wjgWuz9znAtjn7rEIts5IevCeAV6fwy8BYp/Hx6LI391ekLE9dEdD1+fw8yHsM/g5e5lYOOyRexpye/haZ4E3zalDHoGS+v7A87+uA/qD9v/R2dShB+17IuxqjOqT1PfbhZfL6YOoD6InBlFpWHsUEErWNjHNFP62OJXunLFWxa5tVjO0flo9bRjrgXueM8Pv5+eb8/lvQskkUA/eWWvs8cP5BEnIMBfakVHKxJ23T4nNyTrqLcxNXMEEqZvvuzbxGZ0Tc2xcuJs0gDEY81tuoprDismrXqjLOIvpZ0vMhjMuGMuf9GhIqDCXY/NLuvaGoHZR4aHdULwtXLAvOj6Mx9cbAov46AbGe77UMhi1L7WkSAvDF17mSOGOCy1gCKfN9Qp3uqqKXc6jP7QP1Q0Yb1WgDZO96u+CKHPD01P0J7EyPjkRc9QkToQsCCcsI/ZW0jIIGV1ffsTlBxQJWhjeTtoEXzgsi0DrktXOEZn8iAxXeV9m5GlhrPy3Wl64NbMouPLg9Jlp+3wUjBuMri9hHazOK84fEYdwqTSF1xCtLbtZLQ9P05A9QCjSP+o37Ox6PwlnJ7+dnPGjzDjiUXGjYou7OibWKHA4nmZKyJAwwaBV6crb1k0ZrknDunNNIlgYR0yyWk2Fw69W5Tk/LodBtytIpBNT1bpndI/Lzq0k/vxgC4Jfw1fclHHdxrpmel2R4NVNmTSvB02D6C6p8rZetnVW5tRLCiVlUYXSqnw9imPMqMW4UQHZ+DoR/no3hjz/Dz50/+I= +api: eJztWktv2zgQ/ivGnFpAjbPFnnRab9pus22RIHF7CYxgLI0tNhSpklS2XkP/fTHUO37EcdLLQifD5Lz4zQyH4nANDpcWwhuYKKUdOqGVhVkAOiPj/53HEMKCXJTcYkMCAWRoMCVHhrnXoDAlCMEZjOhWxBCAUBBChi6BAAz9yIWhGEJncgrARgmlCOEa3CpjPuuMUEsIwAkneWDKgkbnMRRF0Ei3GaqO8B85mVVP+gKl7YlHtbpYeAP7ilhoNaJyKaGYtaqvM1Sl5hnLtplWlixLe3t6yj8x2ciIzAMRwnUeRWTtIpejq4oYAoi0cqSctyHLpIg8buPvlnnWHQszw1A7UWqIdF4yVcYJ5WhJpgPMmacIIKYF5tJBeFoE0PFMb9EPhBtCR/Etun3QBLDQJmUaiNHRGydS2ovXWSl2NHFQBJBn8a9Q8rUUWymJSdIvUPKuFFspqeGarzjmDtOT5yI+CKw/Vz7EWrxeVEuNVqOlBuxFtdRwNVrq/Hxu4gXtPnKkqHb7CACdM2KeuzIJWmkYx4JTBuVlL00O0FenZc+EdN4fmWstCZUf2q4LImGiXKJ59SGX8m+r1ZuL3GW5e80JX0rR8+8UOS9EOEoP5EJjcLUXoQe8HvQNjbuYJy2kRQDaiKVQ23ZzUnnKxSXKrdMpBJDkKXL1wNxp6LpepJkk77WLUlpnh6vZiwDuhIr3KcI40RH/v0fJRUriaoeaTyypq6Rk5bxPUCmS+9RoJzMI4B+aQwA2vuMVZWKHprNKXk9ZJjzivvgeFZTd6NqM08fi7TPO6ZGA6yzmIfXTgmXKiywCSMnhkIEvlIFfGEze2LECdYByH5SdooUlcIYWZEhFJUz9g1J5sNxzkronYzcOW4dXp28VO5dMmS+PrpfMWwTwchW9PG/vxO6qxmyLkCIoYbu9RyNQuQG+4+AzdC82wRnwexw/R9ZZGgLvWOCGzH0ugEPuHotg545kAO8Z4A05/BIgDnl8LIr83Z2j02aA7mjohhx+PoRDBj/nLBOhpQG5pyG3h69zF3jV3joUAUih7g68/+s7YLho/x/dTR160b4nwi6mJD8LdbddeLWcIYiGIHpiEFWGdVsBfsvaJqbtwt+Ut9K9O9Z6s+ua1Tatn7aftoxNw70omOH3t283+/PfUIrYU4/eG6PN8c35mBwK3xfakVFSR73Zp8Tm7CHqHcx1VMMEqV3uezbxhazFJbUu3E3qwRhNeZaLqOKwYvK6FqoqziL3syNmwxlnjOVP92hISN+XY/Mruu6BoHFR6aHdULwrXbAvOj5Op5cbAsv46AfGB37UMpp0H7Wk5BLND16W5PwbF5dACOP2eYUdr+vNruDWH5n7+gVMbqSn9Z29+m/iXBaOx1JHKBNtXTk9Y84oN8KtPOvk8vwTrT4SxmQgvJl1Ca45GMvw6pM1LsFMfCIGqXolM8ldoo34t16UfyuTlFyFd/VCdz09WZJyOJpcnsNDiHpTnDUY+SCpNflpCDqLteF4jH74BMWYW6apzxlwhOkfzQy7uDlFwunJbyenPJRp67hB3KrY4qSeiQ0KHITjTKLwaeINWlcOvOm8j+GdKGzq1SwA9gqTrNdztPTVyKLg4aoFdLOGWFicy87rojta9d4i8UcHW+D96r/d5ozrNtYHpjf7ELy6qlLl9agtC/0l1d5Wq67O2pxmSX4jSepQWlfTkyiizHUYN/Y9Nr4J/7/eT6Eo/gM6efyD sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-application-catalog-preset.api.mdx b/docs/docs/reference/api/fetch-application-catalog-preset.api.mdx index 47053accba..aa398b65a8 100644 --- a/docs/docs/reference/api/fetch-application-catalog-preset.api.mdx +++ b/docs/docs/reference/api/fetch-application-catalog-preset.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one preset by key within a template." sidebar_label: "Fetch Application Catalog Preset" hide_title: true hide_table_of_contents: true -api: eJztWFFv2zYQ/ivEvawFNDst9uSnGWm7Zt1Ww0m7h9RIGOlksaVIlaScuob++3AUZVO2o7RpN2BAnxKTd9+dvjseebcBx5cWJpcwrSopUu6EVhYWCWRoUyMq+g0TeIEuLZhWyCqDFh27WbMPuGa3whVCMc4clpXkDkfv1Ds1R1cbZZkrOvmfLLvOuOPXzGqWSoHKWZZyxWqLTDjGgzBfS80zlmvD+DuVC2MdM7gSVmjFbgtULDXInVBLxhXjO59ZbnQZ+wEJ6AqN3zzLYAI5fcJVpHKVcselXl61LkICFTe8RIeGGNmA4iXCBDrIqw+4hgQE8VFxV0ACBj/WwmAGE2dqTMCmBZYcJhtw64p0rTNCLSEBJ5ykhYsAxl7hGpom2VppnfguNmZtiFoLC0KwlVYWLSk9PTmhP/3wntdpitbmtWTzIAwJpFo5VI7EI9rG7y3pbCJHKkNUO9FaSHXdKgX/hHK4RBM5eOol9nPs+sl1G+Jc1ypL2PXJNdOuQHMrrI9nhjmvpYPJSZMEvrxvav069wHr+9ESG+/3CSPyw4qqpQSiqvPwL9Jt9jx8GNSzCKJJgAI8EDsftARS7nCpTfiSnVnhsLSH+k3SLXBj+HrQn9MddJNALv35v5tFYa+4SQuxogzcot5oLZGryPEzy6adXBSqnEuLTUIwBlNdlqiy+5HmkehxsCgh73UrEj0Ohisua+60uQ/q+VbwOJBVoqrQ3QdzHsQOQHZx1DfvMXWR2t/afMilvj1ti9YLH7fDOFPOcseHIlob8dBcfmMEJU1t5MMRJCEUyDNfZmMUnmWCosTlrOfwkJ3+p63Q2G84qm+DepOAlfXyoTDnpEsJkQ0hJJBrU3IHE6hrkQ0inmUwlBtzzNGgSrFNgL7YEO7LEIYmAVMrJ4YLZgKo6pIeC9XaFf40kUBb3iCB93zFw4/FkNV5MEU0t+IPJbrVbrpLcbCQxZf7t2bd3s3W87G86a90FYCWjtuCVJi0ltw8elFL+bvV6ufXtatq9xiOBTPcAV+idf9tsKcLX5U+sx2llO6qqt0Pcr8XuWctnU0C2mv/YPZ7Mfs68DlUUgn8PBSVo7fsj3Lyr5aTL3gJzUNf+IzeO0didARi10td+od4ZDx6JYYnVttGHfW437gE+a41zjAXysdlNPgdd1mMOrC9Lk2opdx24F1Xx1CtUOoKyRrZ++Xp08MO7y2XIms75efG+AfsA9u7DB0X/v23bUb6AlKnvd2vyfzFfiezo+sPHd7wTQKlXQ41UX+itXyJu+y7W9STwS5ot7vCvHhchH1D5j5FMAexPCUuP7mj8Y6Tjrhp3Q9y8etzG6I2QndT8awNwVByvby4mB0AtvlRois0TUSWYejhCpjAOMoBOw6jkXE3+7DjTTwGacZtEtrxZje3aCABi2bVjU98l0C4woe6/Vk4V9nJeIz1KJW6zkZ8icrxERet4IIw0toIt/Yg09nZK1y371SYXC5iAV+f25zri23jxCvxyg9UwpBlWrtCG/G5awb9nKXtRTybQuU6Dv/UO8ems7ODw9jboqPEU7ebOoRtSPY+e/e19Jou/UECh7z8dbtDcd/2MXAyejI6oaVKW1dyFZloZ3JRFWFdIZp1A6298cX2xP8/53khqHTQxpXkQkW9aJvFl3Els+DnKMQIKXeZDAlM9kZ6IZlpJxrDLRIotHWEutnccItvjGwaWv5Yo6H0XCSw4kbwG0qWyw1kwtL/WWjnB/h/NA9F4TG768O6FFbkIc0d6BeEAVJ/KEnH6z+0HXHkC3bRnc5NEJimKfqOsFM9uF/oGG/r0G/PL6Bp/gHQXM3R +api: eJztWN9v2zYQ/leIe1kLaHFa7MlPM9J2zbqtRpJ2D6mRMNLJYkuRKkk5dQ3978ORlE3/iNKm3YABfUpM3n13+u545N0KHJ9bGF/CpGmkyLkTWlmYZVCgzY1o6DeM4QW6vGJaIWsMWnTsZsk+4JLdClcJxThzWDeSOzx6p96pM3StUZa5qpf/ybLrgjt+zaxmuRSonGU5V6y1yIRjPArzpdS8YKU2jL9TpTDWMYMLYYVW7LZCxXKD3Ak1Z1wxvvGZlUbXqR+QgW7Q+M3TAsZQ0idcJSpXOXdc6vlVcBEyaLjhNTo0xMgKFK8RxtBDXn3AJWQgiI+GuwoyMPixFQYLGDvTYgY2r7DmMF6BWzaka50Rag4ZOOEkLVxEMPYKl9B12dpKcOK72JiGEAULM0KwjVYWLSk9PT6mP9vhPW/zHK0tW8nOojBkkGvlUDkST2gbvbeks0ocaQxR7USwkOs2KEX/hHI4R5M4eOIldnPs+sl1CHGpW1Vk7Pr4mmlXobkV1sezwJK30sH4uMsiX943tXxd+oBt+xGITfe3CSPy44pqpQSiqvfwL9Ltdjx8GNSzBKLLgAI8EDsftAxy7nCuTfySjVnhsLb7+l3WL3Bj+HLQn5MNdJdBKf35v5tFYa+4ySuxoAxco95oLZGrxPFTyya9XBKqkkuLXUYwBnNd16iK+5HOEtHDYElC3utWInoYDBdcttxpcx/U87XgYSCrRNOguw/mPIrtgWziqG/eY+4Stb+1+VBKfXsSitYLH7f9OFPOcseHItoa8dBcfmMEJU1r5MMRJCFUyAtfZlMUXhSCosTldMvhITvbn7ZAY7/hqL6N6l0GVrbzh8Kcky4lRDGEkEGpTc0djKFtRTGIeFrAUG6cYYkGVY4hAbbFhnBfxjB0GZhWOTFcMDNA1db0WGiWrvKniQRCeYMM3vMFjz9mQ1bPoimiOYg/lOig3fWX4mAhSy/3b826nZtty8f6ZnulrwC0dNgW5MLkreTm0YtWyt+tVj+/bl3TusdwKJjxDvgSrftvgx1d+Kr0mW4opXRXTet+kPu9yD0NdHYZaK/9g9nvxezryOdQSSXw81hUDt6yP8rJv1pOvuAldBb7wmf03jkQowMQm17q0j/EE+PJKzE+sUIbddDj7cYlyvetcYGlUD4uR4PfcZfFpAPb6dKEmst1B953dQzVAqVukKyRvV+ePt3v8N5yKYrQKT83xj9gH9jeFei48O+/dTOyLSB1vrX7NZk/2+1kNnT9oeMbvsugtvOhJupPtJbPcZN9d4t6MtgF7fZXmBdPi7BvyNynBGYvlifE5Sd3MN5p0hE3wf0ol74+1yEKEbqbimchBEPJ9fLiYroHGPKjRldpmojM49DDVTCGUZIDdhRHI6N+9mFHq3QM0o1CEtrRajO36CADi2bRj098l0C4woc6/Kyca8ajkdQ5l5W2LmzPSDNvjXBLrzqZnr7CZXidwvhylgr4qhwybVtsHR3eiFd+jBJHK5PWVdqIz30L6KcroQPxHApV6jTokzkqx9lkerp3BLe26ADx3G1mDXEbsuRj7Xg04n75iIsRvaFrf3zAIa9/Xe9QtNfdCxwfPTk6pqVGW1dzlZgIk7ikdrC+/Ez7MdbO0GJ9zv+fU7wYVDpeo0ZyoZIONOTuZVq/LPjpCTFCyn3+QgbjnUFeTGHaSYZvswwoLwl1tbrhFt8Y2XW0/LFFQ+k5y2DBjeA3lCyXKyiEpf+L2MQP8P/oLJaCx+yuD+tTWJGHNG2gXxDHRtujSDpU/6HthCNfpqv+dK6iwCTP0feBvererULHeF19fnt+AV33DwLRynI= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-application-catalog-template.api.mdx b/docs/docs/reference/api/fetch-application-catalog-template.api.mdx index 467bf96097..1ef6c20bb8 100644 --- a/docs/docs/reference/api/fetch-application-catalog-template.api.mdx +++ b/docs/docs/reference/api/fetch-application-catalog-template.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one application template by key." sidebar_label: "Fetch Application Catalog Template" hide_title: true hide_table_of_contents: true -api: eJztWEtz2zYQ/iuYPSUzrORketKpGsdunLSxx4/0YGssmFyKiEGAAUDFqob/vbMgKYKSTCdOevNJIrD77WJfwO4aHF9YmFzDtCikiLkTWlmYRZCgjY0o6BsmcIwuzphWyHhHxxzmheQO2d2K3eNqdKNu1JVF5jJhmdNMKFtg7JjLkOEDjx2bl0bMIzZPuOPziHGVsA8Xp5/YRZxhzi1LtWH8RnXAmGqDLDbInVALxlVPgdTonAk3YvOW4/YeV3MW6xztjfLbJHzuV1OBMmE6ZbzT3KArjcKEjkCUUljHUCWFFsrdqFekED7wvJDI5rGmX5JMZ4gz7ug30/p+/noEEegCjVfsJIEJpGSz20Dd25g7LvXitpUOERTc8BwdGnLCGhTPESYQngYiEOSCgrsMIjD4tRQGE5g4U2IE1lsOJmtwq4J4rTNCLSACJ5ykhcv2rB9xBVU1IwxbaGXREtvbgwP66fv7ooxjtDYtJTtviCGCWCuHyhF5cKzxF0s860CVwpApnKglxLqsmRoNhXK4QBOoeOgptoNu/mbOvmWoWKpLlURsfjBn2mVovgmLI0+e8lI6mBxU0cZmXju1Ok29Qfua1OYN9/tGq6LNiiqlBDJWq+Mn4q22dHwe1LsAooqAnDzgP++2CGLucKFNc5JOrHCY211+ski9wI3hq0F9DjvoKoJU+pLwuBWFveUmzsSSonCDeqe1RK4CxU8sm7Z0gbNSLi1WEcEYjHWeo0qeRjoPSPeDBSH5pFoB6X4wXHJZcqfNU1BHG8L9QFaJokD3FMxFQ7YD0vlR333B2AVs/2hzn0r97bAuK8feb7t+ppjljg95tDTiubF8ZQQFTWnk8xEkIWTIE18GQxSeJIK8xOVZT+EhOf2jLdHYn0jVzw17FYGV5eK5MBfESwGRDCFEkGqTcwcTKEuRDCKeJDAUG+eYokEVYx0AfbIh3PeNG6oITKmcGC6YEaAqc3o/FCuX+Wwigrq8QQRf+JI3H7MhqeeNKDJzTf5cQ9fcVXsxDhay8PL92ajbutt6OuZ3/ZW2AtDSflkQCxOXkptXx6WUH6xWv52Wrijda9jnzOYO+B6up2+DLV74ofA560xK4a6K0r0Y91cZ96Q2ZxWB9twvlv1Vlj1t7DlUUgm86VP237Iv5eR/LSff8RI6x6Wg6/odvXf2+GgPRNdPXfuHeCA8eCU2T6y2ldqrc795aTi6TjPBVCjvm9HgWR6XGnRiW92aUAuJYVNbEzJUS5S6QJJIMn9/+3a31/vMpUjqfvrIGP+QfWajl6Djwr8DN01Jn0DquLf7Ixkw2+5oOpP9pZu3fBVBbhdDzdTfaC1fYBeFj5N6Y7BL2m2vMk8eFmPfmLmHAGbHn4dkywe31+dh8JFtavUbuvAVunFR7aHHTfGudsFQgL2/vDzbAazjI0eXaZpdLHwr4kcOExgHMWDHzRBj3EabHa/DcUUFEVg0y3ai4RsDghDeq/Vn5lxhJ+MxlqNY6jIZ8QUqx0dc1IQzwohLI9zKg0zPTj7iqn6awuR6FhL4klyHV59s4xJeiI9+jtJMV6aly7QR/7b9nx+v1O2HN5xQqQ49PfXKsenZyU7m9bYoa3jsukFDsw3R1rG709IDOvc5Aw55/sdmh1y8aV3gYPRmdEBLhbYu5yoQUU/mgqLB2spz2U2ZtmYWm/R+met911yviSNK43EhuVBBx1vnyHVYJy34aQ05Abq5FK1OeoO9WQSZto641+s7bvHKyKqi5a8lGor8WQRLbgS/ozi8XkMiLP1PmuHAgGNfnTel5TV77ABtdihKDZpi0Bc046j+CNIX36xNv3VDMo1j9F1ey7xzV1CebmrKn0eXUFX/AYKUyjI= +api: eJztWEtz2zYQ/iuYPSUzqORketKpHidpnLSxx4/0YGssmFyKiEGAAUDFqob/vbMgKYGSTCdOevNJIrAv7Le7wO4KvJg7mFzBYVkqmQgvjXYw5ZCiS6ws6Rsm8A59kjOjkYkNHfNYlEp4ZLdLdofL0bW+1pcOmc+lY94wqV2JiWc+R4b3IvFsVlk542yWCi9mnAmdsg/nJ5/YeZJjIRzLjGXiWm8EY2YsssSi8FLPmdA9AzJrCib9iM06jps7XM5YYgp01zpsk/JZWM0kqpSZjImN5RZ9ZTWmdASiVNJ5hjotjdT+Wr8gg/BeFKVCNksM/ZJmOkOSC0+/uTF3s5cj4GBKtMGw4xQmkJHPbiJzbxLhhTLzm047cCiFFQV6tATCCrQoECYQnwY4SIKgFD4HDha/VtJiChNvK+TggudgsgK/LInXeSv1HDh46RUtXHRn/YhLqOspyXCl0Q4dsb0+OKCfPt7nVZKgc1ml2FlLDBwSoz1qT+TRscZfHPGsIlNKS67wstGQmKphai2U2uMcbWTiUaDYDrrZqxn7lqNmmal0ytnsYMaMz9F+kw5HgTwTlfIwOaj52mfBOr08yYJD+5Y07o33+06r+XpFV0oBOauz8RPx1ls2Pk3Um0hEzYFAHsAvwMYhER7nxrYn2aiVHgu3y08eaRaEtWI5aM/RRnTNIVOhJDzsReluhE1yuaAoXEu9NUah0JHhx44ddnQRWJlQDmtOYiwmpihQp49LOotI9wuLQvJRsyLS/cJwIVQlvLGPiXq7JtwvyGlZlugfE3Peku0I2eBobr9g4iO2f4y9y5T5dtSUlXcBt12cKWaFF0OIVlY+NZYvraSgqax6ugRFEnIUaSiDsRSRppJQEuq0Z/CQnv7RFmjdT6Tq55a95uBUNX+qmHPipYBIhyRwyIwthIcJVJVMByUepzAUG2eYoUWdYBMAfbIhue9bGGoOttJeDhdMDqirgt4P5dLnIZuIoClvwOGLWIj2Yzqk9axVRW5uyJ/q6Ia77i7GwUIWX74/G3Vbd1vPxuK2v9JVAFrarwsSaZNKCfviXaXUB2f0byeVLyv/EvaB2d4B38P1+G2wxQs/FD6nG5dSuOuy8s/O/VXOPW7cWXMwgfvZs7/KsyetP4dKKglv+5T9t+xzOflfy8l3vITOcCHpun5D7509GO0RsemnrsJDPFIevRLbJ1bXSu21ud+8tBybTjPFTOqAzWjwLA9rjTqxrW5N6rnCuKltCBnqBSpTImkknb+/fr3b630WSqZNP/3W2vCQfWKjl6IXMrwD101Jn0CZpLf7Ixkw3e5oNi77y7Rv+ZpD4eZDzdTf6JyY4yYKHyYNzmAXtNtdZYE8LsahMfP3kZgdPI/Il/d+L+Zx8JFvGvNbuvgVuoaoQehhV7xpIBgKsPcXF6c7Apv4KNDnhmYX89CKhJHDBMZRDLhxO8QYd9Hmxqt4XFEDB4d20U00QmNAImRAtfnMvS8n47EyiVC5cb7ZnhJnUlnpl4H18PT4Iy6bBylMrqYxQSjETVD1ydZAiFJ+DNOTdqZyWPncWPlv1/WFoUrTdAR3SZ2ZGN/DOWov2OHp8U6+9bYoV0TiN+OFdht4dFg3GY9FWB4JOaZncxEyBTyK4o/1DgG7bljgYPRqdEBLpXG+EDpS0czjolLBunpzsZktbU0q1kn9PM37rmleG0eUvONSCamjPrfJjKu4OjoIMxoCATbTKFqd9MZ5Uw4U8sS9Wt0Kh5dW1TUtf63QUuRPOSyEleKW4vBqBal09D9tRwIDwL44awvKS/bQAbrs0JQaNLugL2iHUP3BYyi5eZd+q5bkMEkw9HYd884NQXm6riR/vr2Auv4P9hvG0w== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-application.api.mdx b/docs/docs/reference/api/fetch-application.api.mdx index 2641107ec7..71e3c9c3cb 100644 --- a/docs/docs/reference/api/fetch-application.api.mdx +++ b/docs/docs/reference/api/fetch-application.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one application artifact by ID." sidebar_label: "Fetch Application" hide_title: true hide_table_of_contents: true -api: eJzdV9ty2zYQ/RXMPiUzsORk+qROZ6r6krhpG4+t9MXWWBC5lJBCAIOLE1XDf+8sSMogJV/icV76JJFcnF2cPQvsbsCLhYPRFYzLUslMeGm0gymHHF1mZUnPMIJT9NmSGY1M3NkxYb0sRObZfM3OjgfX+lpfoA9Wu+2nA4W3qFghUeWOGa3WAzYxbIGe+SWyLFiL2rNbYaXQnl9ri7fSSaM5Ezpns1x4MWNSM8Gc1AuFLBNKcRYcXuvZu5MJGzq5KhUOk8DccJM83ci8mg2AgynRxjdnOYygoC3dJHbAoRRWrNCjJUo2oMUKYQRdLOAgiZJS+CVwsPglSIs5jLwNyMFlS1wJGG3Ar0ta7byVegEcCmNXwsMIQogoXnpFBgnz7CyHqpoSqiuNdugI6O3hIf10M3IZsgydK4JiF40xcMiM9qg9mSdRDz87WrNJgistseFl7SEzoV7UxCy1xwXaJMijaNGXxezNjH1doo65TJXxVThWmKBzzmaHM2b8Eu1X6XAQIQoRlIfRYcXTKGPQev2xiNx3AyyMytES+x2jhymu+NZCB6WAiG33cxoBI98cChWL4H730t30Am1w58YoFDoh6syxcUdT2+0WQjmsOIHhrVBBeGMfgzrZGu4HclqWJfrHYC4bsx2QirfrzPwzZn6/LMdNMZ9GnvoiSPUbmWQHrEvYLxMb8OdaBawJ0FEJk26kZZrSplgTm2NBK3SO4TdCkF6tmUM/2JNPCn8ndSLPJXkV6ryTxB3ZtFQluI2S6M1+GMikzYIS9tUfYo7qd2f0wcfgy+BfQ5/LVG99a9hh/iG1TmiTFYcVevHMzSY76xV5x/Fq3n2TcvQYI6dBPUII34D0uHriKmGtWD9cxd2130fqn0RmxZtT/kmU7WD8RWurXkU8D+o4gag4ZBaFx/xG+CceebnweOBljOd+L0c1LBtHskKZ/wgnn2rYxkmOCn+Ak+MatnHS0jVfv+Al0ZL127q5KFq+XtRLy9bWS0vYi3pp6dp6cSosnqvVS1pLN9CLhRcbnyddRnthujfSZLm/T+XMWDajRTMmC6aNr5uUwVN9J51WrxuLvelB6rRt4RjqW1SmRPJCfn56+3a3nftbKJnXC0+sjff9M3u5HL2QKnYt9VHbN1Am63z9nqtiWvVO5+SGM9v8wMot9nXAdyevc2KBd8f1/aaRDDahr6Q3Tac8mbey0c2xn/lvCcxODo+Iy29+b57vOviryE0dfmOXSPQuRXWG7qfiuE7BQ6J6P5mc7wDW+lihXxqaUBaxY4tzxggenm+Ag0N72w4uwap6iYxZrB+X3pduNBxiGGTKhHwgFqi9GAhZG04JIwtW+nUEGZ+ffcD1exQ5WhhdTVODSxJfLaeu2TYFopQfkEhphqhx8Etj5b9tWxxnqGW9qoqpLUya2XEMjo3Pz3YbzvQTVYnIoihaT/Ez8N6273YLHHAVawQ8itWv2y+UUuKwdnM4eDM4pFelcX4ldOKiHof7fX6nBdhW7/9jdm6ySkU0LJWQscwjwZtGoVfpKUVTwqg3N085LI3zZLnZzIXDT1ZVFb3+EtCS5qYc4mbmpICrDeTS0f+8mVYe4PjVRVPEr9l9wba61CRKGqvoCTj8g+vdGT8edMtW+pvGaJxlWPpk+c65TDWyrd93JxOoqv8Az/T/nA== +api: eJzdV0tz2zYQ/iuYPSUzsORkemKnM1X9SNy0jcdWerE1FkQuRaQgwACgE1XD/95ZkJRBSX7E41x6kgjsC99+C+yuwYulg+QKJlWlZCq8NNrBjEOGLrWyom9I4BR9WjCjkYk7OSasl7lIPVus2Nnx6Fpf6wv0tdVus3Wg8BYVyyWqzDGj1WrEpoYt0TNfIEtra1F7diusFNrza23xVjppNGdCZ2yeCS/mTGommJN6qZClQinOaofXev7uZMrGTpaVwnEUmBuvo68bmTXzEXAwFdqwcpZBAjkd6SaSAw6VsKJEj5YgWYMWJUICQ1vAQRIklfAFcLD4pZYWM0i8rZGDSwssBSRr8KuKtJ23Ui+BQ25sKTwkUNfBipdekUCEPDvLoGlmZNVVRjt0ZOjt4SH9DDNyWacpOpfXil10wsAhNdqj9iQeRT3+7EhnHQVXWULDy9ZDaupWqYtZao9LtFGQR0FimxbzN3P2tUAdchkz46twLDe1zjibH86Z8QXar9LhKJjIRa08JIcNj6MMQevVxzxgPwwwNypDS+gPhB6GuOEbCV0rBQRsf57TYDDgzSFXoQjudy/dzVagnd2FMQqFjoA6c2wy4NTmuLlQDhtOxvBWqFp4Yx8zdbIR3G/IaVlV6B8zc9mJ7RhpeK9nFp8x9ftpOemK+TTgtE2CmL8BSXbAhoD9MrU1/tyygHUBOiph4o20TFPaFOtic6zWCp1j+I0sSK9WzKEf7cknhb+TOpFlkrwKdT5I4g5teqgiux2TaGW/GUilTWsl7Ks/xALV787og4+1r2r/GraxjPm2LQ07yD/E1ikdsuFQohfPPGx0sq0iHzguF8OVGKPHEDmt1SOA8DVIj+UTtYS1YvVwFQ91vw/UPwnMhne3/JMg27HxF+k2WxXxPFPHkYmGQ2pReMxuhH/ilZcJjwdehnju93LUmmWTAFZdZT/CyafWbOckQ4U/wMlxa7Zz0sO1WL3gI9GD9duqeyh6vF7US4/WxksP2It66eHaeHGqXj6Xq5ekSy/Qi4UXGp8nPUZ7zQxfpGmxv0/lzFg2J6U5kznTxrdNyuipvqNOa6sbC73pQey0b+EY6ltUpkLyQn5+evt2t537WyiZtYon1ob3/pm9XIZeSBW6lvaq3RZQJh3sfs9TMWu2bufohTOb/EDplvs64Lub1zmxxLvr+n7RAAab0i7xTdMtT+I9bXR37af+W2RmJ4dHhOU3vzfPdx38VcCmDb+Tiyh6l6I2Q/dDcdym4CFSvZ9Oz3cMtvwo0ReGJpRl6NjCnJHAw/MNcHBob/vBpbaqVZEhi+1n4X2VjMfKpEIVxvl2e0aaaW2lXwXVyfnZB1y9R5GhheRqFgtcEuVaEg3FNsCLSn5AgqIbnSa1L4yV//bNcJicilarCQnNTZzPyRK1F2xyfrbbZsZbVBsiDVToPYVt4NFhXTIei7A8EnIMHLAMlQEeRfnrZocSSci1bg5Hb0aHtFQZ50uhIxftELzd3Q8e/k3N/j8m5i6rVDrjSgkZijsAvO54eRXfTTQbJFvT8owDkY0k1+uFcPjJqqah5S81WuLcjEM4zIIYcLWGTDr6n3UzygMYv7roSvc1uy/YnpeaSEnDFH0Bh39wtTvZh+ut6Km/7oQmaYqVj9R3bmOqkU3VvjuZQtP8BxME/D0= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-billing-catalog.api.mdx b/docs/docs/reference/api/fetch-billing-catalog.api.mdx index 55010c262c..37afae7a84 100644 --- a/docs/docs/reference/api/fetch-billing-catalog.api.mdx +++ b/docs/docs/reference/api/fetch-billing-catalog.api.mdx @@ -5,7 +5,7 @@ description: "Return the effective billing catalog with pricing merged in." sidebar_label: "Fetch Catalog" hide_title: true hide_table_of_contents: true -api: eJztVM1u2zAMfhWBpw1Qk2zHnJYWXRa0KIK2OyVBzMiMrdaWPIlOlxl5jj3QXmyg7aRNb7vPF1v8Efl9/OgGGLMI4wVc2qKwLoOVhpSiCbZi6x2M4Z64Dk5xToq2WzJsd6Q2XbQyyFj4TL1YzlUVrBFjSSGjVFk3WLqlu0aTK3Ic9spgCJaiSthyQYlWyZtScqwKbN+8r1r3lpDrQDHRS4cuVR9ecnLKeLe1WR0o/ahQJVKWErUpvHlW0dfBUKq2wZdtzyWyya3Lli6ZTK/vHifry9nt7exuup7fz65md9Oka26g5oEunrx1AgF33qZRoTKFJccX0aa0dEe0f36fY1WbvYpFnQ1Ag68ooOCZpTCGLbHJ1z1b6z4fNASKlXeRIowb+Dwayeuc9ofaGIpxWxfqvg8GDcY7JscSjlVVWNOWGj5FyWkgmpxKlC/LVLaXY5paicFiHqQ3tlKUQ00ahGYYg988kWE4nAwYAu5BQzumVgJdA+qrwFG9VNRVD+cgj4aSOPcCOiMGDRVyDmMY9uCHr+AjhR0FUV0DdSgkCCsLB3085sxVHA+HVA9M4et0gBk5xgHaLnAld5g6WN63l0zmsxvafyNMKcB4sXob8CCUdDyfhzUntJW9IYHrsJTzpObcB/urpRY0WBlH3mUJTuu2vk3v2Zm0zanJfAbvd+fMJbND087uWKl1g34H+xUtaKASrTiZsPxy8siwhMOuzGjwaTASU+Ujl+jelOgmdnXi/qy/5lVP/9f839a81w7TTx5WBVon9LdjbHrlL6BnT0bf87/SkPvI4myaDUb6HorDQcw/agoi5pWGHQaLG5HWYnXQR+WJzp9pL6oxhirZsB0WdSfgd38C0f9pG6fXj3A4/AWETg/Z +api: eJztU81u2zAMfhWBpw1Q425Hn5YWXRe0KIK2OzVBw8iMrVaWPIlOlxl5jj3QXmyg7WbNbrvPF1n8Efl9/NgBY5kgf4Az65z1JSw1FJRMtA3b4CGHW+I2esUVKdpsyLDdkloP0cogowulerFcqSZaI8aaYkmFsn6y8At/gaZS5DnulMEYLSW1YsuOVlqt3pSSa+OwP3nX9O4NIbeR0kovPPpCvXupyCsT/MaWbaTivUK1krK0UmsXzLNKoY2GCrWJoe57rpFNZX258Kvp5cXN/fTxbHZ9Pbu5fJzfzs5nN5erobmJmkc6eQrWCwTcBlskhco4S55Pki1o4V/R/vp5jFWtdyq5tpyAhtBQRMEzKyCHDbGpHke2Hsd80BApNcEnSpB38PH0VI5j2u9aYyilTevU7RgMGkzwTJ4lHJvGWdOXyp6S5HSQTEU1yp9lqvvHsSisxKCbR+mNrRTl2JIGoRlyCOsnMgz7gwFjxB1o6MfUS2BoQH0WOGqUijof4ezl01ATV0FAl8SgoUGuIIdsBJ/9AZ8obimK6jpoo5MgbCzs9eu1Ym7yLHPBoKtC4sG9lEzTRsu7PnU6n13R7gthQRHyh+XbgDshYmD3OKw7YGzsFQlIj7Xcpy1XIdofPaGgwcoQqiFL0Fm/CX36yMm0JM+opvMZ/L0xRy6ZGJp+Yq+VejfoN2BTnmXYmydoM9BANVpxMmH96eCREQlzQ5nTyYfJqZiakLhG/6bEMKfzA+NH/XV/VPR/uf9tuUftMH3nrHFovdDfj7Eb9f4AI3sy+pH/pQZRsTi7bo2Jvka334v5W0tRxLzUsMVocS3Selju9avyROfPtBPVGEON7NUWXTsI+K/9F/0fdvDy4h72+98s7Qx6 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-billing-pricing.api.mdx b/docs/docs/reference/api/fetch-billing-pricing.api.mdx index 14723d3c64..872de34fc3 100644 --- a/docs/docs/reference/api/fetch-billing-pricing.api.mdx +++ b/docs/docs/reference/api/fetch-billing-pricing.api.mdx @@ -5,7 +5,7 @@ description: "Return the effective pricing map: plan slug -> normalized pricing. sidebar_label: "Fetch Pricing" hide_title: true hide_table_of_contents: true -api: eJzdU8tu2zAQ/BViTy3Aym6POhR1itQ1kgZGkp4cw6aptcSUolhyZdQV9O/B6uHERr+gugjc987MNkAqj5Cu4MpYa1wOawkZRh2MJ1M5SOEeqQ5OUIEC93vUZA4ofDDauFyUyqfCW+VEtHUuPnwWrgqlsuYvZmNQ8uSe3A8TQhWi2M7m13ePs83V4vZ2cTffLO8XXxd3861Qe8IgDsqaTHHnyVioez25dxFRbBGTGHSiq4BJrHenOWMSkci4PCab0wSbYYANOgrH7fsEJFQeQ1dxkUEKeyRdbHb96mM4SAgYfeUiRkgb+DSd8u8clYdaa4xxX1txPwSDBF05Qkccrry3RverPEfOaSDqAkvVebPMsEvZZeCRyPS9/m2nUKMEOnqEFKrdM2qC9tIggQxZ7BjrBxLfeD0xMCuWw3otfxJKpKJiEHLkZK+ogBQmAxiTVzAihgMGFkkDdbAcpLyBVo7PgsjHdDLBOtG2qrNE5ehIJcr0gWuuoetg6NgVmS0XN3j8jirDAOlq/TbggSHqsTgPa8Z1lTc3eAQJTpX8ntVUVGHQCUgwTE/RZ/Gexu2rLn1AZ9YNJ2bLBVxK/czFXCrdcTl26twgL9Z+3RYkYKkMOwlV+eXkYbYYw77NNPmYTNnkq0ilcm9a9IwtT9ifzde86us/u8qBWsI/NPFWGcfodCg3gzBXMAiTpTrAs5ZQVJHY2TQ7FfFnsG3L5t81BtbaWsJBBaN2zPxq3cpRGCzDX3hkUrVGzwdwULbu9XVxuCzP07HMrx+hbV8A3DLS9Q== +api: eJzdU01v2zAM/SsCTxug2dmOPgxLhy4L2hVBu53SIFFkxlYny5pEB8sM//eB/kibYr9gvhjiI0XyvacWSBURsjVcGWuNK2AjIceog/FkagcZ3CM1wQkqUeDhgJrMEYUPRhtXiEr5THirnIi2KcS7j8LVoVLW/MF8Skoe3aP7ZkKoQxS7+eL67vt8e7W8vV3eLbar++Xn5d1iJ9SBMIijsiZX3DmdLupPj+5NRBQ7xCQGneg6YBKb/XnOmEQkMq6IyfY8wXYcYIuOwmn3NgEJtcfQ37jMIYMDki63+2H1KR0kBIy+dhEjZC18mM34d8nKQ6M1xnhorLgfk0GCrh2hI05X3lujh1WeIte0EHWJlerRPDcMKbsKPBKZode/4xQalEAnj5BBvX9CTdC9DkggQxZ7xYaBxBdeT4zKitW4XsefhAqprJmEArnYKyohg3QkI30mI2I4YmCTtNAEy0nKG+jkdCyJfJamttbKlnWkAd5wpW6CoVNfOl8tb/D0FVWOAbL15mXCAxMzMHCZ1k5LKm9u8AQSnKr4PG+orMPoDpBgWJRyqOLtjDvUffnIybxAR0rMV0t4bfALiBVUuldw6tTDIF8sG7M0VX04USYFCVgpwyChqj6dEdaImRvazJL3yYxDvo5UKfeixaDT6sz4xXzts6v+s7c4Skv4m1JvlXHMTs9yO9pxDaMd2aAjPRsJbDIG23avIv4Itus4/KvBwF7bSDiqYNSelV9vOjkZg234E08sqtbo2fZHZZvBX6+eK9vz/EQW19+h6/4C21bPlg== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-default-queue.ParamsDetails.json b/docs/docs/reference/api/fetch-default-queue.ParamsDetails.json new file mode 100644 index 0000000000..4a85adaf34 --- /dev/null +++ b/docs/docs/reference/api/fetch-default-queue.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Run Id"}}]} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-default-queue.RequestSchema.json b/docs/docs/reference/api/fetch-default-queue.RequestSchema.json new file mode 100644 index 0000000000..c96bcede2f --- /dev/null +++ b/docs/docs/reference/api/fetch-default-queue.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-default-queue.StatusCodes.json b/docs/docs/reference/api/fetch-default-queue.StatusCodes.json new file mode 100644 index 0000000000..babed34b89 --- /dev/null +++ b/docs/docs/reference/api/fetch-default-queue.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-default-queue.api.mdx b/docs/docs/reference/api/fetch-default-queue.api.mdx new file mode 100644 index 0000000000..298689492b --- /dev/null +++ b/docs/docs/reference/api/fetch-default-queue.api.mdx @@ -0,0 +1,69 @@ +--- +id: fetch-default-queue +title: "Fetch Default Queue" +description: "Fetch Default Queue" +sidebar_label: "Fetch Default Queue" +hide_title: true +hide_table_of_contents: true +api: eJy1WEtz2kgQ/iuqPiVVsvG69qTTEj82rHfXjrFzcVFUIzUwyTCS5+EKofTft3pGEhJgjL3OCZjp/vo5/WAFFmcGkge4eELp0IpcGRjFkBek/a9BBglMyabzcUZTdNKOHx05ghgK1LggS5oBVqBwQZCAdmosMohBKEigQDuHGDQ9OqEpg8RqRzGYdE4LhGQFdlkwl7FaqBnEMM31Ai0k4JxHscJKJrh1KhpkUJYjRjNFrgwZBjg9OeGPjEyqRcEqQwJDl6ZkzNTJ6LYihhjSXFlSlsmxKKRIvYW9b4Z5Vi2lCs32WxEkpLkLTJWuQlmakW4pd+YpYqg8BMlJGUNwE8tSy+upd1EXdyq9758nEGZs6NGRsgJlS4FJnktC1VJgYKLhmrKlyBSloTJmqOZsP855RbYFUsY1Xz75Rqltsa2T5wsbfekNK+NGkHJSQjlihC2TMcsEc6K86Ri/ptjQtoVbZQ2f7IaBVOjUSdQf/sYJyb9Mro6unS2c/Qib5nBm1QZtUsOW8dvWrbnvgvmwIItvNLZl2UbWdQQvJt2Tto9e8silky84JF6BsLQ4kAu1xuVev2zwvs6p/7Azy7gqMwe5bAvjX+Yt426xeBvUeQuijCHVhJayMdp9gK3ylqGlIyu8Ps9LOQuwUd87yxXZrxByH2ArIRlJ+gVCzgNsJaR212TJveIwOb4hHOKsT0vfKdb+elcptbcaKbXD3lVK7a5GyvtBB7wn0uZ/pP/Xir2MwVi0bm8Vi4GUW/CUUZDKwonvjtzgtVMqHJnQtNkYFNJpbtmkda75KEWVkpSUwWhX3xkGJXap3LSxRjoHDTdLc7f1OkN6LLINs6pq2PryUhg2i+PhxfLekI4GmW8kJiWFWuR7NHqtIs8LHlbCGuGWivF3Wh4m+VWSLBXRFSOXMUyQZ0wjfu6u7jvb3wbeJ4aIhgzRAObTqaHdpexwyOsA8ooR6Bx9t9oxAVXz8VtG323p67n6oQbe+Ty8Trv0OdyiZo4uS+b6/fR0e+z+ilJkniW64If79pk7I4tCdp5al0Dmaef2NRPUaDNJW4NfHhT045uZ7QrTeiAxBme0zvjnSb0zoju+5VKuePhh8roiq2oaSu2PFsxWRM7Ylz9252E7E9g3Qf2Krl24mxCFCD3vivMQgn0p8vnu7mYLMORHNzEueYGsV4voS7VALsjOc94vZ2T9PmnnkECP1qtoTztlequQ2mWvKuVH9QZqSD/V66fTkpmxED7m4efc2iLp9WSeopznxobrEXOmTgu79Kz9m8EVLT8TZqQheRi1CYacoCHlumRNmLAQV8SOqxbgvrPzXIufIY+qPXgeuEof/mnejn5/Rspi1L8ZwKbbOlf8kjD1iVNL8tcQt4w1Sa+H/vgYRY8b6MK/I7CEiz+am84EACfHvx2f8FGRG7tA1RKxO3Ab83PlCM7NXiFR+NfjdVpVQX2AVlBD0+ePpPmzoBvZUQwcLeZbrSZo6F7LsuTjR0eagzaK4Qm1wAm78GEFmTD8PauW1S0VmzIEH26rl/IxWu8uXdXrwCqOKuvNvyCG77Rc/8Hhq8i8zplVddlPUypsi22r6HFyNYn/58UdlOV/SV347w== +sidebar_class_name: "get api-method" +info_path: reference/api/agenta-api +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Fetch Default Queue + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-environment.api.mdx b/docs/docs/reference/api/fetch-environment.api.mdx index 24d2e28020..cb317dc81a 100644 --- a/docs/docs/reference/api/fetch-environment.api.mdx +++ b/docs/docs/reference/api/fetch-environment.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Environment" sidebar_label: "Fetch Environment" hide_title: true hide_table_of_contents: true -api: eJy1V0uP2zYQ/ivGnBKAsd1FTzrV3UfipG0WWacXw1jQ4thiQokKH4u4gv57MZRkU5Z34yw2J1viPL9vODOqwPGthWQJ18WDNLrIsXAWVgx0iYY7qYu5gAQ26NLsHg8ywKDkhufo0JB+BQXPERKIZO6lAAaygARK7jJgYPCblwYFJM54ZGDTDHMOSQVuV5K2dUYWW2Cw0SbnDhLwPlhx0ikSiMIczQXU9Yqs2lIXFi0ZuphO6UegTY0sKQFI4M6nKVq78Wr0qRUGBqkuHKWSVMDLUsk05Dv5YkmnioIrDaHhZOMh1b5RamOWhcMtmijIyyDBQOCGe+UgmdYsBiZ4LHYfNwG4vvWNVgINQdcTehqfmu0lCq8UECpdMDfBYACLwUYFuh93L+391nMjUEQZrrVWyIsow7kdvW3FojQ3XFmsa9bp6fUXTN1p9m5CJMPASXsQIxdCEjdc3faiHeDTRRrZbSGjN6fNQCpN6hU3r/7ia1TvrS7efPSu9O41HKcSA3ssDYPEn6Jl0aQPOTr+zGSjzI5Ksec4X/ffxBj9CJEbr34ACKtAOszP1OLG8N3T5drX/TlQ/yYwa9b2orMgG9j4h3Rr1u8gzzN1FZmoGaQGuUNxz92Zd1twh2+cDPE87uWyMTuaBbB8KX6Fk8+N2daJQIW/wMlVY7Z10sG13r1gN+zA+nPXdsQOrxf10qG199IB9qJeOrj2Xqzy2+fW6h3p1gxeLrwwns+aBafGwHma+2le16Tx+8XFcPj/y5UUYbSPro3R5vmTX6DjUoUx2bS8YwGl097pz7TsVX3UJaNJo5sAw7yw21P70qEDWsu3eGibj4sGMEYLOiXeC+q2JN7RV7TtN3XfIzMDNi4Jy+/uJNeHfW8ZsGnCb+WiUjlQ1DD0OBRXDQVPlce7xeJ2YLCpj35h3NBSO7ruLbU5ukzTxrvFZsd1GSQwiZY3O6n6O24NDCyah24R9kaRCi9l4Ll5zJwrbTKZoB+nSnsx5lssHB9z2QiuyEbqjXS7YGR2O/+Au3fIBRpIlqtY4I7Ksym4vtieJF7KD0iwtUv5zLtMG/lfU0XtTp41WnUgf6Nj7mchuNHsdg7HoPWO6B7xNJRN5ykcAztK+5AtMMA83CJwyPM/9idEOmHYuJmOfxtP6VWprct5Ebk4RdvRsG5hoLqclIrLcHNCRFVL6TLexy0wSI4+XFYMMm0dSVbVmlv8bFRd0+tvHg2RtGLwwI3ka4JsWYGQlv6Ldg8eBLVvOvDqU3svXo8Oq1E/2I7Iglh84MrTEzD4irvhR1boHVlXK1UrNEtTLF2kPmh1VFT7gn97vYC6/h/l1M40 +api: eJy1V0tv20YQ/ivCnBJgY6lGTzxV9SNx0jZGrPQiCMaIHEmbLLnMPoyoBP97MUtSWoqyoxjOSdLuPL9vdmZUgcO1hWQOV8WDNLrIqXAWFgJ0SQad1MVNBgmsyKWbe9rLgIASDebkyLB+BQXmBAlEMvcyAwGygARKdBsQYOibl4YySJzxJMCmG8oRkgrctmRt64ws1iBgpU2ODhLwPlhx0ikWiMIc3WRQ1wu2aktdWLJs6Hwy4Y+MbGpkyQlAAnc+TcnalVejT60wCEh14TiVpAIsSyXTkO/4i2WdKgquNIyGk42HVPtGqY1ZFo7WZKIgL4KEgIxW6JWDZFKLGJjgsdh+XAXg+tZXWmVkGLqe0NP41GInUXilgFHpgrkOBgNYAlYq0P24e2nv1x5NRlmU4VJrRVhEGd7Y0dtWLEpzhcpSXYtOTy+/UOqOs3cdIhkGztqDGDHLJHOD6rYX7QCfLtLIbgsZnxw3A6k0qVdoXv2FS1LvrS7efPSu9O41HKYSA3soDYPEn6Jl1qQPOTl8ZrJRZgel2HOcL/snMUY/QuTaqx8AIiqQjvITtdAY3D5drn3dnwP1bwazFm0vOgmygY1/WLcW/Q7yPFOXkYlaQGoIHWX36E582xk6euNkiOdxLxeN2dE0gOXL7Fc4+dyYbZ1kpOgXOLlszLZOOriW2xfshh1Yf27bjtjh9aJeOrR2XjrAXtRLB9fOi1V+/dxavWPdWsDLhRfG80mz4NgYOE1zN83rmjV+Pz8fDv9/UcksjPbRlTHaPH/yZ+RQqjAmm5Z3KKB02rv9mZa9qA+6ZDRpdBNgmBd2fWxf2ndAa3FN+7b5uGgAYzTjW+a94G7L4h19Rdt+U/c9MjNg44Kx/O6Ocr3f9+YBmyb8Vi4qlT1FDUOPQ3HZUPBUebybzW4HBpv66BfGNS+1o6veUpuT22jeeNfU7LhuAwmMo+XNjqv+jluDAEvmoVuEvVGsgqUMPDc/N86VyXisdIpqo61rrhesmXoj3TaoTm9vPtD2HWFGBpL5Iha446JsyqwvtqMGS/mBGKx2FZ96t9FG/tfUTruJbxqtOlC+0jHj0zUVDkfT2xs4hKp3xa8H01AsnadwDSJK1ibjMYbjM5RjEEB5eDvgCPM/djdMNSPXuJmc/XY24aNSW5djEbk4RtbBiG5h4GoclwpleC8hoqolch5v4RYEJAd/VxYCmB2WrKolWvpsVF3z8TdPhklaCHhAI3HJkM0ryKTl71m7/Q6C2rUaePWpfQ2vR/uFqB9sR2TBLD6g8vwLBHyl7fCvVegYm65WqlZomqZUukh90OC4qHZl/vZqBnX9P+VKytU= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-evaluator-catalog-preset.api.mdx b/docs/docs/reference/api/fetch-evaluator-catalog-preset.api.mdx index e14eaff2ee..2acbd3e1a7 100644 --- a/docs/docs/reference/api/fetch-evaluator-catalog-preset.api.mdx +++ b/docs/docs/reference/api/fetch-evaluator-catalog-preset.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one evaluator preset by template and preset key." sidebar_label: "Fetch Evaluator Catalog Preset" hide_title: true hide_table_of_contents: true -api: eJztWFFz2zYM/is8PK13nJ329uS9LJema9ZtzSVp95D4cogEW2wlUiUpt55P/30HipIl21HatNvL+mSLBD+AwEeQwAY8Lh3MruF0hXmF3lgHcwkpucSq0iujYQYvyCeZMJoEtVKitOTIi7u18FSUOXoSqNN2+D2tJzf6Rp+HTyfQktDGC0clWpYl7ZVX5H4WPqN1mC/IY4oeJ+KNIx6+0ZZ8ZTV1sCWuc4OpQMfzwnm0XumlKI3SXnzMSIvEEoYxvNGaPvYsXlhTCOzMnYhLCmrEdutiWamUJiDBlGSRt3+WwgwW7IDbDuo2QY+5Wd42ZoEE3lVBniz7cgMaC4IZtKpu39MaJCj2ZYk+AwmWPlTKUgozbyuS4JKMCoTZBvy65LXOW6WXIMErn/PAVevmV7SGupadlsaIb6KjCVfUMGcEVxrtyPGiZ0dH/DOkxmWVJOTcosrFRRQGCYnRnrRncSzLXCXBldN3jtdseoaUlh3NROCvxFTNomif0p6WZHsGngSJXX4+bUKPLU2UEy1zpDgSxmdkPyoXApvSAqvcw+yoltF1wUy9fr0IsRua1Pi4Pz/0Hcchjugqz4G91hr7J6+td4x9HNTzHkQtgWM9EsYQPwkJeloaG3eyVas8FW5/fS3bAbQW16P2nGyhawmLPCSR+72o3C3aJFMrJmOHemdMTqh7hp85cdzK9UK1wNxRLRnGUmKKgnT6MNJFT/QwWI+bD5rVEz0M1mWHh6C6dHMPkNOqLMk/BHMZxfZAtnE0d+8o8b1lfxn7fpGbjydN/noR4rYfZ+YsehyLaGXVY7n8xiomTWXzxyPkjJARpiHj9lEwTRVHCfPzgcFjeoZbW5F1X3FU38bltQSXV8vHwlzyWiZEOoYgYWFsgR5mUFUqHUU8S2GMGxe0IEs6oYYAQ7Ex3JcxDLUEW2mvxhOmBNJVwS+Ocu2zcJpYoElvIOEdrjB+zMe0XkRV7OZG/LGOblbX7f04msj69/zXsm7nkhvYWNwNR9oMwEOHdUGibFLlaH94UeX5b87oH19Xvqz8EzgUzHgHfM6qh2+DnbXwRfQ537qU6a7Lyn937rdy7lnjzlqCCau/e/ZbefZ19OdYSmXwy5hUDt6y39PJv5pOPuMldEErxdf1c37vHIjRAYhtWXUdHuI95d3TLj6wmnrqoL3DCuYqIxGLyljESGGsYOmmttFcfRfok4zSyejODtvQK86Gmk/1inJTklgYK1A4pZf5ri2skFX+9OzZfgX4FnOVhoexOLU2vGofWf6l5FGFR2FXoQwFcpMMZr/kOMx3y5utx3438WFfSyjccqyy+oOcwyVtKXm/aHCGuOLZ9l4L4v3MHKo0/6kHsxfOE/blJ38w5H0msm8a86Nc/0nahaiJ0P2ueN6EYIxfL6+uzvcAG34U5DPD/ZJlbIr4DGYw7SojN428mradETfd9Jsk9bQhnJtutl2NGiQ4squ2uRIKB5hiqUKgm8/M+9LNplOqJkluqnSCS9IeJ6gawTljJJVVfh1Ajs/PXtG6ebrC7HreFwgpu2HcUKyLEpbqVWi3xBbMceUzY9XfbX0YujBNeRJ8qfTC9IN/HIwTx+dne+dxMMUHCRO/bUTEaZA7297ulh/YRThG4AmLX7oZjnpX2sDR5OnkiIdK43yBuqei6fZ1aUTEPCLO22bXTj+jO+3/xz5hJAQf0WmZo9K90rbh/zVs+Q+hKcPe5KXtGQAJs51WYTwGPNNr780lZMZ5xtxs7tDRG5vXNQ9/qMgysecSVmgV3jHNrjeQKsf/09gbGIndDxcxmTwR922rJb9mC3lP/AWxGzVsdvLB/A9193wUEn3WnutNFDhOEgrlZbt0717iBNDlr19Pr6Cu/wHsjQPs +api: eJztWF9z2zYM/yo8PK13mp329uS9LJema9ZtzSVp95D4cogEW2wpUiUpt55P330HipIl21HatNvL+mSLxD8CP4IANuBx6WB2DacrVBV6Yx3ME8jIpVaWXhoNM3hBPs2F0SSopRKlJUde3K2Fp6JU6Emgztrl97Se3OgbfR4+nUBLQhsvHJVomZa0l16S+1n4nNZhvyCPGXqciDeOePlGW/KV1dSJLXGtDGYCHe8L59F6qZeiNFJ78TEnLVJLGNbwRmv62LN4YU0hsDN3Ii4pqBHbo4tlJTOaQAKmJIt8/LMMZrBgB9x2om5T9KjM8rYxCxLgUxXkybIvN6CxIJhBq+r2Pa0hAcm+LNHnkIClD5W0lMHM24oScGlOBcJsA35dMq/zVuolJOClV7xw1br5Fa2hrpNOS2PEN9HRhCtqmLMEVxrtyDHTs6Mj/hlC47JKU3JuUSlxEYkhgdRoT9ozOZalkmlw5fSdY55Nz5DSsqMZCPyVmqphivZJ7WlJtmfgSaDYxefTJvTYwkQ60SInEUfC+JzsR+lCYDNaYKU8zI7qJLoumKnXrxchdkOTGh/394e+4zjEFV0pBey11tg/mbfeMfZxop73RNQJcKxHwhjil0CKnpbGxpNs1UpPhdvnr5N2Aa3F9ag9J1vRdQILFZLI/V6U7hZtmssVg7GTemeMItQ9w8+cOG7peqFaoHJUJyzGUmqKgnT2sKSLHulhYT1sPmhWj/SwsC47PCSqSzf3CHJaliX5h8RcRrI9Ids4mrt3lPoe21/Gvl8o8/GkyV8vQtz248yYRY9jEa2sfCyW31jJoKmserwExRJywixk3L4UzDLJUUJ1PjB4TM/waCuy7iuu6tvIXifgVLV8rJhL5mVAZGMSElgYW6CHGVSVzEYlnmUwho0LWpAlnVIDgCHZmNyXMQx1ArbSXo4nzARIVwVXHOXa5+E2MUGT3iCBd7jC+DEf03oRVbGbG/LHOrrhrtv3cTSR9d/5r0XdziM3sLG4G660GYCXDuuCVNq0Umh/eFEp9Zsz+sfXlS8r/wQOBTO+AZ/D9fBrsMMLXwSf861LGe66rPx3534r55417qwTMIH7u2e/lWdfR3+OpVQWfhmTysFX9ns6+VfTyWdUQhe0kvxcP+d650CMDojYtlXXoRDvKe9Ku1hgNf3UQXuHHcxVTiI2lbGJSYSxgqmb3kZz912gT3PKJqMnO2xDrzkbaj7VK1KmJLEwVqBwUi/Vri2skFX+9OzZfgf4FpXMQmEsTq0NVe0j27+MPMpQFHYdypBAmXSw+yXXYb7b3mw99ruJhX2dQOGWY53VH+QcLmkLyftJgzPEFe+271og72fm0KX5Tz0xe+E8YV9+8gdD3kci+6YxP9L1S9IuRE2E7nfF8yYEY/h6eXV1viewwUdBPjc8L1nGoYjPYQbTrjNy04iraTsZcdNNf0hSTxvAuelmO9WoIQFHdtUOV0LjAFMsZQh085l7X86mU2VSVLlxvtmeM2daWenXgfX4/OwVrZuCFWbX8z5BSNQNzoZkXWywlK/CkCUOXo4rnxsr/267wjB7aZqS4EGpF6Yf8uMlaY/i+Pxs7xYOtvj6YOq344e4DUnvsG42nWJYnqCcclldhMsDnrD4pdvhWHcNDRxNnk6OeKk0zheoeyqaGV+XPETMHuK8HXHtTDG6O/5/nA5GQPDFnJYKpe41tA3qr2GLegijGPYms7bIhwRmOwPCCH7e6Q315gkwolnmZnOHjt5YVde8/KEiy8CeJ7BCK/GOYXa9gUw6/p/FicBI7H64iCnkibjvWC34NVvIZ+IviDOo4YiTr+N/qLvno5De8/ZebyLBcZpSaCpb1r3XiBNAl7V+Pb2Cuv4HHEQAjQ== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-evaluator-catalog-template.api.mdx b/docs/docs/reference/api/fetch-evaluator-catalog-template.api.mdx index 5660eef605..9a7d1e712c 100644 --- a/docs/docs/reference/api/fetch-evaluator-catalog-template.api.mdx +++ b/docs/docs/reference/api/fetch-evaluator-catalog-template.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one evaluator template by key." sidebar_label: "Fetch Evaluator Catalog Template" hide_title: true hide_table_of_contents: true -api: eJztWEtvGzcQ/ivEnGKAlRSjJ51qOE7ipm0MWUkPtmDTuyMtYy65IblKVGH/ezHctySvEyc9FPDJFnfm4/CbBzmzBS9WDqZXcLYWKhfeWAcLDjG6yMrMS6NhCq/RRwkzGhnWUsxjminhkd1t2D1uRtf6Ws/Q51Y7JjTDNPMbhnqNymTIXtxGJtd+yia3R+xLgppp00KkwkcJumvtEwxgbF5/useNY5FJkS2tSa/17ZuzORtHwgtlVuMawY1vR8DBZGgF2XwewxSWZPVNY/FNpXRTKwGHTFiRokdLFGxBixRhCrXAzT1ugIMkCjLhE+Bg8XMuLcYw9TZHDi5KMBUw3YLfZKTrvJV6BRy89IoWmpO8ww0UxYIwXGa0Q0dqx5MJ/enzfZlHETq3zBWbVcLAITLao/YkLrJMySgcdfzJkc62Y0pmiQgvyx0C8R0Lpfa4Qtsx8TRI7Dr9Zekn0bpJOmaDhzHmbMKMT9B+kQ5HQXcpcuVhOil4Q2AwVW/eLwO7fbNKrrvf+wwWvFnRuVJAzNUG/0W6xY7BT4N61YEoOJDHB5wZfMghEh5XxlYnabeVHlO3r0+MlAvCWrEZtOe0hS44LFXIzodZlO5G2CiRawrJBvXOGIVCdww/d+yklus4aymUw4ITjMXIpCnq+HGkWUf0MFgnPh81qyN6GKzJ4MegmhL2AJDTMsvQPwZzWYntgbR+NHefMPIdtb+NvV8q8+W0rDGvg9/2/UwxK7wY8mhu5VNj+YOVFDS5VU9HUISQoIhDTeyiiDiW5CWhLnoGD+3TP9oarfuBVP1YqRccnMpXT4W5JF0KiHgIgcPS2FR4mEKey3gQ8TyGodiY4RIt6gjLAOiLDeG+rdxQcLC59nK4YHJAnad0lWcbn4RsIoGyvAGHT2Itqh+LoV1n1VZEcyn+VKJL7aK+JQcLWfcm/tGo27noejamd/2VugLQ0uG9IJI2ypWwL17nSv3ujP7lfe6z3B/BIWdWd8C3aD1+G+zowneFz0VLKYW7znL/TO7PIve8pLPgYIL2M7M/i9n3FZ9DJZXAL6uicvCWfS4n/2k5+YaX0AzXkq7rV/TeOeCjAxBtc3UVHuKdzZunXfXAqruqgxb3+5h5gqxq/ZpWhjNjGcnXvaium9B4NHi6h+zotGn93c/qDnhpLBPMSb1S+/bQprTtr8fH+93gR6FkHB7I7Mza8Lp9YisYoxcyPA6bTqUvoEzU+/o9abHYbXNa1v4w1QO/4JC61VCH9Sc6J1bYhubDooEMNqev9f0WxLsVOnRr/msHZs+lp8TlV3/Q7d2IJG5K8yu57tO0cVHpoYepeFW6YCjG3s7nF3uAZXyk6BNDs41V6E/CUGIK46ZDcgcmI9vuOKMADg7tup54hF4BxiKTwaflz8T7zE3HY8xHkTJ5PBIr1F6MhCwFF4QR5Vb6TQA5uTh/h5vytQrTq0VXIFTpMrj6Yo1DRCbfhTlLNX05yX1irPynbgnD+KXsSAJtUi9N188nwTh2cnG+l3y9T5QzIvLt7KH6DHzn2O1p6U2dhowBjyL9rflCDm66GZiMXo4mtJQZ51OhO1uUk7OmarCqbDTzrV2Tt21q/2+mbpUfKYnGmRJSd5rQMkKvoI1QCOMTwoF2UESr097YbcEhMc6T7nZ7Jxx+sKooaPlzjpbibsFhLawUdxQFV1uIpaP/46pbHyD2xaxK6yP2kPl1bGoKTLKdfkE1H+oPCEPhS+rg31YiJ1GEoe2qlffqNGVJk89vzuZQFP8CSlt1oQ== +api: eJztWEtz2zYQ/iuYPcUzqKRkeuKpHsdJ3LSNR1bSg62xYXIlIgYBBgCVqBr+986Cb0umEyc9dCYnW8Duh+W3D2B3B16sHUSXcLoRqhDeWAdLDgm62MrcS6Mhglfo45QZjQwbKeYxy5XwyG637A63kyt9pefoC6sdE5phlvstQ71BZXJkz25iU2gfsdnNEfucombadBCZ8HGK7kr7FAMYWzRbd7h1LDYZspU12ZW+eX26YNNYeKHMetoguOnNBDiYHK0gm88SiGBFVl+3Fl/XSteNEnDIhRUZerREwQ60yBAiaASu73ALHCRRkAufAgeLnwppMYHI2wI5uDjFTEC0A7/NSdd5K/UaOHjpFS20X/IWt1CWS8JwudEOHam9mM3oz5DviyKO0blVodi8FgYOsdEetSdxkedKxuFTpx8d6ex6puSWiPCyOiEQ37NQao9rtD0TT4LEfac/r/wkOjdJx2zwMCaczZjxKdrP0uEk6K5EoTxEs5K3BAZT9fbdKrA7NKviur8/ZLDk7YoulAJirjH4L9It7xn8NKiXPYiSA3l8xJnBhxxi4XFtbP0l3bHSY+b29YmRakFYK7aj9px00CWHlQrZ+TCL0l0LG6dyQyHZot4ao1DonuFnjh03cj1nrYRyWHKCsRibLEOdPI4074keBuvF56Nm9UQPg7UZ/BhUW8IeAHJa5jn6x2AuarE9kM6P5vYjxr6n9rexdytlPp9UNeZV8Nu+nylmhRdjHi2sfGosv7eSgqaw6ukIihBSFEmoiX0UkSSSvCTU+cDgsXOGn7ZB674jVT/U6iUHp4r1U2EuSJcCIhlD4LAyNhMeIigKmYwiniUwFhtzXKFFHWMVAEOxMdw3tRtKDrbQXo4XTA6oi4yu8nzr05BNJFCVN+DwUWxE/WM5duq8PoporsSfSnSlXTa35Ggh69/E3xt19y66gY3Z7XClqQC0dPgsiKWNCyXss1eFUr87o395V/i88EdwyJn1HfA1Wo/fBvd04ZvC57yjlMJd54X/Se6PIvesorPkYIL2T2Z/FLPvaj7HSiqBX9RF5eAt+7Oc/Kfl5CteQnPcSLquX9J754CPDkB0zdVleIj3Dm+fdvUDq+mqDlo87GMWKbK69WtbGc6MZSTf9KK6aUKTyejXPWRHr00bnn7adMArY5lgTuq12reHDqVjf33xYr8b/CCUTMIDmZ1aG163T2wFE/RChsdh26kMBZSJB7vfkhbL+21Ox9ofpn7glxwytx7rsP5E58Qau9B8WDSQwRa029xvQbxfoUO35r/0YPZcekJcfvEH3d6PSOKmMr+W6z9NWxdVHnqYipeVC8Zi7M1icb4HWMVHhj41NNtYh/4kDCUimLYdkjswGdn1xxklcHBoN83EI/QKMBW5DD6tfqbe59F0qkwsVGqcr7aXpBkXVvptUD0+P3uL2+qNCtHlsi8QanMVUkOx1g0il2/DdKWeuRwXPjVW/tM0gmHoUvUhgSypV6bv3eM1ai/Y8fnZXsoNtihTROy7iUO9Dbz3sS6aTkVYngg5pZd0FvIEPIrst3aH3Nr2MDCbPJ/MaCk3zmdC946o5mVtrWB1sWinWvdN3nUJ/b+ZtdV+pNSZ5kpI3Ws9q7i8hC4uIQxNCAe68RCtRoNh25IDBRzp7na3wuF7q8qSlj8VaCnulhw2wkpxS1FwuYNEOvo/qXv0EWKfzetkPmIPmd/EpqbAJNvpF9RToeFYMJS7tAn+XS1yHMcYmq1Gea86U5a0Wfz6dAFl+S/mV3JC sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-evaluator.api.mdx b/docs/docs/reference/api/fetch-evaluator.api.mdx index 5a9f6eb540..0aa778a9d4 100644 --- a/docs/docs/reference/api/fetch-evaluator.api.mdx +++ b/docs/docs/reference/api/fetch-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Fetch an evaluator artifact by id." sidebar_label: "Fetch Evaluator" hide_title: true hide_table_of_contents: true -api: eJzdV0tzGzcM/iscnJIZRnYyPelUNbEbN23jiZ1ebI2H2oW0TClyQ4JKFM3+9w64D+1KsuJ4nEtPtpbAB+DDg+AGSC0CjG/gbKVMVOR8gKmEHEPmdUnaWRjDOVJWCGUFtkJCedJzlZGYrYXOR7f21n5Ait4GQQV2xy8MrtAIj5nzuXgWTFxIYdUSpZgbtQhSGD3HbJ0ZfH5rv2gqXCSxUl4rS8J54XGlg3ZW5IrUSHwMmPBbCWXzTuTWos1Lpy0FQU54JK9xxfIuoDBqjT6MQIIr0SuO7CKHMcw5trsuMJBQKq+WSOiZlw2wtzCGTuJO5yBBMy+logIkePwctcccxuQjSghZgUsF4w3QumTdQF7bBUiYO79UBGOIMaGQJsMCHfniIoeqmjJmKJ0NGBjm1ekp/xkm5SpmGYYwj0Z8aIRBQuYsoSUWV2VpdJYiPfkUWGfTc630zAPp2kLmYq3UeKwt4QJ9z8XXSWK3Ml6KLwXaYWnowNxHbzGX4lQ4KtB/0QFHSXuuoiEYn1ZyS2ny1q7fzxPhQ8/mzuSYSB8IHWe2kp2EjcYAM9oGcp4AE9ESUhEeM6/DXY/HHkMz5wwq22PoIohJT7QX7FyZgJVksEHMx6DOehV5CChYXZZI34O5asT2QCrZ6rnZJ8zoUDVOmi4+Tyztk8oYe/ypPNdMgDKXAyb3ctf628Nt0slfDsNApn0WjfLP/lQzNH8EZ1+8j1RGeg67AfWTvisNe+EfK5nrOnxYIqlHBtuLbKfFBoaXs+GXPkffY+Q8mu8QIjegCZcP1FLeq/XxVhrq/hipfzGZlWzm64Mo28P4m3WrnaH0OKg3PYhKQuZREeZ3ih44d3JF+IJ08ud+K69rWDFJZMUy/xlGPtawjZEcDf4EI29q2MZIS9ds/YSTuiXrt3UzrVu+ntRKy1ZnpSXsSa20dHVWeBV6bK1esS5fA0/mXlo7HnAjHAQZrgTXBR7YEyUvc6xRLwzWWRRLRVmB+ehhpntLztDgmV2hcSWKOdsTQduF6bvQrlJshy398urV/jb1jzI6Txe3OPM+3bqPXKVyJKVN2h3qWbsrYFw2OP2Ru2Ja7Yzn3hXnmsWDL6qwOLR+bkdvCGqB23l9v2giQ1zzKRec5THP4m3d2GbuZ/S1B7OXxdfM5Vc6mOnt+nyTuKndb+R6NbpNUZ2h+6l4U6fgWFm9vb6+3AOs62OJVDh+GizS3pSW/DGcdAUVTjb9x0AFEgL6VfteiN6wuCp1ymD9syAqw/jkBOMoMy7mI7VAS2qkdC04ZYwsek3rBDK5vHiH67eocvQwvpn2Ba648OpSGop19KtSv0MmpHm7TCIVzutv7WKaHi9FrVWltM5dP6uT5JyYXF7sNdvgiDtEZakgWkvpGORO2NtoQQIuU38AoVr+2p1wOpnD2szp6OXolD+VLtBS2Z6J+jE6XI8Ht3/Xt/+zd2uTXO6jk9IonTo98bxpivRm+6QKIGE8eLNOJRQuEEttNjMV8KM3VcWfP0f0XHZTCcm/GRfBzQZyHfj/vHkyHCH62Yemh5+L+xxtS9NyXbJf/Ask/Ivr3dd1mnJFW/ubRmSSZVhST3lvKHOTdM37+9k1VNV/1rXP9Q== +api: eJzdV0tz2zYQ/iuYPTkzsORkeuKpamI3btrGYzu92BoPRK5EpBDAAEs5iob/vbPgw6QkK47HufRki9jnt98uFhsgtQiQ3MDpSplSkfMBphIyDKnXBWlnIYEzpDQXygpshYTypOcqJTFbC52Nbu2tvUQqvQ2CcuyOjw2u0AiPqfOZOAqmXEhh1RKlmBu1CFIYPcd0nRp8dWvvNeWuJLFSXitLwnnhcaWDdlZkitRIfAoY7bcSymadyK1FmxVOWwqCnPBIXuOK5V1AYdQafRiBBFegV5zZeQYJzDm3uy4xkFAor5ZI6BmXDXC0kEAncaczkKAZl0JRDhI8fim1xwwS8iVKCGmOSwXJBmhdsG4gr+0CJMydXyqCBMoyWiFNhgU68MV5BlU1ZZuhcDZgYDNvTk74z7AoV2WaYgjz0ojLRhgkpM4SWmJxVRRGpzHT8efAOpteaIVnHEjXHlJX1kpNxNoSLtD3QnwbJbaZ8Vrc52iH1NCBsS+9xUyKE+EoR3+vA46i9lyVhiA5qeQDpDFau/44j4API5s7k2EEfSB0GNlKdhK2NAYY0TaRs2gwAi0hkvCQex3uejj2EJo5Z1DZHkLnQUx6or1k58oErCQbG+R8yNRpj5H7DAWriwLpe2auGrEdI5Vs9dzsM6a0j42TpovPIkq7oLKNHfxUlmkGQJmLAZI7tWvj7dltyslf9puBVPu0NMof/almaP4Izh5/LKko6RVsJ9Qv+rY07KR/iDLXdfqwRFLPTLaX2VaLDRwvZ8MvfYy+h8hZab4DiNyAJlw+UUt5r9aHW2mo+2Og/sVgVrKZr0+CbMfG36xbbQ2l55l61zNRSUg9KsLsTtET506mCI9Jx3ge9/K2NismEayyyH6Gk0+12cZJhgZ/gpN3tdnGSQvXbP2Ck7oF67d1M61bvF7US4tW56UF7EW9tHB1XngVei5Xr1iXr4EXCy+uHU+4EfYaGa4E1znu2RMlL3OsUS8M1lkUS0Vpjtnoaa57S87Q4aldoXEFijn7E0HbhemH0K5S7Ic9/fLmze429Y8yOosXtzj1Pt66z1ylMiSlTdwd6lm7LWBcOjj9kbtiWm2N594V55rFgy+qsNi3fj6M3hDUAh/m9eOiEQxxzadMOMtjnsVb3thm7qf0tWdmp4pvGcuvtLfSD+vzTcSmDr+R63H0oUR1hR6H4l1dgkO0en99fbFjsObHEil3/DRYxL0pLvkJjDtChfGm/xioQEJAv2rfC6U3LK4KHStY/8yJimQ8Ni5VJneB6uMpa6al17SOqpOL8w+4fo8qQw/JzbQvcMV0qwk0FOtAV4X+gAxD82KZlJQ7r7+162h8suS1VhWLOXf9Wk4WaEmJycX5TosNjrgvVBpp0HqKxyB7yYZkPFbx80jpMUjAZewKIFTLX7sTLiIjV7s5Gb0enfCnwgVaKttzUT9Bh0vx4M7vuvV/9lptisvdMy6M0rG/I86bhpo3Dw+pABKSwUt1KoH5xlKbzUwF/ORNVfHnLyV6pt1UQoxvxiS42UCmA/+fNQ+FA0AfXTad+0o8FmhLTcu85Lj4F0j4F9fbb+o42/KW+5tGZJKmWFBPeWcUc5N0Lfv76TVU1X/8W8yW sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-folder.api.mdx b/docs/docs/reference/api/fetch-folder.api.mdx index fd21d6a2a8..ea9762f8ce 100644 --- a/docs/docs/reference/api/fetch-folder.api.mdx +++ b/docs/docs/reference/api/fetch-folder.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one folder by id." sidebar_label: "Fetch Folder" hide_title: true hide_table_of_contents: true -api: eJzlWN9v2zYQ/lcIvjQBFCUt9uS9LGuaNevWBGm6lzSoafFksaVIlTwmVQ3978ORki3bSZoGKTBgT5bF4/347iPvTguOYu755JIfWy3BeX6VcQm+cKpBZQ2f8GPAomLWACujCJu1TMn8g/lgzgGDM54J5pWZa2DTJDJlYK5B2wZydlIyrJZ7pQXPjEUGX5VHpswHQ6uF0BrcM88aZz9BgRmbFjYYnDLl2fRgyoSRK+XKM1srRJA5z7htwAny9UTyCS/J249Jkme8EU7UgBTY5HLBjaiBhOLyRyV5xhXF2AiseMYdfAnKgeQTdAEy7osKasEnC45tQxs9OmXmPOOldbVAPuEhRC2oUJNAQpGdSN51V6TQN9Z48KTjxcEB/ayj+y4UBXhfBs3Oe2Ge8cIaBIMkLppGqyIGuP/J057FyK/GUfiokoWI2chdZRDmEYfBv5dRYjPFb0M9A8ds2afJMxczC5LtEPrWsenz6W4eN5YiaOSTgy7rcYxemva0jBCve1TqSK+xgJBSkV2hz9ZEVxK99zNrNQjDu2wTf3pzuxpeKFcELdzOX2IG+k9vzd5pwCbgLqGQtNgZcYxTggZcNqV5tyW98sIErdd2H8coacv/IdqLPtgaUDwy2FFkG1RdM0ysHL8ZY/Q9RI6D/g4g2YIrhPqBu4Rzor2fBet7fwzUvwnMLutvqAdBtqXjLe3tNg7341QdjVR0GS8cCAT5UeB9CkfXohQIe6iiP3dbeZnUssMIVmjkzzDyPqntjUjQ8BOMHCW1vZEBrllLNeZhdmIheQhYv7exvKzwelIrA1pLKwNgT2plgGtpxeswfyxX39HeLuNP517y6bMy39EIJtTUO41qdGyg1ruBN6TnNnPrRfgcvA2uAFaKWumWYaX80DZZNxdGfQOfs1OjWzYdW4wNkYRSUb1GK0WbxX5JIRPaW1bYayrpN9Z9LrW98RmDa6GDQOt8kkTw6AE928EKWuYr4SB2bcKhKkWBDMVMw25OsMRe6ZGpOkt91nrgRxb3PFCnRpSoBYJTQqtvIBnZYrOgNLLS2XrUST7zjDjTB+qZMAV4iuhZfO9zdg5C7lmj21+ZBKeuQVLnSho8uGtwfTAODD4hs8+iQmL1Zpgnkhossp+M9oFksbsiPVNWWscEc9YOiznvtqrIJr0eQK2LJWwZu6nAsNIGI3N2mrro9G69436I5WXD2nUk/MuLF9v97T9CKxl5yl45Z93jm1sJKJSmp75qbwpoW6yt/kjXcdVtFPpRs2STg7Hl8fPbpoFVEfdezGFV+e8WjWCwC1qlq8tQw0Diww1k+g6iwK8jNVuJeElYfsVbk7WaZi4jNsn9Xm5E2VWKUobuhuIopeA+Zry+uDjbUpj4UQNWlma0OSAf7hG+348c+4vlVNbxjKczmqa24DQJikbF3KW/FWLjJ/v7EPJC2yBzMQeDIhcqCV6RjiI4hW1Ucnh28gba1yDixHJ5NRZ4R5RLJFoXWwIvGvUGCIp+gjwMWFmnviVm9FNklXZ1MaGlHefzMDrHDs9Otu6FtSU6G6KIVBgsxWWebYS9ipbqUB1PBkcQ9W/LFUokYZjMHOTP84N45VmPtTAjE2nCPx5m5o32cXlc//NfAvpc0YHYb7RQ8chG2BY92y77kdXzjE9WXwGuMl5Zj7S+WMyEh/dOdx29/hLAEX+uMn4tnKIqGNkkladnySel0B7uAW3nvD+Gu+wuFweOGSIYlWb6xzP+Gdq1jxXxlqoGBi/69cOigAZHO7cuVaL68vD98eqCd92/RVYo0Q== +api: eJzlWN9v2zYQ/lcIvjQBFDst9uS9LGuaNevWBGm6l9Soz+LJYkuRKnlKqhr634ejJFu2kzQNUmDAnpKI9/O7j7y7LCXBIsjJlTxxRqEPcppIhSH1uiTtrJzIE6Q0F86iyKKImNdCq9EH+8FeIFXeBgEiaLswKGatyEygvUbjShyJ00xQvtJVDoOwjgR+1YGEth8sn6ZgDPpnQZTefcKUEjFLXWVpJnQQs8OZAKvWxnUQrtBEqEYyka5EDxzrqZITmXG0H1tJmcgSPBRInNjkaiktFMhC8fijVjKRmnMsgXKZSI9fKu1RyQn5ChMZ0hwLkJOlpLpkxUBe24VMZOZ8ASQnsqqiFdJkWKBFUZwq2TRTNhhKZwMGtvHi8JB/bKL7rkpTDCGrjLjohGUiU2cJLbE4lKXRaUxw/CmwznIQV+k5fdKth4jZIFxtCRcRhz6+l1Fiu8Rvq2KOXrisK1MQPlYWldhj9J0Xs+ez/VFUzKAyJCeHTdLhGKO09VkWId6MKDORXkMBUEqzXzDnG6JriS76uXMGwcom2cafv9xuRqbap5UBv/cXzNH8GZw9OKuorGifUWituDlzTHKBely2pWWzI72OwlbGbGifxCxZ5f+Q7WWXbIEEj0x2kNkWVTccMyuHX4YYfQ+Rk8p8B5BkKTVh8UAt8B7q+1mwqftjoP7NYDZJ90I9CLIdG29Zt9m63I8zdTww0SQy9QiE6iPQfQYHz6ICwgPSMZ67vbxszYqjCFZVqp/h5H1rtnOi0OBPcHLcmu2c9HDNa+4xD/MTG8lDwPq9ju1ljdeTeunRWnnpAXtSLz1cKy/BVIvHcvUd6zaJfLrw2pg+a/sdi2irgmenQY+OA9TmNPCG7dzmbrMJX2BwlU9RZFBoUwvKdejHJucXYPU3DCNxZk0tZkOPcSBSmGnu1+QU1EmclzQJMMGJ1F1zS79x/nNm3E1IBF6DqYCcD60kYaCAFMQe5ViLkIPHOLWBJ51BSoJgbnB/xLDEWemRpTpv56zNxI8dHQTkSY0pUQCh12D0N1SCfYl5pQ2JzLtiMEk+C4I50yUaBNgUA2f0LH4PI3GBoA6cNfWvQqHX16h4cmULAf01+i4Zj5aekNnn0SCzejvNU8UDFvtvnXaJJHG6YjszkTkvQHjn+sORbHa6yDa9HkCtyxVsibjJ0YrMVVaNxFk7RbffNifuh3heDaxNw8K/vHixO9/+A0aryFPxynvnHz/cKiTQhn/ruva2gHHpxumPTB3TZqvRD4Yl1wYYR56wuG0bWDfxEGCB685/t2gEQ1zyKT9dlgcGFu9fINtNECl9HZjZKcRLxvIr3Vqs9TZzFbFpw+/kBpRdl6it0N1QHLcluI8Zry8vz3cMtvwokHLHO9oCSfbviBx3K8d4udrKGpnI9o62W1vlDQtCqWPt2j9zonIyHhuXgsldoPZ4yppp5TXVUfXo/PQN1q8R4p5yNR0KvGOitdTZFFvBDaV+gwxAtzceVZQ7r7+1fOh2x7zVamIZMzes4tECLYE4Oj/deQ02jvhGQBoJ0HuKxzIZJBsm4zHEzyPQY+4+RbwPkhCK31YnXD5GrnVzOHo+OowPnQtUgB24aPf6k35T3hoaV5f0P7//d7XiazAuDeh4USNsy45jV92iGmQiJ+vdf5pIJg6fL5dzCPjem6bhz18q9MyfaSKvwWvufZFNSgf+XclJBibgPaDtXXSXb1/cFWLPMcsE44bMf8lEfsZ6418U8W3KewYvu/OjNMWSBpo7TylTfXXl/nh1KZvmX8RaJXI= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-invocation.api.mdx b/docs/docs/reference/api/fetch-invocation.api.mdx index 54fbe0afc6..962529a116 100644 --- a/docs/docs/reference/api/fetch-invocation.api.mdx +++ b/docs/docs/reference/api/fetch-invocation.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Invocation" sidebar_label: "Fetch Invocation" hide_title: true hide_table_of_contents: true -api: eJztWktv2zgQ/ivGnFpAjbPBnnxab9pus0mRIHV7CYyAlsYWG4pSyWG2XkP/fTHU2684TnpZ6GRYmvlm+M2DFMkVkFhYGN3BhX5MQ0Ey1RamAaQZGv/vIoIRzJHC+F7WIhBAJoxIkNCw9gq0SBBGQEaEeC8jCEBqGEEmKIYADP5w0mAEIzIOA7BhjImA0QpombGeJSP1AgIgSYofTBhocBFBngc1us2EboH/cGiWHfS5ULYDL/Tyeu4d7Bpi0PKJdkpBPm1Mf8mELixPGdtmqbZoGe3s9JR/IrShkZknYgRfXBiitXOnBrelMAQQpppQk/chy5QseBt+t6yzanmYGaaaZGEhTF2hVDonNeECTYuYcy8RQIRz4RTB6DRnOurIdAa9Bm5QEEb3gvZRE8A8NQnLQCQI35FMcC9f5wXsYEyQB+Cy6FcY+VrAlkYiVPgLjLwvYEsjFV2zJefcYXack9FBZP259CnW8PWqViq2aisVYa9qpaKrtlLV50sLL2j6yJFQTfsIQBAZOXNUFEGDJqJIcskIddMpkwPsVWXZcSGZdZ/M0lSh0P7RdlsQShM6Jcybj06pv22q3107yhy95YIvUNLZdwzJg0jC5EAtYYxY7mVoTdeTvmFxl/K4oTQPIDVyIfW2bo7aJTy5hM5SmkAAsUsEzx7CUQrt0MskU+ijdl2gtTpcpZ4H8CB1tM+QiOI05P+PQvEkpcRyh5lLRmobKVS57mOhNap9ZlJSGQTwD84gABs98IgyucPSeYnXMZZJz7iffI9KynZ2bebpU/l2JWb4RMK1BrMu/bxkmfAg8wASJNFX4CtV4Gcmkxu7KEntqdxHZWvSEgVxBudoUIcFTd2FUrGw3LOSekRjNxZbh89O30p1njKVWxw9X7Iur/5ebUYv1ts7ubutONsCkgcFbfePwkihqafvOPoMPspNcnr+nuaP0JLFPvGOJa6v3JcS2NfusQy29kh68l5AXl/Dr0FiX8fHssjf3U5Qanrqjqaur+GXU9hX8EvWMqGw2DP3POb26LX2Am+bXYc8ACX1w4H7f90A9Bvt/6O9qUM32vdk2PUE1ZXUD9vBy+H0SdQn0TOT6GnHrnwL2wbbnMrfFbvUnT3Xqvm1u29ziP28/too1gfwec4Kv5+dbZ7XfxNKRl568MGY1Bx/WB8hCenPiXZUmErDztvn5Op0PQotzhuaILGLfdcoPqO1YoFNSHeLejIGE37rbxRwmrF4TXKZdyH9bMFsBOOcufxJT6aE8ud07H4p114g1CEqIrSbivdFCPZlx6fJ5GYDsMiPbmJ85Esug4v2JZcEKU75AswCyd95oRhGMGyuW9jhqmp+OR8FonmsbsQ4o1i2OOmr/sZEmR0Nh+hOQpW66EQsUJM4EbIQnDJG6IykpQcZ31xc4vITiggNjO6mbYEvnJZFonXF6uCITF4i01Xenxk7ilMj/62G52/RxIVW7oM+T9sxH3vnBuObC1gnq/OK60eEPl0qS/41BGvDbkbLh6mJrx4gFMkf9RsOdr2+hNOT305O+VGWWuKj48bElnB1XKxZ4HQcZkpIXzDeoVUZyrvWzRnuSaN6JpsGEKeWWGS1mgmLX43Kc35cHg7drSCSVsxU697RAy47t5T4c4Q98HH1X3Uz5nWb6prrdUeCN7dl0bwdNBNGd0hVtPWybbNypx6SbylxlUqr8vU4DDGjluJGB2Tn60L468ME8vw/vWsFSw== +api: eJztWktv2zgQ/ivGnFpAjbPFnnRab9pus02RIHV7CYyAlsYWG4pUyVG2XkP/fTHUO37EcdLLQifD5Lz4zYMUOWsgsXQQ3sC5vjeRIGm0g1kAJkPr/53HEMICKUpuZUMCAWTCihQJLXOvQYsUIQSyIsJbGUMAUkMImaAEArD4I5cWYwjJ5hiAixJMBYRroFXGfI6s1EsIgCQpHpiyoNF5DEURNNJdJnRH+I8c7aonfSGU64kXenW58Ab2FbHQakTnSkExa1V/yYQuNc9YtsuMduhY2tvTU/6J0UVWZh6IEL7kUYTOLXI1uq6IIYDIaEJN3oYsU7LEbfzdMc+6Y2FmGWqSpYbI5CVTZZzUhEu0HWDOPEUAMS5ErgjC04LhaDzTW/QD4RYFYXwraB80ASyMTZkGYkH4hmSKe/E6K8WOJgRFAHkW/wolX0uxlZIYFf4CJe9KsZWSGq75imPuMD15LuODwPpz5UOsxetFtdRoNVpqwF5USw1Xo6XOz+cmXtDWkSNFteUjAEFk5TynMglaaSKOJaeMUFe9NDlAX52WPRPSeX9kboxCof3Qdl0QSRvlSthXH3Kl/nZGv7nMKcvpNSd8KcXMv2NEXogkTA/kEtaK1V6EHvB60Dc07mKetJAWARgrl1Jvq+ao85Q3lyh3ZFIIIMlTwbuHyMlA1/UyzRR6r12W0joVrmYvAriTOt6nSMSJifj/vVC8SSmx2qHmE0vqKilZOe8ToTWqfWoMqQwC+AfnEICL73hFmdyh6ayS11OWSY+433yPCspudG3G6WPxdiHm+EjAdRbzkPppwTLlRRYBpEhiyMAXysDPDCYXdlGBOkC5D8rOpiVK4Cwu0KKOSpj6B6XyYLnnJHWP1m0ctg7fnb5V7Lxlqnx59H7JvHz6e7EdvTxv78TuusZsi5AiKGG7vRdWCk0DfMfBZ/FeboIz4Pc4foSOHA6BdyxwQ+Y+F8Ahd49FsHNHMoD3DPCGHH4JEIc8PhZF/u7OBRk7QHc0dEMOPx/CIYOfc5aJhMMBuacht4evcxd43d46FAEoqe8OvP/rO2C4aP8f3U0detG+J8Iup6gupL7bLrxazhBEQxA9MYgeN+zCl7BtYttX+Zvylrp351oXv271bR+xn1ZfW8bmAb4omOH3t2833+u/CSVjTz16b62xxz/Wx0hC+neiHRmmTNSbfUqszh56oYN5CxOkbrmvjeIzOieW2Lp0N6kHYzTlWd9RwGHG5A3IVdxF9LMjZsMZZ4zlT3o0JJR/p2PzK7ruAaFxUemh3VC8K12wLzo+TqdXGwLL+OgHxgduchmdd5tcUqTEcAPMEsn3vFACIYzbdgs3XtfFr+CnQLT3dUdMbhXTli999d+EKAvHY2UioRLjqJyeMWeUW0krzzq5Ov+Eq48oYrQQ3sy6BF84GMvw6pM1LhGZ/IQMUtU1M8kpMVb+Wy/K984kJVfhXb0wXU9PlqhJjCZX5/AQot4UZ42IfJDUmvw0BJ3FunA8Fn74RMgxP6GmPmeAUKR/NDPs4uZUCacnv52c8lBmHPGDcatii5N6JjYocBCOMyWkTxNv0Lpy4E2nX4YrUdjsX7MA2CtMsl7PhcOvVhUFD1dPQjdriKUTc9XpNrrDVa83iT9C2ALvV/8tN2dct7E+ML2pQ/DqukqV16N2m+gvqfa2XnV11uY0S/KFJKlDaV1NT6IIM+owbtQ9Nr4J/7/eT6Eo/gOD2AHs sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-legacy-analytics.api.mdx b/docs/docs/reference/api/fetch-legacy-analytics.api.mdx index 7103ccb596..a72c59eaea 100644 --- a/docs/docs/reference/api/fetch-legacy-analytics.api.mdx +++ b/docs/docs/reference/api/fetch-legacy-analytics.api.mdx @@ -5,7 +5,7 @@ description: "Aggregate span metrics using the fixed legacy schema." sidebar_label: "Fetch Legacy Analytics" hide_title: true hide_table_of_contents: true -api: eJztWN9v2zYQ/lcIPrWAamfFnvw0r13RoF0TtO5e4qA+S2eLDUWq5CmJa/h/H46UZDpuXDftsGHok23p493H+31eS4Kll6ML+RqXkK/kZSYL9LlTNSlr5EiOl0uHSyAUvgYjKiSnci8ar8xSUIlioW6xEDocFz4vsYLB1EzNW6TGGS9IVfhk3uRXSFgI6MR5caOoFNCe90jCLsRCoS781Dya5bYxNMvErGgcMBf+nltPnr+QvULjZ4+Fr7UioQxZfkigZwJMMTUzdM46PxuISYnCl1CjqB0WQfPM15j72ZPCqWs0AgzoFfGtwBRCeXGFNU3NwrpwQbxVnvi2du7RXcNcaUUrUYAv5xZc4QWVQCK3xjcVCkXh+m/whmnhMrL3wpe20QWTWKATs/OzdxMxJAe5MsthT2H4qUG3mmVTc1OqvBSQ51hTTzkwzMEI31QVOPUZBbi5IgduFR0ERE7NG0KfTY2xJD42nqKjbONaa7deHMhM2hojw9NCjuQCKS8/RGd+6EnJTNbgoEJCx8GylgYqZLjNG36rOFICc5lJh58a5bCQowVoj5mMQSFHawlmdbYIAmhVswBPTpmlzCSapuIwZIOgzCTfhYORFGkGvgiaNll/0jRay80+giE9O1cB/VB6sERDEM1mCDWyJVe7RIPSw0wjJKFqdYH+R1BN9IboQ3eQylnUm1IxePOvUHkT9aZUtKrUdzE5Ru/roCRVy6fcNeh/WvNppydV7oDwexSbppp/Re9bVrGTKEoTum/Q2kdyPLhh6Q59bY1Hz4CnJyf8sdtK3jV5jt4vGi3etmCZydwaQkPhMnWtVR6q0fCj5zPrRGntuFaRihpCfwhcdg2+veazgLjbz94E+3Cv4cYkYmPywoVuhcUgHFhAo0mOTjaZbAGsSRFWfp8Jy/EEVZ2w6QtHW4NGkjvPE4YmDCf9yU22jbpDd9qGTCZDuztgmAfF5NZoiQ26FvzQgHvenb8jN7Tzhwp9Fg7fkRjngoeKnMTTOzJZaITb+UfMKXHGuO+Pm0zGeeOnO/4T7vgCalvNLpKMzdJiHxOqd2XC5PdQBORWLDgHK3kX4PeqzeTg8BuHsTjzikft/JqJbnZ9LEqrC548D0/DPBN2E/FO/bq4PGSvM130Jkvq8e4F4lqQjMhdmd8d3+NA2Y3/crNhxb8+fbrfBP4CrYpwBfEHX/PhHaBAAqUPFGZt85233zKoXN7v69c2EuRwqPzyS1W/g/6J3sMSt4FzPzQYQ0z4bWgGdUNppz0NDzhJ6TYRs+fUZ2zLW/pqCrBtIv0Wl0T71kXRQ/eb4nl0waEoezmZnO8JjPFRIZWWt47ahoGzBirlSPZLEe8AfphuIbx/dStI4zSDoVbBgfFnSVT70XCIzSDXtikGcWAfgIrAS5aRN07RKggZn5++wtVLhAJdyJcE8I7jLkbSLqy3PtTqFbI92jlq3FBpnfrcVdcwTpXx1CZ4dWFTp44DOTE+P93Lu51XnCCQh3joNHV7yO61t7flMlaF9JCEUP3Wv2Fvsg2jmpPBL4MTfsQuqMAkKl7wKija/B8nTtghut5m78+/Cv7nfxW0Uc/1ZVhrUKEChgBct7kb9/dY2EL2ykxu8/cykyVn+uhCrtdz8Pje6c2GH8eVgxOyUB7mOlk6rnCV/NFwDbphDiHl78W2a/8x4H7xPgbcr8bHgLvl9RhsMoQcA293xKOM0a12W/Al/3CK0aHkZV2JYvvHU+MQSsmpvb7MUvr6zQEqN5u/Aea6AcQ= +api: eJztWN9v2zYQ/lcIPrWAamfFnvw0r13RoF0TtO5e4qA+S2eLDUWq5CmJa/h/H46UZDpuXDftsGHok23pO97H+31eS4Kll6ML+RqXkK/kZSYL9LlTNSlr5EiOl0uHSyAUvgYjKiSnci8ar8xSUIlioW6xEDqIC5+XWMFgaqbmLVLjjBekKnwyb/IrJCwEdMd5caOoFNDKeyRhF2KhUBd+ah7NctsYmmViVjQOmAt/z60nz1/IXqHxs8fC11qRUIYsPyTQMwGmmJoZOmednw3EpEThS6hR1A6LoHnma8z97Enh1DUaAQb0ivhWYAqhvLjCmqZmYV24IN4qT3xbO/formGutKKVKMCXcwuu8IJKIJFb45sKhaJw/Td4w7RwGdl74Uvb6IJJLNCJ2fnZu4kYkoNcmeWwpzD81KBbzbKpuSlVXgrIc6yppxwY5mCEb6oKnPqMAtxckQO3ig4CIqfmDaHPpsZYEh8bT9FRtnGttVsvDmQmbY2R4WkhR3KBlJcfojM/9KRkJmtwUCGh42BZSwMVMtzmDb9VHCmBucykw0+NcljI0QK0x0zGoJCjtQSzOluEA2hV8wGenDJLmUk0TcVhyAZBmUm+CwcjKdIMfBE0bbJe0jRay80+giE9O1cB/VB6sERDEM1mCDWyJVe7RIPSw0wjJKFqdYH+R1BN9IboQ3eQylnUm1IxePOvUHkT9aZUtKrUdzE5Ru/roCRVy1LuGvQ/rfm005Mqd0D4PYpNU82/ovctq9hJFKUJ3Tdo7SM5Cm74dIe+tsajZ8DTkxP+2G0l75o8R+8XjRZvW7DMZG4NoaFwmbrWKg/VaPjRs8w6UVo7rlWkoobQHwKXXYNvr/ksIO72szfBPtxruDGJ2Ji8cKFbYTEIAgtoNMnRySaTLYA1KcLK7zPhczxBVSds+sLR1qCR5M7zhKEJw0kvucm2UXfoTtuQyWRodwcM86CY3BotsUHXgh8acM87+Tvnhnb+0EOfBeE7J8a54KFHTqL0zpl8aITb+UfMKXHGuO+Pm0zGeeOnO/4T7vgCalvNLpKMzdJiHxOqd2XC5PdQBOT2WHAOVvIuwO9Vm8nB4TcOY3HmFY/a+TUT3ez6WJRWFzx5Hp6GeSbsJuKd+nVxecheZ7roTZbU490LxLUgGZG7Mr87vseBshv/5WbDin99+nS/CfwFWhXhCuIPvubDO0CBBEofKMza5jtvv2VQubzf169tJMjhUPnll6p+B/0TvYclbgPnfmgwhpjw29AM6obSTnsaHnCS0m1yzJ5Tn7Etb+mrKcC2ifRbXBLtWxdFD91viufRBYei7OVkcr53YIyPCqm0vHXUNgycNVApR7JfingH8MN0C+H9q1tBGqcZDLUKDow/S6J6NBxqm4Muraf4+pIl88YpWgXR8fnpK1y9RCjQhSxJAO842mL87MJ6m0OtXiFboZ2exg2V1qnPXU0NQ1QZpTbBlwubunIcdggxPj/dy7adV5wWkIco6DR128f2sn40HMalZABqyMWrCkkhCaH6rX/DPmTLRTUng18GJ/yIDV+BSVS84AVQtFk/Tky/Q3S9zdmffxD8z/8gaKOeq8qw1qBC3QsBuG4zNm7tsZyFnJWZ3GbtZSY5Exm2Xs/B43unNxt+HBcNTshCeZjrZNW4wlXy98I16IY5hES/F9su+8eA+3X7GHC/EB8D7lbWY7DJ6HEMvN0MjzJGt9BtwZf8wylGh5KXdSWK7R+lxiGUEqm9bsyn9FWbA1RuNn8DXgD+Vg== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-organization-details.api.mdx b/docs/docs/reference/api/fetch-organization-details.api.mdx index 96012bb077..ff2d06e2fc 100644 --- a/docs/docs/reference/api/fetch-organization-details.api.mdx +++ b/docs/docs/reference/api/fetch-organization-details.api.mdx @@ -5,7 +5,7 @@ description: "Return the details of the organization." sidebar_label: "Fetch Organization Details" hide_title: true hide_table_of_contents: true -api: eJy1VlFv2zYQ/ivCPa0AYafBnvQ0Y2lXo+saJN72YBgBI50ktpSokqe0nsD/Phwly5QTZ1uwPtki77473vfdkT2QLB2kW/hoS9movyQp0zjYCcjRZVa1/A0p3CB1tkmowiRHkkq7xBTh00SOCxBgWrThY51DCgVSVt3FNnejPwhopZU1ElrOoIdG1ggpzIxVDgIUZ9BKqkCAxS+dsphDSrZDAS6rsJaQ9kD7lt0dWdWUIIAUaV6IT5asc/B+xzCuNY1Dx56XFxf8Mz/xbZdl6FzR6eRmNAYBmWkIG2Jz2bZaZQF2+cmxTx9l01ouBKkhgsqfy5CTEuB0VwbcZv+xCAWZ23sxrTSd1sDHOCDcsq8XYwlfhvEb+/oT4l8GdRVBeAGFDiKLsWSeK96W+joq1EDpiGruP2FGz8Z5G4C9GFX8/wfYjPg1kvwe+B8Y1wswXxu0d0+rpDC2lgQpdF3ohknX7JMM2qmxvg9t1IMirN1jHD+lJa2Ve4hzGHw9N9qDonEERFDnfdeRgxfw1djPrpUZviyTP4/uQYeF7DTdTaDfg4CrIUgyhQbvT/3jobOFwMHE1+7pOXM1zjjvGe7Hy8vH8+UPqVU+DKU31hr78uEyDNRZxecG2mSz3X/R0qohLNGC352n61czJBgE6MrnJtwHdE6WeOT+vGkoRrLh3aDItgsFOSqOF7yAjL5FMBNVB7ufuZbf6B/p5NoM6Y92EaNHigaGzpdi4PvJYAeTd5vN9SPAQR81UmX4tiyRwrVIFaSwjC9Ct+xP7kUPAhzah8Pt2VnNTrJVgcfhsyJqXbpcYrfItOnyhSyxIbmQajDcMUbWWUX7ALK6Xr/H/TuUOVpIt7vY4JblNwhqbjaRIFv1Hrks402+6qgydkz5cI9Xg5cP5BYm5nYVkktW12s4fX/MtrhPZBZkcYgUtkGcHPt4WhCAdegSIJT1T9MOk8o1HMJcLF4vLnipNY5q2UQh3vJLJpk9Jq6ml8zJnTk18n94N401ZNEuWy1VaKtwnH5UxHb2NOKw6elbaSegMo7Ytu/vpcPfrfael790aJnjnYAHaZW854pve8iV4/85pIXUDp85yg83Y9u8Ss6le9BBwyJ4kLrjLxDwGfdPPOzCbKkOWutHq1WWYUuR/6NRyKKcWuaXNxvw/m+DZ7O5 +api: eJy1VlFv2zYQ/ivCPa0AEaXBnvQ0Y2lXo+saJN72YBgBI50ktpSokqe0nsD/PhwlK5QTZ1uwPtki77473vfdkQOQrBxkW/hoK9mqvyQp0zrYCSjQ5VZ1/A0ZXCP1tk2oxqRAkkq7xJTh00SOZyDAdGjDx7qADEqkvL6NbW4nfxDQSSsbJLScwQCtbBAyWBirAgQozqCTVIMAi196ZbGAjGyPAlxeYyMhG4D2Hbs7sqqtQAAp0rwQnyxZF+D9jmFcZ1qHjj0vzs/5Z3nimz7P0bmy18n1ZAwCctMStsTmsuu0ygNs+smxzxBl01kuBKkxgiqey5CTEuB0XwXcdv+xDAVZ2nsxr7S91sDHOCDcsK8XUwlfhvEb+/oj4l8GdRlBeAGlDiKLsWRRKN6W+ioq1EjphGruPmFOz8Z5G4C9mFT8/wfYTPgNkvwe+B8Y1wswX1u0t0+rpDS2kQQZ9H3ohlnX7JOM2mmwuQttNIAibNxjHD+nJa2Ve4hzGH09N9q9omkERFCnfdeRgxfw1djPrpM5viyTPx/cgw5L2Wu6nUG/BwGXY5BkDg3eH/vHQ2cLgYOZr93Tc+ZymnHeM9yPFxeP58sfUqtiHEpvrDX25cNlHKiLii8NtMkXu/+ipVVLWKEFvztN169mTDAI0FXPTbgP6Jys8IH706ahGMmGd4Miuz4U5EFxvOAF5PQtgpmpOtj9zLX8Rv9IJ9dmTH+yixh9oGhk6HQpRr6fDHYwebfZXD0CHPXRINWGb8sKKVyLVEMGaXwRunQ4uhc9CHBo7w+3Z281O8lOBR7Hz5qoy9JUm1zq2jgat3fsmfdW0T64rq7W73H/DmWBFrLtLja4YdGNMlqazaWXnXqPXIzp/l71VBs7JXq4vevRywdKSxMzuqqwJZmsrtZw/OpYbHF3yDyI4RApbIOIDuuyNJVh+UyqFARgE3oDCGXz07zDVHLlxjDnZ6/PznmpM44a2UYh3vL7JVk8IS7n98vRTTm37394LU01ZKmmnZYqNFM4zjDpYLt4EHHY7PiFtBPA5LLtMNxJh79b7T0vf+nRMsc7AffSKnnHFd8OUCjH/wvISqkdPnOUH66nZnmVnEr3oIOWRXAvdc9fIOAz7p94zoWJUh+0NkxWqzzHjiL/RwOQRTk3yi9vNuD935lQsFo= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-plans.api.mdx b/docs/docs/reference/api/fetch-plans.api.mdx index e2f5923a97..1de7963ade 100644 --- a/docs/docs/reference/api/fetch-plans.api.mdx +++ b/docs/docs/reference/api/fetch-plans.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Plan User Route" sidebar_label: "Fetch Plan User Route" hide_title: true hide_table_of_contents: true -api: eJx1Uk2P2jAQ/SvonS2gPeZUKvUD7QXtdk8oqgYzELeO7doTVBrlv1eTAF2Qmktkz5uZ9+EeQseCaouPznsXjqgNYuJM4mJY71HhwGKb78lTKDDIXFIMhQuqHu+XS/3tudjsknagwktnLZdy6Pzs+QKGgY1BOIjCKSXv7Lhg8aNoT49iG24JVT/oZx5GflYKs42nMHstnGfPsRMd2rI0UTkeWWCQSBpUWOwmKYsr58L5xFlV9uiyVwglh8Fcj41IKtViwd3c+tjt53TkIDQnNwFrnWG77OQ8Dllt1k98/sq054xqW78FvKiSyZ57WA85J0YFSu6JzzAI1Op51UkTs/szOgIDp5KbqUu9cOEQx3YnfsSP5GarzRqPRt2V1HKyo+XXTWMZ5kH2P7Uw4JacFoWp/XCrYDBQD6c1y/m7+VKvUizSUniz4n9R3fG8WSH8WzQmF3TayKq/xLjFJUYNdgyyNmhiES31/Y4Kv2Y/DHr9q+OsydQGJ8qOdurTth7M1UYN7Sef1QJrOeljOZHvpjQeXqOGeXtYXz59wzD8BUuEEEo= +api: eJx1Uk2P2jAQ/SvRnC1Ce/RpqdQPtBe02z2hqBrMQNw6tteeoKZR/ns1DiBA2lwiz3vz9d6MwHjMoLfwxTpn/REaBSFSQrbBr/eg4UBs2l/Roc+gIFGOwWfKoEf4vFzKb0/ZJBslAzS89sZQzofeVS9nMigwwTN5FjrG6KwpDerfWXJGyKalDkGPk3zqoeQ3GaHaOPTVW6ZUvYSepWhH3AaZ8UgMCiJyCxrq3bxKfZk5UzpRki1H6JMTCkYLk7o8W+ao69oFg64NmWe4kUzTJ8tDSV1t1s80/CDcUwK9bW4JrzL/LMo9bQQeIoEGjPaZBlDgsZP3quc2JPuv6AAKrCzazlmigPWHUNItu8I/kmesVps1PMpzB4nQaIrQl04FBnWzbNZ1jSW8QFuDAurQCsiE3dMVgUmBKDe3WS4+LZYSiiFzh/6mxUcG3c15lYLpL4s51ku1MtV4Nm8LZ/PEzmJfo0AsEWgcd5jpLblpkvB7T0mcaRScMFnciU7bZlIXGcW0PzSIBMZQlBM5oetnNx5uUMy8ntP3rz9hmv4DpLUM6w== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-query.api.mdx b/docs/docs/reference/api/fetch-query.api.mdx index 4a4fe07c5c..6bbf35fc06 100644 --- a/docs/docs/reference/api/fetch-query.api.mdx +++ b/docs/docs/reference/api/fetch-query.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Query" sidebar_label: "Fetch Query" hide_title: true hide_table_of_contents: true -api: eJy1V99v2zgM/lcCPm2AlmTFPfnpcu1663Z369bsXoKgUGwm1k62XIkq5hn+3w+U7cSO+2tF9xTHIj+SHymSroDkzkG0gs8erUIHawGmQCtJmfwigQi2SHF6fePRliCgkFZmSGhZqYJcZggRhNNrlYAAlUMEhaQUBFi88cpiAhFZjwJcnGImIaqAyoL1HFmV70DA1thMEkTgfUAhRZoF2KtycpFAXa8ZzxUmd+gY4mQ+558EXWxVwe5CBFc+jtG5rdeTL60wCIhNTpgTi8ui0CoO0c2+Odapem4VlmMn1ViIjW+UWm9VTrhD23PvNEgISHArvSaI5rVoyAi28vLTNtA0xN0anaBlugZCD3NSi71E7rUG5qNz4zwABpoEbHXI6L3ma9HhmM03jOmY7fOgPzbHeiNkmSSKuZT6chDiKKqNMRpl3sdtA+U3d8NArGzstbSv/pIb1B+cyd988lR4eg3HQfTpOJaGUcgPkblswocMST4z2F5kR6UzMJxthm/6HD3GyLnXjxAiKlCE2RO1pLWyfLjIhro/R+rfTGYt2n7xJMpGGP+wbi2GN/55UGc9iFpAbFESJteSnngjE0n4hlTw534rpw3sZBHI8kXyK4x8bWBbIwlq/AVGzhrY1khH16Z8wR7WkfVH2faxjq8XtdKxtbfSEfaiVjq69lac9rvn1uoV69YCXs69ME4fmQJ3DYDHdPYTt65Z9reTk/GA/ldqlYTxO3lnrbHPn84JklSan9o2dyygTTw4/Zk2va6POmNvupjGwTAj3O6ubebQ9ZyTOzy0yvtFAxmTJZ9yrnPusCzepSxvW25M33swozycMpff6c78HraxVeCmcb+V65XHIUVNhu6n4qxJwUOF8X65vBwBNvUxLIxzXjMnn9s1M0NKDW+fO6SwdVIKEcxumiV1VnULZw0CHNrbbh/1VrOcLFRIa/M3JSpcNJuhn8ba+GQqd5iTnErVCK4ZI/ZWURlAFpcXH7F8jzJBC9Fq3Re44mps6msots+JLNRH5Bja3XjhKTVW/WiKpl2Q00arDrnemn6qF8G5yeLyAo45GhzxtZFxqJLOUjgGcRT2IVoQgFm4NEAos9/3J5xj5rAxM5++nc75VWEcZTLvmRhm6WgStwRwAc4KLVW4IsGXqs3gCtoMgoBo/9GwFpAaR3xcVRvp8KvVdc2v21V6tRZwK62SG2ZoVUGiHD8nEG2ldjjyZN9S4NWXtupfTw7LztDDLm85h3Qrted/IOA/LPufNqEnpF1RVO3xIo6xoJ7iqIVx9ezL+c93S6jr/wHUdpKP +api: eJy1V0tv20YQ/ivCnBJgYylGTzxVtePGSds4sdKLIBgjciRuunx4d9YIQ/C/F7MkZVLyK4ZzkrQ7z++bnRnVwLh1EC3hsyerycFKQVGSRdZFfp5ABBviOL269mQrUFCixYyYrCjVkGNGEEG4vdIJKNA5RFAip6DA0rXXlhKI2HpS4OKUMoSoBq5K0XNsdb4FBZvCZsgQgffBCms2IiBRVZPzBJpmJfZcWeSOnJg4ns3kIyEXW11KuBDBpY9jcm7jzeRLJwwK4iJnylnEsSyNjkN2029OdOpBWKWV3Fm3HuLCt0pdtDpn2pIdhHcSJBQktEFvGKJZo1owgq+8+rQJMI3tbgqTkBW4RkIPY9KonUTujQHBow/jLBgMMCnYmMDove4b1dsp1t8o5n20z4L+oTvRO7CMSaIFSzQXoxQPsloXhSHMh3a7ROXkbjMQaxt7g/bVX7gm88EV+ZtPnkvPr2E/iSEc+9JwkPJDYC7a9CEjxmcmO8hsr3RGjrP1+GSI0WOInHnzCCCqBs2UPVELrcXq4SIb6/4cqH8LmI3q+sWTIDuw8Y/oNmr84p9n6nRgolEQW0Km5Ar5iS8yQaY3rEM893s5ac1O5gEsXya/wsnX1mznJCFDv8DJaWu2c9LDta5esIf1YP1RdX2sx+tFvfRo7bz0gL2olx6unRdn/Pa5tXopuo2ClwsvjNNHpsBdA+Axnd3EbRqR/e34+HBA/4tGJ2H8Tt5ZW9jnT+eEGLWRb12b2xcwRTy6/Zk2vWr2OuNguhRtgGFGuO1d28xt13MOt3TbKu8XDWBMFnIrXOfSYUW8pyzvWm7M3wdmDng4ESy/85383m5jy4BNG34nNyiPW4pahu6H4rSl4KHCeL9YXBwYbOtjXBhnsmZOPndrZkacFrJ9bonD1skpRDC9bpfUad0vnA0ocGRv+n3UWyNyWOpAa/szZS6j6dQUMZq0cNxer0Qz9lZzFVTnF+cfqXpPmJCFaLkaClxKDbZVNRbbMYGl/kgSebcRzz2nhdU/2lLp1uK01WoCw5tiSPB8SznjZH5xDvvIjK7ksWAcaqP3FK5BDZJ10XSK4fgI9RQUUBaeCjBh9vvuRpgV5Fo3s6O3RzM5KgvHGeYDF2Nu9uZvB4CU3bQ0qMPDCLHUHW9L6HgDBdHur8JKgZAh13W9RkdfrWkaOe4W6OVKwQ1ajWtBaFlDop18TyDaoHF0EMmukcCrL12tv57crjjjCHvecknpBo2XX6DgP6qGf2hCJ0j7oqi763kcU8kDxYPGJdWzK+I/3y2gaf4HFY6PMA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-queue.StatusCodes.json b/docs/docs/reference/api/fetch-queue.StatusCodes.json index f815b1ad52..babed34b89 100644 --- a/docs/docs/reference/api/fetch-queue.StatusCodes.json +++ b/docs/docs/reference/api/fetch-queue.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-queue.api.mdx b/docs/docs/reference/api/fetch-queue.api.mdx index a11afcda5b..890ad89753 100644 --- a/docs/docs/reference/api/fetch-queue.api.mdx +++ b/docs/docs/reference/api/fetch-queue.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Queue" sidebar_label: "Fetch Queue" hide_title: true hide_table_of_contents: true -api: eJy1WEtv20YQ/ivEnBKAsVyjJ56q+NGobhvHsnMxBGFEjqRNVkt6H0YUgf+9mF2SIinZll3nZGp35pvnzsMbsLgwkNzB+QNKh1bkysAkhrwg7X+NMkhgTjZdTu8dOYIYCtS4IkuaGTegcEWQgL+digxiEAoSKNAuIQZN905oyiCx2lEMJl3SCiHZgF0XzGesFmoBMcxzvUILCTjnUaywkgm+MHA0yqAsJ4xnilwZMgxxcnzMfzIyqRYFqwsJjF2akjFzJ6PrihhiSHNlSVkmx6KQIvXWDb4Z5tm01Co0225FkJDmLjBV2gplaUG6pd6pp4ghozk6aSE5LuPgDC9LrT/PvZu6uHPp/f44gTBTQ/eOlBUoWwrM8lwSqpYCIxONt5QtReYoDZVlXLPms2+U2hbnNubexxdepzJuZCknJZQTRtjRFrNMMCfKq47eW4qewi3cKuR8sh8GUqFTJ1G/+xtnJP8yufrw2dnC2ffQN4eTojaoTw07xu9at+W+CebDiiy+0tiWZb2E6QhezbonbR8955ELJ59xSLwBYWl1IBdqjesn/dLjfZlT/2FnlnFVJQ5y2Q7Gv8xbxt13/jqosxZEGUOqCS1lU7RPAbZqU4aWPljh9XlcymmAjYbeWa7IfoWQ2wBbCclI0i8QchZgKyG1u2ZrLvSHyfHV/BBnfVz7Ir/115tKqb3VSKkd9qZSanc1Ut4OOuA9kDb/I/2/VuxlDMaidU9WsRhIuRUPBwWpLJz4xsbdWTulwpEJ/ZaNQSGd5m5LWueaj1JUKUlJGUz29Z1xUGKfyk0ba6Rz0LBfmrtd0xnSU5H1zKqqYevjuTD0i+PhxfLWkI5GmW8kJiWFWuRPaPRSRR4XPK6ENcItFdPvtD5M8oskWSqiS0YuY5ghj4ZG/Nxf3fe2vx7eR4aIxgzRAObzuaH9pexwyM8B5AUj0Bn6brVnAtJOVXXi0Ln12qkwte5K3w7FdzXw3ufhddqnz+EWNSNwWTLX7ycnuxPzV5Qi8yzROT/c14/LGVkUsvPUugQyTzu3L5mgJv0kbQ1+eVDQj29msS9M24HEGFzQNuMfJ/XOiG74lku54uGHyeuKrKppKLU/WjA7ETllX/7Yn4ftTGDfBPUrunbhbkIUIvS4K85CCJ5KkU83N1c7gCE/uolxwXtf9KXa+1Zklzmvgwuyfg20S0hgQNvNceDbgxls6mWw5P5A+qHeFZ2WzIKF8BEOP5fWFiYZDMgdpTJ32REuSFk8QhEIJ4yROi3s2oMMr0aXtP5EmJGG5G7SJhhzYoZU65I14cFCXBI7rNpbh84ucy1+hvypltdl4Cp92Od5O+pDr1w0vBpB312dK35BmPqEqSX5a4h7Zm+t5ca58u8HLOHqj+am0/nh+Oi3o2M+KnJjV6haIroB683LlQM4FweFROFfi9dlUwXzDlrBrLs9fyTNdj+JYZkby7SbzQwN3WpZlnx870hzgCYxPKAWOGN33W0gE4a/s2oh3VGrKTXw7rp6De+j7X7SVbcOouIIsq78C2L4Tuv2/yB8rVjWGbKprodpSoVtMe6UNk6lJs3/PL+BsvwPI/HWcg== +api: eJy1WEtz2kgQ/iuqPiVVivG69qTTOn5sWO9uHGPn4qKoRmpgkmEkz8MVQum/b/WMJCSBMfY6J2Cm++vn9IM1WJwbSO7h4hGlQytyZWAcQ16Q9r+GGSQwI5suJg+OHEEMBWpckiXNjGtQuCRIwN9ORAYxCAUJFGgXEIOmByc0ZZBY7SgGky5oiZCswa4K5jNWCzWHGGa5XqKFBJzzKFZYyQRfGDgaZlCWY8YzRa4MGYY4OT7mj4xMqkXB6kICI5emZMzMyeimIoYY0lxZUpbJsSikSL11g2+GedYttQrNtlsRJKS5C0yVtkJZmpNuqXfmKWLIaIZOWkiOyzg4w8tSq88z76Yu7kx6vz9NIMzE0IMjZQXKlgLTPJeEqqXA0ESjDWVLkRlKQ2XMUM3ZfpzzimwLpIxrvnz6jVLbYtskjg/UpTesjBtBykkJ5ZgRtkzGLBPMifK6Y/yGoqdtC7fKGz7ZDQOp0KmTqN/9jVOSf5lcffjsbOHse+ibw5lVG9Snhi3jt63bcN8G82FJFl9pbMuyXtZ1BC+n3ZO2j57zyKWTzzgkXoOwtDyQC7XG1V6/9Hhf5tR/2JllXJWag1y2hfEv85Zxt1i8Duq8BVHGkGpCS9kE7T7AVoHL0NIHK7w+T0s5C7DRqXeWK7JfIeQuwFZCMpL0C4ScB9hKSO2u6Yq7xWFyfEs4xFkfV75TbPz1plJqbzVSaoe9qZTaXY2Ut4MOeI+kzf9I/68VexmDsWjd3ioWAym35AmjIJWFE98ducVrp1Q4MqFpszEopNPcsknrXPNRiiolKSmD8a6+MwpK7FK5aWONdA4a9ktzt/U6Q3oisp5ZVTVsfXkuDP3ieHixvDOko2HmG4lJSaEW+R6NXqrI04JHlbBGuKVi8p1Wh0l+kSRLRXTFyGUMU+T50oifu6v7zvbXw/vIENGIIRrAfDYztLuUHQ75OYC8YAQ6R9+tdkxA2qmqThw6/N44FUbfbembyfq+Bt75PLxOu/Q53KJmji5L5vr95GR77P6KUmSeJbrgh/v6mTsji0J2nlqXQOZp5/YlE9S4n6StwS8PCvrxzcx3hWkzkBiDc9pk/NOk3hnRLd9yKVc8/DB5XZFVNQ2l9kcLZisiZ+zLH7vzsJ0J7JugfkXXLtxNiEKEnnbFeQjBvhT5dHt7vQUY8qObGJe8PEZfquVxSXaR8045J+t3SbuABAa0WT8Hvj2YwbreKEvuD6Qf64XTacksWAgf4fBzYW2RDAYyT1EucmPD9Zg5U6eFXXnW0+vhFa0+EWakIbkftwlGnI4hwbpkTVCwEFfEbqpW3lNnF7kWP0PWVHvvInCVPtizvB3r0zkpi9Hp9RD6Tupc8bvB1KdJLclfQ9wy1iSDAfrjIxQDbpdL/2rAEi7/aG46/R6Oj347OuajIjd2iaolohum3pRcOYAzcFBIFP6NeF3WVQjvoRXCusfzl6T5Y2AcA0eGadfrKRq607Is+fjBkeYAjWN4RC1wyu66X0MmDH/PqjV0S62mwMC7m+oNvI82W0lX3TqIiiPIuvIviOE7rdp/X/gKsagzZF1dn6YpFbbFuFXQOJWa5P7z4hbK8j+Y4+qE sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-result.api.mdx b/docs/docs/reference/api/fetch-result.api.mdx index 392bd76d20..d087d888cf 100644 --- a/docs/docs/reference/api/fetch-result.api.mdx +++ b/docs/docs/reference/api/fetch-result.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Result" sidebar_label: "Fetch Result" hide_title: true hide_table_of_contents: true -api: eJztWEtv40YM/isGT7uANk6DnnRqmk2aNF1skHj3EhgBPaKt2Y5GyjyCuIb+e8EZSZZsx3kge2pPtkfkR/IjhyK9AocLC+ktnD6g8uhkqS1MEygrMuHXRQYpzMmJ/M6Q9cpBAhUaLMiRYc0VaCwIUoiP72QGCUgNKVTockjA0L2XhjJInfGUgBU5FQjpCtyyYkXrjNQLSGBemgIdpOB9QHHSKRa4DsijiwzqesqAtiq1JcsYR4eH/JGRFUZW7DGkcOOFIGvnXo2uG2FIQJTakXYsjlWlpAgBjn9Y1ln1/KoMh+9ktCBKH5Uad6V2tCDT8+8kSCSQ0RyZofSwTho6gjG9/DoPTA2B5ypw3xfALJPsFKqrgehaonFiVpaKUEOdbNLIJ7thQEgjvELz4S+ckfrTlvrTV+8q7z5yMBGlnP0g4YB5bsPblIZ6S3rthfZKDbTPQpSs8l+IdtIEW5DDNwbbi2yj4gaGi9nwpM/Rc4ycefUMIckKpKPihVpoDC73V8FQ93WkfmEy6wSEIXSU3aHbR1yvj2To6JOTBe2FP4mwo+Pglq+yn2HkW4RtjGSk6CcY+RxhGyMtXbMlN+WX2Qmd9yVk/b4M/XjN17taadnqrLSEvauVlq7OyvtBR7wHMlbGt8sLrvkWyPdGvU4gR5u/Y+TnaPMmZmdQ0DPQezse67dYZJ1A+xzcazydNJCNBTKmNP831ndqrKeBzToB69D5vawlQNoXPClWpLN4cu/JEw9qxmsdj2ycvDjFKJU3PHeFnPGRQC1IKcqg70M3eN5EJ3Y53E1WnXW+rdqReUC10+2dqd28pC0AkyYLsg6L6l0b8qRDDRNhRcgD8uObPb4OEKOL7HFz3LSOqru/ablrrm61bxxVo0tahowL0mhk2VzVl47iN41acx2N168EuPY6DvKbddpfFG7X4Qw97SzuLKC4J+wgcJe1p9S7haGuWe3Xo6Pt/eI7KpkFnVG8Qm9eLjJyKEMFN11hU0CVYvD0NV1tWm80kt6UW0YHw6xqF/uq5gtZiwtad5anRQMZowk/DfeTGxKLd/et6VDCPfZgtlJywlw+umeLhLmJ7jdy/Xdnl6KuyT1BxeeYgn01cj6ZXG0BxvoYFsYZL8qj63ZRLsjlJS/QC4p7s8shhTGtd+1xXBPteNWtzzXXPJmHdr32RrESVjIkOf7MnatsOh6TPxCq9NkBLkg7PEAZBaeMIbyRbhlAjq8uLml5TpiRgfR22he44dqM1TYU6zKElbwMd7FZ9Y+9y0sj/4kl1Kz7edSqQ+bnZT/xx8G50fHVBWwyNnjElwhFqJnWUngMyUbY62j5/VKEKwSOsPitezKYv+Dw4JeDQz6qSusK1D0TGzkbuNcxwPU4rhTKcGOCM6smn7fQyye0iz9/S9d/iUwTyEvrWHq1mqGlb0bVNR/fezKco2kCD2gkzpix2xVk0vL3DNI5KktbjnUNBz5cN3fi42g9OQwdbvOoOYnsLf+CBMILo/fPTWgZeVslq+b5sRBUuZ7mVofjcuqK/Y/TCdT1vwIIQ9o= +api: eJztWEtv20YQ/ivCnBKAsVyjJ57qOnbtukEMW8nFEIzRciRuulzS+zCsCvzvxeySFCnJ8gPOqT1J3J3nNw/OcAUOFxbSWzh9QOXRyVJbmCZQVmTC00UGKczJifzOkPXKQQIVGizIkWHOFWgsCFKI13cygwSkhhQqdDkkYOjeS0MZpM54SsCKnAqEdAVuWTGjdUbqBSQwL02BDlLwPkhx0ikmuA6SRxcZ1PWUBdqq1JYsyzg6POSfjKwwsmKLIYUbLwRZO/dqdN0QQwKi1I60Y3KsKiVFcHD8wzLPqmdXZdh9J6MGUfrI1JgrtaMFmZ59J4EigYzmyAilh3XSwBGU6eXXeUBqKHiuAvZ9AswyyUahuhqQrikaI2ZlqQg11MkmjHyyWwwIaYRXaD78hTNSf9pSf/rqXeXdR3YmSilnP0g4YJxb9zapod6iXluhvVID7rPgJbP8F7ydNM4W5PCNzvY828i4geJiNjzpY/QcImdePQNIsgLpqHghFxqDy/1ZMOR9HahfGMw6AWEIHWV36PYB1+sjGTr65GRBe8WfRLGj42CWr7KfoeRbFNsoyUjRT1DyOYptlLRwzZbclF+mJ3Tel4D1+zL04zVe76qlRavT0gL2rlpauDot7yc6ynsgY2V8u7ygzLeEfG/Y6wRytPk7en6ONm98dgYFPSN6b8dj/lYWWSfQPifuNZZOGpGNBjKmNP831ndqrKcBzToB69D5vaglQNoXPClWpLN4cu/JEw9qxmsdj2ycvDjEKJU3PHeFmPGRQC1IKcqgb0M3eN5EI3YZ3E1WnXauVu3IPKDaafbO0G4WaSuAQZMFWYdF9a4NedJJDRNhRcgD8uObLb4OIkYX2ePmuGkdVXd/03LXXN1y3ziqRpe0DBEXpNHIsinVl47iNw1bU47G61cKuPY6DvKbedpfFG7X7gwt7TTuTKC4J+wAcJe2p9i7haGume3Xo6Pt/eI7KpkFnlEsoTcvFxk5lCGDm66wSaBKMbh9TVeb1huNpDflltHAMKvaxb6s+ULW4oLWneVp0gDGaMK3oT65ITF5V29NhxLusSdmKyQnjOWjezZJGJtofkPXf3d2Ieqa3BNQfI4h2Jcj55PJ1ZbAmB/DxDjjRXl03S7KBbm85AV6QXFvdjmkMKb1rj2Oa6Idr7r1ueacJ/PQrtfeKGbCSoYgx8fcuSodj1UpUOWldfF6ypzCG+mWgfX46uKSlueEGRlIb6d9ghvOyJhjQ7IuLljJy1CBzYJ/7F1eGvlPTJxmyc8jVx3iPS/74T5ekHY4Or66gE2cBldcOihCprSawjUkPWdtOh5jOD5AOea3ShEKBxxh8Vt3M5i64PDgl4NDPqpK6wrUPRUbkRqY1yHAWTiuFMpQJ8GYVRPFW+hFEdp1n/+l6w8h0wQ4OEy9Ws3Q0jej6pqP7z0ZjtE0gQc0EmeM2O0KMmn5fwbpHJWlLcO6NgMfrptK+DhazwtDg9s4ag4iW8tPkEB4TfS+14RGkbdZsmruj4WgyvU4t/oap1OX4n+cTqCu/wVdJUB7 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-run.StatusCodes.json b/docs/docs/reference/api/fetch-run.StatusCodes.json index af6f5e9ecc..e6d39ee0ba 100644 --- a/docs/docs/reference/api/fetch-run.StatusCodes.json +++ b/docs/docs/reference/api/fetch-run.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-run.api.mdx b/docs/docs/reference/api/fetch-run.api.mdx index d286867d50..c6b94483fa 100644 --- a/docs/docs/reference/api/fetch-run.api.mdx +++ b/docs/docs/reference/api/fetch-run.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Run" sidebar_label: "Fetch Run" hide_title: true hide_table_of_contents: true -api: eJy1WEtv20YQ/ivCnBKAsZygJ52q+lGriRtXcnIxBGO1HEmbLpfMPoyoAv97MbukRFKkKDvOyRY58837wdmCZSsDowe4emLSMStSZWAeQZqh9r8mMYxgiZavH7VTEEHGNEvQoia2LSiWIIxAO/UoYohAKBhBxuwaItD43QmNMYysdhiB4WtMGIy2YDcZcRmrhVpBBMtUJ8zCCJzzKFZYSQRTpwaTGPJ8TmgmS5VBQwAfzs/pT4yGa5GRojCCmeMcjVk6OZgWxBABT5VFZYmcZZkU3Ns1/GaIZ1tRKtNktRVBAk9dYCp0FcriCnVFuQtPEUGMS+akhdF5HpEjvCS1+bz0DqqjLqX3dzeBMI9SPGFF8CJNJTJVETwxg09EUxG9ZNJgHhE74/YEgHGgaofgMjUUtuMQF4GqHeK7Q9erxD+eqEMHxtcn6BCo2iFMJoXtQ5h5ohaANfNW6CIwnRg3zBvi6TpgLBpr0Pbj3JeEHUAYqjTV/VBXe9IOMO6MTZNeoItA1gGydglTvRg3nqoDgjmb9iKMiegAII9KrnTxDbmtMO0b2tSpa192ebQTopyUkM+J/6AgWRwL4mPyrlaae4qGphXcoqPRk3YY4EJzJ5l+84ktUP5lUvXus7OZs2+haQx1vdKcJjUcmH5o3Z77PpgPCVr2QmMrljU6Yk1wsqg/qfqozyPXTvY4JNqCsJicyMW0ZpujfmnwPs+pt+TMPCpG4EkuO8D4m3jzqD7IXgZ1WYHII+AamcX4kdljgJXRGzOL76zw+nRLuQiwg7F3lsviXyHkS4AthMQo8RcIuQywhZDSXYsN7TGnyfHLyinO+mPjt5i9v15VSumtnZTSYa8qpXTXTsrrQQe8J9TmJ9L/a8GeR2Ass+5oF4sAlUto781QxeGJ31holdBOqfDIhIWSjGFCOk27CmodZipniqOUGMO8berMghJtKu+G2E46BY01W3N9MTQWs4ZNRStsUv6Lm7Ydu1TxI272fa7bMUJRQ6SF/ikNKzNEwJRKbfhRnS4EkUeQarES6hgoL3eJdbEQ+NlfgfocIGiRxiVqVLwYRx1jqm75K6aQdKuXwsyI99UL5MiqMy1ddTi/Woj8IuCj+3rp1CJ3//H34CFai2Tq1CWzbGYxm6j6AO4f3pNgwynCC4pditbSq0+zZyk182Xq8zdD1nTxsc2pATQt+Cvt4j1tcCzLhGqurB2h46l0iWoJqVDx0ZjS+8pm00UXtpc+/xNYgXXM1bfBsougs2/jmL20u/kLxBGyO3p/WuZ4qBMUD6nSA1lEpDDuBNRnJd9tmRwnfxiRpLbvolP5f4Z3d6PJc+L57cOHw5POVyZF7BkGVzR4X37PidEyIf2Jpb1YZMprb5/zBTRvRqny4VZOTypeszqWlLdoDFvhsem8cyQ5Y1AO3jCribzaGv1aa39UYA7icUG+/GF705Z8E9Qv6KpTcxeiEKFuV1yGEBxLkJv7+7sDwJAf9cS4ppPkYOpPkgnadUp3yhXasmBHMMT9SXOonTLDbbhS5lR+qJ/KE6bTkshZJnxsw8+1tZkZDYfozrhMXXzGVqgsO2MiEM4Jgzst7MaDjO8mH3FzgyxGDaOHeZVgRikZkqxOtgsMy8RH32yKc+rY2XWqxX/l3uWvquvAlfuAL9NqvMdeucH4bgJNR9VeUe0w7lOllORfQ9Qwe28tbW+JrxywyJLfd29qOzucn70/O/edNzW2OAkVIqqhanznFuZTDg4zycLm5zXZFmF8gEoYw3JOf0bFwXkewTo1lui22wUz+EXLPKfHdLqj0MwjeGJasAU56mELsTD0f1yckA5U2rUXeDMtKuDtYH9TqKtahk9R7EhP+gVRGFLlUdx3h3WZGcUEgzHnmNkK20EzoxTapfafV/eQ5/8DNAEQLQ== +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-scenario.api.mdx b/docs/docs/reference/api/fetch-scenario.api.mdx index 13e9b2100f..bfd7f5606e 100644 --- a/docs/docs/reference/api/fetch-scenario.api.mdx +++ b/docs/docs/reference/api/fetch-scenario.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Scenario" sidebar_label: "Fetch Scenario" hide_title: true hide_table_of_contents: true -api: eJzlV0tvG0cM/isCTwmwsVyjpz1VdezGTYsYtpKLIBjULCVNOju7nocRdbH/veDMPiX5kcA59STtDPmR85FDcipwuLGQLuDiAZVHJwttYZlAUZIJX1cZpLAmJ7Z3VpBGIwtIoESDOTkyrFuBxpwghVbgTmaQgNSQQoluCwkYuvfSUAapM54SsGJLOUJagduVQdUZqTeQwLowOTpIwfuA4qRTLHDbYE+uMqjrJUPastCWLKOcnZ7yT0ZWGFmy36zihSBr115NbhphSEAU2pF2LI5lqaQIx5x+taxTDTwrDZPgZLQgCh+VGoeldrQhM/DwPEgkkNEavXKQntZJR0kwp3ef1oGvMfRahRgMBTDLJLuF6nok2ks0bqyKQhFqqJN9KnnlOAwIaYRXaN78hStSf9pCv/vkXendWz5ORClWX0k4YKbbA+5LQ30g3XuhvVIj7ctwSlb5P5x23hw2J4c/eNjByfZybmQ4X41Xhhw9x8ilV88QklQgHeUv1EJjcPd0Fox1v4/Uv5nMOgFhCB1ld+ieIm5QSzJ09M7JnJ6EP4+wk1lwy5fZzzDyOcI2RjJS9BOMvI+wjZGWrtWOC/PL7ITq+xKyft+Fitzz9apWWrY6Ky1hr2qlpauz8nrQEe+BjJWxv7zgmh+AfGnUuZ84dP7JepEAaZ9zSy9JZ3Hl3pMn7qbGax2XbGyOfBiUyhtujWRMYXhJoBakFGUw8KKfEG6jE8dc7ppfZ53p1I7MA6qjbh8tavsstgBcLmRO1mFevuqNmXeodWCpya6XTic3XsfBZL+cDUefRQt8nNR2Ujh08xjs4wDdrFPXrPjr2dnhaPQFlcyC1uSCg/7jc1FGDmWIbNMn9gVUIUa739PnlvVeaxm05yI6GJqs3RwLVt82rMUN9b3mcdFAxmTOuyFvuUWxeJeHTc8S7tsA5iAo58zlN/dsPjA30f1GbnjpuxDFCD1OxfsYgqey5MN8fn0AGPNjnBiXPOlPbvtJPye3LfgNsCEXBn+3hRSm1D8Xpu2Ma6fV4AVQc5Eh89C+EbxRrIilDKGOn1vnSptOp+RPhCp8doIb0g5PUEbBJWMIb6TbBZDZ9dVH2n0gzMhAulgOBW45Q2POjcW6OGEpPxIz17xXZt5tCyP/jYnUvFi2UasO8V8Xw/DPgnOT2fUV7PM22uKrhCJkTmspbEOyd+z+tFx983CRwBHmv3U7o/YBpye/nJzyUllYl6MemDiI3MjBjgPOy2mpUIabE9ypmqguYBBV6N8u/D8dvu2WCWwL61ijqlZo6bNRdc3L954MR2qZwAMaiSvmbVFBJi3/zyBdo7J04FxXfODNTXM/3k76uXLsdBtNzaFkj/kLEviHdnuP0FBAtm22VI3ETAgq3UD3oN5xWnWJ/8fFHOr6P4DnLb4= +api: eJzlV99v2zgM/lcCPm2A1/SKe/LT5br21tsdVrTZXoKgYGwm0U6WXYkqlgv8vx8o2Y6dpD82dE/3lFgiP1IfKZLaAuPKQTqDiwfUHlmVxsE8gbIiG76uckhhSZyt71xGBq0qIYEKLRbEZEV3CwYLghRagTuVQwLKQAoV8hoSsHTvlaUcUraeEnDZmgqEdAu8qYIqW2VWkMCytAUypOB9QGHFWgRuG+zRVQ51PRdIV5XGkROUs9NT+cnJZVZV4reo+Cwj55Zej24aYUggKw2TYRHHqtIqC8ccf3Wis+15VlkhgVW0kJU+KjUOK8O0Itvz8DxIJJDTEr1mSE/rpKMkmDObT8vA1xB6qUMM+gKY50rcQn09EN1JNG4sylITGqiTfSpl5TgMZMpmXqN98xcuSP/pSvPuk+fK81s5TkQpF18pYxCm2wPuS0N9IL3zwnitB9qX4ZSi8n847bQ5bEGMP3jY3sn2cm5guFgMV/ocPcfIpdfPEJJsQTEVL9RCa3HzdBYMdb+P1L+FzDqBzBIy5XfITxHXqyU5Mr1jVdCT8OcRdjQJbvkq/xlGPkfYxkhOmn6CkfcRtjHS0rXYSGF+mZ1QfV9C1u+bUJF3fL2qlZatzkpL2KtaaenqrLwedMR7IOtU7C8vuOYHIF8adeknjOyfrBcJkPGFtPSKTB5X7j15km5qvTFxycXmKIdBpb2V1kjWllaWMjQZaU059LzYTQi30YljLnfNr7MudBom+4D6qNtHi9o+iy2AlAtVkGMsqle9MdMOtQ4sNdn10unkxps4mOyXs/7oM2uBj5PaTgqHbh6DfRygm3XqWhR/PTs7HI2+oFZ50BpdSNB/fC7KiVGFyDZ9Yl9Al9lg93v63Lzeay299lxGB0OTdatjwdq1DedwRbte87hoIGM0ld2Qt9KiRLzLw6ZnZfytB3MQlHPh8hs/mw/CTXS/ketf+i5EMUKPU/E+huCpLPkwnV4fAMb8GCbGpUz6o9vdpF8Qr0t5A6yIw+DPa0hhTLvnwridcd1423sB1FJkyD60bwRvtShipUKo4+eauUrHY11mqNel47g9F83MW8WboDq5vvpImw+EOVlIZ/O+wK3kZcy0oVgXHazURxK+mlfKxPO6tOrfmD7NO2UdteoQ9WXZD/pkRYZxNLm+gn22BltygTAL+dJaCtuQ9A7r0vEYw/IJqrHU3CJcH2DC4rduZ9A04PTkl5NTWapKxwWanomDeA0c7DiQbBxXGlW4L8GdbRPLGfRiCbsXi/xP+y+6eQISItHYbhfo6LPVdS3L956sRGqewANahQvhbbaFXDn5n0O6RO3owLmu5MCbm+ZWvB3tpsmh0200jYRSPJYvSOAf2uw9PUPZWLfZsm0kJllGFfd0D6qcpFWX7n9cTKGu/wO6eypf sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-application.api.mdx b/docs/docs/reference/api/fetch-simple-application.api.mdx index ca5a07800c..6a16b1fa30 100644 --- a/docs/docs/reference/api/fetch-simple-application.api.mdx +++ b/docs/docs/reference/api/fetch-simple-application.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one application with its current variant, revision, and `dat sidebar_label: "Fetch Simple Application" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-environment.api.mdx b/docs/docs/reference/api/fetch-simple-environment.api.mdx index 905ee01fcf..fc156c4461 100644 --- a/docs/docs/reference/api/fetch-simple-environment.api.mdx +++ b/docs/docs/reference/api/fetch-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Simple Environment" sidebar_label: "Fetch Simple Environment" hide_title: true hide_table_of_contents: true -api: eJzNWFFv2zYQ/ivEPSWAImfFngQMWNakbdZtDZI0L4mR0NLJZkdRKkkZdQW97gfsJ+6XDEdKNiU7aZKlwPxiSbz77u6744mnBiyfG0iu4UQthS5VgcoamEZQVqi5FaU6zSCBHG26uDWiqCTe4kYUIqi45gVa1ATTgOIFQgKBzK3IIAKhIIGK2wVEoPFzLTRmkFhdYwQmXWDBIWnArirSNlYLNYcI8lIX3EICde1QrLCSBAJv2WkGbTslVFOVyqAhoFeHh/SXoUm1qCgOSOCiTlM0Jq8lO++EIYK0VJZCSRrgVSVF6sKefDKk0wTOVZpIscJbSMvaK3U+C2Vxjjpw8rWTiCDDnNfSQnLYRiExzqJafcgdcUP0XLq83C8gzO285jojFtc+zMpSIleBD6eGve3EAkdyLg22bdTrlbNPmNrd/L5xnrTR2oiqpYR2StpbPvIsE8Qel2cDbzcSI08D3C7p9GQ3DKRCp7Xkeu83PkP5qynVwYfaVrXdh3EoVBB9MGNp2Ap8O7qN9qUPHwq0/JnBBpGNimVguJgNn4QcfYuRN7X8BiFRA8Ji8UgtrjVfPcjLSPdppP5OZLZR1y0eRdkWxh+k20bDPf48qOMAoo0g1cgtZrfcPgQYdKeMWzywwvlzv5XXHpYdObLqKvseRj562M5IhhK/g5FjD9sZ6emarajVP86O6+ePIeuXlWvwG75e1ErP1tpKT9iLWunpWlsxsp4/t1YvSLeN4OXc6yLn4/42fOFozFGjSsc97t4ueM/zIeoStfkPG/eqU/9fcvrA+/W8J3NX23xCHz3fJOWRr/NzXAqi7JjSPWqecIb6gFcV2+Sa5aVmwZmF6U6fUb3EN+pGvceVYVwj41V1YNKywoyJDJUVuUBt2B7G8zhid3c3UGmMe4AbuLvbj2/UFZc1eoBMpNawMmekbFcHFA7756+/2TrMiFW6XIpMqDnLaymZ1TxFPhNS2FWSkDuMMdb4P/qNjSbhohcITn20vja2J7Kf4jiOGJWWv+rKlW72owdwbpdcC67si+GFATwDsA2u4zj2N+3uU13n+gv2vyuP2DW/PpQXNNAXNfvGtrtwA0ywG3Yx8BT99RjRtqT346tX21PHFZcic1lkJ1qX+vkjR4aWC+lO//4kNxaQZTpYfcpJdNqODn/BAbr0DrpjsJnvGtQ2Bztj+Dxoa/eLOjLYJa1S61V0iCTxvoOq7lSZ2i8BzFZOXhOXX+zOvG8GzWvHjXe/kxsUaJ8in6H7qTj2KXioSN5dXp5tAfr6GBbGGxqqma8pdjIYqgu0i5IG7zn6GdsuIIGJH8AnQT82k2Y4arcQgUG97OfxWkvS5JVwWfe3C2srk0wmWMepLOss5nNUlsdceMEpYaS1FnblQI7OTt/j6h3yDDUk19NQ4IKK1ZffUGydMl6J90gkdt8Gjmq7KLX46muq+zSw8FqtK4W8DCvhyDnHjs5Ot15YgyXaVTx1RdRbcssQjcLeRAsRYOH2FFjkxc/rFSqB9dkEDuMf4kN6VJXGFlwFJh5I4mgw6digYp1Ukgu3nZxjTZfga/AJhsFnAgMRJKPvKdMIFqWxpNI0M27wo5ZtS48/16gpadOukc+IwusGMmHoOuuG/y3v1i0J9s67XbPPNvPg0Os+sYqyuqQXOCQAEfyJq+1vP66zLPraaTqhozTFygbqW42Qimy9D96eXELb/gvOGVn9 +api: eJzNWF9v2zYQ/yrEPSUAI2fFngQMWNakbdZtDZI0L4mR0NLJZkf9KUkZdQW97gPsI+6TDEdKNiU7aZKlwPxiiby/vzse79SAFXMD8TWcFEupyyLHwhqYcigr1MLKsjhNIYYMbbK4NTKvFN7ihhQ4VEKLHC1qEtNAIXKEGAKaW5kCB1lADJWwC+Cg8XMtNaYQW10jB5MsMBcQN2BXFXEbq2UxBw5ZqXNhIYa6dlKstIoIAmvZaQptOyWppioLg4YEvTo8pL8UTaJlRX5ADBd1kqAxWa3YeUcMHJKysORK3ICoKiUT5/bkkyGeJjCu0gSKlV5DUtaeqbNZFhbnqAMjXzsKDilmolYW4sOWh8A4jcXqQ+aAG0rPlIvL/QTS3M5roVNCcW3DrCwViiKw4dSwtx1ZYEgmlMG25T1fOfuEid2N7xtnScvXSopaKWinxL1lo0hTSegJdTawdkMxsjSQ2wWdVnaLgUTqpFZC7/0mZqh+NWVx8KG2VW33YewKJUTvzJgathzf9m7DfendhxyteKazgWejZBkozmfDlRCjbyHyplbfAIQ3IC3mj+QSWovVg7iMeJ8G6u8EZsu7avEoyLZk/EG8LR+e8eeJOg5EtBwSjcJieivsQwKD6pQKiwdWOnvu1/Lai2VHDqy6Sr+Hko9ebKckRYXfQcmxF9sp6eGarajUP06Pq+ePAeuXlSvwG7xeVEuP1lpLD9iLaunhWmsxqp4/N1cviLfl8HLmdZ6LcX0bXjgaM9RYJOMad28VvGd9KHWJ2vyHg3vVsf8vMX3gfj3vwdxVNp9QR883QXnkdX6OS0mQHVO4R8UTzlAfiKpim1izrNQs6FmY7vgZ5Ut0U9wU73FlmNDIRFUdmKSsMGUyxcLKTKI2bA+jecTZ3d0NVBqjXsAN3N3tRzfFlVA1egGpTKxhZcaI2a4OyB32z19/s7WbnFW6XMpUFnOW1Uoxq0WCYiaVtKs4JnMYY6zxf/QbK43DTU8QdH20v1a2J9OfoijijFLLP3XpSi/7/AE5t0uhpSjsi8kLHXiGwDZ4jqLIv7S7u7rO9Besf1deYlf8eldeUEGf1Owbx+7CDTDBadiFwFP412NE2xLfj69ebU8dV0LJ1EWRnWhd6uePHClaIZXr/n0nNyZQZTLYfUonOm1HzV/QQJfeQNcGm/muQW3T2Bkj5kFZu5/UgcEuaZdKb0FNJJH3FbTousrEfgnEbMXkNWH5xe6M+2bQvHbYePM7ukGC9iHyEbofimMfgoeS5N3l5dmWQJ8fw8R4Q0M18znFTgZDdY52UdLgPUc/Y9sFxDDxA/gkqMdm0gxH7RY4GNTLfh6vtSJOUUkXdf+6sLaKJxNVJkItSmP99pQ4k1pLu3KsR2en73H1DkWKGuLraUhwQSnqk25Itg6UqOR7JOi6LwJHtV2UWn71mdR9EFh4rtYlQFaG8T+aY2EFOzo73bqmBlt0lkTiUqfX5LaBB86aeDIRbjkScgIcMHcnCSyK/Of1DgV+3ZHAYfRDdEhLVWlsLopAxQOhG40jHRqUopNKCekOkTOs6cJ6DT6sMPg4YIBDPPqKMuVA0SKWppkJgx+1alta/lyjpqBNu/I9IwivG0iloee0G/m3rFsXItg7787KPttMgUOr+8AWFNUlXdsQA3D4E1fbX3xcPVn0udN0REdJgpUN2LfKHyXZOvvfnlxC2/4LWThWng== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/fetch-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/fetch-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/fetch-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-simple-evaluation.api.mdx b/docs/docs/reference/api/fetch-simple-evaluation.api.mdx index 4efc148eea..f9ec358fb2 100644 --- a/docs/docs/reference/api/fetch-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/fetch-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Evaluation" sidebar_label: "Fetch Evaluation" hide_title: true hide_table_of_contents: true -api: eJzlWEtz20YM/isanJIZxnIzPelU1Y/aTdq4tpOLR+NZLSFx0+Uju1hPVA3/ewe7pEiKpKW8TjnZIoEPwAcQi8UWSKwtzB7g4kloJ0jlmYVFBHmBxv+6jmEGKySZPFqVFhofcScJERTCiBQJDYNsIRMpwgwakUcVQwQqgxkUghKIwOAnpwzGMCPjMAIrE0wFzLZAm4KVLRmVrSGCVW5SQTAD5zwKKdIs0Lg6uY6hLBcMaos8s2gZ5/XpKf+J0UqjCu/oDO6clGjtyunJbSUMEcg8I8yIxUVRaCU97PSjZZ1ty7fCMCOkggWZu6BUuawywjWalo9nXiKCGFfCaYLZaRm1aPEGs827lWetC77SPiXjAso+avWELfvLPNcospb9azt5yzItD1ZCWywjVheSjgCYB6lhCKlzy0l8HuIsSA1DfHLoDjrxjxca8UHI5AgfgtQwhC20okMId15oACARPgpTJWYU40r4QLzcCAyhJYt0GOe+FhwBqoosN4ehLhrRETDpLOXpQaCzIDYCkrhUZAcxrrzUCIRwlB9EmLNQD6CMaq18+RElDTaSW5dd+s+ujHZGMqc1lAvW732QIo4V6wl90/k0G4k9T1u4VX/jJ8MwIJWRTgvz4q1Yov7T5tmrd44KRy9hPxhufnU4+9LQC70fXaN9H8KHFEl8ZbCtyPYaY8dwuuw+aXN0iJFLpw8QEm1BEaZHagljxOZZXvZ0v4zUv5jMMqrOxaMo62H8zbpl1D3Pvg7qvAVRRiANCsL4UdBzgK2DOBaEr0h5f8atnAXYydyT5Yr4Rxh5H2ArIzFq/AFGzgNsZaSma7nhqeY4O350OYas3zd+mGn4+q5WarZ2VmrCvquVmq6dle8HHfCe0NhvKP8PlTrHL/a7XHfGsiTIPdvlIsDMpTw6F5jF4YmfaHjUMC7LwiMb5k4OVijtDM8yaEw4c6XIJGqNMSyGTqW74MTgmcRjx+bREhZ7XlbN7zDZ/RY41ujHApf1sZ9UZ7c/ptm7iswN964w1I4YP6KH8uC0mdz5SFkxzD8/RejVrNcE37qk/BQEzJt4GxJ2E+5PQcFuSG8IMFigoOHuNDhx7UHeVvrPzcZ3/rLf9KJz4SeZXif6AohvVN9d28uS1X59/bp/y/8gtIpDuVxwk/36K36MJJT21+26oroCOpedt18yDS/2y681xOeyJgtSux6qv2a4tFassSmncVFPxuSe3/KxnPEgy+L16ZpVk62kzy2YXkrOmMvPNFg4zV7nwXMT3K/k2ofwLkUhQ+NUnIcUPFcjV/f3Nz3AUB/dwrjkDdbkor26SpGSnLdbayS/yaIEZjANW65ps6ux021nn1XyqY7mqd55OaNZTxTK5zr8TIgKO5tO0Z1Inbv4RKwxI3EiVBBcMIZ0RtHGg8xvrt/g5gpFjAZmD4u2wB2XaCi6rtguUaJQb5Cpq/Zvc0dJbtR/dah+/5YErdIXwCpv53/unZvMb65hn7jOK/6WhPSlU1vyryHaC7uJlvtl6r8kIBTpb7s3nXkOTk9+OTnlR0VuqVoXVCYGUrd3FapY4NKcFloo//F4h7ZVWh8gpBXaSziewGbdVeUigiS3xArb7VJYfG90WfJjP29xZiJ4EkaJJRP3sIVYWf4/rtYNPd927Qde3FZfyMtJc//s+lynM+NcsmP8CyL4Fze9rapvIkldMNtKZi4lFtTS7vU8rqxd6f9xcQ9l+T/xN4sw +api: eJzlWEtz2zgM/isenNoZtc529uTTukm6ybbdzcZpLxmPB6bgmF3qUT4yUT367zsgJUuyJdt9nXpKTAEfgA8kCGIDFh8MTO7h8hGVQyuz1MA8giwn7X9dxzCBFVmxXhiZ5IoWtJWECHLUmJAlzSAbSDEhmEAjspAxRCBTmECOdg0RaPrspKYYJlY7isCINSUIkw3YImdlY7VMHyCCVaYTtDAB5zyKlVaxQOPq6DqGspwzqMmz1JBhnFdnZ/wnJiO0zL2jE5g5IciYlVOj20oYIhBZaim1LI55rqTwsONPhnU2Ld9yzYxYGSyIzAWlymWZWnog3fLx3EtEENMKnbIwOSujFi3eYFr8s/KsdcFXyqdkWECahZKP1LK/zDJFmLbsX5vRO5ZpebBCZaiMWB2FPQFgGqT6IYTKDCfxMMR5kOqH+OzIHXXiXy804AOK9Qk+BKl+CJMraY8hzLxQD8AafRS6SswgxhX6QLzcAIwlYw3Z4zh3teAQkEZxgjt3QeyANwLNKThbyQGoatNn+jjWZSM6ACacsVlyFOg8iA2ArF2C6VGMKy81AIHOZkcRpiy0B1BGtVa2/ETC9ha2W5e+8WWgjLZGUqcUlHPW3ysQGMeS9VDddEpFI7HjaQu3qre80g8DQmrhFOpn73BJ6i+TpS/+cTZ39jnsBsPFuA5nVxr2Qt+PrtG+C+FDQha/MdhWZDuFumM4WXZX2hwdY+SNU0cIiTYgLSUnaqHWWBzkZUf360h9z2SWUXVPn0TZHsbfrFtG3fv126AuWhBlBEITWooXaA8BthqDGC29sNL7M2zlPMCOpp4sl8c/w8iHAFsZiUnRTzByEWArIzVdy4K7rNPs+FbqFLJeF765avj6oVZqtrZWasJ+qJWarq2VHwcd8B5Jm+/Y/h8rdY4fd6tct+czFq07WOUioNQl3MrnlMZhxXdY3Ppol6ZhyYQ+mINFqZzm3oq0DneuwFSQUhTDvO9WmgUneu8kboOKhbGU73hZFb/jZO+XwKFCPxS4qK/9dXV3+2uavavILLh2hSZ7wPgJNZQbuWI085GyYujHfonQq96zCb71aPolCJg28TYkbDvcX4KCbZPeEKApJ7T91am349qBvK30S/8gF05rSkVxqBwuMQwkvvR3MacYfc0QoxlDcJeJTwtNVg+1kqcgvsen0W2F4VmxuljEpLDohdxvPHuIsboYXXiIkx8OF2jxvEVjT7k+ADXzQ54GkNG+E+I71bfjmrJktd9fvdqf7nxEJeNwLC/5Mvv20U5MFqXyY5b65HYFVCY6X7/m1THfPeatx1ImarIgMQ9957xp4o3BB2qO7bCoJ2N0x1+5/Un5wcDidReTVi8IYZ9aMHspOWcun2zvHmzmefeem+B+JddudrYpChkapuIipODQHrm6u7vZAwz7o7sx3vDkcnTZHlkmZNcZTzUfyPoJpl3DBMZhujluZnRmvOnMMUvunkg/1rNOpxXrYS59rsPPtbX5ZDxWmUC1zowNn+esKZyWtvCq05vrt1RcEcakYXI/bwvMeGOGrdYV26YHc/mWmLBq2jp1dp1p+aUO0E9b10Gr9GlfZe2sTx8otTia3lzDLl2dT3yCUPgNU1vynyFqBWsm4zH65Zcox3wbJf78gCVM/th+6XTLcPbyt5dnvJRnxlbDmMpET8J2HpoVC7whx7lC6Y+Md2hTJfMeQjKhPXLl/nbSHUzPI+AcscJms0RDH7QqS1723SxnJoJH1BKXTNz9BmJp+P+4Gubs+bYtOvDstjoXz0fN677rc53OlHPJjvEviOA/KvZm6L50rOsNs6lkpkJQblvae5WOd9Z2w/95eQdl+T+r8jZF sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-evaluator.api.mdx b/docs/docs/reference/api/fetch-simple-evaluator.api.mdx index 40a97f6bae..1d807d0490 100644 --- a/docs/docs/reference/api/fetch-simple-evaluator.api.mdx +++ b/docs/docs/reference/api/fetch-simple-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Fetch one evaluator via the simple surface." sidebar_label: "Fetch Simple Evaluator" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWVlv2zgQ/isEn1pAjdNin/y02RybbNttkKMvqZGOpbHFliJVkkrrNfTfF0NSsuQzTV1gF+hTYnHObw6Swzl3MLV8eMdPH0BW4LSxfJTwDG1qROmEVnzIz9ClOdMKGTZU7EEAczkyK4pSIrOVmUCKBx/UB3WFrjLK+uWJBNfhMphqkzGhUlllQk2ZcJallTGoHHsAI0C5DwpUxgw+CCu0YiKzjD6QtALNFDP2MQMHH1kJM6khO+AJ1yUaIGsvMj7kE7L3Plh23yrnCS/BQIEODbk85woK5EPeUtyLjCdckMsluJwn3OCXShjM+NCZChNu0xwL4MM5d7OSeK0zQk15wifaFOD4kFeVl+KEk0TQ4souMl7XI5JpS60sWhLz6vCQ/vTxvq7SFK2dVJJdRWKe8FQrh8oROZSlFKl3ePDJEs+8Y1ppCA4ngoZUV4EpWiyUwymajonHnmI56C/Z1xwVA9UJn7DM+OBilrBDpl2O5quweOC5J1BJx4eHdbKA1FurZu8mHvC+ZRPpc28zgbD3HU87Poy1lgiq48OFZUcd0o45E5AW64SE9azaJuq0kzPrBFklyhLdLjHXkWy9kAIUTCm1tgt5G8nWC0kr63SxS8ZxoFovQsqd/G/kJuZc68+7uM+JZoP5OsOdxhPNJghdmu8GkIjWC5ggZmNId7pw1tBtcCOHnclwTDRr2HOw95WRW9nPwbJbIzexh7LdKeE6kG0QkoPKJG4vDZJyHulWxNRJw6jHnzB1Hb5r34rbqjrzhV8nrSZVScnrEUlYaQmQZYJqGuRlrzksKJbM7ciN3Zm+rBfDU2HSSoJ59gbGKP+yWr14V7mycs/5sjvUuxuHlqn5ivOr3i24b4L7vEAHT3S249lSX+8pLsb9L12MdiFyVskdgCRzLhwWj+QCY2C2FZcl3u8D9S2BWSdxU38UZCsy/ibeemknfJqok46IOuGpQXCY3Yc+sUlg5xiRgcMXTnh7Nms5DmLZkQerKrOfoeQ2iI1KMpT4E5ScBLFRSQPXeEZnssfp8Qevx4D1x8yfxRZ47VVLg1arpQFsr1oauFotVlbTp+bqNfHSTrY386LnsNzf+ue7yoinmnxrhI9g2DifJkGShBwh8/eBH23Dfdce0Ngf6B7vI/t/MrBbNvornKBBlWLczR/dvc9jGOqEm0r5brHVYlRVQdfWcuZyf94nAtsccD7BA8Qfo21ar6Iqgrk9Qz0J6MBdNzfErdea7i301+a/l83/cgEppbsqK/cL3H2BexHgrBOuPfcvZPeF7LuI57aWSsKvY1NZe2X61U5+ajt5/LX2BPwNZE2I4mRzj+e/90FiPPw1w9I9Krhq5q87dvwlDNbK7A8WbzaOhb8KlzMJDm07DGa9WXCc/wrldBwCH3yPcZ1hat+kU/WAUpfIJtowYFaoqWxH262ZpIu0/fbq1erM9j1IkfnhIzs1xk8OnziwzdCB8MfaWBDLBFKnvdXvKejOqSzUUGemoePwlCYTdrpuyL24a1sLU1wU1WZSDwa7odVmZ/bk3b3F3/jct46YlUgeE5bf3NpoL4b0dx6bYH6k69VME6IQoc1QnIQQbEut85ubyxWBIT8KdLmmd4ipn/36p4QhH4R0GrTpZAfz7stDzRNu0Tw0jxP+asMHUAofyPAzd64cDgZSpyBzbV1YHhFnWhnhZp716PLiNc7CkZoP70ZdAr+VhDzqk7XYQyleI6ERn0eOKpdrI/5pJuv+fSRcmzxCQk10N6RHU1QO2NHlxUqd9ZaoPCD12dBo8ss86Thrh4MB+M8HIAZ08C98cXCHUPzerlAs2ysXPzx4eXBIn0ptXQGqoyI8ZYW+sDTm74182tr9Hzx+xbhRfQxKCUJ1bsYh+e54sJR3XmYsT/iw9/Q1SjjlFJHP52OweGtkXdPnLxUaSq1R3MrGFOi7Oc+Epf+zOALeguKzq1ikz9kmi5v0U5R7ZBf94gn/jLPlRzrfxvImv+eR5ChN0V//GuaVrkuF0Fbnn6c3vK7/BUEp/T8= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-query.api.mdx b/docs/docs/reference/api/fetch-simple-query.api.mdx index 64721ddb5f..05bdc57b74 100644 --- a/docs/docs/reference/api/fetch-simple-query.api.mdx +++ b/docs/docs/reference/api/fetch-simple-query.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Simple Query" sidebar_label: "Fetch Simple Query" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-queue.StatusCodes.json b/docs/docs/reference/api/fetch-simple-queue.StatusCodes.json index 961d14870c..d5cb121cd9 100644 --- a/docs/docs/reference/api/fetch-simple-queue.StatusCodes.json +++ b/docs/docs/reference/api/fetch-simple-queue.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"SimpleQueue"},{"type":"null"}]}},"type":"object","title":"SimpleQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["queries","testsets","traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"SimpleQueue"},{"type":"null"}]}},"type":"object","title":"SimpleQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/fetch-simple-queue.api.mdx b/docs/docs/reference/api/fetch-simple-queue.api.mdx index 84071dd75b..8f83d4b154 100644 --- a/docs/docs/reference/api/fetch-simple-queue.api.mdx +++ b/docs/docs/reference/api/fetch-simple-queue.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Simple Queue" sidebar_label: "Fetch Simple Queue" hide_title: true hide_table_of_contents: true -api: eJzlWEtz2zgM/isenNoZNc529qTTunlss93d5tW9ZDwZWIJtthSlkmCmrkf/vQNSsiU/EjeTnvaUmAI/AB9AAOQSGGcO0js4e0DtkVVpHIwTKCuy4ddFDilMibP5vVNFpen+qydPkECFFgtisrJ/CQYLghTC13uVQwLKQAoV8hwSsPTVK0s5pGw9JeCyORUI6RJ4Uck+x1aZGSQwLW2BDCl4H1BYsRaBKwEeXORQ12PBc1VpHDmBeHt8LH9ycplVlVgNKdz4LCPnpl4PrhthSCArDZNhEceq0ioLTg4/O9mz7JhVWaGAVdSQlT5uaqxVhmlGtmPeSZBIIKcpes2QHtdJJCPoMouP00BTH3eqA/1dAcxzJTahvuyJriUaGyZlqQkN1MkmibKyGwYyZTOv0b76Gyek/3KlefPRc+X5tfgSUcrJZ8oYhObWu01pqLek11YYr3Vv93nwUrb8H7y9bZwtiPGZznY820i4nuJi0l/pcvQUI+deP0FIsgTFVBy4C63FxeNZ0N/7c6T+I2TWSVNlDqJsC+Nf2Vsn/TrxPKjTDkSdQGYJmfJ75McAO7UtR6Y3rII9+7WcRNjBKJDlq/xXKPkUYRslOWn6BUpOI2yjpKVrspBGcZie0A0OIevdIjSJNV8vqqVla6WlJexFtbR0rbS8HHTEc4zsH609CZDxhUwGFZk8roR2Jj3ZemPikotdVkxApb2VHkvWllaWMjQZaU05dAxYDxo30Yhd1q666Eq7UI2bBbXfTL8o8wRNrUtsMSOxkMlxhjJGdCy8CXNOmDc+COS2gbG1263y3dTLp+NzeNW8avTU0VhH/Ot13raK6gQohksC+lJq97XBfdHKvOOygATmvkADCaDnEiQITfwXUtnjPLVH+QEd5mztaC3zZUW4SfVjvXgD7brZXyeAzqmZKcjsjdyzuTw8pKOOEXL+iVmZzWGsf5wmGIf+77sb7iEsvBOIwY1A1EkDWE6njnZ3l8MhP0aQeivCO0/xTevtjpN8GMIphvFjRx2w3jSF/9CLzLU38RqzrXl9S7prgXfXped7sroL1bXs+P3t2+2r03+oVR5K9OBMavnz7005MSrdy/G+gC6z3tefGYXHmwegM8GX0cAwh7vZrvCsJ0vncEbr07RfNJAxuJWv0pONTLEi3rZW04y1GX/rwGxF40S4/LY7e7sZINxE8xu5Ti6sQxQjtJ+K0xiCx9Lj/e3t5RZgzI9+YpxTPM+STYOr5h2gIJ6X8kowIw7PAjyHFIbxtWAYZgY3XLbvArUMDWQf2mcDb7VIY6VCjOPPOXPl0uGQ/FGmS58f4YwM4xGqKDgWjMxbxYsAMrq8+ECL94Q5WUjvxl2BG0nNmGx9sVWAsFIfSChrnjBGnuelVd9jBjXvGPO4qw6Bn5bduI+CcYPR5QVsEtb7JGcIs5AyrabwGZINt9feShcswgkCJiz+WH2RgAuHUc3x0W9Hx7JUlY6lR65V7AzZxg2o4UGSclhpVOHYBJOWTTjvIIazHQJldkpXTz3jBOalYxFbLifo6JPVdS3LMiVJiMYJPKBVOBHC7paQKyf/55BOUTvasmhVbuDVdXMiXg/Wl82+pW0YjcRQurj8ggS+0KL7IBXqxbzNkWXzeZRlVHFn41Z5k2Ra5fifZ7dQ1z8ARs+OaA== +api: eJzlWEtv2zgQ/ivGnFqAjbPBnnRaN49tNrubNHb3EhjBWBrbbClK4SOoa+i/F0NKtuRH4gbJaU+2yHl+M5wZcgkOZxaSOzh/ROXRyUJbGAsoSjLh6zKDBKbk0vm9lXmp6P7BkycQUKLBnBwZ5l+CxpwggbB7LzMQIDUkUKKbgwBDD14ayiBxxpMAm84pR0iW4BYl81lnpJ6BgGlhcnSQgPdBipNOMcFnFty7zKCqxizPloW2ZFnEyfEx/2RkUyNLthoSGPo0JWunXvVua2IQkBbakXZMjmWpZBqc7H+1zLNsmVUahsDJqCEtfGSqrZXa0YxMy7zTQCEgoyl65SA5rkQEI+jSi+tpgKkrd6oC/G0CzDLJNqG66ZCuKWobJkWhCDVUYhNEXtktBlJpUq/QvPsbJ6T+soX+cO1d6d179iVKKSZfKXXAMDfebVJDtUW9tkJ7pTrcF8FLZvk/eDuqnc3J4QudbXm2kXAdxfmku9LG6DlELrx6BhCxBOkoP5ALjcHF01nQ5f01UP9hMCtRV5mDINuS8S/zVqJbJ14m6qwlohKQGkJH2T26pwS2aluGjj44GezZr+U0iu0NAli+zN5CyZcotlaSkaI3UHIWxdZKGrgmC24Uh+kJ3eAQsD4uQpNY4/WqWhq0VloawF5VSwPXSsvriY7yrEPnn6w9Akj7nCeDknQWV0I7455svNZxycYuyyagVN5wjyVjCsNLKeqUlKIMWgasB41hNGKXtasuutLOUONmQe02029SPwNT49KDJ8NMAhxZZ8mFvwbT1VqKPFu0zB6G4ScMIVesZ9vq2O/NVk2vi+jzQTu8lH6u9VQtB95a56hRVAmgGEOO8mup3dcb94Uw9dYVOQiY+xw1CEDvCuAg1Emx4HIfh6w9yg9oO+drRyseOkvCTaifatAb0m5r/koAWitnOie9N3IvxvLwkA5aRnBRIOek3pzQumdsgvEm8GN3Fz4EhY8sojdkEZWoBRbTqaXdLedwkddRSLUV4Z2neNh4u+MkHybhDMNMsqMOGK/rbnDo7ebW63i32da8vjrdNYJ316WXe7K6IFUVc/x+crJ9n/oPlcxC3e6dc4F/+WUqI4dSdXK8S6CKtLP7K/PxePMAtMb6IhoYhnM72xWe9bhpLc5ofZr2kwYweiPe5UatebRl8qbf6nrWTd33lpitaJwylt93Z287AxibaH5N18qFdYhihPZDcRZD8FR6fBqNbrYExvzoJsYFxfPM2dT7XD8O5OTmBT8dzMiFtwI3hwT68QmhHwYJ2182jwUVTxJkHpu3BG8UU2MpQ4zj59y5Mun3VZGimhfWxe0xc6beSLcIrIObyytafCLMyEByN24TDDkhY4p1yVZhwVJeEQNVv2YMvJsXRv6IeVM/acwjVxXCPS3a0R7MSDvsDW4uYROmzhafHExDojSawjaIlrM26fcxLB+h7HPvy8O5AUeY/7Ha4TAzclHN8dFvR8e8VBbWcWdcq9gZqI3LUI0Dp2K/VCjDYQkmLesg3kEMYjMP8sSUrF59xgI4Nky2XE7Q0hejqoqXeTbiEI0FPKKROGHA7paQScv/M0imqCxtWbQqMvDutj4H73vre2fX0iaMmmPIvZu/QMA3WrTfpkKVmDc5sqy3B2lKpWsxbhU1TqZVZv95PoKq+gmpeJJm sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-testset-to-file.api.mdx b/docs/docs/reference/api/fetch-simple-testset-to-file.api.mdx index 51cea005a0..04f7b724cd 100644 --- a/docs/docs/reference/api/fetch-simple-testset-to-file.api.mdx +++ b/docs/docs/reference/api/fetch-simple-testset-to-file.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Simple Testset To File" sidebar_label: "Fetch Simple Testset To File" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zgQ/SvCnLYAYadBTzqtsW1Qo19B4/ZiGAYjjS12KZElR9m6Av97MaQkS3Ha3e7JMvk48/Tm8akDkkcP+RY26MkjedgJMBadJGWadQk5HJCKau9VbTXuKcH2ZPYHpREEWOlkjYSOy3TQyBohhwGnShCgGsjBSqpAgMOvrXJYQk6uRQG+qLCWkHdAJ8snPTnVHEHAwbhaEuTQtrEKKdIM6Jlm6xJCEGNHprOPNfqGX1t0p1nHg9R+1lI2pw+HSBubtmYZCv8AAr5407AQc0rcrF9pWq0h7M6kbpTGbMObF5zi8//h9Jvd33OfwMsOvTWNR8/1rq+u+KdEXzhleaqQw11bFOj9odXZxx4MAgrTEDYUWVirVRFNsIxq5N2ZYwghCHhxfX1Z+LPUqozHslfOGfcbVcE6Nh6pxLtEkkrzkyKs/SVAm2K2+x+EUw3hER2EXRiHK52Tp4m93ppEEIKA2h+fcuYAfYfeyyPCWOzn0ChGbxD2gm2jIMP2Oi4EAQV9m5Qx91+woEmZv1jLb8Qmu8CcPbWN2iT6PW5ilvOI0oR+LsXLNIKnmg2Q15vN7UXB5I+5MW44RbK7mCLZcIU3JrtJKVIjVYbTxhpPMVWoghyWKXaWfZz4ZXcOlrAszT+NNpLDwaN7GCKodZqPSqvi7NPfisj6fLnEdlFo05YLecSG5EKqBNxxjaJ1ik6xyOp2/QZPr1GW6CDf7qaAO7ZsMuEcNg5OWvUGWco+CFYtVcap78lZfRhU6VSIhjiYqR9WkVy2ul3DYyFnW3y3ZBGtNHSK2yAevfb5bUEA1vFmAaGs/xx32AisYWpztXi+uOIlHkgtm0mLfxnljO6oCNt2abVU8WJFcl0/5S2kKbOthq+QgHz2CRlHvRNQsUXyLXTdvfT4yekQeDllK8+uVF7e60m6/o2nR1+IB6lbphUd8it8n95n/I7/OMUHnm726P3H+IM/PvY39FkG4mldBvs0p2nPgdBEkZhg1eDOrgesigItTY5eBC7TH+/a7Ye7DYTwAxOhuUg= +api: eJydVU1v2zgQ/SvCnLYAEaVBTzqtsW1Qo19B4/YSGAYjjS12KZElR9m6Av97MaQkS3Ha3e7JMufNzNPM41MPJA8eijvYoCeP5GErwFh0kpRp1xUUsEcq651XjdW4owTbkdntlUYQYKWTDRI6LtNDKxuEAkacqkCAaqEAK6kGAQ6/dsphBQW5DgX4ssZGQtEDHS1nenKqPYCAvXGNJCig62IVUqQZMDDN1hWEIKaOTGcXawwNv3bojouOe6n9oqVsjx/2kTa2XcNjKP0DCPjiTcuDWFLiZsNJ22kNYXsida00ZhsOnnGKz/+H0292f899Ah879Na0Hj3Xu7q85J8KfemU5a1CAbddWaL3+05nHwcwCChNS9hSZGGtVmUUQR6nUfQnjiGEIODF1dV54c9SqyqmZa+cM+43qoJ1LDxSiXeFJJXmJ0XY+HOANuUi+h8Gp1rCAzoI2zAtVzonjzN5vTWJIAQBjT88pcwR+g69lweEqdjPoXEYg0BYC7aLAxnD63gQBJT0bVbG3H/BkmZl/uJZfiMW2RnmpKm7OJtEf8DNxHJaUdrQz0fxMq3gqWYj5PVmc3NWMOljKYxrdpHsNrpINl7hjcmuk4s0SLVht7HGU3QVqqGAPNlOPtiJz/uTsYS8Mv+02kg2B4/uYbSgzmlOlVbF3ae/NZEt8lybUuraeErhLWeWnVN0jKmrm/UbPL5GWaGD4m47B9yyUJP0lrBpXdKqN8gDHK7/qqPaOPU96WmwgDplhSiDvZmrYHXAlmS2ulnD4/EtQnyjZBkFNHaKYRCzl/VFnst4fCFVDgKwifcJCGXz5xTh9fPkUpvLi+cXl3zEa2hkO2vxLwtc0J0mwmLNrZYqXqdIrh92ewdptyym8dsjoFh8OKYFbwXw0jir7++lx09Oh8DHyVF5d5Xy8l7PPPVvPD76LjxI3TGtqItf4QfPPuG3/McpTni62aP3n0wP/vg43MtnGYin5zLKpz3Oe46EZhOJvlWP6uwHwKos0dIs9cxmmf50w24+3G4ghB/TarXp sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-testset.api.mdx b/docs/docs/reference/api/fetch-simple-testset.api.mdx index 81b8c1b3c3..b138187fd9 100644 --- a/docs/docs/reference/api/fetch-simple-testset.api.mdx +++ b/docs/docs/reference/api/fetch-simple-testset.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Simple Testset" sidebar_label: "Fetch Simple Testset" hide_title: true hide_table_of_contents: true -api: eJztWU1z2zYQ/Ss7OCUztOxkeuKpbpw0btraEyu52BobIlYiEghggIUTVcP/3lmQlCjJih1XuXR8kkTsx8PbxWK5WgiS0yDySzHEQAEpiFEmXIVeknb2VIlcTJCK8jroWWXwmhoxkYlKejlDQs/qC2HlDEUu2vVrrUQmtBW5qCSVIhMev0TtUYmcfMRMhKLEmRT5QtC8Ys1AXtupyMTE+ZkkkYsYkxXSZFigRQinStT1iC2GytmAgY28PDriD4Wh8Lpi7CIXF7EoMIRJNPC+FRaZKJwltMTisqqMLtJWDz8F1ln0gFWeiSDdeChcbJRavNoSTtH3AL5KEtkGiBegJyChJQa+ygAeKXqLKoMjcFSi/6oDDpLmREZDIj+qs47KhNPOzyaJ5nVME5Oit1OArTRo3fgTFrTN5ptkYRPzuZEFls4o9DBxvgN/YPAWDSSvgyt7ZYelDjBzCg3oADrxqp2VxswBZxXNYRwJPmNFIANIUKiYblTAsCA4oFJSfmUPAL/pQNpOweMEPdoCA5CDm+Qsh7OqMXzZxz26AY8zqS3cSqNVBtIqthXIx4KiR9VghUJaGCNIpVBBiR5BW6ASYRJZDL5qKl0kGHuUnxkElXhlAUL03kWr+NHJ8CwMRJ0tE8BGY0Q9Yo63oiCV0g3g87WArSRaI2PnDErbt9seBH5ytxlRaF9EI/2zP+UYzR/B2YOzSFWk52Iz4HxQupBvSout9NjeXS9heJN1JmZI8pGb7e1s4xCtOZ6N15/0ObqPkTfR3ENIthCacPZALem9nH+Xlw3dHyP1Lyazztrq+SDKtmz8zbr1xhF+nKmTnok6E4VHPqzXkr5nsFexlSQ8IJ3w7PbyqjELx4msWKmf4eRDY7Z1otDgT3By0phtnXR0jed8/T3MT7rjHkLWb/N08a342quXjq2ll46wvXrp6Fp6CSZOH5urF6xbZ2J/8Nqdy836tn7n8l1YyIDXWm1Uubas3A/h4cVl2DqDU5WKb+d8l+dtqG0ztieK+j1YJvZr+2Jp96nuPNWdn1p39l0z7ujD/4cdYPOu8NTvPvW7/7nf3b5kn0h9NKknTGZ9z7s+dw2Paj3CvaYD0nu81UE720C56x3ZtxJ7LOud07ao30qvpd1nR/KxsdhMnHZzcJFGYy0Tdxpcn64MS1yNgzSVoCmAkfwIOppg2enBDP0UFU9XHNzwwRks127SyCNNMpaKpyfgLNz0+L4ZPBz+ck5W16zzy8uX22O1jzxsSUMzeO2984+fqSkkqQ1/29HBGlesrf5INRhtZnvvZnANwFTfw/Sunn1VsUKQ097R2S2ayIAhr3KPYfkgs3jXKtj2ZBf0rWdmKx6vmMtvdGfMVlPUy8RNA7+VW8vcLkRNhHZTcdKE4HsJ8nY4PN8y2OTHemK84UkxNPkEw+WkeIZUOp4kT9vBMZUiF4fNRPmwPQnhcLF6XakFv1z42264HL1hDVnpFOnmZ0lUhfzwEOOgMC6qgZyiJTmQuhEcsY0iek3zZOT4/PQdzt+iVOhFfjnqC1xwgjYpty62DJOs9Dtk4tpB93Gk0nn9T5NH7ay7bLTqFP6J60f/OIGD4/PTrWnr2hKfJFmkxOk8pWWRbWx7tVuRCZ6CmjR+l7NflyupKqIPjZujwYvBET+qXKCZtD0XOwK3MVFqmeDkPKyM1On4JFCLNqiXogmqWE6vebac995DR5koXSAWXSzGMuAHb+qaH3+J6DlQo7aSj5m2y4VQOvB3JfKJNAG3UC1Lj3j2vj0dz2F1966j7YJpOZK30kT+JTLxGefrf16k6lF2ubJoBY6LAivqqW4VO06qZb7//noo6vpfm0u28Q== +api: eJztWUtz2zYQ/is7OCUztORkeuKpbpw0btraEyu52BobIlYiEhBggKUTVcP/3lnwYUqyYsdVLh2fbAP7+PDtYrFcrwTJRRDphZhgoIAUxDQRrkQvSTt7okQq5khZfhV0URq8okZMJKKUXhZI6Fl9JawsUKSi3b/SSiRCW5GKUlIuEuHxS6U9KpGSrzARIcuxkCJdCVqWrBnIa7sQiZg7X0gSqaiqaIU0GRZoEcKJEnU9ZYuhdDZgYCMvDw/5h8KQeV0ydpGK8yrLMIR5ZeB9KywSkTlLaInFZVkancWjjj8F1lkNgJWeiSDdeMhc1Si1eLUlXKAfAHwVJZINEC9Az0FCSwx8lQE8UuUtqgQOwVGO/qsOOIqac1kZEulhnXRURpx2eTqPNK9jmpsYvZ0CbKVB62afMKNtNt9EC5uYz4zMMHdGoYe58x34A4M3aCB6HV3aSzvJdYDCKTSgA+jIq3ZWGrMELEpawqwi+IwlgQwgQaFiulEBw4LggHJJ6aU9APymA2m7AI9z9GgzDEAOrqOzFE7LxvDFEPf0GjwWUlu4kUarBKRVbCuQrzKqPKoGK2TSwgxBKoUKcvQI2gLlCPOKxeCrptxVBDOP8jODoBwvLUCovHeVVbx0PDkNI1EnfQLYyhhRT5njrShIpXQD+GwtYLcSrZGZcwalHdptLwKv3G1GZNpnlZH+2Z9yhuaP4OzBaUVlRc/FZsD5onQh35QWW+mxfbpBwvAh60QUSPKRhx2cbOMSrTkuZusrQ47uY+RNZe4hJFkJTVg8UEt6L5ff5WVD98dI/YvJrJO2ej6Isi0bf7NuvXGFH2fqeGCiTkTmkS/rlaTvGRxUbCUJD0hHPLu9vGrMwlEkqyrVz3DyoTHbOlFo8Cc4OW7Mtk46umZLfv4e5ie+cQ8h67dlfPhu+dqrl46t3ktH2F69dHT1XoKpFo/N1XPWrROxP3jtyeVmfVt/c/ktzGTAK602qlxbVu6H8PDiMmmdwYmKxbdzvsvzNtS2GdsTRcMeLBH7tX3e232qO09156fWnX3XjDv68P9hB9h8Kzz1u0/97n/ud7cf2SdSH03qMZNZ3/Otz13Do1qPcK/pgPQeb3TQzjZQ7vpG9q3EHst657Qt6jfSa2n32ZF8bCw2E6fdHJzH0VjLxJ0G16crkxxvx0GactAUwEhego4m6Ds9KNAvUPF0xcE1X5xRv3cdRx5xktErnhyDs3A94Pt69HD4/Zysrlnnl5cvt8dqH3nYEodm8Np75x8/U1NIUhv+bUcHa1y2tvsj1WC6me2Dl8E1AGN9D4u7evbbihWCXAyuzm7RSAZMeJd7DMsXmcW7VsG2NzujbwMzW/F4xVx+oztjdjtFvYjcNPBbubXM7ULURGg3FcdNCL6XIG8nk7Mtg01+rCfGG54UQ5NPMOknxQVS7niSvGgHx5SLVIybifK4vQlhvLr9XKkFf1z4m264XHnDGrLUMdLNnzlRmY7HxmXS5C5Qsz1lzazympZR9ejs5B0u36JU6EV6MR0KnHNaNom2LtYHR5b6HTJd7Xj7qKLcef1Pkz3thDtvtOoY9LkbxvxogZYkHJ2dbM1Y17b4/sgspkvnKW6LZHDYkI7HMi6PpB6LRPDs08Shuyx+7XdiLUQfGjeHoxejQ14qXaBC2oGLHeHamCO1THBKjksjdbw0EdSqDeWFaEIp+pk1T5TTwdfnNBEcIRZdrWYy4Adv6pqXv1ToOVDTtn7PmLaLlVA68O9KpHNpAm6h6guOePa+vRPP4fbFXUfbBdNyJG+kqfgvkYjPuFz/l0WsGXmXK6tW4CjLsKSB6laJ46Tqs/z31xNR1/8CeC6zkg== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-trace.api.mdx b/docs/docs/reference/api/fetch-simple-trace.api.mdx index db229bbcb8..8b50887e8d 100644 --- a/docs/docs/reference/api/fetch-simple-trace.api.mdx +++ b/docs/docs/reference/api/fetch-simple-trace.api.mdx @@ -5,7 +5,7 @@ description: "Fetch a single 'simple' trace by `trace_id`." sidebar_label: "Fetch Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-simple-workflow.api.mdx b/docs/docs/reference/api/fetch-simple-workflow.api.mdx index 078e685f70..dfb73cd16b 100644 --- a/docs/docs/reference/api/fetch-simple-workflow.api.mdx +++ b/docs/docs/reference/api/fetch-simple-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Simple Workflow" sidebar_label: "Fetch Simple Workflow" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zgM/isanLYzapx29uTTepNmk227zeTRHjKelJZgiy1Fqnw49Xr033dAUrb8dl13Zg85JZaAD8AHCCTBKVg2MtB9gE9Kfx0K9WSgn4KqUDPLlbzKoQtDtFnxaHhZCXx8inKQQsU0K9GiJoApSFYidKEReOQ5pMAldKFitoAUNH5zXGMOXasdpmCyAksG3SnYSUWqxmouR5DCUOmSWeiCcx7FcitIoHEyucqhrvsEaSolDRpCeX16Sn9yNJnmFbkPXbh1WYbGDJ1IbqIwpJApaVFaEmdVJXjmo+18MaQzbXlWaeLC8mAhUy4oRYe5tDhC3fLwzEukS058fvU5eSpQJiwJNCYNSwk3iUbrtMQ8TT6fRjmpJCYls1mB+YmHGzInLHRP63TGsPdeTj4MPf2Lng6Fz+tmAW4eW5G3YhooJZDJVkxXJum1RFveDJkwWKcEhmMmHLNK74J6MxNcD2Qkryq0u2Buo9h6kJJJNqJK2w7yPoqtB8mcsarchXEWpNZDCLFT/53YpFwo9XWX9iXJbHBf5bjTeZLZRKHNit0EktB6gCFiPmDZzhAuGrkNYRRsZzGckcwa9YKZR6fFVvVLZpJ7LTaph894J8JtENsAUjCZC9z+aRDKZZRbganTRlENvmBmW3q3vqE0nfHCf/d1OjMknRBQ9wlgpSOwPOf0STNxvdAb5hJL3rZwY6+mJ+thIOM6c4Lp396xAYq/jZIvPzhbOfsClqOhVt7EsywNK7GvRjfXvgvhQ4mWHRhsK7KlNr9guBwsPmlztIuRCyd2EJJOgVss99RiWrPJVl6WdH+M1PdEZp3GFX4vylYw/iHdemlhPAzqvAVRp5BpZBbzx9AmNgG2NhU5s/jScu/PZitnATbpebJclf8KI/cBNhrJUeAvMHIeYKORhq7BhHZo+9nx27B9yPpz4rdmc76OaqVha2alIeyoVhq6ZlaMcKNDa/WWdGkhO5p7MXK23N8Wt3dO80NdvtfcZzCsm4chCEIokOX+cPCzbXgxtDFq8xPd42NU/18mdss6f4ND1CgzjKv53t37MqahTkE76bvFVo9RupJOhNXEFn67TwKm2d98YWMWf/S3Wb2Jpojm2RbqIKKDdt2cF7eeatpH0ufF/yiL//WcUip3WTn7TO6xyL0KdNYpKK/9zOyxmP0Q+dzWUgn8NjaVtUem53byS9vJ3qfac+YPIGsyNGaaM2mPuP37GBDj3k/jmNN24YgGbiJksmPBX6RgLeTilHE2HWXa8iHLbPLEbZFwSyNGo8QY8yTylTCZJ01sSYl6RHPG/b2ZjVLrmpR+f/16dfL6kQme+5Fh8kZrP+87cOyao2Xc70ZjHS8LCJUtvP2R77C1mQql3xpFqDjypIGCGa2bVM+PyMawEc6/hc2inozkjt42C6oXby8J/qBmv7dgVhJyRlx+t2uTNp+0P3hugvtRbqHWmxSFDG2m4jykYFuFXN7dXa8AhvpYLIwLuk9IQkEln+b3CSXaQtGFw8jPdf2tQRc6YWLeaabepjNtXTHUkIJBPW4uIfypBTqs4j7Z4WdhbWW6nQ66k0wol5+wEUrLThgPgn3CyJzmduJBetdXb3ES9s3Qfei3Bfx6EapuUWyWKVbxt0jcxQuRnrOF0vzfZnrur0TC2cjzyeVQtQug551LetdXK/cIC6/oY2KZr53Gkn8N6VLY82hpd1/6TwkssvKP2RvK/OxcBacnr05O6VGljC2ZbJnYlLulsU6kggq0UwnGZetEGfL6ACGvML/PMJBCt3191E+hUMaS8HQ6YAbvtahrevzNoaZc9eMKMCDmHqaQc0P/53FuuuLXrAHBbzfxG3mRzNe+RX+bfEpKJt1a0C9I4StOlu65fBMpmnqZRolelqE/MzW6Kz2PCmtW9X+9uYO6/g8ASXWB +api: eJztWUtz2zgM/isanLYzapx29qTTepNmk227zeTRHjKelJZgiy1FqiTl1OvRf98BSdmS33XdmT3klFgCPgAfIJAEZ2DZ2EDyAJ+U/joS6snAIAZVomaWK3mVQQIjtGn+aHhRCnx8CnIQQ8k0K9CiJoAZSFYgJNAIPPIMYuASEiiZzSEGjd8qrjGDxOoKYzBpjgWDZAZ2WpKqsZrLMcQwUrpgFhKoKodiuRUk0DgZXWVQ1wOCNKWSBg2hvD49pT8ZmlTzktyHBG6rNEVjRpWIboIwxJAqaVFaEmdlKXjqou19MaQza3lWauLCcm8hVZVXCg5zaXGMuuXhmZOIl5z4/Opz9JSjjFjkaYwaliJuIo220hKzOPp8GuSkkhgVzKY5ZicObsQqYSE5reM5w857Of0wcvR3PR0Jl9fNAtw8tiJvxTRUSiCTrZiuTNRviba8GTFhsI4JDCdMVMwqvQvqzVxwPZCRvCzR7oK5DWLrQQom2ZgqbTvI+yC2HiStjFXFLowzL7UeQoid+u/EJuVcqa+7tC9JZoP7KsOdzpPMJgptmu8mkITWA4wQsyFLd4Zw0chtCCNnO4vhjGTWqOfMPFZabFW/ZCa612KTuv+MdyLcerENIDmTmcDtnwahXAa5FZg6bhTV8AumtqV36xpK0xkv3Hdfx3NDshIC6gEBrHQElmWcPmkmrju9YSGx5G0LN/RqerIeBlKu00ow/ds7NkTxt1Hy5YfKlpV9AcvRUCtv4lmWhpXYV6NbaN/58KFAyw4MthXZUpvvGC6G3SdtjnYxclGJHYTEM+AWiz21mNZsupWXJd0fI/U9kVnHYYXfi7IVjH9It15aGA+DOm9B1DGkGpnF7NG3iU2ArU1Fxiy+tNz5s9nKmYeN+o6sqsx+hZF7DxuMZCjwFxg597DBSEPXcEo7tP3suG3YPmT9OXVbswVfR7XSsDW30hB2VCsNXXMrRlTjQ2v1lnRpITuaeyFyttzfutu7SvNDXb7X3GXQr5uHIQhCyJFl7nDws224G9oEtfmJ7vExqP8vE7tlnb/BEWqUKYbVfO/ufRnSUMegK+m6xVaPUVYFnQjLqc3ddp8ETLO/+cImLPwYbLN6E0wRzfMt1EFEe+26OS9uPdW0j6TPi/9RFv/rBaVU7rKs7DO5xyL3ytNZx6Cc9jOzx2L2Q+BzW0sl8NvQVNYemZ7byS9tJ3ufas+ZO4CsydCEac6kPeL276NHDHs/jRNO24UjGrgJkNGOBb9LwVrI7pRxPh1l2vIRS230xG0ecUsjRqPEBLMo8BUxmUVNbFGBekxzxv29mY9S65qUfn/9enXy+pEJnrmRYfRGazfvO3DsmqFl3O1GQx0vCwiVdt7+yHfY2kz50m+NIlQYedJAwYzXTaoXR2Rj2BgX38JmUUdGdEdvmwXVibeXBHdQs99bMCsJOSMuv9u1SVtM2h8cN979INep9SZFPkObqTj3KdhWIZd3d9crgL4+uoVxQfcJkS+o6NPiPqFAmyu6cBi7ua67NUig5yfmvWbqbXqz1hVDDTEY1JPmEsKdWqDHSu6S7X/m1pZJrydUykSujPWvB6SZVprbqVPtX1+9xanfLUPyMGgLuFXC11pXbJ4fVvK3SIyFa5B+ZXOl+b/NzNxdhPgTkWORy5Fqp70/RmlZ1L++Wrk96LyiT4ilrmIaS+41xK1gTdLrMff4hPEe7ekL9wGBRVb8MX9D+Z6fpuD05NXJKT0qlbEFky0TmzK2NMwJVFBZ9krBuGydI302H8BnExa3GAZiSNqXRoMYKEkkPJsNmcF7LeqaHn+rUFOuBqHvD4m5hxlk3ND/WZiWrvg1bzvw2034Ml5EixWv62+TT0nJpLsK+gUxfMXp0u2Wax15Uy+zINFPU3QnpUZ3pdNRYc1r/a83d1DX/wFvhnIi sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-span.api.mdx b/docs/docs/reference/api/fetch-span.api.mdx index 93255533bb..75aaf4bfa9 100644 --- a/docs/docs/reference/api/fetch-span.api.mdx +++ b/docs/docs/reference/api/fetch-span.api.mdx @@ -5,7 +5,7 @@ description: "Fetch a single span by `trace_id` + `span_id`." sidebar_label: "Fetch Span" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-spans.api.mdx b/docs/docs/reference/api/fetch-spans.api.mdx index e86bb74ccb..cbbdccfdf1 100644 --- a/docs/docs/reference/api/fetch-spans.api.mdx +++ b/docs/docs/reference/api/fetch-spans.api.mdx @@ -5,7 +5,7 @@ description: "Fetch spans by known IDs." sidebar_label: "Fetch Spans" hide_title: true hide_table_of_contents: true -api: eJztWd1PGzkQ/1csP5xaaQlc1aecqrsUwpGDI1ES+kIRcXYnWTdee+sPaA7t/34aezfZJBACtFfpxBOsM1+e+c3Ynrmjlk0NbV7SoWYxGHoV0QRMrHluuZK0SY/BxikxOZOGjOdkJtWtJJ0j0/gsP8ue4tISodTM5QRkkuN3g7QsEcCMJUoCURMysij8micjojQZoTD8+CwzZywZA8k1GEDOj8qmhMUx5JYAtylooiEHZiEhXx3oOcmZZpn5LN+Mfq+kfmC/LP4dj96iDkZilWVszwDSI7fhciogsK9wmw8sGo/e/kY0GCesIUwDSSBxueAxsvqd9sE6LQ0ZvT84GJHbFCSRpYGdI0Ok0sQL9F8owbg8F9xzHytNJlxY0HtjZiAhGqzmcMNERJwBMup1B0Oy732873c5atCIqhw0wyh0EtqkE4zDtaehEfXbAAsaY3dHJcuANmm1JRpRjrHzsmhENXx1XENCmxMmDETUxClkjDbvKJPz7sTLsPMcZTCtGfJwC5lBinLdWM3llBZFtFiSTghaXEXUcitwYRg8kASqNaPMS6yqtO+g3KxoL7H2szwyyJlcd0hp0o/2R6ka3XGFwk2upAG/gXcHB/hnNdEHLo7BmIkTpF8S04jGSlqQ1huRh4zgSu5/MchzVzMx14hXy4OGWLnAVFrHpYUpaLo079BTrFebobJMEOmyMWisHBmzccrltCxAXBKbArnlMlG3Dc89YU5Y2jwoIhqSY8Vdi5itmad9Sblmdpt3IzpROkMamjALe5ZnsNXlh0EsaVlaRNTlyY9QchHElkoSEPADlBwFsaWSyl3jOabSbnqc48lOzvo49wmy9Nd31VJ5a6Glcth31VK5a6FlUYk3ysV91TJalKkt5ItS4qs/SPuI/dvs7XkBK7YG0m3uAOkyvClweaNCGaARZVIqW3046a8HdL0qD1HSpj3VvndXzabgi0acMo4Kb5WeTYS6RTcxM8M/SglkyMaQJIG5qq9CZL6gZbmA0uA4ZdZXXs3k7P4NoNsfsX/G5SNIquwf9Frn16ed86Pri/NBr33YOe60j2hUW++cD9v989bZyuKg3f/U7q8sHZ512ufDlaVev3t0cbhO1z0fXPzd7te31B2CwG2dot0PbyscVy84fM6ZrzLUWKbtta85L6hR1RGyVS1qIsPASUEm/4nWtkwWOo1l1pnrWCU7QnowbA0vBteH3aM2gqLtY1pb656uLbT7/e5mOL3aQ9R6f0CDWRkYw6bPj6qXQv4upRQRZdZqPnYW1s5dliQcc4yJ3srBu4PWez2O94H6ylgpAUz6pft10Zjr2Amm3xw7If4ySu51nc2dfYtVIkhR4y8QWy+kvCjswhXug9v8tMbri+yGxoeYW0uXFliaJqBBxuvue+BicwPa8HA1e06AP5XsiBjhps/GCfIWEf1+B2w4qV7R9kPRtsG4WmP6FRRrGh63rr8EcBFRweVsNyTXbkQveP2s38Ve8rB8ReDPRuAZl7Mnge/Mw62IaMpMumMJfS1a/yfInDCTPgkyJwEpeH38hm3IjdP0NW7Pjlt74VF07w1Iu1tKVi+Rh57G1UMDL+/Gsiz/Ljf++hGwEPya0D8hoZed0cuAhXqo115CbYTVkzK+HYD4mOJac726m6zdN56kdVB28temLYJZIjiOTtabn42ttc6LW/RtiwJp3797t9nm/cQET3zDhrS1Vvr5Pd4ELOPCH5n3p61Q8cqvT0mEq3Vf1g71qvtURDQz022FofZSrZpMD5F6Z5Cy00O5RAwjeXWWyxLUsf1WE7MRh0P05Tf7KJrQN8H8kq7+CluEKEToYVcchRBsA8bJcNjbEBjwkYFNFc6WpmD9TMmmtEnLORTCHPRNNWFyWuBvLOc+XOEztTY3zf19cI1YKJc0fH+ONRgPhFcoI3aa27kX0up1TmF+AiwBTZuXV3WCAaIs4GaVbDmHyfkp4O7LOUrL2VRp/k/VffTDlDRwFT6GE1UPYcsbR1q9zkbarfyE6cBiuzx4yp+xP7iy7eVufcfRJwO1wLI/Fr9g7BZvcnrQ+LVx4Bu4ytiMyZqKMGa9tyjcLRP0dRr706axJQgxufdzge3nosTDXZk5l7SazmIyp8pYXLu7Qy0XWhQFLodmNCZDwg0bi9q4bwbz1RnuDRMOdfqMe4Tc7Ei/nIc+gXpV+BV+aI70PomjKulwV4Gv5TFT49o4V1DKov782R7SovgX81oeeQ== +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-subscription.api.mdx b/docs/docs/reference/api/fetch-subscription.api.mdx index f7a7e980a8..ca8ff09577 100644 --- a/docs/docs/reference/api/fetch-subscription.api.mdx +++ b/docs/docs/reference/api/fetch-subscription.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Subscription User Route" sidebar_label: "Fetch Subscription User Route" hide_title: true hide_table_of_contents: true -api: eJyFUsuO2zAM/BWDZ8FOe/SpKdBHsJfFpnsKjIJRmFitLKkSFdQ1/O8F7SSb+LK+GCKH5HCGAzCeEtQ7+GysNe4EjQIfKCIb7zYHqOFIrNufKe+TjiZIGBRESsG7RAnqAT6uVvI70Buihm3WmlI6Zlu8XMCgQHvH5FjgGII1eppT/UpSM0DSLXUI9TDKpxYtvwqTYnvHpHhNFIsXn1mad8StF8onYlAQkFuoodrPm1WLFRLFM0XZfYAcrSAxGBjV9dkyh1RXFeVSW58PJZ7IMZZoZmAjPXSOhvupyfp580T9d8IDRah3zT1gK4vNaj3CBuA+ENSAwTxRDwocdvJeZ259NP/wQteIAu1cJdIYd/RTuWE74Sdyxfp5A0vdHlLiAOrJgeukKQ1qsfbbtqCAOjSSZMLu0y0DowLRcB6zKj+UKwkFn7hDdzfiPece+N4kYfrLVbBonHSd2A0XV3dwcVWMvPe1UdD6xIIYhj0meo12HCX8J1MUoxoFZ4wG9yLbrhnVVVXx8Df1oojWFOSEzmjzbM7iVsXb27l9+/IDxvE/VkIgUw== +api: eJyFUsFu2zAM/RWDZyHOdtRpGbCtQS9Fs54CY2AUJtYqS6pEB3UN//tAO8mcXOqLIfKRfHyPPTAeM+gtfLfOWX+ESkGIlJBt8Os9aDgQm/pPbnfZJBslDAoS5Rh8pgy6h6/Lpfz29B+hYdMaQzkfWlc8n8GgwATP5FngGKOzZpxT/s1S00M2NTUIuh/kU3ctfwqTYjNjUrxkSsVzaFmaN8R1EMpHYlAQkWvQUO6mzcq7FTKlEyXZvYc2OUFitDCoy7NmjrosXTDo6pB5SldSadpkuRtLV0/rR+oeCPeUQG+rOWAj60wa3cJ64C4SaMBoH6kDBR4bea9arkOyH3gmaWXveqoSQaw/hLHcshvxR/KMxeppDfdq3aREdzSj7pdJYxrUbNmsyxLH8AJtCQqoQStJJmy+XTMwKBDlpjHLxZfFUkIxZG7Qz0Z85tcN36skTO9cRofWS9eRXX/2cgtnL8W+uZuVAnFIEH2/w0wvyQ2DhN9aSmJUpeCEyeJOZNtWg7qoKh6+UieKGENRDueErp3MubtQ8fZ6ZL9+/IZh+Acdkhz0 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-testcase.api.mdx b/docs/docs/reference/api/fetch-testcase.api.mdx index 62905a4b13..7b624c136a 100644 --- a/docs/docs/reference/api/fetch-testcase.api.mdx +++ b/docs/docs/reference/api/fetch-testcase.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Testcase" sidebar_label: "Fetch Testcase" hide_title: true hide_table_of_contents: true -api: eJztV0tz2zYQ/iuYPdkztKR4emIvVe24cdNOPLHSi0djQ8RKRAI+AiycKBz+986CD5GS4zgZ59SeRBHfPvDtB3C3ApIbB/ENLNBRIh06WEZQlGgl6SK/VBDDGilJb6kFQASltDJDQsuWFeQyQ4ihA9xqBRHoHGIoJaUQgcWPXltUEJP1GIFLUswkxBXQtmRTR1bnG4hgXdhMEsTgffBCmgwDuuzEpYK6XrJLVxY5pxtXcDqb8Y9Cl1hdct4Qw7VPEnRu7Y1424IhgqTICXNiuCxLo5Owzel7xzbVILPSMgmkmwhJ4RujNmGdE27QDjI8C4hoL4kXQq+FFB014pN0wiJ5m6OKxEwUlKL9pB1OgulaekMQz+qoZzNkmm/frAPV46wY45CY8BHqcVbrqEfk3hhgOoc8O6RAcwTP6/u695tYlITqVtITfStJeEI6w0cDnDVuxZw4iC/VzwjyrnHbBlFo8CcEOW/ctkE6ulbbZ6xGR9bv27YoHV/PGqVjq4/SEfasUTq6+ijP57rxtzbhlhy6lEppPuTSXI3O5EHQVVEYlPkwSpsHv3nYDSTaJt5Ie/SXXKH50xX5yRtPpadjvnIaL8XqPSY0ynYfzbnvoR/Z60XYJZv8F3a7aDebIckf3OxgZ3vfhVHgbDV+M+ToW4xcePMNQqIKNGH2RCtprdw+roKx7feR+jeTycdc/k/qs5F6zmTWByaH3dGDXsYNySLFXTeyMsVqIu64WHcikdZqdIJSFN6hPVG41jkqkRTGZ7n7Vdz1HZ5C5ctbre7Ekc6dVtg6ORa6cZBIY9CeOM89FioRDMQH3IpPKeaitOgwp8mTdtV3b3XN8F9OTw+bvX+k0Sq0cuKltYX98U5PIUlt+KkVwD7AFMlo9XsEvKz3NDO4zIomwXAluc1DzfHukDknN7gT0dehgQyx4FX+LOasPYZ3X7e8FWNCnwduDkpxxlx+pgfLtWvubwI3TfotbqDiXYmaCn2divOmBI9p49VicXXgsNHHWBgXPLuIxW52yZDSgqeaDVIYZSiFGKadtN20GswxNXATbO+7Scdbw2BZ6lDe5m9KVLp4OkU/SUzh1URuMCc5kboBLtlH4q2mbXAyv7p8jdtXKBVaiG+WQ8A1q7LR2RjW10aW+jUyW+3UNfeUFlZ/acTTzl1pY1WHmq+LYcnnITkxv7o8GFZGS3x8ZBLU0kUKyxDtbXu3W4gAs3B4gFBmv/UrXGvmsAkzm7yYzPhVWTjKZD4IcVCtUYI9B6zFaWmkDqclpFO1lbzpBycHEcTDmXQZQVo4YkxVraTDd9bUNb/+6NFybZYR3Eur5YqZuqlAacfPCuK1NA4P0umvGDh6256CY7H7LIzT7OqXc/HupfH8DyL4gNu94TlcE2mnj6pFzJMESxrYHtxqLKRe3n+8XEBd/wveqm65 +api: eJztV0tz2zYQ/iuYPdkztKV4emIvVe24cdNOPLHSi0djQ8RKRAI+AiycKBz+986CD5GS4zgZ5dSeRBHfPvDtB3C3ApJrB/EtzNFRIh06WERQlGgl6SK/UhDDCilJ76gFQASltDJDQsuWFeQyQ4ihA9xpBRHoHGIoJaUQgcWPXltUEJP1GIFLUswkxBXQpmRTR1bna4hgVdhMEsTgffBCmgwDuuzElYK6XrBLVxY5pxtXcDad8o9Cl1hdct4Qw41PEnRu5Y1424IhgqTICXNiuCxLo5Owzcl7xzbVILPSMgmkmwhJ4RujNmGdE67RDjI8D4hoJ4kXQq+EFB014pN0wiJ5m6OKxFQUlKL9pB2eBtOV9IYgntZRz2bINN+8WQWqx1kxxiEx4SPU06zWUY/IvTHAdA55dkiB5ggO6/um95tYlITqTtIzfStJeEI6wycDnDduxYw4iC/VzwjyrnHbBlFo8CcEuWjctkE6upabA1ajI+v3TVuUjq+DRunY6qN0hB00SkdXH+Vwrht/KxNuyaFLqZTmQy7N9ehM7gVdFoVBmQ+jtHnwm8fdQKJt4o20R3/JJZo/XZGfvPFUejrmK6fxUizfY0KjbHfRnPsO+om9XoZdssl/YbfzdrMZkvzBzQ52tvNdGAXOluM3Q46+xcilN98gJKpAE2bPtJLWys3TKhjbfh+pfzOZfMzl/6QejNQLJrPeM9nvjh71Mm5I5iluu5GlKZan4p6LdS8Saa1GJyhF4R3aE4UrnaMSSWF8lrtfxX3f4SlUvrzT6l4c6dxpha2TY6EbB4k0Bu2J89xjoRLBQHzAjfiUYi5Kiw5zOn3Wrvrura4Z/svZ2X6z9480WoVWTry0trA/3ukpJKkNP7UC2AWYIhmtfo+AF/WOZgaXWdEkGK4kt36sOd4eMufkGrci+jo0kCHmvMqfxZy1x/Du65a3Ykzo88DNXinOmcvP9Gi5ts39beCmSb/FDVS8LVFToa9TcdGU4CltvJrPr/ccNvoYC+OSZxcx384uGVJa8FSzRgqjDKUQw6STtptUgzmmBm6C7UM36XhrGCxLHcrb/E2JyngyMUUiTVo4apYXbJl4q2kTTGfXV69x8wqlQgvx7WIIuGEtNuoaw/qKyFK/RuaonbVmntLC6i+NZNppK22s6lDpVTEs9GyNOUkxu77aG1FGS3xoZBI00kUKyxANNuviyUSG16dSTyACzMKRAUKZ/davcIWZuSbM9PTF6ZRflYWjTOaDEHs1GiXYc8AKnJRG6nBGQjpVW7/bflxyEEE8nEQXEXBRGFNVS+nwnTV1za8/erRcm0UED9JquWSmbitQ2vGzgngljcO9dPqLBY7etto/FtuPwTjNrn45F+9BGs//IIIPuNkZmcPlkHb6qFrELEmwpIHt3l3GQupF/cfLOdT1v4u2a1o= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-testcases.api.mdx b/docs/docs/reference/api/fetch-testcases.api.mdx index 31011b64e4..f290c19e00 100644 --- a/docs/docs/reference/api/fetch-testcases.api.mdx +++ b/docs/docs/reference/api/fetch-testcases.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Testcases" sidebar_label: "Fetch Testcases" hide_title: true hide_table_of_contents: true -api: eJztWE1z2zYQ/SuYPbUztOxmeuKpqpM0blLHEzvtwaPJQORKQgoCDLCwo2j43zsLfogUFdlxlVN70ojYfbt4bxdfGyC59JDewg16yqRHD7MEbIlOkrLmIocUFkjZ6gN1BgmU0skCCR27bsDIAiGF1uKDyiEBZSCFTwHdGhJw+CkohzmkC6k9JuCzFRYS0g1Is367iDC0LhlGOifZRxEWni2a756cMktIYGFdIQlSCEHlUFVJZ2KC1lDNEiBFmj+0sxIXjeE4Vf9vcm1yemQKHioecehLa5jJdAPPzs74J0efOVUy55DCdcgy9H4RtHjXGEMCmTWEhmIiZalVFiU6/ejZZ9NLs3QsIKk6QmZD7dRkqAzhEh1sUzyPFslOEpehmKMTdiE66YVDCs5gLqwRtFJelHKJk+i6kEETpGdVAttSSTdbGYdZsY1H4lo5QOxI7AeI9khR6gSOi33d4WYOJWH+QdIjsXNJeEKqwIMBzmtYMSUOEsr8ewR5X8M2QXLU+B2CPK9hmyAtXfP1EdVoyfp13YjS8nXUKC1bXZSWsKNGaenqohwPusZb6LjC9yFlnitucqmvBj05Cjq3VqM0/Si9FW8/DGTKZUFL98MbOUf9u7fm5G2gMtCPvOTUKHb+ETMaZLtrzbnvWB+Y68s4S3b5L8z2pplsgSSfONnxztXuC4PAvAX0v/Q5eoiRl0E/QEjSbQ+P8aoPBgerYOj7baT+wWRym8v/ST0aqc+ZzGrkMj4e9WDbA+CuiR8dUbqz1VzbuReFpGylzFLQCkU8ziVCGeHwTnllzYl1OTpxv0IjfGZLzMV8LWQ3Lhwu0KHJcMLZ3CuT23vWcyD18Bhj8B79cTfQyxqySsDq/Njgb2vIKgGDnx8L/eBOc8lYVQJaFWo/6N4+2EF5E7153qzT4dzQhIKvLdJnaPL6G9dG82d2kIMIz1utIXR3Uj8544sWoErAScK9QON+H+G8Y99DXfJXV4v7YIZNcR6ct04srIt9wDrHY3oi1EIU1qFw6IMmL/Cz8jR5VHv67h5SVWz/87Nn42vLn1KrPF5KxAvnrHv6nSVHkkofuD5omw1Gv2Upnn19qXlj6wTj5uqX+26f2+3Ce7nsrVtfN41kiBsejVXHqyibd1XULKsZfe7BjLQ4Zy650fbotb203kZu6vQbu16lbSWqFfo6Fc9rCQ4Vx6ubm6sRYF0fw8J4yS8Ior+OF0gry48LS6T4oEArSOG0uzmeAl/h3F37xBCc5nFZqihp/XdFVPr09BTDJNM25BO5RENyIlVtOGOMLDhF6wgyvbp4jetXKOPycjvrG1xzJda1NTTbvkuU6jUyQ80bwjTQyjr1pS6Y5hFhVXtVUeeF7cs8jcmJ6dXFaB8bDHHLyCxWSBspDkOyM+3tbHlBLGLDAKEsfulGWF/msA5zNvlpcsafSuupkKYXYqzQIMOOBC7A01JLFVsk5rNp1LuF/hMRF93K8u51C5vNXHp873RV8ef6oYUFyZWXc917avkb16OHpDupA4eOwj/s4QcuM/7jFPtExZNWIQ5f+06zDEvqeY0WKkbpCva3FzdQVf8AmJuQRw== +api: eJztWE1v4zYQ/SvEnFpAsdOgJ52aJptuumkSbLztITACWhrb3FKklhwl8Rr678VQH5Yix8mm3lN7MizOvBm+N8OvNZBceIhvYYKeEunRwzQCm6OTpKw5TyGGOVKyvKPWIIJcOpkhoWPXNRiZIcTQWNypFCJQBmL4UqBbQQQOvxTKYQrxXGqPEfhkiZmEeA3SrK7mAYZWOcNI5yT7KMLMs0X93ZNTZgERzK3LJEEMRaFSKMuoNTGF1lBOIyBFmj80sxLnteEwVf9vcq1zemUKHkoecehza5jJeA1Hh4f8k6JPnMqZc4jhpkgS9H5eaPGxNoYIEmsIDYVE8lyrJEg0/uzZZ91JM3csIKkqQmKLyqnOUBnCBTrYpHgSLKInSVwW2QydsHPRSi8cUuEMpsIaQUvlRS4XOAquc1logviwjGBTKvF6I2M/K7bxSFwrO4gdiP0C0R4pSB3BfrFvWtzEoSRM7yS9EjuVhAekMtwZ4KSCFcfEQYo8/R5BPlWwdZAUNX6HIKcVbB2koWu22qMaDVm/rmpRGr72GqVhq43SELbXKA1dbZT9QVd4cx1W+C6kTFPFTS71da8nB0Fn1mqUphuls+Jth4FEuaTQ0v1wIWeof/fWHFwVlBf0Iy85FYqdfcaEetk+tebcn1jvmOtZmCW7/BdmO6knmyHJN052uHM1+0IvMG8B3S9djl5i5KzQLxAStdvDa7yqg8HOKuj7fhupfzCZ3Obyf1L3Ruopk1kOXIbHow5scwB8auIHR5T2bDXTduZFJilZKrMQtEQRjnORUEY4vFdeWXNgXYpOPCzRCJ/YHFMxWwnZjguHc3RoEhxxNg/KpPaB9exJ3T/GGHxAv98N9LKCLCOwOt03+FUFWUZg8PG10C/uNJeMVUagVaa2g27tgycoF8Gb58067c4NTZHxtUX6BE1afePaqP9Md3IQ4HmrNYTuXuo3Z3zeAJQROEm4FWjY7wOcj+y7q0v+amtxG0y/KU4K560Tc+tCH7DO4ZgeCTUXmXUoHPpCkxf4qDyNXtWevr2HlCXb/3x0NLy2/Cm1SsOlRLxzzrq331lSJKn0juuDtklv9FuW4unzS82FrRIMm6tfbLt9brYL7+Wis249bxrIEBMeDVXHqyibt1VUL6sJPXZgBlqcMJfcaFv02lxabwM3Vfq1XafSNhJVCj1PxWklwa7ieD+ZXA8Aq/roF8YZvyCI7jqeIS0tPy4skMKDAi0hhnF7cxwDX+HcffPEUDjN4zJXQdLq75Ioj8djbROpl9ZTNTxlz6RwilbB9fj6/AOu3qMMi8rttGtww/VXVVTfbPMakasPyLzULwfHBS2tU1+rMqmfDpaVVxnUnduuuMcLNCTF8fX5YPfqDXGjyCTURRMpDEPUmayPx2MZPo+kYoowC20ChDL7pR1hVZm5Kszh6KfRIX/KradMmk6IoS69DFsSuOzGuZYqNEbIZ11rdgvdhyEuNVaCv6/XM+nxk9NlyZ+r5xUWJFVeznTngeVvXA2ej+6lLjh0kPtlD99zmfIfp9gnKB41CnH4yvc4STCnjtdgeWKUtkx/ezeBsvwH8YiM6A== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-testset-revision-to-file.api.mdx b/docs/docs/reference/api/fetch-testset-revision-to-file.api.mdx index 029efd7003..8f931e3f5e 100644 --- a/docs/docs/reference/api/fetch-testset-revision-to-file.api.mdx +++ b/docs/docs/reference/api/fetch-testset-revision-to-file.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Testset Revision To File" sidebar_label: "Fetch Testset Revision To File" hide_title: true hide_table_of_contents: true -api: eJy1VU2P2zYQ/SvEXLYFBHuz6EmnGk2DGEm7i123F8MwuNTYYkKJCjl04wr678FQH5Y/FomD5CSJHL15fDPzWAPJrYd0CQv05JE8rBKwFTpJ2pbzDFLYIKl8Te3+2uFOe23LNdn1RhuEBCrpZIGEjoFqKGWBkMLZDzqDBHQJKVSSckjA4aegHWaQkguYgFc5FhLSGmhfMYQnp8stJLCxrpAEKYQQUUiT4YCOtHjscoh5Bk2TDByY4DqCdZk/BXT7o9QbafxRblnu7zfxIFiGgqVRfgcJfPC2ZHGOuXGybqUMxkCzSiBDr5yuWEBI4Y02KDhEkBWZ/a80VmYT8RSqyjrCLBU3yu9uhHXihnPcTMRr3MhgqNuZAEPGFUg7Mr0AEXzB+ZufkPdUyfj+PUpeq9l9fJFGqODJFoKzc3KxsU5QjofznGrxN1M80+IKPCbj0Fe29Oj5FHe3t/w4BnwKSqH3m2DEYxcMCShbEpYUz15VRqs4RNPYOWl9UKZpmiaB3+7uzoH/lUZn8Tfxp3PWXYEKlePBJd3yzpCkNvymCQt/HmCsOtr9hnLpknCLDppVMwyCdE7uR2V4b1uCXIXCby+Ncx/6F3ovt7FebcjLoVGModN1WYUoSL89jwtNAoo+j2Ds8wdUNIL5g7X8TGwSZzGHTl5GbVr6XdzqgHEoUVuhl6V43ZbgUrI+5O1i8XAG2PbHyTizC4szw1tY8aZ14QIpt+zXlfUUXZlySGHa+bCf9kbsp/UFb26m/QxAAh7drrfz4AzDyErHTmg/c6LKp9MphokyNmQTucWS5ETqNnDFGCo4TfsIMnuYv8P9W5QZOkiXq3HAEzdw25LHYUMZZaXfIQvbmdEsUG6d/r/ts86Q8vavJrbHxo67YxbJidnDHE5lPdriSZMqNlafKW5DcnLsw2khASzinAGhLH4fdrgtWMM2ze3k1eSWl7g4hSxHKb5a2CPCgybcxtPKSB0HLdKru5ov+7vXx67uqg4JpJfv5KHwqwRybp50CXX9LD3+40zT8HLr9lzJTHv5bEZ+f0JvcKsfc/FdPO1H3J9c7jtpAsfFFv12itfdM1+h0t2OByor/nCauVwp3S+PnRf9Kl5K3I9GuR/n7AldKnQ07bwfwbqLnCmFFY0wzu4YPsdgLg/3Twtomi9DEIBz +api: eJy1VU2P2zYQ/SvEXLYFBGu76EmnGk2DGGm7i123l4VhcKmRxZQSGXLkxjX034OhPix/LBIH6ckyOXzz+GbmcQ8kNwGyZ1hioIAUYJWAdeglaVsvcsigQFLlmrr9tcetDtrWa7LrQhuEBJz0skJCz0B7qGWFkMHZAZ1DArqGDJykEhLw+LHRHnPIyDeYQFAlVhKyPdDOMUQgr+sNJFBYX0mCDJomopAmwwE9afHY5xCLHNo2GTkwwXUE6zN/bNDvjlIX0oSj3LLe3RfxIlg3FUujwhYS+BBszeIcc+Nk/UrdGAPtKoEcg/LasYCQwVttUHCIICty+29trMxn4qlxznrCPBM3KmxvhPXihnPczMQbLGRjqN+ZAUPGFch6MoMAEXzJ+dv/Ie+pkvH7W5S8VrP7+CGNUE0gWwnOzslFYb2gEg/3OdXiT6Z4psUVeEzGY3C2Dhj4Fne3t/xzDPjUKIUhFI0Rj30wJKBsTVhTvLtzRqs4RGnsnGx/UKZt2zaBn+/uzoH/lkbn8Zj4zXvrr0AF53lwSXe8cySpDX9pwiqcBxirjna/oly6Jtygh3bVjoMgvZe7SRl+tx1BrkIVNpfGeQj9A0OQm1ivLuT10CjG2Om6dk0UZNhexIU2AUWfJjD25QMqmsD8ylp+IjaJs5hDJz9HbTr6fdzqgHEoUVeh16V405XgUrIh5N1y+XAG2PXHyTizC4szw1ta8bZz4QqptOzXzgaKrkwlZJD2PhzSwYhDur/gzW06zAAkENBvBztvvGEY6XTshO5vSeSyNDVWSVPaQN32ik+qxmvaxaPzh8V73L1DmaOH7Hk1DXjitu0a8ThsLJ50+j2ynL0FzRsqrdf/dd3V21DZnWpjUxR22hPzDdYkxfxhAadiHm3xfEkV22nIFLchmVw2ZGkq4/JM6hQSwCpOFxDK6pdxh5uBlevS3M5+mt3yEpekkvUkxRfLeUR41ISbN3VG6jhekd6+r/Tz8OKG2Mt9rSGB7PJLPJZ7lQCXkBH2+xcZ8C9v2paXO4/nSuY6yBczcfkTeqNHfZ/n7uJt/8HdyZO+labhuNiYX0/xutflC1T6N/FAZcV/vGYuV0r3w2PvQD+K1xIPo1HvpjkHQpcKHa26HEZw30fOlUJHE4yzl4XvMVrKw/3TEtr2M2UxfRQ= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-testset.api.mdx b/docs/docs/reference/api/fetch-testset.api.mdx index 26ad7aca69..a180ab821f 100644 --- a/docs/docs/reference/api/fetch-testset.api.mdx +++ b/docs/docs/reference/api/fetch-testset.api.mdx @@ -5,7 +5,7 @@ description: "Fetch a testset artifact by ID." sidebar_label: "Fetch Testset" hide_title: true hide_table_of_contents: true -api: eJzVV01z2zYQ/Ss7OCUztORkemIvdeO4cdPWnkTpxfbEELEUkUAAAyzkKBr+986CpERJtuN4nENPlondt4u3H9hdCZKzIPILMcFAASmIq0woDIXXNWlnRS5OkIoKJFArAdKTLmVBMF3C6fHo0l7ad0jR2wBU4ebYuxtw1ix/TZqFDBhAeoRAzqMCZ8HjQgftbABp1aWdx0AwRSjZICpYaAnX485sGK+lxx7Ja1zgNTh/aVuRhD/+EtEvr0ciE65GL/kGp0rkIkF+7KBEJmrp5RwJPd99Jayco8hFd/5RK5EJzXevJVUiEx6/RO1RiZx8xEyEosK5FPlK0LJmzUBe25nIROn8XJLIRYwJhTQZFujohVMlmuaKEUPtbMDAIC8PD/nPNu3vY1FgCGU08K4TFpkonCW0xOKyro0u0h3HnwLrrAaO1Z4ZIN1aKFxslTp/tSWcoR84+CpJ7Mb+BehyEPobGcCnWKPK4BAcVehvdMBR0ixlNCTywybrqUx+2uVZmWje9ql0RqFnsreE7me0ydYSNhojmMv+CicJMFGcidKkxL7TPPvY4rjpJyxoP1YnCWGXkXMjC6xaS6XzPTUHBhdoIFlNJTGpdIC5U2hAB9ApatpZacwScF7TEqaR4DPWBDKABIWKg4kK2C0IDqiSlF/aA8CvOpC2M/BYokdbYABycJ2M5XBWt8AXQ7+vrsHjXGoLC2m0ytoKO4BAPhYUuQCTOhTScs1JpVBBhR5B21THZWQxuNFUuUgw9Sg/sxNU4aUFCNF7F63iT8eTszC6JTTM8V4UpFK6dfh8Kx32MmDqnEFph7hdUvCX22FEoX0RjfTP/pJTNH8GZw/OItWRnovdgA9TZ1da7KXHfYk34Us2mZgjyUdednCznRLdMjyfbn8ZcvQ9Rk6i+Q4h2UpowvkDtaT3cnl/QW7r/hipfzOZTdb15gdRtofxD+s2OyX8OKjjAUSTicIjF+tHSQ/sXkoSHpBO/txt5VULC0eJrFirn2HkQwvbGVFo8CcYOW5hOyM9XdPlE/b7nqzfl13P7/l6Uis9W2srPWFPaqWna20lmDh7bK6+Z90mE0/nXhpbvvti3gqx/XxOKtwbJEdw7DCAdQTaFiYq3EyMo4fYXc9HTcPSv7x8uT9O/cvPYBqW4LX3zj9+llJIUhv+1TXLXQHjiq3TH2n2V81Ofx28Ua51ML00YXbb9LnpnSHIGW4a7t2iiQyY8ClnjOU+zeJ94G3XuAv6OoDZi8Qr5vIr3RqtzfR8kbhp3e/kBkm2CVEbobupOG5DcF9qvJlMzvcA2/yYI1WOt4JZtwtQJXKxWTRWmz2gEZkI6Bf9ohC9YVFZ6xS99t+KqA75eIxxVBgX1UjO0JIcSd0KXjFGEb2mZQI5Oj99i8s3KBV6kV9cDQXec9K1abQttqZe1votMhnd0nIUqXJef2tzo9tbqlarSSEt3TCiR8k5ODo/3Zttt464OmSRkqG3lI5FtnPtzW1FJnjmNGmVkvPf1iccSuawNXM4ejE65E+1CzSXdmCi3TUn6z1t5+FeV+z/dCntQsiVMq6N1KmWE5urLg0v+s2JN498sJBeZaJygVhitZrKgB+8aRr+nOA5jzKxkF7LKYf5YiWUDvxbibyUJuA9ZD5711Xoc7jLyT75LGfeQprI/4lMfMbl9uKcOljV5/aqEzgqCqxpoLrXcLkI1oX5x+uJaJr/APTovE4= +api: eJzVV01z2zYQ/Ss7OCUztORkemIvdeO4cdPWnkTpxfbEELEUkUAAAyzkKBr+986CpERJtuN4nENPooD9wtu3C+xKkJwFkV+ICQYKSEFcZUJhKLyuSTsrcnGCVFQggVoJkJ50KQuC6RJOj0eX9tK+Q4reBqAKN9ve3YCzZvlr0ixkwADSIwRyHhU4Cx4XOmhnA0irLu08BoIpQskOUcFCS7ged27DeC099khe4wKvwflL24ok++MvEf3yeiQy4Wr0kk9wqkQuksmPnSmRiVp6OUdCz2dfCSvnKHLR7X/USmRC89lrSZXIhMcvUXtUIicfMROhqHAuRb4StKxZM5DXdiYyUTo/lyRyEWOyQpoMC3TwwqkSTXPFFkPtbMDARl4eHvLPNuzvY1FgCGU08K4TFpkonCW0xOKyro0u0hnHnwLrrAaB1Z4RIN16KFxslbp4tSWcoR8E+CpJ7Ob+BehykPobGcCnXKPK4BAcVehvdMBR0ixlNCTywybroUxx2uVZmWDejql0RqFnsLeE7ke0ydYSNhojGMv+CCfJYII4E6VJxL7TPcfY2nHTT1jQfq5OkoVdRM6NLLBqPZXO99AcGFyggeQ1lcSk0gHmTqEBHUCnrGlnpTFLwHlNS5hGgs9YE8gAEhQqTiYq4LAgOKBKUn5pDwC/6kDazsBjiR5tgQHIwXVylsNZ3Rq+GMZ9dQ0e51JbWEijVdZW2AEE8rGgyAWY1KGQlmtOKoUKKvQI2qY6LiOLwY2mykWCqUf5mYOgCi8tQIjeu2gVLx1PzsLoltQwxntZkErpNuDzLTrsMWDqnEFph3Y7UvDK7WZEoX0RjfTP/pJTNH8GZw/OItWRnovdhA+psyst9uhxH/EmfMgmE3Mk+cjDDk62U6JbjufT7ZUhRt9D5CSa7wCSrYQmnD9QS3ovl/cX5Lbuj4H6N4PZZF1vfhBkezb+Yd1mp4QfZ+p4YKLJROGRi/WjpAd2LyUJD0ineO728qo1C0cJrFirn+HkQ2u2c6LQ4E9wctya7Zz0cE2XT9jve7B+X3Y9v8frSb30aK299IA9qZcerrWXYOLssVx9z7pNJp4uvPRs+e6NeauJ7etzUuHeQ3IExw4DWEegbWGiws2LcfQQv+v3UdOw9C8vX+4/p/7lazA9luC1984//i2lkKQ2/NU1y10B44qt3R9p9lfNTn8d3FGuDTDdNGF22+tz0ztDkDPcNNy7RRMYMOFdZozlPs3ifeJt17gL+jows5eJV4zlV7o1W5vX80XCpg2/kxuQbJOiNkN3Q3HcpuA+aryZTM73DLb8mCNVjqeCWTcLUCVysRk0Vps5oBGZCOgX/aAQvWFRWeuUvfZvRVTn47FxhTSVC9RuX7FmEb2mZVI9Oj99i8s3KBV6kV9cDQXeM9Va8myLrQGXtX6LDEE3qhxFqpzX31pGdNNK1Wo1KZGlG+bxaIaWJBydn+69aLe2uCZkkSjQe0rbIhscNuTjsUzLI6nHIhP80jRpgJLz39Y7nEBGrnVzOHoxOuSl2gWaSztw0U6Yk/V0tnNdr+v0fzqKdink+hjXRupUwQnNVUe+i35e4nkjH4yhV5lgRrHEajWVAT940zS8nMwzjzKxkF7LKaf5YiWUDvytRF5KE/AeMJ+96+ryOdwVZE8+y8xbSBP5n8jEZ1xuj8upb1U9t1edwFFRYE0D1b02y0WwLsc/Xk9E0/wH2o247w== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-tool-action.api.mdx b/docs/docs/reference/api/fetch-tool-action.api.mdx index aa0c01e989..39956beec9 100644 --- a/docs/docs/reference/api/fetch-tool-action.api.mdx +++ b/docs/docs/reference/api/fetch-tool-action.api.mdx @@ -5,7 +5,7 @@ description: "Get Action" sidebar_label: "Get Action" hide_title: true hide_table_of_contents: true -api: eJztV8GO2zYQ/RVjTgmgWs6iJ51qbNLE3bRrZN1eFsaCpmiJKSUqJLWIK/DfgyEli5K87iYwctqTYXJm3ujN45DTgCGZhuQeNlIKDdsIZMUUMVyWqxQS2DND8wcjpXggFFchgoooUjDDFDo2UJKCQQKVko88ZerhX3aACHiJa8TkEIFiX2quWAqJUTWLQNOcFQSSBsyhQl9tFC8ziMBwI3Bh3Qab3bADWBsdUXhpWObzuwjQqo83wfIffBGYJT2JsK+FeEiZIVzoDuNLzdRhALInQp9C2UkpGMGKpGxPamG6fDrU32shZm/b8NZuMaiuZKmZxjBXiwX+pExTxStX3ATuakqZ1vtazD61xhABlaVhpUFzUlWCU8dY/FmjTxOkVinUj+EegcraO7UZu+oxFRBz7SyCL1jYqCXegZWH271T2TAw1uQM3Y7nqGX5abO/cN9GQwZC0KEjFq5dKWshAAntQr0NQtgIKDEsk6rNlhtW6GkiNuoWiFLkELLSuwfU3G9tBEJm8keT/Ii+toeVu8+MmoHW7sHL3VEXuGJ7uCaGCJl5LTugl6Jcqijd8dbnVB823tCKpCnHjyRiPbB/RjrdiRxkWOyGK12jwaXTWEC5orUg6hX2nD+0LH+5rU1Vm9cwVhsGabl/jpevwjkCR74w0fc553VPqcUGXNXmhdxLkbvydNoIpPN+YfZSzN62fJ5q5p0NBr9rm8o0lus4shoz/syueC63Ox/2QvfM8flyBrG7kc6QMYl7fNxYi36/Xl1N30L/EMFT/zZ8p5RUP/4Q8m+8wbUzNBCSDna/5wxsn76zPkqfIBaw0Nm5e/dPpjXJWF/qp00dGbMN7nZN05mHx95duOZrEGZSk2vk8qv5X6UgNz791i4ofV8iX6GnqfBCOiuSD5vNehLQ62MojPfMzJbdOFQwk0uclTJm3HRkckggxplJx9RrLu6mIx034aBk42Cg0XEzGm9s7J/COm76YcRCBJqpx27+qpVAPFJxpw7/Nzem0kkcs3pOhazTOclYaciccG+4xRi0VtwcXJDlenXDDh8YSZlyj5rAwDURL9Oh2bG0pOI3/XFOYFmbXCr+H2kpcoNN7r2sk8xehopZuuRmy/UKxlQPtvD0EerE1iG5bYhGn91/LUTACnf2wDBS/HbcQakghx5mMX8zX+BSJbUpSBlADIo9epW2348yjitBuDtoLpWmFcI9OCGAe36iFFAinRgggmQyN/d6wO3pwNtKAjeDCXUbQS41PkihaXZEs7+VsBaX/UCJRU65JjsRjJTuxT6eQh+JqPGjnEgeieLoc9p/xMaxOcKrT+35fT3r78QhS510ykOI2eU0YAVl/ROxx5T/ZPigqK61592hbCcsWFLKKhO4Tm4irNyxLb1/twFrvwEEjCWn +api: eJztV1Fv2zYQ/ivGPbUAF7nBnvQ0I+1aL91iNN5eAiNgKFpiR4kqSQX1BP734kjJoizHSwujT3kyTN7dd/ru45HXgqW5gfQO1kpJAxsCquaaWqGqZQYpbLllxb1VSt5ThqtAoKaaltxyjY4tVLTkkEKt1aPIuL7/l++AgKhwjdoCCGj+pRGaZ5Ba3XAChhW8pJC2YHc1+hqrRZUDASusxIVVF2x2zXfgHNmjiMryPOR3FqDlEG+CFT74LDALdhRh20h5n3FLhTQ9xpeG690IZEulOYbyoJTkFCuS8S1tpO3z6VF/b6Scve3CO7fBoKZWleEGw1zO5/iTccO0qH1xU7htGOPGbBs5+9QZAwGmKssri+a0rqVgnrHks0GfNkqt1qgfKwICU01w6jL21eM6IubKW0RfMHekI96DVbubrVfZODDW5ATdnmfSsfy02V+478iYgRh07IiF61aqRkpAQvtQb6MQjgCjludKd9kKy0szTcSRfoFqTXcxK4N7RM3dxhGQKlc/muRH9HUDrHr4zJkdae0Ogtw9dZErtocraqlUedCyB3opyrmK0h9vc0r1ceONrWiWCfxIKlcj+2ek05/IUYblw3ilbzS4dBwLmNCskVS/wp7zh1HVLzeNrRv7Gg7VhkE67p/jFapwisADX5jo+5TzaqDUYQOuG/tC7rnIXQY6HQHlvV+YPRezNx2fx5p5b4PBb7umMo3lO46qDxl/Zlc8ldttCHume2b/fDmB2N9IJ8iYxN0/bpxDv18vL6dvoX+oFFl4G77TWukffwiFN97o2hkbSMVGu99zBjZP31kfVUgQC1ia/NS9+yc3huZ8KPXTpp6M2Rp3+6bpzeNj7y9c+zUKM6nJFXL51f6vUpCbkH5nF5V+KFGo0NNUBCGdFMmH9Xo1CRj0MRbGe25ni34cKrktFM5KObd+OrIFpJDgzGQSFjSX9NORSdp4UHJJNNCYpD0Yb1wSnsImaYdhxAEBw/VjP381WiIerYVXR/hbWFunSSIVo7JQxobtDXqyRgu7866L1fKa7z5wmnHtnzKRgW8dQZxjs31BaS2uh0OcwqKxhdLiP9oR48eZIng5L5StinWyyHll6WyxWsIhwaMtPHOUeYn1SH4bSPSxJk0S6pcvqEiAAC/9iQPLafnbfgcFgswFmPnFm4s5LtXK2JJWEcSoxAdv0e77UbxJLanwx8un0nblvwNffvCPThQACqOXABBIJ9PyoALcno65nRBwM5pLNwSwugjYtg/U8L+1dA6XwxiJRc6EoQ8yGiT9O/1w9nykssGP8iJ5pFqgz3H/Azb2LRFefepO7evZcBOOWeqlU+1izD6nESso5p+IfUj5T4aPiuobetEfym6uggVjvLaR6+T+wcrtm9H7d2tw7huUxyJI sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-tool-connection.api.mdx b/docs/docs/reference/api/fetch-tool-connection.api.mdx index a2fe882943..b736d4e20c 100644 --- a/docs/docs/reference/api/fetch-tool-connection.api.mdx +++ b/docs/docs/reference/api/fetch-tool-connection.api.mdx @@ -5,7 +5,7 @@ description: "Get a connection by ID." sidebar_label: "Get Connection" hide_title: true hide_table_of_contents: true -api: eJztWEtz20YM/isanJIZRnI9PfFU1c7DddN4bLkXj0YDkZC06ZLL7GI9UTX87xnsUiIp2YrjcU7tySYJfMB+eCygDTAuHaR3MDFGO5gmkJPLrKpYmRJSeE88wEFmypIyeTWYrwcX50NIwFRkUV5d5JDCgjhbzdgYPWuFIYEKLRbEZMXIBkosCFJoRWYqhwSUmKqQV5CApS9eWcohZespAZetqEBIN8DrSpQdW1UuIYGFsQUypOB9QGHFWgTOWm8vcqjrqYC6ypSOnOCcnpzIn/5Bb3yWkXMLrwfXjTAk4ihTySKOVaVVFk48+uxEZ9PxrbLCB6toITM+KjUuq5JpSbbno0gI2wv0miE9qZMOLcFguf60CKz1wRc6hKwrgHmuRA31VU+0lWgcmRujCUuok3065c3DMJApm3mN9tWfOCf9hzPlm0+eK8+v5UARxcw/U8YgXG+PuC8N9YF060Xpte5pvwunFJX/wmknzWELYnzmYTsn28u6nuFi3n/T5eh7jLzz+juEJBtQTMUTtdBaXB/Pgr7uj5H6UciUsrKETPkM+RhxnX6SI9MbVgUdhT+LsINxcMtX+c8wchthGyM5afoJRs4jbGNkS9d8Lc35aXZCB34KWb+vQ09u+XpRK1u2dla2hL2olS1dOyvxVntSTR6A/YUhOP3b6HlQ5x2IOgGn/fK5UDeiWyfwcqRFpipr7lVOdvYPrR+60qn0hUwjmSkq45SBBHBJJSN0m6Ux0qAC0KUqA3DodXEeeQx750krOrikdSAf/2+7L9Z2zzG2XcfI3h2bZCzlylLGM2/1czP1usEY3FoN9YGj/axpJ8Ob6Nwh8kMQ7Uh618/gw7ybPmbwiaYeVt5NpHUtSr+enh4OsH+jVnnM6rfWGvv86TUnRhUC0iTVvoA2We/rjxTFtN7Lw84IZaKDYRByy2M1/JGcwyW1ifm4aCBjMJGvoU9IPov4rhs0CZ7x1w7MQUDOhMuv/GCKdfNDuInuN3KdjGhDFCP0OBXnMQTHMuTDZHJ1ABjzoyBeGdnKlsRhB+MVpDCS7cyN2iXDjTa9RayGBBzZ++2yFqoSRlipEMn4uGKuXDoakR9m2vh8GPvzEFUUnApG5q3idQAZX11c0voDYU4W0rtpV+BGEjCmVF9sFwas1GWos2ZxHHteGav+xWa9DIvjKmrVIbwL043uODg3GF9dwP5m2/sklYJZSIytpXjtJHvHbk8rt1UR6gSYsPht90XCKhxGMyfDX4Yn4eozjgssOyZktz7rLst7M8CufI9s4Q1PkpqjSqMKxdO00xj3Owhxh+56KU9pfwmfJrAyjkV+s5mjo1ur61pef/FkJZbTBO7RKpwLs3cbyJWT/3NIF6gdHXH/1XVTIK8Hj7m8jXcpwb5H7eUJEgh3+d7vBaGHrLYZtWlkxllGFXe0D1qepN6uNN6/nUBdfwM/AtNz +api: eJztWEtz2zYQ/iucPSUzjOl6euKpqp2H66bx2HIvHo1mRa4kpCDBAEtPVA3/e2YBSiQlW3E0zqk92QT2hW+/XWC1BsaFg/QexsZoB5MYcnKZVRUrU0IK74kjjDJTlpTJUjRbRZcXJxCDqciiLF3mkMKcOFtO2Rg97YQhhgotFsRkxckaSiwIUuhEpiqHGJS4qpCXEIOlL7WylEPKtqYYXLakAiFdA68qUXZsVbmAGObGFsiQQl17K6xYi8B5F+1lDk0zEaOuMqUjJ3bOTk/lz/Cgt3WWkXPzWkc3rTDEEihTySKOVaVV5k+cfHais+7FVlnBg1XwkJk6KLUhq5JpQXYQo0gI2nOsNUN62sQ9WLzDcvVp7lEbGp9rn7K+AOa5EjXU1wPRTqINZGaMJiyhiXfhlJXHzUCmbFZrtK/+xBnpP5wp33yquar5tRwoWDGzz5QxCNabI+5KQ7Mn3UVR1loPtN/5U4rKf+G04/awBTEeedjeyXZYN3BczIYrfYy+h8i7Wn8HkHgNiql4phZai6vDLBjq/hioHwVMKStLyJRPkQ8B1+snOTK9YVXQQfPnwWw08mHVVf4znNwFs62TnDT9BCcXwWzrZAPXbCXN+Xl+fAd+Dli/r3xP7vB6US8btLZeNoC9qJcNXFsv4VZ7Vk3uGfsLfXKGt9Fxpi56JpoYnK4Xx5q6Fd0mhpcDLSBVWfOgcrLTf2j12JVOZV3IayQzRWWcMhADLqhkhH6zNEYalDd0pUpv2Pe68B55yvY2kk40uqKVBx//b7sv1nYvMLRdx8i1O/SSsZQrSxlPa6uPZepNayO6sxqavUCHrOlehrchuH3Lj5nonqT3Qwbv827ylMNnunpcefsibRpR+vXsbP8B+zdqlQdWv7XW2ONfrzkxKp+QllS7Atpkg90fKYpJs8PD3hPKhAD9Q8gtDtXwR3IOF9QR82lRD0Y0ll3fJ4TPIr7tBi3BM/7aM7OXkHPB8is/SrE+PwSbEH4r12NEl6KQoaehuAgpOMSQD+Px9Z7BwI+CeGlkKlsQ+xmMl5BCItOZS7ohwyXrwSDWQAyO7MNmWPNVCQlWymcyfC6ZqzRJtMlQL43jsD0Rzay2ildedXR9eUWrD4Q5WUjvJ32BW6FdINJQbAs+VurKV1c7Lo5qXhqr/sV2qPTj4jJoNT6pc9PP6chfGdHo+hJ259nBltQHZp4OG0/hsol7h3VpkoQ76ARVIndU4asDmLD4bbsjyRTkgpvTk19OTv2FZxwXWPZcyER93h+Rd27+bdEemL1bnISQSaVR+ZJpm2jI9j34bEN/qJSvdDh6T2KQJIr8ej1DR3dWN40sf6nJSi4nMTygVTgTZO/XkCsn/+eQzlE7OhD+q5u2LF5HT4W8yXcpyX5AXcsXxOBv8J1fCXznWG4YtW5lRllGFfe09xqdUG9bEO/fjqFpvgH8V9AU sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-tool-integration.api.mdx b/docs/docs/reference/api/fetch-tool-integration.api.mdx index a6770369b7..9f4d9041b9 100644 --- a/docs/docs/reference/api/fetch-tool-integration.api.mdx +++ b/docs/docs/reference/api/fetch-tool-integration.api.mdx @@ -5,7 +5,7 @@ description: "Get Integration" sidebar_label: "Get Integration" hide_title: true hide_table_of_contents: true -api: eJztV0tv4zYQ/ivGnFqAsNygJ59qZLe7RrZtsPHuJTAMRhpb3FKilo9gXYP/vRhSkikrdts0aC85GRbnxW++Gc4cwPKdgfk9rJSSBtYMVIOaW6HqZQFz2KLNy41VSm5EbXEXj4BBwzWv0KIm7QPUvEKYQ6PVoyhQb37HPTAQNX3jtgQGGr86obGAudUOGZi8xIrD/AB235CusVrUO2BghZX04bY1NrnBPXjPei9JJC/iaHm0N/K1dVJuCrRcSNM5+upQ7weetlyap1w9KCWRE14FbrmTtguqc/2zk3LypjXv/ZqMmkbVBg2ZuZrN6KdAk2vRBOjncOfyHI3ZOjn52AoDg1zVFmtL4rxppMjDfbIvhnQOSWiNphRbET3kykWlNuKALeoEnesgkdxg5lmaguCx3v+2DUQYWqfsXAA+gM1aqM+L/Urnng1hSJ0OFSl77ZfaSQmEamfqTWLCM8i5xZ3SbbTCYmXGgXjWfeBa830KzVE9wed+7RlItVPPDfID6XoGTsvnmvikJVngOd3UbPosj2x1+b5kbBGtTCITyKyz5SYwKgJ3tHoGQgZYu4r6jCJdYMAbEWo3cUMtaOFseRcMj2C/GKGz5eSuDcgfNdXDF8ztoFTvIbaMQLoT79fccql2ST8IXl85/crp/5vT/b3PxPbK0Zfi6L/tHpFZ/yzVbWpfsnP1Q8UFv4NG94Tvyx764cN7Uv7x6mo8q3zmUhRxsnqrtdLPH1TiDDagy1BAqnxw+jcY0DeK9XmufVB59xJAZXaX6uUXNIbvkio/LxrAmKzoNExTjYtDWJ8Y+kCFYr8lZkaJuSYsv9m/JA5hE8Nv5RISHFMUM3Qeikipi0x5v1rdjgxGfgyJ8Q7tZDnYKCq0paKdY4c2LBi2hDlktHuYLI/sy7oFw2SHdNfwWTKQmuxwsiF4YGBQP3bbSniEIOONCGyIf0trGzPPMnTTXCpXTPkOa8unXETBNdnInRZ2H4wsbpc3uH+PvEAdmk8icHd8R4ZifSp5I26O1Ry7vdLijw6NsGiUUcsHimxVypBFCG6yuF3CKbSDI6o2ngdydZ7CMbCTax9vSy9bFWoNLPLqp/6EqEEYRjez6Q/TGX1qlLEVrxMX4+SePCEtCMTdrJFc1MloEBN/DyHxEN4KSj1Roks+MJiPVs1j/un4dEdcMyiVoVcCDocHbvCTlt7T57jNUUYLYfiDTPa58IyeroCPXDoKPjDikWtBOk/rn9y673zw3ce2OL+fAHsajY4n9T712cU0uD1x+D/0fQpt6J5lVwft8AGLPMfGJvqjZk/49UX/7u0KvP8TvoencQ== +api: eJztV8Fu4zYQ/RVjTi1ARG7Qk041sttdI9s22GT3EhgGQ9MSt5SoJUfBugb/vRhSkikrdts0aC85GSY580ZvHocze0BeOMjv4c4Y7WDFwDTSclSmXm4gh61EUa7RGL1WNcoibgGDhlteSZSWrPdQ80pCDo01j2oj7fp3uQMGqqY1jiUwsPJrq6zcQI62lQycKGXFId8D7hqydWhVXQADVKhp4aZzNruWO/CeDShJJC8CtDz4m2BtW63XG4lcadcDfW2l3Y2Qtly7p6AejNGSE18bueWtxj6oHvrnVuvZm8699yty6hpTO+nIzeV8Tj8b6YRVTaA+h9tWCOncttWzj91hYCBMjbJGOs6bRisRvif74shmn4TWWEoxqoggTBuNuogDt9Im7FyFE8kXzD1LUxAQ691v2yCEsXfKzhniA9mso/r0sV9p37MxDSno2JCy163UrdZArPau3iQuPAPBURbGdtEqlJWbBuJZv8Ct5buUmoN5ws/9yjPQpjDPDfID2XoGrdXPdfHJavLABX2pWw9Znvjq833O2SJ6mUUlkNsWy3VQVCTu4PUEhQxk3VZUZwzZAgPeqHB3ExgqQYsWy9vgeEL72QhbLGe3XUD+YGkevkiBo6t6D7FkBNEdoV9x5NoUST0IqK+aftX0/63p4btPxPaq0ZfS6L+tHlFZ/yzVXWpfsnINTcUZ3FGhewL7PMLQfHhPxj9eXk57lc9cq03srN5aa+zzG5XYg43kMj6gjRjt/g0FDIVidVprH4zoXwKoXHHuvvwineNFcstPHw1kzO5oN3RTTRubsCExtEAXBb8lbiaJuSIuv+FfCoe4ieF35xIRHFIUM3Saiiips0p5f3d3M3EY9TEWxjuJs+VooqgkloZmjkJiGDCwhBwymj1cJqL6sn7AcNk+nTV8ljSkLtsfTQgeGDhpH/tpJTxCkPFGBTXEvyVik2eZNoLr0jiM2yuyFK1VuAumi5vltdy9l3wjbSg5yYHbw+sxPjYkkDfq+nCHY403Vv3RcxDGizJa+SCMrUl1sShkjXy2uFnCMaGjLbpjXARJ9UhhG1jysS7PMh6WL7jK6D2rwg0DlLz6adghQRBzEWZ+8cPFnJYa47DidQIxTenRw9GRQIrNGs1VnTQEMd33ENIN4YWghJMQ+pQDg3wyYB6yTtvHk+GKAaWSHO/3D9zJT1Z7T8txhqOMbpTjDzqZ4sLjeTz4PXLdUvBBEY/cKrJ52v7oq4d6B9997K7k9zNgT7PR66TepZh9TKOvJ+X+h9jH1IaaWfb3oGs5YCGEbDCxn5R44m+46u/e3oH3fwJEk6QS sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-tool-provider.api.mdx b/docs/docs/reference/api/fetch-tool-provider.api.mdx index a255fdc321..dcc824e9f4 100644 --- a/docs/docs/reference/api/fetch-tool-provider.api.mdx +++ b/docs/docs/reference/api/fetch-tool-provider.api.mdx @@ -5,7 +5,7 @@ description: "Get Provider" sidebar_label: "Get Provider" hide_title: true hide_table_of_contents: true -api: eJztV0uP2zYQ/ivCnFqAsJ1FTj7V2KTJYpPWyDq5GIbBpWiJCSUqfCziGvzvxZCSTMmPptsAveRkmOQ8+H3fDEcHsLQwMF/DSilpYENANVxTK1R9l8McdtyycmuVkttGqyeRcw0EGqppxS3XaHqAmlYc5tAd2H7heyAgalyjtgQCmn91QvMc5lY7TsCwklcU5gew+wZtjdWiLoCAFVbiwrJ1lt3zPXhP+ig7J+U255YKabooXx3X+0GYHZXmXJxHpSSnNRDI+Y46abuMuri/OymzV6177zfo1DSqNtygm5vZDH9ybpgWDcIEc3hwjHFjdk5mH9rDQICp2vLa4nHaNFKwgOr0s0GbQ5JaoxFzK2IEplw0ajMWteVFQL1L8TacSG4w86QHP4Sr93/uAjND18jLGch57SqUAFNVo4xQQIAWvLYU5dAFRX10nNyLOgdPWkYuc/gH7nsyRCtNb2iIJLcrtZMSfBL+VeLCkwhKlKnZ9oidOO6wu+b5LnGVRWi9J91x9fiZMzuQ1hqivsPtRwjdUkulKjqgQuCfHDyLg2GAoWtheWVOS+cCtl2U0En+T8QYtbxQus22v8TYX7dAtab7tO6P5knxrzeegFSFem6S79DWE3BaPtfFRy3RA2U/QgwLNtIBdbbchnbJL+ngUjkptMVaakR4lUbFtHC2fAiOT2C/mqGzZfbQJvSfm0Ui/n+VRVo0P65l9U/flcjH9nYm6hXf/ePoPVq+vLk5fUs/USnycKnstdZKP/8hjTPCoNKGB6Rig93vUH6v383lMn2nWE9mZYprreY9N4YWifguHw1gZCvcDa2xcXFI6MWAC9hj7LfEzQkrt4jlt39+4hCbmH57LqH/SFFk6DIUUUxXZfJ2tVqeOIz6GArjDbfZ8jiCVtyWCifUgtswkdoS5jDFSdVMWdTdtBuKzPSQDqceCBiun7r5NXQ+mNJGBK7j39LaxsynU+4mTCqXT+J7PKEiHtygD+a0sPvgZLG8u+f7t5yGIWy9SQ88HJvX8FhPFG3E/bFEY4tRWvwVldSOuWW08kEAO5XyvwjJZYvlHYyBG2xhLVEWpNNFimMGGV37eFtsp1WoJLCcVr/1O0g8YhjDzCYvJjNcapSxFa2TECPqRg9riwDKctpIKurkMYq0riHQCuEFRWLhOO/i6nzw5bEhUCqDLyMcDo/U8I9aeo/L8TMBycqFoY8y+VAIo8P42+KJSoepBbKfqBZoc95+dKe+ZcEvH9qq+jUDcv6unQTqfRqzy2lwt9B3yk5j7cQDC8Z4YxPjkzaJF+gr5s3rFXj/N8DgyHM= +api: eJztV02P2zYQ/SvCnFqAWDmLnnSqsUmTxaatkXVyMQyDS9ESU0pUSGoR1eB/L4aUZEr+aLoN0EtPhknOB997MxwdwNLCQLaBtVLSwJaAarimVqj6PocM9tyycmeVkrtGq2eRcw0EGqppxS3XaHqAmlYcMhgO7P7gHRAQNa5RWwIBzb+0QvMcMqtbTsCwklcUsgPYrkFbY7WoCyBghZW4sOqdJQ+8A+fIGGXfSrnLuaVCmiHKl5brbhJmT6U5F+dJKclpDQRyvqettENGQ9xfWimT171757bo1DSqNtygm9vFAn9ybpgWDcIEGTy2jHFj9q1MPvSHgQBTteW1xeO0aaRgHtX0s0GbQ5RaoxFzK0IEptpg1GcsassLj/qQ4p0/Ed1g4cgIvg9Xd7/vPTNT18jLGch53VYoAaaqRhmhgAAteG0pymEIivoYOHkQdQ6O9Ixc5vA33Hdkilac3tQQSe5X6lZKcFH415ELRwIoQaZmNyJ24njA7prn+8hVEqB1jgzH1dNnzuxEWhsI+va3nyF0Ry2VqhiA8oH/5+BFHEwDTF0LyytzWjoXsB2i+E7yXyLGqOWF0n224yXm/oYFqjXt4ro/mkfFv9k6AlIV6qVJvkdbR6DV8qUuPmqJHij7HmJYspkOaGvLnW+X/JIOLpWTQluspUb4V2lWTMvWlo/e8QnsVzNsbZk89gn962YRif8fZREXzfdrWePTdyXysb2diXrF9/g4OoeWP93enr6ln6gUub9U8kZrpV/+kIYZYVJp0wNSscnuNyh/1O/2cpm+V2wkszLFtVbzKzeGFpH4Lh/1YCRr3PWtsWnDkDCKARewx9ivkZsTVu4Qy69//8QhNiH9/lxE/5GiwNBlKIKYrsrk3Xq9OnEY9DEVxltuk9VxBK24LRVOqAW3fiK1JWSQ4qRqUhZ0lw5DkUkP8XDqgIDh+nmYX33ng5Q2wnMd/pbWNlmaSsWoLJWxYXuLlqzVwnbedLm6f+DdO0796LXZxgcejy1remykhzbi4ViYobEoLf4M+umH2zJYOU/7XsWsL/2IkCxX9zCHa7KFFUSZF8wQKQwXJLqsydI0zBw3VKTYRCtfP2A5rX4ed5BuRC6EWdy8ulngUqOMrWgdhZgRNntOewRQjGkjqaijJyiQuQFPJvh3E+mE45SLq9nke2NLAFlCs8PhiRr+UUvncDl8HCBZuTD0SUafB35gmH9RPFPZYmqe7GeqBdqct5/daWxU8MOHvpZ+TICcv+sggbqLYw45Te7mu005aKyfc2DJGG9sZHzSHPECY528fbMG5/4C8ArFFA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-trace-tracing.api.mdx b/docs/docs/reference/api/fetch-trace-tracing.api.mdx index d003eb54f5..0ddb1771c4 100644 --- a/docs/docs/reference/api/fetch-trace-tracing.api.mdx +++ b/docs/docs/reference/api/fetch-trace-tracing.api.mdx @@ -5,7 +5,7 @@ description: "Fetch a single trace by `trace_id`." sidebar_label: "Fetch Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-trace.api.mdx b/docs/docs/reference/api/fetch-trace.api.mdx index dc1a2a3f8d..3b9f1a5f4a 100644 --- a/docs/docs/reference/api/fetch-trace.api.mdx +++ b/docs/docs/reference/api/fetch-trace.api.mdx @@ -5,7 +5,7 @@ description: "Fetch a single trace by `trace_id` in the canonical `Trace` shape. sidebar_label: "Fetch Trace" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-traces.api.mdx b/docs/docs/reference/api/fetch-traces.api.mdx index eec424f1b9..a5e79cbb75 100644 --- a/docs/docs/reference/api/fetch-traces.api.mdx +++ b/docs/docs/reference/api/fetch-traces.api.mdx @@ -5,7 +5,7 @@ description: "Fetch multiple traces by known IDs." sidebar_label: "Fetch Traces" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztW91v2zgS/1cIPhy2gGLnij4ZKPZ8ibv1JWsbttOXJohpaWyxpkgtSSX1BvrfD0N9WLIT2/nobW+hp8TUDGc485vhcEA+UMuWhna+0qlmPhh649EAjK95bLmStEM/gfVDEiXC8lgAsY6MzNdkJdW9JP1z07qW13KkuLREKLVKYgIyiPF3i3R9H2JrCHAbgiYaYmAWAvJHAnpNYqZZZK7lL7Nf3by3PPjI/lH+O5+9I0oTRnwVRezEANIjt+FyKSBjr3Gbj8ybz961yBhMIqwhTAMJIEhiwX1kxS820dKQ2YfT0xm5D0FeS6lwHY7YJHEsOBJeGSCz0XAyJe1s0W2n9IwslCYLLizokzkzEFxLDVZzuGOiRT2qYtAMjdcPaIcu0Hy32QTUo05lsKDR5g9UsghohxbqU49ytLkTRD2q4Y+EawhoZ8GEAY8aP4SI0c4DZXI9XLg57DrGOZjWDHm4hcggRT5urOZySdPUK4dkIgRNbzxquRU44HxP+kFGtaWUeY1WhfQjhBua4rAGEytpwK3h/ekp/qkjcpL4PhizSAS62RFTj/pKWpDWaRFn7uZKtr8Z5Hmo6Bhr9JDlmQRfJRlTrh6XFpag6Ua/M0exHRZTZZkgMonmoIlakIhZP+RyWQQIl8SGQO65DNR9y7EvWCIs7ZymHs3xULNY6bi6giZmcouSBQFHNZgY1Ug3FK+egvpc+4lg+pcJMg9UAO+oVyr5+Oc6FNObtBxR82/g270wcBPR1KO+diniltl9iPLoQukIaWjALJxYHsHe+c+yaUkX1aBJHPwIIVfZtLmQAAT8ACHn2bS5kMJc8zUmkOPkJAkPjjLWv9cuK2zs9aZSCmuVUgqDvamUwlyllDLb7iTJxzKi58LnADmCN6eOmQZpD+i/T9+Rm6Cma0a6zxwgkwjDlss7lWU+6lEmpbLFj0S6DZtuZ94pzrSrT7Hu40WzJbg86YeMo8B7pVcLoe7RTMys8I9SAhmiOQRBxlzsKUJELodHsYBcYT9k1u02msnV4wtAsx/Qf8XlASQV+k9G3cHtRX9wfns1mIx6Z/1P/d459Srj/cG0Nx50L2uDk974S29cGzq77PcG09rQaDw8vzrbphsOJle/98bVJQ2nIHBZF6j308vK9uiXAcyBdcBclqHGMm1vXc55RY4qds29YlESmWacFGTwP5Hak0Ep01hmE3Prq+BISE+m3enV5PZseN5DUPScTytjw4utgd54PNx1pxN7hlIfd2imVgTGsOXLvepmIb/ns6QeZdZqPk/sdnFwuHx4UuqjFscSqDoyV0oAk27ocVmb8uFTIsR/jJInw8TGia0UEZWSYafoeJorLz322GmLlz6rSOluTJpialqABnlsJXcH2vCsGn2Jg7/k7IgYkSxfjBPkTT36dhtstlM1aPuhaNthrOeYcQHFioTD2o03AE49KrhcHX8meUWFU6mWqrXYaw6PDQL/agRecrl6FvguHdxSj4bMhEem0CZp/Z0g85mZ8FmQ+ZwhBcvH79hX3NlNG7+92G+90qJo3juQ9riQLE4iTx2Ni4MGFu/Gsih+k4q/ugWUEzcB/RcE9KYb/DXDQtXVWyehHsLqWRHfy4B4SHClgV7UJtutxUFx/nq7PmvTJG2apE2TtGmSNk3SpknaNEmbJmlTMDZN0qbf8HMdT5omadMk/XkQ2DRJG8g8EzJNk/Qn8lvTJG2A8ZKA/j9rkr5Nj/LtypY9KdIRPcta0+Iudv1C7yU3Fi/y1u/v+kwqyX0myCzjmxETshha5JPSjiJi8YkbCkjM1kKxgKxgDQFekZ8VJph5xGdCVO+Tc7lsu55zca38ntuQzBbKT8zH68x413TWOrx6U96CTlMk/vD+/e6l6S9M8MC1uUhPa6VffmM6AMu4cIXG48lOKL/29Tnp42bbk5VSqOjZpR6NzHJfOq2c74vW3FOkzhgk749RLjHykbyogGSeCnz7vTLNjiPO0Jbf7cEYRNtk6ud01bNr6aLMQ0+b4jxzwT5kfJ5ORzsTZviIwIYK3yYswbonCTakHVo8csDsAPqueKGQaIEfWcydv7KfobVxp90WymciVMZmn2+Q0080t2vH2h31L2D9GVgAmna+3lQJJgiuDC51stLELOYXgIvOnyN0Exsqzf8sWrXuSUKYcaXOdQtV9VwXO62MdEf9nVCvfcIoYL7d7NL5Z2ymlos1nXbbtW5Zi/G2a8+6GKAWWPSv8gu6rGxg0NPWP1unrtutjI2YrIjIHtU8nokeNoHZPL557uObHDwYi+1YYI89zf34kAP9Ky0f42DwIXxx8OEBp7vSIk1xOGu5I4oDbthcVF67rGBdf7Jzx0SCQl2AHCA3Nfob/KE5MrgA8QpAo+CMMfNhhWsnVeMsZUj/1pvSNP0vcK1kpA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-usage.api.mdx b/docs/docs/reference/api/fetch-usage.api.mdx index 9e5fe7d522..08f1e660ed 100644 --- a/docs/docs/reference/api/fetch-usage.api.mdx +++ b/docs/docs/reference/api/fetch-usage.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Usage User Route" sidebar_label: "Fetch Usage User Route" hide_title: true hide_table_of_contents: true -api: eJx1Uk2P2jAQ/SvonS1Ce8ypVOoH2stqt5xQVA1mSNwmsWuPUWmU/15NAnRBai6RPW9m3ocHCNUJ5Q4fXdu6vkZl4ANHEuf7zQEljiy2+Z4T1QyDyCn4PnFCOeD9aqW/AycbXdAOlHjN1nJKx9wuXi5gGFjfC/eicAqhdXZaUPxI2jMg2YY7QjmM+pmHkZ+VwmKrFBbbxHHx4rPo1I6l8UqyZoFBIGlQotjPWoor6cTxxFFlDsixVQgFh9Fcj41ISGVRcF7a1ufDkmruhZbkZmClM2yOTs7TkPXz5onPX5kOHFHuqreAV5Uy+3MPGyDnwChBwT3xGQY9dXpeZ2l8dH8mS2DgVHMzd6kZrj/6qd1JO+Encov18waPTt2V1HOyk+fXTVMZ5kH2P7Uw4I6cFoWp+3CrYDRQD+c1q+W75Uqvgk/SUf9mxX+zuiN680L4txShJdfruInWcMlxh0uOyndKsjJofBItDcOeEm9jO456/Stz1GgqgxNFR3s1aleN5uqjpvaTz+qBtRz0tZyozXMcD+9R07y9rC+fvmEc/wJ8ohED +api: eJx1Uk2P2kAM/SvonUeE9pjTUqkfaC+r3XJCUWUGQ6adZGZnHFQa5b9XTgAB0uYSje1nP7/nHkKHjHKDL8571x5QGYTIicSFdrVDiT2LrX91mQ4Mg8Q5hjZzRtnj82Khvx1nm1xUBEq8ddZyzvvOz17PxTCwoRVuRcspRu/sOKD4nRXTI9uaG0LZD/qZh5bflMJsrRRm68xp9ho60a4NSx2U5IEFBpGkRoliO+1SXEhnTkdOumaPLnktoegwmMuzFollUfhgydchy5SuFGm75OQ0Qpcvq2c+/WDacUK5qW4L3nSBSZX7sh5yiowSFN0zn2DQUqPvZSd1SO7fKAQMnG5aTyiVwLX7MMKd+LH+wK3QbPmywqM+dylVmuyo9GXSmIa5WTaXRUFjeE6ugAE35DQpTM3TNYPBQJWbxizmn+YLDcWQpaH2ZsSHDt0RvWoh/FeK6Mm12m6k1Z/d2+DsnvId/asM1BNN9f2WMq+THwYNv3ec1JrK4EjJ0VaF2lSDueiorv3hk2pgLUe9kSP5brLj4QrVzes9ff/6E8PwH88EDaQ= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-user-profile.api.mdx b/docs/docs/reference/api/fetch-user-profile.api.mdx index 3e319277e2..f823b80099 100644 --- a/docs/docs/reference/api/fetch-user-profile.api.mdx +++ b/docs/docs/reference/api/fetch-user-profile.api.mdx @@ -5,7 +5,7 @@ description: "User Profile" sidebar_label: "User Profile" hide_title: true hide_table_of_contents: true -api: eJxdUstu20AM/BVjzgvJ7XFP9aFojVyMJjkJQsCsaWtbSbvZh1FV0L8XlGInli7CkkNyZsgRic4RusJz5BBRKzjPgZJ1/f4IjRMn07zkyOHFB3eyLUMhcPSujxyhR3zdbuV35GiC9VIIjcdsDMd4yu3m1zsYCsb1ifskcPK+tWaeU/6OUjMimoY7gh4n+dSqpRDcHG4cOk6NE4ZnTlDwlBpolB8kI4eLSNLViBxaSZK3mNT12aTkoy5LzoVpXT4WdOY+UUF2AdbSw+Rg0zA32R32Dzz8ZDpygK7qz4BHob74cQ8bkQbP0CBvH3iAQk+dvHc5NS7Yf7MFULCisVmqRLztT24ut6md8TO5ze6wx9qZu5R4TGb2+DppTkOtZH+ohQJ3ZCWZmLpvtwwmBfFwGbMtvhRbCXkXU0f9pxGr3dzRuzmQ+G8qfUu2lyYzmfF9bxWue6sVGheThMbxlSI/h3aaJPyWOcgiaoULBUuvYktVT+rqmuzoDw+i2Bj2chUXavNi/uraZHe3C/rx/QnT9B93Lwfr +api: eJxdUj2P2zAM/SvBm4U47aipGYo2uCXo9SbDOPAUJtbVtlSJDuoa/u8F7UuaxIshPlJ8HxohdMqwJV4yp4zKIEROJD50uwMsjiyufu0zp9eYwtE3DIPEOYYuc4Yd8Xmz0d+Bs0s+6iAsnnvnOOdj36x+fDTDwIVOuBNtpxgb7+Y9xXvWmRHZ1dwS7DjpZx6uVIKr/ZVDy1IHZXhigUEkqWFR/CeZOZ1Vki1H9KlRkKLHZC7HWiTaomiCo6YOWRa40knXJy/DPLrd7554+M504ARbVrcNz0p4ceG+bYQMkWFB0T/xAIOOWj1ve6lD8n9n4TDwqqxeplSy745hHvfSzP0n7oRW2/0Oj37cQeosudnZy6YZhrkRm21R0Fxeky9gwC15BYWp/XJFMBmoc8uazfrTeqOlGLK01N2seEjkjt7VAeE/UsSGfKeXzGTGj7RKXNKqDDQBLY3jG2V+Sc00afl3z0mDqAzOlDy9qS1lNZmLa5rRLx5UsXMc9S2cqekX8x/emGZ3fTffvv7ENP0DJwoEjA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-webhook-delivery.api.mdx b/docs/docs/reference/api/fetch-webhook-delivery.api.mdx index a58fa857ee..446917755d 100644 --- a/docs/docs/reference/api/fetch-webhook-delivery.api.mdx +++ b/docs/docs/reference/api/fetch-webhook-delivery.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Delivery" sidebar_label: "Fetch Delivery" hide_title: true hide_table_of_contents: true -api: eJy1WM1uGzcQfhViTi2wkRQ3h0KnKnHSGElRI3aSQ2w41O5IYrJLbshZxYqwQB+iT9gnKYbcP2lXsmMkJ604w5mP809ugeTSwfQDvMf5ypjPDq4jMDlaScroswSmsECKVzdfA/0mwVSt0W4gglxamSGhZQFb0DJDmELNcKMSiEBpmEIuaQURWPxSKIsJTMkWGIGLV5hJmG6BNjlvdWSVXkIEC2MzSTCFovBSSFHKDKeVbHGWQFles0iXG+3QsZSTyYR/EnSxVTnjhylcFHGMzi2KVLypmCGC2GhCTcwu8zxVsT/u+JPjPdsOstyyMUgFDbEpwqYKsNKES7QdhM88RwQJLmSREkwnZdSYxKvTm78X3l57oi1KwuRG0i7XQdMkkvARqQyhjBo2XaQpsGEaPEGsmBGUERR58jOUvA1iKyUJpvgTlJwGsZWS2lxzH2f30+OD6T7GehoCrLXXD9VSW6vRUhvsh2qpzdVo+XGigzxHkgrXzxF2pCOZ5UcTu/V5K/ey2VlG1c7DgI8BvOR1DhKTPFjGM95bRpChc3L5YDF/VduDweLPZGX8YGEXrYSyMRGY+SeMCXbY2DMcWZLksaKDa9R0c5epI0BdZNwkqibgRq6YN0XWjQgdoa/TjM2NfMfoLnwp0KqwgI5i6XaZmrWWr1OV3cjiWrnqi6zC9TGWVu4BhjuVpGa5PEaPTZYpCicOwg5B7FNbdH1aC6xPazD1SV04bEqHdAjPAHnXDXvEXb/tERtIA7QuJlzLtJBk7CFUgwwtrkFyi2yQ3GAbpO6g02tljc5QH7TaAZYOwmGGDsZhhhblML3F2SkC1aD2nFPXF7qoN/H43JzLeYrCZ7jgfHbiv3/+FVJwUsckOIORhFmIRtLoSl/pdzIt0AlpUSRo1RoTsbAma7mEM4JWKEJxcMKR3AilhdvoeHSlL42QSSKk0PhVuGEokVAkssKRWCjrSOCtcsQyulDer1ALvCXUidJLQSvlBNehSFhcouYJFcULtFrEqWLDCakTETo2A7zSVzBbS5Xu2+EKhMOYjcUqP06ePGrKWpbcfhwNlGAeBWw61NAyefsa9ZJWMD2Z/P5bBJnS9cLjblO1qlOh39qUy/MKZeKn527tlUmiGJxMz3f76l6b2Cv/x/rGy0pPyTP7JjUyuY/KMKTfX8t5Jbpsx/JjvSfMDzcHe3Q9W9/REKlwou7Vc5NsHtpbn/LeY121yrv6ClJfJs70wgxHDFpr7EPhPPebh/C0t6gPPij7paGGeMrdfxBat31XM+d9r2AXna3VZBmmiO8T4zM9XOOOH7EaM/uYO3oPm2Do+N/vYyhL3vXk5KR/v3wnU5X4EUEEnz34cpkgSeWLjCLMBibr1MQ71HvEVZNE1+2ppbVy0zn0axMA+mnXLYe8ODDN1kPjIVZvDFFP4krnRbg413cIv8AzOt12xPQ88oxteUt3hgnbJsCv+Dox0bqoyqqDpjgNLjgWIi8vL897AkN87AbGCx4PxGn7XJIhrQw/qCyR/OsJ9wgY181nXL0SKHTjbecRpeTYR7uun1l8I4KxzJV3dPi7IsrddDzGYhSnpkhGcoma5EiqwHjNMuLCKtp4IbPzs1e4CX0Bph+uuwwXHJ8h4nbZGi/JXL1CPlL15DMraGWs+hbCqHr0Cc3N21Jxjew4f+bBidn5WW942SFxIsnYx02tyZMh2jt2e1ouC5lPIyCU2R8Nhb3ONgxqJqPHo4nvh8ZRJnVHRc9vOwAbG3BUjvNUKp831XQQfNrek6B5++EUjmDafRy7jmBlHDH/djuXDt/atCx5mQdH9tN1BGtpFQ8w3muJcvydwHQhU4c9aE3hgV/eVLnxq4BoGHLtS81n5CmZ/0EEn3Gz94rni8eqjpVtxTGLY8yps7dX6ziomqD/8/kllOX/TC0i+g== +api: eJy1WN1u2zYUfhXiXG2AaqdZLwZdzW3aNWiHBU3aXjRBSkvHNluJVMkjN64hYA+xJ9yTDIfUnyPZSYP2Ko7O38fzT26B5NJB/AHe43xlzGcHVxGYAq0kZfRpCjEskJLV9ddAv04xU2u0G4igkFbmSGhZwRa0zBFiaBiuVQoRKA0xFJJWEIHFL6WymEJMtsQIXLLCXEK8BdoULOrIKr2ECBbG5pIghrL0WkhRxgwntW5xmkJVXbFKVxjt0LGW46Mj/pOiS6wqGD/EcF4mCTq3KDPxpmaGCBKjCTUxuyyKTCX+uNNPjmW2PWSFZWeQChYSUwahGrDShEu0PYTPPEcEKS5kmRHER1XUusSb05u/F95ft1RblITptaRdrr2uSSXhI1I5QhW1bLrMMmDHtHiCWjEjqCIoi/RnGHkb1NZGUszwJxg5CWprI4275j7P7mfHJ9N9nPU0JFjnrx9qpfFWa6Vx2A+10rirtfLjVAd9jiSVblgjHEhHMi8OFnYX807vRStZRbXkfsCHAF7wd04Skz5YxzOWrSLI0Tm5fLCav2rx4LDkM1mZPFjZeaehal0EZv4JE4IdNo4MZ5Ykeajp4Bo1Xd/l6ghQlzkPiXoIuIkr522TdRNCR+j7NGNzEz8x+h++lGhV+ICOEul2mdpvHV+vK7uJxbVy9S+yCteHWDq9exjuNJKZ5fIQPTF5riicOCjbB3FI7dANaR2wIa3FNCT14bArHdI+PCPk3TDcIu7G7RaxhTRC62PCtcxKScbuQzXK0OEaJXfIRskttlHqDjq9VtboHPVer+1h6SEcZ+hhHGfoUI7TO5y9JlAvas+5dH2jiwYbj6/NuZxnKHyFC65nJ/77518hBRd1QoIrGEmYhWg1TS71pX4nsxKdkBZFilatMRULa/KOSzgjaIUiNAcnHMmNUFq4jU4ml/rCCJmmQgqNX4UbhxIJRSIvHYmFso4E3ihHrKMP5f0KtcAbQp0qvRS0Uk5wH4qExSVq3lBRvECrRZIpdpyQOhVhYjPAS30Js7VU2W0/XIJwmLCz2OTHoyeP2raWpzcfJyMtmFcBm40NtFzevEa9pBXEx0e//xZBrnTz4XF/qFrV69BvbcbteYUy9dtzv/fKNFUMTmZnu3P11pi41f4PzY2XtZ2Kd/ZNZmR6H5NhSb+/lbNaddWt5YdmT9gfrvfO6Ga3vmMgUulEM6vnJt08dLY+ZdlDU7Wuu+YK0lwmTvXCjGcMWmvsQ+E898JjeLpb1AeflMPW0EA84ek/Cq0/vuud875XsPOeaL1Zhi3i+9T4Sg/XuMNHrNfMIeae3f0uGDv+98cYqoqlnhwfD++X72SmUr8iiBCzB18uUySpfJNRhPnIZp2ZZId6j7xqi+iqO7W0Vm56h35tAkC/7brlWBRHttlmadzH6p0hmk1c6aIMF+fmDuE/8I5ONz01g4g8Y1/e0J1pwr4J8Gu+Xk50Iaqraq8rTkIIDqXIy4uLs4HCkB+7ifGC1wNx0j2X5Egrww8qSyT/esIzAqbN8JnWrwQK3XTbe0SpOPfRrptnFj+IYCoL5QMd/l0RFfF0mplEZivjKJCvWDIpraKNF52dnb7CTZgGEH+46jOcc1aGPNtla2MjC/UK+SD1Q8+spJWx6ltInvqpJ4w070HFnbEX8tkSNUkxOzsdrCw7JC4fmfhsaSx5MkS9w7p4OpX+80SqKTeD3BcPEMr8j5bCsWbPBTNHk8eTIz8FjaNc6p6JQbR2ALY+4FycFplUvlrqnSBEsrsdQfviw4UbQdx/EruKgAPE/NvtXDp8a7Oq4s+8LnKcriJYS6t4bfFRS5Xj3ynEC5k5HEBr2w388qauiF8FROOQm1hqPiPvxvwfRPAZN7fe7nzLWDW5sq05ZkmCBfVkBx2Ok6pN9T+fX0BV/Q/xHx+b sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-webhook-subscription.api.mdx b/docs/docs/reference/api/fetch-webhook-subscription.api.mdx index 723c4ce14a..a096ee2482 100644 --- a/docs/docs/reference/api/fetch-webhook-subscription.api.mdx +++ b/docs/docs/reference/api/fetch-webhook-subscription.api.mdx @@ -5,7 +5,7 @@ description: "Fetch Subscription" sidebar_label: "Fetch Subscription" hide_title: true hide_table_of_contents: true -api: eJzlWM1y2zYQfhUMTskMIyluDh2dqsZx4yZpPbGSHGKNA5ErEQkJMMBSsarhTB+iT9gn6SxAiaBIyY7HOfVki7vY/bD/iw1HsbR8/JF/gHmq9RfLZxHXBRiBUqvzhI/5AjBOr795+rUt5zY2siAyj3ghjMgBwZCQDVciBz7mIdO1THjEpeJjXghMecQNfC2lgYSP0ZQQcRunkAs+3nBcF+44GqmWPOILbXKBfMzL0klBiRkxXAby2XnCq2pGYm2hlQVLkk5GI/qTQAOWjsUxWLsoM/a2ZuYRj7VCUEjsoigyGburDz9bOrMJ0BWGDIPSa4h16Q/VoKVCWIIJUD53HBFPYCHKDPl4VEUt0ziVav3nwtmuLX6ROceEDCJJJB0T2UWLteGoocy1zkAoXkX7JqUv/WJ4LE1cZsI8ei3mkP1utXryZ4lFiY/pSl6Knn+GGDlZe3vJfW5edbgbFKrMstbpM3dLOvJ/uO20vmwOKO552eBme3HXUpzP219CG91mkbMyu8Ug0YZLhPyOp4QxYn08Ctpnv8+ob8iYVVSXnjuZrCPjDzpbRe1ycT9Rp4GIKuKxAYGQXAs8JjCodIlAeILS4Tms5bkXyybOWGWR/Agl77zYWkkCGfwAJadebK1ka675mtrG3fS43nAXY/26dr2isdeDatlaa6dla7AH1bI1107Lw4muUQvsaXalyfr6cy5uXoNaYsrHJ6Off4p4LtX2w9NQt5FBX3xnMtKUgkjc3HCXQrifgN9RIF7WeiqaVtaZFsn1QkKW3Emzn1DuruzCa2BnXkMVcVFiep3r5GhxijioMqc5zMqlElgamkzoqDbyLzeQ8NkxvZMSU/aGtFQRhxUovCbWvTvWVfuw9nrKs4NwTLEDBIvgBjAjYrADNxKGH76WYKT/ABZjYdtMu28NXzBq2YGBlbT1f2gkrI6xNHIPMNyqJNPL5TF6rPNcor+xF3YIYpfaoOvSGmBd2g5TlxTCIVNawEN4eshtN+wR237bI+4g9dBCTLASWSlQm0OoehkaXL3kBlkveYetl9pCp1bSaJWDOmi1AywBwn6GAGM/Q4Oyn97gDFK53sReUBJPKU+jzhrjcnMu5hkwl+vM5Tr79+9/mGCU1DEyymBAphdsJ2lwpa7Ue5GVYJkwwBIwcgUJWxidN1zMaoYpMF8cLLMo1kwqZtcqHlypqWYiSZhgCr4x2w8lYhJZXlpkC2ksMriRFklGCOVDCorBDYJKpFoyTKVlVIciZmAJilZQYGdgFIszSYZjQiXM924CeKWu+GQlZLZvhyvOLMRuN5SKfRo9e7Ira3ly82kQtI/bZ1OHmE1dLa06fSdcZj+6Ltl1ZLisngo/rFqIDeADzgWXTmA9E3jp951gvahbL+sGheO37VHTJ/WIhN2aXlV08tnJSXerfy8ymbgazl4Yo839V/oEUEg36OwaZZsh03GL+j3r2Ww/6oKtUnuAbje0y74G3Ww71oolNCF8mNUZw0WumxMVbVbEvh33VL1qxXgTiOl45TnZ8ub2eCDbePg1XxAbjYu8hw6b4tS74FiYvJxOLzoCfXy0A+OM6je7bD9Y5YCppmetJaB7v6JZlQ+3FWLYGnyGm72XrIpTdpnV9r3LzcV8KArpfO5/poiFHQ+HUA7iTJfJQCxBoRgI6RlnLkNLI3HthEwuzl/B2o+pfPxxFjJcUqj64Guz7RwmCvkKyIT129ukNTTWL29+1nZmlWqhwziYOHBscnHeaTQtEuWUiF0IbTU5Mo/2rt3clhpf7jKKI4j8lx2FAoBs6NWMBk8HIzeea4u5UIGKXhfubem1HShIh0UmpEujemHx7m3mWt5+gKPf4/3HylnEU22Rjm02c2Hhncmqij5TvyeXzSK+EkZS33EOTKSl/xM+XojMQgfhrhzxR2/rjHnMmgeSNvKtWxX5lIYb+sUj/gXWPS+rrqyk29DZ1FyTOIYCg/OdKkgxtkuF315MeVX9BwL5uT4= +api: eJzlWM1y2zYQfhUMTskMIzluDh2dqsZx4yZpPbGTHGKNA5ErCQkIMMBSsarhTB+iT9gn6SxAiaBIyY7HOfVki7vY/bD/izVHMXd89JF/gOnCmC+OTxJuCrACpdFnGR/xGWC6uP4W6NeunLrUyoLIPOGFsCIHBEtC1lyLHPiIx0zXMuMJl5qPeCFwwRNu4WspLWR8hLaEhLt0AbngozXHVeGPo5V6zhM+MzYXyEe8LL0UlKiI4SKSz84yXlUTEusKox04knR8dER/MmjA0rE0BedmpWJva2ae8NRoBI3ELopCydRfffjZ0Zl1hK6wZBiUQUNqynCoBi01whxshPK550h4BjNRKuSjoyppmcar1Ks/Z952bfEz5R0TM4gsk3RMqPMWa8NRQ5kao0BoXiW7JqUv/WJ4Km1aKmEfvRZTUL87o5/8WWJR4mO6UpBipp8hRU7W3lxyl5tXHe4GhS6Vap0+9bekI/+H217Wl80BxT0vG91sJ+5aivNp+0tso9ssclqqWwySrLlEyO94SlgrVoejoH32+4z6hoxZJXXpuZPJOjL+oLNV0i4X9xN1EomoEp5aEAjZtcBDAqNKlwmEJyg9nv1angexbOyNVRbZj1DyLoitlWSg4AcoOQliayUbc01X1Dbupsf3hrsY69eV7xWNvR5Uy8ZaWy0bgz2olo25tloeTnSNWmBPsyut6uvPubh5DXqOCz46Pvr5p4TnUm8+PI11Wxn1xXdWkaYFiMzPDXcphLsJ+B0F4mWtp6JpZaWMyK5nElR2J81hQrm7svOggZ0GDVXCRYmL69xkB4tTwkGXOc1hTs61wNLSZEJHjZV/+YGETw7pHZe4YG9IS5VwWILGa2LduWNdtfdrr6c8N4jHFDdAcAh+ALMiBTfwI2H84WsJVoYP4DAVrs20/dbwRaOWG1hYSlf/h1bC8hBLI3cPw61KlJnPD9FTk+cSw42DsH0Qu9QGXZfWAOvStpi6pBgOmdIB7sPTQ267YYfY9tsOcQuphxZjgqVQpUBj96HqZWhw9ZIbZL3kLbZeagudXkprdA56r9X2sEQI+xkijP0MDcp+eoMzSuV6E3tBSXxJeZp01hifm1MxVcB8rjOf6+zfv/9hglFSp8gogwGZmbGtpMGVvtLvhSrBMWGBZWDlEjI2syZvuJgzDBfAQnFwzKFYMamZW+l0cKUvDRNZxgTT8I25figJk8jy0iGbSeuQwY10SDJiKB8WoBncIOhM6jnDhXSM6lDCLMxB0woK7BSsZqmSZDgmdMZC7yaAV/qKj5dCql07XHHmIPW7odTs09GzJ9uylmc3nwZR+7h9NvWI2aWvpVWn78TL7EffJbuOjJfVExGGVQepBXzAueDCC6xngiD9vhNsEHXrZf2gcPi2PWr6pB6QsF3Tq4pOPjs+7m7174WSma/h7IW1xt5/pc8AhfSDzrZRthmUSVvU71nPJrtRF22VJgD0u6Gb9zXoZttxTsyhCeH9rN4YPnL9nKhpsyL2zbin61UrxZtITMcrz8mWN7fHA9kmwK/5othoXBQ8tN8UJ8EFh8Lk5eXleUdgiI92YJxS/WYX7QerHHBh6FlrDujfr2hW5cNNhRi2Bp/heuclq+KUXXa5ee/yczEfikJ6n4efC8RiNBwqkwq1MA4DeeLzsrQSV/7o+PzsFazCcMpHHycxwwUFaAi5NtvWTaKQr4AMV7+4jVujYv3eFiZsb0ypZyb2/ngOGgUbn5912kuLRJkkUh84G02ezJPosm40HAr/eSDkkNpd7vOII4j8ly2F3E6WC2qOBk8HR34oNw5zoSMVvY7b2c1rO1BoDgslpE+eek0JTm2mWd5+dqPfo90nyknCyVd0bL2eCgfvrKoq+kxdnlw2SfhSWEndxjswk47+z/hoJpSDDsJtEeKP3tZ58pg1zyJt5Bu3avIpjTT0iyf8C6x63lN9MVlsQmddc43TFAqMzndqH8XYNgF+e3HJq+o/2S613w== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-workflow-catalog-preset.api.mdx b/docs/docs/reference/api/fetch-workflow-catalog-preset.api.mdx index eff0fc497c..ebdcaefe2d 100644 --- a/docs/docs/reference/api/fetch-workflow-catalog-preset.api.mdx +++ b/docs/docs/reference/api/fetch-workflow-catalog-preset.api.mdx @@ -5,7 +5,7 @@ description: "Return a single preset for a template by key." sidebar_label: "Fetch Workflow Catalog Preset" hide_title: true hide_table_of_contents: true -api: eJztWN1v2zYQ/1eIe2oA1k6LPRkYsCBt1qzbajhp95AaCSOdJLYSqfLDqWfofx+O+rBkO0qbdsMe+mSLvPvxePfjkXcbcCK1MLuCv7T5mOT6zsKSQ4w2MrJ0UiuYwQKdN4oJZqVKc2SlQYuOJdowwRwWZS4csts1+4jryXv1XtUKlt1E2iv38/ENu8tQMZd1utIypR2LMZEK46B0gThjV50ZyydTgwkaVBFORSmfpl7GOL1r548mwEGXaARZeR7DDBJ0UXbdSlxHwolcp9f1ksChFEYU6NDQhjegRIEwg3YD1x9xDRwk7bgULgMOBj95aTCGmTMeOdgow0LAbANuXZKudUaqFDg46XIauGy98RrXUFW8W6U24rusMa9dWK+wJARbamXRktLz42P6GQbwwkcRWpv4nC0aYeAQaeVQORIXZZnLKHhy+sGSzqZnSGnIz07WK4SY9uyTymGKpmfgaZDYZdHNs4M0MIErGHN20/KEmJFor+JJAEmEzx3MjiveeDFYrNZvkhDGoXW1u/vzQzdSSJoR5fMcyIGt3X+SbrVj9+OgXvQgKg4U9pGIhlByiITDVJtmJ9tlpcPC7utXvB0Qxoj1qD2nW+iKQ5KHQ3+/F6W9FibK5Ip42aHeap2jUD3Dzy07aeV6oUpEbrHiBGMw0kWBKn4YadETPQzWo+mDZvVED4PhSuReOG0egnrZCR4GskqWJbqHYC4asT2QbRz17QeMXE+tzYandSo7C3HbjzNxVjgxFlFv5GO5/NZIIo03+eMRckLIUMQh+fZRRBxLipLI5wODx9YZbm2Fxn7DUX3XqFccbO7Tx8JckC4RIh5D4JBoUwgHM/BexqOI5zGMcWPR3o41AYZiY7ivmjBUHIxXTo4nTA6ofEEvhHLtsnCaSKBOb8Dhg1iJ5mM5tuqiWYrcXIs/1tG1dtVelaOJrH/lfyvrdu67gY3F7XCkzQA0dHgtiKSJfC7MkzOf579ZrZ6+8a707ggOBbO5A75E6+HbYEcXvoo+861Lie6q9O6Hc7+Xc89rd1YcdND+4dnv5dk3jT/HUiqBXzRJ5eAt+yOd/Kvp5AteQgtcSbquX9B750CMDkBsK6yr8BBf3vu+qiurg+YOaxmqFGLWsYFRLdPUskykQirreqXx5It2NrChK9OqinR/ev58v6p7J3IZhxcue2lMeJ4+sqSL0QkZXnddqTEUyHU0mP0aXi9365Tt1n/XzQu94lDYdKxE+gOtFSluuXW/aHAGu6TZ9oIK4v0UG8ot97kHsxeXU/LlZ3cwdn1KkW9q8xu5/tuyC1Edoftd8aIOwRhRXl1ezvcAa34U6DJNLZC0aXS4DGawbZZMm17ItKWknW76fY9qWlfWdrrZNioq4GDRrNp+SSgAgHoxIc71Z+ZcaWfTKfpJlGsfT0SKyomJkLXgkjAib6RbB5CT+flrXNdPUJhdLfsCIfXWhBuKdUESpXwdOihNV+XEu0wb+Xdb54XGSl1mBFdKleh+7E+Ccexkfr7XnhhM0TkSkds2FJpp4Dvb3u6WHspFOEXgUBS/dDMU9K5EgePJs8kxDZXaukKo3hJn1L5ibTpgTT5g87Z9tdOW6M76/7g/14SNztG0zIVUvUKyJukVdBoQOiC0Z9JsiQocZjstuoarNNNrqy05ZNo6gtxsboXFtyavKhr+5NEQ+5YcVsJIcUtcuNpALC39j5tCfMTDTxbNgT9i9+2qZagiC6ljQF/QtH6GTUY6Pf/h2j0fhWSctYdv0wicRBGGWq5V3bs76JR2OebXl5dQVf8A36Svjg== +api: eJztWN9v2zYQ/leIe2oA1kqLPQkYsCBt1qzbajhp95AaCSOdLbYUqZKUU8/Q/z4c9cOS7Sht2g176JMt8u7j8e7jkXcb8GLpIL6Cv4z9uFDmzsGcQ4ousbLw0miIYYa+tJoJ5qReKmSFRYeeLYxlgnnMCyU8sts1+4jryXv9XtcKjt0kptT+5+MbdpehZj7rdKVj2niW4kJqTIPSBWLMrjoz5k8iiwu0qBOMRCGfLkuZYnTXzh9NgIMp0Aqy8jyFGBbok+y6lbhOhBfKLK/rJYFDIazI0aOlDW9AixwhhnYD1x9xDRwk7bgQPgMOFj+V0mIKsbclcnBJhrmAeAN+XZCu81bqJXDw0isauGy98RrXUFW8W6U24rusMa1dWK8wJwRXGO3QkdLz42P6GQbwokwSdG5RKjZrhIFDYrRH7UlcFIWSSfBk9MGRzqZnSGHJz17WK4SY9uyT2uMSbc/A0yCxy6KbZwdpYANXMOXspuUJMWNhSp1OAshClMpDfFzxxovBYr1+swhhHFpXu7s/P3QjhaQZ0aVSQA5s7f6TdKsdux8H9aIHUXGgsI9ENISSQyI8Lo1tdrJdVnrM3b5+xdsBYa1Yj9pzuoWuOCxUOPT3e1G6a2GTTK6Ilx3qrTEKhe4Zfu7YSSvXC9VCKIcVJxiLiclz1OnDSLOe6GGwHk0fNKsnehgMV0KVwhv7ENTLTvAwkNOyKNA/BHPRiO2BbONobj9g4ntqbTY8rVPZWYjbfpyJs8KLsYiWVj6Wy2+tJNKUVj0eQRFChiINybePItJUUpSEmg4MHltnuLUVWvcNR/Vdo15xcKpcPhbmgnSJEOkYAoeFsbnwEENZynQU8TyFMW7M2tuxJsBQbAz3VROGioMttZfjCZMD6jKnF0Kx9lk4TSRQpzfg8EGsRPMxH1t11ixFbq7FH+voWrtqr8rRRNa/8r+VdTv33cDG/HY40mYAGjq8FiTSJqUS9slZqdRvzuinb0pflP4IDgWzuQO+ROvh22BHF76KPtOtS4nuuij9D+d+L+ee1+6sOJig/cOz38uzbxp/jqVUAr9oksrBW/ZHOvlX08kXvIRmuJJ0Xb+g986BGB2A2FZYV+EhPr/3fVVXVgfNHdYyVCmkrGMDo1qmqWWZWAqpne+VxpMv2tnAhq5MqyrS/en58/2q7p1QMg0vXPbS2vA8fWRJl6IXMrzuulJjKKBMMpj9Gl7Pd+uU7dZ/N80LveKQu+VYifQHOieWuOXW/aLBGeySZtsLKoj3U2wot/znHsxeXE7Jl5/9wdj1KUW+qc1v5Ppvyy5EdYTud8WLOgRjRHl1eTndA6z5kaPPDLVAlk2jw2cQw7ZZEjW9kKilpIs2/b5HFdWVtYs220ZFBRwc2lXbLwkFAFAvJsS5/sy8L+IoUiYRKjPO19Nz0kxKK/06qJ5Mz1/jun54Qnw17wuEhFvTbCjWhUYU8nXomzS9lJPSZ8bKv9vqLrRT6uIiOFDqhelH/GSJ2gt2Mj3fa0oMpuj0iMRv2wjNNPDeZl0cRSIMT4SM6Hmch7MDHkX+SzdDoe4KEziePJsc01BhnM+F7i1xRk0r1iYB1mQBNm2bVjvNiO6E/4+7ck3Y6PREhRJS98rHmppX0GlA6HvQnkmzpSdwiHcacw1DaabXTJtzINoR5GZzKxy+taqqaPhTiZbYN+ewElaKW+LC1QZS6eh/2pTfIx5+MmuO+RG7b1ctQzVZSH0C+oKm4TNsLdKZ+Q/X7vkopOCsPXybRuAkSTBUcK3q3o1Bp7TLLL++vISq+gc2B6wv sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-workflow-catalog-template.api.mdx b/docs/docs/reference/api/fetch-workflow-catalog-template.api.mdx index 8003e31d89..7ef84ad29c 100644 --- a/docs/docs/reference/api/fetch-workflow-catalog-template.api.mdx +++ b/docs/docs/reference/api/fetch-workflow-catalog-template.api.mdx @@ -5,7 +5,7 @@ description: "Return a single workflow template by its key." sidebar_label: "Fetch Workflow Catalog Template" hide_title: true hide_table_of_contents: true -api: eJztWN1vGzcM/1cEPiWAaqfFngwMWJC2a9ZtDZy0e0iNRL6jbTU66aoPt65x//tA3bftXNq0exn6lFhH/kTxR1Ekt+DF0sHkGv4x9m6hzCcHMw4pusTK3EujYQJT9MFqJpiTeqmQfapEmccsV8Ijm2+Y9I7d4Wb0Xr/XpYJjt4kJ2v96css+rVAzv8JWRTqmjWcLE3Q6YlfVsmPCIlsqMxfqvc7Qi1R4wYRO4wfScInJMWXeMMFyaz5g4uOml4gTdt0cY3Y0trhAizrBscjlk2WQKY5r293xCDiYHK2gU56nMIEF+mR1U0vcJMILZZY3tcnAIRdWZOjRksu2oEWGMIFa4OYON8BBks9y4VfAweLHIC2mMPE2IAeXrDATMNmC3+Sk67yVegkcvPSKFmpPsNe4gaKYEYbLjXboSO3ZyQn96RN0GZIEnVsExaaVMHBIjPaoPYmLPFcyiScdf3Cks+2Yklvyg5flDpGzjoVSe1yi7Zh4FiV2o+T26T002xgNmHJ2W0dCy3yEWYigPExOCt74MlqtN28W0dF9C0u3d7/3nVnwZkUHpYCcWNv+N+kWO7Y/Dup5B6LgQOQP8Brp5JAIj0tjq5O020qPmdvXJ4+UC8JasRm056yFLjgsVLzY93tRuhthk5VcU3Q2qHNjFArdMfzcsdNarkPWQiiHBScYi4nJMtTpw0jTjuhhsE6oPmhWR/QwGK6FCsIb+xDUi0bwMJDTMs/RPwRzWYntgbQ8mjllrI5anbHOynTzMvK2zzPFrPBiiNFg5WNj+a2VFDTBqscjKEJYoUhjeuyiiDSVxJJQFz2Dh/bpH22N1n3HVX1XqRccnArLx8Jcki4FRDqEwGFhbCY8TCAEmQ4inqcwFBvT+gUrA6AvNoT7qqKh4GCD9nI4YXJAHTKqAvKNX8XbRAJlegMOH8RaVD9mQ7tOq63IzaX4Yx1dahf1gzmYyLqP8vdG3c6b17Mxm/dX6gxAS4f3gkTaJChhj14Gpf5wRj95E3we/DEcIrN6A75G6+HXYEcXvil8LlqXUrjrPPifzv1Rzj0v3VlwMFH7p2d/lGffVP4cSqkEflkllYOv7M908p+mk6+ohKa4lvRcP6d65wBHByDaPus6FuKze+urur86aHC/o6k12VwFzK3Unh3d4YYzakA46whzFsttWotlH6NS7Xj0Vafdsatp4IqCtH959my/33snlExj3cteWBuL1kc2eyl6IWPN1zQgfQFlkt7Xb4n22W730h7+T1PV7QWHzC2HGqe/0DmxxDbi7heNzmBX9LV+tqJ4N/HGJsx/7sDsMXNGvvzsD7LXDTTyTWl+JdetOBuKSobud8XzkoKhUHl1dXWxB1jGR4Z+ZWh4sYxtRxw7TKAdc4yrKca4bqzdeNudVxTAwaFd1yON2AEADUwipeXPlfe5m4zHGEaJMiEdiSVqL0ZCloIzwkiClX4TQU4vzl/jpqxBYXI96wrE3FvGVl+s4UPk8nUcpFTjldPgV8bKL3WjF+crZZ8RvSb1wnRpPo3GsdOL870ZRe8TXRmR+HaiUH0GvnPs9rRUKWfxwoBHkf3WfCF+mx4FTkZPRye0lBvnM6E7W7ykGRNrMkt1+Zv5167F2/Zi/4/HcBXxdOnGuRJSd3rRMqKvodGAOEQhr0E7LqLVSW8ON+OwMs6T6nY7Fw7fWlUUtPwxoKU4nXFYCyvFnKLmegupdPR/WvXsA0wcTasscMzus76OZU2BTMMF+gXVlKg/MYx5clVflm0lcpokGJuvWnkvrdOtaq7/7y+uoCj+BauxjzA= +api: eJztWN1vGzcM/1cEPiWAaqfFng4YsCBt16zbGjhp95AaiXxH22p00lUfbl3j/veBug/f2c6lTbuXoU+JdSRF8fcTRXIDXiwcJNfwj7F3c2U+OZhyyNClVhZeGg0JTNAHq5lgTuqFQvapFmUe80IJj2y2ZtI7dofr0Xv9XlcKjt2mJmj/68kt+7REzfwStyrSMW08m5ugsxG7qpcdExbZQpmZUO91jl5kwgsmdBY/kIZLTYEZ84YJVljzAVMfN71ETNh1e4zp0djiHC3qFMeikE8WQWY4bnx3xyPgYAq0gk55nkECc/Tp8qaRuEmFF8osbhqXgUMhrMjRo6WQbUCLHCGBRuDmDtfAQVLMCuGXwMHixyAtZpB4G5CDS5eYC0g24NcF6TpvpV4ABy+9ooUmEuw1rqEsp2TDFUY7dKT27OSE/vQBugxpis7Ng2KTWhg4pEZ71J7ERVEomcaTjj840tl0XCksxcHLaoeIWcdDqT0u0HZcPIsSuyy5fXoPzDayATPObhsmbJGPZuYiKA/JScnbWEav9frNPAa672EV9u73fjBL3q7ooBRQEBvf/ybdcsf3x5l63jFRciDwB3CNcHJIhceFsfVJtttKj7nb16eIVAvCWrEe9Odsa7rkMFfxYt8fReluhE2XckXsbK3OjFEodMfxc8dOG7kOWHOhHJaczFhMTZ6jzh62NOmIHjbWoeqDbnVEDxvDlVBBeGMfMvWiFTxsyGlZFOgfMnNZi+0Z2eJoZpSxOmpNxjqr0s3LiNs+zsRZ4cUQosHKx3L5rZVEmmDV4y0osrBEkcX02LUiskwSSkJd9Bwe2qd/tBVa9x1X9V2tXnJwKiwea+aSdIkQ2ZAFDnNjc+EhgRBkNmjxPIMhbkyaF6wiQF9syO6rGoaSgw3ay+GEyQF1yKkKKNZ+GW8TCVTpDTh8ECtR/5gO7Tqpt6IwV+KPDXSlXTYP5mAi6z7K38u6nTev52M+6680GYCWDu8FqbRpUMIevQxK/eGMfvIm+CL4YzgEZv0GfI3Ww6/Bji58E30utiEluusi+J/B/VHBPa/CWXIwUftnZH9UZN/U8RxKqWT8sk4qB1/Zn+nkP00nX1EJTXAl6bl+TvXOAYwOmNj2WdexEJ/eW181/dVBh/sdTaPJZipgYaX27OgO15xRA8JZR5izWG7TWiz7GJVqx6OvOu2OX20DV5ak/cuzZ/v93juhZBbrXvbC2li0PrLZy9ALGWu+tgHpCyiT9r5+C9unu93L9vB/mrpuLznkbjHUOP2FzokFbhl3v2gMBruir82zFcW7iTc2Yf5zx8weMmcUy8/+IHpdolFsKvdruW7F2UJUIXR/KJ5XEAxR5dXV1cWewYofOfqloeHFIrYdceyQwHbMMa6nGOOmsXbjTXdeUQIHh3bVjDRiBwA0MImQVj+X3hfJeKxMKtTSOF99npJmGqz066h6enH+GtdV5QnJ9bQrEDNuxai+WIuCKOTrOD6phyqnwS+NlV+a9i5OVaruIsZK6rnpgnu6QO0FO70435tM9D7RRRGp384R6s/AO4d1yXgs4vJIyDHVx3m8JuBR5L+1XwjVtjOBk9HT0QktFcb5XOjOFi9pssTafFJf+XbqtevxZnud/8fDtxp4umrjQgmpOx1oxeNraDUgjk4oarAdEtFq0pu+TTkQQUl1s5kJh2+tKkta/hjQEk+nHFbCSjEj1lxvIJOO/s/qTn0AiaNJffeP2X3eN1zWRGQaKdAvqGdD/TlhzI7L5rJsapHTNMXYcjXKe8mcblV76X9/cQVl+S9d/YvR sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-workflow-catalog-type.api.mdx b/docs/docs/reference/api/fetch-workflow-catalog-type.api.mdx index fe034be7fd..864ede264d 100644 --- a/docs/docs/reference/api/fetch-workflow-catalog-type.api.mdx +++ b/docs/docs/reference/api/fetch-workflow-catalog-type.api.mdx @@ -5,7 +5,7 @@ description: "Return the JSON Schema for a single shared type key." sidebar_label: "Fetch Workflow Catalog Type" hide_title: true hide_table_of_contents: true -api: eJzVVktz2zYQ/iuYPdkztKR4fOKpHidpHLexx3bbg6KxIHJJIoYABgBtqxr+984CoERKtprm1pMo7BPftw+swfHSQjqFv7R5LKR+tjBLIEebGVE7oRWkcIuuMYq5Ctnnu+sv7C6rcMlZoQ3jzApVSmS24gZz5lY1skdcjb6qryrYWXY2OWPPFQYPc14+kNacCcuUdqzmxjFdeKGtRF1jzjLuuNSl93KHmLLpJr3Z0dhggQZVhmNei5OyETmOnzv58QgS0DUaTtlf5pBCgS6rHjqNh+jcZwEJ1NzwJTo0BMMaFF8ipMA3ckEQ1NxVkIDB740wmEPqTIMJWI8EpGvwyilYZ4QqIQEnnKSD85Ldk6htZ2Rua60sWrI4nUzoZwj1XZNlaG3RSHYblSGBTCuHypE6r2spMn+38TdLNuteFrWhmzsRImS6CUYxOaEclmh62V14jV2+5+/mgS8e+MyxEEqQkDgznlXMEzafRD2isdCNykfeV8Eb6SCdtEmMvAauVteFx3eYYkC7Lx8C2SabE9VICYRil/wXsm13kv85V+97LtoEHnF1iNMrXJEWwf+wxZ7nuceIy5vBFX8gn46YQYrLxfBkobVErvzR67EgEyZrJDdHHxspP1utTq4bVzfuGDomQC++Yea8E+Fw+YNW3Bi+Oojgji20uxG3qqQWZwi0r+htm2zqmRgi3YvZzYSL0NChz17JcVjdgxFmeLlE5dhmpORssWLdqGBC1Y0ba38lFhKw7ElwNn854eUJBToxWMxHr17kQJ6b5m5bsjw7Pd2fBX9yKXLf6eyDMdr8/CDI0XEh6StyvqsgdTaQ/peanbU7ZbK9+G86JEjVsLTloZ76Ha3lJUJvZryl6sGIU5XGM5UbqUfxpYr1l7mXnps9Vi4Iyxf3ryVI2IT0o16vArcUBYbehuJ9oOBQmXy6v7/ZcxjqY4mu0rTKSnR+ZbkKUtguvXHcaWPybcfruL1aSMCieep2W2MkmfFaeCbD38q52qbjMTajTOomH/ESleMjLoLijHxkjRFu5Z2c31xe4eoT8hwNpNNZX8G3VSipodqGBl6LK9/Tcc+eN67SRvwd6iRu2ypYtZ7eQvfZPffJsfOby721NRBRp/DMbXdMFEOyc+3tbSEBXPo+AYd8+ctGQrQShiHMZPRuNKGjWlu35KoX4iM9NFjX7iz2eyjVvT216eX/4fsqkkn9M64lF77DPa7rWJxT2FgQGyFetKSTtHtgzRKotHVksV4vuMU/jGxbOv7eoKGSmyXwxI3gCyqA6RpyYek7h7Tg0uIBYI9uYx8fs7eS7spSUU0+cdnQP4hPgM0r0A+5qiv5dZSeZxnWrme3N5OpNza9++uHe2jbfwAX6fKl +api: eJzVVk1z2zYQ/SuYPdkztKh4fOKpHidpHLexx3bbg6KxVuSSRAwBDADaVjX8750FKYmUbDXNrSfL2A8s3nu7yxV4LBwkE/jL2MdcmWcH0wgycqmVlZdGQwK35GurhS9JfL67/iLu0pIWKHJjBQondaFIuBItZcIvKxKPtBx91V91G+fE2fhMPJfUZphh8cBeMyGd0MaLCq0XJg9GV8qqokyk6FGZImS5I0rEZFPe9Ci2lJMlnVKMlTwpaplR/Ly2H48gAlORRa7+MoMEcvJp+bD2eOiShyogggotLsiTZRhWoHFBkABu7JIhqNCXEIGl77W0lEHibU0RuIAEJCsIzgk4b6UuIAIvveKD80Lcs6lpphzuKqMdOY44HY/5zxDquzpNybm8VuK2c4YIUqM9ac/uWFVKpuFt8TfHMateFZXll3vZ3pCaug3qipPaU0G2V91F8Njle/Zu1vKFLZ8Z5VJLNjJnNrBKWSRm486PacxNrbNRyJVjrTwk4ybqbl4B6uV1HvAdltii3bcPgWyizYmulQJGcV38F45tdor/uVTveymaCB5peYjTK1qyF8P/sMUesyxghOpm8MQfqGdNzKDExXx4MjdGEepw9PpdkEqb1grt0cdaqc/O6JPr2le1P4Y1E2Dm3yj1IYn0tPjBKLQWlwcR3ImFZvfGrSu7dTMEmlf8tk02CUwMke7duZ4JF21Dt332So1DdQ9GmMViQdqLzUjJxHwp1qNCSF3VPjbhSaItwIkniWL2coLFCV90YimfjV59yIE6N83dNBx5dnq6Pwv+RCWz0Onig7XG/vwgyMijVPyr43zXQZl0YP0vmp02OzLZPvw30xbIali44lBP/U7OYUHQmxlvuQYwuqnK45nlxu6d+VJ3+kv9Sy/NHisXjOWL/1cJMjZt+Z1fT4FbilqG3obifUvBIZl8ur+/2UvY6mNBvjS8ygryYWX5EhLYLr2422kx53bxqtteDUTgyD6td1ttFYdhJQOT7b+l91USx8qkqErjfGuecmRaW+mXIfT85vKKlp8IM7KQTKZ9h9BMrZCGbhvwsZJXoZO77Xpe+9JY+Xerjm7Hlm1UE0jNTZ/T84K0R3F+c7m3rAYm7g9M/XazdGaIeo91SRxjOB6hjCECWoTuAE+4+GVjYTIZufaa8ejdaMxHlXF+gbp3xUf+vBDrJhddl7cC3dtOmw7+H35VdWRy18SVQhn6OuC66iQ5gU0Es9He10XySbL+rJpGwFrjiNVqjo7+sKpp+Ph7TZYlN43gCa3EOQtgsoJMOv6dQZKjcnQA2KPbrnuPxVtFr2WpWZNPqGr+D7rFv/n2C6OtXEt+1VnP05Qq34vbm8TcG5uO/fXDPTTNP76y70Y= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/fetch-workflow.api.mdx b/docs/docs/reference/api/fetch-workflow.api.mdx index a23567c880..13c596fff9 100644 --- a/docs/docs/reference/api/fetch-workflow.api.mdx +++ b/docs/docs/reference/api/fetch-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Fetch a workflow artifact by ID." sidebar_label: "Fetch Workflow" hide_title: true hide_table_of_contents: true -api: eJzlV9tuGzcQ/RVinmxgLTlGn/apqi+Nm7YxYrl5sAWbWs5qmVDkhhc7irBAP6Jf2C8phnvRSvIthvPUJ1vLwzMzZ4bD4RI8nzlIL+GjsZ9zZe4cTBIQ6DIrSy+NhhRO0GcF4+yugTBuvcx55tl0wU6PBlf6Sn9AH6x2zBe4WjZaLdi/f//DbrmVXHvHuBbM4q100mjHuEWmjWdSZyoIFIMrfeGQ3QxbS27Y7hx+CWgXN5Ggv96RtYDc2CtNXmSFVIKh9tJLdNHJc8SUXXaRTnaGFnO0qDMc8lLuzYIUuCLfHUACpkTLSYhTASnkJMV1i4AESm75HD1aEnEJms8RUmgB11JAApJELLkvIAGLX4K0KCD1NmACLitwziFdgl+UtNV5K/UMEsiNnXMPKYQQWbz0igCt++xUQFVNiNKVRjt0xHKwv09/1hN4HrIMncuDYh8aMCSQGe1Re4LzslQyi2EOPznas+x5VloSgVSkX5kJ9abGYak9ztD2PDyMiM0qunlzw+4K1P1Cko7ZWDgoEnaz3wC00cjm3GcFikHkyXlQHtL9KumkjW7rxfs86r7uYm6UQEvir4EeV7hKOoQOSgFJ20Z0Egmj4gnkKh6Zh81Ld90TtCfV1BiFXPekOnVs1IP2Ys25clglRIa3XAXujX2K6rgD3k/ktCxL9E/RnDewLZIqafeZ6SfM/D1VOWrO/kkUaVtTotiSjwshKX6uztaE3Epd626Pt8kmfbmfBjJps6C43fmdT1H95ozeex98GfwubMbTz/kmGraif6xixnX4MEfPXxhsL7KNo7ZmeD5d/9LX6ClFToJ6QpBkCdLj/Jm7uLV88fhJWt/7faL+QWJWSdNlnyXZFseftLfaaE4vozrqUVQJZBa5R3HN/TPbjuAe97yM/jxs5bCmZaMoVijFjzByUdM2RgQq/AFGjmraxkgr13Txio26FeuXRdOsW71e1UqrVmelFexVrbRydVacCrOX1uo57aVb4NXci+PH0xfCvRzrk8G4wO3ZcvAs9m6cqSqC/3RwsD39/MWVFPF+ZcfWxsvxhaOPQM+lild83RM3Acpka6vf09Mn1UYb7V1FppkP6EJxs/umxVWLdI7PcNVXH4ZGMdiYVqkwNLVjgrf51U1/zvzXHs1WKg5Jy6/+3nStpt3LqE3tfoPr1dIqRXWGHpbiqE7BY7Xxdjw+2yKs62OOvjA0x8/ieBNn8hR6z4llb3KvIAGH9rad7YNVBOaljPmrfxbely4dDjEMMmWCGPAZas8HXNbACXFkwUq/iCSjs9N3uHiLXKCF9HLSB5xT2dWFtA7rxOelfIckR/POGAVfGCu/tdNjfGkU9a4qJjU3/ZyOonNsdHa6NZ6vLdH54Fksh9ZSXIZkI+xVtJAAzuPpAI98/nO3QskkDWsz+4M3g336VBrn51z3TNTPzI+rt9XGFd0d2v/3g7QpBTpzw1JxGbtCzMqyKejL7pHkIIG0/xidJFAY5wmzXE65wwurqoo+R2+pIhOIIU6pYC6XIKSj/0XzBngkKzsfmtO+yx5ysy1jTTVMjxX6BQl8xsXGqzm2w6I9JssGMcoyLH1v71b3pvPUnfJfj8dQVf8Bj4fV3w== +api: eJzlV9tuGzcQ/RVinmxgLSlGn/apqi+NmrYxYrl5kAWb2p3VMqHIDcm1owgL9CP6hf2SYrgXURdfYjhPfbK1PHNmeGY4HK7A8bmFeAIftfmcSX1vYRpBijYxonBCK4jhHF2SM87uGwjjxomMJ47Nlmx02rtW1+oDutIoy1yO62Wt5JL9+/c/7I4bwZWzjKuUGbwTVmhlGTfIlHZMqESWKaa9a3Vlkd32W0+231r2v5RolreeIFzvyFpAps21oiiSXMiUoXLCCbQ+yEvEmE26nU4P+gYzNKgS7PNCHM1LkeKa/LAHEegCDSchRinEkJEUNy0CIii44Qt0aEjEFSi+QIihBdyIFCIQJGLBXQ4RGPxSCoMpxM6UGIFNclxwiFfglgWZWmeEmkMEmTYL7iCGsvQsTjhJgDZ8NkqhqqZEaQutLFpiOR4M6M9mAi/LJEFrs1KyDw0YIki0cqgcwXlRSJH4bfY/WbJZBZEVhkQgFelXosvaqAlYKIdzNEGEJx6xXUW3b27ZfY4qLCRhmfGFg2nEbgcNQGmFbMFdkmPa8zwZL6WDeFBFnbQ+bLV8n3ndN0PMtEzRkPgboMcVrqIOoUopgaRtd3TuCb3iEWTSH5mH3Qt7EwgaSDXTWiJXgVQjy4YBNNhrxqXFKiIyvOOy5E6bp6jOOuB+IqtEUaB7iuayge2QVFFrp2efMHF7qnLYnP1zL9KupkSxIx9PU0H75/JiQ8id1LXhBrxNNunLfhpIhElKyc3B73yG8jer1dH70hWlO4Tt/YQ530bDzu4fq5hxvX1YoOMv3Gyws62jtuF4Mdv8Emr0lCLnpXxCkGgFwuHimVbcGL58/CRt2n6fqH+QmFXUdNlnSbbD8SfZVlvN6WVUpwFFFUFikDtMb7h7ZttJucMjJ3w8D3s5qWnZ0ItVFumPcHJV0zZOUpT4A5yc1rSNk1au2fIVG3Ur1i/Lplm3er2ql1atzksr2Kt6aeXqvFhZzl9aq5dkS7fAq4Xnx4+nL4S9HJuTwTjH3dmy9yz2bpypKoL/dHy8O/38xaVI/f3Kzozxl+MLR58UHRfSX/F1T9wGSJ1srH5PT59WW200uIp0Mx/QhWLn+6bFdYu0ls9x3Vcfhnox2JhWqTAUtWOCt/lVTX9O3NeAZicVJ6TlV7c3Xetpd+K1qcNvcEEtrVNUZ+hhKU7rFDxWG2/H44sdwro+FuhyTXP83I83fiaPIXhOrILJvYIILJq7drYvjSQwL4TPX/0zd66I+32pEy5zbV29PCXLpDTCLb3p8GL0DpdvkadoIJ5MQ8AlFVtdPpuwTnJeiHdIIjSvi2Hpcm3Et3Zm9O+LvLaqfCozHWZyOEflOBtejHaG8o0lOhU88UXQevLLEAWbtXG/z/3nHhd9iAAX/kyAQ774uVuhFJJytZtB701vQJ8Kbd2Cq8BF/bj8uH5RbV3M3VH9fz9Dm1Kgk9YvJBe+F/isrJoynnRPIwsRxOETdBoB1SZhVqsZt3hlZFXRZx8tVWQEfoszKpjJClJh6f+0mfwfycrBh+aMH7KHwmzLWFEN0xOFfkEEn3G59Vb2TTBvj8mqQQyTBAsX2O70bDpP3dn+9WwMVfUfm0jSgA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/get-all-workspace-permissions.api.mdx b/docs/docs/reference/api/get-all-workspace-permissions.api.mdx index a7f72eed4c..1723840344 100644 --- a/docs/docs/reference/api/get-all-workspace-permissions.api.mdx +++ b/docs/docs/reference/api/get-all-workspace-permissions.api.mdx @@ -5,7 +5,7 @@ description: "Get all workspace permissions." sidebar_label: "Get All Workspace Permissions" hide_title: true hide_table_of_contents: true -api: eJztVs2O2zgMfhWBZyOZ3aNPzaFoB93DoJ1iD5nAUGwmUUeWXJFOmg3y7gs6tiV70m4fYHOJ+fFP/BGpC7DeE+Rr+NuHV2p0iQSbDCqkMpiGjXeQwwdkpa1Vp0FGNRhqQ2S8o8WLe3GfkdvgSGllDbHyu05eH7WxemvxvzXzF6eUUn8Z4vXTKLLJ1Wq0GGHlt9+wZFIBm4CEjo3bKz7g73nUhnBw+PH5+en9jxK7UHP1uBMzAZUhpZ3CEHxQATkYPA4+7luGDHyDQYudxwpy2CMX2tpiFC8SccggIDXeERLkF/jz4UH+pmn/0pYlEu1aqz73wpBB6R2jYxHXTWNN2blcfiPRuQCVB6y1fBnGujPO5wYhB+Jg3B4yQNfWUvKAuiroTIw1ZHA0eCoSi3JGrAynmLgPqBkFLI46GO0YpF0svgFrX5ndeQCK0rud2bdhNB6VBvOJcmhdQRiOpsThbCfcHrx/Hc+V0B2fsAzIA3ekbrxGx4AGouPsvK0wjLxI9vkwxSuek1yM9JCvAt3RBO9qdFxU2Fh/ls8kez+XSJL5U5nODyMxxeAi2VuIQJ/VCHT6eNS2HUoouY3AGNtEprc7wXrTM0yOOuuRW7mGvh/rlQC9+RTqradQ30EtYSiCtyhH1VVVODzdQPZv3fiw1878Mzv0DJ1bmbFlqHDRaKKTD9UQ0dZY298gcRTJMd6d9SdK4x0ASXlKp0XxYV4CHxswaYsoNcX6EszQTvt7i8HgqBjJtKlo1lWxuZ3zPJsFE6iTMu7oZxNjCs0asAjtvZ4b4Lk0leh0MP6eSsp74wWptXzX0ciZ69Qy6Mt7OpEz1/neYov3VEZGr5HWhb23Me09IT1y+95kwIatDO249OCaDZNch6DPEIWG7aBkUa+sVeMyT5YmwVV+GdTIB99vKMig0XyAHJbjRaLldFHJGJaRmK8v0AYrsroxcM0G8sDcUL5cYrsorW+rhd6jY73Q5ia4ERtlGwyfOyOrp8dPeP6IusIA+XqTCnyR9XXbiVOxcY3pxnxCid7pWuhVywcf4t01sjoPNy0J17id79T7ZK26w6nV0yPM3zkTluxZXXZ7dvDUsSGbhR2jlYrW2giTUdfvRo7UTnJ4c/Ow+GPxIFDjiWvtEhe/LuDsvJf4Fvj/ifZ7T7S+hxh/8LKx2nS3qivnpb8Ia4gXQW5Hkv5NBgdPLDKXy1YTfg32ehVYBqv09iaD7gmzlU5bb67Z0IjS9q94liYqJRIZBNq2t36ePeLkOox39MP7Z7he/wUeQUF9 +api: eJztVs2S2zYMfhUOzpr1tked6kMm2UkPO8l2enA8GliCbWYpUiEgO67H796BrB9a66R5gPpi4cMfCXwkeAbBHUO+gr9DfOUGS2JYZ1ARl9E2YoOHHN6TGHTOHAcb01CsLbMNnh+++C/+E0kbPRs0zrKYsO3s8YDW4cbRf3vmX7wxxvxpWVbPo8k6N8sx4gSbsPlKpbCJ1ERi8mL9zsiefi0jWqYh4YeXl+d330vqtpqbp62GiWQsG/SGYgzRRJJo6TDkuB8ZMggNRdQ4TxXksCMp0LliNC8Sc8ggEjfBMzHkZ/j98VH/bsv+uS1LYt62znzqjSGDMnghL2qOTeNs2aVcfGX1OQOXe6pRv6xQ3QWXU0OQA0u0fgcZkG9rbXkkrAo+sVANGRwsHYskoq6RKisppukjoZCCxQGjRS+gdHH0BqxDZbenASjK4Ld218Yx+OQ0hE+cY+sLpniwJQ1rO9JmH8LruK5E7vRMZSQZtKN01TU4bWgQOs02uIriqJvEvh62eKVTUotRHupVkD/YGHxNXoqKGhdO+plU78cWSTF/aNPlEWLhaXOT2EeYgL6qE9D50wFdO7RQazsB495ubPq4N1gfeobpUmccubZr4P3YrwTow6dQHz2Fega1TLGIwZEuFauq8HS8ghLepglxh97+M1v0DJ1Hman1UpGiQeZjiNWwo411rj9BmmgSx/1uXThyut8B0JKnctqUEOctCBMBE1pMVrdY34IZ2nl/aylaGh0nMSUVz1g1kdv7ILO74AbqrKw/hNmNcQvNCFjE9h7nBnhuzSV5jDbcc0l1b7IQt07uJho1c59aL/ryns+kmft8a6mley6jovdI+yIhuKnsvaAcuX6vMxArTi/taejBJRtucowRTzAZDdPB6KBeOmfGYZ4MTYaL/jKoSfahn1CQQYOyhxwW40Hixe2g0mtYr8R8dYY2OrXFxsIlG8S9SJMvFi6U6PaB5apeq2fZRiunznX5/PSRTh8IK4qQr9apwWcdWtdJeGs2Di9s7EfSPXusVV62sg9xOrFWB+b+6qWbtH4bOve+RMsdeUGzfH6C+evmRqXTFctuug6ZOjVkyWY5Xyywgx/QLrSPNVpVCmH9x6jRjmnlrmkeH357eFSoCSw1+iTFz9s2W+95egH8/zD7tYdZzyGh77JoHNruLHXtPPf0X8FEfz0TSfnXGSip1eZ83iDTX9FdLgrrdarcXmfQPVw2yrTV+pINRFTav9JJSVTqTvT4o2uvfJ493fQ4jCfz/bsXuFz+BfxwPh4= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/get-all-workspace-roles.api.mdx b/docs/docs/reference/api/get-all-workspace-roles.api.mdx index b3a4491b33..27171adf37 100644 --- a/docs/docs/reference/api/get-all-workspace-roles.api.mdx +++ b/docs/docs/reference/api/get-all-workspace-roles.api.mdx @@ -5,7 +5,7 @@ description: "Get all workspace roles." sidebar_label: "Get All Workspace Roles" hide_title: true hide_table_of_contents: true -api: eJztVE1v2zAM/SsCz0KS7ejTcijaoDsEaYcd0qBgFSZWK0ueRKfNDP/3gUrsfABb/8B8sSU+8YmPj26BcZugWMLPEN9SjYYSrDSsKZloa7bBQwG3xAqdU+89RsXgKI2e/JNfEDfRJ4XK2cQqbDISd2gdvjj615niySul1HebeDnQL4KjBaU6+ESrQk2HtBcIFV5eyXBSkepIiTxbv1Vc0mfMaBP1xHePj/ObD0O5zELNNgq9ohhDVMGYJib1XlpHKhJHS7ue4TovaAg1RZQsszUUsCV+RueeB+BzBoKGeCwsQdHC18lEXpdSPzTGUEqbxqleBdBggmfyLHCsa2dNJhu/JjnTQjIlVShflqnKyXG9toJBN49yO7YHUt7XBAUkjtZvodP9xkHPsw2MEfeggS07Wfe3UWKGqXOnfqhFrq6TR0NFXIajCqChRi6hgPGgRRr3YiSKO4pivhaa6ASFtYVO98uSuU7FeEzNyLjQrEe4Jc84QnsAriSHaaLlfU4ync/uaX9HuKYIxXJ1DngQiQ4SXMIGSbC29yQVe6xkPW24DNH+zlKDBivtKQ+npFDrNyEfPwo0zZdT0/kMrufnIiS9RJN72TPlMOirsk/Vggaq0EqQCatvQ0T6JRoeaCajL6OJbNUhcYX+jOJvTbu6aXty2v+h/2zoj75h+uBx7dB6kT63sD3afgkn28v0Z8lXGsqQWKJt+4KJfkTXdbL9q6EoTl5p2GG0Uk+2se5tJyZ/o71YxkgFIEDXHNx79VsQ8w+zeHvzCF33BxxlFMI= +api: eJztVMFu2zAM/RWBZyHOdvRpAVZ0QXcI0g47pEHBKkysVpY8iU6bGfn3gXLspgHW/cBySUQ+inqPj+mAcZegXMHPEJ9Tg4YSrDVsKJloG7bBQwnXxAqdUy8DRsXgKE3u/b1fErfRJ4XK2cQqbDMS92gdPjr6qKa890op9d0mXo3tl8HRklITfKJ1qWbjtV9pi61jyavw+ESGk4rURErk2fqd4or+1RdtoqHtt7u7xdWroUyyVPOtQq8oxhBVMKaNSb1U1pGKxNHSfuhweS9oCA1FlFvmGyhhR/yAzj2MwIcMBA3xRCtB2cHn6VS+3gt92xpDKW1bpwYNQIMJnsmzwLFpnDW5WfGUpKaDZCqqUX5ZpjpfjpuNFQy6RZTXse2b8qEhKCFxtH4HRz0Eej3PAhgjHkADW3ZyHl6jxAoz59Q4L7XM7I7y0VATV+GkAmhokCsooRi1SMUgRqK4pyjW66CNTlDYWDjq4VgxN2VRuGDQVSFxn15LpWmj5UMunS3mN3T4RrihCOVqfQ64FWF64u9hoxDY2BsSnh5rOc9arkK0v7PAoMHKUKq+SuhZvw25/CTLbEeeUc0Wc7jcmXcpmSCaPMGhU06DPiObyqLAHJ6gLUAD1WglyYT1lzEjUxLl+jbTyafJVEJNSFyjP2vxt1FdvLR789f/Rf940U+uYXrlonFovQifB9idrL6CN6vLxmfB1xrEwJLtukdM9CO641HCv1qK4uO1hj1GK3yyifVgOrH4Mx3EMEYYgABd23v34q9ArD/u3/XVHRyPfwD7tA+P sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null @@ -42,7 +42,7 @@ Get all workspace roles. Returns a list of all available workspace roles. Returns: - List[WorkspaceRoleResponse]: A list of WorkspaceRole objects representing the available workspace roles. + List[WorkspaceRoleResponse]: A list of DefaultRole objects representing the available workspace roles. Raises: HTTPException: If an error occurs while retrieving the workspace roles. diff --git a/docs/docs/reference/api/get-project.api.mdx b/docs/docs/reference/api/get-project.api.mdx index aa38bccf0f..62aefec8cf 100644 --- a/docs/docs/reference/api/get-project.api.mdx +++ b/docs/docs/reference/api/get-project.api.mdx @@ -5,7 +5,7 @@ description: "Get Project" sidebar_label: "Get Project" hide_title: true hide_table_of_contents: true -api: eJytVtuO00gQ/ZWonkBqJcNon/y0ESCI2F2iYVgeRtGoxq7EDW236cssWav/HVW3r5MMIOAptrsup+qcqk4LDg8WshvYGv2RcmdhJ0A3ZNBJXW8KyOBA7rZJpyCgQYMVOTLs1UKNFUEG3fmtLECArPkLuhIEGPrspaECMmc8CbB5SRVC1oI7NuxpnZH1AQQ46RR/6IAsNgWEsOMIttG1JctOlxcX/FOQzY1sGCJk8M7nOVm792px1RmDgFzXjmrH5tg0SuaxotVHyz7tBEhjuF4nUwZtDljL/6Mxl8Pu9fHtPlb7EPNemwodZOC9LCCIwaL2SgGj76t6OwkbSxPzTKmPj+f64dj/cKAg4D9tPtkGc/qNRXzoY3YVjDl+Bf4Ytcc+UdMZoczxnhfOGKNH9j259bmlvS1oj16Noh+977RWhPXEfWMXL5L5YjvMSBcAsj0qS0GAt2RujVY/3aP3lsziigP0ECt9NlaP8FvBIuZKQwiit9F3HfRxXm/mQz3r5+6kf3aYvBA47h+Xl6eD+i8qWSSZvjRGm5+f0oIcSsVP0lFlTw2UzmenP9B0WTs6kIGwG/uCxuBxQvdfOgFkGip7+Jaw/iZr8RAJSyaPm8ZmLK75lOmtG59E1/MVPwQBufsyCTNw1ts9515+cd/llXuT4Hd2EzpHihJDj7fiRaLgXLLe5PX19fYkYNLHXBivaDo+FblSdzdPvHFcCRmsOgXaVTsKM4AAS+a+v468UWyKjYzMptfSucZmqxX5Za60L5Z4oNrhEmUy3HGM3BvpjjHIert5Q8fXhAUZyG52U4N3LMgksbnZQAs28g1xo7qrce1dqU23nvvbsUxeIdK911O21xHcYr3dwMM2zY54cjBtpz5TPAbxoOyxWhBAVZwbcITVn8MJ08w9TGkuls+WF3GHausqrCcp5kTN0A0NYA2uGoUyTknE0nYkDjvFgoBssl92AkptHVu07R1aem9UCPz5syfDtOwE3KOReMdNummhkJafi27JnoAZFgs8ueq0/3QB4jzInrqaebtH5fkNBHyi4/zPTdwNZa+MtjNY5zk1buJ6sspYQoOsX728hhC+AjXdO/M= +api: eJytVttuEzEQ/ZVonkCyuqXiaZ+IKCoRt6gUeKiiaro7yRq868X2FsLK/47G3itJKQKekthzOTPnzDgtONxZSK9hbfRnypyFjQBdk0EndbXKIYUduZs63oKAGg2W5MiwVwsVlgQpdPc3MgcBsuITdAUIMPS1kYZySJ1pSIDNCioR0hbcvmZP64ysdiDASaf4oAOyWOXg/YYj2FpXliw7nZ2e8kdONjOyZoiQwvsmy8jabaMWl50xCMh05ahybI51rWQWKko+W/ZpJ0Bqw/U6GTNos8NK/gjGXA67V/t321Dtr5i32pToIIWmkTl4MVhUjVLA6Puq3k3ChtLEPFPs4/25/jj2Ww7kBXzT5outMaP/WMSnPmZXwZjjX+CPUXvsEzUdEcoc73HhjDF6ZA/Jrc8t7U1OW2zUKPrR+1ZrRVhN3Fd2cR7NF+thRroAkG5RWfICGkvmxmj11z36YMksLjlAD7HUR2P1CH8XLGAuNXgveht920Ef5/V6PtSzfm4O+meHyfOe4z49Ozsc1I+oZB5l+sIYbf5+SnNyKBV/k45Ke2igdDa7/YOmy8rRjgz4zdgXNAb3E7pf6wiQaSjt7nfCekPW4i4QFk3uNw3NWFzxLdNb1U0UXc9XOPACMvd9EmbgrLd7zr387h7klXsT4Xd2EzpHiiJD97fiPFJwLFlv8vLqan0QMOpjLowLmo5PSa7Q3csTXhxXQApJp0CbtKMwPQiwZO7656gxik2xloHZ+LNwrk6TROkMVaGti9cb9swaI90+uC7Xq1e0f0mYk4H0ejM1eM8yjMKamw1kYC1fEbenexCXjSu06ZZy/yYW0csHkrd6yvFyR5XDxXK9gl+bM7viecG4k/pM4RrEpFibJgmG4xOUCQigMkwLOMLy2XDD5HLnYprTkycnp2FzautKrCYp5vTM0A0NYOUltUIZZiNgaTvqhk1iQUA62SobAcwHW7TtLVr6YJT3fPy1IcO0bATcoZF4y026biGXlr/n3Wo9ADOsE3h02Sn+8QLEcZA9dRXzdoeq4V8g4Avt539pwkYoemW0ncEyy6h2E9eDBcYSGsR88eIKvP8J20I4lA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/get-projects.api.mdx b/docs/docs/reference/api/get-projects.api.mdx index 30c0dba847..ddd0356464 100644 --- a/docs/docs/reference/api/get-projects.api.mdx +++ b/docs/docs/reference/api/get-projects.api.mdx @@ -5,7 +5,7 @@ description: "Get Projects" sidebar_label: "Get Projects" hide_title: true hide_table_of_contents: true -api: eJytVU1v2zAM/SsGz0KS7ejTAmzoggJr0a7YITACxmZitbKl6qNbZvi/D7Qtx/GKYtjmSxyRfHx8pOgGPB4dpFu4tfqRcu8gE6ANWfRS15sCUjiS35loFWDJGV07cpA28H614p+CXG6l4RBI4T7kOTl3CCq5G5xBQK5rT7VndzRGybzLsHx0HNOAy0uqkN+kp6oDN5aJeNmn0vaItfzZRe1k0eHUp5sDpNsG/MkQpOC8lfURBBy0rdBDCiHIAloxetRBKWgzAV56xQc3E9hkw76XmWqs6K1cf4z9hYFaAd+1fXIGc/qPRXyLmEMF5xz/Qv+MGrkPYzAwf5vvGWcYrYFbxIjM5ijzqJhbul1BBwxqnMZJ9F5rRVhPwjcu+di7JwMSCBgAID2gctQKCI7szmr11xo9OLLJHQNEipV+FSsyfAus41xpaFsRffR+oG7pOUhLBd/VSRtmema/6efGK3gGRWvxNNEquiRXNKrloOVHzO72hYeAinyphyXBXNCXkMJysi4c2ReyrpMiWMVWNLKTof9bem9culxSWORKh2KBR6o9LlD2jhlj5MFKf+pA1rebazp9JizIQrrNpg73vET6dXHpNmqORl4T196PH6yDL7Ud7igIkFxk2Udx9bI+dP2MUq07csn6dgNzaS5MvO2wH9GYqTODmJV9rhYEUIWSjZ6w+jBauHOsYZ9mtXi3WHUXSTtfYT1JMWvOBb1RAU8//NIolDyLPZlmaNw4Wd1XoNTO81nT7NHRg1Vty8fPgSx3IhPwglbinnXZZq2IsnGTnujEJec5GZ6LF1ShV3+2+Ll54wxdffoKbfsLnwo/Og== +api: eJytVNtu00AQ/RVrnld14NFPRAJBVIlWLRUPkRVN7Em87dq73UshWP53NOtLHIMqBOQlyc7MmTNnLi14PDrItnBr9SMV3kEuQBuy6KVuNiVkcCS/M6NVgCVndOPIQdbC29WKv0pyhZWGQyCD+1AU5NwhqORucAYBhW48NZ7d0Rgli5ghfXQc04IrKqqRf0lPdQQ3lol42afS9oiN/BGjdrKMOM3p5gDZtgV/MgQZOG9lcwQBB21r9JBBCLKETkweTVAKulyAl17xw80MNtmw72WmBmt6LdcfY39moE7AN22fnMGC/mMRX0fMoYJzjn+hf0YduQ9jMDB/ne8ZZxitgduIMTJboiyjxtzS7Uo6YFDTNM6i91orwmYWvnHJ+949GZBAwAAA2QGVo05AcGR3Vqu/1ujBkU3uGGCkWOvfYo0MXwOLnGsNXSdGH70fqFt6DtJSybs6a8NCz/wX/dy0gmdQtBZPM61Gl+QjTWo56PgjFrt94SGgJl/p4UgwF/QVZJDOzoUj+0LWRSmCVWxFI6MM/d/Ke5OlqdIFqko735tzjiyClf4UQ9e3m2s6fSIsyUK2zecO93w6+iNx6TYpjUZeE1fcDx2sg6+0HTYTBEgureqjuGbZHGIXR4HWR2o8JuvbDSwFuTDxjcN+MMdM0QxiVqzL0hTj8xXKFARQjZKNnrB+N1m4X6xcn2Z19eZqFddHO19jM0uxaMkFvUkBT999ahRKnsCeTDu0a5qnePu5BfzWtnt09GBV1/HzcyDLncgFvKCVuGddtnknRtm4SU904pKLggxPwwuq0Ku/OPfcvGlyPn74Al33EybQO9s= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/get-workspace.api.mdx b/docs/docs/reference/api/get-workspace.api.mdx index 6b1a7d4750..784505c27c 100644 --- a/docs/docs/reference/api/get-workspace.api.mdx +++ b/docs/docs/reference/api/get-workspace.api.mdx @@ -5,7 +5,7 @@ description: "Get workspace details." sidebar_label: "Get Workspace" hide_title: true hide_table_of_contents: true -api: eJzlVMFu2zAM/RWBl12EJNvRpwVY0QYFtqDNsEMaDIrMxGptyRXpplngfx8oJ46T3XpdLo5IPj5SfOIB2GwJsiX8CvGFamORYKUhR7LR1eyChwxukdXu5Fc5snEljZ78k39AbqKnk02ZdWhYcYGDeEMUrDOMudo5LpK3IYyfSBESueCHqbInr5RSfTmZWhQ9pwqby+Qd0jjCE/BusZjfvFtMtWdqtun5VB6QlA+sCvOGqsZYuUSvOMhpE2KluHCkjBXwCDSEGqORwyyHDLbIv3tq0BCR6uAJCbIDfJlM5HN5c4+NtUi0aUr1cAwGDTZ4Rs8Sbuq6dDZRjJ9JMAcgW2Bl5J9jrFLyOkol7Doqlyeo3//YQLY8AO9rhAyIo/NbaHVv8U1ZQrvSwI5LMcxyaDV4U6FkuMSdo76Lv71SwccIvw1StPoY9rFUC7G3fRII62e0nMbw2riIucg4tXYMGWB7OZ2LABOj2Q+6Pg1IidwHAPlpqJCLcBQBaKgNF5DBeHd+NhoI4xtGSn01sRS/qV1qqjsWzDVl4zE2I1uGJh+ZLXo2I+O6wJXksE10vE9JpvPZPe7v0OQYIVuuhgGPopJOD5dh/Q2a2t2jdNjNG6YNFyG6P0ltoMGJQosOJS06vwkJfryQaSpOTeczuN4IFy6Rs7FJziem5AZ91fa5W9CAlXHiZDTV194j85E77Ggmo8+jiZjqQFwZP6C4HNI/Wu2f2H+8vI4yYHzncV0al15gmsjhqN8l7C7WfhGIxXo4rA3hz1i2rZhfG4wiyJWGNxOdWYs8lqtWn9QjWn3BvUzeSvUggWXTifBqwYmG+8d0e7OAtv0LJudB8g== +api: eJzllMFu2zAMhl9F4GUXIc529GkBVrRBga1oM+yQBgMjM7FaW3IlumkW+N0HyonjdLdel4sjkj8pip90AMZthHwJv3x4jg0airDSUFA0wTZsvYMcronV7uRXBTHaKk4e3aO7J26DiyebwrVvWXFJo3iM0RuLTIXaWS6Tt40UPkUVKUbr3ThV/uiUUmrYTq4W5VBT+c1l8l6JNtJJeLNY3F29GUp7z9V8M9RThaeonGdV4iuphkJtU3nFXlYbH2rFpY0KjYgnoME3FFAW8wJy2BL/HkqDhkCx8S5ShPwAX6ZT+Vye3ENrDMW4aSt1fwwGDcY7JscSjk1TWZNKZE9RNAeIpqQa5Z9lqlPyJshO2PalbJGkbv9jA/nyALxvCHKIHKzbQqcHi2urCrqVBrZciWFeQKfBYU2S4VJ3jvou/u4dBR8r+G2UotPHsI+lWoi9G5KAXz+R4TSGl9YGKgTj1NoxZKQdcDpvAjAE3I+6Pg1ICe4jgfw01MSlP0IAGhrkEnLIdudroyFSeKUQU19tqMSPjU1N9cuSucmzrPIGq9JH7t0rUZo2WN4n6exufkv7G8KCAuTL1TjgQdjoKbgMG84NG3tL0lc/ZZi1XPpg/yTGQIMVLsteJY1Zt/FJfjyG2ZYco5rdzeH9O3DhEojRJIhPlZIb9KjZmGcZJvMEbQYaqEYrTiasvw4emYqcXF9mOvk8mYqp8ZFrdKMSl6P5h9DhYv3HT9YRA6Y3zpoKbbp3aSKHI7VL2F089kKiWA+HNUb6GaquE/NLS0GAXGl4xWBxLXgsV50+0SOsPtNeJm9k9yCBVdtD+O5ZE4aHK3R9tYCu+wvWTz6T sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/guard-simple-environment.api.mdx b/docs/docs/reference/api/guard-simple-environment.api.mdx index 7882c519dc..73a321eda7 100644 --- a/docs/docs/reference/api/guard-simple-environment.api.mdx +++ b/docs/docs/reference/api/guard-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Guard Simple Environment" sidebar_label: "Guard Simple Environment" hide_title: true hide_table_of_contents: true -api: eJzNWM1u4zYQfhViTgnAyGnQk4ACTTe73XTbbpBkc0mMhJbGNrcUpSUpY11D1z5AH7FPUgwp2ZTs/DYL1BdL4sw3M98MRxytwImZhfQa3uqFNKUuUDsLYw5lhUY4WerTHFKY1cLkt1YWlcJb3IgCh0oYUaBDQzAr0KJASCGSuZU5cJAaUqiEmwMHg19qaTCH1JkaOdhsjoWAdAVuWZG2dUbqGXCYlqYQDlKoa4/ipFMkEHnLTnNomjGh2qrUFi0BHR0e0l+ONjOyojgghYs6y9Daaa3YeSsMHLJSOwolXYGoKiUzH/bosyWdVeRcZYgUJ4OFrKyDUuuz1A5naCIn33gJDjlORa0cpIcNj4nxFvXy49QT10efKp+X+wWkvfVJIRbXPkzKUqHQkQ+nlv3cikWOTIWy2DS80ysnnzFzu/l95z1p+NqIrpWCZkzaWz6KPJfEnlBnPW83EgNPI9w26fRkNwxk0mS1EmbvVzFB9Yst9cHH2lW124dhKFQQXTBDadgKfDu6jfZlCB8KdOKFwUaRDYqlZ7iY9J/EHD3GyLtaPUIIX4F0WDxRSxgjlg/yMtB9Hqm/EZkNb7vFkyjbwviddBve3+MvgzqJIBoOmUHhML8V7iHAqDvlwuGBk96f+628CbDs2JNVV/m3MPIpwLZGclT4DYycBNjWSEfXZEmt/ml2fD9/Clk/LX2D3/D1qlY6ttZWOsJe1UpH19qKVfXspbV6QboNh9dzr41cDPtb/4VjcIoGdTbscfd2wXue91EXaOx/2LhXrfr/ktMH3q/nHZm72uYz+uj5JilPfJ2f40ISZSeU7kHzhDM0B6Kq2CbXbFoaFp1ZmGn1GdVLcqNv9AdcWiYMMlFVBzYrK8yZzFE7OZVoLNvDZJZwdnd3A5XBpAO4gbu7/eRGXwlVYwDIZeYsK6eMlN3ygMJh//z1N1uHyVllyoXMpZ6xaa0Uc0ZkKCZSSbdMU3KHMcZW4Y9+Q6NpvBgEolMfra+N7cn8hyRJOKPSCldtudLNPn8A53YhjBTavRpeHMALAJvoOkmScNPsPtW1rr9i/7sKiG3z60J5RQNdUbNHtt2FH2Ci3bCLgefor8eIpiG974+OtqeOK6Fk7rPI3hpTmpePHDk6IZU//YeT3FBAlVlv9Tkn0XEzOPxFB+gyOOiPwXa2a1DbHOysFbOord0v6slgl7RKrVfTIZLEuw6q21Nl5r5GMFs5eUNcfnU7874ZNK89N8H9Vq5XoF2KQobup+IkpOChInl/eXm2BRjqo18YfjBjoabY295QXaCblzR4V6UNQ7abQwqjMIGPooZsR6v+rN2M/FwIHCyaRTeW10aRvqikT364nTtX2XQ0wjrJVFnniZihdiIRMgiOCSOrjXRLD3J8dvoBl+9R5GggvR7HAhdUs6EK+2LrzIlKfkDisv1EcFy7eWnkn6G02i8E86DV+IqYlnFBHHvn2PHZ6dZ7q7dEm0tkvpY6S34Z+CDsTbTAAQu/tcChKH5cr1AlrI8ocJh8lxzSI8pKIXRk4oFcDuaTlg2q2VGlhPS7yju2atN8DSHN0PtaYIFDuvVZJeR6zGFOhZJew2o1ERY/GdU09PhLjYaSN277+oSovF5BLi1d5+23gC0v1x0K9s7bTbTPNuNh3/suwZqyu6D3OaQAHP7A5fanIN9o5l0NrVqh4yzDykXqW32Rim29Lc4+XlxC0/wLgNpfyQ== +api: eJzNWM1u4zYQfhViTgnAyOmiJwEFmm52u2naJkiyuSRGQktjm1uK0pKUsa6gax+gj9gnKYaUbMp2skmaBeqLJXJ+vxmOZtiAEzML6Q280wtpSl2gdhbGHMoKjXCy1Cc5pDCrhcnvrCwqhXe4JgUOlTCiQIeGxDSgRYGQQkRzJ3PgIDWkUAk3Bw4GP9fSYA6pMzVysNkcCwFpA25ZEbd1RuoZcJiWphAOUqhrL8VJp4ggspad5NC2Y5Jqq1JbtCTozeEh/eVoMyMr8gNSuKyzDK2d1opddMTAISu1I1fSBkRVKZl5t0efLPE0kXGVIVCcDBqysg5Mnc1SO5yhiYx86yk45DgVtXKQHrY8BsZr1MuzqQduKH2qfFweJpD2zgeFUFzZMClLhUJHNpxY9nNHFhkyFcpi2/Ker5x8wsztxve9t6TlKyW6VgraMXFv2SjyXBJ6Qp0PrF1TbFgaye2CTiu7xUAmTVYrYfZ+FRNUv9hSH5zVrqrdPmy6QgnRO7NJDVuOb3u35r4K7kOBTrzQ2cizjWQZKC4mw5UYo68h8r5WXwGENyAdFk/kEsaI5aO4bPA+D9TfCMyWd9XiSZBtyfideFs+POMvE3UciWg5ZAaFw/xOuMcERtUpFw4PnPT2PKzlbRDLjjxYdZV/CyUfg9hOSY4Kv4GS4yC2U9LDNVlSqX+aHl/PnwLWT0tf4Nd4vaqWHq2Vlh6wV9XSw7XSYlU9e2muXhJvy+H1zOs8F5v1bfjBMThFgzrbrHEPVsEH1odSF2jsfzi41x37/xLTR76vFz2Yu8rmM+roxTooT/ycX+BCEmTHFO6N4gnnaA5EVbF1rNm0NCzqWZjp+BnlS3Krb/UpLi0TBpmoqgOblRXmTOaonZxKNJbtYTJLOLu/v4XKYNILuIX7+/3kVl8LVWMQkMvMWVZOGTG75QG5w/7562+2cpOzypQLmUs9Y9NaKeaMyFBMpJJumaZkDmOMNeGPfptK03gzEERdH+2vlO3J/IckSTij1ApPXbrSyz5/RM7dQhgptHs1ebEDLxDYRs9JkoSXdndX15n+ivXvOkjsil/vyisq6JOafeXYXfoBJjoNuxB4Dv9qjGhb4vv+zZvtqeNaKJn7KLJ3xpTm5SNHjk5I5bv/0MltEqgyG+w+pxMdtxvNX9RAl8FA3wbb2a5Bbd3YWStmUVl7mNSDwa5ol0qvpiaSyPsKqruuMnNfIjFbMXlLWH5xO+O+HjRvPDbB/I5ukKB9iEKEHobiOITgsST5cHV1viUw5McwMfxgxkJOsXeDobpANy9p8K5KG4ZsN4cURmECH0UF2Y6a4azdjvxcCBwsmkU/ltdGEb+opA9+eJ07V6WjkSozoealdWF7TJxZbaRbetaj85NTXH5AkaOB9GYcE1xSpobcG5Kt4iUqeYqEYHcxcFS7eWnknyGhunuBeeBqfR5MyzgNjmaonWBH5ydbX6vBFh0pkfkM6jX5beCRszYdjYRfToQcAQcs/IECh6L4cbVD8V81JnCYfJcc0hLFohA6UvFIBDemkg4NytRRpYT0Z8kb1nTBvYEQXBjcEVjgkG5dpoQIjzlQ1Ii1aSbC4kej2paWP9doKHjjrppPCMqbBnJp6TnvbgC2rFzVJdi76I7OPlsPhUPr+wBriu6CvuKQAnD4A5fbF0C+vMz7HGo6oqMsw8pF7FvVkJJtdRjOzy6voG3/BdEPXGo= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/handle-events.api.mdx b/docs/docs/reference/api/handle-events.api.mdx index c8edc7a173..0dc1dd12ff 100644 --- a/docs/docs/reference/api/handle-events.api.mdx +++ b/docs/docs/reference/api/handle-events.api.mdx @@ -5,7 +5,7 @@ description: "Handle Events" sidebar_label: "Handle Events" hide_title: true hide_table_of_contents: true -api: eJxdUkGO2zAM/EowZyFOe/SpKVBggz002LQnIygYmRtrV5ZVSQ7qGv57QTlJN9ZFkDgkhzMckegcUVb4aqw17oyjQuc5UDKd29Uo0ZCrLf/iC7sUoRA4+s5FjihHfN5s5Ko56mC85KDEodeaY3zt7erlCoaC7lxilwRO3lujc4viLUrOiKgbbgnlOMlRi5JPmcTq241Ey6nphJ3vYoKCp9SgRHGapyhiCsZzMZMuoBA5XDjIpCP6YAVL3mBSt2eTko9lUXC/1rbr6zWd2SVak5mBR6mh+2DSkIts97tnHp6Yag4oq+NHwEFmmQV6hI1Ig2eUIG+eeYCCo1be2z41XTB/syZQMDJ0M2eJGsa9djndJJvxmdxqu99hKdVDSEQnnUW/dcphqMXY/6eFArdkJJiY2i/3CCYF0XBus1l/Wm/kSxxoyX1osTTrgd9dgsR/UuEtGSdVMpvx6mOFq49iXHZSSN3KyYo2YntZYRxPFPlnsNMk3797DmLPUeFCwdBJxKqOk7ppKc698yA6aM1eVudCtp8tWSylOHrfs/33ww9M0z/lkBQl +api: eJxdUsGOGjEM/RXkc0RojzmVSpUW7aFoaU8IVSZ4mbSZJJt4UKej+ffKGQYBcxnFfraf3/MAjOcCZg9fnfcunOGgICbKyC6GzQkMNBhOnn7RhQIXUJCppBgKFTADfF6t5HeiYrNLUgMGdp21VMp75xdvVzAosDEwBRY4puSdrSP07yI1AxTbUItghlE+9dTypZJYfJtJtMRNFHYpFgYFCbkBA/o4baELZ5dIT6Q1KCiUL5Rl0wG67AWLycGo5mfDnIzWPlr0TSw8pQ9SabvsuK+l6+3mlfoXwhNlMPvDPWAnG0yyPMIG4D4RGMDkXqkHBQFbea87bmJ2/6oSoMDJqs1UJRq48B5ruWNf8WcKjIv1dgPPAj2kRGq0Vep5Uk2Dulu2GK2xhpfoRCJq0UmSCdsvtwyMCkS5acxq+Wm5kpDo3mK4G/Fs0QO/mwRMf1knjy5Il8pmuLq3h6t7Ylf1T0jN7eQwxRfBDcMRC/3Mfhwl/NFRFnsOCi6YHR5FrP1hVLOW4twf6kUHaynJwVzQd5MlT6cojt6ua/t99wPG8T8U/BDG sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/health-check.api.mdx b/docs/docs/reference/api/health-check.api.mdx index 416665ca59..11ff03d2fd 100644 --- a/docs/docs/reference/api/health-check.api.mdx +++ b/docs/docs/reference/api/health-check.api.mdx @@ -5,7 +5,7 @@ description: "Health Check" sidebar_label: "Health Check" hide_title: true hide_table_of_contents: true -api: eJxdUsFu2zAM/ZXgnQUn29GnBsOwBr0US3cKjIFV2FirLWsSHcwz/O8D5SRr7Ish8pF8fHwjhE4J5QF7IekTKoMucCRxnd8dUaJmaqT+aWu27zCInELnEyeUIz5vNvo7crLRBS1BiX1vLaf01jer7xcwDGznhb0onEJonM0T1r+S1oxItuaWUI6TfmbR8jFzWH25cGhZ6k65nVhgEEhqlFjPTGGQOJ456lYj+thojoLDZK7PWiSkcr3mvrBN1x8LOrEXKsjNwEp72D46GXKT7fPuiYdHpiNHlIfqI2CvzGc57mEjZAiMEhTcEw8w8NTqe9tL3UX3NysAA+dnmbVKd3f+rcvlTpqMz+RW2+cdlsLcpVRislni66Schlms/X9bGHBLTpPC1D7cMpgMVMN5zKb4VGw0FLokLfkPIxanuaN3U0D4j6xDQ85rk0xmvJztcDGYGq/ukmhkHF8p8Y/YTJOGf/cc9Q6VwZmio1dV5VBN5iqanuidB13YWg7qiTM1/az9wmt6upt/vn19wTT9A7Z/BEo= +api: eJxdUkGO2zAM/EowZyFOe9SpQVF0g70smvYUBAVX4cbalW1VooO6hv9eUE6CJLoIIjnicIYjhI4ZdoetkPQZe4MuciLxXbs5wKJmClL/djW7DxgkzrFrM2fYEZ9XK70OnF3yUSGw2PbOcc5vfVj8OBfDwHWtcCtaTjEG70qH6j0rZkR2NTcEO056zMOXT4XD4uuZQ8NSd8rtyAKDSFLDopqZwiBzOnHSqUb0KWiOosdkLs9aJNqqCp2jUHdZ5vReka5PXoYCXb9snnl4Yjpwgt3tbwu2yncW4b5shAyRYUHRP/MAg5Yafa97qbvk/5W5YeDbWVxF6cS+fesK3Eso9UduhRbrlw0e5bhLqbDkirCXTiUNczNstlVFJbwkX8GAG/KaFKbmyzWDyUCVm9uslp+WKw3FLktD7U2LB0Pu6F0VEP4rVQzkW/2kkBnPZu3Oa6XrpgZoZBxfKfOvFKZJw396TurD3uBEydOrqrLbT+Yimlr0wYMO7BxH3YQThX7W/mHD1Lrr1nz/9hPT9B+G3QDr sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/ingest-spans.api.mdx b/docs/docs/reference/api/ingest-spans.api.mdx index 77ae084824..8e052d03b7 100644 --- a/docs/docs/reference/api/ingest-spans.api.mdx +++ b/docs/docs/reference/api/ingest-spans.api.mdx @@ -5,7 +5,7 @@ description: "Ingest spans into the tracing backend." sidebar_label: "Ingest Spans" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/ingest-traces.api.mdx b/docs/docs/reference/api/ingest-traces.api.mdx index d15e1ca2f0..fb8a71f6dd 100644 --- a/docs/docs/reference/api/ingest-traces.api.mdx +++ b/docs/docs/reference/api/ingest-traces.api.mdx @@ -5,7 +5,7 @@ description: "Ingest a batch of traces in the canonical `Traces` list shape." sidebar_label: "Ingest Traces" hide_title: true hide_table_of_contents: true -api: eJztW19T4zgS/yoq3ctMlQkcd095uixka3LDBioJ8wIp0rE7sRZZ8kgyTJZK1X2I+4T3Sa5athM7CQkwzN7eludhALn/SN0/tdrt1hN3MLe8fcPPMTUYgsOIjwMeoQ2NSJ3Qird5T83ROgZsCi6MmZ4xZyBEy4RiLkYWgtJKhCDZZOQfTJgU1jEbQ4qtW3WrOmGIqbMM8gelBGYw1Cay7ANCGLOJH7wT0YSlMrNMoXUY3aqJTUHZyccW6ymHRoGUC6a0SUCK3zBiQjntJ2IhQZaKFKVQyMDeqsnV5XDEjkmwUPNjL+hY+PVMWuzaInOxsOwxRsUWOmMgDUK0YLGW0a2KwEG5yB1LY//517/ZTBuG3yBJJQbMYCphIdS8sNCtmhmdMFDaxWgYqgdhtEpQOW+WAbrMKMsmpyenLLcRRhP2KFzsdZbGguLR2kJ20mJDxFt1M8qX5ufSsQsVskcjHN6qUCuiduMPxwZnaFCFeAypOJpnIsLSJH8B4jnyPEcly9HpyenHW0VLe4zBsUmoM+UmLEFQlsVosMUDrlM0QBDpRbzNc6Pe5evmATf4NUPrftLRgrefOIlG5ehXSFMpQs95/KslhD1xG8aYAP2WGpLrBFr6qxBHXGpxOePtmycuHCZ2m9T7tk4JUSRIDcirGuma4rtF8FCYMJNgPgyJua8j/MiD1SR3P+ZukSJvczAGFnw5Xq5G9PRXDB1fBk/liMqk5MtxwJ1wkga8IL4MeGiQ9usduPqUC0brjFBzHvAZ7RTH2zwCh0dOJLhX/lkulnVoGjxLox+h5DoXWyiJUOIPUHKeiy2UlOaaLu5E9EI9WSaiFxnrpwXrRVV7vauW0lorLaXB3lVLaa6VljLY+I24IbZk8lGxoKftc4CcwFtQp2BQuQPz3zffKy+gNtecdJ85UGUJbVuhHnQeg3jAQSntyj8yda/0o+LjjUWOSNL2fMp1v1w1zCkQBjyMQZDCR23uZ1I/kpnA3tMPrSUxJFOMopz5a4ZmwQMuZUKsms6bYsJhDM4HXAPqfvcCyOwH5n8v1AEklfMfXnX6d597/fO76/7wqnvW+7nXPedBZbzXH3UH/c5FbXDYHXzpDmpDZxe9bn9UG7oaXJ5fn23SXfaH1790B9UlXY5Q0rI+07yfX5aCZK9bDkVa1gcfZbh1YNydjznfEaOEcjhHs18taWKjnJOjin4XrV0VrXRaBy6zd6GOXgjp4agzuh7enV2edwkUXe/Tytjl542B7mBwue1Or/aMtO52aD6tBK2F+du96qWwXwopy4CDc0ZMM7eZHBxOH57VutPiybQ+MtVaIig/tFvXOn34OZPyn1aro55KM1fJISoZw1bO8SxTkXjssVKdlb8qQ+ms7bmkuFQkny9L4x7QWJEnhW/x7peCneAis/mbQUK8y4C/3+maH1MN1H4c1LYY69FlUOKwouHw5AZr9C4DLoW6f/nbyHfkNpU8qZqFvUVUNUNr4Pc/g9+FUPevQt6Fx9oy4DHY+IXBswlXfxq8fAIbvwovn3KYUMr4jcpFW4do47S3Oa27MifZ9gGVe9lmLF89nnsXLt8sKFu3DpL0XVL8auRfCW628u+9lan8KQxG9HbkgVD188Z7T5cw9aq93s1ReEjxKnVY12Y2C4n98m3r/aqqTUm0KYk2JdGmJNqURJuSaFMSbUqiTbbYlESbGsMf5cWkKYk2JdE/CPyakmiDl6Yk+v/otKYk2qDiz14SfZ+K5PulKnuCoyd6lbVGZZtuvdP7Yld3dot1qTs7/4sJ6uLe7NSmZuW8W5sVzdrMGcQW637NxANIKkoVPdoJpEe+ezpiKSykhmjd3jxdsL0N24eNYAd52/HWyooe9lLlizvXr+3WvLDSQe4tg8qZBRlGKyxM51u4haMO9LWpQEUMdtqJL5fLKk6dydAP2FQrm0ef05NT+lFf1jALQ7R2lkk2KIh9LexNzda+y7sSnstgVqnteopN2/Z9hCPcRMI6oUJXWKF3XtwREJaVa2l59hlk0vH2SWWH5NlaeW5s7pA6tLf3xzaW/3Z6FMZgWIzf2PU1TYWAHWN5ecFRZ/sjGmS5NzFqsTOdUA2WwRyEsi7Hdb46uh1gs2kiHHnPaRahw5AQZZwAyWYgZGbQ1tZ3Mz6I2F5kV55behj8/XSHo7+AFJF3I+sao83bvRyhAyFrxq4TSB3Wnr7m2Bs/76mLsri8DHhi5/vSgEohqqwhP0fqjcGKQi4X/tAi8jJnL0+x0H2riNlyxRnZ8ps7eHyQbfLpF3TVOsvKRbmHnjfFee6Cfdj4NBpdbQnM8RGtr+r4QBHwBF2s6RJGqn3oS8HFvM3r0YpOPDRUS/K+zIwkEkiFd2T+Z+xcatvHx5i1QqmzqOUL89ACkROOSUaYGeEWXkjnqvcZF58QIjQe7RWCIeEvR1SdbOUFSMVnJLvkaSHvZC7WRvxWfnYQBPw456KFE7IH62sl3fzWDa9cE7lZf7Csnb0ryI49SGa6ipGOXyPrXPW2YkjtEe03CN06jy0e0/eFmvXWRvNfLPxu4w4h+cfqCYFjVdbjJ62/tk78ByBtXQKqoqI4t3af15VrNc0lreaS1q5LWsVWo+B2nEr6urYs4PpUhIkbvrqzVQSKccBjCiTtG/70NAWL10YulzScf3Jr34wD/gBGwJQ20A1tqriMAU/8HhdlRFXuyIdmIpdZvuc3TioKPjlHbtu9tONKrCPQ8IBPiwtmif8yww3QR0P6v839HTXi9kHIjz1xCWqe+W8lPJdJ//4LSKOTig== +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/invite-user-to-workspace.api.mdx b/docs/docs/reference/api/invite-user-to-workspace.api.mdx index 9b2dc7827f..6195b4c866 100644 --- a/docs/docs/reference/api/invite-user-to-workspace.api.mdx +++ b/docs/docs/reference/api/invite-user-to-workspace.api.mdx @@ -5,7 +5,7 @@ description: "Assigns a role to a user in an organization." sidebar_label: "Invite User To Organization" hide_title: true hide_table_of_contents: true -api: eJztVk1v4zYQ/SvEnLKAaqdBTzrV3U2xxrZI4Hi3B8cIJtJY4q5EKiSVxBX034sh9WU7SVsU6GlzccT55JvHRzbgMLMQb+DKZKjkn+ikVha2EaRkEyMr/oYYFtbKTFmBwuiChNMCRW3JCKkEKqEn0bNbdasWJrPxrRJCHNjuZCrOrDPvYrHOSSw/CL0TLqfjBBxX4b7QmIqzpXqUjlb0UJN1XWRvTLRyKJVU2UkaIdMo9EglyiISqNKxe7+frtKTNt9shQm92t7g4Te3Ilcb1e/vXusiFmtTk5DB2xd5QitsnSRk7a4uin1XktJI/IqFJaFdTuZJ2i4nSkt9yo/r9fXlc0Ie/VgsQ1q/l1STFUo7keMjiYpMKa3l3TrNXzttSuFyaQUmEyxfTGhIsJ8SZIw2XX89kj1QfeEZRKArMh7aZQoxSD+WOzbeOX03QAQRVGiwJEeGqdWAwpIghiMiQASSqVWhyyECQw+1NJRC7ExNEdgkpxIhbsDtKw63zkiVQQROuoIXppQVyxTaNhpqTUf6nwv90ScLVbYhB1n3i073HHickllJyrEJq6qQie9x/tXyWWpOK6IxuOc2HZWW1yvDWDtJ/svz960GL71DGwFPzYeg2l/tPPhDzsPgNjoszth1C6ouCuBd9ulXPms7huj7r5S4Ayw3XZeTsINz6wt2hutweKFtOachW2llQ98X5+f8cyg+N8MxEqvOGf45yKHKTxcXp4m/YCHTwJ9LPgP/IuvRiFJy3YxemWGhkwPrOKDjuQwrUjnKyEC7PR7WCOVvOjTI8JY2e4skv5O1mNE4+Tf45AVhzdaWD09Ve0DGwfJCG0HinidpBlb0fu8Zy2f3t8xhbEL7nd+EROOIwoReh+JDGMFLxXoXlsGThIEfJblcs6xV2jovYS6HGOZT0bLz5kjD2vkgNHbeTEWnnQd9hAgsmcdeCmtTcFaspJ90+Mydq2w8n1M9SwpdpzPMSDmcoQyOW86R1Ea6vU+yuF5+ov1HwpQMxJvt1OGGCRood+g2ik0lPxED10nlona5Nt2eeq3MQxQjw9RfjXp3+YxlxWhuBmEaCdTpz6Zf8a1JtdNT+iz87sTiegknz4ypyd/tiWde36o3Q3SE2wgXRENPjrD8ebAwb3gIocz57MfZOS/xsEtUkxJBtMRnvmvXWkzvmONum1Esvr+Pvr+PBtlhzZtXBUqvyp6qTacnm4NHkIUI4tNX0SgpbD95yXhV2UaQs1DFG2iae7T02RRty8sPNRmWiW0Ej2gk3ndnNZWW/08h3jG8b3D5bNVp8zvx2qZ6KVGsI49Y1PwFEXyj/QsPPVa6/7H8AWL+8sx7qWw6l/eh2g/+ihtTnNz43HmIWCTMjjd9t5Nb5PrqZg0R3HcPxFKnHGPwiUUSn0K7ugos4BckrzVQoMpqvqRjCDn57y9Mx7di +api: eJztVk1v4zYQ/SvEnLKAGqVBTzrV3U2xxrZI4Hi3B8cIJtLY4q5EKiSVxBX034sh9WU7cVsU6GlzccT55JvHRzbgcGshWcG12aKSf6KTWllYR5CRTY2s+BsSmFkrt8oKFEYXJJwWKGpLRkglUAk9iT6/U3dqZrY2uVNCiD3bvczEmXXmXSKWOYn5B6E3wuV0mIDjKtwVGjNxNldP0tGCHmuyrovsjalWDqWSanuURsgsCj1SibKIBKps7N7vp6v0rM03W2FKb7Y3ePjNLcjVRvX7e9C6SMTS1CRk8PZFntEKW6cpWbupi2LXlaQsEr9iYUlol5N5lrbLidJSn/Ljcnlz9ZKSRz8R85DW7yXTZIXSTuT4RKIiU0prebdO89dGm1K4XFqB6QTLVxMaEuynBBmjTddfj2QPVF/4HCLQFRkP7TyDBKQfyz0b752+HyCCCCo0WJIjw9RqQGFJkMABESACydSq0OUQgaHHWhrKIHGmpghsmlOJkDTgdhWHW2ek2kIETrqCF6aUFfMM2jYaak1H+p8L/dEnC1XWIQdZ94vOdhx4mJJZScqxCauqkKnvMf5q+Sw1xxXRGNxxm45Ky+uVYaydJP/l+XuqwSvv0EbAU/MhqHbXGw/+kHM/uI32izN23YKqiwJ4l336hc/ajiH64Sulbg/LVdflJGzv3PqCneEmHF5oW85pyFZa2dD35cUF/+yLz+1wjMSic4Z/DnKo8tPl5XHiL1jILPDnis/Av8h6MKKMXDejN2ZY6HTPOg7ocC7DilSOtmSgXR8Oa4TyNx0aZHhLuz1Fkt/JWtzSOPkTfPKCsGRry4enqj0g42B5oY0gdS+TNAMrer/3jOWL+1vmMDah/c5vQqJxRGFCb0PxIYzgtWK9C8vgUcLAj5JcrlnWKm2dlzCXQwLxVLRs3BxoWBsPQmPjZio6bRz0ESKwZJ56KaxNwVmxkn7S4TN3rkriuNApFrm2LpjXHJnWRrqdD53dzD/R7iNhRgaS1XrqcMu0DETbdxslppKfiOHqBHJWu1ybbie9QuYhivFgwi9Glbt6wbJiDFeDHI206VRn1a/41qTa6ClpZltSDsXsZg5Hj4upyd/oqedb36o3QzRByyZxjH75HGUM0dCTIyx/HizMFoY+lLk4//H8gpd4xCWqSYkgVeIz37BLLaY3y2G3zSgR319F319Fg9iw0sVVgdJrsadq06nIau/pYyGC5PgtNAoJ24/eL15L1hGwPnDGpnlAS59N0ba8/FiTYZlYR/CERuJDd1Yzafn/DJINw3uCy2eLTpHfibc21UuJYh15wqLmL4jgG+1eed6xvv2P5fcQ81dm3ktl07m8D9V+8BfbmOLonufOQ8QsZXac9F1P7o6b69slRPDQPQtLnXGMwWcWSXwO7eoqsIDfjbzWQIFqW/PVnEDIyX9/AYjHtAM= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-api-keys.api.mdx b/docs/docs/reference/api/list-api-keys.api.mdx index 0454bc09e9..7c98201e1e 100644 --- a/docs/docs/reference/api/list-api-keys.api.mdx +++ b/docs/docs/reference/api/list-api-keys.api.mdx @@ -5,7 +5,7 @@ description: "List all API keys associated with the authenticated user." sidebar_label: "List Api Keys" hide_title: true hide_table_of_contents: true -api: eJzdVMlu2zAQ/RViTi0g2GmPOlVogzZIgAZZTo5hTOixxUQiGXKYxjX078VQsrwU7aHH+iCTs/HNm0dugXEdoZzBJW0izAtYUtTBeDbOQglXJrLCplHV9YV6pk1UGKPTBpmW6ofhWnFNChPXZNnobE6RwuTBPtgqrGP5YJVSKtBLosjq3U2/eF+qu5qUsdq1xq5Hv3t8Is05+4Y4BbsrIEBm8qmuLwTqDUXvbKR5qSrVCEq3yiAv/wQyw4ICnKeA0t7FEkqQ1AV6s5DmoIAw1I1QbuHj2Zn8HVNym7SmGFepUTsQUIB2lsmyhKP3jVBhnJ0+RcnZQtQ1tSgrw9Tm4j4IEjY07Ghl3mTFG09QQuRg7BoKYMONGK77iK4AHUhaWyD/Lf5zH6UqlpwGIy9SHLPQbr6voJyd5nfFaLGpaaCb7yteYWR1H8ea9OZNT+ViiUz/WvZ8LKO+SJmuK3axvRzyWF6SCbQUpQ5UHfFwiPJ3kcC+IoaAmwOWdiFZYKryJgsIOvkV0BLXTmSyJkHhkWsoYTpoJVJ4pRBzuyk04kFvcq/9tmb2sZxOKU1049JygmuyjBM0feBcaugUDG9ykR72N8IlBShn88OAW1FQr5XjsJFY9OaSpDeLreyrxLUL5memFgowot66z5LmjF25nD5QUWVwcong9Bk4conUUWcV7U7KbihO2t53CwVQi0acTNh+Gj0yGeGwP+Zs8mFyJibvIrdoD444Hs8Jvu3++v2PL9YwX6Y3nvoGjRWKMtXbQZIzeB6e79pFlv12+4iR7kPTdWJ+SRREY/MCXjEYfJSJz+ZdsROEyO+ZNjJMrcmL2l+xSb2uTt4zkeV4M76e30HX/QI6lSdv +api: eJzdVE1v2zAM/SsCTxtgxNmOPs3Yiq1ogRX9OKVBwCpMrFaWVYnu6gX+7wNlx00ybIcdl4Mj8UuPj0/aAeM2QrGAC+oiLDNYU9TBeDaNgwIuTWSF1qry6lw9URcVxthog0xr9cNwpbgihS1X5NjoZG4jhdm9u3dl2Mbi3imlVKDnliKrd9fD4n2hbitSxummNm47+ZuHR9Kcsq+J2+D2BQTIQj7l1blAvaboGxdpWahSWUHZbBLIiz+BTLAgg8ZTQGnvfA0FSOoKvVlJc5BBGOtGKHbwcT6Xv2NKblqtKcZNa9UeBGSgG8fkWMLReytUmMblj1FydhB1RTXKyjDVqbgPgoQNjTvamFdZcecJCogcjNtCBmzYiuFqiOgz0IGktRXy3+I/D1GqZMmxGHnVxikLXfd9A8XiNL/PJotrrYV++VbxEiOruzjVpFdvBipXa2T617JnUxn1Rcr0fbaPHeSQxvLcmkBrUepI1REPhyh/Fwm8VcQQsDtgaR+SBKZKb5KAoJdfBjVx1YhMtiQoPHIFBeSjViKFFwoxtdsGKx70JvU6bCtmX+S5bTTaqok8uJeSqdtguEupA9hvhGsKUCyWhwE3optBIcdhE53ozQVJRw5r2ZctV00wPxOhkIERzVZDlrRk3KZJ6SMB5ZYco1wdOL38Ry4ROOqknf1JyQ3ZQbOxyHNM5hmaHDKgGo04mbD+NHlkHsLccMx89mE2F5NvItfoDo44HsoJvt3bpfsf36lxvkyvnHuLxglFierdKMQFPI2PtohL9rvdA0a6C7bvxfzcUhCNLTN4wWDwQSa+WPbZXhAivyfqZJhakxeNv6BtB12dvGIiy+k+fD27hb7/Bc2bJBA= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-application-catalog-presets.api.mdx b/docs/docs/reference/api/list-application-catalog-presets.api.mdx index 876f64815b..ccae5e42f1 100644 --- a/docs/docs/reference/api/list-application-catalog-presets.api.mdx +++ b/docs/docs/reference/api/list-application-catalog-presets.api.mdx @@ -5,7 +5,7 @@ description: "List presets scoped to a template." sidebar_label: "List Application Catalog Presets" hide_title: true hide_table_of_contents: true -api: eJztWN9v2zYQ/leIe1mLaXZW7MnAgAVpu2bt2iBJu4ckSBjpZLOlSJU/0nqG/vfhKMqibVlp0+6tT4bFu++Odx+PvFuB43MLsws4rGspcu6EVhauMijQ5kbU9B9m8EpYx2qDFp1lNtc1FsxpxpnDqpbc4eRSXaqTKMANMsUrLFjNDa/QoWFh4VGpDcPPvKolMs5yb7gjKaOr2rGfL1WlC5Qs19WtUMGXx8wtuGM252WpZcHcAlkpjHXM4J2wQiv2aYGK5Qa5E2rOuLpUvN8LK42uUj/ZCbeW3QiVS1/gNTf5Qtxh8bszHm9oT3HlUhl0wgTvwq4mkIGu0QTY4wJmIIV114mt65w7LvX8OmpABuv9U4xXQEGBGXTOXH/AJWQgKMI1dwvIwOBHT1ZhRg5lYPMFVhxmK3DLmnStM0LNIQMnnKQP5xGMvcQlNE22trK9xc7SR49muWGq5NJu2OJq+aYMHkert1pL5AoIPn5SXkpornpHjlt77LCz19CqQVtrZdES7pODA/rZ5NaZz3O0tvSSnUZhyCDXyqFywZs+xNP3lnRWia+1oaw40VrItW+VopdCOZyjSeJ1FCS2Cf7aV7domC7XLDfovFFYTIJsyb10MDtoMuiyO1uBcFjZXSfaBAyEMSZvLIqvSbfZcu9hUE8TiCYDItsIjwJ9Msi5w7k2cSe92fVWt+13H7gxfDnqz1EP3WRQylB5UhubURS2p+5sh4kJ72xPuSRVgdRNRjAGc11VqIr7kU4T0WGwhI33upWIDoPhHZeeO23ug3q2FhwGskrUNbr7YM6i2A5In0d9+x5zl6j9o82HUupPR211ex7ytptn4ix3fCyj3oiHcvmtEUQab+TDESQhLJAXoRynKLwoBGWJy5MNh8fsbG7tDo39hqP6Lqo3GVjp5w+FOSNdIkQxhpBBqU3FHczAe1GMF3Uq4/u5cYolGlQ5tgTYFBvDfRHT0GRgvHJivGBmgMpX9Eypl24RThMJtOUNMnjP73j8czVm9TSaojC34g8NdKvddJfmaCFLHwHfyrqta23DR7rB0i/ppT1sC3Jhci+5efTcS/mX1eqXN97V3j2GoWTGO+BLtO6/DbZ04avoc9KHlOiuau9+BPd7Bfe4DWeTgQ7aPyL7vSL7JsZzrKQS+FksKoO37I9y8r+Wky94CZ3G1vMpvXcGcjQA0TdbF+EhnhhPXonxidX20Ttv68TfdYO51cUMNd3Uc1Pb3LfAby11320f85NlN/Ruu2Hcfkl3zcaa69Ho7dunTbq+gamDLlnsqwcGEFrhhnWy/9uTJ7tN5jsuRdE6/cyY8Ix+YIdZoONCjnR/Uucbq19z/q725/yVjp1Ek0Fl52Ot3N9oLZ9jT6D9oiEY7JxWu4s0iKdXQWgL3ecEZie3RxTLz24w/yn1KTat+1EufQOvU9RmaH8onrYpGCPbi/Pzkx3Alh8VuoWm+c08NEJh8DKDacIBO42Mm3bcstNVOrRpppGKU8jAornrBjyhPyEsEdLb/l04V9vZdIp+kkvtiwmfo3J8wkUreEUYuTfCLQPI4cnxS1y2L2SYXVylAuFmaHm2KbbODa/FyzBWimOgQ+8W2oh/uzY0zIDaLihEUKhSpyk/DM6xw5PjnfO4sUTHh+eun3fEZci2tt3vlt7xVTg84JBXf6xXKNfrDgoOJr9ODuhTra2ruEpMhIqQFBIWKwnbUxFX/Sn/McNsZ5iRJnRcp7XkQiV9dXsWLtJ6SCGNp4GUu/MAGcy2xpj91JNO9UJbR1Cr1S23+NbIpqHP7fCRWF4Iy29lMn4M86mhqSWNPsjlcFLuuBGkN4yxN/mPTmMVesz2xaA7P2qZ2uz82thsqNOL7oCuoshhnmNoRzvlnWuFNrAuP38+O4em+Q/D7yzM +api: eJztWFFv2zYQ/ivEvazFtDgr9iRgwIy0XbN2rZGk3UMSJIx0stlSpEpSaTxD/304irJoW1batHvLk2Hx7rvj3ccj71bg+NxCeg7TqpIi405oZeEygRxtZkRF/yGFN8I6Vhm06Cyzma4wZ04zzhyWleQODy7UhZoFAW6QKV5izipueIkODfMLTwptGN7xspLIOMtqwx1JGV1Wjv18oUqdo2SZLm+E8r48ZW7BHbMZLwotc+YWyAphrGMGb4UVWrEvC1QsM8idUHPG1YXi/V5YYXQZ+8lm3Fp2LVQm6xyvuMkW4hbz352p8Zr2FFYulEEnjPfO7+oAEtAVGg97nEMKUlh3Fdm6yrjjUs+vggYksN4/xXgFFBRIoXPm6hMuIQFBEa64W0ACBj/XZBVScigBmy2w5JCuwC0r0rXOCDWHBJxwkj6cBTD2GpfQNMnayvYWO0ufazTLDVMFl3bDFlfLd4X3OFi90VoiV0Dw4ZOqpYTmsnfkuLXHpp29hlYN2kori5Zwnx0e0s8mt07rLENri1qykyAMCWRaOVTOe9OHePLRks4q8rUylBUnWguZrlul4KVQDudoongdeYltgr+tyxs0TBdrlht0tVGYH3jZgtfSQXrYJNBlN12BcFjaXSfaBAyEMSRvLIpvSbfZcu9hUM8jiCYBItsIjzx9Esi4w7k2YSe92fVWt+13H7gxfDnqz1EP3SRQSF95YhubURS2p266w8SId7anXJQqT+omIRiDmS5LVPn9SCeR6DBYxMZ73YpEh8HwlsuaO23ug3qxFhwGskpUFbr7YE6D2A5In0d98xEzF6n9o82nQuovR211e+nztptn4ix3fCyjtREP5fJ7I4g0tZEPR5CEsECe+3Ico/A8F5QlLmcbDo/Z2dzaLRr7HUf1Q1BvErCynj8U5pR0iRD5GEIChTYld5BCXYt8vKhTGd/PjRMs0KDKsCXAptgY7quQhiYBUysnxgtmAqjqkp4p1dIt/Gkigba8QQIf+S0Pfy7HrJ4EUxTmVvyhgW61m+7SHC1k8SPge1m3da1t+Eg3WPwlvrSHbUEmTFZLbp68rKX8y2r1y7vaVbV7CkPJDHfA12jdfxts6cI30WfWh5TorqraPQb3RwX3uA1nk4D22o+R/VGRfRfiOVZSCfw0FJXBW/axnPyv5eQrXkInofV8Tu+dgRwNQPTN1rl/iEfGo1dieGK1ffTO2zryd91gbnUxQ0039dzUNvct8HtL3Xfbx/xk2TW9264Zt1/TXbOx5no0evv2aaOub2DqoAsW+uqBAYRWuGGd7P/27Nluk/mBS5G3Tr8wxj+jH9hh5ui4kCPdn9TZxuq3nL/L/Tl/o0Mn0SRQ2vlYK/c3Wsvn2BNov6gPBjuj1e4i9eLxVeDbQncXwezk9ohieecG8x9Tn2LTuh/k4jfwOkVthvaH4nmbgjGyvTo7m+0Atvwo0S00zW/mvhHyg5cUJhEH7CQwbtJxy05W8dCmmQQqTiABi+a2G/D4/oSwhE9v+3fhXJVOJlJnXC60de3yJWlmtRFu6VWns+PXuGzfxZCeX8YC/j5o2bUpts4Ir8RrP0wKw59p7RbaiH+75tNPftrex8dNqELHiZ7OUTnOprPjnVO4sUSHhmeun3KEZUiizdp0MuH+8wEXFCIs/ZEBh7z8Y71CGV73TXB48OvBIX2qtHUlV5EJXwei8sFC/WB76uCqP9uPk8t2chloQod0UkkuVNRNtyfgPK6CFNJwBki5OwWQQLo1vOxnnXSWid4EtVrdcIvvjWwa+tyOHInlubD8RkZDRz+VGppV0sCDXPYn5ZYbQXrDGHuT/+Qk1J6nbF8MuvOjlrHNzq+NzfrqvOgO6CqITLMMfRPaKe9cJrSBddH588UZNM1/bEMpbQ== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-application-catalog-templates.api.mdx b/docs/docs/reference/api/list-application-catalog-templates.api.mdx index abeb9ecb67..630fefbdea 100644 --- a/docs/docs/reference/api/list-application-catalog-templates.api.mdx +++ b/docs/docs/reference/api/list-application-catalog-templates.api.mdx @@ -5,7 +5,7 @@ description: "List application templates available in the catalog." sidebar_label: "List Application Catalog Templates" hide_title: true hide_table_of_contents: true -api: eJztWN9v2zgM/lcEPm2Al/SGewpwwPW67tZttxZtt3toi5axmUSbLHn6kS0L/L8fKDux0qTu1u3e+tRGJj9S5CdK5BI8Th2MLmC/qpTM0UujHVxlUJDLraz4N4zgrXReYCciPJWVQk9O4BylwrEiIbXwMxI5elRmOrjUl/p8LdbgjSmKzFAXiqx4chOsvHkqUBfi9dnxO+HyGZXoRHBUCG9Ebgk9XWoUmr6kDgzECTonbqTOVSjoGm0+k3Mq/vA20A2rtl+EJS8tFZe6c/lJcDQJSnyZkRZUSC/1NAV3rd1CTKwpBWphVALwdCC6faElMVVmjCruwhIWz4xWiwFkYCqyEfCogBEo6fx1YuW6DdT12jHIoEKLJXmynJQlaCwJRnB7l5CB5LR8DmQXkIGlz4E3CaMJKkcZNHGE0RJQL44nEcsvKsYaG6MINdTZekkHpaC+ysBLr3jhqI3d/spezV8tucpoR45xn+/t8Z9NmpyFPCfnOLanrTBkkBvtSfvoTbf94UfHOsvE18pyxLxsLOQmNEqtl1J7mpKFzs2DKHGbq+9COSYrzCQhqSUfrKZiEKUnGJSH0V6dQRf70RKkp9JtO9IkYUconbdST3sj+Y5161suPgzqRQJRZ/CJFklwWv1O+g0tWCpHT1Nj2510ZtdbvW1/tYDW4qLXn4MOus5gomIhSW1sRlG6jr6jLTYm3HMd7ZJkRWLXGcNYyk1Zki7uRzpNRHeDJYy8161EdDcYzVEF9MbeB3W4FtwN5LSsKvL3wZy1YlsgXR7N+CPlPlH719hPE2W+HDTV52XM23aembPosS+jwcqHcvm9lUyaYNXDERQjzAiLWCxTFCy4phuN6mTD4T47m1ubk3U/cVQ/tOp1Bk6F6UNhzliXCVH0IWQwMbZEDyMIQRb9hZ1L+d3cOKUJWdI5NQTYFOvDfdWmoc7ABu1lf8HMgHQo+dVRLfwsniYWaMobZPAR59j+uOqzetqa4jA34g8NdKNdry7O3kKWXtE/y7pbV9uGj3yLpSvpxb3bFuTS5kGhffIyKPXaGf3sOPgq+KewK5ntHfA9WvffBrd04Yfoc9KFlOmuq+Afg/urgnvUhLPOwETtx8j+qsget/HsK6kMftYWlZ237GM5+V/LyXe8hE5pLvm6fsHvnR052gHRNVwX8SGeGE9eie0Ta9Usbr2uO6XzpAXc7Gb+ClL5Z1LH7jIPzpsybb71RleeoxZj2uheB+IQ89laReRo+ckuUNx8osVNxv9wE55FA9ycx0a8pazwM/SbrTH3VbzIOxH0tTKOBr1hvjsgLmkSd8wbzGQ1S+h2zKbY2O/Pn2+3nx9QyaKJxKG18XH9wN6zII9S9fSEyuQbX3/kVF7dzYO3pu0v6gxKN+1r8P4h53CakOpu0RgMcc5fV9drFE8viNgs+q8JzFYiDziWX/3OZKcHgmPTuN/KpS/jdYqaDN0dihdNCvqY9er8/GQLsOFHSX5meOoyje1RhX4GIximTB625BquyTWEDBzZ+Wr6EtsTVpIxj83PmfeVGw2HFAa5MqEY4JS0xwHKRvCKMfJgpV9EkP2Toze0aB7IMLq4SgXiKWsItSm2TgJWkjv5bDUJ2g9+Zqz8tupC4xioaYJiqKSemDS3+9E5sX9ytHXGNj7xOcHcd+OO9jNkt7bd7Zaf8WU8JeAJyz/XXzip6wYK9ga/DfZ4qTLOl6gTE/GUJ+VBtPVB3FkOl92BfpxJPmgm2fKKD/KwUih10oc3p+QirZScgTZ4kE7LMuBTPTPOs8JyOUZH762qa15uxpJM/kI6TkM3mIxTq13zTB6IsGPxAM3RStaL52XV5EfARn8/zyl2iiutrdrOKOsa8PfhOdT1f/jl+TA= +api: eJztWN1vEzkQ/1eseQJpSXroniKddL1SjgJHq7ZwD23VTnYnicFrL/4IhGj/99N4N1mnSbdQuLc+tfHOl3/zm7HHS/A4dTC6gP2qUjJHL412cJVBQS63suLfMIK30nmBnYjwVFYKPTmBc5QKx4qE1MLPSOToUZnp4FJf6vO1WGNvTFFkhrpQZMWTm2DlzVOBuhCvz47fCZfPqEQngqNCeCNyS+jpUqPQ9CUNYCBO0DlxI3WuQkHXaPOZnFPxh7eBbli1/SIseWmpuNRdyE+Co0lQ4suMtKBCeqmnqXHX+i3ExJpSoBZGJQaeDkS3L7QkpsqMUcVdWMLimdFqMYAMTEU2GjwqYARKOn+deLlugbpeBwYZVGixJE+Wk7IEjSXBCG7vEjKQnJbPgewCMrD0OfAmYTRB5SiDBkcYLQH14ngSbflFxbbGxihCDXW2XtJBKaivMvDSK144arHbX/mr+aslVxntyLHd53t7/GeTJmchz8k5xva0FYYMcqM9aR+j6bY//OhYZ5nEWllGzMvGQ25Co9RGKbWnKVnowjyIEre5+i6UY7LCTBKSWvLBaioGUXqCQXkY7dUZdNiPliA9lW47kCYJO6B03ko97UXyHevWt0J8mKkXiYk6g0+0SMBp9TvpN7RgqRw9TY1td9K5XW/1tv/VAlqLi954DjrTdQYTFRtJ6mMTRek6+o622Jhwz3W0S5IViV1nbMZSbsqSdHG/pdNEdLexhJH3hpWI7jZGc1QBvbH3mTpcC+425LSsKvL3mTlrxbaMdHk044+U+0TtX2M/TZT5ctB0n5cxb9t5Zs6ix76MBisfyuX3VjJpglUPt6DYwoywiM0ytYIF93SjUZ1sBNznZ3Nrc7LuJ0r1Q6teZ+BUmD7UzBnrMiGKPgsZTIwt0cMIQpBFf2PnVn43N05pQpZ0Tg0BNsX67L5q01BnYIP2sr9hZkA6lHzrqBZ+FquJBZr2Bhl8xDm2P676vJ62rhjmRvyhQDfa9erg7G1k6RH9s6y7dbRtxMinWLqSHty7fUEubR4U2icvg1KvndHPjoOvgn8Ku5LZngHfo3X/aXBLF36IPicdpEx3XQX/CO6vAveogbPOwETtR2R/FbLHLZ59LZWNn7VNZecp+9hO/td28h03oVOaSz6uX/B9Z0eOdpjoBq6LeBFPnCe3xPaKtRoWt27XndJ5MgJuTjN/Ban8M6njdJkH502ZDt96YyrPUYsxbUyvA3GI+WytInK0fGUXKG4+0eIm4394CM+iAx7O4yDeUlb4GfrN0ZjnKl7knQj6WhlHg16Y7wbEJUPijvcGM1m9JXQ7Zlfs7Pfnz7fHzw+oZNEgcWhtvFw/cPYsyKNUPTOhMvnG1x+pyqu7efDWtPNFnUHppn0D3j/kHE4TUt0tGsEQ5/x1dbxG8fSAiMOi/5qY2UrkAWP51e9MdloQjE0TfiuX3ozXKWoydDcUL5oU9DHr1fn5yZbBhh8l+ZnhV5dpHI8q9DMYwTBl8rAl13BNriFk4MjOV68vcTxhJRnz2PyceV+NhkNlclQz43zz+Yo182ClX0TV/ZOjN7RorsUwurhKBWJtNTTaFFtDj5Xk+T1bvf/sBz8zVn5bzZ7x8acZfSJAUk9MmtH9KWmPYv/kaKuyNj5xdWDuu0eO9jNkyWbdaDjEuDxAyRBRGWsDPGH55/oLp3I9NsHe4LfBHi9VxvkSdeIi1nbSFETbFcSdTXDZlfHjS+SDXiJbXnH5DiuFUifTd1MbF2l/5Ay04EH6RpYB1zKznhWWyzE6em9VXfNy8xjJ5C+k4zR0z5HxrWrXKyY/g3BgsYDmaCXrxXpZjfbRYKO/n+cU58OV1lZHZyvryv/78Bzq+j+oSfXR sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-application-catalog-types.api.mdx b/docs/docs/reference/api/list-application-catalog-types.api.mdx index acdb5fdfbd..edb01b9ac9 100644 --- a/docs/docs/reference/api/list-application-catalog-types.api.mdx +++ b/docs/docs/reference/api/list-application-catalog-types.api.mdx @@ -5,7 +5,7 @@ description: "List shared catalog types." sidebar_label: "List Application Catalog Types" hide_title: true hide_table_of_contents: true -api: eJztVU1z2zYQ/SuY7cWeoUi1R56qSZvWccf21O5J0tgQuRKRgAACLNyoGv73zoKURCmaJM25ukha7Ofb3bc7ILkJUM5h5pxWlSRlTYBlBjWGyivH/6GEP1QgERrpsRaVJKntRtDWYcgXZmHejCVCehQeY5ArjeLd4/3d5LFqsJViFZWuldmIlbbVhyA8rtGjqbAWa2/bhSFsnZaEIiSDIK7W1gv8JFunUby0GILc4EsmXpy3raPJ3uDlOhdP++AL41HWE2v0VkhTi1f0QVkj/lbUCGpQOG/rWFG+MI+ISTIfVy82UdW4vCoO+RXSqUmSFnKk+MOAxHUOGViHPolvaihBq0DPI93nQfU5QQQZeAzOmoAByh38NJ3y1ynkj7GqMIR11OLPQRkyqKwhNMTqI/fF+8A2O+iB41/Oc0ak+giVjb0Rx4cSlCHcoIcMSJFmyZukcd73u9iu0Au7HnrrkaI3WOdJcy2jJiinXQZ9XeUOFGEbPk/AyBZT0mZ7v4ZyfsgkkFdmA112kJioNXTLY2p3bNudpfZ9rn4Zuegy+IDbESiD/VH7FresxeA+H5GVda3YgdQPJyV+Qz572E9SZITHkpW1GqVJosuxoFK+ilr6q7dR63fBmsl9JBfpGrK9F7t6jxUlJ0NLvsVKei+3X0TwzBa684hHVVYT/e5Dd0HP48eoPNZMP9yJU6RHMUfbOVANL/sodJ/20eBp2LKzjer5iylJfJ2SVluxp5f/REQXS/1yJWG04Bd4167POBc6/mTQIjWW6WaDHMRJaqCEE44qBssiWRaQQUDPjJgGNXrdG6jU8/5vQ+RCWRQY80rbWOdyg4ZkLlWvuGQfVfSKtsnJ7OHmFre/o6zRQzlfjhUSzP16nKodBkw6dZt63zMEzCI11qt/UvqQgWIYmt6Ka1ZmbZP5HtGUnJg93HwG3skTE6es6MhFwzNkZ2Ufq4UMsJWKHwll+/PhhSdvuCpQwjT/MZ+yyNlArTSjEKl9o56L/aW8OKC7I7v/f3C/enCH+SH8RIXTUiVCT63cDZswH59IRnswh/25yoBZprGBWHm3W8mAf3nddSz+GNHzgC8zeJVeMbhpurP9NPLspwMCs6pCxxv4KnXsh/rsNPNOHLb1t1+foOv+BYqzU88= +api: eJztVVFz2zYM/is87CW5ky1vj3qar1u3NLskt2RPti+hJdhiS5EsCWbVfPrvO1CyLbu+tuvz/GIbxEcAH4CPOyC5DVAsYO6cVqUkZU2AVQYVhtIrx/+hgD9UIBFq6bESpSSp7VZQ6zBMl2Zp3owtQnoUHmOQa43i3eP93eSxrLGRYh2VrpTZirW25YcgPG7QoymxEhtvm6UhbJyWhCIkQBBXG+sFfpKN0yheGgxBbvElEy/O28bRZA94uZ6Kp33wpfEoq4k1uhXSVOIVfVDWiL8V1YJqFM7bKpY0XZpHxGRZjKsX26gqXF3lh/xy6dQkWXM5cvxhYOJ6ChlYhz6ZbyooQKtAzyPf58H1OVEEGXgMzpqAAYod/DSb8dcp5Y+xLDGETdTiz8EZMiitITTE7qPr8/eBMTvoieNfznNGpPoIpY09iONDAcoQbtFDBqRIs+VN8jjv+11s1uiF3Qy99UjRG6ymyXMjoyYoZl0GfV3FDhRhEz5PwMgGU9Kmvd9AsThkEsgrs4UuO1hM1Bq61TG1O8Z2Z6l931W/jK7oMviA7YiUAX/0vsWWvZjc5yOzsqoUXyD1w0mJ35DPnvaTFJnhsWVtrUZpkulyLCiVL6OW/upt1PpdsGZyH8lFuoZsf4tdv8eS0iVDS74FJb2X7RcZPMNCdx7x6Mpuot996C74efwYlceK5Yc7ccr0KOZoOwep4WUfhe7TPgKehi0726hev1iSxNclad2Kvbz8JyG6WOqXKwmjBb+gu3ZzprnQ8SeDBqm2LDdb5CBOUg0FnGhUPiDzhMwhg4CeFTENavS6B6jU8/5vTeSKPNe2lLq2gfrjFSPL6BW1CTp/uLnF9neUFXooFquxQyK3X4pTt8NYSaduU8d7XYB5pNp69U9KGjJQXHzdo7hSZTY2wfc8btGQFPOHm88oOzliuZQlHRVoOIZsVGwo8lwm81QqpggbqfiQUDY/H0543oa3BAqYTX+cztjkbKBGmlGI1LRRp8X+fbw4lrujpv//zH71mR3mh/AT5U5LlWQ8tXI3zP9i/DAy2wMc9o9UBqwtPNnsvNutZcC/vO46Nn+M6HnAVxm8Sq+Y3DTd2X4aefbTswHzskTHe/cqdeyH+uxB5p047Ohvvz5B1/0Lou9QcA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-evaluator-catalog-presets.api.mdx b/docs/docs/reference/api/list-evaluator-catalog-presets.api.mdx index da56f632ce..88e562979f 100644 --- a/docs/docs/reference/api/list-evaluator-catalog-presets.api.mdx +++ b/docs/docs/reference/api/list-evaluator-catalog-presets.api.mdx @@ -5,7 +5,7 @@ description: "List presets defined against one evaluator template." sidebar_label: "List Evaluator Catalog Presets" hide_title: true hide_table_of_contents: true -api: eJztWEtz3DYM/iscnJoZZdfN9KRTdxwncZMmHttJD7bHpiVolwlFKnxss93Rf++Aoh77khMnPTUnryngAwh8BAmswfG5hfQKTpZceu60sXCTQI42M6JyQitI4Y2wjlUGLTrLciyEwpzxORfKOqYVMmyVmcOyktzh5Fpdq1lUYsIyzhQvMWf0ry5YxQ0v0aFhpIqWJJ8WQsoe+Vq5BfaA7L1FRisGnTfkwd0nXN0xp1mBLlswzmyFmShEFs1eq6Xg7O7lySWbZtxxqefTFs5O1+3P20+4qqdxe9N18yMs3k0gAV2h4RSI0xxSkMK62267txH2NmpDAt3GKKproE1DCkNbkICgqFbcLSABg5+9MJhD6ozHBGy2wJJDuga3qkjXOiPUHBJwwklauIxg7DWuoK6TzopQmfQ53nKTLcQS89bSZ49mtWGq4NJu2OJq9a4IHker91pL5AoIPi4pLyXUN70jp409Nmvt1fTVoK20smgJ99nREf3Z5NOFzzK0tvCSnUdhSCDTyqFywZuqkiILUZ9+tKSzHvhaGcqJE42FTPtGKXoplMM5mkG8joPENqnf+vIeTeBiZLZQ7C7+DpnPseBeOkiP6gTaDKdrEA5Lu+tIk4Q9oYwJHIvkW9Ktt1x8HNTzAUSdABFuhEuBQglk3OFcm7iT3my31W377QI3hq9G/TnuoesEChnqzdDGZhSF7emb7rBxwD3b026QqkDsOiEYg5kuS1T5w0jnA9H9YANGPujWQHQ/WFc/HoLqivIBIKtEVaF7COYiiu2A9HnU9x8xcwO1v7T5VEj993FT4V6EvO3mmTjLHR/LqDfisVx+bwSRxhv5eARJCAvkeSjJQxSe54KyxOXZhsNjdja3tkRjv+OofojqdQJW+vljYS5IlwiRjyEkUGhTcgcpeC/y8cJOpfwwN86xQIMqw4YAm2JjuK9iGuoEjFdOjBfMBFD5kh4n1cotwmkigaa8QQIf+ZLHf27GrJ5HUxTmRvyxgW606/biHC1kw4fA97Ju62rb8JFuseHK8OLebwsyYTIvufnlhZfyD6vV03feVd49gX3JjHfA12g9fBts6cI30eesDynRXVXe/QzujwruaRPOOgEdtH9G9kdF9l2M51hJJfCLWFT23rI/y8l/Wk6+4iV0jktB1/Vzeu/sydEeiL7hugoP8YHx7mkXH1hnob/YeVkPvO1azK0+JrTVfT99qE/nfSs9ut39jtlBo7Zp/0QtUeoKWaEN44waZGqqYmfcukM2yepvz57t9oMfuBR5eDCzE2PCa/eRzWCOjgs50qRJnW18/ZZjcnM4OW90fPDXCZR2PtZx/YnW8jn2mT4sGoLBLulre98F8WHFDt2b+zKA2cnoMcXyi9ub9SFDKTaN+1Fu+FTtUtRk6HAonjcpGKPYq8vLsx3Ahh8luoWmQcs89CthRpLCtOuY7NdPciABi2bZTmJCEwFTXomQ3ObfhXOVTadT9JNMap9P+ByV4xMuGsEbwsi8EW4VQGZnp69x1TxjIb26GQqE8t2wbFOsywyvxOsw/4nzmpl3C23EP22vGIY1TasS4idUoYcJnwXn2OzsdOcUbnyiw8Mz1w8l4mdItrbd75Ye22U4OuCQl793XyjTXZsDR5NfJ0e0VGnrSq4GJsKQsCseLFYPdqBsrfsT/v8eL0Zq0AGdVpILNWh4G/ZfQc9+CKMaMkWqrTFIIN2aMPYDSTrFC20dAa3X99zieyPrmpabuSDxOheW38vBZDCMjfYNFEM8IYVwNpbcCNLbj3Ew4b+cx6rzhB2KQHti1Gpos/VrY7OhLi/aI7mOIrMsw9Altso71whtoCs3L08uoa7/BczsAqQ= +api: eJztWEtz1DgQ/iuqPkGVyWSpPfm0UyFAFhZSebCHJJUodntGIEtGkmcZpvzft1qWbc3LgcCellMmcvfXre5PLXWvwPGZhfQKjhdc1txpY+EmgRxtZkTlhFaQwlthHasMWnSW5VgIhTnjMy6UdUwrZNgpM4dlJbnDg2t1raZBiQnLOFO8xJzRv7pgFTe8RIeGkSpaknxWCCkH5Gvl5jgAskuLjFYMutqQB3efcHnHnGYFumzOOLMVZqIQWTB7rRaCs7tXxxdsknHHpZ5NOjg7WXU/bz/hspmE7U1W7Q+/eHcACegKDadAnOSQghTW3fbbvQ2wt0EbEug3RlFdAW0aUohtQQKColpxN4cEDH6uhcEcUmdqTMBmcyw5pCtwy4p0rTNCzSABJ5ykhYsAxt7gEpom6a0Ilck6x1tusrlYYN5Z+lyjWa6ZKri0a7a4Wr4vvMfB6r3WErkCgg9LqpYSmpvBkZPWHpt29hr6atBWWlm0hPv88JD+rPPpvM4ytLaoJTsLwpBAppVD5bw3VSVF5qM++WhJZxX5WhnKiROthUzXrVLwUiiHMzRRvI68xCap39XlPRrPxcBsodhd+O0zn2PBa+kgPWwS6DKcrkA4LO22I20SdoQyJHAsku9It9lw8XFQLyKIJgEi3AiXPIUSyLjDmTZhJ4PZfqub9rsFbgxfjvpzNEA3CRTS15vYxnoUhR3om26xMeKeHWgXpcoTu0kIxmCmyxJV/jDSWSS6Gyxi5INuRaK7wfr68RBUX5T3AFklqgrdQzDnQWwLZMijvv+ImYvU/tbmUyH1P0dthXvp87adZ+Isd3wso7URj+XypRFEmtrIxyNIQpgjz31JjlF4ngvKEpenaw6P2Vnf2gKN/YGj+iGoNwlYWc8eC3NOukSIfAwhgUKbkjtIoa5FPl7YqZTv58YZFmhQZdgSYF1sDPd1SEOTgKmVE+MFMwFUdUmPk2rp5v40kUBb3iCBj3zBwz83Y1bPgikKcyv+2EC32k13cY4Wsvgh8KOs27ja1nykWyxeiS/u3bYgEyarJTdPXtZS/mm1eva+dlXtnsKuZIY74Fu0Hr4NNnThu+hzOoSU6K6q2v0K7s8K7kkbziYB7bV/RfZnRfZ9iOdYSSXw81BUdt6yv8rJf1pOvuEldIYLQdf1C3rv7MjRDoih4bryD/HIeP+0Cw+sU99fbL2sI2/7FnOjj/Ft9dBP7+vT+dBKj253t2M2atTW7R+rBUpdISu0YZxRg0xNVeiMO3fIJln9/fnz7X7wA5ci9w9mdmyMf+0+shnM0XEhR5o0qbO1r99zTG72J+etDg/+JoHSzsY6rr/QWj7DIdP7RX0w2AV97e47Lx5XbN+9uS8RzFZGjyiWX9zOrMcMpdi07ge5+Knap6jN0P5QvGhTMEax1xcXp1uALT9KdHNNg5aZ71f8jCSFSd8x2W+f5EACFs2im8T4JgImvBI+ue2/c+eqdDKROuNyrq1rP9+QZlYb4ZZedXp68gaX7eMV0qubWMAX7ZZb62J9Pngl3vipT5jSTGs310Z87TpEP6JpGxQfNaEKHad5OkPlOJuenmydvbVPdGR45oZRRPgMSbRZm04m3C8fcEEhwtIfGHDIyz/6L5TfvrmBw4PfDg5pqdLWlVxFJvxosC8ZLNQMtqdYrYZz/f8eKgZq0LGcVJILFbW5LeevYOA8+AENmSLVzhgkkG7MFYcxJJ1dIjQBrVb33OKlkU1Dy+00kHidC8vvZTQP9MOiXWNEH09IwZ+NBTeC9HZj7E34k7NQa56yfRHoToxaxjY7v9Y266vxvDuSqyAyzTL0vWGnvHV50Ab6IvPq+AKa5l8V3P82 sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-evaluator-catalog-templates.api.mdx b/docs/docs/reference/api/list-evaluator-catalog-templates.api.mdx index 2984b7a60e..aefbb4753e 100644 --- a/docs/docs/reference/api/list-evaluator-catalog-templates.api.mdx +++ b/docs/docs/reference/api/list-evaluator-catalog-templates.api.mdx @@ -5,7 +5,7 @@ description: "List evaluator templates from the catalog." sidebar_label: "List Evaluator Catalog Templates" hide_title: true hide_table_of_contents: true -api: eJztWEtv2zgQ/ivEXLYFtHY22JOBBTZI223abhPk0T0kQUxLI5sNRap8uPUa+u+LoWSJfilt0r3llFic+WY483HImSU4PrUwuobXcy49d9pYuE0gQ5saUTqhFYzgg7CO4UqAOSxKyR1alhtdMDdDlnLHpZ4ObtSNumyXuUE2kR5LI5SzzM24YzXyBBlXHeQvls24yiSaG3V1fpKwdxenH5lNZ1hwmzCuMpZhzr10LNUqF1NvOPk2YGfc2hs1FiqVPsM7btKZmGP2hzMex8xp1qywDEuDKXeYdf4P2JVF8v9GGXTeKMzY+B4XY/ZVuBkbD5ttDVuN4XL17909LqphadCis8PxjXKaSYqTcJY1nweQgC6x9vUkgxGQxF277bsG/67FhwRKbniBDg2lZQmKFwgj2NwgJCAoNV88mgUkYPCLFwYzGOVcWkygDh6MlsDV4jQPWG5REtZEa4lcQZW0n5SXEqrbBJxwkj6cNGE7WtmraNWgLbWyaAn38OCA/qxT5cKnKVqbe8nOG2FIINXKoXLBm7KUIg0RGX62pLOMfC0NxcuJ2kKqfa3UeCmUwyka6Nw8DhKbfP3oiwkapvOIqkKxcftrPAg6gVEwOqgS6DIwWoJwWNhtd+pU7AiodUaoaW88P5JuteHo46BeRRBVAve4iELU6HfS73FBUsT8qTbNTjqz7VY37a8+cGP4otef4w66SiCXoaDENtajKGxH4tEWJyMG2o58UbICvauEYAymuihQZQ8jnUeiu8EiXj7oViS6G6w94Q9BtVV3D5BVoizRPQRz0YhtgXR51JPPmLpI7R9t7nOpvx7XNehNyNt2nomz3PG+jHojHsvlKyOINN7IxyNIQpghz0LJjFF4lgnKEpdnaw732Vnf2hyNfcJR/dSoVwlY6aePhbkgXSJE1oeQQK5NwR2MwHuR9Zd3Kuj7uXGOORpUKdYEWBfrw33bpKFKwHjlRH/BTACVL+j1US7cLJwmEqjLGyTwmc958+O2z+p5Y4rCXIs/NtC1drW6PnsLWXxRP5V1Gxfcmo90l8Vf4ut7ty1IhUm95ObFGy/lO6vVr6feld69hF3JbO6A79F6+DbY0IUfos9ZF1Kiuyq9ew7uzwruSR3OKgEdtJ8j+7Mie9rEs6+kEvhFU1R23rLP5eR/LSff8RI6x7mg6/oVvXd25GgHRNd2XYeHeGS8fdo1D6xVW7z1tu5ULqM2cL2jacFWnXbU2byIWuycJAxyJ9S0a6/ty0FvAPa5aqMWbsMfNUepSwwGed346nzbObJLln8/PNzuFT9xKbLwjGavjQlv4Ec2ihk6LmRP6yZ1urb6I4fndn/CPuimDagSKOy0rw/7G63l0yj7+0VDMNglra5uwSAe1/HQ07lvEcxWVo8plt/czszHvKXY1O43cvEDtk1RnaH9oXhVp6CPZm8vL8+2AGt+FOhmmgYk09DFlNzNYATDjsE7RjGQgEUzXw1KQg8BQ16KkMX658y50o6GQ/SDVGqfDfgUleMDLmrBW8JIvRFuEUCOzk7e46J+xcLo+jYWCNW7ptO6WJsCXgpqt5PV0ObIu5k24t9VqxgmNnWnEgIlVK7jzB4F59jR2cnWgVtbolPCU9fNJJplSDa23e2W3tpFOCPgkBd/tiuU0rbLgYPBb4MD+lRq6wquIhNhCNjVoaZUsL01a9kd5ucB4hMGiA236CgPS8mFihrm+pxcQ3dOIIx6yCbEQ60E6FTPtHUkvlxOuMUrI6uKPtczRKJ/JiyfyGiKGIZLu4aPZJDcCkdozo0gvXBiVr14AKz1j9IUQ0O30tqq7YTS1oC/Xl9CVf0HaUnhag== +api: eJztWN1v2zYQ/1eIe1kLaHZW7EnAgAVpu6btmiAf3UMSxLR0stlQpMoPt56h/304Spbo2FbatHvLU2Ly7nenux+PvFuB4zML6RW8WnDpudPGwk0COdrMiMoJrSCF98I6hmsB5rCsJHdoWWF0ydwcWcYdl3o2ulbX6qLb5gbZVHqsjFDOMjfnjjXIU2Rc9ZC/WDbnKpdortXl2XHC3p6ffGA2m2PJbcK4ylmOBffSsUyrQsy84eTbiJ1ya6/VRKhM+hxvucnmYoH5H854nDCnWbvDcqwMZtxh3vs/YpcWyf9rZdB5ozBnkztcTtgX4eZsMm4/a9xpjFfrf2/vcFmPK4MWnR1PrpXTTFKchLOsXR5BArrCxtfjHFIgidvus29b/NsOHxKouOElOjSUlhUoXiKkcP8DIQFBqfns0SwhAYOfvTCYQ1pwaTGBJniQroCr5UkRsNyyIqyp1hK5gjrplpSXEuqbBJxwkhaO27Adru3VtGvQVlpZtIT74uCA/mxS5dxnGVpbeMnOWmFIINPKoXLBm6qSIgsRGX+ypLOKfK0MxcuJxkKmfaPUeimUwxka6N08ChL3+frBl1M0TBcRVYVik+7XZBR0AqMgPagT6DOQrkA4LO22O00qdgTUOiPUbDCeH0i3vufo46BeRhB1Ane4jELU6vfS73BJUsT8mTbtl/Rmu0+9b3+9wI3hy0F/jnroOoFChoIS29iMorA9idMtTkYMtD35omQFetcJwRjMdFmiyh9GOotEd4NFvHzQrUh0N1h3wh+C6qruHiCrRFWhewjmvBXbAunzqKefMHOR2j/a3BVSfzlqatDrkLftPBNnueNDGfVGPJbLl0YQabyRj0eQhDBHnoeSGaPwPBeUJS5PNxwesrP5aQs09geO6sdWvU7ASj97LMw56RIh8iGEBAptSu4gBe9FPlzeqaDv58YZFmhQZdgQYFNsCPdNm4Y6AeOVE8MFMwFUvqTXR7V083CaSKApb5DAJ77g7Y+bIatnrSkKcyP+2EA32vX6+hwsZPFF/aOsu3fBbfhId1m8El/fu21BJkzmJTfPXnsp31qtfj3xrvLuOexKZnsHfIvWw7fBPV34Lvqc9iEluqvKu6fg/qzgHjfhrBPQQfspsj8rsidtPIdKKoGft0Vl5y37VE7+13LyDS+hM1wIuq5f0ntnR452QPRt11V4iEfGu6dd+8Bat8Vbb+te5SJqAzc7mg5s3WlHnc2zqMUuSMIgd0LN+vbaPh8NBmCfqzZq4e75oxYodYXBIG8aX11sO0d2yfLvL15s94ofuRR5eEazV8aEN/AjG8UcHRdyoHWTOtvY/Z7Dc7M/Ye912wbUCZR2NtSH/Y3W8lmU/f2iIRjsgnbXt2AQj+t46Onc1whmK6tHFMuvbmfmY95SbBr3W7n4AdulqMnQ/lC8bFIwRLM3FxenW4ANP0p0c00DklnoYiru5pDCuGfwjlEMJGDRLNaDktBDwJhXImSx+Tl3rkrHY6kzLufaumb7hjQzb4RbBtXD0+N3uGzerpBe3cQCoWY3JNoU6wLPK0FNdrIe1Rx6N9dG/LtuEMOcpulPQniEKnScz8MZKsfZ4enx1jHb2KKzwTPXTyLabUiij7XpeMzD8ogLChGW4WSAQ17+2e1QIrveBg5Gv40OaKnS1pVcRSbC6K+vPm2BYHsr1ao/wk9jwx8YG7bcogM8riQXKmqTm9NxBf3pgDDgIZsQj7ISoLNMvCfx1WrKLV4aWde03EwOif65sHwqo9lhGCntGjmSQXIrHKEFN4L0wolZd+ABsNE/zDIMbdxaa6uiE0p38v96dQF1/R8aSt4L sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-evaluator-catalog-types.api.mdx b/docs/docs/reference/api/list-evaluator-catalog-types.api.mdx index f968f25050..7d77191866 100644 --- a/docs/docs/reference/api/list-evaluator-catalog-types.api.mdx +++ b/docs/docs/reference/api/list-evaluator-catalog-types.api.mdx @@ -5,7 +5,7 @@ description: "List the JSON schema types the evaluator catalog understands." sidebar_label: "List Evaluator Catalog Types" hide_title: true hide_table_of_contents: true -api: eJztVU1vGzcQ/SvEXNoCm5Xa454qpG7ruLCN2j5JgjPaHWmZUiRDDuWqwv73YrirzxhBknNOWpFv5r355A4YVxGqKVxt0CRkFyLMC2go1kF71s5CBX/pyIpbUu8e7m5VrFtao+Ktp5hPaW+qamQ0bqWSbShERtvEcmZn9jFjMZCKjKxrtSbGBhlVbLX31KgXzW125oNrUs2leoqkuNVRvbRkZzaQ+NR2pfBA83StXFAbNLpBlitukRUqprU3yPRD3IvVcWZj8t4FpqZUD0SZ7Bi0WiXdkFq6oFr3ki/3LIHEV5xZdipFCm/ci6XmJGoMrJdYcyyhAOcpoOTtuoEKjI78fEA+Dy6fc+6ggEDROxspQrWDX8Zj+TlP/UOqa4pxmYz6ewBDAbWzTJYFjt4bXWfG0YcoNjvog5YvH0QP656hdqk3En6oQFumFQUogDUbOXmbEZf1v03rBQXllkPRtVXv89f7MmOXmAxDNe4K6COrdqCZ1vFTCRbXlGXb7d0SqulBS2QpLnTF4cQmY6CbH8Xdim13Ie7bXP124qIr4B/anqRlsD+ib2grKEnv8zG32DRaHKC5PwvxC/TsE38mUXJ8erJwzhDafPQ6F9Q61Mlg+PH3ZMy76Oybu8Q+8U9Q7L24xQeqOTsZSvIlVhgCbj+bwQtb6C4Zj1CBqYc+b90ruEAfkw7UyBqSSpxn+oTzMK5v+zmStXJC3Is+wh+HKTtv5m/ZYa/K/pyqeDKs5/RXdkPG+X7VoJIFIYO1Z82KhK8TyjVx62SPrEgYPXILFYwOYuNosBtluxEUEClsKMTcfykYgaPXuZT935bZx2o0olTWxqWmxBVZxhJ1D5yLjzoFzdvsZHJ/fUPbPwkbClBN56eAXNS+689hh75Br29ySfvBh0ni1gX9X15YUICWnLS9lUSs7dJl8yG5kyxOTe6vP8nk2ZVsRKz5uGKGayguwj5GCwXQGrVcMuH618ONtJTksKcZlz+XYznyLvIa7QlFfhcP5VdD/dWrfbc7Lu3v7+lXvKdDHzH9yyNvUOd9nUu6G+ZhCsd5kE7oaWD/FhUgK6R1kQW62y0w0lMwXSfHHxMFafN5ARsMGhfSdNN5V+x7UiYgvw4wqWvyMoVC1rf2xcsrk3GY2D+uHqHr/gdCiUn+ +api: eJztVU1vGzcQ/SvEXNoCG0ntcU8VUrd1XNhGbZ8kwRntjrRMKZIhh3JVYf97MdzV6iNGkOSck1bDN/OGbz64B8Z1hHIGV1s0CdmFCIsCaopV0J61s1DCXzqy4obUu4e7WxWrhjaoeOcpZisdXFWFjMatVbI1hcho6zia27l9zFgMpCIj60ptiLFGRhUb7T3V6kVzk4P54OpU8Ug9RVLc6KheGrJzG0hiartWONA8XSsX1BaNrpHliBtkhYpp4w0y/RAPyeo4tzF57wJTPVIPRJnseGm1TromtXJBNe4lHx5YAkmsOLfsVIoU3rgXS/XJrTGwXmHFcQQFOE8BRbfrGkowOvLzgHzuQz5n7aCAQNE7GylCuYdfJhP5OZf+IVUVxbhKRv3dg6GAylkmywJH742uMuP4QxSfPXSXli8fJB/WHUPlUuck/FCCtkxrClAAazZieZsRl/W/TZslBeVWfdG1Ve/z1/tRxq4wGYZy0hbQ3azcg2baxE9TsLihnLbd3a2gnA25RJbiQlsMFpuMgXZxTO5WfNuL5L4t1G8nIdoC/qHdiSy9/xF9QztBibzPR22xrrUEQHN/dsUvyOcg/FmKovGpZemcIbTZ9DoXVDpUyWD48fdkzLvo7Ju7xD7xT1AcorjlB6o4B+lL8iVeGALuPqvghS+0l4xHqMDUQ6db+wou0MekA9WyhqQS50qfcA7j+rabI1krJ8Rd0kf4Yz9l5838LTvs1bQ/l1U8GdZz+iu7JeN8t2pQyYKQwTqw5oyErxXKDXHjZI+sSRg9cgMljIdk47j3G2e/MRQQKWwpxNx/KRiBo9e5lN3fhtmX47FxFZrGRe6OF+JZpaB5l12n99c3tPuTsKYA5WxxCsil7Hr9HDZ0C3p9kwvZjTtMEzcu6P/ymoICtCjRdF5yT21XLrv3kk7XZBnV9P76E/3OjmQPYsXHxdIfQ3Fy2ViOx5jNI9QiEW1QyyETbn4dTqSRRLmOZjL6eTQRk3eRN2hPKPJrOBRd9VVXr3bb/riqv7+iX/GK9n3E9C+PvUGdt3Qu6b6fghkcp0A6oaOBwwtUgCwO6W+B7vdLjPQUTNuK+WOiIG2+KGCLQeNSmm62aItDT8oE5DcBplVFXmZPyLrWvnhvZTKGOf3j6hHa9n++d0af sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-evaluator-templates.api.mdx b/docs/docs/reference/api/list-evaluator-templates.api.mdx index 5e5868554d..2d0892c6bc 100644 --- a/docs/docs/reference/api/list-evaluator-templates.api.mdx +++ b/docs/docs/reference/api/list-evaluator-templates.api.mdx @@ -5,7 +5,7 @@ description: "List the legacy built-in evaluator templates." sidebar_label: "List Evaluator Templates" hide_title: true hide_table_of_contents: true -api: eJztWEtvGzcQ/isEL31gLblBTyoKVE2M2o0bG5HSHmxDpnZHWsZckuEM7ajC/veC5Gp39TIcn3sSlhzOfPOe0ZqTWCIf3fCzR6G8IOOQ32W8AMydtCSN5iN+KZEYlcAULEW+YnMvFZ1IzWDziBFUVgkCHNzqW/0RyDuNDEmQzDuyE1pZYAUspJaBNzIspbVQsCdJZRBxq60zhc9pwK4dLMBFuffDlgUOc0FCmeXwx3sGurBGakK2MI5peLrVUhMsnYjcf2FUSmypmET2AJYisVEFOJYrCZpwwK4F4q2+lzpXvoCZcHkpH6H4lZyHe0aGNTesAOsgFwRFT2eecWMhSb0o+IgriTRrMc9aSp5xK5yogMAFs6+5FhXwEd8VzDMug+m/eHArnnEHX7x0UPDRQiiEjGNeQiX4aM2DTfmIz41RIDQPzlsIr6glJUkqUFw0Kow3Mur6LnBGazQCBl5vTk/Dz7b7Jz7PAXHhFfvYEPOM50YTaArkwlol86j98DOGN+sePuuCbUgmCbnx6VEDO/oLHO9gvo0UuzH4wVdzcMwsOrMzqdl9+3U/6Kt+Wme8s/pozSVBhftwkvlbNEhO6mUPzIdwv4vl3FdCnzgQhZgraAGxwGzA64w/wOo5pu9htcdzQtu8ZAGa5EKCy5jHEG2G5Q7CVZcLbOFMFTNk8y6KL6SDnGYe4WB8bGC8i2TsE+5r+E8JVDbJ10LKhWZzSGhCvhpPbOFdJMyNXsilTykQQSAQSb3EmXWAQNHaQq+uFjHsW3eIooilQKjrnmNC2mUb5Gb+GXIKPJsD4ZxY8TprddNeKR6CeaPapBEeikgUvqtgOmdtMm4rsF+Xtg3c6rY5/TZNDuCcbhjtAv1zcvWBTWIysXQzl3q5Bek77NCHGOoqTARrPFlPOOsysnPDt1j/uLWvkoQG5itV6HpJAsywFLaJ5z67PvztBHsO4rsei118G9uz3nGyHOJBeZtUetYmuB90U+eBPZWgt/NKIhOPQqroPKnZ1WQSW2yBg71qXretAGdKVTNh5ewBVq/H+bHhxi5VxcZWsveB2wuR50IpZEKzy8u/mHXmUYamKnTBNiDD5fj6gj3A6qAyafzo1YNdl27nfId7Gh7uwRTLNAosnfE2BlnXo+uMt931tdYad+35pa7tBoYBO5dFAZp5rQCRHZk2Dtip3q8g3UBwk5pY6jpbxf9Qoeop0458R4vPZGd+6xTrZjj2/aFxcGUBf4iz4LRt18LBfl1txr0YNE1xgHjRpsSt3uE7YNMSVpFd6MEnRqtVfI8QSh9BaosewZ2YJw1Fn4NwJBcipxQQx4KrN69tW+T350ZffshRR62NvWFqW8iZfgRlLMRQFiwMk2HwOSIyCP35zZv9ue1voWQR+xk7c8641w9tBZCQ6pkxSpl86/YFJXoz+NV3x/1waRLA4KoKl8/NVH8BolhC59TjpNEYbBpu6zBmW58G0nZMDgd1xnP62mOz59C3wZZf6aDT+9kZbJPgN3S9FOxclDx03BTvkguei7Dz6fR6j2GKjwqoNGExWQLFHYRKPuJDlJVV0F+u+psKgnvcrCneqfBAWBl9mD5LIouj4RD8IFfGFwOxBE1iIGQivAs8cu8krSKT8fXFe1idgyjA8dHNXZ8gzgcpmLbJWgcIK9Pg3KxMY0+lcfJf0TT1uC+V6VUdHbswfb+OI7jQjfYSbusq5IjIqdsOmmue7ajdacszDlXMEE4gqt/am+DQYMMk5nTw0+A0HFmDVAndExFX7LZEsKMFaN2l8P9r+QvW8iZ2QqIOrRIylpLoxnWTBTc8ZUHwYfcfSH97vMt4aZAC6Xo9FwifnKrrcJy28xDahcTQq7r9PK6Ah9b6ICNAiunxKJwM72I2ZJvoDQzT+3Geg6Xeq72qHbi02f3H2ZTX9X8eKk0Q +api: eJztWEtvGzcQ/isEL31gLblBTyoKVE2M2o0bG5HSHmxDpnZHWsZckuEM7ajC/veC5Gp39TIcn3sytJzHN+8ZrzmJJfLRDT97FMoLMg75XcYLwNxJS9JoPuKXEolRCUzBUuQrNvdS0YnUDDZMjKCyShDg4Fbf6o9A3mlkSIJk3pGd0MoCK2AhtQyykWEprYWCPUkqg4pbbZ0pfE4Ddu1gAS7qvR+2InCYCxLKLIc/3jPQhTVSE7KFcUzD062WmmDpRJT+C6NSYkvFJLIHsBSJjSrAsVxJ0IQDdi0Qb/W91LnyBcyEy0v5CMWv5DzcMzKseWEFWAe5ICh6NvOMGwtJ60XBR1xJpFmLedZS8oxb4UQFBC64fc21qICP+K5innEZXP/Fg1vxjDv44qWDgo8WQiFkHPMSKsFHax58ykd8bowCoXkI3kJ4RS0pSVKB4qIxYbzRUdd3QTJaoxEwyHpzehr+bId/4vMcEBdesY8NMc94bjSBpkAurFUyj9YPP2PgWffwWRd8QzJpyI1PTA3sGC9wvIP5NlLs5uAHX83BMbPo3M6kZvftr/tB3/TTOuOd10drLgkq3IeT3N+iQXJSL3tgPoT3XSznvhL6xIEoxFxBC4gFYQNeZ/wBVs8JfQ+rPZkT2pYlC9AkFxJcxjyGbDMsdxCeulpgC2eqWCEbvqi+kA5ymnmEg/mxgfEukrFPuG/hPyVQ2RRfCykXms0hoQn1ajyxhXeRMDd6IZc+lUAEgUAk9RJn1gECRW8LvbpaxLRvwyGKIrYCoa57gQlll22Qm/lnyCnIbD4I58SK11lrm/ZK8ZDMG9MmjfLQRKLyXQPTd9YW47YB+31p28GtbZuv32bJAZzTjaBdoH9Orj6wSSwmll7mUi+3IH2HHfqQQ12HiWCNJ+sJZ11FdmH4Fu8f9/ZV0tDAfKUJ3SxJgBmWwjb53BfXh79dYM9BfNcTsYtv43vW+5w8h3hQ36aUnvUJ7ifd1HlgTyXo7bqSyMSjkCoGT2p2NZnEEVvgYK+b1+0owJlS1UxYOXuA1etxfmyksUtVsbGV7H2Q9kLkuVAKmdDs8vIvZp15lGGoCl2wDcjwOL6+YA+wOmhMWj96/WA3pNs13+GeBsY9mGKZVoGlM97GJOtmdJ3xdrq+1lvjbjy/NLTdwjBg57IoQDOvFSCyI9vGAT/V+x2kWwhu0hBLU2er+R9qVD1j2pXvaPOZ7OxvnWHdDse+P7QOrizgD3EXnLbjWjjY76vNuheTpmkOEB/akrjVO3IHbFrCKooLM/jEaLWK/Aih9RGksegR3Il50lD0JQhHciFySglxLLl6+9q2R35/bvXlhwJ11NvYW6a2lZzpR1DGQkxlwcIyGRafIyqD0p/fvNnf2/4WShZxnrEz54x7/dJWAAmpnlmjlMm3Xl/QojeLX313PA6XJgEMoapw+dxO9RcgiiV0QT1OGp3BpuG1Dmu29Wkhbdfk8KHOeE5fe2L2Avo2+PIrHQx6vzqDbxL8hq5Xgl2IUoSOu+JdCsFzGXY+nV7vCUz5UQGVJhwmS6B4g1DJR3yIsrIK+sdV/1JBcI+bM8U7FRiElTGG6WdJZEfDoTK5UKVBSs93gTP3TtIqso6vL97D6hxEAY6Pbu76BHErSCm0Tda6XViZ1uXmUBp7Ko2T/4pmlMcrqUxcdQznwvSjOV6CJhFm0F6ZbT2FyhA5dTdB88yznrE4Gg5F/DwQcsgzDlWsC04gqt/alxDG4Lmk5nTw0+A0fLIGqRK6pyIe1m1jYEfbzror3P+P8Rcc403uhPIcWiVkbCAxjOsm9294yv0Qw+4/H/2b8S7jIacD6Xo9FwifnKrr8Dnd5CG1C4lhQnVXeTz8Dh3zQUeAFMvjUTgZ+GI1ZJvsDQIT/zjPwVKPa69XByltTf9xNuV1/R+dZEmx sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-organization-domains.api.mdx b/docs/docs/reference/api/list-organization-domains.api.mdx index d852da36eb..155225ba9b 100644 --- a/docs/docs/reference/api/list-organization-domains.api.mdx +++ b/docs/docs/reference/api/list-organization-domains.api.mdx @@ -5,7 +5,7 @@ description: "List all domains for the organization." sidebar_label: "List Domains" hide_title: true hide_table_of_contents: true -api: eJydVclu2zAQ/RVhzqzt9qhTjbqLkaIJmuRkGMFEGltMKFEhh0FdQ/9eDLVEctKgjQ+2Rc763pvRERj3HtINnLs9Vvo3sraVh62CnHzmdC3PkMJ37TlBY5Lclqgrn+ysS7igxI78ZqDA1uTiwzqHFIz2fDM2uen8QYEjX9vKk4f0CB8WC/mZJr0MWUbe74JJfnbGoCCzFVPFYo51bXQWA8/vvPgcwWcFlSj/NFMZg9dOqmLdptK5fPOhJkjBs9PVHhTsrCuRIYUQdA4KWLMRg3UOjQJvwv4lr97qUu4bBRWWFAurDuc7SDenHo0aTqpgDDTbpxg/xLc5Af5toVajEI2CnYkkHwHzXMshmosRJOwCqT6Wvb2jjEetfYnOjQK29/Tmiq6ic6Mgc4RM+Q3yqyzkyPSOdUmjSj61rsmSJVCo81Ggv9X0YsjXCr1uw3ZJJtL9P+GMByoRFTXPMXb0ELSjXAYwOkeddTKaKqFnsedhguQEjedVb1+uahVHcTRZ0+nrL5LS5mTiwGM3/jN4agadw8Oo78EtrowJCqtu9hv5KCiJCytbYk9SdY1cQArzcfV+3u2LuYBD7pGcjywHZ8QWax3ZbB8L5tqn8zmFWWZsyGe4p4pxhro13EqMLDjNhxhkebE+o8M3wpwcpJvt2OBS1ki7MKZmgwKw1md06NlKYRm4sK4rHBRoAbFovaRdXe1sdO+AWsbikuXF+hn0kyvZd5hFlfeZ4rWwPmn7qVtQQCVquWTC8uNwI7wJhm2axez9bCFHtfVcYjVKEclbDbv6ZCcNK/jf3wsdaEy/eF4b1HEZxPqPHfObiW5j1iG/SLiwnsXqeLxFT9fONI0cPwRyQudWwSM6jbcC7mbbqB57YfqeDoJbllEtUntEE1oKT94fooBBll8/X0HT/AEjnHCU +api: eJydVU1v2zAM/SsGz1qc7ejTgmUfQYe1WNtTEBSszcRqZcuV6GJe4P8+UP6onXbF1hySWOQjqfdI+giMBw/JFs7dAUv9G1nb0sNOQUY+dbqSZ0jgu/YcoTFRZgvUpY/21kWcU2QnuAUosBW58LDJIAGjPd9MXW56PChw5CtbevKQHOHDcik/86SXdZqS9/vaRD97Z1CQ2pKpZHHHqjI6DYHjOy+YI/g0pwLln2YqQvDKSVWsu1Q6k29uKoIEPDtdHkDB3roCGRKoa52BAtZsxGGTQavAm/rwEmrwuhR7q6DEgkJhZXO+h2R7imjVeFLWxkC7e4rxQ7DtCfFvC7WehGgV7E0Q+QiYZVoO0VxMKGFXkxpi2ds7SnlytS8B3Cpge09vrugqgFsFqSNkym6QX1UhQ6Z3rAuaVPKpg0YrlkB1lU0C/a2mF0O+Vuh1F7ZPMmvd/2uc6UBF0kXtc44dPdTaUSYDGMChz/o2mnfCoOKgw4zJGRvPq969XNU6jOJksubTNxiiwmZkwsBjP/4LeLoMOofN5N4jLKyMGQvrfvZb+SgoiHMrW+JAUnWFnEMC8bR6H/f7IhZyyD2S80Hl2hnxxUoHNbvHnLlK4tjYFE1uPXfmnSDT2mluAnR1sTmj5hthRg6S7W7qcCnLo1sTc7dRd6z0GTWDRgmsas6t68sFBVqoyzuUXFKXexvgPT2rA5WM0epi84zwmUm2HKaht4dMwSxaj5f1SRxjOF6gFoqoQC1GJiw+jhZRS5jr0iwX7xdLOaqs5wLLSYog2Xrc0CebaFy8//426Elj+sVxZVCHFRDqP/Z6b2fdGrKO+aVxRUfxOh5v0dO1M20rxw81OZFzp+ARncZbIXe7a9XAvSh9T43wlqZUSYM9oqk7CU/eGtIBYzN+/XwFbfsHxNptNQ== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-organization-providers.api.mdx b/docs/docs/reference/api/list-organization-providers.api.mdx index f15982e947..63b9b41d29 100644 --- a/docs/docs/reference/api/list-organization-providers.api.mdx +++ b/docs/docs/reference/api/list-organization-providers.api.mdx @@ -5,7 +5,7 @@ description: "List all SSO providers for the organization." sidebar_label: "List Providers" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsGz1qS7ejTgn0GHdZg2U5BUKg2E6uTLVWigmWB//tA+aNy2hVoc0hiiXwU33uiz0Dy4CHfwrU7yEb9laRM42EnoERfOGX5GXL4pjxlUutss7nOrDNHVaLz2d64jCrMTJI9AwHGoosPqxJy0MrTTRpyMyKAAIfemsajh/wM7xYL/pkW34SiQO/3QWc/+mAQUJiGsCEOl9ZqVUTo+Z3nnDP4osJa8j9FWEdw6/hcpLpSquRvOlmEHDw51RxAwN64WhLkEIIqQQAp0hywKqEV4HU4PJU1RG14vxXQyBrjwZrT9R7y7WVGK8aVJmgN7e4B4zvnthcCvA7qYwLRCtjrKPYZZFkqXpR6nVBCLqAYsMztHRaUtPY5JjMHSKSa1wNthvxWQOFQEpY3kp7VopSEb0jVmMB86FKzJTFQsGUC9D+unoR8jsBfHWxfZGLhl9knvV4Ze6l9TJDD+6AclnwdY3J0W2+mqR8GLRM1JmROCHl88N3TB1v3tzK5ZNOLOGxktSlRx9svm8lImMFDY9I5eUo4GLPjMJkwsh7nQcsfATVSZXh2HJAbsJIqyGGeNuLn4xSZRyLckQFY9eA0R0urorrdY0VkfT6fY5gV2oRyJg/YkJxJ1QXuGKMITtEpgizXqys8fUVZooN8u0sDNjxcujEyDRsdIa26wtOgXg7LQJVx/dFBgGI+qy6LG1bN3sT0nqxlPFy2XK8eqTDZ4ikoi+j6oVLcZgtM2n7oFgRgLRVvEsr6/bjD2jGHXZnF7O1swUvWeKplk5SIAq6TGX4xq8bR/NL3Rk8e4R+aWy1VHFuxj3Pvge3EzFw7fZewsyvjiePO51vp8ZfTbcvL9wEdC7sTcJROyVumebtrxaACa/4bT8xgUaBl2x2lDp2YF+8X9sJo0S+ffkLb/gOH1oG+ +api: eJydVU1v2zAM/SsGz1qc7ejTgn0GHdZg2U5BULA2k6iTbVWig2WB//tA+aNy2hVoc0hiie9RfI+iz8C495Bt4NrtsdJ/kXVdedgqKMjnTlt5hgy+ac8JGpOs19eJdfVRF+R8sqtdwgdK6gg9AwW1JRcelgVkYLTnmzjkZmQABY68rStPHrIzvJvP5WeafN3kOXm/a0zyow8GBXldMVUs4Wit0XmgTu+8YM7g8wOVKP80UxnIrZNzse5S6UK++WQJMvDsdLUHBbvalciQQdPoAhSwZiMBywJaBd40+6dQQ9Ra9lsFFZYUDladrneQbS4RrRpXqsYYaLcPHN8F214Y8DqqjxFFq2BngtlnwKLQsohmFUnCriE1cNW3d5RzVNrnABYNiFlXrydaD/hWQe4ImYob5Ge9KJDpDeuSIpoPHTRZsBA1toiI/qfVk5TPCfiro+2TTFr4Ze0TX69Eeql9LJCj+0Y7KuQ6BnDotr6Zpv0weBm5MRFzIsjjg2+fPtiqv5XRJZtexGEjKeuCTLj9WE1GwgweCkPn8BRpMKLDMJkoshrnQSsfBSXxoZbZsScpwCIfIIM0LsSn4xRJgxDuKATieuOMRKPVwd3u8cBsszQ1dY7mUHvutreCzBun+RSgi9Xyik5fCQtykG22ccBaRko3PKZhYx+g1Vd0GjzLYNHwoXb9gUGBFhUPHUrK1NWuDvBeosWeKsZksVo+0n6yJbMP89DrQ6awLcaPxfosTTEsz1CLRFSilk0mLN+PO+KYKNelmc/ezuayZGvPJVZRimDbKprcFxNqHMgvfVv04jH94dQa1GFYhTrOvfObSQtL7vgNIv0sjkrc+XyLnn4507ayfN+QE2O3Co7oNN6KzJttqwYXxPPfdBIF85ysNNsRTdOZefFWkV4YG/PLp5/Qtv8AgwZ+Xw== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-organizations.api.mdx b/docs/docs/reference/api/list-organizations.api.mdx index ce2b79bbda..c0c3ef46b8 100644 --- a/docs/docs/reference/api/list-organizations.api.mdx +++ b/docs/docs/reference/api/list-organizations.api.mdx @@ -5,7 +5,7 @@ description: "Returns a list of organizations associated with the user's session sidebar_label: "List Organizations" hide_title: true hide_table_of_contents: true -api: eJztVsFyEzEM/RWPLlw8SeG4JzJDoZkC7dAyHNJMR91VEsOuvdhy25DxvzPyJulmKT0UuJFDsmvpPdnSk5wNMC4DFDM480u05geycTbAXENFofSmlXco4BNx9DYoVLUJrNxCuT5AYQiuNMhUqTvDK8UrUjGQfxFUoBCMs6Mre2W3NMWVVUplqlk/8LxQkz8MgCbQjv/k8vL8+L6kfIhCTReC8qRMUGgVee+88sTe0K2xy0x5GHThXZOXK2S8wUAj0OBa8tk+raAA2e31AQo0eAqts4ECFBt4dXQkP4f5vIhlSSEsYq0+bZ1BQ+ksk2Vxx7atTZkZx1+DYDYQyhU1KE+GqcnkrZftsOlCmUq+ed0SFBDYG7sEDWy4loVpBUlDqOMyB7DrswUUs6F/0vsVG+sa0vyB4UKwSYPFhp7L8VGwaaCv51G96VEkDYs6a7nPhVVlxIz1eS9R7CPpHau7+UolPxnnbSZOetssfz/A5Za/IcZ/wf9BeJMGd2fJXz+ukoXzDTIUEKOpeqo5E4zqtNNQc0M+HChwWK7dAnqPa+jvocMmDcbeGt42S4/q99hpD5A03Dn/LbRY0vN28uUBntIwjdK836PxVMlUzJnYZ62X0f7UeiLUrrfVexlqhzM2ySfXfOVkkixJorfIKyhgPBwpgfxtTv1sA9HX4oKtyVXvXlfMbSjGY4qjsnaxGuGSLOMITec4F44yesPrTDI5n57S+oSwIg/FbN53uJBB02X30G2fZGzNKclJu1EAk8gr53cJkRLLljpUyiVfuAzfJmaSN6cm51MYXjUHJpmIWOaJuIuUzaAHx344LWigBo0YmbB5vbdInSSHXZij0cvRkSy1LnCDthfikWL9Mq/2o/r/1fhwNW7FwXTP47ZGk1sj12mzFfYM3PCPxsoFFsNmIzSffZ2SLH+P5EWpcw236A3eiG5m86R3shIRf6O1SKKUg4A41rFT5+DyFHHvG+3d8SWk9BN36B5T +api: eJztVsFyGjEM/RWPLr14IO1xT2WmacOkbZiETg+EyYhdAU527Y2tJaGM/70jL5CFpjmk7a0cYFfSe7KlZ5kNMC4CZBO48Au05geycTbAVENBIfemlnfI4JK48TYoVKUJrNxcuS5AYQguN8hUqAfDS8VLUk0g/yaoQCEYZ3vX9tpuabJrq5RKVJNu4mmmBn+YAE2gHf/ZeDw6fcwpbSJTw7mgPCkTFFpF3juvPLE3tDJ2kSgPk869q5K5QMYZBuqBBleTT/5hARnIam8OUKDBU6idDRQg28C7kxP5OaznVZPnFMK8KdXlNhg05M4yWZZwrOvS5ImxfxsEs4GQL6lCeTJMVSKvvSyHTZvKFPLN65ogg8De2AVoYMOlGIYFRA2hbBYpgV1fzCGbHMdHvbfYpiwhTp8YrgQbNVis6LUcXwUbj/T1OqoPHYqoYV4mLXe5sCiMuLEcdQrFviG9Y3WzW8r5xTwfE3HU28Py9xOMt/wVMf4L/i/CGzW4B0v+5nmVzJ2vkCGDpjFFRzUXglGtdiqqZuTDgQKP27UzoPe4hu4aWmzUYOzK8PawdKh+jx12AFHDg/N3ocacXreS70/wGI/LKIf3vjGeCpmKqRL7qnUq2p1aL6TanW31WYba4YyN8kk9XzqZJAuS7DXyEjLoH4+UQH6VSj/ZQONLCcHapK63r0vmOuv3S5djuXSBW/dUkHnjDa8TdDAantP6jLAgD9lk2g24kvHS1vQwbF9arM05yf7aAQCDhpfO78ogjZWFtKiYGj13Cb4tx2BBllENRkM4vmAOXDIHMU9zcJcpuUF3Nhuyfh+TuYemDxqoQiNOJqze7z3SHalcm+ak97Z3IqbaBa7QdlI806JfptR+QP+/EJ8uxK04mB65X5do0oFIfdps5TwBd/z3QiQqjs1GaL75MkYx3zfkRalTDSv0Bmeim8k06p2sRMR3tBZJ5LIRkMCyadV5dGWKuPfH69PpGGL8CZ6HGvQ= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-secrets.api.mdx b/docs/docs/reference/api/list-secrets.api.mdx index 8d98a2c800..91b690305f 100644 --- a/docs/docs/reference/api/list-secrets.api.mdx +++ b/docs/docs/reference/api/list-secrets.api.mdx @@ -5,7 +5,7 @@ description: "List Secrets" sidebar_label: "List Secrets" hide_title: true hide_table_of_contents: true -api: eJzNV01v4zYQ/SvGnIU47dGnuptFGyTbBPWmPRiGMZbGFjeUyJCjNNpA/70YSrIlxdEm3gXakz5IPs68eZzhPAPjzsNsCQuKHbGHVQTGkkNWJr9MYAZaeV77ZjQCR96a3JOH2TP8fH4uj4R87JSVJTCDRRHH5P220JM/m8kQQWxyppxlOlqrVRx2mH7xsuYZfJxShvKmmLIAbp0Ywqre6l7liTy5tAQz8OxUvoMIKC8ysd8686gScut7KmW7wrPJ1u1fiMB70/38hzapMfeHX6sIWLEW8JqLK9mxiiBBDoZhXt5sYbZ8r2XGUo4qUJCSEy4wL32MWl4TIqvyrUP5rcmmqG0qHztnHiCCTOUqw6fw5tmhPrwFTMw5dcaqGCKw5KymJ8VlGGKzI07JrcOXWOFMwcH5HQluz2XGPEGX3DZ0tM7v6XkZECqPed0CXlEJVRW142bzhWIO+nkolKNEmBGIERsWxKzynb/4fPNtKLG3Y+4IbICL3hvFWlDC+NciBHFDiTPxvSgLd5ThfWD2kRzT04Hy/33gPwS/3h72wun+YegTJsQ2f/JCa6g6W905LdiP5LyqT/0pKH81y6uoleApKEGeEdATO/R9EEwSJbkJ9W3Hc3YFDSU4tsHHGvmYbo9T31N7BJlJSPuRhOh1sRs7gAsZ/69c7B7NYOgLxX0S/wY+NyjoHJYdTz7VVHRkuW6dPyX0LeGTlqFAtdSNAUt74ofYfUPH9gqmT64E+r0ZbC+BVw/r8UT2+tGNtaKc1+ponttvESZNLkMaaFbU1f8Nq+rCKSuV9wW5dZMtXlt2GWZNmsTgY2OpL/lx5jtir5e2cg9xfLPGB4r+ZqQOPA4Z6vm9d6hbixY3p1S3o2XtAPVeIfz40v13fZv6Ub4N4AJMZ/hCbmQismQsB0SwNS5DhhkUhUpGz2kt95TwKF85ZnRqtvlD1sotsntHPg3qogMxVld+r92oItBqS3EZ64H1g7TgCJmSNfKphn2oESbzcPQLm3wn3l2NMMDblOvxgL8F8teySW0H1O+HHI3GNe0wLq/bSLRntY/6xuIQWpG9Tl90LG27NV5O21mTa+XblC3lqaqGMoXejAgy4tRIT7gLuc4ipzCDadMcTiXjkZPrXWAy5H6YolXB4fozZbZ+Np1ScRZrUyRnuKOc8QxVPXElGHHhFJcBZH57eUVlo+jZctWdsJCesdZwf9qeXbTqKrSD9QmGecGpcepr6D0lW4uTDZvivcq3JixvqJoH4ybz20sYUtMbkuYWYz7kimYYooHbB2+ltchQySATZr/sR3pXZDg/++nsPFx9jOcM884Wg+AMEkzDANMTT61GFS7MTTmuA7eEQ1cvWkqNZ/n7/LxBT3dOV5X8fijISSxWETyiU7gRZparTrpcNhUF5nFMVpTxiLqo+R90+hK+vYp++/gZqupfYh6o4w== +api: eJzNV1Fv4zYM/isBn42m22Oell0PW9HeWizX7SEIAsZmYl1lS5Xorr7C/32gbCe2m/ra3AHbUxxJ/ER+/ERKz8C48zBbwoJiR+xhFYGx5JCVyS8TmIFWnte+mY3Akbcm9+Rh9gw/n5/LT0I+dsqKCcxgUcQxeb8t9OTPZjFEEJucKWdZjtZqFYcdpl+82DyDj1PKUL4UUxbArRNHWNVb3as8kV8uLcEMPDuV7yACyotM/LfOPKqE3PqeStmu8GyydTsKEXhvun//oU1qzP1haBUBK9YCXnNxJTtWESTIwTHMy5stzJbv9cxYylEFClJywgXmpY9Ry2dCZFW+dSjDmmyK2qbyZ+fMA0SQqVxl+BS+PDvUh6+AiTmnzlgVQwSWnNX0pLgMU2x2xCm5dfgnXjhTcAh+R4LbC5kxT9Altw0dbfB7el4mhMpjUbeAV1RCVUXtvNl8oZiDfh4K5SgRZgRixIcFMat85y8+33wbSvztuDsCG+Ci92axFpQw/rUISdxQ4kx8L8rCHWV4H5h9JMf0dKD8f5/4DyGut6e9cLp/GPqECbHNSF5oDVVnqzunBfuRnFf1qT8F5a/GvIpaCZ6CEuQZAT2xQ98HwSRRUptQ33YiZ1fQUIJjG3yskY/p9jj1PbVHkJmEtB8piF4Xu7EDuJD5/yrE7tEMjr5Q3CeJbxBzg4LOYdmJ5FNNRUeW6zb4U1LfEj5pGQpUS98YsLQnfojdd3Rsr+D65Eqg31vB9hJ49bAeL2SvH91YK8p5rY7Wuf0WYdHkMpSBxqLu/m+wqhunWCrvC3Lrplq8ZnYZVk2awuBjY6kv+XHmO2KvTVu5hzy+WeMDRX8zUwcehwz14t4H1O1Fi5tTutvRtnaAeq8Qfnzr/ru+Tf2o2AZwAaYzfSE3MhFZMlYDItgalyHDDIpCJaPntJZ7SniUrxwzOrXa/CG2covs3pFPg7roQIz1ld/rMKoItNpSXMZ64P2gLDhCpmSNfKpjH2qEyTwc/cIm34l3VyMM8Dblejzhb4H8tWxK2wH1+yFHs3FNO4zL6zYT7Vnto76xOYSnyF6nL14s7XNrvJ22qybXyrclW9pTVQ1lCr0VEWTEqZE34S7UOoucwgymzeNwKhWPnFzvApOh9sMUrQoB139TZjubTrWJUafGcz29Esu4cIrLYDq/vbyistHxbLnqLljIS7FWbn/ZnlO06io8AutzC/OCU+PU1/DilBotoTUcSswq35pg3hA031HOOJnfXsKQkN6UPGkx5kOFaKYh6gTrZ9MphuEzVEIRZahkkgmzX/YzvYsxnJ/9dHYeLjzGc4Z5Z4tBSgZlpWGA6YmnVqMK1+SmCdfpWsLhLS8KkiTI6PPzBj3dOV1VMvxQkJNcrCJ4RKdwI8wsV50iuWz6CMzjmKzo4RF1UfM/eN9L+vba+e3jZ6iqfwHCpaWE sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-tool-actions.api.mdx b/docs/docs/reference/api/list-tool-actions.api.mdx index 7b9278c7d9..d9c7c4d53c 100644 --- a/docs/docs/reference/api/list-tool-actions.api.mdx +++ b/docs/docs/reference/api/list-tool-actions.api.mdx @@ -5,7 +5,7 @@ description: "List Actions" sidebar_label: "List Actions" hide_title: true hide_table_of_contents: true -api: eJztWEuP2zYQ/ivGnBJAtdxFTzrV2KSJu9uum3V7WRgLWqJtppSo8LGIK+i/F0PqQUm24uw6tz0ZpubFb74ZcliAJjsF0QOshOAK1gGInEqimcgWCUTAmdKPWgj+SGJcVBBATiRJqaYSFQvISEohglyKJ5ZQ+fgvPUAALMM1ovcQgKRfDJM0gUhLQwNQ8Z6mBKIC9CFHXaUly3YQgGaa48KyMja5oQcoy6DxwjJNdy6+izhatPYGvr4YKhsP9Z/WxZZw1fFBssPd1kLS9YYmq5XMcA7luvX/lzXre42JpjshGVUvcU2kJDZ2TVM1BKAci+m6jcAPjLOU6ZfEZHNH5Sget9ZJBw8jlZA/OA3Xzonvd2s4f0yoJox/TyYqDxshOCUZBJDQLTFcN6K1y98M55N3lf0Sg5FU5SJT1ObrajbDn4SqWLIc+QkR3Js4pkptDZ98qoQhgFhkmmba7j3POYstncPPCnUKL7ZcYnFr5jzEwjilXno8VKyEt4VZGYAWmvBRtZWV6KlVaXxhfgKo21BUtNxuLXZ3iA1ipPZtvQdVvk+L/Ynfy6Cbiudt451nAjFpC83fTt9ev6aP1KkH9sO6DICLnXhukLeoW7ZuxeYzjXWH9Q/geq+Fbu1nXvBrogkXu3lc7fI1KZdLSt1oRlnvH8++FEkShpskfNmRPyOco5073XRX6paHS8d9QcxkbDiRb7D5/a5E9tOd0bnRb6HPNjRSYX+OlsvCGIA9XRjwe0x52UJa4lGQG/0K7qXAXTg4ywCE1X5F9lLI3lV4HmvmtQwav6+aytCW7Tgi7yN+Zlcci+3emb3QOdPco9anO/O8GWD8tjwCzcCLai5dZYmKv1xdDe9o/xDOEjdQvJfS3lyfeUFzl8/OKdQV4CI+cQ/6dkmMAHUrXICYz1Ttxo7hP6hSZEfbzJ8WtWBMVvi17qFW3O8C9vzVXz0zg6RcI5Zf9TeJg9i48Cs5jz5tilyGTkPheDVaQB9Xq+XAoONHlxi3TOlJS8KU6r3AEXtHtR2q9R4iCHHWVmHsaBfWQ7UKC3++LkNvDlZh0ZuKy7C6JYcQgKLyqR7VjeTog+TMcsL93WudqygMqZnGXJhkSnY002RKmBNco43YSKYP1sh8ubihh4+UJFTaEvIEbCdx5OyKtYNpzm7amo5gbvReSPafY1w1Z+2dVmmJshU+T+Y2uMl8uYA+wJ1PWHMkthSrPdnPEPS23e4WAqCprTjQlKS/Nl+QIIihczOb/jyd4VIulE5J5rnopbh3Oa0QQPqGOSfMFpgNpqjS/wA2/WBvoUgAJEZNAQggGjyytCzAz8PXkfbVBgtgLxR2PSiKDVH0b8nLEpfdWIu5TZgiG+4Ntva23sy9T4Qb3IJlzwnZzvvFOQr1u8JZxuvHgHOEexN8q7LGP5KhzvFd9xLX9G9486lqMW8n7SneTWjN86wDWB1TJ4FHY/9xvvvssGfAvq7jajKDeRzT3M/H4MhC/Jru9eH9Csryf0Bg79E= +api: eJztWN9v2zYQ/leMe2oBLfKCPelpRtq1XrLFa7y9BEZAS7TNjhJV8hTUE/S/D0dKFiXZqpukb3kyTN4vft/dkacSkG0NRPewVEoaWAWgcq4ZCpXNE4hACoMPqJR8YDEtGgggZ5qlHLkmxRIylnKIINfqUSRcP/zL9xCAyGiN4Q4C0PxLITRPIEJd8ABMvOMpg6gE3Oeka1CLbAsBoEBJC4va2OSa76GqgoMXkSHfuvhexNG8tTfw9aXg+uCh+dO62DBpOj5Ytr/dWEi63shkvZIVUkK1av3/Zc36XmOGfKu04OY5rpnWzMaOPDVDAKqxmK7aCPzApEgFPicmyx3Xo3jcWCcdPAptlP7BNFw5J77fTSHlQ8KRCfk9TNQe1kpJzjIIIOEbVkg8iDYufyuknLyr7VcUjOYmV5nhlq/L6ZR+Em5iLXLKT4jgrohjbsymkJNPtTAEEKsMeYb27HkuRWzTOfxsSKf0Yss1FTcK5yFWhVPq0eOhYiW8I0yrAFAhk6NqSyvRU6tpfCY/ATRtKCrb3G4tdk9IDWKk9m29BzXfp8X+pP0q6FLxtGO880wQJm2h+cfp2+vX9JE69cC+X1UBSLVVTw3yhnSr1q1af+YxdrL+HlzvtdCtfOaVvGLIpNrO4vqUr6S8HClNoxnNev969qVYkgg6JJOLjvwZ4Rzt3Om6u9K0PFo67gtioeNCMv2Gmt/vRmU/3RaYF/gW+tlGRmrsz9FyLIwB2NOFQX6PKS9aSCu6CvICX8F9KXDnDs4qAGW1X5F9KWRvazyPNfNGhozf1U1laMt2HJX3ET+zK47FdufMvtA9c3hHrU535tlhgPHb8gg0Ay/m8OiqKlL85fJy+Eb7h0mRuIHivdb25frEB5p7fHZuoa6AVPGJd9C3S2IEqBvlAiQ+U7Mdu4b/4MawLW+ZPy1qwZgsabfpoVbc7wL2/sWvnpkBKVeE5Vf8ZuIQNi78Ws5Ln5Yix9BpKFxejRbQx+VyMTDo8qObGDfC4KRNwpTjTtGIveVoh2rcQQQhzdomjF3ahc1QbcLSn6+r0JuDTVj2puIqrF/JIQRguH5sRvVCS/LBcmFzwv3dIeZRGEoVM7lTBt32ijTjQgvcW9XZYn7N9x85S7i2heMJ2P7hUrIr1o6jubhuKzmCWYE7pcV/Ls/q6WrntCqbHhvlZ8dsyzNkk9liDn1YO1tUaSy2idV4stsQeIc1URgyu3zBBEHEU1tngJylvx52KC0IOedmevHzxZSWcmUwZZnnokds70laI0BJG+aSCVtWNpiyJv0eLOlg355EO6VDQzwEEA0+rbTc0/bwm0j7rYbSnkglL2W5Zob/rWVV0bIbZonbRBi2lt44a9/oh2n3kcmCjmBz5oRs56vFOQrN14SzjDefAM4R7s3trcqK/mhBOsdP3SPu0LXhzae6sbydtHd3l9Amz7MOYE1MHQKPxv7jfPezw3b+XVPH9TwGszjmuc/H4KIi/A4968P7JVTV/9pG7HI= sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-tool-integrations.api.mdx b/docs/docs/reference/api/list-tool-integrations.api.mdx index 05b8d0a96d..684e847da8 100644 --- a/docs/docs/reference/api/list-tool-integrations.api.mdx +++ b/docs/docs/reference/api/list-tool-integrations.api.mdx @@ -5,7 +5,7 @@ description: "List Integrations" sidebar_label: "List Integrations" hide_title: true hide_table_of_contents: true -api: eJztWE1v4zYQ/SvCnFqAiNygJ5/qZrddI2kbbLy9BIZBy7TFLSVqyWGwrqH/vhhSkin5o1lnF73kFISamTcz75EcegfINxbGjzDTWlmYM9CVMBylLqcrGIOSFheotVrIEsUmfLHAoOKGFwKFIe8dlLwQMIbK6Ce5Embxj9gCA1nSGsccGBjxyUkjVjBG4wQDm+Wi4DDeAW4r8rVoZLkBBihR0cJ9Eyy5FVuoa9ahWMFNlrfxPzlhtj2ANVe2h8DL7V9rn2cfi2I2K6VTCur5Hv0hgPRwtcHFcvu9gbXB5Nd+xUoWEl+C69kT5izwnQeJYTNnrDbfud6bABLjrp1Si5VALpX9CvQGYam1ErwEBiux5k5hZ9pC/uaUSt408WtKxghb6dIKS3GuRyP6sxI2M7IixRMtLsuEtWunkveNMTDIdImiRF97VSmZ+Q2SfrTks4tyqwxtLJQBIdMuOA3oibriLaISRjUD1MjVWbeZtxi4NTS+kB8GvSNgvAOJorD9sP0y6RQ4s8H9vmYN6afN/qTvNevzcVktb6IQ1BiOYqNNk21XzjBeu8CN4duYo7171PHHec1A6Y2+NMk78q0ZOKMuDfHBKIrAM8/VopPbRefCJERJgiQprMN84aUtBvSfaCEDUbqCrhlNvsCAV9LfEfNYulpNHOYPPvBB289m6DBPHpqE6r2nXn4UGfYOjUcIV5MX3QD9hiNXejPdy9yjvmr6VdP/t6a7uk/k9qrRb6XRl54eQVlfR3VD7bc8ubrpZn66j9P+SB938kgm5/FsNxTVNXn/fH19OEP9zZVcefPkrTF+srxwgArDYU89fQOlsxMjyklBdOfGmZbd6ay9GKCwm3Pb5w9hLd9Em/60qW9GMqOvfsyqXBgOO55ogfYNfo7CHDBzQ738jP+pI+pNSL+xi9S0pygwdLoVQWFHwVqTd7PZ/UHAoI++MO6kxWQgx0JgrukNuhHoH5yYwxhSeozaNAsCTNsHp0138duzTuNZNQUGVpin9rHqLyFIeSU9/eHfHLGy4zQV7ipT2q2u+EaUyK+4DIZzipE5I3Hrg0zup7di+07wlTB+y0QGD/t7pG/WcccrebvfzeG010b+G8TVPHny4FV7Tax1LImJTy6Z3E9h2MveJ9pePPNqapH8Z2CDsvfV0s1W+M0FKHjxS/eFtEA9DDCjq5+uRrRUaYsFLyOIY2wOLpGmDSTXtFJcltFwEJh+BM80+NuCuCYNtGwDg/HBbw09PNJ0ri2dZrDbLbkVH4yqa1oOL0nicCUtX6roLekvzv3vC09cOUrTy+SUcfejwHOs24f8c2y71/dzjAdP5r3LnP4xknyO1zxgpjuQ4Yf3zZnxYwLsOGOtmste/W1OPYb8qZq326WZUWCSZaKKG3JwCVAB3VHw+9sZ1PUXNUhbeg== +api: eJztWE2P2zYQ/SvCnFqAWLmLnnSqu0kbY7ftIuv0sjAMWqYlppSokKNFXEP/PRhSkin5oxtvgl72ZJicmUfOexwOtQPkmYXkEeZaKwsLBroShqPU5WwNCShpcYlaq6UsUWR+xgKDihteCBSGvHdQ8kJAApXRT3ItzPIfsQUGsqQxjjkwMOJTLY1YQ4KmFgxsmouCQ7ID3Fbka9HIMgMGKFHRwH0bLLoVW2ga1qNYwU2ad/E/1cJsBwAbruwAgZfbvzZunUMsitmOlLVS0Cz26A8eZICrDS5X2+8NrA1Gvw53rGQh8SW4jj1hzgLfOZAQNq2N1eY77/fGg4S4m1qp5Vogl8p+BXqLsNJaCV4Cg7XY8Fphb9pB/lYrFb1p4ze0GCNspUsrLMW5nkzoZy1samRFiida6jQV1m5qFb1vjYFBqksUJbq9V5WSqTsg8UdLPrtgbZWhg4XSI6S69k4jeoKsOItgC5OGAWrk6qzb3FmM3FoaX8gPg0EJSHYgURR2GHa4TaoCZw64O9esJf202Z8037AhH5ft5U0QghLDUWTatKvttzOO1w1wY/g25GjvHmT8cdEwUDrTly7yjnwbBrVRl4b4YBRF4KnjatnL7aK6MPVRIi9JCltjvnTSFiP6T6SQgSjrgq4ZTb7AgFfS3RGLULpaTWvMH1zgg7SfXWGNefTQLqjZe+rVR5HioGg8gr+anOhG6DccudLZbC9zh/qq6VdN/9+a7vd9Ym2vGv1WGn1p9fDK+jqqW2q/ZeXqu5vF6TzOhi19mMkjKzmPZ/umqGnI++fr68Me6m+u5NqZR2+NcZ3lhQ2Ubw4H6hkaKJ2eaFFOCqKvG2dSdqfT7mKAwmbnjs8fwlqeBYf+tKlLRjSnWddmVbVvDnueaIDODX4Owhwwc0O5/Iz/qSPKjV9+axeoaU+RZ+h0KrzCjoJ1Ju/m8/uDgF4fQ2HcSYvRSI6FwFzTGzQT6B6cmEMCMT1GbZx6Acbdg9PGu/Dt2cRhrxoDAyvMU/dYdZcQxLySjn7/N0eskjhWOuUq1xb99II809pI3DrX6f3sVmzfCb4Wxh2UwOBhf3sMzXrGeCVv92fY13ht5L9eUu1DJ/dejVPCRodCmGaiRB5N72cwzuBgig4VT52GOiQ3DSzYrE3imLvhKy4pRaJwRwpQ8OKXfoYUQJnzMJOrn64mNFRpiwUvA4hjHI6ujjYNJNK4UlyWQUvg+X0Exy+4O4IYJuY7joFBcvCFYYBHSibyKNBut+JWfDCqaWjYvx+Jw7W0fKWCF6S7LvdfFZ64qmmZThynjPtPAc+x7p7vz7Ht39zPMR49lPcuC/pjJPkc3/OImb4Mww/v20rxYwTsOGOdmsvB/rs1DRhytTTvjkvbmcA0TUUVJuSg9NMG+gLw+9s5NM0Xl3NYGw== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-tool-providers.api.mdx b/docs/docs/reference/api/list-tool-providers.api.mdx index 2058521985..4ed6241dc4 100644 --- a/docs/docs/reference/api/list-tool-providers.api.mdx +++ b/docs/docs/reference/api/list-tool-providers.api.mdx @@ -5,7 +5,7 @@ description: "List Providers" sidebar_label: "List Providers" hide_title: true hide_table_of_contents: true -api: eJztV02P2zYQ/SvGnAnbXfSkU4xN0ix2kxpdpxfDMLgULTGhRIYfi7gG/3sxpCRTduwm2wC99LRrab743uPM6ACOVhaKNayUkhY2BJTmhjqh2rsSCpDCuq1TSm61Uc+i5MYCAU0NbbjDH8X6AC1tOBSw81JuS+6okGgkWijgi+dmDwQM/+KF4SUUOyotJ2BZzRsKxQHcXqP3k1KS0xYIlHxHvXSDqRNOosVbL+XkdRc/hA1GtVq1lluMczOf45+SW2aExhNAAY+eMW7tzsvJH50xEGCqdbx1aE61loLFA88+WfQ5ZLVpg3A4kTIw5ZNTV7JoHa+4gWOJt9EiO8I8EDgiVxxAON7Ef2i7/30X4Rsn+cz3WQrrjGgrIMBb3yBPTDVaWaGAAK146yhy1qdHEpddtnvRlhBIR855wN7nA74PZIxbXt7YMZDhSeulhJClf52FCCTBk7RktwN2Z4F7FK9FvstCTRLIIZDeXD194syNVLaOOHanP0HoljoqVdUDFRP/z8GLOBgnGIcelP5d2PZZ7vn+v0WMUccrZbpqh0OcxusfUGPoPu8AR/esDaw3gYBUlXppkQ/oGwh4I18a4qORGIGynyGGBTvRAfWu3sbGyS/p4NJ1UuiLd0mLLarj5DItvKsfY+Az2K9W6F09eewK+tfNIhP/D1WRX5qf17KGIbi5LMRlNq9zHX6jhiuZ7DA1Q0DXX29uzofsn1SKMp5x8sYYZV4+YdP2MLp4YwOp2IUpevEiDHK+AtaDYgO3ja2udZ733FpaZVq8bBrBmKzwbeyU2qftYdAGPsCW475mYc5ouUUsv/7zxENsUvmdXSaiI0WJoctQJG19M1lv8m61Wp4FTPoYC+NBWDfJhdhwVyvcKyvu4h7paihghgumnbEkvdmwL82AgOXmud8zY/ODGdUi8pt+1s5pW8xm3E+ZVL6cppE8pSIZbjAG80a4fQyyWN7d8/07TnH044XIDB6P/WtsNpBDtbg/3tLUZZQRfyX1dEtvnbxCJH2ncs4XsbjJYnkHp2CNXuH9oSzKpc+UNg1ycuzjabGjNvH2gOO0eTW8QbIRw5RmPv1lOsdHWlnX0DZLcUbXyXTtMEAxzrSkos0mUqJyDZFKiGMUyYR8/SWAkqyVxU4Eh8MTtfyjkSHg4/SlgAyVwtInmX0rxJXh9PPimUqP1USGn6kR6NNN2rpnt1s3YMEY1y7zOmtKGGVQ529vVhDC36jXe/E= +api: eJztV02P2zYQ/SvGnImVu+hJpxqbpFnstjW6Ti+GYcxStMSUEhWSWsQ1+N+LISWZsmM32QbopaddS/PF9x5nRgdwWFrI17DSWlnYMNCtMOikbu4LyEFJ67ZOa7VtjX6RhTAWGLRosBaOfuTrAzRYC8hh1ym1LYRDqchINpDDp06YPTAw4lMnjSgg36GygoHllagR8gO4fUvez1orgQ0wKMQOO+VGUyedIot3nVKzN3187zcU1ba6scJSnNv5nP4UwnIjWzoB5PDUcS6s3XVq9ntvDAy4bpxoHJlj2yrJw4Gzj5Z8DkltrSE4nIwZuO6iU1+ybJwohYFjiXfBIjnC3DM4IpcfQDpRh3+w2f+2C/BNk/wp9kkK64xsSmAgmq4mnriuW22lBgZYisYhcTakJxKXfbYH2RTgWU/OecDB51d679kUt7S8qaNn45OmUwp8kv5NEsKzCE/Ukt2O2J0FHlC8Fvk+CTWLIHvPBnP9/FFwN1HZOuDYn/4EoTt0qHQ5ABUS/8/BqziYJpiGHpX+VdgOWR7E/r9FjKMTpTZ9teMhTuMND9AY3Kcd4OietIH1xjNQutSvLfKRfD2DzqjXhvhgFEVA/j3EsOAnOsDOVdvQOMUlHVy6Tpp86S61ckvqOLlMi85VTyHwGexXK+xcNXvqC/rXzSIR/zdVkV6a79eyxiG4uSzEZTKvUx1+oYYrmew4Nb0n1x9vb8+H7B+oZBHOOHtrjDavn7Bxe5hcvKmB0vzCFL14EUY5XwHrUfOR29qW1zrPL8JaLBMtXjYNYMxW9DZ0yraL28OoDXpALcd9TsKc0XJHWH7+54lH2MTye7tEREeKIkOXoYja+mKyweT9arU8Cxj1MRXGo7RulgqxFq7StFeWwoU90lWQQ0YLps14lF427ksZMLDCvAx7Zmh+kGErA7/xZ+Vcm2eZ0hxVpa2LrzfkyTsj3T64Lpb3D2L/XiANfLoGicHTsWtNzUZKsJUPx7sZe4s28q+omX7VraKXD1TvdMr0ImwJs8XyHk4hmryiW4M8iGTIFPcLlhzW5lkW144blASRqMOdASew/ml8QxQTcjHN/OaHmzk9arV1NTZJijOSTmZqjwFJMGsVyiaZQ5HANQQCIQxPohDSpZcBCZGoIcvD4Rmt+GCU9/Q4fh8QQ4W0+KySL4SwKJx+VLyg6qiawPALGkk+/XytBnb7JQMWnIvWJV5nrYiijJr8+e0KvP8bztJ4kg== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-workflow-catalog-presets.api.mdx b/docs/docs/reference/api/list-workflow-catalog-presets.api.mdx index 3974a06e2d..10431b2787 100644 --- a/docs/docs/reference/api/list-workflow-catalog-presets.api.mdx +++ b/docs/docs/reference/api/list-workflow-catalog-presets.api.mdx @@ -5,7 +5,7 @@ description: "List presets defined against a template." sidebar_label: "List Workflow Catalog Presets" hide_title: true hide_table_of_contents: true -api: eJztWE1z2zgM/SscnJoZ1c529qTTZtJ2m223zThp95B4MrQE22wpUuWHU69H/30HFGXJtqy0afeWk8ci8AACjyCBDTi+sJDewD/afJlLfW9hmkCONjOidEIrSOGdsI6VBi06y3KcC4U54wsulHWMM4dFKbnD0a26VZdRjBtkiheYs5IbXqBDw8KCW3LHMq7YDFmmi0I4R2i0gGwujHW3yuBKWKEV03PGmcJ7tuJGcOVGbILOG2UZVwyL0q2ZJOful6g6nrAlt7dKabJDvkbfg4NXiCm72e52+mxscI4GVYZjXornCy9yHN836ycjSECXaDgF4yKHFMjiXSNwl3HHpV7cRRuQwHbDFNcNUBQghca3uy+4hgQEBbbkbgkJGPzqhcEcUmc8JmCzJRYc0g24dUm61hmhFpCAE07Sh+tmo29xDVWVbK0IlUmf4x032VKsMG8sffVo1jum5lzaHVtcrT/Mg8fR6kxriVwBwcdPyksJ1bR15KK2x84aexWtGrSlVhYt4b44PaWfXUpd+SxDa+deskkUhgQyrRwqF7wpSymyEPTxZ0s6m46vpaGUOFFbyLSvlaKXQjlcoOnE6zxI7PP6vS9maIhkDblNYBfmoyA75146SE+rBJrsphsQDgt76ESdgJ4wxuQNRfE96VZ77j0O6mUHokqAyDbAo0CfBDLucKFN3ElrdrvVffvNB24MXw/6c95CVwnMZag2XRu7URS2pW56wMQO72xLuU6qAqmrhGAMUnVBlT+MNOmI9oN12PigWx3RfjBccem50+YhqFdbwX4gq0RZonsI5iqKHYC0edSzz5i5jlpTH8/r6vY65O0wz8RZ7vhQRr0Rj+XyRyOINN7IxyNIQlgiz0M57qLwPBeUJS4vdxwesrO7tRUa+xNH9VNUrxKw0i8eC3NFukSIfAghgbk2BXeQgvciHy7qVMaPc2PS3Jc1AXbFhnDfxDRUCRivnBgumAmg8gU9Tcq1W4bTRAJ1eYMEPvMVj3+mQ1Yn0RSFuRZ/bKBr7aq5NAcLWfcR8LOs27vWdnykG6z7pXtp99uCTJjMS26evfZS/mW1ev7Bu9K7E+hLZrwDvkfr4dtgTxd+iD6XbUiJ7qr07im4vyq4F3U4qwR00H6K7K+K7IcYz6GSSuBXsaj03rJP5eR/LSff8RKaxJ70Jb13enLUA9E2WzfhIT49+r6qu+aDh3XH2W13udfC9LXYAy36d211xym77c+qipR/f/HisJ37xKXIw5uXvTImPFgf2cvl6LiQA32W1NnO6o8wfXo8wO90fLNXCRR2MdQ0/Y3W8gW22TouGoLBrmm1ubKCeLfohgbMfevAHCTmnGL5zfUmr0syik3tfpTrvja3KaozdDwUL+sUDDHlzfX15QFgzY8C3VLTmGQRWo4w4kihHaiM48Bk3HDSjjfd2Ug1jr32GBKwaFbNHCW0AUAzmpDb+u/SudKm4zH6USa1z0d8gcrxERe14JQwMm+EWweQs8uLt7iuH6KQ3ky7AqEA1yTbFdsmhpfibZjexGnLmXdLbcS/TbcXRi11sxHCJ9Rcd/N9FpxjZ5cXBwd5Z4nODs9cO1aIy5DsbbvdLT2Xi3BywCEv/tiuUKK3jQqcjn4bndKnUltXcNUxEaZ8TQlgsQawI4Vn057vp/FgZAcd0XEpuVCdrrXm/w1sNSCMWyi2pNmcAUgg3ZsQtgNFOsZLbR3hbDYzbvGjkVVFn+u5HjE7F5bPZGeyF0Y/fQNBmiqQv+F0hMjNiJ19GEdz/mwSy84JOxaA5syodddm49fOZkNhXjaHchNFzrIMQ6fXKB/cI7SBbb3589U1VNV/1xzqng== +api: eJztWEtv2zgQ/ivEnBpAtbLFnnTaIG232XbbwEm7h8QIaGlss6VIlaSceg3998VQlEy/lDbt3nIyLM6L33wccmYNjs8tZDfwjzZfZlLfW5gkUKDNjaic0AoyeCesY5VBi86yAmdCYcH4nAtlHePMYVlJ7nB0q27VZRDjBpniJRas4oaX6NAwv+AW3LGcKzZFluuyFM6RNVpANhPGultlcCms0IrpGeNM4T1bciO4ciM2RlcbZRlXDMvKrZik4O4XqKJI2ILbW6U0+aFYQ+w+wCvEjN30u508Sw3O0KDKMeWVeD6vRYHpfbd+MoIEdIWGExgXBWRAHu86gbucOy71/C74gAT6DROuayAUIIMutrsvuIIEBAFbcbeABAx+rYXBAjJnakzA5gssOWRrcKuKdK0zQs0hASecpA/X3Ubf4gqaJum9CJXLusA7bvKFWGLRefpao1ltuZpxabd8cbX6MPMRB69TrSVyBWQ+fFK1lNBMNoFctP7YWeevoVWDttLKoiW7L05P6WebUld1nqO1s1qycRCGBHKtHCrno6kqKXIPevrZks46irUylBInWg+5rlulEKVQDudoIrzOvcQur9/X5RQNkawjt/HswmLkZWe8lg6y0yaBLrvZGoTD0u4H0SbgAIwheUMovifdZie8x5l6GZloEiCyDfDI0yeBnDucaxN2snHbb3XXf/eBG8NXg/Gcb0w3Ccykrzaxj20Uhd1QN9tjYsQ7u6FclCpP6iYhMwapuqAqHrY0jkQPG4vY+GBYkehhY7jksuZOm4dMveoFDxuySlQVuofMXAWxPSObPOrpZ8xdpNbVx/O2ur32edvPM3GWOz6U0dqIx3L5oxFEmtrIx1uQZGGBvPDlOLbCi0JQlri83Ap4yM/21pZo7E8c1U9BvUnAynr+WDNXpEuEKIYsJDDTpuQOMqhrUQwXdSrjx7kx7u7LlgDbYkN234Q0NAmYWjkxXDATQFWX9DSpVm7hTxMJtOUNEvjMlzz8mQx5HQdXBHMr/ligW+2muzQHC1n8CPhZ1u1ca1sx0g0Wf4kv7cO+IBcmryU3z17XUv5ltXr+oXZV7U7gUDLDHfA9Wg/fBju68EP0udxASnRXVe2ewP1V4F60cDYJaK/9hOyvQvZDwHOopJLxq1BUDt6yT+Xkfy0n3/ESGoee9CW9dw7k6ICJTbN14x/ik6Pvq7Zr3ntYR8H23eVOC3OoxR5o0b9rq1tB2b4/axpS/v3Fi/127hOXovBvXvbKGP9gfWQvV6DjQg70WVLnW6s/wvTJcYDf6fBmbxIo7XyoafobreVz3GTruKgHg13TandlefG46PoGzH2LzOwl5pyw/OYOJi8mGWHThh/k4tdmn6I2Q8eheNmmYIgpb66vL/cMtvwo0S00jUnmvuXwI44MNgOVNAxM0o6TNl3Hs5EmDb12CglYNMtujuLbAKAZjc9t+3fhXJWlqdQ5lwttXbs8Ic28NsKtvOrZ5cVbXLXPT8huJrGAL7sttbbF+nTwSrz1M5swYzmr3UIb8W/X4/kBS9tieNCEmuk4y2dzVI6zs8uLveO7tUQnhuduM0wIy5BEm7VZmnL/ecQFQYSlPy/gkJd/9CuU3r49gdPRb6NT+lRp60quIhd+ttcdfBZOPjtSbtabU/00FAzsoIOZVpILFfWqLetvoNcAP2QhbEmzYz4kkO3MBTdjRDq8RGmys15PucWPRjYNfW6necTsQlg+ldE8zw98Do0BaZZA8frT4ZGbEjsP2Tia82fjUGxO2DEAujOjVrHPLq6tzfpyvOgO5TqInOU5+v6uU967PWgDfZX589U1NM1/BpfnPw== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-workflow-catalog-templates.api.mdx b/docs/docs/reference/api/list-workflow-catalog-templates.api.mdx index 5d0802bd05..f330cf2a8a 100644 --- a/docs/docs/reference/api/list-workflow-catalog-templates.api.mdx +++ b/docs/docs/reference/api/list-workflow-catalog-templates.api.mdx @@ -5,7 +5,7 @@ description: "List workflow blueprints shipped with the product." sidebar_label: "List Workflow Catalog Templates" hide_title: true hide_table_of_contents: true -api: eJztWMly2zgQ/RVWn5IqRvKk5sTTqLxMPMkkLttJDrbKhsiWhAQEGCxONCr++1SDG6iFdpzl5JNKYPdD4/UCdK/BsoWB5Ao+Kv15LtRXA9MYMjSp5oXlSkICb7ix0df6ezQTDgvNpTWRWfKiwCz6yu0yskuMCq0yl9rRtbyWJ1xY1NFsFWUqZ1xWUrfc3LCiEDxlhH4b+xW8Y8Ixq/RtHCl9LWnNSAK3t6NootMlv8MsspgXglk0EdMYLXmWoYycFGhMdMtlKlyGN6yWvr2W3ERWOxxFlz3FhVAzJiIms0gjy14oKVbe5AvEJLpqmZg+G2uco0aZ4pgV/MXC8QzHDRPm+QhiUAVqf5TTDBIQ3NibRuAmZZYJtbhp7YYYCqZZjhY1sb4GyXKEBDaNhxg4Uf/FoV5BDBq/OK4xg2TOhMEYTLrEnEGyBiZX7+Yey64KwpopJZBJKON2STohoJzGYLkVtHBa7ddSCyVJN8b0XPTLTTHRJNhtw5A2Mn6DGcftXhtG1KH4G0y4qHcqaV2jKZQ0aAjx5cEB/fQz88KlKRozdyI6r4UhhlRJi9J6Ozpmx58M6awDKwtN0Wt5tUOqXKVU28elxQUS8Y2Bh15iszy8dfkMdaTmQX5qtE5LzEZees6csJAclDF0qZCsgVvMzbYhFfE7SDRWc7kY5PAt6ZYbJj4O6iiAKGP4jKuAnFq/k36NK5JKmcWF0vVJum3bo27u3ywwrdlq0J7DDrqMYS584Q736LNIWdxkd7IVh/3866pO6ywf0mVMMBpTlecos/uRzgPR3WBhZbnPrF4R2gXWVYd7oI6DMrILqMnwe2Au2kKwAdL5Uc0+YWoDteY6OawugxPvt20/U8wyy4Y86jR/bCy/15yCxmnxeARBCEtkmb+7QhSWZZy8xMRZz+ChffpHu0NtfiBVP9TqZQxGuMVjYS5IlwIiG0KIYa50ziwk4BzPhku6v1n3xsZ587yoAqAvNoT7qnZDGYN20vLhghkDSpfTK69Y2aXPJhKoyhvE8IndsfrPdGjX83ororkSfyzRlXbZXJmDhSx8Mf1o1G1cbT0b6RYLV8Ire/dekHKdOsH0sxMnxD9GyRfvnC2cfQ67nFnfAQ/Ruv822NCF7wqfs45SCndZOPtE7s8i97Sis4xBee0nZn8Ws+9qPodKKoFf1EVl5y37VE5+aTl5wEvoHO84XddH9N7Z4aMdEF2rdeUf4tO976um1d96Wncal0E73m9lPn7PkONBZ92wyrRtWlmS+p8vX253dR+Y4Jl/9kbHWvs36yNbugwt42Kg1RIq7X39nmCf7mf4jWq6+Rhysxjqm/5FY9gicNd+UU9GdElfm1vLi4d11/dg9lsAs+WaQ+Lym93pvjDOiJvK/FoufHC2Lqo8tJ+Ko8oFQ7Hy6vLybAuwio8c7VLRYGnhu46C2SUk0I2gxvWIadz21WOIwaC+awZM/skPNL7yTqz+Lq0tTDIeoxulQrlsxBYoLRsxXglOCSN1mtuVB5mcnb7GVfXohORqGgr4YltFU1+s9QArOHXHcTNRmTi7VJr/1xsvVY2F54nLuQodO/HGRZOz062E7X2iJGGp7UYI9WeIN47dnZaexrlPEbDI8r/aL+TRtimBg9EfowNaKpSxOZPBFn442taNOt2jvSVm3aXy01x1aK5axw5l6rgQjMugf63S4ApaDfCDF2IewhFTDJSzS2UsSa/XM2bwvRZlScvVFI+iO+OGzUQwx/Ojnl0zWaKTrPKptE9tc3r6QKVw0vlAlW4u2SlM6Y/mpOEztWnZ/UkrzUmaYhFqbV0phNKWnr+PL6Es/wfIbWSj +api: eJztWFlv2zgQ/ivCPLWAameLfdLTGjm22XbbIEnbh8RIaGlss6VIlUdar6H/vhjqonwoaXo85ckwOTMcfXPPGixbGEiu4KPSn+dCfTUwjSFDk2peWK4kJPCGGxt9re+jmXBYaC6ticySFwVm0Vdul5FdYlRolbnUjq7ltTzhwqKOZqsoUznjsqK65eaGFYXgKSPpt7E/wTsmHLNK38aR0teSzowk4fZ2FE10uuR3mEUW80IwiyZiGqMlzzKUkZMCjYluuUyFy/CG1dS315KbyGqHo+iyx7gQasZExGQWaWTZCyXFyqt8gZhEVy0S02djjXPUKFMcs4K/WDie4bhBwjwfQQyqQO0/5TSDBAQ39qYhuEmZZUItblq9IYaCaZajRU2or0GyHCGBTeUhBk7Qf3GoVxCDxi+Oa8wgmTNhMAaTLjFnkKyBydW7uZdlVwXJmiklkEko4/ZIOiGgnMZguRV0cFq910ILJVE3yvRM9MtVMdEkeG1DkdYzfoMax+1bG0rUrvgbVLioXyrpXKMplDRoSOLLgwP66UfmhUtTNGbuRHReE0MMqZIWpfV6dMiOPxniWQdaFpq81/LqhVS5iqnWj0uLCyTgGwUPPcVmenjr8hnqSM2D+NRonZaYjTz1nDlhITkoY+hCIVkDt5ibbUUq4HeAaKzmcjGI4VviLTdUfJyoo0BEGcNnXAXg1Pwd9WtcEVXKLC6Urr+ke7b91M33mwOmNVsN6nPYiS5jmAufuMM3+ihSFDfRnWz5YT/+uqzTGsu7dBmTGI2pynOU2f2SzgPS3cLCzHKfWr0ktEtYlx3uEXUcpJFdgpoIv0fMRZsINoR0dlSzT5jagK0pJ4dVMTjxdtu2M/kss2zIok7zx/rye83JaZwWj5cgSMISWeZrVyiFZRknKzFx1lN46J3+p92hNj8Qqh9q9jIGI9zisWIuiJccIhuSEMNc6ZxZSMA5ng2ndF9Z9/rGedNeVA7QJxuS+6o2QxmDdtLy4YQZA0qXU5dXrOzSRxMRVOkNYvjE7lj9Zzr06nn9FMFckT8W6Iq7bErmYCILO6Yf9bqN0tbTkapYeBKW7N1vQcp16gTTz06cEP8YJV+8c7Zw9jnsMmZdAx7CdX812OCF73Kfsw5ScndZOPsE7s8C97SCs4xBee4nZH8Wsu9qPIdSKgm/qJPKzir7lE5+aTp5QCd0jnecyvUR9Ts7bLRDRDdqXflGfLq3v2pG/a3WuuO4DMbx/ijz8XuWHA/61g2tTDumlSWx//ny5fZU94EJnvm2NzrW2vesjxzpMrSMi4FRS6i0d/s9zj7dj/Ab1UzzMeRmMTQ3/YvGsEVgrv2kHozokm6bquXJw7zrZzD7LRCzZZpDwvKb3Wm+0M8Im0r9mi5sOFsTVRbaD8VRZYIhX3l1eXm2JbDyjxztUtFiaeGnjoLZJSTQraDG9Ypp3M7VY4jBoL5rFky+5QdaX3kjVn+X1hbJeCxUysRSGVtdT4kzdZrblWednJ2+xlXVakJyNQ0JfIqtfKhP1uLOCk4zcdzsUSbOLpXm//WWStU44dHhcq5Cc04WKC2LJmenW2Hau6LQYKntFgf1NcTBx5pkPGb+eMQ4QYS5DwywyPK/2huyYzuKwMHoj9EBHRXK2JzJ4Am/Em2zRR3k0d7Esu4C+GmbOrRNrX2H4nNcCMZlMLVWzn8FLQf4dQshD+FiKQaKVHJrol6vZ8zgey3Kko6r3R15d8YNm4lge+cXPLs2sQQnaeUDaB/b5s70gUzhfvOBLN02smOY0h/NicNHajOo+y+tOCdpikXItVVISEqbcP4+voSy/B9LoWFE sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/list-workflow-catalog-types.api.mdx b/docs/docs/reference/api/list-workflow-catalog-types.api.mdx index 85fd519e9d..d91a252774 100644 --- a/docs/docs/reference/api/list-workflow-catalog-types.api.mdx +++ b/docs/docs/reference/api/list-workflow-catalog-types.api.mdx @@ -5,7 +5,7 @@ description: "List the shared JSON Schema fragments available to workflow schema sidebar_label: "List Workflow Catalog Types" hide_title: true hide_table_of_contents: true -api: eJztVUtv2zgQ/ivEnBJAtrJ71GmN7qNpFkmwSbGHxIjH0khiQ5EsH068hv77Yij52SAoeq4vtslvZr755sENBGw8FA/wr3HPtTIvHuYZVORLJ22QRkMBf0sfRGhJ+BYdVeLT3c21uCtb6lDUDpuOdPACVygVLhWJYMTL6E34BPPTR/2otyGE1DaG3MRgY9gihKOaHOmSOJQnsZIoFq8TbCZhbWniqF6Is9q4R02v2FlFmVh05D02tBDGiYV1prNhcT4Vnz07kV6QrqyROjClSvrSrMiJlxbDo2an4pnWXtAr57ek2jgSyyhVJXUjcCSWmN8RFeJhJ9H8LN+xzdHKSRNlRfk2aX8+hQyMJYes4GUFBSjpw9MW8FRiQGWaJybhIQNH3hrtyUOxgV8vLvjruAZ3sSzJ+zoq8c8IhgxKowPpwHC0VskyBcy/eLbZwJAB/7KO6QQ5RChNHIw4PhQgdaCGHGQQZFB88iEhThvhOnZLcsLUIqlXUS215LuD6k+TVY1RBSgu+gyGHIsNyECd/5aMxo5SAnp9U0PxsGPlg5O6gT7bneioFPTzPc1rtu1PaP6Yq98PXPQZPNP6QKDRfo++ojWjWOinvcpYVUkOVLdHKX4Hn20Jjiiy2ocnS2MUoU5Hb8eCUroyKnRnf0alPnmjJzdpzM4h23oxyy9UhuRkLMn3WKFzuH5XwRNb6E8j7qEMGzcI9G/gHH2N0lHFi4krcaz0QcztSH4YBuqe/fQnnPfo+3HcTkbrva3mW2ktVeJFhjbtQOtMFcswfZP3O7T8bmx7/mTQUWgNr4aG2NRiaKGA/RLJxyWRpwHKIQNPbkXOp0aKTjEarUw1Gf62IVhf5DnFaalMrKbYkA44RTkA5+yjjE6GdXIyu728ovVHwoocFA/zQ0BSYmjfY9iuAdDKq1SbYYJhFkNrnPwv7SDIQLK47WDFCUtdm2Q+ijRL5MTs9vKbkhxd8ZLDMux3xXgN2Una+2whA+pQ8mUg7H7b3XBzsIZDmIvpL9MLPrLGhw71QYj05u0erLGO4s0G2uzX8M+n8oeeyrGhAr2G3CqUaQOn2m7GuXiAnQV3xFAO2D4uGfBOaI0PjNxslujps1N9z8dfIzlu93kGK3SSZU+9nm17kychrXuYlSVZHsYVqji0+MmjyhOyG9y//riHvv8fhXU/8w== +api: eJztVUtv2zgQ/ivEnBJAtrx71GmN7qNpFkmwSbEHx4jH0khiQ5EsSTnxGvrvi6Fk+dEgKHquL7bJb2a++ebBHQSsPGQL+Ne451KZFw/LBAryuZM2SKMhg7+lDyLUJHyNjgrx6f72RtznNTUoSodVQzp4gRuUCteKRDDiZfAmfIT56aN+1PsQQmrbhtS0wbZhjxCOSnKkc+JQnsRGoli9TrCahK2liaNyJS5K4x41vWJjFSVi1ZD3WNFKGCdW1pnGhtXlVHz27ER6QbqwRurAlArpc7MhJ15qDI+anYpn2npBr5zfmkrjSKxbqQqpK4EDscj8nigTi1Gi5UU6sk3RyknVyoLSfdL+cgoJGEsOWcGrAjJQ0oenPeApx4DKVE9MwkMCjrw12pOHbAe/zmb8dVqD+zbPyfuyVeKfAQwJ5EYH0oHhaK2SeQyYfvFss4M+A/5lHdMJso+Qm7Y34viQgdSBKnKQQJBB8cmHiDhvhJu2WZMTphRRvYJKqSXfHVV/Gq1KbFWAbNYl0OeY7UAGavy3ZDQ2FBPQ29sSssXIygcndQVdMp7oVinolgeaN2zbndH8MVe/H7noEnim7ZFAg/0BfU1bRrHQTweVsSiiHKjuTlL8Dj77EpxQZLWPT9bGKEIdj96OBbl0eavQXfzZKvXJGz25jWN2Ccnei1l/oTxEJ0NJvscKncPtuwqe2UJ3HvEAZdiwQaB7A+foaysdFbyYuBKnSh/F3I/kh36gHthPd8b5gH4Yxu1stN7bar6W1lIhXmSo4w60zhRtHqZv8n6Hlh/HtuNPAg2F2vBqqIhNLYYaMjgskXRYEmkcoBQS8OQ25HxspNYpRqOVsSb93zoEm6WpMjmq2vjQXy/ZMm+dDNtoOr+7uqbtR8KCHGSL5TEg5t837SlsLDtaeR0r0s8tzNtQGyf/i5sHEpAsad1bcZpSlyaaD9LMK9IBxfzu6ptCnFzxasM8HDbEcA3JUbI+S1OMx1OULBE1KPkyEDa/jTfcEqxcH2Y2/WU64yNrfGhQH4WIL934TA3VE2+2ze6wfH8+kD/0QA4NFeg1pFahjHs31nY3TMMCRgvuiL4csH9SEuBNwH3OyN1ujZ4+O9V1fPy1Jcftvkxgg06y7LHXk31v8iTEJQ/zPCfLI7hB1fYtfvaU8oSM4/rXHw/Qdf8DZ+Q8lA== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/open-run.StatusCodes.json b/docs/docs/reference/api/open-run.StatusCodes.json index af6f5e9ecc..e6d39ee0ba 100644 --- a/docs/docs/reference/api/open-run.StatusCodes.json +++ b/docs/docs/reference/api/open-run.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},{"type":"null"}]}},"type":"object","title":"EvaluationRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/open-run.api.mdx b/docs/docs/reference/api/open-run.api.mdx index e96a8a0d3e..d4dc22b9c3 100644 --- a/docs/docs/reference/api/open-run.api.mdx +++ b/docs/docs/reference/api/open-run.api.mdx @@ -5,7 +5,7 @@ description: "Open Run" sidebar_label: "Open Run" hide_title: true hide_table_of_contents: true -api: eJy1WEtv20gM/isGTy2gxmmxJ53Wm6SIt80ma6e9BEYwlmh7uqOROo+gXkP/veCMJEuyZDlperIlkR+fQ3K4A8PWGsIHuHpiwjLDU6lhEUCaoXJP0xhCepKPykoIIGOKJWhQEdcOJEsQQlBWPvIYAuASQsiY2UAACr9brjCG0CiLAehogwmDcAdmmxGXNorLNQSwSlXCDIRgrUMx3AgimFk5msaQ5wtC01kqNWoC+HB+Tj8x6kjxjPSEEOY2ilDrlRWjWUEMAUSpNCgNkbMsEzxyZo2/aeLZ1ZTKFBltuJcQpdYzFbpyaXCNqqbchaMIIMYVs8JAeJ4H5AgnSW5vV85BTdSVcO7uJ+D6UfAnrAlepqlAJmuCp3r0mWhqoldMaMwDYmeROQFg4qm6ISKRagrbcYgLT9UN8d2iHVTiX0fUowOLNifo4Km6IXQmuBlCmDuiDoANc1aoIjC9GNfMGeLoemAMaqPRDOPcl4Q9QOgPaaqGoa72pD1gkdUmTQaBLjxZD8jGJkwOYlw7qh4IZk06iDAhogOAPCi50uU3jEyNaV/PZlZ+dMcuDyoh0goB+YL4Dw4ki2NOfEzcNY7mnqKlaQ23qGj0phsGIq4iK5h685ktUfytU/nu1prMmrfQNoaqXmlOmxoOTD+0bs99782HBA17obE1y1oVsSE4WTbf1H005JGPVgw4JNgBN5icyMWUYtujfmnxPs+pN+TMPCha4EkuO8D4h3jzoNnIXgZ1WYPIA4gUMoPxIzPHAGutN2YG3xnu9OmXcuFhRxPnLJvFv0PIFw9bCIlR4G8QculhCyGlu5ZbmmNOk+OGlVOc9dfWTTF7f72qlNJblZTSYa8qpXRXJeX1oD3eEyr9C+n/tWDPA9CGGXu0igWA0iY09mYoY//GTSw0SigrpX+l/UBJxjAurKJZBZXyPTViMkIhMIZFV9eZeyW6VK6aWCWdgsbapbk5GGqDWcumohS2Kf/DbdeMXar4Cbf7OtfvGC6pINJA/5T6kRkCYFKmxj/UuwtB5AGkiq+5PAYalbPEphgIXO+vQd16CBqkcYUKZVS0o5421bT8FVNI2PVLYebE++oH5MioMytdddi/OojcIOCi+3rp1CF3f/l7cBCdh2Rm5SUzbG4wm8pmAx5u3lNvwynCC4oqRRvpNaTZs5Sau2Pq8jdD1nbxscmpBTQr+Gvl4j1NcCzLuGyPrD2hi1JhE9kRUi7jozGl77XJpo/OTy9D/iewAuuYq2+8ZRdeZ1fGMXtpdXMbiCNkd/T9tMxxUCco7lNlALKISGHcCajPSr6bMjlOvhiRpK570an8v8Jb7WjynHj++PDhcKXzlQkeO4bRFTXel+9zYjSMC7di6T4sIo0aX59zA1q0o1S7uJXdkw6vXh9LyhvUmq3xWHeuHEnOGJWN1/dqIq+XRjfWmh81mIN4XJAvf5jBtCXfePULunrXrELkI9TviksfgmMJcn1/f3cA6POjmRi3GcrRzG0kEzSblLaUWapNeWBDGON+ozlWVurxzm8p8zGtM+kMonoq95hWCeJhGXcB9o8bYzIdjsdozyKR2viMrVEadsa4J1wQRmQVN1sHMrmbfsLtNbIYFYQPizrBnPLSZ1qTrIoOy/gnV3GKnerEmk2q+P/l8OVWqxvPlbuor9J60CdOudHkbgptbzU+0QFikcuXUpL7DEHL7L21NMIl7viAQZb8WX1pDO5wfvb+7NyV31SbYi9UiKjFq3XXLaynPBxngvnpzymyK0L5ALVQ+gGdfsJq6eziuQhgQwkQPsBut2QavyiR5/SatngUoEUAT0xxtiR3Pewg5pr+x8U26UCzqtLAm1lxGN6O9uuFpsZlECVFkNSlJwh8vyr3465QbMr8KJoZTKIIM1NjO6hrlEhVmt/dzu8hz38CzWEUFA== +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/open-runs.StatusCodes.json b/docs/docs/reference/api/open-runs.StatusCodes.json index c33d986a40..469f9f0054 100644 --- a/docs/docs/reference/api/open-runs.StatusCodes.json +++ b/docs/docs/reference/api/open-runs.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/open-runs.api.mdx b/docs/docs/reference/api/open-runs.api.mdx index 6b8a4106f3..6875948096 100644 --- a/docs/docs/reference/api/open-runs.api.mdx +++ b/docs/docs/reference/api/open-runs.api.mdx @@ -5,7 +5,7 @@ description: "Open Runs" sidebar_label: "Open Runs" hide_title: true hide_table_of_contents: true -api: eJy1WVlT20gQ/iuuedqtEkdIQnb9tA6QwhsILCbZB8pFtaW2PdnRSJkD4lD+71s9I9mSrMMQhxesUffX53T3jJ6YgZlm/Tt29gDCguGJ1GwcsCRF5Z6GEevTk7xXVmoWMIXfLGrzPokWrP/EwkQalIZ+QpoKHjqug686kbSmwznGQL9SRZiGo6YnZeU9j9xPbjB2P8wiRdZn2iguZyxg00TFYFifWcsjtgxyAlAKFixghhtBzzdW9oaRZss1STL5iqHJtOUKIzIxlzles66tvrFyGOkbbxxbEtaa1yiLbkGnidTegqPDQ/oXoQ4VTwmC9dnIhiFqPbWid5MRs+ClPgoT65kyo7g0OENVsPzEUQQswilYYVj/kLSkOBX9WkadChfxJwZycTVl/bsqAdf3gj9gQfAkSQSCLAge6t4F0RRET0FochLX9xCaLQAGnqoeIhSJJs+3Q5x4qnqIbxZtpxL/OKIGHSCcb6GDp6qH0Kngpgth5IhqAObgrFBZYBoxzsEZ4ugaYAxqo9F049zmhA1A6HdMorqhztakDWCh1SaJO4FOPFkDyNzGIDsxzh1VAwRYk3QiDIhoA6Cm5tQWlw9u2y2DlRBphWDLMfFvbEiIIk58IK5LW3NNUdG0gJuVT1qph2EhV6EVoH67gAmKv3Ui966sSa35nVWNWRZqZZWabZi+ad2a+9abz2I08EJjC5ZVKmJJcDwprxR91OWRD1Z0OCRYFdZtuHyravNLhfd5Tr0kZy4DJiHGLV22gfGJeJdBuZG9DOq0ALEMWKgQDEb3YNoAC30+AoN7hjt9mqWceNjewDnLptGvEPLZw2ZCIhT4C4ScethMSO6uyeKeR1vKySajbme9X/SGUdFfO5WSe2slJXfYTqXk7lpJ2R20x3tApX8i/b9k7MuAaQPGtlaxgKG0MY2lKcrIr7iJhUYJZaX0S9oPlGQMcGEVzSqolO+pIcgQhcCofqQdeSXqVF41sZV0ChpUS3N5MNQG04pNDTPmf7ioG+hzFT/iYl3nmh3DJRXEgHH5kPiRmQUMpEyMfyh2F4JYBixRfMZlG2iYzxLzbCBwvb8AdeUh3Lg/RYUyzNpRQ5sqW77DFBJ29lKYEfHufIO0jDo3uas2+1cNkRsEXHR3l04dZz+CaDr3nYKBkcF0KMsNuLt5D70N2wjPKFYpWkqvLs2epdTIbVOXvylC1cVtk1MF6CbjL5SLVzTBQZpyWR1ZG0IXJsLGsiakXEatMaX3hcmmic5PL13+J7AMq83Vl96yE6+zK+OYvrS6pWDmbWTX9H67zHFQWyjuU6UDMotIZtwWqM9Kvss8ObY+GJGkunPRtvztF0Ol7L2j09Yjl1HySHa1tDqJj3QNtMth75OHpCYlol2DX3lI2jD4fVvozqL/ibCWARM85vWg25SRC8ftmnOEaruZCHS4moroYJI9jFt94OBdZzGoHkC8WONhDkBFFEz90WrzoLlZQIm3LZH/XeXiT2wAvbppXLpryzdHR5sXk19A8Mhx9M5ofHz5rWSEBrhouWAUSVh6+5xz/Lh5M1/kMyC1ID1rK62XqDXMsG3GXHmSnNHLx0c/cRJ5scG7w5n5XoDZCMgJ+ZI2S0fxJd949TO64uy3CpGPULMrTn0I2jLk/Pb2egPQ50c5Ma5SlL2sUMZo5gnd96eJNnnf6bMDXH8bOKDb5QP6HkAdBBXNuy62VgkihZS7wPrHuTGp7h8coN0PRWKjfZihNLAP3BOOCSO0ipuFAxlcDz/i4hzBFYq7cZFgRPnoM6xMtooKpPyj65d+aGADa+aJ4j/yowMdDNjcc5EjKNNv1l8zzr5DnAosfZ24Y6+n8Mfb6fGbvbfvXr3be/P2+Ghv8noa7h2Ffx6/nh4fwxSOqS4xLqdJMXUGztTe4HrIqj4vvaJtCKHLulxv95oFFSeufUeFMnabkBmE+K/Vm9Ihlh3uv9o/dKNIok12R5qJKEa9cvGTOZPS+SAV4I9CTpOnLCHuWCEhWPbBwX0ycmeyOSVP/449PU1A42cllktapotsivI4YA+gOEzIS64jz/N4Z6OV303S7N36iZmE+fhWqhQlmucYhCGmppV2XMjv66vRLQvYJPuGFScR8Sh4JGvgkfWZs8cbSPlAa09MgJxZKix95jHp73/x80eG +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/open-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/open-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/open-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/open-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/open-simple-evaluation.api.mdx b/docs/docs/reference/api/open-simple-evaluation.api.mdx index 6809142694..6098c397f1 100644 --- a/docs/docs/reference/api/open-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/open-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Open Evaluation" sidebar_label: "Open Evaluation" hide_title: true hide_table_of_contents: true -api: eJzlWEtv20gM/isGTy2gxtliTzqtN0mRbLubbJz2EhjBeERH0x2N1HkE9Rr67wVnJOtlxU6annJKLJEfyY8Uh8MNWHZvIL6FswcmHbMiVwYWEeQFav/rIoGYfqk7I7JC4h1uBSGCgmmWoUVNGBtQLEOIoRG5EwlEIBTEUDCbQgQavzmhMYHYaocRGJ5ixiDegF0XpGysFuoeIljlOmMWYnDOo1hhJQk0nk4uEijLBYGaIlcGDeG8Pz6mPwkarkXhHY1h7jhHY1ZOTq4rYYiA58qisiTOikIK7mGnXw3pbFq+FZoIsSJY4LkLSpXLQlm8R93y8cRLRJDgijlpIT4uoxYt3qBaX648a13wlfQZGRcQ5k6KB2zZX+a5RKZa9i/M5BPJtDxYMWmwjEidcXsAwCxI7YbgMjeUxMchToLUbohvDt1eJ/71QiM+MJ4e4EOQ2g1hCinsPoS5F9oBkDIfha4SM4pxznwgXm4ExqKxBu1+nJtacASoKrJc74c6a0RHwLgzNs/2Ap0EsRGQ1GVM7cU491IjEMzZfC/CjIQGAGVUa+XLr8jtzkZy7dQH/9mV0daIclJCuSD9wQfJkkSQHpNXnU+zkeh52sKt+hs92Q0DXGjuJNNvPrElyr9Mrt5dOls4+xb6wVDzq8PpS8Mg9GF0jfZNCB8ytOyZwbYi6zXGjuFs2X3S5mgfIx+c3ENItAFhMTtQi2nN1o/y0tN9Gql/E5llVJ2LB1E2wPiHdMuoe549D+q0BVFGwDUyi8kds48Btg7ihFl8Z4X3Z9zKSYCdzDxZrkh+hZHPAbYykqDEX2DkNMBWRmq6lmuaag6z40eXQ8j6c+2HmYavF7VSs7W1UhP2olZqurZWXg464D2gNj9R/l8qdYqf9btcd8Yylln3aJeLAJXLaHIuUCXhiZ9oaNTQTqnwyIS5k4JlQjpNswxqHc5czhRHKTGBxa5TaR6c2Hkm0dixvjMWi56XVfPbT/awBY41+rHAeX3sp9XZ7Y9p8q4ic029Kwy1I8YP6KE0OK0ncx8pKYb551WEXs16TfCtS8qrIGDWxNuQsJ1wXwUF2yG9IUBjgczu7k47J64e5HWl/9hsPPeX/aYXnTI/yQw60RMgflJ9e20vS1L7/f374S3/C5MiCeVyRk32+Vf8BC0T0l+364rqCsicd94+ZRpe9MuvNcTnvCYLMnO/q/6a4dIYdo9NOY2LejImN/SWjmVFgyyJ16erqiZbbr+3YAYpOSEuv9udhdPsdW49N8H9Sq59CG9TFDI0TsVpSMFjNXJ+c3M1AAz10S2MywLV5Ky9ucrQpjnttorcWL/JsinEMA1brmmzqzHTTWefVU5pG0ZHO+qHevHltCRlVgif8PAztbYw8XSK7ojL3CVH7B6VZUdMBMEFYXCnhV17kNnVxUdcnyNLUEN8u2gLzKlOQ+V1xbbZYoX4iMRftYSbOZvmWvxfB+yXcGnQKn0VrPJ2Ecy8c5PZ1QX02eu8og+KcV8/tSX/GqJe2E201DQz/zmBRZb9sX3TGerg+Oi3o2N6RCmpdgaViWH+etehigQqz2khmfAfkPdnU6X2FkJqob2Ioyks7q8rfX4XEaRUGfEtbDZLZvCzlmVJj/3oRfmJ4IFpwZZE3+0GEmHo/6TaPAxc3HYieHNdfSxvJ81VtOt6nVRFGSX/6BdE8B+uBwtW30/Sumw2lcyMcyxsS3vQ/qi+tp/B1eX8BsryB+Arjxc= +api: eJzlWEtz2zgM/isenNoZtc529uTTukk6ybbdZGO3l4zHA1NwzC71KB+ZqB799x2QkiXbku027amnxBTwAfhAgiDWYPHBwOgeLh9RObQySw3MIshy0v7XdQwj/pXOjUxyRXPaCEIEOWpMyJJmjDWkmBCMoBGZyxgikCmMIEe7ggg0fXVSUwwjqx1FYMSKEoTRGmyRs7KxWqYPEMEy0wlaGIFzHsVKq1ig8XRwHUNZzhjU5FlqyDDOm7Mz/hOTEVrm3tERTJwQZMzSqcFdJQwRiCy1lFoWxzxXUnjY4RfDOuuWb7lmQqwMFkTmglLlskwtPZBu+XjuJSKIaYlOWRidlVGLFm8wLW6WnrVt8KXyGekXkGau5CO17C+yTBGmLfvXZvCBZVoeLFEZKiNWR2FPABgHqW4IoTLDSTwMcR6kuiG+OnJHnfjXC/X4gGJ1gg9BqhvC5EraYwgTL9QBsEIfha4S04txhT4QL9cDY8lYQ/Y4zrQW7APSKE5wZxrEDngj0JyCs5Hsgao2faaPY102oj1gwhmbJUeBzoNYD8jKJZgexbjyUj0Q6Gx2FGHMQnsAZVRrZYsvJGxnYbtz6TtfBspoYyR1SkE5Y/29AoFxLFkP1e1WqWgkdjxt4Vb1lle6YUBILZxC/eIDLkj9bbL01Y2zubMvYTcYLsZ1OLvSsBf6fnSN9jSEDwlZ/MFgW5HtFOotw8lie6XN0TFG3jl1hJBoDdJScqIWao3FQV52dL+P1I9MZhlV9/RJlO1h/MO6ZbR9v/4Y1EULooxAaEJL8RztIcBWYxCjpVdWen/6rZwH2MHYk+Xy+FcY+RRgKyMxKfoFRi4CbGWkpmtRcJd1mh3fSp1C1tvCN1cNXz/VSs3WxkpN2E+1UtO1sfLzoAPeI2nzjO3/uVLn+HG3ym33fMaidQerXASUuoQ7+ZzSOKz4DotbH+3SNCyZ0AdzsCiV09xbkdbhzhWYClKKYph13UqT4ETnncRtUDE3lvIdL6vid5zs/RLYV+j7Ahf1tb+q7m5/TbN3FZkF167QZPcYP6GGciNXDCY+UlYM/dhvEXrVezbBtx5NvwUB4ybehoRNh/tbULBp0hsCNOWEtrs6dXZcO5B3lX7pH+TCaU2pKA6VwwVasZob+a27iznF6FuGGEwYgrtMfJprsrqvlTwF8SM+De4qDM+K1cU8JoVFJ+R+49lBjNXF4MJDnPxwuECL5y0aO8r1AaiJH/I0gIz2TIhnqm/GNWXJan++ebM/3fmMSsbhWF7yZfbjo52YLErlxyz1yd0WUJnY+vo9r47Z7jFvPZYyUZMFiXnoOudNE28MPlBzbPtFPRmDKX/l9iflBwOL111MWr0ghH1qweyl5Jy5fLKde7CZ5917boL7lVy72dmkKGSon4qLkIJDe+RqOr3dAwz7Y3tj3OSUDi7bE8uE7CrjmWaeGesnmHYFIxiG6eawmdGZ4XprjlkOeQrKLRTpx3rg6bRiZcylT3j4ubI2Hw2HKhOoVpmx4fOMNYXT0hZedXx7/Z6KK8KYNIzuZ22BCe/OsN+2xTY5wly+J2atGrmOnV1lWn6rw/Qj11XQKn3ul1k79eMHSi0OxrfXsMvZ1ic+Rij8rqkt+c8QtYI1o+EQ/fJrlEO+khJ/iMASJn9tvmy1zHD2+o/XZ7zEiagmMpWJ/aztPDYrEnhTDnOF0h8b78+6Sug9hIRCe+zKPe5odzjtszqLgDPFeuv1Ag190qosedk3tpyfCB5RS1wwffdriKXh/+NqrrPn4qb+wIu76oi8HDQP/W3X66SmnFH2j39BBP9RsTdO91VkVW+bdSUzFoJy29LeK3q8vzab//ZmMoWy/B/yDDos sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/otlp-ingest.api.mdx b/docs/docs/reference/api/otlp-ingest.api.mdx index 1ca54e9adf..0c7191e0c1 100644 --- a/docs/docs/reference/api/otlp-ingest.api.mdx +++ b/docs/docs/reference/api/otlp-ingest.api.mdx @@ -5,7 +5,7 @@ description: "Ingest traces via the OTLP/HTTP protobuf protocol." sidebar_label: "Ingest traces via OTLP" hide_title: true hide_table_of_contents: true -api: eJztVs1uGzcQfpUBc0gCrFay417US+U0RVyntWEpQAtL8NK7Iy0T7nBNDiVvBAF9iD5hn6QgqZV/cum1gE/7w+HMfN98nOFWsFw5Mb4WFy3SDDU2yLYTi0xU6EqrWlaGxFic0QodA1tZooO1ksA1wsXs0+Xw42x2Ca01bG79Mr2URudzmtOsVg6QqtYoYpBliS07kODQKqnVN6zmVHy4b43lWfA8RbtWJV7hnUfHxcFrDpfJA3UPMedUGq2xZGPBWJj+fA6Sobi8mM5gaFi3w/XRMCVcgKQKXCvJwUZpDUttNnNSxCbicLJBUAmiY4uyAeniymSFxHJAktUaD1BcRPfZIXBAuKmRoDMepLYoqw5quQ7koAZFjq1vgpPAJGCjmBWt5hRw5PCLsUC4AUWMKxttQmDJUBl6zUCIFVi5ibAzaC0u0c5pjzKgU7QaRmTDBKCAf/76GxQDy6/o4Nfpxe/ZgfoE57WbE6FjrMDVskWolMWSdZclnrxdxjK30jqEpVTaW3SgmgYrJRl1F/G/egXvDTESD2Zdi2mv+oagVaM4WJwqkrZ7EIch3cGb4vGuMci21aqM0If3g962eJvPKSQfkYNyQKaXEFY57DXiQEu7Qhs4o1ix0tBSrbwN2rqVXNYpHXhT4VJ6zXACv51m4BChCK5vfpv8cXM6mb3/eHP65+zDtHgLFtlbmlNxcvSuDwQfiBV3MDMGPoWQRc/BFbrWkMPwOfVlic4tve7llHw5KI5HI7g4L2CjuP4vRyA5fXIGnpbDRLxzsvsEb03V7cNBcTIaFT9CI/XS2AZ77ferP8TVO29Yzgnva+ldVOch2ZPRuyKHT+orRk738t9DaiXXLksu5yQtwp1Hj1XISMIVVsodThFV0KJ1KopNuo7K2hoy3uku6tQhzul6lnQc/0yCEWysYgwnnILGefFmGJWPVOJQtmqw8qrCXv+vouNB3DPotwyOR8dvc5EJ02I6WGeVGIvQGG4SEJEJu6fZifFWHI9G4fG08T2qaF8TkYkyKTiYP5bvFxf2bIUra2xkeGttCM8qRXAs2cc37loUY+HYKlqJTLBiHX5Mk8Xz9nuFslKELhKraJVDETtNAQ1KSq3KGs9ow0lpjKfIN1WHk59OUcSdi90u6zMwt1+wTFTceWWxCsNgn+fiIa/3qdWm9B4R8TTNGOTQ7+0h6Z7mEHkXgjfItQnlaE2sQ5CUGItnbVtkwqFdow0Taiu81cFGtkrssv6zZm7deDhEn5fa+CqXscXlUiXDRfBRequ4i04ml2fn2H1EWaEV4+vFY4NpKFuq1FOzQ71kq86xE5kg2YTviefaWPUtll9kQgUW6rQr4FS0NHH7nsbUf2FyefYdd0+Wgr5kGfXVR4rLInsG+wGtyAQ2UoVFRtn8dFgRu0wEDlOYUX6Uj8KvwHwj6VGI72d8qOfzRLcP4n+5FbzcCl5uBS+3gv/jrWDf0BnvedhqqSj0xNhbt/tpdB3vCiIT66NgnybSIhN1GFnja7Hd3kqHn63e7cLvO482jJhFJtbSKnkbGv71Ypf18yBMn6/YhV4e9Ro8S+3TWHl2hwhT6TAjw6kWu92/fyrkpg== +api: eJztVs1uG0cMfhVickgCrLSy417US+U0RVyntWEpQAtL8NK7lHaSXc56hit5IwjoQ/QJ+yTFzGjln1x6LeCTVkMOyY/8SM5WCa6cGl+ri4Z4RhXVJLZTi0QV5HKrG9GG1Vid8YqcgFjMycFaI0hJcDH7dJl+nM0uobFGzG27jB+5qYZznvOs1A6Ii8ZoFsA8p0YcIDiyGiv9jYo5Zx/uG2Nl5i1Pya51Tld015KT7GB1CJfRAncPPuecm6qiXIwFY2H68zmgQHZ5MZ1BaqRq0vVRGgPOALkA1yA72OiqgmVlNnPWLCbgcFgT6AjRiSWsAV2QTFbEggNG0Ws6QHEB3WdHIB7hpiSGzrSAlSUsOihx7ZNDFWh2YtvaG/GZBKq1iObVnD2OIfxiLDBtQLPQygYd7xgFCsOvBZioAIubADuBxtKS7Jz3KD06zas0IEsjgAz++etv0AKCX8nBr9OL35ND6iOc127OTE6oAFdiQ1BoS7lUXRLz1NplKHOD1hEsUVetJQe6rqnQKFR1Af+rV/DesBDLYNY1FO/qbwSVrrV4jVPNaLsHchiuOniTPb41BmyaSucBeno/6HWzt8M5++ADctAO2PQUomIIe444qNCuyPqccahYbnipV6313LpFycsYDrwpaIltJXACv50m4Igg86Zvfpv8cXM6mb3/eHP65+zDNHsLlqS1POfs5Ohd7wg+sGjpYGYMfPIusz4HV+Qaw47832mb5+Tcsq16OkVbDrLj0QguzjPYaCn/SwtEo0964Gk5TMA7Z7sP8NYU3d4dZCejUfYj1Fgtja2p534v/SFI71ojOGe6L7F1gZ2HYE9G77IhfNJfKeR0T/89pAaldEk0OWe0BHcttVT4iBCuqNDu0EVcQEPW6UA2dB3npTVsWld1gaeOaM7Xs8jjcDLxSrCxWsh3OHuOy+JNGphPnFOKjR6sWl1Qz/9XwfAg3Bn0VwbHo+O3Q5Uo01BsrLNCjZUfDDcRiEqU3afZqfFWHY9G/ufp4HtU0b4mKlF5ZLBXf0zfL87f2SqXl1Sj/2qsdy86enCC0oYv6RpSY+XEal6pRImWyh9Mo8bz8XtFWGgmFxKreTWELEyaDGpCjqPKmlbI+k6pTcsh31wcOj92UcA9VLtd0kdgbr9QHlNx12pLhV8G+zgXD3G9j6M2hvcoEU/DDE4O894egu7T7D3vvPOapDS+HI0JdfCUUmP1bGyrRDmya7J+Q21Vayuvg41Wu6T/W4o04zStTI5VaZxE8cLfzFurpQtXJ5dn59R9JCzIqvH14rHC1Bcr1uep2qFK2Ohz6lSiGGv/f9JKaaz+FoquEqU99jLe8ug0L024vk9enLowuTz7LmNPRJ5VmAdW9Z6CWCWPwLpxmmI4HqJOVaKoRu2FQlj/dJCoXaJ85qKb0fBoOPJHPt818iMX3292X8XngW4fKP/yFnh5C7y8BV7eAv/Ht8B+oAvdS9pUqNnPxDBbt/sddB1eCCpR6yOvH/fQIlF+t3jpdnuLjj7barfzx3ctWb9iFolao9V46wf+9WKX9PvAb5+v1PlZHvjqLWPVxrXy7OXgt9JhM/quVrvdv9U64Uc= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/otlp-status.api.mdx b/docs/docs/reference/api/otlp-status.api.mdx index f48eea639b..b163e911fb 100644 --- a/docs/docs/reference/api/otlp-status.api.mdx +++ b/docs/docs/reference/api/otlp-status.api.mdx @@ -5,7 +5,7 @@ description: "Return the OTLP endpoint liveness status." sidebar_label: "Status check for OTLP" hide_title: true hide_table_of_contents: true -api: eJzdVMtu2zAQ/BViz4Ts9KhTjaJojQRIkLgny6hpai0xkUiGXDlVBf17saIdx26/oBc9uEvOcGbIAUhVEfI13Hu0K2ywRQo9bCSUGHUwnoyzkMMjUhesoBrF/eruQaAtvTOWRGMOaDFGEUlRF7PCFvbOVDW9IT9FQFWaqcEHt8NMpJWi2A4FpDkF5KIAbuwLGLfirUZbWIYKriMMwkTRus4SlplYWkJbYin2LogaVUO10DXqlyj2wbXifoVNYbVrGtTkQhQ73LuAzLxnjoEE/vIukLGVoKA0xgwkOI9B8V6XJeTgqPE/EzmQEDB6ZyNGyAf4NJ/z61Kdp05rjHHfNeLx2AwStGOuxO3K+8boCWD2HHnOAFHX2Cr+8oHhySSEI24+APUeIYdIwdgKJJChhgeeTsyuPTpJnWZkYjuJuhUtKhvFPxUVypZCaY2eYrLW2AojZTCO8sTA7Z5R0yTFa2cClpyYI8/NmdeXpHqi90GIS5qX+Tnn4yQzI48M3iLVju2okLG9ohpymLE5s8PNLJkHEiKGAwZO8QBdaLhHeQOjPP3WRD7msxl2mW5cV2aqQksqUyY1bngN3QVD/bTI4mF5i/13VCUGyNebjw1P7Foy6rLt3S7lzS32IMGqlv8XHdUumN+T+yDBsAh1msXbNHbvpulHFRcTObF4WP4l3UWJ46X0FK8T0lQGebXt825BArbKcJFQtZ/fKzBKYA0TzDy7yeY85F2kVtkPEMnbdOKmI8huXvMcztH/7y+Oo+mEv2jmG2Us6zbpPxwTu56uE5BwuOH+lNqNhNpF4uow7FTEH6EZRx5+7TBwDDcSDioYteNQrDejPGWGE/qCPfs9HVteWTVdit7VNcPJfT9G376uYBz/AMxxFVE= +api: eJzdVEFu2zAQ/AqxZ0JyetSpRlG0RgIkSNyTbTQ0tbaYUCRDrpyqgv5erGgndtoX9GJZ3F3NcGbIAUjtE1QruA3olmixRYo9bCTUmHQ0gYx3UME9UhedoAbF7fLmTqCrgzeOhDUHdJiSSKSoS8Xard2N2Tf0ivwrIqraTA0h+i0WIn8picdhDXlmDZVYAzf2axgfxWuDbu0YKvqOMAqTROs7R1gXYuEIXY212PkoGlSWGqEb1M9J7KJvxe0S7dppby1q8jGJLe58RGbeM8dIAn8FH8m4vaCoNKYCJPiAUfFeFzVU4MmGn5kcSIiYgncJE1QDfJrN+HGpzkOnNaa066y4PzaDBO2ZK3G7CsEaPQGUT4lnBki6wVbxvxAZnkxGOOJWA1AfECpIFI3bgwQyZHnh4cTso0cnqfNEIR4nUR9Fi8ol8U9FhXK1UFpjoJStNW6PiQoYR3li4LdPqGmS4qUzEWtOzJHn5p3Xl6x6pncmxCXNy/y85+MkMyOPDN4iNZ7t2CNjB0UNVFCyOeXhqszmgYSE8YCRUzxAFy33qGBglKfXhihUZWm9VrbxiXJ5w5O6i4b6aXR+t7jG/juqGiNUq815wwN7le25bHszSQVzjT1IcKrl93lHjY/m9+Q5SDC89SZP8eaM2/lp/KjdfI+OlJjfLf4S7KLEoVJ6CtUJaSqDPNtsqspSTcuFMiVIwFYZLhKq9vNbBUYJrFyGmRVXxYyXgk/UKncGkR3N52w6eOzhR57De+D/++viaDrhLyqDVcaxbpP+wzGnq+kSAQmHK+7PWd1I4PxxdRi2KuGPaMeRl186jBzDjYSDikZtORSrzShPmeGEPmPPfk+Hlb+sbJej9+Fy4eS+HZ5vX5cwjn8ANGoR8g== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/patch-organization.api.mdx b/docs/docs/reference/api/patch-organization.api.mdx index 7323f33c2b..feccd261a7 100644 --- a/docs/docs/reference/api/patch-organization.api.mdx +++ b/docs/docs/reference/api/patch-organization.api.mdx @@ -5,7 +5,7 @@ description: "Update Organization" sidebar_label: "Update Organization" hide_title: true hide_table_of_contents: true -api: eJztVsFu4zYQ/RVjTi3A2mnQk051s1vE2G5jJN72YBjBWBpb3JVELkklcQX+ezGkbEm2E7Qu9tZcHJEzj8M3b4bTgMOthWQJd2aLlfwLnVSVhZUApcmEr1kGCWh0af6oekYgQKPBkhwZRmigwpIggb7Ro8xAgKwiQg4CDH2tpaEMEmdqEmDTnEqEpAG30+xunZHVFgQ46Qpe6Ec2mmXg/SrCkHW/qGzHvseoqaocVY63UOtCpsF78tmqite6Q7XhezpJNqwX9Tb4VLu7TbjTMCgvDitVXRTAkezDfGBfL1oWLsP4nX29gIxsaqQONF8I9a4H4QVsipDnPhZmmeRtLOY9EiJ/Lapaf6bUvXnOrwHYC6h1ho6yR3SXhvwpIoymDrw/juG8HqILeM8OhqxWlY2pvL664p8Bk/BQpylZu6mL0X1rDBeLRWbnVLtRpmQKoK6D9vdRs3DF/wL7DwJz3+iARYtfksNvgf+Rcb0A9VyRefx3qrljn1HUTknlOrTaBqSj0p7idEWDxuAO+jFEX8/N+Em6ts33oF73nfUcvIBnZb5YjSldFsmfnfu5Iu8a+RICEwfWVuc7QFv7P11fn5b7H1jILL4b741R5vJaz8ihLAYXHhoUKh3s/oOKkpWjLRnwq9fZ+k2luK+w0m7feiY/krW4pY76100DGaMF7wZB6DoQ0iWcF7yA1L30YE4a8Q1z+XK+WffzyNzE8Fu7Xiq7FMUMvU7Fu5iCt16G28VifgIY9TEURnw2RnfDcaYkl6vDsBPmG5dDApP+RGMnzdGA40GAJfO0H4NqU7ATahmyHT9z57RNJhOqx2mh6myMW6ocjlFGwxVjpLWRbhdApvPZB9rdEmZkIFmu+gYPLNIou6HZIVWo5Qdi8tqRbFq7XJnupmEgy6MXs8Pyv+8mqvcvWOqCuomok1ALePge8tr1s/Y1OJoLeu1BVhvVF9008DGazmcnqIMtLmBMg173lwvbII6Y7ggGAVSG8gVHWP582OE4OG3xmKvxj+MrXtLKuhKr3hHn9XL0iLbcc0lMdIEyFG2IqWmVtBzMxhYEJMfD8kpArqxj26ZZo6VPpvCel7/WZFgbKwFPaCSumbZlA5m0/H8GyQYLSydhHToefHffFuX3IxDnw93rp2LxPGFR8xcI+EK7M5N96Fz5XqNNa3UTD/wh9JcO5aTdcnFEj2maknZv2q565TmfLm5uQcC6Hf5LlbGTwWduPPgcQ1b68MaFtQYKrLY1t8gEIij//Q1BGnTX +api: eJztVlFv2zYQ/ivGPW0AF2dBn/Q0L+0Qo2tjJO72YBjBWTpbbCmRJakknqD/PhwpW5LtBJuLvjUvjsi7j8fvvjteDR43DpIF3NoNlvIf9FKXDpYCtCEbvqYZJGDQp/mD7hmBAIMWC/JkGaGGEguCBPpGDzIDAbKMCDkIsPS1kpYySLytSIBLcyoQkhr81rC781aWGxDgpVe80I9sNM2gaZYRhpz/XWdb9j1ETXXpqfS8hcYomQbv8WenS17rDjWW7+klubCuqk3wKbe363CnYVCN2K+UlVLAkezCvGffRrQsnIfxkX0bARm51EoTaD4T6m0PohGwViHPfSzMMsnbqGY9EiJ/LapefabUv3rOHwG4EVCZDD1lD+jPDflTRBhNPDTNYQyn9RBdoGnYwZIzunQxlVeXl/wzYBLuqzQl59aVGt21xnC2WGR2SrVrbQumAKoqaH8XNQtX/BDYNwjMf6cD5i1+QR6/B/4Hxm0E6KeS7MP/U80t+4yidgoqVqHV1iA9Fe4YpysatBa30I8h+jbcjB+lb9t8D+pl32nPoRHwpO0XZzCl8yL5u3M/VeRdI19AYGLP2vJ0B2hr/83V1XG5/4VKZvHdeGettufXekYepRpceGigdDrY/Q8VJUtPG7LQLF9m60+d4q7CCrd57Zn8QM7hhjrqXzYNZIzmvBsEYapASJdwXmgEpP65B3PUiK+Zy+fTzbqfR+Ymht/a9VLZpShm6GUq3sYUvPYy3MznsyPAqI+hMOKzMbodjjMF+Vzvh50w3/gcEhj3Jxo3rg8GnAYEOLKPuzGosoqd0MiQ7fiZe2+S8VjpFFWunY/bS/ZMKyv9NrhOZtP3tL0hzMhCslj2De5ZmlFsQ7N9gtDI98SUtYPYpPK5tt39whiWRy/mhEV/181R756xMIq6OagTTgu4/x6y2XWx9g04mAZ6TUGWa92X2mRDpcfRZDY9Qh1scdliGlS6u1zYBtHj1yXjMYblC5RjEEBFKFrwhMVv+x2Og5MVj7m8+PXikpeMdr7AsnfEaZUcPJ0t91wIY6NQhlINMdWtfhaDidiBgORwRF4KYFGwbV2v0NEnq5qGl79WZFkbSwGPaCWumLZFDZl0/H8GyRqVo6Ow9n0OfrprS/HnEYjT4e70U7J4HlFV/AUCvtD2xDwf+lW+02jdWl3HA38JXaVDOWqyXBLRY5KmZPyrtsteUc4m8+sbELBqR/5CZ+xk8YnbDT7FkLXZv2xhrQaF5abixphABOW/fwHMRHF4 sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-analytics.api.mdx b/docs/docs/reference/api/query-analytics.api.mdx index 03c9e0ec6b..d4963de16a 100644 --- a/docs/docs/reference/api/query-analytics.api.mdx +++ b/docs/docs/reference/api/query-analytics.api.mdx @@ -5,7 +5,7 @@ description: "Aggregate span metrics into time buckets." sidebar_label: "Fetch Analytics" hide_title: true hide_table_of_contents: true -api: eJztWV9v2zgS/yoE+3BNodi94p78dNn+wfa2bbJNtveQBBVNjS1uKVIlR0ncwMB9iP2E+0kOQ1KyZMeOm3YPOKAviSUNZ36c/xzechRzzyfn/AXUDqRAKPhlxgvw0qkalTV8wo/mcwdzgcB8LQyrAJ2SnimDlqGqgE0b+QnQjy7MhXnfGM9mSiM4ZeZMmIJdK1PYa3pSBRhUUmiGluUnx6dnbIxOSGXmY+Ltx58bcIs8uzBYgkmM1RfwDEtglUBZQhFgeDZdROkkQtqqbhA8swaYdayyDi5MRMp8U1XCKfCsBpd4jthvHhiWyhOUaaN0wWQpHHpmZ0wLBCMX2YWR1mPG0H4Cwxov5pARe9l4tBUzTQUkICAQCHPrwuYEolNTwhNU8ugRew+fG/DIprZY0KtDlnc6ytmf//mDeVEB86WogYm426AKBqaorTKYMS9tDQXBpa9BBxeGMSwFMmlNEtl+F0boBSpJEA5Z3tkgSsutLsBjPs4NXNMPNrMurAsqdcLMo2JzZRDcldA5ySKiqD92rQos2WNlmAdpTeEPoiBfg/RRiGBaeSR95m+DJU5rkDkDggqeRSebkl9cl0qWJGClOdpHMtyXCKW01yP2UsiSkQxWgNTCgWeC5bioIQB8nCebjEkjyjS28XnGureF8tIBAr2bKiOirzGW98w39srMdSDpv60ajaqO7z0Gw2Us/91bE1lYx/InUY+iQXsQMAtWWEQoWF4LLPMUM8l87DERw42oag0BRc9xxHyUAm1EPuhHsqkaLVBdwQgtCp0frJzL19Z4oMefYigy4YA5wMYZKJgyTJbOGqvtPDiodQW4pMxkTylcsIq4MHkSnLNCSWSfYAEFRVtQO+1jxE4B2PlZjNxg6+By89GTC2NEBb4WEi4fjx3MwIGRMBa1Opw3qoA23h9hCYdiftht+bBbeHBhWm9cbXqsjHRQgUGhUwpiWixsg8waBtEthBnxjNsanKDc9brgEx7C6GMXDpyyW5frJugayHgtnKgAwVEuvOWEhE/4zMqG6JVp2fCMO/jcKEdLZ0J7yLiXJVSCT265MIvjWWBA/sgnPLoJzziYpqIsS3sHnnFCSnkWFWoifBUkLbNupWm05stNCiLp0LlK4HeFJ+ak3qhBg6CB9LwYAg1CdyONJD2oMdl8B6g9uZSX5uB2QjmOcvtQYrr730N5F+X2obSZ9VvA7CP6dSunL9wJhG8RbJpqeo/c9yRi4LGh4n2F1M6l4sI+r1BmHsDqNKxbEk6X0qan78+ePqV/w8bntJESvJ81usuxPONUWcBgUEtdayVDrhlTJaB3K5m1o0yEKkqQtomL1ky3UtjzQLHefb0LmqYq2u+1uuQ+CgtmotHIJ0+XGU8EJEkhVH4TCfHxKKq6h6bLBSmtTHghEA6JtIfwrFu5zFb+u2tPK+fLeCorQ38SRaFop0KfDEA+NO7W3XJqrQZhwqu7ZXGpnGy0cI9fNVr/y1tzeNxg3eAB7SNysdPfQca8l5S6zyrhnFjsTpbDtaSlTYnbFr9N+lxurOqHwnnP3j2jbfKJrUMPQoS/oku9xYaHklccRreDgon2tOAHDcbfPFvrK5RftRZU64edEvk7NQDWxTgtqNPo95EDxz+/XGYpDWxE8VlJrZC3+gqK1FQ3PjbS6dgQJLWHGJ6thUuMCCTnG/jlOhUV6L+kC1iuovIvruJ3edJwEa7F4Apid8LYpaVUfnfu444MtE9lzdo243sybzuIjBu42Zd106jiHsg3gadWlbqb6T51/U1YTfumbn5P3/ASQiilIE4Plzt1ENivJfxv7ESy2IB8Y2ex1Vf/3fni3dHUHr13uWo8RVgXE0rKM1yYYpXfN9UbvloqgMYSIBPfGOv68fcmHsOOWwnL0FTE2jQs3FuzjQJd3FW+Vy0TESwz/gkWe5bTDTX/AlS8+JXQzd2m+g4lud3petXZXq7jiW3/KvkhwF9mA4PeHykqdJf+I9nxst+jVbVwylvTs952LvCZrB/+zskfNIZfEH7S3yleD2rAuzio2Iu5R5pXXSssw8ui/UkNqlCGNhAnZvRLq0/QF3QauO0lR5nozx/VAOob5XGv9aUgAKXYUOYLJffjADfKh8aDUKSHHp+X9IbGDHcx28xnLVGvfyBzBxfpQnBb5Enh4aMH4xVNJe70pb5/bwPxXHhgpx2bHpRwdFlmHG6ExI/BgA+W8pJ4sLeBx4aIHfnzDG7wOOmC+A9VIPTdJWAfREdafxWS6GQrJNuNmmju6YVj4hwEdEq8IQt3PX1bIQ6oNm5riJ+vkvawF93VRnW15+varzRs+zX0uMssHYB3HPICn37pMtbAjtq1OTileFubm1LGCmNTSjMbI9O1l+3ElFrdVlo4JWctliebx5AzgrekkRyWuwrcicCBT/MntGqq1qP3K9qTn1RwMn5VKfPQ1uQDrQ08xM3DeYgb4gHF/OEJ5iUt3uVQq6PUjiPfaRqz7DhRtZcsRMnCQCROnGF19ls/qu1AddTOaXsDl7XbqJaCtQMcRnWPznTukFComVqDNeLLJQn9x7Nnm8fDD0KrIoxw2EvnQll44ISnABRK74hJbeWW7u7+hmpHGnpjI8AwY/HzXVHzFjxdYq0svp00KIO14agMjSd6g7TXJs0rJN702GwY9Dnp8gbvTcykmwg/0Q1buGSiaKHtqngRTbDLw34+OzvZYBj9owIsLd0Z1DbMiGMO4t0VZXeJMG4njh7cVXtr0DhNxKJWwYDxsUSs/WQ8hmYktW2KUTydj4SKhJfEQzZO4SIwOTp5/QssfgYRjnTnl32CU/K76ElDsk77olbUtGftlPSowdI69SW6R5qWlnHVMlh1ZvtGPQrg2NHJ682w638KHaYM/tBKaocOw22vdkuVpgrhwRFE9c/uS8iW4HwU83T099HTkP+tx0qYnohXgLJkR4OLnB7C21XY/rix/nFj/ePG+seN9f/NjXVK31Qox7UWsYUMmfQ2FaE4NY4Vun+XHQvRZcZLKlmTc357OxUefnN6uaTXaSZ+fssL5cVU9y7HwmSou+ROUx4eatdW2nTlvA9xd+m7D3F3LbsPce/idB/ydNW51wbbG8p9iNsryBXtJT04RcTpSqJsC/ltWnQkJdT9jW40mMSla0So4PDl8r9fQxMA +api: eJztWV9v2zgS/yoE+3BNodi94p78dNn+wfa2bbJNtveQBNWYGlvcUqRKUkncwMB9iP2E+0kOQ1KyZMeOm3YPOKAviSUNZ36c/xzecg9zxyfn/AXWFgV4LPhlxgt0wsraS6P5hB/N5xbn4JG5GjSr0FspHJPaG+ZlhWzaiE/o3ehCX+j3jXZsJpVHK/WcgS7YtdSFuaYnWaD2UoBi3rD85Pj0jI29BSH1fEy83fhzg3aRZxfal6gTY/kFHfMlsgq8KLEIMBybLqJ0EiFMVTceHTMambGsMhYvdETKXFNVYCU6VqNNPEfsN4fMl9IRlGkjVcFECdY7ZmZMgUctFtmFFsb5jHnzCTVrHMwxI/aicd5UTDcVkoCAADzOjQ2bA++tnBKeoJJHj9h7/Nyg82xqigW9OmR5p6Oc/fmfP5iDCpkroUYGcbdBFQx1URupfcacMDUWBJe+Bh1caMZ8CZ4Jo5PI9jtoUAsvBUE4ZHlngygtN6pA5/NxrvGafrCZsWFdUKkFPY+KzaX2aK9A5SSLiKL+2LUsfMkeS80cCqMLdxAFuRqFi0KAKek86TN/GyxxWqPIGRJUdCw62ZT84rqUoiQBK83RPpLhvkQopbkesZcgSkYyWIFCgUXHgOV+UWMA+DhPNhmTRqRuTOPyjHVvC+mERY/0bio1RF9jLO+Zb+yknqtA0n9bNcrLOr53PhguY/nvzujIwliWP4l6hMabg4AZWGG8x4LlNfgyTzGTzMceEzHeQFUrDCh6jgPzUQq0EfmgG4mmahR4eYUjbzyo/GDlXK422iE9/hRDkYFFZtE3VmPBpGaitEYbZebBQY0t0CZlJnsKsMEqcKHzJDhnhRSefcIFFhRtQe20jxE7RWTnZzFyg62Dy81HTy60hgpdDQIvH48tztCiFjiGWh7OG1lgG++PfImHMD/stnzYLTy40K03rjY9llpYrFB7UCkFMQUL03hmNMPoFqBHPOOmRguUu14XfMJDGH3swoFTduty3cTbBjNeg4UKPVrKhbeckPAJnxnREL3ULRuecYufG2lp6QyUw4w7UWIFfHLLQS+OZ4EB+SOf8OgmPOOom4qyLO0decYJKeVZL70iwldB0jLrVupGKb7cpCCSDp2twH9XeDAn9UYNao8KSc+LIdAgdDfSSNKDGpPNd4Dak0t5aY52J5TjKLcPJaa7/z2Ud1FuH0qbWb8FzD6iX7dy+sItePwWwbqppvfIfU8iBh4bKt5XSO1cKi7s8wpl5gGsTsO6JeG0KW06+v7s6VP6N2x8Thsh0LlZo7ocyzNOlQW1D2qpayVFyDVjqgT0biWztpSJvIwShGniojXTrRT2PFCsd1/vgqapivZ7rS65j8KCGTTK88nTZcYTAUmSHiu3iYT4OA9V3UPT5YKUVia8AI+HRNpDeNatXGYr/921p5XzZTyVlaE/QVFI2imokwHIh8bdultOjVEIOry6WxYX0opGgX38qlHqX87ow+PG140/oH1ELmb6O4qY95JS91kF1sJid7IcriUtbUrctvht0udyY1U/FM579u4ZbZNPbB16ECL8FV3qLTY8lLziMLodFgza04IbNBh/c2ytr5Bu1VpQrR92SuTv1AAYG+O0oE6j30cOHP/8cpmlNLARxWcltULOqCssUlPduNhIp2NDkNQeYni2Fi4xIjw538Av16moQP8lXcByFZV/cRW/y5OGi/xaDK4gdieMXVpK5XfnPu7IQPtU1qxtM74n87aDyLjGm31ZN40s7oF8E3gqWcm7me5T19+E1bRv6ub39A0nMIRSCuL0cLlTB4H9WsL/xk4kiw3IN3YWW331350v3h1N7dF7l6vGU4SxMaGkPMNBF6v8vqne8NVQAdSGAOn4Rhvbj7838Rh23EpYhqYi1qZh4d6abSSq4q7yvWqZiGCZ8U+42LOcbqj5F6Tixa9ANXeb6juU5Han61Vne7mOJ7b9q+SHAH+ZDQx6f6TI0F26j2THy36PVtVgpTO6Z73tXPAzWT/8nZM/KB9+YfhJf6f+elAD3sVBxV7Mnad51bX0ZXhZtD+pQQWpaQNxYka/lPyEfUGngdtecqSO/vxRDqC+kc7vtb4EAlDChjJfSLEfB7yRLjQehCI99Pi8pDc0ZriL2WY+a4l6/QOZO7hIF4LbIk+Aw48OtZM0lbjTl/r+vQ3Ec3DITjs2PSjh6LLMON6A8B+DAR8s5SXxYG8Djw0RO/LnGd7446QL4j9UAai7S8A+iI6U+iok0clWSLYbNdHc0wvHxDkI6JR4Qxbuevq2QhxQbdzWED9fJe1hL7qrjepqz9e1X2nY9mvocZdZOgDvOOQFPv3SpY3GHbVrc3BK8bY2N6WMFcamlGY2RqZrL9uJKbW6rbRwSs5aLE82jyFnBG9JIzlf7ipwJ+AHPs2f0KqpXI/er2hPfpLByfhVJfVDW5MPtDbwgJuH84Ab4oHF/OEJ5iUt3uVQq6PUjiPfaRqz7DhRtZcsRMnCQCROnHF19ls/qu1AddTOaXsDl7XbqJaCtQMcRnWPznT2kFDImVyDNeLLJQn9x7Nnm8fDD6BkEUY47KW1oSw8cMJToAepdsSkMmJLd3d/Q7UjDb0xEWCYsbj5rqh5i44usVYW304alMHacJSaxhO9QdprneYVwt/02GwY9Dnp8sbfm5hJNxF+ohu2cMlE0ULbVfEimmCXh/18dnaywTD6R4W+NHRnUJswI445iHdXlN0lwridODq0V+2tQWMVEUMtgwHjY+l9PRmPlRGgSuN8/HxJK0VjpV+EpUcnr3/Bxc8I4SB3ftknOCVvi/4zJOt0DrWkVj1rZ6NHjS+NlV+iU6QZaRlXLYMtZ6ZvyqMwMGBHJ683g63/KfSVInhBK6kdNaw26ybjcZxAjECOqb5UISi4R6j+2X0JORKti2Kejv4+ehqyvnG+At0T8Qq9KNnR4Pqmh/B2Faw/7ql/3FP/uKf+cU/9f3NPndI3lcdxrSA2jiGT3qbSE2fFsS73b7Bj+bnMOJUUIru9nYLD36xaLul1moSf3/JCOpiq3pVYmAd1V9tptsNDxdpKmy6a9yHurnr3Ie4uY/ch7l2X7kOeLjj32mB7L7kPcXvxuKK9pAcriThdRJRtIb9Ni46EwLq/0Y22krh07QcVHL5c/hf0rQ+h sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-annotations.api.mdx b/docs/docs/reference/api/query-annotations.api.mdx index 719b1f03f4..1b0bdbc5ba 100644 --- a/docs/docs/reference/api/query-annotations.api.mdx +++ b/docs/docs/reference/api/query-annotations.api.mdx @@ -5,7 +5,7 @@ description: "Query Annotations" sidebar_label: "Query Annotations" hide_title: true hide_table_of_contents: true -api: eJztXG1v2zYQ/ivBfdoAOXHcvLT+tDTt0KxZkyVuB8wwAlqibTYSpVFUUs/Qfx+O1KslK7ZsAynAfmkkHe/Ih0fxMe+BFiDJNIT+EC449yWRzOchjCzwAyrU1ZUDffg3omL+QAomFgj6b0RD+d535tBfgO1zSbnEP0kQuMxWhkffQ5/jvdCeUY/gX4FA35LRUNlmPvXV/GYC/eGylS/YlC1ZyHlAoQ+hFIxPwQLKIw8HYkeh9D2wYBZ5hIMFJJI+Dkky6WKLe+YFLh0IYtMb7Te2Mnc8cl2IR7EFj4w760Ukzsy38fqJuGBB4JL5inif0WdtNHtGOKfuegF96QZgwTMdgwWh84iDDNiKmJeJ59qwevaLMYnjMJwO4t4uTdRSr8a+71JSAi/pKN6pdwM2E3bkEvHLNRlT94/Q550rHkTyV7BSJ/74O7UlxIXRLBlDXDGujC1vPMAhxhZ4VJKWQy2MK7nDuKRTKsqBvXH5ThGhl/D4PXKb4bAWwCT11mtEhCDzRlTKTTdD9E9EMsY3wIQKyu1l1MprV707mgyeqAgr638l8pXefEuaxxaEbjRt6+Ye28YWsBcW/cQXHpHQhyhidWs593jlQFzBNX98l6JXvzL1K/eJCEaSt6qBb2P4BH1iVXAMfi/jJ2koQ2oSry1wZuVuC6BZu20RLPBvA94W4Jk1vAsQzTpuiyL+noyI9IWBrjV0Zg1vD6FZwdtwGZuE1CC3GXIN7QonW3f5+UMt+i7jj2uebpWnJAwIf2hGohHLgPADHL4FEvu5hSs1zsQXkVKwcSSXj1vMMVa7Y6yLHM+mhLsZUPea8cd658lgTAaZDNokg17u17V6eTW5zSs2f6kj1nomnhk91LwOTfaa7N1L9ua5eZAksgXPjDv+M85AAxvi9JmGck0O4hBJO5J5dRwi78sX7TK2wHedXTu/0S5jCzj9sa7rF7nTF/SlGIzH6p3WZm7lFYKtcdzCoaK5b1ktM7Qpd/Q9h2YXo0YMlHskj1xSgUXQtj2+Sh1gdYlIWuuoukIrfu6wbVNS/53l4mbsc+mde6dr4BDHsS6IM0Ed6EsRUXUjDHwe6sTudbv4H2IqWKDP5uA+sm0ahpPIPbhLjMFqW0q3/Ug3WgI87/2lssCJnZDIldDvlnYI5WXFlmALSiR1Hshul8+ldntwofI0Cpx9BPmq3SZBHOrSPQT5oN0mQVK4xvMXNr9N3gopWO/nyY6Y4rXTKClaWZQUsJ1GSeHKohjOsTXnuIlkC9JRabUB69Bt29MOq6DsWbUjtdDzFN5wafOCoGfl1reZjKcYRDcty3hWhWkl3ikFCxi8DunOyoSr1e60SZafTLzzc6zAVL/jkARUA2UTlIVNi9QJn4zcycidXgd8plDTFj8jd9oOOLNytwXQrN22CBq5k5E7vR4QzTpui6KROxm502uA0KzgbbiMkTttjlwLuZMRN5mzKaNvMkn0epMo6dhakqa8dD7Up9KlM9b0ZVerL6lErDMKiwWU4ZoV/jAryceqvn/S61Ur+N+IyxwtdPkohC/al+8dKglzG0rwrm+Xnm6SvaPVKF37dgakF07rSld54SAMyZTmkK82VWAcDPCpEoZg4qF5JvRIMtGWPwpuKrNxiViiFuaFpHFV5Q67n9gVKUM2RXqGVkPxQU9BU3p8GgxuKw51fpQTQ+lDDsop6FE58/F7CoEfotOAyBn04aggwTjS9QMLQiqQKqn5jYSrzFThL72cSRmE/aMjGh3arh85h2RKuSSHhGnDEfqwI8HkXDm5uL36TOefKFFaoOGoaHCPOamzrGyWzQwJ2GeK/eLEU8skkjNfsP906uAMY5d0KwQDs/0u/0LExx8EeYxO2+IXH9L6b17m1WXarBqbVVTTwmlS98yLgpWCTFaCybhmnp+aNObXuPHAmwl5ezo5O+mcnh+fd05Oz3qd8ZuJ3enZ787eTM7OyIScQV2RYj8Bij9Adh2hcNC9J9f7xKfusHTXMZaOE/fofp9IrTqS2nWc0qHN3pzvE6n6H/77yNz0p/FufRd+C8a1gu9hga4XNuqMd+f3Svw5xg2ipNlNtbnQ6/ZOOt3zTu/d4Pi0f3rc77097J4f/wO5xLbJRitl1xtepoHtZjLWkkY1l5x2U8loN1aMY+IXCceF2hwPLm6vYHmnLj1C8kZslWjpTqceg7W07ea7LWp7PEXdQFLi/ZY9wXnP57p7eHzYxVu4+aOSKQ9RxxVKfcy2YSRDR4FL1EeLdI8WCY0YQvn7THoXHFkwQ7LRH8JiMSYh/SrcOMbbyS45HFmgVtcYcRoiUZylHGEBj3SesjAuO4rOobkbaU6wxG6RnOgWF7ZNA9loOyrwodub+wFYME6+JeX5DrYR5BlpHnmGPmBqBZlIVd1bgEv4NEJC2gftE//9D9C7VD4= +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-applications.api.mdx b/docs/docs/reference/api/query-applications.api.mdx index 27696d4c76..c409bada21 100644 --- a/docs/docs/reference/api/query-applications.api.mdx +++ b/docs/docs/reference/api/query-applications.api.mdx @@ -5,7 +5,7 @@ description: "Query application artifacts." sidebar_label: "Query Applications" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-environments.api.mdx b/docs/docs/reference/api/query-environments.api.mdx index c8d38dcc97..105d59a9a2 100644 --- a/docs/docs/reference/api/query-environments.api.mdx +++ b/docs/docs/reference/api/query-environments.api.mdx @@ -5,7 +5,7 @@ description: "Query Environments" sidebar_label: "Query Environments" hide_title: true hide_table_of_contents: true -api: eJzFWN9z2zYM/ld8eNru1DjN7UlP85KmzZo12ezuJefL0SJss6MolT+yej797zuQkk3ZjqM69vbkswji+wiAAIglWDYzkD7AO/UkdKFyVNbAOIGiRM2sKNQNhxS+OtSLR4xlEiiZZjla1KRgCYrlCClEQo+CQwJCNQogAY1fndDIIZ0yaTABk80xZ5AuganF3dRrsouSNBmrhZpBAtNC58xCCs4JDlWyklBOSqjGCVhhJX2ITtG74VCR7E5e5jXEmNaM9giLuSGJFwh3Z2yepWykmx3BmF2pDAluH5dTGrCzwYaeSEzT/5zWTJ8IIsbkaDItSrosJ4a+ipBiBv4SnxZ6xDYsnaNlJ8b8jSBiTKEy6Tg+Mp3NxRO+KrtMikIiU3sJ3AS83qDBa4UafrP/cXr7RJBtDn+jOTILziy+sYKCfC8VjxyTKST/n8jcBeSYjBS5eBUXoSzOUO/FvfUgLRtojvogWFQup0LMTIaKBzNQZqn/EGrni3PnWVT0SaMpC2XQp9mL83P6iRNWCkOXZWjM1MneH7UwJJAVyqKynmNZSpH5ZqD/xdCeZXSCUlOrYEVAyAoXNm1Ycc3t0kvQ2abMSQvpeZVAq7NIl+vC0NY+pRDT1FYc6UJde4W+VUhgKn0vFGtuwwvzOHNMc+TRCZs8EmUN03tfi0XH9K6vqpUbi8kXzCzsLGzXnsk2cdq9xZFxLsg3TN632HbJeFEs7VYDmdCZk0z/cMsmKH81hXpz52zp7I+weZTWzdiQhq2Dv1xsklBjDjvs9i3ZeaHzSftLbKOXLHLt5AsGSVaR3GVX6Ir2hmt77/cZNVTTpM5Ur+l9knYGOUIvk0CmkVnkj8wetTJcBrW9gTeWK/kpQD4HtTUIR4knALkKamuQxlyTxRGzYWOsXxZ1RmzsdVSUxlorlMZgR0VpzLVC8Q+oA2M1vIYSOB698DjtUguiS948m3ZImbjUPIw76jargl9VtOWni4vt/uBPJgX31b/3TutCH94ccLRMyD31XRZZa/V7svr4eTvdFoGgLylmtuvFvk6SxrAZro3+vKg3Rm9EqxQaihIyia/eDnWGzuy3SM2WOy7JlqGt35JZN44P3jaBfi0XRdPaRcFDz5viKrhgX3x8GI3utxSG+GgHxu/U3vY2gjBHOy9oZFQW/i1QMjuHFPpxh9dvGmOD+qkZHzktSY6Vwrs3/J1bW5q030d3lsnC8TM2Q2XZGRNBcEw6MqeFXXglg/ubj7j4gIz6X7oHkcCQojLEWVtsPZYoxUckXnUzP3B2XmjxD4uf9vOwq/I+nxaxyweeXG9wfwObtmot0fVhmY+WBskvQ7Jx7PVpIQHM/eUBiyz/ebVCviYbBpjzs7dn5/SJrJ8zFUHs9NZGHa/tQPHYLyUT/sZ4SsvakQ+wMQQMrhwnMCd/pw+wXE6Ywc9aVhV9DuvkGy4Mm8joFfQXLnbNC5+YdMTCh0GnTeaAXfU87ZBtXeHqWVQX0fYIqcuOeuTTRbSe1HQR3TFg6XTSMArpJlpPLLoIryYKXYSbF38nxfUzfS07pj9akLBPHElz0Sl0w6ZBlmEZI2zVPtKySoD3d8MRVNW/Xknx0w== +api: eJzFWN1zGkcM/1cYPbUzF+N4+nRPpXac0LjBrZ2+eBiPuBOw6d5H9sMNZe5/72j3DvYA4wuG9onhVtLvt5JW0u4SDM40xA/wLn8Sqsgzyo2GcQRFSQqNKPJhCjF8taQWjxTKRFCiwowMKTawhBwzghgCoUeRQgQibwxABIq+WqEohXiKUlMEOplThhAvAfPFaOosmUXJlrRRIp9BBNNCZWggBmtFClW0ksitlFCNIzDCSP4Q7KI3TKFi2Z289GuIoVLIOsJQplniBcLdGetnKWtpZ0dwZlcqdwy3j8spHdjZYXeOSEjT/ZzWTZ8YIsRMSSdKlHxYTgx9FSCFDNwhPi30PW54OiODJ8b8jSFCTJEn0qb0iCqZiyd6VXWZFIUkzPcSGHq83qDBa6UafTP/cXn7xJBtDn+TPjKLFA29MYKTfC8VhxySKWT6P5EZeeSQjBSZeBUXkRuakdqLe+NAWj5QKamDYCm3GTdi1AnlqXcDV5b6D6N2Pjgjx6LiT4p0WeSaXJm9OD/nn7BgxXBnk4S0nlrZ+6MWhgiSIjeUG8exLKVI3DDQ/6JZZxnsoFQ8KhjhEZLCeqUNL665XToJ3tsUrTQQn1cRtCaLeLluDG3rU04xxWPFkQ7UtTPoRoUIptLNQqHlNrzQjzOLKqU02GFTR4KqoXvva7Fgmy70VbUKYzH5QomBnY3t2jHZJs7aWxwxTQXHBuVti22Xihfk0m4zkAiVWInqhxuckPxVF/mbkTWlNT/C5lZaJ2NDGrY2/nKziXyPOWyz26dk54HOJu0voY9e8si1lS84JFplchctPxXtTde27vc51XfTqK5Ur5l9onYFOcIsE0GiCA2lj2iO2hkuvdnewDnLlukpQD57szVISpJOAHLlzdYgjbsmiyNWw8ZZvyzqitj466gojbdWKI3DjorSuGuF4i5QB+aqvw1FcDx6/nLapRcEh7y5Nu2Q0mGreRh3tK1XDb+qWOWni4vt+eBPlCJ13b/3TqlCHT4cpGRQyD39XRZJa/V7qvr4eT/dFJ6gayl6tuvGvi6SWuOM1k5/XtQ5o3fPq5waORdkFl/dHeoKnZhvgZmtcFyyL/1YvyWzHhwfnG88/VouyKZ1iHyEnnfFlQ/Bvvz4cH9/u2XQ50c7MX7n8ba3kYQZmXnBT0Zl4e4CJZo5xNAPJ7x+MxhrUk/N85FVkuWwFC68/u/cmDLu92WRoJwX2vjlMWsmVgmzcKqD2+FHWnwg5KmXsz8QuONc9NnVFls/RpTiIzGbeoQfWDMvlPgHwwv93GtVLtLTIgz0YEa5wd7gdgibHmot8aHBxOVIg+SWIQo2q+N+H93nMxR9iIAyd2TAEGY/r1Y4wuw5D3N+9vbsnD+xzzPMA4idMdro3rUfOAv7pUThzomjtKzD9wAbT38+gOMIOCi8vlxOUNNnJauKP/t1jk0qNE5kcPf5ixa7XgmfUFpm4YLfSUkfoFW/oh2i1hWufoHqItp+OOqiUT/0dBGt32e6iO54Vum0U/8A0k20fqfoIrx6R+gi3NzzOxmuL+dr2TH/UYKFXeGImoPOqeuVBklCZYiw1fHYyqrs3Y7u7qGq/gXX6u50 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-evaluation-queue-scenarios.api.mdx b/docs/docs/reference/api/query-evaluation-queue-scenarios.api.mdx index 71a46fed1a..8cb1a2c87c 100644 --- a/docs/docs/reference/api/query-evaluation-queue-scenarios.api.mdx +++ b/docs/docs/reference/api/query-evaluation-queue-scenarios.api.mdx @@ -5,7 +5,7 @@ description: "Query Queue Scenarios" sidebar_label: "Query Queue Scenarios" hide_title: true hide_table_of_contents: true -api: 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 +api: eJztWltvEzkU/ivReQJp0qShF5inLQVEF5aWNrDSRlHlzJw0Zj0XbE9LNpr/vjr2XHOZTqoUAYIXOva52J+Pz3dsZwGa3ShwR/D6lomEaR6FCsYORDFK83XmgwtfE5TzayxErr8mmOC18jBkkkcKHIiZZAFqlGRtASEL0ComeM19cICH4ELM9AwckPg14RJ9cLVM0AHlzTBg4C5Az2PSU1ry8AYcmEYyYBpcSBJjRXMtSOAjGe6c+ZCmY2sPlX4Z+XMysmzei0KNoaYuFseCe2YSvS8qCqmt9B5LmrfmqOjLDN4ohfPzqZlWXYD79d7mwadOIREmQgANPJ8OTcSBRKG83p3RTwplp2ZZ1U1zjYG6H/XUyQWYlGzexqeCtNSKJl/Q05XFK2PNLONVHkYfKczWmE8pQqxM03JMhYnlqgDzfU5+mLioia7AO4kigSysOs/QoJb1ZsDj0ksEk0/eswmKP1UUds/CONFPYXnuVYiWhGEFqCZ835g5ksqvP9dhNtUANXvgVCvzylp4qPEGZd1xMKm3VBG6D483iWiGwyk2Wgul+3dYXXU7RP8iJGk3aaaTRsQcwDAJiBhiDH3bYvIhJWGZhKFtUonnoaL8P2VcJBJJUcpIUpPHQg+FQB/G6/b+lR3E+u1u+pYXdWO++n5jbb9OV/kUUscEnbxlYi3iayNymR9yAxVj94BTmm0/5rPCNGnxAJVmQdySj3ymsUtKzZu6sFp1sTUxVZ21n9+w9Jea0Ngh214mYUa21u7jc631aAPsO7hrz+o5oTfw+R0P/eiOhtRA6CHeodI7Db8P1mTqQCT8XRs/tyZTB0L81tb0vYH1gWylDgge8PVG22SQ90ab5i19lO1SP6OqK0uoPhYf40YMjPld5zzJNK41tMrdq9uEdJsC9+8iFteE6kPL2Et7JIE0JRMSVRyFGaEN+n36jxCVPCZ9ogvLTtNEdC4zYXjwycWLEqu0BHc59lMjQcs6ZYnQ4PYrRbY93OQZ5Mcrss8TvUXlaaV/3jL78Wf7kxXaGwFprLRXtLYotR8Cal5rexKZRv+a7ZZrTq3ZzokZVhL7j+HkkzWbOfFR4CM4eWXNZk5yuCbzHdZmOVgv5/l9SIbXTr3kaBVecsB26iWHq/Cy61uoW5SKW35psc1XjHzO1H/4Y2aF/Arvu65bvsMZqjzFtL07zU8qa0qb8uZ0lBteD2p+Hbd8gKicfyuXwwXQo9+1/+/a/9eq/Ys4L8p2W/IfDAarVf5nJrhv1DqvKX89vMT3UTMuGgp1EXm13m1KtvHmbf0+sgM09aK6WZd3ygpIKXZTuaHZLGrA6Ayp14QPVVskXoRDVn55+lvFzMqqnBKWtGPuSW2EjR1+Jlflr2KJ7ApthuKVXYKmMHk7HF6sGLTxUQ8Mc2bs2FetauYMUM8ieoKLI6XNM5uegQu98i1O9Qxhqt4if2xLe8VBrmde7ohBUd7mb3OJFGSCxdwsvv2caR27vZ6IPCZmkdK2e0yaXiK5nhvVk4uzdzh/i8zkkdG4KnBFkWpjry5WrBeL+Tuk0WSvgyeJnkWS/2cDKnsinFktgoj2wGX5tPf6GwtigbWnOWI+eDZlzw+nRwfdw+P94+7B4dGgO3k29boD78XRs+nREZuyI6g8r22pYN5HW6ksv1Tlh+XyIFmesir1UaX4KS++y5JoXE2o/doF8Kg/rhUZMOgPDrr94+7gxXD/0D3cdwfP9/rH+/9A/bJ1tFlwXJYUbXEqLjzbwpRdWG6Baq1myGuDptnmFN8kY5m67SwzDu4XNFrjyNoKWcrqpyaXTaNqKju5wVCzzsnFGSzngFoX0QLzTBbMd4vpprAsNqxyez1mmvcY7xF7B4YUQCML/ih6alU99Pf29/rURCklYGHFxaYsVBtnsZ0p1fZiwbghAzOqRZagRlBJUHlNT3+4lV8EVH8+YPPU2AHKPaS/WEyYwk9SpCk12353NHbglknOJgTmaAE+V/S3D+6UCYUrQy3YFZ5cZgTwtFPeAdSnkKepkHIUjZ++wIF/cV79LYOhx1meAxdZ96n11DUkVqqvcDqlXKtx4nkY60bZcYUBLs6vhuDAJPuRQxD5pCPZHe1AdmeHGsUWcvoVBLUtQLDwJiEadsHapH//A947dZ4= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-evaluators.api.mdx b/docs/docs/reference/api/query-evaluators.api.mdx index 100a4ed845..9a346c5d8d 100644 --- a/docs/docs/reference/api/query-evaluators.api.mdx +++ b/docs/docs/reference/api/query-evaluators.api.mdx @@ -5,7 +5,7 @@ description: "Query evaluator artifacts with filters and pagination." sidebar_label: "Query Evaluators" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-folders.api.mdx b/docs/docs/reference/api/query-folders.api.mdx index 0b9db80427..4f2357b537 100644 --- a/docs/docs/reference/api/query-folders.api.mdx +++ b/docs/docs/reference/api/query-folders.api.mdx @@ -5,7 +5,7 @@ description: "Filter folders inside the caller's project." sidebar_label: "Query Folders" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-invocations.api.mdx b/docs/docs/reference/api/query-invocations.api.mdx index e43d131d38..05e2132c69 100644 --- a/docs/docs/reference/api/query-invocations.api.mdx +++ b/docs/docs/reference/api/query-invocations.api.mdx @@ -5,7 +5,7 @@ description: "Query Invocations" sidebar_label: "Query Invocations" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-metrics.api.mdx b/docs/docs/reference/api/query-metrics.api.mdx index 5b9403660c..de3ceb9258 100644 --- a/docs/docs/reference/api/query-metrics.api.mdx +++ b/docs/docs/reference/api/query-metrics.api.mdx @@ -5,7 +5,7 @@ description: "Query Metrics" sidebar_label: "Query Metrics" hide_title: true hide_table_of_contents: true -api: eJztWetv2zYQ/1cMftoAOXbcPFp9WvpCvT6SJWkHzDAKWjrb7ChKpcgknqH/fThSb8uKnDldOyxfYlF3v3vw7nhHrYmii5i4E/LqhnJNFQtFTKYOCSOQ5mnsE5d81SBXnwNQknkxcYiErxpi9Tz0V8RdEy8UCoTCnzSKOPMM5+BLHApci70lBBR/RRJxFYMYnzI8ZBOr8zlxJ3WSOTfqlQmo7zOEp/yiQlpQqFUExCWzMORABUmcfClWkomFWWmGIR6TnuZU/vSOzoD/GoeiPxaRVj8TJwMJZ1/AUySZOkQxxXGpRkySDeJCB6E5rzC/NjYiy3/f1uvU1AAUfaCpJbvSFSYULEBWBQez6krZQ/f547Xm7e5w1oQpCLoxUSnpqj0CKqy7efQ9ejJxSKyo0q0ecwgIHWCuRyB8u/JVgwYfM1oLYZdi7XkQY5bPKeNaAjJKGUpc8qjwgHPwSUmFonRcWSU29c0VrG9q6sZ/U9fu+3SVmZA4JujkDeWNHm+MyBrYOAMogd3jnAK2u87jHBq5WACxokHUHifzUAZUEZf4VEEfmdqTOkcti+i60Y3CttrXUOi262Nsjj0QVLLwM/M7Wq0189vjIIXsjf2ahJ2NTmX9I3tL6hiLpRZ7NPZSi9ROi7t3E7dItFn2DcQZURs1t6lkvLcNy2/YDTUXuVsm/PAWNWppagTcQqz2moIfLGTikJD7+wY/t5CJQwTcdYW+N64+IFbiEM4C1gzapYq+M9xot/RBdjv+KCZseqj4kD9MW31g4Pdd9yVV0Ai02b9sZgnytsXt73ksNoTqzvF+aVt+kiAr9v9Mgk9cJTWYhTgKRXq6j4ZD/IeulSxCICxS9qiea967TInxjH7Y5OCF2jLV/F4Y8cJQ4P7OqeaKuEPbdWYDR15Hvr9541yrHZpwS/3jThyPb+0PNnNsdUjr0LHBtcPU8RCnZmOHJ4Eq8D/T/R45Lyxs78yopSP/MYR8tLCpEB84PIKQlxY2FZK5a7baY4eWOev5Km3UMn/tVUrmrVxK5rC9SsnclUvZH7TFuwEZM3u6dEjzDZBPKft3P3GXjr5cOm4a/b8I7q0IvqS2CO61J/wGM/rjj8TFCNoOuTlmNjSmRbc5yYAbcyFtVzeGv8qpld5g58kx2a0XznvXxDTCR6PRZqv7iXLmG6beK0zjh/e5PijKeEu/ykOv8naXpJ1u99O70Cpo2qZ40bSPhUvjmC5KdzbbSY0zetf41iQN5huS50mQJqCn7kowG3vyAn2Js+M9oYK+seqndOUynm+R3aHtrnhpt6AtSN5cX19sANr4qAaGGaR6RRAGoJYhfl+JwhgBI6qWxCUDKL7FDNKZZWA+weBhARKPMLPHWnIkpxEzG2wfl0pFsTsYgD7weKj9A7oAoegBZZZwihielkytDMjZxfgtrN4ANfPzZFomuMK4tJFWJct3h0bsLaBeggb4fKbVMpTsLxs+uMuokuVCh2DEXxZfj17d0SDiUPsalE1hxYRStO+lg7d0qhaXy8VZOy0X5mHlknUynFYKLRkNR0f94Wl/9Oz68Ng9PnRHTw+Gp4d/kOqF5mQ74bRWVsmTOX16PD856h+fHp72j45PRv3Zk7nXH3nPTp7MT07onJ6Q+uXhpBvbtKiwXeXkl3fdRexEXr/8yi652lyb3VW10dgrp65WppdJw/w+qHLZUwkHe/cyTEwpmoflSnRmMqZ3djEm9RSuvMKqTj1TxLLwN6+JU8vFIgWxtQtMTScKaPBL/qbSm5LhweHBEJewMgRUlETUi0hFvzwvsUIOIk6ZqeFGm3VaXyakVF9IcSvi2M+8uPNLrEfuhKzXMxrDR8mTBJfte3cydcgNlYzO0FsT3PplVj7W5E9YZUVaqL6p9kjOtS0XtcMP65blOPM8iFQr7bRUMi/Or66JQ2bpJ+gg9JFH0luMdXpLXIIBFlkj3bVdWxNOxULjeeUSi4l/fwObiXq5 +api: eJztWVlz2zYQ/isaPLUzlCUrPhI+1bkmag67tpPOVKPJrMiVhBQEGRCwrWr03zsL8NRBS66cJp36xSK4N3Y/7IJzpmGSMn/AXt2AMKB5LFM29FicoLJP/ZD57KtBNfscoVY8SJnHFH41mOrncThj/pwFsdQoNf2EJBE8sJydL2ksaS0NphgB/UoUydUcU3rK5RGbnJ2PmT9YJhkLa16VAMKQk3gQFzXSkkLPEmQ+G8WxQJBs4RVLqVZcTuzKejEs4CowAtRP72CE4tc0lu2+TIz+mXm5kHj0BQPNFkOPaa4FLS0Rs8UKcWmDNELUmF9bH4nlv+/rdeZqhBoe6GrFr2yFS40TVHXF0ai+Uo3QffF4bURzOLw54xqj7ZhAKZg1Z0CNdbeIvqdILjyWatCmMWIeQ2kiqvUEZehWvho0GFJFGyndUmqCAFOq8jFwYRQSo1KxoqUAZIBCYMgqJpTQceWMWLW3MHB5U7Mw/pu2br9PV7kLC88mnboBsTbiazNySVg/F1ARdk9wSrHb29wvRBMXjzDVECXNeTKOVQSa+SwEjW1iai7qQmpVxbYbvVbZRv/WAN1me6zPaYASFI8/83BLr43hYXMeZCJb/XBJw85OZ7r+kb8Vc6zHysg9OntpZOank7t3FzdodFX2DdRZVSuYuw4y3ruG5TfqhtaD3C2XYXxLFjU0NRJvMdV7LcEPTuTCY7EI9y383IlceEzi3bai782rDyRr4THBI75e6DYo+s5yk98qRLXd8QdUsNmhEmLxMGyMgRW/b9xXoHGtoNX+ZbVKiLcpb38vcnFNqu6c75eu5WcLYqX+nysMma+VQbuQJrHMTvdet0v/KLSKJySIQMod1WMjWpcZMZ3RD5scgtg4pqW4l068sBS0v2MwQjO/67rOfOAocOT7mzfOjd6hCXfUP+7E8fje/mAzx8aANA4dK1w7TB0PCWo+dgQKQWP4GfZ75LxwYltn1iyThI+h5KMTmykJUeAjKHnpxGZK8nCNZnvs0PJgPZ9ljVoer71qyaNVaMkDtlctebgKLfsT7eTdoEq5O122KPMVIZ8y9u9+4q4cfYV22jT4HwT3BoIvwYHgXnvCbzCjP/5IXI6gzSJXx8w1jWnZbQ5ywWtrIWtXV4a/2qmV3WAXxTHYrRcueteFbYSPer3VVvcTCB5aptYrKuOH97khauCioV8VcVB7u0vRDjfH6V3sDLRtUzpZt49lSNMUJpU7m82kNhita3pri4bqjciLIsgKMNB3FTEre/KCYkmz4z2pQrFx5md0VRgvtsjt0OZQvHRb0JQkb66vL1YEuvyoJ4YdpFplEkaopzF9X0nilAQmoKfMZx0sv8V0spmlYz/B0GGBio4wu8dGCSKHhNsNdo9TrRO/0xFxAGIap9q9HhJnYBTXM8t6dtF/i7M3CHZqHgyrBFeUjS6/6mTFnkDC3yJZIyGi5zOjp7Hif7mkob0lQxwXhYHy/LL8ZvTqDqJE4NI3oHz2KueSsmmvHLeVs7S8Ui5P2GEVjru1q9VBd1iDV9br9o7a3dN279n14bF/fOj3nh50Tw//YPVrzMFmwuESmLInY3h6PD45ah+fHp62j45Peu3Rk3HQ7gXPTp6MT05gDCds+cpwsB3bsMTVbfUUV3bbq9iJfPnKK7/aagptfkPVROMumrb1MrtC6ha3QLUrnlo6uBuX7sIC0Diu4s/ZBKWG1tlFny0Xbu0VYTkEFrry9LevmVepwNTvdMAuHwDvUEMXWSRnGiH6pXhT60hZ9+DwoEtLhAcRyIqKZeio2VfUJeFiJxHALXJba+YZqgxYBVVYeRfiuY+7tPOEFkQ4n48gxY9KLBa07N77g6HHbkBxGFG0BrT10xw+5uxPnOXQLHXbYjyRC+PgYunII7RyHGdBgIlupB1WgPLi/OqaeWyUfXiO4pB4FNxSrsMt8xklWOKc9Odubc4EyImhU8pnTib9/Q2PiHda sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-queries.api.mdx b/docs/docs/reference/api/query-queries.api.mdx index 600aa060f9..7843a2d739 100644 --- a/docs/docs/reference/api/query-queries.api.mdx +++ b/docs/docs/reference/api/query-queries.api.mdx @@ -5,7 +5,7 @@ description: "Query Queries" sidebar_label: "Query Queries" hide_title: true hide_table_of_contents: true -api: eJzFWEtvIzcM/isGTy0wG6dBT3OqmzTYdNNNWnt7CYxA1tC2tppH9EjXNea/F5TmobEde5LY7cnwiOJHfaRIimswbKEhfoDfLSqBGqYR5AUqZkSe3SQQw5NFtXp8qpYjKJhiKRpUtG0NGUuxkRIJRCCy+j9EoPDJCoUJxHMmNUag+RJTBvEaWLa6mzsdZlWQDm2UyBYQwTxXKTMQg7UigTJqJDIrJZTTCIwwkj6Q1avBTQIlSW3Yot9jDFOK0R5hMNUkccDIPlbqHWZqaRdHIO0w/JiAduOfkqgexIydCaFp7ue0pHwmiBAzQc2VKCjuTwx9FSCFFswle58remBfO4wQ1ZwedLKJmaJhJ8b8jSBCTJFxaRN8ZIovxTO+K1PN8lwiy/YacOPxBqMarxPg+M38x6nyM0F2bfgb9ZGtSJjBD0bQ1dprikMOjcll8j8Zc+eRQ2OkSMW7bBGZwQWqvbi3DqTDgUpQvQkWM5tSEWeaY5Z4GiifVX8ItffFuXNWlPRJoS7yTKNL6xfn5/QTpskYxpZz1Hpu5eCPShgi4HlmMDPOxqKQgrtuYvhV0551cIJCUa9hhEfgufWbNlhsbbt0EnS2ObPSQHxeRlC3JvG6rUFdxXOKLkXdyZHu0rVT6PqOqErbHc0d+LJhP599RW5go/5VKXkLjvZtaWZJIohMJu87R+yTogLn71YDXChuJVPf3bIZyl91nn24s6aw5nvYPEQnlDekYevIh6tD5IvC2w67HdY7b2A6634JOTrEyLWVBwiJmvjrs8u3TXuDrLv3daT68hdVqeU9LVLUvfJHaHki4AqZweSRmaOm8kuvdjByZNkiOQXIF6+2AklQ4glArrzaCqSma7Y6Yg6ryfp5VeWxmq+jotRsNSg1YUdFqelqUNyr6o2x6h9KERzPPP8+3V8Fgutdv6jCdf/2burew/SQQoG6qchlSdI/XlxsF/A/mRSJK8+DX5TK1durd4KGCbmnCsucd1Zfk8WnL7Nzm3sDXQnRi11P9TYpas0W2FL9sqgjYzChVQqFjBIwiTfNfZWRufkWqNnyxCVx6fvuLZm2s3tw3HjzK7kgeloXeQ+9TMWVd8G+0Pg4mdxvKfTx0Q0M/zRvQy9Fs8xpHlTkrk8vmFlCDMOq+xrW/apG9VzPhqySJMIK4Zzq/y6NKXQ8HKI94zK3yRlbYGbYGRNecEo6uFXCrJyS0f3NJ1x9REZtKQV+IDCmWPTR1RVrpxOF+IRkV9Vjj6xZ5kr8w8J3/tLvKp2n53no6JEzbjC6v4FNhjpLdGkYdzFSI7lliDaO3Z4WIsDUXRkwyNKfmhXyMHHoYc7Pfjg7p09EfMqyAGLTRxuFuqKAAnBYSCbcFXHWrCv3PUA71/MOnEawJAfHD7Bez5jGL0qWJX326+SRRGg2k8GT5C9cdUeAz0xagnZuPyCuXyVfjctet6EvRDV26iPanRb12VFPd/rImv6i1Silj+iOCUgvVvysop9oNVLoI9w8+fsI10/yXoqrd3QrO6U/SpCwSyFRfeUpnP2mEedYhAhbtY+0NFnw/m48gbL8F9y62cY= +api: eJzFWEtvIzcM/isGTy2gjdOgpznVTRpsuukmbbK9BEYga2hbW80jeqTrGvPfC0ozY43t2JPEbk+GRxQ/6iNFUlyC5TMDyQP87lBLNDBmUJSouZVFfpVCAk8O9eLxqV5mUHLNM7SoadsScp5hKyVTYCDz5j8w0PjkpMYUkilXBhkYMceMQ7IEni9upl6HXZSkw1gt8xkwmBY64xYScE6mULFWIndKQTVmYKVV9IGsXgyuUqhIas0W8x5juNac9kiLmSGJPUb2sdJsMdMoNzsAafvh7whoO/4xiepBzJ03ITbN/xyXlM8EEWOmaISWJcX9kaEvIqTYgqni73NFD+xLjxGj2uOD3q9jZmj5kTF/I4gYU+ZCuRQfuRZz+YzvylSTolDI850GXAW8wajB6wQ4frP/car8TJBdG/5Gc2ArUm7xg5V0tXaa4pFjYwqV/k/G3ATk2BglM/kuW2RucYZ6J+61B+lwoFPUb4LF3GVUxLkRmKeBBspn9R9C7X1xbrwVFX3SaMoiN+jT+tnpKf3EaTKBOycEGjN1avBHLQwMRJFbzK23sSyVFL6bGH41tGcZnaDU1GtYGRBE4cKmNRZXtp17CTrblDtlITmtGDStSbJc1aCu4ilFl6bu5EB36dIr9H0Hq9N2R3MHvmrZLyZfUVhYq391St6Ao30bmnmaSiKTq9vOEfukqMj529WAkFo4xfV313yC6ldT5B9unC2d/R7WD9EJ5TVp2Djy/urAQlF422E3w3rrDcwm3S8xR/sYuXRqDyGsjb8+u0LbtDPIuntfR2oof6xOLe9pkVj3yh+g5WEgNHKL6SO3B03l50HtYOTJcmV6DJAvQW0NkqLCI4BcBLU1SEPXZHHAHNaQ9fOizmMNXwdFadhqURrCDorS0NWi+FfVG2M1PJQYHM688D7dXQWi6928qOL18PZu697DeJ9CiaatyFVF0j+enW0W8D+5kqkvz4NftC7026t3ipZLtaMKq0J0Vl+Txccvs3NdBAN9CTGzbU/1VVI0hs9wRfXLop6MwT2tUijklIBJvG3u64ws7LdIzYYnzonL0HdvyKw6uwfPTTC/louiZ+Wi4KGXqbgILtgVGh/v7283FIb46AZGeJqvQi9DOy9oHlQWvk8vuZ1DAsO6+xo2/apB/dzMhpxWJMJL6Z0a/s6tLZPhUBWCq3lhbFge007htLQLv3V0e/UJFx+RUzNK4R4J3FEEhpjqiq1mEqX8hGRN3VmPnJ0XWv7D49f9POyqvH+nReze0Qxzywej2ytY56WzRFeFCx8ZDZJfBhYd1iTDIfefT7gcAgPM/EUBizz7qV0hvxJzAeb05IeTU/pEdGc8jyDWPbNWnmsKKOyGpeLSXwxvzbJ22gOspnnBbWMG5ApaWi4n3OAXraqKPod18kgqDZ+o6CHyFy66g79nrhxBe2fvETevkq+HZK/b0BeiHjb1Ee3OiPrsaGY6fWRtf9F6gNJHdMvcoxcrYULRT7QeJPQRbh/6fYSbh3gvxfXreSU7pj9akrBPIay58hTOYdNICCxjhI2KR1ra3Hd7c3cPVfUvJC3WZw== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-queues.RequestSchema.json b/docs/docs/reference/api/query-queues.RequestSchema.json index bb7586a8b1..ba8c8ff7ba 100644 --- a/docs/docs/reference/api/query-queues.RequestSchema.json +++ b/docs/docs/reference/api/query-queues.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sequential"}},"type":"object","title":"EvaluationQueueQueryFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids"},"run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Run Id"},"run_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Run Ids"},"ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"EvaluationQueueQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueQueryRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Sequential"},"is_default":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Default"}},"type":"object","title":"EvaluationQueueQueryFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Archived"},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids"},"run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Run Id"},"run_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Run Ids"},"ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"EvaluationQueueQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueQueryRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-queues.StatusCodes.json b/docs/docs/reference/api/query-queues.StatusCodes.json index 868401dc1b..bdfd9245c8 100644 --- a/docs/docs/reference/api/query-queues.StatusCodes.json +++ b/docs/docs/reference/api/query-queues.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},"type":"array","title":"Queues","default":[]}},"type":"object","title":"EvaluationQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},"type":"array","title":"Queues","default":[]}},"type":"object","title":"EvaluationQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-queues.api.mdx b/docs/docs/reference/api/query-queues.api.mdx index bc5d95ce0b..6f978f2890 100644 --- a/docs/docs/reference/api/query-queues.api.mdx +++ b/docs/docs/reference/api/query-queues.api.mdx @@ -5,7 +5,7 @@ description: "Query Queues" sidebar_label: "Query Queues" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-results.api.mdx b/docs/docs/reference/api/query-results.api.mdx index 1b1a3c9f55..489f30c54f 100644 --- a/docs/docs/reference/api/query-results.api.mdx +++ b/docs/docs/reference/api/query-results.api.mdx @@ -5,7 +5,7 @@ description: "Query Results" sidebar_label: "Query Results" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-runs.RequestSchema.json b/docs/docs/reference/api/query-runs.RequestSchema.json index 58d58ff394..2e51927a8c 100644 --- a/docs/docs/reference/api/query-runs.RequestSchema.json +++ b/docs/docs/reference/api/query-runs.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Live"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Closed"},"is_queue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Queue"},"is_cached":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Cached"},"is_split":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Split"},"has_queries":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Queries"},"has_testsets":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Testsets"},"has_evaluators":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Evaluators"},"has_custom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Custom"},"has_human":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Human"},"has_auto":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Auto"}},"type":"object","title":"EvaluationRunQueryFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"statuses":{"anyOf":[{"items":{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},"type":"array"},{"type":"null"}],"title":"Statuses"},"references":{"anyOf":[{"items":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object"},"type":"array"},{"type":"null"}],"title":"References"},"ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"EvaluationRunQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunQueryRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"run":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Live"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Closed"},"is_queue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Queue"},"is_cached":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Cached"},"is_split":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Split"},"has_queries":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Queries"},"has_testsets":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Testsets"},"has_traces":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Traces"},"has_testcases":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Testcases"},"has_evaluators":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Evaluators"},"has_custom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Custom"},"has_human":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Human"},"has_auto":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Auto"}},"type":"object","title":"EvaluationRunQueryFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"statuses":{"anyOf":[{"items":{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},"type":"array"},{"type":"null"}],"title":"Statuses"},"references":{"anyOf":[{"items":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object"},"type":"array"},{"type":"null"}],"title":"References"},"ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"EvaluationRunQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunQueryRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-runs.StatusCodes.json b/docs/docs/reference/api/query-runs.StatusCodes.json index c33d986a40..469f9f0054 100644 --- a/docs/docs/reference/api/query-runs.StatusCodes.json +++ b/docs/docs/reference/api/query-runs.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"runs":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"steps":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"},"type":{"type":"string","enum":["input","invocation","annotation"],"title":"Type"},"origin":{"type":"string","enum":["custom","human","auto"],"title":"Origin"},"references":{"additionalProperties":{"properties":{"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"}},"type":"object","title":"Reference"},"type":"object","title":"References"},"inputs":{"anyOf":[{"items":{"properties":{"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"EvaluationRunDataStepInput"},"type":"array"},{"type":"null"}],"title":"Inputs"}},"type":"object","required":["key","type","origin","references"],"title":"EvaluationRunDataStep"},"type":"array"},{"type":"null"}],"title":"Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats","default":1},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]},"mappings":{"anyOf":[{"items":{"properties":{"column":{"properties":{"kind":{"type":"string","title":"Kind"},"name":{"type":"string","title":"Name"}},"type":"object","required":["kind","name"],"title":"EvaluationRunDataMappingColumn"},"step":{"properties":{"key":{"type":"string","title":"Key"},"path":{"type":"string","title":"Path"}},"type":"object","required":["key","path"],"title":"EvaluationRunDataMappingStep"}},"type":"object","required":["column","step"],"title":"EvaluationRunDataMapping"},"type":"array"},{"type":"null"}],"title":"Mappings"}},"type":"object","title":"EvaluationRunData"},{"type":"null"}]}},"type":"object","title":"EvaluationRun"},"type":"array","title":"Runs","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"EvaluationRunsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-runs.api.mdx b/docs/docs/reference/api/query-runs.api.mdx index 747cad2bd3..f88a74bbcd 100644 --- a/docs/docs/reference/api/query-runs.api.mdx +++ b/docs/docs/reference/api/query-runs.api.mdx @@ -5,7 +5,7 @@ description: "Query Runs" sidebar_label: "Query Runs" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-scenarios.api.mdx b/docs/docs/reference/api/query-scenarios.api.mdx index b619631d5d..1abae94859 100644 --- a/docs/docs/reference/api/query-scenarios.api.mdx +++ b/docs/docs/reference/api/query-scenarios.api.mdx @@ -5,7 +5,7 @@ description: "Query Scenarios" sidebar_label: "Query Scenarios" hide_title: true hide_table_of_contents: true -api: eJztWetv2zYQ/1eM+7QBcuy4ebT6tPSFeu2aLHE7YIZR0NLZZkdRKkUm9Qz978ORetqO4gRu1xbNl1jU3e8evBepFWg2T8Efw4trJgzTPJYpTDyIE1T2aRiCD58MquWHNEDJFI9T8EDhJ4OpfhqHS/BXEMRSo9T0kyWJ4IHl7X1MY0lrabDAiNGvRBGy5pi6dYdo+eTyfAb+eJ1mJqyGdQIWhpzwmbhokFYUepkg+DCNY4FMQuaVS6lWXM7tynYYCLgKjGDqlzdsiuL3NJbdoUyM/hW8AiSefsRAQzbxQHMtaGmNGLIN4koHaYRoML+0NhLLj2/rKDc1Qs0eaGrNrnyFS41zVE3B0bS5UvfQXf54aUS7O7wVcI3RbkxMKbZsj4AG6/08+gd5MvMg1UybVo95gNJElO4JytCtfDJoMKSUNlK6pdQEAaaU5jPGhVFIjErFipYCJgMUAkOoqVBVjyunxKa+pYLrm5q78f/Udfd9uipMyDwbdOqaia0e3xqRa2DDAqAGdodzKtjddR6W0MTFI0w1i5L2OJnFKmIafAiZxi4xtSd1iVoXsetGbxW2u32jSl5mQ+MDD3e0zhgetmJfGtkZhhXuvU3KJexujZPoAuwriLOiNsrN1mzJm/WfNAxsT/AbLsP4hlRqaegSbzDVew2/tw4y8yAW4b7Bzx1k5oHEz7tC3xlYbwkr80DwiG8H3aWCvLHcZLcKUe1W+hlNXXlBDbF8mLT6wMLvu+YppnEr0Gbv3kwT4m0L3L/KWNwSqvcP+Es38EJGvDT9coUh+FoZtAtpEsu8tQ36ffpHvlU8ISRqHK5PzYzoXObE1KAeNjcHsXFMa46vrHhmKWiDZ8wIDX6f+m85wPu1WvLtjdvnRt9jBnXU3+/A/eWt/c5G7lsd0jpzb3DdY+h+iFOLqTtQyDSGH9h+u84zB9s5s2qZJPwSQt452FxIiAK/gJDnDjYXUrhrutzjlFY46+kyH9YKf+1VSuGtUkrhsL1KKdxVStkftMO7RpVy1192SPMNkPc5+zd/4Kw1v1L6vieYr3Caqs4z7Ru/eWbZMuRUg8u4AN7u1OJibv0oUTsJ124DS0ePf54Cfp4CfsxTQFqO7Zk9AxwNBptT/nsmeGjZOi+ofj18xA9RMy5aBnURB4239xnZJren9ZvYKWjnxXS+re5UE1CasnntruZ2UuuMzoje2vChaYvIy3DIx69Af67BbOzKM/IlZcwdpY1849TP6er9q9wit0O3u+K524K2MHk1Gl1sALr4aAaGPUN26jUzQr2I6eNKEqcEmTC9AB96WH2I6ZUHtp79AkOdEhX1b7vPRgliYAm3m+weF1onqd/roTkIRGzCAzZHqdkB445wQhiBUVwvLcjZxfA1Ll8hs5VjPKkTXFFsumhrkpU7xBL+GkkvySJ6PjN6ESv+rwsh2mlSyXGRUyjqL6tPRy8+sygRuP4pqDiDVuez6vBSGztqM0V1s1xNGpN6neo3bljH/Umjd8OgPzjq9k+7gyejw2P/+NAfPD7onx7+Dc3bzPHthJOqU8OjGXt8PDs56h6fHp52j45PBt3po1nQHQRPTh7NTk7YjJ1A7UZxvBvHJL8R3JV8vRUXLbfN2qJzttG4BrirlXlr65fdqdF6GjvkOkE/syViFtcrxJmN4s7ZxRDWU6vxiqotC2xxKULSvgZvLT+qtKCmGNlaCxpZ9Fv5pjEsQ//g8KBPS5SvEZM1EZvJ3dCwzBaqXb1EMG6rq9Vnlef9GGp5D/WrGs99faXdX1Cl8MewWk1Ziu+UyDJadu/98cSDa6Y4m5LH7CS2KNJ6Bf/gsiigUndtJSZyYVwarzUmqieO4ywIMNGttJNaMbs4vxqBB9P8u3AUh8Sj2A3FO7sBHyjIEmemv3JrKxBMzg31Eh8cJv39B/LkWyI= +api: eJztWetv2zYQ/1eM+7QBcuy4ebT6tPSFeu2aLHE7YIZRnCXaZkdRKkUm9Qz/78ORetqOogRu1xbNl1jU3e8evBepFWicp+CP4cU1CoOaxzKFiQdxwpR9GobgwyfD1PJDGjCJiscpeKDYJ8NS/TQOl+CvIIilZlLTT0wSwQPL2/uYxpLW0mDBIqRfiSJkzVnq1h2i5ZPL8xn4402ambAaVgkwDDnho7iokZYUepkw8GEax4KhhLVXLKVacTm3K7thIOAqMALVL29wysTvaSy7Q5kY/St4OUg8/cgCDeuJB5prQUsbxLDeIi51kEaIGvNLayOx/Pi2jjJTI6bxgaZW7MpWuNRszlRdcDStr1Q9dJc/XhrR7A5vBVyzqB0TKoXL5giosd7Po3+QJ9cepBq1afSYB0yaiNI9YTJ0K58MMyyklDZSuqXUBAFLKc1nyIVRjBiVihUtBSgDJgQLoaJCWT2unBLb+hYKbm5q5sb/U9f2+3SVm7D2bNCpaxQ7Pb4zIjfAhjlABewO55Sw7XUeFtDExSOWaoyS5jiZxSpCDT6EqFmXmJqTukCtimi70TuFtbdvVMpb29D4wMOW1hnDw0bsSyM7w7DEvbdJmYT21jiJLsC+gjgraqvc7MyWrFn/ScPA7gS/4TKMb0ilhoYu2Q1L9V7D762DXHsQi3Df4OcOcu2BZJ/bQt8ZWG8Ja+2B4BHfDdqmgryx3GS3CplqV/qRpq6soIaseJg0+sDC77vmKdRsJ9B2795OE+JtCty/iljcEar3D/hLN/DCmnhp+uWKheBrZZhdSJNYZq1t0O/TP/Kt4gkhUeNwfWpmROcyI6YG9bC5OYiNY9pwfGnFM0tBGzxDIzT4feq/xQDvV2rJtzdunxt9jxnUUX+/A/eXt/Y7G7lvdUjjzL3FdY+h+yFOzafuQDHULPyA++06zxxs58yqZZLwSwh552AzISET7AsIee5gMyG5u6bLPU5pubOeLrNhLffXXqXk3iqk5A7bq5TcXYWU/UE7vGumUu76S4s03wJ5n7F/8wfOSvMrpO97gvkKp6nyPNO88dtnlh1DTjm4jHPg3U7NL+Y2jxKVk3DlNrBw9PjnKeDnKeDHPAWkxdi+tmeAo8Fge8p/j4KHlq3zgurXw0f8kGnkomFQF3FQe3ufkW1ye1q/iZ2Cdl5M57vqTjkBpSnOK3c1t5NaZ3RG9NaGD01bRF6EQzZ+BfpzBWZrV56RLylj7iht5BunfkZX7V/FFrkdut0Vz90WNIXJq9HoYgvQxUc9MOwZslOtmRHTi5g+riRxSpAJ6gX40GPlh5hecWDr2S8w1CmZov5t99koQQyYcLvJ7nGhdeL3eiIOUCziVLvXE+IMjOJ6aVnPLoav2fIVQ1svxpMqwRVFpIuxOlmxL5jw14y0kRjR85nRi1jxf13g0P6SIo6LXEGxfll+MHrxGaNEsM0PQPnJszyVlUeWyrBRmSTK++RyvphUq1O/dq867k9qHRsG/cFRt3/aHTwZHR77x4f+4PFB//Twb6jfYY5vJ5yU/RkezfDx8ezkqHt8enjaPTo+GXSnj2ZBdxA8OXk0OznBGZ5A5R5x3I5jkt0DtiXfbMB5o22yNu+XTTSu7bW1Mmto/aIn1RpObYdc/e+vbWGYxdW6cDZnUmPn7GIImwlVe0U1FgNbUvKQtK/Bq2RF6vd6aJcPkPeoFUa2woJmGP1WvKmNyNA/ODzo0xJlaYSyImI7pWsaFtlCFauXCOS2plp9Vlm2j6GS7VC9oPHcN1fafcpiIl2tppiyd0qs17Ts3vvjiQfXqDhOyWN2/lrkab2Cf9gyL5tSd239JXJhXBpvtCOqIo7jLAhYohtpJ5USdnF+NQIPptnX4CgOiUfhDcU73oAPFGSJM9NfubUVCJRzQx3EB4dJf/8BYndXww== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-sessions.api.mdx b/docs/docs/reference/api/query-sessions.api.mdx index d2d5661c91..0def7a37ab 100644 --- a/docs/docs/reference/api/query-sessions.api.mdx +++ b/docs/docs/reference/api/query-sessions.api.mdx @@ -5,7 +5,7 @@ description: "List distinct session IDs from span attributes." sidebar_label: "List Sessions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-applications.api.mdx b/docs/docs/reference/api/query-simple-applications.api.mdx index a1b02fd6e6..69934f83f6 100644 --- a/docs/docs/reference/api/query-simple-applications.api.mdx +++ b/docs/docs/reference/api/query-simple-applications.api.mdx @@ -5,7 +5,7 @@ description: "Query applications with variant, revision, and `data` merged per r sidebar_label: "Query Simple Applications" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-environments.api.mdx b/docs/docs/reference/api/query-simple-environments.api.mdx index 94161cd5fc..d323021803 100644 --- a/docs/docs/reference/api/query-simple-environments.api.mdx +++ b/docs/docs/reference/api/query-simple-environments.api.mdx @@ -5,7 +5,7 @@ description: "Query Simple Environments" sidebar_label: "Query Simple Environments" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-evaluations.RequestSchema.json b/docs/docs/reference/api/query-simple-evaluations.RequestSchema.json index 7dc3b5916b..9cffaba272 100644 --- a/docs/docs/reference/api/query-simple-evaluations.RequestSchema.json +++ b/docs/docs/reference/api/query-simple-evaluations.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Live"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Closed"},"is_queue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Queue"},"is_cached":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Cached"},"is_split":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Split"},"has_queries":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Queries"},"has_testsets":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Testsets"},"has_evaluators":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Evaluators"},"has_custom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Custom"},"has_human":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Human"},"has_auto":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Auto"}},"type":"object","title":"EvaluationRunQueryFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"SimpleEvaluationQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationQueryRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Live"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"is_closed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Closed"},"is_queue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Queue"},"is_cached":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Cached"},"is_split":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Split"},"has_queries":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Queries"},"has_testsets":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Testsets"},"has_traces":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Traces"},"has_testcases":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Testcases"},"has_evaluators":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Evaluators"},"has_custom":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Custom"},"has_human":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Human"},"has_auto":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Auto"}},"type":"object","title":"EvaluationRunQueryFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Ids"}},"type":"object","title":"SimpleEvaluationQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationQueryRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-simple-evaluations.StatusCodes.json b/docs/docs/reference/api/query-simple-evaluations.StatusCodes.json index 95a62882fb..dea9dfd885 100644 --- a/docs/docs/reference/api/query-simple-evaluations.StatusCodes.json +++ b/docs/docs/reference/api/query-simple-evaluations.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluations":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},"type":"array","title":"Evaluations","default":[]}},"type":"object","title":"SimpleEvaluationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluations":{"items":{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},"type":"array","title":"Evaluations","default":[]}},"type":"object","title":"SimpleEvaluationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-simple-evaluations.api.mdx b/docs/docs/reference/api/query-simple-evaluations.api.mdx index 21f269851d..adba4f471d 100644 --- a/docs/docs/reference/api/query-simple-evaluations.api.mdx +++ b/docs/docs/reference/api/query-simple-evaluations.api.mdx @@ -5,7 +5,7 @@ description: "Query Evaluations" sidebar_label: "Query Evaluations" hide_title: true hide_table_of_contents: true -api: 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 +api: eJzlmltvGjkUx78K8tOuNARCc2l5WpqkCrvtJhtoV1qE0MFjwnTNzNT2JKFovvvq2J4bcymBVKq2fWkwxz/bx/bx38dsiIJ7SfoTcvUAPALlBb4kU4cEIRP609AlffIlYmI9k94q5GzGcpYOEexLxKR6G7hr0t8QGviK+Qr/hDDkHtWGnc8y8LFM0iVbAf4VCmxCeUzip4ypa/rrmwXpT7atFlx3tt7AkzPuPbCiiVqHjPTJPAg4A5/ETlrkR5yTeOoQ5SmOBUPZeo/1YwdRQNWBsIEhGBzlgWTuIbgLQzC4LxGLDurcXxpg+wZ0eWDfDMHgZMg9dQhtpAGxQ5agRyrsBO/FuwY9WM2wSMWkkkwdxhwnkAQqgB7YzbFB5HpJQR7KTCkWazdbIA7jXmUYC6aRVMHqIOiFQVjgMlqBfxDvWhMsDiIVHEQbICCOncQomH9mVJHMKIuid5GPa279TsesMhghpWgGruthZeC3hbi2S4elEp5/r0uqMYR6gkYcxC/vYc747zLw20M/jNSvZHtA+XFvGZPS6JucNjaDJyumYM+h5sZlSzxfsXsmig2v5sWSvIe+5Y93EW92h7MhnmKr3SqBELBu9Eqx6vM8+gE9GTvEh1V19C/7q8T4E+vGDnGZpMILy8fu7qjLHAJjv7s1idZt20iHLAKxAkX6JIo8N+eCb3tv6MrGPTjSMiXbiXobVu/AR893g0fsUIOo8Nkjk9WnWXk0LijWVp72b8MEGGTskIC7Lw2/MUhcI+xpV7SdhaYuP2km91Y1R3vlttyivNe1cdzCZaK5b8yPVqhMQVLmu6YMV6z9MG30gcbjgvQVEw/A9+7xMAHEDhGgqvdcOfyUOHdYt2nZ/p2uxYql+tzlfmdUOYmxJkp0T6C8UyJiukCGgW91Ra/bxf8KsYCMIkqZlIuIt+6sMXH2Ffc0iEylLbdnY7jQFji9C4i4Iv1u7JD8PaOfiyT73wm2joay7s/1YAFcsu17QBPAav1qRKb9mxBW31cjUr3fRDCavqYPqcZv7IOxqkakur6JYLR7BWBLy9cy8nq9BpPX742cVKPXgVLN3owxZg29SXX6N7tjLGtQRW3eyMrp7xpYpscbQVZz10BSDd7IMDq7BpHo7kaC1tYlwK5a+8eW2TeReobONtb/a6Fd65BGpV2q9QypvY9Tf2ytTQUDxdwZvKx8vDDY1kA7Kwrd79HIR4O1jbiMs+/QyKXB2kYSd83XM68607WHKk6c9XbdGrp5f71oK4m30lYSh71oK4m70lZeDm14D0zIA5b/J1sdxw/bUa6o+aQCFTVGuex6EaaXC62wUPqIyPdNkTQ6GAcLHo8EaismhDlzKfiUcc5cMq06lUamE5Vnkk2oKxa+3H25LtDXDZwmx/7Snt36mMbeWWeuMXYZkV3T+A4xVF9HWiM9Uqxo9NhPMXSrPbPB5y5NP4UDBtl4MyekCvencEEq0jMHCBYyqHl62CUjcWfrx/pCTiMhmE/XTeFwDoouZ9L7Wq1idmn0LSJaI0SgyoSnmWCq9lVmF+IHeGrdWYb2ihLrmcs4rCuRu6RYENG61IidLw6XoOAi58bDki9IOxBRWtxVHS9c+SbP4ss0oRPr7NBJr1fO/3wC7rlm417hcbd/8sdlCjzekMDhAS18+5x7ybTeV+8DmrpzJe+rIkEm86WEe5Y5vt5UO6M1xm91chGvFGieJgvtHYOqpxymNCcX6EvMp1bMW5atm2jfmO5bu7wcSqfIzFC9Ky7NFDQtkuvx+LYENOujuDDMcV5ciCumlgH+TCAMJEJDUEvSJx3ze4FOLo/X0boHdRUTqAb1NEeCozWEnp5j83GpVNjvdHhAgS8DqczXU6xJI+Gpta46uB3+wdbXDHQyeTLNG4xwQZolVjRLpwVC7w+GvTH3OzKI1DIQ3lezbnB6sSOmFnoCl/pd9nOHqyfA8ZV/vpCmJNPUI+ZdC6nEtCBJDKYFNs2XGdisXVpgc3DmcyGllhVl6bFcmc10Fa1s2iorzCegstIkk5SV2LRQVmCSPDbDbHMuWUIivUVne6q4sNJi/YQ0Ia8W8Pp0cXbSPj0/Pm+fnJ712vNXC9ru0TdnrxZnZ7CAM1J6w0neakiv2ztpd8/bvTfj49P+6XG/9/qoe378D8meXJpszMvJbp1I30S66bNG4c0ie4LoJk8I3VhHj0WQDx6De+YraA1uhyXnFL7CQAxUx51k4eqviZPbO7Lf6YAuPgKvg7JnpcMwUQxWv6XfFK5lpHt0fNTFItzINutnm6ja91spDburMLB1Qg6eDr26RxsbEibEhARSTO7b6xAGN9zqaLfZzEGyj4LHMRab7/uTqUMeQHgwR4dNcPaXyd7fkH/ZOgmtvmrrGI3mPDJ7fevIwlBjagwoZaFqtJ3mgtztzWhMHDK3P3haBS7WEfCIsRseSZ/gGgvTdwtdtiEc/PsIT5k+MUz89x9YN9Cd sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-evaluators.api.mdx b/docs/docs/reference/api/query-simple-evaluators.api.mdx index b82b4f2df8..84eb827773 100644 --- a/docs/docs/reference/api/query-simple-evaluators.api.mdx +++ b/docs/docs/reference/api/query-simple-evaluators.api.mdx @@ -5,7 +5,7 @@ description: "Query evaluators via the simple surface with filters and paginatio sidebar_label: "Query Simple Evaluators" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-queries.api.mdx b/docs/docs/reference/api/query-simple-queries.api.mdx index 2675e97b54..3047d80b44 100644 --- a/docs/docs/reference/api/query-simple-queries.api.mdx +++ b/docs/docs/reference/api/query-simple-queries.api.mdx @@ -5,7 +5,7 @@ description: "Query Simple Queries" sidebar_label: "Query Simple Queries" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-queue-scenarios.api.mdx b/docs/docs/reference/api/query-simple-queue-scenarios.api.mdx index 48aba00eec..d4b88283b2 100644 --- a/docs/docs/reference/api/query-simple-queue-scenarios.api.mdx +++ b/docs/docs/reference/api/query-simple-queue-scenarios.api.mdx @@ -5,7 +5,7 @@ description: "Query Simple Queue Scenarios" sidebar_label: "Query Simple Queue Scenarios" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-queues.RequestSchema.json b/docs/docs/reference/api/query-simple-queues.RequestSchema.json index 54cfbb6cbe..4eaf6c050a 100644 --- a/docs/docs/reference/api/query-simple-queues.RequestSchema.json +++ b/docs/docs/reference/api/query-simple-queues.RequestSchema.json @@ -1 +1 @@ -{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"kind":{"anyOf":[{"type":"string","enum":["traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids"},"run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Run Id"},"run_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Run Ids"},"queue_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queue Ids"}},"type":"object","title":"SimpleQueueQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"SimpleQueueQueryRequest"}}},"required":true}} \ No newline at end of file +{"title":"Body","body":{"content":{"application/json":{"schema":{"properties":{"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Input)","type":"object"}],"title":"LabelJson-Input"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Input)","type":"object"},{"items":"circular(FullJson-Input)","type":"array"},{"type":"null"}],"title":"FullJson-Input"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"kind":{"anyOf":[{"type":"string","enum":["queries","testsets","traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"user_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"User Id"},"user_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"User Ids"},"run_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Run Id"},"run_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Run Ids"},"queue_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queue Ids"}},"type":"object","title":"SimpleQueueQuery"},{"type":"null"}]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"SimpleQueueQueryRequest"}}},"required":true}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-simple-queues.StatusCodes.json b/docs/docs/reference/api/query-simple-queues.StatusCodes.json index 228a1edcf2..d3631168a7 100644 --- a/docs/docs/reference/api/query-simple-queues.StatusCodes.json +++ b/docs/docs/reference/api/query-simple-queues.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"SimpleQueue"},"type":"array","title":"Queues","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"SimpleQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queues":{"items":{"properties":{"flags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Flags"},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"kind":{"anyOf":[{"type":"string","enum":["queries","testsets","traces","testcases"],"title":"SimpleQueueKind"},{"type":"null"}]},"queries":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Queries"},"testsets":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Testsets"},"evaluators":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluators"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"assignments":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Assignments"},"settings":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"SimpleQueueSettings"},{"type":"null"}]}},"type":"object","title":"SimpleQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"SimpleQueue"},"type":"array","title":"Queues","default":[]},"windowing":{"anyOf":[{"properties":{"newest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Newest"},"oldest":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Oldest"},"next":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Next"},"limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Limit"},"order":{"anyOf":[{"type":"string","enum":["ascending","descending"]},{"type":"null"}],"title":"Order"},"interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Rate"}},"type":"object","title":"Windowing"},{"type":"null"}]}},"type":"object","title":"SimpleQueuesResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/query-simple-queues.api.mdx b/docs/docs/reference/api/query-simple-queues.api.mdx index 53d1bf619f..3958a4e4a4 100644 --- a/docs/docs/reference/api/query-simple-queues.api.mdx +++ b/docs/docs/reference/api/query-simple-queues.api.mdx @@ -5,7 +5,7 @@ description: "Query Simple Queues" sidebar_label: "Query Simple Queues" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-testsets.api.mdx b/docs/docs/reference/api/query-simple-testsets.api.mdx index 556a4f0601..0f87b9c6a7 100644 --- a/docs/docs/reference/api/query-simple-testsets.api.mdx +++ b/docs/docs/reference/api/query-simple-testsets.api.mdx @@ -5,7 +5,7 @@ description: "Query Simple Testsets" sidebar_label: "Query Simple Testsets" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-traces.api.mdx b/docs/docs/reference/api/query-simple-traces.api.mdx index 4f1b6afe5b..d8ef6aa9b6 100644 --- a/docs/docs/reference/api/query-simple-traces.api.mdx +++ b/docs/docs/reference/api/query-simple-traces.api.mdx @@ -5,7 +5,7 @@ description: "Query 'simple' traces." sidebar_label: "Query Traces" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-simple-workflows.api.mdx b/docs/docs/reference/api/query-simple-workflows.api.mdx index 7c4ae7653a..df6ab5130a 100644 --- a/docs/docs/reference/api/query-simple-workflows.api.mdx +++ b/docs/docs/reference/api/query-simple-workflows.api.mdx @@ -5,7 +5,7 @@ description: "Query Simple Workflows" sidebar_label: "Query Simple Workflows" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-spans-analytics.api.mdx b/docs/docs/reference/api/query-spans-analytics.api.mdx index 7d3ac72c8e..27921328bf 100644 --- a/docs/docs/reference/api/query-spans-analytics.api.mdx +++ b/docs/docs/reference/api/query-spans-analytics.api.mdx @@ -5,7 +5,7 @@ description: "Query Analytics" sidebar_label: "Query Analytics" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-spans-rpc.api.mdx b/docs/docs/reference/api/query-spans-rpc.api.mdx index 96a6492c99..b57e24a309 100644 --- a/docs/docs/reference/api/query-spans-rpc.api.mdx +++ b/docs/docs/reference/api/query-spans-rpc.api.mdx @@ -5,7 +5,7 @@ description: "Query spans and traces in the tracing backend." sidebar_label: "Query Spans" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-spans-sessions.api.mdx b/docs/docs/reference/api/query-spans-sessions.api.mdx index 046d607f32..6da39f1b02 100644 --- a/docs/docs/reference/api/query-spans-sessions.api.mdx +++ b/docs/docs/reference/api/query-spans-sessions.api.mdx @@ -5,7 +5,7 @@ description: "Query Sessions" sidebar_label: "Query Sessions" hide_title: true hide_table_of_contents: true -api: eJztl21v2zYQx78Kca82QH6Im4dWr5a1BWq0a7IkW4EZRnyWTjY7ilRJKoln6LsPR/pJceIWxd4MaN7EIo/H093/fhSX4HHmIB3BjcWMHIwTMBVZ9NLoYQ4pfKnJLm5dhdrdOnJOGu0gAUtfanL+V5MvIF1CZrQn7fknVpWSWXDQ++yM5jGXzalE/lVZdu8lOX6yhMrLksI6vbgoIB0twS8qghSmxihCDU2yGdK1UtCME/DSKx64WjtIICeXWVnxvpDCpzlpMfG2pkkiKpxJjZ7EdCEmCp2/xczLO5qInywVijLvhNEzI/VMhBnpF2Jae5GhFm4uCy+m5O+JNLsi93NXRP8FKkcTYayotSPf3snPSTiPU0ViUki7s2tWW2dsF5oE7qXOzb3Us3YK2mnSdE/OP5kk5y0vTqAwtkQPKeToqRNycihxH6PLJgGj8v/a+UV02SSg6eFbXde1zL8S8kPwqWQpn3YqtacZ2YNePoTV/N42J3s4NtJ1yb2BLiOdxzGW2ephfDAHwX2ThKDsHarvjni4dtAkYNE/3Sy6Lqdf8XPFa5smWRuY6WfKPGwNPm20+JSbdn+9DhJe610aLVDngpUhLOoZdcUlOhd6wJKvraZcTDZi77IuJsJo4eqpY5RobjalnPBGMEykrklIvyJR92Dc1yss/c6ouopg2gPCalxMTb4QhbFicnlxfSN63mIm9ay3ZlsvAG/COzYRc9JSDimjJAy4ymgX+3LQ7/O/9kbXdZaRc0WtxNXKGJLvBWRm6rjokV62L/86WDx+249BDsIUYvVeYvjGCamFn0sXINYNawqslYe03ySwMryVedhZeirdzs6rptiWAa3FxX4VxDB3e+G8kc5LnXlxh6omx3FNcNZdbdmV+eT52EbjH5j8gcn/NyaZN4xCrnNUeMTjHdkpelkKdHt0/CbmDXO3gUwTiHU8GOwz6U9UMo+Yfmutsd8PpJw8StUCRNtAmaw1+5xsdnK3qe74ebp8MDFArm7pZvtg2pr+Rs7hjLaoet40JEPc8GyQYFVH2G4kxQNNApl/2HGzV4zXnEvuuicKtj1BRiE3MfyV3Y7stiWKFXo+FW9iCQ6p493NzeWew6iPtjDCkSmut9/1Jfm54e/+yoRDtEI/hxR64QLw6JAEPjTsHVkX6ltbxZZYyVDc+Dj3vnJpr0d1N1Omzrs4I+2xizIajtlHVlvpF8HJ+eXwPS3eEQbqjMa7BtesyaiyttmmMljJ98RxaeRLBZzXfm6s/CdKhyvMIcVVnAxW+9X2JvP2ActKUftmwgf/owNofdDAoD847vTPOoNXN0cn6clROnjZ7Z8d/QXb8+KQTcQ+vCjw5Ulxetw5OTs66xyfnA460xdF1hlkr05fFKenWOApbIDe3zC5BdwtP/tr/vWbIOrC7Gr6PORfnF8O907p1hTzAbPQDutkhmlIHlV2W1A+CspAB/CE5S+bGRYzyyRu0+8edfs8xBIrUe9ssSfHVoCbMnOz9SqFMuAghLNcKXUEQamw+Z7hn1Gt4wTmLOp0BMvlFB39YVXT8HCcT0fjBO7QSr6yrb475mshLuFvWqxbXftOYAabqzoK7xFCuQPiivMso8oftB3v9B1/lUIC09XFujQ5r7F4zyzBe0iBxRUyEq/QPLYEhXpWM/VSiD7571/WhWiD +api: eJztl21v2zYQx78Kca82QH6Im4dWr5a1BWq0a7IkW4EZRnyWTjY7ilRJKoln6LsPR/pJceIWxd4MaN7EIo/H093/fhSX4HHmIB3BjcWMHIwTMBVZ9NLoYQ4pfKnJLm5dhdrdOnJOGu0gAUtfanL+V5MvIF1CZrQn7fknVpWSWXDQ++yM5jGXzalE/lVZdu8lOX6yhMrLksI6vbgoIB0twS8qghSmxihCDU2yGdK1UtCME/DSKx64WjtIICeXWVnxvpDCpzlpMfG2pkkiKpxJjZ7EdCEmCp2/xczLO5qInywVijLvhNEzI/VMhBnpF2Jae5GhFm4uCy+m5O+JNLsi93NXRP8FKkcTYayotSPf3snPSTiPU0ViUki7s2tWW2dsF5oE7qXOzb3Us3YK2mnSdE/OP5kk5y0vTqAwtkQPKeToqRNycihxH6PLJgGj8v/a+UV02SSg6eFbXde1zL8S8kPwqWQpn3YqtacZ2YNePoTV/N42J3s4NtJ1yb2BLiOdxzGW2ephfDAHwX2ThKDsHarvjni4dtAkYNE/3Sy6Lqdf8XPFa5smWRuY6WfKPGwNPm20+JSbdn+9DhJe610aLVDngpUhLOoZdcUlOhd6wJKvraZcTDZi77IuJsJo4eqpY5RobjalnPBGMEykrklIvyJR92Dc1yss/c6ouopg2gPCalxMTb4QhbFicnlxfSN63mIm9ay3ZlsvAG/COzYRc9JSDimjJAy4ymgX+3LQ7/O/9kbXdZaRc0WtxNXKGJLvBWRm6rjokV62L/86WDx+249BDsIUYvVeYvjGCamFn0sXINYNawqslYe03ySwMryVedhZeirdzs6rptiWAa3FxX4VxDB3e+G8kc5LnXlxh6omx3FNcNZdbdmV+eT52EbjH5j8gcn/NyaZN4xCrnNUeMTjHdkpelkKdHt0/CbmDXO3gUwTiHU8GOwz6U9UMo+Yfmutsd8PpJw8StUCRNtAmaw1+5xsdnK3qe74ebp8MDFArm7pZvtg2pr+Rs7hjLaoet40JEPc8GyQYFVH2G4kxQNNApl/2HGzV4zXnEvuuicKtj1BRiE3MfyV3Y7stiWKFXo+FW9iCQ6p493NzeWew6iPtjDCkSmut9/1Jfm54e/+yoRDtEI/hxR64QLw6JAEPjTsHVkX6ltbxZZYyVDc+Dj3vkp7PWUyVHPjfJwe88qsttIvwtLzy+F7WrwjDKwZjXcNrlmJUVtts009sJLviaPRyFcJOK/93Fj5TxQM15UDias4Bazxq+395e0DlpWi9n2Ej/tHx876eIFBf3Dc6Z91Bq9ujk7Sk6N08LLbPzv6C7anxCGbCHt4UeDLk+L0uHNydnTWOT45HXSmL4qsM8henb4oTk+xwFPYYLy/IXELs1tq9tfU6zdByoXZVfL5jLRHcX453DubW1NMBcxCE6yTGaYh2amnS3s9DMNdlD0+AMrABPCE5S+bGZYwiyNu0+8edfs8xMIqUe9ssSfCVoCbMnOL9SqFMkAghLNc6XMEQZ+w+Yrhn1Gj4wRYd2yzXE7R0R9WNQ0Px/l0NE7gDq3ki9rqa2O+FuIS/qbFusG17wRSsLmqo/AegZN1H1ecZxlV/qDteKfb+FsUEpiurtOlyXmNxXsmCN5DCiyukJF4ceaxJSjUs5pZl0L0yX//AmJYZSQ= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-spans-users.api.mdx b/docs/docs/reference/api/query-spans-users.api.mdx index 4d9a4cafa5..c0594c94e1 100644 --- a/docs/docs/reference/api/query-spans-users.api.mdx +++ b/docs/docs/reference/api/query-spans-users.api.mdx @@ -5,7 +5,7 @@ description: "Query Users" sidebar_label: "Query Users" hide_title: true hide_table_of_contents: true -api: eJztV21v2zgM/isCPztOmr5t/nS9dsCC7bZeX27ABUHD2HSinS15ktw2F/i/HyjlzU2bHor7csDyxTFFUhT58KG8AIdTC8kQbgymZGEUga7IoJNaDTJI4EdNZn5nK1T2rrZkLERg6EdN1v2qszkkC0i1cqQc/8WqKmTqrbvfrVYss+mMSuR/lWHfTpLlN0NYOFmSt1PzrzkkwwW4eUWQwETrglBBE61Fqi4KaEYROOkKFlytHESQkU2NrHhfSODbjJQYO1PTOBIVTqVCR2IyF+MCrbvD1Ml7Gsci6OVYWBoLbUStLLm2hZuRsA4nBYlxLs3GWqS1sdrE0ETwIFWmH6Sato/SPq6iB7Lu2cNaZ9g4glybEh0kkKGjjj/bvgR8CS6bCHSR/dfOvwaXTQSKHv+t67qW2SshP3qfhSzl806lcjQls9fLZ2/N5zYZmf2xkapLBjjalFQWZAyX5ctobw68+ybyQZl7LN4c8WDloInAoHse9KouJ6/4uWLbpolWCnrynVIHG4Vvayw+56bdJ+cewiu8S60EqkwwMoRBNaV47063zAa/Mz1cBT7Y6cOlXEx0Nhe5NmJ8+fX6RnSdwVSqadfzSdczzJj3agK1SEMZJNy+XmArrWzooX6vx4/2Ltd1mpK1eV2Iq6UyRG8lpVTXwehJbTfHPvcaT4/6xZdO6FzwocTgwgqphJtJy+ml2BvkWBcOkl4TAWvdyczvKR2VdmvPJXQ3qUdjcP4k82KQ2Z0oLqR1UqVO3GNRk+VwxjiNebNYZuOXQxqOftLYTxr7f9MYEwyPa65zQLi4RGvFPZkJOlkKtGK8xnjMauPXGW6Q2TWrNJ6ijvr9XRL6AwuZBQ79YIw2b2egjBzKosULbYVCp63VlzCzlbh1aUcvk8pnHQLk0pZ2ustHG9XfyFqc0oahXlb1yRA3vOrxV9WBXdd4YkETQeoet9zsVOKcc8kt90y1NiNj6HMTwl/qbWFuU6JQoZdTcRFKsA8aH29uLnccBny0geEHpLhd3pxLcjPN1+pK+3lZoZtBAl1/v96ehxCBJXPPVlzZ2hSshpX0ZQ2vM+cqm3S7VMdpoessxikphzHKoDhiH2ltpJt7J2eXg080/0joyWY42la4ZjQGfLXV1jXBSn4ijksh39nhrHYzbeTfATRcWw4pWHEaGOdXmw+FD49YVgW1L/4845/MndV8gX6vf9TpnXb6728OjpPjg6T/Lu6dHvwJmzGxTyewPRzm+O44PznqHJ8enHaOjk/6nclhnnb66fuTw/zkBHM8gTWP99ZU3OLZDW32VrTXazycc72N5jOff3F2OdiZzK0lZgZMfSOskumXIXpS2U1BeQKUnhfAEZa/rFcYxgyTsE0vPoh7LGJ8lai2tmgDsRXdusbcY92qQOlZwMeyWGJ0CB6jEK4u/Aw4HUUwYywnQ1gsJmjp1hRNw+KwngxHEdyjkfwNtbxozFYQXMBfNF+1t3IdzxOsXtQBck9ok7EfLM7SlCq3V3e01W5874QIJssv1lJnbGPwgfkDHyABhpVPR/g2ZdkCClTTmpkugeCTf/8ANjsnJw== +api: eJztV9uO2zgM/RWBz85lMrfWTzvbFmjQbjs7ly2wQTBhbDpRV5ZcSZ6ZbOB/X1DKzZOZdFHsywLNi2OKpCjy8FBegseZg3QENxYzcjBOwFRk0Uujhzmk8K0mu7hzFWp3VzuyDhKw9K0m5381+QLSJWRGe9Ke/2JVKZkF695XZzTLXDanEvlfZdm3l+T4zRIqL0sKdnrxuYB0tAS/qAhSmBqjCDU0yUaka6WgGSfgpVcsuFo7SCAnl1lZ8b6Qwpc5aTHxtqZJIiqcSY2exHQhJgqdv8PMy3uadEXUK1A5mghjRa0d+baFn5NwHqeKxKSQdmststo6Y7vQJPAgdW4epJ61j9I+rqYHcv7Zwzpv2TiBwtgSPaSQo6dOONuhBHyKLpsEjMr/a+efo8smAU2P/9Z1Xcv8OyE/Bp9KlvJ5p1J7mpE96OVjsOZz25zs4dhI1yUDHF1GOo8yhsvqZXwwB8F9k4Sg7D2qH454uHbQJGDRPw96XZfT7/i5YtumSdYKZvqVMg9bhS8bLD7npt0nbwKE13iXRgvUuWBkCIt6Rt2DO90yG/zO9HAV+WCvD1dyMTX5QhTGisnl5+sb0fMWM6lnvcAnvcAwE96ridQiLeWQcvsGgauMdrGHBv0+P9q7XNdZRs4VtRJXK2VIfpSUMlNHoye13R77TdB4etRPoXTCFIIPJYZvnZBa+Ll0nF7qBoMCa+Uh7TcJsNadzMOe0lPpdvZcQXeberQWF08yL4a524virXRe6syLe1Q1OQ5ngrMub9aV+eTlkEbjnzT2k8b+3zTGBMPjmuscES4u0TlxT3aKXpYCnZhsMN5ltcn3GW6Yuw2rNIGiTgaDfRL6A5XMI4e+s9bYH2egnDxK1eKFtoIyWWv1JczsJG5T2vHLpPLRxAC5tKWb7fPRVvU3cg5ntGWol1VDMsQNrwb8VXVk1w2eWNAkkPnHHTd7lXjDueSWe6Za25ExCrmJ4a/0djC3LVGs0MupeBtLcAga729uLvccRny0gREGpLhd3ZxL8nPD1+rKhHlZoZ9DCr1wv96dh5CAI3vPVlzZ2ipWw0qGssbXufdV2uspk6GaG+fj8pgts9pKvwimF5fDD7R4TxgoZjTeVbhmDEZUtdU2lcBKfiCORiPf1OGi9nNj5d8RKlxRDiRa8eEZ3Vfbz4N3j1hWitrXfZ7sT6bNeqrAoD846fTPO4PXN0en6elROnjV7Z8f/Qnb4XBIJ3I8HBf46rQ4O+mcnh+dd05Ozwad6XGRdQbZ67Pj4uwMCzyDDXv3NwTcYtctWfbXZNdvAogLs4vhixlpj+Licrg3j1tLzAeYBfivkxmWIdmpp0t7PQziLsoe834Z2AA8YfnLZoXBy+CI2/S7R90+ixhVJeqdLdrwa0W3qTF3Vq9SKEPvh1iWK2SOICAT4oWFnxGd4wQYcaywXE7R0a1VTcPiuJ6Oxgnco5X85bS6XszXEFzCX7RYN7X2ncAOrK7qCLknZMmIjxYXWUaVP6g73mkyvm1CAtPVd2ppcrax+MCsgQ+QAsMqpCN+kbJsCQr1rGZ+SyH65N8/SpojyA== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-spans.api.mdx b/docs/docs/reference/api/query-spans.api.mdx index 76f45c16ef..1813955cf7 100644 --- a/docs/docs/reference/api/query-spans.api.mdx +++ b/docs/docs/reference/api/query-spans.api.mdx @@ -5,7 +5,7 @@ description: "Query spans as a flat list." sidebar_label: "Query Spans" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-testcases.api.mdx b/docs/docs/reference/api/query-testcases.api.mdx index eeefa79af8..7298115eab 100644 --- a/docs/docs/reference/api/query-testcases.api.mdx +++ b/docs/docs/reference/api/query-testcases.api.mdx @@ -5,7 +5,7 @@ description: "Query Testcases" sidebar_label: "Query Testcases" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-testsets.api.mdx b/docs/docs/reference/api/query-testsets.api.mdx index 81e39e5ba4..c7957233cb 100644 --- a/docs/docs/reference/api/query-testsets.api.mdx +++ b/docs/docs/reference/api/query-testsets.api.mdx @@ -5,7 +5,7 @@ description: "List and filter testset artifacts." sidebar_label: "Query Testsets" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-tool-connections.api.mdx b/docs/docs/reference/api/query-tool-connections.api.mdx index 26a4776d4f..babd9d941a 100644 --- a/docs/docs/reference/api/query-tool-connections.api.mdx +++ b/docs/docs/reference/api/query-tool-connections.api.mdx @@ -5,7 +5,7 @@ description: "Query connections with optional filtering." sidebar_label: "Query Connections" hide_title: true hide_table_of_contents: true -api: eJztWE1v4zYQ/SvCnFpAa7tBTzrVTbpYN7uNu3F6CQyDpsY2t5So5Ue6rqH/XgwpyZJlexMj20t7CiLOvBm+eUMOvQPL1gaSR5gpJQ3MY0jRcC0KK1QOCfzuUG8jrvIcOX0y0V/CbiLl15mMVkJa1CJfDyAGVaBmtDBJIYHP5LqwSslFyx9iKJhmGVrUFHgHOcsQEii0ehIp6sWfuIUYRF5DQAwaPzuhMYVkxaTBGAzfYMYg2QHLt3crj2O3BeEYS+lAGTdfcicllPMYrLCSPkyrUNEtbqEkyyoHkVtchy38C2lM9tGqTOYUwxQqN2gI9Wo0oj/dktw7ztGYlZPRx8oYYuAqt5hbn0tRSME97vCTIZ9dK9NCU5msCBG4csGpStIzgBr2WV57C9LFijlpIRmVPlpT0GQHwmJm+uAr6cXVZoelqQjSmXZMe/wtlZLI8jaBLUqPwwAXmjvJ9Hfv2RLlr0blb+6cLZz9njYUUNTyE3LbKcShNZQ96zNlfOt3SS7/hd3Oqs1maNmFm+23Rq26TuBs2f3S5uhrjLx18iuExI1qn+PFtGbb8yro+r6M1A9EJrWVRmYxXTB7jrgYVkpnZAMps/jGigzPwl8H2Gjs03JF+i2CPATYKkiKEr9BkJsAWwWp6VpuFyJ9ZhznRPossn7eRpO0zderRqnZaqLUhL1qlJquJkq45y67rn5jvjjd2+gyqJsWRBmDkW59KdQ9+ZYxvB5pganOOJL08TB3Gc1NXGWFMkJBDGyNuWXQPiyVkvWwcStyD3w4YxzBPjkgxNQm/x+7r3Xs3rBw7BrLrDsgrTvJaEyFRm4XTstLlfqxwogetKSp8yDRrmqumwHrPiTXRz4GsZ9QH/sDdVd381MBWxwG/tuzYHuObybCx6O5HEc3zcxaluT149VVf8T9g0mRBt3/orXSl8+3KVom5JkZVSreWX1J28xPM/VehQT9qGTW57r8AxrD1rin/bSpJyOa0ao/SUjxZN6cF1ULcPulBdOryDVx+cUeFWFbQcRNSL+ya2lmX6JQodNU3IQSnJPIu9ls2gMM+sjQbhQ9JwtlrH882g0kMKR3pRm23iHD+pVmUD/Vb0vfrjBkhfAFDP9urC1MMhyiG3CpXDoIB/eAiWA4JwzutLBbDzKeTm5x+w5ZitqLvWVwT7oLSuqaNeyzQtz6BqzemGNnN0qLv4M8qhfmJniVvqor1S7q2CcXjacTOHycd5aoQRj3eqgjhfsoPtj2frd0jWW+PcAiy35qVqiaxGEIMxr8MBj5O1EZm7G8FSL8PHB4LHTmg6ZxX/ZbQsUe6XRYSCZ8J1Wnb9DAI3gNQPc1Glev9XkMG1JM8gi73ZIZfNCyLOlzWKfCpsKwpWy95/19fHhwPjHpKBWvoBMu/R8O9l5z+kcLcvPqietqUwrBfcw5Frbl1TviCKVphend/QzK8h/XiBmB +api: eJztWMFu4zYQ/RVhTi2gjdKgJ53qJl1smt3GXTu9BIZBU2ObW0rUklS6rqF/L4aUZMqyvYmR7aU9BRFn3gzfvCGH3oJlKwPpI0yVkgZmMWRouBalFaqAFH6vUG8irooCOX0y0V/CriPl1pmMlkJa1KJYXUAMqkTNaOE2gxQ+k+vcKiXngT/EUDLNcrSoKfAWCpYjpFBq9SQy1PM/cQMxiKKFgBg0fq6ExgzSJZMGYzB8jTmDdAus2NwvHY7dlIRjLKUDddx9KSopoZ7FYIWV9GHchIrucAM1WTY5iMLiym/hX0jjdhetyWRGMUypCoOGUK8uL+lPvySTinM0ZlnJ6GNjDDFwVVgsrMulLKXgDjf5ZMhnG2RaaiqTFT4CV5V3apJ0DKCGXZbXzoJ0sWSVtJBe1i5aV9B0C8JibobgS+nEFbLDskx46Yx7pgP+FkpJZEVIYEDpYRjgQvNKMv3de7ZA+atRxZv7ypaV/Z425FHU4hNy2yvEvjXUA+sTZXzrdkku/4XdTpvN5mjZmZsdtkarul7gfNH/EnL0NUbeVvIrhMSdap/jxbRmm9Mq6Pu+jNQPRCa1lUZmMZsze4q4GJZK52QDGbP4xoocT8Jfe9ho5NKqyuxbBHnwsE2QDCV+gyA3HrYJ0tK12MxF9sw4VSWyZ5H18ya6zUK+XjVKy1YXpSXsVaO0dHVR/D133nX1G3PF6d9G50HdBBB1DEZWq3OhJuRbx/B6pHmmeuNIOsTDosppbuIqL5URCmJgKywsg/CwVEq2w8adKBzw/oxxAPvogBBTm/x/7L7WsXvD/LFrLLPVHmn9SUZjJjRyO6+0PFepHxuM6EFLmjr3Eu2r5robsCY+uSHyIYjdhPo4HKj7upsdCxhw6PkPZ8Fwju8mwseDuRxGN93MWtfk9ePV1XDE/YNJkXnd/6K10ufPtxlaJuSJGVUq3lt9SdvMjjP1XvkE3ahkVqe6/AMaw1a4o/24qSMjmtKqO0lI8WTenRdNC3D7JYAZVOSauPxiD4owVBBx49Nv7ALN7ErkK3ScihtfglMSeTedjgeAXh852rWi52SpjHWPR7uGFBJ6V5okeIck7SvNoH5q35auXSFhpXAF9P+urS3TJJGKM7lWxvrlGXnySgu7ca6j8e0dbt4hy1A7iQcGE1Kb10/frOOcleLOtV3zshxVdq20+NuLonlXrr1X7Wq5VGEpR+4uiUbjW9h/kveWqC0YdypoI/lbKA42a9Ik8ZfTBRMJXV65awqwyPKfuhWqITHnw1xe/HBx6W5CZWzOiiCE/1Fg/zDoTQVdu77sF4SGPVJnUkomXP80Z66v/CO4ykP/DRo3b/RZDFRRMttuF8zgg5Z1TZ/9OhU2E4YtZPCKd7fw/nH5xGRFqTjdHHEZ/lyw85rRP1qQm1NP3FabUvDuI86xtIHX4GAjlK4BxveTKdT1P/RHFiI= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-traces.api.mdx b/docs/docs/reference/api/query-traces.api.mdx index 6a1df29990..b60d4c0990 100644 --- a/docs/docs/reference/api/query-traces.api.mdx +++ b/docs/docs/reference/api/query-traces.api.mdx @@ -5,7 +5,7 @@ description: "Query traces as a list of canonical `Trace` records." sidebar_label: "Query Traces" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-users.api.mdx b/docs/docs/reference/api/query-users.api.mdx index f8ef9f86c7..c318e86737 100644 --- a/docs/docs/reference/api/query-users.api.mdx +++ b/docs/docs/reference/api/query-users.api.mdx @@ -5,7 +5,7 @@ description: "List distinct user IDs from span attributes." sidebar_label: "List Users" hide_title: true hide_table_of_contents: true -api: eJztmN1v2zYQwP8V4p5l2XHz0Wovy5oCNdq1aZKuwByjOksnm51EqiSVxDP0vw9H+tuJMxR7GdC8xCbvjsf7+JH0HBxOLCRDuKDaUIaOchhFkJPNjKyd1AoSeC+tE7m0TqrMicaSEYMLKwqjK2FrVAKdM3LcOLLxrbpVV+Qao6xwU1qr3WHZkBW6EClOYjYSyzwVmBltrTdjhVSsc6uyxhhSTtRGf6PMxeIaKxI1TqRC9kmgykVqCEsnK0qFpQqVk5kVaG9Vevnx+kZ0ncFMqknXkrVSK9v93pCZpb+IGm3wzXg/KRfpvVS5vpdqEit6cKn3wGojtBK2GVv63rA7GZaljSECXZPxjgxySMDb/co7shCBYWHrftP5DJI5ZFo5Uo4/Yl2XMvN63W+WIzsHm02pQv5UG7bqJFn+ttyb11OzjwUkwzm4WU2QwFjrklBBG62GVFOW0I4icNKVPHC1NLCbzC9TUiJ1pqE0WoaUxHgm0hKt+4qZk3eUxiLIFVhaSoU2olGW3LYGx9A6HJck0kKatbYI4YuhjWAV2u2tbG9X0T1Z9+hmrTOsHEGhTYUOEsjRUcfv7VAAPgSTbQS6zP9r4x+DyTYCrpd/abppZP6Myw/eZikr+bhRqRxNyBy08t5r875NTuawb6SairsfbUYqD2NcLosvo4Mx8ObbyDtl7rD8YY8HSwNtBAbd40Wvmmr8jJ0r1m3baCmgx0wPWAt8WdXiY2a2++R1IMAOdLgyhEE1ofjgSp+ZBp8YDFeBB3t9uBgXY53PRKGN2MGW58mCWbxWG9AiDeWQcPv6AVtrZUMP9Xs9/re9ynWTZWRt0ZTiaiEM0Y9CKdNNUNrJ7Xrbr73E7lY/+NQx+ldnhye9tBxeir1CgU3pIOm1EbDUV5n7NaWjym6suSjddejRGJztRF4McrvnxcUzJ9GTLg1HPzH2E2P/b4wxYPi45jyHCheXfA26IzNGJyuBdu8W9DzhBrldUaX1iDru9/ch9AeWMg8MfWOMNj9OoJwcynKLC9sCpc62Zp+qmY3ArVI7ehoq73VwkFNb2ck+j9aiv5O1OKE1oZ4W9cEQNzzr669uAl1X9cQDbQSZe9gws5eJ1xxLbrlHsrU+MoY+NsH9hdxGza1TFDL0dCguQgoOlcbbm5vLPYOhPvL1M8MfYhFU5Kaar9G19qdkjW4KCTx2DkIElswd37M5o40pWRBr6dMZvk6dq23S7VITZ6Vu8hgnpBzGKIPgiG1kjZFu5o2cXw7e0ewtoYfMcLQpcM1VGOpqW2yVC6zlO2K/FPJdHc4bN9VG/h2KhXPKLgUt3j7X99X6gfDmAau6pO0LfwjL1nmzPFeg3+sfd3pnnf6rm6OT5OQo6b+Me2dHf8L6eDgkEygPLwp8eVKcHndOzo7OOscnp/3O+EWRdfrZq9MXxekpFngKK373Vgje4usal70l7nqtL+NCb1bxuY+/OL8c7J3IW1NMBMx8AyyD6ach2snsOqFM/srzABxh9etqhsuXyyQs04uP4h4PcYVVqDaW8C/bz4uX25ZzGy+3n+/f3ffvovqZOt26ROm56LM0X/TvEBbLQ7jOcXxDD48imHKnJ0OYz8do6bMp25aHw3wyHEVwh0byu3Jx+Zou23MOf9FsiTzlOp6dLF42oR13jhLmQtA4zzKq3UHZ0QaMOIQQwXjxiq90zjoG75mpeA8J+J8BWDu813lsDiWqScP0TyDY5L9/AKyg+GI= +api: eJztV21v2zgM/isCPzsvzfqy+b5cbx2wYLuta7sbcGkwMzadaGdLniS3zQX+7wdKeXPSpofhvhywfmkskRRFPnwoLsDh1EI8gguqDKXoKINxBBnZ1MjKSa0ghvfSOpFJ66RKnagtGTG8sCI3uhS2QiXQOSMntSPbvVW36opcbZQVbkYbtTssarJC5yLBaZeNdGWWCEyNttabsUIq1rlVaW0MKScqo79R6rriGksSFU6lQvZJoMpEYggLJ0tKhKUSlZOpFWhvVXL58fpG9JzBVKppz5K1Uivb+16TmSe/iApt8M14PykTyb1Umb6XatpV9OAS74HVRmglbD2x9L1md1IsCtuFCHRFxjsyzCAGb/cr38hCBIaFrftNZ3OIF5Bq5Ug5/olVVcjU6/W+WY7sAmw6oxL5V2XYqpNk+Wt1N6+n5h9ziEcLcPOKIIaJ1gWhgiZaL6m6KKAZR+CkK3jhamVgN5lfZqRE4kxNSbQKKYnJXCQFWvcVUyfvKOmKIJdjYSkR2ohaWXJtDY6hdTgpSCS5NBttEcLXhSaCdWjbV2lfV9E9WffoZa0zrBxBrk2JDmLI0FHH3+1QAD4Ek00Eusj+a+Mfg8kmAsbLvzRd1zJ7xuUHb7OQpXzcqFSOpmQOWnnvtfneJiNz2DdSdcnVjzYllYU1hsvyY3wwBt58E3mnzB0WP+zxcGWgicCgexz0qi4nz9i5Yt2miVYCesLsARuBL2ssPmamXSevAwPskA4jQxhUU+oePOkzs8EnJoarwAd7dbhcFxOdzUWujdihLc8nS87is5pALdJQBjGXr1+wlVY21NCg3+d/7VOu6zQla/O6EFdLYYh+lJRSXQelndxurv3aS+xe9YNPHVP/und4ppeWw0tdr5BjXTiI+00ELPVVZv5M6ai0W2cuobsJPRqD853Ii2Fm97y4eKYTPenSaPyTxn7S2P+bxphguF1zngPCxSU/g+7ITNDJUqDdewU9z3DDzK5ZpfEUdTwY7JPQH1jILHDoG2O0+XEGysihLFq80BYodNrafQozW4Fbp3b8NKm818FBTm1pp/t8tBH9nazFKW0Y6mlRHwxxw7sef1Ud2HWNJ15oIkjdw5aZvUy85lhyyT2SrU3LGPnYBPeXcluY26QoZOjpUFyEFByCxtubm8s9gwEf2WbM8E0sgpLcTPMzutK+S1boZhDDY30QIrBk7vidzRmtTcGCWEmfzvA5c66Ke71Cp1jMtHVhe8yaaW2km3vV88vhO5q/JfTUMhpvC1wz9gKa2mLrDGAl3xF7o5Bf6HBeu5k28u8AEc4kOxK0+NKM6qvNWPDmAcuqoPYzPwSj1WVW3QQG/cFxp3/WGby6OTqJT47iwctu/+zoT9g0hUMygdvhRY4vT/LT487J2dFZ5/jkdNCZvMjTziB9dfoiPz3FHE9hzdr9NfG2WHVDkv0VyfUbD95cb2P3fErKoTi/HO714dYW8wCmHvarYPptiLbyaeNeD/1yF2WP+b70LACOsPx1vcOgZXCEY/rdo26flxhXJaqtI/w8+3k5r7Wc25rXfk69u1PvEv3MNb2qQOnZ0GdpsazaESyPh/CI4/iGyh1HwNXIIovFBC19NkXT8HLYj0fjCO7QSJ4ml0+u2ao8F/AXzVdEp1zHMyaLF3Uox50GwmwQNM7TlCp3UHa8RUEcQohgspzdS52xjsF7ZlK8hxj88M/aYUrntQUUqKY1c34MwSb//QP38fUD sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-webhook-deliveries.api.mdx b/docs/docs/reference/api/query-webhook-deliveries.api.mdx index c978058ce1..419c70c113 100644 --- a/docs/docs/reference/api/query-webhook-deliveries.api.mdx +++ b/docs/docs/reference/api/query-webhook-deliveries.api.mdx @@ -5,7 +5,7 @@ description: "Query Deliveries" sidebar_label: "Query Deliveries" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-webhook-subscriptions.api.mdx b/docs/docs/reference/api/query-webhook-subscriptions.api.mdx index 6abe359612..b4a595c057 100644 --- a/docs/docs/reference/api/query-webhook-subscriptions.api.mdx +++ b/docs/docs/reference/api/query-webhook-subscriptions.api.mdx @@ -5,7 +5,7 @@ description: "Query Subscriptions" sidebar_label: "Query Subscriptions" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/query-workflows.api.mdx b/docs/docs/reference/api/query-workflows.api.mdx index 233168edd9..4ce23d1ab7 100644 --- a/docs/docs/reference/api/query-workflows.api.mdx +++ b/docs/docs/reference/api/query-workflows.api.mdx @@ -5,7 +5,7 @@ description: "Query workflow artifacts with filters and pagination." sidebar_label: "Query Workflows" hide_title: true hide_table_of_contents: true -api: eJztWd+T2jYQ/lc0empmfHDN9Im8lObH5Jo0R8OleeCYi7DXoESWHEk+Qhn/752VbGNjDnwHtC99YrBX+61Wu6tv12tq2dzQwYR+VvpbLNTS0GlAIzCh5qnlStIB/TMDvSLLQoAwbXnMQmvIktsFibmwoA1hMiIpm3PJcFnvVt7KYRhCag2xCyCGJbCRNeS7U5oyzRJwz5QmXDpRDd8zMJbMVLR6cSvxh8QcRISIkiwXIMlM2QVhGojJ0lRwiHrkI5hMWOOeKh2BhojMVrcy1OBMIpYn8IKkzBjyZcllpJZcznsSftgvZMbCbyRW2hkQKyHcS9wQuK2MAQZk4j0xYtaCltOf+hpi0CBD6LOUX8wzHkHfbewi9TLPejSgKgXtLLiK6IC693fLyt0B3TiBDiZrKlkCdEBLiTse0YByWS6lAUUHcQ0RHcRMGAioCReQMDpYUyZX17FTY1cpqjFWczmnAY2VTpilA5plPKJ5UEnITAiaTwNquRX4oAwFchXRHAXbFpljTGJaM1zDLSQGJQ6Y2tFWs9tYI7L5CRzYyYgxYj1oxTmd1s1JY2dF3UD3c17vfECIOma9upwX+lUNqW5BLNhxp9EB+43DqKPa84PebGMmYNmZMf9AiDoml6HIIrhjOlzweziqfM2UEsDkXgOuPB4ZlniNAIcf9l+unx8QsmnDEsyJrYiYhQu80Q6Y4pDrxigR/UfGXHvkujGCJ/woW7i0MAe9F/e9A2n4AOnBk2BBZgnSJWZCkJF3A9az4g+idk6ca2dFjo80mFRJA66yP7+8xJ8mCRtnYQjGxJlAouOEaUBDJS1I62xEHhQ6ntH/anDNuraDVCMLsdwjhCrzi7a8uLHtpZPYZoIfsmQGmqi4YoPGkzZuPFVyK2KWCUsHl3lANzRnsN5cXU1jYoxIjTTnRPn3xil07CUoSn1DcxOem7ua62pOKUtPrdAYMqyJ1vbqIiYPUBncM5Exq/QhVa8rwd2KjORpCvaQmnEh1lKSV7GoZl8htLRNCIYFlS/uqpZPUUXLfSyKOO6fiVHDkV1qdy0rdquhIddhJpj+6T2bgfjdKHlxndk0s8/o9n4aOb4lTVu7P3xtBv62fNpm2/m+szRh/tSf1H10yCNvMnHAIUGVZF1WeUq5N5Oaax/nVM8LgqLmHsMdt8rQCbhgQF1XCNEdsye94156tWTonJWl0TlAPnm1BUgEAs4A8sqrLUBKd81WJyzUpbN+WxXFuvTXSVFKb1UopcNOilK6q0JxfecTY9X3kQE9nXm+lT94IdQyvGw4t0VMixV8bk+GEmbDBQ5QcJziCFYPVVdTl30XcsGWz0GDg5L9noPWBr7XOGkTERQM+UjqGxSMd69th6htByobOKP0PRNPtviqVJAHVDO7++Zo36MtPR9x7d6Qr2Jxl5pmhI+quSYJM22U3jtGtIrEYMPFrllipyw0FcPPc5T/5fnzdkPwFxM88ja91tqxyCd2AxFYxsUehi5U2Hj7GPIzfbiivFcFkUbmZea7JoEbLmEMm8OmPD0s6pxBbvCti0fkLShexVdBZEL7o6amdRYv0Ze+j2/JbDrFifONN7+Qq8Xg5oj8CT3silf+CPYFx9ubm1FLoY+PBOxC4Ww5Va6zT5ld0AHtV91Xv+xxDej7cs6caYFCLOXu4PzfhbWpGfT7kPVCobKox+YgLesx7gWnqCPMNLcrp2Q4unoHq7fAXHmZTOsCY4w3H0FNsc1QM+XvAO0q+vJhZhdK879ZfTa48Ktyd5qxqh/m0BlHhqOr1qXUeIWJwUIXByWSe02DrW1vdosFMXFpQS2w5NfqDZ4i+tDDXPZ+7l3iI3R9wmQNwn8sePDaXG/S9f8vLEd+YSnCCRO2nwrGXUlxJ7sukmFC619cfDpMA7rAhBlM6Ho9YwY+aZHn+Ni/x/iOuGEzURsKfYNV6+MMNvKI7/Lo8Arz2CXFJ4xHr+kKVHwE6CLanN13WVHO2rvI2u6ixWC7i+iOeXQnr/jJcTfRYsDbRbgawHYRLgeknRQXU82N7BT/aI7CrjgHZTHF0PaLfAWprWoxB9RS3TCj6/ENzfN/APTpVlQ= +api: eJztWU1z2zYQ/SsYnJoZWnIzPSmXqvmYuEljN3Kag61xIHIpIQEBBgCtqBr+984CJAWaskTbUnvpSSNgd99isVg8LNfUsrmhoyv6WelvqVBLQ6cRTcDEmueWK0lH9M8C9IosKwHCtOUpi60hS24XJOXCgjaEyYTkbM4lQ7XBtbyW4ziG3BpiF0AMy2Aja8h3ZzRnmmXgxpQmXDpRDd8LMJbMVLJ6cS3xh6QcRIKIkiwXIMlM2QVhGogp8lxwSAbkI5hCWONGlU5AQ0Jmq2sZa3AuEcszeEFyZgz5suQyUUsu5wMJP+wXMmPxN5Iq7RxIlRBuEhcEbikTgBG58pG4YNaCltOfhhpS0CBjGLKcn8wLnsDQLewk9zLPBjSiKgftPDhL6Ii6+ZtlE+6IboJAR1drKlkGdERriRue0IhyWavSiGKAuIaEjlImDETUxAvIGB2tKZOr89SZsasczRiruZzTiKZKZ8zSES0KntAyaiRkIQQtpxG13AocqFOBnCW0RMGuR+YpLjGtGepwC5lBiT2u9vTVbHfWiGJ+gAD2cmKCWPd6ccyg9QvSxHkROuh+jhudDwgRYobV5bjQrwKk0INUsKftRg/sNw4jRLXHB728i5mBZUfG/AMhQkwuY1EkcMN0vOC38KTyNVNKAJM7HTjzeGRc47USHH7Yf7l+fkDItg9LMAf2ImEWTvBG2+OKQw6dUSL5j5w598ihM4Jn/Em+cGlhDnon7nsH0ooB0oNHwYIsMqRLzMQgEx8GrGfVH0TtfXDOnRclDmkwuZIGXGV/fnqKP20SNiniGIxJC4FExwnTiMZKWpDW+Yg8KHY8Y/jVoM46WEGukYVY7hFiVXilO1Hc+PbSSdxlgh+KbAaaqLRhg8aTNm48VXIaKSuEpaPTMqIbmjNab66utjMpZqRGmnOg8/fGGXTsJapKfctyG56bmyB0QVDq0hMUGkPGgWiwVpcxZYTG4JaJglml95l63QhuN2Qkz3Ow+8xMKrGOkbLJRTX7CrGlXUIwrqh8dVd1YoomOuFjScJx/UxctALZp3YHp2K7GRpzHReC6Z/esxmI342SJ+eFzQv7jN5dT+uM35GmndXvvzYjf1s+brHd8761NOH5CUfCGO2LyJtC7AlI1ByyPlqeUu48SW3dhwXV84KoqrlP4Y53ytABuGBE3asQkhtmD3rHvfRmydgFq8iTY4B88mYrkAQEHAHklTdbgdThmq0OWKjrYP22qop1Ha+DotTRalDqgB0UpQ5Xg+LenY/MVf+OjOjh3PNP+b0XQnDC6wfnXRHTYQWfu52hjNl4gQ0UbKc4gjVA003XZdeFXLHlY9DgqGa/x6C1kX9rHPQREVUM+YnUN6oY707f9lHbHlQ2ck7pWyYe7fFZbaCMqGZ2+83RvUc7dj6i7s6Ub3Jxm5l2hl80fU0SF9oovbONaBVJwcaLbb3EXqfQNAy/LFH+l+fPuw+Cv5jgiffptdaORT7yNZCAZVzsYOhCxa3Zh5Cf6f0V5b2qiDQyLzPf1gnccAlj2Bw25el+URcMcomzLh+Rt6B4k18VkYntj8BMZy9eYiz9O74js3kpXrnYePcruSAHN1vkd+j+ULzyW7ArOd5eXl50DPr8yMAuFPaWc+Ve9jmzCzqiw+b1NazfuAb0bd1nLrRAIZZzt3H+78LafDQcChUzsVDG+ukpasaF5nblVMcXZ+9g9RaYKypX01Bgglnm86Yttmll5vwdoDfVa3xc2IXS/G8WdgQXXqt0e5iqcAvHc5CWkfHFWecqak3hcWCx2/0ayU3TKFisGQ2HzA0PGB9iGczcYaAWWPZrM4N7h5HzMKeDnwenOIQBz5gMIPwngnsvy/XmkP7/XeWJ31WqdMJjOswF466QuJ1dV0fgiobfWfwhmEYUExsn1+sZM/BJi7LEYT+P+Z1ww2YiaAV9g1Xnkww+3xHfnZ79GuahKtWHiwfr9AWqWv99RNsd+z4adYe9j6ztL1q1s/uIbulC94qK7xf3E63aun2Em7ZrH+G6LdrLcNXL3MhO8Y/mKOyKc1QXU0xtr+QrSKDV4QtopblXLs4nl7Qs/wHZf1L1 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/read-secret.api.mdx b/docs/docs/reference/api/read-secret.api.mdx index d71d489348..356c34c758 100644 --- a/docs/docs/reference/api/read-secret.api.mdx +++ b/docs/docs/reference/api/read-secret.api.mdx @@ -5,7 +5,7 @@ description: "Read Secret" sidebar_label: "Read Secret" hide_title: true hide_table_of_contents: true -api: eJzNWE1v4zYQ/SvGnFpAiNOgJ5+aJkEbJGmCfGwPhmFMxLHFDSUqJJVGa+i/F0NKtiQ7SuJdoD3ZEsmnmTePM0OuwOHSwmQKdxQbchZmEeicDDqps3MBEzCEYm79KESQo8GUHBletIIMU4IJhOG5FBCBzGACOboEIjD0XEhDAibOFBSBjRNKESYrcGXuFzojsyVE4KRT/CKYMToXUFUzBrC5zixZXnN0eMg/gmxsZM4G8oIijsnaRaFGt/VkiCDWmaPM8XTMcyVj78/4q+U1q5YduWFvnQxfeJKZ2GUdZUXKJOVGv0hBZv5EJX+lsE6n8+YtRGCtbj/+Q4+J1k+bV7O+pxf8xSoCgc7bg1l5vfDUfs4ynVOG0nuekGEKMCttjIr/CqJcZguD/FpRnqDKE35YGv0MEaQykym++n/WGVSbfx4TM5cYncuYBUAmV/QqXemHnF6SS8jM/RNbYXThvPNLYtyOyw4zgUbc1HQ0zq/p2Q4IlUNquaASqipqxvXjV4pdR3dTDzFgwx05J7OlPb2/fh+K7W2ZOwDr4aLPRjEIihn/VvggPpIwOn5iZeGSUnzyzL6QcfS6ofx/H/gT79fHw14Y1d0MXcKY2PpNVigFVetTD0Yx9gsZK8Nm3wflS728ihoJ7oPi5RkBvTqDtguCQkhOSahuWp6HLNmV4NAHzgLyLt3upr6j9ghSLUh5y6Sj1G4HwqpiOZiuefy/crG9Nb2hW4q7Yv96PtcoaAyWLU+uAhUtWc4b5/cJfUP4qGHIU811o8fSmvg+dtfQoW9500cXDP3ZDLaWwJubdXcie3vrxkpS5luBAdmc+Em+ykfNirrFeH9VKJy8UlpbkJnX2eKtZed+1qhODDbWOXUlP8x8S+xhaSN3H8cPa7yn6HcjteGxz1DH77VD7Vp0d71PddtZ1jZQnxXCjy/df4du6kf51oPzMK3hU+7IWGRiKAdEsNAmRQcTKAopBvdpkHtCuJOv0Ervl23+4rXcRbZb4/2gTlsQQ3Xlz+BGFYGSC4rLWPWs76UFQ+hIzNHta9hJQBgd+61f5OI78R4CQg/vsZwPB/wjkL+XdWrboH4/5GA0LmmJcXnZRKLZq13UDxYHfxRZ63TrxNKcssK2Y8xfj462z2VfUEnhT12jM2O02f9QJsihVANNitJxZ/QDPMvM0ZLlO3s73V/qYKCv3nawDboiy/35pna8PdWTMbrnUU4uWV6EmtfkCP+Cq6J7bcFst3XM5at7N/ExN8H8el67yV2HKETobSpOQwgG88H9/c0WYNBHVxi3hKKp4RGk5BLN1wzL+nrBJTCBcSh1drxa3yxUXOrIvDQ3D77owxhz6eMaHhPncjsZj6k4iJUuxAEuKXN4gDJMnDFGXBjpSg9yfHN+QWWdyibTWXvCHcsxCKw7bR0UzOWFvweob0GOC5doI78F1dQ3IfU2qnywF7od62Nv3Oj45hz6JHWGeN9g7DZFoh6GqOf2xls+U6Z+14AjTH9bj3TORnB48MvBoe95tXUpZq1PdMPUKyw1AazAca5Q+j1St2EhhNP6TshCBJPN9dAsgkRbx+Or1SNaejCqqvj1c0GGgzKL4AWNxEemaLoCIS3/FzBZoLK0Zco6qcBPt7Xufx5BtNvEJnAZR+0FVcFPUJ/xWrdYPi00hXpa9zJwHMeUu9bKrSzG+lkr+o+ze6iqfwF8s6Jd +api: eJzNWEtv4zYQ/ivGnFpAiNOgJ52aJkEbJGmCPLYHwzAm4tjihhIVkkqjNfTfiyElW7IdJfEu0J5skZyP8/g4M+QSHC4sxBO4o8SQszCNQBdk0EmdnwuIwRCKmfWzEEGBBjNyZFhoCTlmBDGE6ZkUEIHMIYYCXQoRGHoupSEBsTMlRWCTlDKEeAmuKrygMzJfQAROOsUDQY3RuYC6njKALXRuybLM0eEh/wiyiZEFK8gCZZKQtfNSjW6bxRBBonNHuePlWBRKJt6e8VfLMsuOHoVha50MOzzJXOzSjvIyYycVRr9IQWb2RBXvUlqns1k7ChFYq7uf/9BjqvXTemi6aekF71hHINB5fTCvrufetZ/TTBeUo/SWp2TYBZhXNkHFfwVRIfO5QR5WVKSoipQ/FkY/QwSZzGWGr/6fdQbV+p/HxNylRhcyYQKQKRS9Slf5KacX5FIyM//FWhhdOm/8ghi3Z7LDXKARN407WuNX7tkOCFVDbLmgCuo6auf141dKXI93Ew8xoMMdOSfzhT29v34fivXtqDsA6+Giz0YxEIo9/q30QXwkYXTyxMzCBWX45D37QsbR69rl//vAn3i7Ph720qj+Yeg7jB3bjOSlUlB3tnowirFfyFgZDvs+KF8a8TpqKbgPiqdnBPTqDNo+CAohOSWhuulYHrJkn4JDG5wF5F283e36HtsjyLQg5TWTjjK7HQirysVguub5/8rE7tH0im4x7ort27C5QUFjsOpYchVc0aHlrDV+n9C3Dh+1HvKu5rqx4aWV4zex+4oO7eVVH10w9Gcz2IoCbx7W3Yns7aObKEm5bwUGaHPiF/kqH7USTYvxvlQonCwprS3JzJps8ZbYuV81ahKDTXRBfcoPe75D9iDa0t3H8cMc32D0u5Fa+3HTQz27VwZ1a9Hd9T7VbWdZW0N9lgg/vnT/HbqpH2XbBpyH6UyfckfGJBNDOSCCuTYZOoihLKUYPKeB7inhTn+FVnq/bPMXy3IX2W2N94M67UAM1ZU/gxl1BErOKakStaH9RlowhI7EDN2+ip0EhNGxP/plIb4T7yEgbOA9VrPhgH8E8veqSW1r1O+HHIzGJS0wqS7bSLRntY/6weLgryIrnm7dWNpbVjh2jPnr0dH2vewLKin8rWt0Zow2+1/KBDmUaqBJUTrpzX7AzzJ3tGD6Tt9O95c6KOirtx1sg67Icn++rh1vL/XOGN3zLCeXvChDzWtzhB/gquheOzDbbR378tW9m/jYN0H9Zl23yV2FKETobVechhAM5oP7+5stwMCPPjFuCUVbwyPIyKWanxkWzfOCSyGGcSh1drxcvSzUXOrIvLQvD77owxgL6eMaPlPning8VjpBlWrrwvSUJZPSSFd50eOb8wuqmgQWT6bdBXdMwkCr/rJVKLCQF/7237x9HJcu1UZ+C1xp3j+aw1P7EM91N8LHC8odjo5vzmHTNb0pPi2YuHVpaKYh6hhr4/EY/fAByjHfJDN/VsARZr+tZno3Ijg8+OXg0He62roM884W/eBslJPGAcy7caFQ+pPRNF8hcJPmJchCBPH6UWgaAUeD55fLR7T0YFRd8/BzSYaDMo3gBY3ER3bRZAlCWv4vIJ6jsrSlyiqVwE+3Ddt/HkG0W8U2cDlH7QVVyV/Q3Ow6b1c+GbTledJ0MHCcJFS4juRW7mL+rHj8x9k91PW/HdSe/g== sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/refresh-metrics.api.mdx b/docs/docs/reference/api/refresh-metrics.api.mdx index f7c4db32b3..998f935a81 100644 --- a/docs/docs/reference/api/refresh-metrics.api.mdx +++ b/docs/docs/reference/api/refresh-metrics.api.mdx @@ -5,7 +5,7 @@ description: "Refresh Metrics" sidebar_label: "Refresh Metrics" hide_title: true hide_table_of_contents: true -api: eJztWFlvGkkQ/iuonnalwWDiI5mndZxE8SaRLZvkYRGKipkCOttzpA8nBPHfV9U9J9gYW/hhtesXMz1VX3UdX3VNL8HgTEM4gre3KC0akaUaxgFkOSn3dBFDCIqmivT8a0JGiUhDAIq+W9LmdRYvIFxClKWGUsM/Mc+liJxu75vOUl7T0ZwS5F+5YmQjSPNTibfxQqSG1C1KB5guLqcQjpZgFjlB6F7OSMEqqJZSKyWsxgEYYSQvXJQAK15LSBtM8jvRtFEinUEA00wlaCCEGA11WWmrhWGF2jSh2zaEocQt7WSslEKlcLGbcc1qOqIUlci+inhHF60V8VYDNwVk5yJes/BoDwtbuzvXsO3cUzbdo2fXNi2c8rjP74+3qGFVK2WTbxQZqGVq+n3ynLj2lLtTicknFMXM25JC44exrj1nYcWYNYZRltyCzrNUe/4N+n3+F5OOlMgZivNio4i0nlrZuS6EIXgq9aPMeqU1UtdunDuJAGKaopUGwv4qaHaMKlNt4Kl0Ha2ZU4xjwZtCedUS3SinSZZJwrSZzSL/vHI3DERCRVai+u0jTkj+qbO0e2lNbs3vsJ66ZlWsS8NGorfV1DvnJav8F7wdFs4mZPCJzjY823aMJJP2SjNGD0XknZUPBCSoqnYXrYc7y5ru44L6iYO5CiBShIbir2j2ej6ee9jOmduWzePnMPLZwxZGYpL0DEbeeNjCSBmuyWKPh1IZrNeL4mwq47VXK2W0KitlwPZqpQxXZWV/0B7vlpQW/nTZgeYbIF8KdR5rDBq7tV8EQKlN+KDNKY39yndLlmJwA0Tql7Q/GtkZFNIqPhhJqUzxUoRpRFJSfPchfeM3cdeWq6Ovss5Jw/+b4N6a4Bv0TfDf9sHx/CN/PXVvh9ycrB+YWAvgbQPrxnjdOrWKT9CKHKPxIyfrYnZduUH4aDDYHHW/oBSxU+q8ZRo/fc6NyaCQW+ZVmUWtt48h7fj+OH3M/Abd2KRnd+WxDqnWOGt8gN4v6oLRGfJbRxrmG4tXJCgIGJmfDZiNnJxzLH+aB0uFY+O3X8g123iVIp+h+0PxxqdgW5G8Hw6vNgB9fbQLo/iU6tRlmJCZZ3xJkmeaIXM0cwihR/WFSq/4aukV9yh8YJDiY8zl2SrJCpgLl2T/ODcm12GvR/YgkpmND3BGqcEDFF5wzBiRVcIsHMjZ1cUHWrwnjEk5SjQEbrg2fbW1xaoMYS4+EMcsxYSfz6yZZ0r88iXEmeYteS0OClf9dX0F9PYnJrmktSuduqf2Wz0RBv3BUbd/2h28Gh4eh8eH4eDlQf/08C9oX6SM7hccr3VAeDHFl8fTk6Pu8enhaffo+GTQnbyYRt1B9OrkxfTkBKd4Auv3GKPd1MZ1M9zVTnW1sKuJlaPTNGuy6cxlvHN2dQHrZdh6xZ0JI0fEMn3uNQRrtVSXEI8nietLYAiTP6o3rfkK+geHB31e4tpOMG2Y2CRCa4dVZTHPe7lE4TqR28+y4MgIGhyB+ts+KO8bOfJzZlU4guVygpo+K7la8fJ3S4oLfxzALSqBE47YiPvhvKTAEv6mRdlsUtN1XYvFpfUlv9bEmXte4yyKKDdbZccN4l9d3gwhgElxF5pkMeso/MGe4A8IAfhC1bsZLv3aEiSmM8t9NwSPyX//AFDWTv0= +api: eJztWFlvGkkQ/iuonnalwWDiI5mndZxE8SaRLZvkYRGKipkCOttzpA8nBPHfV9U9J9gYW/hhtesXM9V1dB1fdXUvweBMQziCt7coLRqRpRrGAWQ5Kfd1EUMIiqaK9PxrQkaJSEMAir5b0uZ1Fi8gXEKUpYZSwz8xz6WInGzvm85SpuloTgnyr1yxZiNI81epb2NBpIbULUqnMF1cTiEcLcEscoLQLc5IwSqoSKmVElbjAIwwkgkXpYIV0xLSBpP8Tm3aKJHOIIBpphI0EEKMhrostNXCsNLaNKHbNoShxJF2MlZyoVK42M24ZjEdUYpKZF9FvKOL1op4q4GbQmXnIl6z8GgPC1u7O9ew7dxTNt2jZ9c2LZzyep/fH29Rw6oWyibfKDJQ89Tw++Qxce0hd6cQg08oihm3JYTGD+u69piFFeusdRhlyRF0nqXa42/Q7/O/mHSkRM6qOC82ikjrqZWd64IZgqdCP8qsF1oDde3GueMIIKYpWmkg7K+CZseoMtVWPJWuozVzinEseFMor1qsG+U0yTJJmDazWeSfKXergUioyEpUv33ECck/dZZ2L63Jrfkd1lPXrIp1bthI9Laaeue8ZJH/grfDwtmEDD7R2YZn246RZNKmNGP0UETeWflAQIKqaneRerizrMk+LqifOJirACJFaCj+imav5+O5V9s5c9uyefwcRj57tYWRmCQ9g5E3Xm1hpAzXZLHHQ6kM1utFcTaV8dqrlTJalZUyYHu1UoarsrI/1V7fLSkt/OmyA8w3lHwpxHmsMWjs1n4RAKU24YM2pzT2lO+WLMXgBojUk7Q/GtkZFNIqPhhJqUwxKcI0IikpvvuQvvGbuGvL1dFXWeek4f9NcG9N8A36Jvhvu3A8/8hfT93bVW5O1g9MrIXibQPrxnjdOrWKK2gFjtH4kZN1Mbuu3CB8NBhsjrpfUIrYCXXeMoyfPufGZFDILfOqzKLW6mNAO74/Th8zv0E3NunZXXmsQ6o1zhoX0PtZXTA6Q151oGG8MXsFggKAkfnZULORk3OO5U/zYKlwbPz2C75mG69S5DN0fyje+BRsK5L3w+HVhkJfH+3CKK5SnboMEzLzjB9J8kyzyhzNHELoUf2g0ituLb3iHYUPDFJ8jLk8WyVZAHPhkuw/58bkYa8nswjlPNPGL49ZMrJKmIUTPbu6+ECL94QxKQeEBsMNV6SvsTZblRfMxQfiSKWY8PeZNfNMiV++cDi/vBEvxaHgWr+uH37e/sQkl7T2kFN30n6rE8KgPzjq9k+7g1fDw+Pw+DAcvDzonx7+Be3nk9H9jOO1vgcvpvjyeHpy1D0+PTztHh2fDLqTF9OoO4henbyYnpzgFE9g/fVitJvYuG6Bu9qpHhR2NbFyIJpmTQydzSg12Dm7uoD14mstcT/CyMGvTJ9bhqBRQTrs9dCRD1D0eChJXDcCQ5j8Ua20piroHxwe9JnEFZ1g2jCxWf6tHVaVxeju5RKF6z9uP8sCGSNoIAPqG31QvjJy5LnimXW5nKCmz0quVkz+bklx4Y8DuEUlcMIRG3EXnJcQWMLftChbTGq6rlcxu7S+5NdaNyPOS5xFEeVmK++4Afery5shBDApXkCTLGYZhT/YE/wBIQA/o3o3w6WnLUFiOrPcbUPwOvnvH4ztS54= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/refresh-organization-domain-token.api.mdx b/docs/docs/reference/api/refresh-organization-domain-token.api.mdx index f451f8547d..bf45de25c3 100644 --- a/docs/docs/reference/api/refresh-organization-domain-token.api.mdx +++ b/docs/docs/reference/api/refresh-organization-domain-token.api.mdx @@ -5,7 +5,7 @@ description: "Refresh the verification token for an unverified domain." sidebar_label: "Refresh Domain Token" hide_title: true hide_table_of_contents: true -api: eJzVVk1v4zYQ/SvEnFpAa6fBHgqdamzabrBtEyTeXhwjmIhji7sSqeVHElfQfy+GlBwpTtw2t55skTPDmXnvDdmCx62DfAUXdota/YVeGe1gnYEkV1jV8DfkcEUbS64UviRxT1ZtVBFNhTdfSYuNsQK1CDrtkRTS1Kj07Ebf6F9Jk0VPTqDQ9NC7oJbCkiPvYtD3P74rTbCCHhtld+JBaWkeZjd6WSonlBPB0SZU4qEkHe2NVVulseqjleiSK8kZZGAaPlEZfS4hB5uSvzWjGm9TgrfRHTJo0GJNnix3owWNNUEOvZGSkIHiPjToS8jA0rfAZ0HubaAMXFFSjZC34HcNOzpvld5CBl75ihfOYiRxLqHr1hzANUY7cuxzenLCP9OOX4eiIOe46KveGDIojPakPZtj01Q9CvMvjn3aUR6N5R54lU5Q8qXcNsbW6CGHEGKFQ66cZAauCttjFV3zfpf1rWoB9e5iE5s39eiy/YoOVQVc/hDjD/btnpHtbaHORiG6DDZVJHYLKKXiRawuRy1JsPWxzN0XKvyotF+ic5dBYscbM1pG5y6DwhJ6krfoj6Ig0dM7r2oaZfIhuYqF50ChkaNAr+X0YshjiX5OYftDJir5b8QZD5FE9cMeP0lnBdE58qyn0ZQJA4oDDpNOTrpxmPX65aySDEeCej7m0oaojaQqjbVhlEHXcT3vT08PxfonVkqmsn+21ti3K1WSR1VFzXqq3aFBZYrJ7r9gptKetmShWz/hgdbibgTdbyYlyAyo3VHh/07O4TbqNpm8bhqbIZa82/EEbUKSwDBo4gIrxD+Owhzo8QP38tH/I5+4Nyn93m7EgieIEkKvt+IsQfDSYYPJx+Xy8iBg4kdNvjR86zTG+Xix+BJymI8J6uaJU27e7m+Ybt5fUywJsvfDTRRsxe7YqAhp+iy9b1w+n1OYFZUJcoZb0h5nqJLhmmMUwSq/i0EWl+efaPeRUJKFfLUeG1wzExO3pmZ7PLBRn2g3aDSHRfClsX0tw81YJq8u4rwxY5gXMTmxuDw/ENxkiyWDRWTIcFLcZq1Pyn6qFjKgOgoGPGH9036H8eUepmNOZj/MTniJQalRj44YXjb9Bb3sJ82zG2mv5v/bS6iHkOUzbypUUeCxm21PzdVkdvK07ckJGeTjB9DAz3UGJXM7X0Hb3qGjz7bqOl7+Fsgy4dYZ3KNVeMfwr1qQyvF/CfkGK0dHuvvdVS/n78VryQ+k1MzIe6wCf0EGX2k3ebHFaVcOlG/7/UVRUONHngfDmbWxF/HlxfUSuu5vOifWqA== +api: eJzVVk1T5DYQ/SuqPiVV3jGh9pDyKVNLkqU2CRTM5gJTVGP1jLUrS15JBiYu//dUS/ZgM0ASbjnBqD/U3e+9ljsIuPVQXMGZ26JRf2FQ1nhYZyDJl041/BsKuKCNI1+JUJG4I6c2qoyuItivZMTGOoFGtCbZSAppa1RmcW2uza9kyGEgL1AYuh9C0EjhyFPwMen7H99VtnWCHhrlduJeGWnvF9dmVSkvlBetp02rxX1FJvpbp7bKoB6yVehTKMkFZGAbvlFZcyqhAJeKv7GTHm9SgTcxHDJo0GFNgRxPowODNUEBg5OSkIHiOTQYKsjA0beW74IiuJYy8GVFNULRQdg1HOiDU2YLGQQVNB+cxEziVELfrzmBb6zx5Dnm+OiI/8wnftmWJXnPTV8MzpBBaU0gE9gdm0YPKORfPMd0kzoaxzMIKt2g5HO1bayrMUABbRs7HGvlIjPwut2+1tEl2/tsGFUHaHZnmzi8eUSf7U9MqzVw+2OOPzi2f0K2t6U6maToM9joSOwOUErFh6jPJyNJsA257O0XKsOktV9icJ9BYscbK1rF4D6D0hEGkjcYXkVBYqB3QdU0qeRDChXLwInaRk4SvVTTsylfK/RzSjtcMlPJfyPOdIkkqh/O+FE6VxCDI88GGs2ZMKI44jCb5Gwah1Wvn68qyXAiqKdrLhlEbSXptNbGVQZ9z/28Pz4+FOufqJVMbf/snHVvV6qkgEpHzQaq/aGDtuXM+i+YqUygLTno1494oHO4m0D3m00FMgNq/6rwfyfvcRt1m1xedo3DECu29rxBmzZJYFw08YAVEh4maQ70+IFn+RD+kU88m1T+4DdhwSNECaGXR3GSIHjustHl42p1fpAw8aOmUFl+dRrrQ3xYQgUF5FOC+jxxyufd/oXp8+GZYkmQuxtfotZpDsdGRUjTzyqEpshzbUvUlfUhmdccWbZOhV0MXZ6ffqLdR0JJDoqr9dThkvmXGDV326OAjfpEu1GZBSzbUFk3dDC+h1WK6iO6GzsFd7klE1Asz08PZDYzsVCwjLwYb4pmVvi+WV/kOcbjBaocMqA6ygQCYf3T3sKo8uTSNUeLHxZHfMRQ1GgmV4zfM8OzvBr2y5N3aK/h/9v3zwAhiyZvNKoo6zjNbiDk1Wxj8o4dKAkZFNPPnpGV6wyYaRzZdbfo6bPTfc/H31pyTLh1BnfoFN4y/FcdSOX5fwnFBrWnV6b73cUg4u/FS8WPpDTMyDvULf+CDL7SbvadFndcNVK+G+zLsqQmTCIPVjJrYy/d87PLFfT93wrv00k= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/refresh-tool-connection.api.mdx b/docs/docs/reference/api/refresh-tool-connection.api.mdx index 719e6b6263..8509d38687 100644 --- a/docs/docs/reference/api/refresh-tool-connection.api.mdx +++ b/docs/docs/reference/api/refresh-tool-connection.api.mdx @@ -5,7 +5,7 @@ description: "Refresh a connection's credentials." sidebar_label: "Refresh Connection" hide_title: true hide_table_of_contents: true -api: eJztWEtv20YQ/ivCXJoAjOQaPfFU1Y4R101t2HIvhiCMyJG06ZLL7MOIKvC/B7PLp15RDOeUngyTM9/sfPPtcEYbsLg0ED/BRClpYBpBSibRorBC5RDDPS00mdUAB4nKc0r48S9mkGhKKbcCpRlCBKogjfzqOoUYdPCZWaXkrHWDCArUmJElzSE3kGNGEENrMhMpRCA4cIF2BRFo+uyEphRiqx1FYJIVZQjxBuy6YGdjtciXEMFC6QwtxOCcR7HCSja4aNAH1ymUZdTEXSidUB3vsyO97gVcoDT7Is6VkoScTkoLdNI2pnXIKw9cllOGM4XKDRkGOD874z99hh9ckpAxCycH95UxRMyJpdyyORaFFImnd/TJsM+mc6hCM/lWhAiJcsGpOqvILS1J9+hgi87Zz8qoUwEfMF/fLnyB+uAL6bXSNcA0FeyG8q5n2lpskcb09yvHT/bDQCJ04iTqN3/hnOSfRuXvbp0tnH3LCQUUNf9EiQXmuk5x2xrKHev2FLmTsud95bNkl58h20mVbEYWX5hsJ7Mt1fUCZ/P+ky5H32LkyslvEBJtQFjKTvRCrXF9XAV93+8j9SOTyddKE1pKZ2iPEddpXSlaemdFRkfhLwLsYOyP5Yr0RwR5DLBVkJQk/YAglwG2ClLTNV/zd+C0OL7Zn0LWH2vf/lu+XjVKzVYTpSbsVaPUdDVRwofspDu5A/Y3+uL0v0Yvg7rsQJQRGOmWL4V6YN8ygtcjLTBVaPUsUtKzf2m9b3qg3GU8BiUqK5QRCiLAJeUWodssleIG5YFuRO6Bfa8Lw88h7OYkrenghtaefPy/7b5a273E0HaNRevMsUlGUyo0JXbmtHypUu8rjMGjljxWbh20r5p2CH0Ih9tF3gfRDqNPfQXv6m56KOCJofY7NxNpWbLTb+fnuwPsPyhFGlT9XmulXz69pmRR+IJUoto2kCrpvf2eSzEtt3TYGaFUOKAfhMzy2B3+SMbgklphHjb1ZAwm/Nb3CdYzmzfdoBJ4Yr90YHYKcsFcfrF7JdbVB3MTjl/ZdRTRlihU6DAVl6EExxTyYTK52wEM+sjIrhSvgIUy1u97dgUxjHgTNKN2yzCjTW/pK0fVzggRGNLP9YLoryeMsBC+pOHflbWFiUcjcsNEKpcOQ6MeogiGU8ZInBZ27UHGd9c3tP5AmJKG+GnaNXhgJQZt9c2aemAhbvyFq5bGsbMrpcV/WK20fnlcBa/S13mhumUe+8MNxnfXsL1b917xlcHEK6SOFL4/0Vbabbb82cr8hQFLmP3evOH6MochzNnw1+GZ/wYqYzPMOyHq7f6iu6RvDQTNXT7xt4CKN9bsqJAo/K2q+mzQwxN4PUB37+T/4u0fAmpRTCNYsaDiJ9hs5mjoUcuy5Mdha+cqp8LgXHb2dv8xbnb8Z5SOj+Xl8YxasPF+x4P5v7mvrtvbwaE8a9Hk627M+jD9/HxHWtWy3FQ24yShwna8dxooZ9BctLvbhwmU5VdqlBne +api: eJztWEtv20YQ/ivEXJoAjOkaPfFU1a4R101j2HIvhiCMyJG06ZLL7C6NsAL/ezC7fOoVxXBO7ckQd57ffDs74w1YXBmIn2CqlDQwCyElk2hRWKFyiOGelprMOsAgUXlOCX/+yQSJppRyK1CaMwhBFaSRj25SiEF7nblVSs57NQihQI0ZWdLscgM5ZgQx9CJzkUIIgh0XaNcQgqbPpdCUQmx1SSGYZE0ZQrwBWxWsbKwW+QpCWCqdoYUYytJZscJKFrjsrAc3KdR12PldKp1Q6+9zSboaOVyiNPs8LpSShJxOSksspe1EW5fXznBdz9icKVRuyLCBi/Nz/jNG+KFMEjJmWcrgvhGGkDGxlFsWx6KQInHwRp8M62wGQRWawbfCe0hU6ZWaWEVuaUV6BAdLDGI/r8NBBZzDvPq4dAUaG19Kx5WhAKapYDWUdyPRXmILNIZ/XDn+st8MJEInpUT95k9ckPzDqPzdx9IWpX3LCXkravGJEguMdZvitjTUO9J9FHkp5Uj72mXJKv+FbKdNshlZfGGyg8y2WDdynC3GX4YYfQuR61J+A5BwA8JSdqIWao3VcRaMdb8P1A8MJl8rTWgpnaM9BtygdaVo6Z0VGR01f+nNBhMXVlmkP8LJozfbOElJ0g9wcuXNNk5auBYVvwOn+XHN/hSwfqtc++/xelUvLVqdlxawV/XSwtV58Q/ZSXdyx9hf6Iozfo1eZupqYKIOwchy9VJTD6xbh/B6oHmkCq2eRUp6/g9V+6YHysuMx6BEZYUyQkEIuKLcIgybpVLcoJyhW5E7w67X+eHnkO0ukl40uKXKgY//t91Xa7tX6NuusWhLc2yS0ZQKTYmdl1q+lKn3jY3gUUseK7cCHbOmH0IffHC7lveZ6IfRpzGDd3k3O+TwRFf7lbuJtK5Z6ZeLi90B9m+UIvWs/l1rpV8+vaZkUbiCNKTaFpAqGZ1+z6WY1Vs8HIxQygfoBiGzOnaHP5AxuKKemIdFHRjBlE9dn2A+s3jXDRqCJ/bLwMxOQS4Zyy92L8WG/GBsfPiN3IARfYl8hQ5DceVLcIwh76fTux2Dnh8Z2bXiFbBQxrp9z64hhog3QRP1W4aJNqOlr46anRFCMKSf2wXRXU+IsBCupP7n2toijiKpEpRrZaw/nrFmUmphK6c6ubu5peo9YUoa4qfZUOCB+ecZNRbrqoCFuHXXrFkVJ6VdKy3+xWaRdSvj2mvVrrpLNSzuxL0dweTuBrY36tERXxRMHC9aT/7VCQfJmjiK/GN0hiLixypz1wQsYfZrd8JVZeS8m/Ozn8/O3cunjM0wH7hod/rL4Wq+NQZ0N/jE/wA0uDFTo0KicHep6a6eBU/gWADDbZN/xdvrf0uFWQhcXtbcbBZo6FHLuubPflfnKqfC4EIOtnX3BHeb/TPKksNy9HhGLVh4v+LB/N/cN5fsbXAoz5Y0eTX02QYzzs/1oXVLy00jM0kSKuxAe6dtcgbd9br7+DCFuv4KdDsWfw== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/remove-user-from-workspace.api.mdx b/docs/docs/reference/api/remove-user-from-workspace.api.mdx index 47680a0213..7b0ed8b7bc 100644 --- a/docs/docs/reference/api/remove-user-from-workspace.api.mdx +++ b/docs/docs/reference/api/remove-user-from-workspace.api.mdx @@ -5,7 +5,7 @@ description: "Remove a user from a workspace." sidebar_label: "Remove User From Workspace" hide_title: true hide_table_of_contents: true -api: eJzNVUGP0zwQ/SvWnECy2mXFKSeqb4uoALFaysdht1p5k2ljSGJjTxZK5P+Oxk7SdAsrgThwqmq/eTN+M2/SAamdh+waPhr32VuVo4eNhAJ97rQlbRrI4Aprc49CidajE1tnaqHE1yFgdtPcNAu389lNI4QQWCtdiSee3NNMrEvsD1RROPRemK2gEhMVGXGHwkX6IkWPtLe6mJKsLobIQ2KQYCw6xWWuCsggMd0y9y2XeTtiQYJVTtVI6Pi9HTSqRshgmg8kaH6vVVSCBIdfWu2wgIxcixJ8XmKtIOuA9pZjPTnd7EACaar4YBRRrAoIQY5ZogQD/ZcW3f6P+JeRJoQNB3trGo+e8ednZ/xz3LX3bZ6j99u2Elc9GCTkpiFsiOHK2krnUb35J88x3aGGEEKQ8Pz8/JT4f1XpIoaJpXPG/QYrWMcdI53qLpD4QVkHmrD2p4DK5Ee3qtm/28b2HUvEUvcnuiHcoYOwCXI4U86p/UTHNyYVCEFC7XePSf4WvVc7hJHske6wGGLNt4FbbdsoyHC9igdBQk7fJjTm7hPmNKH5j7X8Rjw/J5jDyFxHbVL5PW5z4Di0KHXo11JcpBb8LNkAebVeX54QpvmokUrDziuwQkouoxIymI++8vNu6rEwZ3d6kODR3Q9mbF3FQcrq2Mr0tySyPpvPsZ3llWmLmdphQ2qmdAJumCNvnaZ9JFlcrl7j/hWqAh1k15sp4D1PYJqpY9jYB2X1a2RlessuWiqN09/ToPTWLVNUiP3dmml7F7E4sbhcwcP9eXTFVlF5nIwhU7wG+eDZh9eC7BdIBoSqfjHecF9Zw5TmbPZsdsZH1niqVTNJ0W/wD7x0X/L+/jhZjEfFdgcv/8t7v28aG2VuK6WjlaN+XT+C14fVztOWPVj0aQo3EkrjidFdd6c8fnBVCHycljSPVaG9uqvYc1tVeXxErydXvT2fil+V+Bn3k8/BvapaxsRZvldOc6K/n3SY8GY/zTkUcyRM3JrlYKGuhyzyHC1Ngk+WPD9gXAYXyzfL9RJC+AE5Admv +api: eJzNVV2P0zoQ/SvWPIFkbZYVT3miutsrKkCslnJ52K1Ws8m0MSSxsZ2FEvm/X42dpCmFlUA88FR1Ps6Mz8yZ9OBx5yC/gQ/afnIGC3KwkVCSK6wyXukWcrimRj+QQNE5smJrdSNQfBkTzm7b23Zhdy6/bYUQghpUtXjivH2ai3VFgwHL0pJzQm+FryhBeS3uSdgIX6bsCfZOlXOQ1eWYeSgMErQhi9zmqoQcEtIdY99xm3dTLEgwaLEhT5bf20OLDUEO83ogQfF7DfoKJFj63ClLJeTediTBFRU1CHkPfm8413mr2h1I8MrXbJhIFKsSQpBTlUjBCP+5I7v/LfxlhAlhw8nO6NaR4/iL83P+OZ7au64oyLltV4vrIRgkFLr11HoOR2NqVUT2so+Oc/pDDyGEIOH5xcUp8H9YqzKmiaW12v4CKhjLE/Mq9V2S5wflPShPjTsNqHVx5MV2/3Ybx3dMEVM9WFTraUcWwibI0YbW4n7G42udGoQgoXG7xyh/Q87hjmACe2Q6TIZYszfwqE0XCRndq2gIEgr/dQaj7z9S4Wcw/zCXXz3vz0nMYWVuIjep/SFuc8A4jChN6OdUXKYR/KjYGPJyvb46AUz70ZCvNCuvpJp8UpmvIIds0pXL+rnGQsbqdCDBkX0YxdjZmpPQqDjK9Lfy3uRZVusC60o7n9wbziw6q/w+pi6uVq9o/5KwJAv5zWYe8I73Lm3ScdjEPhr1ipiPQaiLzlfaqm9pPQbBVikrxKlu9Xyoix21HsXiagXfX80jFwsEi7gPY6XoBjl7rMuzDKP5DFUGcjgbOXjC5sXk4Wkyc6nM+dmzs3M2Ge18g+2sxHC33/Op/Zev9ofZOTxqtj8o+G++9sPQWB6ZqVFFAUf++mHxbg4HnXcs/+68p93bSOB94ui+v0dH720dApvTaea1KpXD+5qVtsXa0SN8PbkeRPlU/KzFT7SffQQesO44Ju7yA1rFhf580XHD2/285tjMETHxVlajhPohZFEUZPws+eS08wOmE3C5fL1cLyGE/wG/BNZQ sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/resend-invitation.api.mdx b/docs/docs/reference/api/resend-invitation.api.mdx index 32aabd1a78..0555fd944f 100644 --- a/docs/docs/reference/api/resend-invitation.api.mdx +++ b/docs/docs/reference/api/resend-invitation.api.mdx @@ -5,7 +5,7 @@ description: "Resend an invitation to a user to an Organization." sidebar_label: "Resend User Invitation To Organization" hide_title: true hide_table_of_contents: true -api: eJztVlFv2zYQ/ivEPW2AZntB96K9zO0C1Ou2BI67oXAM4yxdLLYSqZJUYlfQfx+OlCzZTrwN2PY0P5nk8bvj3XffqQaHWwvxEm7MFpX8gk5qZWEVQUo2MbLkNcQwJ0sqFaiEVI/SeTPhtEBRWTL+nxJDjNG9uldzlJZsfK+EEOLtYnF7vUvIQ8ZiPXCw/l5Yh66y60SnFIvvJpNn78x630o78aArlQptRIZW0K6UhtITpFcvIH3QlcDcEKZ7saFcqy2/wWXSCj14xXNo92pOrjKqe9dPdze/zsmWWlmKhU+UO8kS5+gE6moygQh0ScZbzVKIwfgkr/u7EEGJBgtyZLhKNSgsCGIYxriWKUQguUolugwiMPS54lxA7ExFEdgkowIhrsHtS75unZFqCxE46XLeGFZOzFJomujg60mbT7bEhP4JR793YMHLKmCQda91uueLp5CJVo6U4yMsy1wmPsbxR8u0rAceS8PJdJIsr6hAmV8K5NobNE3UWejNR0rc0aOWLcyqvxb6wPOQ5iFyaBqGMS0FvHuublyf9NBdlSRk7UOVi44v8NcfGLy8uro6B/4Nc5mG2l0bo83fQD1JW0quzZt0VNhzg1wnR6eo9jcPnpnHiWb+tDtSOdqSgWbVJxuNwf2gGj/rECA0ERR2e6lwv5C1uCU4gF2oMSdDLPi0YeKWlU9IdzzzG00EidsNYA5E6OzecC537k/JwrkJ4bd2A970JQoVejkVP4YSPOesM2EtOwMM/CjIZZq1pNTWeflwGcQwHgqGHdcn+tGMD01ux/Ww4ZuxVyMaB22CCCyZx06NKpMzOJbSFzwsM+dKG4/HVI2SXFfpCLekHI5QBsMVYySVkW7vQaa3s3e0f0uYkoF4uRoa3DFPA/OOzQ7VwlK+I85fq1bTymXatE/r5CoLtzhB3AHzXnKud1iUOQ0ko2cwSPWgh4SZ+oeI6e0MTufj0RE3Hyaea11U/hiikxT1mYHo4N8RFj8cTjgOzndwMxl9O5rwFpe3QDVw0U7o9zyOB3NyoY/G8mngda8U/8/4f2fGt0RlCRmXOUovcp4Hdduey6N5biGC+HzA9x3K52dDmZvU65Fv01UEGQtAvIS63qCl9yZvGt7+XJHhvltF8IhG4oaZvawhlZb/pxA/YG7pAk2+mrea97V46XVdbypuzEfMK15BBJ9o/8zHC0vHf+j+KHV+KGWd9tStyZvg7Rs/OnqIs0nKkYcb04Rpd9F2NVDn25u7BUSwaT96Cp3yHYNPXEJ8CuHqMtCBv4p4r4Yc1bbi4RdDwOTfHz24ER4= +api: eJztVlFv2zYQ/ivEPW2AFnlB96K9zO0C1Ou2BI67oXAM4yydLbYSqZJUYlfQfx+OlGzZTrwN2PY0P5nk8bvj3XffqQGHGwvJHG7NBpX8gk5qZWERQUY2NbLiNSQwJUsqE6iEVI/SeTPhtEBRWzL+nxJDjKsH9aCmKC3Z5EEJIcTb2ezuZpuSh0zEcuBg+b2wDl1tl6nOKBHfjUbP3pkcfCvtxFrXKhPaiBytoG0lDWUnSK9eQPqga4GFIcx2YkWFVht+g8ulFXrwiufQHtSUXG1U/66f7m9/nZKttLKUCJ8od5IlztEJ1PVoBBHoioy3mmSQgPFJXh7uQgQVGizJkeEqNaCwJEhgGONSZhCB5CpV6HKIwNDnmnMBiTM1RWDTnEqEpAG3q/i6dUaqDUTgpCt4Y1g5McmgbaO9rydtPtkKU/onHP3egwUvi4BB1r3W2Y4vnkKmWjlSjo+wqgqZ+hjjj5Zp2Qw8VoaT6SRZXlGJsrgUyI03aNuot9Crj5S6o0fNO5jF4VroA89DmobIoW0ZxnQU8O65uklz0kP3dZqSteu6ED1f4K8/MHh5dX19DvwbFjILtbsxRpu/gXqStoxclzfpqLTnBoVOj05R7W7XnpnHiWb+dDtSOdqQgXZxSDYag7tBNX7WIUBoIyjt5lLhfiFrcUOwB7tQY06GmPFpy8Stap+Q/njiN9oIUrcdwOyJ0Nu94Vxu3Z+ShXMTwu/sBrw5lChU6OVU/BhK8Jyz3oS17Aww8KMkl2vWkkpb5+XD5ZBAPBQMGzcn+tHG+ya3cTNs+Db2akRx0CaIwJJ57NWoNgWDYyV9wcMyd65K4rjQKRa5ti4cL/hmWhvpdv7q+G7yjnZvCTMykMwXQ4N7Zmfg27HZvkZYyXfEWes0aly7XJvuQb1I5eEWp4V5Pz0Izc0Wy6qggVAceAtSrfWQJuMNKYdifDeB06l4dMQth6lnWB+VP4ZokBibxDH67SuUMUR7/46w/GF/wnFwloOb0dW3VyPe4qKWqAYuurn8nofwYDrO9NEwPg28OejD/5P935nsHVFZOOKqQOmlzfOg6ZpyfjTFLUSQnI/1Q1/y+dko5tb0KuSbcxEBNxxDN80KLb03Rdvy9ueaDPfdIoJHNBJXzOx5A5m0/D+DZI2FpQs0+WraKd3X4qXX9b2puDEfsah5BRF8ot0znywsGP+h+6PU+VGU99rTdCZvgrdv/MA4QJzNT4483BinTLuLtouBJt/d3s8gglX3qVPqjO8YfOIS4lMIV1eBDvwtxHsNFKg2NY+8BAIm//4A5AENvw== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/reset-organization-domain.api.mdx b/docs/docs/reference/api/reset-organization-domain.api.mdx index 4fcdf6e8c1..88630578bf 100644 --- a/docs/docs/reference/api/reset-organization-domain.api.mdx +++ b/docs/docs/reference/api/reset-organization-domain.api.mdx @@ -5,7 +5,7 @@ description: "Reset a verified domain to unverified state for re-verification." sidebar_label: "Reset Domain" hide_title: true hide_table_of_contents: true -api: eJzVVktv4zYQ/ivEnFpAa6dBTzrV2LTdYNvGSLy9OEYwEccWNxSpJansuoL+ezGk5Ehx4ra59WSL8+A8vm+GLQTcecjXcOV2aNRfGJQ1HjYZSPKFUzV/Qw7X5CkIFI/k1FaRFNJWqIwIVjTmcOgDBhJb64Sjd+m0iB5nt+bW/EqGHAbyAoWhryLYBzICjRQVugcvQkmDW/Qjt7NbsyqVF6i1/eqfuxZ2K1A7Qrl/Hp2fQQa25kuVNZcScnCcx50dJXuXdCGDGh1WFMhxQVowWBHkkMR3SkIGiktRYyghA0dfGuVIQh5cQxn4oqQKIW8h7Gs29MEps4MMggqaDy5SbpcSum7DDnxtjSfPNudnZ/wzLfpNUxTk/bbR4rpXhgwKawKZwOpY17ovw/yzZ5t2FEftOPeg0g1KvhTb1roKA+TQNDHDIVYOMgOvm92pjG5Y3mV9qVpAs7/axuJNLbrscGIarYHTH3z8wbbdM7y9zdXFyEWXwVZHbLeAUio+RL0clSS1rfdl7z9TEUap/RKNuwwiSt8a0SoadxkUjjCQvMNwsgsSA70LqqJRJO+TqVgEdtTUcuTotZhedHkq0E/JbX/JhB//DTjjOZKgflzjJ+qsIRpHnPUwmiJh6OLQh0klJ9U4jnrzclSJhiNCHU26KBCVlaTjMMN+nsyg6zifH8/Pj8n6J2olU9o/O2fd25kqKaDSkbOBKn+soG0xkf4LZCoTaEcOus1TP9A53I9a95tNATICKn+S+L+T97iLvE0qr6vGYogVSzueoHWTKDAMmnjADAnfRm6O+Piea/kt/COeuDYp/F5vhIKnFqUOvV6Ki9SCly4bVD6sVssjhwkfFYXS8raprQ9xsYQScpiPAern/Y6at4cN083jemJCkHsc9lDjNBtjrWJD02cZQu3z+ZyaWaFtI2e4IxNwhiopbthH0TgV9tHJYnn5kfYfCCU5yNebscIN4zAha6p26AbW6iPtB4bmsGhCaV2fybAXy2TVxS5v7bjJixicWCwvj+g2ETFhsIj4GG6KYmb6JO2nbCEDqiJdIBBWPx0k3F2uYbrmbPbD7IyPuCUVmtEV6WlzMbwCnu2hA4f/x0+gvovMn3mtOc2uL2jbY3M9GZ48bntzyCAfv4ASQDcZlAztfA1te4+ePjnddXz8pSHHiNtk8IhO4T33f92CVJ7/S8i3qD2dKPN31z2bvxevhT6g0jAkH1E3/AUZPNB+8mCLw64cMN/28kVRUB1Glkezmclx4PDy6mYFXfc3z2jX+w== +api: eJzVVktv4zYQ/ivEnFpAa6VBTzrV2LTdYNsmSLy9OEYwEccWNxSpJansuoL+ezGk5Ehxkra59WSL8+A8vm+GHQTceSjWcOF2aNRfGJQ1HjYZSPKlUw1/QwFX5CkIFA/k1FaRFNLWqIwIVrTmcOgDBhJb64Sjd+m0jB4XN+bG/EqGHAbyAoWhryLYezICjRQ1unsvQkWjW/QTt4sbs6qUF6i1/eqfuhZ2K1A7Qrl/Gp1fQAa24UuVNecSCnCcx62dJHubdCGDBh3WFMhxQTowWBMUkMS3SkIGikvRYKggA0dfWuVIQhFcSxn4sqIaoegg7Bs29MEps4MMggqaD85SbucS+n7DDnxjjSfPNqcnJ/wzL/p1W5bk/bbV4mpQhgxKawKZwOrYNHooQ/7Zs003iaNxnHtQ6QYln4tta12NAQpo25jhGCsHmYHX7e61jK5Z3mdDqTpAs7/YxuLNLfrscGJarYHTH338wbb9E7y9zdXZxEWfwVZHbHeAUio+RH05KUlq2+DL3n2mMkxS+yUa9xlElL41olU07jMoHWEgeYvh1S5IDPQuqJomkbxPpmIZ2FHbyImjl2J61uVrgX5KbodLZvz4b8CZzpEE9eMaP1JnDdE44myA0RwJYxfHPswqOavGcdSb56NKNJwQ6mjSRYGorSQdhxkO82QBfc/5/Hh6ekzWP1ErmdL+2Tnr3s5USQGVjpwNVPtjBW3LmfRfIFOZQDty0G8e+4HO4X7Sut9sCpARUPtXif87eY+7yNuk8rJqLIZYsbTnCdq0iQLjoIkHzJDwbeLmiI/vuZbfwj/iiWuTwh/0Jih4bFHq0MulOEsteO6yUeXDanV55DDho6ZQWd42jfUhLpZQQQH5FKA+H3ZU3h02TJ/H9cSEIPcw7qHWaTbGRsWGps8qhKbIc21L1JX1IYk3bFm2ToV9NF1enn+k/QdCSQ6K9WaqcM3oS3iaqx16gI36SPuRlwUs21BZN8Q/bsMqWfWxt1s7be1yRyagWF6eH5FsJmKaYBlRMd4UxczvQ7K+yHOMxwtUOWRAdSQJBML6p4OEe8qVS9ecLH5YnPARN6JGM7kiPWjOxt3/ZPscmPs/fvgMXWTW5I3mNPuhoN2AyPVsZPKQHcwhg2L67kmw3GTAUGO7rrtDT5+c7ns+/tKSY8RtMnhAp/CO+7/uQCrP/yUUW9SeXinzd1cDh78XL4U+otIwJB9Qt/wFGdzTfvZMiyOuGjHfDfJlWVITJpZHE5nJcWDu5cX1Cvr+b5gN1Jw= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/reset-password-admin-simple-accounts-reset-password-post.api.mdx b/docs/docs/reference/api/reset-password-admin-simple-accounts-reset-password-post.api.mdx index 7aacabca95..3827f187c7 100644 --- a/docs/docs/reference/api/reset-password-admin-simple-accounts-reset-password-post.api.mdx +++ b/docs/docs/reference/api/reset-password-admin-simple-accounts-reset-password-post.api.mdx @@ -5,7 +5,7 @@ description: "Reset user password" sidebar_label: "Reset user password" hide_title: true hide_table_of_contents: true -api: eJytV02P2zgM/SsCz5pkOujJp83ODNCgu2gwmfaSBoFiM4laWXIleSbewP99QcmOnc8ugs3FsURSIvn4SO/Ai7WDZAajLJca5hxMgVZ4afQ4gwQsOvSLQjj3bmy2ECS1cDIvFC5EmppSe7c4EiqM88DB4q8Snf/TZBUkO0iN9qg9/RVFoWQaDhn+cEbTmks3mAv6V1i6gpfo6K10aBcyQ+1luyQ95u6CpMVVOEFXX1aQzI5lTrZ9VSAk4LyVeg0136/oUimo5xy89IoWXnAFNQeZ3WpgnJG+U+X6VgtT0q05YC6kutXIc1Cua95KmOUPTClhewmKdUX+csjQpVYWlCpIYGJUlRtbbGTKLK7Qok6R+Y3wLBWaFUZqz7xhgjXJv1MmFYr9xIozob9r3ErnpV6zAq2TzmPGxk+cCea8WCpkFB3OjGVCs+AlE1lm0bnBd/28FalXFTMa2UqiylheOs+WyBz6wRmfaw45+o0JGTsMUOfs31GCMlPGQFwRnjYiNYfM5ELqW5PwFLX/p1xyaGvvVkOTVr/m8IZWriSet7U0RqHQV419aw3Qxax5kxnaRVPHN1+wscO+OrQsllKqhIxE0FkUWSYJrEJNeoXvbYnHeL922mO0fK5ICNjSUnRmLbo66PRMBD6ly44jd1WPFoVH6EwKa0XVA1fj2Z7pfnf6MTMeHz4NLD1qSJqsuxci6i7XdEJnkYIUFlxhtIt8+XD/kR6HLDAt0xSdW5WKvTTC5NbHh4dT2W9CySwwPXu21ljgtzaCDH1TKRf4X5n0YPc/wExqj2u0kSsupOUvEy9ILuZufZ1LnBPrXo4vi4ZgsFfapaaiizIST9srwgJh3G97Zk6o+pFiufW/xQrFJl6/keuX6z5FMUOXQ/EUU3Ctd3x6fZ2cGKwD0g6BEaDICMNsT14dX0MzQxTCbyCBYZg7hnHuGLZzxzDMHXc9dYf2Da0LSS+tCpqFDBmPrxvvC5cMh1gOUmXKbCDWqL0YCBkF52QjLa30VTAymow/Y/UJRYYWktm8LzAloEboHYrt0yUK+RkpgFrkoSxLvzFW/hPxRGmnK0UtihCVwEs3NT1vBfl7dgqaHc474dGhjHi2e4sjR/fetJyuHrqwdzptM+yW2o530VC/DXVrXTuJLHzaETrZPaPXoSKlXpl+VYxCsthoMj6ZTA62iGFE7ORt5MM28CMYdNnveeNR5H/sd5qO6OIx94MPg/vQ14zzudC9I84D+uCWe2BQzQ4L1YwA4U67BuszCFinFAS0A4cW76GmDxA/57ChQklmsNsthcOvVtU1Lf8q0RKE5xzehJU0XAX88hZvhKCfWLUcov1dICMSV2UE7xE3UxVFjVGaYuGvys57oJp8mb4Ch2XzIZCbjHSseCeHxDskAPTZQdpxSKe1HSih1yXRaQLRJv3+BXCRXyA= +api: eJytV99v2zgM/lcEPqt1V+zJT5drCyzYHRY03V6yIFBsJtEmS54kt/UF/t8PlOzY+blDcHmxTZGURH78yGzBi7WDdAajvJAa5hxMiVZ4afQ4hxQsOvSLUjj3Zmy+EKS1cLIoFS5ElplKe7c4UCqN88DB4q8Knf/T5DWkW8iM9qg9vYqyVDILmyQ/nNEkc9kGC0FvpaUjeImOviqHdiFz1F52IumxcGc0La7CDrr+soJ0dqhztOzrEiEF563Ua2j4TqIrpaCZc/DSKxI84woaDjK/1sE4J3unqvW1HqZk23DAQkh1rZOnYNw0vNMwyx+YUcJ2GhTrmu7LIUeXWVlSqiCFiVF1YWy5kRmzuEKLOkPmN8KzTGhWGqk984YJ1ib/RplMKPYTa86E/q7xXTov9ZqVaJ10HnM2fuRMMOfFUiGj6HBmLBOahVsykecWnbv9rp/eReZVzYxGtpKoclZUzrMlMof+9sSdGw4F+o0JGdsPUH/Zv6MGZaaKgbigPG1VGg65KYTU1ybhMVr/T7nk0NXetY4mnX3D4RWtXEk87WtpjEKhLzr71jmgg1nzKnO0i7aOrz5g64d9dWhZLKVMCRmJoPco8lwSWIWaDArf2woP8X5pt4fo+VSRELClpejMOnT10Bm4CHxKhx1H7qofLAqP0LsU1op6AK72Zjum+93uh8x4uPk0sPSoJWny7p6JqPtc0w69RwpSELjSaBf58v7uIz32WWBaZRk6t6oUe26V6Vof7++Pdb8JJfPA9OzJWmOBX9sIcvRtpZzhf2WyvdX/ADOpPa7RRq44k5a/TDwgXbFw68tc4pxYD3J8XjUEg73QKjUVXVaReLpeEQSEcf8+cHNE1Q8Uy3f/W6xQbOLxW71hue5SFDN0PhSPMQWXesenl5fJkcMmIG0fGAGKjDDMduTV8zW0M0Qp/AZSSMLckcS5I+nmjiTMHTcDc4f2Fa0LSa+sCpalDBmPnxvvyzRJQlfaGOfj8pwss8pKXwfT0WT8GetPKHK0kM7mQ4UpwTMCbl9tlyRRys9IYdOiCMVY+Y2x8p+IIko2HSRaUVwI+M/9rPT0LuiWJ2ef2f6UEx49tohd+684aPTfbaPpq6APdm/TtcBe1PW5s46GzaeX9U0kcu9xH+h1dzzehDqUemWGtTBao/aCjSbjo3lkb4l4RcT+3UU+LAMfJN+lSSKC+FbIZHAbj6L4Y7fS9kEXt7m7/XB7F7qZcb4QerDFaRjvnXIHDKrUpFRt4w9n2rYIn0FAOKUgYBw4dCgPlbyH8zkHwi5ZbbdL4fCrVU1D4l8VWoLwnMOrsJJGqoBf3uGNEPQT6445tL8JFETqqorgPWBkqp1oMcoyLP1F3fkAVJMv0xfgsGzH/8LkZGPFG11IvEEKQH82yDqO5iTbghJ6XRGJphB90u9f22JbwQ== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/reset-user-password.api.mdx b/docs/docs/reference/api/reset-user-password.api.mdx index d055427469..edc65fea0a 100644 --- a/docs/docs/reference/api/reset-user-password.api.mdx +++ b/docs/docs/reference/api/reset-user-password.api.mdx @@ -5,7 +5,7 @@ description: "Reset User Password" sidebar_label: "Reset User Password" hide_title: true hide_table_of_contents: true -api: eJyVVEtv2zAM/isGTxugJVmxk08LtgENuqFBm+4SGAVjM7E621IluWtm6L8PlB0/mnbATk3FjxT9PdSAw4OFeAt3loyFRIDSZNBJVa0yiMGQJXdfWzL3Gq39rUwGAjQaLMlxR7xtoMKSIIaAklyXFcTwWJM5ggBDj7U0lEHsTE0CbJpTiRA34I6a+6wzsjqAACddwQe8S7TKwPuE261WlSXLHReLBf/JyKZGat4SYrit05Ss3ddFdNOBQUCqKkeVYzhqXcg0fNT8wXJPM2zhvfcCPl1cnA/+iYXMQlv0zRhl/mMqaMNEOtnunZFDWfAv6ai054BCpZMqVsfrfSB3SpIX/YmsHB3IgE+8OJ2hMXgcMfldtQuCF1Daw79I/0HW4oGgH/Y2NJARbbjqWWxdB0JO5VU48AJS9zwao3YPlLrRmC/M5bMDP+zfYwbTbAM37fodLhlmDBK1Cr1NxddWgtcuO0EuN5v12cDWH1Nj3HAqomDT9ZCKklyuODRaWRdS4nKIYa6N2suC5iFLH0YxsmSeThmqTcFY1DJo3P6bO6dtPJ9TPUsLVWczPFDlcIayBSY8I62NdMcwZLleXdHxkjAjA/E2GQNu2Zqt2aawXiDU8oqYsi7Py9rlysg/rYO6VOdtlw/C79VY92VYLlquV/CSsEmJM4RpsMzpplAG8eKzh68FAVSGBIEjLD/3FRacOWyvWcw+zhZ8xAqUWI2ueF2yyZY9EezKuS5QhtyEnZpOzS10agaPTvRMBOQsfLyFptmhpTtTeM/H7UvIAmXS4q5gW++xsHS2QP+8wLubLgHvIxCvL/aLjpNX9wmLmlHBF09oJF8VbCBOsvEObdsyTUm7UdfZc8ZTekuvr2834P1f+bEbNQ== +api: eJyVVMFu2zAM/ZWApw3Q6qzYyacF3YAG3dCgTXcJgoK1mUSdbKkS3TUL9O8D5cSxl3bATrbJR4p+71E7YFwHyBdwF8gHWCqwjjyytvW0hBw8BeL7JpC/dxjCL+tLUODQY0UsFfliBzVWBDkklJa8riGHp4b8FhR4emq0pxJy9g0pCMWGKoR8B7x1UhfY63oNClizkYDMMpqWEONSyoOzdaAgFefjsTxKCoXXTqaEHG6boqAQVo0Z3ezBoKCwNVPNAkfnjC7ST2WPQWp2xylijFHBp/Pz08Y/0OgylY2+em/9f3QF54VI1u3cJTFqI2+aqQqnAGOLQRbr7fUqkTskKaouomumNXmIy6gOMfQetz0mv9l2QIgKqrD+F+nfKQRcE3TN3oYmMkZzyUYR2zWJkEN6mgJRQcEvvTb24ZEK7rW5EC5fGOJx/g5zNM0icdOOv8ctjz2OErUKvU3Fl1aC1w47QC7n89lJw9YfQ2PcyFaMkk1nx62oiDdWlsbZwGlLeAM5ZM7blTaUpV360FujQP75sEONN4JFp5PG7eeG2eVZZmyBZmMDt+mlVBaN17xNpZPZ9Iq2l4QlecgXyz7gVgzZWmwI62RBp69IiNpv8aThjfX6d+ub/S5v2qqY5F7ZvtqTNdWMo8lsCn/TNEjJ5mCRjHI4KaVB9X425FmGKXyGOgMFVKW9ASasPncZkVmYa48Zn308G0tIeK+w7h3xulCDKTsixIuZM6jTtqSZdnsNF7DXMDlzoOJSgSgjmN3uAQPdeROjhNv7TwQqdcAHI2ZeoQl0MkB3qcC7m73v349AvT7YT9oO7tpnNI2gki+e0Ws5KtlAHWSTGdqySVGQ417VySUmXTojz65v5xDjH/AFF9Y= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/revoke-tool-connection.api.mdx b/docs/docs/reference/api/revoke-tool-connection.api.mdx index fc9c98efd9..17a08e95d4 100644 --- a/docs/docs/reference/api/revoke-tool-connection.api.mdx +++ b/docs/docs/reference/api/revoke-tool-connection.api.mdx @@ -5,7 +5,7 @@ description: "Mark a connection invalid locally (does not revoke at the provider sidebar_label: "Revoke Connection" hide_title: true hide_table_of_contents: true -api: eJztWE1v20YQ/SvEnGyAkVyjJ56q2g3iuq4FS+5FEIQROZI2XnKZ/RCiCvzvwexSIinZimM4p/aUiJx5M/vm7XDGW7C4NJBMYKyUNDCNISOTalFaoQpI4A71U4RRqoqCUn4WiWKNUmSRVClKuYnOMkUmKpSNNK3VE0VoI7uiqNRqLTLS5z2IQZWkkd1vMkggGM6sUnLWIEMMJWrMyZLmlLZQYE6QQGMyExnEIDixEu0KYtD0xQlNGSRWO4rBpCvKEZIt2E3JzsZqUSwhhoXSOVpIwDmPYoWVbHDVHO0mg6qaMqgpVWHIMM7lxQX/06Vl5NKUjFk4GT3UxhBzopYKy+ZYllKk/sj9z4Z9tq3cSs2EWBEipMoFpzplUVhaku7kyBZcmwU6aSG5qOIWLT5gsblfeNa64AvpC9w2wCwT7IZy2DFtLOpE5kpJwgKq+JBOfvI8DKRCp06iPvsL5yT/NKr4cO9s6ew5HyigqPlnSi0w17sjHlpDdWTdZFE4KTveH/0p2eW/cNpxfdicLL7xsK2THaiuEzifd5+0OfoeIx+d/A4h8RaEpfyVXqg1bk6roOv7Y6TeMZl8rTShpWyG9hRxrX6SoaUPVuR0Ev4qwEYDn5Yrs58R5DHA1kEykvQTglwH2DrIjq75hpvz6+L4Dvwasn7f+J7c8PWuUXZs7aPsCHvXKDu69lHCV+1Vd/II7G/0xel+jd4Gdd2CqGIw0i3fCjVi3yqG9yMtMLUbIWZPtHnuk06Fy3l2SVVeKiMUxIBLKixCu1kqxQ3KA92KwgP7XhcGkpew95k0ptEtbTz5+H/bfbe2e42h7RqL1plTk4ymTGhK7cxp+ValPtQY0aOWUB0l2lVNMxmOQnLHyM9BNCPppKvgY91NXwr4ylDPO+8n0qpip18vL48H2H94hg+q/kNrpd8+vWZkUfiC1KI6NJAq7bz9kUsxrQ502BqhVEjQD0JmeeoO35ExuKRGmC+bejKiMb/1fYL1zOb7blALPLVfWzBHBbliLr/aZyXW1gdzE9Kv7VqKaEoUKvQyFdehBKcU8mk8Hh4BBn3kZFeK17JSGeuXMLuCBPq8npl+s2WY/raziVX9sMdBDIb0ere0+dsJfSyFr2j4ubK2NEm/T66XSuWyXujTPRTBcMoYqdPCbjzIYHhzS5tPhBlpSCbTtsGIhRik1TXblwNLcevvW71ADpxdKS3+xXrN9AvkKnhVvswL1a7ywCcXDYY3cLgPd17xjcHUC2QXKXx+4oNjN6flr1bu7wtYwvy3/RsuL3MYwlz0fuld+E+gMjbHohXiIWzZV+29+WAc2N/k91rfa15Z0v1SovCXrm7DQS4T8HKB9lrKv5LD5b3WzDSGFcstmcB2O0dDj1pWFT/+4kizCKYxrFELnHNJJlvIhOH/Z5AsUBo6ceizh/qGnUcv5b4TSsEqWaN0/Ati8MPAwR8cfBNa7aS4rW0GaUqlbXkf9UzW7P5uDe9HY6iqbyc//cw= +api: eJztWN9P40YQ/leseQLJhynqk5+aQk9HKQVB6AuKook9SfZYe3274+jSyP/7aXadxE4gxyHuqX0C2/Nrv/lmdiYrYJw5SB9haIx2MIohJ5dZVbEyJaRwjfYpwigzZUmZvItUuUCt8kibDLVeRke5IReVhiNLC/NEEXLEc4oqaxYqJ3t8AjGYiiyK+mUOKQTBMRujx1vLEEOFFgtishLSCkosCFLYioxVDjEoCaxCnkMMlr7UylIOKduaYnDZnAqEdAW8rETZsVXlDGKYGlsgQwp17a2wYi0C59ujXebQNCMx6ipTOnJi5+z0VP70Ybmvs4ycm9Y6umuFIZZAmUoWcawqrTJ/5OSzE51VJ7bKCiCsgofM1EGpDVmVTDOyvRhFQnIzxVozpKdN3IHFOyyXN1OPWt/4VPsEdwUwz5Woob7tiW4l2kAmxmjCEpp4F05587wZyJTNao326C+ckP7TmfLDTc1VzcdyoGDFTD5TxiBYr4+4Kw3NnvQ2irLWuqf90Z9SVP4Lpx22hy2I8Y2H7Zxsh3U9x8Wk/6aL0fcQ+Vjr7wASr0AxFa/UQmtxeZgFfd0fA/VawJSysoRM+Rj5EHCdfpIj0wdWBR00fx7MRgMfVl3lP8PJQzDbOslJ009wchHMtk7WcE2W0pxf58d34NeA9fvS9+QtXu/qZY3WxssasHf1soZr4yXcaq+qyT1jf6NPTv82epupi46JJgan69lbTd2LbhPD+4EWkFqPEOMnWj53pVNZFzK7ZKaojFMGYsAZlYzQbZbGSIPyhq5U6Q37XhcGkpdsbyLZikZXtPTg4/9t993a7gWGtusYuXaHJhlLubKU8bi2+q1MvWttRA9WQ7MXaJ8128nwPgS3b/k5E9uR9LHP4H3ejV5y+EpXzytvJtKmEaVfz872B9h/ZIYPrP7DWmPfPr3mxKh8QlpS7Qpok/W+/khRjJodHnZGKBMC9IOQmx2q4WtyDme0JebLoh6MaChffZ8QPov4phu0BM/4a8fMXkLOBcuv/CzFuvwQbEL4rVyHEdsUhQy9DMVFSMEhhnwaDm/3DAZ+FMRzI2tZZRz7JYznkEIi65lLtluGS1a9TaxJwh4HMTiyi/XS5qsTEqyUz2h4nDNXaZL4nXFuHIfPI9HMaqt46VUHt5dXtPxEmJOF9HHUFbgX+gVC9cU2ScBKXfkqa9fGQc1zY9W/2C6Xfm2cB63GJ3dqurkd+KsjGtxewu4W3PskdYKZp8XaU7h04s5hXZok4S46QZXIXVX4KgEmLH7bfJGkCnLBzenJLyen/uIzjgssOy7uwm593t2Wd4aATf2+19Le4ipETiqNypda23wDSR7BkwS6y6g8pbsre8uUUQySfVFcrSbo6MHqppHXX2qyQoJRDAu0CieSkscV5MrJ/zmkU9SODhz66K6tq+PopdjXRCmFJQvUtTxBDH4E2PmZwbee+ZqKq1ZmkGVUcUd7r1MKZzcVdXtzP4Sm+QZR2fpt sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/sidebar.ts b/docs/docs/reference/api/sidebar.ts index e1b45d31bb..8958bb4a00 100644 --- a/docs/docs/reference/api/sidebar.ts +++ b/docs/docs/reference/api/sidebar.ts @@ -1658,6 +1658,12 @@ const sidebar: SidebarsConfig = { label: "Open Run", className: "api-method post", }, + { + type: "doc", + id: "reference/api/fetch-default-queue", + label: "Fetch Default Queue", + className: "api-method get", + }, { type: "doc", id: "reference/api/create-scenarios", @@ -1814,6 +1820,18 @@ const sidebar: SidebarsConfig = { label: "Delete Queue", className: "api-method delete", }, + { + type: "doc", + id: "reference/api/archive-queue", + label: "Archive Queue", + className: "api-method post", + }, + { + type: "doc", + id: "reference/api/unarchive-queue", + label: "Unarchive Queue", + className: "api-method post", + }, { type: "doc", id: "reference/api/query-evaluation-queue-scenarios", @@ -2408,8 +2426,8 @@ const sidebar: SidebarsConfig = { }, { type: "doc", - id: "reference/api/verify-permissions", - label: "Verify Permissions", + id: "reference/api/check-permissions", + label: "Check Permissions", className: "api-method get", }, ], diff --git a/docs/docs/reference/api/sso-callback-redirect.api.mdx b/docs/docs/reference/api/sso-callback-redirect.api.mdx index 4c178a83c8..86b081478b 100644 --- a/docs/docs/reference/api/sso-callback-redirect.api.mdx +++ b/docs/docs/reference/api/sso-callback-redirect.api.mdx @@ -5,7 +5,7 @@ description: "Custom SSO callback endpoint that redirects to SuperTokens." sidebar_label: "Sso Callback Redirect" hide_title: true hide_table_of_contents: true -api: eJztVk1v20YQ/SuLOcUAITluTjzVdY3ESAobltKLLQhr7ojcmNxldoauVYL/vZglKYmRHaAt2lNO4u7O55t5M2qBdU6Q3sF5liERrBIwSFmwNVvvIIWLhthXarG4VpkuywedPSp0pvbWseJCswpobMCMSbFXi6bGsPSP6Gh27+7dsrC0k0/v3duZEk81k8pK1E59vv2kas1Fqua64WJO5Oejo3nrQ66d/VNLMGsqm7ybt3XwT9Zg6M/37mymftelNZqRFBeoDpWUdkaNGgqfLfG9+2mmfmlsaegwXMWFDeZGB95emVQR+fQF9+mR+3czdfsKAjvExuT2iR066wSoaSToVKGdKZF6zC6fs0K7HFXmDaqND4p70TcNWZcr3wRltk5XNttnm3m3sflJROg9smoIg7Ju4yMCF7osox7Z3K2tWze18k8YgjWo3mQBI56is7YGHVveJkobM72zGJMmJLLenUzgkIdN8I7RGfWH5WIUU5n3jxYhAV9jiOheGUiByK9HiNZjW0ECtQ66QsYgndqC0xVCCkfFgQSstKy0EyQQ8GtjAxpIOTSYAGUFVhrSFnhbiwHiYJ1oseVSLq4PG2chFrsu2fmbFP5f+7oZqzT4WYkRqr0jJNE7Oz2VnykZF01k6aYp1e0gDAlkEWIWcV3Xpc1iAvMvJDrtPpau67oE3p2dHRseCCR5X4bgw9+wKrjUGKQTerusbSlflrGiY4HSZ5NX7bbXm1jXKVSC/HBjHWOOAbpVl4x3OgS9PcDzk+8DhC6BivLvQf8bEukcYWfsddEIhlrKaycVr5sIyPh8FS+6BDJ+PjDjH770jTvKXQiWzyztdCSzb527iE0f/iC32tvYl6iv0OtQ/NqX4CVno8iH5fLmyGDfHxVy4YWNOfbc4wJS+GfDGRIgDE8jcZtQRlO1jdXtjwVzTel8js0sK31jZjpHx3qmbS+4EhtZEyxvo5Hzm6uPuP2A2mCA9G51KLCQpuzbbCq2K42u7UcUsAZSnzdc+DAkMZK66LW6WPKNP6z4eQxOnd9cwbebcvIk7NFZbJbRU3yG5Ju099lCAlhF7gCjrn7evUipBcPezens7exUrmpPXGl34GJBPo71uKRv9/NzEme7Z/aP5f5juf+Hy32gnEy+eV1qG2dz7P52GCt3IMjJlCAvpBkQhATSl7Z7Ol3BqwQKTyxm2vZBE34OZdfJ9dcGg0yLVQJPOlj9INy9a8FYkm8D6UaXhN9hxpvbYSyfqNcyGSeKk3HypMtGTpDAI25f/HciI+9/DGCKVVydxTg020GmZ+uB9tGml+m62wjvL5fQdX8BiXhQyw== +api: eJztVk1v3EYM/SsDnmJAWDluTjrVdY3ESAob3k0v9mIxlrjSxNKMMqRcbwX994AjaVfq2gHaoj3l5BWHn498pFtgnRMkd3CepkgE6wgypNSbmo2zkMBFQ+wqtVxeq1SX5YNOHxXarHbGsuJCs/KYGY8pk2Knlk2NfuUe0dLi3t7bVWFor5/c27cLJZFqJpWWqK36fPtJ1ZqLRMW64SImcvEYKG6dz7U1f2pJZkNlk3dxW3v3ZDL0/fe9PVuo33VpMs1IigtUUyOlbaZGC4XPhvje/rRQvzSmzGiaruLC+OxGe95dZYkicskL4ZOj8O8W6vYVBPaIjcUdCpsG6wSoeSZoVaFtViL1mF0+p4W2OarUZai2zivuVd80ZGyuXONVtrO6Mumh2tTZrclPAkLvkVVD6JWxWxcQuNBlGezI5HZj7KaplXtC702G6k3qMeApNhuToWXDu0jpLJvLDIaiCYmMsyczOORh651ltJn6w3AxqqnUuUeDEIGr0Qd0rzJIgMhtRog241hBBLX2ukJGL5PagtUVQgJHzYEIjIysjBNE4PFrYzxmkLBvMAJKC6w0JC3wrhYHxN5YsWLDpQiup4OzFI9dF+3jzRr/r2PdjF0a4qzFCdXOEpLYnZ2eyp85GZdNYOm2KdXtoAwRpAFiFnVd16VJQwHxFxKb9pBL13VdBO/Ozo4dDwSSui+9d/5veBVcavQyCb1f1qaUX4axomOF0qWzV21319vQ1zlUgvwgMZYxRw/duotGmfZe7yZ4fnJ9gtBFUFH+Peh/QyKdI+ydva4awFAree2k43UTABmfr4KgiyDl54kb9/ClH9xR70KwfGYZpyOdw+jcBWz69Ae99cHHoUV9h16H4te+BS8FG1U+rFY3Rw77+aiQCydszLHnHheQwD9bzhABoX8aidv4MriqTehu/1kw10kcly7VZeGI++e1WKaNN7wLpuc3Vx9x9wF1hh6Su/VUYSmj2A/XXG3fEF2bjygQDVQ+b7hwfkh9pHLRW3Wh0Vs37fN5jpa1Or+5gr/ex9mTcEanYUTGSOEZokmxlMSxDuKFNjFEgFVgDDDq6uf9izRYkOvDnC7eLk5FVDviSttJiCW5sMzDab49bM1Znu2Bzz9O+o+T/h+e9IFysu/iutQmbOQw/e2wTO5AkJPdQE5IMyAIESQv3fRkfnjXEciaEDdt+6AJP/uy60T8tUEv22IdwZP2Rj8Id+9ayAzJ7wySrS4Jv8OMN7fDMj5Rr1UybhQr6+RJl418QQSPuHvxfxJZdP9jAnOswsEsxqXZDjo9WyfWR/ddtuv+Dry/XEHXfQM/d01s sidebar_class_name: "get api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/start-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/start-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/start-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/start-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/start-simple-evaluation.api.mdx b/docs/docs/reference/api/start-simple-evaluation.api.mdx index 276e5228c3..cb0d9f0585 100644 --- a/docs/docs/reference/api/start-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/start-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Start Evaluation" sidebar_label: "Start Evaluation" hide_title: true hide_table_of_contents: true -api: eJzlWEtv20gM/isGTy2gxtliTzqtN0mRbLvbbJz2EhgBLdHRdEePziOo19B/LzgjWe/Y6ePUU2KJ/Eh+pDgc7sDgg4bwDi4eUVo0Is80rALIC1Lu11UMIWiDytxrkRaS7mkvCQEUqDAlQ4pBdpBhShBCI3IvYghAZBBCgSaBABR9tkJRDKFRlgLQUUIpQrgDsy3IGVMie4AANrlK0UAI1joUI4xkgcbV2VUMZbliUF3kmSbNOK9PT/lPTDpSonCOhrC0UURab6yc3VTCEECUZ4Yyw+JYFFJEDnb+SbPOruVboZgRI7yFKLdeqXJZZIYeSLV8PHMSAcS0QSsNhKdl0KLFGcy27zeOtS74RrqUTAsIfS/FI7Xsr/NcEmYt+1d69o5lWh5sUGoqA1bHyBwBsPBS4xCRzDUn8WmIMy81DvHZkj3oxL9OaMIHjJIjfPBS4xC6kMIcQlg6oRGABF0UqkrMJMYlukCc3ASMIW00mcM4t7XgBFBVZLk6DHXRiE6ARVabPD0IdObFJkASm2J2EOPSSU1AoDX5QYQFCw0AyqDWytefKDKjjeTGZm/cZ1cGeyOZlRLKFesPPkiMY8F6KK87n2Yj0fO0hVv1N34yDgORUJGVqF68wzXJv3SevXpvTWHNS+gHw82vDqcvDYPQh9E12rc+fEjJ4DcG24qs1xg7htN190mbo0OMvLHyACHBDoSh9EgtVAq3T/LS030eqX8zmWVQnYtHUTbA+Id1y6B7nn0b1HkLogwgUoSG4ns0TwG2DuIYDb0ywvkzbeXMw84WjixbxD/DyAcPWxmJSdJPMHLuYSsjNV3rLU81x9lxo8sxZP25dcNMw9cPtVKztbdSE/ZDrdR07a38OGiP90hKf0f5f6zUOX7sd7nujKUNGvtklwuAMpvy6FxQFvsnbqLhUUPZLPOPtJ87OVgU0iqeZUgpf+ZGmEUkJcWwGjuVlt6J0TOJx47tvTZU9Lysmt9hsoctcKrRTwUe1cd+Up3d7phm7yoyt9y7/FA7YfyIHsqD03a2dJGyop9/fonQq1mvCb51SfklCFg08TYk7CfcX4KC/ZDeEKCoIDTj3Wl04upB3lT6T83GS3fZb3rRObpJZtCJngHxner7a3tZstrvr18Pb/kfUYrYl8sFN9lvv+LHZFBId92uK6orIPOo8/Y50/CqX36tIT6ParIg1Q9j9dcMl1rjAzXlNC3qyJjd8ls+ljMeZFm8Pl2zarKNzJcWzCAlZ8zlFzNaOM1e585x492v5NqH8D5FPkPTVJz7FDxVI5e3t9cDQF8fvfUPb7BmF+3VVUomyXm7VeTauFWWSSCEuV9zzZtljZ7vOgutcu72YXy4k3qsV19WSdbGQriU+5+JMYUO53OyJ5HMbXyCD5QZPEHhBVeMEVklzNaBLK6v3tL2kjAmBeHdqi2w5Er1tdcV2+cLC/GWmMFqDbewJsmV+L+O2K3hEq9VujrY5O0yWDjnZovrK+jz13nFnxRGroJqS+41BL2wm2i5babugwJDmP6xf9MZ6+D05LeTU37EOam2BpWJkQz2bkQVC1yh80KicN+Qc2hXJfcOfHKhvYvjQSzsbyx9hlcBJFwc4R3sdmvU9EHJsuTHbvziDAXwiErgmgm820EsNP8fV9uHgY/7bgQvbqoP5uWsuY52fa/TmnFO2UH+BQH8R9vBktX1lKQunF0ls4giKkxLe9ACucL2X8L1++UtlOVXCeyRgw== +api: eJzlWEtz2zgM/isenNoZtc529uTTukk6ybbdZmO3l4zHA1NIxC71KB+ZqB799x2QkiXbku2+Tj0lpoAPwAcSBLEGiw8GJndw+YjKoZV5ZmARQV6Q9r+uY5iAsajt0si0ULSkjSREUKDGlCxpBllDhinBBFqRpYwhApnBBAq0CUSg6YuTmmKYWO0oAiMSShEma7BlQd6YltkDRHCf6xQtTMA5j2KlVSzQujq6jqGqFgxqijwzZBjn1dkZ/4nJCC0L7+gEZk4IMubeqdFtLQwRiDyzlFkWx6JQUnjY8WfDOuuOb4VmRqwMFkTuglLtsswsPZDu+HjuJSKI6R6dsjA5q6IOLd5gVn6496xtg98rn5JhAWmWSj5Sx/4qzxVh1rF/bUbvWKbjwT0qQ1XE6ijsCQDTINUPIVRuOImHIc6DVD/EF0fuqBP/eqEBH1AkJ/gQpPohTKGkPYYw80I9AAn6KHSdmEGMK/SBeLkBGEvGGrLHceaN4BCQRnGCO/MgdsAbgeYUnI3kAFS96XN9HOuyFR0AE87YPD0KdB7EBkASl2J2FOPKSw1AoLP5UYQpC+0BVFGjla8+k7C9he3WZW98GaiijZHMKQXVgvX3CgTGsWQ9VDdbpaKV2PG0g1vXW17phwEhtXAK9bN3uCL1t8mzFx+cLZx9DrvBcDFuwtmVhr3Q96NrtechfEjJ4ncG24lsp1BvGU5X2ytdjo4x8sapI4REa5CW0hO1UGssD/Kyo/ttpL5nMquovqdPomwP4x/WraLt+/X7oC46EFUEQhNaipdoDwF2GoMYLb2w0vszbOU8wI6mnixXxL/CyMcAWxuJSdEvMHIRYGsjDV2rkrus0+z4VuoUsl6Xvrlq+fqpVhq2NlYawn6qlYaujZWfBx3wHkmbH9j+n2p1jh93q9x2z2csWnewykVAmUu5lS8oi8OK77C49dEuy8KSCX0wB4tSOc29FWkd7lyBmSClKIZF3600C0703kncBpVLY6nY8bIufsfJ3i+BQ4V+KHDRXPtJfXf7a5q9q8ksuXaFJnvA+Ak1lBu5cjTzkbJi6Md+i9Dr3rMNvvNo+i0ImLbxtiRsOtzfgoJNk94SoKkgtP3Vqbfj2oG8rfUr/yAXTmvKRHmoHK7QimRp5Nf+LuYUo68ZYjRjCO4y8WmpyeqhVvIUxPf4NLqtMTwrVpfLmBSWvZD7jWcPMVaXowsPcfLD4QItnndo7CnXB6BmfsjTAjLaD0L8oPpmXFNVrPbnq1f7051PqGQcjuUlX2bfP9qJyaJUfszSnNxtAZWLra/f8upY7B7zzmMpFw1ZkJqHvnPeNvHG4AO1x3ZY1JMxmvNXbn8yfjCweNPFZPULQtinDsxeSs6Zyyfbuwfbed6d5ya4X8t1m51NikKGhqm4CCk4tEeu5vObPcCwP3bGfjy5HF12R5Yp2STnqWaRG+tHmDaBCYzDeHPcDunMeL01yKzGfg7KTRTpx2bk6bRibSykT3n4mVhbTMZjlQtUSW5s+LxgTeG0tKVXnd5cv6XyijAmDZO7RVdgxvsz7LhtsU2WsJBviXmrh65TZ5Ncy69NnH7omgStymf/Pu8mf/pAmcXR9OYadlnb+sQHCYXfN40l/xmiTrBmMh6jX36JcsyXUuqPEVjC9K/Nl62mGc5e/vHyjJc4E/VMpjbRk7ed92bNAu/LcaFQ+pPjHVrXKb2DkFLoTl65zZ3szqdDXhcRcK5Ycb1eoaGPWlUVL/vmljMUwSNqiSsm8G4NsTT8f1zPdvZ83NQgeHZbH5Pno/axv+17k9aMc8oO8i+I4D8q90bqvpIkzcZZ1zJTIaiwHe29wsc7bLP/bz7M5lBV/wO0aDyY sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/stop-simple-evaluation.StatusCodes.json b/docs/docs/reference/api/stop-simple-evaluation.StatusCodes.json index 5fa9732a44..1896a9aea1 100644 --- a/docs/docs/reference/api/stop-simple-evaluation.StatusCodes.json +++ b/docs/docs/reference/api/stop-simple-evaluation.StatusCodes.json @@ -1 +1 @@ -{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"evaluation":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_live":{"type":"boolean","title":"Is Live","default":false},"is_active":{"type":"boolean","title":"Is Active","default":false},"is_closed":{"type":"boolean","title":"Is Closed","default":false},"is_queue":{"type":"boolean","title":"Is Queue","default":false},"is_cached":{"type":"boolean","title":"Is Cached","default":false},"is_split":{"type":"boolean","title":"Is Split","default":false},"has_queries":{"type":"boolean","title":"Has Queries","default":false},"has_testsets":{"type":"boolean","title":"Has Testsets","default":false},"has_traces":{"type":"boolean","title":"Has Traces","default":false},"has_testcases":{"type":"boolean","title":"Has Testcases","default":false},"has_evaluators":{"type":"boolean","title":"Has Evaluators","default":false},"has_custom":{"type":"boolean","title":"Has Custom","default":false},"has_human":{"type":"boolean","title":"Has Human","default":false},"has_auto":{"type":"boolean","title":"Has Auto","default":false}},"type":"object","title":"EvaluationRunFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"data":{"anyOf":[{"properties":{"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}]},"query_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Query Steps"},"testset_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Testset Steps"},"application_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Application Steps"},"evaluator_steps":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"additionalProperties":{"type":"string","enum":["custom","human","auto"]},"propertyNames":{"format":"uuid"},"type":"object"},{"type":"null"}],"title":"Evaluator Steps"},"repeats":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Repeats"},"concurrency":{"anyOf":[{"properties":{"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"max_retries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Retries"},"retry_delay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Retry Delay"}},"type":"object","title":"EvaluationRunDataConcurrency"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationData"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluation"},{"type":"null"}]}},"type":"object","title":"SimpleEvaluationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/stop-simple-evaluation.api.mdx b/docs/docs/reference/api/stop-simple-evaluation.api.mdx index 382561e87a..75aabe5791 100644 --- a/docs/docs/reference/api/stop-simple-evaluation.api.mdx +++ b/docs/docs/reference/api/stop-simple-evaluation.api.mdx @@ -5,7 +5,7 @@ description: "Stop Evaluation" sidebar_label: "Stop Evaluation" hide_title: true hide_table_of_contents: true -api: eJzlWEtv20gM/isGTy2gxtliTzqtN0mRbLvbbJz2EhgBPaLj6Y4enUdQr6H/XnBGsl5W7PRx6imxRH4kP1IcDrdg8cFAfAcXj6gcWplnBhYR5AVp/+sqgRiMzYt7I9NC0T3tBCGCAjWmZEkzxhYyTAliaETuZQIRyAxiKNCuIQJNn53UlEBstaMIjFhTihBvwW4K8ra0zB4gglWuU7QQg3MexUqrWKDxdHKVQFkuGNQUeWbIMM7r01P+k5ARWhbe0RjmTggyZuXU5KYShghEnlnKLItjUSgpPOz0k2Gdbcu3QjMhVgYLIndBqXJZZpYeSLd8PPMSESS0QqcsxKdl1KLFG8w271eetS74SvmMjAtIc6/kI7XsL/NcEWYt+1dm8o5lWh6sUBkqI1ZHYY8AmAWp/RBC5YaT+DTEWZDaD/HZkTvoxL9eaMQHFOsjfAhS+yFMoaQ9hDD3QnsA1uij0FViRjEu0Qfi5UZgLBlryB7Gua0FR4CqIsv1YaiLRnQETDhj8/Qg0FkQGwFZuxSzgxiXXmoEAp3NDyLMWGgAUEa1Vr78RMLubSQ3LnvjP7sy2hnJnFJQLlh/8EFikkjWQ3Xd+TQbiZ6nLdyqv/GT/TAgpBZOoX7xDpek/jJ59uq9s4WzL6EfDDe/Opy+NAxCH0bXaN+G8CEli98YbCuyXmPsGE6X3Sdtjg4x8sapA4REW5CW0iO1UGvcPMlLT/d5pP7NZJZRdS4eRdkA4x/WLaPuefZtUOctiDICoQktJfdonwJsHcQJWnplpfdn3MpZgJ3MPFmuSH6GkQ8BtjKSkKKfYOQ8wFZGarqWG55qjrPjR5djyPpz44eZhq8faqVma2elJuyHWqnp2ln5cdAB75G0+Y7y/1ipc/zY73LdGctYtO7JLhcBZS7lybmgLAlP/ETDo4Z2WRYemTB3crAoldM8y5DW4cwVmAlSihJY7DuV5sGJvWcSjx2be2Op6HlZNb/DZA9b4FijHwtc1Mf+ujq7/THN3lVkbrh3haF2xPgRPZQHp81k7iNlxTD//BKhV7NeE3zrkvJLEDBr4m1I2E24vwQFuyG9IUBTQWj3d6e9E1cP8qbSf2o2nvvLftOLztFPMoNO9AyI71TfXdvLktV+f/16eMv/iEomoVwuuMl++xU/IYtS+et2XVFdAZWLztvnTMOLfvm1hvhc1GRBah721V8zXBqDD9SU07ioJ2Nyy2/5WM54kGXx+nTNqslW2C8tmEFKzpjLL3Zv4TR7nTvPTXC/kmsfwrsUhQyNU3EeUvBUjVze3l4PAEN99NY/Ni8mF+3NVUp2nfNuq8iN9Zssu4YYpmHLNW12NWa67eyzyilvw/hoJ/1YL76cVqyMhfQJDz/X1hYmnk7JnQiVu+QEHyizeIIyCC4YQzgt7caDzK6v3tLmkjAhDfHdoi0w5zoNldcV22ULC/mWmL9qCTdzdp1r+X8dsF/CrYNW6atglbeLYOadm8yur6DPXucVf1AofP3UlvxriHphN9Fy00z95wSWMP1j96Yz1MHpyW8np/yIU1LtDCoTw/z1rkMVCVye00Kh9B+Q92dbpfYOQmqhvYjjKSzuryt9fhcRrLky4jvYbpdo6INWZcmP/ejF+YngEbXEJdN3t4VEGv4/qTYPAxd3nQhe3FQfy8tJcxXtul4nNeOMsn/8CyL4jzaDBavvJ+u6bLaVzEwIKmxLe9D+uL52n8H1+/ktlOVXPlKPew== +api: eJzlWEtz2zgM/isenNoZtc529uTTukk6ybbdZmO3l4zHA1NIxC71KB+ZqB799x2QkiXbku2+Tj0lpoAPwAcSBLEGiw8GJndw+YjKoZV5ZmARQV6Q9r+uY5iAsXmxNDItFC1pIwgRFKgxJUuaMdaQYUowgVZkKWOIQGYwgQJtAhFo+uKkphgmVjuKwIiEUoTJGmxZkLelZfYAEdznOkULE3DOo1hpFQu0no6uY6iqBYOaIs8MGcZ5dXbGf2IyQsvCOzqBmROCjLl3anRbC0MEIs8sZZbFsSiUFB52/NmwzrrjW6GZECuDBZG7oFS7LDNLD6Q7Pp57iQhiukenLEzOqqhDizeYlR/uPWvb4PfKZ2RYQJqlko/Usb/Kc0WYdexfm9E7lul4cI/KUBWxOgp7AsA0SPVDCJUbTuJhiPMg1Q/xxZE76sS/XmjABxTJCT4EqX4IUyhpjyHMvFAPQII+Cl0nZhDjCn0gXm4AxpKxhuxxnHkjOASkUZzgzjyIHfBGoDkFZyM5AFVv+lwfx7psRQfAhDM2T48CnQexAZDEpZgdxbjyUgMQ6Gx+FGHKQnsAVdRo5avPJGxvYbt12RtfBqpoYyRzSkG1YP29AoFxLFkP1c1WqWgldjzt4Nb1llf6YUBILZxC/ewdrkj9bfLsxQdnC2efw24wXIybcHalYS/0/eha7XkIH1Ky+J3BdiLbKdRbhtPV9kqXo2OMvHHqCCHRGqSl9EQt1BrLg7zs6H4bqe+ZzCqq7+mTKNvD+Id1q2j7fv0+qIsORBWB0ISW4iXaQ4CdxiBGSy+s9P4MWzkPsKOpJ8sV8a8w8jHA1kZiUvQLjFwE2NpIQ9eq5C7rNDu+lTqFrNelb65avn6qlYatjZWGsJ9qpaFrY+XnQQe8R9LmB7b/p1qd48fdKrfd8xmL1h2schFQ5lLu5AvK4rDiOyxufbTLsrBkQh/MwaJUTnNvRVqHO1dgJkgpimHRdyvNghO9dxK3QeXSWCp2vKyL33Gy90vgUKEfClw0135S393+mmbvajJLrl2hyR4wfkIN5UauHM18pKwY+rHfIvS692yD7zyafgsCpm28LQmbDve3oGDTpLcEaCoIbX916u24diBva/3KP8iF05oyUR4qhyu0Ilka+bW/iznF6GuGGM0YgrtMfFpqsnqolTwF8T0+jW5rDM+K1eUyJoVlL+R+49lDjNXl6MJDnPxwuECL5x0ae8r1AaiZH/K0gIz2gxA/qL4Z11QVq/356tX+dOcTKhmHY3nJl9n3j3ZisiiVH7M0J3dbQOVi6+u3vDoWu8e881jKRUMWpOah75y3Tbwx+EDtsR0W9WSM5vyV25+MHwws3nQxWf2CEPapA7OXknPm8sn27sF2nnfnuQnu13LdZmeTopChYSouQgoO7ZGr+fxmDzDsj52xn82L0WV3YpmSTXKeaRa5sX6CaROYwDhMN8ftjM6M11tzzGrMU1BuoUg/NgNPpxUrYyF9wsPPxNpiMh6rXKBKcmPD5wVrCqelLb3q9Ob6LZVXhDFpmNwtugIz3p1hv22LbXKEhXxLzFo9cp06m+Rafm3C9CPXJGhVPvf3eTf10wfKLI6mN9ewy9nWJz5GKPyuaSz5zxB1gjWT8Rj98kuUY76SUn+IwBKmf22+bLXMcPbyj5dnvMSJqCcytYn9rO08NmsSeFOOC4XSHxvvz7pO6B2EhEJ37Mo97mR3OO2zuoiAM8V66/UKDX3Uqqp42Te2nJ8IHlFLXDF9d2uIpeH/43qus+fipv7As9v6iDwftQ/9bdebpGacUfaPf0EE/1G5N073VSRpts26lpkKQYXtaO8VPd5fm81/82E2h6r6H3U7OpA= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/switch-plans.api.mdx b/docs/docs/reference/api/switch-plans.api.mdx index 01cc02f787..e7f81e4084 100644 --- a/docs/docs/reference/api/switch-plans.api.mdx +++ b/docs/docs/reference/api/switch-plans.api.mdx @@ -5,7 +5,7 @@ description: "Switch Plans User Route" sidebar_label: "Switch Plans User Route" hide_title: true hide_table_of_contents: true -api: eJyVVEtv2zAM/isGTxsgJFmxk0/LHkCDbmjQprsERqHITKxOtlWJ7poF+u8DJcdJmnbATk3FjxT9PbQDkhsP+RI+a2N0s4FCQGvRSdJtMyshB/9bk6rurZGNBwFWOlkjoeOuHTSyRsiBqyBAN5DDY4duCwIcPnbaYQk5uQ4FeFVhLSHfAW0tN3lyfKMA0mT4YM5TQii419u28egZfjGZ8J8SvXLa8mKQw22nFHq/7kx204NBgGobwoYYLq01WsXvGD947tkdVgghBAEfLy7OB/+URpexLfvmXOv+YypYx9yRTnuXSFIb/qUJa38OMK06qcpme72OtJ4yFMRwohvCDToIRRD7M+mc3B7R+L1NC0IQUPvNvxj/gd7LDcIw7G1oJCNbcDWw0raLhOzLs3gQBCh6PhrTrh5Q0dGYL8zlM0E47D9gDo5ZRm7S+j2uOMw4SJQUepuKr0mC1y7bQy4Xi/nZwOSPF46LQcjYpD678+iym7Yjdl2NVLWcFdt6ihmhCnIYr1KmxjE74xQkEODRPe3z0znDSGl1VDn9WxFZn4/H2I2UabtyJDfYkBxJnYAFz1Cd07SNQ6bz2RVuL1GW6CBfFseAWzZnstspbJBIWn2FTFqf5WlHVev0n+ShPtRV6gpR+nV7rPw0LpdN5zN4SdlJiVMkVTTN/qZYBvHisw9fCwKwjhkCQll/GiosOXOYrpmMPowmfMT817I5uuJt0U42Hchgb7JeOqYn7rXr9VxCrycr3L+GvaaFgIqlz5ew262kxztnQuDj9BiySKX2cmXY3GtpPJ4tMDwy8O6mz8H7DMTri/3C7eHVfZKmY0g0xpN0mu+JPhB73XiB1DNVCi0ddZ29aDxlcPT8+nYBIfwFA0UWag== +api: eJyVVMtu2zAQ/BVhTy1ARG7Qk051H0CNtIiROL0YQkHTa4spJTHkKo1r8N+LJWVZjpMCPdnenX14ZpZ7ILn1UCzhozZGN1soBbQWnSTdNrM1FOB/a1LVT2tk40GAlU7WSOi4ag+NrBEK4CwI0A0U8NCh24EAhw+ddriGglyHAryqsJZQ7IF2los8OZ4ogDQZDsy5Swgl13rbNh49wy8nE/5Yo1dOW14MCrjtlELvN53JbnowCFBtQ9gQw6W1Rqv4P/J7zzX74wohhCDg/eXleeMf0uh1LMu+ONe6/+gK1jF3pNPeaySpDX/ThLU/B5hWnWRls7veRFpPGQpiiOiGcIsOQhnEISadk7sRjd/atCAEAbXf/ovx7+i93CIMzV6HRjKyBWcDK227SMghPYuBIEDR06hNu7pHRaM2n5jLJ4Jw3H/AHB2zjNyk9XtceexxlCgp9DoVn5MELw07QL4uFvOzhskfzxwXDyFjk/rszqPLbtqO2HU1UtXyrdjWU7wRqqCAfJVuKo+3k6dDAgEe3ePhfjpnGCmtjiqnnxWRLfLctEqaqvWU0iVXqs5p2sXS6Xx2hbuvKNfooFiWY8AtWzKZ7BQ2CCOtvkKmqr/gaUdV6/Sf5Jz+lKtUFaLgm3as93SLDclsOp/Bc6JOUnw7UkWrHCbFNIjRn/VFnssYvpA6BwFYx8sBQll/GDIsNDOXxkwu3l1MOMSs17IZjXhdqpNNBzLYkaySjjcT99r3Ki6hV5F17d/AXslSAKvDmP1+JT3eORMCh9MTyCKttZcrw5beSOPxbIHhaYE3N73732YgXl7sF+6Ob+2jNB1DojEepdM8J/pAHHTjBVLNVCm0NKo6e8e4y+Dj+fXtAkL4Cx+EEws= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/test-organization-provider.api.mdx b/docs/docs/reference/api/test-organization-provider.api.mdx index 15b9a75a11..9b0005833e 100644 --- a/docs/docs/reference/api/test-organization-provider.api.mdx +++ b/docs/docs/reference/api/test-organization-provider.api.mdx @@ -5,7 +5,7 @@ description: "Test SSO provider connection." sidebar_label: "Test Provider" hide_title: true hide_table_of_contents: true -api: eJztVlFv2zYQ/ivEPTWAZmfBngQMmJGsqNFtMWp3L45hMOLZYiuRKnky4gn678ORkiPFSdbmeU+2yLvj3ffdd2QDJPce0jXcur00+h9J2hoPmwQU+szpir8hhRV6EsvlraicPWiFTmTWGMx4e3Jn7swq116gUZXVhgShJy8oR3E7v7keOe30vnbhGHF/FDukLNdmz7Z3Rmmf2QO6o1A2q0s0JKRR4iALrSSxmcNvtXaoTkd5gQ/a0+TOzHfC11mG3u/qIhGldF9jCqfTpY+hxDvtt+Hfr+RqvIjOO6kLVL2j9EKbaM0pKJQZ6YMk9APvnSw8JkL7bdjFuHAxgQRshbHKuYIUGI+tHUC87ZOCBCrpZImEjolowMgSIYXeYKsVJKCZhEpSDgn0GEDK2SfgsxxLCWkDdKzY1ZPTZg8JkKaCFxY9AnMFbbvhEL6yxqNnr6vLS/4ZE748QSk+dcaQQGYNoSE2l1VV6CwUM/3i2acZZFI5BoB0PEGr57LbWVdKghTqOtTYZ8tJJuCLev9aTUveb5MOrgakOd7uAoBjjzY5rZi6KIDL72P8xb7tk15/W6ibQYg2gV0RdNWAVErzoiwWA0gicV0se/8FMxqU9j44MwZI3PVvDrTs/dsEMoeSUG0lvcqFkoQ/kS5xEOY6uooZcaC6UoNAL2H1bMjXAPwcw3aHjLTyY+0znGSx4c8BepTQGoJz6Laumcb90HM5YGME5giQ88Q3zyfWK3KgrbH++g1RWoWF2FknpBlN4Am0Ldf2y9XVuXz/7kamNeJ356x7u3YVktRFUDFh6c8NCpuNdr9DPdoQ7tFBu3nkRjonjwMa/7AxQe6G0r86Cv5E7+U+KDmavGwawBAr3m15qlZ1lEM/esICq4UeBmHOhHXNWD7Qf/YWYxPT7+wG7fBIUWToZShuIgXPHdabfFitFmcBY3+USLnlS6iynsJ1QzmkMB12qp/2XeWnzeDmaad8c4Xed4f+gqpdwf6y0oHT+JkTVT6dTrGeZIWt1UTu0ZCcSB0NNxwjq52mYwgyW8w/4vEDSr4D0/VmaLDkVozNNTY7ESIr/RGPvWBTmNWUW9cV01+XefRqA9E7O+R5FpITs8X8THijLdaMzEKL9CeFbVb9qOzHaiEBLINigFCWv512mGDGMB5zOfl5cslLzEopzeCI8NZaPL4PntxOJx3//yj70UdZ1z0s3WlVSB2GSyCy6WSxHg1wHvUnYUAC6fhRFrSxSSBnYaVraJp76fGzK9qWl7/V6LjZNwkcpNPynltv3YDSnv8rSGOqLxP87lOH7IV4KfteEIbVcJBFzV+QwFc8PnlEhmGb94JrOotZlmFFA9+zu4GVeZohi9vlCtr2X0tuP1I= +api: eJztVk1v4zYQ/SvEnDaAaqVBTwIK1EharLFtY6y9vSSGwYhji7sSqSVHxrqC/nsxpORIcZJ2c+7JFueDwzfvDdkCyb2H7A5u3V4a/bckbY2HTQIKfe50zd+QwRo9idXqVtTOHrRCJ3JrDOZsnt2be7MutBdoVG21IUHoyQsqUNwubq4nQTu9b1zYRjwcxQ4pL7TZs++9Udrn9oDuKJTNmwoNCWmUOMhSK0ns5vBrox2q01Ze4DftaXZvFjvhmzxH73dNmYhKui+xhNPu0sdU4p322/DvZ3INXsTgndQlqiFQeqFN9OYSFMqc9EES+lH0TpYeE6H9NlgxLlzMIAFbYzzlQkEGjMfWjiDeDkVBArV0skJCx41owcgKIYPBYasVJKC5CbWkAhIYMICMq0/A5wVWErIW6FhzqCenzR4SIE0lLywHBBYKum7DKXxtjUfPUVeXl/wzbfjqBKX42DtDArk1hIbYXdZ1qfNwmPSz55h2VEntGADScQetnqtuZ10lCTJomnDGoVouMgFfNvvXzrRie5f0cLUgzfF2FwCcRnTJacU0ZQl8/CHHnxzbPeH621LdjFJ0CezKoKsWpFKaF2W5HEESG9fnsg+fMafR0X4LwYwBErP+zYlWQ3yXQO5QEqqtpFd7oSThD6QrHKW5jqFiTpyoqdUo0UtYPZvyNQA/xbT9JhOtfB99xpMsEv4coEcJ3UEIDmzryTTlw9DLUTcmYE4AOS9883xhgyJH2prqbzCIyiosxc46Ic1kAs+g6/hsP11dncv3r35kWiN+dc66t2tXIUldBhUTVv7cobT5xPof1KMN4R4ddJvH3kjn5HHUxt9tLJDZUPlXR8Ef6L3cByVHl5ddAxhizdaOp2rdRDkMoycssFro2yjNmbCuGctv9K/cYmxi+b3fiA6PLYodehmKm9iC5zYbXN6v18uzhJEfFVJh+RKqradw3VABGaRjpvp0YJVP29HN06V8cwXuu8NwQTWu5HhZ69DT+FkQ1VmaljaXZWE9RfOGI/PGaTqG0Ply8QGP71HyzZfdbcYOKyZgpNTU7dQGWesPeBxkmsG8ocK6/gjDJVnEqC60d2fH3Z3v0ZAU8+XiTG4TEytF5oEYw07BzFo/HdZnaSrD8kzqFBLAKugECGX1y8nCbWXk4jaXsx9nl7zEvaikGW0RXljLx1fBkzvppN7/n2Lf+xTr2cOCTetS6jBSQiPbXgx3k7HNA/4kB0ggmz7FgiI2CTDLObRtH6THT67sOl7+2qBjsm8SOEin5QNT764FpT3/V5DFUl9u8LuPPbIX4qXqB0EYVsNBlg1/QQJf8Pjk6RhGbDEIru095nmONY1iz24EVuZpcixvV2voun8AO4Y78w== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/test-webhook-subscription.api.mdx b/docs/docs/reference/api/test-webhook-subscription.api.mdx index 27a376816f..adf77d7721 100644 --- a/docs/docs/reference/api/test-webhook-subscription.api.mdx +++ b/docs/docs/reference/api/test-webhook-subscription.api.mdx @@ -5,7 +5,7 @@ description: "Test Subscription" sidebar_label: "Test Subscription" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/transfer-organization-ownership.api.mdx b/docs/docs/reference/api/transfer-organization-ownership.api.mdx index d5ed0cda86..cdcd41e770 100644 --- a/docs/docs/reference/api/transfer-organization-ownership.api.mdx +++ b/docs/docs/reference/api/transfer-organization-ownership.api.mdx @@ -5,7 +5,7 @@ description: "Transfer organization ownership to another member." sidebar_label: "Transfer Organization Ownership" hide_title: true hide_table_of_contents: true -api: eJy9VcFu2zAM/RWDpw0QkqzYyacF24AG3ZaizXYJjIKxmVidbamS3DYz9O8DZTuxm7bAhmGnWCL1SD7yMQ043FmI17A0O6zkL3RSVRYSARnZ1EjNZ4hhZbCyWzKRGvhF6qEiY3OpI6cirJTLyUQllRsyExCgNJnguMggBtdB3Awhbg4QIECjwZIcGc6ogQpLghhG7jIDAZIz0uhyEGDorpaGMoidqUmATXMqEeIG3F7zc+uMrHYgwElX8MWw0miRgffiEKuihzajfxHoGz1ESwZroySMYbWqLFl+djab8c+Y5+s6TcnabV1EV50zCEhV5ahy7I5aFzINyU9vLb9pjql4772A92dnp8A/sJBZW/NnY5T5A1TQhjvpZJt3Rg5lwV/SUWlPHQqVjqxY7Zfb0NExU8x7dyMrRzsy4BMv+js0BvcDOr+oNkHwAkq7e435r2Qt7ggOYC+7BjKiFVs9N1zXgZDevAgXXkDqHgcwanNLqRvAfGQuHx0P04nPcXLWgZs2/c4vOWIcW9R26GUqPrUteC5Y73K+Wl2eALbzUZLLFStSK+uC7FwOMUyHQrPT5onu/LQX8LQZysSDAEvmvldtbQoGQy1Dg9tj7py28XRK9SQtVJ1NcEeVwwnK1jFhjLQ20u0DyPxycUH7c8KMDMTrZOhwzXPZTtrY7dAd1PKCmK9O1fPa5cp0pfSyzttXPnR9q4ZNn4fkovnlAp7uwZGJBYRpmJc+UjCDeFL2sVoQQGWQDzjC8sPBwt1mDtsws8m7yYyvuEUlVoMQh0082mPLwRodZdwcZf53S7zjlKd7qguUQX+hvKabnPVoRVsQEJ/u7H542DrasomAnOcwXkPTbNDSd1N4z9d3NRkeh0TAPRqJG27OuoFMWv7OIN5iYemVgt9cddJ7G71UST8yFc/LPRY1n0DAT9o/89/DE/0fw4+ICrsx7yXRdC7zNCXtBo9PVjlr5yD5y+X1Crz/Dapav6Q= +api: eJy9VU1v00AQ/SvWnEBa1aHi5BMRIDUqkKgNXKKomtiTeIvt3e6u2wZr/zuatZ3YTVsJhDjFO9/zZt6kAYc7C8kK5maHlfyFTqrKwlpARjY1UvMbElgarOyWTKQGdpF6qMjYXOrIqQgr5XIyUUnlhswZCFCaTDCcZZCA60LcDEPcHEKAAI0GS3JkuKIGKiwJEhiZywwESK5Io8tBgKG7WhrKIHGmJgE2zalESBpwe83u1hlZ7UCAk65gwbDTaJaB9+KQq6KHtqJ/kegbPURzDtZmWXMMq1VlybLb+WTCP2Ocr+s0JWu3dRFddcYgIFWVo8qxOWpdyDQUH99a9mmOpXjvvYD35+engX9gIbO258/GKPMHUUEbnqSTbd0ZOZQFf0lHpT01KFQ60mK1n2/DRMdIMe6dRFaOdmTAr73oZWgM7gdwflFtgeAFlHb3GvJfyVrcERyCvWwawIiWrPU8cF0HQHr1LAi8gNQ9DsKozS2lbhDmI2P56HiZTmyOm7MK2LTld3brY4zjiNoJvQzFp3YEzyXrTS6Wy8VJwHY/SnK5YkZqZV2gncshgXhINBs3T3jn457AcTOkiQcBlsx9z9raFBwMtQwDbp+5czqJ40KlWOTKula9Zs+0NtLtg+t0Mbuk/QVhRgaS1XpocM3b2O7X2OwwE9TykhiljsvT2uXKdA30ZM5bLx9mvVXDUU93VDmMposZPL1+IxXTBtOwJX2moAYxaNYmcYxBfIYyBgFUBtKAIyw/HDQ8Y0auTTM5e3c2YREPpsRqkOJwf0fXaz44nqOKmyO5/+50d5jyTse6QBlYF9prun1ZjQ6zBQHJ6aXuV4a1o9u6FsB7wGGaZoOWvpvCexbf1WR4HdYC7tFI3PBwVg1k0vJ3BskWC0uvNPzmqiPc2+ilTvqVqXhf7rGo+QUCftL+mX8c3uP/mH4EVLiIeU+JpjOZpilpN3A+OeDMnQPRF/PrJXj/G1ttvEU= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/transfer-ownership-admin-simple-accounts-transfer-ownership-post.api.mdx b/docs/docs/reference/api/transfer-ownership-admin-simple-accounts-transfer-ownership-post.api.mdx index fd9c0ff027..37f2b20b1b 100644 --- a/docs/docs/reference/api/transfer-ownership-admin-simple-accounts-transfer-ownership-post.api.mdx +++ b/docs/docs/reference/api/transfer-ownership-admin-simple-accounts-transfer-ownership-post.api.mdx @@ -5,7 +5,7 @@ description: "Transfer organization ownership" sidebar_label: "Transfer organization ownership" hide_title: true hide_table_of_contents: true -api: eJztmMFuIjkQQH/FqnMHstGcOC07E2mi2VVQwuweGIQKdwGeuO0e252ERS3tR8wX7pesyt0N3UBIhsOeJpeAXS6Xq15V2Wwg4NLDYALDNFMGpgnYnBwGZc1NCgMIDo1fkJvZJ0POr1Q+Q5aceZXlmmYopS1M8LMjgrn1ARJw9K0gH36z6RoGG5DWBDKBP2KeayXjZv2v3hoe83JFGfKn3LEpQZHnb9Yt0ai/o3AcQLO+XcBgsgFMU8XDqEedJV0FjhbdZWGdEwzAB6fMEspkO2IKraGcJhBU0DxwRwsoE1DpuQpuUl7vdbE8V8M9ry0ToAyVPlfJdVxclkkjYedfSXKMthImqLDm8yaQkpdO5exZGMDI6nVmXb5SUjhakCMjSYQVBiHRiNwqE0SwAkUd7wttJWrxQOtEoPli6Fn5oMxS5OS88oFScfMhESh8wLkmwd5JhHUCjYinFJimjrzvfTHXzyiDXgtrSCwU6VRkhQ9iTsJT6MHBgU454bYDUplA4clVRP3k6CdHLxzoc4SEg2ekLlKaPVn34HOU5E95MeFy5wMMANmHyQZUoCwu2Xd3M4DO4bob9WpL8dduS/bqAgu907w1LHeWbf//zBo1Gx4xyhHWdf28fImrox5pH8mtj2qaW6sJzSuqagXHqGXSlKOU+2BVDVorY2O8j91uWDe7TgkZ143vtul7UJZlW2dwBcUBn1vjK16uLi/5315qoAsKtWhaqfj3n+/C24yEdUsvpC10KoyNvDYyjtJeFc5zmmpLC399IwQ734xb61vRn0y5wjhn3R6F2w26Zkib0uG2u23e83yZQEbe4/Kk6B+1SMnmBFT6TXcFDtGP9JAPterXYIoH29l9QFVwhQyFo/SanXWYbadqcOXeU0X4h8m9qxFlgssEri7fHUJ6X0hJ3i8KLXbiCby7ujqU/RO1SuNeojrg2aBWseww2hXQVnZm31BulAm0JAfl9GXAf7eVgZE+v3wjeZXIy6LRGWLMs7Fw50V0yK6w8kCZgAzPLTUH8X3PvnwOr1LIvqnMr+VaGO1CdBzBfeZPAvdxPB4dKKxY6oLRkCfat3qxfTnElAkryw+Q+hGRY1jBAPrx8dGvHh/95vHRb+rYRVuFJ/cYb3aTDRROx9W5igRUX1ch5H7Q71PRk9oWaQ+XZAL2UFWCU9YhC6fCOioZjm4+0fojYUouFrmWwD2DW6HYFduGD3P1idihBrOYnUVYWVefHRgDNqlaxR7jlLjbPZ2un5HPfOwp1LrDvnBBie342BWhnmja9A7VXcOt25cyC9uGdBh9JYajm4MrXmeKEx5l5Ls5eJyGZC8KO+fD9noKgTD7dTvDdHJIq20ue7/0LnmIEcnQtLZ4na+OxdsYcTr1c40qJny0b1OjN4GIHnMV4YMEGvw4Aw4BnCawYnYHE9hs5ujps9NlycPfiujYyTSBR3SKb611z1w1bG3ggdZNiptwEWsFi+uiYmmvdDLU1YqhlJSHk7LTVnqNbu/HkMC8fpxnsRODwydmAJ9gAMA/CWxf3XFsAxrNsoitGCqd/PcfrfOncA== +api: eJztmMFuGzcQQH+FmPNaco2cdKqaGIiRFhZspT04gjDijiTGXHJDcm1vhQX6EfnCfkkx3F1p15JlR4ee4oslcmY4nHmcIbWBgCsPozsYp5kyMEvA5uQwKGuuUhhBcGj8ktzcPhpyfq3yObLk3Kss1zRHKW1hgp8fEMytD5CAo28F+fCbTUsYbUBaE8gE/oh5rpWMiw2/emt4zMs1ZcifcseuBEWev1m3QqP+jsJxAE15vYTR3QYwTRUPo570VPoGHC37aqHMCUbgg1NmBVWyHTGF1lDNEggqaB64oSVUCaj0VANXKet7XaxOtXDLulUClKHSpxq5jMpVlbQSdvGVJOdoK2GCCiXvN4GUvHQq58jCCCZWl5l1+VpJ4WhJjowkEdYYhEQjcqtMEMEKFE2+z7SVqMU9lYlA88XQk/JBmZXIyXnlA6Xi6kMiUPiAC02Co5MI6wQaEXcpME0deT/4Yi6fUAZdCmtILBXpVGSFD2JBwlMYwN6GjgXhugdSlUDhydVE/eToJ0cvbOhzhISTZ6QuUpo/Wnfvc5Tkj0Ux4XLnA4wAOYbJBlSgLKo8D3c7gM5h2c96vaT4a7ckR3WJhd5Z3jqWO8u+/39uTdoFDzjlCJu6ftp5idrRjrQP5MqDlhbWakLziqnGwCFqmTTlKOU+WFeDjmZsjLex242bZtcrIdOm8V23fQ+qquraDK6gOOBza3zNy8X5Of97djTQBYVatK1U/PvPd+FtRsK6lRfSFjoVxkZeWxlH6aBO5ylNtWOFv74Rgl1sph39TvbvZlxhnLPuGYXbBfpuSJvS/rK7Zd7zfJVARt7j6qjoH41Ixe4EVPpNdwVO0Y/0kA+N6ddgihvb+b1HVXCFDIWj9JKDtX/ajtXgOrzHivAPk3vTIMoEVwlcnL/bh/S2kJK8XxZa7MQTeHdxsS/7J2qVxrVEvcGTQa1z2WO0L6Ct7M2+odwoE2hFDqrZy4D/bmsHI31+9UbyapGXRWMwxJRnY+HOixiQXWHlgSoBGZ46Zvby+55j+RRepZBjU7vfyHUw2qXoMILPmT8K3MfpdLJnsGapD0ZLnuje6sX25RCPTFhbfoA0j4gcwxpGMIyPj2H9+Bi2j49hW8fOuiY8uYd4s7vbQOF01M5VJKD+ug4hHw2H8X6xtj7U0zPWlIVToYyq48nVJyo/EqbkYmnrCNwyrjWAfbFt0jBXn4jDaDCLZ7IIa+uaHQMnnx2ptThOfBBudg+myyfknR56AHVuri9cS2ITPnQxaCba5rwDdNdmm6alzNJ20RyvyAQU48nV3sWuN8XHHGWkut14nIakE3s/Gg4xDg9QDWF7KYVAmP26nWEmOZH1MueDXwbnPMRgZGg6S7xOVc/jbY74EA1zjSoe8+jfpgHuDiJwTFNEDhJooWPu97GbJcAoseZms0BPn52uKh7+VsTA3s0SeECn+K7adMp1y9YG7qlsD7YJZ7FCsLguapaeFUxGudYYS0l5OCo76xyqyfXtFBJYNE/yLPZfcPjIDOAjjAD4h4DtWzuObUCjWRWxAUNtk//+A1kNpBE= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-application.api.mdx b/docs/docs/reference/api/unarchive-application.api.mdx index cc5ca7fa3d..33b5c254ea 100644 --- a/docs/docs/reference/api/unarchive-application.api.mdx +++ b/docs/docs/reference/api/unarchive-application.api.mdx @@ -5,7 +5,7 @@ description: "Restore a previously archived application." sidebar_label: "Unarchive Application" hide_title: true hide_table_of_contents: true -api: eJzdWE1v20YQ/SuLOSUALTlBTwoKVHUSxE3bGLHSiy1YI3IkbrLaZfZDiSLwvxezJCVSlD9iuJeebJIzb2bfvNmd1RY8Lh2MrmBcFEqm6KXRDqYJZORSKwt+hhF8JOeNJYGisLSWJji1EWjTXK4pE7j3HVzra32mCK0Ts4wUecpu0M8E6kys8As54XNqe4i1dHKuSHgjnEedoc2u9ddAVpITuESpB+ISF9EgRaWE0QK1QGUJs80Jpl6uO4ivhPRCOoHXWpsTUwiphc/RixQdDSABU5CNlucZjCDoeiE3LQxIoECLK/JkmZ8taFwRjKBlcyMzSEAyPwX6HBKw9DVISxmMvA2UgEtzWiGMtuA3BXs7b6VeQgILY1foOXqIKF56xQatMojzDMpyyqiuMNqRY6CXp6f8p1uey5Cm5NwiKPGxNoYEUqM9ac/mrayHnx37bFvJFZYZ8bKKkJpQOdU5S+1pSbaV5Fm0ONTI7MVMfMtJ9wr8DZ1YmKCzRMxOZ8L4nOw3WZUiowUG5WF0WibtLGPSevNhEbnvJrgwKiPL7HeM7qa4THYWOigFTGyznrcRMPKdwELFjrg9vHQ3B4nWuHNjFKFuEXXuxLijqd1yF6gclQmD0RpVQG/sfVBvdobHgZyWRUH+PpjL2qwHUiaNn5l/ptQfl+XYernA1L+NPB2KoK3fyKQ4EV3Cfp3YQK8qFYg6QSeCI9aNtEJz2ZSoc3MiaEXOCfrOCNKrjXDkB0fqyen3SodZJjkqqotOEXuyaahq4dZK4jfHYSCVNg0K7bM/cU7qD2f0yYfgi+CfwyGXbb0dWkOP+bvUOuFFlgmsyOMjF9ta2UGTdwKv5t03bY7uY+RtUPcQkmxBelo90Autxc3dXdz1/TlS/2Iyy6Te5R9EWQ/jb/YtDzricVCvWxBlAqklrA7SB255GXo68TLmc3uUswpWjCNZocj+iyCfKtg6yH4keNIgryvYOkhD13zzhIdEQ9bvm/qgaPh60igNW7soDWFPGqWhaxfFqbB8rFYv2ZdPoCdLLw4+DzqMjsJ0T6TJwTSC9fmVCGPFjJ1mQi6ENr4aUgYPjd2atA6mMamXik7aQZsRTpBekzIFcRSO88vLl/1x7h9UMqsc31gbz/tHznIZeZQqTi3VVntooEza+fozR8W0PNidWyec2dUHVm55bALe77zO4ZL22/XtppEMMeGvrDfNuzybN7LR9baf+u8tmF4Nz5jL7/5onfcT/FXkpkq/tmtJdF+iqkK3U/G6KsFdono3mVz0ACt9rMjnhm8phXE+Xkp8DiMYtkTghtvupaQc7q40kIAju27uMMGqylnGglaPufeFGw2HFAapMiEb4JK0xwHKynDKGGmw0m8iyPji/D1t3hFmZGF0NW0bXLIOK2V1zXbVwEK+J+anvk+Ng8+NlT+aCTlep/LKq4xVXph2kccxOTG+OO/Pnu1P3DCYRn00keJnSA6WvV8tJECr2C7gCVe/7b5wdZnDKszp4MXglF9xSVaoWyE+Nbz3xv7ORLBr5v/ZvbouMTfXsFAoY/tHtre1cK/auxffHka9+/Reu9MEclb96Aq22zk6+mRVWfJrXgWLcZrAGq3EOUvjaguZdPx/Vt9o7iD+2ce60Z+L2xJvBKtZrXz14idI4Att+r8DxM0wb3piWxuN05QK33Lv7d3cPLsev/hwOYGy/BcVrRN2 +api: eJzdV91v2zYQ/1eIe2oBxU6LPbkYMC9t0azbGjTuXhIjPktniy1NqiTl1jX0vw9HSTZlOR8Nspc9JRbvi7/73fFuCx6XDkZXMC4KJVP00mgH0wQycqmVBf+GEXwk540lgaKwtJamdGoj0Ka5XFMmcK87uNbX+kwRWidmGSnylN2gnwnUmVjhF3LC5xRriLV0cq5IeCOcR52hza7115KsJCdwiVIPxCUugkCKSgmjBWqByhJmmxNMvVx3LL4S0gvpBF5rbU5MIaQWPkcvUnQ0gARMQTZInmcwglI3F7mJbEACBVpckSfL+GxB44pgBJHMjcwgAcn4FOhzSMDS11JaymDkbUkJuDSnFcJoC35TsLbzVuolJLAwdoWevZfBipdesUCUBnGeQVVN2aorjHbk2NDL01P+003PZZmm5NyiVOJjIwwJpEZ70p7Fo6iHnx3rbKPgCsuIeFl7SE1ZKzUxS+1pSTYK8ixIHHJk9mImvuWkewn+hk4sTKmzRMxOZ8L4nOw3WaciowWWysPotEriKEPQevNhEbDvBrgwKiPL6HeE7oa4SnYSulQKGNj2Pm+DwYB3AgsVKuJ299LdHATa2J0bowh1BNS5E+MOp3bXXaByVCVsjNaoSvTG3mfqzU7wuCGnZVGQv8/MZSPWM1IlrZ6Zf6bUH6fl2Hq5wNS/DTgdkiDmb0BSnIguYL9ObEmvahaIJkAnSkfMG2mF5rQp0cTmRKkVOSfoO1uQXm2EIz84kk8Ov5c6zDLJXlFddJLYo00LVWS3YRJ/OW4GUmnTUqF99ifOSf3hjD75UPqi9M/hEMuYb4fS0EP+LrZO+JJVAivy+MjLRjc7KPKO49W8+yXG6D5E3pbqHkCSLUhPqwdqobW4ubuKu7o/B+pfDGaVNF3+QZD1bPzNutVBRTzO1OvIRJVAagnrh/SBLS9DTydehnhu93JWmxXjAFZZZP+Fk0+12cbJfiR4Uieva7ONkxau+eYJH4kWrN83zUPR4vWkXlq0dl5awJ7USwvXzotT5fKxXL1kXX6Bniy8MPg86DE6aqb7Ik0OphFs3q9EGCtmrDQTciG08fWQMnio72jSOpjGpF4qOomdtiOcIL0mZQpiL+znl5cv++PcP6hkViu+sTa894+c5TLyKFWYWupWeyigTNo5/ZmnYloddOfohTO7/MDKLY9NwPvO6xwuad+ubxcNYIgJnzLfNHd5Fm9po5u2n/rvkZleDs8Yy+/+aJ73E/xVwKYOv5GLKLpPUZ2h26F4XafgLlK9m0wuegZrfqzI54a3lMI4H5YSn8MIhhEJ3HDbXUqq4W6lgQQc2XW7w5RW1coyJLT+mXtfjIZDZVJUuXG+Pp6yZlpa6TdBdXxx/p427wgzsjC6msYCl8y+mk9dsV0OsJDviVFptqhx6XNj5Y92Lg5LVF5rVSG3CxOndrwk7VGML877E2d8xGWCaWBF6ykcQxJd1o2GQwyfByiHkACtQpGAJ1z9tjvhnDJytZvTwYvBKX/iRKxQRy4+tWj3hv3OHLAr4f/ZNt2kmEtqWCiUoegD2tuGrldxz+KdYdTboveMnSbALGSt7XaOjj5ZVVX8mW/BZJwmsEYrcc7UuNpCJh3/nzV7zB3AP/vYlPdzcVvgLWE1s5UXLv4FCXyhTX/7Dy0wb2ti2wiN05QKH6n3OjYXz66yLz5cTqCq/gWepxAX sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-environment.api.mdx b/docs/docs/reference/api/unarchive-environment.api.mdx index daa1af0810..543893eec8 100644 --- a/docs/docs/reference/api/unarchive-environment.api.mdx +++ b/docs/docs/reference/api/unarchive-environment.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive Environment" sidebar_label: "Unarchive Environment" hide_title: true hide_table_of_contents: true -api: eJy1V0tv20YQ/ivCnBJgYzlGTzxV9SNR09ZGLPciCMaIO5I2XT6yDyMqwf8ezJKUlqLlOIZzksid5/fNzgwrcLi2kMzhMn9Qpsgzyp2FhYCiJINOFflUQgI+R5Nu1APd014OBJRoMCNHhm1UkGNGkEAkc68kCFA5JFCi24AAQ1+9MiQhccaTAJtuKENIKnDbkrWtMypfg4BVYTJ07N0HK045zQJRqKOphLpesFVbFrkly4bOTk/5R5JNjSo5CUjg1qcpWbvyevS5FQYBaZE7TiWpAMtSqzTkPP5iWaeKgisNI+JU4yEtfKPUxqxyR2syUZDnQUKApBV67SA5rUUMTPCYb69XAbi+9VWhJRmGrif0ND612EnkXmtgVLpgroLBAJaAlQ6UH3ev7P3ao5EkowyXRaEJ8yjDqR19aMWiNFeoLdW16PSK5RdK3ePsXYVIhoGz9iBGlFIxN6hvetEO8Okijey2kPGbx81AqkzqNZo3f+GS9J+2yN9de1d69xYOU4mBPZSGQeJP0TJr0oeMHL4w2Sizg1LsOc6W/TcxRj9C5MrrHwAiKlCOsmdqoTG4fbpc+7o/B+rfDGYt2l70LMgGNv5h3Vr0O8jLTF1EJmoBqSF0JO/RPfNuS3T0zqkQz3Ev543Z0SSA5Uv5K5zcNWZbJ5I0/QInF43Z1kkH13L7it2wA+uPbdsRO7xe1UuH1s5LB9ireung2nmx2q9fWqu3rFsLeL3wwnh+1ix4bAw8T3M3zeuaNX47OxsO/39RKxlG++jSmMK8fPJLcqh0GJNNyzsU0EXaO/2Zlr2oD7pkNGmKJsAwL+z6sX1p3wGtxTXt2+Zx0QDGaManzHvO3ZbFO/rytv2m7ltkZsDGOWP5zT3K9X7fmwdsmvBbuahU9hQ1DB2H4qKh4Kny+Dib3QwMNvXRL4y7brEdXfYW24zcpuDNtyxss+i6DSQwjjY4O676i2493q3JIMCSeej2Ym80K2OpAu3N48a50ibjMfmTVBdenuCacocnqBrBBdtIvVFuG4xMbqafaPuRUJKBZL6IBW65Wpv664vtOMNSfSJGsd3RJ95tCqP+b4qqXdE3jVYdamFVxKUwCcGNJjdTOMSwd8TXCtNQRZ2ncAziIO19tiCAsnCpwBFmv+9OuAYYw8bN6cn7k1N+xZRkmEcujrF4ML9bKLhUx6VGFS5TiKpqCZ7HK7oFAcngW2bP8ULAhqsjmUNVLdHSndF1za+/ejJM2kLAAxqFS4ZwXoFUlv/Ldk0eBLjrSfDmc3tt3o72m1M/8I7YnFl9QO35CQT8R9vhN1hoLZuudqpWaJKmVLpIfdAJuch2d+Hm+nYGdf0dA4Xceg== +api: eJy1V0tv20YQ/ivCnBJgYzlGTzxV9SNx09ZGLPdiCMaIHEmbLrnMPoSoBP97MEtSWoqyoxjOSdLuPL9vdmZUgcOlheQBLou1NLrIqXAWZgJ0SQad1MV1Bgn4Ak26kmt6pJ0cCCjRYE6ODNuooMCcIIFI5lFmIEAWkECJbgUCDH310lAGiTOeBNh0RTlCUoHblKxtnZHFEgQstMnRsXcfrDjpFAtEoY6uM6jrGVu1pS4sWTZ0dnrKHxnZ1MiSk4AE7nyakrULr0afW2EQkOrCcSpJBViWSqYh5/EXyzpVFFxpGBEnGw+p9o1SG7MsHC3JREGeBwkBGS3QKwfJaS1iYILHYnOzCMD1rS+0ysgwdD2h5/GpxVai8EoBo9IFcxUMBrAELFSg/Gn30j4uPZqMsijDudaKsIgyvLajD61YlOYClaW6Fp2enn+h1B1m7ypEMgyctQcxYpZJ5gbVbS/aAT5dpJHdFjI+OWwGUmlSr9C8+QvnpP60unh3413p3VvYTyUGdl8aBok/R8u0SR9ycvjCZKPM9kqx5zif909ijH6EyJVXPwBEVCAd5UdqoTG4eb5c+7o/B+rfDGYt2l50FGQDG/+wbi36HeRlpi4iE7WA1BA6yh7RHfm2M3T0zskQz9Nezhuzo0kAy5fZr3By35htnWSk6Bc4uWjMtk46uOabV+yGHVh/bNqO2OH1ql46tLZeOsBe1UsH19aLVX750lq9Y91awOuFF8bzUbPg0Bg4TnM7zeuaNX47OxsO/39RySyM9tGlMdq8fPJn5FCqMCablrcvoHTau/2Zlj2r97pkNGl0E2CYF3Z5aF/adUBrcUm7tvm0aABjNOVb5r3gbsviHX1F235T9y0yM2DjnLH85g5yvdv3HgI2TfitXFQqO4oahp6G4qKh4Lny+Did3g4MNvXRL4z7brEdXfYW25zcSvPmW2rbLLpuBQmMow3Ojqv+oluPt2syCLBk1t1e7I1iZSxloL35uXKuTMZjpVNUK21dcz1jzdQb6TZBdXJ7/Yk2HwkzMpA8zGKBO67Rpur6YlumsJSfiLFrN/OJdytt5P9NKbWL+arRqkMFLHRcAJMlFQ5Hk9tr2Eeud8WPCdNQO52ncA0iStYm4zGG4xOUYxBAeXhK4Ajz37c3zDwj17g5PXl/cspHTESOReTiKe72pnYLBRfouFQowxMKUVUtrQ/xYm5BQDL4B7NjdiaA2WKtqpqjpXuj6pqPv3oyTNpMwBqNxDlD+FBBJi1/z9rleBDgthPBm8/tY3k72u1L/cA7YgtmdY3K8y8Q8B9thv+8QkNZdbVTtUKTNKXSReqD/sdFtn0Btzd3U6jr73o92Rs= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-evaluator.api.mdx b/docs/docs/reference/api/unarchive-evaluator.api.mdx index 99e6778d14..099a367055 100644 --- a/docs/docs/reference/api/unarchive-evaluator.api.mdx +++ b/docs/docs/reference/api/unarchive-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Restore a soft-deleted evaluator artifact." sidebar_label: "Unarchive Evaluator" hide_title: true hide_table_of_contents: true -api: eJzFV0tzGzcM/iscnJIZWlI8PelU1Y+Jm7b2xHIvssamdiEtUy65IblOFM3+9w64D3El+RGPOz3ZWgIfgA8gCGzAi5WD8QzOHoQqhTfWwZxDii6xsvDSaBjDZ3TeWGSCObP0Rykq9JgybFWYsF4uReIHt/pWnygU1rH7RuxO+HtmNPMZRhrOMOmZxSNRFEFcanY//FqiXd/faouuMNqhGwAHU6AV5MlFCmMotbBJJh/wrgMDDoWwIkePlmLZgBY5whg6iTuZAgdJsRTCZ8DB4tdSWkxh7G2JHFySYS5gvAG/LkjXeSv1Cjgsjc2FJ8tlQPHSKxLoCGMXKVTVnDAbrwnmeDSiP30ir8skQeeWpWKfG2HgkBjtUXsSF0WhZBKiHX5xpLOJXCssceFlbSExZa3UeCy1xxXayMWTILGbzQ/sW4aaCR2lQzpm0ZdWY8rZiBmfof0mHQ6C9lKUysN4VPEtpcFbvb5cBsL7ni2NSjGQ3hN6mtmKdxK6VAqI0TaQ8wAYiOawVKFkHzcv3V3EY8TQwhiFQkcMXTg2iUSjYJdCOaw4gfVifgrqLKrIQ0BOy6JA/xzMdSO2B1LxVs8svmDiD1XjpLmK54GlfVIJY48/kaaSCBDqqsfkXu5afyPcJp305TAMJNImpRL23R9igep3Z/TRZemL0r+H3YDipO9Kw174T5XMtA4fcvTilcFGke1csZ7hfNH/EnP0HCPnpXqGEL4B6TF/oZawVqyfvkp93Z8j9U8is+JNf30RZXsYf5FutdOUXgd1GkFUHBKLon5wXth3UuHxyMvgz+NWTmpYNglklUX6Xxi5qWEbI9un802NnDYPd22kpWuxfsNO3ZL127rp1i1fb2qlZauz0hL2plZaujorTpWr19bqNenSM/Bm7oWx4wUvwkGQ/kgw7c1m7TTHmbGMNOqBQRuNLBc+yTAdvMx0NOT0DZ7pB1SmQLYke8xJvVKxC+0oRXbI0i/Hx/vT1N9CyTQ83OzM2vDqvnKUStELqcLsUPfaXQFlkt7pz7wV82qnPUdPnGkGD3qo3OrQ+Lltvc6JFW779eOigQw2pVMqOE1tnsTbutFN30/89whmL4snxOV3fzDT2/F5Frip3W/kohrdpqjO0ONUnNYpeKqsPk6nV3uAdX3k6DND60FhnA/7gM9gDMOuotxwE28D1bDbI4CDQ/vQrg6lVaQoChmSWf/MvC/ceDjEcpAoU6YDsULtxUDIWnBOGElppV8HkMnVxSdcf0SRooXxbB4LXFMN1lXVF+syIQr5CYmbZo2ZlD4zVv5oZ9Swx2S1VhUyvDRxgifBOTa5uti7d70juiwiCbXRWgrHwHfC3kYLHDAPVwU8ivzX7oQySxzWZkaDD4MRfaJ05EJHJm5a3nem5d4w0F3j/3n1bBJC12BYKCHDRQ3cbJoSm203Igccxjsr57bK5hwyqs3xDDabhXB4Y1VV0edgmaqEw4OwUiwoibMNpNLR/2kz/T9B0rvPzXV8zx5zui0tTXVFPtIv4PAPrncX5dCwsrZ2N43IJEmw8JHyXn+lIu/u4dXl9RSq6l/lmqIm +api: eJzFV0tz2zYQ/iuYPSUzsOR4etKpqh8TN23tieVebI8NkSsRKQQwwNKJouF/7yxISqDkVzzu9GSL2Oe3Hxa7KyA1DzC6guN7ZSpFzge4kZBjyLwuSTsLI/iMgZxHoURwM9rL0SBhLrBTEcqTnqmMBtf22h4aVD6Iu1bsVtGdcFZQgYlGcEKT8LinyjKKayvuhl8r9Mu7a+sxlM4GDAOQ4Er0iiM5zWEElVU+K/Q93q6NgYRSebVAQs+5rMCqBcII1hK3OgcJmnMpFRUgwePXSnvMYUS+QgkhK3ChYLQCWpasG8hrOwcJM+cXithzFa2QJsMCa8DEaQ51fcM226jZzMH+Pv/pA3lRZRmGMKuM+NwKg4TMWUJLLK7K0ugsZjv8ElhnlYRWesaCdOMhc1Wj1EasLeEcfRLiYZTYruYH8a1AK5RNyqGD8EiVt5hLsS8cFei/6YCDqD1TlSEY7ddyA2mM1i7PZhHwfmQzZ3KMoPeEnka2lmsJWxkDjGiXyEk0GIGWMDORso+71+E2wTFBaOqcQWUThE6DGCeiSbIzZQLWko31cn7K1HHCyIcMBavLEuk5Mxet2I6RWnZ6bvoFM3qIjeP2Kp5ElHZBZRs7+Kk81wyAMuc9JHdq18Wb2G3LyV8eNgOZ9llllH/3h5qi+T04u3dWUVnRe9hOKC36tjTspP8UZSZN+rBAUq9MNsls64r1HC+m/S8pRs8hclKZZwCRK9CEixdqKe/V8umr1Nf9OVD/ZDBr2fbXF0G2Y+Mv1q23mtLrTB0lJmoJmUfVPDgv7Du5ItwjHeN53MthY1aMI1hVmf8XTi4bs62TzdP5pk6O2oe7cdLBNV2+YafuwPpt2XbrDq839dKhtfbSAfamXjq41l6Cqeav5eoF6/Iz8GbhxbHjBS/Cg0b6I8GkN5t105wUzgvWaAYG6yyKhaKswHzwMtfJkNN3eGzv0bgSxYz9iaDt3KQhdKMU+2FPvxwc7E5Tfyuj8/hwi2Pv46v7ylEqR1LaxNmh6bXbAsZlvdOfeStu6q32nDxxrh08+KEK84fGz03rDUHNcdOvHxeNYIgJnzLhLLd5Fu94Y9u+n9H3xMxOFQ8Zy+/0YKU34/NVxKYJv5VLOLopUVOhx6E4akrwFK0+TibnOwYbfiyQCsfrQekCxX2AChjBcM2oMFyl20A9XO8RICGgv+9Wh8obVlSljsVsfhZE5Wg4NC5TpnCBmuMb1swqr2kZVcfnp59w+RFVjh5GVzepwAUzr+FSX2yNvyr1J2RE2uVlXFHhvP7RTaZxeykarTrWdebSso7naEmJ8fnpzm3rHfEVUVlkROcpHoNMkg2j4VDFzwOlhyABF/GCAKFa/Lo+4Xoyco2b/cGHwT5/4iIslE1cXHZob83IvRFgfXn/54WzLQiTf1gapeP1jNisWmJdbfagABJGW4vmhls3EpgvrLFaTVXAS2/qmj9Hz8wSCffKazXlIl6tINeB/8/bmf8JkN59bi/he/FY0B21LPOKY+RfIOEfXG6vx7FNFR13V63IOMuwpER5p6syyde37/zsYgJ1/S/Fb57H sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-query.api.mdx b/docs/docs/reference/api/unarchive-query.api.mdx index ed2f3d7a4e..260a9ef1db 100644 --- a/docs/docs/reference/api/unarchive-query.api.mdx +++ b/docs/docs/reference/api/unarchive-query.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive Query" sidebar_label: "Unarchive Query" hide_title: true hide_table_of_contents: true -api: eJy1V0tz20YM/isanJKZjaV6euKpql1P3LS1Esu9aDQeiITETZcP78MTlsP/nsEuKZGiX/E4J1Fc4APwAQuANVjcGYhW8NmRlmRgLaAoSaOVRX6ZQAQuRx2n8p5u7xzpCgSUqDEjS5oVa8gxI4jAn97KBATIHCIo0aYgQNOdk5oSiKx2JMDEKWUIUQ22KlnPWC3zHQjYFjpDyxadR7HSKhZgz6rJZQJNs2Y8Uxa5IcMQp7MZ/yRkYi1LdhkiuHZxTMZsnZp8aYVBQFzklnLL4liWSsY+wulXwzp1z61Sc/xWBgtx4YJS663MLe1I99w78xICEtqiUxaiWSMCGd5WXl1tPU1D3G2hEtJM10DoaU4asZfInVLAfHRuXHhAT5OArfJZfdR8IzqcYvOVYnvM9oXXH5tjvREyJolkLlEtBiGOotoUhSLM+7htoPzmYRiIpY6dQv3uL9yQ+tMU+YcrZ0tn38NxEH06jqVhFPJTZC5D+JCRxVcG24vsqHQGhrPN8E2fo+cYuXDqGUJEDdJS9kIt1Bqrp4tsqPtjpP7NZDai7RcvomyE8Q/rNmJ4418Hdd6DaATEmtBScov2hTcyQUsfrPT+PG7lLMBO5p4sVyY/w8hNgG2NJKToJxg5D7CtkY6uTfWGPawj6/eq7WMdX29qpWNrb6Uj7E2tdHTtrRjldq+t1WvWbQS8nXt+nD4zBR4aAM/p7Cdu07Dsr6en4wH9LyqZ+PE7+UPrQr9+OidkUSp+atvcsYAq4sHpj7TpdXPUGXvTpQgO+hlhdg9tM4euZwzu6NAqHxf1ZEyWfMq5zrnDsniXsrxtubH91oMZ5eGMufxmH8zvYRtbeW6C+61crzwOKQoZepyK85CCpwrj43K5GAGG+hgWxk23ak4+t6tmRjYteAstC2P96mlTiGB6F7bVad1tnc10v6eCAEP6vltPnVasgaX0WQ5/U2tLE02n5E5iVbjkBHeUWzxBGQTXjBE7LW3lQeaLy09UfSRMSEO0WvcFrrk4Q7kNxfYpwlJ+Ig6nXZXnzqaFlv+HGmr35TRoNT7126Kf+bl3bjJfXMIxZYMjvkUY+6LpLPljEEdhH6IFAZT5OwSWMPttf8IpZw6DmdnJLyczfsV5yDDvmRgn7Wg4tyRwTU5LhdLfGu9P3eZzBW0+QUDU+444pHQtIOUKiFZQ1xs0dKNV0/DrdtNerQXco5a4YcZWNSTS8HMC0RaVoZFX+44D7760l+L95LALDb3t8phzePeoHP8DAf9R1f/y8S0j7Yqkbo/ncUyl7SmOOhxX077SF1fXS2ia73RtoNU= +api: eJy1V0tv20YQ/ivCnBJgY6pGTzxVtWvETVsrsdyLIBgjciRtuuTS+zDCEvzvwSxJiRT9iuGcJO3O8/tmZ0YVONxaiJfw2ZORZGElQBdk0EmdX6YQg8/RJDt5T7d3nkwJAgo0mJEjw4oV5JgRxBBub2UKAmQOMRTodiDA0J2XhlKInfEkwCY7yhDiClxZsJ51RuZbELDRJkPHHn2w4qRTLMCRlZPLFOp6xfZsoXNLlk2cTqf8kZJNjCw4ZIjh2icJWbvxavKlFQYBic4d5Y7FsSiUTEKG0VfLOlUvrMJw/k42HhLtG6U2Wpk72pLphXcWJASktEGvHMTTWjRgBF95ebUJMA3tbrRKyTBcA6GnManFXiL3SgHj0YVxEQwGmARsVGD1Ufe16Ozo9VdK3DHaF0F/7I71RpYxTSVjiWo+SHGU1VprRZj37baJ8snDZiCRJvEKzbu/cE3qT6vzD1feFd69h+Mk+nAcS8Mo5afAXDTpQ0YOX5lsL7Oj0hk4ztbDkz5GzyFy4dUzgIgKpKPshVpoDJZPF9lQ98dA/ZvBrEXbL14E2cjGP6xbi+GLf52p856JWkBiCB2lt+he+CJTdPTByRDP417OGrOTWQDLF+nPcHLTmG2dpKToJzg5b8y2Tjq41uUb9rAOrN/Lto91eL2plw6tvZcOsDf10sG192KV3762Vq9ZtxbwduGFcfrMFHhoADyns5+4dc2yv56ejgf0v6hkGsbv5A9jtHn9dE7JoVT8rW1zxwJKJ4PbH2nTq/qoM/ami24CDDPCbh/aZg5dz1rc0qFVPi4awJgs+Ja5zrnDsnhHWd623MR965kZ8XDGWH5zD/J72MaWAZsm/FauVx4HihqGHofivKHgqcL4uFjMRwab+hgWxk23ak4+t6tmRm6neQsttHVh9XQ7iCG6a7bVqOq2zjra76kgwJK579ZTbxRrYCEDy83PnXNFHEVKJ6h22rrmesWaiTfSlUF1Nr/8ROVHwpQMxMtVX+CaS7IpsqHYnhgs5CfiJNoFeebdThv5f1M57Za8a7TqQPhG9/mebSl3OJnNL+EYqMEVvx1MQql0nsI1iF6yNo4iDMcnKCMQQFl4OeAIs9/2N0w0I9e4mZ78cjLlI0Y/w7znYkzV0UhuQeBKjAqFMryVEE/VsriElkUQEPf+PRyIXAlgcli0qtZo6caouubjdr9ergTco5G4ZsSWFaTS8vcU4g0qS6Oo9n0G3n1pn8L7yWEDGkbb8ZhzeveoPP8CAf9R2f+/ExrFriuSqr2eJQkVrqc46mtcTfv6nl9dL6CuvwMsx512 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-queue.ParamsDetails.json b/docs/docs/reference/api/unarchive-queue.ParamsDetails.json new file mode 100644 index 0000000000..13bffd7a89 --- /dev/null +++ b/docs/docs/reference/api/unarchive-queue.ParamsDetails.json @@ -0,0 +1 @@ +{"parameters":[{"name":"queue_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Queue Id"}}]} \ No newline at end of file diff --git a/docs/docs/reference/api/unarchive-queue.RequestSchema.json b/docs/docs/reference/api/unarchive-queue.RequestSchema.json new file mode 100644 index 0000000000..c96bcede2f --- /dev/null +++ b/docs/docs/reference/api/unarchive-queue.RequestSchema.json @@ -0,0 +1 @@ +{"title":"Body"} \ No newline at end of file diff --git a/docs/docs/reference/api/unarchive-queue.StatusCodes.json b/docs/docs/reference/api/unarchive-queue.StatusCodes.json new file mode 100644 index 0000000000..babed34b89 --- /dev/null +++ b/docs/docs/reference/api/unarchive-queue.StatusCodes.json @@ -0,0 +1 @@ +{"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"count":{"type":"integer","title":"Count","default":0},"queue":{"anyOf":[{"properties":{"flags":{"anyOf":[{"properties":{"is_sequential":{"type":"boolean","title":"Is Sequential","default":false},"is_default":{"type":"boolean","title":"Is Default","default":false}},"type":"object","title":"EvaluationQueueFlags"},{"type":"null"}]},"tags":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"boolean"},{"type":"string"},{"additionalProperties":"circular(LabelJson-Output)","type":"object"}],"title":"LabelJson-Output"},"type":"object"},{"type":"null"}],"title":"Tags"},"meta":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"additionalProperties":"circular(FullJson-Output)","type":"object"},{"items":"circular(FullJson-Output)","type":"array"},{"type":"null"}],"title":"FullJson-Output"},"type":"object"},{"type":"null"}],"title":"Meta"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"},"deleted_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deleted At"},"created_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Created By Id"},"updated_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Updated By Id"},"deleted_by_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Deleted By Id"},"id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Id"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"status":{"anyOf":[{"type":"string","enum":["pending","queued","running","success","failure","errors","cancelled"],"title":"EvaluationStatus"},{"type":"null"}],"default":"pending"},"data":{"anyOf":[{"properties":{"user_ids":{"anyOf":[{"items":{"items":{"type":"string","format":"uuid"},"type":"array"},"type":"array"},{"type":"null"}],"title":"User Ids"},"scenario_ids":{"anyOf":[{"items":{"type":"string","format":"uuid"},"type":"array"},{"type":"null"}],"title":"Scenario Ids"},"step_keys":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Step Keys"},"batch_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Size"},"batch_offset":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Batch Offset"}},"type":"object","title":"EvaluationQueueData"},{"type":"null"}]},"run_id":{"type":"string","format":"uuid","title":"Run Id"}},"type":"object","required":["run_id"],"title":"EvaluationQueue"},{"type":"null"}]}},"type":"object","title":"EvaluationQueueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"}}}}}} \ No newline at end of file diff --git a/docs/docs/reference/api/unarchive-queue.api.mdx b/docs/docs/reference/api/unarchive-queue.api.mdx new file mode 100644 index 0000000000..f066c7c71f --- /dev/null +++ b/docs/docs/reference/api/unarchive-queue.api.mdx @@ -0,0 +1,69 @@ +--- +id: unarchive-queue +title: "Unarchive Queue" +description: "Unarchive Queue" +sidebar_label: "Unarchive Queue" +hide_title: true +hide_table_of_contents: true +api: eJy1WFlz2kgQ/iuqfkqqFON17ZOelthJhfXu2gl2XlwU1UgNTDIayXO4Qij991SPDnRgjL3OEzDT/fU5fbAFiysD0R18eEDp0IpMGZiFkOWk/a9JAhE4hTpeiwea3ztyBCHkqDElS5qZt6AwJYjA385FAiEIBRHkaNcQgqZ7JzQlEFntKAQTrylFiLZgNznzGauFWkEIy0ynaFmi8yhWWMkEnxk4mCRQFDPGM3mmDBmGODs95Y+ETKxFzipDBFMXx2TM0sngS0UMIcSZsqQsk2OeSxF7C0ffDPNsW2rlmu23opQQZ65kqrQVytKKdEu9c08RQkJLdNJCdFqEpTO8LLW5Wno3dXGX0vv+cQJh5obuHSkrULYUWGSZJFQtBSYmmO4oW4osURoqQoZqzg7jXFRkA5AirPmyxTeKbYttlzw+UB+9YUXYCFJOSihmjDAwGZNEMCfK647xO4qeti3cKm/4ZD8MxELHTqJ+8w8uSP5tMvXuytnc2bfQN4czqzaoTw0D44fW7bhvSvMhJYsvNLZlWS/rOoLTRfek7aOnPPLRySccEm5BWEqP5EKtcXPQLz3e5zn1X3ZmEVal5iiXDTD+Y94i7BaLl0FdtCCKEGJNaCmZoz0E2CpwCVp6Z4XX53Ep5yVsMPbOcnnyO4TclrCVkIQk/QYhFyVsJaR212LD3eI4Ob4lHOOs9xvfKXb+elUptbcaKbXDXlVK7a5GyutBl3gPpM3/SP+vFXsRgrFo3cEqFgIpl/KUkZNKyhPfHbnFa6dUeWTKps3GoJBOc8smrTPNRzGqmKSkBGb7+s60VGKfyk0ba6Rz0LBfmrut1xnSc5H0zKqqYevLU2HoF8fji+WtIR1MEt9ITEwKtcgOaPRcRR4XPK2ENcIt5fPvtDlO8rMkWcqDS0YuQligjddzI37ur+57218P7z1DBFOGaACz5dLQ/lJ2PORVCfKMEegCfbfaMwFpp6o6cezw+8WpcvQdSt9N1nc18N7n4XXap8/xFjVzdFEw159nZ8Ox+ytKkXiW4AM/3JfP3AlZFLLz1LoEMos7t8+ZoGb9JG0NflmpoB/fzGpfmHYDiTG4ol3GP07qnRHc8C2XcsXDD5PXFVlV01Bsf7RgBhE5Z1/+2J+H7Uxg35TqV3Ttwt2EqIzQ4664KENwKEU+3dxcDwDL/Ogmxm29QAafqwUyJbvOeLfMM2P9QmnXEMGIdnvoyPcIM9rWa2UxahZRbhekH+r902nJzJgLH/Dy59raPBqNZBajXGfGltcz5oydFnbjWcfXk0vafCJMSEN0N2sTTDk7y3zrkjUxwlxcEnut2oDHzq4zLX6WSVStweuSq/CxX2bt0I9XpCwG4+sJ9H3WueJnhLHPmlqSv4awZayJRiP0xycoRtw9U/+IwBKmfzU3nfYPpyd/nJzyEQciRdUSMYxab3CunMBJOcolCv9svD7bKqB30Apo3fb5S9T6r2AX1VkIHCnm224XaOhWy6Lg43tHmgM2C+EBtcAFu+9uC4kw/D2pttSBik39gTdfqifyNtgtLV3V66Aqjijrzb8ghO+0af+74QvIus6YbXU9jmPKbYtxUO84tZq8v76a3kBR/AIEvfjK +sidebar_class_name: "post api-method" +info_path: reference/api/agenta-api +custom_edit_url: null +--- + +import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; +import ParamsDetails from "@theme/ParamsDetails"; +import RequestSchema from "@theme/RequestSchema"; +import StatusCodes from "@theme/StatusCodes"; +import OperationTabs from "@theme/OperationTabs"; +import TabItem from "@theme/TabItem"; +import Heading from "@theme/Heading"; +import Translate from "@docusaurus/Translate"; + + + + + + + + + + +Unarchive Queue + + + Request + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/docs/reference/api/unarchive-simple-application.api.mdx b/docs/docs/reference/api/unarchive-simple-application.api.mdx index c0dccd0576..766216a568 100644 --- a/docs/docs/reference/api/unarchive-simple-application.api.mdx +++ b/docs/docs/reference/api/unarchive-simple-application.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive an application through the simple endpoint layer." sidebar_label: "Unarchive Simple Application" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-simple-environment.api.mdx b/docs/docs/reference/api/unarchive-simple-environment.api.mdx index 47523dca04..c9bbd1dad0 100644 --- a/docs/docs/reference/api/unarchive-simple-environment.api.mdx +++ b/docs/docs/reference/api/unarchive-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive Simple Environment" sidebar_label: "Unarchive Simple Environment" hide_title: true hide_table_of_contents: true -api: eJzNWM1u4zYQfhViTgmgyOmiJwEFmm52u+m23SB/l8RIaGlsc0tRWpIy1hV07QP0EfskxZCSTMnOb7NAfbEkznwz881wxFENli8MJNfwTq2ELlSOyhqYRlCUqLkVhTrJIIFKcZ0uxQpvjchLibe4EYcISq55jhY1QdWgeI6QQCBzKzKIQChIoOR2CRFo/FIJjRkkVlcYgUmXmHNIarDrkrSN1UItIIJ5oXNuyYnKoVhhJQkEHrOTDJpmSqimLJRBQ0BvDg/pL0OTalFSLJDAeZWmaMy8kuysFYYI0kJZCiWpgZelFKkLffLZkE4dOFdqIsYKbyEtKq/U+iyUxQXqwMm3TiKCDOe8khaSwyYKiXEW1frT3BE3RJ9Ll5v7BYS5XVRcZ8Ri78OsKCRyFfhwYtjPrVjgyJxLg00TdXrF7DOmdje/750nTdQbUZWU0ExJe8tHnmWC2OPydODtRmLkaYDbJp2e7IaBVOi0klzv/cpnKH8xhTr4VNmysvswDoUKogtmLA1bgW9Ht9G+8OFDjpa/MNggslGxDAzns+GTkKPHGHlfyUcIiWoQFvMnanGt+fpBXka6zyP1NyKzidpu8STKtjB+J90mGu7xl0EdBxBNBKlGbjG75fYhwKA7ZdzigRXOn/utvPWw7MiRVZXZtzBy6WFbIxlK/AZGjj1sa6Sja7amVv80O66fP4Wsn9auwW/4elUrHVu9lY6wV7XS0dVbMbJavLRWz0m3ieD13Gsj5+P+NnzhaJyjRpWOe9y9XfCe50PUFWrzHzbuVav+v+T0gffrWUfmrrb5jD56tknKE1/nZ7gSRNkxpXvUPOEU9QEvS7bJNZsXmgVnFqZbfUb1Et+oG/UR14ZxjYyX5YFJixIzJjJUVswFasP2MF7EEbu7u4FSY9wB3MDd3X58o664rNADZCK1hhVzRsp2fUDhsH/++pv1YUas1MVKZEIt2LySklnNU+QzIYVdJwm5wxhjtf+j39hoEi56geDUR+u9sT2R/RDHccSotPxVW650sx89gHO74lpwZV8NLwzgBYBNcB3Hsb9pdp/qWtdfsf9decS2+XWhvKKBrqjZI9vu3A0wwW7YxcBz9PsxomlI7/s3b7anjisuReayyN5pXeiXjxwZWi6kO/37k9xYQBbpYPU5J9FpMzr8BQfowjvojsFmsWtQ2xzsjOGLoK3dL+rIYBe0Sq1X0SGSxLsOqtpTZWq/BjBbOXlLXH61O/O+GTSvHTfe/VZuUKBdinyG7qfi2KfgoSL5cHFxugXo62NYGJfdYM18XbF3g8E6R7ssaAAvC+MHbbuEBCZ+Cp8ETdlM6uG83Uz6oR0iMKhX3XheaUkYvBSuCPzt0trSJJMJVnEqiyqL+QKV5TEXXnBKGGmlhV07kKPTk4+4/oA8Qw3J9TQUOKfa9dU4FOszyEvxEYnT9lPBUWWXhRZ/+hJrvxQsvVbjKmNehIVx5JxjR6cnW++vwRJtMp66muosuWWIRmFvooUIMHdbDCzy/Md+hSqiP6rAYfxdfEiPKDM5V4GJR3I6mlVaRqh+J6Xkwu0w51zdpvsafLph8OXAQATJ1ieWTc6nESypaJJrqOsZN3ipZdPQ4y8VakritO3zM6L0uoZMGLrO2m8DW572HQv2ztpNtc824+Iwgi7RirK8ovc7JAAR/IHr7U9DrvEsu1qqW6GjNMXSBupbfZKKrt8ip5/OL6Bp/gV8PmhD +api: eJzNWM1u4zYQfhViTgnAyOmiJwEFmm52u+m23SB/l8RIaGlsc0tTWpIy1hV07QP0EfskxZCSTNnOb7NAfbFEzu83w9EMa3BiZiG9hnd6KU2hF6idhTGHokQjnCz0SQ4pVFqYbC6XeGvlolR4i2ty4FAKIxbo0JCoGrRYIKQQ0dzKHDhIDSmUws2Bg8EvlTSYQ+pMhRxsNseFgLQGtyqJ2zoj9Qw4TAuzEI6MqLwUJ50igshidpJD04xJqi0LbdGSoDeHh/SXo82MLMkXSOG8yjK0dlopdtYSA4es0I5cSWsQZalk5l0ffbbEU0fGlYaAcTJoyIoqMLU2S+1whiYy8q2n4JDjVFTKQXrY8BgYr1GvPk09cEPpU+Vjcz+BtLezSpicUOxtmBSFQqEjG04s+7kliwyZCmWxaXjHV0w+Y+Z24/veW9LwXomulIJmTNxbNoo8l4SeUKcDa9cUG5ZGctug08puMZBJk1VKmL1fxQTVL7bQB58qV1ZuHzZdoYTonNmkhi3Ht71bc18E92GBTrzQ2cizjWQZKF5MhisxRo8h8r5SjwDCa5AOF0/kEsaI1YO4bPA+D9TfCMyGt9XiSZBtyfideBs+POMvE3UciWg4ZAaFw/xWuIcERtUpFw4PnPT23K/lbRDLjjxYVZl/CyWXQWyrJEeF30DJcRDbKungmqyo1D9Nj6/nTwHrp5Uv8Gu8XlVLh1avpQPsVbV0cPVarKpmL83Vc+JtOLyeea3nYrO+DT84BqdoUGebNe7eKnjP+lDqEo39Dwf3qmX/X2L6wPf1rANzV9l8Rh09WwfliZ/zM1xKguyYwr1RPOEUzYEoS7aONZsWhkU9CzMtP6N8SW70jf6IK8uEQSbK8sBmRYk5kzlqJ6cSjWV7mMwSzu7ubqA0mHQCbuDubj+50VdCVRgE5DJzlhVTRsxudUDusH/++pv1bnJWmmIpc6lnbFopxZwRGYqJVNKt0pTMYYyxOvzRb1NpGm8Ggqjro/1e2Z7Mf0iShDNKrfDUpiu97PMH5NwuhZFCu1eTFzvwAoFN9JwkSXhpdnd1remvWP+ugsS2+HWuvKKCLqnZI8fu3A8w0WnYhcBz+PsxommI7/s3b7anjiuhZO6jyN4ZU5iXjxw5OiGV7/5DJ7dJoIpssPucTnTcbDR/UQNdBAN9G2xnuwa1dWNnrZhFZe1+Ug8Gu6BdKr2amkgi7yqobrvKzH2NxGzF5C1h+dXtjPt60Lz22ATzW7pBgnYhChG6H4rjEIKHkuTDxcXplsCQH8PEuOwGaxbyir0bDNYLdPOCBvCysGHQdnNIYRSm8FFUlO2oHs7bzagf2oGDRbPsxvPKKJIhSumTILzOnSvT0UgVmVDzwrqwPSbOrDLSrTzr0enJR1x9QJGjgfR6HBOcU8aGHByS9XETpfyIhGR7QXBUuXlh5J8hsdr7gXnganw+TIs4HY5mqJ1gR6cnW1+twRYdLZH5TOo0+W3gkbM2HY2EX06EHAEHXPiDBQ7F4sd+h/Kgb1DgMPkuOaQlisdC6EjFI5HcmFBaRChrR6US0p8rb1zdBvkaQpBhcF9ggUO6dbGyjvSYA0WP2Ot6IixeGtU0tPylQkNBHLfVfUKQXteQS0vPeXsjsGVpX6dg76w9SvtsPSQOPegCrSnKS/qqQwrA4Q9cbV8I+XIz73KpbomOsgxLF7FvVUdKuv5gnH46v4Cm+Rd+n2Tk sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-simple-evaluator.api.mdx b/docs/docs/reference/api/unarchive-simple-evaluator.api.mdx index dc5b90696a..dfbad37c62 100644 --- a/docs/docs/reference/api/unarchive-simple-evaluator.api.mdx +++ b/docs/docs/reference/api/unarchive-simple-evaluator.api.mdx @@ -5,7 +5,7 @@ description: "Restore a soft-deleted evaluator via the simple surface." sidebar_label: "Unarchive Simple Evaluator" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zgM/iscntoZNU47e/Jps0k6ybbdZvLoJeNJYQm22FKkSlJuvR799x2QlCz5mabuzB5ySmwDH4APIEiCC+5gavnwnp/PQFbgtLF8lPAMbWpE6YRWfMiv0TptkAGzeuJeZSjRYcawUWEzAczlyKwoSonMVmYCKR7xhOsSDRDMZcaHvFJg0lzM8CFIPrQQPOElGCjQoSF/FlxBgXzIW4kHkfGEC/KnBJfzhBv8VgmDGR86U2HCbZpjAXy44G5ekq51RqgpT/hEmwIcOVB5FCecJIE2aHaZ8boeEaYttbJoCebN8TH96ZNxU6UpWjupJLuOwjzhqVYOlSNxKEspUh/04IslnUXHtdIQJU4EC6muglL0WCiHUzQdF0+9xGpGXrPvOSoGqpMEYZlBVxmFWcKOmXY5mu/C+jRkOIFKOj48rpMlpd5bNf848YT3PZtIXxjbBYR96ETaiWGstURQnRguLTvpiHbcmYC0WCcE1vNqF9R5p2Y2AVklyhLdPpibKLYZpAAFUyqt3SAfothmkLSyThf7ME6D1GYIKffqv5fblHOtv+7TviCZLe7rDPc6TzLbKHRpvp9AEtoMMEHMxpDuDeFtI7cljBz2FsMpyWxQz8E+VEbuVL8Ay+6M3KYelu1ehJsgtgUkB5VJ3L00COUiyq3B1EmjqMdfMHUdvRvfittV9dYv/DppLalKSl6PCGGtJUCWCVrTIK96zWEpseJuBzd2Z/pmMwxPhUkrCebFexij/Ntq9epj5crKveSr4VDvbgJaleZrwa9Ht9S+DeHzAh08MdhOZCt9vWe4GPe/6XK0j5G3ldxDSLLgwmHxSC0wBuY7eVnR/TlSPxCZdRI39UdRtobxD+nWKzvh06DOOhB1wlOD4DB7CH1iG2DnGJGBw1dOeH+2WzkNsOzEk1WV2e8wchdgo5F4NDu0kbN44gtGGrrGczqTPc6OP3g9hqy/5v4stuTroFYatlorDWEHtdLQ1Vqxspo+tVZvSJd2soO5FyOH1f7WP99VRjzV5TsjfAbDxvk0BEkIOULm7wO/2ob7oc3Q2F/oHp+i+v8ysTs2+mucoEGVYtzNH929L2Ia6oSbSvlusdNjVFVBd8py7nJ/3icB2xxwvsAM4ofRLqvX0RTR3J6hnkR00K6bG+LOa033Fvq8+R9k879aUkrlrsrKPZN7KHIvA511wrXXfmb2UMx+jHzuaqkEfhObysYr03M7+a3t5PHX2jPwN5ANKZqBEaDcAc9/nwJiPPwZnAk6LxzQwHWEZHt2/BUONmL2B4u3ObKJBNeZKxpMtcnYd+FyJsGhdSxSxkBlrAmPFWimmDGhnGaf6XT5+ehnnOsMU/sunasZSl0im2hDI2ihprIdNbduki2y9sebN+sz208gReaHj+zcGD85fOLANkMHwh9r44JYFZA67f36Mwu6cyoLa6gz09BxeEqTCTvdNORe3rWthSkuF9V2UU8Gu6Vfm53Zi3f3Fn/jcz86MGuZPCUuf7iN2V4O6e89N8H9KNdbM02KQoa2U3EWUrCrtC5ub6/WAEN9FOhyTW8RpbbOvzq4nA/5INTToK0nO1h0nx7qQft2wRNu0cyadwp/y+EDKIXPafiYO1fa4WCA1VEqdZUdwRSVgyMQQXBEGGllhJt7kJOry3c4D+dsPrwfdQX8/hKKqy/WJgRK8Q6JovhmclK5XBvxbzNu948m4S7laRNqort5PvHOsZOry7XF1/uJ1gykvkQaS/5nnqyEvYyWbgOFXzHcIRR/tr9Qgtt7GD8+en10TF9RVgpQHRN3De8sNIyV+X9vFtQu6l95soqkUkUPSglCde6yoVruedDinbcUyxM+XHmsWpbMKOE51dvwni8WY7B4Z2Rd09ffKjRUA6O4EY0pI/cLnglL/2dxgLsj1BfXcYm9ZNu8b+pEUZGQj/SJJ/wrzlef2HwTyptCXESRkzRFf3lrlNd6JlVsu7auPt7c8rr+Dywkv8M= +api: eJztWUtz2zgM/iscntoZNU47e/Jps0k6ybbdZvLoJeNJYQm22FKkSlJuvR799x2QlCz5mabuzB5yamMBH4APIEiCC+5gavnwnp/PQFbgtLF8lPAMbWpE6YRWfMiv0TptkAGzeuJeZSjRYcawUWEzAczlyKwoSonMVmYCKR7xhOsSDRDMZcaHvFJg0lzM8CFIPrQQPOElGCjQoSF/FlxBgXzIW4kHkfGEC/KnBJfzhBv8VgmDGR86U2HCbZpjAXy44G5ekq51RqgpT/hEmwIcOVB5FCecJIE2aHaZ8boeEaYttbJoCebN8TH90yfjpkpTtHZSSXYdhXnCU60cKkfiUJZSpD7owRdLOouOa6UhSpwIFlJdBaXosVAOp2g6Lp56idWMvGbfc1QMVCcJwjKDrjIKs4QdM+1yNN+F9WnIcAKVdHx4XCdLSr23av5x4gnvezaRvjC2Cwj70Im0E8NYa4mgOjFcWnbSEe24MwFpsU4IrOfVLqjzTs1sArJKlCW6fTA3UWwzSAEKplRau0E+RLHNIGllnS72YZwGqc0QUu7Vfy+3Kedaf92nfUEyW9zXGe51nmS2UejSfD+BJLQZYIKYjSHdG8LbRm5LGDnsLYZTktmgnoN9qIzcqX4Blt0ZuU09LNu9CDdBbAtIDiqTuHtpEMpFlFuDqZNGUY+/YOo6eje+Fber6q1f+HXSWlKVlLweEcJaS4AsE7SmQV71msNSYsXdDm7szvTLZhieCpNWEsyL9zBG+bfV6tXHypWVe8lXw6He3QS0Ks3Xgl+Pbql9G8LnBTp4YrCdyFb6es9wMe7/0uVoHyNvK7mHkGTBhcPikVpgDMx38rKi+3OkfiAy6yRu6o+ibA3jH9KtV3bCp0GddSDqhKcGwWH2EPrENsDOMSIDh6+c8P5st3IaYNmJJ6sqs99h5C7ARiPxaHZoI2fxxBeMNHSN53Qme5wdf/B6DFl/zf1ZbMnXQa00bLVWGsIOaqWhq7ViZTV9aq3ekC7tZAdzL0YOq/2tf76rjHiqy3dG+AyGjfNpCJIQcoTM3wd+tQ33Q5uhsb/QPT5F9f9lYnds9Nc4QYMqxbibP7p7X8Q01Ak3lfLdYqfHqKqC7pTl3OX+vE8CtjngfIEZxD9Gu6xeR1NEc3uGehLRQbtubog7rzXdW+jz5n+Qzf9qSSmVuyor90zuoci9DHTWCdde+5nZQzH7MfK5q6US+E1sKhuvTM/t5Le2k8dfa8/A30A2pGgGRoByBzz/fQqI8fBncCbovHBAA9cRku3Z8Vc42IjZHyze5sgmElxnrmgw1SZj34XLmQSH1rFIGQOVsSY8VqCZYsaEcpp9ptPl56Ofca4zTO27dK5mKHWJbKINjaCFmsp21Ny6SbbI2h9v3qzPbD+BFJkfPrJzY/zk8IkD2wwdCH+sjQtiVUDqtPf1ZxZ051QW1lBnpqHj8JQmE3a6aci9vGtbC1NcLqrtop4Mdktfm53Zi3f3Fn/jcz86MGuZPCUuf7iN2V4O6e89N8H9KNdbM02KQoa2U3EWUrCrtC5ub6/WAEN9FOhyTW8RpbbOvzq4nA/5INTToK0nO1h0nx7qQft2wRNu0cyadwp/y+EDKIXPafgzd64cDgZSpyBzbV34PCLNtDLCzb3qydXlO5yH0zUf3o+6An5XCSXVF2vTAKV4h0RMfCk5qVyujfi3GbL7p5Jwg/JkCTXR3eyeTFE5YCdXl2tLrveJVgqkvjAaS/4zTzrB2uFgAP7nIxADugMUfp1wh1D82X6htLa3L3589PromH6iXBSgOibuGrZZaBMrU//eBKhdyr/yUBVJpToelBKE6txgQ43c86DFOy8olid8uPJEtSyUUcIp+aS6WIzB4p2RdU0/f6vQUA2M4vYzpozcL3gmLP0/i2PbHaG+uI4L6yXb5n1TJ4qKhHykv3jCv+J89WHNt568KcRFFDlJU/RXtkZ5rVNSxbYr6urjzS2v6/8AyfS8ZA== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-simple-query.api.mdx b/docs/docs/reference/api/unarchive-simple-query.api.mdx index 0becef79e8..a96ee23421 100644 --- a/docs/docs/reference/api/unarchive-simple-query.api.mdx +++ b/docs/docs/reference/api/unarchive-simple-query.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive Simple Query" sidebar_label: "Unarchive Simple Query" hide_title: true hide_table_of_contents: true -api: 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 +api: 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 sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-simple-testset.api.mdx b/docs/docs/reference/api/unarchive-simple-testset.api.mdx index 48c9491057..37e4e0f6c8 100644 --- a/docs/docs/reference/api/unarchive-simple-testset.api.mdx +++ b/docs/docs/reference/api/unarchive-simple-testset.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive Simple Testset" sidebar_label: "Unarchive Simple Testset" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zYQ/is7OCUztORkeuKpbtxM3LS1J1ZysTU2RKxEJCDA4OFE1fC/dxYgKUryK65y6fgkiVjsfvj2geVqxTxfOJZfsAk679A7Ns2YqdFyL40+ESxnQXNblPIGr5ysaoVXPomyjNXc8go9WlKxYppXyHLWrl9JwTImNctZzX3JMmbxa5AWBcu9DZgxV5RYcZavmF/WtNN5K/WCZWxubMU9GQ9Ri5dekUCLEk4Ea5opaXS10Q4dKXl9eEgfAl1hZU34Wc7OQ1Ggc/Og4EMrzDJWGO1RexLnda1kEY87/uxoz2oArLZEhpfJQmFC2tTildrjAu0A4JsokW2BeAVyDhxaYuAbd2DRB6tRZHAIxpdov0mHo7hzzoPyLD9sso7KiFMvT+eR5k1McxU9eKcAaUlozewzFn6XzbdRwzbmM8ULLI0SaGFubAf+QOENKohWR5f6Uk9K6aAyAhVIBzLyKo3mSi0Bq9ovYRY8fMHaA3fAQaAgulEAwQJnwJfc55f6APC7dF7qBVico0VdoANv4Doay+G0Toovhrin12Cx4lLDDVdSZMC1IF3O21D4YFEkrFBwDTMELgQKKNEiSA2+RJgHEoNv0pcmeJhZ5F8IhC/xUgO4YK0JWtCj48mpG7Em6wNAB6VYMyWOd7zAhZAJ8NmGw9YSrZKZMQq5HuptE4Ge3K6GFdIWQXH74k8+Q/WHM/rgNPg6+Jds2+GUKJ3Lt6XZTnjsnm4QMHTIJmMVev7Eww5OtpVEG4ar2eaTIUcPMfI2qAcIyVZMeqweuYtby5f38rK198dI/YvIbLK2ej6Ksh0df9PeZiuFn6bqeKCiyVhhkZL1ivv7FA4qtuAeD7yMeO628iaphaNIVqjFzzDyMaltjQhU+BOMHCe1rZGOrtmSrr/H2Yl33GPI+m0ZL741X3u10rHVW+kI26uVjq7eilNh8dRYPae9Tcb2B689Od+ub5t3Lt2FBXd4JcVWlWvLysMQHl9cJq0xOBGx+HbG77K8C7VtxvZE0bAHy9h+dZ/3ep/rznPd+al1Z98145Y+/H/YAaZ3hed+97nf/c/97u4l+0zqk0k9JjKbB971qWt4UuvhHlTt0H/AG+mk0QnKbe/ItpXYY1nvjLZF/YZbyfU+O5JPSWOaON3NwXkcjbVM3Kpwc7oyKXE9DpK+BOkdKE6PoKMJ+k4PKrQLFDRdMXBNiTPq167jyCNOMvqNJ8dgNFwP+L4ePR5+PydrGtrzy+vXu2O1TzRsiUMz+N1aY58+UxPouVT07Y4OVpliY/VHqsF0O9oHN4NJAGN9d4vbevZ1xXKOLwapc7doJAMmtEo9hqZEJvGuVdBtZhf++0DNjj/eEJff/a0+W09RLyI3CX4rtxG5nYuSh+6m4ji54L4AeTeZnO0oTPGxGRgfu2kxpJiCST8trtCXhibKtXFpeuxLlrNxGiuP23Rw49X6naUZ99NnRu8a9qabNQeraC+vZXR8+ll6X7t8PMYwKpQJYsQXqD0fcZkEp6SjCFb6ZVRydHbyHpfvkAu0LL+YDgXOKV5TBG6K9V7jtXyPxGM79z4KvjRW/pPCqh19l2lXE6NhbobBcBTBwdHZyc7wdWOJEosXMY46S3GZZVvHXp+WZYyGoipO43n1a78SiyRal8wcjl6NDukReaTiemDiHj9uDZlaNihex7XiMmZUBLZqXXzBkotZP9CmcXO+8T/B2s/TjJUUIPkFW61m3OFHq5qGHn8NaMlx07bQz4jGixUT0tF3wfI5Vw53EPaVib340CbPS1hfzZvIO+dq8uwNV4F+sYx9weXmfxuxuJRd7KxagaOiwNoPtu7UQgqyPhXOTs8nrGn+BYVWxTc= +api: eJztWU1z2zYQ/Ss7OCUztORkeuKpbtxM3LS1J1ZysTU2RKxEJCDAAKASVcP/3lmApEjJsh1XuXR8kgTsF98uFsunNfN84Vh6xSbovEPv2DRhpkTLvTT6TLCUVZrbLJdLvHGyKBXe+CjKElZyywv0aMnEmmleIEtZs38jBUuY1CxlJfc5S5jFr5W0KFjqbYUJc1mOBWfpmvlVSZrOW6kXLGFzYwvuyXkVrHjpFQk0UcKZYHU9JYuuNNqhIyOvj4/pQ6DLrCwpfpayyyrL0Ll5peBDI8wSlhntUXsS52WpZBYed/zZkc66F1hpCQwvo4fMVFGpiVdqjwu0vQDfBIlkK4hXIOfAoQEGvnEHFn1lNYoEjsH4HO036XAUNOe8Up6lx3XSQhni1KvzeYB5GNNchQzuFSArMVoz+4yZ30XzbbCwHfOF4hnmRgm0MDe2Df5I4RIVBK+ja32tJ7l0UBiBCqQDGXCVRnOlVoBF6Vcwqzx8wdIDd8BBoCC4UQCFBc6Az7lPr/UR4HfpvNQLsDhHizpDB97AbXCWwnkZDV/1457egsWCSw1LrqRIgGtBtpy3VeYriyLGChnXMEPgQqCAHC2C1OBzhHlFYvBN+txUHmYW+RcKwud4rQFcZa2ptKCl08m5G7E66QpAV0qxekoY72SBCyFjwBeDhG0kGiMzYxRy3bfbHARaudsMy6TNKsXtiz/5DNUfzuij88qXlX/JthNOB6VN+bY02ymP3afrFQw9ZJ2wAj1/4sP2nmzrEA0cF7PhSh+jhxB5W6kHAEnWTHosHqnFreWre3HZ0v0xUP8iMOuk6Z6PgmzHxt+kW28d4aeZOu2ZqBOWWaTDesP9fQZ7HVtwj0dehnj2e3kTzcJJAKsqxc9w8jGabZwIVPgTnJxGs42TFq7Ziq6/x/kJd9xjwPptFS6+DV4H9dKi1XlpATuolxauzotT1eKptXpJunXCDhde8+R8u78N71y6CzPu8EaKrS7XtJWHQ3h8c5k0zuBMhObbOt/neTfUZhg7EET9GSxhh7V92dl97jvPfeen9p1D94w75vD/4QQY3xWe593nefc/z7u7l+wzqE8G9ZTArB9416ep4Umjh3vQtEP/AZfSSaNjKHe9I9tG4oBtvXXaNPUlt5LrQ04kn6LFyDjtx+AyUGMNEncaHLIrkxw3dJD0OUjvQHFaghYm6CY9KNAuUBC7YuCWDs6o27sNlEdgMjrFs1MwGm57eN+OHh9+x5PVNen88vr1Lq32iciWQJrB79Ya+3ROTaDnUtG3PROsMtlg90e6wXS72ns3g4kBhv7uFnfN7JuO5Rxf9I7OftEABkxol2YMTQeZxNtRQTcnO/Pfe2Z28vGGsPzu78zZhkW9CtjE8Bu5QeW2KYoZ2g/FaUzBfQXybjK52DEY62NYGB9bthhiTcGkY4sL9LkhRrk0LrLHPmcpG0daedwcBzdeb95Z6nHHPjN617DLlmuurCJdXsqQ+Pgz975Mx2NlMq5y43zcnpJmVlnpV0H15OLsPa7eIRdoWXo17QtcUpXGuhuKdbnipXyPhF7Ddp9UPjdW/hOLqSG886hVhxqYm34JnCxQew4nF2c7lOtgi44Tz0L1tJ7CNkt6D+vS8ZiH5RGXY5YwokJV4OB58Wu3E1ojWhfdHI9ejY5pifJQcN1zcU/2tqilBg2q0nGpuAznKAS2bhJ7xWJiWUdjE8mcDv4d2GR3mjDKGKmt1zPu8KNVdU3LXyu0lLhp095nBOPVmgnp6Ltg6ZwrhzsRdv2IvfjQHJmXsLmQh5G3ydWU2SVXFf1iCfuCq+E/GqGl5G3trBuBkyzD0vdUdzogFVl3AC7OLyesrv8F2XvB2A== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-simple-workflow.api.mdx b/docs/docs/reference/api/unarchive-simple-workflow.api.mdx index b4bd634c81..71cf277fd5 100644 --- a/docs/docs/reference/api/unarchive-simple-workflow.api.mdx +++ b/docs/docs/reference/api/unarchive-simple-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Unarchive Simple Workflow" sidebar_label: "Unarchive Simple Workflow" hide_title: true hide_table_of_contents: true -api: eJztWUtz2zgM/isanNoZNU47e/JpvUk7ybbdZPJoDxlPSkuwxZaiVD6cej367zsgKVnyu647s4ecEtvAB+ADCJLgHAybaOg/wOdCfRuL4knDMIaiRMUML+RlCn2wkqkk41N81DwvBT4+BVmIoWSK5WhQEcgcJMsR+lALPPIUYuAS+lAyk0EMCr9brjCFvlEWY9BJhjmD/hzMrCRVbRSXE4hhXKicGTJvHYrhRpBA7Wh0mUJVDQlSl4XUqAnlzekp/UlRJ4qXFAL04dYmCWo9tiK6CcIQQ1JIg9KQOCtLwRMXce+rJp15y7NSER+GewtJYb1ScJhLgxNULQ/PnES85MSX11+ipwxlxCJPY1SzFHEdKTRWSUzj6MtpkJOFxChnJskwPXFwY2aFgf5pFTcMO+/l7Grs6O96OhYut5sFuH5sRd6KaVQUAplsxXSpo0FLtOXNmAmNVUxgOGXCMlOoXVBvG8H1QFryskSzC+Y2iK0HyZlkE6q07SAfg9h6kMRqU+S7MM681HoIIXbqfxCblLOi+LZL+4JkNrhfpLjTeZLZRKFJst0EktB6gDFiOmLJzhDe1XIbwsjYzmI4I5k16hnTj1aJreoXTEf3SmxS98t4J8KtF9sAkjGZCty+NAjlIsitwFRxrViMvmJiWnq3rqHUnfGdW/dV3BiSVgiohgSw0hFYmnJa0kxcd3rDQmLJ2xZu6NX0zXoYSLhKrGDqxQc2QvG3LuSrK2tKa17CcjTUyut4lqVhJfbV6Bbadz58yNGwA4NtRbbU5juG81H3mzZHuxh5Z8UOQuI5cIP5nlpMKTbbysuS7s+R+pHIrOKww+9F2QrGP6RbLW2Mh0GdtyCqGBKFzGD66NvEJsDWoSJlBl8Z7vzZbOXMw0YDR5Yt099h5N7DBiMpCvwNRs49bDBS0zWa0QltPzvuGLYPWX/N3NFswddRrdRsNVZqwo5qpaarsaKFnRxaq7ekSxvZ0dwLkbPl/tY93lnFD3X5XnGXQb9vHoYgCCFDlrrLwa+24W5oU1T6F7rHp6D+v0zsln3+BseoUCYYdvO9u/dFSEMVg7LSdYutHqO0Od0Ky5nJ3HGfBHR9vvnKpix8GG6zehNMEc3NEeogor12Vd8Xt95q2lfS583/KJv/9YJSKndZWvNM7rHIvfR0VjEUTvuZ2WMxexX43NZSCfw2NJW1V6bndvJb28net9pz5i4gazI0ZYozaY54/PvkEcPZT+GU03HhiAZuAmS0Y8PvUrAWsjtlbKajTBk+ZomJnrjJIm5oxKgLMcU0CnxFTKZRHVuUo5rQnHF/b5pRalWR0h9v3qxOXj8xwVM3MozeKuXmfQeOXVM0jLvTaKjjZQFRJJ1ff2Ydtg5TvvRbo4gijDxpoKAn6ybViyuy1myCi7WwWdSREd3Rr/WG6sTbW4K7qJkfLZiVhJwRlz/M2qQtJu0PjhvvfpDr1HqdIp+hzVSc+xRsq5CLu7vrFUBfH93CuK/fFCJfVNHnxZtCjiYr6OGhLLRxbwwmgz70/Ni8V4++dW/eemeoes0zBcSgUU3rNwl3iYEeK7nLvf+YGVPqfq+H9iQRhU1P2ASlYSeMe8EhYSRWcTNzIIPry/c488do6D8M2wJu+/BF2BVrEsdK/h6JyvA+MrAmKxT/tx6muxcSf1Vy9HI5Ltr1MHDORYPry5Vnhc5PtLZY4kqptuR+hngp7EW0dNjP3coCgyz/s/mFCqG5ZsHpyeuTU/qKcpIz2TKxLZVLk55AB9VsrxSMy9Yl02f5AXyWYfHEoSGGfvdFaZHqYQwZVUn/AebzEdN4r0RV0dffLSrK3TBsECNi8mEOKdf0fxrGqis+Nv0JXtyEJfQyWmyNXd/r/EpKLj1q0CeI4RvOlp7BXI/J6vqZB4lBkqC7UtW6Ky2RCq1ZENdXt3dQVf8Bf5yDxw== +api: eJztWUtz2zgM/isanNoZNU47e/Jps0k7ybbdZPJoDxlPCkuwxZaiVJJy6vXov++ApGzJ76buzB5ySiwBH4APEEiCM7A4NtC/h8+F/jaSxaOBQQxFSRqtKNRFCn2oFOokExN6MCIvJT08BlmIoUSNOVnSDDIDhTlBHxqBB5FCDEJBH0q0GcSg6XslNKXQt7qiGEySUY7Qn4GdlqxqrBZqDDGMCp2jZfOVQ7HCShZoHI0uUqjrAUOaslCGDKO8OT7mPymZRIuSQ4A+3FRJQsaMKhldB2GIISmUJWVZHMtSisRF3PtqWGfW8qzUzIcV3kJSVF4pOCyUpTHploenTiJecuLL6y/RY0YqwsjTGDUsRcJEmmylFaVx9OU4yKlCUZSjTTJKjxzcCCtpoX9cx3OGnfdqejly9Hc9HUmX280Cwjy0Im/FNCwKSahaMV2Y6KQl2vJmhNJQHTMYTVBWaAu9C+rtXHA9kFGiLMnugrkJYutBclQ45krbDvIxiK0HSSpji3wXxqmXWg8h5U79D3KTclYU33Zpn7PMBveLlHY6zzKbKLRJtptAFloPMCJKh5jsDOFdI7chjAx3FsMpy6xRz9A8VFpuVT9HE91puUndf8Y7EW682AaQDFUqafunwSjnQW4Fpo4bxWL4lRLb0rtxDaXpjO/cd1/Hc0OqkhLqAQOsdARMU8GfNMqrTm9YSCx528INvZqfrIeBROikkqhffMAhyb9NoV5dVras7EtYjoZbeRPPsjSsxL4a3UL71ocPOVl8YrCtyJbafMdwPuw+aXO0i5F3ldxBSDwDYSnfUwu1xulWXpZ0f47Uj0xmHYcVfi/KVjD+Yd16aWF8GtRZC6KOIdGEltIH3yY2AbY2FSlaemWF82ezlVMPG504sqoy/R1G7jxsMJKSpN9g5MzDBiMNXcMp79D2s+O2YfuQ9dfUbc0WfB3USsPW3EpD2EGtNHTNrRhZjZ9aqzesywvZwdwLkeNyf+tu7yotnurynRYug37dfBqCZISMMHWHg19tw93QJqTNL3SPT0H9f5nYLev8NY1Ik0oorOZ7d+/zkIY6Bl0p1y22ekyqyvlUWE5t5rb7LGCa/c1XnGD4Mdhm9TqYYprnW6gnEe216+a8uPVU0z6SPi/+B1n8rxaUcrmrsrLP5B6K3AtPZx1D4bSfmT0Us5eBz20tlcFvQlNZe2R6bie/tZ3sfao9Q3cAWZOhCWqByh5w+/fJI4a9n6aJ4O3CAQ1cB8hox4LfpWAtZHfKOJ+OorZihImNHoXNImF5xGgKOaE0CnxFqNKoiS3KSY95zri/N/NRal2z0h9v3qxOXj+hFKkbGUZvtXbzvieOXVOyKNxuNNTxsoAsks7bn/kOW5spX/qtUUQRRp48UDDjdZPqxRHZGBzT4lvYLOrIiG75bbOgOvH2kuAOavZHC2YlIafM5Q+7NmmLSfu948a7H+Q6td6kyGdoMxVnPgXbKuT89vZqBdDXR7cw7po7hcgXVfR5caeQk80KvngoC2PdHYPNoA89PzbvNaNv05u17hnq3vyaAmIwpCfNnYQ7xEAPS+Fy739m1pb9Xk8WCcqsMNa/HrBmUmlhp0715OriPU395hn694O2gFs0fOl1xebpwlK8JyYw3IqcVDYrtPi3GaG7exF/QHKkCjUq2lVwMiZlMTq5uli5TOi84i8KE1dAjSX3GuJWsKbf66F7fISix1v83H1PYAnzP+dvOP3zwxUcH70+OuZHnIkcVcvEtgQuzXcCHVypvVKiUK2jpc/tPfjcwuJiw0AM/e490iLBgxg4aaw4mw3R0J2Wdc2Pv1ekOXeDsCwMmcn7GaTC8P9pGKau+DjvSvDiOnw4L6PFgtj1vcmv4uTyVQb/ghi+0XTp8st1lqypn1mQOEkScgepRnelEXKhzT+Dq8ubW6jr/wBmKoBo sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-testset.api.mdx b/docs/docs/reference/api/unarchive-testset.api.mdx index bffe0e0c9f..ccb0f09614 100644 --- a/docs/docs/reference/api/unarchive-testset.api.mdx +++ b/docs/docs/reference/api/unarchive-testset.api.mdx @@ -5,7 +5,7 @@ description: "Restore a previously archived testset artifact." sidebar_label: "Unarchive Testset" hide_title: true hide_table_of_contents: true -api: eJzFV0tz2zYQ/isYnJIZWnIyPfFU124mbtraE8u9yJp4RaxEJBDAAAs5iob/vbMgKVGSH4nHnZ4sE/vCt98udteSYB5kPpYjDBSQgpxkUmEovK5IOytz+REDOY8CROVxqV0MZiXAF6VeohLU6AnwpGdQ0ODG3thTg+CDuFVokFB9AroVzgoqcSMfnNAkQunugoiV0FZ8jeg1BgFz0HYgM+kq9MBBnCuZy2hbn59aEzKTFXhYIKHnK6ylhQXKXLbnn7SSmdR8hQqolJn0+DVqj0rm5CNmMhQlLkDma0mrijUDeW3nMpMz5xdA7DUmK6TJsECLkjhXsq4nbDFUzgYMbOTt8TH/2UXvKhYFhjCLRnxshWUmC2cJLbE4VJXRRbrn8HNgnXUvsMozCqQbD4WLjVIbr7aEc/S9AE+TxH4K3wg9E7DB/g6C8EjRW1SZOBaOSvR3OuAgac4gGpL5cZ11UKY47epilmDejWnmjELPYO8IPY5onW0kbDRGMpbdFd4lgwniTM5M4ueD7jnGxo6bfsaCDnP1LlnYR+TSQIFl42nmfAfNkcElGpG8JiaPSh3Ewik0QgehU9a0s2DMSuCiopWYRhJfsCIBQYBQqDiZXBirCpnlVALlN/ZI4DcdSNu58DhDj7bAIMiJ2+QsFxdVY3jcj3tyKzwuQFuxBKNVJsAqthXIx4KiR9XEKgqwYooClEIlSvTIFcX1NossJu40lS6SmHqELxwElXhjhQjRexet4k9no4swuCc1jPFBFkAp3QR8uUOHAwZMnTMItm+3JQV/ud+MLLQvogH/6k+YovkjOHt0EamK9FruJ7xPnX1peUCPx4g34kvWmVwgwTMv27vZXonuOF5Md7/0MXoKkXfRPAFItpaacPGDWuA9rB4vyF3dnwP1Lwazztre/EOQHdj4m3XrvRJ+nqmznok6k4VHaB6oH+xeCgiPSKd4HvZy2pgVJwmsWKn/wsl1Y7Z1sn1qX9TJWWO2ddLBNV29YL/vwPpt1fb8Dq8X9dKhtfHSAfaiXjq4Nl6CifPncvWKdetMvlx4aWx58sW818Tu8znqTXKbyU+cOQzCOhLaFiaqRqSAgPysPO13Mx/VNUv/8vbt4Tj1Dz+DaVgSv3vv/PNnKYUE2vCvtlnuCxhX7Jz+TLOf1Hv9tfdGuSbA9NKE+X3T57Z3hgBz3Dbch0UTGGLEp8wYy32axbvE27ZxF/StZ+YgE6eM5Te6N1vb6XmcsGnCb+V6JNumqMnQw1CcNSl4jBrvR6PLA4MNPxZIpePNoHKhWQaolLkctrwMw/V2EaiHm/VBZjKgX3Y7Q/SGlaDSKZHNvyVRFfLhEOOgMC6qAczREgxAN4ITtlFEr2mVjJxcnn/A1XsEhV7m40lf4Ir51zBqV2yTBaj0B2Rc2v3lJFLpvP7e0KRdYcpGq07Znbl+ck9ScOLk8vxgzN054kKBIvGi85SOZbZ37e1tZSZ5/DRpq4LFr5sTzipj2Lg5HrwZHPMnTsUCbM/FdYe7GG3Wtr13fFPA/9+q2WaCuT+sDOhUnQmUdcurcbcL8S6R76yYW2pNMlkyGfOxXK+nEPDam7rmz+yRuTLJ5BK8hilnbryWSgf+rWQ+AxPwEWxefWzr77V4KOCOT5bJtAQT+T+ZyS+42l2LU38qO7quW4GTosCKeqoH7ZR5vSm7y4urkazrfwHRPZrl +api: eJzFV0tvGzcQ/isETw2wlpygpz3VtRvETVsbsdKLLcSj5UjLhCI35FCOKux/L4b70EryIzFc9KQVOS9+83E4s5EEiyDzaznBQAEpyGkmFYbC64q0szKXHzCQ8yhAVB5X2sVg1gJ8UeoVKkGNngBPeg4FjW7sjT01CD6IW4UGCdUnoFvhrKASe/nghCYRSncXRKyEtuJrRK8xCFiAtiOZSVehBw7iXMlcRtv6/NSakJmswMMSCT0fYSMtLFHmst3/pJXMpOYjVEClzKTHr1F7VDInHzGToShxCTLfSFpXrBnIa7uQmZw7vwRirzFZIU2GBVqUxLmSdT1li6FyNmBgI2+Oj/lnF72rWBQYwjwa8aEVlpksnCW0xOJQVUYX6Zzjz4F1NoPAKs8okG48FC42Sm282hIu0A8CPE0S+yl8LfRcQI/9HQThkaK3qDJxLByV6O90wFHSnEM0JPPjOuugTHHa9cU8wbwb09wZhZ7B3hF6HNE66yVsNEYylt0R3iaDCeJMzk3i54PuOcbGjpt9xoIOc/U2WdhH5NJAgWXjae58B82RwRUakbwmJk9KHcTSKTRCB6FT1rSzYMxa4LKitZhFEl+wIgFBgFCoOJl8MdYVMsupBMpv7JHAbzqQtgvhcY4ebYFBkBO3yVkuLqrG8PUw7umt8LgEbcUKjFaZAKvYViAfC4oeVROrKMCKGQpQCpUo0SPfKL5v88hi4k5T6SKJmUf4wkFQiTdWiBC9d9EqXjqbXITRPalhjA+yAErpJuDLHTocMGDmnEGwQ7stKXjlfjOy0L6IBvxPf8AMze/B2aOLSFWkV3I/4UPq7EvLA3o8RrwJH7LO5BIJnnnYwcn2ruiO4+Vsd2WI0VOIvI3mCUCyjdSEy+/UAu9h/fiF3NX9MVD/ZDDrrK3N3wXZgY2/WLfeu8LPM3U2MFFnsvAIzQP1ndVLAeER6RTPw15OG7PiJIEVK/VfOPnYmG2dbJ/aF3Vy1phtnXRwzdYvWO87sH5dtzW/w+tFvXRo9V46wF7USwdX7yWYuHguV69Yt87ky4WX2pYnX8x7Tew+n5NBJ9d3fuLMYRDWkdC2MFE1IgUE5Gflab99f1TXLP3zmzeH7dTf/AymZkn85r3zz++lFBJow19tsdwXMK7Y2f2RYj+t9+rr4I1yTYDppQmL+7rPbe0MARa4LbgPiyYwxIR3mTGW6zSLd4m3beEu6NvAzEEmThnLb3Rvtrbd83XCpgm/lRuQbJuiJkMPQ3HWpOAxarybTC4PDDb8WCKVjieDyoVmGKBS5nLc8jKMN9tBoB7344PMZEC/6maG6A0rQaVTIpu/JVGVj8fGFWBKF6jZnrJmEb2mdVI9uTx/j+t3CAq9zK+nQ4ErZl3Do12xHnuo9HtkNNqp5SRS6bz+pyFHO7iUjVadcjp3w5SeLNASiJPL84PmdmeLrwcUiQ2dp7Qts8FhQz4eQ1oegR7LTHLTadIsBctf+h3OJSPXuDkevR4d8xInYAl24OJjh7aY9MPa3uvdX9v/b8BsM8GMH1cGdLqTCZRNy6brbgLiCSLfGSy3hJpmkknC0pvNDAJ+9KaueZk9MlemmVyB1zDjzF1vpNKBv5XM52ACPoLNTx/aW/dKPBRwxyfLZFqBifxPZvILrneH4VSVyo6um1bgpCiwooHqQRFlXveX7fLiaiLr+l/y95eG sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unarchive-workflow.api.mdx b/docs/docs/reference/api/unarchive-workflow.api.mdx index 7b5eb19758..575ef196a1 100644 --- a/docs/docs/reference/api/unarchive-workflow.api.mdx +++ b/docs/docs/reference/api/unarchive-workflow.api.mdx @@ -5,7 +5,7 @@ description: "Restore a previously archived workflow." sidebar_label: "Unarchive Workflow" hide_title: true hide_table_of_contents: true -api: eJzdV0tz2zYQ/iuYPSUztOR4euKpqpNM3LSNJ7aTg6KxV+RKRAIBDB52FA3/e2fBh0jJr3jcS0+2iN1vsd8+sQGPSwfpFD4b+22hzI2DWQI5uczK0kujIYWP5LyxJFCUlq6lCU6tBdqskNeUi5tGcfRFf9HHitA6cZWTIk/5JforYbTwBW3lxKRVvUYrUXsnUOeCoZ002n3RaEnY2mgubqQvhgBs6IwoFdNPZFlF6uXsxdjSgizpjMZYyoNlkDmNrzuBlyNIwJRkkb06ySGFoBsnLltoSKBEiyvyZJmVDWhcEaTQClzKHBKQzEqJvoAELH0P0lIOqbeBEnBZQSuEdAN+XbKq81bqJSSwMHaFnu2GiOKlVyzQMi9OcqiqGUO60mhHjlGODg/5zzAiZyHLyLlFUOJjIwwJZEZ70p7FsSyVzKKr46+OdTa9m5WWifCytpCZUCs1F5ba05Js74bHUWI3La5eXYmbgrTALjRCOmHJB6spT8TVYSOgjSaxQp8VlI8izgKD8pAeVklHbby2Xn9YRN6HV1wYlZNl8gdC9zNcJZ2EDkoBU9t69DYCRsYTWKhYA3ebl+6yR2iPqrkxilD3qDpxYtIT7fm6QOWoShiMrlEF9MY+BPWmE7wdyGlZluQfgjlrxPZAqqTVM/OvlPlbsnJivVxg5t9GkvY5ZYg9+jDPJfuP6nRA5F7o2uv2cJto8pfbYSCTNgsK7Yu/cE7qT2f0wYfgy+Bfwq4//ZjvSsOe9/dlzHntPqzI4xOd7Xm2U2oDw6v58Eufo4cYeRvUA4QkG5CeVo/UQmtxfX8lDXV/jdS/mcwqabrsoyjbw/iHdaud5vQ0qNc9iCqBzBLWQ+yRbSdHTwdexvvcbeW4hhWTSFYo8//CyEUN2xjZjuNnNfK6hm2MtHTN18/YqFuy/lg3zbrl61mttGx1VlrCntVKS1dnxamwfGqunrEuT4Fnu15cPx4eCLdiDDeD8962JrAZIKNHoXfrTFWx+G9HR/vbzydUMo/zVbyxNg7HJ64+OXmUKo74uifuCiiTDU5/pafPqp022htFptkPeKC45W3b4rZFOodL2vbVu0UjGeKcTzkxNLdjFm/jq5v+nPkfPZi9UBwzlz/8reHabrvTyE19/Uaul0vbENURupuK13UI7suNd+fnp3uAdX6syBeGd/nSOB+3d19ACuM2+9x401vdq3G38kMCjux1u+YHq1gNSxlDWf8svC9dOh5TGGXKhHyES9IeRyhrwRljZMFKv44gk9OT97R+R5iThXQ66wuccQbWOTUU6+KApXxPzEzz5JgEXxgrf7aLZHx0FLVWFeO7MP3wTuLlxOT0ZG9THxxxqWAWM6O1FI8h2XF76y0kQKtYKOAJV793JxzX5okFKRyOXo0O+RMHY4W6Z+Ki5V183j61diZ2V8P/owdnE1uup3GpUMaKjzRvmlyddg8gBwmkw4fmNl1nCRSc4ukUNps5Orqwqqr48/dAlvNvlkB0b87ZMN1ALh3/nze7/j10v/jYVPVLcdeV2xzVnKD8KOFfkMA3Wu+8jmPbK9oa2DQSkyyj0vd097o0F0tXzacfzs6hqv4FJ7S7rg== +api: eJzdV0tT20gQ/itTfYIqYRFqTzqtF0KFze5CBUgO4IK21LYmGc8oMyOI49J/3+rRw5LNKxR72RNY0/319NfPWYHHuYPkCr4Y+22mzL2DSQQZudTKwkujIYFP5LyxJFAUlu6kKZ1aCrRpLu8oE/eN4uhaX+tDRWiduM1IkafsBv2tMFr4nNZyYtyq3qGVqL0TqDPB0E4a7a41WhK2NpqJe+nzIQAbOidKxNVnsqwi9XyyE1uakSWdUoyF3JuXMqP4rhPYHUEEpiCL7NVJBgmUunHipoWGCAq0uCBPlllZgcYFQQKtwI3MIALJrBToc4jA0vdSWsog8bakCFya0wIhWYFfFqzqvJV6DhHMjF2gZ7tlQPHSKxZomRcnGVTVhCFdYbQjxygH+/v8ZxiR8zJNyblZqcSnRhgiSI32pD2LY1EomQZX46+OdVa9mxWWifCytpCaslZqLiy1pznZ3g0Pg8RmWty+uxX3OWmBXWiEdMKSL62mLBK3+42ANprEAn2aUzYKODMslYdkv4o6asO19fJ0FngfXnFmVEaWyR8IPc1wFXUSulQKmNrWo+MAGBiPYKZCDTxuXrqbHqE9qqbGKELdo+rEiXFPtOfrDJWjKmIwukNVojf2Oaj3neDDQE7LoiD/HMx5I7YFUkWtnpl+pdQ/kJVj6+UMU38cSNrmlCG26MMsk+w/qrMBkVuha6/bw22iyV8ehoFU2rRUaHf+wimpP53Re6elL0q/C5v+9GO+KQ1b3j+VMRe1+7Agj690tufZRqkNDC+mwy99jp5j5LhUzxASrUB6WrxQC63F5dOVNNT9NVL/ZjKrqOmyL6JsC+Mf1q02mtProI56EFUEqSWsh9gL206Gnva8DPd53MphDSvGgayyyP4LI5c1bGNkPY7f1MhRDdsYaemaLt+wUbdk/bFsmnXL15taadnqrLSEvamVlq7OilPl/LW5es66PAXe7Hph/Xh+IDyIMdwMLnrbmsBmgIxehN6tM1XF4r8dHGxvP59RySzMV/He2jAcX7n6ZORRqjDi6564KaBMOjj9lZ4+qTbaaG8UmWY/4IHi5g9ti+sW6RzOad1XHxcNZIgLPuXE0NyOWbyNr276c+p/9GC2QnHIXP7wD4Zrve1eBW7q6zdyvVxah6iO0ONUHNUheCo3PlxcnG0B1vmxIJ8b3uUL43zY3n0OCcRt9rl41Vvdq7hb+SECR/auXfNLq1gNCxlCWf/MvS+SOFYmRZUb5+vjCWumpZV+GVTHZycfafmBMCMLydWkL3DOeVdn0lCsYx8L+ZGYj+ahMS59bqz82a6P4amR11pViOrM9IM6npP2KMZnJ1v7+eCICwTTkA+tpXAMUc9Zl8Qxhs8jlDFEQItQHuAJF793JxzN5mEFCeyP3o32+ROHYIG6Z+KyZVt8WT+wNuZ0V7n/o2dmE1uuorhQKEOdB5pXTYZedc8eBxEkw+flOkknEXDisfxqNUVHl1ZVFX/+XpLl/JtEENybcjZcrSCTjv/Pmg3/Cbp3PjW1vCseu3Kbo5oTlJ8i/Asi+EbLjTdxaHZ5WwOrRmKcplT4nu5Wb+Zi6Wr47PT8AqrqXym8uE8= sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unassign-role-from-user.api.mdx b/docs/docs/reference/api/unassign-role-from-user.api.mdx index edf80af605..5f8afd3b8c 100644 --- a/docs/docs/reference/api/unassign-role-from-user.api.mdx +++ b/docs/docs/reference/api/unassign-role-from-user.api.mdx @@ -5,7 +5,7 @@ description: "Delete a role assignment from a user in a workspace." sidebar_label: "Unassign Role From User" hide_title: true hide_table_of_contents: true -api: eJztVt9v2zYQ/leIe1kLCHYW7ElPMxYXNdqhQepsD4kRXKSzxFYiVZJKown634sj9cv2Emzr8tYnW+Tdd3ffHT+yBYeZhfgG/tTms60wIQu7CFKyiZGVk1pBDBdUkCOBwuiCBForM1WScmJvdClQ1JaMkEqg+DqgLG7VrVqZzMa3SggxbdzJVLyyzryOxTYnsbkQei9cTgeu7EElymJuGhZ6ax/SaWGo1A/kl3xynFEPoE2GSv6FXMSTUedGvZ/HmRn77ymUr3lIYXChLzVZJ15dhT+95xu0bnW5Gbf1/SdKnKfmilxt1MDOvdZFLLamJiH3UzEzpr+iFbZOErJ2XxdFI1LfkzSAobQ0YL3dbi/Xjwn55sVi4/EMCWkFKkHGaN8rH2TIy0ycppqsUNqJHB9IVGRKaa3UihmoyOy1CdVjMqPsH8asqxSdVNkY7SfrC7ULiEBXZHwbNinEUKtQ/B3v3zHnd+wAEVRosCRHhse2BYUlQQzz+YIIJI9thS6HCLhKaSiF2JmaIrBJTiVC3IJrKva1zkiVQQROuoIXxrMgNil0XTRG8SM4wH+pyTT/CX/tYebAR7P6/SE+zACPq2BKvz/CFaN03Y59baWVJcvm52dn/HMoIB/HyRVXvTFEkGjlSDk2x6oqZOKzXX6y7NNOKXRd10Xwy/n5KfAfWMg0FLnmKfsXqFAZHjknQ94pOW5K3IJ0VNpTg0InB7uomg97P4KHDDHR/YpUjjIy0O26aFhDY7CZ0fhehwShi6C02XOM/07WYkYwgj0zYf7IbXm3405XtSdk2N74hS6CxD3OYII+zWB+Yy4fHU/Pic00MTeem5B+b7ebMKYWhQ49TcVFaMHfBRtMWGhOAMN8lORyzdIRlNErhcshhuWoDXbZznWiW3rxgQgsmYdBUGpTsBNW0rcyfObOVTZeLqleJIWu0wVmpBwuUAbDHWMktZGu8SCry807at4SpmQgvtnNDT7yBIaZOjQb+4CVfEfMTH9gV7XLtelP83By8+DV+f7u9by9K5+cWF1u4PgqP9jio4KJn4whkt+G6KjsqVqIehGMwRGWv4473FfmMIQ5W/y8OOOlSltXopqFuO6VXbCAiDd8m14HZT/ItJ0O8o/3x4/3x8u/P/qzx3q3rAqUXpH9MWh7JbmZXhksGvHRmyOIyS6CXFvH1m17j5auTdF1vByuWlaHVFq8L1g691hYembyfUNZZV+Lp1L8TM3sZfKARc02XrteIM7pQ+WlI/avlSnMjj+M5Dj/P5uDAqtmHnPI5aDj/lbPB4lve5NVwmM4cz55hHAB42V1sX6/3q6h674Bs5WixQ== +api: eJztVk1v20YQ/SuLuTQBCMs1euKpQq0gQlLEcOT2YAvGmByJm5C7zM7SsUrwvwezS4qUVRttU99ykjjf82b27bbgccuQXsOf1n3mGjNiWCeQE2dO115bAymcU0meFCpnS1LIrLemIuPVxtlKoWqYnNJGofo6RDm5MTdm7rac3hil1Ki41bl6xd69TtWqILU8V3ajfEEHruJBFepyahoFvXVI6a1yVNl7CqJQnFTUB7Bui0b/hdLEk1mnRr1fiDMxDt9jqtDzUMLgQl8aYq9eXcY/vecbZD+/WO7V9u4TZT5Ac0m+cWZA587aMlUr15DSm7GZCdJfkRU3WUbMm6YsdyoPM8ljMNRMQ6y3q9XF4iGjMLxULUM8R0qzQqPIORtmFZIMdbkR09wSK2O9KvCeVE2u0szaGkGgJrexLnaP2QSyf5izqXP02mz32X7i0CifQAK2JhfGsMwhhcbE5m9FfyuY34oDJFCjw4o8OVnbFgxWBClM9wsS0LK2NfoCEpAutaMcUu8aSoCzgiqEtAW/q8WXvdNmCwl47UsR7M+CWubQdck+S1jBIfyXhtzuP8VfhDDTwI929ftTfJgEfNyFQPr9GS4lStetxZdra5hYzM9OT+XnkEA+7jdXXfbGkEBmjSfjxRzrutRZqHb2icWnHUvouq5L4Jezs+PAf2Cp89jkQrbsX0SF2snKeR3rzsnLUNIWtKeKjw1Kmx1o0ew+bMIKHiIkQPcSbTxtyUG37pJBhs7hbgLjexsLhC6BirfPIf47MeOWYB/smQ0LR24l2k4mXTcBkEG9DIIugcw/TMJEfpqE+U2wfPCyPUc248ZcB2xi+b3deowxjihO6GkozuMI/i7ZYCJEcxQw7kdFvrBCHZEZA1P4AlKY7bmBZ+2UJ7pZIB9IgMndD4TSuFKcsNZhlPGz8L5OZ7PSZlgWln1Ur8Uza5z2u+A6v1i+o91bwpwcpNfrqcFH2bu4SYdme/Sx1u9I8OiP6bzxhXX9GR7OaxG9ujDVjZ0Odb4l41HNL5bw+AI/UMkBwSzsw5ApqCGZNMvpbIZBfIJ6BklPfSl4wurXvUamKcjFNKcnP5+ciqi27Cs0kxRXPZ8roQ31Ru7Qq8jnB5W24/H98er48ep4+VdHf/aE5WZ1iTrwcDgGbc8f1+PbQqgiffTSiBSyTkBoQazb9g6ZrlzZdSKOF6ywQ64Z70ohzA2WTM9sfhiocOtr9VSJn2k3eY/cY9mITWCsF8hz/Dx56Yz9G2VMs5YPpyXP/4/mwMBmN8051HIw8XCXFwPFt73JPJM1nDgfPT2kgf0Vdb54v1gtoOu+AZQXn2Y= sidebar_class_name: "delete api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/unguard-simple-environment.api.mdx b/docs/docs/reference/api/unguard-simple-environment.api.mdx index ad90aebeee..6f595609b1 100644 --- a/docs/docs/reference/api/unguard-simple-environment.api.mdx +++ b/docs/docs/reference/api/unguard-simple-environment.api.mdx @@ -5,7 +5,7 @@ description: "Unguard Simple Environment" sidebar_label: "Unguard Simple Environment" hide_title: true hide_table_of_contents: true -api: eJzNWM1u4zYQfhViTgnAyOmiJwEFmm6y3XTbbpBkc0mMhJbGNrc0pSUpY11B1z5AH7FPUgwp2ZTs/DYL1BdL4sw3M98MRxzV4MTMQnoNJ3opTaEXqJ2FMYeiRCOcLPRpDilUelYJk99auSgV3uJGGDiUwogFOjQEVIMWC4QUIplbmQMHqSGFUrg5cDD4pZIGc0idqZCDzea4EJDW4FYlaVtnpJ4Bh2lhFsKRC5VHcdIpEoj8Zac5NM2YUG1ZaIuWgN4cHtJfjjYzsqRIIIWLKsvQ2mml2HkrDByyQjsKJa1BlKWSmQ989NmSTh05VxqixclgISuqoNT6LLXDGZrIybdegkOOU1EpB+lhw2NivEW9+jj1xPXRp8pn5n4BaW99UojFtQ+TolAodOTDqWU/t2KRI1OhLDYN7/SKyWfM3G5+33lPGr42oiuloBmT9paPIs8lsSfUWc/bjcTA0wi3TTo92Q0DmTRZpYTZ+1VMUP1iC33wsXJl5fZhGAoVRBfMUBq2At+ObqN9GcKHBTrxwmCjyAbF0jO8mPSfxBw9xsi7Sj1CCK9BOlw8UUsYI1YP8jLQfR6pvxGZDW+7xZMo28L4nXQb3t/jL4M6jiAaDplB4TC/Fe4hwKg75cLhgZPen/utvA2w7MiTVZX5tzDyKcC2RnJU+A2MHAfY1khH12RFrf5pdnw/fwpZP618g9/w9apWOrbWVjrCXtVKR9failXV7KW1ekG6DYfXc6+NXAz7W/+FY3CKBnU27HH3dsF7nvdRl2jsf9i4V636/5LTB96v5x2Zu9rmM/ro+SYpT3ydn+NSEmXHlO5B84QzNAeiLNkm12xaGBadWZhp9RnVS3Kjb/QHXFkmDDJRlgc2K0rMmcxROzmVaCzbw2SWcHZ3dwOlwaQDuIG7u/3kRl8JVWEAyGXmLCumjJTd6oDCYf/89Tdbh8lZaYqlzKWesWmlFHNGZCgmUkm3SlNyhzHG6vBHv6HRNF4MAtGpj9bXxvZk/kOSJJxRaYWrtlzpZp8/gHO7FEYK7V4NLw7gBYBNdJ0kSbhpdp/qWtdfsf9dBcS2+XWhvKKBrqjZI9vuwg8w0W7YxcBz9NdjRNOQ3vdv3mxPHVdCydxnkZ0YU5iXjxw5OiGVP/2Hk9xQQBVZb/U5J9FxMzj8RQfoIjjoj8F2tmtQ2xzsrBWzqK3dL+rJYJe0Sq1X0yGSxLsOqttTZea+RjBbOXlLXH51O/O+GTSvPTfB/VauV6BdikKG7qfiOKTgoSJ5f3l5tgUY6qNfGJ/CWM1CVbGT3li9QDcvaPguCxvGbDeHFEZhBh9FLdmO6v603YzagR04WDTLbjSvjCIEUUpfAOF27lxp09EIqyRTRZUnYobaiUTIIDgmjKwy0q08yNHZ6QdcvUeRo4H0ehwLXFDdhkrsi62zJ0r5AYnP9jPBUeXmhZF/hvJqvxLMg1bjq2JaxEVx5J1jR2enW++u3hJtMJH5euos+WXgg7A30QIHXPjtBQ7F4sf1ClXD+pgCh8l3ySE9orwshI5MPJjPwZTS8kGVOyqVkH5vedfqNtXXEFINvW8GFjikWx9XunyPOcypXNJrqOuJsPjJqKahx18qNJTAcdvfJ0TndQ25tHSdt98EtvxcdyrYO2830z7bjIl9/7ska8rwkt7rkAJw+ANX25+EfMOZd3VUt0JHWYali9S3+iMV3HpznH28uISm+Rf6qGQ4 +api: eJzNWM1u4zYQfhViTgnAyOmiJwEFmm6y3XTbbpBkc0mMhJbGNrcUpSUpY11B1z5AH7FPUgwp2ZTt/DYL1BdL5Px+MxzNsAEnZhbSazjRC2lKXaB2FsYcygqNcLLUpzmkUOtZLUx+a2VRKbzFNTFwqIQRBTo0JKgBLQqEFCKaW5kDB6khhUq4OXAw+KWWBnNInamRg83mWAhIG3DLiritM1LPgMO0NIVwZELtpTjpFBFE9rLTHNp2TFJtVWqLlgS9OTykvxxtZmRFnkAKF3WWobXTWrHzjhg4ZKV25EragKgqJTPv+OizJZ4mMq4yBIuTQUNW1oGps1lqhzM0kZFvPQWHHKeiVg7Sw5bHwHiNevlx6oEbSp8qH5n7CaS99UEhFFc2TMpSodCRDaeW/dyRRYZMhbLYtrznKyefMXO78X3nLWn5SomulYJ2TNxbNoo8l4SeUGcDa9cUG5ZGcrug08puMZBJk9VKmL1fxQTVL7bUBx9rV9VuHzZdoYTondmkhi3Ht71bc18G96FAJ17obOTZRrIMFBeT4UqM0WOIvKvVI4DwBqTD4olcwhixfBCXDd7ngfobgdnyrlo8CbItGb8Tb8uHZ/xloo4jES2HzKBwmN8K95DAqDrlwuGBk96e+7W8DWLZkQerrvJvoeRTENspyVHhN1ByHMR2Snq4Jksq9U/T4+v5U8D6aekL/BqvV9XSo7XS0gP2qlp6uFZarKpnL83VC+JtObyeeZ3nYrO+DT84BqdoUGebNe7eKnjP+lDqAo39Dwf3qmP/X2L6wPf1vAdzV9l8Rh09XwfliZ/zc1xIguyYwr1RPOEMzYGoKraONZuWhkU9CzMdP6N8SW70jf6AS8uEQSaq6sBmZYU5kzlqJ6cSjWV7mMwSzu7ubqAymPQCbuDubj+50VdC1RgE5DJzlpVTRsxueUDusH/++put3OSsMuVC5lLP2LRWijkjMhQTqaRbpimZwxhjTfij36bSNN4MBFHXR/srZXsy/yFJEs4otcJTl670ss8fkHO7EEYK7V5NXuzACwS20XOSJOGl3d3Vdaa/Yv27ChK74te78ooK+qRmjxy7Cz/ARKdhFwLP4V+NEW1LfN+/ebM9dVwJJXMfRXZiTGlePnLk6IRUvvsPndwmgSqzwe5zOtFxu9H8RQ10GQz0bbCd7RrU1o2dtWIWlbX7ST0Y7JJ2qfRqaiKJvK+guusqM/c1ErMVk7eE5Ve3M+7rQfPaYxPM7+gGCdqHKETofiiOQwgeSpL3l5dnWwJDfgwT41MYq1nIKnYyGKsLdPOShu+qtGHMdnNIYRRm8FFUku2oGU7b7agb2IGDRbPoR/PaKJIgKukTILzOnavS0UiVmVDz0rqwPSbOrDbSLT3r0dnpB1y+R5GjgfR6HBNcULaG/BuSrWImKvkBCcXucuCodvPSyD9DUnV3A/PA1fpcmJZxKhzNUDvBjs5Ot75Ygy06ViLzWdRr8tvAI2dtOhoJv5wIOQIOWPhDBQ5F8eNqh3Jg1ZzAYfJdckhLFI1C6EjFg1HcmE06PChfR5US0p8ob1rTBfgaQoBhcFNggUO6daXSR3nMgSJHzE0zERY/GdW2tPylRkMBHHdVfUJwXjeQS0vPeXcTsGXnqj7B3nl3hPbZejgc2t8HWVOEF/Q1hxSAwx+43L4I8mVm3udR0xEdZRlWLmLfqoqUcKsjcfbx4hLa9l8i1mDZ sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-organization-provider.api.mdx b/docs/docs/reference/api/update-organization-provider.api.mdx index f6cd7c9e54..0875bd498b 100644 --- a/docs/docs/reference/api/update-organization-provider.api.mdx +++ b/docs/docs/reference/api/update-organization-provider.api.mdx @@ -5,7 +5,7 @@ description: "Update an SSO provider configuration." sidebar_label: "Update Provider" hide_title: true hide_table_of_contents: true -api: eJzVV1Fv2zYQ/ivCYQ8rpthpsCc91UtbJOi2GHG6F8MLLtJZZiuJLEmlcQX99+FIyaLs2s0C7GF5cUTefTzefd/p1IDF3ECyhBudYyW+oRWyMrCKISOTaqH4GRL4qDK0FGEVLRY3kdLyUWSko1RWa5HX2rlNIAapyD9cZ5BA7bzuZYB93/tCDAo1lmRJcwQNVFgSJNAb3IsMYhB8ukK7gRg0famFpgwSq2uKwaQbKhGSBuxWsauxWlQ5xGCFLXhh3gd6nUHbrjwEGfubzLbst4+YyspSZXkLlSpE6mKefjKchCY4UGm+qRVk3HpR586n2t6s3V32A1JoLWm+y99LPPt2tvrlJ2jjnV1VFwVwfH3gC0Zs4y4nx5FPYfzJvu1eJV8G9TaAaGNYF441IRZmmeBtLOZBanxWO1T58IlSe/Kc9w64jcGQtaL6bw5Z9Nhtu+82GIV66FnkRQD72rj1nIpKmVERraWOHO9Fle/rZQJty4dqMkpWxpPn4vycf8aYizpNyZh1XUS3nTG8mJ4i+55G1lKXaFmltVNaf3OWSryj9DFl/V8I+mzG/IiELwAaiBZDqgktZfdoT9aCCXZmRUkBzKV3jWZM666n9kDHO853IE8l0HO7P2TUsf8dfULh+LZ7mKCh7S7BOTu2dWQa86GvZVCNUTJHCTkMfHVa0YG29jXtNwJRH9HyrxcXh/L9CwuR+RS801rql2s3I4uicCq2VJpDg0Kmo91nqEdUlnLS0K6G2qDWuA3K+Lv0ATIbSnOyFfxBxmDulOxNjpu6ZER3vNvyu13VXg5963ELrBb7FMAcCOuSc/lkf8gtzo0Pv7ML6DCUyFfoeCre+hKceltc3d3NDwA9P0qyG5n5ISbd+FFgAwlMQ6qaaU8rM22CAah1vNeP/YhU64JdUQlXT/+4sVaZZDqlepIWss4mmFNlcYLCG64YI621sFsHMptff6DtFSFPYclyFRosmIaeWGOzXTFQiQ+07cWawKy2G6m7e/QD28Z78f2Z4LfD1PXuCUtV0DA1DSTpAHfPY0kNjafr7eMG3To+rWVIp5nLQzSbXx+gjbZYmpg6JvaXctvcXEYZHhILMVDphAmWsHyz22Eecbn8MeeT15NzXlLS2BKr4Ihuop4P4/Dea3DXMJ49fHcVYmlMVYHCidfdoOlYtxw1SG6lO95BDEk4eq9i2Ehj2adpHtDQR120LS9/qUkzk1YxPKIW+MDJXjaQCcP/Z5CssTB04kI/33YifRUdC7tnW8VUe8Si5ieI4TNt974RXBfb9GxuOotLf9iZ6zUDwkHrZRl5j1makrInbVeBnOezu8sriOGh+5TgFwUkoPErNyH86sOVyieavzV4rYECq7zmdpmAB+W/fwCEsKby +api: eJzVV8Fu4zYQ/RVh0EOLKnEa9KTTutktEmzbGHG2F8MNJtLY5pYSuSSVjVfQvxdDShZlr71pgB6aiyNy5nE4895o1IDDtYVsAbdmjZX4gk6oysIyhYJsboTmZ8jggy7QUYJVMp/fJtqoJ1GQSXJVrcS6Nt7tHFJQmsLDTQEZ1N7rQUXYD70vpKDRYEmODEfQQIUlQQa9wYMoIAXBp2t0G0jB0KdaGCogc6amFGy+oRIha8BtNbtaZ0S1hhSccJIXZn2gNwW07TJAkHW/qGLLfvuIuaocVY63UGspch/z5KPlJDTRgdrwTZ0g69dlvfY+1fZ25e+yH5BG58jwXf5a4NmXs+WP30Gb7uyqWkrg+PrA54zYpl1OjiOfwviDfdu9Sr4O6m0E0aawkp41MRYWheBtlLMoNSGrHap6/Ei5O3nOrx64TcGSc6L6bw6Z99htu+82GMV66FkURAD72rgLnEpKVZBMVsoknveiWu/r5Rzalg81ZLWqbCDP5cUF/4wx53Wek7WrWiZ3nTG8mp6i+JpGVsqU6FiltVdaf3OWSrqj9DFl/V8I+mLGfIuErwAaiJZCbggdFQ/oTtaCCXbmREkRzFVwTaZM666n9kDHO85XIE8lMHC7P2TUsf8dfWLhhLZ7mKCh7S7AO3u2dWQa86GvZVSNUTJHCTkMfHla0ZG29jUdNiJRH9Hyz5eXh/L9E6UoQgreGaPM67VbkEMhvYodlfbQQKp8tPsC9YjK0ZoMtMuhNmgMbqMy/qZCgMyG0p5sBb+Ttbj2Sg4mx019MpJ73m353a7rIIe+9fgFVot7jmAOhHXFuXx23+QW5yaE39lFdBhKFCp0PBVvQwlOvS2u7+9nB4CBHyW5jSrCEJNvwiiwgQwmMVXtpKeVnTTRANR63punfkSqjWRX1MLXMzxunNPZZCJVjnKjrAvbS/bMayPc1rtOZzfvaXtNyLNXtljGBnMmX6DT2GxXAtTiPW17iWYwrd1GmS76fkzbBC++NdP6bpi13j1jqSUNs9JAjQ5w9zwW0tBuuo4+bsutZ9FKxSSarqlymExnNwdooy0WJOaef/2l/Da3lF1ebTaZoF8+RzGBFKj0cgRHWL7Z7TB7uEjhmIvzn84veEkr60qsoiO6OXo2DMF7L79dm3jxyN1ViAUx0RKFl6y/QdNxbTFqi9xAd2yDFLJ44F6mwBRin6Z5REsfjGxbXv5Uk2EmLVN4QiPwkZO9aKAQlv8vIFuhtHTiQt/fddL8ITkWds+2iqn2hLLmJ0jhb9rufRn43rXp2dx0FlfhsDPfYQaEg4bL4gke0zwn7U7aLiMRz6b3V9eQwmP3AcGvB8jA4GduPfg5hKt0SDR/YfBaAxKrdc1NMoMAyn//AB0Po5M= sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-organization.api.mdx b/docs/docs/reference/api/update-organization.api.mdx index 8e5fb7984d..9fce651777 100644 --- a/docs/docs/reference/api/update-organization.api.mdx +++ b/docs/docs/reference/api/update-organization.api.mdx @@ -5,7 +5,7 @@ description: "Update Organization" sidebar_label: "Update Organization" hide_title: true hide_table_of_contents: true -api: eJztVk1v4zYQ/SvGnFqAtdOgJ53q7gfW2G5jJE57MIxgLI1l7koil6SSuAL/ezGkbEm2E3Rd7K25OCJnHodv3gynAYe5hWQJNybHSv6NTqrKwkqA0mTC1yyDBGqdoaMH1bMCARoNluTIMEQDFZYECfSNHmQGAmQFCWh0WxBg6GstDWWQOFOTAJtuqURIGnA7ze7WGVnlIMBJV/BCP7TRLAPvVxGGrPtNZTv2PUZNVeWocryFWhcyDd6Tz1ZVvNYdqg1f1EmyYb2o8+BT7W424U7DoLw4rFR1UQBHsg/zjn29aFm4DOMP9vUCMrKpkTrQfCHU2x6EF7ApQqL7WJhlkrexmPdIiPy1qGr9mVL36jnvA7AXrUSyB3SXhnwfEUZTB94fx3BeD9EFvGcHQ1arysZUXl9d8c+ASbir05Ss3dTF6LY1hovFIrNzqt0oUzIFUNdB+/uoWbjif4H9B4G573TAosUvyeH3wP/EuF6AeqrIPHybam7YZxS1U1K5Dq22AemotKc4XdGgMbiDfgzR13MzfpSu7fM9qJd9Zz0HL+BJmS9WY0qXRfJX536uyLtGvoTAxIG11fkO0Nb+L9fXp+X+JxYyi+/GO2OUubzWM3Ioi8GFhwaFSge7/6KiZOUoJwN+9TJbv6sU9xVW2vy1Z/ITWYs5ddS/bBrIGC14NwhC14GQLuG84AWk7rkHc9KI3zCXz+ebdT+PzE0Mv7XrpbJLUczQy1S8jSl47WX4sFjMTwCjPobCiM/G6GY4zpTktoqnHb6+iANLApP+PGMnzdF440GAJfO4H4JqU7ATahlyHT+3zmmbTCZUj9NC1dkYc6ocjlFGwxVjpLWRbhdApvPZR9p9IMzIQLJc9Q3uWKJRdEOzQ6JQy4/E1LUD2bR2W2W6e4ZxbBu9mBsW/203T717xlIX1M1DnYBawMP3kNWum7VvwdFU0GsOstqovuSmgY/RdD47QR1scfliGtS6v1zYBnHEdEcwCKAyFC84wvLXww7HwWmLx1yNfx5f8ZJW1pVY9Y44r5ajJ7TlngtioguUoWRDTE2rpOVgMrYgIDkelVcCtso6tm2aNVq6N4X3vPy1JsPaWAl4RCNxzbQtG8ik5f8zSDZYWDoJ69Dv4IfbtiR/HIE4H+5ePxWL5xGLmr9AwBfanZnrQ9/a7jXatFZv4oE/he7SoZw0Wy6O6DFNU9LuVdtVrzjn9wsQsG4H/1Jl7GLwiZsOPsWAlT68b2GtgQKrvOb2mECE5L9/ACzmdBw= +api: eJztVk1v4zYQ/SvGnFqAjdOgJ53q7gfW2G5j5KM9GEYwlsY2dymRS1JJXEH/vRhStijbCbou9tZcHJEzj8M3b4bTgMe1g2wO13aNlfwbvdSVg4UAbciGr2kBGdSmQE8POrECAQYtluTJMkQDFZYEGaRGD7IAAbKCDAz6DQiw9LWWlgrIvK1JgMs3VCJkDfitYXfnrazWIMBLr3ghDW00LaBtFxGGnP9NF1v2PUTNdeWp8ryFxiiZB+/xZ6crXusPNZYv6iW5sK7qdfCpttercKdhUK3Yr1S1UsCR7MK8Zd9WdCych/EH+7YCCnK5lSbQfCbU2wSiFbBSIdEpFhaF5G1Us4SEyF+HqpefKfevnvM+ALeik0jxgP7ckO8jwmjioW0PYzith+gCbcsOlpzRlYupvLq85J8Bk3Bb5zk5t6rV6KYzhrPFIotTql1pWzIFUNdB+7uoWbjif4H9B4H573TAXYdfksfvgf+JcVsB+qki+/Btqrlmn1HUTknlMrTaBqSn0h3j9EWD1uIW0hiib8vN+FH6rs8nUC/7ThOHVsCTtl+cwZzOi+Sv3v1UkfeNfA6BiT1ri9MdoKv9X66ujsv9T1SyiO/GO2u1Pb/WC/Io1eDCQwOl88Huv6goWXlak4V28TJbv+scdxVWuvVrz+Qncg7X1FP/smkgY3THu0EQpg6E9AnnhVZA7p8TmKNG/Ia5fD7drNM8Mjcx/M4uSWWfopihl6l4G1Pw2svw4e5udgQY9TEURnw2RtfDcaYkv9E87fD1RRxYMhin84wbNwfjTQsCHNnH3RBUW8VOaGTIdfzceG+y8VjpHNVGOx+3F+yZ11b6bXCdzKYfafuBsCAL2XyRGtyyMKPUhmb79KCRH4kJ68awSe032va3C0PYJnoxIyz5m36KeveMpVHUT0G9bDrA/feQy76HdS/AwSyQtARZrXQqtMmaKo+jyWx6hDrY4qLFPGh0d7mwDSLh12XjMYblC5RjEEBlKFnwhOWv+x2Og5MVj7m8+PnikpeMdr7EKjnitEYOHs6Oey6DsVEoQ6GGmJpOP/PBPOxAQHY4IC8EsCjYtmmW6Ojeqrbl5a81WdbGQsAjWolLpm3eQCEd/19AtkLl6CisfZeDH266QvxxBOJ0uDv9VCyeR1Q1f4GAL7Q9Mc2HbrXZabTprN7EA38KPaVHOWqxXBLRY5LnZPyrtoukJGf3dyBg2Y37pS7YxeITtxp8igFrs3/VwloDCqt1zU0xgwjJf/8AwXZwvQ== sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-project.api.mdx b/docs/docs/reference/api/update-project.api.mdx index 9a76ec2aaa..00161cca63 100644 --- a/docs/docs/reference/api/update-project.api.mdx +++ b/docs/docs/reference/api/update-project.api.mdx @@ -5,7 +5,7 @@ description: "Update Project" sidebar_label: "Update Project" hide_title: true hide_table_of_contents: true -api: eJytVk1v4zYQ/SvGnFqAtdOgJ53qZheIsd2u4U3aQyAEY2lscSOJXJJK4gr674sh9WlnjcJbXyyRw+HwvTdPrMHh3kL0AGujvlDiLMQClCaDTqpylUIElU7R0aMOASBAo8GCHBleWEOJBUEE7fyjTEGALHkEXQYCDH2tpKEUImcqEmCTjAqEqAZ30LzSOiPLPQjYKVOg4y0rn8VJl3NAW9tslULTxCEjWfeHSg+c5niDRJWOSsdTqHUuE3+WxRerSh4b9teGT+okWX4L56gBy8OnnT/ZtL5G9CNllefAlXQV/sVrGwEFPtFjSjuscvdmrq1SOWF5NtlHfKLZuzZJ04guUG1bArrAe89Mi84mgAJNw0sMWa1KG052fXXFfynZxEjNYEAEn6skIWt3VT7btMFwMXbK7LGU//pgVsAZGI9pPofEp1Faz76Y7vQjlE1yd/y9KPNkNSb0Px7iny5ne4Jhjx8pf8ja1T5qwAt7a8jRVXac5XhVt7e0nep7n4hOND8sX9lO37N1byt92+wwt9QIqCyZR6PyizG6t2RmG07QlVioi7vS11yoNxtycKCHqQ9O8IxP8LN954Wu/e36+rRR/8ZcpkGm741R5vIuTcmhzPlJOirsaUCuksnsfwBdlo72ZKCJB1zQGDyM6P5ThQK9Q9r9OWF9JGtx7wkLId8P9WDM7niW6S11FUTX8eUHGgGJex2lOTHRG8by9W2jHfPK2ITy27gRnQNFgaHvQ/EuUHDO1W/v7tYnCYM+psII9j/qoIJcptLw5U0y/6V2GUSwaGVoF/WgzgYEWDLP3We8MjmHopae3vCaOadttFhQNU9yVaVz3FPpcI4yBMacI6mMdAefZLlefaDDLWFKBqKHeBzwmVUZdDYN67lBLT8Qo9VeKZaVy5RpPbq7VWRhFcPBet8Md4H3r1jo4BZtgl4z0+8yXxO8ZHZqrJilP9tsuV7BMdSTKe4+DA7XFeqnQRyhNoAFAqjwvQeOsPi9n2GpMAVhm6v5r/Mr78PKugLL0RYnZE8K7CFkKS90jtI3my+nbmXQW5MFAdHIpmIBmbKOI+p6i5buTd40PPy1IsPExgKe0UjcMk4PNaTS8nPaevVJMb0/wU+btoV+noF4u8iO/JKZf8a84jcQ8ESH6bXSW0zWaatuA27CXr94IxgSnPgiizqsWCYJaXc2Nh4103p5d3MLArbtdbNQKS8y+MIOgS+hWuUP79Xtx2rIsdxX7GURhKT8+wbz6Oqd +api: eJytVk1v2zgQ/SvGnHYBbpQGPem03rRAjH4ZbrJ7CIxgLI0tNpSoklQSr6D/XgypTzs1Fu7mEoucGQ7fe/OkGhzuLMT3sDT6GyXOwlqALsmgk7pYpBBDVabo6KEMASCgRIM5OTKcWEOBOUEM7f6DTEGALHgFXQYCDH2vpKEUYmcqEmCTjHKEuAa3LznTOiOLHQjYapOj4yMrX8VJpzig7W22SKFp1qEiWfeXTvdc5vCARBeOCsdbWJZKJv4u0TerC14bzi8N39RJsvwU7lEDFvsvW3+zaX+N6FeKSingTroOP3NuIyDHR3pIaYuVcq/W2mitCIuTxT7hI83etUWaRnSBetMS0AXeeWZadFYBFGgaTjFkS13YcLOry0v+l5JNjCwZDIjha5UkZO22UrNVGwxnY6fNDgv5rw9mBZyA8ZDmU0h8GZX17IvpSb9C2aR2x9+zNo+2xIT+x0v809VsbzCc8SvtD1W73kcDeOZsDTW6zg6rHGZ1Z0vbqb73ifhI80P6wnb6ni17W+nHZovKUiOgsmQejFZnY3RnycxWXKBrMddnT6XvOdevDuTgQPdTH5zguT7Cz/aTF6b27dXV8aD+jUqmQabvjdHm/ClNyaFU/Es6yu1xgNLJZPc/gC4LRzsy0KwHXNAY3I/o/qhDg94h7e6UsD6RtbjzhIWQn4d6MGa3vMv0FmUVRNfx5RcaAYl7GZU5MtFrxvLldaMd88rYhPbbuBGdA0WBoZ9D8S5QcMrVb25vl0cFgz6mwgj2P5qgnFym0/DmTTL/pnYZxBC1MrRRPaizAQGWzFP3Gq+M4lAspac3PGbOlXEUKZ2gyrR1YXvNmUllpNv71Ply8YH2N4QpGYjv1+OAr6zFoK5pWM8IlvIDMUbth8S8cpk2rTN33xJZyGIQWOWr4Qvg/QvmZfCItkCvlOnbmD8OvFC2eqyT+Y4Kh7P5cgGHAE+2eOYw+FrXqN8GMcLKxlGEfvkCZQQCKPcTB44w/7PfYYEw8OGYy4s3F5fefbV1ORajI44onjTYQ8gCjkqF0o+Yb6duye8NyYKAeGROawHMKEfU9QYt3RnVNLz8vSLDxK4FPKGRuGGc7mtIpeXfaevQR830rgS/rdrB+X0G4vUmO/ILZv4JVcVPIOCR9tOPSW8sWaetug24Dmf94cd/KHDkhizlkDFPEirdydj1aISW89vrGxCwaT8yc51yksFn9gV8Dt1qf3mvbr9Wg8JiV7GDxRCK8t8P1OrnPg== sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-secret.api.mdx b/docs/docs/reference/api/update-secret.api.mdx index 7f98acc824..230f7fb184 100644 --- a/docs/docs/reference/api/update-secret.api.mdx +++ b/docs/docs/reference/api/update-secret.api.mdx @@ -5,7 +5,7 @@ description: "Update Secret" sidebar_label: "Update Secret" hide_title: true hide_table_of_contents: true -api: eJztWVtv2zYU/ivGedoALs6CPelpaVpgQdo1aJLuITAMRjq22FCkSlKpVcP/fTik7o6VxCmwYXNeYvHy6Vy+c6G4BseXFqJbuMLYoLMwY6BzNNwJrc4TiKDIE+5wbv08MMi54Rk6NLRtDYpnCBGE6blIgIFQEEHOXQoMDH4thMEEImcKZGDjFDMO0RpcmfuNzgi1BAZOOEkDQZDJeQKbzSwAoHVvdFLSriFerJVD5WiK57kUsRd8+sVqRWPt63JDajmBlp5S5Akav0uVHxdek/6KoFd3vi/whjUjqpASSNZahT9p74ZBgjY2IieJ9oV624HYbFi9Tt99wdh1rPZHUGgbasMq34wpey9U8phPUBUZkSM3+kEkaOb3WAKDuLBOZ/N6FBhYq7uP3/Au1fq+HZoN/XtBbyQTccdfI5nOUXFBMukUDQIjJBtzST8TxFyoheE0LDFPucxTelga/RUYZEKJjK/8L+sMl+0vj8mVS43ORUy0R5NLXAlX+imnl+hSNHP/RFIYXTiv/BIJt6ey4yrhJrmszFEr35hni59k55EYucDyUTa00XHrIUZkuELnhFrat9cfn4YieTvijsB6OPZSLwZCkcW/F96Jd5gYHd8Ts/gSM37vLfuAxuGqNfm/3vFnXq/nu70wct9EcWMkYT+gsa9IN5+r7RtWU3AfFE9PBrhyhts+CE8SQcmMy8uO5iGX9yk49oJ3AXksIfZN32M7g0wnKL1kwmFmtx1hZbEcLVI0/0+p2A1NL+gW4z6QfgOdKxRuDC87mnwIpujQcl4rv4/ra4NPagt5U1PdGFipMfwQuy/o2Lu86JMLgn5pBmsosDNYH09ku0M3lgKVb4BGaHPmF/nehtU72ur8xK5QOGmnsLZAM6+yxa5t537VpEoMNtY59ik/bvkO2cPWmu7ej8/m+IDRT3qqtePQQj29G4W6tejq4z7V7dGy1kK9lAg/vnT/FbqpH6XbAM7DdDtO6sieGU++e9vq7WqLDRrRkWR9488Ynd0bWm3Q5lrZYNaT42P612up4aqIY7R2UcjJp2ox7H0mODTBhyb40AQfmuBDE3xogg9N8KEJPjTB//cmmEFg8q4cwGChTcYdfSUvRDIap4Hu7Xfn/8bXZpBigXEZy4H0g7RgkDtM5tztK9hZQJic+tAPVxKvwQsHjiHeXTkfd/hzIN+UVWprUV8POeqN97jkcfm+9sTzj1+7TnQNT7dOLPUpqz2k/XZysn0u+8ylSPypa/LOGG32P5Ql6LiQI02K1HFv9hl2Fsrhkug7253u3+sgoK/edrQN+oCW+vO2duxe6o0xuaZZSi4qL0LNq3OEH6Cq6FYdmO22jmy5ck8mPrJNEL9a121yGxcFD+02xdvggtF8cH19uQUY+NEnRmB0XcUZZOhSTbeMpDgLl4YRTEOxs9N1c624oWKH5qG+dvRlH6Y8F96z4TF1LrfRdIrFUSx1kRzxJSrHj7gIC2f+LqwwwpUe5PTy/ALLKplFt7PugisiZKBYf1njFp6LC/8loLoCPS1cqo34HnhTXYNWgUSWIKp/am8z3614loe82VaF+ja1Jk7fem2T0vZL4VQ5/DhRf1GoZptzYrdi+xrdYHpnCbXQXUKeevtNTi/Pt2TpTVFw89h1NAjTwAaeaR1CB9/MhzY45NnvzUzvAAfHR78eHfvGXFuXcdV5xZBLg/pXeYkCZZpLLnwoV91i4NltZUYLDKL2AnvGINXW0fx6fcct3hi52dDw1wINMWfG4IEbwe/ISLdrSISl3wlECy4tbonS5D746VMVnj9PgD0uYs0uRX584LKgJ2C1uxoxffaqmXNbu/MsvOoXn2Pa/Vspl4Im7DiNY8zd6NpZJ1Avb67p00R1HU8HCIjA8G+Uevi3IKr2mvvY8WNrkFwtC0qSEQRI+vsbYW8pwA== +api: eJztWd1v2zYQ/1eMe9oArs6CPelpaVJgQdI1aJLuITCMi3S22VCiSlKpXcP/+3Ckvh0rqVNgw+a8xCJ5p/v43Ze4BodzC9EdXFNsyFmYCNA5GXRSZ+cJRFDkCTqaWr8PAnI0mJIjw2RryDAliCBsT2UCAmQGEeToFiDA0JdCGkogcqYgATZeUIoQrcGtck/ojMzmIMBJp3ghCDI6T2CzmQQGZN1bnayYqs8v1pmjzPEW5rmSsRd8/NnqjNea1+WG1XKSLD8tCBMynipbfZh5Tbongl7t/a7AG1GvZIVSwLJWKvzJtBsBCdnYyJwl2pfVWYvFZiOqc/r+M8WuZbU/gkLbrDai9M2Qsg8yS57yCWVFyuDIjX6UCZnpA61AQFxYp9NptQoCrNXtx690v9D6oVma9P17wW9kE6HD10imc8pQskx6QYZAMCcbo+KfCVEus5lBXlaUL1DlC36YG/0FBKQykyku/S/rDKrml+eJmVsYncuYYU8mV7SUbuW3nJ6TW5CZ+ieWwujCeeXnxHw7KjvMEjTJVWmOSvnaPFv4ZDsPxMgFrZ5EQxMdd57FgAzX5JzM5vbs5sPzrFjelrgDbD078b1eDIBii38rvBPvKTE6fmBk4ZxSfPCWfSTjaNmY/F/v+FOv18vdXhi1b6K4NYp5P5Kxr0g3n0ryjagguA8XD08BtHQGbZcJJonkZIbqqqV5yOVdCA694F3gPJQQu6bvoF1AqhNSXjLpKLXbjrCqmA8WKd7/p1Rsh6YXdAtx71m/ns4lFzQGVy1N3gdTtGA5rZTfx/WVwUeVhbypuW70rFQbvs+7K+jQu7zoowtm/b0ZrIbAzmB9OpHtDt1YScp8AzQAm1N/yPc2oqJoqvMzVKFwMqW0tiAzLbPFLrJzf2pUJgYb65y6kB+2fAvsgbSCu/fjizHeQ/Sznmrs2LdQR+9aoXYtuv6wT3V7sqw1rL4XCD++dP8VuqkfpVuPnWfT7ji5I3thPPnubau3qyzWa0QHkvWtnzFa1Bs+bcjmOrPBrMdHR/yv01LDdRHHZO2sUKOP5WHYeyY4NMGHJvjQBB+a4EMTfGiCD03woQk+NMH/9yZYQEDyrhwgYKZNio6/khcyGYzTAPfmu/N/42szKDmjeBWrnvS9tGAIHSVTdPsKdho4jE586IcridfwCwNHn9/9ajrs8JewfLsqU1vD9fUsB71xSXOMV5eVJ14+fu2a6Gqcbk0s1ZTVDGm/HR9vz2WfUMnET12jd8Zos/9QlpBDqQaaFKXjzu4L7CwzR3OG72R3ur/UQUBfve1gG/SeLPfnTe3YfdQbY3TDu5xcsrwINa/KEX6Bq6Jbtthst3Vsy6V7NvGxbYL45bl2k1u7KHhotynOggsG88HNzdUWw4CPLjACoqsqLiAlt9B8y8iKi3BpGME4FDs7XtfXihsudmQeq2tHX/ZhjLn0ng2PC+fyaDxWOka10NaF7Ym/ASuMdCtPenJ1fkGrMoVFd5P2gWuGYQBW91jtDMzlhZ//y4vPk8IttJHfAlrKy88yfFh/BvjH5g7z3RLTPGTLphZUd6gVXLo2a1qTpksKs2T/k0T1HaHcrafDdp32lbnm6V0ks5luw/BkTpnD0cnV+ZYsnS0OaYxdS4OwDaLlDxuNx+iX36Ac87ib+oAGR5j+Xu90xjY4evPrmyPfjmvrUsxar+gjqFf1Si9xeIxzhdIHcNkjBnTdlWa0ICBqrq0nAhgyvL9e36OlW6M2G17+UpBh5EwEPKKReM9GultDIi3/TiCaobK0JUqd8eCnj2VQ/jwC8bSIFboy9uMjqoKfQFTuqsX0OatCzl3lztPwql98ZmnotxIth0qgOIljyt3g2UkrPK9ub/iDRHkJz2MDRGDwKycc/BpE1V5zHzt+bQ0Ks3nBqTGCwJL//gbOGCZh sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-session-identities.api.mdx b/docs/docs/reference/api/update-session-identities.api.mdx index 10bc728d70..2c059892fc 100644 --- a/docs/docs/reference/api/update-session-identities.api.mdx +++ b/docs/docs/reference/api/update-session-identities.api.mdx @@ -5,7 +5,7 @@ description: "Update Session Identities" sidebar_label: "Update Session Identities" hide_title: true hide_table_of_contents: true -api: eJyVVdFumzAU/ZXoPrOkq/bE07KuUqNuWtSme4lQ5cBtcAe2a1+3zRD/Pl07hJA03cYLcH18bM451zRAYu0gXcI0z9E5yBLQBq0gqdWsgBS8KQThvUPnpFb3skBFkiQ6SMDik0dHX3SxgbSBXCtCRfwojKlkHlgmj04rrrm8xFrwk7G8RiDh+jF12oAkrMMDbQxCCo6sVGtok64grBUbSIAkVfx+G2lGs56m7dF69Yg5bfcsLRb8zW+snB0R9nx3QQpombanIesxFJzRysXNn5+d8a1Al1tpWAXm80HiB1+NbrZgSP5ZtDYs++n8/Jj4p6hkEaaNLq3V9j9YD6wokISsBvIPAZXOB6NCbX48QLo8tmlXkYpwjRba7LR333TcINtbu/Wx7T30Ozon1tgH4TQ0iDFa8GibgFTGB0G64VkotAnk9LpHs0tKh7tgLV/pr2libeL2t7i9LPUWRYdOS/E1WvDWYh3karGYHxHGfAyDEQM7eqMzEqiRSs0NbgTlJSR8LyGFifBUTradMRm0u0P7jNYFu72tAtjI4HV8LYmMSycT9OO80r4YizUqEmMhIzBjjtxbSZtAMp3PrnFzhaJAC+ky2wfcckRj6IawnVHCyGtk6ZSo+X3qqdRW/o5JYsN5S3EWa8Phv+lPrMtXUZsKT51Ayy5PWcjOg96PzjR812g6n8Gh5oMhbkORh9R1mwzDkBwo1gsFCWAdmhAIRf15N8KZYfnjMmfjj+MzLhntqBZqb4n3XB/sdackx3tiKiFDA4adNds8LIHzEMwPdKzr4LQstSOGNc1KOLyzVdty+cmjZZOzBJ6FlWLFui1Zy7Kzu4FfuOn6S9GH0KgMr3y09+Dc4pzFGfyvMvQuNttL+Hy6uLiCBFbb/1StC55kxQt3sHiBFIB/ezw9BC7UGqiEWns+a1KIpHz9ATkZe3s= +api: eJyVVcFu2zAM/ZWAZ6/uip18WtYVaNANC9p0l8AoGJuN1dmWKtFtM8P/PlCK47hpui0X2xT5xLz3KLXAuHaQLGGaZeQcpBFoQxZZ6XqWQwKNyZHpzpFzStd3KqeaFStyEIGlx4Ycf9H5BpIWMl0z1SyvaEypMo8SPzhdS8xlBVUob8bKHh5E4ofQSQuKqfIvvDEECTi2ql5DF/UBtBY3EAErLuX7JsBMZgNMN2Tr1QNlvO1ZWcrlP7+xc3oAOODdeiqgE9gBhm1DPuCMrl1o/uz0VB45ucwqIywIXuMpvm/KyfU2GaJ/Jq3z2346OzsE/omlyn3Z5MJabf8D9ZUUOTGqckT/OKHU2WgV682Pe0iWhzLtIqpmWpOFLj2u3TcdGhR5K7c+lH1I/U7O4ZoGIxxP9WRMFrLaRaBq03hC+uWZD3QRZPyyB7NzSp93Lly+8F/dJNyE9rd5e14aJAoKHafia5Dgrc36lMvFYn4AGPwxNkYw7OSNyYigIi60DLhBzgqI5FlAAjE2XMTbyYhH4+7IPpF1Xu7Glj7ZKK91+CyYTRLHpc6wLLTjsJxKZdZYxRtfOp3PrmhzSZiThWSZ7ifciDGD1cZpO3nQqCsSwmqs5HvacKGt+h38IzJLI6FKGBHLXw/n1MULVqakY+fOsndR6h1zr/cNM11TzTiZzmfwmunRkgwfZt5rfZN+GaI9nlwSx+jDJ6hiiIAqP3rAhNXn3Yo4RUgP25yefDw5lZDRjius97Z4T+tRrzsmxdSxKVH5sfOdtVsXLEFc4CX3cMLr6IwUdSWtbVfo6NaWXSfhx4asiJxG8IRW4Up4WwqXRS93C79o009VzR/8eEp62QR5X51W4q5QITeU4Xdz0z1fz6eL80uIYLW9nSqdS5HFZ5lbfIYEQC47KfeG87EWSqzXjZwwCQRQ+f0Bf+B4HA== sidebar_class_name: "patch api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-user-username.api.mdx b/docs/docs/reference/api/update-user-username.api.mdx index 5892bf01e3..1c2c23e79a 100644 --- a/docs/docs/reference/api/update-user-username.api.mdx +++ b/docs/docs/reference/api/update-user-username.api.mdx @@ -5,7 +5,7 @@ description: "Update User Username" sidebar_label: "Update User Username" hide_title: true hide_table_of_contents: true -api: eJydVU1v2zAM/SsBz16SFTv5tGwr0KAbFrTJLoFRKDYTq5MlVR9dPcP/faDkxHazFt1ySBzqkaLee6IbcOxgId3CxqKxkCWgNBrmuJLLAlLwumAO77xFE74kqxASMPjg0bpPqqghbSBX0qF09Mi0FjwPBWb3VkmK2bzEitGTNlTecbT071SQ8mT9fQ/ptgFXa4QUrDNcHqBNThHphYA2S8BxJyiwOea3CWDFuPjfQpchuU264xZ3LJxlXGCwb0RNFg7aNjnC1O4ecwfj9iIUWsIRadxgAakzHkPAaiVtJONiPqefAm1uuCb+IIVbn+do7d6LyU0HhuTNdLdh2w8XF+eFfzDBi5A2uTRGmX+o+kzEAl3HPHdY2XOAUPlo9Q0CcenwgAbarKeXGcPqAbtfVWyQZKvs4TW9vqG17BBsEiEvQwMZkzWttglwqX10Qre8DIE2gdw9DcqcSf+ZuHz6uz16G2wDN7H9DjcwZS9RVOhlKr5ECV7z4tV6vTorGP0xNkY07IS8O9n0F75CVyoaCHT+BDRzJaQw00btucDZYDRYNI80SkhgbwShmOZB3fi3dE7bdDZDP82F8sWUHVA6NmU8AjOqkXvDXR2KLFbLa6yvkBVoIN1mQ8AtmTLabAw7ScM0v0YiKw4aWHhXKsN/R++QxNRSzCI2yO43/XS7fGKVFjieVr1tuqnTB4YDpDc2cLlXQx8twpEni9USngswWqI7yfJgwWP/YZl2GpHZczjoyiGrPp5WqA9SJm4zn76fzimklXUVk4MtXrDAqM0Tv2TzmRaMh4sYmmo6e2yhswd1e6yTJVAq62i1aXbM4saItqXwg0dDimcJPDLD2Y6Y2tIEKI/aN/AT6+P1ku5duKcEFz5q/WxskelixiLPUbtXsdnA5avNGhLYda+3ShWUYtgvur7sF6QA9KKk5OC9EGtAMHnwNGhSiCXp8wf44oYz +api: eJydVU1v2zAM/SsBz17dFTv5tGwr0KAbFrTJLoFRMDaTqJMlVZK7Zob/+0DJie1mLbrl4Nj8Ev3eI92Ax62DbAVLR9ZBnoA2ZNELrWYlZFCbEj3d1Y5suCisCBKw9FCT8590uYesgUIrT8rzLRojRREKpPdOK7a5YkcV8p2xXN4Lcvx0LMh5av99A9mqAb83BBk4b4XaQpscLaqWEto8AS+8ZMPykN8mQBUK+b+FLkNym3SvW95heJdxgcG5MWoy9dC2ySFMr++p8DBuL4ZCy3EMmrBUQuZtTcHgjFYugnFxfs5/JbnCCsP4QQa3dVGQc5taTm66YEjeDHcbjv1wcXFa+AdKUYa0yaW12v5D1WckluQ75IWnyp0GSF2MvG8gSChPW7LQ5j28aC3uB+h+1bFBpq1y29f4+kbO4TbIJIa8HBrAmCzY2yYglKmjEjr3LBjaBAr/NChzQv1nxvLp7/LoZbAK2MT2u7iBKHuKIkMvQ/ElUvCaFq8Wi/lJwaiPsTCiYCes3cmyH/iK/E7zQuD3T8Cg30EGqbF6IySlg9XgyD7yKmGCays5Co0I7MbHnfcmS1OpC5Q77Xx055xZ1Fb4fUidzmfXtL8iLMlCtsqHAbcsxSiucdiREDTimhiiuF5gWvudtuJ3VAwTy43ELMaARX7T77TLJ6yMpPGO6sXS7ZreMFwbvZxBqI0eqme6JeVxMp3P4DnsIxdPIhZBeIf+g5tPOkLosjTFYD5DkQ668oTVx6OH+2A+4jHnZ+/PztlktPMVqsERLxA/avOIL4s7NRJFGL/QVNOJYgWdKLjbQ508AaaavU2zRkdLK9uWzQ81WWY8T+ARrcA1I7Xiud8duG/gJ+0PQ6X8uzCdHC7ryPWzZcVSixnToiDjX43NB9qeLxeQwLr7qFW65BSLv3ho8RdkAPx55OSgvWBrQKLa1rxeMogl+fcHyhKC1A== sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/update-workspace.api.mdx b/docs/docs/reference/api/update-workspace.api.mdx index 5674c28ae3..b79800e977 100644 --- a/docs/docs/reference/api/update-workspace.api.mdx +++ b/docs/docs/reference/api/update-workspace.api.mdx @@ -5,7 +5,7 @@ description: "Update Workspace" sidebar_label: "Update Workspace" hide_title: true hide_table_of_contents: true -api: eJzNGF1v2zbwrxj3tAFK7BgtuvlpWVugQdfNSNMVWGAItHS22VCkSlJxPcP/fThSEilZdrugGJaXmPfN++Kd9mDZ2sDsHv7Qayb538xyJQ0sElAlane6yWEGVZkzi+lW6QdTsgwhgZJpVqBFTfx7kKxAmIGK5KQ8hwS4hBmUzG4gAY2fK64xh5nVFSZgsg0WDGZ7sLuS2I3VXK4hAcutIEBs1+gmh8MhaXW11nwPRR8bYV7LwstAY39V+Y4Y+yIzJS1KSyhWloJnzsbxJ6MkwYLGUpMvLUdDJ2/7Hpjc/bFynutaRPerIbISAsiSxsbfifeQQI4m07wkfU8V9SoScUjq+OYps+cEJrBSuiAaIPILy509p7V88GJH15YC15Cp5SfMLPTJ2gjA4UDUGk2ppPFum04m9K9zc3hfZRkas6rE6LYmhicHJtMYueBUmrz0VO5Gfbed4om9kADPz9FS8iX/0yTxZE8TdUfwQ9LpD99a98RXYLF0rSZWzy0W5jiSlUHtCPOcEz8T8wjvq/dkKhIvJZ8SXtgJHYRPmzCdusStEjhq4uE4vkNQnNBeZErUBTfG9e5hD/VNRFkV1Pc1sjw1O2OxgAQeOW7TqGgMUebcxjCqMFcEBEwfmeZMkgdzFHgELFTOV7sGkGZKrvi60q3wwNSIj5h1JVOD+pG798bZtsXlRqmH1q7o7PAGM422wbYnjytZuFBzcJiVEjklV40Lx9ofPH3AXeSL9tz4K0X5yLWSBUqb5lgKtaOfkfdOU0TOPEnj9Fg01oTLhWMtIQBqrwaA48dHJqomhOTbAGjv1qGp5XZgtegejEzt5YgPVzQv+HhFgFp8DKqlx6A6g6imU1+UCRV2KnHrgVYdq+l0mVZsD9qX0kNrNGjTkhmzVTpvbrTkQtQVRIrCsb3vSqitie/bAMjl8TkOitL9EKiQgFFaBKourA5BD+q4P1eoObaM4RgnlellVUhuKZXt9YIOyFFx+ah6HaML6iVgqquhnGvAfWqToWSaqyGWGHekBU0l7KCiFtPnKdBqng3xBEyf53OFFQ6xtIiaI46LVUoEt9cHyhH/O+r487a7h1cYmNZsd/ahmEePwtD0FQba++g5WwyMxGcM6L5LX1fk3ubmeR3S9c499O04928u/K6eEb5mg9sWHEFvHhmyJ1jihtJn0+nxHPonEzz3K8prrZV++hCao2VcnJk7hMo62G+YILi0uKapZnE6eL/VtepGLbM+N9S8Q2PYGuOB8BSpc8aoGf24LCs/JzezrgMcEsjsl0jM0Uz2knz5ZXiFiONKvvHm13RRPEOIfIROu+KVD8G5feXN3d38SKDPj25i+Ml/9DF+z9BuFK3UdPfE76szGMd5aMb73hp9GLdPnBnv4733AAnQjNSs4ZUWJI6V3KWAP26sLc1sPMbqMhOqyi/ZGqVll4x7wgXJyCrN7c4JuZ7fvMXdG2Q5DdL3i5jgPWWuz8UuWRs/VvK3SB6t1/Trym6UDg+r29M3notcRjVxG3bt119YUQoMu3LIq65zW3C8hcF0Mn12MXlxMf357ur57PnVbPrT5eTF1V8+A1cqTsBr54bR9fzmSHgHRcXMMhuZ5NGku+Pg4Fdq7IUrZbDIil9aDNlB0fJqJpdXlxM3wStjCyYjFQO509sean9TbYxLwbjf5LVrHz6v7jv9jR6Y2fEHmpBahO98VFkksFHGkqD9fskMftDicCAwjRGULIsE3MC+JIfe7yHnhn7nMFsxYfDI5rYvwg+3den+OIJk+C5NQknKJnpV6QQJPOBu4FMT5ft/qL7jKNdbN03B7GuSl17bxZ1/axoRRw8CWe45rrMMS3uWdhH1kPmHO0hgWX+hKlROLJptqTGyrbdWlbbZCx1sD4LJdUUtfAZeJP39A2OBD+Y= +api: eJzNGGtv2zbwrxj3aQOU2DFadNOnZW2BBl1WI01XYIEh0NLZZkORCknFcQ3/9+FIPShZdrugGJYvMe/Ne/FOO7BsZSC+gw96xST/yixX0sA8AlWgdqerDGIoi4xZTDZK35uCpQgRFEyzHC1q4t+BZDlCDCqQk/AMIuASYiiYXUMEGh9KrjGD2OoSIzDpGnMG8Q7stiB2YzWXK4jAcisIENo1uspgv48aXY01P0LR51qY1zL3MtDY31W2Jca+yFRJi9ISihWF4KmzcfzFKEmwVmOhyZeWo6GTt30HTG4/LJ3nuhbR/SqILIUAsqS28U/i3UeQoUk1L0jfc0W9CUTsoyq+WcLsKYERLJXOiQaI/MxyZ89xLZ+82NGlpcDVZGrxBVMLfbImArDfE7VGUyhpvNumkwn969wcPpZpisYsSzG6qYjh2YFJNQYuOJYmrz2Vu1Hfbcd4Qi9EwLNTtJR80f80STzZ80TdEnwfdfrD99Y98eWYL1yrCdVzi7k5jGRpUDvCLOPEz8QswPvqPZqKxEvJp4QXdkQH4ZM6TMcucaMEjup4OI4fEBQntBeZAnXOjXG9e9hDfRNRljn1fY0sS8zWWMwhgkeOmyQoGkOUGbchjCrMFQEBk0emOZPkwQwFHgBzlfHltgYkqZJLvip1I7xlqsUHzLqUiUH9yN1742zb4GKt1H1jV3B2eIOpRltjm5PHFay9UH1wmKUSGSVXhWuPlT94co/bwBfNufZXgvKRayVzlDbJsBBqSz8D7x2nCJx5lMbpsWisaS/XHisJLaDyagtw/PjIRFmHkHzbApq7dWgquR1YJboHI1N7OeLDFcwLPl4BoBIfgirpIajKIKrpxBdlRIWdSNx4oFWHajpdphHbg/al9NAaDdqkYMZslM7qGy24EFUFkaL22Nx3KdTGhPetAeTy8BwGRel+CFSbgEFatFRdWBWCHtRxP5SoOTaM7TFMKtPLqja5pVS21ws6IEfF5aPqdYwuqJeAiS6Hcq4G96lNipJproZYQtyBFjSlsIOKGkyfJ0ereTrE02L6PA8lljjE0iAqjjAuVinRur06UI7430HHnzXdvX2FgWnNticfilnwKAxNX+1Aexc8Z/OBkfiEAd136duK3NtcP69Duq7dQ9+Mc//mwtfVjPAtG9y24Ah688iQPa0lbih9MZ0ezqF/McEzv6K81Vrp5w+hGVrGxYm5Q6i0g/2OCYJLiyuaaubHg/dHVatu1DKrU0PNNRrDVhgOhMdInTNG9ejHZVH6ObmedR1gH0FqnwIxBzPZa/Ll0/AKEcaVfOPNr+iCeLYh8hE67oo3PgSn9pV3t7ezA4E+P7qJ4Sf/0efwPUO7VrRS090jv6/GMA7z0Ix3vTV6P26eODPehXvvHiKgGalew0stSBwruEsBf1xbW8TjsVApE2tlrEfPiTMtNbdbx3o5u3qP23fIMhqf7+YhwUfKV5+BXbImaqzg75H8WC3nl6VdK90+p247X3suchRVwk27Yb99YnkhsN2Q22zqurQBh7sXTCfTF2eTV2fTX28vXsYvL+LpL+eTVxd/+7xbqjDtLlcoLRtdzq4OhHdQVMIstYFJHk26G7eaeDxmDnzO+Jjaee4KGCyy/LcGQ3ZQjLyayfnF+cTN7crYnMlAxUDG9HaGyt9UEeNCMO73d+2ahs+mu05Xo2clPvws0yYU4TufUuYRUJaQoN1uwQx+0mK/JzAND5Qs8wjcmL4gh97tIOOGfmcQL5kweGBz0w3hp5uqYH8eQTR8lzqhJGUTvaV0ggjucTvwgYmy/D9U33GU66jrumB2Fclrr+3s1r8wtYiDZ4As9xyXaYqFPUk7DzrH7NMtRLCovkvlKiMWzTbUDtnGW6sKW2+DDrYDweSqpMYdgxdJf/8AwH4Mhw== sidebar_class_name: "put api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/verify-organization-domain.api.mdx b/docs/docs/reference/api/verify-organization-domain.api.mdx index b8ca500be5..bc164c7a4a 100644 --- a/docs/docs/reference/api/verify-organization-domain.api.mdx +++ b/docs/docs/reference/api/verify-organization-domain.api.mdx @@ -5,7 +5,7 @@ description: "Verify domain ownership via DNS TXT record." sidebar_label: "Verify Domain" hide_title: true hide_table_of_contents: true -api: eJzVVlFv2zYQ/ivEPat2FuxJT/PqDg26NUbsFgMcI2DEk8VGIlWScqIZ+u/FkVJM2YnX5W1+ssi7491333fkHhzfWkjXcG22XMl/uJNaWdgkINBmRtb0DSl8RSPzlgldcamYflRobCFrtpOczT8v2ervFTOYaSMmt+pWrQppGSpRa6kcywrMHizLtWGuQFYbtKgyZDr33zuKLTN/dBToVnElWMXNg/Vm/dnc9g4omMxZrhslJpCArtH4EFcCUvAm7Z2OqroLASABg98btO53LVpI95Bp5VA5+svruuwzmX6zVPkebFZgxelfbegQJ9HSVwh3JwV9uLZGSME6I9UWEnDSlbQwD0lfCei6ZLDS998wc30i0qCgBhzCbQ7ucVdCqNAIOO7PTSiJVVpg6ZEOCEi1ZbyHbgIdJXE41JkG/YKttbKhqsuLC1/cKPqyyTK0Nm9KdtMbQ/JW3F4GLNem4g5SaBopIgAJuQRs2WzPwbyk/S4BxSv0+aj2Ood0fezRJc8rqilL6CKsP5NvdwTs20LNoxBdAnnpRbYHLoSkRV4uIkioDafcGGL94Z2JPPoB35zRyjt3CWQGuUNxx93ZLgju8J2TFUaZvA+ubOYoUFOLKNBrOb0Y8lyiX0LY/pCRfv8bcWLp/Iz+vLPnWU+jMROGLg59GCE5QuM067OCjgR1LOmwEWl6pOQugV8vL0/F+pWXUoSyPxijzduVKtBxWXrNOqzsqUGps9HuTzBTKodbNNBtDv3gxvA2at2fOiRIDKjsWeH/hdbyrddtMHnd1IPBVrTbJSBV3QQJDIPGL5BC3FMU5kSP7wnLJ/evfCJsQvq9XcSCQ4tCh16HYh5a8NJhg8nH1WpxEjDwo0JXaLoOa23JpeaugBSmMUHtNHDKTnfD1WLR7NBY38jGlOTBa+m7GD4L52qbTqfYTLJSN2LCt6gcn3AZDDcUI2uMdK0PMltcfcL2I3KBBtL1JjZYEvkCncZmzy3gtfyE7SDLFGaNK7Tp0wdqJaUUvKhqovXN4Yr/8MSrusSjK/tATZAq1zETZr4YNltcnWhytEWq4pkn0ZCZ36ZxMILpgA4kgJXXFDjk1W/PO5QHYR6OuZj8MrmgJepbxVV0RP8Qmw9vmaPb6lnp/4MXW99eUtO0Lqmcrkdu3zN1PRqlNHx7rkLSv/BIVQWRO13Dfn/PLX4xZdfR8vcGDdFvk8COG8nvqblrGjvFQMQ9PGA7aFq5d344kHnZBOIdzUpSQPCYZRnW7qztJtLf4nq5ggTu+xcnTXRIwfBHGhr8EVLwL9hQZboPa3soudo2NN5SCDHp9wOEAgkz +api: eJzVVl9v2zYQ/yrEPat2FuxJT/PqDg26NUbsFgMcI7iIZ4uNRKoklcQz9N2LIyVbshOvy9v8ZJF3x+PvD8kdeNw4SJdwbTeo1T/oldEOVglIcplVFX9DCl/JqvVWSFOi0sI8abIuV5V4VCimn+di8fdCWMqMlaNbfasXuXKCtKyM0l5kOWUPTqyNFT4nUVlypDMSZh2+H7m2ysLSvUK3GrUUJdoHF8LatdG1CSSFWou1qbUcQQKmIhtKXElIIYRs70xvV3exACRg6XtNzv9u5BbSHWRGe9Ke/2JVFW0n42+Od74Dl+VUIv+rLC/iFTn+iuXulOQPv60IUnDeKr2BBLzyBQ9MY9NXEpom6aLM/TfKfNuIsiSZgEO51SG9z0osFYmAY35u4pZEaSQVAemIgNIbgS10I2i4icOi3tYUBlxltIu7ury4CJsbVJ/XWUbOretC3LTBkLwVt5cBWxtboocU6lrJHoCMXAKuqDfnYJ7zfJOAxpJCP3p7vYZ0eZzRJPsRXRcFND2sP3NucwTs20pNeyWaBNZFMNkOUErFg1jMepAwDafa6Gr9EZJZPOaB3tzRIiQ3CWSW0JO8Q3+WBYme3nlVUq+T9zFVTDwXqivZK/RaTy+WPNfol1i2XWTg3/8mnL51fsZ/ITnorJXRUAkdix0PAyQHaJx2fdbQPUMdWzpO9Dw9cHKTwK+Xl6dm/YqFknHbH6w19u1OleRRFcGznkp3GlCYbDD7E8pU2tOGLDSrAx9oLW571P1pYoOsgNKdNf5f5Bxugm9jyOuhAQyx4NkmAaWrOlqgO2jCADvEP/fKnPjxPWP57P9VT4xNbL+N66ngQFFk6HUoppGClxbrQj4uFrOTglEfJfnc8HVYGccpFfocUhj3BerGUVNu/NhdLY7sI1kXiKxtwRlYqcBi/My9r9LxuDAZFrlxPk6vODOrrfLbkDqZXX2i7UdCSRbS5aofMGfJRRENw/bAY6U+0bYzYwqT2ufGtk0DE8iNxCzeK4v55nCxf3jGsiro6KI+CBKUXps+/5MNaY9iMrs6ceJgir2EWZBO11mY5kNgD45Lx2MMwyNUY0iAyuAk8ITlb/sZ7oORjstcjH4ZXfAQs1Wi7i3RPr+m3Qvm6I7a+/t/8E5r6WUPjauCt9O0yO1afS4HBygfua1CIWnfdewl1h3H7nb36OiLLZqGh7/XZFl+qwQe0Sq8Z3KXfNjknRB38EDbzsnavwtHAocXdRTe0QnJuo8Zkyyjyp+NXfVcN7ueLyCB+/adyec4pGDxiY8KfIIUwrs17jLdxbEdFKg3NR9qKcSa/PsBX4EF1A== sidebar_class_name: "post api-method" info_path: reference/api/agenta-api custom_edit_url: null diff --git a/docs/docs/reference/api/verify-permissions.api.mdx b/docs/docs/reference/api/verify-permissions.api.mdx deleted file mode 100644 index 060fba8b36..0000000000 --- a/docs/docs/reference/api/verify-permissions.api.mdx +++ /dev/null @@ -1,69 +0,0 @@ ---- -id: verify-permissions -title: "Verify Permissions" -description: "Verify Permissions" -sidebar_label: "Verify Permissions" -hide_title: true -hide_table_of_contents: true -api: eJy9Vt9v2jAQ/lfQPVvAqj3laWirVtRNQy3bC4oq1znAnRO7tlOVIf/v09lJSKCVqLT1CeL78V3u++6cPXi+cZCtYCYEOgc5A23Qci91NS8ggye0cr27M2hL6ZzUlQMGhlteokdLoXuoeImQARcUBQxkBRk81mh3wMDiYy0tFpCtuXLIwIktlhyyPfBq92MdM/idoQzOW1ltILDupKqVgpAz8NIrOpglkEA+Da4T2uBdDPi/2LcENFqS9RRfFv8AncFa25J7yKCuZXFGNfNiUItFp2sr3qUdNw3WaUe6Kt69KV1NsS854TmjK4eOEC6mU/op0AkrTRRSBrd1lP66VqObxhkYCF15rHysyxglRRyJyYOjmP2h6hBCYPDx4uI08S+uZBHDRpfWavuGrGAsjaGXqe4CPZeK/kmPpTt1UFoMrGfQKSuPG7QQ8sDaM24tJ5Labn7TqUAIDEq3oczH1LSu39E5vkHokr3uGpvRiIbUYerYkNY8jweBgfDPvTT6/gGF76X5TL189iS8E5+DylaxN6n8xq8nlwNFiaHXW/ElUfASWOtytVwuThImfRwJI+7U0WKwU0v0W00bd4M+rli/hQwmvcU7SbsYGDi0T+3yra0iP25kZDc9br03LptMsB4LpetizDdYeT7mMjnmlEPUVvpdTDJbzK9xd4W8QAvZKu873JIok8yGbh013MhrpLqa8Z/Vfqut/MP798E2RYVI+Vr3GZ/F4kazxRyOWzUw0fRwEcXSIkUzsKPXPrwtMMAyzg545OWnzkJUUw8TzHT8YTylI6OdL3nVg3iRrEGRXR9IjhOjuIwDE0vaN0SuYHiDNlTmDLbaebLv9/fc4U+rQqDjtC+Jm0I6fq96G/M37vq37RNXNaFH+l9xHlyR5wfE9X2O+/G186aYI5ScHqykkChF1kqHmpFC6WPF+F7UyTKlLN1Efb1cQgh/AX+FB1E= -sidebar_class_name: "get api-method" -info_path: reference/api/agenta-api -custom_edit_url: null ---- - -import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint"; -import ParamsDetails from "@theme/ParamsDetails"; -import RequestSchema from "@theme/RequestSchema"; -import StatusCodes from "@theme/StatusCodes"; -import OperationTabs from "@theme/OperationTabs"; -import TabItem from "@theme/TabItem"; -import Heading from "@theme/Heading"; -import Translate from "@docusaurus/Translate"; - - - - - - - - - - -Verify Permissions - - - Request - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/examples/python/evaluators/ag/secrets_check.py b/examples/python/evaluators/ag/secrets_check.py index 2427ecc81b..1754a7848f 100644 --- a/examples/python/evaluators/ag/secrets_check.py +++ b/examples/python/evaluators/ag/secrets_check.py @@ -35,7 +35,7 @@ def evaluate( ) response = requests.get( - f"{host}/api/vault/v1/secrets/", + f"{host}/api/secrets/", headers=headers, timeout=10, ) diff --git a/hosting/docker-compose/ee/docker-compose.dev.yml b/hosting/docker-compose/ee/docker-compose.dev.yml index fd11a1b266..0f9ebad25e 100644 --- a/hosting/docker-compose/ee/docker-compose.dev.yml +++ b/hosting/docker-compose/ee/docker-compose.dev.yml @@ -143,7 +143,7 @@ services: image: agenta-ee-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_evaluations # === STORAGE ============================================== # volumes: @@ -180,7 +180,7 @@ services: image: agenta-ee-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_tracing # === STORAGE ============================================== # volumes: @@ -217,7 +217,7 @@ services: image: agenta-ee-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_webhooks # === STORAGE ============================================== # volumes: @@ -260,7 +260,7 @@ services: image: agenta-ee-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_events # === STORAGE ============================================== # volumes: diff --git a/hosting/docker-compose/oss/docker-compose.dev.yml b/hosting/docker-compose/oss/docker-compose.dev.yml index b5c0f5e704..190f94b841 100644 --- a/hosting/docker-compose/oss/docker-compose.dev.yml +++ b/hosting/docker-compose/oss/docker-compose.dev.yml @@ -141,7 +141,7 @@ services: image: agenta-oss-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_evaluations # === STORAGE ============================================== # volumes: @@ -178,7 +178,7 @@ services: image: agenta-oss-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_tracing # === STORAGE ============================================== # volumes: @@ -215,7 +215,7 @@ services: image: agenta-oss-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_webhooks # === STORAGE ============================================== # volumes: @@ -258,7 +258,7 @@ services: image: agenta-oss-dev-api:latest # === EXECUTION ============================================ # command: > - watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive -- + watchmedo auto-restart --directory=/app/ --pattern=*.py --recursive --ignore-patterns=*/tests/* -- python -m entrypoints.worker_events # === STORAGE ============================================== # volumes: diff --git a/sdks/python/agenta/sdk/engines/running/errors.py b/sdks/python/agenta/sdk/engines/running/errors.py index 9cbd2c1f33..6b68465681 100644 --- a/sdks/python/agenta/sdk/engines/running/errors.py +++ b/sdks/python/agenta/sdk/engines/running/errors.py @@ -340,6 +340,19 @@ def __init__(self, message: str, stacktrace: Optional[str] = None): ) +class MockV0Error(ErrorStatus): + code: int = 500 + type: str = f"{ERRORS_BASE_URL}#v0:workflows:mock-error" + + def __init__(self, message: str, stacktrace: Optional[str] = None): + super().__init__( + code=self.code, + type=self.type, + message=message, + stacktrace=stacktrace, + ) + + class SnippetV0Error(ErrorStatus): code: int = 500 type: str = f"{ERRORS_BASE_URL}#v0:workflows:snippet-error" diff --git a/sdks/python/agenta/sdk/engines/running/handlers.py b/sdks/python/agenta/sdk/engines/running/handlers.py index f69fe4668a..0e150f4cc7 100644 --- a/sdks/python/agenta/sdk/engines/running/handlers.py +++ b/sdks/python/agenta/sdk/engines/running/handlers.py @@ -6,6 +6,7 @@ import socket import ipaddress import traceback +from inspect import isawaitable from difflib import SequenceMatcher from json import dumps, loads from typing import Any, Dict, List, Optional, Union, Tuple @@ -60,6 +61,7 @@ WebhookServerV0Error, MatchV0Error, CodeV0Error, + MockV0Error, ConfigV0Error, FeedbackV0Error, ) @@ -330,8 +332,7 @@ def auto_exact_match_v0( Returns: Evaluation result with success flag (True for match, False for mismatch) """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) @@ -372,8 +373,7 @@ def auto_regex_test_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "regex_pattern" not in parameters: raise MissingConfigurationParameterV0Error(path="regex_pattern") @@ -430,18 +430,14 @@ def field_match_test_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "json_field" not in parameters: raise MissingConfigurationParameterV0Error(path="json_field") json_field = str(parameters["json_field"]) - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") - - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) if inputs is None or not isinstance(inputs, dict): raise InvalidInputsV0Error(expected="dict", got=inputs) @@ -526,8 +522,7 @@ def json_multi_field_match_v0( Dict with per-field scores and aggregate_score, e.g.: {"name": 1.0, "email": 0.0, "aggregate_score": 0.5} """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "fields" not in parameters: raise MissingConfigurationParameterV0Error(path="fields") @@ -541,10 +536,7 @@ def json_multi_field_match_v0( got=fields, ) - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") - - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) if inputs is None or not isinstance(inputs, dict): raise InvalidInputsV0Error(expected="dict", got=inputs) @@ -637,8 +629,7 @@ async def auto_webhook_test_v0( Returns: Evaluation result with score from the webhook """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "webhook_url" not in parameters: raise MissingConfigurationParameterV0Error(path="webhook_url") @@ -756,8 +747,7 @@ async def auto_custom_code_run_v0( Returns: Evaluation result with score from the custom code """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "code" not in parameters: raise MissingConfigurationParameterV0Error(path="code") @@ -823,10 +813,7 @@ def _run_v2() -> Any: ) from e def _run_v1() -> Any: - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") - - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) if inputs is None or not isinstance(inputs, dict): raise InvalidInputsV0Error(expected="dict", got=inputs) @@ -888,8 +875,7 @@ async def auto_ai_critique_v0( Returns: Evaluation result with score from the AI """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} correct_answer_key = parameters.get("correct_answer_key") @@ -1099,8 +1085,7 @@ def auto_starts_with_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "prefix" not in parameters: raise MissingConfigurationParameterV0Error(path="prefix") @@ -1148,8 +1133,7 @@ def auto_ends_with_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "suffix" not in parameters: raise MissingConfigurationParameterV0Error(path="suffix") @@ -1197,8 +1181,7 @@ def auto_contains_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "substring" not in parameters: raise MissingConfigurationParameterV0Error(path="substring") @@ -1246,8 +1229,7 @@ def auto_contains_any_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "substrings" not in parameters: raise MissingConfigurationParameterV0Error(path="substrings") @@ -1304,8 +1286,7 @@ def auto_contains_all_v0( Returns: Evaluation result with success flag """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "substrings" not in parameters: raise MissingConfigurationParameterV0Error(path="substrings") @@ -1404,13 +1385,9 @@ def auto_json_diff_v0( Returns: Evaluation result with score only (no diff explanation) """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) - - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") + parameters = parameters or {} - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) if inputs is None or not isinstance(inputs, dict): raise InvalidInputsV0Error(expected="dict", got=inputs) @@ -1496,13 +1473,9 @@ def auto_levenshtein_distance_v0( Dictionary with normalized similarity score (0 to 1), or error message if evaluation fails. """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") - - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) case_sensitive = parameters.get("case_sensitive", True) is True @@ -1601,13 +1574,9 @@ def auto_similarity_match_v0( Returns: Evaluation result with similarity score """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") - - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) case_sensitive = parameters.get("case_sensitive", True) is True @@ -1694,13 +1663,9 @@ async def auto_semantic_similarity_v0( Returns: Evaluation result with cosine similarity score """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) - - if "correct_answer_key" not in parameters: - raise MissingConfigurationParameterV0Error(path="correct_answer_key") + parameters = parameters or {} - correct_answer_key = str(parameters["correct_answer_key"]) + correct_answer_key = str(parameters.get("correct_answer_key", "correct_answer")) embedding_model = parameters.get("embedding_model", "text-embedding-3-small") @@ -2128,7 +2093,7 @@ async def completion_v0( required_keys = set(config.prompt.input_keys) provided_keys = set(_variables.keys()) - if required_keys != provided_keys: + if not required_keys.issubset(provided_keys): raise InvalidInputsV0Error( expected=sorted(required_keys), got=sorted(provided_keys), @@ -2202,7 +2167,7 @@ async def chat_v0( required_keys = set(config.prompt.input_keys) - {"messages"} provided_keys = set(_variables.keys()) - if required_keys != provided_keys: + if not required_keys.issubset(provided_keys): raise InvalidInputsV0Error( expected=sorted(required_keys), got=sorted(provided_keys), @@ -2842,7 +2807,10 @@ async def code_v0( The raw dict / str when code returns one of those. """ if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + raise InvalidConfigurationParametersV0Error( + expected="dict", + got=parameters, + ) if "code" not in parameters: raise MissingConfigurationParameterV0Error(path="code") @@ -2918,6 +2886,128 @@ async def config_v0( ) +# --------------------------------------------------------------------------- +# mock_v0 — deterministic, LLM-free, sandbox-free workflow for testing +# --------------------------------------------------------------------------- +# +# A single handler that stands in for BOTH an application (invocation step, +# returns workflow outputs) and an evaluator (annotation step, returns +# {"score", "success"}). The behavior is selected by name so evaluations can +# run end-to-end through the real worker without any LLM call or code sandbox. +# +# Parameter contract (mirrors the LLM `MOCKS[key](**kwargs)` selector pattern): +# parameters = {"key": "", "kwargs": {...}} +# +# App-role selectors return outputs; evaluator-role selectors return a result. + + +def _mock_echo(*, inputs=None, **_) -> Any: + # App-role: echo the inputs back as the workflow output. + return inputs or {} + + +def _mock_static(*, output=None, **_) -> Any: + # App-role: return a fixed payload supplied via kwargs. + return output if output is not None else {} + + +def _mock_pass(**_) -> Any: + # Evaluator-role: always passing result. + return {"score": 1.0, "success": True} + + +def _mock_fail(**_) -> Any: + # Evaluator-role: always failing result. + return {"score": 0.0, "success": False} + + +def _mock_score(*, score=0.0, threshold=0.5, **_) -> Any: + # Evaluator-role: explicit score with threshold-based success. + _score = float(score) + return {"score": _score, "success": _score >= float(threshold)} + + +def _mock_error(*, message="mock_v0 error behavior", **_) -> Any: + # Failure path (shared by app and evaluator roles). + raise MockV0Error(message=str(message)) + + +async def _mock_delay(*, seconds=0.1, then="pass", inputs=None, **kwargs) -> Any: + # Sleep then defer to another (synchronous) behavior. Useful to exercise + # RUNNING/timing without an LLM. `then` must name a non-delay behavior. + await asyncio.sleep(float(seconds)) + behavior = MOCK_V0_BEHAVIORS.get(str(then), _mock_pass) + if behavior is _mock_delay: + behavior = _mock_pass + return behavior(inputs=inputs, **kwargs) + + +MOCK_V0_BEHAVIORS = { + # app-role + "echo": _mock_echo, + "static": _mock_static, + # evaluator-role + "pass": _mock_pass, + "fail": _mock_fail, + "score": _mock_score, + # shared + "error": _mock_error, + "delay": _mock_delay, +} + + +@instrument() +async def mock_v0( + request: Optional[Data] = None, + revision: Optional[Data] = None, + inputs: Optional[Data] = None, + parameters: Optional[Data] = None, + outputs: Optional[Union[Data, str]] = None, + trace: Optional[Data] = None, + testcase: Optional[Data] = None, +) -> Any: + """ + Deterministic mock workflow (agenta:custom:mock:v0). + + Selects a predefined behavior by name — no LLM, no code sandbox. Serves as + both an application (invocation) and an evaluator (annotation) depending on + the selected behavior. + + Parameters: + key: selector name — one of MOCK_V0_BEHAVIORS + (echo, static, pass, fail, score, error, delay). + kwargs: structured args for the selected behavior (optional). + + Returns: + The behavior's output (workflow outputs for app-role selectors, or + {"score", "success"} for evaluator-role selectors). + """ + parameters = parameters or {} + + if "key" not in parameters: + raise MissingConfigurationParameterV0Error(path="key") + + key = str(parameters["key"]) + if key not in MOCK_V0_BEHAVIORS: + raise InvalidConfigurationParameterV0Error( + path="key", + expected=list(MOCK_V0_BEHAVIORS.keys()), + got=key, + ) + + kwargs = parameters.get("kwargs") or {} + if not isinstance(kwargs, dict): + raise InvalidConfigurationParameterV0Error( + path="kwargs", expected="dict", got=kwargs + ) + + behavior = MOCK_V0_BEHAVIORS[key] + result = behavior(inputs=inputs, outputs=outputs, trace=trace, **kwargs) + if isawaitable(result): + result = await result + return result + + async def match_v0( request: Optional[Data] = None, revision: Optional[Data] = None, @@ -2955,8 +3045,7 @@ async def match_v0( Returns: {key: result_node, ..., "score": float, "success": bool} — flat result dict """ - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} if "matchers" not in parameters: raise MissingConfigurationParameterV0Error(path="matchers") @@ -3445,8 +3534,7 @@ async def llm_v0( from agenta.sdk.engines.running.errors import LLMUnavailableV0Error # --- Validate parameters - if parameters is None or not isinstance(parameters, dict): - raise InvalidConfigurationParametersV0Error(expected="dict", got=parameters) + parameters = parameters or {} llms = parameters.get("llms") if not llms or not isinstance(llms, list): diff --git a/sdks/python/agenta/sdk/engines/running/interfaces.py b/sdks/python/agenta/sdk/engines/running/interfaces.py index 30facbecfe..cfcf8f065f 100644 --- a/sdks/python/agenta/sdk/engines/running/interfaces.py +++ b/sdks/python/agenta/sdk/engines/running/interfaces.py @@ -176,6 +176,11 @@ def llm_inputs_schema( schemas=None, ) +mock_v0_interface = WorkflowRevisionData( + uri="agenta:custom:mock:v0", + schemas=None, +) + config_v0_interface = WorkflowRevisionData( uri="agenta:custom:config:v0", schemas=None, diff --git a/sdks/python/agenta/sdk/engines/running/utils.py b/sdks/python/agenta/sdk/engines/running/utils.py index f350dba905..da84036e5a 100644 --- a/sdks/python/agenta/sdk/engines/running/utils.py +++ b/sdks/python/agenta/sdk/engines/running/utils.py @@ -12,6 +12,7 @@ feedback_v0, hook_v0, code_v0, + mock_v0, config_v0, match_v0, llm_v0, @@ -43,6 +44,7 @@ feedback_v0_interface, hook_v0_interface, code_v0_interface, + mock_v0_interface, config_v0_interface, match_v0_interface, llm_v0_interface, @@ -76,6 +78,7 @@ feedback=dict(v0=feedback_v0_interface), hook=dict(v0=hook_v0_interface), code=dict(v0=code_v0_interface), + mock=dict(v0=mock_v0_interface), snippet=dict(v0=config_v0_interface), ), builtin=dict( @@ -337,6 +340,7 @@ def _catalog_entry() -> dict: hook=dict(v0=hook_v0), snippet=dict(v0=config_v0), code=dict(v0=code_v0), + mock=dict(v0=mock_v0), ), builtin=dict( # --- NEW URI @@ -534,6 +538,8 @@ def infer_url_from_uri(uri: Optional[str]) -> Optional[str]: ("custom", "code"): (True, True, False), ("custom", "hook"): (True, True, False), ("custom", "feedback"): (True, True, False), + # agenta:custom:mock — deterministic test workflow (app + evaluator, no LLM/sandbox) + ("custom", "mock"): (True, True, False), # agenta:builtin:* — application-only (not evaluators) ("builtin", "chat"): (True, False, False), ("builtin", "completion"): (True, False, False), diff --git a/sdks/python/agenta/sdk/evaluations/preview/evaluate.py b/sdks/python/agenta/sdk/evaluations/preview/evaluate.py index 8747b294fa..1dd8f87e79 100644 --- a/sdks/python/agenta/sdk/evaluations/preview/evaluate.py +++ b/sdks/python/agenta/sdk/evaluations/preview/evaluate.py @@ -10,18 +10,13 @@ Target, SimpleEvaluationData, ) -from agenta.sdk.models.shared import Link, Reference +from agenta.sdk.models.shared import Reference from agenta.sdk.models.workflows import ( ApplicationRevision, EvaluatorRevision, - WorkflowServiceRequestData, - ApplicationServiceRequest, - EvaluatorServiceRequest, ) from agenta.sdk.models.testsets import TestsetRevision -from agenta.sdk.evaluations.preview.utils import fetch_trace_data - from agenta.sdk.managers.testsets import ( acreate as acreate_testset, aretrieve as aretrieve_testset, @@ -42,18 +37,19 @@ from agenta.sdk.evaluations.scenarios import ( acreate as aadd_scenario, ) -from agenta.sdk.evaluations.results import ( - acreate as alog_result, -) from agenta.sdk.evaluations.metrics import ( arefresh as acompute_metrics, ) +from agenta.sdk.evaluations.runtime.models import EvaluationStep, ResolvedSourceItem +from agenta.sdk.evaluations.runtime.processor import process_evaluation_source_slice +from agenta.sdk.evaluations.runtime.adapters import ( + SdkLocalApplicationRunner, + SdkLocalEvaluatorRunner, + SdkResultLogger, + SdkTraceLoader, +) -from agenta.sdk.decorators.running import ( - invoke_application, - invoke_evaluator, -) from agenta.sdk.utils.logging import get_module_logger @@ -456,14 +452,25 @@ async def aevaluate( ) scenarios = list() - metrics = dict() + async def create_scenario(run_id: UUID): + return await aadd_scenario(run_id=run_id) + + async def refresh_metrics(run_id: UUID, scenario_id: Optional[UUID]): + if scenario_id: + return await acompute_metrics(run_id=run_id, scenario_id=scenario_id) + return await acompute_metrics(run_id=run_id) + + result_logger = SdkResultLogger() + trace_loader = SdkTraceLoader(max_retries=30, delay=1.0) + for testset_revision in testset_revisions.values(): if not testset_revision.data or not testset_revision.data.testcases: continue testcases = testset_revision.data.testcases + input_step_key = "testset-" + testset_revision.slug # type: ignore print( f"{UNICODE['next']}" @@ -474,352 +481,149 @@ async def aevaluate( f" testset_id={str(testset_revision.testset_id)}", ) - for testcase_idx, testcase in enumerate(testcases): - print( - f"{UNICODE['pipe']}" - f"{UNICODE['pipe']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - "-----------------------" - "--------------------------------------" - ) - - print( - f"{UNICODE['pipe']}" - f"{UNICODE['next' if testcase_idx < len(testcases) - 1 else 'last']}" - f"{UNICODE['here']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - f"testcase_id={str(testcase.id)}", - ) - - scenario = await aadd_scenario( - run_id=run.id, - ) - - print( - f"{UNICODE['pipe']}" - f"{UNICODE['pipe' if testcase_idx < len(testcases) - 1 else 'skip']}" - f"{UNICODE['next']}" - f"{UNICODE['here']}" - f"{UNICODE['skip']}" - f"scenario_id={str(scenario.id)}", - ) - - results = dict() - - result = await alog_result( - run_id=run.id, - scenario_id=scenario.id, - step_key="testset-" + testset_revision.slug, # type: ignore - testcase_id=testcase.id, - ) - - print( - f"{UNICODE['pipe']}" - f"{UNICODE['pipe' if testcase_idx < len(testcases) - 1 else 'skip']}" - f"{UNICODE['pipe']}" - f"{UNICODE['next']}" - f"{UNICODE['here']}" - f" result_id={str(result.id)} (testcase)", - ) - - results[testset_revision.slug] = result - - _testcase = testcase.model_dump( - mode="json", - exclude_none=True, - ) # type: ignore - inputs = testcase.data - if isinstance(inputs, dict): - if "testcase_dedup_id" in inputs: - del inputs["testcase_dedup_id"] - - for application_revision in application_revisions.values(): - if not application_revision or not application_revision.data: - print("Missing or invalid application revision") - if application_revision: - print(application_revision.model_dump(exclude_none=True)) - continue - - # print(f" Application {application_revision.model_dump(exclude_none=True)}") # type: ignore - - references = dict( - testset=Reference( - id=testset_revision.testset_id, + steps = [ + EvaluationStep( + key=input_step_key, + type="input", + origin="custom", + references={ + "testset": Reference(id=testset_revision.testset_id), + "testset_variant": Reference( + id=testset_revision.testset_variant_id ), - testset_variant=Reference( - id=testset_revision.testset_variant_id, - ), - testset_revision=Reference( + "testset_revision": Reference( id=testset_revision.id, slug=testset_revision.slug, version=testset_revision.version, ), - application=Reference( - id=application_revision.application_id, - ), - application_variant=Reference( - id=application_revision.application_variant_id, - ), - application_revision=Reference( - id=application_revision.id, - slug=application_revision.slug, - version=application_revision.version, - ), - ) - links = None - - _revision = application_revision.model_dump( - mode="json", - exclude_none=True, - ) - parameters = ( - application_revision.data.parameters - if application_revision.data - else None - ) - - _trace = None - outputs = None - - workflow_service_request_data = WorkflowServiceRequestData( - revision=_revision, - parameters=parameters, - # - testcase=_testcase, - inputs=inputs, - # - trace=_trace, - outputs=outputs, - ) - - application_request = ApplicationServiceRequest( - data=workflow_service_request_data, - # - references=references, # type: ignore - links=links, # type: ignore - ) - - application_response = await invoke_application( - request=application_request, - ) - - if ( - not application_response - or not application_response.data - or not application_response.trace_id - ): - print("Missing or invalid application response") - if application_response: - print(application_response.model_dump(exclude_none=True)) - continue - - trace_id = application_response.trace_id - - if not application_revision.slug: - print("Missing application revision slug") - continue - - application_slug = application_revision.slug - - trace = fetch_trace_data(trace_id, max_retries=30, delay=1.0) - - result = await alog_result( - run_id=run.id, - scenario_id=scenario.id, - step_key="application-" + application_slug, # type: ignore - trace_id=trace_id, - ) - - print( - f"{UNICODE['pipe']}" - f"{UNICODE['pipe' if testcase_idx < len(testcases) - 1 else 'skip']}" - f"{UNICODE['pipe']}" - f"{UNICODE['next']}" - f"{UNICODE['here']}" - f" result_id={str(result.id)} (invocation)", - ) - - results[application_slug] = result - - trace = await trace - - if not trace: - print("Failed to fetch trace data for application") - continue - - root_span = list(trace.get("spans", {}).values())[0] - trace_attributes: dict = root_span.get("attributes", {}) - trace_attributes_ag: dict = trace_attributes.get("ag", {}) - trace_attributes_ag_data: dict = trace_attributes_ag.get("data", {}) - outputs = trace_attributes_ag_data.get("outputs") - inputs = inputs or trace_attributes_ag_data.get("inputs") - - for i, evaluator_revision in enumerate(evaluator_revisions.values()): - if not evaluator_revision or not evaluator_revision.data: - print("Missing or invalid evaluator revision") - if evaluator_revision: - print(evaluator_revision.model_dump(exclude_none=True)) - continue + }, + ) + ] + runners: Dict[str, Any] = {} + revisions: Dict[str, Any] = {} + + for application_revision in application_revisions.values(): + if not application_revision or not application_revision.data: + print("Missing or invalid application revision") + if application_revision: + print(application_revision.model_dump(exclude_none=True)) + continue - references = dict( - testset=Reference( - id=testset_revision.testset_id, + application_step_key = "application-" + application_revision.slug # type: ignore + steps.append( + EvaluationStep( + key=application_step_key, + type="invocation", + origin="auto", + references={ + "application": Reference( + id=application_revision.application_id ), - testset_variant=Reference( - id=testset_revision.testset_variant_id, - ), - testset_revision=Reference( - id=testset_revision.id, - slug=testset_revision.slug, - version=testset_revision.version, + "application_variant": Reference( + id=application_revision.application_variant_id, ), - evaluator=Reference( - id=evaluator_revision.evaluator_id, + "application_revision": Reference( + id=application_revision.id, + slug=application_revision.slug, + version=application_revision.version, ), - evaluator_variant=Reference( + }, + ) + ) + runners[application_step_key] = SdkLocalApplicationRunner() + revisions[application_step_key] = application_revision + + for ( + evaluator_revision_id, + origin, + ) in simple_evaluation_data.evaluator_steps.items(): + evaluator_revision = evaluator_revisions.get( + evaluator_revision_id + ) or evaluator_revisions.get(UUID(str(evaluator_revision_id))) + if not evaluator_revision or not evaluator_revision.data: + print("Missing or invalid evaluator revision") + if evaluator_revision: + print(evaluator_revision.model_dump(exclude_none=True)) + continue + + evaluator_step_key = "evaluator-" + evaluator_revision.slug # type: ignore + steps.append( + EvaluationStep( + key=evaluator_step_key, + type="annotation", + origin=origin, + references={ + "evaluator": Reference(id=evaluator_revision.evaluator_id), + "evaluator_variant": Reference( id=evaluator_revision.evaluator_variant_id, ), - evaluator_revision=Reference( + "evaluator_revision": Reference( id=evaluator_revision.id, slug=evaluator_revision.slug, version=evaluator_revision.version, ), - ) - links = ( - dict( - invocation=Link( - trace_id=application_response.trace_id, - span_id=application_response.span_id, - ) - ) - if application_response.trace_id - and application_response.span_id - else None - ) - - _revision = evaluator_revision.model_dump( - mode="json", - exclude_none=True, - ) - parameters = ( - evaluator_revision.data.parameters - if evaluator_revision.data - else None - ) - - workflow_service_request_data = WorkflowServiceRequestData( - revision=_revision, - parameters=parameters, - # - testcase=_testcase, - inputs=inputs, - # - trace=trace, - outputs=outputs, - ) - - evaluator_request = EvaluatorServiceRequest( - version="2025.07.14", - # - data=workflow_service_request_data, - # - references=references, # type: ignore - links=links, # type: ignore - ) - - evaluator_response = await invoke_evaluator( - request=evaluator_request, - ) - - if ( - not evaluator_response - or not evaluator_response.data - or not evaluator_response.trace_id - ): - print("Missing or invalid evaluator response") - if evaluator_response: - print(evaluator_response.model_dump(exclude_none=True)) - continue - - trace_id = evaluator_response.trace_id - - trace = fetch_trace_data(trace_id, max_retries=30, delay=1.0) - - result = await alog_result( - run_id=run.id, - scenario_id=scenario.id, - step_key="evaluator-" + evaluator_revision.slug, # type: ignore - trace_id=trace_id, - ) - - print( - f"{UNICODE['pipe']}" - f"{UNICODE['pipe' if testcase_idx < len(testcases) - 1 else 'skip']}" - f"{UNICODE['pipe']}" - f"{UNICODE['last' if (i == len(evaluator_revisions) - 1) else 'next']}" - f"{UNICODE['here']}" - f" result_id={str(result.id)} (annotation)", - ) - - results[evaluator_revision.slug] = result - - trace = await trace - - if not trace: - print("Failed to fetch trace data for evaluator") - continue - - metrics = await acompute_metrics( - run_id=run.id, - scenario_id=scenario.id, - ) - - print( - f"{UNICODE['pipe']}" - f"{UNICODE['pipe' if testcase_idx < len(testcases) - 1 else 'skip']}" - f"{UNICODE['last']}" - f"{UNICODE['here']}" - f"{UNICODE['skip']}" - f" metrics_id={str(metrics.id)}", + }, + ) ) - - scenarios.append( - { - "scenario": scenario, - "results": results, - "metrics": metrics, - }, + # The SDK runtime executes both auto (runtime-run) and custom + # (SDK/external-run) evaluators locally; only human is left to the + # web. Wire a local runner for everything except human. + if origin != "human": + runners[evaluator_step_key] = SdkLocalEvaluatorRunner() + revisions[evaluator_step_key] = evaluator_revision + + source_items = [] + for testcase in testcases: + inputs = dict(testcase.data or {}) + inputs.pop("testcase_dedup_id", None) + source_items.append( + ResolvedSourceItem( + kind="testcase", + step_key=input_step_key, + references={ + "testcase": Reference(id=testcase.id), + "testset": Reference(id=testset_revision.testset_id), + "testset_variant": Reference( + id=testset_revision.testset_variant_id, + ), + "testset_revision": Reference( + id=testset_revision.id, + slug=testset_revision.slug, + version=testset_revision.version, + ), + }, + testcase_id=testcase.id, + testcase=testcase.model_dump(mode="json", exclude_none=True), + inputs=inputs, + ) ) - print( - f"{UNICODE['pipe']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - "-----------------------" - "--------------------------------------" - ) - - metrics = dict() - - if len(scenarios) > 0: - metrics = await acompute_metrics( + processed = await process_evaluation_source_slice( run_id=run.id, + source_items=source_items, + steps=steps, + repeats=simple_evaluation_data.repeats, + create_scenario=create_scenario, + result_logger=result_logger, + refresh_metrics=refresh_metrics, + runners=runners, + revisions=revisions, + trace_loader=trace_loader, + # The SDK evaluate() loop IS the executor for custom-origin steps. + execute_custom=True, ) - - print( - f"{UNICODE['last']}" - f"{UNICODE['here']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - f"{UNICODE['skip']}" - f" metrics_id={str(metrics.id)}", + scenarios.extend( + { + "scenario": item.scenario, + "results": item.results, + "metrics": item.metrics, + } + for item in processed ) + if len(scenarios) > 0: + metrics = await acompute_metrics(run_id=run.id) + run = await aclose_run( run_id=run.id, ) diff --git a/sdks/python/agenta/sdk/evaluations/results.py b/sdks/python/agenta/sdk/evaluations/results.py index ca0aebb170..34abb215f7 100644 --- a/sdks/python/agenta/sdk/evaluations/results.py +++ b/sdks/python/agenta/sdk/evaluations/results.py @@ -12,7 +12,7 @@ async def acreate( run_id: UUID, scenario_id: UUID, step_key: str, - # repeat_idx: str, + repeat_idx: Optional[int] = 0, # timestamp: datetime, # interval: float, # @@ -37,7 +37,7 @@ async def acreate( # # interval=interval, # timestamp=timestamp, - # repeat_idx=repeat_idx, + repeat_idx=repeat_idx, step_key=step_key, run_id=str(run_id), scenario_id=str(scenario_id), diff --git a/sdks/python/agenta/sdk/evaluations/runtime/__init__.py b/sdks/python/agenta/sdk/evaluations/runtime/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/sdks/python/agenta/sdk/evaluations/runtime/adapters.py b/sdks/python/agenta/sdk/evaluations/runtime/adapters.py new file mode 100644 index 0000000000..5419a38f32 --- /dev/null +++ b/sdks/python/agenta/sdk/evaluations/runtime/adapters.py @@ -0,0 +1,132 @@ +from asyncio import Semaphore +from typing import Any, Dict, Optional + +from agenta.sdk.decorators.running import invoke_application, invoke_evaluator +from agenta.sdk.evaluations.preview.utils import fetch_trace_data +from agenta.sdk.evaluations.results import acreate as alog_result +from agenta.sdk.evaluations.runtime.models import ( + ResultLogRequest, + WorkflowExecutionRequest, + WorkflowExecutionResult, +) +from agenta.sdk.models.evaluations import EvaluationStatus +from agenta.sdk.models.workflows import ( + ApplicationServiceRequest, + EvaluatorServiceRequest, + WorkflowServiceRequestData, +) + + +class SdkLocalApplicationRunner: + """SDK adapter for executing application steps through local decorators.""" + + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + response = await invoke_application( + request=ApplicationServiceRequest( + data=WorkflowServiceRequestData( + revision=request.revision, + parameters=request.parameters, + testcase=request.source.testcase, + inputs=request.source.inputs, + trace=request.upstream_trace, + outputs=request.upstream_outputs, + ), + references=request.references, # type: ignore[arg-type] + links=request.links, # type: ignore[arg-type] + ) + ) + return _normalize_service_response(response) + + async def execute_batch( + self, + requests: list[WorkflowExecutionRequest], + semaphore: Optional[Semaphore] = None, + ) -> list[WorkflowExecutionResult]: + return [await self.execute(request) for request in requests] + + +class SdkLocalEvaluatorRunner: + """SDK adapter for executing evaluator steps through local decorators.""" + + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: + response = await invoke_evaluator( + request=EvaluatorServiceRequest( + version="2025.07.14", + data=WorkflowServiceRequestData( + revision=request.revision, + parameters=request.parameters, + testcase=request.source.testcase, + inputs=request.source.inputs, + trace=request.upstream_trace, + outputs=request.upstream_outputs, + ), + references=request.references, # type: ignore[arg-type] + links=request.links, # type: ignore[arg-type] + ) + ) + return _normalize_service_response(response) + + async def execute_batch( + self, + requests: list[WorkflowExecutionRequest], + semaphore: Optional[Semaphore] = None, + ) -> list[WorkflowExecutionResult]: + return [await self.execute(request) for request in requests] + + +class SdkResultLogger: + """SDK adapter for persisting evaluation result cells.""" + + async def log(self, request: ResultLogRequest) -> Any: + cell = request.cell + return await alog_result( + run_id=cell.run_id, + scenario_id=cell.scenario_id, + step_key=cell.step_key, + repeat_idx=cell.repeat_idx, + trace_id=request.trace_id + if request.trace_id is not None + else cell.trace_id, + testcase_id=( + request.testcase_id + if request.testcase_id is not None + else cell.testcase_id + ), + error=request.error if request.error is not None else cell.error, + ) + + +class SdkTraceLoader: + """SDK adapter for loading traces after local workflow execution.""" + + def __init__(self, *, max_retries: int = 30, delay: float = 1.0): + self.max_retries = max_retries + self.delay = delay + + async def load(self, trace_id: str) -> Optional[Dict[str, Any]]: + return await fetch_trace_data( + trace_id, + max_retries=self.max_retries, + delay=self.delay, + ) + + +def _normalize_service_response(response: Any) -> WorkflowExecutionResult: + if not response or not getattr(response, "data", None) or not response.trace_id: + return WorkflowExecutionResult( + status=EvaluationStatus.FAILURE, + error={"message": "Missing or invalid workflow response"}, + ) + + return WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=response.trace_id, + span_id=getattr(response, "span_id", None), + outputs=getattr(response.data, "outputs", None), + ) diff --git a/sdks/python/agenta/sdk/evaluations/runtime/executor.py b/sdks/python/agenta/sdk/evaluations/runtime/executor.py new file mode 100644 index 0000000000..b9ebd181e0 --- /dev/null +++ b/sdks/python/agenta/sdk/evaluations/runtime/executor.py @@ -0,0 +1,143 @@ +from asyncio import Semaphore, gather +from datetime import datetime +from typing import Any, Awaitable, Callable, Dict, List, Optional, Protocol +from uuid import UUID + +from agenta.sdk.evaluations.runtime.models import ( + PlannedCell, + ResultLogRequest, + WorkflowExecutionRequest, + WorkflowExecutionResult, +) + + +class WorkflowRunner(Protocol): + """Adapter boundary for application/evaluator execution. + + SDK-local evaluation, API service execution, and backend-internal workflow + invocation should each implement this protocol instead of changing the + planner or topology classifier. + """ + + async def execute( + self, + request: WorkflowExecutionRequest, + ) -> WorkflowExecutionResult: ... + + +class WorkflowBatchRunner(WorkflowRunner, Protocol): + """Optional batch execution boundary for any runnable workflow step.""" + + async def execute_batch( + self, + requests: List[WorkflowExecutionRequest], + semaphore: Optional[Semaphore] = None, + ) -> List[WorkflowExecutionResult]: ... + + +async def execute_workflow_batch( + *, + runner: WorkflowRunner, + requests: List[WorkflowExecutionRequest], + semaphore: Optional[Semaphore] = None, +) -> List[WorkflowExecutionResult]: + execute_batch = getattr(runner, "execute_batch", None) + + async def _guarded(request: WorkflowExecutionRequest) -> WorkflowExecutionResult: + if semaphore is not None: + async with semaphore: + return await runner.execute(request) + return await runner.execute(request) + + if execute_batch is not None: + return await execute_batch(requests, semaphore=semaphore) + + return list(await gather(*(_guarded(request) for request in requests))) + + +class EvaluationTaskRunner(Protocol): + """Generic evaluation task dispatch boundary. + + SDK/local code should use an in-process asyncio implementation. API code can + adapt this protocol to Taskiq without Taskiq leaking into SDK runtime code. + """ + + async def process_run( + self, + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + newest: Optional[datetime] = None, + oldest: Optional[datetime] = None, + ) -> Any: ... + + async def process_slice( + self, + *, + project_id: UUID, + user_id: UUID, + run_id: UUID, + source_kind: str, + trace_ids: Optional[List[str]] = None, + testcase_ids: Optional[List[UUID]] = None, + input_step_key: Optional[str] = None, + ) -> Any: ... + + +class AsyncioEvaluationTaskRunner: + """In-process task runner adapter for SDK/local evaluation execution.""" + + def __init__( + self, + *, + process_run: Optional[Callable[..., Awaitable[Any]]] = None, + process_slice: Optional[Callable[..., Awaitable[Any]]] = None, + ): + self._process_run = process_run + self._process_slice = process_slice + + async def process_run(self, **kwargs: Any) -> Any: + if self._process_run is None: + raise RuntimeError("process_run handler is not configured") + return await self._process_run(**kwargs) + + async def process_slice(self, **kwargs: Any) -> Any: + if self._process_slice is None: + raise RuntimeError("process_slice handler is not configured") + return await self._process_slice(**kwargs) + + +class ResultLogger(Protocol): + """Adapter boundary for persisting planned result cells.""" + + async def log(self, request: ResultLogRequest) -> Any: ... + + +class TraceLoader(Protocol): + """Adapter boundary for loading runner traces after a step executes.""" + + async def load(self, trace_id: str) -> Optional[Any]: ... + + +class RuntimeExecutionContext: + """Small mutable context shared by runner adapters while processing a scenario.""" + + def __init__(self) -> None: + self.results: Dict[str, Any] = {} + self.traces: Dict[str, Any] = {} + self.outputs: Dict[str, Any] = {} + + def remember_result(self, *, cell: PlannedCell, result: Any) -> None: + self.results[cell.step_key] = result + + def remember_execution( + self, + *, + cell: PlannedCell, + execution: WorkflowExecutionResult, + ) -> None: + if execution.trace is not None: + self.traces[cell.step_key] = execution.trace + if execution.outputs is not None: + self.outputs[cell.step_key] = execution.outputs diff --git a/sdks/python/agenta/sdk/evaluations/runtime/models.py b/sdks/python/agenta/sdk/evaluations/runtime/models.py new file mode 100644 index 0000000000..99a526dfaf --- /dev/null +++ b/sdks/python/agenta/sdk/evaluations/runtime/models.py @@ -0,0 +1,129 @@ +from typing import Any, Dict, List, Literal, Optional +from uuid import UUID + +from pydantic import BaseModel, ConfigDict, Field + +from agenta.sdk.models.evaluations import EvaluationStatus, Origin + +StepType = Literal["input", "invocation", "annotation"] +SourceKind = Literal["query", "testset", "trace", "testcase", "direct"] +TopologyStatus = Literal["supported", "potential", "not_planned", "unsupported"] +DispatchKind = Literal[ + "batch_query", + "batch_testset", + "batch_invocation", + "queue_traces", + "queue_testcases", + "live_query", +] + + +class EvaluationStep(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + key: str + type: StepType + origin: Origin = "custom" + references: Dict[str, Any] = Field(default_factory=dict) + inputs: List[str] = Field(default_factory=list) + + +class ResolvedSourceItem(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + kind: SourceKind + step_key: str + references: Dict[str, Any] = Field(default_factory=dict) + trace_id: Optional[str] = None + span_id: Optional[str] = None + testcase_id: Optional[UUID] = None + testcase: Optional[Any] = None + trace: Optional[Any] = None + inputs: Optional[Any] = None + outputs: Optional[Any] = None + + +class ScenarioBinding(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + scenario_id: UUID + source: ResolvedSourceItem + interval: Optional[int] = None + timestamp: Optional[Any] = None + + +class PlannedCell(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + run_id: UUID + scenario_id: UUID + step_key: str + step_type: StepType + origin: Origin + repeat_idx: int + status: EvaluationStatus + should_execute: bool = False + trace_id: Optional[str] = None + span_id: Optional[str] = None + testcase_id: Optional[UUID] = None + error: Optional[Dict[str, Any]] = None + + +class ExecutionPlan(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + run_id: UUID + cells: List[PlannedCell] + + @property + def executable_cells(self) -> List[PlannedCell]: + return [cell for cell in self.cells if cell.should_execute] + + +class TopologyDecision(BaseModel): + status: TopologyStatus + label: str + reason: str + dispatch: Optional[DispatchKind] = None + + +class WorkflowExecutionRequest(BaseModel): + """Runner-agnostic request for an application or evaluator step.""" + + model_config = ConfigDict(arbitrary_types_allowed=True) + + step: EvaluationStep + cell: PlannedCell + source: ResolvedSourceItem + revision: Any + parameters: Optional[Any] = None + references: Dict[str, Any] = Field(default_factory=dict) + links: Optional[Dict[str, Any]] = None + upstream_trace: Optional[Any] = None + upstream_outputs: Optional[Any] = None + + +class WorkflowExecutionResult(BaseModel): + """Normalized result produced by any workflow runner adapter.""" + + model_config = ConfigDict(arbitrary_types_allowed=True) + + status: EvaluationStatus + trace_id: Optional[str] = None + span_id: Optional[str] = None + hash_id: Optional[str] = None + outputs: Optional[Any] = None + trace: Optional[Any] = None + error: Optional[Dict[str, Any]] = None + + +class ResultLogRequest(BaseModel): + """Runner-agnostic request for persisting a planned result cell.""" + + model_config = ConfigDict(arbitrary_types_allowed=True) + + cell: PlannedCell + trace_id: Optional[str] = None + span_id: Optional[str] = None + testcase_id: Optional[UUID] = None + error: Optional[Dict[str, Any]] = None diff --git a/sdks/python/agenta/sdk/evaluations/runtime/planner.py b/sdks/python/agenta/sdk/evaluations/runtime/planner.py new file mode 100644 index 0000000000..fda93ab5cb --- /dev/null +++ b/sdks/python/agenta/sdk/evaluations/runtime/planner.py @@ -0,0 +1,213 @@ +from typing import List, Optional +from uuid import UUID + +from agenta.sdk.evaluations.runtime.models import ( + EvaluationStep, + ExecutionPlan, + PlannedCell, + ResolvedSourceItem, + ScenarioBinding, +) +from agenta.sdk.models.evaluations import EvaluationStatus + + +def build_repeat_indices(repeats: Optional[int]) -> List[int]: + count = repeats or 1 + if count < 1: + count = 1 + return list(range(count)) + + +def effective_is_split( + *, + is_split: bool, + is_live: bool = False, + has_traces: bool = False, + has_testcases: bool = False, + has_application_steps: bool = False, + has_evaluator_steps: bool = False, +) -> bool: + if is_live or has_traces or has_testcases: + return False + if not has_application_steps or not has_evaluator_steps: + return False + return is_split + + +class EvaluationPlanner: + """Build the evaluation result tensor without knowing how steps execute.""" + + def plan( + self, + *, + run_id: UUID, + scenario_id: UUID, + source: ResolvedSourceItem, + steps: List[EvaluationStep], + repeats: Optional[int] = None, + is_split: bool = False, + is_live: bool = False, + has_traces: bool = False, + has_testcases: bool = False, + execute_custom: bool = False, + ) -> ExecutionPlan: + return self.plan_bindings( + run_id=run_id, + bindings=[ + ScenarioBinding( + scenario_id=scenario_id, + source=source, + ) + ], + steps=steps, + repeats=repeats, + is_split=is_split, + is_live=is_live, + has_traces=has_traces, + has_testcases=has_testcases, + execute_custom=execute_custom, + ) + + def plan_bindings( + self, + *, + run_id: UUID, + bindings: List[ScenarioBinding], + steps: List[EvaluationStep], + repeats: Optional[int] = None, + is_split: bool = False, + is_live: bool = False, + has_traces: bool = False, + has_testcases: bool = False, + execute_custom: bool = False, + ) -> ExecutionPlan: + repeat_indices = build_repeat_indices(repeats) + + input_steps = [step for step in steps if step.type == "input"] + application_steps = [step for step in steps if step.type == "invocation"] + evaluator_steps = [step for step in steps if step.type == "annotation"] + app_repeat_indices = self._application_repeat_indices( + repeat_indices=repeat_indices, + is_split=is_split, + is_live=is_live, + has_traces=has_traces, + has_testcases=has_testcases, + has_application_steps=bool(application_steps), + has_evaluator_steps=bool(evaluator_steps), + ) + + cells: List[PlannedCell] = [] + + for binding in bindings: + source = binding.source + + for step in input_steps: + cells.extend( + PlannedCell( + run_id=run_id, + scenario_id=binding.scenario_id, + step_key=step.key, + step_type=step.type, + origin=step.origin, + repeat_idx=repeat_idx, + status=EvaluationStatus.SUCCESS, + trace_id=source.trace_id, + span_id=source.span_id, + testcase_id=source.testcase_id, + ) + for repeat_idx in repeat_indices + ) + + for step in application_steps: + cells.extend( + self._runnable_cells( + run_id=run_id, + scenario_id=binding.scenario_id, + source=source, + step=step, + repeat_indices=app_repeat_indices, + ) + ) + + for step in evaluator_steps: + cells.extend( + self._runnable_cells( + run_id=run_id, + scenario_id=binding.scenario_id, + source=source, + step=step, + repeat_indices=repeat_indices, + execute_custom=execute_custom, + ) + ) + + return ExecutionPlan(run_id=run_id, cells=cells) + + def _application_repeat_indices( + self, + *, + repeat_indices: List[int], + is_split: bool, + is_live: bool, + has_traces: bool, + has_testcases: bool, + has_application_steps: bool, + has_evaluator_steps: bool, + ) -> List[int]: + split = effective_is_split( + is_split=is_split, + is_live=is_live, + has_traces=has_traces, + has_testcases=has_testcases, + has_application_steps=has_application_steps, + has_evaluator_steps=has_evaluator_steps, + ) + + if not has_application_steps: + return [] + if not has_evaluator_steps: + return repeat_indices + if split: + return repeat_indices + return [0] + + def _runnable_cells( + self, + *, + run_id: UUID, + scenario_id: UUID, + source: ResolvedSourceItem, + step: EvaluationStep, + repeat_indices: List[int], + execute_custom: bool = False, + ) -> List[PlannedCell]: + # Who executes an annotation step depends on its origin: + # human -> the web frontend (never executed by the runtime) + # auto -> the runtime host (backend worker, or SDK locally) + # custom -> the SDK/external client. The runtime only runs custom when + # it IS that client (execute_custom=True, set by the SDK + # evaluate() loop); the backend leaves custom alone. + manual_origins = {"human"} if execute_custom else {"human", "custom"} + is_manual_annotation = step.type == "annotation" and step.origin in ( + manual_origins + ) + status = ( + EvaluationStatus.PENDING + if is_manual_annotation + else EvaluationStatus.QUEUED + ) + + return [ + PlannedCell( + run_id=run_id, + scenario_id=scenario_id, + step_key=step.key, + step_type=step.type, + origin=step.origin, + repeat_idx=repeat_idx, + status=status, + should_execute=not is_manual_annotation, + testcase_id=source.testcase_id, + ) + for repeat_idx in repeat_indices + ] diff --git a/sdks/python/agenta/sdk/evaluations/runtime/processor.py b/sdks/python/agenta/sdk/evaluations/runtime/processor.py new file mode 100644 index 0000000000..fe1e42ac8d --- /dev/null +++ b/sdks/python/agenta/sdk/evaluations/runtime/processor.py @@ -0,0 +1,533 @@ +import asyncio +from typing import Any, Awaitable, Callable, Dict, List, Mapping, Optional +from uuid import UUID + +from pydantic import BaseModel, ConfigDict, Field + +from agenta.sdk.evaluations.runtime.executor import ( + ResultLogger, + TraceLoader, + execute_workflow_batch, +) +from agenta.sdk.evaluations.runtime.models import ( + EvaluationStep, + PlannedCell, + ResolvedSourceItem, + ResultLogRequest, + WorkflowExecutionRequest, + WorkflowExecutionResult, +) +from agenta.sdk.evaluations.runtime.planner import EvaluationPlanner +from agenta.sdk.models.evaluations import EvaluationStatus +from agenta.sdk.utils.logging import get_logger + +logger = get_logger(__name__) + + +class ProcessedScenario(BaseModel): + model_config = ConfigDict(arbitrary_types_allowed=True) + + scenario: Any + results: Dict[str, Any] = Field(default_factory=dict) + metrics: Optional[Any] = None + has_pending: bool = False + has_errors: bool = False + auto_results_created: bool = False + + +CreateScenario = Callable[[UUID], Awaitable[Any]] +RefreshMetrics = Callable[[UUID, Optional[UUID]], Awaitable[Any]] + + +async def process_evaluation_source_slice( + *, + run_id: UUID, + source_items: List[ResolvedSourceItem], + steps: List[EvaluationStep], + repeats: Optional[int] = None, + create_scenario: CreateScenario, + result_logger: ResultLogger, + refresh_metrics: RefreshMetrics, + runners: Mapping[str, Any], + revisions: Mapping[str, Any], + trace_loader: Optional[TraceLoader] = None, + is_split: bool = False, + log_pending: bool = True, + refresh_metrics_without_auto_results: bool = True, + batch_size: Optional[int] = None, + max_retries: Optional[int] = None, + retry_delay: Optional[float] = None, + execute_custom: bool = False, +) -> List[ProcessedScenario]: + """Process concrete source items through the SDK-owned runtime contract. + + The function is runner/persistence agnostic. SDK preview uses local + decorator runners and API result logging; backend code can move to this + shape by supplying backend DAO/workflow adapters. + + batch_size controls the maximum number of concurrent invoke_workflow calls + across all scenarios and repeats. A single asyncio.Semaphore is shared by + both the scenario-level gather and the per-step repeat batch so that peak + concurrency equals exactly batch_size regardless of how repeats are split. + """ + semaphore = asyncio.Semaphore(batch_size) if batch_size else None + processed_lock = asyncio.Lock() + processed: List[ProcessedScenario] = [] + + logger.info( + "[SLICE] Starting", + run_id=str(run_id), + scenarios=len(source_items), + batch_size=batch_size, + max_retries=max_retries, + retry_delay=retry_delay, + ) + + async def _process_one(source_item: ResolvedSourceItem) -> None: + scenario = await create_scenario(run_id) + scenario_id = scenario.id + + plan = EvaluationPlanner().plan( + run_id=run_id, + scenario_id=scenario_id, + source=source_item, + steps=steps, + repeats=repeats, + is_split=is_split, + execute_custom=execute_custom, + ) + results: Dict[str, Any] = {} + context_by_repeat = _initial_context_by_repeat( + source_item=source_item, + repeats=repeats, + ) + scenario_has_pending = False + scenario_has_errors = False + scenario_auto_results_created = False + + idx = 0 + while idx < len(plan.cells): + cell = plan.cells[idx] + step = _step_by_key(steps, cell.step_key) + if step is None: + idx += 1 + continue + + if cell.step_type == "input": + results[cell.step_key] = await result_logger.log( + ResultLogRequest( + cell=cell, + testcase_id=source_item.testcase_id, + trace_id=source_item.trace_id, + ) + ) + idx += 1 + continue + + if not cell.should_execute: + scenario_has_pending = True + if log_pending: + results[cell.step_key] = await result_logger.log( + ResultLogRequest(cell=cell) + ) + idx += 1 + continue + + batch_cells = _next_runnable_batch( + cells=plan.cells, + start_idx=idx, + step_key=cell.step_key, + ) + runner = runners.get(cell.step_key) + revision = revisions.get(cell.step_key) + if runner is None or revision is None: + for batch_cell in batch_cells: + scenario_has_errors = True + results[batch_cell.step_key] = await result_logger.log( + ResultLogRequest( + cell=_failed_cell( + batch_cell, + message=( + f"Missing runner or revision for " + f"{batch_cell.step_key}" + ), + ), + error={ + "message": ( + f"Missing runner or revision for " + f"{batch_cell.step_key}" + ) + }, + ) + ) + idx += len(batch_cells) + continue + + requests = [ + _build_execution_request( + cell=batch_cell, + step=step, + source_item=source_item, + revision=revision, + context_by_repeat=context_by_repeat, + ) + for batch_cell in batch_cells + ] + + executions = await _execute_with_retry( + runner=runner, + requests=requests, + semaphore=semaphore, + max_retries=max_retries, + retry_delay=retry_delay, + ) + for batch_cell, execution in zip(batch_cells, executions): + if trace_loader and execution.trace_id and execution.trace is None: + execution.trace = await trace_loader.load(str(execution.trace_id)) + if execution.outputs is None and execution.trace is not None: + execution.outputs = _extract_outputs(execution.trace) + + results[batch_cell.step_key] = await result_logger.log( + ResultLogRequest( + cell=batch_cell, + trace_id=execution.trace_id, + span_id=execution.span_id, + testcase_id=source_item.testcase_id, + error=execution.error, + ) + ) + scenario_auto_results_created = True + if execution.error or str(execution.status) in { + "failure", + "EvaluationStatus.FAILURE", + "errors", + "EvaluationStatus.ERRORS", + }: + scenario_has_errors = True + + if execution.trace_id: + _remember_context( + cell=batch_cell, + context_by_repeat=context_by_repeat, + trace=execution.trace, + trace_id=str(execution.trace_id), + span_id=execution.span_id, + outputs=execution.outputs, + ) + + if len(executions) != len(batch_cells): + scenario_has_errors = True + message = ( + f"Runner for {cell.step_key} returned {len(executions)} " + f"execution(s) for {len(batch_cells)} planned cell(s)." + ) + if len(executions) < len(batch_cells): + # Fewer executions than cells: fail the unplanned-for cells so + # the mismatch is visible per cell. + for batch_cell in batch_cells[len(executions) :]: + results[batch_cell.step_key] = await result_logger.log( + ResultLogRequest( + cell=_failed_cell(batch_cell, message=message), + testcase_id=source_item.testcase_id, + error={"message": message}, + ) + ) + scenario_auto_results_created = True + else: + # More executions than cells: the extras have no cell and were + # dropped by the zip() above. Warn with their summaries so the + # contract violation leaves an audit trail. + extra_executions = executions[len(batch_cells) :] + logger.warning( + message, + step_key=cell.step_key, + planned_cells=len(batch_cells), + returned_executions=len(executions), + dropped_executions=[ + { + "trace_id": str(execution.trace_id) + if execution.trace_id + else None, + "span_id": str(execution.span_id) + if execution.span_id + else None, + "status": str(execution.status), + "error": execution.error, + } + for execution in extra_executions + ], + ) + + idx += len(batch_cells) + + metrics = None + if refresh_metrics_without_auto_results or scenario_auto_results_created: + metrics = await refresh_metrics(run_id, scenario_id) + + async with processed_lock: + processed.append( + ProcessedScenario( + scenario=scenario, + results=results, + metrics=metrics, + has_pending=scenario_has_pending, + has_errors=scenario_has_errors, + auto_results_created=scenario_auto_results_created, + ) + ) + + await asyncio.gather(*(_process_one(item) for item in source_items)) + + logger.info( + "[SLICE] Complete", + run_id=str(run_id), + processed=len(processed), + has_errors=any(item.has_errors for item in processed), + ) + + if processed and ( + refresh_metrics_without_auto_results + or any(item.auto_results_created for item in processed) + ): + await refresh_metrics(run_id, None) + + return processed + + +async def _execute_with_retry( + *, + runner: Any, + requests: List[WorkflowExecutionRequest], + semaphore: Optional[asyncio.Semaphore], + max_retries: Optional[int], + retry_delay: Optional[float], +) -> List[WorkflowExecutionResult]: + attempts = max(1, (max_retries or 0) + 1) + delay = retry_delay or 0.0 + results: List[WorkflowExecutionResult] = await execute_workflow_batch( + runner=runner, + requests=requests, + semaphore=semaphore, + ) + for attempt in range(attempts - 1): + failed_indices = [ + i + for i, r in enumerate(results) + if r.error + or str(r.status) + in { + "failure", + "EvaluationStatus.FAILURE", + "errors", + "EvaluationStatus.ERRORS", + } + ] + if not failed_indices: + break + logger.warning( + "[RETRY] Retrying failed requests", + attempt=attempt + 1, + failed=len(failed_indices), + total=len(requests), + delay=delay, + ) + if delay > 0: + await asyncio.sleep(delay) + retried = await execute_workflow_batch( + runner=runner, + requests=[requests[i] for i in failed_indices], + semaphore=semaphore, + ) + for idx, result in zip(failed_indices, retried): + results[idx] = result + return results + + +def _step_by_key( + steps: List[EvaluationStep], + step_key: str, +) -> Optional[EvaluationStep]: + for step in steps: + if step.key == step_key: + return step + return None + + +def _initial_context_by_repeat( + *, + source_item: ResolvedSourceItem, + repeats: Optional[int], +) -> Dict[int, Dict[str, Any]]: + if not source_item.trace and not source_item.trace_id: + return {} + + trace = source_item.trace + trace_id = source_item.trace_id or _get_trace_id(trace) + root_span = _extract_root_span(trace) + span_id = source_item.span_id or _get_span_id(root_span) + outputs = source_item.outputs or _extract_outputs(trace) + if not trace_id: + return {} + + context = { + "trace": trace, + "trace_id": str(trace_id), + "span_id": span_id, + "outputs": outputs, + } + count = repeats or 1 + return {repeat_idx: context for repeat_idx in range(max(count, 1))} + + +def _next_runnable_batch( + *, + cells: List[PlannedCell], + start_idx: int, + step_key: str, +) -> List[PlannedCell]: + batch = [] + for cell in cells[start_idx:]: + if not cell.should_execute or cell.step_key != step_key: + break + batch.append(cell) + return batch + + +def _build_execution_request( + *, + cell: PlannedCell, + step: EvaluationStep, + source_item: ResolvedSourceItem, + revision: Any, + context_by_repeat: Dict[int, Dict[str, Any]], +) -> WorkflowExecutionRequest: + upstream = _upstream_for_cell( + cell=cell, + context_by_repeat=context_by_repeat, + ) + return WorkflowExecutionRequest( + step=step, + cell=cell, + source=source_item, + revision=_dump_revision(revision), + parameters=_revision_parameters(revision), + references={ + **(source_item.references or {}), + **(step.references or {}), + }, + links=upstream.get("links"), + upstream_trace=upstream.get("trace"), + upstream_outputs=upstream.get("outputs"), + ) + + +def _failed_cell(cell: PlannedCell, *, message: str) -> PlannedCell: + return cell.model_copy( + update={ + "status": EvaluationStatus.FAILURE, + "error": {"message": message}, + } + ) + + +def _dump_revision(revision: Any) -> Any: + if hasattr(revision, "model_dump"): + return revision.model_dump(mode="json", exclude_none=True) + return revision + + +def _revision_parameters(revision: Any) -> Optional[Any]: + data = getattr(revision, "data", None) + return getattr(data, "parameters", None) if data else None + + +def _upstream_for_cell( + *, + cell: PlannedCell, + context_by_repeat: Dict[int, Dict[str, Any]], +) -> Dict[str, Any]: + context = context_by_repeat.get(cell.repeat_idx) or context_by_repeat.get(0) or {} + if not context: + return {} + + trace_id = context.get("trace_id") + span_id = context.get("span_id") + links = ( + { + "invocation": { + "trace_id": trace_id, + "span_id": span_id, + } + } + if trace_id and span_id + else None + ) + return { + "links": links, + "trace": context.get("trace"), + "outputs": context.get("outputs"), + } + + +def _remember_context( + *, + cell: PlannedCell, + context_by_repeat: Dict[int, Dict[str, Any]], + trace: Optional[Any], + trace_id: str, + span_id: Optional[str], + outputs: Optional[Any], +) -> None: + context = { + "trace": trace, + "trace_id": trace_id, + "span_id": span_id, + "outputs": outputs, + } + context_by_repeat[cell.repeat_idx] = context + if cell.step_type == "invocation" and 0 not in context_by_repeat: + context_by_repeat[0] = context + + +def _extract_outputs(trace: Any) -> Optional[Any]: + root_span = _extract_root_span(trace) + if root_span is None: + return None + attributes = ( + root_span.get("attributes", {}) + if isinstance(root_span, dict) + else getattr(root_span, "attributes", {}) + ) + if hasattr(attributes, "model_dump"): + attributes = attributes.model_dump(mode="json", exclude_none=True) + return attributes.get("ag", {}).get("data", {}).get("outputs") + + +def _extract_root_span(trace: Any) -> Optional[Any]: + spans = ( + trace.get("spans") if isinstance(trace, dict) else getattr(trace, "spans", None) + ) + if not spans: + return None + root_span = next(iter(spans.values()), None) if isinstance(spans, dict) else None + if isinstance(root_span, list): + return None + return root_span + + +def _get_trace_id(trace: Any) -> Optional[str]: + if isinstance(trace, dict): + return trace.get("trace_id") + trace_id = getattr(trace, "trace_id", None) + return str(trace_id) if trace_id else None + + +def _get_span_id(root_span: Any) -> Optional[str]: + if root_span is None: + return None + span_id = ( + root_span.get("span_id") + if isinstance(root_span, dict) + else getattr(root_span, "span_id", None) + ) + return str(span_id) if span_id else None diff --git a/sdks/python/agenta/sdk/evaluations/runtime/topology.py b/sdks/python/agenta/sdk/evaluations/runtime/topology.py new file mode 100644 index 0000000000..d06d08512e --- /dev/null +++ b/sdks/python/agenta/sdk/evaluations/runtime/topology.py @@ -0,0 +1,145 @@ +from typing import Iterable, List, Optional + +from agenta.sdk.evaluations.runtime.models import EvaluationStep, TopologyDecision + + +def _has_reference(step: EvaluationStep, token: str) -> bool: + if any(token in str(key).lower() for key in step.references.keys()): + return True + return token in step.key.lower() + + +def _input_family(step: EvaluationStep) -> Optional[str]: + if _has_reference(step, "query"): + return "query" + if _has_reference(step, "testset"): + return "testset" + if _has_reference(step, "trace"): + return "trace" + if _has_reference(step, "testcase"): + return "testcase" + return None + + +def _steps_of_type( + steps: Iterable[EvaluationStep], step_type: str +) -> List[EvaluationStep]: + return [step for step in steps if step.type == step_type] + + +def classify_steps_topology( + *, + steps: List[EvaluationStep], + is_live: bool = False, + has_queries: bool = False, + has_testsets: bool = False, + has_traces: bool = False, + has_testcases: bool = False, + has_evaluators: bool = False, +) -> TopologyDecision: + input_steps = _steps_of_type(steps, "input") + application_steps = _steps_of_type(steps, "invocation") + evaluator_steps = _steps_of_type(steps, "annotation") + + input_families = { + family for family in (_input_family(step) for step in input_steps) if family + } + has_queries = has_queries or "query" in input_families + has_testsets = has_testsets or "testset" in input_families + has_traces = has_traces or "trace" in input_families + has_testcases = has_testcases or "testcase" in input_families + has_applications = bool(application_steps) + has_evaluators = has_evaluators or bool(evaluator_steps) + + if has_queries and has_testsets: + return TopologyDecision( + status="not_planned", + label="mixed query and testset sources", + reason="mixed query and testset source families in one run are not planned", + ) + + if is_live and has_testsets: + return TopologyDecision( + status="not_planned", + label="live testset evaluation", + reason="live testset evaluation is not a meaningful product shape", + ) + + if len(application_steps) > 1: + return TopologyDecision( + status="not_planned", + label="multiple application steps", + reason="A/B application comparisons should use separate evaluations", + ) + + if is_live and has_queries and has_evaluators and not has_applications: + return TopologyDecision( + status="supported", + label="live query -> evaluator", + reason="live query evaluator runs keep scheduler/windowing behavior", + dispatch="live_query", + ) + + if has_evaluators and not has_applications: + if has_testcases: + return TopologyDecision( + status="supported", + label="direct testcases -> evaluator", + reason="direct testcase batches are worker-dispatched", + dispatch="queue_testcases", + ) + if has_traces: + return TopologyDecision( + status="supported", + label="direct traces -> evaluator", + reason="direct trace batches are worker-dispatched", + dispatch="queue_traces", + ) + + if has_queries and has_applications: + return TopologyDecision( + status="potential", + label="query -> application", + reason=( + "query traces can seed application calls, but source trace links must " + "not be attached as application links because that would classify the " + "new application traces as annotations" + ), + ) + + if has_testsets and has_evaluators and not has_applications: + return TopologyDecision( + status="potential", + label="testset -> evaluator", + reason="non-queue testcase-only evaluator execution needs an explicit evaluator contract", + ) + + if has_queries and has_evaluators and not has_applications: + return TopologyDecision( + status="supported", + label="batch query -> evaluator", + reason="batch query evaluator runs are worker-dispatched", + dispatch="batch_query", + ) + + if has_testsets and has_applications and has_evaluators: + return TopologyDecision( + status="supported", + label="testset -> application -> evaluator", + reason="batch testset evaluation is worker-dispatched", + dispatch="batch_testset", + ) + + if has_testsets and has_applications and not has_evaluators and not has_queries: + return TopologyDecision( + status="supported", + label="testset -> application", + reason="batch inference / batch invocation is worker-dispatched", + dispatch="batch_invocation", + ) + + return TopologyDecision( + status="unsupported", + label="unsupported evaluation topology", + reason="no current worker dispatch path matches this evaluation graph", + ) diff --git a/sdks/python/agenta/sdk/litellm/mocks/__init__.py b/sdks/python/agenta/sdk/litellm/mocks/__init__.py index 59f3947c8b..ea7418aa4d 100644 --- a/sdks/python/agenta/sdk/litellm/mocks/__init__.py +++ b/sdks/python/agenta/sdk/litellm/mocks/__init__.py @@ -78,11 +78,34 @@ def capital_mock_response(*args, **kwargs) -> MockResponseModel: ) +@instrument() +def echo_mock_response(*args, **kwargs) -> MockResponseModel: + # Returns the last user message content verbatim — deterministic, useful for + # asserting prompt plumbing without an LLM. + messages = kwargs.get("messages") or [] + content = "" + for message in reversed(messages): + if isinstance(message, dict) and message.get("role") == "user": + content = str(message.get("content", "")) + break + return MockResponseModel( + choices=[MockChoiceModel(message=MockMessageModel(content=content))], + ) + + +@instrument() +def error_mock_response(*args, **kwargs) -> MockResponseModel: + # Raises to exercise the LLM failure path deterministically. + raise RuntimeError("mock LLM error") + + MOCKS: dict[str, Callable[..., MockResponseModel]] = { "hello": hello_mock_response, "chat": chat_mock_response, "delay": delay_mock_response, "capital": capital_mock_response, + "echo": echo_mock_response, + "error": error_mock_response, } CAPITALS = { diff --git a/sdks/python/agenta/sdk/managers/applications.py b/sdks/python/agenta/sdk/managers/applications.py index 2bff102c3c..3098bceee7 100644 --- a/sdks/python/agenta/sdk/managers/applications.py +++ b/sdks/python/agenta/sdk/managers/applications.py @@ -164,7 +164,7 @@ async def aupsert( req = await application_workflow.inspect() - simple_application_flags = SimpleApplicationFlags(**req.flags) + simple_application_flags = SimpleApplicationFlags(**(req.flags or {})) simple_application_data = SimpleApplicationData( **( diff --git a/sdks/python/agenta/sdk/managers/evaluators.py b/sdks/python/agenta/sdk/managers/evaluators.py index 80be45ad42..b8c8e00ed9 100644 --- a/sdks/python/agenta/sdk/managers/evaluators.py +++ b/sdks/python/agenta/sdk/managers/evaluators.py @@ -160,7 +160,7 @@ async def aupsert( req = await evaluator_workflow.inspect() - legacy_application_flags = SimpleEvaluatorFlags(**req.flags) + legacy_application_flags = SimpleEvaluatorFlags(**(req.flags or {})) simple_evaluator_data = SimpleEvaluatorData( **( diff --git a/sdks/python/agenta/sdk/middlewares/routing/auth.py b/sdks/python/agenta/sdk/middlewares/routing/auth.py index b8b6293241..ae057444f3 100644 --- a/sdks/python/agenta/sdk/middlewares/routing/auth.py +++ b/sdks/python/agenta/sdk/middlewares/routing/auth.py @@ -138,7 +138,7 @@ async def get_credentials( async with httpx.AsyncClient() as client: try: response = await client.get( - f"{host}/api/permissions/verify", + f"{host}/api/access/permissions/check", headers=headers, cookies=cookies, params=params, diff --git a/sdks/python/agenta/sdk/middlewares/running/vault.py b/sdks/python/agenta/sdk/middlewares/running/vault.py index 457c3f28b2..41ee31fd18 100644 --- a/sdks/python/agenta/sdk/middlewares/running/vault.py +++ b/sdks/python/agenta/sdk/middlewares/running/vault.py @@ -127,7 +127,7 @@ async def _allow_local_secrets( ): """ Verify if the user has permission to use local secrets. - Makes an API call to /api/permissions/verify to check access. + Makes an API call to /api/access/permissions/check to check access. """ try: if not _AUTH_ENABLED: @@ -170,7 +170,7 @@ async def _allow_local_secrets( async with httpx.AsyncClient() as client: try: response = await client.get( - f"{host}/api/permissions/verify", + f"{host}/api/access/permissions/check", headers=headers, params=params, timeout=30.0, @@ -325,7 +325,7 @@ async def get_secrets( try: async with httpx.AsyncClient() as client: response = await client.get( - f"{api_url}/vault/v1/secrets/", + f"{api_url}/secrets/", headers=headers, ) diff --git a/sdks/python/agenta/sdk/models/evaluations.py b/sdks/python/agenta/sdk/models/evaluations.py index 267f996fab..a25020580d 100644 --- a/sdks/python/agenta/sdk/models/evaluations.py +++ b/sdks/python/agenta/sdk/models/evaluations.py @@ -42,6 +42,9 @@ class EvaluationRunFlags(BaseModel): is_live: bool = False # Indicates if the run has live queries is_active: bool = False # Indicates if the run is currently active is_closed: bool = False # Indicates if the run is modifiable + is_queue: bool = False # Indicates this run belongs to an annotation queue + is_cached: bool = False # Indicates the run should reuse traces by hash + is_split: bool = False # Indicates repeats fan out at the application step # has_queries: bool = False # Indicates if the run has queries has_testsets: bool = False # Indicates if the run has testsets @@ -86,9 +89,10 @@ class EvaluationResult(BaseModel): run_id: UUID scenario_id: UUID step_key: str + repeat_idx: Optional[int] = 0 testcase_id: Optional[UUID] = None - trace_id: Optional[UUID] = None + trace_id: Optional[Union[UUID, str]] = None error: Optional[dict] = None flags: Optional[Dict[str, Any]] = None diff --git a/sdks/python/oss/tests/legacy/new_tests/vault_router/conftest.py b/sdks/python/oss/tests/legacy/new_tests/vault_router/conftest.py index aef2c39a57..ec4abb182f 100644 --- a/sdks/python/oss/tests/legacy/new_tests/vault_router/conftest.py +++ b/sdks/python/oss/tests/legacy/new_tests/vault_router/conftest.py @@ -6,7 +6,7 @@ AGENTA_HOST = os.environ.get("AGENTA_HOST", "http://localhost") -API_BASE_URL = f"{AGENTA_HOST}/api/vault/v1/" +API_BASE_URL = f"{AGENTA_HOST}/api/" @pytest.fixture diff --git a/sdks/python/oss/tests/pytest/acceptance/evaluations/test_evaluate_flow.py b/sdks/python/oss/tests/pytest/acceptance/evaluations/test_evaluate_flow.py new file mode 100644 index 0000000000..b8cc5d8f24 --- /dev/null +++ b/sdks/python/oss/tests/pytest/acceptance/evaluations/test_evaluate_flow.py @@ -0,0 +1,182 @@ +""" +End-to-end acceptance tests for the high-level evaluate() entrypoint +(`agenta.sdk.evaluations.aevaluate`). + +aevaluate() is a CLIENT-SIDE orchestrator: it upserts the testset/application/ +evaluator, creates a run, builds the input/invocation/annotation step graph, +executes the slice IN-PROCESS via the SDK local runners, computes metrics, and +closes the run — returning {run, scenarios, metrics}. No worker is involved. + +These run against the live API (acceptance) using deterministic, LLM-free +handlers, so they exercise the real upsert + run + local-execution path. + +Coverage: + - local-callable mode (handlers passed directly) across the config matrix: + single auto evaluator, repeats, multiple evaluators; + - saved-workflow mode once: the application is the saved agenta:custom:mock:v0 + workflow referenced by revision id. + +We do not re-run the whole matrix through both modes — the matrix runs through +local-callable mode; saved-workflow mode gets a single wiring test. +""" + +from uuid import uuid4 + +import pytest + +import agenta as ag +from agenta.sdk.evaluations import aevaluate +from agenta.sdk.managers import testsets, applications + +pytestmark = [pytest.mark.acceptance, pytest.mark.asyncio] + +MOCK_URI = "agenta:custom:mock:v0" + + +@ag.workflow(uri=MOCK_URI, parameters={"key": "echo", "kwargs": {}}) +def mock_app(): + """Saved-workflow handle pointing at the deterministic agenta:custom:mock:v0 + workflow (echo selector). Registered as an application via its URI.""" + + +# --- deterministic, LLM-free local handlers -------------------------------- + + +@ag.application() +def echo_app(topic: str = "") -> dict: + """A trivial deterministic application: echoes the input.""" + return {"answer": topic} + + +@ag.evaluator() +def pass_evaluator(answer: str = "", **kwargs) -> dict: + """A deterministic evaluator that always passes.""" + return {"score": 1.0, "success": True} + + +@ag.evaluator() +def length_evaluator(answer: str = "", **kwargs) -> dict: + """A deterministic evaluator scoring by output length.""" + return {"score": float(len(answer or "")), "success": True} + + +async def _make_testset(): + name = f"sdk-eval-flow-{uuid4().hex[:8]}" + rev = await testsets.aupsert( + name=name, + data=[ + {"topic": "alpha"}, + {"topic": "beta"}, + ], + ) + assert rev is not None and rev.testset_id + return rev + + +def _assert_eval_result(result, *, expected_scenarios): + assert result is not None, "aevaluate returned None" + assert set(result.keys()) == {"run", "scenarios", "metrics"} + assert result["run"] is not None and result["run"].id + assert len(result["scenarios"]) == expected_scenarios + + +def _metrics_data(result): + m = result["metrics"] + return getattr(m, "data", None) or {} + + +def _assert_evaluator_metrics_present(result): + # The evaluator must actually be EXECUTED by the SDK runtime (custom origin), + # so its outputs land in the run metrics. Before the custom-execution fix the + # evaluator step was skipped (logged pending, trace_id=None) and produced no + # metrics — this assertion guards that regression. + data = _metrics_data(result) + evaluator_steps = {k: v for k, v in data.items() if k.startswith("evaluator-")} + assert evaluator_steps, f"no evaluator metrics in run metrics: {list(data.keys())}" + # at least one evaluator step exposes its scored output + assert any( + any("ag.data.outputs.score" in path for path in v) + for v in evaluator_steps.values() + ), f"evaluator metrics present but no score output: {evaluator_steps}" + + +class TestEvaluateLocalCallable: + async def test_basic_testset_app_auto_evaluator(self, agenta_init): + rev = await _make_testset() + result = await aevaluate( + name="sdk-eval-basic", + testsets={str(rev.id): "custom"}, + applications=[echo_app], + evaluators=[pass_evaluator], + ) + # 2 testcases x 1 repeat = 2 scenarios + _assert_eval_result(result, expected_scenarios=2) + # the custom (SDK-run) evaluator must actually execute and yield metrics + _assert_evaluator_metrics_present(result) + + async def test_with_repeats(self, agenta_init): + rev = await _make_testset() + result = await aevaluate( + name="sdk-eval-repeats", + testsets={str(rev.id): "custom"}, + applications=[echo_app], + evaluators=[pass_evaluator], + repeats=2, + ) + # repeats fan out at the scenario/cell level; still one scenario per + # testcase row (2), each carrying repeated cells. + _assert_eval_result(result, expected_scenarios=2) + + async def test_multiple_evaluators(self, agenta_init): + rev = await _make_testset() + result = await aevaluate( + name="sdk-eval-multi", + testsets={str(rev.id): "custom"}, + applications=[echo_app], + evaluators=[pass_evaluator, length_evaluator], + ) + _assert_eval_result(result, expected_scenarios=2) + _assert_evaluator_metrics_present(result) + + async def test_specs_dict_equivalent_to_kwargs(self, agenta_init): + rev = await _make_testset() + result = await aevaluate( + name="sdk-eval-specs", + specs={ + "testsets": {str(rev.id): "custom"}, + "applications": [echo_app], + "evaluators": [pass_evaluator], + }, + ) + _assert_eval_result(result, expected_scenarios=2) + + async def test_missing_evaluators_raises(self, agenta_init): + rev = await _make_testset() + with pytest.raises(ValueError, match="missing evaluators"): + await aevaluate( + name="sdk-eval-bad", + testsets={str(rev.id): "custom"}, + applications=[echo_app], + ) + + +class TestEvaluateSavedWorkflow: + async def test_saved_mock_workflow_application(self, agenta_init): + # Saved-workflow mode: register the agenta:custom:mock:v0 workflow as an + # application revision, then reference it by revision id in aevaluate. + rev = await _make_testset() + + app_revision_id = await applications.aupsert( + application_slug=f"mock-app-{uuid4().hex[:8]}", + name="Mock App", + handler=mock_app, + ) + assert app_revision_id is not None + + result = await aevaluate( + name="sdk-eval-saved", + testsets={str(rev.id): "custom"}, + applications={str(app_revision_id): "custom"}, + evaluators=[pass_evaluator], + ) + _assert_eval_result(result, expected_scenarios=2) diff --git a/sdks/python/oss/tests/pytest/acceptance/integrations/test_vault_secrets.py b/sdks/python/oss/tests/pytest/acceptance/integrations/test_vault_secrets.py index d99a8db3fa..b685c776fc 100644 --- a/sdks/python/oss/tests/pytest/acceptance/integrations/test_vault_secrets.py +++ b/sdks/python/oss/tests/pytest/acceptance/integrations/test_vault_secrets.py @@ -2,7 +2,7 @@ Integration tests for Vault/Secrets functionality. These tests verify: -1. Permissions verification via access_control.verify_permissions() +1. Permissions verification via access.check_permissions() 2. Secrets CRUD via secrets.list_secrets(), create_secret(), read_secret(), delete_secret() The vault middleware uses these endpoints during workflow execution to: @@ -53,23 +53,14 @@ def _wait_for_secret_ids( class TestAccessControlPermissions: """Test access control permission verification.""" - @pytest.mark.xfail( - reason=( - "/permissions router is mounted with include_in_schema=False, " - "so Fern does not generate ag.api.access_control. Either flip the " - "schema flag and regenerate the client, or rewrite this test " - "against the raw HTTP endpoint." - ), - strict=True, - ) - def test_verify_permissions_for_local_secrets(self, agenta_init): + def test_check_permissions_for_local_secrets(self, agenta_init): """ - Test that verify_permissions works for local_secrets resource. + Test that check_permissions works for local_secrets resource. This is the same call the vault middleware makes to check if a user can use local (env var) secrets during workflow execution. """ - result = ag.api.access_control.verify_permissions( + result = ag.api.access.check_permissions( action="view_secret", resource_type="local_secrets", ) @@ -81,20 +72,11 @@ def test_verify_permissions_for_local_secrets(self, agenta_init): # Effect should be "allow" or "deny" assert result["effect"] in ("allow", "deny") - @pytest.mark.xfail( - reason=( - "/permissions router is mounted with include_in_schema=False, " - "so Fern does not generate ag.api.access_control. Either flip the " - "schema flag and regenerate the client, or rewrite this test " - "against the raw HTTP endpoint." - ), - strict=True, - ) - def test_verify_permissions_returns_allow_for_valid_user(self, agenta_init): + def test_check_permissions_returns_allow_for_valid_user(self, agenta_init): """ Test that a valid API key gets 'allow' effect for view_secret. """ - result = ag.api.access_control.verify_permissions( + result = ag.api.access.check_permissions( action="view_secret", resource_type="local_secrets", ) diff --git a/sdks/python/oss/tests/pytest/integration/__init__.py b/sdks/python/oss/tests/pytest/integration/__init__.py new file mode 100644 index 0000000000..a26504824f --- /dev/null +++ b/sdks/python/oss/tests/pytest/integration/__init__.py @@ -0,0 +1 @@ +# Integration tests package diff --git a/sdks/python/oss/tests/pytest/integration/conftest.py b/sdks/python/oss/tests/pytest/integration/conftest.py new file mode 100644 index 0000000000..202af977f8 --- /dev/null +++ b/sdks/python/oss/tests/pytest/integration/conftest.py @@ -0,0 +1,2 @@ +# Integration tests wire multiple SDK modules together with the network +# boundary mocked. No live services required (unlike acceptance/). diff --git a/sdks/python/oss/tests/pytest/integration/test_evaluate_orchestration.py b/sdks/python/oss/tests/pytest/integration/test_evaluate_orchestration.py new file mode 100644 index 0000000000..edf5b28d5d --- /dev/null +++ b/sdks/python/oss/tests/pytest/integration/test_evaluate_orchestration.py @@ -0,0 +1,209 @@ +""" +Integration-level tests for the aevaluate() orchestration. + +These exercise the real SDK orchestration in agenta.sdk.evaluations.preview.evaluate +(spec parsing, entity retrieval, step-graph construction, runner wiring, result +assembly) with the network boundary and the slice processor mocked. They verify +that aevaluate(): + + - builds the input/invocation/annotation step graph with the right keys + origins, + - wires a local application runner and (for auto evaluators) a local evaluator + runner, but NOT a runner for human evaluators, + - forwards repeats and the resolved source_items to the processor, + - assembles {run, scenarios, metrics} from the processed scenarios. + +The runtime processor itself is unit-tested separately (test_evaluations_runtime); +here it is mocked so these tests stay deterministic and free of execution timing. +""" + +import asyncio +from types import SimpleNamespace +from unittest.mock import AsyncMock, patch +from uuid import uuid4 + +import pytest + +import agenta.sdk.evaluations.preview.evaluate as ev +from agenta.sdk.evaluations.runtime.adapters import ( + SdkLocalApplicationRunner, + SdkLocalEvaluatorRunner, +) + +pytestmark = pytest.mark.integration + +MOD = "agenta.sdk.evaluations.preview.evaluate" + + +def run(coro): + return asyncio.run(coro) + + +def _testcase(data): + return SimpleNamespace( + id=uuid4(), + data=data, + model_dump=lambda **kw: {"data": data}, + ) + + +def _testset_revision(*, slug="t1", testcases): + return SimpleNamespace( + id=uuid4(), + slug=slug, + version="1", + testset_id=uuid4(), + testset_variant_id=uuid4(), + data=SimpleNamespace(testcases=testcases), + ) + + +def _application_revision(*, slug="app1"): + return SimpleNamespace( + id=uuid4(), + slug=slug, + version="1", + application_id=uuid4(), + application_variant_id=uuid4(), + data=SimpleNamespace(), + ) + + +def _evaluator_revision(*, slug="ev1"): + return SimpleNamespace( + id=uuid4(), + slug=slug, + version="1", + evaluator_id=uuid4(), + evaluator_variant_id=uuid4(), + data=SimpleNamespace(), + ) + + +def _patch_io(*, testset_revision, application_revision, evaluator_revision, captured): + """Patch every network/IO boundary aevaluate() uses, and capture the + process_evaluation_source_slice kwargs. Returns a context-manager list.""" + run_obj = SimpleNamespace(id=uuid4()) + + async def fake_process(**kwargs): + captured["process_kwargs"] = kwargs + # Return one processed scenario per source item. + return [ + SimpleNamespace( + scenario=SimpleNamespace(id=uuid4()), + results={}, + metrics={"score": 1.0}, + ) + for _ in kwargs["source_items"] + ] + + return [ + patch(f"{MOD}.acreate_run", AsyncMock(return_value=run_obj)), + patch(f"{MOD}.aclose_run", AsyncMock(return_value=run_obj)), + patch(f"{MOD}.aget_url", AsyncMock(return_value="http://x/run")), + patch( + f"{MOD}.aadd_scenario", AsyncMock(return_value=SimpleNamespace(id=uuid4())) + ), + patch(f"{MOD}.acompute_metrics", AsyncMock(return_value={"score": 1.0})), + patch(f"{MOD}.aretrieve_testset", AsyncMock(return_value=testset_revision)), + patch( + f"{MOD}.aretrieve_application", + AsyncMock(return_value=application_revision), + ), + patch( + f"{MOD}.aretrieve_evaluator", + AsyncMock(return_value=evaluator_revision), + ), + patch(f"{MOD}.process_evaluation_source_slice", fake_process), + ] + + +def _evaluate(*, evaluators, repeats=None, testcases=None): + captured = {} + tsr = _testset_revision( + testcases=testcases or [_testcase({"q": "a"}), _testcase({"q": "b"})] + ) + appr = _application_revision() + evr = _evaluator_revision() + + patches = _patch_io( + testset_revision=tsr, + application_revision=appr, + evaluator_revision=evr, + captured=captured, + ) + for p in patches: + p.start() + try: + result = run( + ev.aevaluate( + testsets={str(tsr.id): "custom"}, + applications={str(appr.id): "custom"}, + evaluators=evaluators, + repeats=repeats, + ) + ) + finally: + for p in patches: + p.stop() + return result, captured, (tsr, appr, evr) + + +class TestAevaluateOrchestration: + def test_builds_step_graph_and_returns_run_scenarios_metrics(self): + _, captured, (tsr, appr, evr) = _evaluate(evaluators={str(uuid4()): "auto"}) + + steps = captured["process_kwargs"]["steps"] + kinds = [(s.key, s.type, s.origin) for s in steps] + + # input (testset) + invocation (application) + annotation (evaluator) + types = [t for _, t, _ in kinds] + assert "input" in types + assert "invocation" in types + assert "annotation" in types + + # input step key derives from the testset slug, invocation from app slug + assert any(k.startswith("testset-") and t == "input" for k, t, _ in kinds) + assert any( + k == f"application-{appr.slug}" and t == "invocation" for k, t, _ in kinds + ) + assert any( + k == f"evaluator-{evr.slug}" and t == "annotation" for k, t, _ in kinds + ) + + def test_auto_evaluator_gets_local_runner(self): + _, captured, (_tsr, appr, evr) = _evaluate(evaluators={str(uuid4()): "auto"}) + runners = captured["process_kwargs"]["runners"] + + assert isinstance( + runners[f"application-{appr.slug}"], SdkLocalApplicationRunner + ) + # auto evaluator -> local evaluator runner is wired + assert isinstance(runners[f"evaluator-{evr.slug}"], SdkLocalEvaluatorRunner) + + def test_human_evaluator_gets_no_runner(self): + _, captured, (_tsr, _appr, evr) = _evaluate(evaluators={str(uuid4()): "human"}) + runners = captured["process_kwargs"]["runners"] + + # human annotation has no auto runner (it is filled in by a person) + assert f"evaluator-{evr.slug}" not in runners + # but the annotation step is still in the graph + steps = captured["process_kwargs"]["steps"] + assert any( + s.key == f"evaluator-{evr.slug}" and s.origin == "human" for s in steps + ) + + def test_forwards_repeats_and_source_items(self): + tcs = [_testcase({"q": "a"}), _testcase({"q": "b"}), _testcase({"q": "c"})] + _, captured, _ = _evaluate( + evaluators={str(uuid4()): "auto"}, repeats=4, testcases=tcs + ) + assert captured["process_kwargs"]["repeats"] == 4 + # one source item per testcase + assert len(captured["process_kwargs"]["source_items"]) == 3 + + def test_assembles_result_payload(self): + result, captured, _ = _evaluate(evaluators={str(uuid4()): "auto"}) + assert set(result.keys()) == {"run", "scenarios", "metrics"} + # one processed scenario per source item (2 default testcases) + assert len(result["scenarios"]) == 2 + assert result["metrics"] == {"score": 1.0} diff --git a/sdks/python/oss/tests/pytest/unit/test_evaluate_specs.py b/sdks/python/oss/tests/pytest/unit/test_evaluate_specs.py new file mode 100644 index 0000000000..449b9bfb60 --- /dev/null +++ b/sdks/python/oss/tests/pytest/unit/test_evaluate_specs.py @@ -0,0 +1,190 @@ +""" +Unit tests for the evaluate() spec parsing/normalization layer. + +These cover the pure, API-free internals of `agenta.sdk.evaluations.preview.evaluate`: + + - `_parse_evaluate_kwargs`: merges kwargs with `specs`, applies kwargs-win + precedence, carries `repeats`, and validates the three required step groups. + - `_normalize_step_id`: coerces UUID-compatible ids to canonical str, drops + invalid ones. + - `_normalize_target_steps`: builds {step_id: origin}, rejecting invalid ids + and non-{custom,human,auto} origins. + +`_parse_evaluate_kwargs` is async but does no I/O, so it runs via asyncio.run. +""" + +import asyncio +from uuid import uuid4 + +import pytest + +from agenta.sdk.evaluations.preview.evaluate import ( + EvaluateSpecs, + _normalize_step_id, + _normalize_target_steps, + _parse_evaluate_kwargs, +) + + +def run(coro): + return asyncio.run(coro) + + +def _str_keys(steps): + # Target = Dict[UUID, Origin] coerces string keys to UUID objects; compare by + # canonical string so the assertions are independent of key representation. + return {str(k): v for k, v in (steps or {}).items()} + + +# --- _normalize_step_id ---------------------------------------------------- + + +def test_normalize_step_id_passes_through_uuid_object(): + u = uuid4() + assert _normalize_step_id(u) == str(u) + + +def test_normalize_step_id_canonicalizes_uuid_string(): + u = uuid4() + assert _normalize_step_id(str(u)) == str(u) + + +def test_normalize_step_id_returns_none_for_none(): + assert _normalize_step_id(None) is None + + +def test_normalize_step_id_returns_none_for_invalid(): + assert _normalize_step_id("not-a-uuid") is None + + +# --- _normalize_target_steps ---------------------------------------------- + + +def test_normalize_target_steps_keeps_valid_entries(): + a, b = uuid4(), uuid4() + steps = {str(a): "human", str(b): "auto"} + out = _normalize_target_steps(steps=steps, step_name="evaluators") + assert out == {str(a): "human", str(b): "auto"} + + +def test_normalize_target_steps_rejects_invalid_id(): + with pytest.raises(ValueError, match="invalid"): + _normalize_target_steps(steps={"not-a-uuid": "auto"}, step_name="evaluators") + + +def test_normalize_target_steps_rejects_invalid_origin(): + with pytest.raises(ValueError, match="invalid"): + _normalize_target_steps(steps={str(uuid4()): "robot"}, step_name="evaluators") + + +def test_normalize_target_steps_rejects_empty(): + with pytest.raises(ValueError, match="missing or invalid"): + _normalize_target_steps(steps={}, step_name="evaluators") + + +def test_normalize_target_steps_rejects_non_dict(): + with pytest.raises(ValueError, match="missing or invalid"): + _normalize_target_steps(steps=["not", "a", "dict"], step_name="evaluators") + + +# --- _parse_evaluate_kwargs ------------------------------------------------ + + +def _ids(): + return str(uuid4()), str(uuid4()), str(uuid4()) + + +def test_parse_kwargs_builds_data_from_direct_kwargs(): + ts, app, ev = _ids() + data = run( + _parse_evaluate_kwargs( + testsets={ts: "custom"}, + applications={app: "custom"}, + evaluators={ev: "auto"}, + repeats=3, + ) + ) + assert _str_keys(data.testset_steps) == {ts: "custom"} + assert _str_keys(data.application_steps) == {app: "custom"} + assert _str_keys(data.evaluator_steps) == {ev: "auto"} + assert data.repeats == 3 + + +def test_parse_kwargs_builds_data_from_specs_dict(): + ts, app, ev = _ids() + data = run( + _parse_evaluate_kwargs( + specs={ + "testsets": {ts: "custom"}, + "applications": {app: "custom"}, + "evaluators": {ev: "human"}, + "repeats": 2, + } + ) + ) + assert _str_keys(data.testset_steps) == {ts: "custom"} + assert _str_keys(data.evaluator_steps) == {ev: "human"} + assert data.repeats == 2 + + +def test_parse_kwargs_accepts_evaluatespecs_instance(): + ts, app, ev = _ids() + data = run( + _parse_evaluate_kwargs( + specs=EvaluateSpecs( + testsets={ts: "custom"}, + applications={app: "custom"}, + evaluators={ev: "auto"}, + ) + ) + ) + assert _str_keys(data.application_steps) == {app: "custom"} + + +def test_parse_kwargs_direct_kwargs_win_over_specs(): + ts, app, ev = _ids() + other_ts = str(uuid4()) + data = run( + _parse_evaluate_kwargs( + testsets={ts: "custom"}, + specs={ + "testsets": {other_ts: "custom"}, + "applications": {app: "custom"}, + "evaluators": {ev: "auto"}, + }, + ) + ) + # direct testsets kwarg wins; applications/evaluators fall back to specs + assert _str_keys(data.testset_steps) == {ts: "custom"} + assert _str_keys(data.application_steps) == {app: "custom"} + + +@pytest.mark.parametrize( + "missing", + ["testsets", "applications", "evaluators"], +) +def test_parse_kwargs_requires_each_step_group(missing): + ts, app, ev = _ids() + kwargs = { + "testsets": {ts: "custom"}, + "applications": {app: "custom"}, + "evaluators": {ev: "auto"}, + } + kwargs.pop(missing) + with pytest.raises(ValueError, match=f"missing {missing}"): + run(_parse_evaluate_kwargs(**kwargs)) + + +def test_parse_kwargs_ignores_non_spec_object(): + ts, app, ev = _ids() + # A specs value that is neither dict nor EvaluateSpecs is dropped, so the + # direct kwargs must still satisfy the required groups. + data = run( + _parse_evaluate_kwargs( + testsets={ts: "custom"}, + applications={app: "custom"}, + evaluators={ev: "auto"}, + specs="not-a-spec", + ) + ) + assert _str_keys(data.testset_steps) == {ts: "custom"} diff --git a/sdks/python/oss/tests/pytest/unit/test_evaluations_runtime.py b/sdks/python/oss/tests/pytest/unit/test_evaluations_runtime.py new file mode 100644 index 0000000000..3d15a7788f --- /dev/null +++ b/sdks/python/oss/tests/pytest/unit/test_evaluations_runtime.py @@ -0,0 +1,1166 @@ +from types import SimpleNamespace +from uuid import uuid4 + +import pytest + +import agenta.sdk.evaluations.preview.evaluate as preview_evaluate +import agenta.sdk.evaluations.runtime.adapters as runtime_adapters +from agenta.sdk.evaluations.runtime.executor import execute_workflow_batch +from agenta.sdk.evaluations.runtime.models import ( + EvaluationStep, + PlannedCell, + ResolvedSourceItem, + ResultLogRequest, + ScenarioBinding, +) +from agenta.sdk.evaluations.runtime.planner import EvaluationPlanner +from agenta.sdk.evaluations.runtime.processor import ( + process_evaluation_source_slice, +) +from agenta.sdk.evaluations.runtime.topology import classify_steps_topology +from agenta.sdk.evaluations.runtime.models import WorkflowExecutionResult +from agenta.sdk.models.evaluations import EvaluationStatus + + +def test_sdk_runtime_planner_matches_split_repeat_rules(): + run_id = uuid4() + scenario_id = uuid4() + plan = EvaluationPlanner().plan( + run_id=run_id, + scenario_id=scenario_id, + source=ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ), + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="application-main", type="invocation"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + EvaluationStep(key="evaluator-human", type="annotation", origin="human"), + ], + repeats=3, + is_split=False, + ) + + assert [ + cell.repeat_idx for cell in plan.cells if cell.step_key == "application-main" + ] == [0] + assert [ + cell.status for cell in plan.cells if cell.step_key == "evaluator-human" + ] == [ + EvaluationStatus.PENDING, + EvaluationStatus.PENDING, + EvaluationStatus.PENDING, + ] + assert {(cell.step_key, cell.repeat_idx) for cell in plan.executable_cells} == { + ("application-main", 0), + ("evaluator-auto", 0), + ("evaluator-auto", 1), + ("evaluator-auto", 2), + } + + +def test_sdk_runtime_planner_handles_multiple_scenario_bindings(): + run_id = uuid4() + first_scenario_id = uuid4() + second_scenario_id = uuid4() + + plan = EvaluationPlanner().plan_bindings( + run_id=run_id, + bindings=[ + ScenarioBinding( + scenario_id=first_scenario_id, + source=ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ), + ), + ScenarioBinding( + scenario_id=second_scenario_id, + source=ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ), + ), + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="application-main", type="invocation"), + ], + repeats=2, + ) + + assert [cell.scenario_id for cell in plan.cells] == [ + first_scenario_id, + first_scenario_id, + first_scenario_id, + first_scenario_id, + second_scenario_id, + second_scenario_id, + second_scenario_id, + second_scenario_id, + ] + assert [ + (cell.step_key, cell.repeat_idx) + for cell in plan.cells + if cell.scenario_id == first_scenario_id + ] == [ + ("testset-main", 0), + ("testset-main", 1), + ("application-main", 0), + ("application-main", 1), + ] + + +def test_sdk_runtime_topology_classifier_matches_batch_inference_shape(): + decision = classify_steps_topology( + steps=[ + EvaluationStep( + key="testset-main", + type="input", + references={"testset_revision": {"id": str(uuid4())}}, + ), + EvaluationStep( + key="application-main", + type="invocation", + references={"application_revision": {"id": str(uuid4())}}, + ), + ], + ) + + assert decision.status == "supported" + assert decision.dispatch == "batch_invocation" + + +def test_sdk_runtime_topology_classifier_distinguishes_direct_testcases_from_testsets(): + decision = classify_steps_topology( + steps=[ + EvaluationStep(key="testcases", type="input"), + EvaluationStep(key="evaluator-human", type="annotation", origin="human"), + ], + has_testcases=True, + has_evaluators=True, + ) + + assert decision.status == "supported" + assert decision.dispatch == "queue_testcases" + + +def test_sdk_runtime_topology_classifier_keeps_deferred_query_to_application_shape(): + decision = classify_steps_topology( + steps=[ + EvaluationStep( + key="query-main", + type="input", + references={"query_revision": {"id": str(uuid4())}}, + ), + EvaluationStep( + key="application-main", + type="invocation", + references={"application_revision": {"id": str(uuid4())}}, + ), + ], + ) + + assert decision.status == "potential" + + +@pytest.mark.asyncio +async def test_sdk_workflow_batch_falls_back_to_single_execute(): + calls = [] + + class SingleRunner: + async def execute(self, request): + calls.append(request.cell.repeat_idx) + return WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"trace-{request.cell.repeat_idx}", + ) + + requests = [ + SimpleNamespace( + cell=SimpleNamespace(repeat_idx=0), + ), + SimpleNamespace( + cell=SimpleNamespace(repeat_idx=1), + ), + ] + + results = await execute_workflow_batch( + runner=SingleRunner(), + requests=requests, + ) + + assert calls == [0, 1] + assert [result.trace_id for result in results] == ["trace-0", "trace-1"] + + +@pytest.mark.asyncio +async def test_sdk_source_slice_batches_runnable_cells(): + run_id = uuid4() + scenario_id = uuid4() + logged = [] + + class BatchRunner: + def __init__(self): + self.requests = [] + + async def execute_batch(self, requests, semaphore=None): + self.requests.append(requests) + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"trace-{request.cell.repeat_idx}", + span_id=f"span-{request.cell.repeat_idx}", + ) + for request in requests + ] + + class Logger: + async def log(self, request): + logged.append((request.cell.step_key, request.cell.repeat_idx)) + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return SimpleNamespace(id=uuid4()) + + runner = BatchRunner() + + await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"prompt": "hello"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=3, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": runner}, + revisions={"evaluator-auto": {"id": "revision"}}, + ) + + assert len(runner.requests) == 1 + assert [request.cell.repeat_idx for request in runner.requests[0]] == [0, 1, 2] + assert logged == [ + ("testset-main", 0), + ("testset-main", 1), + ("testset-main", 2), + ("evaluator-auto", 0), + ("evaluator-auto", 1), + ("evaluator-auto", 2), + ] + + +@pytest.mark.asyncio +async def test_sdk_source_slice_marks_short_runner_batch_as_error(): + run_id = uuid4() + scenario_id = uuid4() + logged = [] + + class ShortRunner: + async def execute_batch(self, requests, semaphore=None): + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id="trace-0", + span_id="span-0", + ) + ] + + class Logger: + async def log(self, request): + logged.append(request) + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return SimpleNamespace(id=uuid4()) + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"prompt": "hello"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=2, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": ShortRunner()}, + revisions={"evaluator-auto": {"id": "revision"}}, + ) + + assert processed[0].has_errors is True + failed_log = logged[-1] + assert failed_log.cell.step_key == "evaluator-auto" + assert failed_log.cell.repeat_idx == 1 + assert failed_log.cell.status == EvaluationStatus.FAILURE + assert failed_log.error == { + "message": ( + "Runner for evaluator-auto returned 1 execution(s) for 2 planned cell(s)." + ) + } + + +@pytest.mark.asyncio +async def test_sdk_source_slice_handles_over_count_runner_batch(): + # Runner returns more executions than planned cells: the planned cells are + # logged from the first executions, the extras have no cell and are dropped + # (with a structured warning), and the scenario is flagged as having errors. + run_id = uuid4() + scenario_id = uuid4() + logged = [] + + class LongRunner: + async def execute_batch(self, requests, semaphore=None): + # 3 executions for 2 planned cells (repeats=2). + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"trace-{i}", + span_id=f"span-{i}", + ) + for i in range(3) + ] + + class Logger: + async def log(self, request): + logged.append(request) + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return SimpleNamespace(id=uuid4()) + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"prompt": "hello"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=2, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": LongRunner()}, + revisions={"evaluator-auto": {"id": "revision"}}, + ) + + assert processed[0].has_errors is True + # Both planned evaluator cells were logged from the first two executions; the + # third (extra) execution is dropped, not logged as a cell. + evaluator_logs = [ + entry for entry in logged if entry.cell.step_key == "evaluator-auto" + ] + assert len(evaluator_logs) == 2 + assert {entry.cell.repeat_idx for entry in evaluator_logs} == {0, 1} + + +@pytest.mark.asyncio +async def test_sdk_source_slice_marks_missing_runner_as_error(): + run_id = uuid4() + scenario_id = uuid4() + logged = [] + + class Logger: + async def log(self, request): + logged.append(request) + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return SimpleNamespace(id=uuid4()) + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id="query-trace", + ) + ], + steps=[ + EvaluationStep(key="query-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=1, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={}, + revisions={}, + ) + + assert processed[0].has_errors is True + assert [(item.cell.step_key, item.error) for item in logged] == [ + ("query-main", None), + ( + "evaluator-auto", + {"message": "Missing runner or revision for evaluator-auto"}, + ), + ] + + +@pytest.mark.asyncio +async def test_sdk_source_slice_can_defer_manual_results_without_metric_refresh(): + run_id = uuid4() + scenario_id = uuid4() + logged = [] + + class Logger: + async def log(self, request): + logged.append(request.cell.step_key) + return SimpleNamespace(id=uuid4()) + + refresh_metrics = pytest.fail + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="trace", + step_key="query-main", + trace_id="query-trace", + ) + ], + steps=[ + EvaluationStep(key="query-main", type="input"), + EvaluationStep(key="evaluator-human", type="annotation", origin="human"), + ], + repeats=1, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={}, + revisions={}, + log_pending=False, + refresh_metrics_without_auto_results=False, + ) + + assert processed[0].has_pending is True + assert processed[0].auto_results_created is False + assert logged == ["query-main"] + + +@pytest.mark.asyncio +async def test_sdk_source_slice_links_evaluators_to_application_traces(): + run_id = uuid4() + scenario_id = uuid4() + evaluator_requests = [] + + class ApplicationRunner: + async def execute_batch(self, requests, semaphore=None): + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id="app-trace", + span_id="app-span", + outputs={"answer": "hello"}, + trace={ + "trace_id": "app-trace", + "spans": { + "root": { + "span_id": "app-span", + "attributes": { + "ag": { + "data": { + "outputs": {"answer": "hello"}, + } + } + }, + } + }, + }, + ) + for _ in requests + ] + + class EvaluatorRunner: + async def execute_batch(self, requests, semaphore=None): + evaluator_requests.extend(requests) + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"eval-trace-{request.cell.repeat_idx}", + ) + for request in requests + ] + + class Logger: + async def log(self, request): + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return SimpleNamespace(id=uuid4()) + + await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"prompt": "hello"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="application-main", type="invocation"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=2, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={ + "application-main": ApplicationRunner(), + "evaluator-auto": EvaluatorRunner(), + }, + revisions={ + "application-main": {"id": "application-revision"}, + "evaluator-auto": {"id": "evaluator-revision"}, + }, + is_split=False, + ) + + assert [request.cell.repeat_idx for request in evaluator_requests] == [0, 1] + assert [request.links for request in evaluator_requests] == [ + {"invocation": {"trace_id": "app-trace", "span_id": "app-span"}}, + {"invocation": {"trace_id": "app-trace", "span_id": "app-span"}}, + ] + assert [request.upstream_outputs for request in evaluator_requests] == [ + {"answer": "hello"}, + {"answer": "hello"}, + ] + + +@pytest.mark.asyncio +async def test_sdk_result_logger_adapter_preserves_repeat_idx(monkeypatch): + calls = [] + + async def fake_log_result(**kwargs): + calls.append(kwargs) + return {"id": "result"} + + monkeypatch.setattr(runtime_adapters, "alog_result", fake_log_result) + cell = PlannedCell( + run_id=uuid4(), + scenario_id=uuid4(), + step_key="evaluator-auto", + step_type="annotation", + origin="auto", + repeat_idx=2, + status=EvaluationStatus.SUCCESS, + testcase_id=uuid4(), + ) + + result = await runtime_adapters.SdkResultLogger().log( + ResultLogRequest( + cell=cell, + trace_id="trace-repeat", + ) + ) + + assert result == {"id": "result"} + assert calls == [ + { + "run_id": cell.run_id, + "scenario_id": cell.scenario_id, + "step_key": "evaluator-auto", + "repeat_idx": 2, + "trace_id": "trace-repeat", + "testcase_id": cell.testcase_id, + "error": None, + } + ] + + +@pytest.mark.asyncio +async def test_sdk_preview_evaluate_logs_repeat_aware_results(monkeypatch): + run_id = uuid4() + scenario_id = uuid4() + testset_id = uuid4() + testset_variant_id = uuid4() + testset_revision_id = uuid4() + application_revision_id = uuid4() + evaluator_revision_id = uuid4() + testcase_id = uuid4() + + testcase = SimpleNamespace( + id=testcase_id, + data={"prompt": "hello"}, + model_dump=lambda **kwargs: { + "id": str(testcase_id), + "data": {"prompt": "hello"}, + }, + ) + testset_revision = SimpleNamespace( + id=testset_revision_id, + testset_id=testset_id, + testset_variant_id=testset_variant_id, + slug="main", + version="1", + data=SimpleNamespace(testcases=[testcase]), + ) + application_revision = SimpleNamespace( + id=application_revision_id, + application_id=uuid4(), + application_variant_id=uuid4(), + slug="app", + version="1", + data=SimpleNamespace(parameters={"temperature": 0}), + model_dump=lambda **kwargs: {"id": str(application_revision_id)}, + ) + evaluator_revision = SimpleNamespace( + id=evaluator_revision_id, + evaluator_id=uuid4(), + evaluator_variant_id=uuid4(), + slug="eval", + version="1", + data=SimpleNamespace(parameters={"threshold": 1}), + model_dump=lambda **kwargs: {"id": str(evaluator_revision_id)}, + ) + + async def fake_retrieve_testset(**kwargs): + return testset_revision + + async def fake_retrieve_application(**kwargs): + return application_revision + + async def fake_retrieve_evaluator(**kwargs): + return evaluator_revision + + async def fake_create_run(**kwargs): + return SimpleNamespace(id=run_id) + + async def fake_add_scenario(**kwargs): + return SimpleNamespace(id=scenario_id) + + logged_results = [] + + async def fake_log_result(**kwargs): + logged_results.append(kwargs) + return SimpleNamespace(id=uuid4()) + + async def fake_invoke_application(**kwargs): + return SimpleNamespace( + data=SimpleNamespace(), + trace_id="app-trace", + span_id="app-span", + ) + + evaluator_trace_ids = iter(["eval-trace-0", "eval-trace-1"]) + + async def fake_invoke_evaluator(**kwargs): + return SimpleNamespace( + data=SimpleNamespace(), + trace_id=next(evaluator_trace_ids), + span_id="eval-span", + ) + + async def fake_fetch_trace_data(trace_id, **kwargs): + return { + "spans": { + "root": { + "attributes": { + "ag": { + "data": { + "inputs": {"prompt": "hello"}, + "outputs": {"answer": trace_id}, + } + } + } + } + } + } + + async def fake_compute_metrics(**kwargs): + return SimpleNamespace(id=uuid4()) + + async def fake_close_run(**kwargs): + return SimpleNamespace(id=run_id) + + async def fake_get_url(**kwargs): + return "" + + monkeypatch.setattr(preview_evaluate, "aretrieve_testset", fake_retrieve_testset) + monkeypatch.setattr( + preview_evaluate, "aretrieve_application", fake_retrieve_application + ) + monkeypatch.setattr( + preview_evaluate, "aretrieve_evaluator", fake_retrieve_evaluator + ) + monkeypatch.setattr(preview_evaluate, "acreate_run", fake_create_run) + monkeypatch.setattr(preview_evaluate, "aadd_scenario", fake_add_scenario) + monkeypatch.setattr(runtime_adapters, "alog_result", fake_log_result) + monkeypatch.setattr(runtime_adapters, "invoke_application", fake_invoke_application) + monkeypatch.setattr(runtime_adapters, "invoke_evaluator", fake_invoke_evaluator) + monkeypatch.setattr(runtime_adapters, "fetch_trace_data", fake_fetch_trace_data) + monkeypatch.setattr(preview_evaluate, "acompute_metrics", fake_compute_metrics) + monkeypatch.setattr(preview_evaluate, "aclose_run", fake_close_run) + monkeypatch.setattr(preview_evaluate, "aget_url", fake_get_url) + + result = await preview_evaluate.aevaluate( + testsets={testset_revision_id: "custom"}, + applications={application_revision_id: "custom"}, + evaluators={evaluator_revision_id: "auto"}, + repeats=2, + ) + + assert result["run"].id == run_id + assert [ + (logged_result["step_key"], logged_result["repeat_idx"]) + for logged_result in logged_results + ] == [ + ("testset-main", 0), + ("testset-main", 1), + ("application-app", 0), + ("evaluator-eval", 0), + ("evaluator-eval", 1), + ] + assert [ + logged_result["trace_id"] + for logged_result in logged_results + if logged_result["step_key"] == "evaluator-eval" + ] == ["eval-trace-0", "eval-trace-1"] + + +# --------------------------------------------------------------------------- +# Concurrency and retry +# --------------------------------------------------------------------------- + + +@pytest.mark.asyncio +async def test_sdk_source_slice_runs_scenarios_concurrently_up_to_batch_size(): + """batch_size=2 with 4 scenarios: at most 2 invoke_workflow calls in flight at once.""" + import asyncio + + run_id = uuid4() + in_flight = 0 + peak = 0 + + class ConcurrentRunner: + async def execute_batch(self, requests, semaphore=None): + results = [] + for request in requests: + + async def _one(req): + nonlocal in_flight, peak + in_flight += 1 + peak = max(peak, in_flight) + await asyncio.sleep(0) + in_flight -= 1 + return WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"trace-{req.cell.repeat_idx}", + ) + + if semaphore is not None: + async with semaphore: + results.append(await _one(request)) + else: + results.append(await _one(request)) + return results + + class Logger: + async def log(self, request): + return SimpleNamespace(id=uuid4()) + + scenarios_created = [] + + async def create_scenario(run_id): + sid = uuid4() + scenarios_created.append(sid) + return SimpleNamespace(id=sid) + + async def refresh_metrics(run_id, scenario_id): + return None + + source_items = [ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"x": str(i)}, + ) + for i in range(4) + ] + + await process_evaluation_source_slice( + run_id=run_id, + source_items=source_items, + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=1, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": ConcurrentRunner()}, + revisions={"evaluator-auto": {"id": "rev"}}, + batch_size=2, + ) + + assert len(scenarios_created) == 4 + assert peak <= 2 + + +@pytest.mark.asyncio +async def test_sdk_source_slice_semaphore_shared_across_repeats(): + """batch_size=2 with 1 scenario and 4 repeats: peak concurrency stays ≤ 2.""" + import asyncio + + run_id = uuid4() + scenario_id = uuid4() + in_flight = 0 + peak = 0 + + class ConcurrentRunner: + async def execute_batch(self, requests, semaphore=None): + async def _one(req): + nonlocal in_flight, peak + in_flight += 1 + peak = max(peak, in_flight) + await asyncio.sleep(0) + in_flight -= 1 + return WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"trace-{req.cell.repeat_idx}", + ) + + if semaphore is not None: + results = [] + for req in requests: + async with semaphore: + results.append(await _one(req)) + return results + return [await _one(req) for req in requests] + + class Logger: + async def log(self, request): + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return None + + await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"x": "0"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=4, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": ConcurrentRunner()}, + revisions={"evaluator-auto": {"id": "rev"}}, + batch_size=2, + ) + + assert peak <= 2 + + +@pytest.mark.asyncio +async def test_sdk_source_slice_no_batch_size_runs_all_concurrently(): + """When batch_size=None the semaphore is absent and all scenarios run freely.""" + run_id = uuid4() + scenarios_created = [] + + class Runner: + async def execute_batch(self, requests, semaphore=None): + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id="t", + ) + for _ in requests + ] + + class Logger: + async def log(self, request): + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + sid = uuid4() + scenarios_created.append(sid) + return SimpleNamespace(id=sid) + + async def refresh_metrics(run_id, scenario_id): + return None + + source_items = [ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + ) + for _ in range(5) + ] + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=source_items, + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=1, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": Runner()}, + revisions={"evaluator-auto": {"id": "rev"}}, + batch_size=None, + ) + + assert len(processed) == 5 + + +@pytest.mark.asyncio +async def test_sdk_source_slice_retries_failed_cells_and_succeeds(): + """max_retries=1: first attempt fails, retry succeeds; result is success.""" + run_id = uuid4() + scenario_id = uuid4() + call_count = 0 + + class FlakyRunner: + async def execute_batch(self, requests, semaphore=None): + nonlocal call_count + call_count += 1 + if call_count == 1: + return [ + WorkflowExecutionResult( + status=EvaluationStatus.FAILURE, + error={"message": "transient"}, + ) + for _ in requests + ] + return [ + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id="recovered", + ) + for _ in requests + ] + + logged = [] + + class Logger: + async def log(self, request): + logged.append((request.cell.step_key, request.trace_id, request.error)) + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return None + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"x": "1"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=1, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": FlakyRunner()}, + revisions={"evaluator-auto": {"id": "rev"}}, + max_retries=1, + ) + + assert call_count == 2 + assert processed[0].has_errors is False + eval_log = next(entry for entry in logged if entry[0] == "evaluator-auto") + assert eval_log[1] == "recovered" + assert eval_log[2] is None + + +@pytest.mark.asyncio +async def test_sdk_source_slice_exhausts_retries_and_marks_error(): + """max_retries=1 with persistent failure: result is still an error.""" + run_id = uuid4() + scenario_id = uuid4() + call_count = 0 + + class AlwaysFailRunner: + async def execute_batch(self, requests, semaphore=None): + nonlocal call_count + call_count += 1 + return [ + WorkflowExecutionResult( + status=EvaluationStatus.FAILURE, + error={"message": "always fails"}, + ) + for _ in requests + ] + + class Logger: + async def log(self, request): + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return None + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"x": "1"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=1, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": AlwaysFailRunner()}, + revisions={"evaluator-auto": {"id": "rev"}}, + max_retries=1, + ) + + assert call_count == 2 + assert processed[0].has_errors is True + + +@pytest.mark.asyncio +async def test_sdk_source_slice_retries_only_failed_cells_in_batch(): + """With repeats=2, only the failing repeat is retried, not the successful one.""" + run_id = uuid4() + scenario_id = uuid4() + attempt_by_repeat: dict = {} + + class SelectiveFlakyRunner: + async def execute_batch(self, requests, semaphore=None): + results = [] + for req in requests: + idx = req.cell.repeat_idx + attempt_by_repeat[idx] = attempt_by_repeat.get(idx, 0) + 1 + if idx == 1 and attempt_by_repeat[idx] == 1: + results.append( + WorkflowExecutionResult( + status=EvaluationStatus.FAILURE, + error={"message": "fail repeat 1 first time"}, + ) + ) + else: + results.append( + WorkflowExecutionResult( + status=EvaluationStatus.SUCCESS, + trace_id=f"trace-{idx}", + ) + ) + return results + + class Logger: + async def log(self, request): + return SimpleNamespace(id=uuid4()) + + async def create_scenario(run_id): + return SimpleNamespace(id=scenario_id) + + async def refresh_metrics(run_id, scenario_id): + return None + + processed = await process_evaluation_source_slice( + run_id=run_id, + source_items=[ + ResolvedSourceItem( + kind="testcase", + step_key="testset-main", + testcase_id=uuid4(), + inputs={"x": "1"}, + ) + ], + steps=[ + EvaluationStep(key="testset-main", type="input"), + EvaluationStep(key="evaluator-auto", type="annotation", origin="auto"), + ], + repeats=2, + create_scenario=create_scenario, + result_logger=Logger(), + refresh_metrics=refresh_metrics, + runners={"evaluator-auto": SelectiveFlakyRunner()}, + revisions={"evaluator-auto": {"id": "rev"}}, + max_retries=1, + ) + + assert processed[0].has_errors is False + assert attempt_by_repeat[0] == 1 + assert attempt_by_repeat[1] == 2 diff --git a/sdks/python/oss/tests/pytest/utils/test_mock_v0.py b/sdks/python/oss/tests/pytest/utils/test_mock_v0.py new file mode 100644 index 0000000000..e67ddb41f7 --- /dev/null +++ b/sdks/python/oss/tests/pytest/utils/test_mock_v0.py @@ -0,0 +1,147 @@ +""" +Unit tests for the mock_v0 workflow (agenta:custom:mock:v0). + +mock_v0 is a deterministic, LLM-free, sandbox-free workflow used by evaluation +flow tests. It stands in for BOTH an application (invocation step, returns +outputs) and an evaluator (annotation step, returns {"score", "success"}). The +behavior is selected by name via parameters = {"key": ..., "kwargs": {...}}. + +async handlers are called via asyncio.run() so no pytest-asyncio marker is +needed. The @instrument() decorator is bypassed via __wrapped__. +""" + +import asyncio + +import pytest + +from agenta.sdk.workflows.errors import ( + MockV0Error, + InvalidConfigurationParameterV0Error, + MissingConfigurationParameterV0Error, +) +from agenta.sdk.workflows.handlers import mock_v0, MOCK_V0_BEHAVIORS + +_mock_v0 = mock_v0.__wrapped__ + + +def run(coro): + return asyncio.run(coro) + + +def call(key=None, *, kwargs=None, inputs=None, outputs=None, trace=None): + params = {} + if key is not None: + params["key"] = key + if kwargs is not None: + params["kwargs"] = kwargs + return run(_mock_v0(parameters=params, inputs=inputs, outputs=outputs, trace=trace)) + + +# --- parameter validation -------------------------------------------------- + + +def test_missing_key_raises(): + with pytest.raises(MissingConfigurationParameterV0Error): + call() + + +def test_unknown_key_raises(): + with pytest.raises(InvalidConfigurationParameterV0Error): + call("not-a-real-selector") + + +def test_non_dict_kwargs_raises(): + with pytest.raises(InvalidConfigurationParameterV0Error): + run(_mock_v0(parameters={"key": "pass", "kwargs": ["not", "a", "dict"]})) + + +# --- app-role selectors ---------------------------------------------------- + + +def test_echo_returns_inputs_verbatim(): + assert call("echo", inputs={"input": "hello"}) == {"input": "hello"} + + +def test_echo_empty_inputs(): + assert call("echo") == {} + + +def test_static_returns_kwargs_output(): + assert call("static", kwargs={"output": {"answer": "world"}}) == {"answer": "world"} + + +# --- evaluator-role selectors ---------------------------------------------- + + +def test_pass_returns_success(): + assert call("pass") == {"score": 1.0, "success": True} + + +def test_fail_returns_failure(): + assert call("fail") == {"score": 0.0, "success": False} + + +def test_score_above_threshold_succeeds(): + assert call("score", kwargs={"score": 0.8, "threshold": 0.5}) == { + "score": 0.8, + "success": True, + } + + +def test_score_below_threshold_fails(): + assert call("score", kwargs={"score": 0.2, "threshold": 0.5}) == { + "score": 0.2, + "success": False, + } + + +def test_score_default_threshold(): + # default threshold is 0.5 + assert call("score", kwargs={"score": 0.5})["success"] is True + assert call("score", kwargs={"score": 0.49})["success"] is False + + +# --- shared selectors ------------------------------------------------------ + + +def test_error_raises_mock_error(): + with pytest.raises(MockV0Error): + call("error") + + +def test_error_custom_message(): + with pytest.raises(MockV0Error) as exc: + call("error", kwargs={"message": "boom"}) + assert "boom" in str(exc.value) + + +def test_delay_sleeps_then_defers(): + # delay is fast here; just assert it defers to the named behavior + assert call("delay", kwargs={"seconds": 0.01, "then": "pass"}) == { + "score": 1.0, + "success": True, + } + + +def test_delay_default_then_is_pass(): + assert call("delay", kwargs={"seconds": 0.01})["success"] is True + + +def test_delay_recursion_guard(): + # then="delay" must not recurse into another sleep; it falls back to pass + assert call("delay", kwargs={"seconds": 0.01, "then": "delay"})["success"] is True + + +# --- registry -------------------------------------------------------------- + + +def test_registry_covers_documented_selectors(): + assert set(MOCK_V0_BEHAVIORS) == { + "echo", + "static", + "pass", + "fail", + "score", + "error", + "delay", + } diff --git a/services/entrypoints/main.py b/services/entrypoints/main.py index 919698c5ae..72cc291dfb 100644 --- a/services/entrypoints/main.py +++ b/services/entrypoints/main.py @@ -38,6 +38,7 @@ builtin_match_app, custom_code_app, custom_hook_app, + custom_mock_app, custom_config_app, ) from oss.src.chat import chat_v0_app @@ -144,6 +145,7 @@ async def health(): app.mount("/config/v0", custom_config_app) app.mount("/code/v0", custom_code_app) app.mount("/hook/v0", custom_hook_app) +app.mount("/mock/v0", custom_mock_app) app.mount("/match/v0", builtin_match_app) app.mount("/llm/v0", builtin_llm_app) app.mount("/auto_exact_match/v0", builtin_auto_exact_match_app) @@ -177,4 +179,5 @@ async def health(): port=8080, reload=True, reload_dirs=[".", "/sdk"], + reload_excludes=["**/tests/**", "/sdk/tests"], ) diff --git a/services/oss/src/managed.py b/services/oss/src/managed.py index d2a8081715..8ad8226175 100644 --- a/services/oss/src/managed.py +++ b/services/oss/src/managed.py @@ -24,6 +24,7 @@ json_multi_field_match_v0, llm_v0, match_v0, + mock_v0, config_v0, ) @@ -53,6 +54,10 @@ def _create_managed_service( hook_v0, uri="agenta:custom:hook:v0", ) +custom_mock_app = _create_managed_service( + mock_v0, + uri="agenta:custom:mock:v0", +) builtin_match_app = _create_managed_service( match_v0, uri="agenta:builtin:match:v0", diff --git a/web/_reference/agenta-sdk/src/vault.ts b/web/_reference/agenta-sdk/src/vault.ts index b592e52523..cc5580e7d2 100644 --- a/web/_reference/agenta-sdk/src/vault.ts +++ b/web/_reference/agenta-sdk/src/vault.ts @@ -17,19 +17,19 @@ export class Vault { /** * List all secrets for the current project. * - * GET /vault/v1/secrets/ + * GET /secrets/ */ async list(): Promise { - return this.client.request("GET", "/vault/v1/secrets/", {legacy: true}) + return this.client.request("GET", "/secrets/", {legacy: true}) } /** * Get a single secret by ID. * - * GET /vault/v1/secrets/{secretId} + * GET /secrets/{secretId} */ async get(secretId: string): Promise { - return this.client.request("GET", `/vault/v1/secrets/${secretId}`, { + return this.client.request("GET", `/secrets/${secretId}`, { legacy: true, }) } @@ -37,10 +37,10 @@ export class Vault { /** * Create a new secret. * - * POST /vault/v1/secrets/ + * POST /secrets/ */ async create(request: CreateSecretRequest): Promise { - return this.client.request("POST", "/vault/v1/secrets/", { + return this.client.request("POST", "/secrets/", { body: request, legacy: true, }) @@ -49,10 +49,10 @@ export class Vault { /** * Update an existing secret. * - * PUT /vault/v1/secrets/{secretId} + * PUT /secrets/{secretId} */ async update(secretId: string, request: UpdateSecretRequest): Promise { - return this.client.request("PUT", `/vault/v1/secrets/${secretId}`, { + return this.client.request("PUT", `/secrets/${secretId}`, { body: request, legacy: true, }) @@ -61,11 +61,11 @@ export class Vault { /** * Delete a secret. * - * DELETE /vault/v1/secrets/{secretId} + * DELETE /secrets/{secretId} * * Returns void (204 No Content). */ async delete(secretId: string): Promise { - await this.client.requestRaw("DELETE", `/vault/v1/secrets/${secretId}`, {legacy: true}) + await this.client.requestRaw("DELETE", `/secrets/${secretId}`, {legacy: true}) } } diff --git a/web/ee/package.json b/web/ee/package.json index 4ce502769a..58cc2ca8ba 100644 --- a/web/ee/package.json +++ b/web/ee/package.json @@ -43,7 +43,6 @@ "@types/react-dom": "^19.0.4", "@types/react-resizable": "^3.0.7", "@types/react-window": "^1.8.8", - "@types/recharts": "^2.0.1", "antd": "^6.1.3", "autoprefixer": "10.4.20", "axios": "1.16.0", diff --git a/web/oss/src/components/pages/evaluations/NewEvaluation/Components/AdvancedSettings.tsx b/web/oss/src/components/pages/evaluations/NewEvaluation/Components/AdvancedSettings.tsx index 4edb5403b0..c825e9af04 100644 --- a/web/oss/src/components/pages/evaluations/NewEvaluation/Components/AdvancedSettings.tsx +++ b/web/oss/src/components/pages/evaluations/NewEvaluation/Components/AdvancedSettings.tsx @@ -1,14 +1,26 @@ import {memo, useCallback, useMemo} from "react" import {QuestionCircleOutlined} from "@ant-design/icons" -import {Button, Col, Flex, Form, Input, InputNumber, Row, Tooltip, Typography} from "antd" +import {Button, Flex, Form, InputNumber, Tooltip, Typography} from "antd" import deepEqual from "fast-deep-equal" import {DEFAULT_ADVANCE_SETTINGS} from "../assets/constants" -import {AdvancedSettingsProps} from "../types" +import {AdvancedSettingsProps, EvaluationConcurrencySettings} from "../types" + +const FIELD_LABELS: Record = { + batch_size: "Batch Size", + max_retries: "Max Retries", + retry_delay: "Retry Delay (s)", +} + +const FIELD_TOOLTIPS: Record = { + batch_size: "Maximum number of concurrent invocations", + max_retries: "How many times to retry a failed invocation", + retry_delay: "Seconds to wait before retrying a failed invocation", +} const AdvancedSettings = ({advanceSettings, setAdvanceSettings}: AdvancedSettingsProps) => { - const handleChange = (key: string, value: any) => { + const handleChange = (key: keyof EvaluationConcurrencySettings, value: number | null) => { setAdvanceSettings((prev) => ({ ...prev, [key]: value, @@ -24,17 +36,14 @@ const AdvancedSettings = ({advanceSettings, setAdvanceSettings}: AdvancedSetting [advanceSettings], ) - const {correct_answer_column, ...rateLimitConfig} = advanceSettings - return (
- Rate Limit Configuration + Concurrency {isAdvancedSettingsChanged && (