From 08f04fbc970fa052441b16da3a6d9c0a44761c08 Mon Sep 17 00:00:00 2001 From: Mateo Wang <277851410+mateo-berri@users.noreply.github.com> Date: Fri, 23 Oct 2026 10:20:40 -0700 Subject: [PATCH 001/236] test(interactions): read the spec from a vendored snapshot and canary the live one daily (#48002) * test(interactions): assert the live status enum is parsable instead of pinning it * test(interactions): read the spec from a vendored snapshot and canary the live one daily * test(interactions): run the canary on PRs touching its inputs, file an issue on a red run, pin the regenerate command * test(interactions): take the live spec URL as a pytest option, assert its source, split the canary's tracking-issue job * test(interactions): file the canary issue whenever its compliance step did not pass, match the issue title exactly, cover UrlContextResult --- .../workflows/interactions-spec-canary.yml | 91 + litellm/types/interactions/README.md | 30 +- tests/unit/AGENTS.md | 5 +- tests/unit/interactions/conftest.py | 9 + .../interactions/interactions.openapi.json | 10024 ++++++++++++++++ .../interactions/test_openapi_compliance.py | 102 +- 6 files changed, 10224 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/interactions-spec-canary.yml create mode 100644 tests/unit/interactions/conftest.py create mode 100644 tests/unit/interactions/interactions.openapi.json diff --git a/.github/workflows/interactions-spec-canary.yml b/.github/workflows/interactions-spec-canary.yml new file mode 100644 index 00000000000..7ec3defdcb7 --- /dev/null +++ b/.github/workflows/interactions-spec-canary.yml @@ -0,0 +1,91 @@ +name: Interactions spec canary + +on: + schedule: + - cron: "17 7 * * *" + pull_request: + paths: + - .github/workflows/interactions-spec-canary.yml + - tests/unit/interactions/** + - litellm/types/interactions/** + workflow_dispatch: + +permissions: {} + +concurrency: interactions-spec-canary + +jobs: + interactions-spec-canary: + name: interactions-spec-canary + if: github.repository == 'BerriAI/litellm' + runs-on: ubuntu-latest + timeout-minutes: 15 + permissions: + contents: read + outputs: + compliance: ${{ steps.compliance.outcome }} + steps: + - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 + with: + persist-credentials: false + + - name: Set up Python + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + with: + python-version: "3.12" + + - name: Set up uv + uses: ./.github/actions/setup-uv-with-retries + with: + version: "0.10.9" + + - name: Install dependencies + run: .github/scripts/uv_sync_with_retries.sh --frozen --group ci --group proxy-dev --extra proxy --no-install-project + + - name: Run the compliance tests against Google's live spec + id: compliance + run: | + uv run --no-sync pytest tests/unit/interactions/test_openapi_compliance.py \ + --interactions-spec-url=https://ai.google.dev/static/api/interactions.openapi.json \ + --tb=short -vv -p no:rerunfailures -p no:pytest-retry \ + --allow-hosts=127.0.0.1,::1,localhost,ai.google.dev + + tracking-issue: + name: tracking-issue + needs: interactions-spec-canary + if: always() && github.event_name != 'pull_request' && github.ref_name == github.event.repository.default_branch && github.repository == 'BerriAI/litellm' + runs-on: ubuntu-latest + timeout-minutes: 5 + permissions: + issues: write + steps: + - name: File the tracking issue unless the compliance step passed, close it when it did + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + env: + COMPLIANCE_OUTCOME: ${{ needs.interactions-spec-canary.outputs.compliance }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + with: + script: | + const title = "Interactions spec canary is red"; + const outcome = process.env.COMPLIANCE_OUTCOME; + const runUrl = process.env.RUN_URL; + const query = `repo:${context.repo.owner}/${context.repo.repo} is:issue is:open in:title "${title}"`; + const { data: found } = await github.rest.search.issuesAndPullRequests({ q: query, per_page: 20 }); + const open = found.items.find((issue) => issue.title === title); + if (outcome === "success") { + if (open === undefined) return; + await github.rest.issues.createComment({ ...context.repo, issue_number: open.number, body: `Green again: ${runUrl}` }); + await github.rest.issues.update({ ...context.repo, issue_number: open.number, state: "closed" }); + return; + } + const state = outcome === "failure" ? "red" : `not run (compliance step outcome: ${outcome || "none"})`; + if (open !== undefined) { + await github.rest.issues.createComment({ ...context.repo, issue_number: open.number, body: `Still ${state}: ${runUrl}` }); + return; + } + await github.rest.issues.create({ + ...context.repo, + title, + assignees: ["mateo-berri"], + body: `The scheduled run of tests/unit/interactions/test_openapi_compliance.py against Google's live Interactions spec is ${state}: ${runUrl}\n\nlitellm/types/interactions/README.md says how to refresh the snapshot and regenerate the types.`, + }); diff --git a/litellm/types/interactions/README.md b/litellm/types/interactions/README.md index d890991d99d..45783d604db 100644 --- a/litellm/types/interactions/README.md +++ b/litellm/types/interactions/README.md @@ -9,16 +9,38 @@ https://ai.google.dev/static/api/interactions.openapi.json ### How to Regenerate -When the API spec changes, regenerate the types with: +The compliance tests in `tests/unit/interactions/test_openapi_compliance.py` read the snapshot at +`tests/unit/interactions/interactions.openapi.json`, so a PR never depends on Google's live spec. The scheduled +`interactions-spec-canary` workflow runs those tests against the live spec once a day (`--interactions-spec-url`), +files the issue "Interactions spec canary is red" on a red run and closes it once a run is green again. A red run +means the spec moved in a way these types no longer cover + +When the red run names one new status, the small fix is a hand edit adding that member to the enum the failing +schema's model carries, the way `queued` was added in #34135. When the spec moved further than that, refresh the +snapshot and regenerate the types from it: ```bash -uv tool run --from datamodel-code-generator datamodel-codegen \ - --url "https://ai.google.dev/static/api/interactions.openapi.json" \ +curl -fsSL https://ai.google.dev/static/api/interactions.openapi.json \ + -o tests/unit/interactions/interactions.openapi.json +uv tool run --from datamodel-code-generator==0.66.0 datamodel-codegen \ + --input tests/unit/interactions/interactions.openapi.json \ + --input-file-type openapi \ --output litellm/types/interactions/generated.py \ --output-model-type pydantic_v2.BaseModel \ - --target-python-version 3.9 + --target-python-version 3.10 \ + --base-class litellm.types.llms.base.LiteLLMBaseModel ``` +The pin is the same `datamodel-code-generator` version `scripts/generate_trace_types.py` uses. The generator names +inline enums by order of appearance (`Status`, `Status1`, `Status2`, ...), so a regeneration can rename them. The +compliance tests resolve each status enum through its model's `status` field, but +`tests/unit/interactions/test_background_cost_polling.py` and +`tests/unit/proxy/hooks/test_proxy_track_cost_callback.py` import `Status1` by name and need the new name, and +`litellm/types/interactions/__init__.py` exports the interaction status enum as `InteractionStatus`, which has to +point at the enum the regenerated `Interaction.status` carries (a compliance test checks their members match). The +spec has grown a lot since the 2025-12-16 generation (agents, triggers, credentials, environments), so a +regeneration today is a review-sized change rather than a refresh + Then add the LiteLLM-specific types at the bottom of the generated file: - `InteractionsAPIResponse` - `InteractionsAPIStreamingResponse` diff --git a/tests/unit/AGENTS.md b/tests/unit/AGENTS.md index 9ce6c58cff7..ca717e8efb0 100644 --- a/tests/unit/AGENTS.md +++ b/tests/unit/AGENTS.md @@ -1,6 +1,9 @@ # tests/unit -In-process. No network or subprocess +In-process. No network or subprocess. `interactions/test_openapi_compliance.py` reads the spec snapshot beside it, +and only the `interactions-spec-canary` workflow passes `--interactions-spec-url` (registered in +`interactions/conftest.py`, so name that file or directory on the command line) with `ai.google.dev` allowed, to run +the same tests against Google's live spec Unit tests must not depend on the current time or execution speed. Use fixed timestamps for fixtures and controlled clocks for time-dependent behavior. Incidental clock reads inside production code are allowed diff --git a/tests/unit/interactions/conftest.py b/tests/unit/interactions/conftest.py new file mode 100644 index 00000000000..b53763c7036 --- /dev/null +++ b/tests/unit/interactions/conftest.py @@ -0,0 +1,9 @@ +import pytest + + +def pytest_addoption(parser: pytest.Parser) -> None: + parser.addoption( + "--interactions-spec-url", + default=None, + help="Run the Interactions OpenAPI compliance tests against this live spec instead of the vendored snapshot", + ) diff --git a/tests/unit/interactions/interactions.openapi.json b/tests/unit/interactions/interactions.openapi.json new file mode 100644 index 00000000000..3830f5093cb --- /dev/null +++ b/tests/unit/interactions/interactions.openapi.json @@ -0,0 +1,10024 @@ +{ + "openapi": "3.0.3", + "info": { + "title": "Gemini API", + "description": "The Gemini Interactions API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information including language, images, audio, video, and code. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more.", + "version": "v1beta", + "x-google-revision": "0" + }, + "servers": [ + { + "url": "https://generativelanguage.googleapis.com", + "description": "Global Endpoint" + } + ], + "paths": { + "/upload/{api_version}/environments/{environment}/files/{path}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + }, + { + "name": "environment", + "in": "path", + "description": "The ID of the environment that owns the destination file.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "path", + "description": "The relative destination path inside the environment workspace.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "put": { + "operationId": "StartEnvironmentFileUpload", + "description": "Starts a resumable upload session for a file in an environment workspace.\nUpload the file bytes to the URL returned in the `X-Goog-Upload-URL`\nresponse header, using the resumable upload protocol.\n", + "parameters": [ + { + "$ref": "#/components/parameters/EnvironmentFileExtract" + }, + { + "$ref": "#/components/parameters/EnvironmentFileOverwrite" + }, + { + "$ref": "#/components/parameters/EnvironmentFileUploadCommand" + }, + { + "$ref": "#/components/parameters/EnvironmentFileUploadContentLength" + }, + { + "$ref": "#/components/parameters/EnvironmentFileUploadContentType" + }, + { + "$ref": "#/components/parameters/EnvironmentFileUploadProtocol" + } + ], + "responses": { + "200": { + "description": "Upload session created successfully. Send the file bytes to the returned upload URL.", + "headers": { + "X-Goog-Upload-URL": { + "$ref": "#/components/headers/EnvironmentFileUploadUrl" + } + } + }, + "4XX": { + "description": "The upload session request failed with a client error." + }, + "5XX": { + "description": "The upload session request failed with a server error." + } + }, + "summary": "Start an environment file upload", + "x-codeSamples": [ + { + "label": "start_upload", + "lang": "sh", + "source": "curl -i -X PUT \\\n 'https://generativelanguage.googleapis.com/upload/v1beta/environments/env_abc123/files/main.py?overwrite=true' \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H 'X-Goog-Upload-Protocol: resumable' \\\n -H 'X-Goog-Upload-Command: start' \\\n -H \"X-Goog-Upload-Header-Content-Length: $(wc -c < main.py)\" \\\n -H 'X-Goog-Upload-Header-Content-Type: text/x-python'\n" + } + ] + } + }, + "/{api_version}/agents": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListAgents", + "description": "Lists all Agents.", + "parameters": [ + { + "name": "page_size", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "parent", + "in": "query", + "description": "Required. The parent resource to list agents from.\nFormat: `projects/{project}/locations/{location}`", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "examples": { + "list": { + "summary": "List Agents", + "value": { + "agents": [ + { + "description": "A helpful research assistant.", + "base_agent": "antigravity-preview-05-2026", + "id": "research-assistant-abc123", + "system_instruction": "You are a helpful research assistant.", + "tools": [ + { + "type": "google_search" + } + ] + } + ] + } + } + }, + "schema": { + "$ref": "#/components/schemas/ListAgentsResponse" + } + } + } + } + }, + "tags": [ + "agents" + ], + "x-codeSamples": [ + { + "label": "list", + "lang": "sh", + "source": "curl -X GET https://generativelanguage.googleapis.com/v1beta/agents \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "list", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.agents.list()\nfor agent in response.agents or []:\n print(agent.id)\n" + }, + { + "label": "list", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst agents = await ai.agents.list();\nfor (const agent of agents.agents ?? []) {\n console.log(agent.id);\n}\n" + }, + { + "label": "list", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.gaos.models.agents.AgentListResponse;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.ListAgentsResponse;\n\nClient client = new Client();\nListAgentsResponse response = client.agents.list().call();\nList agents =\n response.agentListResponse().flatMap(AgentListResponse::agents).orElse(List.of());\nfor (Agent agent : agents) {\n agent.id().ifPresent(System.out::println);\n}\n" + }, + { + "label": "list", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n res, err := client.Agents.List(ctx, operations.ListAgentsRequest{})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.AgentListResponse != nil {\n for _, agent := range res.AgentListResponse.Agents {\n if agent.ID != nil {\n fmt.Println(*agent.ID)\n }\n }\n }\n}\n" + } + ] + }, + "post": { + "operationId": "CreateAgent", + "description": "Creates a new Agent (Typed version for SDK).", + "parameters": [ + { + "name": "parent", + "in": "query", + "description": "Required. The parent resource where this agent will be created.\nFormat: `projects/{project}/locations/{location}`", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Required. The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Agent" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "examples": { + "create": { + "summary": "Create Agent", + "value": { + "description": "A helpful research assistant.", + "base_agent": "antigravity-preview-05-2026", + "base_environment": "remote", + "id": "research-assistant-abc123", + "system_instruction": "You are a helpful research assistant.", + "tools": [ + { + "type": "google_search" + } + ] + } + }, + "fork_from_env": { + "summary": "Agent Forked from Environment", + "value": { + "base_agent": "antigravity-preview-05-2026", + "base_environment": "env_abc123", + "id": "my-data-analyst-abc123", + "system_instruction": "You are a data analyst. Use the template at /workspace/template.py for all reports." + } + }, + "with_sources": { + "summary": "Agent with Sources", + "value": { + "base_agent": "antigravity-preview-05-2026", + "base_environment": { + "type": "remote", + "sources": [ + { + "type": "inline", + "content": "Always use matplotlib for charts. Include a summary table in every report.", + "target": ".agents/AGENTS.md" + }, + { + "type": "repository", + "source": "https://github.com/my-org/analysis-templates", + "target": "/workspace/templates" + } + ] + }, + "id": "data-analyst-abc123", + "system_instruction": "You are a data analyst. Always include visualizations and export results as PDF." + } + } + }, + "schema": { + "$ref": "#/components/schemas/Agent" + } + } + } + } + }, + "tags": [ + "agents" + ], + "x-codeSamples": [ + { + "label": "create", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/agents \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": \"research-assistant-abc123\",\n \"base_agent\": \"antigravity-preview-05-2026\",\n \"description\": \"A helpful research assistant.\",\n \"system_instruction\": \"You are a helpful research assistant.\",\n \"base_environment\": \"remote\",\n \"tools\": [{\"type\": \"google_search\"}]\n }'\n" + }, + { + "label": "with_sources", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/agents \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": \"data-analyst-abc123\",\n \"base_agent\": \"antigravity-preview-05-2026\",\n \"system_instruction\": \"You are a data analyst. Always include visualizations and export results as PDF.\",\n \"base_environment\": {\n \"type\": \"remote\",\n \"sources\": [\n {\n \"type\": \"inline\",\n \"target\": \".agents/AGENTS.md\",\n \"content\": \"Always use matplotlib for charts. Include a summary table in every report.\"\n },\n {\n \"type\": \"repository\",\n \"source\": \"https://github.com/my-org/analysis-templates\",\n \"target\": \"/workspace/templates\"\n }\n ]\n }\n }'\n" + }, + { + "label": "fork_from_env", + "lang": "sh", + "source": "# Step 1: Set up the environment interactively\nRESPONSE=$(curl -s -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": \"antigravity-preview-05-2026\",\n \"input\": \"Write a basic Hello World template to /workspace/template.py.\",\n \"environment\": \"remote\"\n }')\nENV_ID=$(echo \"$RESPONSE\" | python3 -c \"import sys,json; print(json.load(sys.stdin)['environment_id'])\")\n\n# Step 2: Fork that environment into a named agent\ncurl -X POST https://generativelanguage.googleapis.com/v1beta/agents \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d \"{\n \\\"id\\\": \\\"my-data-analyst\\\",\n \\\"base_agent\\\": \\\"antigravity-preview-05-2026\\\",\n \\\"system_instruction\\\": \\\"You are a data analyst. Use the template at /workspace/template.py for all reports.\\\",\n \\\"base_environment\\\": \\\"$ENV_ID\\\"\n }\"\n" + }, + { + "label": "create", + "lang": "python", + "source": "import uuid\nfrom google import genai\n\nclient = genai.Client()\nagent = client.agents.create(\n id=f\"research-assistant-{uuid.uuid4().hex[:8]}\",\n base_agent=\"antigravity-preview-05-2026\",\n description=\"A helpful research assistant.\",\n system_instruction=\"You are a helpful research assistant.\",\n base_environment=\"remote\",\n tools=[{\"type\": \"google_search\"}],\n)\nprint(agent.id)\n" + }, + { + "label": "with_sources", + "lang": "python", + "source": "import uuid\nfrom google import genai\n\nclient = genai.Client()\nagent = client.agents.create(\n id=f\"data-analyst-{uuid.uuid4().hex[:8]}\",\n base_agent=\"antigravity-preview-05-2026\",\n system_instruction=(\n \"You are a data analyst. Always include visualizations and export\"\n \" results as PDF.\"\n ),\n base_environment={\n \"type\": \"remote\",\n \"sources\": [\n {\n \"type\": \"inline\",\n \"target\": \".agents/AGENTS.md\",\n \"content\": (\n \"Always use matplotlib for charts. Include a summary\"\n \" table in every report.\"\n ),\n },\n {\n \"type\": \"repository\",\n \"source\": \"https://github.com/my-org/analysis-templates\",\n \"target\": \"/workspace/templates\",\n },\n ],\n },\n)\nprint(f\"Created agent: {agent.id}\")\n" + }, + { + "label": "fork_from_env", + "lang": "python", + "source": "import uuid\nfrom google import genai\n\nclient = genai.Client()\n\n# Step 1: Set up the environment interactively.\ninteraction = client.interactions.create(\n agent=\"antigravity-preview-05-2026\",\n input=\"Write a basic Hello World template to /workspace/template.py.\",\n environment=\"remote\",\n)\n\n# Step 2: Fork that environment into a named agent.\nagent_id = f\"my-data-analyst-{uuid.uuid4().hex[:8]}\"\nagent = client.agents.create(\n id=agent_id,\n base_agent=\"antigravity-preview-05-2026\",\n system_instruction=(\n \"You are a data analyst. Use the template at /workspace/template.py\"\n \" for all reports.\"\n ),\n base_environment=interaction.environment_id,\n)\nprint(f\"Forked agent: {agent.id}\")\n" + }, + { + "label": "create", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst agentId = `research-assistant-${crypto.randomUUID().slice(0, 8)}`;\nconst agent = await ai.agents.create({\n id: agentId,\n base_agent: 'antigravity-preview-05-2026',\n description: 'A helpful research assistant.',\n system_instruction: 'You are a helpful research assistant.',\n base_environment: 'remote',\n tools: [{type: 'google_search'}],\n});\nif (!agent.id) {\n throw new Error('Agent creation failed: ID is undefined');\n}\nconsole.log(agent.id);\n" + }, + { + "label": "with_sources", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst agentId = `data-analyst-${crypto.randomUUID().slice(0, 8)}`;\nconst agent = await ai.agents.create({\n id: agentId,\n base_agent: 'antigravity-preview-05-2026',\n system_instruction:\n 'You are a data analyst. Always include visualizations and export results as PDF.',\n base_environment: {\n type: 'remote',\n sources: [\n {\n type: 'inline',\n target: '.agents/AGENTS.md',\n content:\n 'Always use matplotlib for charts. Include a summary table in every report.',\n },\n {\n type: 'repository',\n source: 'https://github.com/my-org/analysis-templates',\n target: '/workspace/templates',\n },\n ],\n },\n});\nconsole.log(`Created agent: ${agent.id}`);\n" + }, + { + "label": "fork_from_env", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n// Step 1: Set up the environment interactively.\nconst interaction = await ai.interactions.create({\n agent: 'antigravity-preview-05-2026',\n input: 'Write a basic Hello World template to /workspace/template.py.',\n environment: 'remote',\n});\n\n// Step 2: Fork that environment into a named agent.\nconst agentId = `my-data-analyst-${crypto.randomUUID().slice(0, 8)}`;\nconst agent = await ai.agents.create({\n id: agentId,\n base_agent: 'antigravity-preview-05-2026',\n system_instruction:\n 'You are a data analyst. Use the template at /workspace/template.py for all reports.',\n base_environment: interaction.environment_id,\n});\nconsole.log(`Forked agent: ${agent.id}`);\n" + }, + { + "label": "create", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.gaos.models.agents.BaseEnvironment;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateAgentResponse;\nimport com.google.genai.gaos.models.interactions.GoogleSearch;\n\nClient client = new Client();\nString agentId = \"research-assistant-\" + UUID.randomUUID().toString().substring(0, 8);\nAgent agent =\n Agent.builder()\n .id(agentId)\n .baseAgent(\"antigravity-preview-05-2026\")\n .description(\"A helpful research assistant.\")\n .systemInstruction(\"You are a helpful research assistant.\")\n .baseEnvironment(BaseEnvironment.of(\"remote\"))\n .tools(List.of(new GoogleSearch()))\n .build();\nCreateAgentResponse response = client.agents.create(agent);\nSystem.out.println(response.agent().flatMap(Agent::id).orElse(\"\"));\n" + }, + { + "label": "with_sources", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.gaos.models.agents.BaseEnvironment;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateAgentResponse;\nimport com.google.genai.gaos.models.environments.Environment;\nimport com.google.genai.gaos.models.interactions.Source;\nimport com.google.genai.gaos.models.interactions.SourceType;\n\nClient client = new Client();\nString agentId = \"data-analyst-\" + UUID.randomUUID().toString().substring(0, 8);\ncom.google.genai.gaos.models.interactions.Environment env =\n com.google.genai.gaos.models.interactions.Environment.builder()\n .sources(\n List.of(\n Source.builder()\n .type(SourceType.INLINE)\n .target(\".agents/AGENTS.md\")\n .content(\n \"Always use matplotlib for charts. Include a summary table in every\"\n + \" report.\")\n .build(),\n Source.builder()\n .type(SourceType.REPOSITORY)\n .source(\"https://github.com/my-org/analysis-templates\")\n .target(\"/workspace/templates\")\n .build()))\n .build();\nAgent agent =\n Agent.builder()\n .id(agentId)\n .baseAgent(\"antigravity-preview-05-2026\")\n .systemInstruction(\n \"You are a data analyst. Always include visualizations and export results as PDF.\")\n .baseEnvironment(BaseEnvironment.of(env))\n .build();\nCreateAgentResponse response = client.agents.create(agent);\nSystem.out.println(\"Created agent: \" + response.agent().flatMap(Agent::id).orElse(\"\"));\n" + }, + { + "label": "fork_from_env", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.gaos.models.agents.BaseEnvironment;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteractionEnvironment;\nimport com.google.genai.gaos.models.operations.CreateAgentResponse;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.Step;\n\nClient client = new Client();\n\n// Step 1: Set up the environment interactively.\nCreateAgentInteraction params =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"antigravity-preview-05-2026\"))\n .input(\n InteractionsInput.of(\n \"Write a basic Hello World template to /workspace/template.py.\"))\n .environment(CreateAgentInteractionEnvironment.of(\"remote\"))\n .build();\nCreateInteractionResponse interactionResponse =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n interactionResponse\n .interaction()\n .orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\n\n// Step 2: Fork that environment into a named agent.\nString agentId = \"my-data-analyst-\" + UUID.randomUUID().toString().substring(0, 8);\nAgent agent =\n Agent.builder()\n .id(agentId)\n .baseAgent(\"antigravity-preview-05-2026\")\n .systemInstruction(\n \"You are a data analyst. Use the template at /workspace/template.py for all\"\n + \" reports.\")\n .baseEnvironment(BaseEnvironment.of(interaction.environmentId().orElse(\"\")))\n .build();\nCreateAgentResponse agentResponse = client.agents.create(agent);\nSystem.out.println(\"Forked agent: \" + agentResponse.agent().flatMap(Agent::id).orElse(\"\"));\n" + }, + { + "label": "create", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"time\"\n \"google.golang.org/genai\"\n gaos_agents \"google.golang.org/genai/interactions/models/agents\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n agentID := fmt.Sprintf(\"research-assistant-%d\", time.Now().UnixNano())\n req := operations.CreateAgentRequest{\n Body: gaos_agents.Agent{\n ID: genai.Ptr(agentID),\n BaseAgent: genai.Ptr(\"antigravity-preview-05-2026\"),\n Description: genai.Ptr(\"A helpful research assistant.\"),\n SystemInstruction: genai.Ptr(\"You are a helpful research assistant.\"),\n BaseEnvironment: genai.Ptr(gaos_agents.NewBaseEnvironment(\"remote\")),\n Tools: []gaos_agents.AgentTool{\n gaos_agents.NewAgentTool(gaos_interactions.GoogleSearch{}),\n },\n },\n }\n\n res, err := client.Agents.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Agent != nil && res.Agent.ID != nil {\n fmt.Println(*res.Agent.ID)\n }\n}\n" + }, + { + "label": "with_sources", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"time\"\n \"google.golang.org/genai\"\n gaos_agents \"google.golang.org/genai/interactions/models/agents\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n agentID := fmt.Sprintf(\"data-analyst-%d\", time.Now().UnixNano())\n env := gaos_interactions.Environment{\n Sources: []gaos_interactions.Source{\n {\n Type: genai.Ptr(gaos_interactions.SourceTypeInline),\n Target: genai.Ptr(\".agents/AGENTS.md\"),\n Content: genai.Ptr(\"Always use matplotlib for charts. Include a summary table in every report.\"),\n },\n {\n Type: genai.Ptr(gaos_interactions.SourceTypeRepository),\n Source: genai.Ptr(\"https://github.com/my-org/analysis-templates\"),\n Target: genai.Ptr(\"/workspace/templates\"),\n },\n },\n }\n\n req := operations.CreateAgentRequest{\n Body: gaos_agents.Agent{\n ID: genai.Ptr(agentID),\n BaseAgent: genai.Ptr(\"antigravity-preview-05-2026\"),\n SystemInstruction: genai.Ptr(\"You are a data analyst. Always include visualizations and export results as PDF.\"),\n BaseEnvironment: genai.Ptr(gaos_agents.NewBaseEnvironment(env)),\n },\n }\n\n res, err := client.Agents.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Agent != nil && res.Agent.ID != nil {\n fmt.Printf(\"Created agent: %s\\n\", *res.Agent.ID)\n }\n}\n" + }, + { + "label": "fork_from_env", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"time\"\n \"google.golang.org/genai\"\n gaos_agents \"google.golang.org/genai/interactions/models/agents\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n // Step 1: Set up the environment interactively.\n interactionReq := operations.CreateInteractionRequest{\n Body: operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(\"antigravity-preview-05-2026\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Write a basic Hello World template to /workspace/template.py.\")),\n Environment: genai.Ptr(gaos_interactions.NewCreateAgentInteractionEnvironment(\"remote\")),\n }),\n }\n interactionRes, err := client.Interactions.Create(ctx, interactionReq)\n if err != nil {\n log.Fatal(err)\n }\n envID := \"\"\n if interactionRes.Interaction != nil && interactionRes.Interaction.EnvironmentID != nil {\n envID = *interactionRes.Interaction.EnvironmentID\n }\n\n // Step 2: Fork that environment into a named agent.\n agentID := fmt.Sprintf(\"my-data-analyst-%d\", time.Now().UnixNano())\n req := operations.CreateAgentRequest{\n Body: gaos_agents.Agent{\n ID: genai.Ptr(agentID),\n BaseAgent: genai.Ptr(\"antigravity-preview-05-2026\"),\n SystemInstruction: genai.Ptr(\"You are a data analyst. Use the template at /workspace/template.py for all reports.\"),\n BaseEnvironment: genai.Ptr(gaos_agents.NewBaseEnvironment(envID)),\n },\n }\n res, err := client.Agents.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n if res.Agent != nil && res.Agent.ID != nil {\n fmt.Printf(\"Forked agent: %s\\n\", *res.Agent.ID)\n }\n}\n" + } + ] + } + }, + "/{api_version}/agents/{agentsId}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "delete": { + "operationId": "DeleteAgent", + "description": "Deletes an Agent.", + "parameters": [ + { + "name": "agentsId", + "in": "path", + "description": "Required. The name of the agent to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "examples": { + "delete": { + "summary": "Delete Agent", + "value": {} + } + }, + "schema": { + "$ref": "#/components/schemas/Empty" + } + } + } + } + }, + "tags": [ + "agents" + ], + "x-codeSamples": [ + { + "label": "delete", + "lang": "sh", + "source": "curl -X DELETE https://generativelanguage.googleapis.com/v1beta/agents/ag_abc123 \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "delete", + "lang": "python", + "source": "import uuid\nfrom google import genai\n\nclient = genai.Client()\n\n\nclient.agents.delete(agent_id)\nprint(\"Agent deleted successfully.\")\n" + }, + { + "label": "delete", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nawait ai.agents.delete(agentId);\nconsole.log('Agent deleted successfully.');\n" + }, + { + "label": "delete", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.Client;\n\nClient client = new Client();\n\n\nclient.agents.delete(agentId);\nSystem.out.println(\"Agent deleted successfully.\");\n" + }, + { + "label": "delete", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n\n _, err = client.Agents.Delete(ctx, operations.DeleteAgentRequest{ID: agentID})\n if err != nil {\n log.Fatal(err)\n }\n fmt.Println(\"Agent deleted successfully.\")\n}\n" + } + ] + }, + "get": { + "operationId": "GetAgent", + "description": "Gets a specific Agent.", + "parameters": [ + { + "name": "agentsId", + "in": "path", + "description": "Required. The name of the agent to retrieve.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "examples": { + "get": { + "summary": "Get Agent", + "value": { + "created": "2025-11-26T12:25:15Z", + "display_name": "My Research Agent", + "id": "ag_abc123", + "object": "agent", + "system_instruction": "You are a helpful research assistant.", + "tools": [ + { + "type": "google_search" + } + ], + "updated": "2025-11-26T12:25:15Z" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Agent" + } + } + } + } + }, + "tags": [ + "agents" + ], + "x-codeSamples": [ + { + "label": "get", + "lang": "sh", + "source": "curl -X GET https://generativelanguage.googleapis.com/v1beta/agents/ag_abc123 \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "get", + "lang": "python", + "source": "import uuid\nfrom google import genai\n\nclient = genai.Client()\n\n\nagent = client.agents.get(agent_id)\nprint(agent.id)\n" + }, + { + "label": "get", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nconst agent = await ai.agents.get(agentId);\nif (!agent.id) {\n throw new Error('Agent retrieval failed: ID is undefined');\n}\nconsole.log(agent.id);\n" + }, + { + "label": "get", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.GetAgentResponse;\n\nClient client = new Client();\n\n\nGetAgentResponse response = client.agents.get(agentId);\nAgent agent = response.agent().orElseThrow(() -> new RuntimeException(\"No agent returned\"));\nSystem.out.println(agent.id().orElse(\"\"));\n" + }, + { + "label": "get", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n\n res, err := client.Agents.Get(ctx, operations.GetAgentRequest{ID: agentID})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Agent != nil && res.Agent.ID != nil {\n fmt.Println(*res.Agent.ID)\n }\n}\n" + } + ] + } + }, + "/{api_version}/credentials": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListCredentials", + "description": "Lists credentials.", + "parameters": [ + { + "name": "page_size", + "in": "query", + "description": "Optional. Maximum number of credentials to return.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "Optional. Pagination token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCredentialsResponse" + } + } + } + } + }, + "tags": [ + "credentials" + ] + }, + "post": { + "operationId": "CreateCredential", + "description": "Creates a new credential.", + "parameters": [], + "requestBody": { + "description": "Required. The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialCreateParams" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Credential" + } + } + } + } + }, + "tags": [ + "credentials" + ] + } + }, + "/{api_version}/credentials/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "delete": { + "operationId": "DeleteCredential", + "description": "Deletes a credential.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Empty" + } + } + } + } + }, + "tags": [ + "credentials" + ] + }, + "get": { + "operationId": "GetCredential", + "description": "Gets a credential by ID.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Credential" + } + } + } + } + }, + "tags": [ + "credentials" + ] + }, + "patch": { + "operationId": "UpdateCredential", + "description": "Updates a credential.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "update_mask", + "in": "query", + "description": "Optional. The list of fields to update.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Required. The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialUpdateParams" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Credential" + } + } + } + } + }, + "tags": [ + "credentials" + ] + } + }, + "/{api_version}/environments": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListEnvironments", + "description": "Lists environments.", + "parameters": [ + { + "name": "page_size", + "in": "query", + "description": "Optional. Maximum number of environments to return.\nIf unspecified, defaults to 50. Maximum is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "Optional. Pagination token.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListEnvironmentsResponse" + } + } + } + } + }, + "tags": [ + "environments" + ], + "x-codeSamples": [ + { + "label": "list", + "lang": "sh", + "source": "curl -X GET https://generativelanguage.googleapis.com/v1beta/environments \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "list", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.environments.list()\nfor environment in response.environments or []:\n print(environment.id)\n" + }, + { + "label": "list", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst response = await ai.environments.list();\nfor (const env of response.environments ?? []) {\n console.log(env.id);\n}\n" + }, + { + "label": "list", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.Environment;\nimport com.google.genai.gaos.models.operations.ListEnvironmentsResponse;\n\nClient client = new Client();\nListEnvironmentsResponse response = client.environments.listEnvironmentsDirect();\nfor (com.google.genai.gaos.models.environments.Environment env :\n response.listEnvironmentsResponse().flatMap(res -> res.environments()).orElse(List.of())) {\n System.out.println(env.id().orElse(\"\"));\n}\n" + }, + { + "label": "list", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n res, err := client.Environments.ListEnvironments(ctx, operations.ListEnvironmentsRequest{})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.ListEnvironmentsResponse != nil {\n for _, env := range res.ListEnvironmentsResponse.Environments {\n if env.ID != \"\" {\n fmt.Println(env.ID)\n }\n }\n }\n}\n" + } + ] + }, + "post": { + "operationId": "CreateEnvironment", + "description": "Creates an environment.", + "parameters": [], + "requestBody": { + "description": "Required. The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateEnvironmentRequest" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Environment" + } + } + } + } + }, + "tags": [ + "environments" + ], + "x-codeSamples": [ + { + "label": "create", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/environments \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"sources\": [{\n \"type\": \"inline\",\n \"target\": \"main.py\",\n \"content\": \"print(\\\"Hello, World!\\\")\"\n }]\n }'\n" + }, + { + "label": "copy", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/environments \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"from_environment\": \"environments/env_abc123\"\n }'\n" + }, + { + "label": "create", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nenvironment = client.environments.create(\n sources=[{\n \"type\": \"inline\",\n \"target\": \"main.py\",\n \"content\": \"print('Hello, World!')\",\n }]\n)\nprint(environment.id)\n" + }, + { + "label": "copy", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\nenvironment = client.environments.create(\n from_environment=source_env.id,\n)\nprint(environment.id)\n" + }, + { + "label": "create", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst environment = await ai.environments.create({\n sources: [\n {\n type: 'inline',\n target: 'main.py',\n content: \"print('Hello, World!')\",\n },\n ],\n});\nif (!environment.id) {\n throw new Error('Environment creation failed: ID is undefined');\n}\nconsole.log(environment.id);\n" + }, + { + "label": "copy", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nconst environment = await ai.environments.create({\n from_environment: sourceEnv.id,\n});\nif (!environment.id) {\n throw new Error('Environment creation failed: ID is undefined');\n}\nconsole.log(environment.id);\n" + }, + { + "label": "create", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.CreateEnvironmentRequest;\nimport com.google.genai.gaos.models.environments.Environment;\nimport com.google.genai.gaos.models.interactions.Source;\nimport com.google.genai.gaos.models.interactions.SourceType;\n\nClient client = new Client();\nCreateEnvironmentRequest request =\n CreateEnvironmentRequest.builder()\n .sources(\n List.of(\n Source.builder()\n .type(SourceType.INLINE)\n .target(\"main.py\")\n .content(\"print('Hello, World!')\")\n .build()))\n .build();\ncom.google.genai.gaos.models.environments.Environment environment =\n client.environments.createEnvironment(request).environment().orElseThrow();\nSystem.out.println(environment.id().orElse(\"\"));\n" + }, + { + "label": "copy", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.CreateEnvironmentRequest;\nimport com.google.genai.gaos.models.environments.Environment;\n\nClient client = new Client();\n\n\nCreateEnvironmentRequest request =\n CreateEnvironmentRequest.builder().fromEnvironment(sourceEnvId).build();\ncom.google.genai.gaos.models.environments.Environment environment =\n client.environments.createEnvironment(request).environment().orElseThrow();\nSystem.out.println(environment.id().orElse(\"\"));\n" + }, + { + "label": "create", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_environments \"google.golang.org/genai/interactions/models/environments\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n req := operations.CreateEnvironmentRequest{\n Body: gaos_environments.CreateEnvironmentRequest{\n Sources: []gaos_interactions.Source{\n {\n Type: genai.Ptr(gaos_interactions.SourceTypeInline),\n Target: genai.Ptr(\"main.py\"),\n Content: genai.Ptr(\"print('Hello, World!')\"),\n },\n },\n },\n }\n\n res, err := client.Environments.CreateEnvironment(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Environment != nil && res.Environment.ID != \"\" {\n fmt.Println(res.Environment.ID)\n\n }\n}\n" + }, + { + "label": "copy", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_environments \"google.golang.org/genai/interactions/models/environments\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n\n res, err := client.Environments.CreateEnvironment(ctx, operations.CreateEnvironmentRequest{\n Body: gaos_environments.CreateEnvironmentRequest{\n FromEnvironment: genai.Ptr(sourceEnvID),\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Environment != nil && res.Environment.ID != \"\" {\n fmt.Println(res.Environment.ID)\n\n }\n}\n" + } + ] + } + }, + "/{api_version}/environments/{environment}/files/{path}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + }, + { + "name": "environment", + "in": "path", + "description": "The ID of the environment whose snapshot to read.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "path", + "description": "Path of the file or directory inside the environment workspace, relative to its root (e.g. src).", + "required": true, + "schema": { + "type": "string" + } + } + ], + "get": { + "operationId": "GetEnvironmentFiles", + "description": "Retrieves file metadata or directory contents from an environment's snapshot. To download file content, use the download URL returned in the response.", + "parameters": [ + { + "name": "page_size", + "in": "query", + "description": "Optional. Maximum number of entries to return per page (for directory listing).", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "Optional. Pagination token for directory listing.", + "schema": { + "type": "string" + } + }, + { + "name": "recursive", + "in": "query", + "description": "Optional. If true and the path is a directory, recursively lists all files.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetEnvironmentFilesResponse" + } + } + } + } + }, + "tags": [ + "environments.files" + ], + "x-codeSamples": [ + { + "label": "list_files", + "lang": "sh", + "source": "curl -X GET 'https://generativelanguage.googleapis.com/v1beta/environments/env_abc123/files/src' \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "get_file", + "lang": "sh", + "source": "curl -X GET 'https://generativelanguage.googleapis.com/v1beta/environments/env_abc123/files/main.py' \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "download_file", + "lang": "sh", + "source": "curl -X GET 'https://generativelanguage.googleapis.com/v1beta/environments/env_abc123/files/src/main.py?alt=media' \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n --output main.py\n" + }, + { + "label": "list_files", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\nresponse = client.environments.files.list(\n environment=created.id,\n path=\"src\",\n)\nfor file in response.files or []:\n print(file.name, file.type, file.size_bytes)\n" + }, + { + "label": "get_file", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\nresponse = client.environments.files.get(\n environment=created.id,\n path=\"main.py\",\n)\nfor file in response.files or []:\n print(file.name, file.size_bytes)\n" + }, + { + "label": "download_file", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\ncontent = client.environments.files.download(\n environment=created.id,\n path=\"src/main.py\",\n)\nprint(content.decode(\"utf-8\"))\n" + }, + { + "label": "list_files", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nconst response = await ai.environments.files.list({\n environment: created.id,\n path: 'src',\n});\nfor (const file of response.files ?? []) {\n console.log(file.name, file.type, file.size_bytes);\n}\n" + }, + { + "label": "get_file", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nconst response = await ai.environments.files.list({\n environment: created.id,\n path: 'main.py',\n});\nfor (const file of response.files ?? []) {\n console.log(file.name, file.size_bytes);\n}\n" + }, + { + "label": "list_files", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.EnvironmentFile;\nimport com.google.genai.gaos.models.operations.GetEnvironmentFilesRequest;\nimport com.google.genai.gaos.models.environments.GetEnvironmentFilesResponse;\n\nClient client = new Client();\n\n\ncom.google.genai.gaos.models.operations.GetEnvironmentFilesResponse response =\n client\n .environments\n .files()\n .list(GetEnvironmentFilesRequest.builder().environment(envId).path(\"src\").build());\nGetEnvironmentFilesResponse filesResponse =\n response.getEnvironmentFilesResponse().orElseThrow();\nfor (EnvironmentFile file : filesResponse.files().orElse(List.of())) {\n System.out.println(\n file.name().orElse(\"\")\n + \" \"\n + file.type().map(Object::toString).orElse(\"\")\n + \" \"\n + file.sizeBytes().orElse(\"\"));\n}\n" + }, + { + "label": "get_file", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.EnvironmentFile;\nimport com.google.genai.gaos.models.operations.GetEnvironmentFilesRequest;\nimport com.google.genai.gaos.models.environments.GetEnvironmentFilesResponse;\n\nClient client = new Client();\n\n\ncom.google.genai.gaos.models.operations.GetEnvironmentFilesResponse response =\n client\n .environments\n .files()\n .list(GetEnvironmentFilesRequest.builder().environment(envId).path(\"main.py\").build());\nGetEnvironmentFilesResponse filesResponse =\n response.getEnvironmentFilesResponse().orElseThrow();\nfor (EnvironmentFile file : filesResponse.files().orElse(List.of())) {\n System.out.println(file.name().orElse(\"\") + \" \" + file.sizeBytes().orElse(\"\"));\n}\n" + }, + { + "label": "list_files", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n\n res, err := client.Environments.Files.List(ctx, operations.GetEnvironmentFilesRequest{\n Environment: envID,\n Path: \"src\",\n })\n if err != nil {\n log.Fatal(err)\n }\n\n if res.GetEnvironmentFilesResponse != nil {\n for _, file := range res.GetEnvironmentFilesResponse.Files {\n name := \"\"\n if file.Name != nil {\n name = *file.Name\n }\n fileType := \"\"\n if file.Type != nil {\n fileType = string(*file.Type)\n }\n var size int64\n if file.SizeBytes != nil {\n size = *file.SizeBytes\n }\n fmt.Println(name, fileType, size)\n }\n }\n}\n" + }, + { + "label": "get_file", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n\n res, err := client.Environments.Files.List(ctx, operations.GetEnvironmentFilesRequest{\n Environment: envID,\n Path: \"main.py\",\n })\n if err != nil {\n log.Fatal(err)\n }\n\n if res.GetEnvironmentFilesResponse != nil {\n for _, file := range res.GetEnvironmentFilesResponse.Files {\n name := \"\"\n if file.Name != nil {\n name = *file.Name\n }\n var size int64\n if file.SizeBytes != nil {\n size = *file.SizeBytes\n }\n fmt.Println(name, size)\n }\n }\n}\n" + } + ] + } + }, + "/{api_version}/environments/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "delete": { + "operationId": "DeleteEnvironment", + "description": "Deletes an environment.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Empty" + } + } + } + } + }, + "tags": [ + "environments" + ], + "x-codeSamples": [ + { + "label": "delete", + "lang": "sh", + "source": "curl -X DELETE https://generativelanguage.googleapis.com/v1beta/environments/env_abc123 \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "delete", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\nclient.environments.delete(id=created.id)\nprint(\"Environment deleted successfully.\")\n" + }, + { + "label": "delete", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nawait ai.environments.delete(created.id);\nconsole.log('Environment deleted successfully.');\n" + }, + { + "label": "delete", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.Environment;\n\nClient client = new Client();\n\n\nclient.environments.deleteEnvironment(envId);\nSystem.out.println(\n \"com.google.genai.gaos.models.environments.Environment deleted successfully.\");\n" + }, + { + "label": "delete", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n\n _, err = client.Environments.DeleteEnvironment(ctx, operations.DeleteEnvironmentRequest{\n ID: envID,\n })\n if err != nil {\n log.Fatal(err)\n }\n fmt.Println(\"Environment deleted successfully.\")\n}\n" + } + ] + }, + "get": { + "operationId": "GetEnvironment", + "description": "Gets an environment.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Environment" + } + } + } + } + }, + "tags": [ + "environments" + ], + "x-codeSamples": [ + { + "label": "get", + "lang": "sh", + "source": "curl -X GET https://generativelanguage.googleapis.com/v1beta/environments/env_abc123 \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "get", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\nenvironment = client.environments.get(id=created.id)\nprint(environment.id)\n" + }, + { + "label": "get", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nconst environment = await ai.environments.get(created.id);\nconsole.log(environment.id);\n" + }, + { + "label": "get", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.environments.Environment;\n\nClient client = new Client();\n\n\ncom.google.genai.gaos.models.environments.Environment environment =\n client.environments.getEnvironment(envId).environment().orElseThrow();\nSystem.out.println(environment.id().orElse(\"\"));\n" + }, + { + "label": "get", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client := interactions.New()\n\n\n res, err := client.Environments.GetEnvironment(ctx, operations.GetEnvironmentRequest{\n ID: envID,\n })\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Environment != nil && res.Environment.ID != \"\" {\n fmt.Println(res.Environment.ID)\n }\n}\n" + } + ] + } + }, + "/{api_version}/interactions": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "post": { + "operationId": "CreateInteraction", + "description": "Creates a new interaction.", + "requestBody": { + "description": "The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/CreateAgentInteractionParams" + }, + { + "$ref": "#/components/schemas/CreateModelInteractionParams" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "examples": { + "antigravity": { + "summary": "Antigravity Agent", + "value": { + "agent": "antigravity-preview-05-2026", + "created": "2025-11-26T12:22:47Z", + "environment_id": "env_abc123", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "I've summarized the top 5 Hacker News stories and saved the results to /workspace/summary.md." + } + ] + } + ], + "updated": "2025-11-26T12:22:47Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 50 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 50, + "total_output_tokens": 500, + "total_thought_tokens": 200, + "total_tokens": 750, + "total_tool_use_tokens": 0 + } + } + }, + "deep_research": { + "summary": "Deep Research", + "value": { + "agent": "deep-research-pro-preview-12-2025", + "created": "2025-11-26T12:22:47Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "Here is a comprehensive research report on the current state of cancer research..." + } + ] + } + ], + "updated": "2025-11-26T12:22:47Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 20 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 20, + "total_output_tokens": 1000, + "total_thought_tokens": 500, + "total_tokens": 1520, + "total_tool_use_tokens": 0 + } + } + }, + "function_calling": { + "summary": "Function Calling", + "value": { + "created": "2025-11-26T12:22:47Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "requires_action", + "steps": [ + { + "name": "get_weather", + "type": "function_call", + "arguments": { + "location": "Boston, MA" + }, + "id": "gth23981" + } + ], + "updated": "2025-11-26T12:22:47Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 100 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 100, + "total_output_tokens": 25, + "total_thought_tokens": 0, + "total_tokens": 125, + "total_tool_use_tokens": 50 + } + } + }, + "multi_turn": { + "summary": "Multi-turn", + "value": { + "created": "2025-11-26T12:22:47Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "The capital of France is Paris." + } + ] + } + ], + "updated": "2025-11-26T12:22:47Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 50 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 50, + "total_output_tokens": 10, + "total_thought_tokens": 0, + "total_tokens": 60, + "total_tool_use_tokens": 0 + } + } + }, + "multimodal_image": { + "summary": "Image Input", + "value": { + "created": "2025-11-26T12:22:47Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "A white humanoid robot with glowing blue eyes stands holding a red skateboard." + } + ] + } + ], + "updated": "2025-11-26T12:22:47Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 10 + }, + { + "modality": "image", + "tokens": 258 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 268, + "total_output_tokens": 20, + "total_thought_tokens": 0, + "total_tokens": 288, + "total_tool_use_tokens": 0 + } + } + }, + "reuse_env": { + "summary": "Reuse Environment", + "value": { + "agent": "antigravity-preview-05-2026", + "created": "2025-11-26T12:23:00Z", + "environment_id": "env_abc123", + "id": "v1_Chd2ZTJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkwMTIzNDU2Nzg", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "I've updated /workspace/hello.py to accept a name argument and greet the user." + } + ] + } + ], + "updated": "2025-11-26T12:23:00Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 80 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 80, + "total_output_tokens": 200, + "total_thought_tokens": 100, + "total_tokens": 380, + "total_tool_use_tokens": 0 + } + } + }, + "simple": { + "summary": "Simple Request", + "value": { + "created": "2025-11-26T12:25:15Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "Hello! I'm functioning perfectly and ready to assist you.\n\nHow are you doing today?" + } + ] + } + ], + "updated": "2025-11-26T12:25:15Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 7 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 7, + "total_output_tokens": 20, + "total_thought_tokens": 22, + "total_tokens": 49, + "total_tool_use_tokens": 0 + } + } + } + }, + "schema": { + "$ref": "#/components/schemas/Interaction" + } + }, + "text/event-stream": { + "schema": { + "$ref": "#/components/schemas/InteractionSseStreamEvent" + }, + "x-speakeasy-sse-sentinel": "[DONE]" + } + } + }, + "4XX": { + "description": "Error creating interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + }, + "5XX": { + "description": "Error creating interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + } + }, + "summary": "Creating an interaction", + "x-speakeasy-exports": [ + { + "name": "InteractionCreateParams", + "group": "interactions", + "representation": "input" + } + ], + "x-speakeasy-group": "interactions", + "x-speakeasy-name-override": "create", + "x-codeSamples": [ + { + "label": "simple", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"input\": \"Hello, how are you?\"\n }'\n" + }, + { + "label": "multi_turn", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"input\": [\n { \"type\": \"user_input\", \"content\": [{ \"type\": \"text\", \"text\": \"Hello!\" }] },\n { \"type\": \"model_output\", \"content\": [{ \"type\": \"text\", \"text\": \"Hi there! How can I help you today?\" }] },\n { \"type\": \"user_input\", \"content\": [{ \"type\": \"text\", \"text\": \"What is the capital of France?\" }] }\n ]\n }'\n" + }, + { + "label": "multimodal_image", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"input\": [\n {\n \"type\": \"text\",\n \"text\": \"What is in this picture?\"\n },\n {\n \"type\": \"image\",\n \"data\": \"BASE64_ENCODED_IMAGE\",\n \"mime_type\": \"image/png\"\n }\n ]\n }'\n" + }, + { + "label": "function_calling", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [\n {\n \"type\": \"function\",\n \"name\": \"get_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\"\n }\n },\n \"required\": [\n \"location\"\n ]\n }\n }\n ],\n \"input\": \"What is the weather like in Boston, MA?\"\n }'\n" + }, + { + "label": "deep_research", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": \"deep-research-pro-preview-12-2025\",\n \"input\": \"Find a cure to cancer\",\n \"background\": true\n }'\n" + }, + { + "label": "antigravity", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": \"antigravity-preview-05-2026\",\n \"input\": \"Read Hacker News, summarize the top 5 stories, and save results as a markdown file.\",\n \"environment\": \"remote\"\n }'\n" + }, + { + "label": "reuse_env", + "lang": "sh", + "source": "# Step 1: Create an interaction with a fresh remote environment.\nRESPONSE=$(curl -s -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -H \"Api-Revision: 2026-05-20\" \\\n -d '{\n \"agent\": \"antigravity-preview-05-2026\",\n \"input\": \"Write a hello world script at /workspace/hello.py.\",\n \"environment\": \"remote\"\n }')\nINTERACTION_ID=$(echo \"$RESPONSE\" | python3 -c \"import sys,json; print(json.load(sys.stdin)['id'])\")\nENV_ID=$(echo \"$RESPONSE\" | python3 -c \"import sys,json; print(json.load(sys.stdin)['environment_id'])\")\n\n# Step 2: Reuse the same environment in a follow-up interaction.\ncurl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d \"{\n \\\"agent\\\": \\\"antigravity-preview-05-2026\\\",\n \\\"input\\\": \\\"Modify the script to accept a name argument and greet the user.\\\",\n \\\"environment\\\": \\\"$ENV_ID\\\",\n \\\"previous_interaction_id\\\": \\\"$INTERACTION_ID\\\"\n }\"\n" + }, + { + "label": "with_sources", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": \"antigravity-preview-05-2026\",\n \"input\": \"List all files under /workspace and summarize what you find.\",\n \"environment\": {\n \"type\": \"remote\",\n \"sources\": [\n {\n \"type\": \"repository\",\n \"source\": \"https://github.com/octocat/Spoon-Knife\",\n \"target\": \"/workspace/repo\"\n },\n {\n \"type\": \"inline\",\n \"content\": \"Focus on Python files only.\",\n \"target\": \"/workspace/notes.txt\"\n }\n ]\n }\n }'\n" + }, + { + "label": "custom_agent", + "lang": "sh", + "source": "# Step 1: Create a custom agent.\ncurl -X POST https://generativelanguage.googleapis.com/v1beta/agents \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"id\": \"code-reviewer\",\n \"base_agent\": \"antigravity-preview-05-2026\",\n \"system_instruction\": \"You are a senior code reviewer. Check every file for bugs, style issues, and security vulnerabilities.\",\n \"base_environment\": {\n \"type\": \"remote\",\n \"sources\": [{\n \"type\": \"repository\",\n \"source\": \"https://github.com/octocat/Spoon-Knife\",\n \"target\": \"/workspace/repo\"\n }]\n }\n }'\n\n# Step 2: Use the custom agent.\ncurl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": \"code-reviewer\",\n \"input\": \"Review the latest changes in /workspace/repo/src and file a summary.\",\n \"environment\": \"remote\"\n }'\n" + }, + { + "label": "simple", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\ninteraction = client.interactions.create(\n model=\"gemini-flash-latest\",\n input=\"Hello, how are you?\",\n)\nprint(interaction.output_text)\n" + }, + { + "label": "multi_turn", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n input=[\n {\n \"type\": \"user_input\",\n \"content\": [{\"type\": \"text\", \"text\": \"Hello!\"}],\n },\n {\n \"type\": \"model_output\",\n \"content\": [{\n \"type\": \"text\",\n \"text\": \"Hi there! How can I help you today?\",\n }],\n },\n {\n \"type\": \"user_input\",\n \"content\": [\n {\"type\": \"text\", \"text\": \"What is the capital of France?\"}\n ],\n },\n ],\n)\nprint(response.output_text)\n" + }, + { + "label": "multimodal_image", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n input=[\n {\"type\": \"text\", \"text\": \"What is in this picture?\"},\n {\n \"type\": \"image\",\n \"data\": \"BASE64_ENCODED_IMAGE\",\n \"mime_type\": \"image/png\",\n },\n ],\n)\nprint(response.output_text)\n" + }, + { + "label": "function_calling", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[{\n \"type\": \"function\",\n \"name\": \"get_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": (\n \"The city and state, e.g. San Francisco, CA\"\n ),\n }\n },\n \"required\": [\"location\"],\n },\n }],\n input=\"What is the weather like in Boston, MA?\",\n)\nprint(response.steps[-1])\n" + }, + { + "label": "deep_research", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\ninteraction = client.interactions.create(\n agent=\"deep-research-pro-preview-12-2025\",\n input=\"find a cure to cancer\",\n background=True,\n)\nprint(interaction.status)\n" + }, + { + "label": "antigravity", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\ninteraction = client.interactions.create(\n agent=\"antigravity-preview-05-2026\",\n input=(\n \"Read Hacker News, summarize the top 5 stories, and save results as\"\n \" a markdown file.\"\n ),\n environment=\"remote\",\n)\nprint(interaction.output_text)\n" + }, + { + "label": "reuse_env", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n# Step 1: Create an interaction with a fresh remote environment.\ninteraction = client.interactions.create(\n agent=\"antigravity-preview-05-2026\",\n input=\"Write a hello world script at /workspace/hello.py.\",\n environment=\"remote\",\n)\nprint(f\"Environment ID: {interaction.environment_id}\")\n\n# Step 2: Reuse the same environment in a follow-up interaction.\ninteraction_2 = client.interactions.create(\n agent=\"antigravity-preview-05-2026\",\n input=\"Modify the script to accept a name argument and greet the user.\",\n environment=interaction.environment_id,\n previous_interaction_id=interaction.id,\n)\nprint(interaction_2.output_text)\n" + }, + { + "label": "with_sources", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\ninteraction = client.interactions.create(\n agent=\"antigravity-preview-05-2026\",\n input=\"List all files under /workspace and summarize what you find.\",\n environment={\n \"type\": \"remote\",\n \"sources\": [\n {\n \"type\": \"repository\",\n \"source\": \"https://github.com/octocat/Spoon-Knife\",\n \"target\": \"/workspace/repo\",\n },\n {\n \"type\": \"inline\",\n \"content\": \"Focus on Python files only.\",\n \"target\": \"/workspace/notes.txt\",\n },\n ],\n },\n)\nprint(interaction.output_text)\n" + }, + { + "label": "custom_agent", + "lang": "python", + "source": "import uuid\nfrom google import genai\n\nclient = genai.Client()\n\n# Step 1: Create a custom agent.\nagent_id = f\"code-reviewer-{uuid.uuid4().hex[:8]}\"\nclient.agents.create(\n id=agent_id,\n base_agent=\"antigravity-preview-05-2026\",\n system_instruction=(\n \"You are a senior code reviewer. Check every file for bugs, style\"\n \" issues, and security vulnerabilities.\"\n ),\n base_environment={\n \"type\": \"remote\",\n \"sources\": [{\n \"type\": \"repository\",\n \"source\": \"https://github.com/octocat/Spoon-Knife\",\n \"target\": \"/workspace/repo\",\n }],\n },\n)\n\n# Step 2: Use the custom agent.\nresult = client.interactions.create(\n agent=agent_id,\n input=(\n \"Review the latest changes in /workspace/repo/src and file a\"\n \" summary.\"\n ),\n environment=\"remote\",\n)\nprint(result.output_text)\n" + }, + { + "label": "simple", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n input: 'Hello, how are you?',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "multi_turn", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n input: [\n {type: 'user_input', content: [{type: 'text', text: 'Hello'}]},\n {\n type: 'model_output',\n content: [\n {type: 'text', text: 'Hi there! How can I help you today?'},\n ],\n },\n {\n type: 'user_input',\n content: [{type: 'text', text: 'What is the capital of France?'}],\n },\n ],\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "multimodal_image", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n input: [\n {type: 'text', text: 'What is in this picture?'},\n {type: 'image', data: 'BASE64_ENCODED_IMAGE', mime_type: 'image/png'},\n ],\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "function_calling", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [\n {\n type: 'function',\n name: 'get_weather',\n description: 'Get the current weather in a given location',\n parameters: {\n type: 'object',\n properties: {\n location: {\n type: 'string',\n description: 'The city and state, e.g. San Francisco, CA',\n },\n },\n required: ['location'],\n },\n },\n ],\n input: 'What is the weather like in Boston, MA?',\n});\nconsole.log(interaction.steps.at(-1));\n" + }, + { + "label": "deep_research", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n agent: 'deep-research-pro-preview-12-2025',\n input: 'find a cure to cancer',\n background: true,\n});\nconsole.log(interaction.status);\n" + }, + { + "label": "antigravity", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n agent: 'antigravity-preview-05-2026',\n input:\n 'Read Hacker News, summarize the top 5 stories, and save results as a markdown file.',\n environment: 'remote',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "reuse_env", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n// Step 1: Create an interaction with a fresh remote environment.\nconst interaction = await ai.interactions.create({\n agent: 'antigravity-preview-05-2026',\n input: 'Write a hello world script at /workspace/hello.py.',\n environment: 'remote',\n});\nconsole.log(`Environment ID: ${interaction.environment_id}`);\n\n// Step 2: Reuse the same environment in a follow-up interaction.\nconst interaction2 = await ai.interactions.create({\n agent: 'antigravity-preview-05-2026',\n input: 'Modify the script to accept a name argument and greet the user.',\n environment: interaction.environment_id,\n previous_interaction_id: interaction.id,\n});\nconsole.log(interaction2.output_text);\n" + }, + { + "label": "with_sources", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n agent: 'antigravity-preview-05-2026',\n input: 'List all files under /workspace and summarize what you find.',\n environment: {\n type: 'remote',\n sources: [\n {\n type: 'repository',\n source: 'https://github.com/octocat/Spoon-Knife',\n target: '/workspace/repo',\n },\n {\n type: 'inline',\n content: 'Focus on Python files only.',\n target: '/workspace/notes.txt',\n },\n ],\n },\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "custom_agent", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n// Step 1: Create a custom agent.\nconst agentId = `code-reviewer-${crypto.randomUUID().slice(0, 8)}`;\nawait ai.agents.create({\n id: agentId,\n base_agent: 'antigravity-preview-05-2026',\n system_instruction:\n 'You are a senior code reviewer. Check every file for bugs, style issues, and security vulnerabilities.',\n base_environment: {\n type: 'remote',\n sources: [\n {\n type: 'repository',\n source: 'https://github.com/octocat/Spoon-Knife',\n target: '/workspace/repo',\n },\n ],\n },\n});\n\n// Step 2: Use the custom agent.\nconst result = await ai.interactions.create({\n agent: agentId,\n input:\n 'Review the latest changes in /workspace/repo/src and file a summary.',\n environment: 'remote',\n});\nconsole.log(result.output_text);\n" + }, + { + "label": "simple", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .input(InteractionsInput.of(\"Hello, how are you?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "multi_turn", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.ModelOutputStep;\nimport com.google.genai.gaos.models.interactions.Step;\nimport com.google.genai.gaos.models.interactions.TextContent;\nimport com.google.genai.gaos.models.interactions.UserInputStep;\n\nClient client = new Client();\nList conversation =\n List.of(\n UserInputStep.builder()\n .content(List.of(TextContent.builder().text(\"Hello!\").build()))\n .build(),\n ModelOutputStep.builder()\n .content(\n List.of(\n TextContent.builder().text(\"Hi there! How can I help you today?\").build()))\n .build(),\n UserInputStep.builder()\n .content(\n List.of(TextContent.builder().text(\"What is the capital of France?\").build()))\n .build());\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .input(InteractionsInput.ofStep(conversation))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "multimodal_image", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.Content;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.ImageContent;\nimport com.google.genai.gaos.models.interactions.ImageContentMimeType;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.TextContent;\n\nClient client = new Client();\nList content =\n List.of(\n TextContent.builder().text(\"What is in this picture?\").build(),\n ImageContent.builder()\n .data(\"BASE64_ENCODED_IMAGE\")\n .mimeType(ImageContentMimeType.IMAGE_PNG)\n .build());\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .input(InteractionsInput.ofContent(content))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "function_calling", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Function;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.Step;\n\nClient client = new Client();\nMap parameters =\n Map.of(\n \"type\", \"object\",\n \"properties\",\n Map.of(\n \"location\",\n Map.of(\n \"type\", \"string\",\n \"description\", \"The city and state, e.g. San Francisco, CA\")),\n \"required\", List.of(\"location\"));\nFunction functionTool =\n Function.builder()\n .name(\"get_weather\")\n .description(\"Get the current weather in a given location\")\n .parameters(parameters)\n .build();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(functionTool))\n .input(InteractionsInput.of(\"What is the weather like in Boston, MA?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nList steps = interaction.steps().orElse(List.of());\nif (!steps.isEmpty()) {\n System.out.println(steps.get(steps.size() - 1));\n}\n" + }, + { + "label": "deep_research", + "lang": "java", + "source": "import com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionStatus;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nCreateAgentInteraction params =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"deep-research-pro-preview-12-2025\"))\n .input(InteractionsInput.of(\"find a cure to cancer\"))\n .background(true)\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.status().map(InteractionStatus::value).orElse(\"\"));\n" + }, + { + "label": "antigravity", + "lang": "java", + "source": "import com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteractionEnvironment;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nCreateAgentInteraction params =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"antigravity-preview-05-2026\"))\n .input(\n InteractionsInput.of(\n \"Read Hacker News, summarize the top 5 stories, and save results as a markdown\"\n + \" file.\"))\n .environment(CreateAgentInteractionEnvironment.of(\"remote\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "reuse_env", + "lang": "java", + "source": "import com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteractionEnvironment;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.environments.Environment;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.Step;\n\nClient client = new Client();\n\n// Step 1: Create an interaction with a fresh remote environment.\nCreateAgentInteraction params1 =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"antigravity-preview-05-2026\"))\n .input(InteractionsInput.of(\"Write a hello world script at /workspace/hello.py.\"))\n .environment(CreateAgentInteractionEnvironment.of(\"remote\"))\n .build();\nCreateInteractionResponse response1 =\n client.interactions.create(CreateInteractionRequestBody.of(params1));\nInteraction interaction1 =\n response1.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(\"Environment ID: \" + interaction1.environmentId().orElse(\"\"));\n\n// Step 2: Reuse the same environment in a follow-up interaction.\nCreateAgentInteraction params2 =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"antigravity-preview-05-2026\"))\n .input(\n InteractionsInput.of(\n \"Modify the script to accept a name argument and greet the user.\"))\n .environment(\n CreateAgentInteractionEnvironment.of(interaction1.environmentId().orElse(\"\")))\n .previousInteractionId(interaction1.id().orElse(null))\n .build();\nCreateInteractionResponse response2 =\n client.interactions.create(CreateInteractionRequestBody.of(params2));\nInteraction interaction2 =\n response2.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction2.outputText().orElse(\"\"));\n" + }, + { + "label": "with_sources", + "lang": "java", + "source": "import com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteractionEnvironment;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.environments.Environment;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.Source;\nimport com.google.genai.gaos.models.interactions.SourceType;\n\nClient client = new Client();\ncom.google.genai.gaos.models.interactions.Environment env =\n com.google.genai.gaos.models.interactions.Environment.builder()\n .sources(\n List.of(\n Source.builder()\n .type(SourceType.REPOSITORY)\n .source(\"https://github.com/octocat/Spoon-Knife\")\n .target(\"/workspace/repo\")\n .build(),\n Source.builder()\n .type(SourceType.INLINE)\n .content(\"Focus on Python files only.\")\n .target(\"/workspace/notes.txt\")\n .build()))\n .build();\nCreateAgentInteraction params =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"antigravity-preview-05-2026\"))\n .input(\n InteractionsInput.of(\n \"List all files under /workspace and summarize what you find.\"))\n .environment(CreateAgentInteractionEnvironment.of(env))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "custom_agent", + "lang": "java", + "source": "import com.google.genai.gaos.models.agents.Agent;\nimport com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.gaos.models.agents.BaseEnvironment;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteractionEnvironment;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.environments.Environment;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.Source;\nimport com.google.genai.gaos.models.interactions.SourceType;\nimport com.google.genai.gaos.models.interactions.Step;\n\nClient client = new Client();\n\n// Step 1: Create a custom agent.\nString agentId = \"code-reviewer-\" + UUID.randomUUID().toString().substring(0, 8);\ncom.google.genai.gaos.models.interactions.Environment baseEnv =\n com.google.genai.gaos.models.interactions.Environment.builder()\n .sources(\n List.of(\n Source.builder()\n .type(SourceType.REPOSITORY)\n .source(\"https://github.com/octocat/Spoon-Knife\")\n .target(\"/workspace/repo\")\n .build()))\n .build();\nAgent customAgent =\n Agent.builder()\n .id(agentId)\n .baseAgent(\"antigravity-preview-05-2026\")\n .systemInstruction(\n \"You are a senior code reviewer. Check every file for bugs, style issues, and\"\n + \" security vulnerabilities.\")\n .baseEnvironment(BaseEnvironment.of(baseEnv))\n .build();\nclient.agents.create(customAgent);\n\n// Step 2: Use the custom agent.\nCreateAgentInteraction params =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(agentId))\n .input(\n InteractionsInput.of(\n \"Review the latest changes in /workspace/repo/src and file a summary.\"))\n .environment(CreateAgentInteractionEnvironment.of(\"remote\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "simple", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Hello, how are you?\")),\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + }, + { + "label": "multi_turn", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n history := []gaos_interactions.Step{\n gaos_interactions.NewStep(gaos_interactions.UserInputStep{\n Content: []gaos_interactions.Content{\n gaos_interactions.NewContent(gaos_interactions.TextContent{\n Text: \"Hello!\",\n }),\n },\n }),\n gaos_interactions.NewStep(gaos_interactions.ModelOutputStep{\n Content: []gaos_interactions.Content{\n gaos_interactions.NewContent(gaos_interactions.TextContent{\n Text: \"Hi there! How can I help you today?\",\n }),\n },\n }),\n gaos_interactions.NewStep(gaos_interactions.UserInputStep{\n Content: []gaos_interactions.Content{\n gaos_interactions.NewContent(gaos_interactions.TextContent{\n Text: \"What is the capital of France?\",\n }),\n },\n }),\n }\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(history)),\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + }, + { + "label": "multimodal_image", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n contents := []gaos_interactions.Content{\n gaos_interactions.NewContent(gaos_interactions.TextContent{\n Text: \"What is in this picture?\",\n }),\n gaos_interactions.NewContent(gaos_interactions.ImageContent{\n Data: genai.Ptr(\"BASE64_ENCODED_IMAGE\"),\n MimeType: gaos_interactions.ImageContentMimeTypeImagePng.ToPointer(),\n }),\n }\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(contents)),\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + }, + { + "label": "function_calling", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n function := gaos_interactions.Function{\n Name: genai.Ptr(\"get_weather\"),\n Description: genai.Ptr(\"Get the current weather in a given location\"),\n Parameters: map[string]any{\n \"type\": \"object\",\n \"properties\": map[string]any{\n \"location\": map[string]any{\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\",\n },\n },\n \"required\": []string{\"location\"},\n },\n }\n\n tool := gaos_interactions.NewTool(function)\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"What is the weather like in Boston, MA?\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil {\n for _, step := range res.Interaction.Steps {\n if step.FunctionCallStep != nil {\n fmt.Println(\"Function Call:\", step.FunctionCallStep.Name)\n fmt.Println(\"Arguments:\", step.FunctionCallStep.Arguments)\n }\n }\n }\n}\n" + }, + { + "label": "deep_research", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(\"deep-research-pro-preview-12-2025\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"find a cure to cancer\")),\n Background: genai.Ptr(true),\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil {\n fmt.Println(res.Interaction.Status)\n }\n}\n" + }, + { + "label": "antigravity", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(\"antigravity-preview-05-2026\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Read Hacker News, summarize the top 5 stories, and save results as a markdown file.\")),\n Environment: genai.Ptr(gaos_interactions.NewCreateAgentInteractionEnvironment(\"remote\")),\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + }, + { + "label": "reuse_env", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n // Step 1: Create an interaction with a fresh remote environment.\n body1 := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(\"antigravity-preview-05-2026\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Write a hello world script at /workspace/hello.py.\")),\n Environment: genai.Ptr(gaos_interactions.NewCreateAgentInteractionEnvironment(\"remote\")),\n })\n\n res1, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body1})\n if err != nil {\n log.Fatal(err)\n }\n\n if res1.Interaction == nil || res1.Interaction.EnvironmentID == nil {\n log.Fatal(\"No environment ID returned\")\n }\n fmt.Printf(\"Environment ID: %s\\n\", *res1.Interaction.EnvironmentID)\n\n // Step 2: Reuse the same environment in a follow-up interaction.\n body2 := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(\"antigravity-preview-05-2026\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Modify the script to accept a name argument and greet the user.\")),\n Environment: genai.Ptr(gaos_interactions.NewCreateAgentInteractionEnvironment(*res1.Interaction.EnvironmentID)),\n PreviousInteractionID: res1.Interaction.ID,\n })\n\n res2, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body2})\n if err != nil {\n log.Fatal(err)\n }\n\n if res2.Interaction != nil && res2.Interaction.OutputText != nil {\n fmt.Println(*res2.Interaction.OutputText)\n }\n}\n" + }, + { + "label": "with_sources", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n env := gaos_interactions.Environment{\n Sources: []gaos_interactions.Source{\n {\n Type: genai.Ptr(gaos_interactions.SourceTypeRepository),\n Source: genai.Ptr(\"https://github.com/octocat/Spoon-Knife\"),\n Target: genai.Ptr(\"/workspace/repo\"),\n },\n {\n Type: genai.Ptr(gaos_interactions.SourceTypeInline),\n Content: genai.Ptr(\"Focus on Python files only.\"),\n Target: genai.Ptr(\"/workspace/notes.txt\"),\n },\n },\n }\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(\"antigravity-preview-05-2026\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"List all files under /workspace and summarize what you find.\")),\n Environment: genai.Ptr(gaos_interactions.NewCreateAgentInteractionEnvironment(env)),\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + }, + { + "label": "custom_agent", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"time\"\n \"google.golang.org/genai\"\n gaos_agents \"google.golang.org/genai/interactions/models/agents\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n // Step 1: Create a custom agent.\n agentID := fmt.Sprintf(\"code-reviewer-%d\", time.Now().UnixNano())\n baseEnv := gaos_interactions.Environment{\n Sources: []gaos_interactions.Source{\n {\n Type: genai.Ptr(gaos_interactions.SourceTypeRepository),\n Source: genai.Ptr(\"https://github.com/octocat/Spoon-Knife\"),\n Target: genai.Ptr(\"/workspace/repo\"),\n },\n },\n }\n\n _, err = client.Agents.Create(ctx, operations.CreateAgentRequest{\n Body: gaos_agents.Agent{\n ID: genai.Ptr(agentID),\n BaseAgent: genai.Ptr(\"antigravity-preview-05-2026\"),\n SystemInstruction: genai.Ptr(\"You are a senior code reviewer. Check every file for bugs, style issues, and security vulnerabilities.\"),\n BaseEnvironment: genai.Ptr(gaos_agents.NewBaseEnvironment(baseEnv)),\n },\n })\n if err != nil {\n log.Fatal(err)\n }\n\n // Step 2: Use the custom agent.\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateAgentInteraction{\n Agent: gaos_interactions.AgentOption(agentID),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Review the latest changes in /workspace/repo/src and file a summary.\")),\n Environment: genai.Ptr(gaos_interactions.NewCreateAgentInteractionEnvironment(\"remote\")),\n })\n\n res, err := client.Interactions.Create(ctx, operations.CreateInteractionRequest{Body: body})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + } + }, + "/{api_version}/interactions/{id}": { + "delete": { + "operationId": "deleteInteraction", + "description": "Deletes the interaction by id.", + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + }, + { + "name": "id", + "in": "path", + "description": "The unique identifier of the interaction to delete.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "interactionsId", + "in": "path", + "description": "Required. The name of the interaction to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful deletion of the interaction." + }, + "4XX": { + "description": "Error deleting interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + }, + "5XX": { + "description": "Error deleting interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + } + }, + "summary": "Deleting an interaction", + "x-speakeasy-exports": [ + { + "name": "InteractionDeleteParams", + "group": "interactions", + "representation": "input" + } + ], + "x-speakeasy-group": "interactions", + "x-speakeasy-name-override": "delete", + "x-codeSamples": [ + { + "label": "delete", + "lang": "sh", + "source": "curl -X DELETE \"https://generativelanguage.googleapis.com/v1beta/interactions/$INTERACTION_ID\" \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "delete", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\nclient.interactions.delete(id=created.id)\nprint(\"Interaction deleted successfully.\")\n" + }, + { + "label": "delete", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nawait ai.interactions.delete(created.id);\nconsole.log('Interaction deleted successfully.');\n" + }, + { + "label": "delete", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.Interaction;\n\nClient client = new Client();\n\n\nclient.interactions.delete(interactionId);\nSystem.out.println(\"Interaction deleted successfully.\");\n" + }, + { + "label": "delete", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n\n req := operations.DeleteInteractionRequest{\n ID: interactionID,\n }\n\n _, err = client.Interactions.Delete(\n ctx,\n req,\n )\n if err != nil {\n log.Fatal(err)\n }\n\n fmt.Println(\"Interaction deleted successfully.\")\n}\n" + } + ] + }, + "get": { + "operationId": "getInteractionById", + "description": "Retrieves the full details of a single interaction based on its `Interaction.id`.", + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + }, + { + "name": "id", + "in": "path", + "description": "The unique identifier of the interaction to retrieve.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "last_event_id", + "in": "query", + "description": "Optional. If set, resumes the interaction stream from the next chunk after the event marked by the event id. Can only be used if `stream` is true.", + "schema": { + "type": "string" + } + }, + { + "name": "stream", + "in": "query", + "description": "If set to true, the generated content will be streamed incrementally.", + "schema": { + "type": "boolean", + "default": false + } + } + ], + "responses": { + "200": { + "description": "Successful retrieval of the interaction.", + "content": { + "application/json": { + "examples": { + "get": { + "summary": "Get Interaction", + "value": { + "created": "2025-11-26T12:25:15Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "I'm doing great, thank you for asking! How can I help you today?" + } + ] + } + ], + "updated": "2025-11-26T12:25:15Z" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Interaction" + } + }, + "text/event-stream": { + "schema": { + "$ref": "#/components/schemas/InteractionSseStreamEvent" + }, + "x-speakeasy-sse-sentinel": "[DONE]" + } + } + }, + "4XX": { + "description": "Error getting interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + }, + "5XX": { + "description": "Error getting interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + } + }, + "summary": "Retrieving an interaction", + "x-speakeasy-exports": [ + { + "name": "InteractionGetParams", + "group": "interactions", + "representation": "input" + } + ], + "x-speakeasy-group": "interactions", + "x-speakeasy-name-override": "get", + "x-speakeasy-sse-overload": true, + "x-codeSamples": [ + { + "label": "get", + "lang": "sh", + "source": "curl -X GET \"https://generativelanguage.googleapis.com/v1beta/interactions/$INTERACTION_ID\" \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Api-Revision: 2026-05-20\"\n" + }, + { + "label": "get", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n\ninteraction = client.interactions.get(id=created.id)\nprint(interaction.status)\n" + }, + { + "label": "get", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n\nconst interaction = await ai.interactions.get(created.id);\nconsole.log(interaction.status);\n" + }, + { + "label": "get", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.GetInteractionByIdRequest;\nimport com.google.genai.gaos.models.operations.GetInteractionByIdResponse;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionStatus;\n\nClient client = new Client();\n\n\nGetInteractionByIdResponse getResponse =\n client.interactions.get(new GetInteractionByIdRequest(interactionId));\nInteraction interaction =\n getResponse\n .interaction()\n .orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.status().map(InteractionStatus::value).orElse(\"\"));\n" + }, + { + "label": "get", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n\n interaction, err := client.Interactions.Get(ctx, operations.GetInteractionByIDRequest{\n ID: *created.Interaction.ID,\n })\n if err != nil {\n log.Fatal(err)\n }\n\n if interaction.Interaction != nil {\n fmt.Println(interaction.Interaction.Status)\n }\n}\n" + } + ] + } + }, + "/{api_version}/interactions/{id}/cancel": { + "post": { + "operationId": "cancelInteractionById", + "description": "Cancels an interaction by id. This only applies to background interactions that are still running.", + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + }, + { + "name": "id", + "in": "path", + "description": "The unique identifier of the interaction to cancel.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successful operation", + "content": { + "application/json": { + "examples": { + "cancel": { + "summary": "Cancel Interaction", + "value": { + "created": "2025-11-26T12:25:15Z", + "id": "v1_ChdPU0F4YWFtNkFwS2kxZThQZ05lbXdROBIXT1NBeGFhbTZBcEtpMWU4UGdOZW13UTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "cancelled", + "updated": "2025-11-26T12:25:15Z" + } + } + }, + "schema": { + "$ref": "#/components/schemas/Interaction" + } + } + } + }, + "4XX": { + "description": "Error cancelling interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + }, + "5XX": { + "description": "Error cancelling interaction", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "error": { + "$ref": "#/components/schemas/Error" + } + }, + "required": [ + "error" + ] + } + } + } + } + }, + "summary": "Canceling an interaction", + "x-speakeasy-group": "interactions", + "x-speakeasy-name-override": "cancel", + "x-codeSamples": [ + { + "label": "cancel", + "lang": "sh", + "source": "curl -X POST \"https://generativelanguage.googleapis.com/v1beta/interactions/$INTERACTION_ID/cancel\" \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "cancel", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n# Start a background interaction so it stays in-progress.\ncreated = client.interactions.create(\n model=\"gemini-flash-latest\",\n input=\"Write a long essay about the history of computing.\",\n tools=[{\"type\": \"computer_use\"}],\n background=True,\n)\n\n# Cancel the in-progress interaction.\ninteraction = client.interactions.cancel(id=created.id)\nprint(interaction.status)\n" + }, + { + "label": "cancel", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n// Start a background interaction so it stays in-progress.\nconst created = await ai.interactions.create({\n model: 'gemini-flash-latest',\n input: 'Write a long essay about the history of computing.',\n tools: [{type: 'computer_use'}],\n background: true,\n});\n\n// Cancel the in-progress interaction.\nconst interaction = await ai.interactions.cancel(created.id);\nconsole.log(interaction.status);\n" + }, + { + "label": "cancel", + "lang": "java", + "source": "import com.google.genai.gaos.models.operations.CancelInteractionByIdResponse;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.ComputerUse;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionStatus;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\n\n// Start a background interaction so it stays in-progress.\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .input(InteractionsInput.of(\"Write a long essay about the history of computing.\"))\n .tools(List.of(new ComputerUse()))\n .background(true)\n .build();\nCreateInteractionResponse created =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nString interactionId = created.interaction().flatMap(Interaction::id).orElseThrow();\n\n// Cancel the in-progress interaction.\nCancelInteractionByIdResponse cancelResponse = client.interactions.cancel(interactionId);\nInteraction interaction =\n cancelResponse\n .interaction()\n .orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.status().map(InteractionStatus::value).orElse(\"\"));\n" + }, + { + "label": "cancel", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n\n req := operations.CancelInteractionByIDRequest{\n ID: interactionID,\n }\n\n res, err := client.Interactions.Cancel(\n ctx,\n req,\n )\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil {\n fmt.Println(res.Interaction.Status)\n }\n}\n" + } + ] + } + }, + "/{api_version}/triggers": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListTriggers", + "description": "Lists triggers for a project.", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Optional. Filter expression (e.g., by state).", + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "Optional. The maximum number of triggers to return per page.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "Optional. A page token from a previous ListTriggers call.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTriggersResponse" + } + } + } + } + }, + "tags": [ + "triggers" + ] + }, + "post": { + "operationId": "CreateTrigger", + "description": "Creates a new trigger that will invoke the specified agent on the given\ncron schedule.", + "parameters": [], + "requestBody": { + "description": "Required. The trigger configuration to create.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Trigger" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Trigger" + } + } + } + } + }, + "tags": [ + "triggers" + ], + "x-codeSamples": [ + { + "label": "create", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/triggers \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"schedule\": \"0 9 * * *\",\n \"time_zone\": \"America/New_York\",\n \"interaction\": {\n \"agent\": \"antigravity-preview-05-2026\",\n \"input\": \"Summarize top news stories.\",\n \"environment\": \"remote\"\n }\n }'\n" + }, + { + "label": "create", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\ntrigger = client.triggers.create(\n schedule=\"0 9 * * *\",\n time_zone=\"America/New_York\",\n interaction={\n \"agent\": \"antigravity-preview-05-2026\",\n \"input\": \"Summarize top news stories.\",\n \"environment\": \"remote\",\n },\n)\nprint(trigger.id, trigger.interaction.agent)\n" + }, + { + "label": "create", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst trigger = await ai.triggers.create({\n schedule: '0 9 * * *',\n time_zone: 'America/New_York',\n interaction: {\n agent: 'antigravity-preview-05-2026',\n input: 'Summarize top news stories.',\n environment: 'remote',\n },\n});\nconsole.log(trigger.id, trigger.interaction.agent);\n" + }, + { + "label": "create", + "lang": "java", + "source": "import com.google.genai.gaos.models.interactions.AgentOption;\nimport com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteraction;\nimport com.google.genai.gaos.models.interactions.CreateAgentInteractionEnvironment;\nimport com.google.genai.gaos.models.operations.CreateTriggerResponse;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.triggers.Trigger;\nimport com.google.genai.gaos.models.triggers.TriggerCreateParams;\n\nClient client = new Client();\nCreateAgentInteraction interaction =\n CreateAgentInteraction.builder()\n .agent(AgentOption.of(\"antigravity-preview-05-2026\"))\n .input(InteractionsInput.of(\"Summarize top news stories.\"))\n .environment(CreateAgentInteractionEnvironment.of(\"remote\"))\n .build();\nTriggerCreateParams params =\n TriggerCreateParams.builder()\n .schedule(\"0 9 * * *\")\n .timeZone(\"America/New_York\")\n .interaction(interaction)\n .build();\nCreateTriggerResponse response = client.triggers.create(params);\nTrigger trigger =\n response.trigger().orElseThrow(() -> new RuntimeException(\"No trigger returned\"));\nSystem.out.println(\n trigger.id().orElse(\"\")\n + \" \"\n + trigger.interaction().flatMap(CreateAgentInteraction::agent).orElse(null));\n" + } + ] + } + }, + "/{api_version}/triggers/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "delete": { + "operationId": "DeleteTrigger", + "description": "Deletes a trigger.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource name of the trigger.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Empty" + } + } + } + } + }, + "tags": [ + "triggers" + ] + }, + "get": { + "operationId": "GetTrigger", + "description": "Gets details of a single trigger.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource name of the trigger.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Trigger" + } + } + } + } + }, + "tags": [ + "triggers" + ] + }, + "patch": { + "operationId": "UpdateTrigger", + "description": "Updates a trigger.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. Resource name of the trigger.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Required. The trigger with updated fields.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateTriggerRequest" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Trigger" + } + } + } + } + }, + "tags": [ + "triggers" + ] + } + }, + "/{api_version}/triggers/{triggerId}/executions": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListTriggerExecutions", + "description": "Lists executions for a trigger.", + "parameters": [ + { + "name": "filter", + "in": "query", + "description": "Optional. Filter expression.", + "schema": { + "type": "string" + } + }, + { + "name": "page_size", + "in": "query", + "description": "The maximum number of executions to return per page.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "A page token from a previous ListTriggerExecutions call.", + "schema": { + "type": "string" + } + }, + { + "name": "triggerId", + "in": "path", + "description": "Required. The trigger ID to list executions from.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTriggerExecutionsResponse" + } + } + } + } + }, + "tags": [ + "triggers.executions" + ] + }, + "post": { + "operationId": "RunTrigger", + "description": "Runs a trigger immediately.", + "parameters": [ + { + "name": "triggerId", + "in": "path", + "description": "Required. Resource name of the trigger.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TriggerExecution" + } + } + } + } + }, + "tags": [ + "triggers" + ] + } + }, + "/{api_version}/voices": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListVoices", + "description": "Lists custom stored voices owned by the caller (ordered newest first)\nfollowed by prebuilt system voices from Google's voice catalog.", + "parameters": [ + { + "name": "accent", + "in": "query", + "description": "Optional. Filter by accent description (e.g. \"American\", \"British\").\nCase-insensitive exact match. If multiple values are specified, matches\nvoices with any of the specified accents (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "context", + "in": "query", + "description": "Optional. Filter by intended context or domain (e.g. \"News, Commercial\").\nCase-insensitive exact match. If multiple values are specified, matches\nvoices with any of the specified contexts (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "gender", + "in": "query", + "description": "Optional. Filter by gender presentation (e.g. \"female\", \"male\", \"neutral\").\nCase-insensitive exact match. If multiple values are specified, matches\nvoices with any of the specified genders (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "language_code", + "in": "query", + "description": "Optional. Filter by BCP-47 language code (e.g. \"en-US\").\nCase-insensitive exact match. If multiple values are specified, matches\nvoices with any of the specified language codes (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "page_size", + "in": "query", + "description": "Optional. The maximum number of voices to return per page. The service may\nreturn fewer than this value. If unspecified, at most 50 voices are\nreturned. The maximum value is 1000; values above 1000 are coerced to\n1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "Optional. A page token received from a previous `ListVoices` call. Provide\nthis to retrieve the subsequent page.\n\nWhen paginating, all filter query parameters (`language_code`,\n`region_code`, `accent`, `persona`, `context`, `gender`, `pitch`, `type`,\nand `search`) must match the call that returned this token; otherwise the\nrequest fails with `INVALID_ARGUMENT`. `page_size` may change between\npages.", + "schema": { + "type": "string" + } + }, + { + "name": "persona", + "in": "query", + "description": "Optional. Filter by vocal persona (e.g. \"Warm, Friendly\").\nCase-insensitive exact match. If multiple values are specified, matches\nvoices with any of the specified personas (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "pitch", + "in": "query", + "description": "Optional. Filter by vocal pitch. Accepts `\"low\"`, `\"medium\"`, `\"high\"`\n(case-insensitive). If multiple values are specified, matches voices with\nany of the specified pitches (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "region_code", + "in": "query", + "description": "Optional. Filter by ISO 3166-1 alpha-2 or UN M.49 region code (e.g. \"US\",\n\"001\").\nCase-insensitive exact match. If multiple values are specified, matches\nvoices with any of the specified region codes (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "search", + "in": "query", + "description": "Optional. Free-text substring search query matched case-insensitively\nagainst both `display_name` and `description`. Maximum 2048 bytes.", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "description": "Optional. Filter by voice type. Accepts `\"prebuilt\"`, `\"replicated\"`,\n`\"prompted\"` (case-insensitive). If multiple values are specified, matches\nvoices with any of the specified types (OR).", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListVoicesResponse" + } + } + } + } + }, + "tags": [ + "voices" + ], + "x-codeSamples": [ + { + "label": "list", + "lang": "sh", + "source": "curl -X GET https://generativelanguage.googleapis.com/v1beta/voices \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "list", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.voices.list()\nfor voice in response.voices or []:\n print(voice.id, voice.display_name)\n" + }, + { + "label": "list", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst response = await ai.voices.list();\nfor (const voice of response.voices ?? []) {\n console.log(voice.id, voice.display_name);\n}\n" + }, + { + "label": "list", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n res, err := client.Voices.List(ctx, operations.ListVoicesRequest{})\n if err != nil {\n log.Fatal(err)\n }\n\n if res.ListVoicesResponse != nil {\n for _, voice := range res.ListVoicesResponse.Voices {\n if voice.ID != nil && voice.DisplayName != nil {\n fmt.Println(*voice.ID, *voice.DisplayName)\n }\n }\n }\n}\n" + } + ] + }, + "post": { + "operationId": "CreateVoice", + "description": "Creates a custom voice from a natural-language prompt\n(`VOICE_TYPE_PROMPTED`) or from reference and consent audio recordings\n(`VOICE_TYPE_REPLICATED`).", + "parameters": [], + "requestBody": { + "description": "The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateVoiceRequest" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Voice" + } + } + } + } + }, + "tags": [ + "voices" + ], + "x-codeSamples": [ + { + "label": "create", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/voices \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"store\": true,\n \"voice\": {\n \"type\": \"prompted\",\n \"display_name\": \"Warm Narrator\",\n \"language_code\": \"en-US\",\n \"prompted\": {\n \"input\": \"A warm, friendly narrator voice with a calm pace.\"\n }\n }\n }'\n" + }, + { + "label": "create", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nvoice = client.voices.create(\n store=True,\n voice={\n \"type\": \"prompted\",\n \"display_name\": \"Warm Narrator\",\n \"language_code\": \"en-US\",\n \"prompted\": {\n \"input\": \"A warm, friendly narrator voice with a calm pace.\",\n },\n },\n)\nprint(voice.id)\n" + }, + { + "label": "create", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst voice = await ai.voices.create({\n store: true,\n voice: {\n type: 'prompted',\n display_name: 'Warm Narrator',\n language_code: 'en-US',\n prompted: {\n input: 'A warm, friendly narrator voice with a calm pace.',\n },\n },\n});\nconsole.log(voice.id);\n" + }, + { + "label": "create", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_voices \"google.golang.org/genai/interactions/models/voices\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n req := operations.CreateVoiceRequest{\n Body: gaos_voices.CreateVoiceRequest{\n Store: genai.Ptr(true),\n Voice: gaos_voices.VoiceInput{\n Type: gaos_voices.VoiceTypePrompted,\n DisplayName: genai.Ptr(\"Warm Narrator\"),\n LanguageCode: genai.Ptr(\"en-US\"),\n Prompted: &gaos_voices.PromptedVoice{\n Input: \"A warm, friendly narrator voice with a calm pace.\",\n },\n },\n },\n }\n\n res, err := client.Voices.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Voice != nil && res.Voice.ID != nil {\n fmt.Println(*res.Voice.ID)\n }\n}\n" + } + ] + } + }, + "/{api_version}/voices/{voicesId}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "delete": { + "operationId": "DeleteVoice", + "description": "Deletes a custom stored voice (`store = true`) by resource name.\nPrebuilt catalog voices (`VOICE_TYPE_PREBUILT`) cannot be deleted.", + "parameters": [ + { + "name": "voicesId", + "in": "path", + "description": "Required. The resource name of the custom stored voice to delete\n(for example, `voices/voice_abc123def456`).", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteVoiceResponse" + } + } + } + } + }, + "tags": [ + "voices" + ], + "x-codeSamples": [ + { + "label": "delete", + "lang": "sh", + "source": "curl -X DELETE https://generativelanguage.googleapis.com/v1beta/voices/voice_abc123 \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "delete", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nclient.voices.delete(id=\"voice_abc123\")\n" + }, + { + "label": "delete", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nawait ai.voices.delete('voice_abc123');\n" + }, + { + "label": "delete", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n _, err = client.Voices.Delete(ctx, operations.DeleteVoiceRequest{\n ID: \"voice_abc123\",\n })\n if err != nil {\n log.Fatal(err)\n }\n}\n" + } + ] + }, + "get": { + "operationId": "GetVoice", + "description": "Gets a custom stored voice (`store = true`) by resource name.\nPrebuilt catalog voices (`VOICE_TYPE_PREBUILT`) cannot be retrieved via\n`GetVoice`; use `ListVoices` instead.", + "parameters": [ + { + "name": "voicesId", + "in": "path", + "description": "Required. The resource name of the custom stored voice to retrieve\n(for example, `voices/voice_abc123def456`).", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Voice" + } + } + } + } + }, + "tags": [ + "voices" + ], + "x-codeSamples": [ + { + "label": "get", + "lang": "sh", + "source": "curl -X GET https://generativelanguage.googleapis.com/v1beta/voices/voice_abc123 \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\"\n" + }, + { + "label": "get", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nvoice = client.voices.get(id=\"voice_abc123\")\nprint(voice.id, voice.display_name)\n" + }, + { + "label": "get", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst voice = await ai.voices.get('voice_abc123');\nconsole.log(voice.id, voice.display_name);\n" + }, + { + "label": "get", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n res, err := client.Voices.Get(ctx, operations.GetVoiceRequest{\n ID: \"voice_abc123\",\n })\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Voice != nil && res.Voice.ID != nil && res.Voice.DisplayName != nil {\n fmt.Println(*res.Voice.ID, *res.Voice.DisplayName)\n }\n}\n" + } + ] + } + }, + "/{api_version}/webhooks": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "get": { + "operationId": "ListWebhooks", + "description": "Lists all Webhooks.", + "parameters": [ + { + "name": "page_size", + "in": "query", + "description": "Optional. The maximum number of webhooks to return. The service may return\nfewer than this value. If unspecified, at most 50 webhooks will be\nreturned. The maximum value is 1000.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "page_token", + "in": "query", + "description": "Optional. A page token, received from a previous `ListWebhooks` call.\nProvide this to retrieve the subsequent page.", + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListWebhooksResponse" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + }, + "post": { + "operationId": "CreateWebhook", + "description": "Creates a new Webhook.", + "parameters": [ + { + "name": "webhook_id", + "in": "query", + "description": "The webhook_id to use for the webhook. If not specified, the server will\ngenerate a unique ID.", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Required. The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateWebhookRequest" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Webhook" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + } + }, + "/{api_version}/webhooks/{id}": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "delete": { + "operationId": "DeleteWebhook", + "description": "Deletes a Webhook.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. The ID of the webhook to delete.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Empty" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + }, + "get": { + "operationId": "GetWebhook", + "description": "Gets a specific Webhook.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. The ID of the webhook to retrieve.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Webhook" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + }, + "patch": { + "operationId": "UpdateWebhook", + "description": "Updates an existing Webhook.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. The ID of the webhook to update.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Required. The request body.", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateWebhookRequest" + } + } + } + }, + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Webhook" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + } + }, + "/{api_version}/webhooks/{id}:ping": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "post": { + "operationId": "PingWebhook", + "description": "Sends a ping event to a Webhook.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. The ID of the webhook to ping.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PingWebhookResponse" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + } + }, + "/{api_version}/webhooks/{id}:rotateSigningSecret": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + } + ], + "post": { + "operationId": "RotateSigningSecret", + "description": "Generates a new signing secret for a Webhook.", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Required. The ID of the webhook for which to generate a signing secret.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "default": { + "description": "Successful operation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RotateSigningSecretResponse" + } + } + } + } + }, + "tags": [ + "webhooks" + ] + } + } + }, + "components": { + "parameters": { + "EnvironmentFileExtract": { + "name": "extract", + "in": "query", + "description": "Optional. If true, treats the uploaded file as a tar/tar.gz archive and unpacks it into `path`.", + "schema": { + "type": "boolean" + } + }, + "EnvironmentFileOverwrite": { + "name": "overwrite", + "in": "query", + "description": "Optional. Whether to overwrite the destination file if it already exists.", + "schema": { + "type": "boolean" + } + }, + "EnvironmentFileUploadCommand": { + "name": "X-Goog-Upload-Command", + "in": "header", + "description": "Command that starts the resumable upload session.", + "required": true, + "schema": { + "type": "string", + "const": "start", + "default": "start" + } + }, + "EnvironmentFileUploadContentLength": { + "name": "X-Goog-Upload-Header-Content-Length", + "in": "header", + "description": "Total number of file bytes that will be uploaded to the session URL.", + "required": true, + "schema": { + "type": "integer", + "format": "int64", + "minimum": 0 + } + }, + "EnvironmentFileUploadContentType": { + "name": "X-Goog-Upload-Header-Content-Type", + "in": "header", + "description": "MIME type of the file that will be uploaded to the session URL.", + "required": true, + "schema": { + "type": "string", + "minLength": 1 + } + }, + "EnvironmentFileUploadProtocol": { + "name": "X-Goog-Upload-Protocol", + "in": "header", + "description": "Resumable upload protocol selector.", + "required": true, + "schema": { + "type": "string", + "const": "resumable", + "default": "resumable" + } + }, + "api_version": { + "name": "api_version", + "in": "path", + "description": "API version for request routing.", + "required": true, + "schema": { + "type": "string" + } + }, + "google_genai_user_project": { + "name": "x-goog-user-project", + "in": "header", + "description": "Quota project header to send with Google GenAI API requests.", + "schema": { + "type": "string" + }, + "x-speakeasy-name-override": "user_project" + } + }, + "headers": { + "EnvironmentFileUploadUrl": { + "description": "Opaque URL to which file chunks are uploaded and finalized.", + "schema": { + "type": "string", + "format": "uri" + } + } + }, + "schemas": { + "Agent": { + "description": "An agent definition for the CreateAgent API.\nThis message is the target for annotation-parser-based JSON parsing.\nNew format:\n {\n \"id\": \"customer-sentinel\",\n \"base_agent\": \"\",\n \"system_instruction\": \"...\",\n \"base_environment\": { \"type\": \"remote\", \"sources\": [...] },\n \"tools\": [ {\"type\": \"code_execution\"} ]\n }", + "type": "object", + "properties": { + "agent_config": { + "description": "Configuration parameters for the agent.", + "oneOf": [ + { + "$ref": "#/components/schemas/AntigravityAgentConfig" + } + ] + }, + "base_environment": { + "description": "The environment configuration for the agent.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentConfig" + }, + { + "type": "string" + } + ] + }, + "id": { + "description": "The unique identifier for the agent.", + "type": "string" + }, + "base_agent": { + "description": "The base agent to extend.", + "type": "string" + }, + "system_instruction": { + "description": "System instruction for the agent.", + "type": "string" + }, + "description": { + "description": "Agent description for developers to quickly read and understand.", + "type": "string" + }, + "tools": { + "description": "The tools available to the agent.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AgentTool" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "AgentOption": { + "title": "Agent", + "description": "The agent to interact with.", + "type": "string", + "enum": [ + "deep-research-pro-preview-12-2025", + "deep-research-preview-04-2026", + "deep-research-max-preview-04-2026", + "antigravity-preview-05-2026" + ], + "x-speakeasy-enum-descriptions": [ + "Gemini Deep Research Agent", + "Gemini Deep Research Agent", + "Gemini Deep Research Max Agent", + "Use the Antigravity managed agent to perform multi-step tasks that require reasoning, file operations, and tool use." + ], + "x-speakeasy-enum-format": "union", + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-unknown-values": "allow" + }, + "AgentTool": { + "description": "A tool that the agent can use.", + "oneOf": [ + { + "$ref": "#/components/schemas/CodeExecution" + }, + { + "$ref": "#/components/schemas/Function" + }, + { + "$ref": "#/components/schemas/GoogleSearch" + }, + { + "$ref": "#/components/schemas/McpServer" + }, + { + "$ref": "#/components/schemas/UrlContext" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "AllowedTools": { + "description": "The configuration for allowed tools.", + "type": "object", + "properties": { + "mode": { + "type": "string", + "enum": [ + "auto", + "any", + "none", + "validated" + ], + "x-google-enum-descriptions": [ + "Auto tool choice.", + "Any tool choice.", + "No tool choice.", + "Validated tool choice." + ], + "x-speakeasy-model-namespace": "interactions", + "description": "The mode of the tool choice." + }, + "tools": { + "description": "The names of the allowed tools.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "Annotation": { + "description": "Citation information for model-generated content.", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/FileCitation" + }, + { + "$ref": "#/components/schemas/PlaceCitation" + }, + { + "$ref": "#/components/schemas/SpeechAnnotation" + }, + { + "$ref": "#/components/schemas/UrlCitation" + }, + { + "$ref": "#/components/schemas/WordInfo" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "AntigravityAgentConfig": { + "description": "Configuration for the Antigravity agent runtime.\nProvides server-side control over the agent's execution environment\nand tool configuration.", + "type": "object", + "properties": { + "type": { + "const": "antigravity" + }, + "model": { + "description": "The model to use for agent reasoning.", + "type": "string" + }, + "max_total_tokens": { + "description": "Max total tokens for the agent run.", + "type": "string", + "format": "int64" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ArgumentsDelta": { + "type": "object", + "properties": { + "type": { + "const": "arguments_delta" + }, + "arguments": { + "type": "string" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "AudioContent": { + "description": "An audio content block.", + "type": "object", + "properties": { + "type": { + "const": "audio" + }, + "data": { + "description": "The audio content.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "description": "The URI of the audio.", + "type": "string" + }, + "channels": { + "description": "The number of audio channels.", + "type": "integer", + "format": "int32" + }, + "sample_rate": { + "description": "The sample rate of the audio.", + "type": "integer", + "format": "int32" + }, + "mime_type": { + "description": "The mime type of the audio.", + "type": "string", + "enum": [ + "audio/wav", + "audio/mp3", + "audio/aiff", + "audio/aac", + "audio/ogg", + "audio/flac", + "audio/mpeg", + "audio/m4a", + "audio/l16", + "audio/opus", + "audio/alaw", + "audio/mulaw", + "audio/webm" + ], + "x-google-enum-descriptions": [ + "WAV audio format", + "MP3 audio format", + "AIFF audio format", + "AAC audio format", + "OGG audio format", + "FLAC audio format", + "MPEG audio format", + "M4A audio format", + "L16 audio format", + "OPUS audio format", + "ALAW audio format", + "MULAW audio format", + "WEBM audio format" + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "audio": { + "summary": "Audio", + "value": { + "type": "audio", + "data": "BASE64_ENCODED_AUDIO", + "mime_type": "audio/wav" + } + } + } + ], + "x-speakeasy-exports": [ + { + "name": "audio_content_param", + "group": "interactions", + "representation": "input" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "AudioData": { + "description": "Audio payload used for voice creation.", + "type": "object", + "properties": { + "mime_type": { + "description": "Required. The IANA MIME type of the audio data (for example, `audio/wav` or\n`audio/mpeg`).", + "type": "string" + }, + "data": { + "description": "Required. The raw audio bytes.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "data", + "mime_type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "AudioDelta": { + "type": "object", + "properties": { + "type": { + "const": "audio" + }, + "data": { + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "type": "string" + }, + "mime_type": { + "type": "string", + "enum": [ + "audio/wav", + "audio/mp3", + "audio/aiff", + "audio/aac", + "audio/ogg", + "audio/flac", + "audio/mpeg", + "audio/m4a", + "audio/l16", + "audio/opus", + "audio/alaw", + "audio/mulaw", + "audio/webm" + ], + "x-google-enum-descriptions": [ + "WAV audio format", + "MP3 audio format", + "AIFF audio format", + "AAC audio format", + "OGG audio format", + "FLAC audio format", + "MPEG audio format", + "M4A audio format", + "L16 audio format", + "OPUS audio format", + "ALAW audio format", + "MULAW audio format", + "WEBM audio format" + ] + }, + "rate": { + "description": "Deprecated. Use sample_rate instead. The value is ignored.", + "type": "integer", + "deprecated": true, + "format": "int32" + }, + "sample_rate": { + "description": "The sample rate of the audio.", + "type": "integer", + "format": "int32" + }, + "channels": { + "description": "The number of audio channels.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "AudioResponseFormat": { + "description": "Configuration for audio output format.", + "type": "object", + "properties": { + "type": { + "const": "audio" + }, + "mime_type": { + "description": "The MIME type of the audio output.", + "type": "string", + "enum": [ + "audio/mp3", + "audio/ogg_opus", + "audio/l16", + "audio/wav", + "audio/alaw", + "audio/mulaw" + ], + "x-google-enum-descriptions": [ + "MP3 audio format.", + "OGG Opus audio format.", + "Raw PCM (L16) audio format.", + "WAV audio format.", + "A-law audio format.", + "Mu-law audio format." + ] + }, + "delivery": { + "description": "The delivery mode for the audio output.", + "type": "string", + "enum": [ + "inline", + "uri" + ], + "x-google-enum-descriptions": [ + "Audio data is returned inline in the response.", + "Audio data is returned as a URI." + ] + }, + "sample_rate": { + "description": "Sample rate in Hz.", + "type": "integer", + "format": "int32" + }, + "bit_rate": { + "description": "Bit rate in bits per second (bps). Only applicable for compressed formats\n(MP3, Opus).", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "examples": [ + { + "audio_response_format": { + "summary": "Audio Output", + "value": { + "type": "audio", + "sample_rate": 24000 + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CodeExecution": { + "description": "A tool that can be used by the model to execute code.", + "type": "object", + "properties": { + "type": { + "const": "code_execution" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "code_execution", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"code_execution\"\n }],\n \"input\": \"Calculate the first 10 Fibonacci numbers\"\n }'\n" + }, + { + "label": "code_execution", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[{\"type\": \"code_execution\"}],\n input=\"Calculate the first 10 Fibonacci numbers\",\n)\nprint(response.output_text)\n" + }, + { + "label": "code_execution", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [{type: 'code_execution'}],\n input: 'Calculate the first 10 Fibonacci numbers',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "code_execution", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.CodeExecution;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(new CodeExecution()))\n .input(InteractionsInput.of(\"Calculate the first 10 Fibonacci numbers\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "code_execution", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n tool := gaos_interactions.NewTool(gaos_interactions.CodeExecution{})\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Calculate the first 10 Fibonacci numbers\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "CodeExecutionCallArguments": { + "description": "The arguments to pass to the code execution.", + "type": "object", + "properties": { + "language": { + "description": "Programming language of the `code`.", + "type": "string", + "enum": [ + "python", + "bash" + ], + "x-google-enum-descriptions": [ + "Python >= 3.10, with numpy and simpy available.", + "Bash. Only available for Gemini 3.0 model or above." + ] + }, + "code": { + "description": "The code to be executed.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "CodeExecutionCallDelta": { + "type": "object", + "properties": { + "arguments": { + "$ref": "#/components/schemas/CodeExecutionCallArguments" + }, + "type": { + "const": "code_execution_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "arguments", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CodeExecutionCallStep": { + "description": "Code execution call step.", + "type": "object", + "properties": { + "arguments": { + "description": "Required. The arguments to pass to the code execution.", + "$ref": "#/components/schemas/CodeExecutionCallStepArguments" + }, + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "code_execution_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "arguments", + "id", + "type" + ], + "examples": [ + { + "code_execution_call": { + "summary": "CodeExecutionCallStep", + "value": { + "type": "code_execution_call", + "arguments": { + "code": "print(sum(range(1, 11)))" + }, + "id": "code_call_71021" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CodeExecutionCallStepArguments": { + "description": "The arguments to pass to the code execution.", + "type": "object", + "properties": { + "language": { + "description": "Programming language of the `code`.", + "type": "string", + "enum": [ + "python", + "bash" + ], + "x-google-enum-descriptions": [ + "Python >= 3.10, with numpy and simpy available.", + "Bash. Only available for Gemini 3.0 model or above." + ] + }, + "code": { + "description": "The code to be executed.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "CodeExecutionCallArguments" + }, + "CodeExecutionResultDelta": { + "type": "object", + "properties": { + "result": { + "type": "string" + }, + "type": { + "const": "code_execution_result" + }, + "is_error": { + "type": "boolean" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "result", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CodeExecutionResultStep": { + "description": "Code execution result step.", + "type": "object", + "properties": { + "result": { + "description": "Required. The output of the code execution.", + "type": "string" + }, + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "code_execution_result" + }, + "is_error": { + "description": "Whether the code execution resulted in an error.", + "type": "boolean" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "call_id", + "result", + "type" + ], + "examples": [ + { + "code_execution_result": { + "summary": "CodeExecutionResultStep", + "value": { + "type": "code_execution_result", + "call_id": "code_call_71021", + "result": "55\n" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ComputerUse": { + "description": "A tool that can be used by the model to interact with the computer.", + "type": "object", + "properties": { + "type": { + "const": "computer_use" + }, + "environment": { + "description": "The environment being operated.", + "type": "string", + "enum": [ + "browser", + "mobile", + "desktop" + ], + "x-google-enum-descriptions": [ + "Operates in a web browser.", + "Operates in a mobile environment.", + "Operates in a desktop environment." + ] + }, + "excluded_predefined_functions": { + "description": "The list of predefined functions that are excluded from the model call.", + "type": "array", + "items": { + "type": "string" + } + }, + "enable_prompt_injection_detection": { + "description": "Whether enable the prompt injection detection check on computer-use\nrequest.", + "type": "boolean" + }, + "disabled_safety_policies": { + "description": "Optional. Disabled safety policies for computer use.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "financial_transactions", + "sensitive_data_modification", + "communication_tool", + "account_creation", + "data_modification", + "user_consent_management", + "legal_terms_and_agreements" + ], + "x-google-enum-descriptions": [ + "Safety policy for financial transactions.", + "Safety policy for sensitive data modification.", + "Safety policy for communication tools (e.g. Gmail, Chat, Meet).", + "Safety policy for account creation.", + "Safety policy for data modification.", + "Safety policy for user consent management.", + "Safety policy for legal terms and agreements." + ] + } + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "computer_use", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-2.5-computer-use-preview-10-2025\",\n \"tools\": [{\n \"type\": \"computer_use\"\n }],\n \"input\": \"Find a flight to Tokyo\"\n }'\n" + }, + { + "label": "computer_use", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-2.5-computer-use-preview-10-2025\",\n tools=[{\"type\": \"computer_use\"}],\n input=\"Find a flight to Tokyo\",\n)\nprint(response.output_text)\n" + }, + { + "label": "computer_use", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-2.5-computer-use-preview-10-2025',\n tools: [{type: 'computer_use'}],\n input: 'Find a flight to Tokyo',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "computer_use", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.interactions.ComputerUse;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-2.5-computer-use-preview-10-2025\")\n .tools(List.of(new ComputerUse()))\n .input(InteractionsInput.of(\"Find a flight to Tokyo\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "computer_use", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n tool := gaos_interactions.NewTool(gaos_interactions.ComputerUse{})\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-2.5-computer-use-preview-10-2025\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Find a flight to Tokyo\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "Content": { + "description": "The content of the response.", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/AudioContent" + }, + { + "$ref": "#/components/schemas/DocumentContent" + }, + { + "$ref": "#/components/schemas/ImageContent" + }, + { + "$ref": "#/components/schemas/TextContent" + }, + { + "$ref": "#/components/schemas/VideoContent" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CreateAgentInteractionParams": { + "description": "Parameters for creating agent interactions", + "properties": { + "agent": { + "description": "The name of the `Agent` used for generating the interaction.", + "$ref": "#/components/schemas/AgentOption" + }, + "input": { + "$ref": "#/components/schemas/InteractionsInput" + }, + "agent_config": { + "description": "Configuration parameters for the agent interaction.", + "oneOf": [ + { + "$ref": "#/components/schemas/AntigravityAgentConfig" + }, + { + "$ref": "#/components/schemas/DeepResearchAgentConfig" + }, + { + "$ref": "#/components/schemas/DynamicAgentConfig" + } + ] + }, + "response_format": { + "description": "Enforces that the generated response is a JSON object that complies with\nthe JSON schema specified in this field.", + "oneOf": [ + { + "$ref": "#/components/schemas/ResponseFormat" + }, + { + "title": "ResponseFormatList", + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseFormat" + } + } + ] + }, + "environment": { + "description": "The environment configuration for the interaction. Can be an object\nspecifying remote environment sources or a string referencing an existing\nenvironment ID.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentConfig" + }, + { + "type": "string" + } + ] + }, + "id": { + "description": "Required. Output only. A unique identifier for the interaction completion.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Required. Output only. The status of the interaction.", + "type": "string", + "enum": [ + "in_progress", + "requires_action", + "completed", + "failed", + "cancelled", + "incomplete", + "budget_exceeded" + ], + "readOnly": true, + "x-google-enum-deprecated": [ + false, + false, + false, + false, + false, + false, + true + ], + "x-google-enum-descriptions": [ + "The interaction is in progress.", + "The interaction requires action/input from the user.", + "The interaction is completed.", + "The interaction failed.", + "The interaction was cancelled.", + "The interaction is completed, but contains incomplete results (e.g.\nhitting max_tokens).", + "Deprecated: Token and execution budget exhaustion returns INCOMPLETE\n(11)." + ] + }, + "created": { + "description": "Required. Output only. The time at which the response was created in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "updated": { + "description": "Required. Output only. The time at which the response was last updated in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "system_instruction": { + "description": "System instruction for the interaction.", + "type": "string" + }, + "tools": { + "description": "A list of tool declarations the model may call during interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tool" + } + }, + "response_modalities": { + "description": "The requested modalities of the response (TEXT, IMAGE, AUDIO).", + "type": "array", + "deprecated": true, + "items": { + "$ref": "#/components/schemas/ResponseModality" + } + }, + "response_mime_type": { + "description": "The mime type of the response. This is required if response_format is set.", + "type": "string", + "deprecated": true + }, + "previous_interaction_id": { + "description": "The ID of the previous interaction, if any.", + "type": "string" + }, + "environment_id": { + "description": "Output only. The environment ID for the interaction. Only populated if environment\nconfig is set in the request.", + "type": "string", + "readOnly": true + }, + "service_tier": { + "description": "The service tier for the interaction.", + "$ref": "#/components/schemas/ServiceTier" + }, + "webhook_config": { + "description": "Optional. Webhook configuration for receiving notifications when the\ninteraction completes.", + "$ref": "#/components/schemas/WebhookConfig" + }, + "safety_settings": { + "description": "Safety settings for the interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SafetySetting" + } + }, + "labels": { + "description": "The labels with user-defined metadata for the request.\n\nLabel keys and values can be no longer than 63 characters\n(Unicode codepoints) and can only contain lowercase letters, numeric\ncharacters, underscores, and dashes. International characters are allowed.\nLabel values are optional. Label keys must start with a letter.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "stream": { + "description": "Input only. Whether the interaction will be streamed.", + "type": "boolean", + "writeOnly": true + }, + "store": { + "description": "Input only. Whether to store the response and request for later retrieval.", + "type": "boolean", + "writeOnly": true + }, + "background": { + "description": "Input only. Whether to run the model interaction in the background.", + "type": "boolean", + "writeOnly": true + } + }, + "required": [ + "agent", + "input" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "CreateAgentInteraction" + }, + "CreateEnvironmentRequest": { + "description": "Request for `CreateEnvironment`.", + "type": "object", + "properties": { + "network": { + "description": "Network configuration for the environment.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentNetworkEgressAllowlist" + }, + { + "type": "string", + "enum": [ + "disabled" + ], + "x-google-enum-descriptions": [ + "All network egress is blocked." + ] + } + ] + }, + "sources": { + "description": "Sources to be mounted into the environment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Source" + } + }, + "from_environment": { + "description": "Optional. The source environment to copy/fork from.\nFormat: `environments/{environment_id}` or `{environment_id}`.\nWhen specified, `sources` and `env` must be empty.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "CreateModelInteractionParams": { + "description": "Parameters for creating model interactions", + "properties": { + "model": { + "description": "The name of the `Model` used for generating the interaction.", + "$ref": "#/components/schemas/ModelOption" + }, + "input": { + "$ref": "#/components/schemas/InteractionsInput" + }, + "generation_config": { + "description": "Input only. Configuration parameters for the model interaction.", + "$ref": "#/components/schemas/GenerationConfig", + "writeOnly": true + }, + "response_format": { + "description": "Enforces that the generated response is a JSON object that complies with\nthe JSON schema specified in this field.", + "oneOf": [ + { + "$ref": "#/components/schemas/ResponseFormat" + }, + { + "title": "ResponseFormatList", + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseFormat" + } + } + ] + }, + "environment": { + "description": "The environment configuration for the interaction. Can be an object\nspecifying remote environment sources or a string referencing an existing\nenvironment ID.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentConfig" + }, + { + "type": "string" + } + ] + }, + "id": { + "description": "Required. Output only. A unique identifier for the interaction completion.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Required. Output only. The status of the interaction.", + "type": "string", + "enum": [ + "in_progress", + "requires_action", + "completed", + "failed", + "cancelled", + "incomplete", + "budget_exceeded" + ], + "readOnly": true, + "x-google-enum-deprecated": [ + false, + false, + false, + false, + false, + false, + true + ], + "x-google-enum-descriptions": [ + "The interaction is in progress.", + "The interaction requires action/input from the user.", + "The interaction is completed.", + "The interaction failed.", + "The interaction was cancelled.", + "The interaction is completed, but contains incomplete results (e.g.\nhitting max_tokens).", + "Deprecated: Token and execution budget exhaustion returns INCOMPLETE\n(11)." + ] + }, + "created": { + "description": "Required. Output only. The time at which the response was created in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "updated": { + "description": "Required. Output only. The time at which the response was last updated in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "system_instruction": { + "description": "System instruction for the interaction.", + "type": "string" + }, + "tools": { + "description": "A list of tool declarations the model may call during interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tool" + } + }, + "response_modalities": { + "description": "The requested modalities of the response (TEXT, IMAGE, AUDIO).", + "type": "array", + "deprecated": true, + "items": { + "$ref": "#/components/schemas/ResponseModality" + } + }, + "response_mime_type": { + "description": "The mime type of the response. This is required if response_format is set.", + "type": "string", + "deprecated": true + }, + "previous_interaction_id": { + "description": "The ID of the previous interaction, if any.", + "type": "string" + }, + "environment_id": { + "description": "Output only. The environment ID for the interaction. Only populated if environment\nconfig is set in the request.", + "type": "string", + "readOnly": true + }, + "service_tier": { + "description": "The service tier for the interaction.", + "$ref": "#/components/schemas/ServiceTier" + }, + "webhook_config": { + "description": "Optional. Webhook configuration for receiving notifications when the\ninteraction completes.", + "$ref": "#/components/schemas/WebhookConfig" + }, + "safety_settings": { + "description": "Safety settings for the interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SafetySetting" + } + }, + "labels": { + "description": "The labels with user-defined metadata for the request.\n\nLabel keys and values can be no longer than 63 characters\n(Unicode codepoints) and can only contain lowercase letters, numeric\ncharacters, underscores, and dashes. International characters are allowed.\nLabel values are optional. Label keys must start with a letter.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "stream": { + "description": "Input only. Whether the interaction will be streamed.", + "type": "boolean", + "writeOnly": true + }, + "store": { + "description": "Input only. Whether to store the response and request for later retrieval.", + "type": "boolean", + "writeOnly": true + }, + "background": { + "description": "Input only. Whether to run the model interaction in the background.", + "type": "boolean", + "writeOnly": true + } + }, + "required": [ + "input", + "model" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "CreateModelInteraction" + }, + "CreateVoiceRequest": { + "description": "Request message for `VoicesService.CreateVoice`.", + "type": "object", + "properties": { + "voice": { + "description": "Required. The voice to create.\n`voice.model` is optional; if omitted, the service selects the default\nvoice creation model. Output-only fields on `Voice` (`id`, `key`,\n`expire_time`, `usage`) are ignored if set.", + "$ref": "#/components/schemas/Voice" + }, + "store": { + "description": "Optional. Whether the created voice is persisted and managed by Google.\n\n* When `true`, Google stores the voice and returns `Voice.id` (for example,\n `voice_abc123def456`), which can be managed via `GetVoice`, `ListVoices`,\n and `DeleteVoice` and referenced by ID in synthesis requests. Stored\n voices expire after 1 year of inactivity; using a stored voice in speech\n synthesis or as a `base_voice` in `CreateVoice` extends its\n `expire_time`. Projects are subject to a maximum active stored voice\n quota; exceeding the quota returns `RESOURCE_EXHAUSTED`.\n* When `false` (default), the voice is not stored by Google and `Voice.key`\n (for example, `voicekey_...`) is returned for client-side storage and\n synthesis. Optional discovery metadata fields on `voice` are not\n persisted or returned when `store` is `false`.\n* Required to be `true` when `voice.type` is `\"prompted\"`\n (otherwise fails with `INVALID_ARGUMENT`).", + "type": "boolean" + } + }, + "required": [ + "voice" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CreateWebhookRequest": { + "description": "Request message for WebhookService.CreateWebhook.", + "type": "object", + "properties": { + "webhook": { + "description": "Required. The webhook to create.", + "$ref": "#/components/schemas/Webhook" + } + }, + "required": [ + "webhook" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Credential": { + "description": "Server-managed credential resource stored in Secret Manager.", + "type": "object", + "properties": { + "id": { + "description": "Required. Output only. Identifier. Unique identifier for the credential.", + "type": "string", + "readOnly": true, + "x-google-identifier": true + }, + "type": { + "description": "Required. Output only. The type of credential.", + "type": "string", + "enum": [ + "bearer_token", + "oauth2", + "environment_variable" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "Static token injected as header. No refresh logic.", + "Auto-refresh expired access tokens using stored refresh token.", + "Environment variable injected into sandbox container." + ] + }, + "status": { + "description": "Output only. Current status of the credential.", + "type": "string", + "enum": [ + "active", + "revoked" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "The credential is active and valid for use.", + "The credential has been revoked and is no longer valid." + ] + }, + "create_time": { + "description": "Output only. The timestamp when the credential was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "update_time": { + "description": "Output only. The timestamp when the credential was last updated.", + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "required": [ + "id", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CredentialCreateParams": { + "description": "Represents the fields of a Credential provided on creation.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentVariableConfig" + }, + { + "$ref": "#/components/schemas/HttpBearerConfig" + }, + { + "$ref": "#/components/schemas/OAuth2Config" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "CredentialUpdateParams": { + "description": "Represents the fields of a Credential that can be updated.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentVariableUpdateConfig" + }, + { + "$ref": "#/components/schemas/HttpBearerUpdateConfig" + }, + { + "$ref": "#/components/schemas/OAuth2UpdateConfig" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "DeepResearchAgentConfig": { + "description": "Configuration for the Deep Research agent.", + "type": "object", + "properties": { + "type": { + "const": "deep-research" + }, + "thinking_summaries": { + "description": "Whether to include thought summaries in the response.", + "$ref": "#/components/schemas/ThinkingSummaries" + }, + "visualization": { + "description": "Whether to include visualizations in the response.", + "type": "string", + "enum": [ + "off", + "auto" + ], + "x-google-enum-descriptions": [ + "Do not include visualizations.", + "Automatically include visualizations." + ] + }, + "collaborative_planning": { + "description": "Enables human-in-the-loop planning for the Deep Research agent. If set to\ntrue, the Deep Research agent will provide a research plan in its response.\nThe agent will then proceed only if the user confirms the plan in the next\nturn.", + "type": "boolean" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "DeleteVoiceResponse": { + "description": "Response message for `VoicesService.DeleteVoice`.", + "type": "object", + "x-speakeasy-model-namespace": "interactions" + }, + "DocumentContent": { + "description": "A document content block.", + "type": "object", + "properties": { + "type": { + "const": "document" + }, + "data": { + "description": "The document content.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "description": "The URI of the document.", + "type": "string" + }, + "mime_type": { + "description": "The mime type of the document.", + "type": "string", + "enum": [ + "application/pdf", + "text/csv" + ], + "x-google-enum-descriptions": [ + "PDF document format", + "CSV document format" + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "document": { + "summary": "Document", + "value": { + "type": "document", + "data": "BASE64_ENCODED_DOCUMENT", + "mime_type": "application/pdf" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "DocumentDelta": { + "type": "object", + "properties": { + "type": { + "const": "document" + }, + "data": { + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "type": "string" + }, + "mime_type": { + "type": "string", + "enum": [ + "application/pdf", + "text/csv" + ], + "x-google-enum-descriptions": [ + "PDF document format", + "CSV document format" + ] + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "DynamicAgentConfig": { + "description": "Configuration for dynamic agents.", + "type": "object", + "properties": { + "type": { + "const": "dynamic" + } + }, + "required": [ + "type" + ], + "additionalProperties": { + "description": "For agents that are not supported statically in the API definition." + }, + "x-speakeasy-model-namespace": "interactions" + }, + "EgressRule": { + "description": "A single domain allowlist rule with optional header injection.", + "type": "object", + "properties": { + "domain": { + "description": "Domain to allow outbound requests to. Supports wildcards (e.g.\n'*.googleapis.com'). Use '*' to allow all domains.", + "type": "string" + }, + "transform": { + "description": "Headers to inject into requests matching this rule.\nKey: header name (e.g., \"Authorization\").\nValue: header value (e.g., \"Bearer your-token\").", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "credential": { + "description": "Optional. Reference to a server-managed Credential resource by ID.", + "type": "string" + } + }, + "required": [ + "domain" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Empty": { + "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }", + "type": "object", + "x-speakeasy-model-namespace": "interactions" + }, + "EnvVar": { + "description": "An environment variable to set in the execution environment.", + "type": "object", + "properties": { + "value": { + "description": "Direct string value for plain environment variables.", + "type": "string" + }, + "credential": { + "description": "Optional reference to a server-managed Credential resource by ID.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "Environment": { + "description": "An execution environment for an agent.", + "type": "object", + "properties": { + "id": { + "description": "Required. Output only. The ID of the environment.", + "type": "string", + "readOnly": true + }, + "network": { + "description": "Network configuration for the environment.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentNetworkEgressAllowlist" + }, + { + "type": "string", + "enum": [ + "disabled" + ], + "x-google-enum-descriptions": [ + "All network egress is blocked." + ] + } + ] + }, + "sources": { + "description": "Sources to be mounted into the environment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Source" + } + }, + "created": { + "description": "Output only. The time at which the environment was created in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "updated": { + "description": "Output only. The time at which the environment was last updated in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "last_accessed": { + "description": "Output only. The time at which the environment was last accessed in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Output only. The status of the environment container.", + "type": "string", + "enum": [ + "active", + "expired" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "", + "" + ] + }, + "file_count": { + "description": "Output only. The number of files in the environment, output only.", + "type": "string", + "format": "int64", + "readOnly": true + }, + "size_bytes": { + "description": "Output only. The total size of the environment files in bytes, output only.", + "type": "string", + "format": "int64", + "readOnly": true + } + }, + "required": [ + "id" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "EnvironmentConfig": { + "description": "Configuration for a custom environment.", + "type": "object", + "properties": { + "type": { + "const": "remote" + }, + "network": { + "description": "Network configuration for the environment.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentNetworkEgressAllowlist" + }, + { + "type": "string", + "enum": [ + "disabled" + ], + "x-google-enum-descriptions": [ + "All network egress is blocked." + ] + } + ] + }, + "sources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Source" + } + }, + "environment_id": { + "description": "Optional. The environment ID for the interaction. If specified, the request will\nupdate the existing environment instead of creating a new one.", + "type": "string" + }, + "env": { + "description": "Environment variables to set in the sandbox environment.", + "oneOf": [ + { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/EnvVar" + } + }, + { + "type": "string" + } + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "inline_sources": { + "summary": "Inline Sources", + "value": { + "type": "remote", + "sources": [ + { + "type": "inline", + "content": "You are a data analyst. Always include visualizations and export results as PDF.", + "target": ".agents/AGENTS.md" + }, + { + "type": "inline", + "content": "---\nname: slide-maker\ndescription: Create HTML slide decks\n---\n# Slide Maker\n\nWhen asked to create a presentation:\n1. Analyze the input data\n2. Create an HTML slide deck with reveal.js\n3. Save to /workspace/output/slides.html", + "target": ".agents/skills/slide-maker/SKILL.md" + } + ] + } + } + }, + { + "external_sources": { + "summary": "External Sources", + "value": { + "type": "remote", + "sources": [ + { + "type": "repository", + "source": "https://github.com/my-org/my-skills.git", + "target": ".agents/skills" + }, + { + "type": "gcs", + "source": "gs://my-bucket/my-folder", + "target": "/workspace/data" + } + ] + } + } + }, + { + "network_allowlist": { + "summary": "Network Allowlist", + "value": { + "type": "remote", + "network": { + "allowlist": [ + { + "domain": "pypi.org" + }, + { + "domain": "*.github.com" + } + ] + } + } + } + }, + { + "proxy_credentials": { + "summary": "Proxy Credentials", + "value": { + "type": "remote", + "network": { + "allowlist": [ + { + "domain": "api.github.com", + "transform": { + "Authorization": "Bearer YOUR_GITHUB_TOKEN" + } + } + ] + } + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "EnvironmentFile": { + "description": "Metadata for a file or directory within an environment.", + "type": "object", + "properties": { + "name": { + "description": "Output only. The name of the file or directory (e.g., \"main.py\" or \"src\").", + "type": "string", + "readOnly": true + }, + "path": { + "description": "Output only. The full relative path within the environment\n(e.g., \"workspace/src/main.py\").", + "type": "string", + "readOnly": true + }, + "type": { + "description": "Output only. The type of the entry.", + "type": "string", + "enum": [ + "file", + "directory" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "A regular file.", + "A directory." + ] + }, + "size_bytes": { + "description": "Output only. The size of the file/directory in bytes.\nNOLINT", + "type": "string", + "format": "int64", + "readOnly": true + }, + "mime_type": { + "description": "Output only. The MIME type of the file (e.g., \"text/python\", \"image/png\").\nEmpty for directories.\nNOLINT", + "type": "string", + "readOnly": true + }, + "created": { + "description": "Output only. The creation time of the file/directory.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "modified": { + "description": "Output only. The modification time of the file/directory.", + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "EnvironmentNetworkEgressAllowlist": { + "description": "Network egress configuration for the environment.", + "type": "object", + "properties": { + "allowlist": { + "description": "List of allowed domains and their configurations. Set to `\"disabled\"`\nto block all network egress.", + "oneOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/EgressRule" + } + }, + { + "type": "string", + "enum": [ + "disabled" + ], + "x-google-enum-descriptions": [ + "All network egress is blocked." + ] + } + ] + } + }, + "examples": [ + { + "network_allowlist": { + "summary": "Network Allowlist", + "value": { + "allowlist": [ + { + "domain": "github.com", + "transform": [ + { + "Authorization": "Bearer your-token" + } + ] + }, + { + "domain": "*.googleapis.com" + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "EnvironmentVariableConfig": { + "description": "Configuration for environment variable credentials.", + "type": "object", + "properties": { + "value": { + "description": "Required. Input only. Secret value of the environment variable. Write-only; never\nreturned in responses.", + "type": "string", + "writeOnly": true + }, + "injection_location": { + "description": "Required. Locations where the environment variable can be injected in\noutgoing HTTP requests. Must contain at least one location.\nAccepts either a single location (e.g. \"header\") or an array of locations.", + "oneOf": [ + { + "$ref": "#/components/schemas/InjectionLocation" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InjectionLocation" + } + } + ] + }, + "id": { + "type": "string" + }, + "type": { + "const": "environment_variable" + }, + "trusted_domains": { + "description": "Optional. List of domains allowed to receive this environment variable\nvalue in HTTP requests.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "id", + "injection_location", + "type", + "value" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "EnvironmentVariableUpdateConfig": { + "description": "Configuration for updating environment variable credentials.", + "type": "object", + "properties": { + "type": { + "const": "environment_variable" + }, + "value": { + "description": "Optional. Input only. Secret value of the environment variable. Write-only; never\nreturned in responses.", + "type": "string", + "writeOnly": true + }, + "trusted_domains": { + "description": "Optional. List of domains allowed to receive this environment variable\nvalue in HTTP requests.", + "type": "array", + "items": { + "type": "string" + } + }, + "injection_location": { + "description": "Optional. Locations where the environment variable can be injected in\noutgoing HTTP requests.\nAccepts either a single location (e.g. \"header\") or an array of locations.", + "oneOf": [ + { + "$ref": "#/components/schemas/InjectionLocation" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/InjectionLocation" + } + } + ] + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Error": { + "description": "Error message from an interaction.", + "type": "object", + "properties": { + "code": { + "description": "A URI that identifies the error type.", + "type": "string" + }, + "message": { + "description": "A human-readable error message.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ErrorEvent": { + "type": "object", + "properties": { + "event_type": { + "const": "error" + }, + "error": { + "$ref": "#/components/schemas/Error" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + } + }, + "required": [ + "event_type" + ], + "examples": [ + { + "error_event": { + "summary": "Error Event", + "value": { + "error": { + "code": "not_found", + "message": "Failed to get completed interaction: Result not found." + }, + "event_type": "error" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FileCitation": { + "description": "A file citation annotation.", + "type": "object", + "properties": { + "type": { + "const": "file_citation" + }, + "document_uri": { + "description": "The URI of the file.", + "type": "string" + }, + "file_name": { + "description": "The name of the file.", + "type": "string" + }, + "source": { + "description": "Source attributed for a portion of the text.", + "type": "string" + }, + "custom_metadata": { + "description": "User provided metadata about the retrieved context.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object." + } + }, + "page_number": { + "description": "Page number of the cited document, if applicable.", + "type": "integer", + "format": "int32" + }, + "media_id": { + "description": "Media ID in-case of image citations, if applicable.", + "type": "string" + }, + "start_index": { + "description": "Start of segment of the response that is attributed to this source.\n\nIndex indicates the start of the segment, measured in bytes.", + "type": "integer", + "format": "int32" + }, + "end_index": { + "description": "End of the attributed segment, exclusive.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FileSearch": { + "description": "A tool that can be used by the model to search files.", + "type": "object", + "properties": { + "type": { + "const": "file_search" + }, + "file_search_store_names": { + "description": "The file search store names to search.", + "type": "array", + "items": { + "type": "string" + } + }, + "top_k": { + "description": "The number of semantic retrieval chunks to retrieve.", + "type": "integer", + "format": "int32" + }, + "metadata_filter": { + "description": "Metadata filter to apply to the semantic retrieval documents and chunks.", + "type": "string" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "file_search", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"file_search\",\n \"file_search_store_names\": [\"fileSearchStores/m64d1sevsr4y-xfyawui3fxqg\"]\n }],\n \"input\": \"Who is the author of the book?\"\n }'\n" + }, + { + "label": "file_search", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\n\n# Create a file search store so we have a valid one to use.\nstore = client.file_search_stores.create()\n\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[\n {\"type\": \"file_search\", \"file_search_store_names\": [store.name]}\n ],\n input=\"What documents are available?\",\n)\nprint(response.output_text)\n" + }, + { + "label": "file_search", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\n\n// Create a file search store so we have a valid one to use.\nconst store = await ai.fileSearchStores.create({});\nif (!store.name) {\n throw new Error('Store creation failed: Name is undefined');\n}\n\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [\n {\n type: 'file_search',\n file_search_store_names: [store.name],\n },\n ],\n input: 'What documents are available?',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "file_search", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.types.CreateFileSearchStoreConfig;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.FileSearch;\nimport com.google.genai.types.FileSearchStore;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\n\n// Create a file search store so we have a valid one to use.\nFileSearchStore store =\n client.fileSearchStores.create(CreateFileSearchStoreConfig.builder().build());\nString storeName = store.name().orElseThrow();\n\nFileSearch tool = FileSearch.builder().fileSearchStoreNames(List.of(storeName)).build();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(tool))\n .input(InteractionsInput.of(\"What documents are available?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "file_search", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n\n tool := gaos_interactions.NewTool(gaos_interactions.FileSearch{\n FileSearchStoreNames: []string{store.Name},\n })\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"What documents are available?\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "FileSearchCallDelta": { + "type": "object", + "properties": { + "type": { + "const": "file_search_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FileSearchCallStep": { + "description": "File Search call step.", + "type": "object", + "properties": { + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "file_search_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "id", + "type" + ], + "examples": [ + { + "file_search_call": { + "summary": "FileSearchCallStep", + "value": { + "type": "file_search_call", + "id": "file_call_88192" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FileSearchResult": { + "description": "The result of the File Search.", + "type": "object", + "x-speakeasy-model-namespace": "interactions" + }, + "FileSearchResultDelta": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FileSearchResult" + } + }, + "type": { + "const": "file_search_result" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "result", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FileSearchResultStep": { + "description": "File Search result step.", + "type": "object", + "properties": { + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "file_search_result" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "call_id", + "type" + ], + "examples": [ + { + "file_search_result": { + "summary": "FileSearchResultStep", + "value": { + "type": "file_search_result", + "call_id": "file_call_88192" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Function": { + "description": "A tool that can be used by the model.", + "type": "object", + "properties": { + "type": { + "const": "function" + }, + "name": { + "description": "The name of the function.", + "type": "string" + }, + "description": { + "description": "A description of the function.", + "type": "string" + }, + "parameters": { + "description": "The JSON Schema for the function's parameters.\n\nSupports a subset of JSON Schema. `minLength`, `maxLength`,\n`minProperties`, `maxProperties`, `uniqueItems`, `contains`,\n`minContains`, and `maxContains` are ignored and not enforced." + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "function_calling", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"function\",\n \"name\": \"get_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\"\n }\n },\n \"required\": [\"location\"]\n }\n }],\n \"input\": \"What is the weather like in Boston, MA?\"\n }'\n" + }, + { + "label": "function_calling", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[{\n \"type\": \"function\",\n \"name\": \"get_weather\",\n \"description\": \"Get the current weather in a given location\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"location\": {\n \"type\": \"string\",\n \"description\": (\n \"The city and state, e.g. San Francisco, CA\"\n ),\n }\n },\n \"required\": [\"location\"],\n },\n }],\n input=\"What is the weather like in Boston?\",\n)\nprint(response.steps[-1])\n" + }, + { + "label": "function_calling", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [\n {\n type: 'function',\n name: 'get_weather',\n description: 'Get the current weather in a given location',\n parameters: {\n type: 'object',\n properties: {\n location: {\n type: 'string',\n description: 'The city and state, e.g. San Francisco, CA',\n },\n },\n required: ['location'],\n },\n },\n ],\n input: 'What is the weather like in Boston?',\n});\nconsole.log(interaction.steps.at(-1));\n" + }, + { + "label": "function_calling", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Function;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.Step;\n\nClient client = new Client();\nMap parameters =\n Map.of(\n \"type\", \"object\",\n \"properties\",\n Map.of(\n \"location\",\n Map.of(\n \"type\", \"string\",\n \"description\", \"The city and state, e.g. San Francisco, CA\")),\n \"required\", List.of(\"location\"));\nFunction functionTool =\n Function.builder()\n .name(\"get_weather\")\n .description(\"Get the current weather in a given location\")\n .parameters(parameters)\n .build();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(functionTool))\n .input(InteractionsInput.of(\"What is the weather like in Boston?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nList steps = interaction.steps().orElse(List.of());\nif (!steps.isEmpty()) {\n System.out.println(steps.get(steps.size() - 1));\n}\n" + }, + { + "label": "function_calling", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n function := gaos_interactions.Function{\n Name: genai.Ptr(\"get_weather\"),\n Description: genai.Ptr(\"Get the current weather in a given location\"),\n Parameters: map[string]any{\n \"type\": \"object\",\n \"properties\": map[string]any{\n \"location\": map[string]any{\n \"type\": \"string\",\n \"description\": \"The city and state, e.g. San Francisco, CA\",\n },\n },\n \"required\": []string{\"location\"},\n },\n }\n\n tool := gaos_interactions.NewTool(function)\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"What is the weather like in Boston, MA?\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil {\n for _, step := range res.Interaction.Steps {\n if step.FunctionCallStep != nil {\n fmt.Println(\"Function Call:\", step.FunctionCallStep.Name)\n fmt.Println(\"Arguments:\", step.FunctionCallStep.Arguments)\n }\n }\n }\n}\n" + } + ] + }, + "FunctionCallStep": { + "description": "A function tool call step.", + "type": "object", + "properties": { + "name": { + "description": "Required. The name of the tool to call.", + "type": "string" + }, + "arguments": { + "description": "Required. The arguments to pass to the function.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object." + } + }, + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "function_call" + } + }, + "required": [ + "arguments", + "id", + "name", + "type" + ], + "examples": [ + { + "function_call": { + "summary": "FunctionCallStep", + "value": { + "name": "get_weather", + "type": "function_call", + "arguments": { + "location": "Boston, MA" + }, + "id": "call_98231" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FunctionResultDelta": { + "type": "object", + "properties": { + "result": { + "oneOf": [ + { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ImageContent" + }, + { + "$ref": "#/components/schemas/TextContent" + } + ] + } + }, + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "type": { + "const": "function_result" + }, + "name": { + "type": "string" + }, + "is_error": { + "type": "boolean" + } + }, + "required": [ + "result", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "FunctionResultStep": { + "description": "Result of a function tool call.", + "type": "object", + "properties": { + "result": { + "description": "Required. The result of the tool call.", + "oneOf": [ + { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ImageContent" + }, + { + "$ref": "#/components/schemas/TextContent" + } + ] + } + }, + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "function_result" + }, + "name": { + "description": "The name of the tool that was called.", + "type": "string" + }, + "is_error": { + "description": "Whether the tool call resulted in an error.", + "type": "boolean" + } + }, + "required": [ + "call_id", + "result", + "type" + ], + "examples": [ + { + "function_result": { + "summary": "FunctionResultStep", + "value": { + "name": "get_weather", + "type": "function_result", + "call_id": "call_98231", + "result": [ + { + "type": "text", + "text": "{\"weather\":\"sunny\"}" + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GenerationConfig": { + "description": "Configuration parameters for model interactions.", + "type": "object", + "properties": { + "tool_choice": { + "description": "The tool choice configuration.", + "oneOf": [ + { + "$ref": "#/components/schemas/ToolChoiceConfig" + }, + { + "type": "string", + "enum": [ + "auto", + "any", + "none", + "validated" + ], + "x-google-enum-descriptions": [ + "Auto tool choice.", + "Any tool choice.", + "No tool choice.", + "Validated tool choice." + ], + "x-speakeasy-model-namespace": "interactions" + } + ] + }, + "temperature": { + "description": "Controls the randomness of the output.", + "type": "number", + "deprecated": true, + "format": "float" + }, + "top_p": { + "description": "The maximum cumulative probability of tokens to consider when sampling.", + "type": "number", + "deprecated": true, + "format": "float" + }, + "seed": { + "description": "Seed used in decoding for reproducibility.", + "type": "integer", + "format": "int32" + }, + "stop_sequences": { + "description": "A list of character sequences that will stop output interaction.", + "type": "array", + "items": { + "type": "string" + } + }, + "thinking_level": { + "description": "The level of thought tokens that the model should generate.", + "$ref": "#/components/schemas/ThinkingLevel" + }, + "thinking_summaries": { + "description": "Whether to include thought summaries in the response.", + "$ref": "#/components/schemas/ThinkingSummaries" + }, + "max_output_tokens": { + "description": "The maximum number of tokens to include in the response.", + "type": "integer", + "format": "int32" + }, + "image_config": { + "description": "Configuration for image interaction.", + "$ref": "#/components/schemas/ImageConfig", + "deprecated": true + }, + "video_config": { + "description": "Configuration for video generation.", + "$ref": "#/components/schemas/VideoConfig" + }, + "transcription_config": { + "description": "Optional. Configuration for speech recognition (transcription). If present, ASR is\nenabled.", + "$ref": "#/components/schemas/TranscriptionConfig" + }, + "structured_speech_config": { + "description": "Speech and multi-speaker configuration.", + "oneOf": [ + { + "$ref": "#/components/schemas/SpeakerConfig" + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/SpeechConfig" + } + } + ] + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GetEnvironmentFilesResponse": { + "description": "Response for `GetEnvironmentFiles`.", + "type": "object", + "properties": { + "files": { + "description": "If the requested path is a directory, this contains its contents.\nIf the requested path is a file, this contains a single entry with the\nfile's metadata.\nIf alt=media was specified, this is empty (content is served via `blob`).", + "type": "array", + "items": { + "$ref": "#/components/schemas/EnvironmentFile" + } + }, + "next_page_token": { + "description": "Pagination token for directory listing.\nNOLINT", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMaps": { + "description": "A tool that can be used by the model to call Google Maps.", + "type": "object", + "properties": { + "type": { + "const": "google_maps" + }, + "enable_widget": { + "description": "Whether to return a widget context token in the tool call result of the\nresponse.", + "type": "boolean" + }, + "latitude": { + "description": "The latitude of the user's location.", + "type": "number", + "format": "double" + }, + "longitude": { + "description": "The longitude of the user's location.", + "type": "number", + "format": "double" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "google_maps", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"google_maps\",\n \"latitude\": 37.7749,\n \"longitude\": -122.4194\n }],\n \"input\": \"What is the best food near me?\"\n }'\n" + }, + { + "label": "google_maps", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[\n {\"type\": \"google_maps\", \"latitude\": 37.7749, \"longitude\": -122.4194}\n ],\n input=\"What is the best food near me?\",\n)\nprint(response.output_text)\n" + }, + { + "label": "google_maps", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [\n {\n type: 'google_maps',\n latitude: 37.7749,\n longitude: -122.4194,\n },\n ],\n input: 'What is the best food near me?',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "google_maps", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.GoogleMaps;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nGoogleMaps tool = GoogleMaps.builder().latitude(37.7749).longitude(-122.4194).build();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(tool))\n .input(InteractionsInput.of(\"What is the best food near me?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "google_maps", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n tool := gaos_interactions.NewTool(gaos_interactions.GoogleMaps{\n Latitude: genai.Ptr(37.7749),\n Longitude: genai.Ptr(-122.4194),\n })\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"What is the best food near me?\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "GoogleMapsCallArguments": { + "description": "The arguments to pass to the Google Maps tool.", + "type": "object", + "properties": { + "queries": { + "description": "The queries to be executed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMapsCallDelta": { + "type": "object", + "properties": { + "type": { + "const": "google_maps_call" + }, + "arguments": { + "description": "The arguments to pass to the Google Maps tool.", + "$ref": "#/components/schemas/GoogleMapsCallArguments" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMapsCallStep": { + "description": "Google Maps call step.", + "type": "object", + "properties": { + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "google_maps_call" + }, + "arguments": { + "description": "The arguments to pass to the Google Maps tool.", + "$ref": "#/components/schemas/GoogleMapsCallStepArguments" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "id", + "type" + ], + "examples": [ + { + "google_maps_call": { + "summary": "GoogleMapsCallStep", + "value": { + "type": "google_maps_call", + "arguments": { + "latitude": 37.7749, + "longitude": -122.4194 + }, + "id": "maps_call_39201" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMapsCallStepArguments": { + "description": "The arguments to pass to the Google Maps tool.", + "type": "object", + "properties": { + "queries": { + "description": "The queries to be executed.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "GoogleMapsCallArguments" + }, + "GoogleMapsResult": { + "description": "The result of the Google Maps.", + "type": "object", + "properties": { + "places": { + "description": "The places that were found.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Places" + } + }, + "widget_context_token": { + "description": "Resource name of the Google Maps widget context token.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMapsResultDelta": { + "type": "object", + "properties": { + "type": { + "const": "google_maps_result" + }, + "result": { + "description": "The results of the Google Maps.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GoogleMapsResult" + } + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMapsResultItem": { + "description": "The result of the Google Maps.", + "type": "object", + "properties": { + "places": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoogleMapsResultPlaces" + } + }, + "widget_context_token": { + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "GoogleMapsResult" + }, + "GoogleMapsResultPlaces": { + "type": "object", + "properties": { + "place_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "review_snippets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ReviewSnippet" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleMapsResultStep": { + "description": "Google Maps result step.", + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoogleMapsResultItem" + } + }, + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "google_maps_result" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "call_id", + "result", + "type" + ], + "examples": [ + { + "google_maps_result": { + "summary": "GoogleMapsResultStep", + "value": { + "type": "google_maps_result", + "call_id": "maps_call_39201", + "result": [ + { + "name": "Golden Gate Park", + "place_id": "ChIJIQBpAG2ahYAR9R7bNdTLg8M", + "rating": 4.8 + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleSearch": { + "description": "A tool that can be used by the model to search Google.", + "type": "object", + "properties": { + "type": { + "const": "google_search" + }, + "search_types": { + "description": "The types of search grounding to enable.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "web_search", + "image_search" + ], + "x-google-enum-descriptions": [ + "Setting this field enables web search. Only text results are returned.", + "Setting this field enables image search. Image bytes are returned." + ] + } + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "google_search", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"google_search\"\n }],\n \"input\": \"Who is the current president of France?\"\n }'\n" + }, + { + "label": "google_search", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[{\"type\": \"google_search\"}],\n input=\"Who is the current president of France?\",\n)\nprint(response.output_text)\n" + }, + { + "label": "google_search", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [{type: 'google_search'}],\n input: 'Who is the current president of France?',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "google_search", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.GoogleSearch;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\n\nClient client = new Client();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(new GoogleSearch()))\n .input(InteractionsInput.of(\"Who is the current president of France?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "google_search", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n tool := gaos_interactions.NewTool(gaos_interactions.GoogleSearch{})\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Who is the current president of France?\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "GoogleSearchCallArguments": { + "description": "The arguments to pass to Google Search.", + "type": "object", + "properties": { + "queries": { + "description": "Web search queries for the following-up web search.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleSearchCallDelta": { + "type": "object", + "properties": { + "arguments": { + "$ref": "#/components/schemas/GoogleSearchCallArguments" + }, + "type": { + "const": "google_search_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "arguments", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleSearchCallStep": { + "description": "Google Search call step.", + "type": "object", + "properties": { + "arguments": { + "description": "Required. The arguments to pass to Google Search.", + "$ref": "#/components/schemas/GoogleSearchCallStepArguments" + }, + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "google_search_call" + }, + "search_type": { + "description": "The type of search grounding enabled.", + "type": "string", + "enum": [ + "web_search", + "image_search" + ], + "x-google-enum-descriptions": [ + "Setting this field enables web search. Only text results are returned.", + "Setting this field enables image search. Image bytes are returned." + ] + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "arguments", + "id", + "type" + ], + "examples": [ + { + "google_search_call": { + "summary": "GoogleSearchCallStep", + "value": { + "type": "google_search_call", + "arguments": { + "query": "Who won the men's 100m in Paris 2024?" + }, + "id": "search_call_19201" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleSearchCallStepArguments": { + "description": "The arguments to pass to Google Search.", + "type": "object", + "properties": { + "queries": { + "description": "Web search queries for the following-up web search.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "GoogleSearchCallArguments" + }, + "GoogleSearchResult": { + "description": "The result of the Google Search.", + "type": "object", + "properties": { + "search_suggestions": { + "description": "Web content snippet that can be embedded in a web page or an app webview.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleSearchResultDelta": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GoogleSearchResult" + } + }, + "type": { + "const": "google_search_result" + }, + "is_error": { + "type": "boolean" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "result", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GoogleSearchResultItem": { + "description": "The result of the Google Search.", + "type": "object", + "properties": { + "search_suggestions": { + "description": "Web content snippet that can be embedded in a web page or an app webview.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "GoogleSearchResult" + }, + "GoogleSearchResultStep": { + "description": "Google Search result step.", + "type": "object", + "properties": { + "result": { + "description": "Required. The results of the Google Search.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GoogleSearchResultItem" + } + }, + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "google_search_result" + }, + "is_error": { + "description": "Whether the Google Search resulted in an error.", + "type": "boolean" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "call_id", + "result", + "type" + ], + "examples": [ + { + "google_search_result": { + "summary": "GoogleSearchResultStep", + "value": { + "type": "google_search_result", + "call_id": "search_call_19201", + "result": [ + { + "title": "Paris 2024 Olympics: Noah Lyles wins men's 100m gold", + "url": "https://olympics.com/en/news/paris-2024-noah-lyles-wins-mens-100m-gold", + "snippet": "American Noah Lyles won the Olympic men's 100m gold medal in a photo finish." + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "GroundingToolCount": { + "description": "The number of grounding tool counts.", + "type": "object", + "properties": { + "type": { + "description": "The grounding tool type associated with the count.", + "type": "string", + "enum": [ + "google_search", + "google_maps" + ], + "x-google-enum-descriptions": [ + "Grounding with Google Web Search and Image Search, & Web Grounding\nfor Enterprise.", + "Grounding with Google Maps." + ] + }, + "count": { + "description": "The number of grounding tool counts.", + "type": "integer", + "format": "int32" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "HarmCategory": { + "type": "string", + "enum": [ + "hate_speech", + "dangerous_content", + "harassment", + "sexually_explicit", + "jailbreak" + ], + "x-google-enum-descriptions": [ + "Content that promotes violence or incites hatred against individuals or\ngroups based on certain attributes.", + "Content that promotes, facilitates, or enables dangerous activities.", + "Abusive, threatening, or content intended to bully, torment, or ridicule.", + "Content that contains sexually explicit material.", + "Prompts designed to bypass safety filters." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "HttpBearerConfig": { + "description": "Configuration for HTTP Bearer token credentials.", + "type": "object", + "properties": { + "token": { + "description": "Required. Input only. The static bearer token. Write-only; never returned in responses.", + "type": "string", + "writeOnly": true + }, + "id": { + "type": "string" + }, + "type": { + "const": "bearer_token" + }, + "header_name": { + "description": "Optional. Header name to inject the token into. Defaults to\n'Authorization'.", + "type": "string" + }, + "prefix": { + "description": "Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\nfor no prefix.", + "type": "string" + } + }, + "required": [ + "id", + "token", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "HttpBearerUpdateConfig": { + "description": "Configuration for updating HTTP Bearer token credentials.", + "type": "object", + "properties": { + "type": { + "const": "bearer_token" + }, + "token": { + "description": "Optional. Input only. The static bearer token. Write-only; never returned in responses.", + "type": "string", + "writeOnly": true + }, + "header_name": { + "description": "Optional. Header name to inject the token into. Defaults to\n'Authorization'.", + "type": "string" + }, + "prefix": { + "description": "Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\nfor no prefix.", + "type": "string" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "HttpBody": { + "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n message GetResourceRequest {\n // A unique request id.\n string request_id = 1;\n\n // The raw HTTP body is bound to this field.\n google.api.HttpBody http_body = 2;\n\n }\n\n service ResourceService {\n rpc GetResource(GetResourceRequest)\n returns (google.api.HttpBody);\n rpc UpdateResource(google.api.HttpBody)\n returns (google.protobuf.Empty);\n\n }\n\nExample with streaming methods:\n\n service CaldavService {\n rpc GetCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n rpc UpdateCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n\n }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.", + "type": "object", + "properties": { + "content_type": { + "description": "The HTTP Content-Type header value specifying the content type of the body.", + "type": "string" + }, + "data": { + "description": "The HTTP request/response body as raw binary.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "extensions": { + "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs.", + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL." + } + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ImageConfig": { + "description": "The configuration for image interaction.", + "type": "object", + "properties": { + "aspect_ratio": { + "description": "The aspect ratio of the image to generate. Supported aspect ratios: 1:1,\n2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9.\n\nIf not specified, the model will choose a default aspect ratio based on any\nreference images provided.", + "type": "string" + }, + "image_size": { + "description": "Specifies the size of generated images. Supported values are `1K`, `2K`,\n`4K`. If not specified, the model will use default value `1K`.", + "type": "string" + } + }, + "deprecated": true, + "x-speakeasy-model-namespace": "interactions" + }, + "ImageContent": { + "description": "An image content block.", + "type": "object", + "properties": { + "type": { + "const": "image" + }, + "data": { + "description": "The image content.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "description": "The URI of the image.", + "type": "string" + }, + "resolution": { + "description": "The resolution of the media.", + "$ref": "#/components/schemas/MediaResolution" + }, + "mime_type": { + "description": "The mime type of the image.", + "type": "string", + "enum": [ + "image/png", + "image/jpeg", + "image/webp", + "image/heic", + "image/heif", + "image/gif", + "image/bmp", + "image/tiff" + ], + "x-google-enum-descriptions": [ + "PNG image format", + "JPEG image format", + "WebP image format", + "HEIC image format", + "HEIF image format", + "GIF image format", + "BMP image format", + "TIFF image format" + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "image": { + "summary": "Image", + "value": { + "type": "image", + "data": "BASE64_ENCODED_IMAGE", + "mime_type": "image/png" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ImageDelta": { + "type": "object", + "properties": { + "type": { + "const": "image" + }, + "data": { + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "type": "string" + }, + "mime_type": { + "type": "string", + "enum": [ + "image/png", + "image/jpeg", + "image/webp", + "image/heic", + "image/heif", + "image/gif", + "image/bmp", + "image/tiff" + ], + "x-google-enum-descriptions": [ + "PNG image format", + "JPEG image format", + "WebP image format", + "HEIC image format", + "HEIF image format", + "GIF image format", + "BMP image format", + "TIFF image format" + ] + }, + "resolution": { + "description": "The resolution of the media.", + "$ref": "#/components/schemas/MediaResolution" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ImageResponseFormat": { + "description": "Configuration for image output format.", + "type": "object", + "properties": { + "type": { + "const": "image" + }, + "mime_type": { + "description": "The MIME type of the image output.", + "type": "string", + "enum": [ + "image/jpeg" + ], + "x-google-enum-descriptions": [ + "JPEG image format." + ] + }, + "delivery": { + "description": "The delivery mode for the image output.", + "type": "string", + "enum": [ + "inline", + "uri" + ], + "x-google-enum-descriptions": [ + "Image data is returned inline in the response.", + "Image data is returned as a URI." + ] + }, + "aspect_ratio": { + "description": "The aspect ratio for the image output.", + "type": "string", + "enum": [ + "1:1", + "2:3", + "3:2", + "3:4", + "4:3", + "4:5", + "5:4", + "9:16", + "16:9", + "21:9", + "1:8", + "8:1", + "1:4", + "4:1" + ], + "x-google-enum-descriptions": [ + "1:1 aspect ratio.", + "2:3 aspect ratio.", + "3:2 aspect ratio.", + "3:4 aspect ratio.", + "4:3 aspect ratio.", + "4:5 aspect ratio.", + "5:4 aspect ratio.", + "9:16 aspect ratio.", + "16:9 aspect ratio.", + "21:9 aspect ratio.", + "1:8 aspect ratio.", + "8:1 aspect ratio.", + "1:4 aspect ratio.", + "4:1 aspect ratio." + ] + }, + "image_size": { + "description": "The size of the image output.", + "type": "string", + "enum": [ + "512", + "1K", + "2K", + "4K" + ], + "x-google-enum-descriptions": [ + "512px image size.", + "1K image size.", + "2K image size.", + "4K image size." + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "image_response_format": { + "summary": "Image Output", + "value": { + "type": "image", + "aspect_ratio": "16:9", + "image_size": "1K", + "mime_type": "image/jpeg" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "InjectionLocation": { + "type": "string", + "enum": [ + "header", + "query", + "body" + ], + "x-google-enum-descriptions": [ + "Injected into HTTP request headers.", + "Injected into HTTP URL query parameters.", + "Injected into HTTP request body." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Interaction": { + "description": "The Interaction resource.", + "properties": { + "id": { + "description": "Required. Output only. A unique identifier for the interaction completion.", + "type": "string", + "default": "", + "readOnly": true + }, + "status": { + "description": "Required. Output only. The status of the interaction.", + "type": "string", + "enum": [ + "in_progress", + "requires_action", + "completed", + "failed", + "cancelled", + "incomplete", + "budget_exceeded" + ], + "readOnly": true, + "x-google-enum-deprecated": [ + false, + false, + false, + false, + false, + false, + true + ], + "x-google-enum-descriptions": [ + "The interaction is in progress.", + "The interaction requires action/input from the user.", + "The interaction is completed.", + "The interaction failed.", + "The interaction was cancelled.", + "The interaction is completed, but contains incomplete results (e.g.\nhitting max_tokens).", + "Deprecated: Token and execution budget exhaustion returns INCOMPLETE\n(11)." + ] + }, + "created": { + "description": "Required. Output only. The time at which the response was created in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "updated": { + "description": "Required. Output only. The time at which the response was last updated in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).", + "type": "string", + "readOnly": true + }, + "steps": { + "description": "Required. Output only. The steps that make up the interaction, when included in the response.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Step" + }, + "readOnly": true + }, + "model": { + "description": "The name of the `Model` used for generating the interaction.", + "$ref": "#/components/schemas/ModelOption" + }, + "generation_config": { + "description": "Input only. Configuration parameters for the model interaction.", + "$ref": "#/components/schemas/GenerationConfig", + "writeOnly": true + }, + "input": { + "$ref": "#/components/schemas/InteractionsInput" + }, + "response_format": { + "description": "Enforces that the generated response is a JSON object that complies with\nthe JSON schema specified in this field.", + "oneOf": [ + { + "$ref": "#/components/schemas/ResponseFormat" + }, + { + "title": "ResponseFormatList", + "type": "array", + "items": { + "$ref": "#/components/schemas/ResponseFormat" + } + } + ] + }, + "environment": { + "description": "The environment configuration for the interaction. Can be an object\nspecifying remote environment sources or a string referencing an existing\nenvironment ID.", + "oneOf": [ + { + "$ref": "#/components/schemas/EnvironmentConfig" + }, + { + "type": "string" + } + ] + }, + "system_instruction": { + "description": "System instruction for the interaction.", + "type": "string" + }, + "tools": { + "description": "A list of tool declarations the model may call during interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tool" + } + }, + "usage": { + "description": "Output only. Statistics on the interaction request's token usage.", + "$ref": "#/components/schemas/Usage", + "readOnly": true + }, + "response_modalities": { + "description": "The requested modalities of the response (TEXT, IMAGE, AUDIO).", + "type": "array", + "deprecated": true, + "items": { + "$ref": "#/components/schemas/ResponseModality" + } + }, + "response_mime_type": { + "description": "The mime type of the response. This is required if response_format is set.", + "type": "string", + "deprecated": true + }, + "previous_interaction_id": { + "description": "The ID of the previous interaction, if any.", + "type": "string" + }, + "environment_id": { + "description": "Output only. The environment ID for the interaction. Only populated if environment\nconfig is set in the request.", + "type": "string", + "readOnly": true + }, + "service_tier": { + "description": "The service tier for the interaction.", + "$ref": "#/components/schemas/ServiceTier" + }, + "webhook_config": { + "description": "Optional. Webhook configuration for receiving notifications when the\ninteraction completes.", + "$ref": "#/components/schemas/WebhookConfig" + }, + "safety_settings": { + "description": "Safety settings for the interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SafetySetting" + } + }, + "labels": { + "description": "The labels with user-defined metadata for the request.\n\nLabel keys and values can be no longer than 63 characters\n(Unicode codepoints) and can only contain lowercase letters, numeric\ncharacters, underscores, and dashes. International characters are allowed.\nLabel values are optional. Label keys must start with a letter.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "errors": { + "description": "Output only. Diagnostic faults / platform errors recorded on the interaction.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Error" + }, + "readOnly": true + }, + "stream": { + "description": "Input only. Whether the interaction will be streamed.", + "type": "boolean", + "writeOnly": true + }, + "store": { + "description": "Input only. Whether to store the response and request for later retrieval.", + "type": "boolean", + "writeOnly": true + }, + "background": { + "description": "Input only. Whether to run the model interaction in the background.", + "type": "boolean", + "writeOnly": true + }, + "agent": { + "description": "The name of the `Agent` used for generating the interaction.", + "$ref": "#/components/schemas/AgentOption" + }, + "agent_config": { + "description": "Configuration parameters for the agent interaction.", + "oneOf": [ + { + "$ref": "#/components/schemas/AntigravityAgentConfig" + }, + { + "$ref": "#/components/schemas/DeepResearchAgentConfig" + }, + { + "$ref": "#/components/schemas/DynamicAgentConfig" + } + ] + }, + "max_total_tokens": { + "description": "Max total tokens for the agent run.", + "type": "string", + "format": "int64" + } + }, + "required": [ + "status", + "created", + "id", + "steps", + "updated" + ], + "example": { + "created": "2025-12-04T15:01:45Z", + "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", + "model": "gemini-3.6-flash", + "object": "interaction", + "status": "completed", + "steps": [ + { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "Hello! I'm doing well, functioning as expected. Thank you for asking! How are you doing today?" + } + ] + } + ], + "updated": "2025-12-04T15:01:45Z", + "usage": { + "input_tokens_by_modality": [ + { + "modality": "text", + "tokens": 7 + } + ], + "total_cached_tokens": 0, + "total_input_tokens": 7, + "total_output_tokens": 23, + "total_thought_tokens": 49, + "total_tokens": 79, + "total_tool_use_tokens": 0 + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "InteractionCompletedEvent": { + "description": "Signals that the Interaction completed. Sent when the Interaction receives\nComplete/Cancel or naturally terminates. No more input can be sent to the\nInteraction after this.", + "type": "object", + "properties": { + "interaction": { + "description": "Required. Partial completed interaction resource emitted at the end of the stream.", + "$ref": "#/components/schemas/InteractionSseEventInteraction" + }, + "event_type": { + "const": "interaction.completed" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + } + }, + "required": [ + "event_type", + "interaction" + ], + "examples": [ + { + "interaction_completed": { + "summary": "Interaction Completed", + "value": { + "event_id": "evt_123", + "event_type": "interaction.completed", + "interaction": { + "created": "2025-12-04T15:01:45Z", + "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", + "model": "gemini-3.6-flash", + "status": "completed", + "updated": "2025-12-04T15:01:45Z" + } + } + } + }, + { + "interaction_completed": { + "summary": "Interaction Completed", + "value": { + "event_id": "evt_123", + "event_type": "interaction.completed", + "interaction": { + "created": "2025-12-04T15:01:45Z", + "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", + "model": "gemini-3-flash-preview", + "object": "interaction", + "status": "completed", + "updated": "2025-12-04T15:01:45Z" + } + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "InteractionCreatedEvent": { + "description": "Server response confirming that a new interaction was created.", + "type": "object", + "properties": { + "interaction": { + "description": "Required. Partial interaction resource emitted when the stream is created.", + "$ref": "#/components/schemas/InteractionSseEventInteraction" + }, + "event_type": { + "const": "interaction.created" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + } + }, + "required": [ + "event_type", + "interaction" + ], + "examples": [ + { + "interaction_created": { + "summary": "Interaction Created", + "value": { + "event_id": "evt_123", + "event_type": "interaction.created", + "interaction": { + "created": "2025-12-04T15:01:45Z", + "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", + "model": "gemini-3.6-flash", + "status": "in_progress", + "updated": "2025-12-04T15:01:45Z" + } + } + } + }, + { + "interaction_created": { + "summary": "Interaction Created", + "value": { + "event_id": "evt_123", + "event_type": "interaction.created", + "interaction": { + "id": "v1_ChdXS0l4YWZXTk9xbk0xZThQczhEcmlROBIXV0tJeGFmV05PcW5NMWU4UHM4RHJpUTg", + "model": "gemini-3-flash-preview", + "object": "interaction", + "status": "in_progress" + } + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "InteractionSseEvent": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ErrorEvent" + }, + { + "$ref": "#/components/schemas/InteractionCompletedEvent" + }, + { + "$ref": "#/components/schemas/InteractionCreatedEvent" + }, + { + "$ref": "#/components/schemas/InteractionStatusUpdate" + }, + { + "$ref": "#/components/schemas/StepDelta" + }, + { + "$ref": "#/components/schemas/StepStart" + }, + { + "$ref": "#/components/schemas/StepStop" + } + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "InteractionSSEEvent" + }, + "InteractionSseEventInteraction": { + "description": "Partial interaction resource emitted by interaction lifecycle SSE events.\nStreaming lifecycle payloads may omit fields that are only available on\nfull non-streaming Interaction responses.\n", + "type": "object", + "properties": { + "id": { + "description": "Required. Output only. A unique identifier for the interaction completion.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Required. Output only. The status of the interaction.", + "type": "string", + "enum": [ + "in_progress", + "requires_action", + "completed", + "failed", + "cancelled", + "incomplete" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "The interaction is in progress.", + "The interaction requires action/input from the user.", + "The interaction is completed.", + "The interaction failed.", + "The interaction was cancelled.", + "The interaction is completed, but contains incomplete results (e.g. hitting max_tokens)." + ] + }, + "model": { + "description": "The model that will complete your prompt.", + "type": "string" + }, + "created": { + "description": "Output only. The time at which the response was created in ISO 8601 format.", + "type": "string", + "readOnly": true + }, + "updated": { + "description": "Output only. The time at which the response was last updated in ISO 8601 format.", + "type": "string", + "readOnly": true + }, + "usage": { + "description": "Output only. Statistics on the interaction request's token usage.", + "$ref": "#/components/schemas/Usage", + "readOnly": true + }, + "service_tier": { + "description": "The service tier for the interaction.", + "$ref": "#/components/schemas/ServiceTier" + }, + "steps": { + "description": "Output only. The steps that make up the interaction, if included in this event.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Step" + }, + "readOnly": true + }, + "agent": { + "description": "The agent to interact with.", + "type": "string" + }, + "continuation_token": { + "description": "Opaque token to resume a long decode.\nOutput: set when status is INCOMPLETE and decoding can be resumed.\nInput: pass the latest token back unchanged in CreateInteraction to\ncontinue decoding.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "object": { + "description": "Output only. The resource type.", + "type": "string", + "readOnly": true + } + }, + "required": [ + "id", + "status" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "InteractionSseStreamEvent": { + "type": "object", + "properties": { + "data": { + "$ref": "#/components/schemas/InteractionSseEvent" + } + }, + "required": [ + "data" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "InteractionSSEStreamEvent" + }, + "InteractionStatusUpdate": { + "type": "object", + "properties": { + "interaction_id": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "requires_action", + "completed", + "failed", + "cancelled", + "incomplete", + "budget_exceeded" + ], + "x-google-enum-deprecated": [ + false, + false, + false, + false, + false, + false, + true + ], + "x-google-enum-descriptions": [ + "The interaction is in progress.", + "The interaction requires action/input from the user.", + "The interaction is completed.", + "The interaction failed.", + "The interaction was cancelled.", + "The interaction is completed, but contains incomplete results (e.g.\nhitting max_tokens).", + "Deprecated: Token and execution budget exhaustion returns INCOMPLETE\n(11)." + ] + }, + "event_type": { + "const": "interaction.status_update" + }, + "continuation_token": { + "description": "An optional opaque continuation token used to resume decoding from the\nlatest checkpoint after a disconnected stream.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "usage": { + "description": "Model usage statistics up to this checkpoint.", + "$ref": "#/components/schemas/Usage" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + } + }, + "required": [ + "event_type", + "interaction_id", + "status" + ], + "examples": [ + { + "interaction_status_update": { + "summary": "Interaction Status Update", + "value": { + "event_type": "interaction.status_update", + "interaction_id": "v1_ChdTMjQ0YWJ5TUF1TzcxZThQdjRpcnFRcxIXUzI0NGFieU1BdU83MWU4UHY0aXJxUXM", + "status": "in_progress" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "InteractionsInput": { + "description": "The input for the interaction.", + "oneOf": [ + { + "$ref": "#/components/schemas/Content" + }, + { + "title": "StepList", + "type": "array", + "items": { + "$ref": "#/components/schemas/Step" + } + }, + { + "title": "ContentList", + "type": "array", + "items": { + "$ref": "#/components/schemas/Content" + } + }, + { + "type": "string" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ListAgentsResponse": { + "type": "object", + "properties": { + "agents": { + "description": "The list of agents.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Agent" + } + }, + "next_page_token": { + "description": "A token to retrieve the next page of results.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ListCredentialsResponse": { + "type": "object", + "properties": { + "credentials": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Credential" + } + }, + "next_page_token": { + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ListEnvironmentsResponse": { + "description": "Response for `ListEnvironments`.", + "type": "object", + "properties": { + "environments": { + "description": "Environments belonging to the provided project.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Environment" + } + }, + "next_page_token": { + "description": "Pagination token.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ListTriggerExecutionsResponse": { + "description": "Response message for TriggerService.ListTriggerExecutions.", + "type": "object", + "properties": { + "trigger_executions": { + "description": "The list of trigger executions.", + "type": "array", + "items": { + "$ref": "#/components/schemas/TriggerExecution" + } + }, + "next_page_token": { + "description": "A page token, received from a previous `ListTriggerExecutions` call.\nProvide this to retrieve the subsequent page.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ListTriggersResponse": { + "description": "Response message for TriggerService.ListTriggers.", + "type": "object", + "properties": { + "triggers": { + "description": "The list of triggers.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Trigger" + } + }, + "next_page_token": { + "description": "A page token, received from a previous `ListTriggers` call.\nProvide this to retrieve the subsequent page.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ListVoicesResponse": { + "description": "Response message for `VoicesService.ListVoices`.", + "type": "object", + "properties": { + "voices": { + "description": "The voices from the specified collection.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Voice" + } + }, + "next_page_token": { + "description": "A token that can be sent as `page_token` to retrieve the next page.\nIf empty, there are no subsequent pages.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ListWebhooksResponse": { + "description": "Response message for WebhookService.ListWebhooks.", + "type": "object", + "properties": { + "webhooks": { + "description": "The webhooks.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Webhook" + } + }, + "next_page_token": { + "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "McpServer": { + "description": "A MCPServer is a server that can be called by the model to perform actions.", + "type": "object", + "properties": { + "type": { + "const": "mcp_server" + }, + "url": { + "description": "The full URL for the MCPServer endpoint.\nExample: \"https://api.example.com/mcp\"", + "type": "string" + }, + "name": { + "description": "The name of the MCPServer.", + "type": "string" + }, + "headers": { + "description": "Optional: Fields for authentication headers, timeouts, etc., if needed.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "allowed_tools": { + "description": "The allowed tools.", + "type": "array", + "items": { + "$ref": "#/components/schemas/AllowedTools" + } + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-codeSamples": [ + { + "label": "mcp_server", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"mcp_server\",\n \"name\": \"weather_service\",\n \"url\": \"https://gemini-api-demos.uc.r.appspot.com/mcp\"\n }],\n \"input\": \"Today is 12-05-2025, what is the temperature today in London?\"\n }'\n" + }, + { + "label": "mcp_server", + "lang": "python", + "source": "import os\n\nfrom google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[{\n \"type\": \"mcp_server\",\n \"name\": \"weather_service\",\n \"url\": \"https://gemini-api-demos.uc.r.appspot.com/mcp\",\n }],\n input=\"Today is 12-05-2025, what is the temperature today in London?\",\n)\nprint(response.output_text)\n" + }, + { + "label": "mcp_server", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [\n {\n type: 'mcp_server',\n name: 'weather_service',\n url: 'https://gemini-api-demos.uc.r.appspot.com/mcp',\n },\n ],\n input: 'Today is 12-05-2025, what is the temperature today in London?',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "mcp_server", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.MCPServer;\n\nClient client = new Client();\nMCPServer mcpTool =\n MCPServer.builder()\n .name(\"weather_service\")\n .url(\"https://gemini-api-demos.uc.r.appspot.com/mcp\")\n .build();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(mcpTool))\n .input(\n InteractionsInput.of(\n \"Today is 12-05-2025, what is the temperature today in London?\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "mcp_server", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"os\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n mcpServer := gaos_interactions.MCPServer{\n Name: genai.Ptr(\"weather_service\"),\n URL: genai.Ptr(\"https://gemini-api-demos.uc.r.appspot.com/mcp\"),\n }\n tool := gaos_interactions.NewTool(mcpServer)\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Today is 12-05-2025, what is the temperature today in London?\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "McpServerToolCallDelta": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "server_name": { + "type": "string" + }, + "arguments": { + "type": "object", + "additionalProperties": { + "description": "Properties of the object." + } + }, + "type": { + "const": "mcp_server_tool_call" + } + }, + "required": [ + "arguments", + "name", + "server_name", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "McpServerToolCallStep": { + "description": "MCPServer tool call step.", + "type": "object", + "properties": { + "name": { + "description": "Required. The name of the tool which was called.", + "type": "string" + }, + "server_name": { + "description": "Required. The name of the used MCP server.", + "type": "string" + }, + "arguments": { + "description": "Required. The JSON object of arguments for the function.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object." + } + }, + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "mcp_server_tool_call" + } + }, + "required": [ + "arguments", + "id", + "name", + "server_name", + "type" + ], + "examples": [ + { + "mcp_server_tool_call": { + "summary": "McpServerToolCallStep", + "value": { + "name": "calculate_tax", + "type": "mcp_server_tool_call", + "arguments": { + "income": 120000, + "state": "CA" + }, + "id": "mcp_call_29012", + "server_name": "financial_mcp_server" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "McpServerToolResultDelta": { + "type": "object", + "properties": { + "result": { + "oneOf": [ + { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ImageContent" + }, + { + "$ref": "#/components/schemas/TextContent" + } + ] + } + }, + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "type": { + "const": "mcp_server_tool_result" + }, + "name": { + "type": "string" + }, + "server_name": { + "type": "string" + } + }, + "required": [ + "result", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "McpServerToolResultStep": { + "description": "MCPServer tool result step.", + "type": "object", + "properties": { + "result": { + "description": "Required. The output from the MCP server call. Can be simple text or rich content.", + "oneOf": [ + { + "type": "array", + "items": { + "oneOf": [ + { + "$ref": "#/components/schemas/ImageContent" + }, + { + "$ref": "#/components/schemas/TextContent" + } + ] + } + }, + { + "type": "object" + }, + { + "type": "string" + } + ] + }, + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "mcp_server_tool_result" + }, + "name": { + "description": "Name of the tool which is called for this specific tool call.", + "type": "string" + }, + "server_name": { + "description": "The name of the used MCP server.", + "type": "string" + } + }, + "required": [ + "call_id", + "result", + "type" + ], + "examples": [ + { + "mcp_server_tool_result": { + "summary": "McpServerToolResultStep", + "value": { + "name": "calculate_tax", + "type": "mcp_server_tool_result", + "call_id": "mcp_call_29012", + "result": { + "tax_due": 32400 + }, + "server_name": "financial_mcp_server" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "MediaProcessing": { + "oneOf": [ + { + "$ref": "#/components/schemas/StaticMediaProcessing" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "MediaResolution": { + "type": "string", + "enum": [ + "low", + "medium", + "high", + "ultra_high" + ], + "x-google-enum-descriptions": [ + "Low resolution.", + "Medium resolution.", + "High resolution.", + "Ultra high resolution." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ModalityTokens": { + "description": "The token count for a single response modality.", + "type": "object", + "properties": { + "modality": { + "description": "The modality associated with the token count.", + "$ref": "#/components/schemas/ResponseModality" + }, + "tokens": { + "description": "Number of tokens for the modality.", + "type": "integer", + "format": "int32" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ModelOption": { + "title": "Model", + "description": "The model that will complete your prompt.\\n\\nSee [models](https://ai.google.dev/gemini-api/docs/models) for additional details.", + "type": "string", + "enum": [ + "gemma-4-26b-a4b-it", + "gemma-4-31b-it", + "gemini-flash-latest", + "gemini-flash-lite-latest", + "gemini-pro-latest", + "gemini-2.5-flash", + "gemini-2.5-pro", + "gemini-2.5-flash-lite", + "gemini-3.5-flash-lite", + "gemini-2.5-flash-image", + "gemini-3-flash-preview", + "gemini-3.1-pro-preview", + "gemini-3.1-pro-preview-customtools", + "gemini-3.1-flash-lite", + "gemini-3.1-flash-lite-image", + "gemini-3-pro-image", + "nano-banana-pro-preview", + "gemini-3.1-flash-image", + "gemini-nano-banana-2.1", + "gemini-3.1-flash-tts-preview", + "gemini-3.5-flash", + "gemini-3.6-flash", + "gemini-3.7-flash", + "gemini-3.8-flash", + "gemini-3.8-flash-tts", + "gemini-3.8-flash-lite-tts", + "lyria-3-clip-preview", + "lyria-3-pro-preview", + "gemini-robotics-er-1.6-preview", + "gemini-robotics-er-2-preview", + "lyria-3.5", + "gemini-omni-1.1-flash", + "gemini-omni-flash-preview" + ], + "x-speakeasy-enum-descriptions": [ + "Gemma 4 26B A4B IT", + "Gemma 4 31B IT", + "Latest release of Gemini Flash", + "Latest release of Gemini Flash-Lite", + "Latest release of Gemini Pro", + "Our first hybrid reasoning model which supports a 1M token context window and has thinking budgets.", + "Our state-of-the-art multipurpose model, which excels at coding and complex reasoning tasks.", + "Our smallest and most cost effective model, built for at scale usage.", + "Gemini 3.5 Flash-Lite - Our fastest, most cost-effective 3.5 model for high-throughput execution.", + "Our native image generation model, optimized for speed, flexibility, and contextual understanding. Text input and output is priced the same as 2.5 Flash.", + "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.", + "Our latest SOTA reasoning model with unprecedented depth and nuance, and powerful multimodal understanding and coding capabilities.", + "Gemini 3.1 Pro Preview optimized for custom tool usage", + "Our most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.", + "Gemini 3.1 Flash Lite Image.", + "Gemini 3 Pro Image", + "Gemini 3 Pro Image Preview", + "Gemini 3.1 Flash Image.", + "Gemini Nano Banana 2.1.", + "Gemini 3.1 Flash TTS: Powerful, low-latency speech generation. Enjoy natural outputs, steerable prompts, and new expressive audio tags for precise narration control.", + "Gemini 3.5 Flash - Our earlier Flash model, built for speed and foundational performance across routine, high-throughput workloads.", + "Gemini 3.6 Flash - Our previous generation Flash model, balancing speed and multimodal capabilities across general agentic and everyday tasks.", + "Gemini 3.7 Flash - Our high-speed, efficient Flash model built for everyday coding, agentic tool use, and reliable multi-step execution.", + "Gemini 3.8 Flash - Our most intelligent Flash model, engineered for long-horizon software engineering, autonomous agents, and complex enterprise workflows.", + "Gemini 3.8 Flash TTS - Flagship TTS model for Voice Design and dual-speaker screenplay control. Prompt custom vocal personas, direct line-by-line delivery, and add vocal bursts.", + "Gemini 3.8 Flash Lite TTS - High-speed and cost-efficient, ideal for rapid dubbing, media localization, and high-throughput voice agents. Direct replacement for gemini-3.1-flash-tts-preview.", + "Our low-latency, music generation model optimized for high-fidelity audio clips and precise rhythmic control.", + "Our advanced, full-song generative model with deep compositional understanding, optimized for precise structural control and complex transitions across diverse musical styles.", + "Gemini Robotics-ER 1.6 Preview", + "Gemini Robotics Embodied Reasoning 2 Preview", + "Our flagship music generation model, optimized for full-length songs with complex structural coherence.", + "Our high-performance multimodal model designed for fast, conversational video generation, editing, and cinematic control.", + "Preview release of our multimodal model for conversational video generation, editing, and cinematic control." + ], + "x-speakeasy-enum-format": "union", + "x-speakeasy-exports": [ + { + "name": "model", + "group": "interactions" + }, + { + "name": "model_param", + "group": "interactions" + } + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "Model", + "x-speakeasy-unknown-values": "allow" + }, + "ModelOutputStep": { + "description": "Output generated by the model.", + "type": "object", + "properties": { + "type": { + "const": "model_output" + }, + "content": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Content" + } + } + }, + "required": [ + "type" + ], + "examples": [ + { + "model_output": { + "summary": "ModelOutputStep", + "value": { + "type": "model_output", + "content": [ + { + "type": "text", + "text": "The capital of France is Paris." + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "OAuth2Config": { + "description": "Configuration for OAuth2 credentials with automatic token refresh.", + "type": "object", + "properties": { + "client_id": { + "description": "Required. OAuth2 client ID.", + "type": "string" + }, + "client_secret": { + "description": "Required. Input only. OAuth2 client secret. Write-only; never returned in responses.", + "type": "string", + "writeOnly": true + }, + "refresh_token": { + "description": "Required. Input only. OAuth2 refresh token. Write-only; never returned in responses.", + "type": "string", + "writeOnly": true + }, + "token_url": { + "description": "Required. OAuth2 token endpoint URL for refreshing access tokens.", + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "const": "oauth2" + }, + "scopes": { + "description": "Optional. List of OAuth2 scopes.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "client_id", + "client_secret", + "id", + "refresh_token", + "token_url", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "OAuth2UpdateConfig": { + "description": "Configuration for updating OAuth2 credentials.", + "type": "object", + "properties": { + "type": { + "const": "oauth2" + }, + "client_id": { + "description": "Optional. OAuth2 client ID.", + "type": "string" + }, + "client_secret": { + "description": "Optional. Input only. OAuth2 client secret. Write-only; never returned in responses.", + "type": "string", + "writeOnly": true + }, + "refresh_token": { + "description": "Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses.", + "type": "string", + "writeOnly": true + }, + "token_url": { + "description": "Optional. OAuth2 token endpoint URL for refreshing access tokens.", + "type": "string" + }, + "scopes": { + "description": "Optional. List of OAuth2 scopes.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "PingWebhookRequest": { + "description": "Request message for WebhookService.PingWebhook.", + "type": "object", + "properties": { + "id": { + "description": "Required. The ID of the webhook to ping.\nFormat: `{webhook_id}`", + "type": "string" + } + }, + "required": [ + "id" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "PingWebhookResponse": { + "description": "Response message for WebhookService.PingWebhook.", + "type": "object", + "x-speakeasy-model-namespace": "interactions" + }, + "Pitch": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ], + "x-google-enum-descriptions": [ + "Lower pitch voice.", + "Medium pitch voice.", + "Higher pitch voice." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "PlaceCitation": { + "description": "A place citation annotation.", + "type": "object", + "properties": { + "type": { + "const": "place_citation" + }, + "place_id": { + "description": "The ID of the place, in `places/{place_id}` format.", + "type": "string" + }, + "name": { + "description": "Title of the place.", + "type": "string" + }, + "url": { + "description": "URI reference of the place.", + "type": "string" + }, + "review_snippets": { + "description": "Snippets of reviews that are used to generate answers about the\nfeatures of a given place in Google Maps.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ReviewSnippet" + } + }, + "start_index": { + "description": "Start of segment of the response that is attributed to this source.\n\nIndex indicates the start of the segment, measured in bytes.", + "type": "integer", + "format": "int32" + }, + "end_index": { + "description": "End of the attributed segment, exclusive.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Places": { + "type": "object", + "properties": { + "place_id": { + "description": "The ID of the place, in `places/{place_id}` format.", + "type": "string" + }, + "name": { + "description": "Title of the place.", + "type": "string" + }, + "url": { + "description": "URI reference of the place.", + "type": "string" + }, + "review_snippets": { + "description": "Snippets of reviews that are used to generate answers about the\nfeatures of a given place in Google Maps.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ReviewSnippet" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "ProcessingCallDelta": { + "description": "Streaming delta for a server-initiated media processing step.", + "type": "object", + "properties": { + "type": { + "const": "processing_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ProcessingCallStep": { + "description": "A server-initiated processing step for media analysis (e.g. video\nunderstanding).", + "type": "object", + "properties": { + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "processing_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "id", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ProcessingResultDelta": { + "description": "Streaming delta for the result of a server-initiated media processing step.", + "type": "object", + "properties": { + "type": { + "const": "processing_result" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ProcessingResultStep": { + "description": "The result of a server-initiated media processing step.", + "type": "object", + "properties": { + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "processing_result" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "call_id", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "PromptedVoice": { + "description": "Parameters for prompted voice generation.\nRequired in `CreateVoice` when `type` is `\"prompted\"`. Returned in\n`CreateVoice`, `GetVoice`, and `ListVoices` responses for prompted voices.", + "type": "object", + "properties": { + "input": { + "description": "Required. The natural-language prompt describing the desired voice, e.g.\n\"A deep, booming male voice of a massive evil ogre in his middle years.\"", + "type": "string" + }, + "base_voice": { + "description": "Optional. The name or ID of an existing base voice to edit or remix.\nUse the voice name for prebuilt voices (e.g., `Puck`) or the voice ID for\npreviously created voices (e.g., `voice_abc123`). This can be any\nprompted or replicated voice that the user has access to.\nWhen present, `input` describes relative alterations to make to the base\nvoice.", + "type": "string" + } + }, + "required": [ + "input" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ReplicatedVoice": { + "description": "Input only. Parameters for replicated voice generation.\nRequired on input when `type` is `\"replicated\"`. Not returned in\nresponses.", + "type": "object", + "properties": { + "source_audio": { + "description": "Required. The reference audio sample of the speaker's voice to replicate.\nMust be an unmodified recording of an adult human voice.", + "$ref": "#/components/schemas/AudioData" + }, + "consent_audio": { + "description": "Required. Audio recording of the same speaker reading the required\nconsent phrase, confirming authorization to replicate the voice.", + "$ref": "#/components/schemas/AudioData" + } + }, + "required": [ + "consent_audio", + "source_audio" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ResponseFormat": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/AudioResponseFormat" + }, + { + "$ref": "#/components/schemas/ImageResponseFormat" + }, + { + "$ref": "#/components/schemas/TextResponseFormat" + }, + { + "$ref": "#/components/schemas/VideoResponseFormat" + }, + { + "type": "object", + "additionalProperties": true + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ResponseModality": { + "type": "string", + "enum": [ + "text", + "image", + "audio", + "video", + "document" + ], + "x-google-enum-descriptions": [ + "Indicates the model should return text.", + "Indicates the model should return images.", + "Indicates the model should return audio.", + "Indicates the model should return video.", + "Indicates the model should return documents." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ReviewSnippet": { + "description": "Encapsulates a snippet of a user review that answers a question about\nthe features of a specific place in Google Maps.", + "type": "object", + "properties": { + "title": { + "description": "Title of the review.", + "type": "string" + }, + "url": { + "description": "A link that corresponds to the user review on Google Maps.", + "type": "string" + }, + "review_id": { + "description": "The ID of the review snippet.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "RotateSigningSecretRequest": { + "description": "Request message for WebhookService.RotateSigningSecret.", + "type": "object", + "properties": { + "id": { + "description": "Required. The ID of the webhook for which to generate a signing secret.\nFormat: `{webhook_id}`", + "type": "string" + }, + "revocation_behavior": { + "description": "Optional. The revocation behavior for previous signing secrets.", + "type": "string", + "enum": [ + "revoke_previous_secrets_after_h24", + "revoke_previous_secrets_immediately" + ], + "x-google-enum-descriptions": [ + "Generate a new signing secret and revoke all previous secrets after 24\nhours. Default and safest option for migrations.", + "Revoke all previous secrets immediately. Use with caution as this can\ninterrupt ongoing notifications." + ] + } + }, + "required": [ + "id" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "RotateSigningSecretResponse": { + "description": "Response message for WebhookService.RotateSigningSecret.", + "type": "object", + "properties": { + "secret": { + "description": "Output only. The newly generated signing secret.", + "type": "string", + "readOnly": true + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "RunTriggerRequest": { + "description": "Request message for TriggerService.RunTrigger.", + "type": "object", + "properties": { + "id": { + "description": "Required. The ID of the trigger to run immediately.", + "type": "string" + } + }, + "required": [ + "id" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "SafetySetting": { + "description": "A safety setting that affects the safety-blocking behavior.\n\nA SafetySetting consists of a\nharm category and a\nthreshold for that\ncategory.", + "type": "object", + "properties": { + "type": { + "description": "Required. The type of harm category to be blocked.", + "$ref": "#/components/schemas/HarmCategory" + }, + "threshold": { + "description": "Required. The threshold for blocking content. If the harm probability\nexceeds this threshold, the content will be blocked.", + "type": "string", + "enum": [ + "block_low_and_above", + "block_medium_and_above", + "block_only_high", + "off" + ], + "x-google-enum-descriptions": [ + "Block content with a low harm probability or higher.", + "Block content with a medium harm probability or higher.", + "Block content with a high harm probability.", + "Turn off the safety filter entirely." + ] + }, + "method": { + "description": "Optional. The method for blocking content. If not specified, the default\nbehavior is to use the probability score.", + "type": "string", + "enum": [ + "severity", + "probability" + ], + "x-google-enum-descriptions": [ + "The harm block method uses both probability and severity scores.", + "The harm block method uses the probability score." + ] + } + }, + "required": [ + "threshold", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ServiceTier": { + "type": "string", + "enum": [ + "flex", + "standard", + "priority" + ], + "x-google-enum-descriptions": [ + "Flex service tier.", + "Standard service tier.", + "Priority service tier." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "SigningSecret": { + "description": "Represents a signing secret used to verify webhook payloads.", + "type": "object", + "properties": { + "truncated_secret": { + "description": "Output only. The truncated version of the signing secret.", + "type": "string", + "readOnly": true + }, + "expire_time": { + "description": "Output only. The expiration date of the signing secret.", + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "SmartTranscriptionMode": { + "description": "Configuration for smart transcription mode.", + "type": "object", + "properties": { + "type": { + "const": "smart" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Source": { + "description": "A source to be mounted into the environment.", + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "gcs", + "inline", + "repository" + ], + "x-google-enum-descriptions": [ + "A Cloud Storage bucket.", + "Inline content.", + "A generic repository. The protocol prefix in the source URL\nidentifies the provider (e.g., github://, gcs://)." + ] + }, + "source": { + "description": "The source of the environment.\nFor Cloud Storage, this is the Cloud Storage path.\nFor GitHub, this is the GitHub path.", + "type": "string" + }, + "target": { + "description": "Where the source should appear in the environment.", + "type": "string" + }, + "content": { + "description": "The inline content if `type` is `INLINE`.", + "type": "string" + }, + "encoding": { + "description": "Optional encoding for inline content (e.g. `base64`).", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "SpeakerConfig": { + "description": "Configuration for multi-speaker and speech generation.", + "type": "object", + "properties": { + "speakers": { + "description": "Individual speaker configurations.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SpeechConfig" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "SpeechAnnotation": { + "description": "Speech annotation for text content.", + "type": "object", + "properties": { + "type": { + "const": "speech_metadata" + }, + "speaker": { + "description": "The speaker to associate with this turn.", + "type": "string" + }, + "style": { + "description": "Style instruction for the speech synthesis.", + "type": "string" + }, + "start_index": { + "description": "Start of segment of the response that is attributed to this source.\n\nIndex indicates the start of the segment, measured in bytes.", + "type": "integer", + "format": "int32" + }, + "end_index": { + "description": "End of the attributed segment, exclusive.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "SpeechConfig": { + "description": "The configuration for speech interaction.", + "type": "object", + "properties": { + "voice": { + "description": "The voice of the speaker.", + "type": "string" + }, + "language": { + "description": "The language of the speech.", + "type": "string" + }, + "speaker": { + "description": "The speaker's name, it should match the speaker name given in the prompt.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "StaticMediaProcessing": { + "type": "object", + "properties": { + "type": { + "const": "static" + }, + "start_offset": { + "description": "Optional. Segment start time. Specified as a decimal number of seconds followed\nby an 's' suffix, e.g., \"10.5s\". Must be non-negative.", + "type": "string", + "format": "google-duration" + }, + "end_offset": { + "description": "Optional. Segment end time. Specified as a decimal number of seconds followed\nby an 's' suffix, e.g., \"30s\". Must be non-negative and greater than\n`start_offset` if `start_offset` is set.", + "type": "string", + "format": "google-duration" + }, + "fps": { + "description": "Optional. Video frame-rate sampling density.", + "type": "number", + "format": "double" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Step": { + "description": "A step in the interaction.", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/CodeExecutionCallStep" + }, + { + "$ref": "#/components/schemas/CodeExecutionResultStep" + }, + { + "$ref": "#/components/schemas/FileSearchCallStep" + }, + { + "$ref": "#/components/schemas/FileSearchResultStep" + }, + { + "$ref": "#/components/schemas/FunctionCallStep" + }, + { + "$ref": "#/components/schemas/FunctionResultStep" + }, + { + "$ref": "#/components/schemas/GoogleMapsCallStep" + }, + { + "$ref": "#/components/schemas/GoogleMapsResultStep" + }, + { + "$ref": "#/components/schemas/GoogleSearchCallStep" + }, + { + "$ref": "#/components/schemas/GoogleSearchResultStep" + }, + { + "$ref": "#/components/schemas/McpServerToolCallStep" + }, + { + "$ref": "#/components/schemas/McpServerToolResultStep" + }, + { + "$ref": "#/components/schemas/ModelOutputStep" + }, + { + "$ref": "#/components/schemas/ProcessingCallStep" + }, + { + "$ref": "#/components/schemas/ProcessingResultStep" + }, + { + "$ref": "#/components/schemas/ThoughtStep" + }, + { + "$ref": "#/components/schemas/UrlContextCallStep" + }, + { + "$ref": "#/components/schemas/UrlContextResultStep" + }, + { + "$ref": "#/components/schemas/UserInputStep" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "StepDelta": { + "type": "object", + "properties": { + "index": { + "type": "integer", + "format": "int32" + }, + "delta": { + "$ref": "#/components/schemas/StepDeltaData" + }, + "event_type": { + "const": "step.delta" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + }, + "metadata": { + "$ref": "#/components/schemas/StepDeltaMetadata" + } + }, + "required": [ + "delta", + "event_type", + "index" + ], + "examples": [ + { + "step_delta": { + "summary": "Step Delta", + "value": { + "delta": { + "type": "text", + "text": "Hello" + }, + "event_type": "step.delta", + "index": 0 + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "StepDeltaData": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ArgumentsDelta" + }, + { + "$ref": "#/components/schemas/AudioDelta" + }, + { + "$ref": "#/components/schemas/CodeExecutionCallDelta" + }, + { + "$ref": "#/components/schemas/CodeExecutionResultDelta" + }, + { + "$ref": "#/components/schemas/DocumentDelta" + }, + { + "$ref": "#/components/schemas/FileSearchCallDelta" + }, + { + "$ref": "#/components/schemas/FileSearchResultDelta" + }, + { + "$ref": "#/components/schemas/FunctionResultDelta" + }, + { + "$ref": "#/components/schemas/GoogleMapsCallDelta" + }, + { + "$ref": "#/components/schemas/GoogleMapsResultDelta" + }, + { + "$ref": "#/components/schemas/GoogleSearchCallDelta" + }, + { + "$ref": "#/components/schemas/GoogleSearchResultDelta" + }, + { + "$ref": "#/components/schemas/ImageDelta" + }, + { + "$ref": "#/components/schemas/McpServerToolCallDelta" + }, + { + "$ref": "#/components/schemas/McpServerToolResultDelta" + }, + { + "$ref": "#/components/schemas/ProcessingCallDelta" + }, + { + "$ref": "#/components/schemas/ProcessingResultDelta" + }, + { + "$ref": "#/components/schemas/TextAnnotationDelta" + }, + { + "$ref": "#/components/schemas/TextDelta" + }, + { + "$ref": "#/components/schemas/ThoughtSignatureDelta" + }, + { + "$ref": "#/components/schemas/ThoughtSummaryDelta" + }, + { + "$ref": "#/components/schemas/UrlContextCallDelta" + }, + { + "$ref": "#/components/schemas/UrlContextResultDelta" + }, + { + "$ref": "#/components/schemas/VideoDelta" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "StepDeltaMetadata": { + "description": "Optional metadata accompanying ANY streamed event.", + "type": "object", + "properties": { + "total_usage": { + "description": "Statistics on the interaction request's token usage.", + "$ref": "#/components/schemas/Usage" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "StepStart": { + "type": "object", + "properties": { + "index": { + "type": "integer", + "format": "int32" + }, + "step": { + "$ref": "#/components/schemas/Step" + }, + "event_type": { + "const": "step.start" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + } + }, + "required": [ + "event_type", + "index", + "step" + ], + "examples": [ + { + "step_start": { + "summary": "Step Start", + "value": { + "event_type": "step.start", + "index": 0, + "step": { + "type": "model_output" + } + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "StepStop": { + "type": "object", + "properties": { + "index": { + "type": "integer", + "format": "int32" + }, + "event_type": { + "const": "step.stop" + }, + "usage": { + "description": "Cumulative model usage stats from the start of the session.", + "$ref": "#/components/schemas/Usage" + }, + "step_usage": { + "description": "Model usage stats for this specific step.", + "$ref": "#/components/schemas/Usage" + }, + "event_id": { + "description": "The event_id token to be used to resume the interaction stream, from\nthis event.", + "type": "string" + } + }, + "required": [ + "event_type", + "index" + ], + "examples": [ + { + "step_stop": { + "summary": "Step Stop", + "value": { + "event_type": "step.stop", + "index": 0 + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "TextAnnotationDelta": { + "type": "object", + "properties": { + "type": { + "const": "text_annotation_delta" + }, + "annotations": { + "description": "Citation information for model-generated content.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Annotation" + } + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "TextContent": { + "description": "A text content block.", + "type": "object", + "properties": { + "text": { + "description": "Required. The text content.", + "type": "string" + }, + "type": { + "const": "text" + }, + "annotations": { + "description": "Citation information for model-generated content.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Annotation" + } + } + }, + "required": [ + "text", + "type" + ], + "examples": [ + { + "text": { + "summary": "Text", + "value": { + "type": "text", + "text": "Hello, how are you?" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "TextDelta": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "type": { + "const": "text" + } + }, + "required": [ + "text", + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "TextResponseFormat": { + "description": "Configuration for text output format.", + "type": "object", + "properties": { + "type": { + "const": "text" + }, + "mime_type": { + "description": "The MIME type of the text output.", + "type": "string", + "enum": [ + "application/json", + "text/plain" + ], + "x-google-enum-descriptions": [ + "JSON output format.", + "Plain text output format." + ] + }, + "schema": { + "description": "The JSON schema that the output should conform to. Only applicable when\nmime_type is application/json.\n\nSupports a subset of JSON Schema. `minLength`, `maxLength`,\n`minProperties`, `maxProperties`, `uniqueItems`, `contains`,\n`minContains`, and `maxContains` are ignored and not enforced; validate\nthese in your application. `minItems` and `maxItems` are enforced. Schemas\nthat are too complex to enforce (for example, large `maxItems` on nested\narrays) return a 400 INVALID_ARGUMENT error.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object." + } + } + }, + "required": [ + "type" + ], + "examples": [ + { + "text_response_format": { + "summary": "Text Output (JSON Schema)", + "value": { + "type": "text", + "mime_type": "application/json", + "schema": { + "type": "object", + "properties": { + "ingredients": { + "type": "array", + "items": { + "type": "string" + } + }, + "recipe_name": { + "type": "string" + } + }, + "required": [ + "ingredients", + "recipe_name" + ] + } + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ThinkingLevel": { + "type": "string", + "enum": [ + "minimal", + "low", + "medium", + "high" + ], + "x-google-enum-descriptions": [ + "Little to no thinking.", + "Low thinking level.", + "Medium thinking level.", + "High thinking level." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ThinkingSummaries": { + "type": "string", + "enum": [ + "auto", + "none" + ], + "x-google-enum-descriptions": [ + "Auto thinking summaries.", + "No thinking summaries." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ThoughtSignatureDelta": { + "type": "object", + "properties": { + "type": { + "const": "thought_signature" + }, + "signature": { + "description": "Signature to match the backend source to be part of the generation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ThoughtStep": { + "description": "A thought step.", + "type": "object", + "properties": { + "type": { + "const": "thought" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "summary": { + "description": "A summary of the thought.", + "type": "array", + "items": { + "$ref": "#/components/schemas/Content" + } + } + }, + "required": [ + "type" + ], + "examples": [ + { + "thought": { + "summary": "ThoughtStep", + "value": { + "type": "thought", + "signature": "thought_sig_abcd1234", + "summary": [ + { + "type": "text", + "text": "The model is searching Google for the capital of France." + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ThoughtSummaryContent": { + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/ImageContent" + }, + { + "$ref": "#/components/schemas/TextContent" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ThoughtSummaryDelta": { + "type": "object", + "properties": { + "type": { + "const": "thought_summary" + }, + "content": { + "description": "A new summary item to be added to the thought.", + "$ref": "#/components/schemas/Content" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Tool": { + "description": "A tool that can be used by the model.", + "type": "object", + "oneOf": [ + { + "$ref": "#/components/schemas/CodeExecution" + }, + { + "$ref": "#/components/schemas/ComputerUse" + }, + { + "$ref": "#/components/schemas/FileSearch" + }, + { + "$ref": "#/components/schemas/Function" + }, + { + "$ref": "#/components/schemas/GoogleMaps" + }, + { + "$ref": "#/components/schemas/GoogleSearch" + }, + { + "$ref": "#/components/schemas/McpServer" + }, + { + "$ref": "#/components/schemas/UrlContext" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "ToolChoiceConfig": { + "description": "The tool choice configuration containing allowed tools.", + "type": "object", + "properties": { + "allowed_tools": { + "description": "The allowed tools.", + "$ref": "#/components/schemas/AllowedTools" + } + }, + "example": { + "allowed_tools": { + "mode": "any", + "tools": [ + "my_tool" + ] + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "TranscriptionConfig": { + "description": "Configuration for speech recognition (transcription).", + "type": "object", + "properties": { + "mode": { + "description": "Discriminated transcription mode options or enum.", + "oneOf": [ + { + "$ref": "#/components/schemas/TranscriptionMode" + }, + { + "type": "string", + "enum": [ + "verbatim", + "smart" + ], + "x-google-enum-descriptions": [ + "Verbatim transcription mode.", + "Smart transcription mode." + ] + } + ] + }, + "language_codes": { + "description": "Optional. BCP-47 language codes providing hints about the languages present in the\naudio. If omitted or empty, defaults to automatic language detection.", + "type": "array", + "items": { + "type": "string" + } + }, + "custom_vocabulary": { + "description": "Optional. A list of custom vocabulary phrases to bias the speech recognition model\ntoward recognizing specific terms.", + "type": "array", + "items": { + "type": "string" + } + }, + "timestamp_granularities": { + "description": "Optional. The granularity of timestamps to include in the transcription output.\nSupported values: \"word\". If empty, no timestamps are generated.", + "type": "array", + "deprecated": true, + "items": { + "type": "string" + } + }, + "diarization_mode": { + "description": "Optional. Configures speaker diarization. Supported values: \"speaker\".", + "type": "string", + "deprecated": true + }, + "adaptation_phrases": { + "description": "Optional. A list of phrases to bias the ASR model towards.", + "type": "array", + "deprecated": true, + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "TranscriptionMode": { + "description": "Configuration for transcription mode.", + "oneOf": [ + { + "$ref": "#/components/schemas/SmartTranscriptionMode" + }, + { + "$ref": "#/components/schemas/VerbatimTranscriptionMode" + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Trigger": { + "description": "A trigger configuration that is scheduled to run an agent.", + "type": "object", + "properties": { + "schedule": { + "description": "Required. The cron schedule on which the trigger should run.\nStandard cron format.", + "type": "string" + }, + "time_zone": { + "description": "Required. Time zone in which the schedule should be interpreted.", + "type": "string" + }, + "interaction": { + "description": "Required. The interaction request template to be executed.", + "$ref": "#/components/schemas/CreateAgentInteractionParams" + }, + "id": { + "description": "Required. Output only. Identifier. The ID of the trigger.", + "type": "string", + "readOnly": true, + "x-google-identifier": true + }, + "display_name": { + "description": "Optional. The display name of the trigger.", + "type": "string" + }, + "environment_id": { + "description": "Optional. The environment ID for the trigger execution.", + "type": "string" + }, + "max_consecutive_failures": { + "description": "Optional. The maximum number of consecutive failures allowed before\nthe trigger is automatically paused (status becomes ERROR).", + "type": "integer", + "format": "int32" + }, + "execution_timeout_seconds": { + "description": "Optional. The execution timeout for the triggered interaction.", + "type": "integer", + "format": "int32" + }, + "consecutive_failure_count": { + "description": "Output only. The number of consecutive failures that have occurred\nsince the last successful execution.", + "type": "integer", + "format": "int32", + "readOnly": true + }, + "create_time": { + "description": "Output only. The time when the trigger was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "update_time": { + "description": "Output only. The time when the trigger was last updated.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_run_time": { + "description": "Output only. The time when the trigger was last run.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "next_run_time": { + "description": "Output only. The time when the trigger is scheduled to run next.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_pause_time": { + "description": "Output only. The time when the trigger was last paused.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "last_resume_time": { + "description": "Output only. The time when the trigger was last resumed.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "previous_interaction_id": { + "description": "Output only. The ID of the last interaction created by this trigger.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Output only. The current status of the trigger.", + "type": "string", + "enum": [ + "active", + "paused", + "error" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "The trigger is active and will fire on schedule.", + "The trigger is paused and will not fire.", + "The trigger has entered an error state due to consecutive failures." + ] + } + }, + "required": [ + "id", + "interaction", + "schedule", + "time_zone" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "TriggerExecution": { + "description": "An execution instance of a trigger.", + "type": "object", + "properties": { + "id": { + "description": "Required. Output only. Identifier. The ID of the trigger execution.", + "type": "string", + "readOnly": true, + "x-google-identifier": true + }, + "trigger_id": { + "description": "Required. Output only. Identifier. The ID of the trigger that created this execution.", + "type": "string", + "readOnly": true, + "x-google-identifier": true + }, + "scheduled_time": { + "description": "Output only. The time when the execution was scheduled to run.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "start_time": { + "description": "Output only. The time when the execution started.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "end_time": { + "description": "Output only. The time when the execution finished.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "status": { + "description": "Output only. The status of the execution.", + "type": "string", + "enum": [ + "in_progress", + "completed", + "failed", + "skipped", + "timed_out" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "The execution is currently in progress.", + "The execution completed successfully.", + "The execution failed.", + "The execution was skipped (e.g., previous execution still running).", + "The execution timed out." + ] + }, + "interaction_id": { + "description": "Output only. The ID of the interaction created by this execution, if any.", + "type": "string", + "readOnly": true + }, + "environment_id": { + "description": "Output only. The environment ID used for the execution.", + "type": "string", + "readOnly": true + }, + "error": { + "description": "Output only. The error message if the execution failed.", + "type": "string", + "readOnly": true + } + }, + "required": [ + "id", + "trigger_id" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "TriggerUpdate": { + "description": "Represents the fields of a Trigger that can be updated.", + "type": "object", + "properties": { + "status": { + "description": "Optional. The status of the trigger.", + "type": "string", + "enum": [ + "active", + "paused", + "error" + ], + "x-google-enum-descriptions": [ + "The trigger is active and will fire on schedule.", + "The trigger is paused and will not fire.", + "The trigger has entered an error state due to consecutive failures." + ] + }, + "display_name": { + "description": "Optional. The display name of the trigger.", + "type": "string" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "UpdateTriggerRequest": { + "description": "Request message for TriggerService.UpdateTrigger.", + "type": "object", + "properties": { + "trigger": { + "description": "Required. The trigger to update.", + "$ref": "#/components/schemas/TriggerUpdate" + }, + "id": { + "description": "Required. The ID of the trigger to update.", + "type": "string" + }, + "update_mask": { + "description": "Optional. The update mask applies to the resource.", + "type": "string", + "format": "google-fieldmask", + "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$" + } + }, + "required": [ + "id", + "trigger" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "UpdateWebhookRequest": { + "description": "Request message for WebhookService.UpdateWebhook.", + "type": "object", + "properties": { + "webhook": { + "description": "Required. The webhook to update.", + "$ref": "#/components/schemas/WebhookUpdate" + }, + "id": { + "description": "Required. The ID of the webhook to update.", + "type": "string" + }, + "update_mask": { + "description": "Optional. The list of fields to update.", + "type": "string", + "format": "google-fieldmask", + "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$" + } + }, + "required": [ + "id", + "webhook" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "UploadEnvironmentFileRequest": { + "description": "Request for `UploadEnvironmentFile`.", + "type": "object", + "properties": { + "overwrite": { + "description": "Optional. Whether to overwrite the destination file if it already exists.", + "type": "boolean" + }, + "extract": { + "description": "Optional. If true, treats the uploaded file as a tar/tar.gz archive and\nunpacks it into `path`.", + "type": "boolean" + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "UploadEnvironmentFileResponse": { + "description": "Response for `UploadEnvironmentFile`.", + "type": "object", + "properties": { + "files": { + "description": "List of files created or extracted in the environment.", + "type": "array", + "items": { + "$ref": "#/components/schemas/EnvironmentFile" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "UrlCitation": { + "description": "A URL citation annotation.", + "type": "object", + "properties": { + "type": { + "const": "url_citation" + }, + "url": { + "description": "The URL.", + "type": "string" + }, + "title": { + "description": "The title of the URL.", + "type": "string" + }, + "start_index": { + "description": "Start of segment of the response that is attributed to this source.\n\nIndex indicates the start of the segment, measured in bytes.", + "type": "integer", + "format": "int32" + }, + "end_index": { + "description": "End of the attributed segment, exclusive.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLCitation" + }, + "UrlContext": { + "description": "A tool that can be used by the model to fetch URL context.", + "type": "object", + "properties": { + "type": { + "const": "url_context" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContext", + "x-codeSamples": [ + { + "label": "url_context", + "lang": "sh", + "source": "curl -X POST https://generativelanguage.googleapis.com/v1beta/interactions \\\n -H \"x-goog-api-key: $GEMINI_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gemini-flash-latest\",\n \"tools\": [{\n \"type\": \"url_context\"\n }],\n \"input\": \"Summarize https://www.example.com\"\n }'\n" + }, + { + "label": "url_context", + "lang": "python", + "source": "from google import genai\n\nclient = genai.Client()\nresponse = client.interactions.create(\n model=\"gemini-flash-latest\",\n tools=[{\"type\": \"url_context\"}],\n input=\"Summarize https://www.example.com\",\n)\nprint(response.output_text)\n" + }, + { + "label": "url_context", + "lang": "javascript", + "source": "import {GoogleGenAI} from '@google/genai';\n\nconst ai = new GoogleGenAI({});\nconst interaction = await ai.interactions.create({\n model: 'gemini-flash-latest',\n tools: [{type: 'url_context'}],\n input: 'Summarize https://www.example.com',\n});\nconsole.log(interaction.output_text);\n" + }, + { + "label": "url_context", + "lang": "java", + "source": "import com.google.genai.Client;\nimport com.google.genai.gaos.models.operations.CreateInteractionRequestBody;\nimport com.google.genai.gaos.models.operations.CreateInteractionResponse;\nimport com.google.genai.gaos.models.interactions.CreateModelInteraction;\nimport com.google.genai.gaos.models.interactions.Interaction;\nimport com.google.genai.gaos.models.interactions.InteractionsInput;\nimport com.google.genai.gaos.models.interactions.URLContext;\n\nClient client = new Client();\nCreateModelInteraction params =\n CreateModelInteraction.builder()\n .model(\"gemini-flash-latest\")\n .tools(List.of(new URLContext()))\n .input(InteractionsInput.of(\"Summarize https://www.example.com\"))\n .build();\nCreateInteractionResponse response =\n client.interactions.create(CreateInteractionRequestBody.of(params));\nInteraction interaction =\n response.interaction().orElseThrow(() -> new RuntimeException(\"No interaction returned\"));\nSystem.out.println(interaction.outputText().orElse(\"\"));\n" + }, + { + "label": "url_context", + "lang": "go", + "source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n gaos_interactions \"google.golang.org/genai/interactions/models/interactions\"\n \"google.golang.org/genai/interactions/models/operations\"\n)\n\nfunc main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, nil)\n if err != nil {\n log.Fatal(err)\n }\n\n tool := gaos_interactions.NewTool(gaos_interactions.URLContext{})\n\n body := operations.NewCreateInteractionRequestBody(gaos_interactions.CreateModelInteraction{\n Model: gaos_interactions.Model(\"gemini-flash-latest\"),\n Input: genai.Ptr(gaos_interactions.NewInteractionsInput(\"Summarize https://www.example.com\")),\n Tools: []gaos_interactions.Tool{tool},\n })\n\n req := operations.CreateInteractionRequest{\n Body: body,\n }\n\n res, err := client.Interactions.Create(ctx, req)\n if err != nil {\n log.Fatal(err)\n }\n\n if res.Interaction != nil && res.Interaction.OutputText != nil {\n fmt.Println(*res.Interaction.OutputText)\n }\n}\n" + } + ] + }, + "UrlContextCallArguments": { + "description": "The arguments to pass to the URL context.", + "type": "object", + "properties": { + "urls": { + "description": "The URLs to fetch.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContextCallArguments" + }, + "UrlContextCallDelta": { + "type": "object", + "properties": { + "arguments": { + "$ref": "#/components/schemas/UrlContextCallArguments" + }, + "type": { + "const": "url_context_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "arguments", + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContextCallDelta" + }, + "UrlContextCallStep": { + "description": "URL context call step.", + "type": "object", + "properties": { + "arguments": { + "description": "Required. The arguments to pass to the URL context.", + "$ref": "#/components/schemas/UrlContextCallArguments" + }, + "id": { + "description": "Required. A unique ID for this specific tool call.", + "type": "string" + }, + "type": { + "const": "url_context_call" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "arguments", + "id", + "type" + ], + "examples": [ + { + "url_context_call": { + "summary": "UrlContextCallStep", + "value": { + "type": "url_context_call", + "arguments": { + "urls": [ + "https://www.example.com" + ] + }, + "id": "url_call_10219" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContextCallStep" + }, + "UrlContextResult": { + "description": "The result of the URL context.", + "type": "object", + "properties": { + "url": { + "description": "The URL that was fetched.", + "type": "string" + }, + "status": { + "description": "The status of the URL retrieval.", + "type": "string", + "enum": [ + "success", + "error", + "paywall", + "unsafe" + ], + "x-google-enum-descriptions": [ + "Url retrieval is successful.", + "Url retrieval is failed due to error.", + "Url retrieval is failed because the content is behind paywall.", + "Url retrieval is failed because the content is unsafe." + ] + } + }, + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContextResult" + }, + "UrlContextResultDelta": { + "type": "object", + "properties": { + "result": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UrlContextResult" + } + }, + "type": { + "const": "url_context_result" + }, + "is_error": { + "type": "boolean" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "result", + "type" + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContextResultDelta" + }, + "UrlContextResultStep": { + "description": "URL context result step.", + "type": "object", + "properties": { + "result": { + "description": "Required. The results of the URL context.", + "type": "array", + "items": { + "$ref": "#/components/schemas/UrlContextResult" + } + }, + "call_id": { + "description": "Required. ID to match the ID from the function call block.", + "type": "string" + }, + "type": { + "const": "url_context_result" + }, + "is_error": { + "description": "Whether the URL context resulted in an error.", + "type": "boolean" + }, + "signature": { + "description": "A signature hash for backend validation.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + } + }, + "required": [ + "call_id", + "result", + "type" + ], + "examples": [ + { + "url_context_result": { + "summary": "UrlContextResultStep", + "value": { + "type": "url_context_result", + "call_id": "url_call_10219", + "result": [ + { + "title": "Example Domain", + "url": "https://www.example.com", + "snippet": "This domain is for use in illustrative examples in documents." + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions", + "x-speakeasy-name-override": "URLContextResultStep" + }, + "Usage": { + "description": "Statistics on the interaction request's token usage.", + "type": "object", + "properties": { + "total_input_tokens": { + "description": "Number of tokens in the prompt (context).", + "type": "integer", + "format": "int32" + }, + "input_tokens_by_modality": { + "description": "A breakdown of input token usage by modality.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModalityTokens" + } + }, + "total_cached_tokens": { + "description": "Number of tokens in the cached part of the prompt (the cached content).", + "type": "integer", + "format": "int32" + }, + "cached_tokens_by_modality": { + "description": "A breakdown of cached token usage by modality.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModalityTokens" + } + }, + "total_output_tokens": { + "description": "Total number of tokens across all the generated responses.", + "type": "integer", + "format": "int32" + }, + "output_tokens_by_modality": { + "description": "A breakdown of output token usage by modality.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModalityTokens" + } + }, + "total_tool_use_tokens": { + "description": "Number of tokens present in tool-use prompt(s).", + "type": "integer", + "format": "int32" + }, + "tool_use_tokens_by_modality": { + "description": "A breakdown of tool-use token usage by modality.", + "type": "array", + "items": { + "$ref": "#/components/schemas/ModalityTokens" + } + }, + "total_thought_tokens": { + "description": "Number of tokens of thoughts for thinking models.", + "type": "integer", + "format": "int32" + }, + "total_tokens": { + "description": "Total token count for the interaction request (prompt + responses + other\ninternal tokens).", + "type": "integer", + "format": "int32" + }, + "grounding_tool_count": { + "description": "Grounding tool count.", + "type": "array", + "items": { + "$ref": "#/components/schemas/GroundingToolCount" + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "UserInputStep": { + "description": "Input provided by the user.", + "type": "object", + "properties": { + "type": { + "const": "user_input" + }, + "content": { + "title": "ContentList", + "type": "array", + "items": { + "$ref": "#/components/schemas/Content" + } + } + }, + "required": [ + "type" + ], + "examples": [ + { + "user_input": { + "summary": "UserInputStep", + "value": { + "type": "user_input", + "content": [ + { + "type": "text", + "text": "What is the capital of France?" + } + ] + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "VerbatimTranscriptionMode": { + "description": "Configuration for verbatim transcription mode.", + "type": "object", + "properties": { + "type": { + "const": "verbatim" + }, + "timestamp_granularities": { + "description": "Optional. The granularity of timestamps to include in the transcription output.\nSupported values: \"word\". If empty, no timestamps are generated.", + "type": "array", + "items": { + "type": "string" + } + }, + "diarization_mode": { + "description": "Optional. Configures speaker diarization. Supported values: \"speaker\".", + "type": "string" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "VideoConfig": { + "description": "Configuration options for video generation.", + "type": "object", + "properties": { + "task": { + "description": "Optional task mode for video generation. If not specified, the model\nautomatically determines the appropriate mode based on the provided text\nprompt and input media.", + "type": "string", + "enum": [ + "text_to_video", + "image_to_video", + "reference_to_video", + "edit", + "extend" + ], + "x-google-enum-descriptions": [ + "Generates video solely from a text prompt.", + "Generates video from one or two source images. The first image defines\nthe starting frame, and the optional second image defines the ending\nframe.", + "Generates video using reference media (such as images, audio, or video).", + "Modifies an existing input video.", + "Extends an existing input video." + ] + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "VideoContent": { + "description": "A video content block.", + "type": "object", + "properties": { + "type": { + "const": "video" + }, + "data": { + "description": "The video content.", + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "description": "The URI of the video.", + "type": "string" + }, + "processing": { + "description": "How the model processes this video for understanding.", + "oneOf": [ + { + "$ref": "#/components/schemas/MediaProcessing" + }, + { + "type": "string", + "enum": [ + "static", + "agentic" + ], + "x-google-enum-descriptions": [ + "Fixed-rate frame extraction. All frames placed in context.", + "Model-driven dynamic navigation." + ] + } + ] + }, + "resolution": { + "description": "The resolution of the media.", + "$ref": "#/components/schemas/MediaResolution" + }, + "name": { + "description": "A user-defined name for this content block. Can be referenced by the model\nin the final response.", + "type": "string" + }, + "mime_type": { + "description": "The mime type of the video.", + "type": "string", + "enum": [ + "video/mp4", + "video/mpeg", + "video/mpg", + "video/mov", + "video/avi", + "video/x-flv", + "video/webm", + "video/wmv", + "video/3gpp" + ], + "x-google-enum-descriptions": [ + "MP4 video format", + "MPEG video format", + "MPG video format", + "MOV video format", + "AVI video format", + "FLV video format", + "WebM video format", + "WMV video format", + "3GPP video format" + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "video": { + "summary": "Video", + "value": { + "type": "video", + "uri": "https://www.youtube.com/watch?v=9hE5-98ZeCg" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "VideoDelta": { + "type": "object", + "properties": { + "type": { + "const": "video" + }, + "data": { + "type": "string", + "format": "byte", + "x-speakeasy-base64-input-mode": "file" + }, + "uri": { + "type": "string" + }, + "mime_type": { + "type": "string", + "enum": [ + "video/mp4", + "video/mpeg", + "video/mpg", + "video/mov", + "video/avi", + "video/x-flv", + "video/webm", + "video/wmv", + "video/3gpp", + "video/jpeg2000" + ], + "x-google-enum-descriptions": [ + "MP4 video format", + "MPEG video format", + "MPG video format", + "MOV video format", + "AVI video format", + "FLV video format", + "WebM video format", + "WMV video format", + "3GPP video format", + "JPEG 2000 video format" + ] + }, + "resolution": { + "description": "The resolution of the media.", + "$ref": "#/components/schemas/MediaResolution" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "VideoResponseFormat": { + "description": "Configuration for video output format.", + "type": "object", + "properties": { + "type": { + "const": "video" + }, + "delivery": { + "description": "The delivery mode for the video output.", + "type": "string", + "enum": [ + "inline", + "uri" + ], + "x-google-enum-descriptions": [ + "Video data is returned inline in the response.", + "Video data is returned as a URI." + ] + }, + "aspect_ratio": { + "description": "The aspect ratio for the video output.", + "type": "string", + "enum": [ + "16:9", + "9:16" + ], + "x-google-enum-descriptions": [ + "16:9 aspect ratio.", + "9:16 aspect ratio." + ] + }, + "duration": { + "description": "The duration for the video output.", + "type": "string", + "format": "google-duration" + }, + "resolution": { + "description": "The video output resolution. Defaults to 720p.", + "type": "string", + "enum": [ + "360p", + "720p", + "1080p", + "4k" + ], + "x-google-enum-descriptions": [ + "360p resolution.", + "720p resolution.", + "1080p resolution.", + "4K resolution." + ] + } + }, + "required": [ + "type" + ], + "examples": [ + { + "video_response_format": { + "summary": "Video Output", + "value": { + "type": "video", + "aspect_ratio": "16:9", + "delivery": "inline" + } + } + } + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Voice": { + "description": "A voice resource representing either a custom voice (created via\n`CreateVoice`) or a prebuilt system voice (returned by `ListVoices`).", + "type": "object", + "properties": { + "type": { + "description": "Required. The type of the voice. In `CreateVoice`, must be `\"replicated\"`\nor `\"prompted\"`. In `ListVoices` responses, may also be `\"prebuilt\"`.", + "$ref": "#/components/schemas/VoiceType" + }, + "id": { + "description": "Output only. The unique identifier of the voice.\n\n* For Google-managed custom voices (`store = true`), this is a generated ID\n with prefix `voice_` (for example, `voice_abc123def456`). Pass\n `voices/{id}` as the `name` in `GetVoice` and `DeleteVoice`, and pass\n `{id}` directly to `SpeechConfig.voice_config.voice` (or\n `SpeechConfig.voice`) during speech synthesis.\n* For prebuilt catalog voices (`\"prebuilt\"` returned by `ListVoices`), this\n is the speaker name (for example, `Puck` or `Charon`).\n* Unset when `CreateVoice` is called with `store = false`.", + "type": "string", + "readOnly": true + }, + "model": { + "description": "Optional. The model used to design or replicate the voice.\nIf omitted in `CreateVoice`, defaults to the latest supported voice design\nmodel. Returned in `CreateVoice`, `GetVoice`, and `ListVoices` responses\nfor custom voices (`\"prompted\"` and `\"replicated\"`); unset for `\"prebuilt\"`\nvoices. Created voices can be synthesized across any supported TTS\nsynthesis model.", + "type": "string" + }, + "key": { + "description": "Output only. The client-managed voice replication key (with prefix\n`voicekey_`). Returned only by `CreateVoice` when `type` is `\"replicated\"`\nand `store` is `false`. Pass this key to `SpeechConfig.voice_config.voice`\n(or `SpeechConfig.voice`) during speech synthesis.", + "type": "string", + "readOnly": true + }, + "replicated": { + "description": "Input only. Parameters for replicated voice generation.\nRequired on input when `type` is `\"replicated\"`. Not returned in\nresponses.", + "$ref": "#/components/schemas/ReplicatedVoice", + "writeOnly": true + }, + "expire_time": { + "description": "Output only. The timestamp at which a custom stored voice (`store = true`)\nor replicated voice key (`store = false`) expires. For custom stored voices\n(`store = true`), this expiration time is extended when the voice is used\nfor speech synthesis or as a `base_voice` in `CreateVoice`. Unset for\nprebuilt catalog voices (`\"prebuilt\"`), which do not expire.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "display_name": { + "description": "Optional. User-provided display name for a stored voice (`store = true`),\nor the catalog name for a prebuilt voice.", + "type": "string" + }, + "prompted": { + "description": "Parameters for prompted voice generation.\nRequired in `CreateVoice` when `type` is `\"prompted\"`. Returned in\n`CreateVoice`, `GetVoice`, and `ListVoices` responses for prompted voices.", + "$ref": "#/components/schemas/PromptedVoice" + }, + "language_code": { + "description": "Optional. Primary BCP-47 language tag (e.g. \"en-US\", \"fr-FR\").", + "type": "string" + }, + "region_code": { + "description": "Optional. ISO 3166-1 alpha-2 or UN M.49 geographic region code (e.g. \"US\",\n\"GB\", \"001\").", + "type": "string" + }, + "accent": { + "description": "Optional. Regional accent descriptor (e.g. \"American\", \"British\").", + "type": "string" + }, + "persona": { + "description": "Optional. Intended persona or character archetype (e.g. \"Warm, Friendly\",\n\"Narrator\").", + "type": "string" + }, + "context": { + "description": "Optional. Optimal usage context or domain (e.g. \"Conversational\",\n\"Audiobook\", \"News\").", + "type": "string" + }, + "gender": { + "description": "Optional. Perceived voice gender presentation (e.g. \"female\", \"male\",\n\"neutral\").", + "type": "string" + }, + "pitch": { + "description": "Optional. Voice pitch classification.", + "$ref": "#/components/schemas/Pitch" + }, + "description": { + "description": "Optional. Descriptive summary of vocal timbre, personality, and tone.", + "type": "string" + }, + "usage": { + "description": "Output only. Token usage statistics for the voice creation request.\nPopulated only in the response of `CreateVoice` when `type` is\n`\"prompted\"`; unset for `\"replicated\"` and in `GetVoice` and `ListVoices`\nresponses.", + "$ref": "#/components/schemas/Usage", + "readOnly": true + }, + "sample_audio": { + "description": "Output only. Sample audio (synthesizer prompt audio) generated for a\nprompted voice.\nPopulated only in `CreateVoice` and `GetVoice` responses when `type` is\n`\"prompted\"`; unset in `ListVoices` responses and for `\"replicated\"` or\n`\"prebuilt\"` voices.", + "$ref": "#/components/schemas/AudioData", + "readOnly": true + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "VoiceType": { + "type": "string", + "enum": [ + "replicated", + "prompted", + "prebuilt" + ], + "x-google-enum-descriptions": [ + "A custom voice replicated from a reference audio sample and speaker consent\nrecording.", + "A custom voice generated from a natural-language text prompt (optionally\nediting or remixing a `base_voice`).", + "A built-in system voice from Google's voice catalog (e.g., `Puck`,\n`Charon`). Returned in responses; cannot be specified as the type in\n`CreateVoice`." + ], + "x-speakeasy-model-namespace": "interactions" + }, + "Webhook": { + "description": "A Webhook resource.", + "type": "object", + "properties": { + "uri": { + "description": "Required. The URI to which webhook events will be sent.", + "type": "string" + }, + "subscribed_events": { + "description": "Required. The events that the webhook is subscribed to.\nAvailable events:\n- batch.succeeded\n- batch.expired\n- batch.failed\n- interaction.requires_action\n- interaction.completed\n- interaction.failed\n- video.generated", + "type": "array", + "items": { + "type": "string" + } + }, + "name": { + "description": "Optional. The user-provided name of the webhook.", + "type": "string" + }, + "create_time": { + "description": "Output only. The timestamp when the webhook was created.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "update_time": { + "description": "Output only. The timestamp when the webhook was last updated.", + "type": "string", + "format": "date-time", + "readOnly": true + }, + "signing_secrets": { + "description": "Output only. The signing secrets associated with this webhook.", + "type": "array", + "items": { + "$ref": "#/components/schemas/SigningSecret" + }, + "readOnly": true + }, + "state": { + "description": "Output only. The state of the webhook.", + "type": "string", + "enum": [ + "enabled", + "disabled", + "disabled_due_to_failed_deliveries" + ], + "readOnly": true, + "x-google-enum-descriptions": [ + "The webhook is enabled.", + "The webhook is disabled by the user.", + "The webhook is disabled due to failed deliveries." + ] + }, + "new_signing_secret": { + "description": "Output only. The new signing secret for the webhook. Only populated on create.", + "type": "string", + "readOnly": true + }, + "id": { + "description": "Output only. The ID of the webhook.", + "type": "string", + "readOnly": true + } + }, + "required": [ + "subscribed_events", + "uri" + ], + "x-speakeasy-model-namespace": "interactions" + }, + "WebhookConfig": { + "description": "Message for configuring webhook events for a request.", + "type": "object", + "properties": { + "uris": { + "description": "Optional. If set, these webhook URIs will be used for webhook events instead of the\nregistered webhooks.", + "type": "array", + "items": { + "type": "string" + } + }, + "user_metadata": { + "description": "Optional. The user metadata that will be returned on each event emission to the\nwebhooks.", + "type": "object", + "additionalProperties": { + "description": "Properties of the object." + } + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "WebhookUpdate": { + "type": "object", + "properties": { + "name": { + "description": "Optional. The user-provided name of the webhook.", + "type": "string" + }, + "uri": { + "description": "Optional. The URI to which webhook events will be sent.", + "type": "string" + }, + "subscribed_events": { + "description": "Optional. The events that the webhook is subscribed to.\nAvailable events:\n- batch.succeeded\n- batch.expired\n- batch.failed\n- interaction.requires_action\n- interaction.completed\n- interaction.failed\n- video.generated", + "type": "array", + "items": { + "type": "string" + } + }, + "state": { + "description": "Optional. The state of the webhook.", + "type": "string", + "enum": [ + "enabled", + "disabled", + "disabled_due_to_failed_deliveries" + ], + "x-google-enum-descriptions": [ + "The webhook is enabled.", + "The webhook is disabled by the user.", + "The webhook is disabled due to failed deliveries." + ] + } + }, + "x-speakeasy-model-namespace": "interactions" + }, + "WordInfo": { + "description": "Word-level ASR annotation for transcription output.\nCarries the word text, optional timing, and optional speaker attribution.", + "type": "object", + "properties": { + "type": { + "const": "word_info" + }, + "text": { + "description": "The transcribed word.", + "type": "string" + }, + "start_offset": { + "description": "Start offset in time of the word relative to the start of the audio.\nPresent when timestamp_granularities contains \"word\".", + "type": "string", + "format": "google-duration" + }, + "end_offset": { + "description": "End offset in time of the word relative to the start of the audio.\nPresent when timestamp_granularities contains \"word\".", + "type": "string", + "format": "google-duration" + }, + "speaker": { + "description": "Optional. Speaker label for this word (e.g. \"spk_1\", \"spk_2\").\nPresent when diarization_mode is set in TranscriptionConfig.", + "type": "string" + }, + "start_index": { + "description": "Start of segment of the response that is attributed to this source.\n\nIndex indicates the start of the segment, measured in bytes.", + "type": "integer", + "format": "int32" + }, + "end_index": { + "description": "End of the attributed segment, exclusive.", + "type": "integer", + "format": "int32" + } + }, + "required": [ + "type" + ], + "x-speakeasy-model-namespace": "interactions" + } + }, + "securitySchemes": { + "googleGenAIAuth": { + "type": "http", + "scheme": "custom", + "x-speakeasy-custom-security-scheme": { + "schema": { + "type": "object", + "properties": { + "accessToken": { + "description": "OAuth access token sent as a bearer Authorization header.", + "type": "string" + }, + "apiKey": { + "description": "Gemini API key sent as x-goog-api-key.", + "type": "string" + }, + "defaultHeaders": { + "description": "Additional default headers to apply before request-specific headers and auth.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "required": [] + } + } + } + } + }, + "security": [ + { + "googleGenAIAuth": [] + } + ], + "x-speakeasy-globals": { + "parameters": [ + { + "$ref": "#/components/parameters/api_version" + }, + { + "$ref": "#/components/parameters/google_genai_user_project" + } + ] + }, + "x-speakeasy-retries": { + "backoff": { + "exponent": 2, + "initialInterval": 500, + "maxElapsedTime": 30000, + "maxInterval": 8000 + }, + "retryConnectionErrors": true, + "statusCodes": [ + 408, + 409, + 429, + "5XX" + ], + "strategy": "backoff" + } +} diff --git a/tests/unit/interactions/test_openapi_compliance.py b/tests/unit/interactions/test_openapi_compliance.py index 46a79d545e2..b6cc92e0adc 100644 --- a/tests/unit/interactions/test_openapi_compliance.py +++ b/tests/unit/interactions/test_openapi_compliance.py @@ -1,41 +1,56 @@ """ OpenAPI compliance tests for Google Interactions API. -Validates that our SDK requests/responses match the OpenAPI spec at: -https://ai.google.dev/static/api/interactions.openapi.json +Validates that our SDK requests/responses match the OpenAPI spec snapshot in +interactions.openapi.json, taken from https://ai.google.dev/static/api/interactions.openapi.json +(litellm/types/interactions/README.md says how to refresh it). The scheduled +interactions-spec-canary workflow runs the same tests against the live spec by passing +--interactions-spec-url, so a change Google makes shows up there, not in every PR. Run with: pytest tests/unit/interactions/test_openapi_compliance.py -v """ import json -import os import re -from typing import Any, Dict, Final +from dataclasses import dataclass +from enum import Enum +from pathlib import Path +from typing import Any, Dict, Final, get_args from unittest.mock import MagicMock, patch import httpx import pytest from openapi_core import OpenAPI +from pydantic import BaseModel, TypeAdapter OPENAPI_SPEC_URL = "https://ai.google.dev/static/api/interactions.openapi.json" +OPENAPI_SPEC_SNAPSHOT: Final = Path(__file__).with_name("interactions.openapi.json") +SPEC_URL_OPTION: Final = TypeAdapter(str | None) -def _load_openapi_spec_dict() -> Dict[str, Any]: - """ - Load the OpenAPI spec JSON. +@dataclass(frozen=True, slots=True) +class LoadedSpec: + source: str + spec: Dict[str, Any] - In CI or offline environments, network access may not be available. - In that case, gracefully skip these tests instead of erroring. - """ - try: - response = httpx.get(OPENAPI_SPEC_URL, timeout=5.0) - response.raise_for_status() - return response.json() - except Exception as e: # pragma: no cover - defensive, env-dependent - pytest.skip( - f"Skipping Google Interactions OpenAPI compliance tests - " - f"unable to load spec from {OPENAPI_SPEC_URL}: {e}" - ) + +def _status_enum_of(model: type[BaseModel]) -> type[Enum]: + annotation: Final = model.model_fields["status"].annotation + candidates: Final = (annotation, *get_args(annotation)) + return next(candidate for candidate in candidates if isinstance(candidate, type) and issubclass(candidate, Enum)) + + +def _requested_spec_url(request: pytest.FixtureRequest) -> str | None: + return SPEC_URL_OPTION.validate_python(request.config.getoption("interactions_spec_url")) + + +def _load_openapi_spec(live_url: str | None) -> LoadedSpec: + if live_url is None: + return LoadedSpec(source=str(OPENAPI_SPEC_SNAPSHOT), spec=json.loads(OPENAPI_SPEC_SNAPSHOT.read_text())) + with httpx.Client(transport=httpx.HTTPTransport(retries=3), timeout=30.0) as client: + response: Final = client.get(live_url) + response.raise_for_status() + return LoadedSpec(source=str(response.url), spec=response.json()) def _model_create_request_schema(spec_dict: Dict[str, Any]) -> Dict[str, Any]: @@ -65,9 +80,13 @@ def _declared_type_value(variant_schema: Dict[str, Any]) -> Any: @pytest.fixture(scope="module") -def spec_dict() -> Dict[str, Any]: - """Load raw spec dict for manual validation.""" - return _load_openapi_spec_dict() +def loaded_spec(request: pytest.FixtureRequest) -> LoadedSpec: + return _load_openapi_spec(_requested_spec_url(request)) + + +@pytest.fixture(scope="module") +def spec_dict(loaded_spec: LoadedSpec) -> Dict[str, Any]: + return loaded_spec.spec @pytest.fixture(scope="module") @@ -76,6 +95,18 @@ def openapi_spec(spec_dict: Dict[str, Any]) -> OpenAPI: return OpenAPI.from_dict(spec_dict) +def test_spec_comes_from_the_requested_source(loaded_spec: LoadedSpec, request: pytest.FixtureRequest) -> None: + assert loaded_spec.source == (_requested_spec_url(request) or str(OPENAPI_SPEC_SNAPSHOT)) + + +def test_interaction_status_export_carries_the_interaction_models_statuses() -> None: + from litellm.types.interactions import InteractionStatus, generated + + exported: Final = frozenset(member.value for member in InteractionStatus) + modelled: Final = frozenset(member.value for member in _status_enum_of(generated.Interaction)) + assert exported == modelled, sorted(exported ^ modelled) + + class TestRequestCompliance: """Tests that our request bodies match the OpenAPI spec.""" @@ -249,17 +280,24 @@ class TestResponseCompliance: assert field in schema["properties"], f"Output field '{field}' not in spec" print(f"✓ Output field '{field}' exists in spec") - def test_status_enum_values(self, spec_dict): - from pydantic import TypeAdapter + @pytest.mark.parametrize( + "schema_name", + [ + "Interaction", + "InteractionStatusUpdate", + "CreateModelInteractionParams", + "CreateAgentInteractionParams", + "UrlContextResult", + ], + ) + def test_status_enum_values(self, spec_dict, schema_name): + from litellm.types.interactions import generated - from litellm.types.interactions import Interaction, InteractionStatus - - schema: Final = spec_dict["components"]["schemas"]["Interaction"] - statuses: Final = TypeAdapter(tuple[str, ...]).validate_python(schema["properties"]["status"]["enum"]) - assert statuses - for status in statuses: - assert Interaction.model_validate({"id": "interaction-status", "status": status}).status.value == status - assert InteractionStatus(status).value == status + schema = spec_dict["components"]["schemas"][schema_name] + spec_statuses: Final = frozenset(schema["properties"]["status"]["enum"]) + parsed_statuses: Final = frozenset(member.value for member in _status_enum_of(getattr(generated, schema_name))) + assert spec_statuses + assert spec_statuses <= parsed_statuses, sorted(spec_statuses - parsed_statuses) def test_usage_schema(self, spec_dict): """Verify Usage schema fields.""" From e5cedbb861e6023e992a927de8b838b32156e918 Mon Sep 17 00:00:00 2001 From: Ishaan Date: Fri, 23 Oct 2026 11:01:06 -0700 Subject: [PATCH 002/236] fix(anthropic): include null stop_sequence in native responses (#47987) * fix(anthropic): preserve nullable stop_sequence in native responses * refactor(anthropic): clarify stop sequence defaults and test streaming * refactor(anthropic): extract stop sequence normalization helper * refactor(anthropic): default missing stop sequence in place --- .../pass_through/messages/transformation.py | 12 +++-- ...erimental_pass_through_messages_handler.py | 3 ++ ...al_pass_through_messages_transformation.py | 52 +++++++++++++++++++ .../messages/test_streaming_iterator.py | 45 ++++++++++++++++ 4 files changed, 108 insertions(+), 4 deletions(-) diff --git a/litellm/llms/anthropic/pass_through/messages/transformation.py b/litellm/llms/anthropic/pass_through/messages/transformation.py index 9f3aa0130d1..dfe0788e50a 100644 --- a/litellm/llms/anthropic/pass_through/messages/transformation.py +++ b/litellm/llms/anthropic/pass_through/messages/transformation.py @@ -75,6 +75,12 @@ def messages_carry_output_config(messages: Sequence[object]) -> bool: _messages_carry_output_config = messages_carry_output_config +def _ensure_stop_sequence(response: AnthropicMessagesResponse) -> AnthropicMessagesResponse: + if "stop_sequence" not in response: + response["stop_sequence"] = None # rebind-ok: normalize the request-owned response in place + return response + + class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): _workload_identity_eligible: ClassVar[bool] = True @@ -715,14 +721,12 @@ class AnthropicMessagesConfig(BaseAnthropicMessagesConfig): raw_response: httpx.Response, logging_obj: LiteLLMLoggingObj, ) -> AnthropicMessagesResponse: - """ - No transformation is needed for Anthropic messages, since we want the response in the Anthropic /v1/messages API spec - """ try: raw_response_json: Final = raw_response.json() except Exception: raise AnthropicError(message=raw_response.text, status_code=raw_response.status_code) - return AnthropicMessagesResponse(**raw_response_json) + response: Final = AnthropicMessagesResponse(**raw_response_json) + return _ensure_stop_sequence(response) def get_async_streaming_response_iterator( self, diff --git a/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_handler.py b/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_handler.py index 1f02b3aaa5a..f4920505722 100644 --- a/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_handler.py +++ b/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_handler.py @@ -2033,6 +2033,7 @@ async def test_anthropic_messages_with_extra_headers(): ], "model": "claude-haiku-4-5-20251001", "stop_reason": "end_turn", + "stop_sequence": None, "usage": {"input_tokens": 10, "output_tokens": 20}, } @@ -2096,6 +2097,7 @@ async def test_anthropic_messages_with_thinking(): ], "model": "claude-haiku-4-5-20251001", "stop_reason": "end_turn", + "stop_sequence": None, "usage": {"input_tokens": 10, "output_tokens": 20}, } @@ -2210,6 +2212,7 @@ async def test_anthropic_messages_bedrock_dynamic_region(): "content": [{"type": "text", "text": "This is a mock response"}], "model": "bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0", "stop_reason": "end_turn", + "stop_sequence": None, "usage": {"input_tokens": 10, "output_tokens": 20}, } diff --git a/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_transformation.py b/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_transformation.py index 7fbec3ba12e..457d5d5e1c8 100644 --- a/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_transformation.py +++ b/tests/unit/llms/anthropic/pass_through/messages/test_anthropic_experimental_pass_through_messages_transformation.py @@ -1,17 +1,23 @@ from collections.abc import Mapping +from datetime import datetime, timezone from pathlib import Path from typing import Final from unittest.mock import patch +import httpx import pytest +from pydantic import JsonValue import litellm +from litellm.litellm_core_utils.litellm_logging import Logging from litellm.llms.anthropic.pass_through.messages.transformation import ( AnthropicMessagesConfig, ) from litellm.llms.anthropic.wif import get_anthropic_wif_token from litellm.llms.minimax.messages.transformation import MinimaxMessagesConfig +from litellm.llms.openai_like.messages.transformation import OpenAILikeAnthropicMessagesConfig from litellm.llms.tencent.messages.transformation import TencentAnthropicMessagesConfig +from litellm.types.llms.anthropic import AnthropicFinishReason from litellm.types.router import GenericLiteLLMParams from tests.unit.llms.anthropic.test_anthropic_wif import ( ScriptedPoster, @@ -27,6 +33,52 @@ _WIF_PARAMS: Final[dict] = { } +@pytest.mark.parametrize("config", (AnthropicMessagesConfig(), OpenAILikeAnthropicMessagesConfig()), ids=type) +@pytest.mark.parametrize( + ("stop_reason", "stop_fields", "expected_stop_sequence"), + ( + pytest.param("end_turn", {}, None, id="end_turn_missing"), + pytest.param("max_tokens", {}, None, id="max_tokens_missing"), + pytest.param("tool_use", {}, None, id="tool_use_missing"), + pytest.param("end_turn", {"stop_sequence": None}, None, id="explicit_null"), + pytest.param("stop_sequence", {"stop_sequence": ", 7"}, ", 7", id="matched_stop"), + ), +) +def test_native_response_defaults_stop_sequence_without_changing_other_fields( + config: AnthropicMessagesConfig, + stop_reason: AnthropicFinishReason, + stop_fields: Mapping[str, str | None], + expected_stop_sequence: str | None, +) -> None: + upstream: Final[dict[str, JsonValue]] = { + "id": "msg_test", + "type": "message", + "role": "assistant", + "model": "test-model", + "content": [{"type": "text", "text": "ok"}], + "stop_reason": stop_reason, + "usage": {"input_tokens": 19, "output_tokens": 42}, + **stop_fields, + } + logging_obj: Final = Logging( + model="test-model", + messages=[], + stream=False, + call_type="anthropic_messages", + start_time=datetime(2026, 1, 1, tzinfo=timezone.utc), + litellm_call_id="test-call", + function_id="test-function", + ) + response: Final = config.transform_anthropic_messages_response( + model="test-model", raw_response=httpx.Response(200, json=upstream), logging_obj=logging_obj + ) + + assert response == { + **upstream, + "stop_sequence": expected_stop_sequence, + } + + def test_workload_identity_allowed_for_anthropic() -> None: assert AnthropicMessagesConfig()._allows_workload_identity is True diff --git a/tests/unit/llms/anthropic/pass_through/messages/test_streaming_iterator.py b/tests/unit/llms/anthropic/pass_through/messages/test_streaming_iterator.py index fd9aa75be74..4ed9054f3d3 100644 --- a/tests/unit/llms/anthropic/pass_through/messages/test_streaming_iterator.py +++ b/tests/unit/llms/anthropic/pass_through/messages/test_streaming_iterator.py @@ -26,7 +26,9 @@ from litellm.llms.anthropic.pass_through.messages.streaming_iterator import ( is_provider_error_chunk, parse_anthropic_error_event, ) +from litellm.llms.anthropic.pass_through.messages.transformation import AnthropicMessagesConfig from litellm.llms.anthropic.pass_through.safeguards import SafeguardsEvaluator +from litellm.llms.openai_like.messages.transformation import OpenAILikeAnthropicMessagesConfig from litellm.types.utils import Choices, Message, ModelResponse @@ -1733,6 +1735,49 @@ async def _drained(stream: AsyncIterator[bytes]) -> list[bytes]: return [chunk async for chunk in stream] +@pytest.mark.asyncio +@pytest.mark.parametrize("config", (AnthropicMessagesConfig(), OpenAILikeAnthropicMessagesConfig()), ids=type) +@pytest.mark.parametrize("stop_sequence", (None, ", 7"), ids=("null", "matched_stop")) +async def test_native_stream_preserves_nullable_stop_fields_across_chunk_boundaries( + config: AnthropicMessagesConfig, stop_sequence: str | None +) -> None: + logging_obj: Final = _make_logging_obj("native_stream_stop_fields") + events: Final = ( + { + "type": "message_start", + "message": { + "id": "msg_test", + "type": "message", + "role": "assistant", + "model": logging_obj.model, + "content": [], + "stop_reason": None, + "stop_sequence": None, + "usage": {"input_tokens": 19, "output_tokens": 0}, + }, + }, + { + "type": "message_delta", + "delta": { + "stop_reason": "end_turn" if stop_sequence is None else "stop_sequence", + "stop_sequence": stop_sequence, + }, + "usage": {"output_tokens": 0}, + }, + {"type": "message_stop"}, + ) + upstream: Final = b"".join(f"event: {event['type']}\ndata: {json.dumps(event)}\n\n".encode() for event in events) + response: Final = httpx.Response(200, content=_chunked(upstream, 7)) + stream: Final = config.get_async_streaming_response_iterator( + model=logging_obj.model, + httpx_response=response, + request_body={"model": logging_obj.model}, + litellm_logging_obj=logging_obj, + ) + + assert b"".join(await _drained(stream)) == upstream + + def _data_events(frames: Sequence[bytes]) -> list[Mapping[str, object]]: return [ json.loads(line[len(b"data:") :]) for frame in frames for line in frame.splitlines() if line.startswith(b"data:") From 1e6dc8176929b065fbb77dcbbf3416c3068fad04 Mon Sep 17 00:00:00 2001 From: Ishaan Date: Fri, 23 Oct 2026 11:11:40 -0700 Subject: [PATCH 003/236] fix(decisions): remove the System One question count cap (#47985) --- litellm/proxy/_lazy_openapi_snapshot.json | 6 +-- .../proxy/decisions_endpoints/endpoints.py | 2 +- litellm/types/decisions.py | 2 +- .../decisions_endpoints/test_endpoints.py | 45 +++++++++++++++++++ ui/litellm-dashboard/src/lib/http/schema.d.ts | 4 +- 5 files changed, 51 insertions(+), 8 deletions(-) diff --git a/litellm/proxy/_lazy_openapi_snapshot.json b/litellm/proxy/_lazy_openapi_snapshot.json index 4572e59944b..e5e0027a808 100644 --- a/litellm/proxy/_lazy_openapi_snapshot.json +++ b/litellm/proxy/_lazy_openapi_snapshot.json @@ -11407,7 +11407,7 @@ }, "/systemone": { "post": { - "description": "Judge a `state` against 1 to 128 named `questions` and get one calibrated answer per question name.\n\nQuestion types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with\n`confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`,\n`legend` and `probabilities`) and `box` (the image region the `instructions` describe, with `confidence`).\nTypeSafe models also take images in `assets`, each one referenced by its key in `state`. Requests that break\nthese rules are rejected with a 400 before any provider is called. `model` is any decision model in the proxy model list. OpenAI decision models accept this format\ntoo, LiteLLM translates it and keeps the answers keyed by question name. Streaming is not supported.\n\n[Docs](https://docs.litellm.ai/docs/decisions)", + "description": "Judge a `state` against one or more named `questions` and get one calibrated answer per question name.\n\nQuestion types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with\n`confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`,\n`legend` and `probabilities`) and `box` (the image region the `instructions` describe, with `confidence`).\nTypeSafe models also take images in `assets`, each one referenced by its key in `state`. Requests that break\nthese rules are rejected with a 400 before any provider is called. `model` is any decision model in the proxy model list. OpenAI decision models accept this format\ntoo, LiteLLM translates it and keeps the answers keyed by question name. Streaming is not supported.\n\n[Docs](https://docs.litellm.ai/docs/decisions)", "operationId": "systemone_systemone_post", "requestBody": { "content": { @@ -11813,7 +11813,6 @@ ] }, "description": "Named noul, choice and score questions. Each key becomes a key in the answers", - "maxProperties": 128, "minProperties": 1, "propertyNames": { "minLength": 1 @@ -12814,7 +12813,7 @@ }, "/v1/systemone": { "post": { - "description": "Judge a `state` against 1 to 128 named `questions` and get one calibrated answer per question name.\n\nQuestion types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with\n`confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`,\n`legend` and `probabilities`) and `box` (the image region the `instructions` describe, with `confidence`).\nTypeSafe models also take images in `assets`, each one referenced by its key in `state`. Requests that break\nthese rules are rejected with a 400 before any provider is called. `model` is any decision model in the proxy model list. OpenAI decision models accept this format\ntoo, LiteLLM translates it and keeps the answers keyed by question name. Streaming is not supported.\n\n[Docs](https://docs.litellm.ai/docs/decisions)", + "description": "Judge a `state` against one or more named `questions` and get one calibrated answer per question name.\n\nQuestion types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with\n`confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`,\n`legend` and `probabilities`) and `box` (the image region the `instructions` describe, with `confidence`).\nTypeSafe models also take images in `assets`, each one referenced by its key in `state`. Requests that break\nthese rules are rejected with a 400 before any provider is called. `model` is any decision model in the proxy model list. OpenAI decision models accept this format\ntoo, LiteLLM translates it and keeps the answers keyed by question name. Streaming is not supported.\n\n[Docs](https://docs.litellm.ai/docs/decisions)", "operationId": "systemone_v1_systemone_post", "requestBody": { "content": { @@ -13220,7 +13219,6 @@ ] }, "description": "Named noul, choice and score questions. Each key becomes a key in the answers", - "maxProperties": 128, "minProperties": 1, "propertyNames": { "minLength": 1 diff --git a/litellm/proxy/decisions_endpoints/endpoints.py b/litellm/proxy/decisions_endpoints/endpoints.py index 366842d23a6..a8684dd9757 100644 --- a/litellm/proxy/decisions_endpoints/endpoints.py +++ b/litellm/proxy/decisions_endpoints/endpoints.py @@ -228,7 +228,7 @@ async def systemone( user_api_key_dict: Annotated[UserAPIKeyAuth, Depends(user_api_key_auth)], ): """ - Judge a `state` against 1 to 128 named `questions` and get one calibrated answer per question name. + Judge a `state` against one or more named `questions` and get one calibrated answer per question name. Question types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with `confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`, diff --git a/litellm/types/decisions.py b/litellm/types/decisions.py index a1d48f730c0..5ad6e45e6d2 100644 --- a/litellm/types/decisions.py +++ b/litellm/types/decisions.py @@ -73,7 +73,7 @@ DecisionQuestion: TypeAlias = Annotated[ DecisionQuestionMap: TypeAlias = Annotated[ Mapping[Annotated[str, Field(min_length=1)], DecisionQuestion], - Field(min_length=1, max_length=MAX_DECISION_QUESTIONS), + Field(min_length=1), ] diff --git a/tests/unit/proxy/decisions_endpoints/test_endpoints.py b/tests/unit/proxy/decisions_endpoints/test_endpoints.py index 021eb289ad7..4384507e841 100644 --- a/tests/unit/proxy/decisions_endpoints/test_endpoints.py +++ b/tests/unit/proxy/decisions_endpoints/test_endpoints.py @@ -126,6 +126,51 @@ def test_proxy_decisions_route_returns_answers_and_cost( assert upstream.calls[0].request.headers["authorization"] == "Bearer test-key" +@pytest.mark.parametrize("endpoint", ("/v1/systemone", "/systemone")) +@pytest.mark.parametrize("question_count", (128, 129, 154)) +def test_proxy_systemone_preserves_large_question_batches( + client: TestClient, + respx_mock: respx.MockRouter, + endpoint: str, + question_count: int, +) -> None: + questions: Final = { + f"q{index}": {"type": "noul", "instructions": f"Question {index}?"} for index in range(question_count) + } + answers: Final = {f"q{index}": {"type": "noul", "noul": index / question_count} for index in range(question_count)} + upstream: Final = respx_mock.post("https://api.perplexity.ai/v1/decisions").respond( + json={**_RESPONSE, "answers": answers} + ) + + response: Final = client.post(endpoint, json={**_REQUEST, "questions": questions}) + + assert response.status_code == 200, response.text + assert json.loads(upstream.calls[0].request.content) == { + **_REQUEST, + "model": "pplx-decider-v1-27b", + "questions": questions, + } + assert response.json()["answers"] == answers + + +@pytest.mark.parametrize("endpoint", ("/v1/systemone", "/systemone")) +@pytest.mark.parametrize( + "questions", + ({}, {"": {"type": "noul", "instructions": "Is this a defect?"}}, {"is_defect": {"type": "noul"}}), + ids=("empty", "empty_name", "missing_instructions_or_criteria"), +) +def test_proxy_systemone_rejects_invalid_questions_before_http( + client: TestClient, + respx_mock: respx.MockRouter, + endpoint: str, + questions: Mapping[str, object], +) -> None: + response: Final = client.post(endpoint, json={**_REQUEST, "questions": questions}) + + assert response.status_code == 400, response.text + assert len(respx_mock.calls) == 0 + + def test_proxy_decisions_dispatches_typesafe_deployment( client: TestClient, monkeypatch: pytest.MonkeyPatch, diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index 2e2ff77963d..4dd9e5d6073 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -16025,7 +16025,7 @@ export interface paths { put?: never; /** * Ask named questions about a state (System One format) - * @description Judge a `state` against 1 to 128 named `questions` and get one calibrated answer per question name. + * @description Judge a `state` against one or more named `questions` and get one calibrated answer per question name. * * Question types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with * `confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`, @@ -22346,7 +22346,7 @@ export interface paths { put?: never; /** * Ask named questions about a state (System One format) - * @description Judge a `state` against 1 to 128 named `questions` and get one calibrated answer per question name. + * @description Judge a `state` against one or more named `questions` and get one calibrated answer per question name. * * Question types are `noul` (probability the answer is yes), `choice` (one label out of `criteria`, with * `confidence` and `probabilities`), `score` (an index into the `criteria` levels, with `confidence`, From 46922bf1206bf51d39cbd82ba64934d3d76014dd Mon Sep 17 00:00:00 2001 From: yucheng-berri Date: Fri, 23 Oct 2026 11:18:38 -0700 Subject: [PATCH 004/236] fix(proxy): take the upgrade notice from the changelog instead of GitHub releases (#47998) The Admin UI upgrade notice read GitHub's latest release, which the release pipeline sets on its own, so admins were offered releases the changelog had not announced yet and sent to the auto-generated GitHub release page. The notice now reads the newest stable release from the docs changelog feed and links to its changelog page. GitHub release notes are still used for the feature and fix counts of that version's minor line. Co-authored-by: yucheng-berri <293926326+yucheng-berri@users.noreply.github.com> --- .../latest_release_endpoints.py | 68 ++++-- .../test_latest_release_endpoints.py | 217 ++++++++++-------- .../NotificationsBell.test.tsx | 2 +- ui/litellm-dashboard/src/lib/http/schema.d.ts | 6 +- 4 files changed, 181 insertions(+), 112 deletions(-) diff --git a/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py b/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py index 7411f1b4947..ef2a5f88e4e 100644 --- a/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py +++ b/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py @@ -1,5 +1,6 @@ import asyncio import re +import xml.etree.ElementTree as ET from collections import Counter from collections.abc import Awaitable, Mapping from dataclasses import dataclass @@ -17,7 +18,8 @@ from litellm.types.llms.base import LiteLLMBaseModel router: Final = APIRouter() -LATEST_RELEASE_URL: Final = "https://api.github.com/repos/BerriAI/litellm/releases/latest" +CHANGELOG_URL: Final = "https://docs.litellm.ai/release_notes/" +CHANGELOG_FEED_URL: Final = f"{CHANGELOG_URL}rss.xml" RELEASE_BY_TAG_URL: Final = "https://api.github.com/repos/BerriAI/litellm/releases/tags/{tag}" LATEST_RELEASE_FETCH_TIMEOUT_SECONDS: Final = 5 LATEST_RELEASE_CACHE_TTL_SECONDS: Final = 60 * 60 @@ -26,7 +28,7 @@ LATEST_RELEASE_CACHE_KEY: Final = "latest_release_info" _RELEASE_BULLET_PATTERN: Final = re.compile(r"^\*\s+(?:([A-Za-z]+)(?:\([^)]*\))?!?:\s)?\S") _NEW_CONTRIBUTOR_PATTERN: Final = re.compile(r"^\*\s+@\S+ made their first contribution\b") -_STABLE_TAG_PATTERN: Final = re.compile(r"^v?(\d+)\.(\d+)\.(\d+)$") +_CHANGELOG_PAGE_PATTERN: Final = re.compile(rf"{re.escape(CHANGELOG_URL)}v(\d+)\.(\d+)\.(\d+)/") _Bucket: TypeAlias = Literal["new_features", "bug_fixes", "other_updates"] _PREFIX_BUCKETS: Final[Mapping[str, _Bucket]] = MappingProxyType({"feat": "new_features", "fix": "bug_fixes"}) @@ -45,6 +47,16 @@ class LatestReleaseUnavailable: reason: str +@dataclass(frozen=True, slots=True) +class ChangelogEntry: + version: tuple[int, int, int] + url: str + + @property + def tag(self) -> str: + return "v" + ".".join(str(part) for part in self.version) + + class _GitHubRelease(LiteLLMBaseModel): tag_name: str html_url: str @@ -91,9 +103,18 @@ def count_release_bullets(body: str) -> Mapping[_Bucket, int]: return MappingProxyType(Counter(bucket for line in body.splitlines() if (bucket := _bucket_for(line)) is not None)) -def _stable_version(tag_name: str) -> tuple[int, int, int] | None: - match: Final = _STABLE_TAG_PATTERN.match(tag_name) - return None if match is None else (int(match.group(1)), int(match.group(2)), int(match.group(3))) +def _changelog_entry(link: str) -> ChangelogEntry | None: + match: Final = _CHANGELOG_PAGE_PATTERN.match(link) + if match is None: + return None + return ChangelogEntry(version=(int(match.group(1)), int(match.group(2)), int(match.group(3))), url=link) + + +def latest_changelog_entry(feed: bytes) -> ChangelogEntry | None: + """The highest stable release with a page in the changelog feed. Release candidate pages don't count.""" + links: Final = (link.text or "" for link in ET.fromstring(feed).iterfind("channel/item/link")) + entries: Final = (entry for link in links if (entry := _changelog_entry(link)) is not None) + return max(entries, key=lambda entry: entry.version, default=None) def earlier_patch_tags(version: tuple[int, int, int]) -> tuple[str, ...]: @@ -102,7 +123,9 @@ def earlier_patch_tags(version: tuple[int, int, int]) -> tuple[str, ...]: return tuple(f"v{major}.{minor}.{earlier}" for earlier in range(patch)) -def summarize_release_line(latest: _GitHubRelease, earlier: tuple[_GitHubRelease, ...]) -> LatestReleaseInfo: +def summarize_release_line( + entry: ChangelogEntry, latest: _GitHubRelease, earlier: tuple[_GitHubRelease, ...] +) -> LatestReleaseInfo: """A patch release's notes only list its backports, so count the whole minor line it belongs to.""" counts: Final = sum( (Counter[_Bucket](count_release_bullets(release.body or "")) for release in (latest, *earlier)), @@ -113,7 +136,7 @@ def summarize_release_line(latest: _GitHubRelease, earlier: tuple[_GitHubRelease new_features=counts.get("new_features", 0), bug_fixes=counts.get("bug_fixes", 0), other_updates=counts.get("other_updates", 0), - release_url=latest.html_url, + release_url=entry.url, ) @@ -137,25 +160,38 @@ async def _fetch_earlier_release(client: _AsyncGetClient, tag: str) -> _GitHubRe return release +async def _fetch_changelog_entry(client: _AsyncGetClient) -> ChangelogEntry | LatestReleaseUnavailable: + response: Final = await client.get(CHANGELOG_FEED_URL, timeout=LATEST_RELEASE_FETCH_TIMEOUT_SECONDS) + if response.status_code != 200: + return LatestReleaseUnavailable(reason=f"Changelog feed responded with status {response.status_code}") + try: + entry: Final = latest_changelog_entry(response.content) + except ET.ParseError as e: + return LatestReleaseUnavailable(reason=f"Changelog feed was not valid XML: {e}") + return LatestReleaseUnavailable(reason="Changelog feed lists no stable release") if entry is None else entry + + async def fetch_latest_release(client: _AsyncGetClient) -> LatestReleaseInfo | LatestReleaseUnavailable: try: + entry: Final = await _fetch_changelog_entry(client) + if isinstance(entry, LatestReleaseUnavailable): + return entry latest: Final = parse_github_release( - await client.get(LATEST_RELEASE_URL, timeout=LATEST_RELEASE_FETCH_TIMEOUT_SECONDS) + await client.get(RELEASE_BY_TAG_URL.format(tag=entry.tag), timeout=LATEST_RELEASE_FETCH_TIMEOUT_SECONDS) ) if isinstance(latest, LatestReleaseUnavailable): return latest - version: Final = _stable_version(latest.tag_name) - if version is None: - return summarize_release_line(latest, ()) earlier: Final = await asyncio.gather( - *(_fetch_earlier_release(client, tag) for tag in earlier_patch_tags(version)) + *(_fetch_earlier_release(client, tag) for tag in earlier_patch_tags(entry.version)) ) except httpx.HTTPError as e: return LatestReleaseUnavailable(reason=f"{type(e).__name__}: {e}") unavailable: Final = next((release for release in earlier if isinstance(release, LatestReleaseUnavailable)), None) if unavailable is not None: return unavailable - return summarize_release_line(latest, tuple(release for release in earlier if isinstance(release, _GitHubRelease))) + return summarize_release_line( + entry, latest, tuple(release for release in earlier if isinstance(release, _GitHubRelease)) + ) async def get_latest_release_info( @@ -190,9 +226,9 @@ async def latest_release_info( fetch_lock: Annotated[asyncio.Lock, Depends(_default_fetch_lock)], ) -> LatestReleaseInfo | None: """ - Latest stable LiteLLM GitHub release with the PR count of its whole minor line (e.g. v1.105.0 + v1.105.1) - split into new features, bug fixes and other updates. - Returns null when GitHub can't be reached so the dashboard upgrade banner simply doesn't render. + Newest stable release on the LiteLLM changelog, linked to its changelog page, with the PR count of its whole + minor line (e.g. v1.105.0 + v1.105.1) from GitHub split into new features, bug fixes and other updates. + Returns null when the changelog or GitHub can't be reached so the dashboard upgrade banner simply doesn't render. """ result: Final = await get_latest_release_info(client=client, cache=cache, fetch_lock=fetch_lock) if isinstance(result, LatestReleaseUnavailable): diff --git a/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py b/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py index 25f1301dd9d..47f81fb55d1 100644 --- a/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py +++ b/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py @@ -12,10 +12,11 @@ from litellm.proxy._types import LitellmUserRoles, UserAPIKeyAuth from litellm.proxy.auth.user_api_key_auth import user_api_key_auth from litellm.proxy.proxy_server import app from litellm.proxy.ui_crud_endpoints.latest_release_endpoints import ( + CHANGELOG_FEED_URL, + CHANGELOG_URL, LATEST_RELEASE_CACHE_KEY, LATEST_RELEASE_CACHE_TTL_SECONDS, LATEST_RELEASE_UNAVAILABLE_CACHE_TTL_SECONDS, - LATEST_RELEASE_URL, RELEASE_BY_TAG_URL, LatestReleaseInfo, LatestReleaseUnavailable, @@ -49,37 +50,68 @@ SAMPLE_RELEASE: Final = { "html_url": "https://github.com/BerriAI/litellm/releases/tag/v1.102.0", "body": SAMPLE_BODY, } + + +def _changelog_page(folder: str) -> str: + return f"{CHANGELOG_URL}{folder}/{folder.removeprefix('v').replace('.', '-')}" + + +def _feed(*folders: str) -> httpx.Response: + items: Final = "".join( + f"{folder}{_changelog_page(folder)}" for folder in folders + ) + return httpx.Response(200, content=f'{items}'.encode()) + + EXPECTED_INFO: Final = { "version": "1.102.0", "new_features": 2, "bug_fixes": 2, "other_updates": 4, - "release_url": SAMPLE_RELEASE["html_url"], + "release_url": _changelog_page("v1.102.0"), } -class _RecordingClient: - def __init__(self, outcomes: list[httpx.Response | Exception]) -> None: - self._outcomes = outcomes - self.calls: list[tuple[str, float | None]] = [] - - async def get(self, url: str, *, timeout: float | None = None) -> httpx.Response: - self.calls.append((url, timeout)) - outcome = self._outcomes[min(len(self.calls) - 1, len(self._outcomes) - 1)] - if isinstance(outcome, Exception): - raise outcome - return outcome - - def _github_response(status: int = 200, payload: object = SAMPLE_RELEASE) -> httpx.Response: return httpx.Response(status, content=json.dumps(payload).encode()) +def _tag_url(tag: str) -> str: + return RELEASE_BY_TAG_URL.format(tag=tag) + + +class _ByUrl: + """Answers each URL from a fixed map; unknown URLs are 404, like a tag with no release.""" + + def __init__(self, routes: dict[str, httpx.Response | Exception]) -> None: + self._routes = routes + self.calls: list[tuple[str, float | None]] = [] + + async def get(self, url: str, *, timeout: float | None = None) -> httpx.Response: + self.calls.append((url, timeout)) + outcome = self._routes.get(url, httpx.Response(404, content=b"{}")) + if isinstance(outcome, Exception): + raise outcome + return outcome + + @property + def urls(self) -> list[str]: + return [url for url, _ in self.calls] + + +def _minor_release_routes(**overrides: httpx.Response | Exception) -> dict[str, httpx.Response | Exception]: + return {CHANGELOG_FEED_URL: _feed("v1.102.0"), _tag_url("v1.102.0"): _github_response(), **overrides} + + +def _minor_release(**overrides: httpx.Response | Exception) -> _ByUrl: + return _ByUrl(_minor_release_routes(**overrides)) + + def _fresh_cache() -> InMemoryCache: return InMemoryCache(max_size_in_memory=1, default_ttl=LATEST_RELEASE_CACHE_TTL_SECONDS) -def _override_dependencies(client: _RecordingClient, cache: InMemoryCache, role: LitellmUserRoles) -> None: +def _override_dependencies(client: _ByUrl, cache: InMemoryCache, role: LitellmUserRoles) -> None: async def auth() -> UserAPIKeyAuth: return UserAPIKeyAuth(api_key="sk-test", user_id="test-user", user_role=role) @@ -127,35 +159,68 @@ class TestCountReleaseBullets: class TestGetLatestReleaseInfo: @pytest.mark.asyncio - async def test_fetches_and_parses_github_release(self): - client = _RecordingClient([_github_response()]) + async def test_announces_the_changelog_release_and_links_its_changelog_page(self): + client = _minor_release() result = await get_latest_release_info(client=client, cache=_fresh_cache(), fetch_lock=asyncio.Lock()) assert isinstance(result, LatestReleaseInfo) assert result.model_dump() == EXPECTED_INFO - assert client.calls == [(LATEST_RELEASE_URL, 5)] + assert client.calls == [(CHANGELOG_FEED_URL, 5), (_tag_url("v1.102.0"), 5)] + + @pytest.mark.asyncio + async def test_github_release_missing_from_the_changelog_is_not_announced(self): + automated: Final = _github_response(payload=_release("v1.103.0", "* feat(proxy): automated release\n")) + result = await _info(_minor_release(**{_tag_url("v1.103.0"): automated})) + assert isinstance(result, LatestReleaseInfo) + assert result.model_dump() == EXPECTED_INFO + + @pytest.mark.asyncio + async def test_highest_stable_version_wins_regardless_of_feed_order(self): + client = _minor_release(**{CHANGELOG_FEED_URL: _feed("v1.101.6", "v1.103.0rc1", "v1.102.0", "v1.100.9")}) + result = await _info(client) + assert isinstance(result, LatestReleaseInfo) + assert result.model_dump() == EXPECTED_INFO + + @pytest.mark.asyncio + @pytest.mark.parametrize( + "feed", + [ + httpx.Response(503, content=_feed("v1.102.0").content), + httpx.Response(200, content=b"not a feed"), + _feed("v1.103.0rc1", "v1.103.0-dev.1"), + httpx.Response( + 200, + content=f"https://example.com/?{_changelog_page('v9.0.0')}" + "https://example.com/release_notes/v9.0.0/x".encode(), + ), + ], + ids=["server_error", "not_xml", "only_prereleases", "foreign_links"], + ) + async def test_bad_changelog_feeds_are_unavailable(self, feed: httpx.Response): + client = _minor_release(**{CHANGELOG_FEED_URL: feed}) + result = await _info(client) + assert isinstance(result, LatestReleaseUnavailable) + assert client.urls == [CHANGELOG_FEED_URL] @pytest.mark.asyncio async def test_second_call_within_ttl_does_not_refetch(self): - client = _RecordingClient([_github_response()]) + client = _minor_release() cache = _fresh_cache() fetch_lock = asyncio.Lock() first = await get_latest_release_info(client=client, cache=cache, fetch_lock=fetch_lock) second = await get_latest_release_info(client=client, cache=cache, fetch_lock=fetch_lock) assert first == second - assert len(client.calls) == 1 + assert len(client.calls) == 2 @pytest.mark.asyncio async def test_success_is_cached_for_the_full_ttl(self): cache = _fresh_cache() - await get_latest_release_info( - client=_RecordingClient([_github_response()]), cache=cache, fetch_lock=asyncio.Lock() - ) + await get_latest_release_info(client=_minor_release(), cache=cache, fetch_lock=asyncio.Lock()) remaining = await cache.async_get_ttl(LATEST_RELEASE_CACHE_KEY) - time.time() assert LATEST_RELEASE_CACHE_TTL_SECONDS - 5 < remaining <= LATEST_RELEASE_CACHE_TTL_SECONDS @pytest.mark.asyncio async def test_failure_is_cached_briefly_so_github_is_not_hammered(self): - client = _RecordingClient([httpx.ConnectError("boom")]) + client = _ByUrl({CHANGELOG_FEED_URL: httpx.ConnectError("boom")}) cache = _fresh_cache() fetch_lock = asyncio.Lock() first = await get_latest_release_info(client=client, cache=cache, fetch_lock=fetch_lock) @@ -172,30 +237,29 @@ class TestGetLatestReleaseInfo: @pytest.mark.parametrize( "response", [ + _github_response(status=404, payload={"message": "Not Found"}), _github_response(status=403, payload={"message": "rate limited"}), _github_response(status=500, payload={}), _github_response(payload={"tag_name": "v1.0.0"}), httpx.Response(200, content=b"not json"), + httpx.ConnectError("boom"), ], - ids=["rate_limited", "server_error", "missing_fields", "not_json"], + ids=["no_release_for_tag", "rate_limited", "server_error", "missing_fields", "not_json", "unreachable"], ) - async def test_bad_github_responses_are_unavailable(self, response: httpx.Response): - result = await get_latest_release_info( - client=_RecordingClient([response]), cache=_fresh_cache(), fetch_lock=asyncio.Lock() - ) + async def test_bad_github_responses_are_unavailable(self, response: httpx.Response | Exception): + result = await _info(_minor_release(**{_tag_url("v1.102.0"): response})) assert isinstance(result, LatestReleaseUnavailable) @pytest.mark.asyncio async def test_concurrent_misses_share_one_fetch(self): event = asyncio.Event() - class _BlockingClient(_RecordingClient): + class _BlockingClient(_ByUrl): async def get(self, url: str, *, timeout: float | None = None) -> httpx.Response: - self.calls.append((url, timeout)) await event.wait() - return _github_response() + return await super().get(url, timeout=timeout) - client = _BlockingClient([]) + client = _BlockingClient(_minor_release_routes()) cache = _fresh_cache() fetch_lock = asyncio.Lock() tasks = [ @@ -208,19 +272,19 @@ class TestGetLatestReleaseInfo: results = await asyncio.gather(*tasks) expected: Final = LatestReleaseInfo.model_validate(EXPECTED_INFO) assert results == [expected] * 5 - assert len(client.calls) == 1 + assert len(client.calls) == 2 @pytest.mark.asyncio async def test_failure_under_lock_is_also_coalesced(self): event = asyncio.Event() - class _FailingBlockingClient(_RecordingClient): + class _FailingBlockingClient(_ByUrl): async def get(self, url: str, *, timeout: float | None = None) -> httpx.Response: self.calls.append((url, timeout)) await event.wait() raise httpx.ConnectError("boom") - client = _FailingBlockingClient([]) + client = _FailingBlockingClient({}) cache = _fresh_cache() fetch_lock = asyncio.Lock() tasks = [ @@ -245,40 +309,23 @@ def _release(tag: str, body: str | None, *, prerelease: bool = False) -> dict[st } -def _tag_url(tag: str) -> str: - return RELEASE_BY_TAG_URL.format(tag=tag) - - -class _GitHubByUrl: - """Answers each GitHub URL from a fixed map; unknown URLs are 404, like a tag with no release.""" - - def __init__(self, routes: dict[str, httpx.Response | Exception]) -> None: - self._routes = routes - self.urls: list[str] = [] - - async def get(self, url: str, *, timeout: float | None = None) -> httpx.Response: - self.urls.append(url) - outcome = self._routes.get(url, httpx.Response(404, content=b"{}")) - if isinstance(outcome, Exception): - raise outcome - return outcome - - PATCH_RELEASE: Final = _release("v1.102.2", "* fix(proxy): second backport by @k in https://x/pull/10\n") FIRST_PATCH: Final = _release("v1.102.1", "* fix(proxy): first backport by @k in https://x/pull/9\n") -def _minor_line(**overrides: httpx.Response | Exception) -> dict[str, httpx.Response | Exception]: - routes: dict[str, httpx.Response | Exception] = { - LATEST_RELEASE_URL: _github_response(payload=PATCH_RELEASE), - _tag_url("v1.102.0"): _github_response(payload=SAMPLE_RELEASE), - _tag_url("v1.102.1"): _github_response(payload=FIRST_PATCH), - } - routes.update({_tag_url(tag): outcome for tag, outcome in overrides.items()}) - return routes +def _minor_line(**overrides: httpx.Response | Exception) -> _ByUrl: + return _ByUrl( + { + CHANGELOG_FEED_URL: _feed("v1.102.2", "v1.101.6"), + _tag_url("v1.102.2"): _github_response(payload=PATCH_RELEASE), + _tag_url("v1.102.0"): _github_response(payload=SAMPLE_RELEASE), + _tag_url("v1.102.1"): _github_response(payload=FIRST_PATCH), + **{_tag_url(tag): outcome for tag, outcome in overrides.items()}, + } + ) -async def _info(client: _GitHubByUrl) -> LatestReleaseInfo | LatestReleaseUnavailable: +async def _info(client: _ByUrl) -> LatestReleaseInfo | LatestReleaseUnavailable: return await get_latest_release_info(client=client, cache=_fresh_cache(), fetch_lock=asyncio.Lock()) @@ -289,7 +336,7 @@ class TestPatchReleaseAggregatesMinorLine: @pytest.mark.asyncio async def test_patch_release_counts_include_every_earlier_patch_on_its_line(self): - client = _GitHubByUrl(_minor_line()) + client = _minor_line() result = await _info(client) assert isinstance(result, LatestReleaseInfo) assert result.model_dump() == { @@ -297,23 +344,11 @@ class TestPatchReleaseAggregatesMinorLine: "new_features": 2, "bug_fixes": 4, "other_updates": 4, - "release_url": PATCH_RELEASE["html_url"], + "release_url": _changelog_page("v1.102.2"), } - assert sorted(client.urls) == sorted([LATEST_RELEASE_URL, _tag_url("v1.102.0"), _tag_url("v1.102.1")]) - - @pytest.mark.asyncio - async def test_minor_release_makes_a_single_request(self): - client = _RecordingClient([_github_response()]) - await get_latest_release_info(client=client, cache=_fresh_cache(), fetch_lock=asyncio.Lock()) - assert client.calls == [(LATEST_RELEASE_URL, 5)] - - @pytest.mark.asyncio - async def test_non_semver_latest_tag_counts_only_its_own_notes(self): - client = _GitHubByUrl({LATEST_RELEASE_URL: _github_response(payload=_release("v1.102.1-hotfix", "* fix: x\n"))}) - result = await _info(client) - assert isinstance(result, LatestReleaseInfo) - assert (result.new_features, result.bug_fixes, result.other_updates) == (0, 1, 0) - assert client.urls == [LATEST_RELEASE_URL] + assert sorted(client.urls) == sorted( + [CHANGELOG_FEED_URL, _tag_url("v1.102.2"), _tag_url("v1.102.0"), _tag_url("v1.102.1")] + ) @pytest.mark.asyncio @pytest.mark.parametrize( @@ -326,15 +361,13 @@ class TestPatchReleaseAggregatesMinorLine: ids=["never_published", "prerelease", "null_body"], ) async def test_missing_prerelease_or_empty_patch_adds_nothing(self, skipped: httpx.Response): - result = await _info(_GitHubByUrl(_minor_line(**{"v1.102.1": skipped}))) + result = await _info(_minor_line(**{"v1.102.1": skipped})) assert isinstance(result, LatestReleaseInfo) assert (result.new_features, result.bug_fixes, result.other_updates) == (2, 3, 4) @pytest.mark.asyncio async def test_latest_release_with_null_body_still_counts_its_line(self): - routes = _minor_line() - routes[LATEST_RELEASE_URL] = _github_response(payload=_release("v1.102.2", None)) - result = await _info(_GitHubByUrl(routes)) + result = await _info(_minor_line(**{"v1.102.2": _github_response(payload=_release("v1.102.2", None))})) assert isinstance(result, LatestReleaseInfo) assert (result.new_features, result.bug_fixes, result.other_updates) == (2, 3, 4) @@ -349,31 +382,31 @@ class TestPatchReleaseAggregatesMinorLine: ids=["unreachable", "rate_limited", "not_json"], ) async def test_earlier_patch_failure_is_unavailable(self, outcome: httpx.Response | Exception): - result = await _info(_GitHubByUrl(_minor_line(**{"v1.102.0": outcome}))) + result = await _info(_minor_line(**{"v1.102.0": outcome})) assert isinstance(result, LatestReleaseUnavailable) class TestLatestReleaseInfoEndpoint: def test_returns_release_stats_for_authenticated_user(self, http_client): - _override_dependencies(_RecordingClient([_github_response()]), _fresh_cache(), LitellmUserRoles.INTERNAL_USER) + _override_dependencies(_minor_release(), _fresh_cache(), LitellmUserRoles.INTERNAL_USER) response = http_client.get("/get/latest_release_info") assert response.status_code == 200 assert response.json() == EXPECTED_INFO - def test_returns_null_when_github_is_unreachable(self, http_client): + def test_returns_null_when_the_changelog_is_unreachable(self, http_client): _override_dependencies( - _RecordingClient([httpx.ConnectError("boom")]), _fresh_cache(), LitellmUserRoles.PROXY_ADMIN + _ByUrl({CHANGELOG_FEED_URL: httpx.ConnectError("boom")}), _fresh_cache(), LitellmUserRoles.PROXY_ADMIN ) response = http_client.get("/get/latest_release_info") assert response.status_code == 200 assert response.json() is None def test_repeated_requests_reuse_cache(self, http_client): - client = _RecordingClient([_github_response()]) + client = _minor_release() _override_dependencies(client, _fresh_cache(), LitellmUserRoles.PROXY_ADMIN) assert http_client.get("/get/latest_release_info").json() == EXPECTED_INFO assert http_client.get("/get/latest_release_info").json() == EXPECTED_INFO - assert len(client.calls) == 1 + assert len(client.calls) == 2 def test_rejects_unauthenticated_requests(self, monkeypatch): monkeypatch.setattr("litellm.proxy.proxy_server.master_key", MASTER_KEY) diff --git a/ui/litellm-dashboard/src/components/Navbar/NotificationsBell/NotificationsBell.test.tsx b/ui/litellm-dashboard/src/components/Navbar/NotificationsBell/NotificationsBell.test.tsx index e0c428a94a0..93d9b6018ac 100644 --- a/ui/litellm-dashboard/src/components/Navbar/NotificationsBell/NotificationsBell.test.tsx +++ b/ui/litellm-dashboard/src/components/Navbar/NotificationsBell/NotificationsBell.test.tsx @@ -20,7 +20,7 @@ const RELEASE: LatestReleaseInfo = { new_features: 12, bug_fixes: 30, other_updates: 8, - release_url: "https://github.com/BerriAI/litellm/releases/tag/v1.103.0", + release_url: "https://docs.litellm.ai/release_notes/v1.103.0/v1-103-0", }; const bell = (unread: number) => diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index 4dd9e5d6073..f3821a2bb46 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -5865,9 +5865,9 @@ export interface paths { }; /** * Latest Release Info - * @description Latest stable LiteLLM GitHub release with the PR count of its whole minor line (e.g. v1.105.0 + v1.105.1) - * split into new features, bug fixes and other updates. - * Returns null when GitHub can't be reached so the dashboard upgrade banner simply doesn't render. + * @description Newest stable release on the LiteLLM changelog, linked to its changelog page, with the PR count of its whole + * minor line (e.g. v1.105.0 + v1.105.1) from GitHub split into new features, bug fixes and other updates. + * Returns null when the changelog or GitHub can't be reached so the dashboard upgrade banner simply doesn't render. */ get: operations["latest_release_info_get_latest_release_info_get"]; put?: never; From 82a4ef40958131d36130cb5192448de09e0582b7 Mon Sep 17 00:00:00 2001 From: "berriai-litellm-provider-info-sync[bot]" <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 11:36:12 -0700 Subject: [PATCH 005/236] chore(cost-map): update openai gpt-6-luna decisions cache rates from the decisions guide (#48066) Price-Sync: litellm-providers Co-authored-by: berriai-litellm-provider-info-sync[bot] <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com> --- litellm/model_prices_and_context_window_backup.json | 8 ++++---- model_prices_and_context_window.json | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index cb9bfa6ffe4..90a0763f786 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -36861,17 +36861,17 @@ }, "gpt-6-luna": { "cache_creation_input_token_cost": 1.25e-07, - "cache_creation_input_token_cost_decisions": 1e-07, + "cache_creation_input_token_cost_decisions": 1.25e-07, "cache_creation_input_token_cost_above_272k_tokens": 2.5e-07, - "cache_creation_input_token_cost_above_272k_tokens_decisions": 2e-07, + "cache_creation_input_token_cost_above_272k_tokens_decisions": 2.5e-07, "cache_creation_input_token_cost_above_272k_tokens_flex": 1.25e-07, "cache_creation_input_token_cost_above_272k_tokens_priority": 5e-07, "cache_creation_input_token_cost_flex": 6.25e-08, "cache_creation_input_token_cost_priority": 2.5e-07, "cache_read_input_token_cost": 1e-08, - "cache_read_input_token_cost_decisions": 1e-07, + "cache_read_input_token_cost_decisions": 1e-08, "cache_read_input_token_cost_above_272k_tokens": 2e-08, - "cache_read_input_token_cost_above_272k_tokens_decisions": 2e-07, + "cache_read_input_token_cost_above_272k_tokens_decisions": 2e-08, "cache_read_input_token_cost_above_272k_tokens_flex": 1e-08, "cache_read_input_token_cost_above_272k_tokens_priority": 4e-08, "cache_read_input_token_cost_batches": 5e-09, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index cb9bfa6ffe4..90a0763f786 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -36861,17 +36861,17 @@ }, "gpt-6-luna": { "cache_creation_input_token_cost": 1.25e-07, - "cache_creation_input_token_cost_decisions": 1e-07, + "cache_creation_input_token_cost_decisions": 1.25e-07, "cache_creation_input_token_cost_above_272k_tokens": 2.5e-07, - "cache_creation_input_token_cost_above_272k_tokens_decisions": 2e-07, + "cache_creation_input_token_cost_above_272k_tokens_decisions": 2.5e-07, "cache_creation_input_token_cost_above_272k_tokens_flex": 1.25e-07, "cache_creation_input_token_cost_above_272k_tokens_priority": 5e-07, "cache_creation_input_token_cost_flex": 6.25e-08, "cache_creation_input_token_cost_priority": 2.5e-07, "cache_read_input_token_cost": 1e-08, - "cache_read_input_token_cost_decisions": 1e-07, + "cache_read_input_token_cost_decisions": 1e-08, "cache_read_input_token_cost_above_272k_tokens": 2e-08, - "cache_read_input_token_cost_above_272k_tokens_decisions": 2e-07, + "cache_read_input_token_cost_above_272k_tokens_decisions": 2e-08, "cache_read_input_token_cost_above_272k_tokens_flex": 1e-08, "cache_read_input_token_cost_above_272k_tokens_priority": 4e-08, "cache_read_input_token_cost_batches": 5e-09, From 52166b51a1eec3d1c75ddc49c9e5e462c745bbcd Mon Sep 17 00:00:00 2001 From: shrey-berri Date: Fri, 23 Oct 2026 11:44:13 -0700 Subject: [PATCH 006/236] fix(security): update bundled CA roots and preserve Prisma image compatibility (#47969) * fix(security): bump grpcio and boto3 so their bundled CA files drop the compromised eMudhra roots grpc ignores SSL_CERT_FILE and verifies every channel against its own bundled roots.pem. In 1.78.0 that file still trusts emSign ECC Root CA - G3 and AAA Certificate Services, so Vertex AI, Google KMS, Chirp STT and OTLP gRPC exporters (Arize) accept all 14 advisory chains. 1.84.1 is the first release whose roots.pem drops both roots. botocore uses certifi when it is installed and falls back to its bundled cacert.pem otherwise. Through 1.43.116 that file still trusts AAA Certificate Services. Requiring boto3 1.43.117 pulls in botocore 1.43.117, the first release whose cacert.pem rejects all 14 advisory chains, so the fallback stays safe if certifi is ever absent * fix(docker): provide OpenSSL 3 when generating Prisma engines --- Dockerfile | 1 + backend/Dockerfile | 2 +- docker/Dockerfile.database | 1 + docker/Dockerfile.non_root | 1 + .../build_from_pip/Dockerfile.build_from_pip | 2 +- gateway/Dockerfile | 2 +- migrations/Dockerfile | 2 +- pyproject.toml | 14 +- uv.lock | 133 +++++++++--------- 9 files changed, 83 insertions(+), 75 deletions(-) diff --git a/Dockerfile b/Dockerfile index 306c455c9de..6bab3d5ad71 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,6 +61,7 @@ RUN apk add --no-cache \ python-3.13-dev \ rust \ openssl \ + libssl3 \ openssl-dev \ nodejs \ npm \ diff --git a/backend/Dockerfile b/backend/Dockerfile index 772f3d5b351..46d65c432bb 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -43,7 +43,7 @@ COPY --from=uvbin /uv /uvx /usr/local/bin/ # instead of nodeenv downloading one whose dynamic deps may not be in Wolfi # (e.g. Node 26.2.0 needs libatomic). Retry for transient apk.cgr.dev flakes. RUN for i in 1 2 3; do \ - apk add --no-cache bash gcc python-3.13 python-3.13-dev openssl openssl-dev libsndfile nodejs npm && break; \ + apk add --no-cache bash gcc python-3.13 python-3.13-dev openssl libssl3 openssl-dev libsndfile nodejs npm && break; \ [ $i = 3 ] && { echo "apk add failed after 3 retries" >&2; exit 1; }; \ sleep 5; \ done diff --git a/docker/Dockerfile.database b/docker/Dockerfile.database index f1fa64be630..69d9c26b2a8 100644 --- a/docker/Dockerfile.database +++ b/docker/Dockerfile.database @@ -59,6 +59,7 @@ RUN apk add --no-cache \ python-3.13 \ python-3.13-dev \ openssl \ + libssl3 \ openssl-dev \ nodejs \ npm \ diff --git a/docker/Dockerfile.non_root b/docker/Dockerfile.non_root index 69da9fe149b..54bf8c807aa 100644 --- a/docker/Dockerfile.non_root +++ b/docker/Dockerfile.non_root @@ -60,6 +60,7 @@ RUN for i in 1 2 3; do \ coreutils \ curl \ openssl \ + libssl3 \ libsndfile \ nodejs \ npm && break || sleep 5; \ diff --git a/docker/build_from_pip/Dockerfile.build_from_pip b/docker/build_from_pip/Dockerfile.build_from_pip index a5733f0e1a0..25a7ed2fa97 100644 --- a/docker/build_from_pip/Dockerfile.build_from_pip +++ b/docker/build_from_pip/Dockerfile.build_from_pip @@ -30,7 +30,7 @@ RUN uv venv --python python && \ "google-cloud-aiplatform==1.133.0" \ "google-genai==1.37.0" \ "anthropic[vertex]==0.84.0" \ - "grpcio==1.78.0" \ + "grpcio==1.84.1" \ "prometheus-client==0.20.0" \ "langfuse==2.59.7" \ "opentelemetry-api==1.28.0" \ diff --git a/gateway/Dockerfile b/gateway/Dockerfile index 6af25df0c5d..390a5f5666f 100644 --- a/gateway/Dockerfile +++ b/gateway/Dockerfile @@ -59,7 +59,7 @@ COPY --from=uvbin /uv /uvx /usr/local/bin/ # instead of nodeenv downloading one whose dynamic deps may not be in Wolfi # (e.g. Node 26.2.0 needs libatomic). Retry for transient apk.cgr.dev flakes. RUN for i in 1 2 3; do \ - apk add --no-cache bash gcc python-3.13 python-3.13-dev openssl openssl-dev libsndfile nodejs npm && break; \ + apk add --no-cache bash gcc python-3.13 python-3.13-dev openssl libssl3 openssl-dev libsndfile nodejs npm && break; \ [ $i = 3 ] && { echo "apk add failed after 3 retries" >&2; exit 1; }; \ sleep 5; \ done diff --git a/migrations/Dockerfile b/migrations/Dockerfile index 55f100d9e02..84ea67fcc5f 100644 --- a/migrations/Dockerfile +++ b/migrations/Dockerfile @@ -61,7 +61,7 @@ COPY --from=uvbin /uv /uvx /usr/local/bin/ # instead of nodeenv downloading one whose dynamic deps may not be in Wolfi # (e.g. Node 26.2.0 needs libatomic). Retry for transient apk.cgr.dev flakes. RUN for i in 1 2 3; do \ - apk add --no-cache bash gcc python-3.13 python-3.13-dev openssl openssl-dev libsndfile nodejs npm && break; \ + apk add --no-cache bash gcc python-3.13 python-3.13-dev openssl libssl3 openssl-dev libsndfile nodejs npm && break; \ [ $i = 3 ] && { echo "apk add failed after 3 retries" >&2; exit 1; }; \ sleep 5; \ done diff --git a/pyproject.toml b/pyproject.toml index 3aefd911937..b43f0b254fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -35,7 +35,7 @@ dependencies = [ "pydantic>=2.12.0,<3.0.0; python_version >= '3.14'", "pydantic-settings>=2.14.1,<3.0", "jsonschema>=4.0.0,<5.0", - "boto3>=1.43.1,<2.0", + "boto3>=1.43.117,<2.0", "certifi>=2026.10.19", "typing-extensions>=4.13.0,<5.0", ] @@ -73,7 +73,7 @@ proxy = [ "cryptography>=49.0.0,<51.0", "pynacl>=1.6.2,<2.0", "websockets>=15.0.1,<16.0", - "boto3>=1.43.1,<2.0", + "boto3>=1.43.117,<2.0", "azure-identity>=1.25.2,<2.0", "azure-storage-blob>=12.28.0,<13.0", "mcp>=2.3.0,<3", @@ -139,8 +139,8 @@ semantic-router = [ ] mlflow = ["mlflow>=3.11.1,<4.0"] grpc = [ - # Newest non-yanked release older than the 30-day cutoff. - "grpcio==1.78.0", + # First release whose bundled roots.pem drops the compromised eMudhra roots, ahead of the 30-day cutoff + "grpcio==1.84.1", ] stt-vertex-chirp = [ # Google Cloud Speech-to-Text v2 streaming (gRPC) for Chirp models on @@ -174,7 +174,7 @@ proxy-runtime = [ "google-cloud-speech>=2.40.0,<3.0", "google-genai>=1.37.0,<2.0", "anthropic[vertex]>=0.84.0,<1.0", - "grpcio==1.78.0", + "grpcio==1.84.1", "prometheus-client>=0.20.0,<1.0", "langfuse>=4.7,<5.0", "opentelemetry-api==1.33.1", @@ -371,7 +371,9 @@ default-groups = ["dev"] required-version = ">=0.10.9" exclude-newer = "3 days" # TODO: ryan, remove after 2026-10-23, once certifi 2026.10.19 (drops the compromised eMudhra root) clears the 3-day window -exclude-newer-package = { certifi = "2026-10-20T03:00:00Z" } +# TODO(shrey): remove after 2026-10-25, once grpcio 1.84.1 (drops the compromised eMudhra roots from roots.pem) clears the 3-day window +# TODO(shrey): remove after 2026-10-24, once boto3/botocore 1.43.117 (drops the compromised eMudhra roots from cacert.pem) clear the 3-day window +exclude-newer-package = { certifi = "2026-10-20T03:00:00Z", grpcio = "2026-10-22T15:00:00Z", boto3 = "2026-10-21T19:31:00Z", botocore = "2026-10-21T19:31:00Z" } [tool.uv.sources] litellm-proxy-extras = { workspace = true } diff --git a/uv.lock b/uv.lock index 8d2a38c1806..32320480ddf 100644 --- a/uv.lock +++ b/uv.lock @@ -14,7 +14,10 @@ exclude-newer = "0001-01-01T00:00:00Z" # This has no effect and is included for exclude-newer-span = "P3D" [options.exclude-newer-package] +boto3 = "2026-10-21T19:31:00Z" +botocore = "2026-10-21T19:31:00Z" certifi = "2026-10-20T03:00:00Z" +grpcio = "2026-10-22T15:00:00Z" [manifest] members = [ @@ -885,30 +888,30 @@ wheels = [ [[package]] name = "boto3" -version = "1.43.1" +version = "1.43.117" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, { name = "jmespath" }, { name = "s3transfer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/98/36/028c12ed6ed85009a21b5472eb76c27f9b0341c6986f06f83475b40aaf51/boto3-1.43.1.tar.gz", hash = "sha256:9e4f85a7884797ff0f52c257094730ed228aaa07fa8134775ff8f86909cf4f2a", size = 113175, upload-time = "2026-04-30T20:27:04.569Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/a7/61f0295f79dfdcebb5aa01f86c614fac7e1294faabbd66259d3609c50539/boto3-1.43.117.tar.gz", hash = "sha256:f3d314908d866b577ee6b74ed432c21e565c4c4dbd640ef3fd5e0da30fa13a98", size = 112677, upload-time = "2026-10-21T19:30:03.849Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/d1/b8b2d5420c51cd8f7ec044ceecbf24b060156680b26519e1d482e160c3c8/boto3-1.43.1-py3-none-any.whl", hash = "sha256:3840bf0345b9aefcc5915176a19d227f63cfba7778c65e6e52d61c6ea0a10fdc", size = 140498, upload-time = "2026-04-30T20:27:01.791Z" }, + { url = "https://files.pythonhosted.org/packages/f3/3b/22b05a545fb95983733d84681364c6b0a36afb0710d832f77732d1fc4c0b/boto3-1.43.117-py3-none-any.whl", hash = "sha256:a5b6cd7e67653987fcf0e212187c16f7b58af2ae192e368f7212ddab7c05b25d", size = 140043, upload-time = "2026-10-21T19:30:02.114Z" }, ] [[package]] name = "botocore" -version = "1.43.6" +version = "1.43.117" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jmespath" }, { name = "python-dateutil" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/79/a7/23d0f5028011455096a1eeac0ddf3cbe147b3e855e127342f8202552194d/botocore-1.43.6.tar.gz", hash = "sha256:b1e395b347356860398da42e61c808cf1e34b6fa7180cf2b9d87d986e1a06ba0", size = 15336070, upload-time = "2026-05-07T20:49:48.14Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6e/a0/d0a5c44ad6a01f195681ddcb4ce203f06c712811daf1d15f8f8785e8a9f8/botocore-1.43.117.tar.gz", hash = "sha256:71993702832cc37c2495048b9945f2929d306fccb3fb767e9964e437e637fa6c", size = 16366888, upload-time = "2026-10-21T19:29:59.274Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/c8/6f47223840e8d8cfa8c9f7c0ec1b77970417f257fc885169ff4f6326ce09/botocore-1.43.6-py3-none-any.whl", hash = "sha256:b6d1fdbc6f65a5fe0b7e947823aa37535d3f39f3ba4d21110fab1f55bbbcc04b", size = 15017094, upload-time = "2026-05-07T20:49:44.964Z" }, + { url = "https://files.pythonhosted.org/packages/10/94/050e35c9febf6dd2fce4a76be587ae4a323964865700467d9d7b082f7133/botocore-1.43.117-py3-none-any.whl", hash = "sha256:5920ef9b3002e1361846549078549d9154a6e0004c22853c01ce7b279d05d495", size = 16061765, upload-time = "2026-10-21T19:29:56.001Z" }, ] [[package]] @@ -3088,63 +3091,63 @@ wheels = [ [[package]] name = "grpcio" -version = "1.78.0" +version = "1.84.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/8a/3d098f35c143a89520e568e6539cc098fcd294495910e359889ce8741c84/grpcio-1.78.0.tar.gz", hash = "sha256:7382b95189546f375c174f53a5fa873cef91c4b8005faa05cc5b3beea9c4f1c5", size = 12852416, upload-time = "2026-02-06T09:57:18.093Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c0/3a/5c8e0eea2af3d30cb20d33ac325a98d9b799c069d63101ca4da20bcc776a/grpcio-1.84.1.tar.gz", hash = "sha256:446e7876b9b991fa124c1d414899fa7cf95f89a3e71237ea0161863dc0b2c09f", size = 13421202, upload-time = "2026-10-22T14:59:43.986Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/a8/690a085b4d1fe066130de97a87de32c45062cf2ecd218df9675add895550/grpcio-1.78.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:7cc47943d524ee0096f973e1081cb8f4f17a4615f2116882a5f1416e4cfe92b5", size = 5946986, upload-time = "2026-02-06T09:54:34.043Z" }, - { url = "https://files.pythonhosted.org/packages/c7/1b/e5213c5c0ced9d2d92778d30529ad5bb2dcfb6c48c4e2d01b1f302d33d64/grpcio-1.78.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:c3f293fdc675ccba4db5a561048cca627b5e7bd1c8a6973ffedabe7d116e22e2", size = 11816533, upload-time = "2026-02-06T09:54:37.04Z" }, - { url = "https://files.pythonhosted.org/packages/18/37/1ba32dccf0a324cc5ace744c44331e300b000a924bf14840f948c559ede7/grpcio-1.78.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10a9a644b5dd5aec3b82b5b0b90d41c0fa94c85ef42cb42cf78a23291ddb5e7d", size = 6519964, upload-time = "2026-02-06T09:54:40.268Z" }, - { url = "https://files.pythonhosted.org/packages/ed/f5/c0e178721b818072f2e8b6fde13faaba942406c634009caf065121ce246b/grpcio-1.78.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4c5533d03a6cbd7f56acfc9cfb44ea64f63d29091e40e44010d34178d392d7eb", size = 7198058, upload-time = "2026-02-06T09:54:42.389Z" }, - { url = "https://files.pythonhosted.org/packages/5b/b2/40d43c91ae9cd667edc960135f9f08e58faa1576dc95af29f66ec912985f/grpcio-1.78.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ff870aebe9a93a85283837801d35cd5f8814fe2ad01e606861a7fb47c762a2b7", size = 6727212, upload-time = "2026-02-06T09:54:44.91Z" }, - { url = "https://files.pythonhosted.org/packages/ed/88/9da42eed498f0efcfcd9156e48ae63c0cde3bea398a16c99fb5198c885b6/grpcio-1.78.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:391e93548644e6b2726f1bb84ed60048d4bcc424ce5e4af0843d28ca0b754fec", size = 7300845, upload-time = "2026-02-06T09:54:47.562Z" }, - { url = "https://files.pythonhosted.org/packages/23/3f/1c66b7b1b19a8828890e37868411a6e6925df5a9030bfa87ab318f34095d/grpcio-1.78.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:df2c8f3141f7cbd112a6ebbd760290b5849cda01884554f7c67acc14e7b1758a", size = 8284605, upload-time = "2026-02-06T09:54:50.475Z" }, - { url = "https://files.pythonhosted.org/packages/94/c4/ca1bd87394f7b033e88525384b4d1e269e8424ab441ea2fba1a0c5b50986/grpcio-1.78.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd8cb8026e5f5b50498a3c4f196f57f9db344dad829ffae16b82e4fdbaea2813", size = 7726672, upload-time = "2026-02-06T09:54:53.11Z" }, - { url = "https://files.pythonhosted.org/packages/41/09/f16e487d4cc65ccaf670f6ebdd1a17566b965c74fc3d93999d3b2821e052/grpcio-1.78.0-cp310-cp310-win32.whl", hash = "sha256:f8dff3d9777e5d2703a962ee5c286c239bf0ba173877cc68dc02c17d042e29de", size = 4076715, upload-time = "2026-02-06T09:54:55.549Z" }, - { url = "https://files.pythonhosted.org/packages/2a/32/4ce60d94e242725fd3bcc5673c04502c82a8e87b21ea411a63992dc39f8f/grpcio-1.78.0-cp310-cp310-win_amd64.whl", hash = "sha256:94f95cf5d532d0e717eed4fc1810e8e6eded04621342ec54c89a7c2f14b581bf", size = 4799157, upload-time = "2026-02-06T09:54:59.838Z" }, - { url = "https://files.pythonhosted.org/packages/86/c7/d0b780a29b0837bf4ca9580904dfb275c1fc321ded7897d620af7047ec57/grpcio-1.78.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2777b783f6c13b92bd7b716667452c329eefd646bfb3f2e9dabea2e05dbd34f6", size = 5951525, upload-time = "2026-02-06T09:55:01.989Z" }, - { url = "https://files.pythonhosted.org/packages/c5/b1/96920bf2ee61df85a9503cb6f733fe711c0ff321a5a697d791b075673281/grpcio-1.78.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:9dca934f24c732750389ce49d638069c3892ad065df86cb465b3fa3012b70c9e", size = 11830418, upload-time = "2026-02-06T09:55:04.462Z" }, - { url = "https://files.pythonhosted.org/packages/83/0c/7c1528f098aeb75a97de2bae18c530f56959fb7ad6c882db45d9884d6edc/grpcio-1.78.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:459ab414b35f4496138d0ecd735fed26f1318af5e52cb1efbc82a09f0d5aa911", size = 6524477, upload-time = "2026-02-06T09:55:07.111Z" }, - { url = "https://files.pythonhosted.org/packages/8d/52/e7c1f3688f949058e19a011c4e0dec973da3d0ae5e033909677f967ae1f4/grpcio-1.78.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:082653eecbdf290e6e3e2c276ab2c54b9e7c299e07f4221872380312d8cf395e", size = 7198266, upload-time = "2026-02-06T09:55:10.016Z" }, - { url = "https://files.pythonhosted.org/packages/e5/61/8ac32517c1e856677282c34f2e7812d6c328fa02b8f4067ab80e77fdc9c9/grpcio-1.78.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85f93781028ec63f383f6bc90db785a016319c561cc11151fbb7b34e0d012303", size = 6730552, upload-time = "2026-02-06T09:55:12.207Z" }, - { url = "https://files.pythonhosted.org/packages/bd/98/b8ee0158199250220734f620b12e4a345955ac7329cfd908d0bf0fda77f0/grpcio-1.78.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f12857d24d98441af6a1d5c87442d624411db486f7ba12550b07788f74b67b04", size = 7304296, upload-time = "2026-02-06T09:55:15.044Z" }, - { url = "https://files.pythonhosted.org/packages/bd/0f/7b72762e0d8840b58032a56fdbd02b78fc645b9fa993d71abf04edbc54f4/grpcio-1.78.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5397fff416b79e4b284959642a4e95ac4b0f1ece82c9993658e0e477d40551ec", size = 8288298, upload-time = "2026-02-06T09:55:17.276Z" }, - { url = "https://files.pythonhosted.org/packages/24/ae/ae4ce56bc5bb5caa3a486d60f5f6083ac3469228faa734362487176c15c5/grpcio-1.78.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fbe6e89c7ffb48518384068321621b2a69cab509f58e40e4399fdd378fa6d074", size = 7730953, upload-time = "2026-02-06T09:55:19.545Z" }, - { url = "https://files.pythonhosted.org/packages/b5/6e/8052e3a28eb6a820c372b2eb4b5e32d195c661e137d3eca94d534a4cfd8a/grpcio-1.78.0-cp311-cp311-win32.whl", hash = "sha256:6092beabe1966a3229f599d7088b38dfc8ffa1608b5b5cdda31e591e6500f856", size = 4076503, upload-time = "2026-02-06T09:55:21.521Z" }, - { url = "https://files.pythonhosted.org/packages/08/62/f22c98c5265dfad327251fa2f840b591b1df5f5e15d88b19c18c86965b27/grpcio-1.78.0-cp311-cp311-win_amd64.whl", hash = "sha256:1afa62af6e23f88629f2b29ec9e52ec7c65a7176c1e0a83292b93c76ca882558", size = 4799767, upload-time = "2026-02-06T09:55:24.107Z" }, - { url = "https://files.pythonhosted.org/packages/4e/f4/7384ed0178203d6074446b3c4f46c90a22ddf7ae0b3aee521627f54cfc2a/grpcio-1.78.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f9ab915a267fc47c7e88c387a3a28325b58c898e23d4995f765728f4e3dedb97", size = 5913985, upload-time = "2026-02-06T09:55:26.832Z" }, - { url = "https://files.pythonhosted.org/packages/81/ed/be1caa25f06594463f685b3790b320f18aea49b33166f4141bfdc2bfb236/grpcio-1.78.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3f8904a8165ab21e07e58bf3e30a73f4dffc7a1e0dbc32d51c61b5360d26f43e", size = 11811853, upload-time = "2026-02-06T09:55:29.224Z" }, - { url = "https://files.pythonhosted.org/packages/24/a7/f06d151afc4e64b7e3cc3e872d331d011c279aaab02831e40a81c691fb65/grpcio-1.78.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:859b13906ce098c0b493af92142ad051bf64c7870fa58a123911c88606714996", size = 6475766, upload-time = "2026-02-06T09:55:31.825Z" }, - { url = "https://files.pythonhosted.org/packages/8a/a8/4482922da832ec0082d0f2cc3a10976d84a7424707f25780b82814aafc0a/grpcio-1.78.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b2342d87af32790f934a79c3112641e7b27d63c261b8b4395350dad43eff1dc7", size = 7170027, upload-time = "2026-02-06T09:55:34.7Z" }, - { url = "https://files.pythonhosted.org/packages/54/bf/f4a3b9693e35d25b24b0b39fa46d7d8a3c439e0a3036c3451764678fec20/grpcio-1.78.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:12a771591ae40bc65ba67048fa52ef4f0e6db8279e595fd349f9dfddeef571f9", size = 6690766, upload-time = "2026-02-06T09:55:36.902Z" }, - { url = "https://files.pythonhosted.org/packages/c7/b9/521875265cc99fe5ad4c5a17010018085cae2810a928bf15ebe7d8bcd9cc/grpcio-1.78.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:185dea0d5260cbb2d224c507bf2a5444d5abbb1fa3594c1ed7e4c709d5eb8383", size = 7266161, upload-time = "2026-02-06T09:55:39.824Z" }, - { url = "https://files.pythonhosted.org/packages/05/86/296a82844fd40a4ad4a95f100b55044b4f817dece732bf686aea1a284147/grpcio-1.78.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:51b13f9aed9d59ee389ad666b8c2214cc87b5de258fa712f9ab05f922e3896c6", size = 8253303, upload-time = "2026-02-06T09:55:42.353Z" }, - { url = "https://files.pythonhosted.org/packages/f3/e4/ea3c0caf5468537f27ad5aab92b681ed7cc0ef5f8c9196d3fd42c8c2286b/grpcio-1.78.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fd5f135b1bd58ab088930b3c613455796dfa0393626a6972663ccdda5b4ac6ce", size = 7698222, upload-time = "2026-02-06T09:55:44.629Z" }, - { url = "https://files.pythonhosted.org/packages/d7/47/7f05f81e4bb6b831e93271fb12fd52ba7b319b5402cbc101d588f435df00/grpcio-1.78.0-cp312-cp312-win32.whl", hash = "sha256:94309f498bcc07e5a7d16089ab984d42ad96af1d94b5a4eb966a266d9fcabf68", size = 4066123, upload-time = "2026-02-06T09:55:47.644Z" }, - { url = "https://files.pythonhosted.org/packages/ad/e7/d6914822c88aa2974dbbd10903d801a28a19ce9cd8bad7e694cbbcf61528/grpcio-1.78.0-cp312-cp312-win_amd64.whl", hash = "sha256:9566fe4ababbb2610c39190791e5b829869351d14369603702e890ef3ad2d06e", size = 4797657, upload-time = "2026-02-06T09:55:49.86Z" }, - { url = "https://files.pythonhosted.org/packages/05/a9/8f75894993895f361ed8636cd9237f4ab39ef87fd30db17467235ed1c045/grpcio-1.78.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:ce3a90455492bf8bfa38e56fbbe1dbd4f872a3d8eeaf7337dc3b1c8aa28c271b", size = 5920143, upload-time = "2026-02-06T09:55:52.035Z" }, - { url = "https://files.pythonhosted.org/packages/55/06/0b78408e938ac424100100fd081189451b472236e8a3a1f6500390dc4954/grpcio-1.78.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:2bf5e2e163b356978b23652c4818ce4759d40f4712ee9ec5a83c4be6f8c23a3a", size = 11803926, upload-time = "2026-02-06T09:55:55.494Z" }, - { url = "https://files.pythonhosted.org/packages/88/93/b59fe7832ff6ae3c78b813ea43dac60e295fa03606d14d89d2e0ec29f4f3/grpcio-1.78.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8f2ac84905d12918e4e55a16da17939eb63e433dc11b677267c35568aa63fc84", size = 6478628, upload-time = "2026-02-06T09:55:58.533Z" }, - { url = "https://files.pythonhosted.org/packages/ed/df/e67e3734527f9926b7d9c0dde6cd998d1d26850c3ed8eeec81297967ac67/grpcio-1.78.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b58f37edab4a3881bc6c9bca52670610e0c9ca14e2ea3cf9debf185b870457fb", size = 7173574, upload-time = "2026-02-06T09:56:01.786Z" }, - { url = "https://files.pythonhosted.org/packages/a6/62/cc03fffb07bfba982a9ec097b164e8835546980aec25ecfa5f9c1a47e022/grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:735e38e176a88ce41840c21bb49098ab66177c64c82426e24e0082500cc68af5", size = 6692639, upload-time = "2026-02-06T09:56:04.529Z" }, - { url = "https://files.pythonhosted.org/packages/bf/9a/289c32e301b85bdb67d7ec68b752155e674ee3ba2173a1858f118e399ef3/grpcio-1.78.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2045397e63a7a0ee7957c25f7dbb36ddc110e0cfb418403d110c0a7a68a844e9", size = 7268838, upload-time = "2026-02-06T09:56:08.397Z" }, - { url = "https://files.pythonhosted.org/packages/0e/79/1be93f32add280461fa4773880196572563e9c8510861ac2da0ea0f892b6/grpcio-1.78.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9f136fbafe7ccf4ac7e8e0c28b31066e810be52d6e344ef954a3a70234e1702", size = 8251878, upload-time = "2026-02-06T09:56:10.914Z" }, - { url = "https://files.pythonhosted.org/packages/65/65/793f8e95296ab92e4164593674ae6291b204bb5f67f9d4a711489cd30ffa/grpcio-1.78.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:748b6138585379c737adc08aeffd21222abbda1a86a0dca2a39682feb9196c20", size = 7695412, upload-time = "2026-02-06T09:56:13.593Z" }, - { url = "https://files.pythonhosted.org/packages/1c/9f/1e233fe697ecc82845942c2822ed06bb522e70d6771c28d5528e4c50f6a4/grpcio-1.78.0-cp313-cp313-win32.whl", hash = "sha256:271c73e6e5676afe4fc52907686670c7cea22ab2310b76a59b678403ed40d670", size = 4064899, upload-time = "2026-02-06T09:56:15.601Z" }, - { url = "https://files.pythonhosted.org/packages/4d/27/d86b89e36de8a951501fb06a0f38df19853210f341d0b28f83f4aa0ffa08/grpcio-1.78.0-cp313-cp313-win_amd64.whl", hash = "sha256:f2d4e43ee362adfc05994ed479334d5a451ab7bc3f3fee1b796b8ca66895acb4", size = 4797393, upload-time = "2026-02-06T09:56:17.882Z" }, - { url = "https://files.pythonhosted.org/packages/29/f2/b56e43e3c968bfe822fa6ce5bca10d5c723aa40875b48791ce1029bb78c7/grpcio-1.78.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:e87cbc002b6f440482b3519e36e1313eb5443e9e9e73d6a52d43bd2004fcfd8e", size = 5920591, upload-time = "2026-02-06T09:56:20.758Z" }, - { url = "https://files.pythonhosted.org/packages/5d/81/1f3b65bd30c334167bfa8b0d23300a44e2725ce39bba5b76a2460d85f745/grpcio-1.78.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:c41bc64626db62e72afec66b0c8a0da76491510015417c127bfc53b2fe6d7f7f", size = 11813685, upload-time = "2026-02-06T09:56:24.315Z" }, - { url = "https://files.pythonhosted.org/packages/0e/1c/bbe2f8216a5bd3036119c544d63c2e592bdf4a8ec6e4a1867592f4586b26/grpcio-1.78.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8dfffba826efcf366b1e3ccc37e67afe676f290e13a3b48d31a46739f80a8724", size = 6487803, upload-time = "2026-02-06T09:56:27.367Z" }, - { url = "https://files.pythonhosted.org/packages/16/5c/a6b2419723ea7ddce6308259a55e8e7593d88464ce8db9f4aa857aba96fa/grpcio-1.78.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:74be1268d1439eaaf552c698cdb11cd594f0c49295ae6bb72c34ee31abbe611b", size = 7173206, upload-time = "2026-02-06T09:56:29.876Z" }, - { url = "https://files.pythonhosted.org/packages/df/1e/b8801345629a415ea7e26c83d75eb5dbe91b07ffe5210cc517348a8d4218/grpcio-1.78.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:be63c88b32e6c0f1429f1398ca5c09bc64b0d80950c8bb7807d7d7fb36fb84c7", size = 6693826, upload-time = "2026-02-06T09:56:32.305Z" }, - { url = "https://files.pythonhosted.org/packages/34/84/0de28eac0377742679a510784f049738a80424b17287739fc47d63c2439e/grpcio-1.78.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3c586ac70e855c721bda8f548d38c3ca66ac791dc49b66a8281a1f99db85e452", size = 7277897, upload-time = "2026-02-06T09:56:34.915Z" }, - { url = "https://files.pythonhosted.org/packages/ca/9c/ad8685cfe20559a9edb66f735afdcb2b7d3de69b13666fdfc542e1916ebd/grpcio-1.78.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:35eb275bf1751d2ffbd8f57cdbc46058e857cf3971041521b78b7db94bdaf127", size = 8252404, upload-time = "2026-02-06T09:56:37.553Z" }, - { url = "https://files.pythonhosted.org/packages/3c/05/33a7a4985586f27e1de4803887c417ec7ced145ebd069bc38a9607059e2b/grpcio-1.78.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:207db540302c884b8848036b80db352a832b99dfdf41db1eb554c2c2c7800f65", size = 7696837, upload-time = "2026-02-06T09:56:40.173Z" }, - { url = "https://files.pythonhosted.org/packages/73/77/7382241caf88729b106e49e7d18e3116216c778e6a7e833826eb96de22f7/grpcio-1.78.0-cp314-cp314-win32.whl", hash = "sha256:57bab6deef2f4f1ca76cc04565df38dc5713ae6c17de690721bdf30cb1e0545c", size = 4142439, upload-time = "2026-02-06T09:56:43.258Z" }, - { url = "https://files.pythonhosted.org/packages/48/b2/b096ccce418882fbfda4f7496f9357aaa9a5af1896a9a7f60d9f2b275a06/grpcio-1.78.0-cp314-cp314-win_amd64.whl", hash = "sha256:dce09d6116df20a96acfdbf85e4866258c3758180e8c49845d6ba8248b6d0bbb", size = 4929852, upload-time = "2026-02-06T09:56:45.885Z" }, + { url = "https://files.pythonhosted.org/packages/4b/05/f05e999e5ddc319a52e70d15b765ffb597b959bfe276eddc246c6bd78c2d/grpcio-1.84.1-cp310-cp310-linux_armv7l.whl", hash = "sha256:68ff21d6cee6f38f7554cdd263e6db25c95a3efe20726350ab4de4a81808be9c", size = 6415481, upload-time = "2026-10-22T14:57:12.614Z" }, + { url = "https://files.pythonhosted.org/packages/a0/2f/90cf10ac2754ac93604c92d7c9b21713774ad2a7e6ef2a52f04c9becf9c1/grpcio-1.84.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:3c5b41ac9a337f5633d9474b9ae6b1b7f2f4e3eca024a3855536d6980e817d43", size = 12311108, upload-time = "2026-10-22T14:57:16.97Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6b/3743380ac98de1d7decd77550ae3982e5ecbb057423b91fc0d3190cafb73/grpcio-1.84.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5842cc52e13a5cf0d1beced73e43276a41e22c0e8a8f9f7c606536efce187e5a", size = 6995603, upload-time = "2026-10-22T14:57:19.511Z" }, + { url = "https://files.pythonhosted.org/packages/94/6b/d98111f24cc7806eac591e9031e733ad7ae65627993a3d3b9d27a6d8d1bb/grpcio-1.84.1-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3bb28f8c1911de119135adbabb21b6e6563e7a5c9fc950c6b8ab2a387afb4372", size = 7746983, upload-time = "2026-10-22T14:57:22.066Z" }, + { url = "https://files.pythonhosted.org/packages/cd/be/d2cb6ab9b4552426127fde93acc9197c89e6f46b646134298087e40b9401/grpcio-1.84.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4aaf596ea35c7d022a3bfe0402cdee30d86c6ccea2b6fbbe03d1e4826cc7179c", size = 7151717, upload-time = "2026-10-22T14:57:24.28Z" }, + { url = "https://files.pythonhosted.org/packages/ed/aa/98dea9d63129a3071240cb98980429cd3d732d47e948478216bd914b5666/grpcio-1.84.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c36f794a507bbda13e1b656e4fba775a08f3ca0a1e1be5f65ed47ceb0db47812", size = 7696631, upload-time = "2026-10-22T14:57:26.845Z" }, + { url = "https://files.pythonhosted.org/packages/4d/51/a5829f905a311c8b8a877132adda95104cbe6487dce4efffbc513e48ba01/grpcio-1.84.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b3d2b21939a6a773d1a692a1ac8564ec31702b752b38b913eb5b1bcfc280d55", size = 8755877, upload-time = "2026-10-22T14:57:29.353Z" }, + { url = "https://files.pythonhosted.org/packages/cc/3b/30c6cf1693321278055386761bce00b32ac24fe892691197023a31f7a7ca/grpcio-1.84.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f6d12757eea5b6b642a171e7701ecfb360ce0bf13d262dad1bfdebcd267bcaf5", size = 8103508, upload-time = "2026-10-22T14:57:32.08Z" }, + { url = "https://files.pythonhosted.org/packages/3d/59/ae59ed6d2d76a189a12c2c68d08d2fa2aa20797b94c6b30ae9a0b4c3b13b/grpcio-1.84.1-cp310-cp310-win32.whl", hash = "sha256:a37234085137ba26aa89bb377bba839894616eb1ed3873e1cc4a1badce885880", size = 4461581, upload-time = "2026-10-22T14:57:34.407Z" }, + { url = "https://files.pythonhosted.org/packages/16/2d/87ae3e5a5075e7f2a33773cf0958a57351989f7cf98a9b2f6eb9fa6d4dce/grpcio-1.84.1-cp310-cp310-win_amd64.whl", hash = "sha256:d82bfc0cc4e9120a52f7657caa6af1727a79093612bd7e91a8444a29e4df21de", size = 5223494, upload-time = "2026-10-22T14:57:36.928Z" }, + { url = "https://files.pythonhosted.org/packages/b6/99/8c0a3739dbc75bf509cf2a79a35ebb27e73cd7a1f9be25af842ae66e4749/grpcio-1.84.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:a5ea4e8d1e9745ba6c2c9d14ed0861e9496a8051bf9fd8a17b667d9b9a0c1019", size = 6420007, upload-time = "2026-10-22T14:57:39.037Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/c8261b1d56715d09c922145d12427abc1b1be5afad031336d7b00bad7d8c/grpcio-1.84.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:11c1d07c58922f5dad022b422d3f7998755c3e35e2f1949bac47cfd7a5eb31fd", size = 12325248, upload-time = "2026-10-22T14:57:41.384Z" }, + { url = "https://files.pythonhosted.org/packages/f0/4a/30f23e49f1b8ab11ccd24cfa146524df5478f45db7167006580cdfeaa321/grpcio-1.84.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6a22342e59b5b2f4c5ed276ef72a3668ec84f38d2f5fad8a64af0b3618e510eb", size = 6995366, upload-time = "2026-10-22T14:57:44.399Z" }, + { url = "https://files.pythonhosted.org/packages/c1/d8/fd238758e4725f11d509c440de1b03a77c53d5f213fd45ccfb5f4f775aff/grpcio-1.84.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:bdd1181edaf42b6e79a457789fd43e85858db1df3861e4e5128ff4d6a49cb638", size = 7747707, upload-time = "2026-10-22T14:57:47.241Z" }, + { url = "https://files.pythonhosted.org/packages/47/54/d6544884ef836bea968d3ed7abf179c4d33a794dd8a8b1c5cf002fff9620/grpcio-1.84.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:eb881326607275ad2d2d17dce09b823472414dcc559e8f694d5607fe8af3cbc1", size = 7153395, upload-time = "2026-10-22T14:57:50.28Z" }, + { url = "https://files.pythonhosted.org/packages/06/9c/094cd0afd21348e65d5750a7fa4cfa5f8ba6ca354fe6aff9f1163f4c5d0e/grpcio-1.84.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:772ff116d0d31b2817e23fb9a1dfa52fa9fed08be0cd87b593450f034e2968b1", size = 7702992, upload-time = "2026-10-22T14:57:53.602Z" }, + { url = "https://files.pythonhosted.org/packages/7c/54/254432337e14beb08bc7f29fc10a86ef149f672124073f2e0d446dbf8538/grpcio-1.84.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0225c1e29d1506594e75ac46fd7b327bbfd24c6306a3c479b2164c1c4e87901f", size = 8758120, upload-time = "2026-10-22T14:57:55.728Z" }, + { url = "https://files.pythonhosted.org/packages/04/29/528ccb437076233d524e09e59320625b8ca9d94f0fb0198703e7100f3bff/grpcio-1.84.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1ce9e360d0a4a329b925ae8b0bc49d97d663bcce50822eb862873798a86eb10", size = 8110925, upload-time = "2026-10-22T14:57:58.639Z" }, + { url = "https://files.pythonhosted.org/packages/24/5a/e4005d02dd65884a525f49ba0aa0371967b7fb40f00d35818ab397d91a93/grpcio-1.84.1-cp311-cp311-win32.whl", hash = "sha256:b87f8696bb78a31328e815629d320304c3d5cca1c654d3fd7e5518685bcfb8d2", size = 4460566, upload-time = "2026-10-22T14:58:01.077Z" }, + { url = "https://files.pythonhosted.org/packages/6e/fc/fc040230b60529a5df349945eb1e4f8a201607a6e3d70f3465d80e801393/grpcio-1.84.1-cp311-cp311-win_amd64.whl", hash = "sha256:e44786d5c166944a53fb1fa3384d03f1dbade6f68007be6d0c5a1a0971cbaca6", size = 5225017, upload-time = "2026-10-22T14:58:03.113Z" }, + { url = "https://files.pythonhosted.org/packages/69/39/34a3e64818b1fdaf73b6c873f7d085969f20c2aff114c8909cc7ee0cb2b4/grpcio-1.84.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:db2dbe5380dccc2f5df967f31308a744e65d46e21b473a9c3ca033c4299ec3f4", size = 6381194, upload-time = "2026-10-22T14:58:05.289Z" }, + { url = "https://files.pythonhosted.org/packages/77/bf/5f1922cafaaaa7b2b6a0f6b0614783efa8502f16c8dd9c7b8b131a3dc9d2/grpcio-1.84.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:f7533921b52ef94210437dedd3911e00b7642ca8d11eda64eb1715778630715e", size = 12304970, upload-time = "2026-10-22T14:58:07.714Z" }, + { url = "https://files.pythonhosted.org/packages/af/f9/77e9991fd5ae7d754b78b3c8e8eb028ddc886a480b86b934ece85f727f95/grpcio-1.84.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e0dcc7b588e7b7dd3363317296983db23a26af8baa5884db15a10fc0c8534186", size = 6949905, upload-time = "2026-10-22T14:58:10.92Z" }, + { url = "https://files.pythonhosted.org/packages/a7/a2/af693a3bd3fb43cd97e4ad054ad5b117814c1a24cad048130e982a189f0f/grpcio-1.84.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:a92bb13dd1b31a16f631ab415710de59f404c37364c018e7486496fb449a89da", size = 7714870, upload-time = "2026-10-22T14:58:13.622Z" }, + { url = "https://files.pythonhosted.org/packages/00/98/456ef643a796ba04ad737e39a820c27291c238db87f7d168355dbdaf7b4b/grpcio-1.84.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:474408c92b27c823ea6aab2315e2ea52d5a4e0040b37ce1e65e89d9149c48205", size = 7121552, upload-time = "2026-10-22T14:58:16.454Z" }, + { url = "https://files.pythonhosted.org/packages/a9/bc/c98f29a74b772ba9025f13243dc9547807583b1d111282bdcc53bb4f8db6/grpcio-1.84.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:912694cac76adb4f45563b38ae4d06d77a2081e8ed5cb20a3918c1affba83c63", size = 7673450, upload-time = "2026-10-22T14:58:19.009Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2f/713bbfaf1cd7ce3a4626b8c0e93ec3f7493d8f52ccdb1ddb02fc98fc7d7e/grpcio-1.84.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f821954e4d89e97f7d51c03073d6964e177f2d11181550a5a22c082fac614f43", size = 8725415, upload-time = "2026-10-22T14:58:22.23Z" }, + { url = "https://files.pythonhosted.org/packages/b3/ef/21db8160edde5646a0f688c9f7e97bf6106965e4e2ae1dcfe9649fe2db01/grpcio-1.84.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:02612f3c19ed3dd885e2fff1236bf5629e5b43b5aa84c3290b0d5f62f26b0ef7", size = 8090355, upload-time = "2026-10-22T14:58:25.039Z" }, + { url = "https://files.pythonhosted.org/packages/34/0e/a762461094659b13a86a027461a6acdf4734dbbe17b19bb193191801b570/grpcio-1.84.1-cp312-cp312-win32.whl", hash = "sha256:380b58bf32707b4e3019c9567dab30375bd21f9a5c98aa24401aff1e73f3b262", size = 4444024, upload-time = "2026-10-22T14:58:27.015Z" }, + { url = "https://files.pythonhosted.org/packages/51/b5/2dbcb95b7b3622253bbb09b79dd87787dd05709303e571cc0eb150f860d1/grpcio-1.84.1-cp312-cp312-win_amd64.whl", hash = "sha256:1a221fe42e444cd0099752028810a289efafce1b5690dfe19a831d2a2fe6ea62", size = 5218662, upload-time = "2026-10-22T14:58:29.124Z" }, + { url = "https://files.pythonhosted.org/packages/0d/57/f25d35af33566daec7c9eec09c65e06f510cea2cc392bc2988af26250a4e/grpcio-1.84.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:9c24b1ebbdf867b33d74868044fed5c7c5a6a6e00787140b5f582572f7a7e633", size = 6393057, upload-time = "2026-10-22T14:58:31.938Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d5/68c3c5804bc7b05a0a544ac68439ff7eb493d5d394e5361bc94e60b6be0b/grpcio-1.84.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:af0f0c10281c2b62c68868e0a98de24f89c31308c68dbf19320d30c3a329aba5", size = 12302330, upload-time = "2026-10-22T14:58:34.375Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8f/d25a5d4d4f34e99ec31869ad3b988893f15d5965625cfc35a5faffb9889f/grpcio-1.84.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c1c04d2876ccb063507a976602bc88b5c31330982e650c620bf8e730b120c9d5", size = 6954893, upload-time = "2026-10-22T14:58:37.408Z" }, + { url = "https://files.pythonhosted.org/packages/88/f8/fae50f0e28281be328614ad772118290d0f804d9be5be2d5708e7ea8d9aa/grpcio-1.84.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3cf14e9cf02d12628f20ec205d699838c47e2d3741690fbf14ae626bfa32ac0b", size = 7723209, upload-time = "2026-10-22T14:58:39.537Z" }, + { url = "https://files.pythonhosted.org/packages/59/4d/99dfd9cfab7f748d52cfb9177e8967d5cec0a50f148d4e3b9a0bf0b1220c/grpcio-1.84.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2ce575e400e0dec9484f5d038fa12d6b3919d493c2beb897a23b9a32fa3bfd12", size = 7125010, upload-time = "2026-10-22T14:58:42.037Z" }, + { url = "https://files.pythonhosted.org/packages/0e/cc/7354ebd3d4c1bef08b062b9f07d154141c2b9043f677a219bc7943070867/grpcio-1.84.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c6e9be93efe763bb2b12a4c0d5fc13082f24de6cbb53a9d11078c9d0c8cdb2b8", size = 7675985, upload-time = "2026-10-22T14:58:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/37ccd26e1f7a7576f53627b45e222ac89ea3465b3f02836f480ac26e4dce/grpcio-1.84.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f216832aa84ad7e697ae1ed993c33905d27e27cd1b02016af1441be2091e287d", size = 8726955, upload-time = "2026-10-22T14:58:47.051Z" }, + { url = "https://files.pythonhosted.org/packages/88/cf/4887c033734182cecd12d3a1f6f9e7f84e9a5589a1ca2f564ff2ce8f2a29/grpcio-1.84.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a4a06d757e7ea5ddf636a4c40914aa36fb4f7e2a03abf727a16e61822331343", size = 8086854, upload-time = "2026-10-22T14:58:49.831Z" }, + { url = "https://files.pythonhosted.org/packages/d0/2c/34aca5188055d8e5342a5a672f6d321f331c8e1e944ea7d3650ee71f4943/grpcio-1.84.1-cp313-cp313-win32.whl", hash = "sha256:4052f86fdb5105ac8b02c77d17cd9beff78790a0c3117afdd5316154cf4348a5", size = 4443070, upload-time = "2026-10-22T14:58:51.851Z" }, + { url = "https://files.pythonhosted.org/packages/68/25/5c315847ab3bd6d3b9f3caad178596eb1affd5aafd02374813b27bddf708/grpcio-1.84.1-cp313-cp313-win_amd64.whl", hash = "sha256:b7452ccc592e40e4167adec46195d85387c8036f0aadf6f96ab6ed931205d0ce", size = 5220505, upload-time = "2026-10-22T14:58:54.464Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d8/bbc616bd123ddc2fd1f53f49e40cf537f7dd9c483f47bb21be61c4aa0ae1/grpcio-1.84.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:42ffbbc11fe2e4b02a4b51b090f8ca6727414748cf551539665b5592372263e8", size = 6393649, upload-time = "2026-10-22T14:58:56.534Z" }, + { url = "https://files.pythonhosted.org/packages/80/25/71e0903ca23c483aad588daa7744f9b01c149db9cbfa13eb24ef5f813a2e/grpcio-1.84.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:f2482ebe5e3a9c6d1f99859e135cc0ca370362e3b2a94cb6304f64943997bfcb", size = 12308221, upload-time = "2026-10-22T14:58:58.92Z" }, + { url = "https://files.pythonhosted.org/packages/28/01/a0207b967ab991bc009030763e3c7e6280cbeda1de06351e16034d34547e/grpcio-1.84.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b8fb04fe0ded6fb1c5edd4c90ed39193d7b6226214685111b25a153ccb33a52a", size = 6963837, upload-time = "2026-10-22T14:59:01.562Z" }, + { url = "https://files.pythonhosted.org/packages/38/74/a4171ad8c4b0e80371afb27503cad580d4cae2f116b56adbb9dafa7e3c76/grpcio-1.84.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ffc0be893d8df55f0d23afbd3b776ede444847260a4a00ac80326a32dac91ad3", size = 7722977, upload-time = "2026-10-22T14:59:03.784Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b8/73e85d67437fa4324933cc625a6a8e8e5f22fbdfe6757d949a6958b87479/grpcio-1.84.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ccd8be89a73d276336cbf223b22bd5c677d9fd15233100f208845c6a0c7cbc72", size = 7126919, upload-time = "2026-10-22T14:59:05.982Z" }, + { url = "https://files.pythonhosted.org/packages/03/60/734b781ca01f562e6e01c84ef8e762f1ebcfccd02b29be0b77513fc26da0/grpcio-1.84.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ced0c5ef2709964aca16e6af6f74f682b57872d2f7c7c553916c6b86dac64fa4", size = 7685628, upload-time = "2026-10-22T14:59:08.495Z" }, + { url = "https://files.pythonhosted.org/packages/5a/c8/03051aa012430b2dbd15fbf9af42482d945197b7886c77c557475d1bb4bb/grpcio-1.84.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:28caf3df58096e2cb06f0f7e672160e65e9df5e053f392594d93d33a15fe1ef1", size = 8728232, upload-time = "2026-10-22T14:59:10.709Z" }, + { url = "https://files.pythonhosted.org/packages/58/83/c87911b98ed766d7084d64053dc06f7855267f686b673dc0bb1ac8c07aee/grpcio-1.84.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f4b64099afaccdeeb987240af47aa1fc14f57285d3d2ff000c7327228624999a", size = 8088730, upload-time = "2026-10-22T14:59:13.431Z" }, + { url = "https://files.pythonhosted.org/packages/88/bf/6b18690790c0c4d7062749785bc8e515881a8a4058f46cb2925c86adc9e0/grpcio-1.84.1-cp314-cp314-win32.whl", hash = "sha256:116b4796da0e7fca3fdf6edf422ea7521c25d8c4be64ab7e3b5e2a77c832b0ed", size = 4527749, upload-time = "2026-10-22T14:59:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/b8/d9/ee50fe67481254c45c9b709b31ba468e4c90925018f4507c424369a9abd5/grpcio-1.84.1-cp314-cp314-win_amd64.whl", hash = "sha256:3875f4c4caf0c54ac370b66322f0bf2d46e9d21414be36ea8b7f618badb3b87c", size = 5359432, upload-time = "2026-10-22T14:59:18.331Z" }, ] [[package]] @@ -4883,8 +4886,8 @@ requires-dist = [ { name = "azure-storage-file-datalake", marker = "extra == 'proxy-runtime'", specifier = ">=12.20.0,<13.0" }, { name = "backoff", marker = "extra == 'proxy'", specifier = ">=2.2.1,<3.0" }, { name = "backports-zstd", marker = "python_full_version < '3.14' and extra == 'proxy'", specifier = ">=1.0.0,<2.0" }, - { name = "boto3", specifier = ">=1.43.1,<2.0" }, - { name = "boto3", marker = "extra == 'proxy'", specifier = ">=1.43.1,<2.0" }, + { name = "boto3", specifier = ">=1.43.117,<2.0" }, + { name = "boto3", marker = "extra == 'proxy'", specifier = ">=1.43.117,<2.0" }, { name = "certifi", specifier = ">=2026.10.19" }, { name = "click", specifier = ">=8.0.0,<9.0" }, { name = "cryptography", marker = "extra == 'proxy'", specifier = ">=49.0.0,<51.0" }, @@ -4904,8 +4907,8 @@ requires-dist = [ { name = "google-cloud-speech", marker = "extra == 'stt-vertex-chirp'", specifier = ">=2.40.0,<3.0" }, { name = "google-genai", marker = "extra == 'proxy-runtime'", specifier = ">=1.37.0,<2.0" }, { name = "granian", marker = "extra == 'proxy'", specifier = ">=2.7.4,<3.0" }, - { name = "grpcio", marker = "extra == 'grpc'", specifier = "==1.78.0" }, - { name = "grpcio", marker = "extra == 'proxy-runtime'", specifier = "==1.78.0" }, + { name = "grpcio", marker = "extra == 'grpc'", specifier = "==1.84.1" }, + { name = "grpcio", marker = "extra == 'proxy-runtime'", specifier = "==1.84.1" }, { name = "gunicorn", marker = "extra == 'proxy'", specifier = ">=23.0.0,<24.0" }, { name = "hiredis", marker = "extra == 'proxy'", specifier = ">=3.0.0,<4.0" }, { name = "httpx", extras = ["http2"], specifier = ">=0.28.0,<1.0" }, @@ -9077,14 +9080,14 @@ wheels = [ [[package]] name = "s3transfer" -version = "0.17.0" +version = "0.19.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "botocore" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9b/ec/7c692cde9125b77e84b307354d4fb705f98b8ccad59a036d5957ca75bfc3/s3transfer-0.17.0.tar.gz", hash = "sha256:9edeb6d1c3c2f89d6050348548834ad8289610d886e5bf7b7207728bd43ce33a", size = 155337, upload-time = "2026-04-29T22:07:36.33Z" } +sdist = { url = "https://files.pythonhosted.org/packages/49/c5/0a5ce655109cb96b8dfad36908a4e108d15f5dc2eff8fbc3146c4312e704/s3transfer-0.19.3.tar.gz", hash = "sha256:8326acc3d056d7f7b8a37110c7d2aea41f67e83f6ae79cd3b5fbcca34c726406", size = 166087, upload-time = "2026-10-19T19:19:49.751Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/72/c6c32d2b657fa3dad1de340254e14390b1e334ce38268b7ad51abda3c8c2/s3transfer-0.17.0-py3-none-any.whl", hash = "sha256:ce3801712acf4ad3e89fb9990df97b4972e93f4b3b0004d214be5bce12814c20", size = 86811, upload-time = "2026-04-29T22:07:34.966Z" }, + { url = "https://files.pythonhosted.org/packages/e2/a4/88f9e10498759121060b8050a1554753dfc04df39bbbcc7aad9ecc8d9440/s3transfer-0.19.3-py3-none-any.whl", hash = "sha256:24eb7535804306355e31c952a90022bf5b2f9d760f9a11062c7493a217c08553", size = 90252, upload-time = "2026-10-19T19:19:48.309Z" }, ] [[package]] From 2590f641f5c8dca9127deed2a90dd44bc3cd05aa Mon Sep 17 00:00:00 2001 From: shrey-berri Date: Fri, 23 Oct 2026 12:19:35 -0700 Subject: [PATCH 007/236] feat(proxy): expose wildcard model listings in general settings (#47979) --- litellm/proxy/proxy_server.py | 1 + .../proxy/proxy_server/test_routes_config.py | 47 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/litellm/proxy/proxy_server.py b/litellm/proxy/proxy_server.py index 78187a59e5b..ade719ae0ed 100644 --- a/litellm/proxy/proxy_server.py +++ b/litellm/proxy/proxy_server.py @@ -19663,6 +19663,7 @@ _GENERAL_SETTINGS_CONFIG_LIST_FIELD_TYPES: Final[Mapping[str, str]] = MappingPro "proxy_config_reload_interval_seconds": "Integer", "pass_through_endpoints": "PydanticModel", "store_model_in_db": "Boolean", + "return_wildcard_routes": "Boolean", "store_prompts_in_spend_logs": "Boolean", "disable_requester_ip_address_logging": "Boolean", "disable_fallbacks_on_per_model_rate_limits": "Boolean", diff --git a/tests/unit/proxy/proxy_server/test_routes_config.py b/tests/unit/proxy/proxy_server/test_routes_config.py index a92986392e9..7d0a7f3f261 100644 --- a/tests/unit/proxy/proxy_server/test_routes_config.py +++ b/tests/unit/proxy/proxy_server/test_routes_config.py @@ -716,6 +716,53 @@ def test_config_list_exposes_config_reload_interval(client, auth_as, mock_prisma assert entry["field_default_value"] == 30 +@pytest.mark.parametrize("enabled", (True, False)) +def test_config_list_exposes_and_saves_wildcard_routes_toggle( + client: TestClient, + auth_as: Callable[..., contextlib.AbstractContextManager[object]], + mock_prisma: MagicMock, + monkeypatch: pytest.MonkeyPatch, + enabled: bool, +) -> None: + from pydantic import TypeAdapter + + from litellm.proxy import proxy_server as ps + from litellm.proxy._types import ConfigList, LitellmUserRoles + + table: Final = _install_litellm_config(mock_prisma) + monkeypatch.setattr(ps, "prisma_client", mock_prisma) + _seed_settings_store(monkeypatch, {}) + monkeypatch.setattr(ps, "general_settings", ps.proxy_config.settings) + entries: Final = TypeAdapter(list[ConfigList]) + + with auth_as(LitellmUserRoles.PROXY_ADMIN): + before: Final = client.get("/config/list", params={"config_type": "general_settings"}) + assert before.status_code == 200, before.text + toggle: Final = next( + entry for entry in entries.validate_json(before.content) if entry.field_name == "return_wildcard_routes" + ) + assert toggle.field_type == "Boolean" + assert toggle.field_value is None + assert toggle.editable is True + + saved: Final = client.post( + "/config/field/update", + json={"field_name": "return_wildcard_routes", "field_value": enabled, "config_type": "general_settings"}, + ) + assert saved.status_code == 200, saved.text + persisted: Final = TypeAdapter(dict[str, bool]).validate_json( + table.upsert.call_args.kwargs["data"]["create"]["param_value"] + ) + assert persisted == {"return_wildcard_routes": enabled} + + after: Final = client.get("/config/list", params={"config_type": "general_settings"}) + assert after.status_code == 200, after.text + updated: Final = next( + entry for entry in entries.validate_json(after.content) if entry.field_name == "return_wildcard_routes" + ) + assert updated.field_value is enabled + + def test_config_field_update_accepts_config_reload_interval(client, auth_as, mock_prisma, monkeypatch): """POST /config/field/update accepts proxy_config_reload_interval_seconds and persists it to the DB general_settings row for all pods to pick up.""" From e14d2fdc38f7272b5b50c67c0bdefa2830aff268 Mon Sep 17 00:00:00 2001 From: Ishaan Date: Fri, 23 Oct 2026 12:36:20 -0700 Subject: [PATCH 008/236] fix(completions): omit stream usage unless requested (#47953) (#48052) * fix(completions): omit stream usage unless requested Co-authored-by: HootRock * refactor(completions): move stream wrapper into text completions * refactor(completions): preserve typed compatibility exports * fix(completions): preserve lazy export typing * ci(completions): run streaming tests in endpoint shard --------- Co-authored-by: HootRock --- .github/workflows/test-unit.yml | 1 + litellm/main.py | 2 +- litellm/text_completions/__init__.py | 0 .../text_completions/streaming_iterator.py | 88 +++++++++++ litellm/utils.py | 100 ++---------- tests/unit/test_utils.py | 36 ----- tests/unit/text_completions/__init__.py | 0 .../test_streaming_iterator.py | 144 ++++++++++++++++++ 8 files changed, 248 insertions(+), 123 deletions(-) create mode 100644 litellm/text_completions/__init__.py create mode 100644 litellm/text_completions/streaming_iterator.py create mode 100644 tests/unit/text_completions/__init__.py create mode 100644 tests/unit/text_completions/test_streaming_iterator.py diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index 2276efc4e34..76af64c8ccd 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -425,6 +425,7 @@ jobs: tests/unit/realtime_api tests/unit/rerank_api tests/unit/search + tests/unit/text_completions tests/unit/vector_stores tests/unit/videos python-version: "3.12" diff --git a/litellm/main.py b/litellm/main.py index 27700cf9def..32a7c290bb8 100644 --- a/litellm/main.py +++ b/litellm/main.py @@ -143,6 +143,7 @@ from litellm.router_utils.reasoning_effort_capability import ( resolve_chat_reasoning, ) from litellm.secret_managers.main import get_secret_bool, get_secret_str +from litellm.text_completions.streaming_iterator import TextCompletionStreamWrapper from litellm.types.completion import ( CompletionDispatchContext, _CompletionDispatchResult, @@ -169,7 +170,6 @@ from litellm.utils import ( ProviderConfigManager, TextChoices, TextCompletionResponse, - TextCompletionStreamWrapper, TranscriptionResponse, Usage, add_provider_specific_params_to_optional_params, diff --git a/litellm/text_completions/__init__.py b/litellm/text_completions/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/litellm/text_completions/streaming_iterator.py b/litellm/text_completions/streaming_iterator.py new file mode 100644 index 00000000000..ec1b96fd432 --- /dev/null +++ b/litellm/text_completions/streaming_iterator.py @@ -0,0 +1,88 @@ +from typing import Final + +from litellm.types.utils import Choices, ModelResponse, TextChoices, TextCompletionResponse + + +class TextCompletionStreamWrapper: + def __init__( + self, + completion_stream, + model, + stream_options: dict | None = None, + custom_llm_provider: str | None = None, + ): + self.completion_stream = completion_stream + self.model = model + self.stream_options = stream_options + self.custom_llm_provider = custom_llm_provider + + def __iter__(self): + return self + + def __aiter__(self): + return self + + def convert_to_text_completion_object(self, chunk: ModelResponse): + try: + response: Final = TextCompletionResponse() + response["id"] = chunk.get("id", None) + response["object"] = "text_completion" + response["created"] = chunk.get("created", None) + response["model"] = chunk.get("model", None) + text_choices: Final = TextChoices() + if isinstance(chunk, Choices): # chunk should always be of type StreamingChoices + raise Exception + + if chunk["choices"]: + delta: Final = chunk["choices"][0]["delta"] + text_choices["text"] = delta["content"] + text_choices["reasoning_content"] = delta.get("reasoning_content") + text_choices["index"] = chunk["choices"][0]["index"] + text_choices["finish_reason"] = chunk["choices"][0]["finish_reason"] + response["choices"] = [text_choices] + else: + response["choices"] = [] + + # only pass usage when stream_options["include_usage"] is True + if self.stream_options and self.stream_options.get("include_usage", False) is True: + response.usage = chunk.get("usage", None) + else: + response.usage = None + + return response + except Exception as e: + raise Exception(f"Error occurred converting to text completion object - chunk: {chunk}; Error: {e}") + + def __next__(self): + # model_response = ModelResponse(stream=True, model=self.model) + TextCompletionResponse() + try: + for chunk in self.completion_stream: + if chunk == "None" or chunk is None: + raise Exception + processed_chunk = self.convert_to_text_completion_object(chunk=chunk) + return processed_chunk + raise StopIteration + except StopIteration: + raise StopIteration + except Exception as e: + from litellm.litellm_core_utils.exception_mapping_utils import exception_type + + raise exception_type( + model=self.model, + custom_llm_provider=self.custom_llm_provider or "", + original_exception=e, + completion_kwargs={}, + extra_kwargs={}, + ) + + async def __anext__(self): + try: + async for chunk in self.completion_stream: + if chunk == "None" or chunk is None: + raise Exception + processed_chunk = self.convert_to_text_completion_object(chunk=chunk) + return processed_chunk + raise StopIteration + except StopIteration: + raise StopAsyncIteration diff --git a/litellm/utils.py b/litellm/utils.py index 7de7ce6188d..73057f140a8 100644 --- a/litellm/utils.py +++ b/litellm/utils.py @@ -218,6 +218,7 @@ def _get_cached_audio_utils(): return _audio_utils_module +from litellm.text_completions.streaming_iterator import TextCompletionStreamWrapper as _TextCompletionStreamWrapper from litellm.types.llms.openai import ( AllMessageValues, AllPromptValues, @@ -262,13 +263,17 @@ from litellm.types.utils import ( SearchProviders, SelectTokenizerResponse, StreamingChoices, - TextChoices, - TextCompletionResponse, TranscriptionResponse, Usage, credential_api_key_secret_reference, is_litellm_owned_kwarg, ) +from litellm.types.utils import ( + TextChoices as _TextChoices, +) +from litellm.types.utils import ( + TextCompletionResponse as _TextCompletionResponse, +) _CALL_TYPE_ENUM_MAP: Final[dict] = {ct.value: ct for ct in CallTypes} _BACKFILL_MODES: Final = frozenset({"chat", "responses"}) @@ -299,10 +304,14 @@ except (ImportError, AttributeError, TypeError): claude_json_str = json.dumps(json_data) import importlib.metadata from collections.abc import AsyncIterator, Callable, Collection, Iterable, Iterator, Mapping, Sequence -from typing import TYPE_CHECKING, Any, Final, Literal, Protocol, TypeVar, cast, runtime_checkable +from typing import TYPE_CHECKING, Any, Final, Literal, Protocol, TypeAlias, TypeVar, cast, runtime_checkable from typing_extensions import assert_never +TextChoices: TypeAlias = _TextChoices +TextCompletionResponse: TypeAlias = _TextCompletionResponse +TextCompletionStreamWrapper: TypeAlias = _TextCompletionStreamWrapper + from litellm import utils as litellm_utils # These are lazy loaded via __getattr__ @@ -340,7 +349,8 @@ if TYPE_CHECKING: # Type stubs for lazy-loaded functions to help mypy understand their types # These imports allow mypy to understand the types when these are accessed via __getattr__ - from litellm.litellm_core_utils.exception_mapping_utils import exception_type + exception_type: Callable[..., Exception] + from litellm.litellm_core_utils.get_litellm_params import ( get_base_model_from_litellm_call_metadata, get_litellm_params, @@ -7945,88 +7955,6 @@ def register_prompt_template( return litellm.custom_prompt_dict -class TextCompletionStreamWrapper: - def __init__( - self, - completion_stream, - model, - stream_options: dict | None = None, - custom_llm_provider: str | None = None, - ): - self.completion_stream = completion_stream - self.model = model - self.stream_options = stream_options - self.custom_llm_provider = custom_llm_provider - - def __iter__(self): - return self - - def __aiter__(self): - return self - - def convert_to_text_completion_object(self, chunk: ModelResponse): - try: - response: Final = TextCompletionResponse() - response["id"] = chunk.get("id", None) - response["object"] = "text_completion" - response["created"] = chunk.get("created", None) - response["model"] = chunk.get("model", None) - text_choices: Final = TextChoices() - if isinstance(chunk, Choices): # chunk should always be of type StreamingChoices - raise Exception - - if chunk["choices"]: - delta: Final = chunk["choices"][0]["delta"] - text_choices["text"] = delta["content"] - text_choices["reasoning_content"] = delta.get("reasoning_content") - text_choices["index"] = chunk["choices"][0]["index"] - text_choices["finish_reason"] = chunk["choices"][0]["finish_reason"] - response["choices"] = [text_choices] - else: - response["choices"] = [] - - # only pass usage when stream_options["include_usage"] is True - if self.stream_options and self.stream_options.get("include_usage", False) is True: - response["usage"] = chunk.get("usage", None) - - return response - except Exception as e: - raise Exception(f"Error occurred converting to text completion object - chunk: {chunk}; Error: {e}") - - def __next__(self): - # model_response = ModelResponse(stream=True, model=self.model) - TextCompletionResponse() - try: - for chunk in self.completion_stream: - if chunk == "None" or chunk is None: - raise Exception - processed_chunk = self.convert_to_text_completion_object(chunk=chunk) - return processed_chunk - raise StopIteration - except StopIteration: - raise StopIteration - except Exception as e: - exception_type: Final = litellm_utils.exception_type - raise exception_type( - model=self.model, - custom_llm_provider=self.custom_llm_provider or "", - original_exception=e, - completion_kwargs={}, - extra_kwargs={}, - ) - - async def __anext__(self): - try: - async for chunk in self.completion_stream: - if chunk == "None" or chunk is None: - raise Exception - processed_chunk = self.convert_to_text_completion_object(chunk=chunk) - return processed_chunk - raise StopIteration - except StopIteration: - raise StopAsyncIteration - - def mock_stream_usage_chunk(model_response: ModelResponseStream, model: str, prompt_tokens: int) -> ModelResponseStream: return ModelResponseStream( id=model_response.id, diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index cdff03af3b4..ad069aa987b 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -90,7 +90,6 @@ from litellm.utils import ( get_llm_provider, get_optional_params_embeddings, ProviderConfigManager, - TextCompletionStreamWrapper, _check_provider_match, get_potential_model_names, _is_litellm_router_call, @@ -2528,41 +2527,6 @@ def test_priced_router_deployment_id_stays_out_of_wildcard_model_listing(): assert litellm.model_cost[deployment_id]["input_cost_per_token"] == 0.000001 -def test_reasoning_content_preserved_in_text_completion_wrapper(): - """Ensure reasoning_content is copied from delta to text_choices.""" - chunk = ModelResponseStream( - id="test-id", - created=1234567890, - model="test-model", - object="chat.completion.chunk", - choices=[ - StreamingChoices( - finish_reason=None, - index=0, - delta=Delta( - content="Some answer text", - role="assistant", - reasoning_content="Here's my chain of thought...", - ), - ) - ], - ) - - wrapper = TextCompletionStreamWrapper( - completion_stream=None, # Not used in convert_to_text_completion_object - model="test-model", - stream_options=None, - ) - - transformed = wrapper.convert_to_text_completion_object(chunk) - - assert "choices" in transformed - assert len(transformed["choices"]) == 1 - choice = transformed["choices"][0] - assert choice["text"] == "Some answer text" - assert choice["reasoning_content"] == "Here's my chain of thought..." - - def test_anthropic_claude_4_invoke_chat_provider_config(): """Test that the Anthropic Claude 4 Invoke chat provider config is correct.""" from litellm.llms.bedrock.chat.invoke_transformations.anthropic_claude3_transformation import ( diff --git a/tests/unit/text_completions/__init__.py b/tests/unit/text_completions/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/unit/text_completions/test_streaming_iterator.py b/tests/unit/text_completions/test_streaming_iterator.py new file mode 100644 index 00000000000..b7edffc0753 --- /dev/null +++ b/tests/unit/text_completions/test_streaming_iterator.py @@ -0,0 +1,144 @@ +from collections.abc import AsyncIterator, Iterator +from typing import Final + +import pytest + +from litellm.exceptions import APIConnectionError +from litellm.text_completions.streaming_iterator import TextCompletionStreamWrapper +from litellm.types.utils import Choices, Delta, ModelResponseStream, StreamingChoices, Usage + + +def test_reasoning_content_preserved_in_text_completion_wrapper(): + """Ensure reasoning_content is copied from delta to text_choices.""" + chunk = ModelResponseStream( + id="test-id", + created=1234567890, + model="test-model", + object="chat.completion.chunk", + choices=[ + StreamingChoices( + finish_reason=None, + index=0, + delta=Delta( + content="Some answer text", + role="assistant", + reasoning_content="Here's my chain of thought...", + ), + ) + ], + ) + + wrapper = TextCompletionStreamWrapper( + completion_stream=None, # Not used in convert_to_text_completion_object + model="test-model", + stream_options=None, + ) + + transformed = wrapper.convert_to_text_completion_object(chunk) + + assert "choices" in transformed + assert len(transformed["choices"]) == 1 + choice = transformed["choices"][0] + assert choice["text"] == "Some answer text" + assert choice["reasoning_content"] == "Here's my chain of thought..." + + +@pytest.mark.asyncio +@pytest.mark.parametrize("async_stream", (False, True)) +@pytest.mark.parametrize("empty_choices", (False, True)) +@pytest.mark.parametrize("stream_options", (None, {}, {"include_usage": False}, {"include_usage": True})) +@pytest.mark.parametrize("usage", (None, Usage(prompt_tokens=7, completion_tokens=2, total_tokens=9), Usage())) +async def test_text_completion_stream_usage_is_opt_in( + async_stream: bool, empty_choices: bool, stream_options: dict[str, bool] | None, usage: Usage | None +) -> None: + chunk: Final = ModelResponseStream( + id="test-id", + created=1234567890, + model="test-model", + choices=[] if empty_choices else [StreamingChoices(index=0, delta=Delta(content="Hello"))], + usage=usage, + ) + + async def chunks() -> AsyncIterator[ModelResponseStream]: + yield chunk + + wrapper: Final = TextCompletionStreamWrapper( + completion_stream=chunks() if async_stream else iter((chunk,)), + model="test-model", + stream_options=stream_options, + ) + responses: Final = [response async for response in wrapper] if async_stream else list(wrapper) + expected_usage: Final = ( + {"usage": usage.model_dump(exclude_none=True)} + if stream_options and stream_options.get("include_usage") is True and usage is not None + else {} + ) + assert [response.model_dump(exclude_none=True) for response in responses] == [ + { + "id": "test-id", + "object": "text_completion", + "created": 1234567890, + "model": "test-model", + "choices": [] if empty_choices else [{"index": 0, "text": "Hello"}], + **expected_usage, + } + ] + + +def test_text_completion_conversion_rejects_non_streaming_choices() -> None: + chunk: Final = Choices() + wrapper: Final = TextCompletionStreamWrapper(completion_stream=None, model="test-model") + + with pytest.raises(Exception, match="Error occurred converting to text completion object") as error: + wrapper.convert_to_text_completion_object(chunk) + + assert str(chunk) in str(error.value) + + +@pytest.mark.parametrize("chunk", (None, "None")) +def test_sync_text_completion_stream_rejects_invalid_chunks(chunk: str | None) -> None: + wrapper: Final = TextCompletionStreamWrapper( + completion_stream=iter((chunk,)), model="test-model", custom_llm_provider="openai" + ) + + with pytest.raises(APIConnectionError, match="OpenAIException") as error: + next(wrapper) + + assert (error.value.model, error.value.llm_provider) == ("test-model", "openai") + + +@pytest.mark.asyncio +@pytest.mark.parametrize("chunk", (None, "None")) +async def test_async_text_completion_stream_rejects_invalid_chunks(chunk: str | None) -> None: + async def chunks() -> AsyncIterator[str | None]: + yield chunk + + wrapper: Final = TextCompletionStreamWrapper(completion_stream=chunks(), model="test-model") + + with pytest.raises(Exception, match=r"^$") as error: + await anext(wrapper) + + assert not isinstance(error.value, StopAsyncIteration) + + +def test_sync_text_completion_stream_maps_upstream_failure_after_content() -> None: + chunk: Final = ModelResponseStream( + id="test-id", + created=1234567890, + model="test-model", + choices=[StreamingChoices(index=0, delta=Delta(content="Hello"))], + ) + + def chunks() -> Iterator[ModelResponseStream]: + yield chunk + raise RuntimeError("upstream disconnected") + + wrapper: Final = TextCompletionStreamWrapper( + completion_stream=chunks(), model="test-model", custom_llm_provider="openai" + ) + assert next(wrapper).choices[0].text == "Hello" + + with pytest.raises(APIConnectionError, match="upstream disconnected") as error: + next(wrapper) + + assert (error.value.model, error.value.llm_provider) == ("test-model", "openai") From 013be3eb04e617359e56a462de3ff00d083da87a Mon Sep 17 00:00:00 2001 From: yucheng-berri Date: Fri, 23 Oct 2026 12:52:27 -0700 Subject: [PATCH 009/236] feat(proxy): add LITELLM_DISABLE_LATEST_RELEASE_CHECK to stop the release check (#48065) * feat(proxy): add LITELLM_DISABLE_LATEST_RELEASE_CHECK to stop the release check The dashboard asks the proxy for the latest LiteLLM release, and the proxy fetches it from api.github.com on every cache miss. Deployments that block or audit outbound traffic had no way to turn that off. With LITELLM_DISABLE_LATEST_RELEASE_CHECK=true the endpoint returns null without making a request, which the dashboard already treats as no upgrade banner. * fix(proxy): regenerate dashboard types for the release check flag The endpoint docstring feeds the OpenAPI description, so the ui-api-types check needs schema.d.ts regenerated. The docstring now says the flag skips every outbound request, which stays true once the changelog feed is read too --------- Co-authored-by: Sujit Nirmal Co-authored-by: yucheng-berri <293926326+yucheng-berri@users.noreply.github.com> --- .../latest_release_endpoints.py | 9 +++++++++ .../test_latest_release_endpoints.py | 19 +++++++++++++++++++ ui/litellm-dashboard/src/lib/http/schema.d.ts | 1 + 3 files changed, 29 insertions(+) diff --git a/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py b/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py index ef2a5f88e4e..14d75633100 100644 --- a/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py +++ b/litellm/proxy/ui_crud_endpoints/latest_release_endpoints.py @@ -1,4 +1,5 @@ import asyncio +import os import re import xml.etree.ElementTree as ET from collections import Counter @@ -88,6 +89,10 @@ def _default_fetch_lock() -> asyncio.Lock: return _latest_release_fetch_lock +def _default_release_check_enabled() -> bool: + return os.getenv("LITELLM_DISABLE_LATEST_RELEASE_CHECK", "").strip().lower() != "true" + + def _bucket_for(line: str) -> _Bucket | None: if _NEW_CONTRIBUTOR_PATTERN.match(line) is not None: return None @@ -224,12 +229,16 @@ async def latest_release_info( client: Annotated[_AsyncGetClient, Depends(_default_client)], cache: Annotated[InMemoryCache, Depends(_default_cache)], fetch_lock: Annotated[asyncio.Lock, Depends(_default_fetch_lock)], + release_check_enabled: Annotated[bool, Depends(_default_release_check_enabled)], ) -> LatestReleaseInfo | None: """ Newest stable release on the LiteLLM changelog, linked to its changelog page, with the PR count of its whole minor line (e.g. v1.105.0 + v1.105.1) from GitHub split into new features, bug fixes and other updates. Returns null when the changelog or GitHub can't be reached so the dashboard upgrade banner simply doesn't render. + Set LITELLM_DISABLE_LATEST_RELEASE_CHECK=true to return null without making any outbound request. """ + if not release_check_enabled: + return None result: Final = await get_latest_release_info(client=client, cache=cache, fetch_lock=fetch_lock) if isinstance(result, LatestReleaseUnavailable): verbose_proxy_logger.warning("LiteLLM: latest release info unavailable: %s", result.reason) diff --git a/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py b/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py index 47f81fb55d1..d5139263dc3 100644 --- a/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py +++ b/tests/unit/proxy/ui_crud_endpoints/test_latest_release_endpoints.py @@ -401,6 +401,25 @@ class TestLatestReleaseInfoEndpoint: assert response.status_code == 200 assert response.json() is None + @pytest.mark.parametrize( + ("flag", "expected_body", "expected_urls"), + [ + ("true", None, []), + (" TRUE ", None, []), + ("false", EXPECTED_INFO, [CHANGELOG_FEED_URL, _tag_url("v1.102.0")]), + ], + ) + def test_disable_flag_skips_every_outbound_request( + self, http_client, monkeypatch, flag, expected_body, expected_urls + ): + monkeypatch.setenv("LITELLM_DISABLE_LATEST_RELEASE_CHECK", flag) + client = _minor_release() + _override_dependencies(client, _fresh_cache(), LitellmUserRoles.PROXY_ADMIN) + response = http_client.get("/get/latest_release_info") + assert response.status_code == 200 + assert response.json() == expected_body + assert client.urls == expected_urls + def test_repeated_requests_reuse_cache(self, http_client): client = _minor_release() _override_dependencies(client, _fresh_cache(), LitellmUserRoles.PROXY_ADMIN) diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index f3821a2bb46..b27d06b00f0 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -5868,6 +5868,7 @@ export interface paths { * @description Newest stable release on the LiteLLM changelog, linked to its changelog page, with the PR count of its whole * minor line (e.g. v1.105.0 + v1.105.1) from GitHub split into new features, bug fixes and other updates. * Returns null when the changelog or GitHub can't be reached so the dashboard upgrade banner simply doesn't render. + * Set LITELLM_DISABLE_LATEST_RELEASE_CHECK=true to return null without making any outbound request. */ get: operations["latest_release_info_get_latest_release_info_get"]; put?: never; From 5adb0ed36262bbc5da5c440a79732d8f160b54f2 Mon Sep 17 00:00:00 2001 From: "berriai-litellm-provider-info-sync[bot]" <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2026 12:56:21 -0700 Subject: [PATCH 010/236] fix(vertex-ai): add deprecation_date to retired veo-2.0-generate-001 (#47847) Price-Sync: litellm-providers Co-authored-by: berriai-litellm-provider-info-sync[bot] <328147090+berriai-litellm-provider-info-sync[bot]@users.noreply.github.com> --- litellm/model_prices_and_context_window_backup.json | 1 + model_prices_and_context_window.json | 1 + 2 files changed, 2 insertions(+) diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index 90a0763f786..840576e8225 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -73330,6 +73330,7 @@ ] }, "vertex_ai/veo-2.0-generate-001": { + "deprecation_date": "2026-06-30", "litellm_provider": "vertex_ai-video-models", "max_input_tokens": 1024, "max_tokens": 1024, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index 90a0763f786..840576e8225 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -73330,6 +73330,7 @@ ] }, "vertex_ai/veo-2.0-generate-001": { + "deprecation_date": "2026-06-30", "litellm_provider": "vertex_ai-video-models", "max_input_tokens": 1024, "max_tokens": 1024, From f0f15404d5d29334d658a65d7dbb1d29183291bf Mon Sep 17 00:00:00 2001 From: Ishaan Date: Fri, 23 Oct 2026 13:24:19 -0700 Subject: [PATCH 011/236] feat(ui): unify gateway and usage assistance as Aria Agent (#48082) * feat(ui): consolidate gateway and usage assistants as Aria Agent * refactor(ui): give Aria an original blue sprite mascot * feat(ui): prompt shared Aria from usage and retire duplicate usage agent * fix(ui): keep Aria naming consistent and reachable across dashboard * feat(ui): open Aria in a floating popup with suggested questions * fix(ui): simplify the shared Aria Agent title --- .../_experimental/out/assets/aria-agent.png | Bin 0 -> 701399 bytes litellm/proxy/_lazy_features.py | 5 - litellm/proxy/_lazy_openapi_snapshot.json | 157 ---- .../usage_endpoints/__init__.py | 9 - .../usage_endpoints/ai_usage_chat.py | 627 ---------------- .../usage_endpoints/endpoints.py | 77 -- .../test_status_code_followups_usage_chat.py | 125 ---- ...ily_activity_key_metadata_query_timeout.py | 104 +-- .../test_daily_activity_key_owner_traffic.py | 128 +--- .../usage_endpoints/test_ai_usage_chat.py | 657 ----------------- tests/unit/proxy/test__lazy_features.py | 14 + ui/litellm-dashboard/eslint-suppressions.json | 12 +- .../public/assets/aria-agent.png | Bin 0 -> 701399 bytes .../_components/HomePage.integration.test.tsx | 4 +- .../components/UsageAIChatPanel.test.tsx | 83 --- .../components/UsageAIChatPanel.tsx | 385 ---------- .../components/UsagePageView.test.tsx | 23 +- .../_components/components/UsagePageView.tsx | 14 +- .../src/components/DashboardHeader.test.tsx | 8 +- .../Navbar/UserDropdown/UserDropdown.tsx | 5 +- .../SidebarAccountMenu/SidebarAccountMenu.tsx | 5 +- .../src/components/liteadmin/AriaAvatar.tsx | 17 + .../liteadmin/LiteAdmin.integration.test.tsx | 679 ++++++++++++++---- .../src/components/liteadmin/LiteAdmin.tsx | 262 +++++-- .../liteadmin/LiteAdminConversation.tsx | 50 +- .../liteadmin/LiteAdminHomeComposer.tsx | 20 +- .../src/components/liteadmin/agent.test.ts | 199 ++++- .../src/components/liteadmin/agent.ts | 23 +- .../src/components/liteadmin/aria-brand.ts | 1 + .../src/components/liteadmin/operations.ts | 46 ++ .../components/liteadmin/toolResults.test.ts | 64 ++ .../src/components/liteadmin/toolResults.ts | 78 +- .../src/components/liteadmin/useLiteAdmin.ts | 3 +- .../src/components/networking.tsx | 75 -- .../src/components/ui/dialog.tsx | 4 +- ui/litellm-dashboard/src/lib/http/schema.d.ts | 77 -- 36 files changed, 1245 insertions(+), 2795 deletions(-) create mode 100644 litellm/proxy/_experimental/out/assets/aria-agent.png delete mode 100644 litellm/proxy/management_endpoints/usage_endpoints/__init__.py delete mode 100644 litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py delete mode 100644 litellm/proxy/management_endpoints/usage_endpoints/endpoints.py delete mode 100644 tests/integration/compatibility/test_status_code_followups_usage_chat.py delete mode 100644 tests/unit/proxy/management_endpoints/usage_endpoints/test_ai_usage_chat.py create mode 100644 ui/litellm-dashboard/public/assets/aria-agent.png delete mode 100644 ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.test.tsx delete mode 100644 ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx create mode 100644 ui/litellm-dashboard/src/components/liteadmin/AriaAvatar.tsx create mode 100644 ui/litellm-dashboard/src/components/liteadmin/aria-brand.ts diff --git a/litellm/proxy/_experimental/out/assets/aria-agent.png b/litellm/proxy/_experimental/out/assets/aria-agent.png new file mode 100644 index 0000000000000000000000000000000000000000..870773933e3dd4c0588f15587d66c4c14b851829 GIT binary patch literal 701399 zcmeEv2{=^k|MxjFV+=-y&`9ZEQo=a1qEur^WJ#$|Vx}2e*+Q1q85E)tC0Zoyo3x46 zAxRQ+L zt0M@a>E`M@5kW|8iXRFY?kxURIt)PqLc}6RKgD(CoX8n)+X$`_F*`Z@?@;@2s&svm*aKYffy`aK+5woM0XYmxyOr1@pu#E3TMtYh@SA7g@2m99(3_ zWs5^tBG`*MzjrzFp5;VwzirAC#l;23#)n5o#lZt=mwF!bhaO#<1(} z7deIZRqV|S7e`0IRD>>O$AxvaOrKlj;Pt@M{8s6)?Oi0e-)}~UWCju*DGCj?j!Ou& zNQ#V5teiL_Tr$HRZeWSwlK8NZCN?a-2^JO{9vT+kJ4gr*PIQb;8fk)KI0hdpeoU~C z@Q8?!CQ;E*!6q226%{wqBrHBYX1KL=VqzjQk;9CR4Yg+DIIh^uWR$vnj3_<~lZ-U+ z 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

pIF9rZ9jMfT_AB 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

lS4hzCz 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�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�tnWURCq0HW7vI3HQ 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

Gt5iw1-;vY&Yin+IlU}Vbkqbj#RmjG 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ⅈ<2Zz9lgqVO)&KB%Q$iZcC8jWD(Zo{XPI!60O^}-|_(YixMJr+1DuiBw3pdIX zJO!VTs2W64hH^z?*qGwY{$-!H`}%S=Z`E?(E15Z4V218bXHL>2hI;p+wQ;M8(0vSC1)E`vlIy9@CqYHu#nD8C;)B|`-h1{P`% z(3`5HfuJQ=$#B9?3-+(+Nk~HuA?u6lWjBhfn-C<8(Cmfc)O+_I8fr(XWwb0}e}crw@!ZZ>*G_|&jUC#+o5xOW3KvzsTg z73M*{bPbPz`FZy6nSYlRS=Yf!5JQ%+)=DSLm+Iuyn|M}ltO30`QI65rpwr*+UK3{D z{w^`d6xOuQ9_C(@UApgi+aQc~$tZ<&Q_g`2DmqeMw+jJ)-gay6M&va>*wHbf>APp# z?f4lnIk_jin?NuSfx;i~4P35Cvnr)bgk@A&y0SUuZ@iCPNH30ArsuT~3I6PH0 zT(=9lV*jLCdp2a}y4opb#&1^{ZnXaWy9QWdT7}b6yhRugG}LRS<5uUXI4YJQz)aL? z1Dq1Xi^3jo0WBp$q*Y}Dn7%*FkP!9qPrY(gxyCw}H8G6k@+HU~Ej^{3q-RG@MVm6{ zZcXvkfkq=N52m|-5uphfb!xgx?!NWJRLZi0;6sV^kO6pS#&c)RdRz5{-zl!-oDbRg zbaUPM`X@7U89#A1JN z)IRXtj@7!5woYrWVY#hM!t& zV;*IMq~nz+-4!aqILx{Z@B-=#T?-$dQ{b@V2r*)6!l1#5j9?)SJHu;6+Ji%-7G!Tg zH)@&8;<7LG5MeDGy$`~|&lRCC@%otWZrN zLup$Z6wS>8vAuq1oeC5Xyffhf&py(>YwM#7am@UX7XL3*Zv)=cect{5&e5?V*>aF& zFmjyIBU>0!1jvF4XuafE0as24CCNHW!{~7=AfzIN&}X%mHaWsFfgl#y&H&fUA!$m} zb;|^#e!`wSi|m4HhN;^mdmg)_*C^>syS8bWyQNuP`h0G)>-z71UA_8}f-Rl%d%5rL z{e78T-CU8g&JY4{@DuYIqb4Lv0@jSO?9)*5ku>^6lSg+#re}zWS6pn!)WiGtmjIL? zT+xpCkAAa*L)=Wytlvq@7$oSr_SsUSI^v~8B4!(0H_bKr!ur=Rvuf0Rw+gm#1`kN;w&t7OY&ga!0(Efay?N=& z3a2b6+|5o8k(ur^tnT_TSme{i>HctO@+C*p#kW$ymgxHu{@r^KGaJr zx(ZN5z|<(OoC;QEdKG|qQkJyWX=9wndmmiX-*Qr`#1E1XL7E72@Xp^xw3m-SHi=I> zAMU%DPS#xZ^u#AqI$e^5+^-V4fHYp5_SAXqG7U(~mC)OHt2{E>dtDFOFAV&9BtHF2 zAX4?QKO7!^;sxF5Jn|RwBU)=Dt`%Ic0q2B^5Mdbv@C0zzCiA%SAE^2HXj|&@!zj>4 zWoMq5B;W8J^zJ-C%xQQ<6%%(ivL6z1tq+pu;jVGXNlFuv!}fsmVBV^W#*S}D>M8L% zk^+Hfl=(W=#V}DU%0fICR=^VF_=W(9Fcf>C_IDO}FSp`u$KSx47~>#R@iZ=t=(?Jq zleuCf&GO*ca;k=05D1ZgP&6&LEkU%!=ZI4Wzop*nu5=wuix=#YlVA(tBniKU6UkGe zbUm$MT|mT^2Jx019pOkI9)YPl&=Aa!9XKQ~sEu@4RU~QC=km#*j@5{jplgUPVBx)) zlT5;^YouA#I4`l7wDcBJGi7w7`|6A35oUOe^Q!@lg`Y_~h2SIp?iqSG^cAmK5IUNi z-fP?VT}2NT!L+B}*zk$J;uPU2s3K+B@R@3Ehb?U{TNkvKjfb z6%=+C@@NZ5kRU6yjPqATRqWXO@i-L+@-V6cD3`E4;igeWkdnnN>}Ue`P}jdIZsgAz zCR@mj!!g2AOsENZAr?E0GdVhWt+c{+<6AlNI zhM|CuqKcA{GmfsLLo~aByEl)y)395pPi@-WYoA4MRM9N0V87-RXQ)3X8`%28gIiczrG_o62f7`x`F^OOuI;AnIW43u=Wjt%_ z+rQIW>(|0&R#e$Qnb-GCnxcc~*Z}fjGQz(0{pRB8o1gjHFaG}E7yfg}M<4v=jwhq7 zO>^(PGuU@*d~LuCtFCM~42BVO4Gr4^7kyX`=G3R(spzJFj!t~0LA`b9lt%zwBElwi;~hQ;lyJ3UlJ|Ag!aDm#@u}MDN5A{P2W$6U zo_qEmjiz2T_tRZw&bT>}DXDsD`i}$ggLSbL+ujbRewBSFS^oM9mp)vtGV_is@t?>q zwlnJ<-JH;;H>b&e^livrSXuk)hw=xPuKSzkzxaetJ$r)%HcNjYtwmEuGP5H9h_nO% zf@`wkm~Lg}y1iJ&DW#d@sLB(%@M`o34AnK%T6O&4EC|Aq)a;z=#$*Q2L8u1)ch7Xj z8MY+od|_R>FWOSZv$hd}y$1Bl&BS1D6H%0G;cF?&7Bs~nD&7yS{KCsEd-_jd^O(o|i(((!p!P(YaP zma>0ZWCY6j#er6b9||+&p*;QCuq}T@Q7+&N`1q((j%{bT9z6(-7(4t1{MkE*lN|$N zdCKEj`)|r?eX+8CG>$fu@mGI+rnc^!_4@G>mR<=t=vMd$f=^6b+>gl}mj(;mmRv+{ z8(l?L+8=!Ajjunl_t53RJ*)ob?Z2*GYYaK={p;IZ8?0bgdC;F^a$lNxg>s%L73PKj zMx11A>VX*ZbK)MWi=1H?X%t!l_{#bdT1ClX=eF;Dq~kc*NNRu+YH`}GKhd)$Ij*NiF$bbK5> z0>|_A@iWJ6Vgx9c9dI@kW0*e$$_m{hsM++EAca6@?Ut>L>Ql@fOep@m?l9P}gqqW^ zNVH5Ai#UsS)1b_hHA;WDqe9H|+i5c(1q1t^;Tt01$Nh8M^bYI@*icLm97{q6q=3vW zOre$ABHb~7^v86u-bNeyINu4OKGkHi^ARucZYNC|e#YFB%+5zB31}4%gM-+)dM(;j z6(m4M#4ng6bagC{6+TU}Hsp5|Mvee$w9bn;mMCKyVq7HSAIgEoS>o}d9WxyxTx6|) zS-e{*e0+j_fw4R8odVZUP;R*uE5L@!b=Cuxigh!$=HLu1Wb_%!+igD`|K~ei`OWC^ ze|hr@OIJT}tyB&9)J^-IeCpzYi)H_@dhm^}U3l&1_g-DIW$qsySv0=4^*@6+C)OWTHD+fPdc#!A}SNHFR}lH#E{Qm)~$2WbxQ$>96JVqmV9<)l12 zVrFEdilQ8HAT<%e0r_)f0&8gbj-Q@;ZH&Sh?mRRV1jda|Buo|JO7)w3E%s9h*tR58 zirrrnCWa<@KeI{P_Tk9 zcm6{RFON4r@$jGi_JdScc+b~g?%@sp>81;>w-;|F14y`kwY|eO;-2H_I;>U)Z-YGK z!=S4y_53dvf9>g4p5_0HgT@`a7@&OSn;@P8T_#fk!^@7XaLj#qWOxjErl+XO@gj^h zY~o03^2{9@2`;jfd2q+6Q-JzBaSZ^EtOg*^IG-1O9@CzK^YO(}d{N*&-iHg^C8owW zf@oLp>yh9>zgZOS*s*JzkW7*31%dpyB|gG}7}@}lv&sc4Uh2@0fY^|VF`_SmGM>UZ@GXu6kgP?Fj?&;eq2i4_4qz%?W1_WB z3Dh&aMqrWxy#lzG6s`0#XovYgTal68NY%jH_SxBS0@eUV(#G_V?rxYkNAo1_zp}S}!)wdG`umG3Z+~*fpC7;SmB2^)o+z2Aeg9)0&GJ(*9}$(%QsHwR z)iOr2^0Xt^0V4AtOC;CDQaoU2oHUm5rYPP_)AD-S$5(8IgYQzIToQuXbjFIA2vdRzFZ#hGc zd90 zwo5(ImlJa=D1l50*hDIKej7Ljq#r~Xp3HDnz+r%guvYF+G%S6v_0F^ifxbTrl?X`` z&;#~+IQ`kPvs}SY$(8{rbfi40#%?r0>f%%?!(x{32+{eGiGwgJJ-sF=X(DZwUFT&U zghz@I9~H{fyJtFXCqagw9^{(!ATBPrDi&zHLAjXo9Vvpy2@WKjCAV~n2Aelsckrg( zVR6^HdUgt|v5wp^)-$jKG#8kcVGZhrXb^Bs(d-m7tVvE5j7(@?76_9@qA+E$$y1*s?CoU+Kp`)-yIoM}sNK#6 z)0f?sCr8}~Z+W8*@6l21nGUlpQz7Pa*%BFc6CU6Swgbb?LuaN{tF#aPj?!A;$(|iK zp|TB=5)#GeeLZ~8AtJA6aj-$PxBA=n_M?P_CSHWL*S^4Nyx+89q7Gtc1%+WN8eGn0 zc%%JcXq&n(&Mx%M94DyGA^)iKFc4_rKe==mbqr|!7ucZFkIOh?MTxSDw%W6< z7OOL~=5@?Ym8S>|U<5|sdjVT$bBqk9yH_~e9s}=h=7RI2;fRq8Sx?RyEfU@h+TFGg zS=~iud2VJ1eipf~PC45*BaeyrCoyOc*MMMV7@o(wD*%_9DLsnN1?kpp?x~@Qi6`YI z^+@FjMi7SxRqaa%iirk}_~&kvFF>UHr7iUf01O71KXsL$w4!)-%Qyi07_!A7fWbT8 zUV~nP94V>$0O;fZ4!LMoBr=D-Y5@S2j;(OI zy0RT{d^IGXo2hU6A>aW}KrIc6iIHOiDBPG$7#sW!NTJhfILL9dp)7TC-s|3VN=L_I zNi`Z`Ipz;{oHXXYl-&5+2z#k$n?fOZDH`M1N|8DVN=%VyTKXbjmaj&KIrnfv zfP**iH^!Bd-DkU`68!5wJOrfjair2rO7QwDV_3XAr_Fp7^a_K$EujVc;|PT*4$9Z= zrj2^A%W$G>bQkrSWQtls)Un1!A=MWO*g!*!_>h7S``+cBA{d6ij`nk|>RBpn4NyHV zOp-egI?@y%ODA5X{w3xO$iw3F&mJoI6@;?Nkqu3`6+#Z?*eZPP&|R}X zlv$I{6ImunP)VLlbr?{o&4|VM$A}(e55YFzyzHmy!sryGCqqVZ5&oH8O?fIjR%UMU z`L+2f+KmlYJCPc>YjVTUznd42|NOBxPB$F(d;iR}YVE(>>f3k_=?&)NvmG z%+zvWHaZ4e!+O;Q2^lPq-2pulFPWh{^)OQvE-Q+?YoTA>XYnN*(9{i z%q(ltOgheOJ6&Kf>Xrga2=&eEf6(a0LnT)`S@kpoMi3c}f?f&gjNgZAGy(Sqw6Ndc z3dP6*TRMoA7d%CrVO-UBH_qvrt;Mn0{LsK(i5fx!HD$cZ#v6AOU^`@HDm;e7;2{G~ z^!Op$Q$-~+x0)LdB=bdtrBl-xX6ITmRbRo9iMHAYUR*uwlrL6RbBqj@y6i&VSY{!% zXF?Z%gfUDlRbcKE_KNR5pj>XDFm=YsNr;mN&7d~t6GoV)ZV>O*+;9ROJ<35SeA9Ti z^S&HxCtBRaW^h{|wVJ%2F(B|BC=L5EsIIf3`1@2K;#d*BPEsCX%J=aBVVMdb$N#;o z(w@0hraOZd%qTPJKFTdloio)iGkjG?FJLG|kAyR^%5boTsmQRb7_%u#1g-UgqV?eB z2kxryGvPJ}V{at|*q(m>kcND=^AR_0a+K2w5xyqVW}X8xP2e=;a-^xj6bCB=YD3}f z8;+7$#S~wV&oNJrPETP?)QJj^;~bubG*wg%cnR0zc{fqpR+bKnnhb9VrC$U`BB724 z8i8v}S0lXwhw3&0A}oHQnT?JDor&W!fq@p(KkOD@AGV4fuA_=TE@nj&En6U7GW04^ zDRgcfmDM+q%JIKO9enaz^pa#Sl+mBbvm^tyr8&CH=ZM_b{h=EMB!I=XnDo8tzUxi$yU`6#ON(1vwj{#6>}iv;W>$vhqtBB>6f)3Pa=f`aM{U+ zGX@lkkqy>jgJDgrj>m0vx-dK%OcyQPGy=VrQ@m~T+tKfuD|!MwcGqxx!$aPFhTI_y z0(sOfzWO380Km7X!mx;Pp?)So39z0N2^;lDjz6PDsd41aTmGr8!%>zCv)?EMo;Lx{ z2(S?b9OUq#>B0ks`Uymm=jMoO}~eO88lRPXb|Vc`TQ`xkfP{7 zGP*q%g;9W2n$4X|=z_zRJvjd#9nk&)eA*oq%URI?rMI3tM9o9%PdlOUa42t@DXw+Q zqLIj;eC?zBDat?)UB=dxLi-G5H6Cot3%tSwTOO3dz-(b;K-Lcco629>+m}W<^pE=q zjY8w~^k>j`ZP@=cE&NJO(AxG` zZv!sq+XW1+^MZ8|6r_VPP;Hn76A7AiDLrjr+Zj3r<;1uuohp0M;m3s-k9L*7aFaxD z#)lR8(IMureiJzu%67DtVy;Tn7o7LYBpknzK^Aa#wVeyE4*AQx8L#m!Z5 zQ1Bv1$*oD9IlPaeof(CWXqn+IPfc-!HlsHS7n37qZeiwdgG`u9PSUAv=<3d#Gw?UtvL(qbd>5!@rDk{Xf+@LO=?iv1_0SdHFE_R5Uj2|+-R#SF8 zjw4z~oR=;_=5Lr-CklO{r^PZ4OI2e8%igP-=`n8o%=qLQg39PC}|vM6d3oIP5r*)C6{#dg_Tj(NCj10Z{R zIIvn9NQR2@=7K7E8C!Oh1Q;NPITKz5MQ0)NKr9r3a*MOV>ZyzA|AM;i2Y zDvB-*4=?)kne_w=$kSJZM+zfEPuFGm|Be)=Gda{u_0nJJ`BSh~m?1&HnY{$KaT^Dg zvQ45$<|)nwtPc*&2CwtVQhDWPuWPcaDF!P%t}0_9#SCUq*7y^X&{BNO6eW59y*q{e-k4ip>(}%9_wT7+eX24IN;RtvVD^tc z1%y1%6J9gTTAwva{l`;wI&P;<8QFit>%8$o-;w4(XxZLdC>ED6&vEire&>(h%-i^4wf5?Q3YVT-kl#tDf>jT z$Fh+hcJL;@4HAxD7Wdem z{z#5<62dKFWab=vv5OpY3P6XA42lY&xHLr70x1;q8q7s{p8*Z4rFRxBNCKr9H(WI{ zf?k_lEDlA_SF}O1r0SGTD5G-7rlgt>HvOS%2yJ=E^Cb7kbeZ&lgd(%(!5Y??kWgdH zC2*<2(TcENC?uEm#+Z$WH3-g{Lcz?N#gRt4-5=#0uwvVBM? zi<$B{_H?_{z!C--a6Sh=PBSpRS9}5Xbf4b_O6D#?wgMZaQGu0mxB?g-GspWAzvS&^Zv4!0i??hKP%va%m^>6|!rT@kLEz^K5AZg?&k0b15*d|2hu7bYy% zEvtuzD(|dM>2B6K^x$Z7l?~96aA34@4)U$hPP=j7Z@h_T;6@`JqI6lf!IkgNU3&RQ z)(RwADFfdyT2uA+e{t=xeDM3)8m-+5LWy6e1o^Ayq~b)R{V@05vAI>!4+K0cNg!5o zc%=x#Zba6fOHVO^_4?e| z&aJve9g+gQq#2IJNIYxo+1h}k?9=Umx#7j9MDeUsBAF%F1X7?6ntV>A4A zSsnzQg^LPKGPymTc18h04Ue~)3ph*)S-dzQ^-C4SUqHGn_Hk7n;nKKlz8Um^2skzx z1U#Xbb^&^lbIF6Fc9g#YVg>g{3EIJ6i!|POP#}mFWeA}$d1vi<+Id#c>KxJf*cKb= zDza}*E+#%)r>Z8LJ=Iy??(!VGR$DxfZ-KuxjJ*hx(m5v08C!n1v9H3NJJaJVTr@_6 z8@ElB=E=_%dh8#5i`=yh6HhnLc0uyojr~B8JRmvxxe+0hS7ka*s@N;D)#GQ^Qaxg( zjQbhv;T@>DuRcD+X{TRrgx>Fof_)N9)NCSpHCKr&T)7NqQCAX~fl&>zqc}{B@bu}m?n1$An2xQ%QbPFBNb5OFPcc+__l%;-)M4}949E!u|9Zsj zvPDdt_c_MU<*~woe>yq6^XqR0cGSDWEVu!I*6^C0P3841Wyi`G|&d?!|D2-)lv;srgv+Gh0Wv4=NeDTm`{?FqTwzO

TL>dX6@}P{h`@=pecyDz+KaAf<`GGu#0_Dgd z;ecuwtz-B=FXq3B#55dgOR78L(pmEBrYFEtmkHoG{rDqy(Z=c=qAPC&S zJUSY~>CJG*&oT<96maQf7ws-CUJvXmYQ9P}I%bn9RcIPj_C}@hzWjm=xl;= z7Z%f5QF%x&$=d(~qQ$VM93!FF@1WUW)8F}MW+QnhCW)Mf>65qx%ANd5ZD$(^ zUsWCeeXM>6A4$JdIJM`N2;`3n&Ik!VpENUk3JzN8hAD%D3YZMdvzi?3`Uj$;<^yf@ zyH3L_cC^jR8m^q9P#Xi7CJ(+Uq&OTo9!tcI1^=RII=4}|0WJWx>=-=iFfXVHw`Y6_ zWo8b`N#aK>nX+KkBrF@KCzz2lW5XM~X-M*q*Djc(1M;n&P|IM#|eb3+j!~OsF zD_q#GomhDEHnZcSAFuxDePhQx^DzCw2jZqe)Lm>`1)fRO&A>B^htVT9eqtMMm6Q9U z5_eXnAIw-V9UW=aXLQuLgZJ<;1}}*?Mx$1zCIGypn)gI8j5?%+h{Vvu?`Y=vN-6`X z5~2Bv#tvLUMmCW_qAeYvR!N<~I7NUv{M-~bkf74kF*Hi+WMU0bpKx;-C&9v0?R3`! zzArg9vuK%!qzu6Hee&lSc1d5#Pi5GKxE+}opXLv>oaT?8E8DRk`6^aZGk>>;P)rDc z$KHp7Ru(Qc^4BBNnXFhDaQ6e>Zed?v3l&+FJ1S+2z){S`6(N+6cf}9dQPyk{DnltL zI-wRU|Agx*n*AC}hR=kGaBK5jx`rRQ(!AmDsit~0w3L5@)c_%!NZ1dF)KF*E1By*Q zgaiBXXRz5gZg|4fU57>i1KNB;`!2roNx`N+_lN63Ip|7J+7)H|V`};Xd`c(E`Ry3t zckw2^QFQk;KunT+DUJ#zx-f?*kL0Ovq{z^N+SA2q1^%Gw!FNS#1)Eo7Sm5&1-Jlqu zZ)sz)yvQEFDgQ{Xa5 zBLU3CkCZrUchr-$cq9y;nMpKILiFaeP*}Br5xWUfPI8(UlS3!o9C`HXADnvjcmMwR z@wKw3}nw(nH)lkig5L$^_I#LBkxT3ZN2r ziPin>KWne(e12Qq(${Onykww( z83l)2Nzjmyp~*!*gnJX`b)197%dIOJ*}ln*K704q$+V|=0;B<1SVx;}l{8MQDtu2Eg&|w@-i}YgCKJ4iaH2*qWl2))`nnUV4==lP~xWljpp;efsx!0c>g zKumy)3T}y^BrgD_4qFC;HD--v?MQwt7z4-{$pD`v4AF?8ot0jV6NJkXBGHzRANH06 zk>E5Y-F{5`DELRno`6gGRfOO;?rGviMZF(kF3yy9Zw$HyH{hOr9Kw(}di;N)JDnNf zSDfLD|9<9hh!h(hVNi7N{$$C#7np+AS=AoIKcJ|(CRxfu&4W=@E<*)YLZ2} z&KG{$3|CLS4Fq+Eb0RG2>+QGg{)%rskA@k>VD#O|G3<-hG@{SQ}1H z5eG#9aNq4yw+f?f(}&lD#pB;l1Q7{nbjo9i2usKo)>06~BVyTPs$xYnR7e)}(QS>=J(o!kX zs>Tw!3;GUlLpBAruIgsN58@fPVSHC(n-w7Pta%dE5N{VJU>X*3oH(Tb!H-^`eq`d; z&2j|-5MBMS9Zu2B%Nm6C;fLeHXb;aqjV=P(onU-uVrbV@QkgT2cdl`nZJg(4_+KLN}n24hiZR57-*+vyxoLOW2Ic@Rf1dr-(CL)iqhD z+R=n5R3B0NLI==-2=TK;Tk5V$XSj-2Aoa&O5O+dI>>o@eb*`5vreNm*&A11{ za%f`3ph`#bj88TTl8oc-HuRRzeMaJ#myDwp1L9jZEfh_(UYcZEQ0no`0rJxng?ukb zCx-GS5-bV}PI|_FeAAQyaR-}#`PywwFh?yuU`CxsF zQpM}-ToR3okcEjuA$KEA7~3Uvr3jB~8UZBsWsNt{@j|(X!mk)rP*Xq}dg*w1$wh8Y zMxt{1p}%0YiELQX?$ew(i6Q{($~~;z^KG3`;O!x8oLC zO0z)rBj*X|5uG-Wstmns3q=>eO`cuu*9*`xE{srFDB-|MG`3iofw%cMe)$GYN#MR= zV=>@c9v83LGEcH?(WU%tu|1w{Oc8}d+29;r%Geio1_l)KVUqYrxTf>vd3O=&Dt@b7 z44Kw%Ag)5mML!DjZK9Ss*6{!L3o$m?%vi+S%KL(b*kE$dd%N?N)Dxu?I8R^N+mK8; zOs?3Fv-;bOl`q+v3n#AXC4e^or8TA?rx-2 zgIqWtsVvh6{ywu*Of$G!_A=8DB2TryHR%STxCrEe#fKiIk9wAG9Z6imf0UedHU=zIYqL)hR*=k!s@)e^Qp zw;x4qN#(@%68emVc_C+ju;kbZ6fYF8V8RM-`l+0%0hx7vze-g2$~$ZPE8KP{7*bH> zdxpiD8|AGuW;e0ag~Y)v3oyUDJtfx)Zcr>DG8?bH=eMPX+YE`BrBTQAwSiN57QLUB zm~`5%olHEEAj#-395SXjEXs>%K9*Sj8YKU01xQJKwt$8%Gl)x1;G z2cy^}T;cU$F2Weu3Kv0bHUt2We!4V>%nxJWag;tAn)j6PRS?M9&r zcFG|96!L9mr?Va`G)N+n7hxP}pmrvjY|QV9a2!(f%kKwO;#LRmgjvCa7(?e~E|Vh;TP_qnF(y*y-P(~?#^I*XF>CG%lPbV`*R~w7 z;>`_H%X7sb2Ei%F6Ri?^y9?-4vngLMG%!XhaG()GH+jm6RZfvqziN;M1h2QEX!ki* zGtW}|7y(0zeEOn;K^#-qi3f3$WDT+3WUjNEYq*Y9m3mQf!@JL)0kY)uwQ-ox>c}n< zp$xSgfQDQVj)p>toHMQtoJII$X)-Rvjt8Q~AgzqWr^iQq#{kCR{NXUgGF{nGZ~kQB9bN^q8WwQ6YzVo5{wbwgn4E!E?f9;UrZs?co#(> zX{VBOf@l(kUq;xWGXno?D_ESI8q>oT5FIm2FVR(Q8y@O!U8|y9#RV@GB=3s}YrC)l z3ryVU$k;(#nDRg5f@S5Or{?3dVbBa3lJ>wP(nf6xjT+h~UR7Nf4sI|XR>!ALtIW50 zewTeKYbL}h7&OK(x@m-{B=@yq=zK5F2@k9&Bl#bCrm*$P~(g31%@17dGa>jVJ z{RV3PwxIU#OS^Xsetc$xE^)hy@}E=9)L*A#P#YVwa9lHXs&1yto5;mrr_W(fM`*#YG z&|TpQ@w{q`A%&5VJB@=5G8+`;!U5n9JZF3|+i=i`Q-yIN5YN+#DI0=$zsF^2RWL<$ zqKqr*Q!0$KH;_5tcotZE@v-cBEWvjT9#tTq5DajaxQR9rYYC5QlDV7mBt45mPyOu2 z{Zp^{=WcYB(p;3SC1X|{ag4y4O!$qTJ%c|GEV~tqwBRh>%r>>IW>U09H@jW7Dq@E~ z1tFO`CN&BWp;F?fp&?)Z!e+#RmW?inGRP^CmrQy#v_OhQ>9$!0sQD=6gjD_R3Wpkf z8D1yAjI*YJv!KI!^W|2<6x=GHGuV1l$s(5pEEuYdL6wFmQTjdpt4 z3bdXy^i(&R8?9j%woYhzgqn_i5^)Dx1V#aK4NlBgt+)pb<`XE~Wd44SPEcq{3Br=tyz?Qj?9uL^If8)lJ%40wX4*b_yw`?v^qZOqH#7MXeT;d!h=zsRI zyK*#Zn&~q&v!FQRz21C*gMCr&v|X{+RuIV*MXL`C80!ZBI!1_={>IB&AY*r zIJ2!L+iA80i?xSccL#{%QC?c63KgFeOD({dGX0MM89&W3B+SP>3A^$pxF0U<{F&2&5E><{~W13B*Jl?Ph4O~p6lG*a! zv7HZoZDsVxzBiI1v83S-RBY61Y5ZE=`n!eCcxp>8%TiluM9TYQSWVwF3&c=1|x$yaI^*J=-o4C6Nv062g{%)b1h3(U~`zj z8u9@43ly{~pJ(x7Rzk(aI0d@Bq94<=W+5l8+S9$T(4%?5Awky40~F{kTL^5I6+=)g zNxYV)aES<8X**;r1_*&cOoP*%$}tstYohUxfl8$aHzy8o;`ER(EkB%l$#;ax2`T(Y z5SR%GM4QUcMPoQZ^M4qOw!&t@SQ<)W+l)P9%;bYJ1a@atSGR<9P;l~*(AxNsWGoH0 z1GjPiZQ=lw3Y(%{>`~03oYhRdb5S#gqZ!7%Nl2O9+*^Zp%)o5An6hYIxdG0u$3>E1 zNJrJcO^h)Qk(@cRB_hM2Ssp&NM3w{jI50%xBKE56%4KH=)C5ardJWFMK`5?*2bJ(7 zJ?RX`GfS+9InE(*RU{UP4G%zuX57rO7`o2SqqynOB)O6WN<#;Vvv)QQ7!0JEW}4|d zE`JoRz)G0v!>7mO4R=B4#z8EDkU-Mx9b@W!eIJ&Y0Qhj{Lqe`h-kYf6S_>tr*qt!bH{T{vd6KsE!)Rfeva^q_~hC#YKvmrOEm zYGYk{G{;auXu?pE0j!IP0mi1*F{c>E*t4n^@!tAm*3$0cV#AU-3`Qw%1mvosUK4>; zZ_>`v*x8JdT9j-W<=aru%#z>(tKpHk!RJ9V!r?r*H6EE)#J7)=8ovMSHD2^l8lF0g;<>~v{<62YHnV5tSN`a1 zQ^P+dvf2U1pY087EHxi$2vofK&j0$~OP>7FN86J>{4rU|f87222~XnrwM_vtF>=f} zefZ^_Cw{PM^;h2i*attD^VKEa^(68-e2ZscdtJgE4S1M@#|zw=Q&hGry3Mc>!R<)U zFizuDiu)zT^s@{P`vxrs7Z;HygI-d0q5FYCgTR^{CfHL^l-M>G*anatxx4dcALZifegA^OyUcodb*%+4Pr#$ zle`GDE}ZO6PYJkyje0#B-9+=vQs3(rU-|$8G@UY7`r2*GN~A`pE4Gp~&wamjy7X>N zn)A%os7cgimIGr$vQjW9g`rsl=-|_v*r1oJ4`~@fN2QCjo)!at%9n}ln*UfQ6o1AM?LM&{;UYujh zIgCA)3Ez)lcPzVmQ|D8KwofRk|_P zEJu}oSMtt!;w3CyBh0z{VAAE+b_xe#K$Kr@gAM5pZ^cxe(wpbixd5RSw-J=HE)B)G zQ(h$zlsdkJxI4d3WH>Hn4;WjGgfJ=DQIy%cPXy?eLbL zdf#F~<*rT>SL5PHq<2)5gjplBtny0s95TpzANt$2n#*IgZv^YIt^$ryCbd(jT*6qQ zsE(R2Q%9*ST@o&>a4IIvjoPX`9Zjp7;)zyFyDDn+=Pe_*^xF@7Y|dlfe)3djZR@g( z^W_J@GnMu^zpimW1kzvco7(XGzCS$tc(O(2FzRCY*JiyUf5!5w<8& z30Et8`7kYpIZN_1Im`*fX(O+WijZQBf%5D~6D*2|yB3=r0g5UCUJ0yyFo%|%_3Cc? zbm{0=xMBQi;zBUQt)hNe-@T7^OB=xD1A`W>9@h?Q3*eVMi30?DP5O*g^+EhL~dTbb!8ZnlA6s}k&~N?k}OuQ7z>fJ&Fep#fYHW&T7C@oK;%tg znQ!7O1|3%TnA*9S-eD)Jp}ngceA05>n@?ku6TdfL;Yqg(m6``B4O26LsHD;(Gz~5@ zFesB@F6hqs>ydzrFA%t~8|Cg!^GYd3k26~k;f(;6cY_{lYQ*h%&WgvfYa4>Qof>no z#}{~U_vWR~|8niOPmStxMwuwDbGzJ8 zGp{x-`p@d|PygsE^}b6@di>?=LoH=LT{%>+VwuJJo=KiqaefUWP@25kh|rcDE*XZ$GDFr3n%qEaVUK=-|r5S67VmA7gfr&tor%&)*KPkMj5r_8;3l0CIGnU4%K4 zF!Nbs!*hPqdcnGjSK#QzhRTISyQW6hbg$QM`1RW?gn#i`zuv`FakOKDJC$egP36Mi zW_$aMeOHwhcPDhTXOxqkz@w*+Uff?*xTSL5n9{6VASMV(<$Z!vqx==gc-oJzk5 zp8(%i-V1%aP%1_Br&=gGuoAP}?RbQknPC;@gdUZemI1sQB@@$V)kT>`#7mFz%j}0X z73tkBYDMH-a4eXCVP3{~;1U;3XFQ_`UxVe2D^1jdb|(WPjo?HjCm5O3tWEB)ZPeHX z;)YgY>`!%TZ5aECc)8cqawU4I?fO@Pk?gRYMY@VpH`vG_p-?afOv$bwE1qkLOA`(o zjO0TN2QDJ4Y@z3KITQrEKU@rbj4H(go*d?L^AN4mwNkA>;{jt+`R)>-V*n^ze+xk4 zC2+@dR#60{Gu3%IVYyvO_dA9*5fg6m;0!)zQ2f~V^IPixMx}BqZ9{My@2fL3mx1oxu zH2&axKE9J_@Z;e!j0QN!>2ybEiCyqr$`uS}W*3kT$d&*+;0m7I7D4k=r7I5A{tbQv zScd!I1NWWy^2WP28lN;Zuis%(53Nv1HJ-`!h`6Ezrd-4gp**n|Qj7t7vD25-sa~~( zg~h#}sD-j^hY1%(5{6`^S9KlUcAvTM=&qXEzkg$Z@%`szqF?@^r!94vT32eTb$FkO zyFRAFgI9k3{L~+n{qj$bUD~(*A-C@r;mXgu`zpUx%m-UMm8G@jwii2Ey;_{R%N4}a z{yYckxKn6ia9x0NDP~vzdXhy3Jlpwr+Ojdf=-fad`(~+moZ+&%=*cUhpbq#KpP*u$ z7v31&R`tWL{P0UBUayR)BN!9)EBL6QqVGEK)K!iW9;#?7k6oP@5}WI|l3U zydzsvC>)Z-1wR+zv10|s;9NP7fY*CBRNj+vx3Acxe>2IIvu`cfqr=+?w ziEuuDlJZbvD|%_dgzE}78 zulRec-J9!EclQ5T{mU!e;n0b;a7D!rvM)!^w|#c!JttdBcP;QW5AjL*f>gW_Ps1H_tFqB@=u2eA#DS-jfK#o#+X=(Yk}4dlN~&UUIa> zF_!(Vru(tqe6{h~JFj+q{!{sls?BfhQ(41KwOdY0lml;H{GFby&wH?5WhJolBQ)l1 zvA!2q9J%<|D{p&WTN`zilxo^sia&nYZIScaYS*i<~ZEr`042LB-mIFY)_?;0J50Iq0CKZq?cV&^43YUgzDc`L@ zJC3q~eC`W$0+<=(B5Vh$Sx=7eBM9xV3z$u4aOc|cG!ijbA_SEP4;t?u>=Zp+S>qV+2h@CPMTToHIplZ}fqsGRX%G!Nc% z8gUAK7Zig9H@!YRU9yN zNMUHzii`>r%ZhpM*%5IIY1J+2?l@19;3e?AB8}}f;1s0^3XkbqTMkvUrZR`aaE};? zvbKgz9y23c)r^UysVJN`d9)-wEvPsyD|m}Dl@hi**D6jM3dlJKC&0u-na2+4V0LOw zf(wjGfa!}sY|VW7`n`ADO@i2Ab+@ps8$|V3ILzEPvIp*w!nX&nK`vN=g>jOmKWrj! zL%Eu7<{0bq5*0rj_>)I_Nhdo&0-?RG8Fc%AWkludK>(pF7J2xmLwjU`^>s) z@BK~XzT`$tFO>sfZQ|}{Mtkf#RmH}#>5nh@c2IDch-iCxe_ z0Mhm$XYpO5S57|=`2XF%zI*CB>e~S<7^YNlhg2(A_o~g9`{=xmlCwA0-}H;(&Awm~ z&%?Hwh|lbE!r_;8_Xe1baMm#wD`=dwW}0FNlM6$fkD{E3V@kgcFvAN)4Uet!5P)3_ z!P)remQ#=IdHUZUU6+(n#TV%H9?a*h5X`9CEPd6FzVzke|LfPwS3mLo$M65*9Oo}t z9CcnGhQTK?{piG8sDzHCpaqu1nmtATciX?V`{NfseBZAHMxYi~NA2}*!v}ov zg!PHVr5iVTPk-!3%NJaj{*V9hC|(djMi4-{@Tnp^|T?OxW)$a7MYx~fMP*}s!DGo zaFB{4!7QZ84qc1_qn*(~~ZA(?>LP_Gvgs)~u{ELuQuphls^19#%T zp9YTffhXpN!M?#!kQXFG2^DOU5@2Q##{;)Xrx{ZHE5+)U1CAhMBw2DEJ4M^_pdV+H zF9$}EHP)U5N#g*Wc(6-2#yo9_W*4nWlmJt3ZcDfLZ52%aM&ybobWjPGM`=}ZM6&8_ z1kSL-T*N_f8wfLlVtt_xe6&Y|cAdk%!163IFs!jg2#xqF`|b7VF{9cSbPTW>$Fp8v zt<`L%g#S2lf09~2#&h`P>$J(A3#*gcDsT{`R{c+IdUr z!AKG#i~SL^_FsRqd+NMI4MQ_uAi;_ozq<=Utxo+P%7~3Tq#U#f5s<$({r8%m+Gwdu z=1UuIk;+6zWe&u#sMjZ*C5j?N+(=yL>o5d7z%}C;c!?LffJV> zU}UCac2hUojT&ei<9!V2+vZe4NoeaT*e_ZV^nzlrb9fEf+v4niK^RJ1U7V zl-5B8c5wFz*|qDirhrkcMH6wm?xlhu`7>ZG3vkhpbmvI|DUi2hcQGOmu$jVkZ~%yt zs0Te?91W5;TgeIW@mb3xlM#_fcCl_@KdTu_+#lJyd>0>zJ&F?scCZMc?OBTRhldLZ zq{ZacicueP;p6uRLkPhfXXhp+5v@*BRaI*v#y!obwJ2+{xG1Txa33CGTo&!QhWg>r{#0Vcq@T=mB4oz5wUqkI z2XYw_ZE^>A~L*EUy3Kp;LXPqX$OS z757x~mi(5`MzeIWf8Ib<)8R*c^f&)`X5jz6IIq$3k9`7bZtoqJ zK|OeI9KKno-@XG@DT$iZ#C#-aD9QQ&hbi;_$-?J9^RM~R)lFIuC`khY;?)JaDvgm~ zm+ujjbO>43^CYP@C~>}tqdtTdcTIGossqAovCNVeEn{u>@!fL+J>GtQNftW@hf4O9 z@e#OhuW>Rv>TcWRbZ9v3kHYYkgo8%n!E&?g|4fV}o843oKC8iYzPe8N>-gs|@bgB=cLPab2pYm4P4HCg&zPE$c7ZMhnxk~B z_}XF3FbTeI1BunoycOY-4qOupS6LXswWpC+v|R}|tts^woFa){9bE2eHQ57s#wEV0 zUU-Pr6wq1%83WBmh&qpF1mTWnDYk67@Eh&Hqp)u)Mu7HI96(7?rYiJ<{BgO532g)s zPDL3e`iCk^9Ncb#x`CFSZdekWGHF(UO1x?(6x1R<7R?o7-*YaQoy=>_xu&?VuSbZa znfV}Ti-`q4G}^{6kqH4DvI{5|7v}e`4E7wXSWSb#*YY_QH@}HqAxi)z6~E;;WCDM) z?(a*U>bbA1U%PoN$9#P3%JhRkPXH_T_pt2LpVd75&hOv;%9h)I-t?P)x%|<8Jhn-V ze(;^2T>5bQ29v!JE5E0IsM?^+qafXZN0Vb{dd+c&c?^AkF$>*BFj67~kEz#Yk;J$GCr#iJB1A}|gf3G&s4+UBMv-MiZt?}k$H(Cwlf*`B1?!-$Z@8ap zKk$bCF#H@?r-mnDGVnS(Ucc)F1NShDO7}KMn=@CElwYUbuvHx_3qGWs9WIYnrQ&a{ z5Bjbcghfb54g@&djIHJ>T)d1bvWuIAZpBr@FQx&MPq)>bfS`;9iN+-fl|W}drWiT* zd!i@Q!YV5tKK%Yc^|}q}I4Ov$IKOet(9Fo$u3O^1Yv7$5$KKa=;hP(uHCo;-Hznda z;vPky7IxW+=4ncP56Zrf&)&LN8v^uskH~sZB8j(z@iRjk%Zh{*!JQ0i6iWDwEoSK-Dwp7)8aV z1M{T=!)gGRAbKO5TF}Vy9w+W(u0ld@Q1t3#!k}m;KTjmaW$j@udx{EpF}Ngi<6f9G z*aPF+92PzT&Q;a+{_E%$57 z%D7^bQU4S=GU+G>npX3Aemb@gaXpp|2-RTlE1cIP&ElSfzV2y;y`Kx$X%udzOP_Zk z_6bJ=Hatiz+#CDMGvz;Av43-MhkN;(I|k+_)qfFXZxXFyUh_G5bh1OhXUy*>=%A~a z`S`;pvMWXS>DR-Bay=r}2cU5fPLMN&qINsw73UiqJGWaduStwt5LbDeI>^!#yk}_EOU1R^PeZiYK6R+WWe;7z-$SQVpW$nN4EwZLy9HCAxoT3C!6eQ`zWH#%v0(OWR9 zhfq6@wwg8GG-eHXU>)27% zb>c(m4s*`3X~G2h@zmH4HW-r6ljWT{4cHet;=07vK_7y1(5N6Vv{WP;QwNd%1iHho z9AmOhZ)h{yZ6>{*4IgK=uEMO6+HHdZ$^hA6jdQ_2^eFgM-sgTTSk=IR{_&Z1Em|EC+b8Ccl{(>dFD*}ASxOt zU^{NEb@xTSc_w01(DZG~^hmyftZjuyU=uTob7c?G`d~UFtnzpgK*PdygPHlEuk!AjVf+>xhi=@X=Mn9Sd!?d zpFJXxz6WPCo%OmVIP;d+7ZJGJVi&Q*$1hEZfN%gO2c$#S*N;~5rAWQIfJAr(y@zc% z5!^(~S7V6+G;;{3!3wTe28qTT14WkZWgOn8)DP_-{VIfiyMrlc8 zQ`(sds(s$krw;#>-3~FHVnTOHJ(e^N5`H6u>j0 z7^Sj1ykMGBPy%{7Im76lHIX~!rTG6nO{X29itBi z6s`u30~0Nd#R;~fJM)HM(d0nGqPI%i3YjvGAY9y3-tquW77qln50>sL#>!a5ub==b5asa!bK^s&R`p;+3p_dtzhjVO{iz4GIL zRY<^J6rZdwD%S=Y=ulLxG!?@=&1hrDS|FjIz|7}Ei`NtLK(1JvnPSVR%up&5=uOMR zgk({=w32gyb&4|+u|;`^SstSREH0wSN5C4mj>r^q5VkLf)OaW>&T+LdW2ETfrXIS^ zMSuWXX2?6Vty+z(s%X7Pm4o;kycMzWvCz_wxkZZ-P`-Ht0W!akknr7*1w3gcoR%Oa zg1N@`@Bw)(Dik5WfZh%wD_|9?#=IR8#O(1g3oEq}=q6=*flzD*n#WZFVs^Ijze$Oi zU*%{5=TabTG2tK$BCDvEt_u80Z|uiPXfQe2rYn#k*NQ=-1bS#rwG1HQKHGV;)l_NN z*Qk=;m5nNH)(7%378Pl{hwwI3vy8}{P_3kdwtC@Ad1M(yntvtaDJ0&|bw~7c5{?jp zIvz76S)DtF0|J(WRt4;Xmz`i26a|mj==9PM&K|hIljo(j$R$bXpOs3Ay^3!=$;_-sU90H#be-Ic~Npp7~mH67$iRxowgtyq;SF{A!a zs_Y%21UNi|7Q*4EVeFP;hJ*Zy_~<+=Q;8eVjYGHg6eVqoquy`wb(&HvBk3ZClrBwW7KTY?+AEmmj`r zyi@Q!`*6)$DIU3pwGL;+qkHRA2`#uo#?EGMco<&lR(fdTC2xij0gPetxUJ9L^@8Vb z;0)uQ72ud6CB_`yRhWu-|DlfTmDSZm>ede}ko6(FJDFxAC1G-yINvU2DxKf7$}M8y z*vMZSWH&Gva2^#g2N~adS^!+-A>6Tn9K@lQ6d7T4BqpQVjF<6_xM30y9a>D8@K}i6 zK17<&<*YKj+!~y59c&No7kWYZjP7P4uV#1Bt+A--H)c}|kD{n^xGzXR&gjL^?5cCD zJ`e0Gb5lv97ZN^*ukj`Hk%$YxX=oQzwuDzVmpMxV$NKZf&k<7(#71ct;n+cfSK)~3 zaMhCA_u*p|nQ3HKOrx;CS_yAIdjOHR3b1+&sRaVig!nT!{;gbXq4W(`-|(8TaIp5Z zA}1%2xO47ro5dW7G}r&(fqnj|!q_v_wtjmjvl$mpnD;UCC_zV7m!a$MhRdSEg_0@~ zPKQ_HGT-r&p2PQwuXf2R>jQZi^vms^F1oCYiCOC2BB7AcrNt?()kY*3%5WcyEJf#p zEH-nDc_5Ru#TMA5js#cRdnp5GcCWEY)VIjhfB4AqnI@0wytp%3+YzDsz>}ck_PZjhR&%trA9wJRN8*0w3S27}?0C+3x&&gK?A z*?j*|i`TmTxwSRWD(5uqFmB-98Vj;Z&*L^B$7QnKmjNRHb4&9stBB&PBi!9gb6)?_ zPnF^Gj}hwSYJ&gekNC}wGx$j?%~EyTi{iI+C_%Ht2=hs>+sHO#GT63pEBhcPue5di zCwWmb&{)ym^6dSRqfFrJcFzQYKv~DSDc&{ z?o-Tv?NJfM5@V3uxrbBAlF4SAeC^D7_vHh8Bo(TTYNLo_k%HjOIYmM^z36I->@c&} zfQ?1plB7)p8sQqDuOr^e#(^hjBvgCHaE03(xAM)c*gufXIYL@`I}AuSAcK4W1ZpYc zOKHPPL=(b4qgJL_iiCZBCu0LIK8sr~rNAJ1s(8ep9%eD_%_$1E?>X=7^{K&m!O> zMSrF?c?(Av3quLqXp(Nv z0pk^K2=xmb{CVVLAQu+JJO>EfSLr)e7@>g-p{5&?4sL|t^=!LW}v^B;tJd6McNOro^S4W5>Jc)}* zJ6BK|h|-jF)yI*|`iQE~se(zKj_PoIoY4eq_Re|5PlXbXrxTW_JRC(+RQ=lFF&c z$e_?fh>}q;oJ7)dUCs_F5zKkq&@$pzbXJO|LF)mgXS*t`z_;n32J9+}zx4sznT=&? zA(Hz}X&%H62*oG&6hmqI(i_oXsAk#`%QA>KruWztVxCgDR9#43M&0rmcrCmK9*iYq zQ465YhFaWqXx=&e(#KV{nfm}LtWq!H-^Xqbgz)kOps;QfX23V>ZAnnT>u-u`CG$Lo=E!vZ$i)uMu4!~&u&(cpwFK7GGkvat2a)(3qRtygeR z3U)Btmf(^YVMvy%A`zvv>hG|_SySEft3a&{c10z0FaM0noSZoH?3PH$y+TUea{7{b`N-;jFm|h$=BFT#ncSy2|UJiL7*avCXDV>9jP z;Uhf>o`RPrS5nlgQg_pIH@J`9*0fg{arItMt@4Gemt3IdspI;zR**Ni0-=kg{>Um5; z@BygAP=Rao!I@r!5nHGnvH-3jo^Q^O*b69po9=B=CNJoM_UWR?tRwYJ5>`q=5}Xh9 zAVz*qh~r17XOYEMaaeMvoRHCxy&5z_&v5iVL~OFE+djE$*;RR2g}(1%{ERP2)T~UqXHYGqqARD3W@RZUTP zA!MjDvU+b7{r{09LiU2GblP*b!cRE-9E2x$1d zy?jD3k87>uy4FKD2)bq#qB6H`JFBu>#6|D|2wL=NejVAiNH2)#@)C~Bj)6A2{7cph zSIHw3h4g3K=&|GA6)|Ybl>;M)k_nekBrbfXN>P0_Giaj^uSx&#z8Y>f&9SHY(QARn z8vP@Hj|DA-f)6PPLV4BMq$h=JqR?Gc*T(UN2P2g8q5bHhfhvlwdUa8Sf{ycq!d4Zw`{sS#pM6aHt>Nr-8C4~=CnRGiN+|6V{q(`>zl`=u_rrxn9!##=ssSf5 zwQ=PJ7Nm>bj`xn+U^5{|Gk_|;alPP6$n+wk!5d7HkMrgsrI8j~UBhg1=J7H;PMPE} zMPLH8n&)&=i=SA$g&o>xTEdVFx{TxJd1)9reimS8DKKpmc-DV?|$rZT<8@(39u`BB#SljA_xDC<;| z{5~W(Tx%7)6dvbnlxGiQoC{dM5{q;j+rfFC-Qq5L)VROoNxLLTVl;RCDB8>Iv@`_u zp)Cnz8=0h93U!`e7PGeg2$WcuN1Sk|QPb2o(t@?{1mY;vPW9B2?tp8|WS9!41)Q?@ zje!#ptP-!rI7)5-gS!RkRMWu0?_+W*dEys$rFgq-_g9=I0WiS^B_PZjplvWzJ*Vb~ zFXAX_a~CQIUy*>D#4O0b_s~S&dM~;FuDFY*IOphw7_%@c>ED3DP@>cZ)nP9v#+}d_>?qAa=SbJ`E}ek|YB zU^5o*a)K8cQ64CahCOX5>CV-D`D{-_o;g*Z~Z6eA>~leVZ>LS=hs6S~7NO{!n?5y}R)P)spqWI~&cv*FaULzVS|X?q zE}r1Z1a{Or_!#dqUYuL)?!TZ_@5pxZ3OE|jQ8FzQ!j2M+oVe}o(IWo}>6%6NqroJE zu$At~#a5lDaL8LH=b4o>#_*`+{d7NCzH!Rd$EY;hG(EEwd{t&JEqe9DWm}IsWmjJ| z4$Qk>FFR8(o>)f^(l)fdn8mqdu#(f~4_zfH{{oj)X1Lkim$oes4VqC3M9uOAlCLz( zlvFzR;Oq|`zjJCckBHY6`{>X9txWxPaxn)wX$`ldW(v%n#pE&HDe&Dx_gQN09s(!q z)nJJ;iUiWGgMiow95CSOG2M3PycK;p1OUj+od1sVe@tw<0~%`Z&D0L;6;>3u>z9d{ALMhBPC$sPU06fy^ZYnx@!f8IcpWSjduU5}FUG)Dw2a!Wf{t zoMdsa|1nAhjLCKbh<@m?mCf$cJ(0?2;9BNwf{l ztfn|xp1Ik24*yjm#l<_(Me>1a1;#CNNZ5-aDF^%}^$Rwc*UjuZEu^&MbkE^=6c~VX zR~W-rgcNoBs62R4(1J8T76|w$CIb`S2s}PWoUDKbVI(=g7sLQSNb+5g^!`@~k~L>f@5kr_F(fn}9eDG?A>m|6Vd+*Z(9rJkvzPRW1=gYCNy zRv%EE;FmN6^VLMZsIj<=vka}kx6I%^ShWwNJ`nH+m)7vIWG^wf+T(k3dLZcZLRKaT z(K~89`J5_=r1!VCg|rvFf79-~{e#oL=^ZQtY#r{>Ti4ZIaBY_Z3GDB7lnHSUdXlIS z&@9J8ekPz5o#hvf(!8bo=Q@e6AfX8bbYQe9VE@Xo_8V{9o!mo`_o+K;|D@U1fbW#S zooZZ-&H;9uM|*?Lz%y(?O&nTKe-fcQw8|$ARiX}84-$2Wb{TrZZsjecsWNQfjlgh7@!krcgM6kRpJyyN&)-=)p)E(tA{up z6t64?^=wRWutaD~hFNz4FzbcvyXf06_TC3j5uCR^`(~;CcQ_L_(xN5nHvauLjYD>% ze(Tx2tG90Y?EkJ^7d`R%i=W*6Q1M~Sudm?KJvpNLo;398f6ncDA{(k7un=;P%0V7L{v0RN}c_dH;@X@m}(Shw4%(8`f# zz_K!CdcfsZouKv`6hRka?%B2~ZWf+MF@fWFXmhLkAn)F7RJ7B@{$ZLsDudg$pn4ag zMYCfgnNgu=v}koPV2wiP$6LVi6v`nW*iLvHIRPloILyC8;8z~U>IOCwIbkEj3l&w1 z`yea;E5?R;X%Q19@eicf5Q5?YPnLk!ZSykzL1r1N4$t&cj+*OZ1?gp0l%s|zjYB?i z;uSUN03-|jGY!5<4+A}d%sD_dJdRlcH}_E7pfjiOI4jAWd_DdKqL7(8=WNp!un~Lu zwaC(OHWNN|eu7Mjv8i3Bxa%(ROk{>k_7&&+uJ^(di(XvQaJJ?QL;KoFb590J7TQ_~ z?%gBbJo-R$eCe*sLk(T04}Yd1yUcr98HN^FQBfKF_#36CwNVAau$@^K+#yX5)vYUK zfECi-sdv{DoVprn2F{r=4Wp5+4u<{l!I^WPL}4+fcm3!-L_?=W{^E2Hb+70U1Ptoq z{7`k(;KIrbqPB)3zeb!oBmqm`hZ~XALA;HMzkeQa$MJS{get335wKm(=@74dyS*Ds zx>qU&kYq_Pb_-ODk-*l{98e1abPjWbkn|462d^>o%h*y@`}66Yul!L>@~!HQfw9Qn zuaBHL`~Bw6GK#WmusN}UHd2BkK^}E2_}O`x`yc(^&vZXLtb&C`8Tzxs>%o+4Q(m+y zE1bpm7^yq(K|6)Dm21Rbsm^iZv?%k5)+(+;Dr=YU3~%~9CMVWWIbvHL6DdVVau+qX z8*!Z#8Q9a5`>LC0`3p;^l=W_{fcN*hnDTq?3*!PqTo7c$Aw) zt?HAvHbJE#dV$^>ZuI)t0O(f(V~7=C55rk*3qng1Og$(_?ie+#pNIlj4=j}?JRgHl zbIqtlUG86txFE&%C?`l+k^a#LL5!%9l%R>#H>`Gxrb=oTA3oJ8ET3?As29;C0@E{! z-Q#dXRnuD&Z@~9~|A_KkN-)Zwj9D2B8~$S#Cy*|RpsbOjtH6XWX4{2G?wzbf`T^j* zwAdQ7P(hitONJY(bi#x0QyLNn!k9QF@)F^1@%%VT$DuOFd>{Pa2Dbo1v85{7CLjZE zqs~VR8m=}T2K;Gg;@jgUi=IlvW0lzqXc%a_Z*A9uZ@6Wz*0jUY+w!MhU-0<-4Q(6NZ+z4U$DENhuZ2?g1?w&|g*T^NUfu5Q zt22}cBGBFX`;pdjH355opR;i+4t-9e4#T2q4XaEx@a~y4Lu>zk;9f-R0fy%(VDJnv zOJ1A9j2({nU~1+fLr|=CGo6+C-^!2BDrh+Q8Nhc+^X16)0B_LS8j-@r3lU=s+UH2))Vqc!!43SocJC{N(!nEpzP4u7 z?3MrZG5_&DSo&wn|MB;oBTr8JQ9M7^1qM9JWpS$4}5rFs$ zxJ5ixg!75iHbf?{`ea@pCFiK7IF8n?-!b^k(jPwU%N`0mzNE^@`qvcsvP;5+eB{qB zFI+M(^Ue=vD}MZc+RvnyoWAU)RgQVK6;}AQtyY=a8b7k}b6am!uKno9+Urk!^u5W( zPxO2_^ZOLlh#jf{SB6I%?hga@Ud>)YSB2DKpFDV4RH{V^Lbf%vWOkpb(^|)?Ca(z- zqFNky^gI*o6_r3uxWJHHG^Jw6R2SfDi?HV@l|xZQD+RVfdCoQVJfxNi^8x{_9k4SI z%X>NZG%u|gN@ib&OoI+V^^fZj%_(vdc>&Km$ov|&lo5m}BUz6M?5qtWJbWG2j7|ay zp;RMa( z^sr67&F2iP5XGY8;4@bXb&UxB%WJ(4X@`N>9*WoS@8bqQF#)G%yu5 zVG1G%kT5BGi(JSv7dN7L@Hm-(d_X({NMvdPB#BCb3!2Kb?aq;YR3KQ~r<&FhZ-w%R zp3PUZvdwNM==Hv#lf*IaU7bV{Qckk{K3^NzkgGdwG%N|* z{}79KS8uL0#?c-3z@bFQm+9?BlS4T2U^fac5C<0qqF(VtRqL@M977}?zx~>p^zE&-EYH_!^e~`1WpV=qmk?(i};LvrTkxbow4tSlhdA_3gF*lGSb1GXSogV#-QZQmdnhZM@WM!`o90#b1xf_7$d(pWXQl( zC0JrwN?+XbH`gE8yL5lqyq8X!zWksArS2Qu>UsG9cG_zn&n|tmdjDXy`SGolR?g;% zpF9QoC1VUcK0K*NFbFh&pdy2vIK!Br=Dy*J+#BE+wG^*n9wcL$x`YCefQMBm;da7B z<8T)PBnGPU&3M7`G8BlLmc|{22tG*)br1FoG-Of+dpV9UIPON*L*%WV4PFGkA`8tay{yuRSOuaAAM;nC%<2i={K+Vu~dCdvT+N>z{yN~T!A zsRk_r)4J_d+8BIUKp(ud8zoT@eNzT#Q|w=KO_C;DV>mpVU(wZ7a_bdJM%@QjGP*8E z?g};>9uwXAQrwcgM4Y-d98e}q;K%~XcqA(-NX3iGLm01v%C7^pqR8uNJK^<6qzoJuSM=`-Z(`@x!0~jsE#g%r$n8KKrgYWCv`o_q7Il z!NPAmboGC!@fCl&W$6cB{p1(FI`WYB&Bl*XOMidmAHUlDtu4ks4F1cu>HQ-J0PrnH zC!Y`SYs_k3F`g)=JlWy0@W9e!pg5l(Yiz%?m7W?>v9vXS2b|1RB2M*|^&5IBX#7wgj+!xRdfpIh>&2lLS#enV^ zhyqdz4CBN#R?kV?Ol+#--JHd6%5IqbKnoS){uVwLP+aY}`52AK>@W0{Sv@r{2i-MPJKXm?N$Uoiu2MTk_rrAoD1fZESIw!F}GhONnz&s zW4OV|6Nf^D#=w!mRRCDB=*;N9KmFjpEzke{H-Zl(*Khi+|CuB=HUg*NaCxH5Ek9fw z{-64y?|y!3+4_p$%LmqNEk&!z`_2p>sX#Pa-~%$}ysgFT5M?}n#JI)rAfgH{kaaEq zbh?ggPPQcHgZSAV**^X&w(e6{n5#eiWp7=!g6xw+w;aXMr5Mgf%hyxQ8}+3*)y4=F zPuq%(Cgh8L_yYm=FkF=oIFw<1nZDS92&XE7OEa_mFPFUSMHppDiCM@so@;Ii>fBTI z4@P${>He>^ckf^P-kneEOzf`-ln+=Q-?Q)f{-5w;q27arwblCkq4}Txg7$-{tvnB8)XHem1Igh$h~16P#b0YF*OIPr;jHG-OWySQ zUT$N)V#nzv_P666P-zP*jDa%x91Y?xn8tOn~ix%VuY{z!M3I>b&t2;yfJ zS>?B1%^`mRd>KQp<{M_t0i7?r2Uy=FgHH*PB5ol7EP5{t`iLatgK|=UK2rv9t5NN9 z0U%W&l#bwl>vA8`Zm0Raz8F215afOf&_buB^Gx?_#N&@0I$;iDaswe*nOHyt%$H?H z-{DhPsb08<+5ppg@H4|k$#saJh4}zTOsPBxdju@(tC-wKJKppHh9;`>yKu6^{}OQx z!q3KRXP*TTWKM%w5MR3%D96f`v#=asi{sU|oBX0h8X&4o$0;i2D>P(}aJZbj^&PLq ziN$F-6F*5V{i)&@9WK^CA%=Ng-OtW2If_84xef(JT$Gy#5nh;Xk4A^CvsEDU7@%c4 z*+uKW{`0?S+2+~1>=mncKvjQ_0FUiSOMG0h`bvgCyrLa=qa~HI#}0T`u73S%UM?T< zYG^C+BPfT@<5LIDs*Z+1_mC7ph=*jDP=!f(Zv$=+G=hW5yj->n;&sVAa_s>bUf``s zWypz;W8nBz5-t>R1h{cL8}%aMP%sL{w3^jBED!4qs7QHJ@9mZK$)#r%j+VsLc8S|R zSWfui6eDXeFb!R?QbW2i%~RhhmiN-nsI;>>Ajj0-~8D18tSiKhOrFs_OU+I<`Gj+@va|v-}v- z7+I8+buQ+{=tqcr;Z1HG?l*xXtNY#gdGd)2EKw=(-^K#m@08>fH zQ?Nk#zGoRkoRjVQ0mU4v{r9djnFX?W?lO1kCK?EpV)TG;S3dPS_4$?14j z7IB9vDC!(O^bJ1+AdNcPCFv-SV|#00;%&DR{!fZF#6;P0#KK#~W=ehZi!3<&#t4!r zC+LFY2nht~$4ii5naE+NpGf+u_6Mg}9c4vF3OklZCR*%roXiS(Z~FNvo~FE30C)+W{eby2BEsfOL1F6| zHPamGd(gqlZ3r04#pO5K=kzMcleJ-=b~sk@PNYz!g4-UpIb|ICv^}yYT$?w7Ih*ay zjbCIs5^506w!Dhuwc%!+nPVNjFz0|s)dWH_(mrlklZ)ncuXDs4cb`>Xc=|R5{66SvyaiKF-3m3K+wd_6zYwz z2*xL7JKv;Z`9Sg#G~I@5Ax!Oh7texzjugrTPBzN4^`wyN9CBGE6t=u*92^>uGylBM7h98Hjt8`Q$fgIS}pQn*vqX3b>qIC4;K)|5&90rvmMZyYeqEKi#qM!katm?w6pl5(02++%4{?MuQR4D?0Pr>1E%Ksqt032N`+ z6w+^?i%4{*>T!wb5lTQmH1810|U`dv`n(3;e2!`YpOBMmehc z%fC+s&x!RrQ}d8%2)Bc9o(kfqlBsTTnDR9WXkmxD6NBt`hI8|iE~R@_78L_WpX3R; z^cS2zgm6P|A}lbeM+GYOrt`K1=uYa_E3J>-EPb|ly|dhDtIdC{HMHW$mCi91 z)K8w^P|qShz^kL69|jk%=g&XI;;y-U)6anN$j~Z^{@wuC1G9H3q`qgT&K`iO`gRuA zZJ4FsEIculCgtVi+YC|*GD#N|wi;tq@DjLb#_slk>%s5>NCP>eHa||x{{Dksf!j9{ z2zt@Rbj2;`LH0ocV32mnn7ZT$j8uN;g~bf&nq#$MNMNpC!Wy$(x8=$tj#YXDLAJr1 z4iXQ4T}-xj0NtEj+$Tjg?qqtGKpq^fd~n+2zMc<3_Aj1_C0r<3nqma1Cl-&BYUj*e zLU58(Tu_L)*l~P`F)}N#q@BPQxkC9{Xr%#VR zvx7-&Ax|y$9c$VJGOL(8PCd?q%{|;}%x7#4-M%Zw*x&~=zzSCTAWDFXr^+#FaE0;U zWZ1F~D?K`~p|x4z_#N6DZ{cXZ(aI1!`|#1qfzv<3!U+o8aXM^7&i(N2U;n65HH<)J za3ms+XXScA`HBT>`1e;YNRu=KQbY@Xoly-m!r99tjv$-`*mU@WJU#gP0UqrYw|iv^ z{Vtr$Ifb5BGY9wfms{`>;$JLoF9gk-oU*tOs4cn^y(MJaV@fcMSDwHg;@LL%KZMDS_w|7?KygfkgRhs8bK$g8gphB7)po^(sb? zrpPWCLks0Mv_Wojouyy5ay3xuRe-ZBdQ-A3qj~`?<76{7IY;6@$pf>oVsG>om4oo( zPbw$x0mGOYx$6MH$yXWWyptpN@-LC$`@wm%ycPjbqX?#}i6~S}qBWzIYaS(DjGQ%! ze5A84$yi|oARN02X{V&}(P~;ljAKUk>An4zyKT4&^tH4{(zgeM83r$4MGuo@07J~} zvFcS#!vQL4)!F-G)F}lOE*@se09-bXQKcYZrvS$+%3f?U`BecO_^f+`Q;s3v;u*%d zL1RUn8{=}g3h(V~tz)?Z=F7R9k1@L|1s=(2SGJ{^8@F$Dy@%X@v=nFqZcywK>?rki zGg_ipa0*tMJxw^=dwWHmXxWw?27Vx^o2!+E3x@g{QLo6Ud-^n5Vvs)70d|Uc$TXI zN)~7fZ5I(jhh8{(u}xJ~aRtalxro*oL`$jycErx`F6MC|Tfp;v@_OGEXmKC~w(|(0 zAez*P*<~~fi?^`ES4+86C`VW%bK`qN(PW!_5Lq&WeCAHfs^fM+Z9yN7_<$#c2@4Pf zg`Ag!&zlI55Jv1~aTG}-NBeg_tso>bQSd-hDpho|=9b*q)77uikjrbNl`p$IyV%tt z{)Hv4o$=OM2A0dPUt!~ot-2qt7{8_e>^_uNYdvwkOqvGJB0BD&&Anz<2)q|kezS6#*VK%?(O@K6xzR|IK69?qms z3Hb>1sv6HY#R2f9YT0g5s{?%Fra%otVNpR{MT*_IvqpbsI)z{DsOin0y-22NhG+sk ziocuSU`J`^Dq1%F_D^3hmdnw-nka9=O0bv3x6#s>%qw7xIVz%2h3(wq;{%C6a4E$# zI5gZZA#?jUIfhHzNB}q*i@$?wm#c{LW(-}>5iKH1baFR!o@dPAy4zW=4}eri_J=>oL4n#D$iF^mJK~8HC{?HG=;D)7bVFjVi zBp56;{MINnA(Ou}6dW$i5{wwlo}WUl)JN9FQkGhW>R{|nSz7sBQ6~^T!rE&!Jr-A3 zn~S(9+<5is3xD><*BANN!OF|)N8fdy02x3?8dn_e5IJ0!iXq#h#J35N0>W;%v29bX zz$Hi!>1T^47V`mp9k2j%doBPFN7@EPLW2EkV&gM+lB`bv3$Cb{8wS093HRGrV*KVL ztGnlM*eN{mav@8ZL-I`JM?nw8)8#%!&&X*+_Ke4Yk`lja(b@GRPtni5W(V375$jCG zLp`5Jf*%xUU6{;x4VwBZUIyj_saj?Kr6k3lKMDx149U0Z)e?u6!p!0TQM~nlOm}>L zb%HNA*F`eqNIcGBsr0idk;rH#=Ji8}Q4msM!H^MFvKMJcI}8wVpv$x8P!7!{Nz`zS zTqhN(XM_uPPPW1!NHIOHn)x`mX83UnXt@OukXOzRBQ6d=9~ElMWid^OoR9|rTcD~v z=kQ#&DoczRxAxdFC=81WGZrvL7Lh^231Vsma@%E5VW`{DVjnA0%JD(7r{{Wp%ZLCzjEHH4g+se2GQ4b0Saci?a+ao5;lf#|>zV%$GgTST zbBuR|6B8LN02OYLML`N4JztJ#7ED_*$6l(bvrT_ zfux~7xv%ieOZyxdj+xmEsqyOYtuHn8U4f#)XvsYf7aHGg$u)Xn@nx7lsz49S?jE~E zg**?(T1DG`)?gvyvuSK0Z9pTnXgl2)gU`90+oQ4cflh0G;??r5wRC0<6Ow}H{hv)t z?xC`{h$}=OW=p>ZN!qSx2s%98L(f( zE^|oGP+y4>#RVC|{f(#rFd6sMzoV+^!M*A>Av>%lgk6r5#!!)Vg1$*W6Bu#6Ew*VG zd!{cL;?jssUWd^o#O6M~_+h~R(L4DRI&zLzuy*Jug=}wF%X4y37=p5KtFX2BX(Bo! zw|DaRhzT`Ec@22Q;AD2Q*n_Ey5vg;Zg3$t!N(4ot?>KBySNW3d7rWm2K;sH%KQjc;EG{!Lx@->wPAjnxWkl)1v$3QOJ(gTw^_ApS4325iyyEsT`o8d2@R%fIUAP}Y_<&DttNa?-u{8tz>Kt!xfboHRj z-jG$h<2f=(nCh`sbB}Z)k>xUJ1L2`xJ5Pg5wIn?fBzg_pWMD3oYH~LxFpMN*wV)g% zaLMZx1Z8M5kIl8`>_E~OFu-Cho+#z;E(2b;=gGGf5|l1d+z>2bF-^$7+f!8T+y{jB z>q4oQi{asc1h{x&Zx=y5c)vJ9*G&k@^V^^Nh3@oczds&e+@kB@Q~A_^sz zMpOrE0QLqtmj;c0eQ~tvcr{e`u*6PvQ2koP1Q-OmFkk}}xdsX(fwE0c#e?r}Dx#(& zVVHSCSn-LV$rhiT`gNB0(HDJJoonN81I*T7hzEQXkO+^$ThX+U(ILskw~6NhM6BrY_@&vSNKv7z>XkgE6cXoPX!uBD!Pd)T4`+XdXJ_(@ z6_O!0a`~f>w6snyC!CD@dvCdsYevAHyIi&x4G3mRDqO9)Lly7#(QNXdcW2dH+8{nL z;&!pUYqxbEF6kk1`~Qyc$f_)5%bp?~Iw()fEHcx98#h9y(i8+~o_9=mn( z;o`9I5Fe@J_~BbW`&pdv+#&n)&u)Obi&(Qnu#1VVb8`VyGzh2Pjqhi!J<%d46|O3G z#H>bflt7Wgdn5OthYbR>%o|L)^xXS5=wh1VUyA+!Jpo63Mm$@=_XosI;h{hW&y)^@ z*`zIs$tvljY)ciw?SfB?g3~J6C@E=U=QC7t_2er}Cz*!!fTSi^5Ljp$fk~+O3B@Pr zfSfOyd6)8CN88V-By*)8)HwvW$`OW&U=&pneeUf`8OB@#6qW)45t+aWW`dV^115#0 zA^;OeR_++CO$to3i3x(06dW`g7RG`7a=CMh;FUG71bi_f11A?UyNZGs;Ss_f+V*%& zOl?<`2T~`I#W2TADV_|lKQ|nYjW!k_A0Q3=qd=J48y>b_%`1ho00v4Ho!b0Lt1S4qS3;LOD6y9FfX}AwR7@kHRzn-#>t2>bbr6i3`wFQquSI3 zCC*s`r50Cnq+mn$jw5;DCOY{5?UvH48{rR^ucppNL`60EQZr>vf?0dO-?)SCLniEi z_=IAu$S+rMbq_O06(G>Bd(JiTyQPhfA%2i%zKUSqdITmTj2X-4qkwv%K8wXIg*K&d z{g&xMzaRwB+SPr0EZCzNMxgqy{e`~&t2&p1<^KZ-Z^vqmzmyjx)7@n z*p?jW3x4Uxhjm0 zk|k`owyprA@wQ+>#Q`x>S~9Jrxn=d@sIruCXrWm)H!4C8D+)~LPXvR2QZ>rIf=}S) zBKCUkLN5=TqCVw+=6i?tk+Q^Rc(&w+%O#l!FX8cai&S>SD+{S8-NphyX`f~- zY#OkXkMtK(VHkJatPZR>eDT!xPZ&j?S!}pCArfUWE2l3`LHuBsC(|{{C2Kfb;9yWR zSzN$`XW*3TuG;agK|wxAIG$o@G5uAwXbp%iBMU9C1l}{S@{~HQ>=Oo|ONuZuWd1dh zg-lw~{P#mr(iB(=R#aKgKcQP2@MhZLgdraQPbP=K+LkpiTD zy5`qvuS5R(G)e|(H2GPo7q%tgM8TDZo9P*1Qw-I{@zV!vZKhEmPjb+;QE}IyetF~u zM*s^L*oq9}DlI z50Irq>=>ujqirK3+Z8eMcEwknKvz*F);>u;-DOdjJUa$OYG2xl4V?06<2bEYjD)gP zH3o&BY^*v~wsUfQg7_4UwvLqp+!0KP99?MbShsN3-T$%czklj)|NYw5zO#8lv%<_$ zV!0%avxB9vc(YLMX4g2$rAfoJvUK=d1NEdH0qMGQZlvq@0M@B=YDEzZgG3#*r&sGp zXN#fbIBG#wtw;cSh~zxaP*q8g0=yy?W2HId?DXxUmE7jFxu>WqJpJAE@AzJ%nucrQ zB?Tx&(+V};TpiB(23@*l#FJBe5Fig*w-K2mlw$BS?d=5mks>9of6Ogn$>s>A==0L& z(3t?bO(dTA=^Dj}MQODaGb=DUdHp#`7peuIo}mqgh!^1UX(wA&aAd*+7~x5!@&L+D zZVz0IeEJpz2tI{U0jMoMLM28F6iewUB^Or-$Q&>^uU^+I5RqPj5F%Q@rCb)>^1uEJ zIaCKlWLhfkKxiS02!9V=eVY~lup`1~G<%H8uowRFWma@*=qi`r2xwMpoDu@Cp9MR# zS+u#OAU>9+5JabBKATJE8Tt7pZiWwTFd-yUXcV=Sw2q_##MG!&@c0(;0KIP(yxGRX zXGflCd-r!k^*_zzByfAOpD-bCHdZ;BNrx#hP7x)O+il(6d3lyp@_FFy9NKiQEpac+ zDvD0--!{FhE+@|m3Wlyz#GV2T4T40a7GAxF^UAgM2NzahIXlU_&ne91c>b8L$`oZ3 z4IxYyVa?nG=e3{Fc>?^QDJG`{Q)FDh3_?U}b7}7ML3MEa`-b}XExe9u4%ll3!T0@$ z0y9)(Ww9#iY~3n%o~wPRO+QT9I_nO#FuBr@Qq4QVAAX0q!zzsIAi?#)WI|-j@9m|E z>TR@u1}4C=G4E<%+13b8mdrf9J4XN-HeM73)i@`0h!0xPqPDZtMX)NpIf`8P%A=j^ zS&(*mX#!otOZooNx14BkQ)eC$rP!%qOy=RH|EcvzgrHa1&l=Ze1WhM)|&;5IY)`(Un3cm<>!K~JBF)#IdQRgya&L;pKco919Ye$ z91j)a0V+SFQdz78^kp{5E_4~BaTMKrg)zCC5Be@#4~gib>?w`IHa&5khg3Tff>0bm z=j9%`(p6y=P_hwpB-b1#0^JQ*7V${W*d}SJsMWIHU-O%P4wX3W2DY8ie)D?}20M?r z+zx|&^aWaTsjjl!D=9&#VqvcW%#7q^j4}`kp)GlT2r5n5m+E}Xn~oTcB*Qr3^<`}I z&SSJS=-;CcocvYJ)EEEmcRuN6PWq+agl6l_qx(?=LccX4_uXk0%Ls8Ab7$iDM z8W3QiU5J~P0gJGgWPYhtK!zQMx=bT~wtSgFPKz-7fF-OvtjUuPU^bgGQk$u)1 zkVFC?*S%-$nQtHIEGuB!fePlZ0s+c)H&1l>7D8Y>f2^p0kq|(14R*qsl)DI4=?H8> z%4No~(mj^p?O=htU`^Vp{viY!M?u!4^zNBQ#tZchtE+9ivLG zp``>8;w;}t-$ZXp5F?itOr3zQDASl@OQDeAxnGK`+%%`BruHDkX`3(#D3M^~X$Z+I z-o?;^mFK&^3)R)h=vlO-BKcsnscSRPRiXzb(?IAnZac}W1M8GC1ThuO*KxWyt{?eO z{4bLmhKmHi>?JlQfGMYln$y6~HVH8Og5(mHo6NuF+pVPNpag`82`sRRv?OnhUUCwX z$N6%AiNQ$}^&%SJBSzrN@s0=w!d*r=f(So^JB;xfqz=;(Y?D07T?G3x9qBDV)Fw2U z@SQS{L_lGvc1|m<12hd%CT!Lzw>ix-Dp&L1gfKzA|8+1&IHF$A1?B^F>Hk{K4Fabj^Bjgx2;PU1vxGXCj{M4u)d z!R#&MA>gUh|6=K(Qb2RMr0}i*E`&~?1sEaSn+p(ifBN6ozND4mnlZuHq`icnxdUrM zKMT^z_8+C;vs+bF(ygHUpNdls!O5*+3R*W06P*){J76WP5R=}RM#2~v9Q}4h6z%|+K_!{r)XJc!6^SoEtdT63(JH38@e!dyy)aA|#6iPl- zqpJ>TAIpDr(THa}l+6;m1PCSCO{C&+I9~imh*de_%??s1-I8VplNr|@XK$m7vf|6I znBDBVrIKD1iP`_2A^6}L>WN58fe@@JZ!t&pD{sxfmL3(LX4lt`)t_F5D5r zr^G>c`kPV4&q%##gi;*h71ZY>8n1Fu8*9K?TWBNFDZfBYmI55nc@sY2L^x8Vt*4a3 z$KeG{K?R-zDs`hWEZLB3L<#Nir4&A_4DK;$PC>~s*g%B$umj$-Y<#H3Nkr4a%H=dR zO)2)spdO_(PK%;;r0FEXZCbg%jRVS0YJg32=*|>{v$X5Cqv7lkygl-O*vKTD7n@!p zvmyZOkOivj!8L_`R00Jeir=ZA0~PQTEOm&|0YVQ)S#<&FiAXwXMKO`ETDVu^cxWxc z`~gO31zlrN!v>eVP?Jf{d*j<}Vgy_YiD{)G+gJ?3%{A6kRlqRiv9Rm9Sa3(PU$q_8F6 zITSO+OwA9Yay?lLRS0tnqK=H8`VRX57&QV50Ex@zx5F?1k#*{{uo_v+vR`@Wt&*%7i7%gUw1m;q)@yOAu=b$6)_XMtVK&Wv~d8-yqMUyxJ#}#a7>_ zLR}k_1q_7tY7Z%HK*RLJr+C|-H#AAGJ}5Qg0SZ6pw|Ic|LUzFH-5aWf*-(spq8^;p zA$Rtc29AI2$o0Z^Lo2-}amad6Z(s_&uQT~Lvl`2AyJwsC4inmT(|2E@7>QfVv zUd0h4$dOgO12C0ecr7|ijyoe9f&4k5Bs~T%3eNEf1sx|aRypyh^7COx#llPjBjSCj zVv&blog$DyBE1i$RXS@eI%E`|`S0`X^2k>i$&y^RB=fYn{7ku-iAHTpH<0S^tMKWT#k?kYgbmAiiSWu5=f zJt}kA9Fp&1eG|Q+vZcKQ5sQ+oiC_yT?>(oTOXDn2-cjMUsby;RI7^T-fekws^jHo(@_`r z5lD(8I`R_nvVZF~A({N~1W^;7jV zW(Sk7>+_Kamxuc;G9vfFrc9b~$~B zDT~|-G<)c)pZy;%oZsiMHXqs(@LrWR5%C)8b)-oxQZMP1r>#c=6%D72GY7v9u&d-g zgGEb6+nGzST%77D{E;3lArgDtd0tpMK&lDEs0tk~=H*4$?bkP7aCOEo(5u}$N|^=U;Mf@>8sp*>-CN6E3{B5_0E@rdrKL7I5OzkTa7AjAq|vMi2dCw z!S#GkBeZ|8+1mjp*|MSW{kZUI(*T;50dh=@-kE*pZba)1q{rtW&aDld4S{tZ+xuN7UTFJ}4{s$;z zLdZfA0wHMAahC8RJ{otPu^oj1nw5mi#X5dt3WWoYE$wO1Wt<^d4qhs^B9mA|XyNNn zNP%8lb7M)U?Z6R+$eGlqG>@whpwcPiT(GTEuR!=R_~)H2or9 zLBkTxHI50*t720PBV3EEWArlah?n7`-gnfL(AczpJ=W~25zgn37^<(1VJwOE`(2`R z=m6__Bag14Wx$uEs?hHSTBv!pTZ@FIS*+xhl&L0F##99(DL1lpa)j z+moE@0WT|GW=W+kgC{Vhlb~*y2gd7fJFxI~YhfB2-#;&XFbu<0Gs~|d6kH_K5=xGm z?<6}O9V&azQrqG$a9^Mjpppfgrm=K{On1;?<)!y_6@@fB zIAK*3yX;lK3uc!~=mwyj1f@d#OI;I3Ai|d9109uUeJF0dL+2zVT_AwKb%9v(q5ANy z-^a5e;EpdI0!$YN6j>{FOVi@pv__Z@=rDk2fCLuvj4ebb=rw_n8AXp35@--mnSx{l zCRhggQKv%6gBJEQPcTn)v(ASAT36YPcwNR%yKfrj4wY(W-ZmaS`zJ?NWJv5b5)F2c zQn^E=jc{4U4U+U?c_I>Alyd?w4nDap_n->fU{Fior#qGpx^2#{i^>}?{XGZF%*Tv z=O~}QsVWqXdW%ggQq@75&AXxW35Q5(93ZAsou-qMn!w#7G{atuTGpVnGBX8v8K>vLPO$sl?vo8G(B9E{Jc>Y*BpJjD{_^flM-n{0JKnsrt$(6xL1lF?uT}GZ?C8g zL>R|riq9EGq(a5ceeu+lMTiJoF;q~8Q||bo?S@|RwjHqD2Xl?nC5;>^R3lCPD)xR~ zg(AQE;siBXN6|%BbXFsZV)mvH$`UHZuFrCxH_L5IO;cT`{C45N$35xj(}N91DoMZ_ zc?K56KJX>4O|y$MpK%y?iXrUjHD+JMASRs~{k0f{RLTy?xMON;R6VuJy>fK8Jtnp#=Q&Z)B~q_}hHRGT+woC;#KjX3hXZ8(2m*_6g04tvBh8E$Zs9>nWU`#$ z-A997&DXfHMI6lZ$6N z$(?ium}%+1@+JJa{P2|U)QiD~QR{Jo3!(^Dv-b9@8DyuAl&B}1pubJFm?!`7d9g8qN*$N@B)UJ3##NJ}@1&GJ-#2FAI#%x8ggDOTLaPjH6O3kYC`Xeo7 z5H#2fC?cmvb*-Na1~Lap`g8(04fgxv1!?i6r$40v!oJ39t+!bS~`A zfkHXe&u*%>j)=yY`jdC>jjfr7gLTsS^8QMd_+1^W5FDGWDcp9sQ(g9nP|cU?Z;sg| z|7<+Vc%>~tRij}6sBExTsKEHv+ULfn;?wA`L_sAkCcZOAA4e9k>97C^jC(AK_sgnl zg2N-e3yoYXnP}|YH3@2K8unLHPHyT zXb|tLrSTjluj4kLb@r61F#9CZF&BC*^XT}iT(LGKi1(SgJgeGE+$|1#M5r+;l z2`@&;7#9l3X32VO>Rz@Z=e}8nb7*o8Gg|RGLEq|+baL$P=0v4Rqzh=b_-61%iPELX z6E7g8TUIBF#0y0mbSBE`z+7*wBdtHa9qoHPA7b_{86huKAey#a$TI#27E5SO!pr$? zcj$R7h%{<8deLDdCI~WZiIYNLxj7^`cSvPff|Q5+9-LJCE(x2aODkhZoxH{O1(mGi zv4g8Gr2*u$RN9!t3IQ4@TnRLJH1>NGi%;TanHuq!!s!87#Ro?O228-^;v0lu)w0C0 zLurZU#Lw_C@M!LoRtaRM@F(Ixjt^0bv+=zdZcfJ53!nusgu#fb06u`-DmjQ~F@#Qt zfw?f-m-3onakN1WNcK}SA0?sa&~XA*2>bA}A&I`@s&rWpWk!U5LR(f;C%&04XFMst z5ms@vwSU7ezCe|oB~hAM7jSOpL|K}iMX5I8))kt_vcAzUKd`Xc z7r~^kJonnNhRvV;|Cl--@Tkf&?Z4;D$uL6_nG6snMDa{A1dtIXp&g;pauOk(V5Dko zNeZhcB!Sun7tO9EUlq?V0}>hRB%weA1GUsY+g1Zu3awiv5z<7US+%vH*sW4GbhoXV z=G&rG;rl&9uj}h|?X|WRl9_Yf_xW=__kBNuTa%GGZQGp(-pln^mgD!CNrm-5GX@|b zmp$GB2Ju~7Vz2ygXI*un18~8rLMeN?@u!QRStQv+@mp1_41nlg5^2v4etUiWRtb?e zu2MTr9r4st#TA9Ifq)@6GsN_ebssG)mN~u{#FQ?&Ec*h}@BnzB;SAF}Np`fA%%B*? zr70+we6T*+pX6;&J&URl=csu{RFdNw!-*yL$VxCx#P9VUA7owQ)4s2E9f@~ zMd}tagCwIkS2h_hgjLPX>&1Hyfjf&Jd(ciPL-uEr&G;Lb9=0y1Ku-Zi12s8l za8cMv&$0=PhWIw+@3&P0eqxmIZm$SVH9fJO?n72nPzIGsrY)|Q>`mu2R4DDlAY1Hk z(-H0jYG`V?3X`eJ#xfc_p=Acr=M|2DtTkXxPe#?ec%y&^Q=}eY6}KmpQI4gm zX}JRYUa*2JL-jb^8f_Pi88|&q2sHy)DM1OQK}4qmyx1vQO*)jt-dY10GsIpf*~&i& zsx)$0AViW9+-LcY>@JvyPy;+v%J`!03BE!s`zmNDHFNXnoscYm_!9XG^XHfh6S#v& zzch$-bV5w|hU{~PdA}lTKlw>WVfcI;!S>LAqk?Jvc%mG>HNGM$DUlEi;|PK~fR{oE z$Nh-Y>1kTKLu|`BQfU_#wV$4$ef;-1gUU`}%+6h4-FrG6LaM4%N0N z#7HxFsCP>FuK&G!?t!=8t$F$Xe9v6`qr292uBZss^!6@Ql_PbYP=S&B>etfW-mzoy zFTXNq6y-+t^!o9lkdXm~HyauFveA$|75M9{TVQ5l&Y8C#82ZbGgVi9qrExr|k5w*c zdcxSZ`BO*B?E}>f<+s%?QvJ}cEE|SC>$kuVcB@4GKNVd0q9~aG4mNauf9> zZG)ZY#g>dh=u;$1$sBwQlIsZ3S_V(-sAd~EB34-BKCv(Bq(mdM#$^C!_L=zio>w|e z3bmt2VOcR&C4fH76As*D#mJ?u0z9kopgO|!W9&^ES}D5@v_OhAFonEOrd9zuUMXSI zpmc$x%DCy~U3E^S8(I^)2$78-cJ5;qN|Oa-8{r?uZ2ADVD>)M+N7(AatXQ)Mx;pgU zS%?T^7>{!`yfYg+DA$n9XOutI$HWg_F2k~YJgaIo`r#3!TpSka6%MbcjK*q-;Sn3$ zlma>HE(n)pby)&uJ`DyXB_dzM9pr!KK_+?I)RuxeZPFw2cT$AV?FIPC9)(P?0nWyK z6}#&}1&YW&)Os>FWJX8!|D?(C!cX%6D9)DmfPbG)tlQtIyc%@|BtNy+KzLN-FdWS{?aM8+Laz{ zg!`=H;Ojb?Gg$YFPyKeyksnNYcj&~2zj|-q<~#5F?hjA))UFuenpat7?v%Gqer<4b za`uk6$5~>A5)f#P&!bD zN20Sc6{iyq&-?R?$oHqJA@CBXJbLguGn=NbvNuf6&D=G0Yw*ylZ8~voCXX#e=~Sf7 z^Naz_Hr9?U*_<<{{WSFE5w~~jA&LVC_^zYnW&(`|Q4~X8Z$r;^*fdy1hsx<`sLd$c zuwYE$q{V?ic4gs+z*L=5rf}TyLgj9twa#!7kJNK|!;o>|n$bx>nt?okyra%eFk@jl zN;?he@lm~uwnGudiY^EzQvIr;@Vo_wr70uNO>#NXI7diA(mx3lNCms3Q4lV5IO2p6 zIzkZ>5hK?>w)iF&EhBKTM=S+^mf@8_$3Ml0$%FzA%D~-~-V<^%%=rcxtwGgtlPd6V zgop)BO~~iFAv!%n_aY}%Eb;{J)FSU-7!=<3~mnma)mBl-#+oP#X~Pn-#BuCd3x?V_Fh z(~EFgU7i{bXEL9L4e}sNEL4fCCX~}u)I$HrEI1Ea09v2jMH<~97e-OPIknkWB(h56V2NS-*b=ch;BA20dB+(z$R-r!^3j+@tV z%aT(Y?zqjf>W0`-&-b^kx%($i-nZ~KC;t1wxmlmBD{FVx#-|^noSS25Q&MTIx2D^e zRj}jUw(A$=z4I^0abv}I0pQm0_{gLql;GHrDLsYy1w6Ni;4Y^x2x~EvyuIwfTii`l zUx^&CKa8?FZ^*a2L@kXSz=U{ZprL1P4a7G|LvyEJ`90&ZwJt}s1IkeKbIu#mu%RKh zGS@UylMVOj0n@CcK{|XWndfx?fL-jdBCfI9wY6e+Egga`QrUbnL>q`BC>#=0=p*1P zdHts76b*{#Y5|qu!wa`5GTevp)5=hp@+lkbr9~w!5_)1H-3O~A)L@|sQ2&91=`sg} z@`9a-er7wT9a6@`(o%rAx%fdqUXey%xD1IDHdu|+etewlHxqJrtE|qIAwG94OPn zAw2NV_&n08CwnXR7=~kJSiWG&insF=0k{cEV>x;bg9gl&;8HO(WH4azcXb?&bj!ou zVuum}ueH1wZWD&>1030xx63h-8aXSeDO9MK6nDOS_}JC8n?i>?yD6+a{`j94-+%vx zvGH>w<{NwSuNix4T2IaAAMMq0hu>K}VfR@lr{@a~eDTcRmZ_$jCjI!!C7-^hW!}K} z>+gU0$k`tb=l=4*P>6l!*2Ge8vcO!b1_H6#JNs*2y<^=ov0GXz&P|ceE9Na!+|TFfboZ9c+m^Rm6A$XR8^QmGA(rBe z$86L|7+(2q|M2>%U384APv({?%VtndHQw_m8AW-(8&wA^iY66IY6Tum5j$y4cHLNV z3>>dmh1g>)S_%%LCT0OLOb0{cHX(iH1kr7WDA6g(7{0?u67CET5dyDSKj8IKTWfoej8aKq9~yNVPGkUM{n89X zG+3>Gm+S>~IsE5|w+<3N1Vs?XQrJW`N(LZt84f9Toa#}0f^G6PNZ)oYmJ?$l!mEn_ z`l}onAh#V=aM~NdhnujBu~gqUOAN__8^)$I!!RBMNJ3PHIbY-a(q5zN}jvXeN(r-GWeEm5Row z0*U~;ug%U>gyn-XEUrc(wxdjeyhzs>Z%+0N1jbgQ%$vVW#qBHThI(XwWSoG<<&Pu2ne$`>EnRVmIUv}<$ zqbcft)xWdEz-`VgdVD=Zv@B?qXkrzW651=heKw2y6tE`i;Ab(a6?R3>*+GgS0k@1% z7Tjd4uYl;r$OFt+paOqXWbTNw>~*axAjUXlDicug6n9Ipg_pJM9S}=o>0X^pTs4^C zX9!6U19lax+~eMr?|JTAa_P#%8wU#0!JI)spcSYCNo%wsKKm{B3?2lRU5@fkX1=Ug zO2%7KdR$#wSN(vkG)SW?+?z#lWU|)-NBQ=PWfG%li_S4ZGC(0F6L+x>aUY$TSG#mz3v0f${7n_I`mloKrD19_H zLv$^-dBkMi2E0ltP@&Vp{fCFYS6I>DQTUf|s9D-1A|*3<7WC{+H6-3_0AY?EQo8AE zJznKkrebd+ye+?dcZ6lAwG$&Nk7-IL0nl`rM0P;xH|HPQk8g}IqN<#n3h@5Uh{^sJ zKh@+?(D&C!*{Z1%Fnr4?!IK2`!i2W@0ZAd@e+lg4JGxvAq%ZRl3h zFLiDFoL+oDHc#H690P)izQLaENh%i7xQNTtfcz3HQEW$bt}C$Ku1NgWQt@xw4a`%i z{aq@)6IXE85FbjTv_H$?s#LMrOsx(mzb}8b_Q$DqZ!nbB;27XgC)d`;R6$2=NR&y> zY$`4e5lKRpbBIlC5FZkj2ov0{0m1}#8GWvvaty;R4JCGXEx&)bGsJdccYG%py%_kQ z1M=|%qlh}I{-GK28lKPf_D??B{KDC(-^g`-{geN^_RSmB(dTcP@Qv*k|1$Dl|EmYK z=KiGanvZ_{@P$u*e#!OEpZ#H_d&DZiA558a_u}yt=*Vt4Bbt|rFAMznReq#^7)dDEOQse~?4 z_S}Oli%&FM<1qPwa6L@!96~47M8%~-PxR|8E|U#kzFn_gUNpY*#C7*}JsULWaf)Eq zRe}Y$^U?!KFGm^!ONF3S9a3pUb@w6mh_LG$>+5W3edtHPVqXtrK0eKaAHmw$1dS~T_%~Iq;l9#?zba$@mPzyDTZI->qw%w-#pd@aCulAV9m~a$h(mskH zxVcY2kYat#fh07_$zIEcRZki1$^PEi~~pWif@oV=^!Hu&rxZ%K%g;janf~p>fhW@XjVm z1_(LM@p~RP;g!Zv6FbkhyyMs|oIL3&3ch<2s)8zHsE>5)5X}PCeJ6;U8AY*wX2HF} zBI9!a@!@MxW|=NiQS(sSt>AK(g2Q;2enHmhdLk4#rUe#Tb$~mH!WXE5>;o3yfdN41 zV>W0fnxOkKQhrq7aE&2>5Y#!4?)$k~j3;`jCi5yxDh_k}B?8^mdCmgnIbUe_;Encm zA6^GV?1Sqld$QEQ&t7Aw{WE90_{{ac|M^$0fA6J%p4hPE^-l3QEme3UsnSSYT3MT+ z2DHTDGC5-e*xJ1%M_NeuQZCic66K;47RhvVtkekMP6u85(t>Wf&;EN`C@DOV{#cdY zZ`t}}aCNl8vQ2|dMrHYbp7AAH+jbfCHj=X}xHh3!NVK6|dYjYOA2E?h<+Hoc)(U0n z0_%$_N_2&mI%3}L!BU4^Pf|)jZ_(If#;}Y=iy=U{DdU@d8#>hP{6Qsa(5qF287A2v zq+s0(@1dIBk@1@~TdjINxNBP1t?McoEXDw0@n=&FH2l5z1~-hC%@~Yxw0+@)yGccQ1W&5xgB4?Pq))n)_}GPq5;EdaDZaP z!N46Wh@sMUX6B%dD#ph_xFtLphBw%Bi3i^}vJ@C(jG++FU=%2y?V_0?pfe|8E7*Bp z!{@OQ8$dgPXvWNdZ~&*iwt8(Ijy7W54l0R};-*ezImg2AO&P*ix{DBPTh?Dzr$Xw? z_5nNseITW{;AFY%0RC$sn2_%m#S|?k{Pr^^PU1SzHV;=uYS7V&29}qwWy8_H(zszv$_2Hn!Hg{IN>v8&Ix3qQJ!_%%5Q7iZi%VNw%Yikh;h`Qly*Y-D=9WEs!J1bm z96cn>=Y{$tryhW6@3dEFogwJTqrog490N&R3w3z`Bg7EY9_owZ(ABx0e9Z2Rm!%IF zTTIbUh{)J9%&l7r_y>N97jilb{#^UqaOm#Ydx_F(dzOs7bmj!3dd=18n?%=?BBO#vnKuW8Uoo48jAbV5d~&W=sp`UWK!rwx5NR z#_i&)KUGeNx5(Q>z?bj9^K`NPk*N;TTtxKCcr(qN)?4qeqpgKhyAECfTvdKS8h9?L z8dEf$vTrq{T9>&jq7ys}2zPw%P1RWKo4^c|@{rv*Fnzc`Fxm>nXEBxq;=o9ZMV(ZJ zCSae-SQ+{U3qHRLAIDz!YyDF{fB$skduf;Ki?a@Z`2dZN$hcz9y2IeJT$7&NvL0H~ zP)TY|iaF~PPa{oJ8kf&-w^Muipw=OelO{TK|O8E zwkyFqDNi)!4=C+uPIU_cZh3l7f9@L2hNyQV?7H?JJ&qmT^4s4JiwwYQLjs3#l&nM1 zv;+v#WwYVv=8JY`mAz--qRX%to<6w4u0nh3&mzznXJl?fw-IetOEv-e}tA?cz^w0 zn7*v^815#@TxRd2Mhv*uRbX?l2=!%|g4j*{hOcDd*h^vVuN(|?AWUA30hpa^$F@vR zKQ`vZpuy8@wQfPJ164+Yfwe|vRN5RLubIPw4=y6HA{qYxT9m{RMwEaiE3NrU3~rbj za<5ta$3ArMKQIiu_RcH5%z9Yy01)(`R2dGB93rj1l+Y+z9i(OSPtXLdzwBelBp^vw zft^|1v3OPuU)gk}kpW^LDEXX3w-yI&1|=50MBOQbOEe5@L5(P{DW)iF>z%+IAoC^Q z-BnC#5)JOHXq=yqRKtmum8p)FC=XazpFu?t&+jZS7GQ!NOCBr9!Pnr@WX4za_{Z?c z1f52!!kRn&6Km8P7^t$siDKZ;A@Foavo$POIVWcViY}8bF=QAIA1!bW<>=_hc~Z8I zRT3F5t{CvvalWph&UXIzcSKlH!0+ff$MlCEfBVSE-_IkNtGe6s;)lS~yLV{Rw2}5y zKCN<@s)|8M$0oqjyCcNxR~3iQ@md}gLJqZhEdxQmV5(z_7D@$!uQw&a1NR!S&7V?r z^l2T2$9ub}c~&WtX&LoiwkHAr!eZ%VCw%!L-k0^7p>aGEkLe^fuGHy2)E%_18!Lv2@c;{ux(n# z9-|KIWNp0^-tir*N``oOX8Th3e@rLnoCR@3sX|KFID=m@{xNnzqVN9#wY<{=7J)ao zR|;!__2_Y&8@Wa%xW^F7y1?|g*W#ybf?!3&l9c8#(k>h4IO>AdA^b5DSZkM!^^1jk zoNj>yMM=f88GnC9sMvVB}u z>Nob@bf3&^M#)|~_GJ~SvZiqo%gV8PL zuLkV5{o+gzN`g0Fowu<824$S@Cbx;lRc4f>WA3hTj9t^#nAu{|qh%T(G#4bj5oA4XTA&~lP@3oG#=Pq3e zhJ0wa$x1yL;`mok@VRIHgJ}3Oyv`GUXw7@io_AX5{j)(AbIc-PnS!}ni|=W$lz}!_ zx$Imo%QA=sXHi`scSd`_f)A%{(>~M8Iaj;(LY`_F3sVDhrKO)@FoMPLmHoa0aj6Z9qnyti1d^1_xsg$(y_Y zMZ=q$RF-@DG&sfh&m4ifw0+|p0m_`I?(z3vKLHGpa4)op2`Te~d3*(2pU%nQ;JuG-b1vB&RDMP64%PcWz*W4LE0Z~DTkqs1;Ygk%^!3FcJ-8Di#py9(M zm`{FrCjAQjqT1M-)My_f`;Q^Agiz0(t3^4Whz2#O+joWAqxD|pHmb-KKQ21+E71PB zgj9>`HsJqnoN!Y?q=ee#Bj@NsB6sx=j@U5+YK+ ze_ZiY>bkJ(jwyATD#Xp6))w%*D95OZho<;IC7N-GAi|cuX0|-1y!6KNwFXa1x>M95 z{bsz6Y}laiq&sN7Zf(vf1o-G;Gaz;3*gn0fNo*HNnC^6ksi6)vr7|2h*g_||?Vn@a zKNWu)x_c3QQAW%dL|Zm7gu5nE0=hNMV~x&pWPnKd_s$>Q+V;lu*Z0)vv#3l09!G7t zwn{3aiCy`hH&(4`{ngK2KFd^EUCPZWc(uL zS3$HFfG*8(W%XA93R2Lh(+aRtNv*C@60N~W`G={5%mie~tQlT3f=Dsm9~G|(cd}2W zx{yf9uy4P{U9-B7L1a%C$gZPxU;H^-crQX>yLHKV8jCn|Ly<$>C?ht*xm^WX6jBIr zC(GwdF$KJE4jxaw9u`8%a0vrk8D5qNQ<}Lu%v*zx27x0FrV+uRTu+7YS(npi^YnM* zAQ|F<;XlyUmqeN+YIn;NN*FjSwlR!lOqD#O@fWCUrTHRtqzZVd!>8>c4E*_DH7{2P zf7gMRVuW;N*|0Z&cX)T%aWn-t^lPn%jUwoYL1>Y6TBv?_EWBYoJg-X&VhV8~PW}*Q zW70dk9kx#;HEjSy%Gua}Nvwh@SmrW|kQPgjZ)7q}_F&8golCd+0I0Z#rJRFmr<4GIXh-1Edyq%MP~rT zSCClVEe>$BW&I(uwR>g;3`6%M3YZ!CdvSnzV2z)I2=huAY^w~$`$!)LYZ`{G`L}FQL|7< zWkwfKo$mHZj!LHk{%~e%?EyR0ayuqh*WfrnZe+oP6H#%)#?#0jYnd^qr*rDu8D0go z?Y1ioelTD#XE6<~LSSKRyI3fcI1G=eP+inY8$;nuShyoQbpY+2e0=Z1{s*SP;xW+T1*(@+`F=S*yc^1)C33E#iY(~u&Ad$0l0#2jRZl6 zXS9Xm{*peiRB#P(Y{kIA)P(c|TZXYo3!M$cMD5~7sAVV-*#Ge} zYB@)vQ0M=Tg+&s~&CfV(h|#<-TR~J?eA_aLt>%^+OqV6R-^WV{#y$%;ck|lmbGD(g ztswsEvp9ysyR7$XQBa;!?9d2g0;QWzQ^d1iDgk)(iQ&<9Tvd`!MM-{wWylYGR{x;c z+)@>tqo)C#=reJ&!o=Q_=c^7*@k|zdbkn=*2-J);7HUAbEcq0v8qwj*)T5g0+I8u# za&AMc*(yXEZ}WMWTG>75)Vo21kh%coX^L60L3s46G*q&59kkOX(oIJ~3J zU*U#XMZn<%5&PT#$!sLyp$ixce^{l64QvBI$S(_K$g&V}wq3l187-U3B9qLMzqvb-^n47;C!p1Q{*?S+SYpgcR9iWDX>71V_)L%-!H6pdfWQEHt*jS>dFJ5)N7mucL@D z#&)RbELbtc@|0qqa*O9dqY~w>_r9Etjn@19gSBSmKq#%8-pW3p2NDb#*mNe~y*1Eu zxcmQG#GiPQEd-yt)zN1ED1FUAL$V=EkPIDM1^(7@|IR##YXM?`kNFJ&b9y}6% z9t<%lPsmaD#tKsg0oD#JOgD&(#7A8Ltg||3sx8cTgX6VBF1ULuPPQI8)4XLa6#kwc zhCJyHuOGl{9Sx(9jcCq^A($+G#D1zXaN0u1m!q>O0_12#V*<^2UJ`nURiuK_<0;D@^ zK>-!BF|seiX6!!RNgzc8Vz7RjpZzEVuU%I{GObc-`4GF`@b!ekTgs+$@VmlJEttVeI_62uMkph&Ce>Jcf>A>a*UvuSiK z#KhF0eAa&_w&Y~ZiG;09fk=H_QHt{pS&bdITI`q&Q~c zZS2SYfSo3!B@`i5o-Vy<>4vP-?}Xm>r7P3+TpU}dTD+n9fdCvbFFd4@*V42Xy5T$U zwW`M>-`nH&Y5Ha{s+41e(F_K71(PUDOtEcNAqzxnQc)8!F6r{F$Arjd%Bt|y4d$WA z`z+l(y+q@Mw~I0CySw+ivS8@rn;<>2^B$B8;}I5!NC*|5;R*OS1J#S>--bl>M>9neK@5!lUZH2|y%42BSouN-Sdi>1jvYDc{!CxEW zAl%C|HjdCx9L4)%Y;z4}H|)Cu%vu!a#Xwu(RphHy?gki|8WnO_dO)f$M;sCG#g5Qh z^CqxfN)SE4h1p)f2)q&b9~9O!(`w9AhRb|31}aN{7_lK24MDqf%i``xzk}I-9%=|a z&%3igH#bHbQismAvcsG=P5IU`dYo@BK4(O8OS0ldStlz;pBuiu~|p;9)6Pyc;(6Fo z%uNNgVp&?*M^7G2m(}dl$V4yQt{qgjm!;owuQ;IHyKkF2>M_W|nk*<;x8O?a!c?eN zcKAlz^iFJn|L|ME2EK%bE0PFl+>KQiHeHjUPOAdbru3|(%6x6WDM&j2)6m(7Ds2JH zZLmof3zz7C$Qf#|n#hinGT-Q?Klx=Lynw`5DAvKj())O6NvLn@i#XZpLb? zjHRpiWF-OL883HaWhBxnx{ZFSTGrNP3ZaxsuBKSW860(>CH_9*!0v5eShaw8)ZDPt z{PX~JTsDER9AG!-l~Ex@6Q`RfhVBvkm;iX5zSiXjRAV^H_;wJuFfR~J%jRB@eqt^% z+Kn28lz>^mCt)y0m=_J~dJ0fJmd5kx5T$q$R$c~3&4)V*$E~-LatD2!xU9=BqpE?B zCPukFKDW=7xdI~)hY>_T%MNe?Y^pFs6Q0QF)R5$3s>+t}%|)t-o7N0yMj^prRYwW` z*vqI}u~Xr%3X>+oYXqYjod~6#7#qsKtf!FKIL~h@OW6r(bKI#C8ruk+oIqo!A%QGr zG!B{%^r`yM9x4~QqebV$+J&&FBvEjP8Fe`Y5lE$J-WR8LSo)l=TKdqDA-W`8 zLrPFXJzZRO`B6_hi`=)pwaBYvY6D-ps3Ec5sw2C1Vv}=eW=MhF%BPkkS15mw1WvC*7fGNH> z7H+ZJ)=Q}w_zhzgPIZUK0`O6{aQZZxHGMJ$rXEsqv+0Eiy;9or3vfi!aE)8K5I#6X zWFv!CO7JyzGui;?OX(v#)ynu#=ZI1ELc)l}I#r{yl;oQwjzntY`Gu8ESPT7%Xv8 zrl5jhx_3CUkY6X@E)2MAHqsF=Odk%>aFFIzzhWXljJbFkxd8*mGvkN3J|(_*rNHrjZq|E9Rm3GGeSzb)%cWPgyvb@_|daDAQS1 zXEp*zooV*(nbwh%$`@*@OScsN6MQG)pQgp&wqc?LLCy^Xp+knK7=E<3QZb*wRDkwm zF(2ZZN1w0&bEOqkRAG_2!2#(H&K#*R;~~RSOaFQFP@i*ZL4CT;9ej6IgB3Cv2~jp- zubFbDIKj4ES-I*bFW8qKd5V0o%xmnvxBn~gSqY~^V`o8eUZ5qInCzmqY$*1>{p^a* zfBm_Zdv_k(a%03fv_qp_g$P6700gCB1$AZ}YGY*gOuM*##Li$Rvi0ZQA9?RgSNmtD z^%~E2JbG|KRjkV6zdc>}*QH;NueaJ)eP-2#p~1ls<>qBsigKeI4fI<>#;eP9A-t^* zS^lGK-=U1dOu9(LdJ>hCjsq081Qg4Urv#m>Wo_03$^knx#j>b>b(!d_l&>0;7PO8q z)SXJUB*Ygi4+@8=QJC%x_7PigaN;F0B?n2Us>6tkk6@YHVvX7|GAed+XO7gbUQ5}) zF9agb67~=GLAPNoOC8TMUn1Qu9ueXM09jddMIlV$bK!XAX8*fp7W)qOGK5b^kXgWr z_2&tKvNUyoB8K*YQHzaIM~g!IB!nU?P{b%Apyq}N09KXdZ6kWbb7cthOX1uk;LjtWSBF|wrEl7l14+inkE&uP+@Rm8&aKf!J0_W;zDX+44>V> zO5=++2+(v(&lfj`Ku8&8sKb`ird<7k+2Rn0poW~@1nLTow3OHfUJ|*mh)x^%A(##e zoI%uFdnSlE+|kOas5*-AH@>)AAa1D%WKdAay%+h?%rde3O>C4i+oF;gcSh$!;Px{B zgpBbjp17oUY`PS-qSBH}OP$KUpur5HtK`i|fv?k_i6R5I3yKUjHsz`_Bc-DF-XYJ? z?i3{wV{j7wo^|(67qSJ5MnGK2xCmc)#{T|5qM0AhJUm^FfY$MS`7hXH(K4kv`cMot zHp%F-eO3ZHrc=!ov7}{h@vxV#-|W~L8gj2+{+smI&c)iz>5seH`%Jtfd8CTHUrwao z&Xhjrdc2}Y)Df3&sd(nTB3|G(HhkJda{?LQ-AtYEV|{& zmoFL4?WU`W_*nzu$U~#G0zjA5^2%je?k$XLWt$!ZjKdby*k170EU6Mc=>*hx47(Y- zo8Y7l$-x^_(zbCMOj;tS&Q3YUblb%;$ho2bpaqC1v0~Z{gX?O<>w|GT_HouZ@0^Jv zi&`a9S;6<`-%uP9!)9jtBpbYC@noXX0UUAhSY*gKi5NhwZ<5SkUgi)Euu;@6)$uYSyAV~RSK@biIr&I7# zXv?$OZ(tv~AkhjU8-q&)eJD3_<#VvCWp-p++5Uwz8&|Se2$Km+rE#WEI?K3Q`d_*o z_Q6VNY^Unr3CstAVIThAC{+|Db`*)Z=mHRbR`C_!)DjdnMn#_TVTE~jh+DJmksA}F z7`7QI-5ROJ{vS|nTtvdSyfK_2?Lca*;uQ?zyL}77RIpqWT`X1xb8mlf&i2Rej2oKl zTt8i6Y5t}7_Dvle{+fD=o%Em${&juq>EAesE_B%i_#P`+6YY z+?G_id#}Gl|MG-s_1FFR)q$e^*%Q^BT9Oo`2h(JSh6CEvZ*G0%o#@@h#b^KU;PzMI z|Mlr#Xl*yT2CKZAJ&B6qIdclyzZ$Ck+JN_o%)h<5f0gU~bNZP_<|p!WKTpIre;c{u z{w3ZP8i1RSk1#PXu>A3|zLrYEp;TrjP$a9&S1KT4{xCeOyef9WI5`wAD(Y_FU2ud+ zTig3k{ey*7L2{%t3QPS%vR8XQDnf`#_JCX20gAf;k?Rp<#(qkYm6 zx7e!WDuOL%7b7l;)H!{Ml^{^VS-Cq~9bG17C&VJlM#Saw>sObXU5SUG57 zepk&*WEVcE9Iz?7^@0-!*66lt0dx_tTj&xVzhT|CSHmTle>( zZtL~8I^RBeWzBzH_i*fAX8ic6BdvF?ZU57{na_k*O#5|n-`@W@Jh%So|GCThx9`3@ ze&_qESMB}zq{pB7+*dz6Z^@PGH+}Tc-B0b@^x~0&k?Qmw?>XQVnzS$k;H4&Il1BRm zV?gDt*r2zsr=tsWEZm`LYG-u6=9^j%LRN2S@d8g$vCHqPzJVg!dgsNTyzuNVZ(jc7 zBX^8^09K{fk*bEj^B4yNowE9fu@Kr>(4pz%#nHG`4 z17(FHS+5T~)^(w6$fi8Q_TM=>?z^-A>QiHqC_@Jy+ke%&Lko@%2Gx`z@jXJC*ECfxKi@Jn>O*q0tiv~`eb}+ zdCOq!D?fPuoh2VOzxSVioAApW>z^*$*G_0M4w#hq8QV3mVxN6evgVdQ|DUHH-1*q^ zyFPQ}S7-lR{IiGau6w>A{hOWU+|T~7WY(@*mVfH5FTR@BHQ|zV!@kWW{<7D6Pi%SP zv%h`vQT5Q*e@|+ZI;jh-UorkcFI1>?C&uiY3F`A7pMP>fbjByo{q*i9|NR?p{`B|X zGhZKhdg$>bApMD!0N#~nCu$d0lksIdT{xpPuX6>$Gm~&AB!9O zRbmGXm;3zAul(>czq@DOv9Ztp;&bn|Uh~1X9_U#2w`<3LS3}ukHY7KyY{cpZ?oAaq z7zRm0u0p-Cr#FmUGfWRKD(HllCVSv=(tCma3_48aYW>1bS`igDKw_xL1I?5i?>{Oc z3^+a4%KiaRNr9lC7^k!#Gf)x;0XYqvk6#=(AUtE_4g_hNMjDrmI4({UmxvGXXU>R) zDx&6W`7Mz1b#9?40w(-PUO~l z)C^thDA8rhS5E?17*!qJnh;447_eQFt@Yd$E|o`F<>Gp z;nq#;00N=QA{)`c0xIxc_A#=ss41x;QA))%@n&HDB0MCQJ~|#N*kAzLX|*1v+!x7S;a7DkiKUYY&1|EI6t(8 zsdQ@N3ZOt)?H%x4sX!md-Lqv?!f6UUr%fZ_6T^)P$oZu`dkgHW+0-&g&>mN(CS5g# zlvFb^=^vsuBR*213ty$mcG)6^|SX^wp{*Ibc9SG@iRX?b$aZjUDHm@*m85=H-Fji z!3UX7Pdahq##e6iPCIpEUu6D&{O{ubL zGz1sl${5a3JX97q4lGVT>0!3#@RWUlR5{-&nCHP{$1;KDni@gSNFw}Mx-9NYsjPxz z2GdC`SW3l+!xO`u$x7x$4K9ub#>*yAoib4tr=TE_DMSsMB!_D}E;1N|QP^J)j%4}KL88`wu9kG zS)0hX&mn3Pmg$AV7G#@i1_+!hoI{CgnRrwy_zBLI5A5KfXZ z@#oN_Kwfcy7!Qlc6_YI0DA>voFY+{?7)Pez;+)dSe-I)ipq8K;`M>=*^sg7!7Vcd& zq6R$0mZKOEHm@+t-Tr-?iK_qkQ*B<|6aPN?&C73m{EbZ?9XbBozyILfk#qMhe)qod zkw4~Se*bQC{(mgH|D1O`{D}5aTVl9I#zh~2YVP^|dGw0R0-pR3j-sL#QbM1qGMm_V3kQva8+b&Gj7I^6gn0F?v z9OI}(L#Bv!T*p}p%e{d}nbzg@W?nv&_~`M!et4+;8T;~lzpdE`wku?^<;N$fLw(j~ zVok1HdF}VON!}5othbWBYWWwZ{hs6$i04U-eBRYRNG$8sW_Rhb; zi4|ocKU~Vl7_7R+%gabDQVMDTgnMLz$b6b`X6uZK1U~@=akJueG#=`KyEPeSE0I?Q z!jfJ<-BA&62~J~Lz$t})S}P8ErNaD#QP~G3JisBLN1{alDC2uz>@a_iP`G3f6!l69 zvH5t54oF&of`tR2g-NMbJ|o51V1KsiJp=YYg9F_h1RqLnElrj#TMYp0vhu;6NezId z_ithPx4Vdzt1+nnItVhwQ*5?pf~mpG!#=lscsG8fvWyGOCi{8-L5wigeT@5uk@{oR>45N%fm9AnmOEipN-Ok?S9XiCoZu^*rK z=tsYP?Y%!-^L)X_b*{JW|M=#QbN;{B=-(b0diavpe(r1QUT)fE28)$2$&E zShZkI59v^4;4%%kn;3l@IxCjw#1lWqi4_u3M^NMmdr2i^qZRT<#tjtOJn%5qhzbK8 z{M4%XL@rt&Q?T*H+nJ>!kakoC5PGcTuoi(In&Ccx5UGgG@8oO~c6dphHH1TPyftOUFM@&_Kps-5TG(;Ax#l|>>3}Po(ivtg4Qj<*BDHRm`z0d15=$bUP z#7o;ir6`;GARYk)*SYC-Bt<*$sEaZK{A_4d7KrmHN^R(VJzYD*$h14Dg+z#~N^=__ z`=~g;15R@Qa_DaXPz*XXlaT;+Rh~wW+ax>l&I2tfqCClfxjsekz#uUIY?*T+M$Cv_9EoBSJiI2AXEQV0 zhyj=mC#!_eR!pn?SAHCb<~chVlJRnx zYATZi1i8`{W(BFVvx5p#&nT_=SzReTN4FmMh)Rus319J!p z^$-dOQiaD$&ES&5XZTGSL)OUKM>`=g4F*0XkN`nqFu(wy4Q@)Ii=`TD*jd9-rp#|- zzEIQ)n@3m-EV`Ya&~jm}RLM>smJ5JZhc%I!0QL0t*=qYo^{~T^B;owJ>Wx#H}hD?+E9ERGEP`1Ep{=9 z0O4BZC6j_9(7U62KmxOthX#uTBLaH(yPM=9(j-J>w+GtQk*h;Ej`sF-fMpK90@>=G zb)D9Q3TDX!J?4VMc~5amM&b#6HZZDAhZ_?)W=i$;VF;BaDPxJxL{p*-bs3^{m?(Y| z{)d6m0c$KTTo{#MY6avLV2n=n)`&04G`YP_CH`Wvg}CR@9q_|TRWaYx<~SAb1BPT( znHurHy?5v7#!~!1ZA~+LK8=61Hlqej{-7u6;|c0_J#luyXWtNWjw{`q+%Co^|Mo~u zm)_`aP|%9S=eI$O20&arNQ{ouzhr|oR?$4(qidm~1YoOz1=`+dNjXr!6#wn7Y<>HP zvA^;1{PtQ_9Rc`2RW^H3Su#r>6h%YF-b0zesNUN_GsPJD{uomcGU*`QB?N{=q^TJds)RYJeZA{eeUTX2SvVx?v_HR2se zCA2mV)CuiRoCwFto(eD0Zp%M%m1c;5(#}N1<d}p8Jy3$*L7-~ z>;UEj&{)DfXBFhYG*yNWFW`qT_=H+HOhBP#lTf`kn^i>b?H|64PM>V#XhGx^2&YKd zOs>$qU?2qug_SnM87e_w@7}f<7bc#kp4QkmMeeBq+n^Vq*yK53X5jKPFzJQIPDx|C zMi(&!&f`_Pla>j+lszzj`>1mR<8Ou<8kGn+NS$&hhogS>CyH(_dhfLrg?@K3|1i~W zm5F~S!$rSP^*VMO?+@Ypi0zbpfSUVTg82Mx(mI?09((0WEC2o3#oo!bsWoDAq>JAQ ziaodl@G>I(*wKrNLB8j-9aq52o|CSHnpW*+i7gI8bfFYSBX!g^&Qv6$o&)cv&Q6$h zW!lW@dp);$k~(Z|H06g1JXV$CM2_11*Sw}%{$1Xj^q#pb8zveHkJqN%doP-Mjbw-Z zC?kD_0)vhz)Q6iR)hc*r+R=Pv*nYC?o8XwF!aM^uB2Sc1;>CLG61XX&*g&Xh9z!r# zhBkd@_~e2iWophAtwG^V2sgo#-jel8si>m{2Jsm#X($eY|Jxkd(_s~4!HV)|yAaig zj$EbC>ru$)EE>bIt_?VfIpBgK!Tk7FCe$fV70HCKIUU17dBx0H>6Wa7o?6AR`pBDc z$MGd#t4a{>fDnTK+CK%LNbunI(nEAX!IB2XWJ!c@T#8j>MOuhbu|dFMAXlg$&qoeN zs#!mM_<96* z#LNg?M1EoCvHrA^!N!eXxE?Sj$XvT6&(tWyn?cq1akNQ(t$NU% z@kc#u=3-YUd#-tgMis;hFt>ofqag*%AS3+=u8}vtP{?;`pjyS(M1}aWnQEmoTPq%|%7L;kd?+PbBl{o(dT+E_PJo_PMG2sydM9^tX34$E=EbgJ#}fU3EaW ztT@G@iv7ft1I@5yujr?&A2S4Buy5^^`T?fave5YnZBg{3EZ+IVMR z*KC^b&v!b&j!{+co+gEQCe2d)CamP>@S3dbWLo|E3*S1VMz18VbH&O7)v1mhckwdt z#Ea}wrNvYmMj+SgEp>G^x3muCg0R3CXW;! zj`b~#F6g~Lg&+@5vn2*Azi^G(QuS11yh6!$nGCIkEW7{ z({q*&F4mN!8N7SQtfZL10e;+kDfOX~3FQM(7!-bhgCN2kO@oFi$ORs3@FoFNKnu*f zmx?E__^X3t)t>zb7%+!y<=H+86=pqXQV9AKA@Z%VbCmUJsCz zwam-%5_>BHuEQ1?O$b}lT3 zS~kSs3U;H#s8sW*xfht2`=kY)WbA=^&Ui@yFq^1x(cJ<`2q?P-x!p}P%o%_n`IErG z!?%v!vql8XvOaGtR#TZn2-;A43bZ;vq-%`iowp#ImiZU9YFE zb87M|6?lzFC%s%=NZ^NArF@8F1WS*-H?mDP>xubDJID5uTQ@zr&U+YND;i3*9cKZE z7Rm)=gw406iSGbBGpHAMMO_66g>-}8$ujAXMIDpVzj|!p*dwX`TJh|(f!UQ6(cMFf zQET+uDGhth2QC<{`|R($wrtLmn~Msj7OvG3x$s3vUy|QEuKP0FcZZIz?&%DG2J0e|;klX0GGKD1?>OBAwpN-03-jS3- zdjtbxxC8}s6n}_7qVLTwz(XS?RI%ZZ)w>cUxf6|WR&9^~$eXD?Osm7CoUYm^ce7{v zAx)@KQLVEAaV@1 zWG_m#p@5dhr8<}NG4^IlMb^_bR5_h)ls8V_*V40>f+u%7bqw8V10G=m%4W-3I4swS z=^;KW!~m)+;QBoi4%1y%doXpO-~hFuRb$~05+66%xpa#7e<1ZKA<*HD0bWktqe&kw zp=E6;O*Z!|s}j0J9Qq6BCq&GU!o;g6yc|&(Mb^eind=A7+YvGm~39X%!;7Ej7zwLkvf20 zg&TuV@C6K#HM8ddshvYi9oUqkkuG^fA%Uwv6ryI3MxmUDGF*0bKSBQYoT|aqqu4xw zI-v*~RDOS)79ic}3EuMGum4v6TK;Ry7@H_O`n(}Jb0mCF$IsB6|w$6-ksXogOwIXsT4b_f&j1im&z8gMj;iWDEScImhl>B@gYKF!%1(?mB z<+PG!g%!dz3iA`VpzgR_Dkc#Spv8^yWUg)T2?UWOlwt1*@D0vG$EAC_=Q63F9d4Bg z1Ly8oRTi+5$%v`w-Kpz5O)ONEXpFHx(;ErUU=obWz{NmnM7@8GdVdcd9MMh{A+|HY z(Z%4I&%_l^P(e)sJDwRQGy02Ob-ZA0T z-BtgmN?+ylxuLpp{CAQcRdH{Ju0sCXpDxcdp1pdS=U+X|D}Hh4edUHOy!YZv^0Mv{ zQC1)K6?b@%YZ;^UQS%f(LbwY+k8_#-@WX~XTJTy!|%TFyN8~ez2L`3w?0b~ zpr^`5-ZG{)z1)+@|LNOD2Wm%Z>YUp{i>^ETuYYM?_~389?<#q6Fb=(!5r-%c=+zH< z+RqHUd+M`)op)WQmu3>RXebVGRlH0kyF@5`ZZ25!^>224*s}HY#W&q*bG@KWi&Le+ z;oR6qt%?a;S-hNsfB%wP=8L?4{Ix|ck|_5Oz$yAq;iuGz_ZuFs`Nv14CV9^3`4iJcn znpq5&>=ev1Z^U1xQ`9t&HGyM~dxfChy(5RuWYUznV7_7nS}0)Ja1){-OiiR;k)}#l zsr9^}w1MkFN}<+g3d?8*7XLJ+vLe7RM7|BJOv)NbQ42zJBt1^;O z7*!OYTBH{)W_=lAehS43RXB)w2UBfYM7{`5rzMDhVCR2YnE}JKK?b zp56Y6jJ&Cb#79FsET!1f+`Iu8-HVs>LqeKi**GIGccs|&l87$a0^v$$f|X<$J6lD8 z%A}B+wX&`%>drWjSuQeG=YNfp(|`mjD4___rYhiJ%>JjhUpx0t^Llw_o8XYU6(@7Fn@J@Y6i|$-g7!ljTO8^= zlxzu8PEdyUWv*|bnM*=1U(00iB%4-_pP`NhAOQd2A4RKhqb8 z9E|qx&}ZWey$`V;02`vgkS)EPPRkvNRKH{oNGNj@lN|-JogH)H$I7T$!LMN;2i=$J zF&t`Ccw|je;W{A?P?Po$)u}E%S@YLcAZt3W-m5O9@Ri{Q&1Jj9+b5+1fo(s+j~n(oAO4uZMyA?%61YLsDs6W& z#+t#aUmf&DFaSEATpx-h^6L)nfJK7HP_3$RGs0au+wU_5E@rEz- zHmZ@y!@vHa$|T~Y_aA=mp|`!KW6$mX=UK0Ot!0YOeHw+GnWwj;4;BAM2J#HfuD*`h zpIQFnxYo$UBH#ZEhp@%Z9QdQu6}`Rz0D0^j;o76impwyvOUIP2&Dr^^9Vww5CDvOy zgfjN62a0>spbuEG;GEDzFON3O%`s;kmQ8d{5f#PD919qFMppnrnnvA*wecmkog-hO zqcZ3V0-PZNrB89BVLyuQP7p3k>01o=m#R+{Vs3G0lIjA2`fxjqd$ z-S4q8y05}vg2Ye{of^$h%2ITmWmzK(aVzi`9BH6k>9Hw);LR9rE<3Gp`$sik|FW&j z+lVXfc$fl~g5);47z9NQeLP=O;04MyoXkK)73*u@-Ej3w3Cf?UHm>x8(=Dw;qb^ZFxu4JS{!abgim^`isyoVSJV`+lvz|ljA#wOAGw=c z^g-eAM$pL84q1?b906FV!751V%aVHf?sp9v^#n)KGMiYDMz)#D(Ue)=ji{Fx21QM88@ce8TQeFgmM-@ zG&5MX*FN2KH4E&QEU^8RIkSlssL&=s-DTkcI1yO~gQvpb63Syr5@`GxHZ?QDM*^c! z_6L1fVLlY-Ro`tIncOn|$nee417qP6XHMV^_QH)D_l+EL&-*wN``Md&7Db!CziaaM z(mBN1c%Gd|ttD$~20Za-(!dG#kFpHURanYiXK2gt*JTT+4 z+%&Vmzj2f*@CDZ*XuvvzmjIDQWRaq^N65h-WRhAW`)kDFP^8OQDOnvFmuPP2^@Ki#-ij3dNaAZ|c3eXP42kK{~~a zfKsFze**!EdDc|zZ8M?@b0r0t2y8cjnv(LgUtgtSZn)a}0Qv$&X&=BiZ$(ghe456> zRiMo>$Ya)p7#z>^AVkWWhbwSS?x2rHVX+o}44M|Eol;^~)70YO#18@)_AnS4 z@U##Bsze1+r+{@)Ghs>r9}d=AKD?V2NJZM!Srr|x7NXD3dSlZ)lN|ZqK%9LeBLj{B z4oPF+1KZ+#q(u7a!Vn`e!W|-qQYa00(x_2jHo(8EmMslB-5FmYO8_k++vM;Gs9Dq) z7L77J`26B7B8*}K8usXCl^5+cH82*= ze#%YFOs5Szb_=QlLmrozGW_0i`ePGF0$tT$JN__H+7$P|G#r|EF@bFvJ6I!GjfE5fnq?m zshYH2IaY`(7ebTt1=BEcjAUq9kwWR1y{6;{i3EyS1Wo}L>X3}K>&vKt)(ai`M|MFm zkD>1CYL{%Iq%-Z>rD1NChbF-Dxkb9?e?3=sWo<%i>73uoeShEXD{G8mOou>=3Zqj! zRj-Z=m%39v(vDmp?F2}P=d5vt*INTb3 zL96_siO6q$uufECG%49ayTXOhZ5A*v?V7$#IH z@)7bANkXeYOq5gf+2}$12k-*O*P=mSOO42oc!9a}6iluhRa~-O;F;!Wmy~c7 z1SQJZeW8b$-nT;sJ`oipJ3f zCJ3qqgmW0m9oUo}le))IkPmuCKMXF~b1HkW{YX%$i}_A@J!P1oeALsE8){sQLTA?~ zJ@jctSh2X0DLPG|leQ8ED{*2P^OemEJ+Mj6^~5VETrbZI2nby3$+Ua9{N8lPreQ;BYOF%e~Fa8GO+hq0EKH$oOkj8Br;&}NzJ}f zy)y6rl0VFjUYBgLVonOPhL(e8bI9$WRUrkk(ADi&-)Dz}gDSp61`BKAOuh3BoX; zKm^cyaP!WJu@#&&Ii&?Wd1%i-FE%c>zy^CTR+zbRURo3f9^_2LjmoUoh^?7es1XBLz#&IfMhw|#FAXs z5Ct;r7T#EPR&iBy-J~9f?Ghk<=OV?qG20rRye_W88$I&RDg}@0+4sM(EP~J(wSXZBYBKO zqMt3B*ME*}LAdE+stkCx$$QUp?W6i(gizkjET?f`4seUJ=?zXbx55Fy#YP09$PWR!$XV zQ&)EScg<=Q1BpgZv7fKOfqt*o@898JjPSwg_^Z)$WqhRzQFwSnZdOe)kCkrVADX9{ zKlu8@|G$s>c0${>!x(WWlA=_%5DHrnfQ=2Q5#k=0lV_9Af%R=)-oquC>-n(4ccRL| zWNcBpiWL6Z+B;v`y7&66i_ZU^^)H`Napp3T#u*YV-6{|#)M`2vqhY*o)H5SpKVygT zHQr;9EZE$OlK_kWDOz?DSFexK%;P%1k3<|WF5~Ux?=21OQTVt}_dA|PJqFCW+ zIRXra)2|lZN0UDes!OFwVw**&1$E;>;O7czabCq(8}NesOiWdbyp$OJ+$ zFuCA1kmRD`ap#pDViQY5lSQ*2j$6Nk7do1BpGXDpprYeq2wqmCv;Vd5+hr<7zELPP2ANWg*ma7k+2YfUqne?i zB z8y;~dLZk+~LVSHBhnb{eI3K){A$=Zg)j0D1-9*M!lUo7`uXM|!fI+xiEI2KYBcg_S zI7`wvEpl9exU(E8?#N)?Uirg(`RUMm2=36esB^+_(*trkbF@dt)?4V?p<_OJYgvW# zXsMugj-?P~77Bvc`#HD`<3ww|=qh&_sY%Vt(Vy@7bD;FRxgscJXxD~;G~@nO}d zTXad@1%&4z2`eNscQ>uBj@UO#+D^!94L5f!UNs1PBvMBEh+Z<^i7gN5P8*;D z?Q}(6%RjWW$!%(WQ-U0u_lTKknF};wg38Bs(Tly0qKK0F87*?aiUkc!&}k!p2qlAl zM09aH|2MaOX{A8<-1#~SXoZcmDd;lu%$lypbKifC=!hn|LJtU0+2PSFabC*B31#Vd zDC?@#6wnmdLA0!V@wr)Q3Klbe?TN^P=9R5F;-pvdLS>8+24egs`)Con*Xi~A^{Xpa z&dD2oJB|p%r)T#W4ryd2xI;&{w!bZBeLR>zmf>i<(Hu1(Wh3~vdr|QN;E#d_9iaGWT+Is<=@tw` z`Tp$CIE|x>{ZrX6Xp<@fT)We>nZdF8UkHrpnq7_zpLclQXYPOf2x3Vi;16r1Mw|i= z-y|ncR~0s6x(=4F#ccG2XfKi$hHU8iuGA3HN*1f_oMxxV`3J~Vw6 zqk2fVf|!*xLScA zfMQiRv9*r@jnD?8^l~fpEz71-Kx(K@`N=By2ofDDNHr*oFiER{5b%|9V?ok2AEp8UNysxdg96{%3w+L?ww10u%D}t`0*>-W3(AyyXi1$DDD`*MM30Y z8d+&n@&XkL({t0nEM7_bD3H^8TmgbEMHnb!#QENJ)M$XtG&=;X9na-GDFk&_PK$|3 z5-jR3Y$eKa4^r7CM*)WDmN*+ATDSyx+_1bO<8V3htS{J)I2!rc7dl(TnR;+d^R!VL zl2ofp=fkRzpc~NBBTzgCy>VW^D<8u3{RoawRddPO(Gnfh26`fK&PGa_7?(cNSs_es z<7O}4#?2n^$7WP_47Z!<$X3x{ewH*q?lApB0>YXk+Q|%_cR9o@2I;(#AcM z7ReBR2YEmaLM^ZlG%)dZjk_;=bjdDF%YRq5_T@@B4D3A&6hJzul*%fprt3B61+34ibxYmk-B4T1fyWc{H!-|i@3zPTuU9}BBJl4DELd8b; zk|5li;i62g^^KtDpsuh@l)NZu0lFx4DZ=^X4-g^FldaWsjo)g|&W{L1$iWY7VV41rRkvC#3!r8oCcf=1dYq(7*oJqXhCS<*k2r#H8|y1rCu2x zKVoAkMSaB%vTWrt_l$B%@eRRRuH8kSmLf)-4Gh=7{ntR{;HVrKN@iFIsHF%?=I?`G zakxW93ijAY6FR_ju4(>Y^3_Ot6?z!oBz60J90@M&_zDPpv%20g6E2R)IdX|yw0nGn z#JMdMs2aJ_EmSD?fjz^aYV}G(N&GPT)9F&oPjB9{2-@K`3byS2f2Vs}{;7Zd!}8MU zk9}yk+>7&k&rZwnk|m+%RDH^dfj_46&~qy(l*b1xT=wXL;D1L{{IMGDX=6MP^YrZ9 z$s}p}AN+sYaB|z}-$BRBI;)^c;<@tufG@5c)(2DT;3W)Cc=1-->)Grq_uRF11AyDWfq%ElS{}O_6bSD`yQ?HjSAgeX(o~T6@q?N^9n0 z12M_zNd;0xot-Beo|}l>8bMnD7a<8qI4@&hcoilR4jXfpHhDk$5jG5Pl<*5#ag5G9sus8z8T3Ob_m}Wl229-ubvAPeP|6C*`_|Dzpb&#V%X1 ze7G`@$$R)8>2fzV)fkN1V1Jon2VZTmn~rspTkD?AUAQ9N=q zzk?xYf$U8C`P`9xi_E)n{<%Beng~;V9@Ad&RSY-hzOr;drZT=f@c3_*9_U^*e8=Jy znN;#lf8&=PJ{xbnuX*?A`(IxB#vE_p8h2{ku3`CA+E^E5JY<8ZIG`Hf~aervPARpWJy~Dk3RP2BDI< z?HFdrY6QpkgAl>F;QXz_Ue+0~(^k}-9q6eS=_lY!O^s;&*KQbLGXE;Pq$(K@B(g-q0`fFN44bTvSpB}~_ zZBRWcOvnfjk`@>~GA%H-aGno{)1Mm-B@y+OLEKM1%Kzr9X+ckfDwfWISyQAN^8(O~ zargp(*?_x44zo^1&;!tE()3`fjg+~AU{B!NaWhj$TIAGY-2_I>>5gD9unqk zZqo>jIiD-fiG3*^!`wYh!UTe7V@UqSC=5ML@q-xa5X!*Zp|=2na6-p|wX|-^q+2*m z5aR72))iMudF5_zA`))%w|l7pvIET4g3cyEx=@9A)SdB|4yT2Tj6;2d%$s)hB*1H9 zHmSN^XnE&Yj&UsC>~z2Q+22fCqAweH^7+CoUnP0jZ@kdN9uIGY_L`87JR1-9W@5I^D~M* zpZ-UbJ3?EJRp|-rKm?1G5%Rc>DYGU;dks}*T(JdMg9_+?{7w2EsO&oBXtdfGr#jmctas)1$ z){4W1m5Gig4_d|kt50!)x3WYN=|C!CYwixi^iy;6_9)W)rc&Z9xL#>;wB$#2tZb|- z$zGUQ=Vu7Bw+3-?l|+{4tk47OU+de4{tM4d^|@Yx*) zzxnz%v^RtQeeR`CTv|K0WIX!2vcYoo){ae6%ZC5*%9__2#(w^nJ6_uK`ui$Z-&i<4 z9@8NSnT9OS!>S ze)F=UFEWZv&YDjg?7{v76Nrrx& zZ(2pUZw~EFU#JT;hDyg;aE=WrQaQ+W0pYNqXMm9{4$}^qxkoi%TdYWx3_s|g>~WWs z#W|N1SvYJnbUysaefg@f_2die+=OS7iV|saI8W2)=CVddKw--XLoCMyq0zb7G|=?g z{J4#u%`iogCNp9R2!v^XR>y~J1dD*W;wx?R~LN7W}18`R* z6==G2S5tQh(uI3VBa4Tz&1*MUf_z|{K8`?#a;~6sP479;A{YerK$s|o9-H#20EdvV zkeiL@f?Of;jB;t1M3MAF=vN>wx9sdpsF1&atVt^CCO#L4gcc+sm7yb@0Ri7HoNA|` zpClral~6U7As7|Q?wc{O}*ZgSrU<%x_UV8EMxk(dnaEfYG6b_WjFU-`o4tA6>blGs4gN=UA%X zo-hj04p$7H4_v9P&3|y-3m1NJ$9)azgRFhqG6=}1_TLkcMl9T8r7PaymY*XSSR%5Y z8?CDHtYAu#VQ?LDZQB0J#y>BJPE2Fw+J z>j)2r2&S9j=;CD-??s|w6TAkbZ*`23M7Bc+4g3sl79?9BxC|tq_}u+u$yBqHfs&CW znSfAwWVsMH0E?*+JV9?PBKIkacUVoe%fU!f66Pau@lv~(5GE9>61~aHL5!&U#ysvb zi5xq~aSXa&yn6r>U}D$wJXA`M35Tb0vE!r!;qVwo49|(&+Y)PDCMYoF1TX^g1iHP< zgR~@UgW};P`G^z&SeKj0C3&Kn7Ew*TP3c*OWWK)_xio?UFhS=WW22~2e~DC?w3@5; zfoyg0-O=HoPy>X`;1iazIcoA4(Cyeb(n?HY<*L`7`0=9^zT|Js@{XRCRuPM&^QFhE zz|Ot2yC-iCQH{ z2AP~hGJ7r!E)s+mZyydF+GC1(24#@n1T9T}Qq2rM45tM;5V`fxsARYXF|O5s+F_4e z+aW&AE{QiA=LBSWE3X!t3w=4L1OJWR#jt@wGq|!0{z+51s5%ca4w$Tv>oY!U3WswlaD#CHmi~Nv!bS#;mzyR|Buuln;Rc@o& ziH|U?0K9&zPUiKItT~#Lo&&B0;}{1562zj$-f+;JYoQvFPcn>n64w+#riivEo~cOi zV{xZ=GTFVGTy}P+JXnU5M9Egeu${tkM&&kSvwL|Gg-MBE+6TN+1HQ#ZG1>PZiG6q% z)1fa@UtyB?_ccv&Fj0CUGH0xxhMNd;iA9%Sr0BqkLIZl zP5Y|p#T@K{x{~jzerE(CC$U^d>+*%Fiq?)9+8yCvs)v-N1ydLuOa|l~RcX&%y8aKx z*ZkD8_%HYT{ny@mssB*j;qU%?%LaY=_=is&KK7&W&wTepTlK`?+`QH?cU$kF)VqKB z)y;30s59G!e}8+f%q`CsZ-c%cS(Q6o-+;gfx|dUH?4rXXMBG(y*QXL%<5F|EZQNrm z-~w#tTHH{^c`Tsw9-a^JK@21EzggDjk2@>l?JtB>)(?x^?%|cCDgOx`p3{G~)L%FW znoJ}g;n{htH#V0Qr`H8XwY{>W-pBkht~j(!Z+R1=IuUqyV4=~GQ4ob_QL9tfGgN@g zcz!uGJ{e3h@;hd3?c?TV6$ygNZKsod)Mb+PI2O+1cd7L%ob?PpAzO!g*#K@(lv80K zPb>%=hB-1f-|;rQsXlBq9&h1@qrkH zo#>`%uaXC1#3&HntOPi4A{-b~fzmwVC*Nw*;c}2WU>;h`39AbPNBfVf=m@w3L>e`teP;D9DfffYwD(DmpBz+Y>heunRB~RS+ zto+RVA57ML_xSS*|8B3-Kzs?LV)jJIQY*hJ<#U8C=K>4mO;}*6tECZhKr7)YrDYgw zC};Q&P_^4j&>L>s3zW2X&_P77m{P|1MUjD@4 zTlS9IQD2C~o`2^;U$E&5zHx70bzFQlF1OL@kWj~P6ot?%($RYI?{}w;RnC7F(leOm zNv;WGkm+SlASXl7&N~tK6m|I#CMtRopow}~*9u1Ks?^9*3wZhaKu+NJMa4iozP=Ym?*NM!f-BW8eD4SE8 zD~98OdS}!I!6zM3EuIhuV#$#)rTGRaz=i$6aGj$t>N86z;6v zQ1^D)x`x8!Ns8#4pu;$E9ofll^iq7r!1x@F#`XQZR59Enj`ATWr(nl%EyiGtjnCp%Ug2qgj+1M0lFg3s?qZMI|M$u_(? zj&gprJ*2tKay!QLv4~r3sM+z7Zr(JpwoV5BaZ+FtBuJn}Pr6?CZurj*E&9T=Y-BgG zGQ#&8{Gi(RQ{BiM4J5ok9Mvi`(01X*jA6GHwCoOV{cE$_5oqKO=^kq3j^$=v&%JBu zbB}&|@hek_W!px-aQEk)zGK~~;q;5Ydw$2~uf5Q9&ksLc<8(aQymR9(`Y*ry&H&$A zk^w_n#@Gz!C*$#<8_4Q|^|P^Ufrd?|b$jpn!QXu8h2)2qp9p)}jDz0n1y`1ll**R7 z4laXnob(%^3V+(zUB0vD07Au#`TrkP#!4d)~bBZrGua+ng=f!%-F|T~H_w0=wV)EXOU$y)FGVM2v?+BFH z@^~q#9QIoHq4zfZbM}C>zT_SR9rbGEXO>AoOV{(5QTd?01E}PqRH0~5(7KyS&Sj7j zSJ;frshET5uj6&kXCMF3_r`|*cx2k=x4rJW^X*linRt{9_R_BwG`|O*Y;gtN5@SEL z>yvf&U)kWdv*hI?$|s#6!4>@4K??q(b3Xn^8nd0`=^gL{7sd|#rw(4 z#aUjawZ;@w@<}>&sn&uy^a5AXVak{c?_Ww%QUcfD`vLql6KA)cx(Fog0`7q##M}b4 zPQCEdS+?p9<&vMGNgt;yz*Cy$s4+|?GjQox65-z^3P^!P6pKbi<)Jhn?vuirI{>Vg z15E>1;J$OD5Z8*coCT-0=stndC?qkbgtEd`!+L}{BnP++=~pX3)@_UR4HkO(g1LOX zNSg*Obb3h%X0e6c?Zfb`N$@>ae7Nt5VfAYGgbSxA}XKhNJAs{ToCZ^PID zfQty9v%`92i~uAiHuR9f`+ufB&?(({Fxj_r|vm zr45Fzzi(@?S-(Ymv`E8m&3H4YjKiu=$ zjZ6QyC|mL|m7W`U%9+0lh*Y8$Tm-vN+dzB|pe7sAt-EC^zI)yXc97MhsaXQ!(r zGC!5MZg33R1c^?pSt)9P*Gx)b=o2mq-X>reWlJI@Rx=O)G4J^7-o{2I#QMzo#l0+Z zgGZVK=wX!;0TIFG*BzxoxUyaMX_QY9j%W>*GDZ~@&I~!_avMVT!rCire1h+O5nL<;1m7)bL$4>v}$XXmmN7 z^1R|!A?Ut}0W*#kAYB6>mlCfur+CEbyeEAEU!%0hT8-fV6q7OnLQCDEZ7x-D_%-nb z(YQ|YhWJMLAfqd%=K6uC412cOR#Q{`>QgWt!`7miFM5JSz=YToSKH^v<`ek1R(XOn8Ux!t?doye&IR+=-l4 z6W+%c*Mc)VnH>-2y0ce|SO4RS&KK0z)*Sy>Qm-0}&^*PjY;Sb@cn6OU%(Vg(QUK?z zm(PkU_v{T^iyIrEE2+e66kS8BxZ~KUJZY#=G7aG0Q5#+;sPJGB^%GE)D-(Z$5Q3** zv`|Z!gd0}F6Yhw(!_MXHjRz54(B}i19-6hh`O!%&P|IDU0kl+@Y&j6Y>C7b+0H%(T z0pK*#VAG<82?J`vUWKT@Z8-GWAHpymW7?o1IM2f=gqNCC)1WgWskE0wWatPKS~lqe z;IZ^Mh9V}V|1jM*kUn2WkwJx9#%u7`rrp!x$pMKmsRU)XIJ1>TjiGFW3zm{uj`jm* zJ0BTzmFto!0W_%%4=_jhMIZohDm|~<5yEd7djf!)BtVg|o2Dj-q@XZYiJkC|q2>yz zG%lFD1W@!(PXpk~h+53CAS9<+bRgJ`P2~PHA2b*!Knmk|aPf6+i8;$+*pzhTGn)fI z`J>STCx)WIeJ3?z!}@o9@j`75yC@P*B`HXOCGTbL-%GnoM<%2n(AXWgJzkM;2>gb% z|FHIxW9qI~78Ol1$N%_@u%P_+W#|6fz4@=*^~WCm(MPNuDj(Pn{*J;kU{Rz!>x3$M z{WJg3TD{TRbuplFI_mQ{!r5 zKgWg6eSdh91a|N!+BBzum*F&cjLRw=hboN;e#?GNaf?#C1)Myam~j+fI!hANXN-oZ z!<0-*wJgNtd`X2(qe>8VoD$M+n0z5+TsaM=!dWXDrx?Egr7Hzembya710zfuN7}G| zY=#Nfgcys_KS+kgo4=Nq?TzJ$q%f%%;Pg0(_(!M3~@wmidz9Y`NAK*6TRMTA)Jpm?T}RKK3*9_PICSIsI{#CTQKRfx z#aT1-NlzM~VRU*@)yVK6h+#}YAg5?g7?pHN;;1#{($Bj3HlFOB%^%qH z=JeV|gE|0IoV-p;=K|ezbs=q7R29aDohHPgeqCR)-1s|H5~f^nXExE9^Ee?Ef7SK$OTT~f+rNEd+Oq5a{`<&XfAPnMKlkG7&kcO^D^y3FDzeLvoM29gSH_x` zQ1D~eqv#^`dpg4Ffdcc)*Ba63xb+e2peTa| zru4YRO^#aB5TyK^CxjvuD|MJ()x|Ub>~>o#X&6cxO@bp}HnFE_W`1%41!Z?thO3MM zeK@B3WfZx|#&c7B^M)nBL2P;_w9utOyE-Xz&FOjgZBGPc687|T*E;gZE;>CbWhrVI z$ZFhShpw7^S4ROGJN#rAwwRd);#(_hZ&E&;iJWMwe{2OzH2^AoK4k|p#!*j`lKeQa z5%fC|IC$iD;8_W>i2@EaD=&d#mRp?kBZe1?ijd)qS64v#d|%n%+O>xzq22>GCpn8Q z8;Z60@I_cNHlHi7n!{8~;*a@F1h*Xav=3}5nQTmjHP~IZg4@<`6dGNiM&u0BNNQlf zE3<9LodpF$-dRkZ9J?62mKs)^;r-{`E-gkvODRNX!ct7;{5n;Y(=})ymy|p>_A2`j zl}Z28%sC_PNlQimyqZ7_fRhP_2Y@A_n&Qz``H!8y&3b?1)+gRM&89s68tSUwc@^b` z^R?Gkl5%k^w(0O_|K#0oofup2dg8Ye<-gzZOzj=#OR>MKaZ?9Nr2ygL^AO1Z)ec2G zp@Lg?o+uA07LTLlcYk?g_YvnrW!_}a5k>H@+q;>BN=Jk7Qd~m}6M)mVI0J}hP!d4N zrg94_kwQJpzU`0_^@$)hB;Epu1OdEYJ0h`n5FeBh!i*JIyyh|%g#mq#jkVHJ!gdkK zRiq}Fr_O??vdydK*B|YK(mktbhH>h<5Z||x*9sF z@#ec*1A`!fv!=MSh|_>N%nU&=)0;@`a}MB&A8ukw<@-%)^(^E)n}{PlJes;$;wHJ4 zv02QUC-LT}ukt`e@fq^z*wLOG_yOW7=;$C}SVe|i@?QW1ssM~Q7l|nI6}TT)=`_jZ zFd0At14GTTY6#HnWJE{LA|$9r@DY;>zB`V{rbd-TP^YQruF+?0$Zry~v?%C;o+W72 z{~#A>w&KlRi8=u4kzzv`a1w&uf=3Hg%P)U!F5Esf1Q~Vxi}16#%pWK3DtBN0?)IAP zPZzu0Z{AG&2_#JX?-PYrKXJysa(@Dd;MQmU?5{5U>T^HM{mP%*%vYlxBFS&EwC`$| zbCa#64lnEx1x)i{zRkW}%Q-WkP8LIa00Z=8AwLA_AZG`Fmt3CxY*yLrIN=;BY2@gb z-I4;+k~;5WZu#+C7q<&nBhSZQ0EA#&hcGE2xu+iWdCoU46XTF$ok0(bXe(*a+YWQg zGk1s!D#_#PAr}!nGefIXFx`pWlIo43P}z$=ytxle4VPF(6O<*Z_*WZENwQb;uHAfK z&f;^>mBc(u=fp~rVi)w86r4R86*%c2MDBnYM#)paegwy$xvAvkAy9V$X0i4uxp?N9 z#I%gZhnt_IH{{P_vcGZGRn6Cd7UU>9C9*N#{km#yYHZjdCxL;ZzD==)d1Xj}YQjX1 zYiPF#KGaM=Ywk)oa4v*4lhm;OgWY#D(&|}>EQLBH~rP4%hL7# zx^cnZ*LW7vK6$tFU7Xq|YGjZgoBY6wXa_EdJW>cO@aGsA!ek!Lg?4~41^EInN;AGn zrkZ(DE|YD`L`FP0m}v4u;fh)-N^XW|!JbPYQs>a6pa7>jTmfJBB0lRrW1JE*nMUp= zUlb3d1Y9h6*Oor<18}$$@IrtS| zEfl~WNH^p%-VW7MtYo+LRoHn7WjvXzdY3-X5F-MGj;GHjCP$}1;x&d@<1onmPYbAa zQ6idpwKN>g2D%FFEzO%Zs_FSzi6Hb?TMJddRt3AaeZd@)6x)l_jkglhf zW=&`hG@C3qkw0TLVk{4eI%Y4AGe^l`ECas>>u|OKgo(9RQW4BjT{H0uiBU-txH42D z0gPkoSt(~-=L-~N+`taU{MJ6kYiw~KeZo$yi*__(Kr7@4@P3}AroMAb`FDgrK3jOp(bV_%#-O?~0~S&x}YNVFiv z*J-XGFoCGcrG!|g`{?laDCrWtZGP#)rgs3L4MhwhD`K7h;Tlz1^PULL zqKsCWKXA4)9dR~I-Nl$16n2u0&DjDVUfNBcO(v(PYtht=;}KJSGi$~0`l2)HS(JB}R_FNf&=8n; zl1Y^mk~A-8XHravZI4wa`HSMsL{irG&aKxZgFVQcS@PBSmGieKBwkjKm!8NI*l?n! z#O-S@G!}x1>d|&axVUL&Rl3B}qqI2<1;^PD4zG~h(ymoeDg=%h#!RpU20MGoZIb7+ z{OiF4C&*C2Lm>s$$s9)s@bpW2J-txx&Z zeMi;UdYTlR`?@y)WI+QtJ&C)Dy#vVOH<_lccg!B)AR_0&i?f#GnL>N3yGPRP5yWa! zAhS`@R_66Y?CJz3;(a=&4#~@sSS>*|8@R$X=Cz_xP<Z!r3uL^(}EBfYhi9DIIfJfW~GXQm!L7u4#;_m6rU+SGMOiW z7^z{dg&T%F7_v~UxojR?gRZjLsA)MIq-FKkA86ugh447XWA%@iR!lGR^NT=JIaY~{ zj31qW@oWmXffen^wTLjh0r?J!G8Gc=w;pteLkq$%nFPb_N^`dw{2TOYkuA?`$$)wgFoWhe}uAd?JzgO;AMu1AEcIV46jK+%K?Tje|Q3>Xp@X+ zqu>tKdaZ(@Ff|4(H`;g0PDr1{uFMefQBY`~F0f8~>_ogB%u8I?N?R4PF)g=oUoZx* zg+pl#LReTT$0B`$wDV3nMKZB;-{6pHh1pQ}iw*%RDpD)8Wa>;DLs?6H9A~r8gxkXu-5b6>H|+ z@9@E&TihcYtiT{}Y7Jv;f*tQUy%M;YR$nE>iOY==#07NT$-DFDsN{`{SAj&F?#Fdk zutpGg*#t%-4Y8(Yq%&h0%htXI_$W+WII#Fv1f|)!lOs~lXebk~SY_AF&U5(sJUnsH zB4!XZh%3xR0meDxBbL7tevT;JN@BA>?N#O+jt%tZduVk}$-+Op5c0bqnQ02bn3;lg zpwL`OEAQ+XDqq3O3q;$(`*A%55O~p!aJ+&b4|Ye>3I+C9U6uhrlHNYd{lQ2nRY6dRNdA%m9j*;pgLEvsus(riV>-E zbpx-(;Lg~O$dT(FHjpjHuNB)%fW~!fJq(r`M`rhI$z^+SW!3a#ilBBc=4e!gDEAgO zak5ZTVO67A@miEIkj20;RK?sRC6agOgA-wbF)c8&g#{VZcw=C(kS_px_)%D8@*e?J z@x!tQ0bM`c0;31S4jIwsap7jrRdVn{;YgWJY;gzPR)ky_IP|b5 z)HZB~vVbAL7@A3!Lu?xXbC`S?RZN;mm=0XpIUGfT8HkW$D~&D4d6Z@ipi?}!!Ay?F z)tocT2!06fCFMw)is6at|C}IAO$X@-&dE>=5sk^#J%~E&!ZOe@NMgee z#mlk?!86erQf{7ifRA}8zF{g@nvg9!xroNi7 za*$s@uE|A5t-*Il+eDrdSS_M|79xiQ5R%CKiM$fynLGf9#fwE!SpyA08O%{fnGb#i z&yM)M(G0nC%pTx~zN#fXv`kE(XJ0sq_Wo{hjWRt1{d3HeRK!5LyNnE6O$bJxG9gVMK} zn!BEBMCtVD_*D@yIt`#X5|YDW))^7gVaf3p(SH~n7<=dP8~W4b_s_pvtJ&5h{rC)P z2VRO!COSfQ(W}!bH0>WKA$_49HHI&GPem)Bi*w>)C*vbxjhsi+;taVG1vdRfgqc7C z4e(P7p+^y`F$0-ggAFomLU?FourLi^=v<8MskK?fWr2dN=Z)N)TMzzyD?w_u7b+uy4P|2%a4!Jx=#bo8E(ejBAON6hTqvV zs)lJDdm3VtatbPi!yCAIZ;45d3%0TMZ09zHLPjRj438}5n7Dm$bt|b&yP_Qoy!Lt0 zd%MZN;-Rvw$4z#*Ncm|{rmU!^g9j)|6#hJ|7$2}coZycI5chSGJJnujg*4$~v(98- za1J=4y?GkXoQ=&l;FsJ)_kweTlgcvFi~M6rZ#C_0xs%sV50wAzPj^}UJ9pVAMkOMW zPdI0}coiW>%!OTpf70gM7xj@F1r**v|5)CP{m1O>-) z1SKMxCWOEFQ5L?bAf2`XR?vg8A*K;sJ`cGyLPR6j)1Bs$%rGZ+ZCwrxf(xQ!4+k>I zk`RUjnQw;Wr3kkFr@0wY1tBzscNR?a0$pbVfR3b37kkslOnpjZ`KIhVho`D z35Eu*n!L_wnbZmhIC;zc=P{8tEIC9Rt}yLuB)*(Aw^Fx?ln50j&44s@(i_p-d~6AKP0V+&rfz$pGq5JXK9eDJZg(2p&8)lh+}i+-F|`4-N@7H+2LF z*X?A0F(==829jQAG-_^+Lkf2d%P_R~biwxdd(q-jx*AGjnyU8Xo0lM9*)Gzt$q9L_ ze8bUZiu%J0z7uowVWGP?xg1C!miF;A49L#{A5AmqVDR!em`9#-+W2PW?TyV zZf<1G@TpD`2*CR4$r%vgTbxNPh@*Y>I)62H2!h2UUs~C2gW~fmT<6IO%gUwKZSq)v z7f`+dV)MHt1eeQ|ex4S>cM?~QGZcJe*HcHV_~1jYuBoS0*L*m#u>h$uIICeI!)QS< z0<}cltmcgsZnl+)9hz$ucyn;T$N4l~Xg&O;&yM^*7s;oiJ0JQu+E0~5O()NZt7s7X zbfp8*ye=|zgsGD5W6M?Ji(2eQ6<-N_WBz;f(0j7w4zhH_6>Lh$Wk8>Ss{?X>T)DG| z$i|+Q^dC;S96LLW_FQI(onA?7n?!OWr)%SxLwHRB$3ws3XSvO{^JlZTI(;(5A>@aO zTSnmq%9G_C8Nd!H)w!G67Eq&)E*|T@)YLs-V zG1T<1$-RE|0vN&#AAxf#>GVW`d@dk`d>ALVnfb=iUGv+%o}QCK0`2kD4Ph+l(IU6S z>6-khG%Lczy&vkCDV#vWkqp+Jh`C%JclH6^!RUdmFTL2%Of7kw$T7;|n8@BOqNKz$m++0ZPIikxDC%P3 zQx{j%sH4(!K_FLEW6V9P5)pCS=fq95ndupL235fe1Ol{7Ol5IK<`{wA3h))x76+;A z&pD``HN30gAA#)L1$sfD4!vbLNyMQ_x-}@^i*1=F*p+;EF^Hwb_|VJ3GQSL zyrl9`o|`@3IGG2&boE0bAZrAhAzh9C*z%%rJ!clV?8JS#Zgy9BT^?Lh!&DqR-ML&M zh9^WmAy-dFo?0HAPF%MDF8wAo-n0P_(t#75Fo=B1V^m+PZZo~tyF&CmUo`KlxTED$ z;m1-j$cPduXD}1RXsZmW)s2-7I6vnq)1Pb~L9B)y+&# zd-Qw19czE|uicyOG~cy9{jB%3d4Zqgu~s0*$)2#>p)~TJG|Nc!l+S5HiCa{&4FPQt z{YC81g_+Tu3DChqK{6GlYINfzo2jocNtVYkb%m)v;pL``(Ipas!?Bk-vxd?x&RwpD zm%k3b9VE1guh+|oh;(3V!#obM;*ssBY=iQ@@*y~WKfo)q)Y#7&aW@?Hw6eKkMV0`_ zBQ4qrmYM#vQI`X0qKbIm5UC6jXx_P7$zQ?sihK~r;?oS?Nij}eF$ zCvHdzy*NlSZA#=9pga3>9I%P}h<)eakTazCvM5TxJg`z$cu;QXhC^&Lm#$BF>!c&q z0&~z_F6g3tdh* zN!iY5g91+oexRwLAmor0;E_k5(o;DiwqUI!AG#*;*l2WoTU{ZTxp?aDoGi#But;!) zJ0SoH69v955HlY!^T030y{nS(p7P>50apo_@} z$sdCl*7-k}Y&q7m==P+skKU?&r&s%Q^vA#68Vhf`FFYPhS^Awcv8Sw77CGG{|EG{3 z+C6CtWH;0@CtY5*spctI0d^g6x^Kq-C;BqPco+V$af z$3<>Q(;9UYulMA3J)jH;o~5oBN4B)m?L?rh5FBy%D2=yOzqPMCh}cU;X~*m|@$6SS z5~N9;hC`Jh(D|6B-cwwIMo!t>s@=0&>FyBR1S2sBCkj+giu6=0q~culCM*X`3fCKC z=_aEwn@yCx%UDC=;LaDqTmaM#fp*6~2kwj)>vFTL7*U{Mq^Cu;!AyCG>s_&E zD{UUdiq1Ndyj$#r7&#ROFA(lN;YGyp3#USMDMJ=1Siv3wt)32-JDdgf3XY=iL*LRF zYj<08--K_U!(E12CFmG^R`Ze$9!jjy-|l7wuo2%XY0t$TT6^`M9-=B^&d9B6V*vh%_TN+L+(nP6;Zn@a2fRjai-TWDVA$Mqlo z^w@u&$_{*FxiP<|1Qy4WsZ0zAJ;CvCkiqt#iaZ;sV+dz46=4lK#H+YW2v9{BBk_tZ z9$~SYp|_JpZw|#+HwB>G{{W@qleBN>cBvCdXJBagDA%YtWnsF6k-ZD?X&u45c0CW->&b}*M9B!-SJ;8J(={oa}}OqrWFbNJ_mHS@zCY%Q7{Ou4DOEs zd1ZP=AV7{oyy?DRN5m@ie&xY$rM~^2YhU&JKYD{Fzw&QxRd?x)wU@VU^F4Js+y=Ivn5V_vSY=9KHt|XlNVDZUt4q`8RG6>lMcCk zt9rByP;>_d1rMg7aq3_hX8>W&n|)d$W95HKGr?3+KUjJPw;tvnsk)E8D#yz3)Ga4oF&nLswr$3q+h0G_TOOYyuuBI~y7D5UWX`O&h8d zvE$f!v3?-UQXqk}^<(#~o%|Kf0t$9HThn*aqG~v9sj3Dp-Uv%SLbu@J%Hdu*>so`} zzlSq0TQTemU^gC8u`6p*EY8I;mUw`AhpO!GCuplFAI+Y9 zg!O@iy7)k>%yKiVwB77*KHR{GpxWWBE0YcohLikveo``%*6ptK$HGz0O7|QFDdSfwRZlW*wKg96GT&d<;9_EXM}1y< zhMgUFRxQ;oKWL{*>e8D%o7Zc(ZHC>Gdhn}{F&Aa2#}oUn|Mi`xZhZE$zX=??vCRdM zCO(VRH$E3CuD6?i6|n#2pMHMr7kB?t*TH{Tu%c;3)2mw-Sevsn6<-c zZ)M5*_AiW`+#H=Vcca<+gO7xl$70^sW_@gi=LNfR>FO6|R@OYc=&N5o|C?XGajJa! zvg7Y%V)hXEp z4C0N5jg9NxWZIW472Gw;od;^^OK~l{HV;UmlHe1G%Am$d1h(|G99{GHx+kaZTk`ge zga4Yoerx6b2u@1h5uAM4m;cJ|C%%07&3QMU{@kyp&3@#rZI68NKlcs(e1B=X`RWX) zp&reJ9bjxjf-y!S{M7hly$Dgj7w+ACbp@?IRlvyGqsBPG)h6I$YFJ+V$xS{Jaq#d+ z^YjjOFbHL?YaQOGBA9bK%85L&yzb64fL7mebEDcy~Y(U9O!});!~nMiwpcUxEc?=O@ns-4~0kIf; zazAA)jI|rt$zt*8&~7sr9oFU8^d*1s>(@W^(b<3a#mvV`oNW)kqP=3gvSq0G(Ko*| zI(um9uN#-VQtQl{+VSVQ>S|Q4doG{P4|Y5{uxWf&s%G|R*?-R?FRlKqEBBsxI5YOx z|Ge|SJMa8w?_YTNHGNjeJm0L6x2`<;?;pRm%Plht$iqZ z;ml{B`TUiee|+qlCwu?PhxP$Lz@5<|EX>S4HbQ7N&Gm^Aosf6>O(Q5-qb}f2NG&AI zL@~rOHA;V<*W13_b}g~8-6QKO?EnK~2h0Des{hJ4r6mtpr^Cz*MQrjiaDlNrgz zpbeSMY`(zhWooUc);%4tL=-iblp7UvN47h9$=!Br6QU?W*~1{M8kZVOGDH*L zK6=RF#i{-6f3#-)t*@)_sd-O4qiucZeO(oAH{SZ|moAjOIokZSM<i!v+zNq;%0vB+7aaUy zPpeTIYLDVYT^g}Qg4f{jLTpV2rgpQDn7{DK7^fIV7}7rQZ$7TNgtSHt`dam=R4ewB zCM6dq zh3XN6%=`_oIGQeZ8UH4j1Pc@vaunmO%;mz~sDTcYpGWmm7 zlQop|WS($iunQ_UCDDGfaya?{eJD8d?lhh%Vlh#H0F^ObBWI9)%cy0N%XrPHa6}5z zHh`_t^W!2w^oY8(Rt<c$O69`}FoNJ4Hs}5aHKU^I_ z^p@e~1)DoNGv-ORRK+}@3^)wxIiu=iuEeuu#4M{vzQPk`92sflB8^RJ=}Lz`8@mqY!P8_+V8d?JMR)TcBtR2wETWX#E9 zbx3oVv`c@F9DyQ_Q$Eotk4yUr7}u@2TnmxZ)7w$o4XQ z2%MhS(`1g{!l#qRWm@CIRmFyX7&RHS0^gTE6XSWl^DUHzc@a6rf0cNUvhl>T6gMGY zu?b4!?%Dintq!v#R4uSJURM5qk4H&lrUsYS1iv~xg^rSbr)lHna4Kv&)rEjA?mv&7-vTfUzQ zB+h9kO51BsNZPJnfxnv9QmrIgE6(BR0Ai%kp2mL|fow_u{ZU8flqOZuc6Tvj3)V<> z0u=lZi~--j1=N+-Jl!M~!|Y&>UAqfCh(lR-;YO0fUqctw1GIt)qMQ>KYCml_7n;6; zbTYhU=ZU$(mfp+2C;EdS%8%j{oFqe*!DQC(k06g8pi?&Uk}b<9A0!MdI#dE-b@*c| zYzi^TN90rI%8C?n!M$fRd97a1xFlk4T7kf7jH-St0rbOFBcP2k2v=udnlWPY_b4wg zi;GqsQJS>G&}XGZ#l6Y(;6d@snbTcGFT+PPOmwIGQB^MbeLIOE>cZ5<=%tf;Q!*~8T7k#Yvsint4<(wL#hJxzu3H}dc*HH_f3+ek4~1uaXkcHLnkWj{6nvC5P82x< z-4*RTA}Sljp034djq1^jsa7T0q)nFC3<#g4q_J#{PqGXh7!71X&RiOKcQy%xBje6` zsT8~&R8*wiiBuF>x9(^5p=m(AZ2LI6EHzG_;2Rm-smd&_R!P&~a0Dx@d%0XZe>4Tm8aVBPedW9uzbA`*;tltvR-wPKiLbq;Rm zy}cETHVWl|s(>W2q&xEe*a;?92r8ABVhCM;+JPaa9jF`5-XIYWp9w1;HwaAxo1DrA zFk21^go$1yx@~Gr*fxccaBHr?X%ShMj=1(fZsw|z+vLx!yL16G-*~C~oumEcsY9PS z-Y|CTJ9{Y~c$BBsDB76}kPemxgv6?>>};8>(H;hI&)`yw?vI$44ul69n4l!KTL(^% zg?m-z=d|!9Gg`V+bl`b3P7qU;V0wE|{#}&09zJ(&5xcsTXM;RJ^QJdJ8=jyN=a19y zQQ=EsV>z<w8~UKG0I)r^!-373`d3 z85>dSPA+k(YWe_#n`~bC(M2l&r8JZ>n5ItA9m0)Bd+xWn`g*#EDMmg}Mi>N2yS&5m zkP>ma%Pv#N{8Kq7TcqIAY5Gy@g2irdIb{3ozIu77Q)2Sngw5A4xxLI62joS$DKbGi z%XYntX)ad@)nTR5a?p#4kqbO;y?0H}{$*Y9K$kNA z#;2FxrvAQht9e=B)cN16j4&wW*+$hdfaQViD4X)T@v{+0I~ z`N&<9bKW=C^}1d+(7;KrmL(@A)j<&y9;H+}_o0;#IUJ7jEP(W2yudm3v(KifZ@hV#yzSb%^%kcxhv(N??2#DbH`k1H+&uU@=xd6I_P@07c;tGxxWIY>~`u|Y%u#S};zOg=b* zd}xL?>QaHFL9OB>W(tK?Dt8C7NZM0i9{@9vLcU!d5j=CKYh)k@w_$;+15qUO`(C!$ z)owmL{GwDXA?yiNTI66OEs0!8R?7$n;J}tilt;ZZW@1h>I8X7KGETnO2$4WmK7*=c zSnA0!>QsSXs~TX13xUO)2dj>wa2K2)dK?6|B`eQ2_6f)brF3woYh3hRvU%A>n%-_B z(MUTH;zaARNA{GjJb#b`t}ZDwJV=Z-YDqOqgsS|)Ev0nK&m+DqD{2y%YTW>yDn)&i z5kcK)UlmrQEN??D6M2o5k(ZXxBD`h=tdgI!aKiBl9*p2=Z8*;8sEGa#|3ff5*hy61 zd0r%$d7GG5C;=bTuI~oaoqn7558a#1>dIGQ=wE?PpbWsng`NQ-O;o_?YTsF1CP(%J zW`;P|7H4L|X-ueDly)m**@itW1w|M%)o%~`vAY%a80+h@*zA={1=cHY@afy;OP)h3#ZF6oeB3-?+_IBY`f~1fk5cx_2iy2$2FFEq4*-J*yBINf#1s zP(C8nE**@y`dHWQ1CpeXhp2MX=^SbW$|gCC?cAzx95Mo>dPESl7gZ9o0H$YHl1`O6?>h>xRVdh;AmW6ru!91v|i6fq-<7*#3g6wFrEFQVC2 zd@TT_=$69S%wHuN6%rN;#zCJXqs2@`Iv=y+@itkKSqWz0ZN#m-^B~%LbPVMHX%bPu zR#b^`udbyPgBc8-#}ERyTNj%SreAH6DPyD26Hsfo+5$ynxg<>C?}isZeF?W@)oDl; zocF{lV2Mj@jdXK(v`~wUh$4hg9CY1@b{JR;R>rTTa)Vf^G&|6+@a3%Fe2AQThY z7&3IcUr~zVf447D$}s)*l6<&%8dSdUkfAtAc--Cmshklmj|S*Gl$aEz{aA z${#q|e=J}@MqxD0t55Bo!7HcTl1_QtFRnJe3D*=Zb8!>ShnO+fXNex!UCm*D#4 zJT!HtDpBF;$3476YaGxBDT514jdF_fQ*@h7Vb1iS5X}^f4=ys4U!a^3Nc%R*7PdiD zSfwVE!ju+VD&(Q2B&WcL;70?JVACs^fKpRs>0SaFiu*Cwb}b^J6bjosz%Vd<3`$9g z&xMMCCs~MIN3Ei`tR_4;%$UijQTrwM|*rC%+`Q!16D#<9FYaYS2|{88R#z)oxF zZ#&qTm<&)(7&I6K&?IG|1YaKmIIVe#}9#=507Q(BdUZd4wsD*8OTEt@BAdYi)3}W&e~gu}H)f!oQo-bV&Zd z!pWBbmG8enx%B4M1V;24q9wt54~HbyX)CBMTi@bR6GGOR*o{J`@$A%)VQ4gFI^oM3&IfLZS^!hnWPzc#m=Mmxp&T0NqR5 zfiMHjzpa*VX*+eYl~c91)8;0X=Pt%4L}#}eoKNi1-;N>eGgS?@tWGUzZUw)kbk7b0 zwCE-ou?4Ct$id5P>nI?l8Ampbbe2+?rikttR-mdNjgn9_G%w&8E)CBN(W+nqG%hF{`94LeTWQoPzqE>X8^~FW1#M)rT z&np}iO+}9Y85tJ8V(D2Td-rpjc@W>E+u#Q*t)rU~hB=0Fz~H@tlL9ZGy5Wlz(bR7D zw=pj&s*1tCgigti#ug%qX1^zJoYw#;zCn>Q^AJ*1?vTQ+@>@Hvz5E^l#xj5Gp3<*> zPux1HXY9Q@eM22ntkiPSL)$Ps~r1ZG>cLg{VQ; z6%xuaKw)r$-n3^c1WbLO!BSsK_XV5MC)mw56MDM{TQ8nzRAKf>PdjUU&v(QPFTTIj z8)gg-_`@i6FPYwRkT&^Cy(hG6pR(Ik>d8%LGWEqE(1ww=z!Y0xC7fhav)Q|Dvc)zW zSA5bk9wSmo#NRE_b=9zTH&)aC;-mnQPP8CZyHI0#1@ETH3RhvUzI#tjv8oFw`wFO5 z`GVyNggVf5>?6`Q91p0`GFp;2&0d>umu6CMWRu64>iR*y0-)#~8@aKo~kquW!t@`$nE0bY*bz)_PvR|8sla@XIOg#I&v= znOKEbRALKmPl+jpj4k=V?rT|olr|X;q5{gtD#jun7pxTfhcH%N*$9T+M*1-C+bwuo zOwmcjoI`r+H@mo3x!-!*E^2m_09Xuq0$Rj>a879)n~s1Y8ESq9dmCS_unpLyb1P1% zEDB5G7{oPVf#C@ID}r6Pp)zSeyn-;hfGODlEsLSp2`1EbvdX4+FtV={uSwl(vkuXU zX#+YfSTz1h5dtkzBfaPqX&qfCP=e8lE=J#OXY*?r(p zB5R!HYVR<-+)n&HofthSy9F&{brnd$0u@CL#@9QTpXriSM3U(FEOMYZ&1|)%Rrn&s zrgb-?`Cgv{u6Gu7+bq%%DWMqtfn^iC$AkfZbrLPi*5dIqm(2-56if|;lqpSbt7Sma z(9k&J6>fX#LV2OF1{L)n_m5-#w3>rgPW3x`UOBzuvWoGJOW*DD?x{A+vBBFNRaO{> zx~ki0mAyk==-x~LC&OsUSDv0o4L>4L!P~9UGmTTW84G^CC!-0sj%QX{%RkT}+^W$u zHzhB1DV@;xr8eZA`1DB^^A9_rnjoTJsc>o`f1MH)i{A3VqXX1D8l)?N3v+f*xRwF5 z2F2n6wlRyj|Khr^hRCVTOJoX9wpo%EjLhM*D+4M-c~sil;!w6^tXcQh7Wd``rte#Z zIei!tJGFIasE5UI{zzor!RR0b3!z>?%|%5mlMQE>zs?#uyD24yqiIDV;c zxOxKK7G0&OtguyU1yarIR_@H1dFR0FHfG8Wmn*I&apjM27FE`^?!*HmwbI`~S~WMX zUYc1UAQ0d(tHBi8nHoSou~~}*)yN1xAe%i`H%gRTAv@+qXY?PlUxhl^Zj)WLY_YkC zQv7ypPkG?})N4h={d>hRMN_JrnOd%*xV09%`+KuBYYREDgyK-SYWarVk*tYx-_!X~R>S&p-6|?anc09GjEJ9qTJ9pB0%emV zeS6i*Ka7|%ZHH~uy1KcE=J2FoQAf#r&CU_^?&_7%hPcqDwzc0mQL#Q?^lvg8V&b}v z!|%lh&baZE_33I$*T{{*m)?G`>#Aah4~^c?vf%ua)~s=n{eeB+IX?|-cI{mE&|Ona zG2^62nP;jqHU_U*S)fHM&bqYJW1+nJt~#|jKJd>?zQ(+u-n#Db`#Sn(oIDxG@=vP` zY5k`R#9OoHF>k%NS**@6<4MUaew44^!H$Ai8CoLx%-Dk+!8eEPv`){Dn1>gN_ z?ig4+Rj-^`8Y$Q^Y0b$-tIMU2eC4^HpL+H9cMTO~dCR&*9bfFTCp@2yd1!Wa?E=r)@<@hDF)557nfq)VRyUj`ij`)SyQ=Oy z4FZK1JH+K(Z`$*dX z4Y^Zf|MArqKKZ9GI}3X&+)*3xS^3)?qXzw0ERCkK`*zFU+>g1xExWk-%_DC-T6m=U zIbo?R01=XY^1_3Mj-u)TO0tTa)rWSk`S^c7{olFt#h$q8$g0ZCuH8XnMa^QbW&Qwm zOU^BemNVP z<}ueiQBhj=#a$nrubrU6km}R;?bc!6eeu)}r$ZNiowt4Cx1DDz{=RML_zB|+wlDqW zmd5vv8b)XlHhwd99eXMMBr4d459CzAVg&Q8pCR;X23E1^^@ zJ6#RC!s=sVsR%l5h85w*5CWtS^OLn)hzo94*e|v|B!U z>)*eBtD%oSKVkcNZ#i}OW$lQUZAt<$Nb;fo0~L>$Cx4ebD}6zmKV{E53!Yir)aO5S z^UiGS^B;#^W=hCd|79jc@f%^RIhVJy42w?e3WNxi4tjnn8d0&3S14Kc~& zqG3o>VBUfJj>^9b#=?^O-KL^3Wl$5EDN5!Z&42x?l?Ba0&2KuD9I+AyC*cqmf5-ua zY1sz@XMWjt`RFh9oII2LWJ}G+69YPT)?7SxX4SmoMPjpmRz~Ohe>6_CjJmt2=G?EI z@e6+8)95G9E*^Zodr5fHfPY4pY#aH+fP;>6qu$Kl@{cRO^W6tUXI7nVskyu9*JlT9 z??3AB%{O*G_MhnBhg)W~TF$f-n&q112lCKBT@|UgDKkImG&5LP{c%rqxgYZ7=o;Dmb;Dq;S5IWL4 zud{H)!~b0J=PJwn%jXSxer%=Kv+>I+$K}xb0hqUNcTJl3<9H$Y@sAr%UX?uS7vFAn z{M~!9`IAKyi&^k{PAWIN+ID)(f$PTPp;eSOqp&ozj=$O_8;gV))r;~S$s4e~Vw)#y zD<;jBe*nIg2+}0ot)U^uFkKF(-01mgtHGsp4DU?fu32*hG7ofrjBX&>U~Lwcvk-^| zu%`;?4^qGY+3W=to6MTzGM)nuXimglH|?6|AIw+1Q%$QqR9mlLy3;_crF+Bkt&h*v z<703gJbvxqPd2>I9(e1SJs)57VW+Y1*mX}|xccY+{AiO1hijcOiW90ClOH*9Scy(3 z7))+1xyGfsvsi}*g>4%Vzi}5oH_6?_;+~GR@o;Oj6_6o_6bump_>BO`C5vPd4kk2H zAnq2%K_q@07p3aq6lO70!0@Ni?N!yVS!pv}nxiaVEi196J-e=H6{IQ{tO>K#beh$7 zyLwfXoT$cMTC3LfS^LAEYSRU|*1Z}qK*qs8))oW4-_hQG+0~PI#T=Mhj(j=JW?0o? z3ooS16v841x|W$yZK6ks0uVIq_sx%|7KsjQPf}#$1_SHSu#jl+It&^`W!y(z%#(8Ro#{1w(5%yryCc~+x?f8GCG4=PCnVg`z#_b z{8MX6C0LNKXbBaWr%n!oUv!;@z zCN*goaGr)Hb^kd?^(Z+>LX{08+tg(4L+X>jc!ne_s&Iy$s?xKUOIl61HC~q_aA3b$ z>2u{(mpltHt5Y0fcY;*OwI(VK4TGYlv`GU9-59G-i|5<1O`_r{)T{k+q@V;3;-?h|Xtsf#c&sdSH=z8sBgRzv6^2 zB^gz83)Uck-TZN|ZN7ETjQ>NAmbjuNS}=&-ma~l-NhYrf8y?i?>&3Ay5W_ zki@{aATVKSu0gT$BjTbM#0sb|Xk^i)Q1z1+PE%g&@iBqNqtc97L(@8%N4SF(5o?H# z5&>^u<}NKEb!OT&HGc5DJ>-i#m~GR?yqKPCrFly$Qn{2&*j!xvy6r@l&3)a%Jb*MR zFz!tqIs^TN6||wc7S|?hKNtgH7KEr$LcO4(Fsu-9Bkg7%3whUi9VbGM@8?^jAp~Ve zC=KI^IN}+8HpU{HB2;1yuZR#GoWT9Zp^PQTkJbWK4=9+$s0G|_^r821ROS*sRDP>i zd}e~@hIhc|FYC2DVo2( zWy90)Ft$Uj^uSI}b_>eX69$lF9tdi}u@hY;2KqsF=OO4j$n|&uFfZ)!#TO;X08>V+ z^uVoqLw*9}CUaW*-9}@d1|1JHFlCf9n%w%F`Fz8uCtpoN+6 z__eEHzT`!=yE>L%7Uk=VuZf*u~EM1Mgt1w%WE^#AA+bUz=ORSn6))n(b~ZUzS8|F1QfEOhFz*wgVDYFG&jPI&MURF(#p<%aeMi zBqXZE@b>^EM{-K|huNwE+9B?qd~)UiD)~ zcHPDS$KO~Z?tKQUX6RsYn8uJ4@HaMs1EY4w4r^PoF4st_$JN33xhUv?GzbPDMGuA? zcm?tFB2TWp-Nb=gm7dNN?TZ?))hJk>rZG?FHBrW(|3^%tIl{22j-y1A!aGSFW120e zYzG-DRttyMUtwB3KGvhe!a?Yq3@)Yr6f#1g3>!I@rvj3O|^k z4SohJ6Wni!|4BETs7oZgX$PeAl_i(jl7wEx2H^V*G{EZ-B}bYy(;mV-xzOu75I-L=0T92oJw_g5-U2p=6b9+}aC12det z0gV5w-j0aUX$x)J{LJ@fZ&|YU>y@_*e4_oUQ-f@86jyDUz43+G?PDIS{(5fDV?Q0! z`M}^QJ9~z`wa<2$>Us&10`DBo6jVz%JUx@Dwts(V*^hYc4C}XleeQ+ z;7+HYMON>dsyX=PF6cp|!}Qfi)bi*R0&;Md7Qu3u0swrOz`#JHb*JSZqh7%2AO<8* zlCfBZmtYo~2Y}tMn_*eeM05uL;Je2iC+y85m23y4z8&?V8u1r-QaE@nL|tCLmej!P zn6n_S7A8O1R*4lWPI}-Vl##Etets7W!$SHoQz;uS`MJvagisxWbnTj{B;BY^tr9{t zr&}*^X}5Sz7rWCqYBO_4GyIMf7vo4zaCLCa7l>-zh^m~29Q5+c9EJQ%#RuNX+~7RloX^ zBwBohzY*%yRooh%y)y6rDz=7B_pjD`bZ5f{g?}0R+2K`*Sur=VfhxtU_r(>5CE(K> zLn_pWKne{6nvL*WvGE-tN?jEsax#?TixbzxFu0KJW+CZ>NAQ8c>5p_sCbkI=SUYJ~ zYIZHJpZA)baM_(e)5JkdfC>TCknJbcRJ{@+48_B2GY+xNNg6F`yS?6HB5|+f=1|%k z@5bpIs1&G7qZj!!fUL)!KC~DYZr4y=%#@{Y|s0 ze8I(Q#0pWZI%0~~*?g*azw_ORiwjymReGsMP^042fYHjRNSQP_q72mk<#e>#G|H@lR& zreDn3J>~8(m;&>{?h7#QE0q>blnaOZ_v+o~W8C6s~BU7mioq>$0=&EkkaM4ToMoY2D z+df;~jsY8ghAC6cW@9LQ@lYeSyc&ErG9tk`p|rP`0kR$uW>RugOEXgq5%O;gQ459J z%puSJrQ-H$-cFLO(1l-+sKL&lNrlmgk2&WZjnTOOW3(J!c+%Zm`{47{Y3O?+E;}?j zz~ny9Ln@3GO2taFrq&lnoP}94{Qe^%7#OR2e7>k;XHuU?CA%{S#WC6{CH~A~I`ill zx=m%QuX}K zJBu?rt2q%MGE-kMVq{~&YUA?Mp*_(HaEN;nuxNEE&9mdl?P31OBs-?mn~BtQrjjdL zOJ9L5U^01K$N}ZFj=DMl73yrkYW(LM3jA|Xmmi20Pb=^sfbR8eN~4UHRU{vOLcbrY z`P*vl&;R=C$u$k}gga;yOlI~$mrPUJn;4^LwY&u`r8a;IuAN-@E)NTLGg=JJ8xNkq znk*~3L|3MNxP^(Tg$0}t#y9@4~xU*H=+vNEX)tuWCb3GKV%NcwtxDs z=A%Q8%<&e4M51f=)Muv^o}N|uY^sea8TP}0AxlJ0S{b2LQ;GAVzl?& z$ECzB8*>|kBS~B_edI5Z9l;a1dHkwkJBK7?Xe}yAcmtWTu4%U?M4MaFM9Tr3AmoGD zxmtt>e;^}h((B~Z{o=W_%OLqzTR+_~V93e+AN(Yv zzfgQ*Bi5l~TiFM|jHRaEsI7_Zpxjxu+AmAFn@vU$w1dtmV6a0UdZ5vr6ry*AsLYd` zi^qbEnt)kAOCf|~34M~?0LN?h4n|_xVJSckk_jZa)J8%YLssELio#ACoM?v;l$@Q* zYj+lzY36FbB-Qa3xW%MtY46YW8!`T&)cGx~W=#hlv#_r0%zj7?wX6LNQ0)Q@%zGe7 zd6cXdman_x-6_xBbo+uQ|5^WNQ*D0Uqf=D-o?GPZDqZkfnK^FHwFC^U&@m-p06K*D z85yM;&x2S6m{)4lDp=ekx@@>8gcGm`rh7t;Rr3Pvcn2pW8IQXRUZ1mwa}K*RB7*!z zxc0~eEGXiZn_g4uL{I>YVuG+eF$d>uD_Iy+SNJ@*6 z;+&$T37a+3WdOqk`EprV3Fr)5LDslVjWlmGpGOwXZ605!*5bm4B_#_F1NZKFc8rrD zBc?SicsV#|q&Z1YfdMYTENa8IqL%IlK;r--IsE#IG=eZcyv3-(JfTxfQql0w^Ij`ETWyVWSp_NgI%fhNaC`bP+&|m!;rSr zrDUpeYgEwzBGBWkig9O383}HsYXXc z;qU2ePNBJMWnIzRAO2vL+-sL+I{cT;^C|AQbmDT@*PEa1b=)xd%j1uCW_EsZVE=Vr z?)&_FpR)zOJ@WP!Kb&~rUx$}}zT>xF%{=?l1Z-8HIbV@ZDFJI?^n%{hRdIVHc8F4YVp-RX}g;+g|!0I37##0 zqP{bh@I)i8cZ~Vhm03ssCaK-1fS!ij)x`rGa`Yu^9< zwReB>#+_RhuKwi4wTJ#*c=DZrfT}~kEjU~7Wcv8`#;+KV{>`I%S1AiVd+){n4KS|S zKj`;OV?@A48d)3n6x*=f7K&4=d?K!mwK~uZ>9Z=g30Gcy5>^A4R(1NQLsQ#30BjU% zXSLH{bc)#3jS48OpJa+*a;@k{CbvuiIG(9deS?B=6oj`!?x}G}O9F`JYsvbc&F1fI3KzX~wdLDB=LX&IPOsO=#oWeA zAF)-S+ox4YkJv8?2sej+KZP!1pzVEgP zx0Q_g2_UD-t~#cQqzqk2g5$r9#x#WU4M|Kig13?;HW8)`_k6b2

EI@_0for@+iw#Z*Lv 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

ZkqQuC0`%4KPpTX` z_ueCzdd9iv(sV77-?btSKU}k>6G=7Q(+|gE(hErgL$`KypEZhqQKBOk1$FxQI#PqI>!*XN%C_P7h z&I$V!x{MJ0m11P$lj2qQ1U?EpDW!dhzbFR{Vmbr%gU( zjbdePWd(Q074n@JTy2vl-;m6Mhw_G#prwyqeImX}y!WpKsDBe?TA#()+>}P(lOLQU z0>phIei`wO$*L`)8#o-)gA=0P)zYc7ioXg-%{awHuq_sP{4tP86D)l597jLBlH)Ix z5NAe4L|FBBy>i=-_K-^ngFxkt}MVV2I;fgLqP*7Pd$yWCGR|son;i4 z_xFx{mkqB#PlOxW zZYWsnF6bZ(gPTbrL)K1%tfr{nl>AT#;qfWT4<=vtqzG<5{Q7XBa`jZ?Q#LoO^Q|1VyR03zwBs0q!OsY~g^(?+}f?^C-#dBchQ;cT`l$){ay>nT5eb zM@^)@5o#Mii{=`rA&p;6Wru6^?&^}L2w{0%VV}fGyLMqR$ej&Zp^xLQQuKSky>zN9 zm;{npDE3`OKV1Qwe|5hvmTAOoh{y>#FaYo)^Hj1D+fLo6ubB?sPF5`juXF$4c}JX= zYOfO~F->qs)c8lGGhXBZ4}%RI+)!UuCVekcx2- zIo;?NPoW42+KiMu$LyA+dVX8EAI{g_5kZpw~&> z>3N>nOboO+Ib^ZKt(6o!dSr5?azHuATCCD!h5pg;1YBFEE!uggXN*kvlT&q4PFk<7 z6cN|GkuX^@TLcG_`0Mbb$Xa17N-+}raaxK_zzIlTuH-Y2Le&^#5&{I_3(fL;i(h~& zgu5WXz9HPOcl12gj}vM@;ZY zC=b=69-x6ze8vhl5m^?skcSxS6IdHLktyRsTY71BHx!d_vox-0l>xlvC?nF^xpF#d z*y=)xE)zi4du9GO!yS=Et(fTHJ%JZW@0%P)l`$j|j+}|z0|ktXN3zIN!akanG#p7S zg(SY>C4iBH1#LBGMh{Qdj%`$&rHOWqHYBv8 zNN0dV0sIP^j4M2DvyE60H^ldT+db}<&hhN9CFGH(7cXwg5~UJcq=B+CV6@IlAdH40 z?hXcbp;MD1azu}PIljOcHD_x?FJU1}=mwADGzWMI!r=WX#RLos(wtIL#9!C>3TxVy zql5d+!BJmP+oO1zMj$zAx~Zkv!y;hBF)|{9Fb+dQa7H3 z9iWd zH{Bm5Ul2Kw{EnK(EeI1BQ*MiEaBCEY4+~yEW~i7X_CzN5rcAs+Q4p&+^zL>{Sb9$t zn^8D`SU%YB78VSwjJmkC&3n@*n+=IVhzf@lKNq$YDIbp>A{i?BqYYxigJduhUF=)_)Y6RrGLo2UX^LPjEf_R=hERR#FcsDWG@UvDq#^5Nm z);2&ZHbgyCtO8FZ?VaTXnu}TslwJX|lB{f;D(hn~u7!p0K`57&YHM_w<-1hrYGcst z*((Q)bMH`KgN7)V^%`)IP8geAp+oWkx zDSHd9stF8>t*o@Xm(WQ zJbWuTZpE(4s1_L?d*iER@owZ>ToTyCKpIoGboBW&sAx_VFq*0;CmQ0wAEZgjnG3I~ zXvUsnXRg0T678F)ljv(KMX3OdWTM0jQ?B}~r6xj^%+VU54!Z^n2~b9$rB5@(0!H96 zwd=|{vg@2y=?Dw){cVaJIe^F4`;v39(oiUF@nV(^`x+iK`A}c_tZtNbkxa2GR?<%M zJEuNPCU$W{^*BP)XU>PNFDKeK6g>1C;aml}fPuKb5~5#4+-;9`;sfBKR*-pgwk)Sx zc!m~{eR7SXLl~=MjhRt3XZMt}Zli(%A9E4Z8sIHJjGW0dAtlqoQ`;GotYoqpd`{sg z(xYpP0`H32l1u&01XVxLicB2#C4gTM4HHPyC2mf6Sxj?QGnts{t|iryf_F~gT&iR& zm58PE{kfP}Qyfl@Obaj;K$$Mt_1)6GxAxRvtidN$Lq4^yi*p`8wL+KK33M8O!M}6F zH+tNVV0PH_R|4tg9BIC&j1YPGlD>YUG)xh)uZ9F~TLyCBU8W8DIvhN+8}| zqsgR|kYtdqf&Qx!f#CNjMmEpMO|DLO>6}?AJz@%Vo#A`TRBg2Bh#A&t~8R0*!JXIya>@ z1FMDB(I9W2Zqzy0c>8W07AbQ6!@WI|?IUdcTBTY5Eyx~K@T>rCC(DhyFYN`+@=D*V z`9iY-a!cT}tcOPwBw<(jB~maP~IEO2|dh|`86N^{!d+VkdELoI?2V$wL4^=V9)g}WqY$_x>sNlK8flxbF0>fpix zrptloMN};e!B6sQ#DeB&RdZm9vJfep_~@i^jg8Z$&jh5>Ck&tME&chrzRkTtc#-mY za^r|-$Po+xJ9^eWE2o^Zi=(?=iu~cTz$|2!utH}dt-n@Oy^rO_C zq%=j!X{JUm8DZ#03nvOXKKUes)WN6<0}{dy4D2~r4Cz-30W zO=}RrCD0O|1aD_)!0M!((|OVt#8$XAhbRzPqnQS50??zF#IR%w6WLWxoa3f{KK*hUZa_=u z-ZH@4cA{_Hg7*k^&C-z*K}qsH&SyXS(Hg=QqH89>$4+bl=cf8mLuteAA4i^^KD8h! zmT^WTaP%v;TZQz*c1X|E>0{h|<|b2WLKEC|)Q7|#A5exC?$(MN}(xB(OQ}#&W1qUEH6eiY8eDTYKGe_3CHnO+tSKQ-Cgy! zikS4_i7$^{Tk!yl!u-`CDBW>GM1>EUx0{)xOi1sMBfs`sz6c{DF)M#GA>C-5n#Q4u z+D)~@7y`fUsEFGHWy4o<-;VxIG3Hd^rgYEK5@zL3s|Ysmo;sGK@y0@- zNf$0?b`iZxa_klNNnq+m4g^gjZ`{@Hz3fg=@8gpiYm&)uBlH zK-dsBqScGL$e5P$G!P~TKBMd`#Lb|pBQchruBONKhet2+N%$2UhjmXB{~@(p5S7H%eiQ}TH0LjhI-Xg$Bkk!Q(1 zNuTbk&^dd+3FK0z{?8Tw)lLIbw&=h0X(^MdPxjfNSE>&+KKJmi|HCpHo~m5%p2^_d zmH102S-l~!u}B0;J;X+fZi#coo>FIVzuB`E>RM+OD}-`?cR<>$&(iVK=sE_O^SkCd*q!Zivr6EMc;V2 z-4>nEXKos?#^Rk+lgDHMVNVz^5FqN`h#pULLpc_JX28-q#R-g6=7b#(Vm{V_nX+$! za>Qvji4cLMgmI}J4s?;>Yl;P)osdk(nk*2XoG{=FBYA`SXEOms<_|#+Pf)F$&WYS{wMzHD{Dr4XIruLN$Pu&BXn!c!Wt3j62WR69pTEc z3iS=&rGUjAH`6sPuwDnf&B4-G`4gtm~#yJ}(crH?Qwd*8gYju_@nt z`;FsMf-t86XLpj~Hz~SiWnzj(rsOp3!k=>zH!sEJ{yJe@E(xhU*u1@gOkETDp1BXP z|HK~E;p{eD3DC4Al2a&PgDcJq66@)nImjgpI?FiaL~uu@86;Z}%)`K6`DE2d4cn<2 z0QiV%N^T=ZH#&zLI>gX|z@iUW7&I!x1dfmRt;|+^LOxO1Je+@@9VxRm8bbtvfB|+NsCRU_I-(xz{3aMczjY*=dO&! z_gU%=HWlt(k+~wPxov$;TJHLgP=Q+ev=MHSQ?_D^!@Y|LQZIRdjaZC&JHoyEr z`+~pN{NTNN`|rJf`MG~OVKYxlH;S!$PcIUawvIe>dU;#q`^S%-9rxS6f2wQTZAOVG zs%vs?c=n-gQFuUP)Td?7np=)haQ9fnGP3;b8Q*zU{l+EVh64}%T)bf8#4k~_jmpoC zEu3fD^qAW-a#XtcTKzAl=(c~H{@s7vGpy|2hyvLdTzP1Yz8 zNz01HPOVWU6D}&NPN-;-7iBd%=1zzUsX<+M2plf7d}Ml$W=WQsyZc<2W#P zTFKPEeXa6^*mHSH-tqtVSI;XE0p6J$J+eG!xEy&}L)$@rrv)T3^{ubSHh^pR zh8ZViqY4wS=p1qQ?d zmekPVvD~Dscci=ohwokT4W;UV3%NC1@KfKB-yT{?-gEO?2T4|kz6QD`Z}g|WJiSsz zsgw;`5^MkD%e50P$?JMF1^RyOH~Ht#U#BFgNh^oXeA#+eYUs@HJ^9r4uB~cFwU|Hs zIg&39vv1R|RpRF^LV~u#BU69>L%e$P)y&~8!6%>m*8dH?^~FAWD%^eQKBeCG#Dw7q zXTSIPIJCdmWqt1tUGcST$QyZ&Yq!_^@q4u+g`9lmdCJdu^VR$R(6^rMOupnxkw5;D z^Pv`f{-S^P8|^0jwr9sDZFYtxez8ZM`29QfW841# DYL*oP literal 0 HcmV?d00001 diff --git a/litellm/proxy/_lazy_features.py b/litellm/proxy/_lazy_features.py index 0e2eed73364..28c701e0fc2 100644 --- a/litellm/proxy/_lazy_features.py +++ b/litellm/proxy/_lazy_features.py @@ -299,11 +299,6 @@ LAZY_FEATURES: Final[tuple[LazyFeature, ...]] = ( module_path="litellm.proxy.spend_tracking.vantage_endpoints", path_prefixes=("/vantage",), ), - LazyFeature( - name="usage_ai", - module_path="litellm.proxy.management_endpoints.usage_endpoints", - path_prefixes=("/usage/ai",), - ), LazyFeature( name="prompts", module_path="litellm.proxy.prompts.prompt_endpoints", diff --git a/litellm/proxy/_lazy_openapi_snapshot.json b/litellm/proxy/_lazy_openapi_snapshot.json index e5e0027a808..0dd978ee855 100644 --- a/litellm/proxy/_lazy_openapi_snapshot.json +++ b/litellm/proxy/_lazy_openapi_snapshot.json @@ -57898,163 +57898,6 @@ } } }, - "usage_ai": { - "components": { - "schemas": { - "ChatMessage": { - "properties": { - "content": { - "title": "Content", - "type": "string" - }, - "role": { - "enum": [ - "user", - "assistant" - ], - "title": "Role", - "type": "string" - } - }, - "required": [ - "role", - "content" - ], - "title": "ChatMessage", - "type": "object" - }, - "HTTPValidationError": { - "properties": { - "detail": { - "items": { - "$ref": "#/components/schemas/ValidationError" - }, - "title": "Detail", - "type": "array" - } - }, - "title": "HTTPValidationError", - "type": "object" - }, - "UsageAIChatRequest": { - "properties": { - "messages": { - "description": "Chat messages (user/assistant history)", - "items": { - "$ref": "#/components/schemas/ChatMessage" - }, - "title": "Messages", - "type": "array" - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "Model to use for AI chat", - "title": "Model" - } - }, - "required": [ - "messages" - ], - "title": "UsageAIChatRequest", - "type": "object" - }, - "ValidationError": { - "properties": { - "ctx": { - "title": "Context", - "type": "object" - }, - "input": { - "title": "Input" - }, - "loc": { - "items": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "integer" - } - ] - }, - "title": "Location", - "type": "array" - }, - "msg": { - "title": "Message", - "type": "string" - }, - "type": { - "title": "Error Type", - "type": "string" - } - }, - "required": [ - "loc", - "msg", - "type" - ], - "title": "ValidationError", - "type": "object" - } - } - }, - "paths": { - "/usage/ai/chat": { - "post": { - "description": "AI chat about usage data. Streams SSE events with the AI response.\nThe AI agent has access to tools that query aggregated daily activity data.", - "operationId": "usage_ai_chat_usage_ai_chat_post", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UsageAIChatRequest" - } - } - }, - "required": true - }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": {} - } - }, - "description": "Successful Response" - }, - "422": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/HTTPValidationError" - } - } - }, - "description": "Validation Error" - } - }, - "security": [ - { - "APIKeyHeader": [] - } - ], - "summary": "Usage Ai Chat", - "tags": [ - "usage_ai" - ] - } - } - } - }, "vantage": { "components": { "schemas": { diff --git a/litellm/proxy/management_endpoints/usage_endpoints/__init__.py b/litellm/proxy/management_endpoints/usage_endpoints/__init__.py deleted file mode 100644 index 6e68dcd2a2e..00000000000 --- a/litellm/proxy/management_endpoints/usage_endpoints/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -""" -Usage endpoints package. - -Re-exports the router from endpoints module. -""" - -from litellm.proxy.management_endpoints.usage_endpoints.endpoints import ( # noqa: F401 - router, -) diff --git a/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py b/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py deleted file mode 100644 index 7a45d0438de..00000000000 --- a/litellm/proxy/management_endpoints/usage_endpoints/ai_usage_chat.py +++ /dev/null @@ -1,627 +0,0 @@ -""" -AI Usage Chat - uses LLM tool calling to answer questions about -usage/spend data by querying the aggregated daily activity endpoints. -""" - -import json -from collections.abc import AsyncGenerator, AsyncIterator, Awaitable, Callable, Mapping, Sequence -from datetime import date -from typing import Final, Literal, NamedTuple, Protocol, cast, overload - -from fastapi import HTTPException -from typing_extensions import ReadOnly, TypedDict - -import litellm -from litellm._logging import verbose_proxy_logger -from litellm.constants import DEFAULT_COMPETITOR_DISCOVERY_MODEL -from litellm.proxy._types import CommonProxyErrors -from litellm.types.proxy.management_endpoints.common_daily_activity import ( - SpendAnalyticsPaginatedResponse, -) -from litellm.types.utils import ChatCompletionMessageToolCall - -# --------------------------------------------------------------------------- -# Constants -# --------------------------------------------------------------------------- - -USAGE_AI_TEMPERATURE: Final = 0.2 - -TABLE_DAILY_USER_SPEND: Final = "litellm_dailyuserspend" -TABLE_DAILY_TEAM_SPEND: Final = "litellm_dailyteamspend" -TABLE_DAILY_TAG_SPEND: Final = "litellm_dailytagspend" - -ENTITY_FIELD_USER: Final = "user_id" -ENTITY_FIELD_TEAM: Final = "team_id" -ENTITY_FIELD_TAG: Final = "tag" - -PAGINATED_PAGE_SIZE: Final = 200 -MAX_CHAT_MESSAGES: Final = 20 -TOP_N_MODELS: Final = 15 -TOP_N_PROVIDERS: Final = 10 -TOP_N_KEYS: Final = 10 - -# --------------------------------------------------------------------------- -# Types -# --------------------------------------------------------------------------- - - -class SSEStatusEvent(TypedDict): - type: Literal["status"] - message: str - - -class SSEToolCallEvent(TypedDict, total=False): - type: Literal["tool_call"] - tool_name: str - tool_label: str - arguments: dict[str, str] - status: Literal["running", "complete", "error"] - error: str - - -class SSEChunkEvent(TypedDict): - type: Literal["chunk"] - content: str - - -class SSEDoneEvent(TypedDict): - type: Literal["done"] - - -class SSEErrorEvent(TypedDict): - type: Literal["error"] - message: str - - -SSEEvent = SSEStatusEvent | SSEToolCallEvent | SSEChunkEvent | SSEDoneEvent | SSEErrorEvent - - -class _EntityEntry(TypedDict, total=False): - metrics: ReadOnly[Mapping[str, float]] - metadata: ReadOnly[Mapping[str, str]] - - -class _DayDump(TypedDict, total=False): - breakdown: ReadOnly[Mapping[str, Mapping[str, _EntityEntry]]] - - -class _EntityTotal(NamedTuple): - """Running per-entity totals accumulated while summarising a usage dump.""" - - alias: str - spend: float - requests: float - tokens: float - - -class _UsageDump(Protocol): - @overload - def get(self, key: Literal["metadata"], default: Mapping[str, float], /) -> Mapping[str, float]: ... - @overload - def get(self, key: Literal["results"], default: Sequence[_DayDump], /) -> Sequence[_DayDump]: ... - - -class _ToolFunctionDef(TypedDict): - name: ReadOnly[str] - description: ReadOnly[str] - parameters: ReadOnly[Mapping[str, object]] - - -class _ToolDef(TypedDict): - type: ReadOnly[str] - function: ReadOnly[_ToolFunctionDef] - - -class ToolHandler(TypedDict): - fetch: Callable[..., Awaitable[_UsageDump]] - summarise: Callable[[_UsageDump], str] - label: str - - -# --------------------------------------------------------------------------- -# Tool definitions (OpenAI function-calling schema) -# --------------------------------------------------------------------------- - -_DATE_PARAMS: Final = { - "start_date": {"type": "string", "description": "Start date in YYYY-MM-DD format"}, - "end_date": {"type": "string", "description": "End date in YYYY-MM-DD format"}, -} - -_TOOL_USAGE: Final[_ToolDef] = { - "type": "function", - "function": { - "name": "get_usage_data", - "description": ( - "Fetch aggregated global usage/spend data. Returns daily spend, " - "token counts, request counts, and breakdowns by model, provider, " - "and API key. Use for overall spend, top models, top providers." - ), - "parameters": { - "type": "object", - "properties": { - **_DATE_PARAMS, - "user_id": { - "type": "string", - "description": "Optional user ID filter. Omit for global view.", - }, - }, - "required": ["start_date", "end_date"], - }, - }, -} - -_TOOL_TEAM: Final[_ToolDef] = { - "type": "function", - "function": { - "name": "get_team_usage_data", - "description": ( - "Fetch usage/spend data broken down by team. Use for questions " - "like 'which team spends the most' or 'show me team X usage'." - ), - "parameters": { - "type": "object", - "properties": { - **_DATE_PARAMS, - "team_ids": { - "type": "string", - "description": "Optional comma-separated team IDs. Omit for all teams.", - }, - }, - "required": ["start_date", "end_date"], - }, - }, -} - -_TOOL_TAG: Final[_ToolDef] = { - "type": "function", - "function": { - "name": "get_tag_usage_data", - "description": ( - "Fetch usage/spend data broken down by tag. Tags are labels " - "attached to requests (features, environments, credentials)." - ), - "parameters": { - "type": "object", - "properties": { - **_DATE_PARAMS, - "tags": { - "type": "string", - "description": "Optional comma-separated tag names. Omit for all tags.", - }, - }, - "required": ["start_date", "end_date"], - }, - }, -} - -TOOLS_BASE: Final = [_TOOL_USAGE] -TOOLS_ADMIN: Final = [_TOOL_USAGE, _TOOL_TEAM, _TOOL_TAG] - - -def get_tools_for_role(is_admin: bool) -> list[_ToolDef]: - """Return the tool list appropriate for the user's role.""" - return TOOLS_ADMIN if is_admin else TOOLS_BASE - - -_SYSTEM_PROMPT_BASE: Final = ( - "You are an AI assistant embedded in the LiteLLM Usage dashboard. " - "You help users understand their LLM API spend and usage data.\n\n" - "ALWAYS call the appropriate tool(s) first to fetch data before answering. " - "You may call multiple tools if the question spans different dimensions.\n\n" - "Guidelines:\n" - "- Be concise and specific. Use exact numbers from the data.\n" - "- Format costs as dollar amounts (e.g. $12.34).\n" - "- When comparing entities, show a ranked list.\n" - "- If data is empty or no results found, say so clearly.\n" - "- Do not hallucinate data — only use what the tools return.\n" - "- Today's date will be provided below. Use it to interpret relative dates " - "like 'this week', 'this month', 'last 7 days', etc." -) - -_TOOL_DESCRIPTIONS_ADMIN: Final = ( - "You have access to these tools:\n" - "- `get_usage_data`: Global/user-level usage (spend, models, providers, API keys)\n" - "- `get_team_usage_data`: Team-level usage breakdown\n" - "- `get_tag_usage_data`: Tag-level usage breakdown\n\n" -) - -_TOOL_DESCRIPTIONS_BASE: Final = ( - "You have access to this tool:\n- `get_usage_data`: Your usage data (spend, models, providers, API keys)\n\n" -) - - -def _build_system_prompt(is_admin: bool) -> str: - """Build role-appropriate system prompt with today's date.""" - tool_desc: Final = _TOOL_DESCRIPTIONS_ADMIN if is_admin else _TOOL_DESCRIPTIONS_BASE - return f"{_SYSTEM_PROMPT_BASE}\n\n{tool_desc}Today's date: {date.today().isoformat()}" - - -# keep a public reference for test assertions -SYSTEM_PROMPT: Final = _SYSTEM_PROMPT_BASE - -# --------------------------------------------------------------------------- -# Data fetchers -# --------------------------------------------------------------------------- - - -def _parse_csv_ids(raw: str | None) -> list[str] | None: - if not raw: - return None - return [t.strip() for t in raw.split(",") if t.strip()] - - -async def _query_activity( - table_name: str, - entity_id_field: str, - entity_id: str | list[str] | None, - start_date: str, - end_date: str, - *, - use_aggregated: bool = False, -) -> SpendAnalyticsPaginatedResponse: - """Shared helper that calls the daily activity query layer.""" - from litellm.proxy.management_endpoints.common_daily_activity import ( - daily_activity_repository, - daily_activity_scope, - get_daily_activity, - get_daily_activity_aggregated, - ) - from litellm.proxy.proxy_server import prisma_client - - if use_aggregated: - if prisma_client is None: - raise HTTPException( - status_code=500, - detail={"error": CommonProxyErrors.db_not_connected_error.value}, - ) - repository: Final = daily_activity_repository(prisma_client) - scope: Final = daily_activity_scope( - table_name, - entity_id_field, - entity_id, - None, - None, - start_date, - end_date, - None, - None, - ) - return await get_daily_activity_aggregated( - repository, - scope, - ) - return await get_daily_activity( - prisma_client=prisma_client, - table_name=table_name, - entity_id_field=entity_id_field, - entity_id=entity_id, - entity_metadata_field=None, - start_date=start_date, - end_date=end_date, - model=None, - api_key=None, - page=1, - page_size=PAGINATED_PAGE_SIZE, - ) - - -async def _fetch_usage_data(start_date: str, end_date: str, user_id: str | None = None) -> _UsageDump: - resp: Final = await _query_activity( - TABLE_DAILY_USER_SPEND, - ENTITY_FIELD_USER, - user_id, - start_date, - end_date, - use_aggregated=True, - ) - return resp.model_dump(mode="json") - - -async def _fetch_team_usage_data(start_date: str, end_date: str, team_ids: str | None = None) -> _UsageDump: - resp: Final = await _query_activity( - TABLE_DAILY_TEAM_SPEND, - ENTITY_FIELD_TEAM, - _parse_csv_ids(team_ids), - start_date, - end_date, - ) - return resp.model_dump(mode="json") - - -async def _fetch_tag_usage_data(start_date: str, end_date: str, tags: str | None = None) -> _UsageDump: - resp: Final = await _query_activity( - TABLE_DAILY_TAG_SPEND, - ENTITY_FIELD_TAG, - _parse_csv_ids(tags), - start_date, - end_date, - ) - return resp.model_dump(mode="json") - - -# --------------------------------------------------------------------------- -# Summarisers — convert raw JSON to concise text the LLM can reason over -# --------------------------------------------------------------------------- - - -def _accumulate_breakdown( - results: Sequence[_DayDump], dimension: str, fields: Sequence[str] -) -> dict[str, dict[str, float]]: - """Aggregate a single breakdown dimension across days.""" - totals: Final[dict[str, dict[str, float]]] = {} - for day in results: - for key, entry in day.get("breakdown", {}).get(dimension, {}).items(): - if key not in totals: - totals[key] = {f: 0.0 for f in fields} - m = entry.get("metrics", {}) - for f in fields: - totals[key][f] += m.get(f, 0) - return totals - - -def _ranked_lines( - totals: dict[str, dict[str, float]], - fmt: Callable[[str, dict[str, float]], str], - limit: int, -) -> list[str]: - """Sort by spend descending, format each entry, and truncate.""" - return [fmt(name, vals) for name, vals in sorted(totals.items(), key=lambda x: -x[1].get("spend", 0))[:limit]] - - -def _summarise_usage_data(data: _UsageDump) -> str: - meta: Final = data.get("metadata", {}) - results: Final = data.get("results", []) - - header: Final = ( - f"Total Spend: ${meta.get('total_spend', 0):.4f}\n" - f"Total Requests: {meta.get('total_api_requests', 0)}\n" - f"Successful: {meta.get('total_successful_requests', 0)} | " - f"Failed: {meta.get('total_failed_requests', 0)}\n" - f"Total Tokens: {meta.get('total_tokens', 0)}" - ) - - models: Final = _accumulate_breakdown(results, "models", ["spend", "api_requests", "total_tokens"]) - providers: Final = _accumulate_breakdown(results, "providers", ["spend", "api_requests"]) - - model_lines: Final = _ranked_lines( - models, - lambda n, d: f" - {n}: ${d['spend']:.4f} ({int(d['api_requests'])} reqs, {int(d['total_tokens'])} tokens)", - TOP_N_MODELS, - ) - provider_lines: Final = _ranked_lines( - providers, - lambda n, d: f" - {n}: ${d['spend']:.4f} ({int(d['api_requests'])} reqs)", - TOP_N_PROVIDERS, - ) - - sections = [header, ""] - sections += ["Top Models by Spend:"] + (model_lines or [" (no data)"]) + [""] - sections += ["Top Providers by Spend:"] + (provider_lines or [" (no data)"]) - return "\n".join(sections) - - -def _summarise_entity_data(data: _UsageDump, entity_label: str) -> str: - """Summarise team/tag entity usage data.""" - results: Final = data.get("results", []) - if not results: - return f"No {entity_label} usage data found for the given date range." - - totals: Final[dict[str, _EntityTotal]] = {} - for day in results: - for eid, entry in day.get("breakdown", {}).get("entities", {}).items(): - previous = totals.get(eid) - m = entry.get("metrics", {}) - totals[eid] = _EntityTotal( - alias=previous.alias if previous is not None else entry.get("metadata", {}).get("alias", eid), - spend=(previous.spend if previous is not None else 0.0) + m.get("spend", 0), - requests=(previous.requests if previous is not None else 0) + m.get("api_requests", 0), - tokens=(previous.tokens if previous is not None else 0) + m.get("total_tokens", 0), - ) - - lines: Final = [f"{entity_label} Usage ({len(totals)} {entity_label.lower()}s):", ""] - for eid, d in sorted(totals.items(), key=lambda x: -x[1].spend): - label = d.alias if d.alias != eid else eid - lines.append(f"- {label} (ID: {eid}): ${d.spend:.4f} | {int(d.requests)} reqs | {int(d.tokens)} tokens") - return "\n".join(lines) - - -# --------------------------------------------------------------------------- -# Tool dispatch registry -# --------------------------------------------------------------------------- - -TOOL_HANDLERS: Final[dict[str, ToolHandler]] = { - "get_usage_data": ToolHandler( - fetch=_fetch_usage_data, - summarise=_summarise_usage_data, - label="global usage data", - ), - "get_team_usage_data": ToolHandler( - fetch=_fetch_team_usage_data, - summarise=lambda data: _summarise_entity_data(data, "Team"), - label="team usage data", - ), - "get_tag_usage_data": ToolHandler( - fetch=_fetch_tag_usage_data, - summarise=lambda data: _summarise_entity_data(data, "Tag"), - label="tag usage data", - ), -} - - -# --------------------------------------------------------------------------- -# SSE streaming -# --------------------------------------------------------------------------- - - -def _sse(event: SSEEvent) -> str: - return f"data: {json.dumps(event)}\n\n" - - -def _resolve_fetch_kwargs( - fn_name: str, - fn_args: Mapping[str, str], - user_id: str | None, - is_admin: bool, -) -> dict[str, str]: - """Build keyword arguments for a tool's fetch function.""" - start_date: Final = fn_args.get("start_date", "") - end_date: Final = fn_args.get("end_date", "") - if not start_date or not end_date: - raise ValueError("Missing required start_date or end_date from tool arguments") - kwargs: Final[dict[str, str]] = {"start_date": start_date, "end_date": end_date} - if fn_name == "get_usage_data": - if not is_admin: - if user_id is None: - # Defense-in-depth: the endpoint guard in usage_endpoints/endpoints.py - # should have already rejected this. If we ever reach here it means - # a future caller invoked the helper without scoping — fail loudly - # rather than issuing an unfiltered global query. - raise ValueError( - "Non-admin caller has user_id=None; refusing to issue an " - "unscoped query. Endpoint-level guard missing." - ) - kwargs["user_id"] = user_id - elif fn_args.get("user_id"): - kwargs["user_id"] = fn_args["user_id"] - elif fn_name == "get_team_usage_data" and fn_args.get("team_ids"): - kwargs["team_ids"] = fn_args["team_ids"] - elif fn_name == "get_tag_usage_data" and fn_args.get("tags"): - kwargs["tags"] = fn_args["tags"] - return kwargs - - -async def _execute_tool_call( - handler: ToolHandler, - fn_name: str, - fn_args: Mapping[str, str], - user_id: str | None, - is_admin: bool, -) -> str: - """Run a single tool and return the summarised result text, or the reason the query - layer rejected its dates so the model can correct them.""" - kwargs: Final = _resolve_fetch_kwargs(fn_name, fn_args, user_id, is_admin) - try: - raw_data: Final = await handler["fetch"](**kwargs) - except HTTPException as e: - reason: Final = _invalid_date_reason(e) - if reason is None: - raise - return f"Invalid date range: {reason}" - return handler["summarise"](raw_data) - - -def _invalid_date_reason(error: HTTPException) -> str | None: - """The reason in the daily activity query layer's 400 for invalid or reversed dates.""" - detail: Final = cast(object, error.detail) # cast-ok: starlette types detail as str; the query layer passes a dict - match detail: - case {"error": str() as reason} if error.status_code == 400: - return reason - case _: - return None - - -async def _process_tool_call( - tc: ChatCompletionMessageToolCall, - chat_messages: list[Mapping[str, object]], - user_id: str | None, - is_admin: bool, -) -> AsyncIterator[str]: - """Execute a single tool call, yielding SSE events for status.""" - fn_name: Final = tc.function.name - fn_args: Final[Mapping[str, str]] = json.loads(tc.function.arguments) - - allowed_names: Final = {t["function"]["name"] for t in get_tools_for_role(is_admin)} - handler: Final = TOOL_HANDLERS.get(fn_name) if fn_name is not None else None - - if fn_name is None or fn_name not in allowed_names or not handler: - chat_messages.append( - { - "role": "tool", - "tool_call_id": tc.id, - "content": f"Tool not available: {fn_name}", - } - ) - return - - tool_event_base: Final = { - "type": "tool_call", - "tool_name": fn_name, - "tool_label": handler["label"], - "arguments": fn_args, - } - yield _sse(cast(SSEToolCallEvent, {**tool_event_base, "status": "running"})) - - try: - tool_result = await _execute_tool_call(handler, fn_name, fn_args, user_id, is_admin) - yield _sse(cast(SSEToolCallEvent, {**tool_event_base, "status": "complete"})) - except Exception as e: - verbose_proxy_logger.error("Tool %s failed: %s", fn_name, e) - tool_result = f"Error fetching {handler['label']}. Please try again." - yield _sse(cast(SSEToolCallEvent, {**tool_event_base, "status": "error"})) - - chat_messages.append({"role": "tool", "tool_call_id": tc.id, "content": tool_result}) - - -async def _stream_final_response(model: str, chat_messages: list[Mapping[str, object]]) -> AsyncIterator[str]: - """Stream the final LLM response after tool results are appended.""" - yield _sse({"type": "status", "message": "Analyzing results..."}) - - response: Final = await litellm.acompletion( - model=model, - messages=chat_messages, - stream=True, - temperature=USAGE_AI_TEMPERATURE, - ) - async for chunk in response: - delta = chunk.choices[0].delta.content - if delta: - yield _sse({"type": "chunk", "content": delta}) - - -async def stream_usage_ai_chat( - messages: list[dict[str, str]], - model: str | None = None, - user_id: str | None = None, - is_admin: bool = False, -) -> AsyncGenerator[str, None]: - """Stream SSE events: status → tool_call → chunk → done.""" - resolved_model: Final = (model or "").strip() or DEFAULT_COMPETITOR_DISCOVERY_MODEL - truncated: Final = messages[-MAX_CHAT_MESSAGES:] if len(messages) > MAX_CHAT_MESSAGES else messages - chat_messages: Final[list[Mapping[str, object]]] = [ - {"role": "system", "content": _build_system_prompt(is_admin)}, - *truncated, - ] - - try: - yield _sse({"type": "status", "message": "Thinking..."}) - tools: Final = get_tools_for_role(is_admin) - response: Final = await litellm.acompletion( - model=resolved_model, - messages=chat_messages, - tools=tools, - temperature=USAGE_AI_TEMPERATURE, - ) - choice: Final = response.choices[0] - - if not choice.message.tool_calls: - if choice.message.content: - yield _sse({"type": "chunk", "content": choice.message.content}) - yield _sse({"type": "done"}) - return - - chat_messages.append(choice.message.model_dump()) - for tc in choice.message.tool_calls: - async for event in _process_tool_call(tc, chat_messages, user_id, is_admin): - yield event - async for event in _stream_final_response(resolved_model, chat_messages): - yield event - yield _sse({"type": "done"}) - - except Exception as e: - verbose_proxy_logger.error("AI usage chat failed: %s", e) - yield _sse( - { - "type": "error", - "message": "An internal error occurred. Please try again.", - } - ) diff --git a/litellm/proxy/management_endpoints/usage_endpoints/endpoints.py b/litellm/proxy/management_endpoints/usage_endpoints/endpoints.py deleted file mode 100644 index cff5bef05a0..00000000000 --- a/litellm/proxy/management_endpoints/usage_endpoints/endpoints.py +++ /dev/null @@ -1,77 +0,0 @@ -""" -USAGE AI CHAT ENDPOINTS - -/usage/ai/chat - Stream AI chat responses about usage data -""" - -from typing import Final, Literal - -from fastapi import APIRouter, Depends, Request -from fastapi.responses import StreamingResponse -from pydantic import Field - -import litellm -from litellm.proxy._types import UserAPIKeyAuth -from litellm.proxy.auth.user_api_key_auth import user_api_key_auth -from litellm.proxy.common_utils.sse_keepalive import ( - SSE_COMMENT_PING, - wrap_sse_stream_with_keepalive_pings, -) -from litellm.types.llms.base import LiteLLMBaseModel - -router: Final = APIRouter() - - -class ChatMessage(LiteLLMBaseModel): - role: Literal["user", "assistant"] - content: str - - -class UsageAIChatRequest(LiteLLMBaseModel): - messages: list[ChatMessage] = Field(..., description="Chat messages (user/assistant history)") - model: str | None = Field(default=None, description="Model to use for AI chat") - - -@router.post( - "/usage/ai/chat", - tags=["Budget & Spend Tracking"], - dependencies=[Depends(user_api_key_auth)], -) -async def usage_ai_chat( - data: UsageAIChatRequest, - request: Request, - user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth), -): - """ - AI chat about usage data. Streams SSE events with the AI response. - The AI agent has access to tools that query aggregated daily activity data. - """ - from litellm.proxy.management_endpoints.common_utils import ( - require_caller_user_id_for_non_admin, - user_api_key_has_admin_view, - ) - from litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat import ( - stream_usage_ai_chat, - ) - - is_admin: Final = user_api_key_has_admin_view(user_api_key_dict) - if is_admin: - user_id = user_api_key_dict.user_id - else: - user_id = require_caller_user_id_for_non_admin(user_api_key_dict) - messages: Final = [{"role": m.role, "content": m.content} for m in data.messages] - - return StreamingResponse( - wrap_sse_stream_with_keepalive_pings( - stream_usage_ai_chat( - messages=messages, - model=data.model, - user_id=user_id, - is_admin=is_admin, - ), - ping_interval_seconds=litellm.sse_keepalive_ping_interval_seconds, - ping_chunk=SSE_COMMENT_PING, - ), - media_type="text/event-stream", - headers={"Cache-Control": "no-cache", "X-Accel-Buffering": "no"}, - ) diff --git a/tests/integration/compatibility/test_status_code_followups_usage_chat.py b/tests/integration/compatibility/test_status_code_followups_usage_chat.py deleted file mode 100644 index de9ec16cf30..00000000000 --- a/tests/integration/compatibility/test_status_code_followups_usage_chat.py +++ /dev/null @@ -1,125 +0,0 @@ -"""The /usage/ai/chat tools hand the model the reason the daily activity query rejected its dates, the same check -the daily activity routes answer 400 with, instead of a generic fetch error.""" - -from __future__ import annotations - -import json -import uuid -from collections.abc import Iterator -from dataclasses import dataclass -from typing import Final - -import pytest -from integration._support.client import JSON_OBJECT, Gateway, object_value -from integration._support.upstream import delete_scenario, register_scenario -from integration.compatibility._status_code_audit import Upstream, json_response, owned_gateway -from pydantic import JsonValue - -pytestmark: Final = pytest.mark.timeout(180) - -_TOOLS: Final = ("get_usage_data", "get_team_usage_data", "get_tag_usage_data") - - -@dataclass(frozen=True, slots=True) -class _UsageChat: - gateway: Gateway - identity: str - - -@pytest.fixture(scope="module") -def usage_chat(tmp_path_factory: pytest.TempPathFactory) -> Iterator[_UsageChat]: - """A proxy whose usage chat model (`openai/...`, called straight through litellm) is the scripted upstream.""" - identity: Final = f"audit-usage-chat-{uuid.uuid4().hex}" - handle: Final = register_scenario(identity, json_response({})) - try: - with owned_gateway( - tmp_path_factory.mktemp("audit-usage-chat"), - {"model_list": [], "router_settings": {"num_retries": 0}}, - environment={"OPENAI_API_BASE": handle.api_base(), "OPENAI_API_KEY": identity}, - ) as owned: - yield _UsageChat(owned, identity) - finally: - delete_scenario(handle) - - -def _tool_calls(start_date: str, end_date: str) -> dict[str, JsonValue]: - arguments: Final = json.dumps({"start_date": start_date, "end_date": end_date}) - return { - "id": "chatcmpl-usage", - "object": "chat.completion", - "created": 1, - "model": "gpt-4o-mini", - "choices": [ - { - "index": 0, - "message": { - "role": "assistant", - "content": None, - "tool_calls": [ - {"id": f"call-{tool}", "type": "function", "function": {"name": tool, "arguments": arguments}} - for tool in _TOOLS - ], - }, - "finish_reason": "tool_calls", - } - ], - "usage": {"prompt_tokens": 1, "completion_tokens": 1, "total_tokens": 2}, - } - - -def _tool_results(usage_chat: _UsageChat, start_date: str, end_date: str) -> tuple[dict[str, str], tuple[str, ...]]: - """Runs one chat turn whose model calls every tool with these dates; returns the tool messages the follow-up - model call carried, keyed by tool, and the tool statuses the SSE stream reported.""" - register_scenario(usage_chat.identity, json_response(_tool_calls(start_date, end_date))) - Upstream(usage_chat.gateway.upstream_url).reset() - with usage_chat.gateway.client.stream( - "POST", - "/usage/ai/chat", - json={"model": "openai/gpt-4o-mini", "messages": [{"role": "user", "content": "How much did we spend?"}]}, - headers={"Authorization": f"Bearer {usage_chat.gateway.key}"}, - timeout=60, - ) as response: - assert response.status_code == 200 - events: Final = tuple( - object_value(JSON_OBJECT.validate_json(line.removeprefix("data: "))) - for line in response.iter_lines() - if line.startswith("data: ") - ) - calls: Final = Upstream(usage_chat.gateway.upstream_url).calls(usage_chat.identity) - assert len(calls) == 2, calls - messages: Final = object_value(calls[1]["body"]).get("messages") - assert isinstance(messages, list), calls[1] - tool_messages: Final = { - str(message["tool_call_id"]).removeprefix("call-"): str(message["content"]) - for message in messages - if isinstance(message, dict) and message.get("role") == "tool" - } - statuses: Final = tuple(str(event.get("status")) for event in events if event.get("type") == "tool_call") - return tool_messages, statuses - - -_REVERSED: Final = "Invalid date range: end_date must be on or after start_date" -_NOT_CANONICAL: Final = "Invalid date range: start_date and end_date must be valid YYYY-MM-DD dates" -_NO_TEAM_DATA: Final = "No Team usage data found for the given date range." -_NO_TAG_DATA: Final = "No Tag usage data found for the given date range." - - -@pytest.mark.parametrize( - ("start_date", "end_date", "team_message", "tag_message"), - ( - pytest.param("2026-10-09", "2026-10-01", _REVERSED, _REVERSED, id="reversed"), - pytest.param("2026-13-01", "2026-10-09", _NOT_CANONICAL, _NOT_CANONICAL, id="invalid-month"), - pytest.param("2001/01/01", "2001-01-09", _NOT_CANONICAL, _NOT_CANONICAL, id="slashes"), - pytest.param("2001-01-01", "2001-01-09", _NO_TEAM_DATA, _NO_TAG_DATA, id="valid"), - ), -) -def test_usage_chat_tools_answer_with_the_query_layers_date_check( - usage_chat: _UsageChat, start_date: str, end_date: str, team_message: str, tag_message: str -) -> None: - """The team and tag tools give the model the daily activity routes' 400 reason; the global tool, whose query - takes these dates without that check, still answers with its usage summary.""" - tool_messages, statuses = _tool_results(usage_chat, start_date, end_date) - assert tool_messages["get_usage_data"].startswith("Total Spend: $"), tool_messages - assert tool_messages["get_team_usage_data"] == team_message, tool_messages - assert tool_messages["get_tag_usage_data"] == tag_message, tool_messages - assert statuses == ("running", "complete") * len(_TOOLS), statuses diff --git a/tests/integration/spend/test_daily_activity_key_metadata_query_timeout.py b/tests/integration/spend/test_daily_activity_key_metadata_query_timeout.py index 780ee43fb3f..0c18f2a4b6f 100644 --- a/tests/integration/spend/test_daily_activity_key_metadata_query_timeout.py +++ b/tests/integration/spend/test_daily_activity_key_metadata_query_timeout.py @@ -99,16 +99,9 @@ class _Activity(BaseModel): results: tuple[_Day, ...] -class _UpstreamMessage(BaseModel): - model_config = ConfigDict(frozen=True) - role: str | None = None - - class _UpstreamRequest(BaseModel): model_config = ConfigDict(frozen=True) stream: bool | None = None - tools: tuple[JsonValue, ...] | None = None - messages: tuple[_UpstreamMessage, ...] = () @dataclass(frozen=True, slots=True) @@ -171,17 +164,6 @@ def _stream_frames() -> tuple[bytes, ...]: return (*(f"data: {json.dumps({**envelope, **frame})}\n\n".encode() for frame in frames), b"data: [DONE]\n\n") -def _usage_tool_call() -> Mapping[str, JsonValue]: - arguments: Final = json.dumps({"start_date": _day(-1), "end_date": _day(1)}) - return { - "role": "assistant", - "content": None, - "tool_calls": [ - {"id": "call_usage", "type": "function", "function": {"name": "get_usage_data", "arguments": arguments}} - ], - } - - def _response_object() -> bytes: return json.dumps( { @@ -216,9 +198,6 @@ def _respond(request: Request) -> Reply: body: Final = _UpstreamRequest.model_validate_json(request.body or b"{}") if body.stream: return Reply(content_type="text/event-stream", chunks=_stream_frames()) - roles: Final = frozenset(message.role for message in body.messages) - if body.tools and "tool" not in roles: - return Reply(body=_completion(_usage_tool_call(), "tool_calls")) return Reply(body=_completion({"role": "assistant", "content": REPLY_TEXT}, "stop")) @@ -459,12 +438,6 @@ def _restore(database_url: str, digest: str) -> None: ) -def _events(response: httpx.Response) -> tuple[Mapping[str, JsonValue], ...]: - return tuple( - json.loads(line.removeprefix("data: ")) for line in response.text.splitlines() if line.startswith("data: ") - ) - - @dataclass(frozen=True, slots=True) class Tenant: label: str @@ -714,39 +687,19 @@ def _rig(gateway: Gateway, directory: Path) -> Generator[tuple[Gateway, str]]: @pytest.mark.timeout(360) -def test_usage_ai_chat_timeout_then_second_timeout_still_recovers_key_alias_after_database_frees( +def test_usage_page_timeout_then_second_timeout_still_recovers_key_alias_after_database_frees( gateway: Gateway, tmp_path: Path ) -> None: with _rig(gateway, tmp_path) as (proxy, database_url): - spender: Final = _spender(proxy, database_url, "ai-chat") + spender: Final = _spender(proxy, database_url, "repeated-timeout") with _pinned(proxy) as pinned: with _locked_spend_logs(database_url): - with _recording(database_url) as during_chat: - chat: Final = pinned.request( - "POST", - "/usage/ai/chat", - body={ - "messages": [{"role": "user", "content": "What did we spend?"}], - "model": "openai/gpt-4o-mini", - }, - ) - assert chat.status_code == 200, chat.text - assert chat.elapsed >= FAILED_LOOKUP_FLOOR, chat.elapsed - tool_call: Final = { - "type": "tool_call", - "tool_name": "get_usage_data", - "tool_label": "global usage data", - "arguments": {"start_date": _day(-1), "end_date": _day(1)}, - } - assert _events(chat) == ( - {"type": "status", "message": "Thinking..."}, - {**tool_call, "status": "running"}, - {**tool_call, "status": "complete"}, - {"type": "status", "message": "Analyzing results..."}, - {"type": "chunk", "content": REPLY_TEXT}, - {"type": "done"}, - ), chat.text - assert len(_lookups(during_chat)) == 1 + with _recording(database_url) as during_timeout: + timed_out: Final = _read(pinned, spender.digest) + assert timed_out.status_code == 200, timed_out.text + assert timed_out.elapsed >= FAILED_LOOKUP_FLOOR, timed_out.elapsed + assert _aliases(timed_out, spender.digest) == (None,), timed_out.text + assert len(_lookups(during_timeout)) == 1 cached_miss: Final = _read(pinned, spender.digest) assert cached_miss.elapsed < FAILED_LOOKUP_FLOOR, cached_miss.elapsed assert _aliases(cached_miss, spender.digest) == (None,), cached_miss.text @@ -1087,44 +1040,3 @@ def test_usage_page_rejects_bad_key_filters_and_unrelated_routes_ignore_a_locked assert gateway_activity == 200, gateway_activity chat: Final = proxy.chat(MODEL, text=f"locked {uuid.uuid4().hex}") assert object_value(chat["usage"]) == dict(USAGE), chat - - -@pytest.mark.timeout(300) -def test_usage_ai_chat_survives_a_dropped_database_connection_during_alias_recovery( - gateway: Gateway, tmp_path: Path -) -> None: - with ( - scratch_database() as database_url, - database_relay(database_url, b"AS " + LOOKUP_MARKER.encode()) as (relay, relayed_url), - wire_server(_respond) as wire, - _proxy(gateway, tmp_path, relayed_url, wire.url) as proxy, - ): - spender: Final = _spender(proxy, database_url, "dropped-ai-chat") - with _pinned(proxy) as pinned: - relay.arm() - chat: Final = pinned.request( - "POST", - "/usage/ai/chat", - body={ - "messages": [{"role": "user", "content": "What did we spend?"}], - "model": "openai/gpt-4o-mini", - }, - ) - assert chat.status_code == 200, chat.text - assert relay.tripped.is_set(), chat.text - tool_call: Final = { - "type": "tool_call", - "tool_name": "get_usage_data", - "tool_label": "global usage data", - "arguments": {"start_date": _day(-1), "end_date": _day(1)}, - } - assert _events(chat) == ( - {"type": "status", "message": "Thinking..."}, - {**tool_call, "status": "running"}, - {**tool_call, "status": "complete"}, - {"type": "status", "message": "Analyzing results..."}, - {"type": "chunk", "content": REPLY_TEXT}, - {"type": "done"}, - ), chat.text - recovered: Final = _named_once_reconnected(pinned, spender) - assert _metadata(recovered, spender.digest) == _full_metadata(spender), recovered.text diff --git a/tests/integration/spend/test_daily_activity_key_owner_traffic.py b/tests/integration/spend/test_daily_activity_key_owner_traffic.py index b8f113aca49..5284ad631de 100644 --- a/tests/integration/spend/test_daily_activity_key_owner_traffic.py +++ b/tests/integration/spend/test_daily_activity_key_owner_traffic.py @@ -6,7 +6,6 @@ from collections.abc import Iterable from concurrent.futures import ThreadPoolExecutor from datetime import UTC, datetime, timedelta from hashlib import sha256 -from pathlib import Path from queue import SimpleQueue from typing import Final @@ -31,8 +30,7 @@ from integration._support.daily_activity import ( user_row, user_with_an_email, ) -from integration._support.database import read_rows, scratch_database -from integration._support.process import owned_proxy +from integration._support.database import read_rows from integration._support.wire import Reply, Request, wire_server from pydantic import JsonValue @@ -51,22 +49,6 @@ UNIFIED_ENDPOINTS: Final = ("/v1/chat/completions", "/v1/messages", "/v1/respons REQUESTS_OF_A_BURST: Final = 21 READS_DURING_A_BURST: Final = 30 TOKEN_LIMIT_DISCOVERY: Final = ("GET", "/v1/models") -TOOL_CALL: Final = "call_integration_usage" -ANSWER: Final = "One request cost $0.25" -SUMMARY_OF_ONE_SEEDED_ROW: Final = "\n".join( - ( - "Total Spend: $0.2500", - "Total Requests: 1", - "Successful: 1 | Failed: 0", - "Total Tokens: 15", - "", - "Top Models by Spend:", - " - gpt-4o-mini: $0.2500 (1 reqs, 15 tokens)", - "", - "Top Providers by Spend:", - " - openai: $0.2500 (1 reqs)", - ) -) def _chat_completion() -> dict[str, JsonValue]: @@ -105,55 +87,6 @@ def _provider(request: Request) -> Reply: return Reply(body=json.dumps(body).encode()) -def _usage_tool_call() -> dict[str, JsonValue]: - call: Final[dict[str, JsonValue]] = { - "id": TOOL_CALL, - "type": "function", - "function": { - "name": "get_usage_data", - "arguments": json.dumps({"start_date": DAY, "end_date": DAY}), - }, - } - return { - "id": f"chatcmpl-{uuid.uuid4().hex}", - "object": "chat.completion", - "created": 1, - "model": "gpt-4o-mini", - "choices": [ - { - "index": 0, - "message": {"role": "assistant", "content": None, "tool_calls": [call]}, - "finish_reason": "tool_calls", - } - ], - "usage": {"prompt_tokens": 10, "completion_tokens": 5, "total_tokens": 15}, - } - - -def _streamed_chunk(delta: dict[str, JsonValue], finish_reason: str | None) -> bytes: - chunk: Final = { - "id": "chatcmpl-integration-usage", - "object": "chat.completion.chunk", - "created": 1, - "model": "gpt-4o-mini", - "choices": [{"index": 0, "delta": delta, "finish_reason": finish_reason}], - } - return f"data: {json.dumps(chunk)}\n\n".encode() - - -def _usage_analyst(request: Request) -> Reply: - if json.loads(request.body).get("stream"): - return Reply( - chunks=( - _streamed_chunk({"role": "assistant", "content": ANSWER}, None), - _streamed_chunk({}, "stop"), - b"data: [DONE]\n\n", - ), - content_type="text/event-stream", - ) - return Reply(body=json.dumps(_usage_tool_call()).encode()) - - def _sent_for_callers(requests: Iterable[Request]) -> tuple[Request, ...]: return tuple(request for request in requests if (request.method, request.target) != TOKEN_LIMIT_DISCOVERY) @@ -322,65 +255,6 @@ def test_cli_session_spend_is_reported_with_the_user_and_team_of_the_session( ) -@pytest.mark.timeout(300) -def test_usage_ai_chat_hands_the_model_the_usage_summary_without_any_key_owner( - gateway: Gateway, tmp_path: Path -) -> None: - question: Final = f"what did we spend {uuid.uuid4().hex}" - owner: Final = f"integration-{uuid.uuid4().hex}" - ownerless_key: Final = f"integration-ownerless-{uuid.uuid4().hex}" - with ( - scratch_database() as scratch_url, - wire_server(_usage_analyst) as wire, - owned_proxy( - gateway, - tmp_path, - { - "DATABASE_URL": scratch_url, - "OPENAI_API_BASE": f"{wire.url}/v1", - "OPENAI_BASE_URL": f"{wire.url}/v1", - "OPENAI_API_KEY": "integration-provider-key", - }, - remove_environment=("DATABASE_URL_READ_REPLICA",), - ) as candidate, - ): - candidate.post("/user/new", {"user_id": owner, "user_email": f"{owner}@example.com", "auto_create_key": False}) - with daily_rows((user_row(owner, ownerless_key, DAY),), database_url=scratch_url): - answer: Final = candidate.request( - "POST", - "/usage/ai/chat", - {"messages": [{"role": "user", "content": question}], "model": "openai/gpt-4o-mini"}, - ) - assert answer.status_code == 200, answer.text - tool_call: Final = { - "type": "tool_call", - "tool_name": "get_usage_data", - "tool_label": "global usage data", - "arguments": {"start_date": DAY, "end_date": DAY}, - } - events: Final = [ - json.loads(line.removeprefix("data: ")) for line in answer.text.splitlines() if line.startswith("data: ") - ] - assert events == [ - {"type": "status", "message": "Thinking..."}, - {**tool_call, "status": "running"}, - {**tool_call, "status": "complete"}, - {"type": "status", "message": "Analyzing results..."}, - {"type": "chunk", "content": ANSWER}, - {"type": "done"}, - ], answer.text - asked, analysed = wire.drain() - assert [asked.target, analysed.target] == ["/v1/chat/completions", "/v1/chat/completions"] - assert json.loads(asked.body)["messages"][-1] == {"role": "user", "content": question} - assert json.loads(analysed.body)["messages"][-1] == { - "role": "tool", - "tool_call_id": TOOL_CALL, - "content": SUMMARY_OF_ONE_SEEDED_ROW, - } - assert owner not in analysed.body.decode() - assert ownerless_key not in analysed.body.decode() - - @pytest.mark.timeout(300) def test_owner_is_reported_on_every_route_while_a_burst_of_requests_waits_on_the_provider(gateway: Gateway) -> None: released: Final = threading.Event() diff --git a/tests/unit/proxy/management_endpoints/usage_endpoints/test_ai_usage_chat.py b/tests/unit/proxy/management_endpoints/usage_endpoints/test_ai_usage_chat.py deleted file mode 100644 index 4daddb89350..00000000000 --- a/tests/unit/proxy/management_endpoints/usage_endpoints/test_ai_usage_chat.py +++ /dev/null @@ -1,657 +0,0 @@ -""" -Tests for AI Usage Chat module. -""" - -import json -from collections.abc import AsyncIterator -from typing import Final -from unittest.mock import AsyncMock, MagicMock, patch - -import pytest -from fastapi import HTTPException - -from litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat import ( - TOOL_HANDLERS, - TOOLS_ADMIN, - TOOLS_BASE, - _build_system_prompt, - _summarise_entity_data, - _summarise_usage_data, - stream_usage_ai_chat, -) - - -SAMPLE_AGGREGATED_RESPONSE = { - "results": [ - { - "date": "2025-01-15", - "metrics": { - "spend": 50.25, - "prompt_tokens": 20000, - "completion_tokens": 10000, - "total_tokens": 30000, - "api_requests": 500, - "successful_requests": 480, - "failed_requests": 20, - "cache_read_input_tokens": 0, - "cache_creation_input_tokens": 0, - }, - "breakdown": { - "models": { - "gpt-4": { - "metrics": { - "spend": 40.0, - "api_requests": 300, - "total_tokens": 25000, - }, - "metadata": {}, - "api_key_breakdown": {}, - }, - }, - "providers": { - "openai": { - "metrics": {"spend": 50.25, "api_requests": 500}, - "metadata": {}, - "api_key_breakdown": {}, - }, - }, - "api_keys": { - "sk-test123": { - "metrics": {"spend": 50.25}, - "metadata": {"key_alias": "Production Key"}, - }, - }, - "model_groups": {}, - "mcp_servers": {}, - "entities": {}, - }, - }, - ], - "metadata": { - "total_spend": 50.25, - "total_api_requests": 500, - "total_successful_requests": 480, - "total_failed_requests": 20, - "total_tokens": 30000, - }, -} - -SAMPLE_TEAM_RESPONSE = { - "results": [ - { - "date": "2025-01-15", - "metrics": {"spend": 100.0, "api_requests": 1000, "total_tokens": 50000}, - "breakdown": { - "entities": { - "team-1": { - "metrics": { - "spend": 60.0, - "api_requests": 600, - "total_tokens": 30000, - }, - "metadata": {"alias": "Engineering"}, - "api_key_breakdown": {}, - }, - "team-2": { - "metrics": { - "spend": 40.0, - "api_requests": 400, - "total_tokens": 20000, - }, - "metadata": {"alias": "Marketing"}, - "api_key_breakdown": {}, - }, - }, - "models": {}, - "providers": {}, - "api_keys": {}, - "model_groups": {}, - "mcp_servers": {}, - }, - }, - ], - "metadata": {"total_spend": 100.0, "total_api_requests": 1000}, -} - - -class TestToolSchemas: - def test_admin_tools_include_all(self): - assert len(TOOLS_ADMIN) == 3 - names = {t["function"]["name"] for t in TOOLS_ADMIN} - assert "get_usage_data" in names - assert "get_team_usage_data" in names - assert "get_tag_usage_data" in names - - def test_base_tools_restricted_to_usage_only(self): - assert len(TOOLS_BASE) == 1 - assert TOOLS_BASE[0]["function"]["name"] == "get_usage_data" - - def test_admin_prompt_mentions_all_tools(self): - prompt = _build_system_prompt(is_admin=True) - assert "get_usage_data" in prompt - assert "get_team_usage_data" in prompt - assert "get_tag_usage_data" in prompt - - def test_non_admin_prompt_only_mentions_usage_tool(self): - prompt = _build_system_prompt(is_admin=False) - assert "get_usage_data" in prompt - assert "get_team_usage_data" not in prompt - assert "get_tag_usage_data" not in prompt - - def test_system_prompt_includes_todays_date(self): - from datetime import date - - prompt = _build_system_prompt(is_admin=True) - assert date.today().isoformat() in prompt - - -class TestSummariseUsageData: - def test_summarise_includes_totals(self): - summary = _summarise_usage_data(SAMPLE_AGGREGATED_RESPONSE) - assert "$50.25" in summary - assert "500" in summary - - def test_summarise_includes_models(self): - summary = _summarise_usage_data(SAMPLE_AGGREGATED_RESPONSE) - assert "gpt-4" in summary - - def test_summarise_includes_providers(self): - summary = _summarise_usage_data(SAMPLE_AGGREGATED_RESPONSE) - assert "openai" in summary - - def test_summarise_handles_empty_data(self): - empty = {"results": [], "metadata": {}} - summary = _summarise_usage_data(empty) - assert "no data" in summary.lower() - - -class TestSummariseEntityData: - def test_team_summary_includes_teams(self): - summary = _summarise_entity_data(SAMPLE_TEAM_RESPONSE, "Team") - assert "Engineering" in summary - assert "Marketing" in summary - assert "$60.0" in summary - assert "$40.0" in summary - - def test_team_summary_empty(self): - empty = {"results": [], "metadata": {}} - summary = _summarise_entity_data(empty, "Team") - assert "No Team usage data" in summary - - -class TestStreamUsageAiChat: - @pytest.mark.asyncio - async def test_stream_emits_status_events(self): - mock_tool_call = MagicMock() - mock_tool_call.id = "call_123" - mock_tool_call.function.name = "get_usage_data" - mock_tool_call.function.arguments = json.dumps( - { - "start_date": "2025-01-01", - "end_date": "2025-01-31", - } - ) - - mock_first_response = MagicMock() - mock_first_response.choices = [MagicMock()] - mock_first_response.choices[0].message.tool_calls = [mock_tool_call] - mock_first_response.choices[0].message.model_dump.return_value = { - "role": "assistant", - "content": None, - "tool_calls": [ - { - "id": "call_123", - "type": "function", - "function": { - "name": "get_usage_data", - "arguments": '{"start_date":"2025-01-01","end_date":"2025-01-31"}', - }, - } - ], - } - - async def mock_stream(): - chunk = MagicMock() - chunk.choices = [MagicMock()] - chunk.choices[0].delta.content = "Total spend is $50.25" - yield chunk - - with ( - patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.litellm" - ) as mock_litellm, - patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat._fetch_usage_data", - new_callable=AsyncMock, - ) as mock_fetch, - ): - mock_litellm.acompletion = AsyncMock( - side_effect=[ - mock_first_response, - mock_stream(), - ] - ) - mock_fetch.return_value = SAMPLE_AGGREGATED_RESPONSE - - events = [] - async for event in stream_usage_ai_chat( - messages=[{"role": "user", "content": "What is my total spend?"}], - model="gpt-4o-mini", - user_id="user-123", - is_admin=True, - ): - events.append(json.loads(event.replace("data: ", "").strip())) - - status_events = [e for e in events if e["type"] == "status"] - tool_call_events = [e for e in events if e["type"] == "tool_call"] - chunk_events = [e for e in events if e["type"] == "chunk"] - done_events = [e for e in events if e["type"] == "done"] - - assert len(status_events) >= 1 - assert "Thinking" in status_events[0]["message"] - assert len(tool_call_events) >= 1 - assert tool_call_events[0]["tool_name"] == "get_usage_data" - assert tool_call_events[0]["status"] in ("running", "complete") - assert len(chunk_events) >= 1 - assert len(done_events) == 1 - - @pytest.mark.asyncio - async def test_stream_handles_team_tool(self): - mock_tool_call = MagicMock() - mock_tool_call.id = "call_team" - mock_tool_call.function.name = "get_team_usage_data" - mock_tool_call.function.arguments = json.dumps( - { - "start_date": "2025-01-01", - "end_date": "2025-01-31", - } - ) - - mock_first_response = MagicMock() - mock_first_response.choices = [MagicMock()] - mock_first_response.choices[0].message.tool_calls = [mock_tool_call] - mock_first_response.choices[0].message.model_dump.return_value = { - "role": "assistant", - "content": None, - "tool_calls": [ - { - "id": "call_team", - "type": "function", - "function": { - "name": "get_team_usage_data", - "arguments": '{"start_date":"2025-01-01","end_date":"2025-01-31"}', - }, - } - ], - } - - async def mock_stream(): - chunk = MagicMock() - chunk.choices = [MagicMock()] - chunk.choices[0].delta.content = "Engineering is the top team." - yield chunk - - with ( - patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.litellm" - ) as mock_litellm, - patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat._fetch_team_usage_data", - new_callable=AsyncMock, - ) as mock_fetch, - ): - mock_litellm.acompletion = AsyncMock( - side_effect=[ - mock_first_response, - mock_stream(), - ] - ) - mock_fetch.return_value = SAMPLE_TEAM_RESPONSE - - events = [] - async for event in stream_usage_ai_chat( - messages=[{"role": "user", "content": "Which team spends the most?"}], - model="gpt-4o-mini", - is_admin=True, - ): - events.append(json.loads(event.replace("data: ", "").strip())) - - chunk_events = [e for e in events if e["type"] == "chunk"] - assert len(chunk_events) >= 1 - assert "Engineering" in chunk_events[0]["content"] - - @pytest.mark.asyncio - @pytest.mark.parametrize( - "reason", - [ - "end_date must be on or after start_date", - "start_date and end_date must be valid YYYY-MM-DD dates", - ], - ids=["reversed", "invalid-format"], - ) - @pytest.mark.parametrize( - "tool_name", ["get_usage_data", "get_team_usage_data", "get_tag_usage_data"] - ) - async def test_invalid_tool_dates_are_reported_to_the_model( - self, tool_name: str, reason: str - ) -> None: - fetch: Final = AsyncMock( - side_effect=HTTPException(status_code=400, detail={"error": reason}) - ) - - tool_message, statuses = await _run_one_tool( - tool_name, "2025-01-31", "2025-01-01", fetch - ) - - fetch.assert_awaited_once() - assert tool_message == f"Invalid date range: {reason}" - assert statuses == ["running", "complete"] - - @pytest.mark.asyncio - async def test_tool_dates_the_query_layer_accepts_are_queried_as_sent( - self, - ) -> None: - fetch: Final = AsyncMock(return_value=SAMPLE_AGGREGATED_RESPONSE) - - tool_message, statuses = await _run_one_tool( - "get_usage_data", "2025/01/01", "2025-01-31T00:00:00", fetch - ) - - fetch.assert_awaited_once_with( - start_date="2025/01/01", end_date="2025-01-31T00:00:00" - ) - assert tool_message.startswith("Total Spend: $") - assert statuses == ["running", "complete"] - - @pytest.mark.asyncio - @pytest.mark.parametrize( - "error", - [ - HTTPException(status_code=500, detail={"error": "db down"}), - HTTPException(status_code=400, detail="page and page_size must be >= 1"), - ], - ids=["server-error", "other-400"], - ) - async def test_other_tool_errors_stay_a_generic_fetch_error( - self, error: HTTPException - ) -> None: - tool_message, statuses = await _run_one_tool( - "get_team_usage_data", - "2025-01-01", - "2025-01-31", - AsyncMock(side_effect=error), - ) - - assert tool_message == "Error fetching team usage data. Please try again." - assert statuses == ["running", "error"] - - @pytest.mark.asyncio - async def test_stream_handles_error(self): - with patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.litellm" - ) as mock_litellm: - mock_litellm.acompletion = AsyncMock(side_effect=Exception("LLM error")) - - events = [] - async for event in stream_usage_ai_chat( - messages=[{"role": "user", "content": "test"}], - ): - events.append(json.loads(event.replace("data: ", "").strip())) - - error_events = [e for e in events if e["type"] == "error"] - assert len(error_events) == 1 - assert "internal error" in error_events[0]["message"].lower() - - @pytest.mark.asyncio - async def test_non_admin_enforces_user_id(self): - mock_tool_call = MagicMock() - mock_tool_call.id = "call_456" - mock_tool_call.function.name = "get_usage_data" - mock_tool_call.function.arguments = json.dumps( - { - "start_date": "2025-01-01", - "end_date": "2025-01-31", - "user_id": "other-user", - } - ) - - mock_first_response = MagicMock() - mock_first_response.choices = [MagicMock()] - mock_first_response.choices[0].message.tool_calls = [mock_tool_call] - mock_first_response.choices[0].message.model_dump.return_value = { - "role": "assistant", - "content": None, - "tool_calls": [ - { - "id": "call_456", - "type": "function", - "function": { - "name": "get_usage_data", - "arguments": '{"start_date":"2025-01-01","end_date":"2025-01-31","user_id":"other-user"}', - }, - } - ], - } - - async def mock_stream(): - chunk = MagicMock() - chunk.choices = [MagicMock()] - chunk.choices[0].delta.content = "Data." - yield chunk - - mock_fetch = AsyncMock(return_value=SAMPLE_AGGREGATED_RESPONSE) - - with ( - patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.litellm" - ) as mock_litellm, - patch.dict( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.TOOL_HANDLERS", - { - "get_usage_data": { - "fetch": mock_fetch, - "summarise": _summarise_usage_data, - "label": "global usage data", - } - }, - ), - ): - mock_litellm.acompletion = AsyncMock( - side_effect=[ - mock_first_response, - mock_stream(), - ] - ) - - events = [] - async for event in stream_usage_ai_chat( - messages=[{"role": "user", "content": "Show data"}], - model="gpt-4o-mini", - user_id="my-user-id", - is_admin=False, - ): - events.append(event) - - mock_fetch.assert_called_once_with( - start_date="2025-01-01", - end_date="2025-01-31", - user_id="my-user-id", - ) - - -class TestUsageAiChatServiceAccountGuard: - """ - Security regression: a non-admin caller with user_id=None (service-account - key) must be rejected at the endpoint boundary, before any tool dispatch. - """ - - @pytest.mark.asyncio - async def test_non_admin_with_user_id_none_is_rejected(self): - from fastapi import HTTPException - - from litellm.proxy._types import LitellmUserRoles, UserAPIKeyAuth - from litellm.proxy.management_endpoints.usage_endpoints.endpoints import ( - ChatMessage, - UsageAIChatRequest, - usage_ai_chat, - ) - - service_account_key = UserAPIKeyAuth( - user_id=None, - user_role=LitellmUserRoles.INTERNAL_USER, - ) - request = MagicMock() - body = UsageAIChatRequest( - messages=[ChatMessage(role="user", content="hi")], - model="gpt-4o-mini", - ) - - with pytest.raises(HTTPException) as exc_info: - await usage_ai_chat( - data=body, - request=request, - user_api_key_dict=service_account_key, - ) - - assert exc_info.value.status_code == 403 - assert "Service-account keys" in str(exc_info.value.detail) - - def test_resolve_fetch_kwargs_tripwire_fires_on_none_user_id(self): - """ - Defense-in-depth: if a future endpoint forgets the entry guard and - a non-admin caller with user_id=None reaches _resolve_fetch_kwargs, - the tripwire must fire rather than issuing an unscoped query. - """ - from litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat import ( - _resolve_fetch_kwargs, - ) - - with pytest.raises(ValueError, match='Non-admin caller has user_id=None; refusing to issue an') as exc_info: - _resolve_fetch_kwargs( - fn_name="get_usage_data", - fn_args={"start_date": "2025-01-01", "end_date": "2025-01-31"}, - user_id=None, - is_admin=False, - ) - assert "Endpoint-level guard missing" in str(exc_info.value) - - -class TestUsageAiChatKeepalive: - async def _collect_endpoint_body(self, monkeypatch, interval, delay=0.3) -> tuple[list[bytes], dict]: - import asyncio - - import litellm - from fastapi.responses import StreamingResponse - from litellm.proxy._types import LitellmUserRoles, UserAPIKeyAuth - from litellm.proxy.management_endpoints.usage_endpoints.endpoints import ( - ChatMessage, - UsageAIChatRequest, - usage_ai_chat, - ) - - monkeypatch.setattr(litellm, "sse_keepalive_ping_interval_seconds", interval) - - async def slow_acompletion(**kwargs): - await asyncio.sleep(delay) - response = MagicMock() - response.choices = [MagicMock()] - response.choices[0].message.tool_calls = None - response.choices[0].message.content = "Total spend is $50.25" - return response - - with patch( # test-quality-ok: the stream calls the module-level litellm.acompletion directly; no injection seam - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.litellm.acompletion", - new=AsyncMock(side_effect=slow_acompletion), - ): - response = await usage_ai_chat( - data=UsageAIChatRequest(messages=[ChatMessage(role="user", content="hi")], model="gpt-4o-mini"), - request=MagicMock(), - user_api_key_dict=UserAPIKeyAuth(user_id="admin", user_role=LitellmUserRoles.PROXY_ADMIN), - ) - assert isinstance(response, StreamingResponse) - chunks = [chunk if isinstance(chunk, bytes) else chunk.encode() async for chunk in response.body_iterator] - return chunks, dict(response.headers) - - @pytest.mark.asyncio - async def test_endpoint_pings_while_the_planning_completion_is_still_running(self, monkeypatch): - chunks, headers = await self._collect_endpoint_body(monkeypatch, interval=0.05) - - assert headers["content-type"].startswith("text/event-stream") - assert headers["cache-control"] == "no-cache" - assert headers["x-accel-buffering"] == "no" - assert chunks[0].startswith(b'data: {"type": "status"') - assert chunks[1] == b": ping\n\n" - assert chunks.count(b": ping\n\n") >= 3 - assert b'"content": "Total spend is $50.25"' in b"".join(chunks) - assert chunks[-1] == b'data: {"type": "done"}\n\n' - - @pytest.mark.asyncio - async def test_endpoint_stream_is_untouched_while_keepalives_are_unconfigured(self, monkeypatch): - chunks, _ = await self._collect_endpoint_body(monkeypatch, interval=None, delay=0.15) - - assert b": ping\n\n" not in chunks - assert chunks[0].startswith(b'data: {"type": "status"') - assert chunks[-1] == b'data: {"type": "done"}\n\n' - - -async def _run_one_tool( - tool_name: str, start_date: str, end_date: str, fetch: AsyncMock -) -> tuple[str, list[object]]: - """Runs one admin chat turn whose model calls `tool_name` with these dates; returns the - tool message the follow-up model call carried and the tool statuses streamed.""" - arguments: Final = json.dumps({"start_date": start_date, "end_date": end_date}) - mock_tool_call: Final = MagicMock() - mock_tool_call.id = "call_dates" - mock_tool_call.function.name = tool_name - mock_tool_call.function.arguments = arguments - - mock_first_response: Final = MagicMock() - mock_first_response.choices = [MagicMock()] - mock_first_response.choices[0].message.tool_calls = [mock_tool_call] - mock_first_response.choices[0].message.model_dump.return_value = { - "role": "assistant", - "content": None, - "tool_calls": [ - { - "id": "call_dates", - "type": "function", - "function": {"name": tool_name, "arguments": arguments}, - } - ], - } - - async def mock_stream() -> AsyncIterator[MagicMock]: - chunk: Final = MagicMock() - chunk.choices = [MagicMock()] - chunk.choices[0].delta.content = "Done." - yield chunk - - with ( - patch( - "litellm.proxy.management_endpoints.usage_endpoints.ai_usage_chat.litellm" - ) as mock_litellm, - patch.dict(TOOL_HANDLERS[tool_name], {"fetch": fetch}), - ): - mock_litellm.acompletion = AsyncMock( - side_effect=[mock_first_response, mock_stream()] - ) - events: Final[tuple[dict[str, object], ...]] = tuple( - [ - json.loads(event.replace("data: ", "").strip()) - async for event in stream_usage_ai_chat( - messages=[{"role": "user", "content": "How much did we spend?"}], - model="gpt-4o-mini", - is_admin=True, - ) - ] - ) - final_messages: Final = mock_litellm.acompletion.call_args_list[1].kwargs[ - "messages" - ] - - tool_messages: Final = [m for m in final_messages if m["role"] == "tool"] - assert len(tool_messages) == 1, tool_messages - assert tool_messages[0]["tool_call_id"] == "call_dates" - return str(tool_messages[0]["content"]), [ - e["status"] for e in events if e["type"] == "tool_call" - ] diff --git a/tests/unit/proxy/test__lazy_features.py b/tests/unit/proxy/test__lazy_features.py index adc4de8c8fa..0749fc12ea9 100644 --- a/tests/unit/proxy/test__lazy_features.py +++ b/tests/unit/proxy/test__lazy_features.py @@ -93,6 +93,20 @@ def test_retired_roi_calculator_cannot_be_loaded_or_called( assert response.status_code == 404, f"{method} {path}: {response.text}" +@pytest.mark.parametrize("disable_lazy_routes", ("false", "true")) +@pytest.mark.parametrize("path", ("/lazy/warm/usage_ai", "/usage/ai/chat")) +def test_retired_usage_chat_cannot_be_loaded_or_called( + monkeypatch: pytest.MonkeyPatch, disable_lazy_routes: str, path: str +) -> None: + monkeypatch.setenv(FLAG, disable_lazy_routes) + app: Final = FastAPI() + attach_lazy_features(app) + + with TestClient(app) as client: + response: Final = client.post(path) + assert response.status_code == 404, f"{path}: {response.text}" + + @pytest.mark.parametrize("value", ("1", "true", "TRUE", "yes", "on")) def test_flag_registers_every_feature_at_startup(monkeypatch: pytest.MonkeyPatch, value: str) -> None: monkeypatch.setenv(FLAG, value) diff --git a/ui/litellm-dashboard/eslint-suppressions.json b/ui/litellm-dashboard/eslint-suppressions.json index 1451256631f..38d4c435e9a 100644 --- a/ui/litellm-dashboard/eslint-suppressions.json +++ b/ui/litellm-dashboard/eslint-suppressions.json @@ -1098,14 +1098,6 @@ "count": 1 } }, - "src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx": { - "no-nested-ternary": { - "count": 1 - }, - "react-hooks/immutability": { - "count": 1 - } - }, "src/app/(dashboard)/usage/_components/components/UsagePageView.tsx": { "react-hooks/purity": { "count": 1 @@ -1767,13 +1759,13 @@ "count": 1 }, "max-params": { - "count": 15 + "count": 14 }, "no-nested-ternary": { "count": 5 }, "no-restricted-syntax": { - "count": 140 + "count": 139 }, "prefer-const": { "count": 28 diff --git a/ui/litellm-dashboard/public/assets/aria-agent.png b/ui/litellm-dashboard/public/assets/aria-agent.png new file mode 100644 index 0000000000000000000000000000000000000000..870773933e3dd4c0588f15587d66c4c14b851829 GIT binary patch literal 701399 zcmeEv2{=^k|MxjFV+=-y&`9ZEQo=a1qEur^WJ#$|Vx}2e*+Q1q85E)tC0Zoyo3x46 zAxRQ+L zt0M@a>E`M@5kW|8iXRFY?kxURIt)PqLc}6RKgD(CoX8n)+X$`_F*`Z@?@;@2s&svm*aKYffy`aK+5woM0XYmxyOr1@pu#E3TMtYh@SA7g@2m99(3_ zWs5^tBG`*MzjrzFp5;VwzirAC#l;23#)n5o#lZt=mwF!bhaO#<1(} z7deIZRqV|S7e`0IRD>>O$AxvaOrKlj;Pt@M{8s6)?Oi0e-)}~UWCju*DGCj?j!Ou& zNQ#V5teiL_Tr$HRZeWSwlK8NZCN?a-2^JO{9vT+kJ4gr*PIQb;8fk)KI0hdpeoU~C z@Q8?!CQ;E*!6q226%{wqBrHBYX1KL=VqzjQk;9CR4Yg+DIIh^uWR$vnj3_<~lZ-U+ z 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

lS4hzCz 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�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�tnWURCq0HW7vI3HQ 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

Gt5iw1-;vY&Yin+IlU}Vbkqbj#RmjG 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ⅈ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

TL>dX6@}P{h`@=pecyDz+KaAf<`GGu#0_Dgd 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

EI@_0for@+iw#Z*Lv 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

ZkqQuC0`%4KPpTX` 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 DYL*oP literal 0 HcmV?d00001 diff --git a/ui/litellm-dashboard/src/app/(dashboard)/home/_components/HomePage.integration.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/home/_components/HomePage.integration.test.tsx index b957393be64..edde511d1cd 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/home/_components/HomePage.integration.test.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/home/_components/HomePage.integration.test.tsx @@ -141,7 +141,7 @@ describe("HomePage", () => { expect(screen.queryByRole("link", { name: /create new virtual key/i })).not.toBeInTheDocument(); }); - it("offers LiteAdmin on Home inside the dashboard frame", async () => { + it("should offer Aria Agent on Home inside the dashboard frame", async () => { render( @@ -149,7 +149,7 @@ describe("HomePage", () => { , ); - const entry = screen.getByRole("region", { name: "Ask LiteAdmin" }); + const entry = screen.getByRole("region", { name: "Ask Aria Agent" }); expect(await within(entry).findByPlaceholderText("What would you like to do?")).toBeInTheDocument(); expect(within(entry).getByRole("button", { name: "Send message" })).toBeDisabled(); expect(await screen.findByText("$501.74")).toBeInTheDocument(); diff --git a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.test.tsx b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.test.tsx deleted file mode 100644 index d971f5d0506..00000000000 --- a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.test.tsx +++ /dev/null @@ -1,83 +0,0 @@ -import { screen } from "@testing-library/react"; -import { beforeAll, describe, expect, it, vi } from "vitest"; -import { renderWithProviders } from "@/../tests/test-utils"; -import UsageAIChatPanel from "./UsageAIChatPanel"; - -beforeAll(() => { - if (typeof window !== "undefined" && !window.ResizeObserver) { - window.ResizeObserver = class ResizeObserver { - observe() {} - unobserve() {} - disconnect() {} - } as any; - } -}); - -vi.mock("@/components/networking", () => ({ - modelHubCall: vi.fn().mockResolvedValue({ - data: [{ model_group: "gpt-4" }, { model_group: "claude-3-opus" }], - }), - usageAiChatStream: vi.fn(), -})); - -const defaultProps = { - open: true, - onClose: vi.fn(), - accessToken: "test-token", -}; - -describe("UsageAIChatPanel", () => { - it("should render the panel when open", () => { - renderWithProviders(); - - expect(screen.getByText("Ask AI")).toBeInTheDocument(); - expect(screen.getByText("Ask about your spend, models, keys, and trends")).toBeInTheDocument(); - }); - - it("should render model selector", () => { - renderWithProviders(); - - // One library paints the prompt as its own text node and the other leaves it on the input's - // placeholder attribute, so either one means the user is being told what to pick. - const prompt = "Select a model (optional, defaults to gpt-4o-mini)"; - expect(screen.queryAllByText(prompt).length + screen.queryAllByPlaceholderText(prompt).length).toBeGreaterThan(0); - }); - - it("should render empty state message when no conversation", () => { - renderWithProviders(); - - expect(screen.getByText("Ask a question about your usage")).toBeInTheDocument(); - }); - - it("should render the send button", () => { - renderWithProviders(); - - expect(screen.getByText("Send")).toBeInTheDocument(); - }); - - it("should render input placeholder", () => { - renderWithProviders(); - - expect(screen.getByPlaceholderText("Ask about your usage...")).toBeInTheDocument(); - }); - - it("should render clear chat button", () => { - renderWithProviders(); - - expect(screen.getByText("Clear chat")).toBeInTheDocument(); - }); - - it("should have the panel element even when closed (just off-screen)", () => { - renderWithProviders(); - - expect(screen.getByTestId("usage-ai-chat-panel")).toBeInTheDocument(); - expect(screen.getByTestId("usage-ai-chat-panel")).toHaveClass("translate-x-full"); - }); - - it("should not have translate-x-full class when open", () => { - renderWithProviders(); - - expect(screen.getByTestId("usage-ai-chat-panel")).not.toHaveClass("translate-x-full"); - expect(screen.getByTestId("usage-ai-chat-panel")).toHaveClass("translate-x-0"); - }); -}); diff --git a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx b/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx deleted file mode 100644 index dc4291d25e1..00000000000 --- a/ui/litellm-dashboard/src/app/(dashboard)/usage/_components/components/UsageAIChatPanel.tsx +++ /dev/null @@ -1,385 +0,0 @@ -import React, { useEffect, useRef, useState } from "react"; -import ReactMarkdown from "react-markdown"; -import { MessageSquare, Sparkles, X } from "lucide-react"; -import { Button } from "@/components/ui/button"; -import { - Combobox, - ComboboxContent, - ComboboxEmpty, - ComboboxInput, - ComboboxItem, - ComboboxList, -} from "@/components/ui/combobox"; -import { Textarea } from "@/components/ui/textarea"; -import { UiLoadingSpinner } from "@/components/ui/ui-loading-spinner"; -import { modelHubCall, usageAiChatStream, UsageAiToolCallEvent } from "@/components/networking"; - -interface ToolCallStep { - tool_name: string; - tool_label: string; - arguments: Record; - status: "running" | "complete" | "error"; - error?: string; -} - -interface ChatMessage { - role: "user" | "assistant"; - content: string; - toolCalls?: ToolCallStep[]; -} - -interface UsageAIChatPanelProps { - open: boolean; - onClose: () => void; - accessToken: string | null; -} - -const TOOL_ICONS: Record = { - get_usage_data: "📊", - get_team_usage_data: "👥", - get_tag_usage_data: "🏷️", -}; - -const ToolCallDisplay: React.FC<{ step: ToolCallStep }> = ({ step }) => { - const icon = TOOL_ICONS[step.tool_name] || "🔧"; - const args = step.arguments; - const dateRange = args.start_date && args.end_date ? `${args.start_date} → ${args.end_date}` : ""; - const filter = args.team_ids || args.tags || args.user_id || ""; - - return ( -

- - {step.status === "running" ? ( - - ) : step.status === "error" ? ( - ✗ - ) : ( - ✓ - )} - -
-
- {icon} {step.tool_label} -
- {dateRange &&
{dateRange}
} - {filter &&
Filter: {filter}
} - {step.status === "error" && step.error &&
{step.error}
} -
-
- ); -}; - -const MarkdownContent: React.FC<{ content: string }> = ({ content }) => ( -

{children}

, - strong: ({ children }) => {children}, - ul: ({ children }) =>
    {children}
, - ol: ({ children }) =>
    {children}
, - li: ({ children }) =>
  • {children}
  • , - h1: ({ children }) =>

    {children}

    , - h2: ({ children }) =>

    {children}

    , - h3: ({ children }) =>

    {children}

    , - code: ({ children, className }) => { - const isBlock = className?.includes("language-"); - return isBlock ? ( -
    -            {children}
    -          
    - ) : ( - {children} - ); - }, - table: ({ children }) => ( -
    - {children}
    -
    - ), - th: ({ children }) => ( - {children} - ), - td: ({ children }) => {children}, - }} - > - {content} -
    -); - -const UsageAIChatPanel: React.FC = ({ open, onClose, accessToken }) => { - const [messages, setMessages] = useState([]); - const [inputText, setInputText] = useState(""); - const [isLoading, setIsLoading] = useState(false); - const [selectedModel, setSelectedModel] = useState(undefined); - const [availableModels, setAvailableModels] = useState([]); - const [isLoadingModels, setIsLoadingModels] = useState(false); - const [streamingContent, setStreamingContent] = useState(""); - const [statusMessage, setStatusMessage] = useState(null); - const [activeToolCalls, setActiveToolCalls] = useState([]); - const messagesEndRef = useRef(null); - const abortControllerRef = useRef(null); - - useEffect(() => { - if (open && availableModels.length === 0) { - loadModels(); - } - }, [open]); - - useEffect(() => { - if (typeof messagesEndRef.current?.scrollIntoView === "function") { - messagesEndRef.current.scrollIntoView({ behavior: "smooth" }); - } - }, [messages, streamingContent, activeToolCalls, statusMessage]); - - const loadModels = async () => { - if (!accessToken) return; - setIsLoadingModels(true); - try { - const fetchedModels = await modelHubCall(accessToken); - if (fetchedModels?.data?.length > 0) { - const models = fetchedModels.data.map((item: any) => item.model_group as string).sort(); - setAvailableModels(models); - } - } catch (error) { - console.error("Failed to load models:", error); - } finally { - setIsLoadingModels(false); - } - }; - - const handleSend = async () => { - if (!accessToken || !inputText.trim() || isLoading) return; - - const userMessage: ChatMessage = { role: "user", content: inputText.trim() }; - const updatedMessages = [...messages, userMessage]; - setMessages(updatedMessages); - setInputText(""); - setIsLoading(true); - setStreamingContent(""); - setStatusMessage(null); - setActiveToolCalls([]); - - const abortController = new AbortController(); - abortControllerRef.current = abortController; - - let accumulated = ""; - const toolCalls: ToolCallStep[] = []; - - try { - await usageAiChatStream( - accessToken, - updatedMessages.slice(-20).map((m) => ({ role: m.role, content: m.content })), - selectedModel || "", - (content: string) => { - setStatusMessage(null); - accumulated += content; - setStreamingContent(accumulated); - }, - () => { - setStatusMessage(null); - setActiveToolCalls([]); - setMessages((prev) => [ - ...prev, - { role: "assistant", content: accumulated, toolCalls: toolCalls.length > 0 ? [...toolCalls] : undefined }, - ]); - setStreamingContent(""); - }, - (errorMsg: string) => { - setStatusMessage(null); - setActiveToolCalls([]); - setMessages((prev) => [...prev, { role: "assistant", content: `Error: ${errorMsg}` }]); - setStreamingContent(""); - }, - (status: string) => { - setStatusMessage(status); - }, - (event: UsageAiToolCallEvent) => { - const idx = toolCalls.findIndex((tc) => tc.tool_name === event.tool_name); - if (idx >= 0) { - toolCalls[idx] = { ...event }; - } else { - toolCalls.push({ ...event }); - } - setActiveToolCalls([...toolCalls]); - }, - abortController.signal, - ); - } catch (error: any) { - if (error?.name === "AbortError" || abortController.signal.aborted) { - return; - } - const errorMsg = error?.message || "Failed to get response. Please try again."; - setMessages((prev) => [...prev, { role: "assistant", content: `Error: ${errorMsg}` }]); - setStreamingContent(""); - } finally { - setIsLoading(false); - abortControllerRef.current = null; - } - }; - - const handleKeyDown = (e: React.KeyboardEvent) => { - if (e.key === "Enter" && !e.shiftKey) { - e.preventDefault(); - handleSend(); - } - }; - - const handleClose = () => { - if (abortControllerRef.current) { - abortControllerRef.current.abort(); - } - onClose(); - }; - - const handleClear = () => { - setMessages([]); - setStreamingContent(""); - setActiveToolCalls([]); - setStatusMessage(null); - }; - - return ( -
    - {/* Header */} -
    -
    -

    -

    -

    Ask about your spend, models, keys, and trends

    -
    - -
    - - {/* Model selector */} -
    - setSelectedModel(value ?? undefined)} - > - - - {isLoadingModels ? "Loading models…" : "No models found"} - - {(model: string) => ( - - {model} - - )} - - - -
    - - {/* Chat messages */} -
    - {messages.length === 0 && !streamingContent && !isLoading && ( -
    -
    - )} - - {messages.map((msg, idx) => ( -
    - {msg.role === "user" ? ( -
    -
    - {msg.content} -
    -
    - ) : ( -
    - {/* Tool calls for this message */} - {msg.toolCalls && msg.toolCalls.length > 0 && ( -
    - {msg.toolCalls.map((tc, tcIdx) => ( - - ))} -
    - )} - {/* Response */} -
    - -
    -
    - )} -
    - ))} - - {/* Active tool calls (in-progress) */} - {isLoading && activeToolCalls.length > 0 && ( -
    - {activeToolCalls.map((tc, idx) => ( - - ))} -
    - )} - - {/* Status / spinner */} - {isLoading && !streamingContent && ( -
    - - {statusMessage || "Thinking..."} -
    - )} - - {/* Streaming response */} - {streamingContent && ( -
    - -
    - )} - -
    -
    - - {/* Input area */} -
    -
    -

    pIF9rZ9jMfT_AB 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