No keys attached
+{t("accessGroups.detail.noKeys")}
)} @@ -228,13 +243,15 @@ export function AccessGroupDetail({ accessGroupId, onBack }: AccessGroupDetailPrNo teams attached
+{t("accessGroups.detail.noTeams")}
)} @@ -259,37 +276,37 @@ export function AccessGroupDetail({ accessGroupId, onBack }: AccessGroupDetailPrGo to 'Internal Users' page to add other admins.
+{t("adminPanel.page.subtitle")}
- Tenant: {identity.tenant_id} + {t("agents.identityDetails.tenant")} {identity.tenant_id}
<>- Application (Client) ID: {identity.client_id} + {t("agents.identityDetails.clientId")} {identity.client_id} +
++ {t("agents.identityDetails.servicePrincipal")}{" "} + {identity.service_principal_id || t("agents.identityDetails.notConfigured")}
-Enterprise application Object ID: {identity.service_principal_id || "Not configured"}
>- Execution: {data ? executionLabel : "Loading"} · Mode: {data?.execution_mode ?? "Loading"} + {t("agents.identityDetails.executionSummary", { + execution: data ? executionLabel : t("agents.identityDetails.loading"), + mode: data?.execution_mode ?? t("agents.identityDetails.loading"), + })}
{data?.identity?.active === false - ? "Identity unbound; execution is disabled" - : authenticationMessage(isError, data?.last_authenticated_at)} -
-- Recent evidence comes from a validated Entra token matching this binding. It is persisted across restarts and - cleared when the binding changes. Tool and model permissions are checked separately. + ? t("agents.identityDetails.evidence.unbound") + : authenticationMessage(t, isError, data?.last_authenticated_at)}
+{t("agents.identityDetails.evidenceNote")}
- Connect an existing identity provider application to this agent. Its name and runtime address can change - independently. -
+{t("agents.identityFields.description")}
Kill switch
+{t("agents.dangerZone.killSwitch")}
{killSwitch ? ( <> -- Calls the configured webhook to stop this agent's upstream runtime. This can cause an outage for - everyone using the agent and cannot be undone from LiteLLM -
+{t("agents.dangerZone.configuredDescription")}
{killSwitch.method ?? "POST"} {killSwitch.url}
> ) : ( -- Not configured. Add a kill switch webhook under Settings to enable this action -
+{t("agents.dangerZone.notConfigured")}
)}- Last result: HTTP {lastResult.status_code} + {t("agents.dangerZone.lastResult", { status: lastResult.status_code })} {lastResult.response_body ? ` ${lastResult.response_body}` : ""}
)} @@ -95,27 +92,32 @@ const AgentKillSwitchDangerZone: React.FC
- Type {agentName} to confirm:
+
- {term( - "List of A2A-spec agents that are available to be used in your organization. Go to AI Hub, to make agents public.", - )} -
+{term(t("agents.panel.description"))}
- Configure which models, agents, and MCP tools this agent is allowed to use. Leave fields empty to allow all - (subject to key/team permissions). -
+{t("agents.addForm.entitlements.description")}
- Only accept this agent being invoked with a trace-id (e.g. when used as a sub-agent). + {t("agents.addForm.governance.tracing.inbound.description")}
- Requires LLM/MCP calls made by this agent to include x-litellm-trace-id for session tracking. + {t("agents.addForm.governance.tracing.outbound.description", { header: "x-litellm-trace-id" })}
Hard cap on LLM calls per session
++ {t("agents.addForm.governance.budgets.session.maxIterations.hint")} +
Max spend per trace before returning 429
++ {t("agents.addForm.governance.budgets.session.maxBudget.hint")} +
Global rate limits applied across all callers of this agent.
+{t("agents.addForm.governance.rateLimits.agent.description")}
- Rate limits per session (x-litellm-trace-id). Each session gets its own counters. + {t("agents.addForm.governance.rateLimits.session.description", { header: "x-litellm-trace-id" })}
- Apply guardrails to this agent. Selected guardrails will run on all calls made by this agent. -
+{t("agents.addForm.governance.guardrails.description")}
- This agent will authenticate with Microsoft Entra ID. You can skip virtual key creation. -
+{t("agents.addForm.assignKey.entraNotice")}
)}A dedicated key scoped to this agent.
++ {t("agents.addForm.assignKey.createNew.description")} +
{keyAssignOption === "create_new" && (Re-assign a key you already have to this agent.
++ {t("agents.addForm.assignKey.existing.description")} +
{keyAssignOption === "existing_key" && (
- Key {assignedKeyAlias} has been assigned to this agent.
+
{form.getValues("identity_provider") === "microsoft_entra" - ? "Microsoft Entra ID is configured. Send an authenticated agent request to verify the connection." - : "No key assigned. You can create one from the Virtual Keys page."} + ? t("agents.addForm.ready.entraConfigured") + : t("agents.addForm.ready.noKey")}
)}- Using the connection details you entered above. We'll fetch: -
+{t("agents.cardDiscovery.parentDrivenIntro")}
- Paste the upstream agent's base URL. We'll try /.well-known/agent-card.json,{" "}
- /.well-known/agent.json, and /agent.json in order.
+ /.well-known/agent.json,
+ rootfile: /agent.json,
+ }}
+ />