Skip to content

Nirovins/temporary disable plugin - #43943

Merged
Nikolay Rovinskiy (nick863) merged 1 commit into
feature/foundry-releasefrom
nirovins/temporary_disable_plugin
Jun 12, 2026
Merged

Nikolay Rovinskiy (nick863) merged 1 commit into
feature/foundry-releasefrom
nirovins/temporary_disable_plugin

Conversation

@nick863

Copy link
Copy Markdown
Member

Choose a PR Template

Switch to "Preview" on this description then select one of the choices below.

Click here to open a PR for a Data Plane API.

Click here to open a PR for a Control Plane (ARM) API.

Click here to open a PR for only SDK configuration.

@github-actions

github-actions Bot commented Jun 12, 2026 •

Copy link
Copy Markdown

Next Steps to Merge

Important checks have failed. As of today they are not blocking this PR, but in near future they may.
Addressing the following failures is highly recommended:
  • ⚠️ The check named Swagger BreakingChange has failed. To unblock this PR, follow the process at aka.ms/brch.
If you still want to proceed merging this PR without addressing the above failures, refer to step 4 in the PR workflow diagram.

Comment generated by summarize-checks workflow run.

@github-actions github-actions Bot added data-plane TypeSpec Authored with TypeSpec labels Jun 12, 2026
@nick863
Nikolay Rovinskiy (nick863) changed the base branch from main to feature/foundry-release June 12, 2026 18:58
@nick863
Nikolay Rovinskiy (nick863) merged commit 53b74dc into feature/foundry-release Jun 12, 2026
42 of 60 checks passed
@nick863
Nikolay Rovinskiy (nick863) deleted the nirovins/temporary_disable_plugin branch June 12, 2026 19:02
Gerardo Lecaros (glecaros) pushed a commit to daniel-rodrigues809/azure-rest-api-specs that referenced this pull request Jun 17, 2026
Gerardo Lecaros (glecaros) added a commit that referenced this pull request Sep 3, 2026
* Add invocations_ws endpoint for hosted agent service (#43148)

* Add invocations_ws endpoint for hosted agent service

* Address review: snake_case foundry_features query param

* Update specification/ai-foundry/data-plane/Foundry/src/agents-invocations_ws/routes.tsp

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove authorization query param from invocations_ws endpoint

---------

Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* AgentsOptimization API TypeSpec for Foundry (#43036)

* feat(agents-optimization): add AgentsOptimization TypeSpec for Foundry data-plane

Add TypeSpec definition for the AgentsOptimization service using shared
Foundry job infrastructure (JobLike, postJobPreview, FoundryTimestamp).

- models.tsp: 13 models, 2 unions covering C# contract fields
- routes.tsp: 9 operations (5 job CRUD + 4 candidate sub-resource ops)
- Default values on OptimizationOptions matching C# defaults
- Duration types for task_timeout_seconds and elapsed_seconds
- Temperature constrained to [0, 2] per Agents validator
- Reuses OpenAI.OutputItem and EvalRunOutputItemResult from shared types
- SDK clientName entries for Python and JavaScript
- Preview feature flag and beta subclient placement

* Dataset version can be null/empty (for latest).

* ws + regen openapi

* Fix models client (#43176)

* Fix models client

* Hide the models client.

* Return Models client back

* Customize the code

* Spec: merge code download endpoints into a single operation (#43112)

* Spec: merge code download endpoints into a single operation

Replaces the two preview-only download operations:
  - GET /agents/{agent_name}/versions/{agent_version}/code:download (downloadAgentVersionCode)
  - GET /agents/{agent_name}/code:download (downloadAgentCode)

with a single operation:
  - GET /agents/{agent_name}/code:download?agent_version=<x> (downloadAgentCode)

When `agent_version` is omitted, the service returns the latest version's code zip; otherwise the specified version's code zip is returned. Both routes were gated behind `code_agents_v1_preview` so this is preview-only and does not affect a GA contract.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add agent_version response header to DownloadAgentCodeResponse

Addresses PR review feedback to expose the resolved agent version
to callers of the downloadAgentCode operation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove @removed(Versions.v1) from all new operations except ManagedAgentIdentityBlueprints (#43229)

Re-include the following operations for the mid-May release:
- DataGenerationJobs (interface): get, list, create, cancel, delete
- EvaluationSuiteGenerationJobs (interface): create, get, list, cancel, delete
- EvaluatorGenerationJobs (interface): create, get, list, cancel, delete
- Evaluators: startPendingUpload, getCredentials
- Evaluator models: all associated model types

ManagedAgentIdentityBlueprints remains @removed(Versions.v1).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add force query parameter to DeleteAgent and DeleteAgentVersion APIs (#42970)

* Add force query parameter to DeleteAgent and DeleteAgentVersion APIs

Adds an optional 'force' boolean query parameter to both deleteAgent and
deleteAgentVersion operations. When force=true, the deletion proceeds even
if the agent/version has active sessions, cascade-deleting all associated
sessions. Without the flag (default=false), the API returns HTTP 409
Conflict if active sessions exist.

This aligns with the session lifecycle management design (06-key-decisions.md)
and the detailed design plan (w1_adc_integration_runtime_detailed_design_plan.md).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add force parameter to OpenAPI specs for deleteAgent and deleteAgentVersion

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review: add default: false to force parameter

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* re-introduce isolation key header (#43264)

* Update force param docs: clarify Hosted Agent applicability (#43267)

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Updated tsp changes for BUILD for evaluations (#43224)

* Updated tsp changes for BUILD for evaluations

* Undo

* Updated

* Updated

* Add External Agents support to Foundry API specifications (#43143)

* Add External Agents support to Foundry API specifications

* remove the example

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>

* adding routines (#43186)

* adding routines

* addressing pr comments

* addressing comments:

* addressing comments

* addressing comments

* Foundry memory v2 (procedural memory, TTL) (#42832)

* Add procedural memory, TTL, and memory commands.

* Add McpToolConfig model and tool_configs field to MCPTool (#43009)

* Add ToolConfig with default_tool_config/tool_configs across all tool types

Add per-tool configuration for controlling tool visibility and search behavior:

- New ToolConfig model with 'pin' (boolean) and 'additional_search_text' (max 1000 chars)
- New ToolConfigExtension alias with default_tool_config and tool_configs (Record<ToolConfig>)
- ToolConfigExtension spread into all tool types (OpenAI and Azure-specific)
- default_tool_config: baseline config for all tools
- tool_configs: per-tool-name overrides that take precedence over default_tool_config

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Simplify ToolConfigExtension: use '*' catch-all in tool_configs instead of separate default_tool_config

Remove default_tool_config property in favor of '*' key as catch-all default
in tool_configs map. Resolution: exact tool name > '*'.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove agency.toml from repo

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove ToolConfigExtension from ToolboxSearchPreviewTool

Toolbox search should always be shown, no need for pin/search config.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add ToolConfigExtension to ToolboxSearchPreviewTool

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Relocate new routine operations to beta subclient (Python & JS SDKs)

* Update Python & JS clients to use new operations

* Remove conditional preview header requirement for toolboxes (#43188)

Co-authored-by: Anushree Kaipa Ramanath <ankaipar@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Update OpenAPI3 files after running 'npx tsp compile .'

* fix agent optimiztion jobs for emitted JS and Python SDKs. Do some cleanup

* Fix memory item CRUD to align with implementation (#43278)

* Revert "Fix memory item CRUD to align with implementation (#43278)" (#43311)

This reverts commit edd9dae069e837c19312b11086cb9d30c5a6559d.

* Add isolation_key_source to EntraAuthorizationScheme (#43310)

* Remove container agent opt-in flag from v1 (#43300)

* Require at least one skill for agents (#43016)

Add minimum items constraint to agent skills array

* Fix memory item CRUD to align with implementation (#43278) (#43313)

Co-authored-by: Paul Hsu <paulhsu@microsoft.com>

* Fix which 'fromCode' method we emit. Thanks Howie!

* Foundry: rename Dimension.dimension_id -> id; drop category query param from evaluator_generation_jobs list (#43305)

Per April Kwong's review of the rubric evaluator typespec:
- Rename `Dimension.dimension_id` -> `Dimension.id` to align with her
  implementation (which uses the bare `id` field name).
- Drop the `category` query parameter on the evaluator_generation_jobs
  list route; the `category` field was removed from the eval-gen request
  model in Vienna PR #2102363 (only quality is implemented), so the list
  filter parameter is no longer meaningful.

Regenerated openapi3 artifacts via `npx tsp compile .`.

* Preview operations should use  "x-ms-foundry-meta" with "required_previews" (#42942)

* feat(agents-session-files): add has_more, @list, and optional path to ListSessionFiles (#43280)

* Update specification/ai-foundry/data-plane/Foundry/src/agents-session-files/models.tsp

* Update specification/ai-foundry/data-plane/Foundry/src/agents-session-files/routes.tsp

* fix

* missing change

* inline page result

* Revert "Merge branch 'feature/foundry-release' of https://github.com/Azure/azure-rest-api-specs into feature/foundry-release"

This reverts commit 1027f31a437215ae41453cb0b9c184dcc1a5dc56, reversing
changes made to f67e0697da58478ee35a4ed96ee6cf3ebbc2dc31.

* Move Toolboxes operations back to a .beta client for JS and Python SDKs

* Map OpenAI.OutputItem to Record<Unknown> for JS and Python emitters. (#43354)

* Remove evaluation suites from JS and Python SDKs (#43356)

* Add isolation key header to session crud (#43348)

* Add isolation key header to session crud

* regen openapi3

---------

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Fix typespec (#43316)

* Expose CreateAgentFromCodeOptions (#43392)

* Add target and input_messages to evaluation suite generation inputs (#43282)

* Add target and input_messages to evaluation suite generation inputs

- Added optional target field to EvaluationSuiteGenerationJobInputs
- Added optional input_messages field (template or item_reference)
- Target is stored on the generated suite so it can be run immediately
- input_messages defaults to template with {{item.query}} if omitted

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add evaluation_level to generation job inputs

Optional field defaults to turn. When set to conversation,
dataset generation is skipped and user provides their own
multi-turn dataset. Target is required for turn-level but
optional for conversation-level.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Clean up doc comments — remove internal implementation details

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove level-specific details from target and input_messages docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add @removed(Versions.v1) to evaluation suite interfaces for private preview

Mark EvaluationSuites and EvaluationSuiteGenerationJobs interfaces
as removed from v1 so they remain private preview only and are not
included in the public GA surface. Models don't need the tag since
they are unreachable without the routes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Doc string missing defaults. Minor updates to Python surface. (#43431)

* Minor TypeSpec, Python & JS renames. Does not affect OpenAPI3 files (#43438)

* Add type spec for stop sessions (#43206)

* add typespec for stop sessions.

* add stop session example.

* openai3

* correct verb for stop api.

* correct comment structure.

* Revert "correct comment structure."

This reverts commit 1c5669d081f79ec37bcdd456f1b05d2909f1b474.

* update comment decorator,

* update spec for stop.

* fix comment + regen

* updated comment

---------

Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove image and container_protocol_versions from HostedAgentDefinition (#43410)

These properties are not part of the v1 (GA) surface. Per review feedback, remove them from the model entirely rather than using @removed(Versions.v1).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Delete specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml,json

* Skills API: Versioned Skills aligned with OpenAI and agentskills.io (#43283)

* Add versioned Skills API alongside existing flat API

Add version support to Skills API mirroring the Toolbox pattern:
- SkillVersionObject model for immutable version snapshots
- default_version field on SkillObject
- New versioned routes: createSkillVersion, listSkillVersions,
  getSkillVersion, downloadSkillVersion, deleteSkillVersion,
  updateSkillDefaultVersion, createSkillVersionFromPackage
- All existing flat routes preserved

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add versioned Skills API and skill references in Toolboxes

Skills API:
- Add SkillVersionObject model aligned with OpenAI skills API
- Add default_version, latest_version, created_at to SkillObject
- New versioned routes: createSkillVersion, listSkillVersions,
  getSkillVersion, getSkillContent, getSkillVersionContent,
  updateSkillDefaultVersion, deleteSkillVersion
- Use /content pattern (OpenAI-style) instead of :download
- All existing flat skill routes preserved

Toolboxes:
- Add SkillReference model (name + optional version)
- Add skills field to CreateToolboxVersionRequest and ToolboxVersionObject
- When version is specified, reference is pinned to that immutable version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align Skills API with OpenAI format: clean models, remove legacy routes

- Replace SkillObject/SkillVersionObject with clean Skill/SkillVersion models
- Remove old flat routes (createSkillFromPackage, downloadSkill, updateSkill)
- Switch updateSkillDefaultVersion from PATCH to POST (matching OpenAI)
- Add files upload to createSkill and createSkillVersion
- Remove metadata from create requests
- Remove SkillObject clientName mapping

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align Skills API with OpenAI: remove zip_content/description from create, add SkillsPagedResult, DeleteSkillVersionResponse, type discriminator on SkillReference

- Remove zip_content and description from CreateSkillVersionRequest (match OpenAI)
- Remove description from CreateSkillVersionMetadata (match OpenAI)
- Add independent SkillsPagedResult<T> type for clean SDK naming
- Add DeleteSkillVersionResponse with id, deleted, version (match OpenAI)
- Add type discriminator to SkillReference for future union extensibility
- Update routes to use SkillsPagedResult and DeleteSkillVersionResponse

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add object discriminators, make description required, add agentskills.io fields to inline content

- Add object discriminators to SkillsPagedResult, DeleteSkillResponse, DeleteSkillVersionResponse
- Make description required on Skill and SkillVersion (matches OpenAI)
- Add license and metadata fields to SkillInlineContent (agentskills.io spec)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add id and name to both delete responses for consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Simplify multipart: remove metadata wrapper, add upload behavior docs

- Remove CreateSkillVersionMetadata model, make default a top-level form field
- Add documentation for zip vs directory upload behavior
- Matches OpenAI's flat files + default pattern

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename updateSkillDefaultVersion to updateSkill for future extensibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update toolbox skill source model

Model toolbox skills as a discriminated base type with a skill reference variant so future skill sources can be added without reshaping the API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address skills API review feedback

Use the shared paged result type for skills lists, align timestamp modeling with FoundryTimestamp, remove object discriminator fields from skill responses, and make the update request a composed alias.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address remaining skills review feedback

Rename Skill in the Projects Agents SDK customization, document multipart default behavior, and model allowed tools as a string array.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* add missed invocations_ws into AgentProtocol (#43324)

Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Agents Optimization Alignment with APIs (#43436)

* set latest alignment fields

* add multi-turn simulation support (evaluationLevel, DatasetItem scenario fields)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* use shared OpenAI eval types (EvalRunOutputItemResult, EvalRunOutputItemSampleOutput)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove duplicate EvaluationLevel union (use shared definition from openai-evaluations)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove currentTargetAttribute from progress model

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove orphaned models and simplify deploy config types

* fix evalModel type to string

* flatten request body - remove inputs wrapper to match vienna contract

* remove dead response fields and add response-side AgentDefinitionResponse

* rename to AgentIdentifier for request, OptimizationAgentDefinition for response

* fix response structure: nest inputs in response, flat request body, update create operation

* remove read-only visibility from inputs to allow create+read

* add 202 Accepted response for GET while job in progress

* regen

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove dataset source from data generation jobs (#43448)

* Remove dataset source from data generation jobs

Removes the DatasetDataGenerationJobSource model and the dataset member of the DataGenerationJobSourceType union in the data generation jobs spec, and regenerates openapi3 outputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove scenario and type filters from listJobsPreview for data generation jobs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add Dan to CODEOWNERS (#43017)

* Fix for Python & JS sdk emit (#43532)

* Add missing Beta methods to Python & JS SDKs (#43554)

* Revert '[Update for GA] Remove conditional preview header requirement' (#43534)

* Restore original order of opt-in flags. Fix compile break (#43559)

* Use 'list' for all listing methods, regardless of the REST API opeartion type

* update spec for stop api. (#43510)

Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>

* Convert agents-optimization models to snake_case (#43552)

* convert agents-optimization models to snake_case

- All model property fields converted from camelCase to snake_case
- Updated agent_name filter query param in routes (was agentName)
- TypeSpec compiles cleanly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Apply suggestion from @glecaros

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Use better names other than 'body', since it gets emitted in SDKs (#43562)

* Update OpenAPI3 files

* Fix list session files (#43566)

* Align Foundry Routines TypeSpec contracts (#43498)

* fix(routines): align foundry typespec contracts

Align the Foundry Routines TypeSpec with the latest AgentExtensions contract updates from Vienna branch users/akannava/agentextensions-routine-contract-cleanup.

Update trigger and action discriminators, timer and GitHub issue fields, action input and conversation/session fields, and the service pagination shapes used by routine and run-history list operations.

Regenerate the Foundry OpenAPI artifacts from the updated TypeSpec.

Authored-by: GitHub Copilot CLI 1.0.55-0

Model: GPT-5.5 (gpt-5.5)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(routines): address foundry typespec review

- Clarify relative and absolute timer trigger syntax

- Document raw JSON routine input pass-through semantics

- Mark routine run ids read-only and use snake_case fields

Authored-by: GitHub Copilot CLI v1.0.55-0

Model: GPT-5.5 (gpt-5.5)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(routines): align list pagination contract

Update Foundry Routines TypeSpec and generated OpenAPI for the AgentExtensions pagination contract now exposed by the service.

Use limit/order/after/before query parameters and data/first_id/last_id/has_more list responses. Keep after/last_id modeled as opaque continuation tokens and document before as reserved/unsupported.

Authored-by: GitHub Copilot CLI v1.0.55-0

Model: GPT-5.5 (gpt-5.5)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(routines): make RoutineRun.id required per reviewer suggestion; regenerate OpenAPI

@visibility(Lifecycle.Read) already suppresses id from write operations,
so id: string (required) is correct here. Also regenerates OpenAPI artifacts.

* fix(routines): address remaining PR review comments

- TimerRoutineTrigger: replace relative in?: string with �t?: utcDateTime
  (per johanste: relative timers are imprecise in service APIs)
- Remove TimerRoutineTrigger.time_zone (no longer needed with absolute UTC time)
- Remove RoutineListResponse, RoutineRunsResponse custom models;
  replace with AgentsPagedResult<Routine> and AgentsPagedResult<RoutineRun>
  (per glecaros: standardize on AgentsPagedResult like other list operations)
- RoutineRun.id doc: remove internal MLflow reference (per johanste)
- RoutineRun.status doc: remove internal MLflow reference
- Remove RoutineRun.trigger_time_zone (per glecaros+johanste: not needed
  when timestamps are already UTC)
- Regenerate OpenAPI artifacts

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Akshaya Annavajhala <16749003+akshaya-a@users.noreply.github.com>
Co-authored-by: Linda Li <zhuoqunli@microsoft.com>

* Update names of new Skills method, for emitted Python and JS clients

* rename Skill method 'create_from_package' to 'create_from_files' for Python & JS clients, to match REST API operation name

* Rename `DeleteSkillVersionResponse` for Python client

* Ingest agents optimization. (#43567)

* First (#43595)

* Update doc strings to further clarify service-side defaults (#43598)

* Model type updates (#43597)

* update empty type to record<unknown>

* change int32 -> int64

* add openapi3 files

* Change name model create operation (#43603)

* fix(agents-optimization): format route definitions for better readability (#43623)

* Kaylieee/java 2.1.0 client updates (#43064)

* rename evaluator gen ops

* remove async from name

* revert targetconfig rename

* undo rename

* rename listsessionfiles

* add agents-optimization to agents client, add evaluation-suites, suppress createAgentFromCode

* move evaluation suite operations to evaluators, rename

* remove evaluationsuites

* Revert "remove evaluationsuites"

This reverts commit 1e8c4c9ff13811e42d00b897a36b19fa4c95bc4c.

* Reapply "remove evaluationsuites"

This reverts commit d9ead557066144db5eb1794cc36ac206288aec16.

* add evals dependency for agent optimizations

* suppress openai outputitem

* suppress inputitem

* customization for naming collision

* Ingest spec 52626 (#43522)

* Fix which 'fromCode' method we emit. Thanks Howie!

* feat(agents-session-files): add has_more, @list, and optional path to ListSessionFiles (#43280)

* Update specification/ai-foundry/data-plane/Foundry/src/agents-session-files/models.tsp

* Update specification/ai-foundry/data-plane/Foundry/src/agents-session-files/routes.tsp

* fix

* missing change

* inline page result

* Revert "Merge branch 'feature/foundry-release' of https://github.com/Azure/azure-rest-api-specs into feature/foundry-release"

This reverts commit 1027f31a437215ae41453cb0b9c184dcc1a5dc56, reversing
changes made to f67e0697da58478ee35a4ed96ee6cf3ebbc2dc31.

* Move Toolboxes operations back to a .beta client for JS and Python SDKs

* Map OpenAI.OutputItem to Record<Unknown> for JS and Python emitters. (#43354)

* Remove evaluation suites from JS and Python SDKs (#43356)

* Add isolation key header to session crud (#43348)

* Add isolation key header to session crud

* regen openapi3

---------

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Fix typespec (#43316)

* Expose CreateAgentFromCodeOptions (#43392)

* Add target and input_messages to evaluation suite generation inputs (#43282)

* Add target and input_messages to evaluation suite generation inputs

- Added optional target field to EvaluationSuiteGenerationJobInputs
- Added optional input_messages field (template or item_reference)
- Target is stored on the generated suite so it can be run immediately
- input_messages defaults to template with {{item.query}} if omitted

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add evaluation_level to generation job inputs

Optional field defaults to turn. When set to conversation,
dataset generation is skipped and user provides their own
multi-turn dataset. Target is required for turn-level but
optional for conversation-level.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Clean up doc comments — remove internal implementation details

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove level-specific details from target and input_messages docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add @removed(Versions.v1) to evaluation suite interfaces for private preview

Mark EvaluationSuites and EvaluationSuiteGenerationJobs interfaces
as removed from v1 so they remain private preview only and are not
included in the public GA surface. Models don't need the tag since
they are unreachable without the routes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Doc string missing defaults. Minor updates to Python surface. (#43431)

* Minor TypeSpec, Python & JS renames. Does not affect OpenAPI3 files (#43438)

* Add type spec for stop sessions (#43206)

* add typespec for stop sessions.

* add stop session example.

* openai3

* correct verb for stop api.

* correct comment structure.

* Revert "correct comment structure."

This reverts commit 1c5669d081f79ec37bcdd456f1b05d2909f1b474.

* update comment decorator,

* update spec for stop.

* fix comment + regen

* updated comment

---------

Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove image and container_protocol_versions from HostedAgentDefinition (#43410)

These properties are not part of the v1 (GA) surface. Per review feedback, remove them from the model entirely rather than using @removed(Versions.v1).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Delete specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml,json

* Skills API: Versioned Skills aligned with OpenAI and agentskills.io (#43283)

* Add versioned Skills API alongside existing flat API

Add version support to Skills API mirroring the Toolbox pattern:
- SkillVersionObject model for immutable version snapshots
- default_version field on SkillObject
- New versioned routes: createSkillVersion, listSkillVersions,
  getSkillVersion, downloadSkillVersion, deleteSkillVersion,
  updateSkillDefaultVersion, createSkillVersionFromPackage
- All existing flat routes preserved

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add versioned Skills API and skill references in Toolboxes

Skills API:
- Add SkillVersionObject model aligned with OpenAI skills API
- Add default_version, latest_version, created_at to SkillObject
- New versioned routes: createSkillVersion, listSkillVersions,
  getSkillVersion, getSkillContent, getSkillVersionContent,
  updateSkillDefaultVersion, deleteSkillVersion
- Use /content pattern (OpenAI-style) instead of :download
- All existing flat skill routes preserved

Toolboxes:
- Add SkillReference model (name + optional version)
- Add skills field to CreateToolboxVersionRequest and ToolboxVersionObject
- When version is specified, reference is pinned to that immutable version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align Skills API with OpenAI format: clean models, remove legacy routes

- Replace SkillObject/SkillVersionObject with clean Skill/SkillVersion models
- Remove old flat routes (createSkillFromPackage, downloadSkill, updateSkill)
- Switch updateSkillDefaultVersion from PATCH to POST (matching OpenAI)
- Add files upload to createSkill and createSkillVersion
- Remove metadata from create requests
- Remove SkillObject clientName mapping

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align Skills API with OpenAI: remove zip_content/description from create, add SkillsPagedResult, DeleteSkillVersionResponse, type discriminator on SkillReference

- Remove zip_content and description from CreateSkillVersionRequest (match OpenAI)
- Remove description from CreateSkillVersionMetadata (match OpenAI)
- Add independent SkillsPagedResult<T> type for clean SDK naming
- Add DeleteSkillVersionResponse with id, deleted, version (match OpenAI)
- Add type discriminator to SkillReference for future union extensibility
- Update routes to use SkillsPagedResult and DeleteSkillVersionResponse

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add object discriminators, make description required, add agentskills.io fields to inline content

- Add object discriminators to SkillsPagedResult, DeleteSkillResponse, DeleteSkillVersionResponse
- Make description required on Skill and SkillVersion (matches OpenAI)
- Add license and metadata fields to SkillInlineContent (agentskills.io spec)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add id and name to both delete responses for consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Simplify multipart: remove metadata wrapper, add upload behavior docs

- Remove CreateSkillVersionMetadata model, make default a top-level form field
- Add documentation for zip vs directory upload behavior
- Matches OpenAI's flat files + default pattern

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename updateSkillDefaultVersion to updateSkill for future extensibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update toolbox skill source model

Model toolbox skills as a discriminated base type with a skill reference variant so future skill sources can be added without reshaping the API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address skills API review feedback

Use the shared paged result type for skills lists, align timestamp modeling with FoundryTimestamp, remove object discriminator fields from skill responses, and make the update request a composed alias.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address remaining skills review feedback

Rename Skill in the Projects Agents SDK customization, document multipart default behavior, and model allowed tools as a string array.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* add missed invocations_ws into AgentProtocol (#43324)

Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Agents Optimization Alignment with APIs (#43436)

* set latest alignment fields

* add multi-turn simulation support (evaluationLevel, DatasetItem scenario fields)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* use shared OpenAI eval types (EvalRunOutputItemResult, EvalRunOutputItemSampleOutput)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove duplicate EvaluationLevel union (use shared definition from openai-evaluations)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove currentTargetAttribute from progress model

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove orphaned models and simplify deploy config types

* fix evalModel type to string

* flatten request body - remove inputs wrapper to match vienna contract

* remove dead response fields and add response-side AgentDefinitionResponse

* rename to AgentIdentifier for request, OptimizationAgentDefinition for response

* fix response structure: nest inputs in response, flat request body, update create operation

* remove read-only visibility from inputs to allow create+read

* add 202 Accepted response for GET while job in progress

* regen

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove dataset source from data generation jobs (#43448)

* Remove dataset source from data generation jobs

Removes the DatasetDataGenerationJobSource model and the dataset member of the DataGenerationJobSourceType union in the data generation jobs spec, and regenerates openapi3 outputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove scenario and type filters from listJobsPreview for data generation jobs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add Dan to CODEOWNERS (#43017)

* remove downloadskill override

* remove skillobject override

* relocate promote candidate

* relocate get candidate

---------

Co-authored-by: Darren Cohen <39422044+dargilco@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Andrew Schonhoffer <andscho@microsoft.com>
Co-authored-by: Nikolay Rovinskiy <30440255+nick863@users.noreply.github.com>
Co-authored-by: vebudumu <93553661+vebudumu@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Harsheet Shah <50236780+harsheet-shah@users.noreply.github.com>
Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Santhosh Kumar Gunasekaran <sagunase@microsoft.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Viswa Balaji <138743504+viswabalaji@users.noreply.github.com>
Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Yulin Li <liyulin@pku.edu.cn>
Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Justin Gonzales <115047469+jugonzales@users.noreply.github.com>
Co-authored-by: aprilk-ms <55356546+aprilk-ms@users.noreply.github.com>

* Revert "Ingest spec 52626 (#43522)" (#43523)

This reverts commit 2b538a263c45694f2fb4a150b1053694360b87f2.

* remove downloadskill override

* remove skillobject override

* relocate promote candidate

* relocate get candidate

* renames

* undo rename

* suppress tool type

* suppress deleteskillversion

* Adding Azure related classes for evals (#43508)

* Adding Azure related classes for evals

* forced json object

* unknown instead of string

* remove listsessionfiles rename

* rename uri to url

* rename fabriciq

* rename to blueprintIdentity

* rename contentHash to specify method

* missing quotes

* rename avg to average

* deleteskill suppressions

* customizations for deletememory

* remove async from method name

* renames

* skill rename

---------

Co-authored-by: Darren Cohen <39422044+dargilco@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Andrew Schonhoffer <andscho@microsoft.com>
Co-authored-by: Nikolay Rovinskiy <30440255+nick863@users.noreply.github.com>
Co-authored-by: vebudumu <93553661+vebudumu@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Harsheet Shah <50236780+harsheet-shah@users.noreply.github.com>
Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Santhosh Kumar Gunasekaran <sagunase@microsoft.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Viswa Balaji <138743504+viswabalaji@users.noreply.github.com>
Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Yulin Li <liyulin@pku.edu.cn>
Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Justin Gonzales <115047469+jugonzales@users.noreply.github.com>
Co-authored-by: aprilk-ms <55356546+aprilk-ms@users.noreply.github.com>
Co-authored-by: Jose Alvarez <jpalvarezl@users.noreply.github.com>

* Cleanup client.tsp file (#43670)

* Format using `npx tsp format **/*tsp`

* Re-run  `npx tsp format **/*tsp` after merge from Main to get updated tools

* feat(ai-foundry/eval-rules): add samplingRate to ContinuousEvaluationRuleAction (#43626)

* feat(ai-foundry/eval-rules): add samplingRate to ContinuousEvaluationRuleAction

Adds an optional `samplingRate` (float64, percentage in (0, 100]) on

`ContinuousEvaluationRuleAction`. When set, each matching event has this

percentage chance of triggering an evaluation; when omitted, every event

is evaluated (equivalent to 100). To disable the rule entirely, callers

should set `enabled` to false rather than `samplingRate: 0` (which

is rejected by the service).

Mirrors the existing server-side validation in RAISvc:

  if (rate <= 0 || rate > 100) -> 400 BadRequest

Regenerated v1 + virtual-public-preview openapi3 (.json and .yaml) via

`npx tsp compile .`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry/eval-rules): set samplingRate default to 100 and clarify doc

Addresses review feedback on PR #43626 from @dargilco. Since the Foundry
RAI evaluation service treats an omitted samplingRate as full sampling
(equivalent to 100), express that explicitly in the TypeSpec contract by
adding a default of 100 and updating the docstring to call out the
service-side behavior.

Regenerated openapi3 outputs from
`specification/ai-foundry/data-plane/Foundry`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Foundry: add a local skill for consistent summary/description in OAS3 emission (#43558)

* initial pass: add and apply a skill for summary/description breakout

* cleanup: no root agency.toml change

* missing summary tags; skill, heal thyself

* merge again

* re-run skill with more careful pass

* more comprehensive summary/description pass

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>

* fix: avoid multiple any of entries for different response bodies in responses API (#43662)

* fix: avoid multiple any of entries for different response bodies in responses API

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* warnings, getResponse, format

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Travis Wilson <travisw@microsoft.com>

* fix: use range for error responses in foundry (#43493)

* fix: use ranges for error responses instead of default

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: use range error for datasets operation

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refactors error definition to avoid duplication

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: use FoundryAzureOperations for resource operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: refresh Foundry OpenAPI descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): use range errors for version list operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(ai-foundry): refresh version list descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): use range errors for Foundry resource operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(ai-foundry): refresh resource operation descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): centralize range error operation templates

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): use range errors for OpenAI operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(ai-foundry): refresh OpenAI operation descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: bad merge for see inline schema fix

* chore: refreshes generated assets

* fix: summary fix for delete toolbox after re-run of the skill

* fix: operations get concatenated descriptions and summaries (#43661)

* fix: adds summary and description overrides for skill version operations

* Adding extension annotation to create agent, update agent, and create agent version variants.

* improve override summary/descs for agents

* fix: aligns values

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: description alignment

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Travis Wilson <travisw@microsoft.com>

* Refresh OpenAPI3 files, from running `npx tsp compile .`

* Re-org client files (#43750)

* fix: update memory store endpoints in foundry-features-flag-summary.md (#43788)

* feat(ai-foundry/evaluators): add supported_evaluation_levels + List evaluator generation jobs propagation note (#43667)

* feat(ai-foundry/evaluators): add supported_evaluation_levels + List propagation note

Two related evaluator-API changes:

1. Add ``supported_evaluation_levels?: EvaluationLevel[]`` to ``EvaluatorVersion``
   to mirror the service-side contract in Vienna's RAISvc evaluator models
   (``Evaluator`` / ``CreateEvaluatorRequest`` / ``UpdateEvaluatorRequest`` in
   ``RAISvc/Contracts/Evaluations/Evaluators.cs``).

   - Read: always present; service defaults to ``[turn]`` when none are set.
   - Create: optional; omitted -> service defaults to ``[turn]``.
   - Update: optional; omitted -> no change. Empty list rejected.
   - Custom code-based evaluators support only ``turn``; custom prompt-based
     evaluators support exactly one level (``turn`` or ``conversation``).

   Reuses the existing ``EvaluationLevel`` union from
   ``openai-evaluations/models.tsp`` (same ``Azure.AI.Projects`` namespace).

2. Note in the ``EvaluatorGenerationJobs.list`` docstring that the List API
   has up to a few seconds of propagation delay; recently created jobs may
   not appear immediately. Callers should use the Get API with the job ID
   for a specific job without delay.

Regenerated openapi3 outputs via ``npx tsp compile .`` from
``specification/ai-foundry/data-plane/Foundry``.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Apply suggestion from @glecaros

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* chore(ai-foundry/evaluators): regenerate openapi3 after glecaros suggestion

The suggestion in dc91dc3c6e8 added `= #[EvaluationLevel.turn]` as the
default for `supported_evaluation_levels` but did not include the
regenerated openapi3 artifacts. This commit refreshes them so the schema
emits `default: [turn]` consistently across the Create / Read / Update
views.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Compile client.tsp and compile typespec (#43800)

* Remove the line non-needed anymore (#43799)

* Placeholder union for routine run status. So we can add specific string values in the future without breaking changes (#43786)

* Update OpenAPI3 files after running `npx tsp compile .`

* [Foundry] Add `a2a` to AgentProtocol union (#43821)

Adds `a2a: "a2a"` to the container-side `AgentProtocol` union in
`src/agents/models.tsp`, mirroring the existing `a2a` entry in
`AgentEndpointProtocol`. This lets hosted agents declare that their
container natively serves the A2A protocol, enabling Azure ML Vienna's
Agents service to route A2A traffic directly to the container (passthrough)
instead of translating it through the head.

Non-breaking: this is a string-extensible union, so the new value extends
the schema without invalidating existing clients or stored agent definitions.

Also includes a fresh openapi3 regeneration (`tsp compile --emit @typespec/openapi3`).
The regen picked up four unrelated discriminator-mapping additions
(`azure_ai_source`, `synthetic_data_gen_preview`, OpenAI `json_schema` /
`summary_text`) that were added to the TypeSpec but not yet reflected in
the committed openapi3 outputs. Including them here keeps the openapi3
artifacts consistent with the TypeSpec source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Java beta subclients refactor (#43686)

* methods relocs

* hack to get relocs

* removed unused namespaces

* add clientInitialization

* Trying individual init

* fix

* Added allowbetatypes flag

* Inlined model

* moved allowBetaTypes to parent builder

* client setup correctly

* removed bad usage of clientInitialization

* Trying to promote header values to builder setting

* Added relocations to Projects SDK java entrypoint

* Adding Java expections for ops served in azure-ai-agents package

* Dedicated java op reloc entries for projects

* Promote Foundry preview header to Java client

* Narrow Java optimization convenience suppressions

* Document Java Foundry-Features header promotion rationale

* Document temporary Java convenience API suppressions

* Promote Foundry preview header for Java projects

* Internalize Java Foundry features opt-in key

* Preserve Java projects convenience models

* Implmeneted entry point re-org for java

* Added tspconfig for java projects entry point

* Added missing imports

* restored entry point for java projects for now

* re-org 2nd try

* Expanded import to 2 separate files

* Removed work around and restored automatic code gen

* Forcing emission of optIn keys for internal use

* Removed work around for projects

* Simplified PR changes

* Simplified spec changes more

* replicated comment

* PR feedback and removed unnecessary main.tsp file

* add miss dependent directory (#43867)

* Use plugin to mark classes as experimental. (#43828)

* Use plugin to mark classes as experimental.

* Fix path

* Update OpenAPI3 files

* feat: adds the ability to control tags (#43560)

* feat: adds tag definition file

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* ci: emit 3.2.0 OpenAPI descriptions to get all required properties

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* feat: adds missing tags from the OpenAI definitions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* feat: further groupings of the tags

* feat: better ordering of tags

* fix: reverts description to summary change

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: adds missing summary for evaluator jobs

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* small update to tags

* update for peer responses/agentmgmt

* fix: split agent operations for sessions and versions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: remaps download operation

* chore: refreshes generated assets

* feat: additional missing tags from OpenAI operations

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: duplicated tag

* chore: refreshes generated assets

* fix: duplicated tag

* chore: refreshes generated assets

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Travis Wilson <travisw@microsoft.com>

* Disable plugin, because it is not ready yet. (#43943)

* selective import to support python sdk generation (#43920)

* API Cleanup initial pass(merge sqush jugonzales/agents-optimization-v2preview) (#43927)

* rebase to /feature/foundry-release and merge sqush jugonzales/agents-optimization-v2preview

* resolve missing file

* address comment for minValue of max_candidates

* address comments of OptimizationInlineDatasetInput.type

* address coment of OptimizationJobListItem

* Fix latest typespec for C# (#43946)

* Nirovins/fix typespec (#43947)

* Fix latest typespec for C#

* Unhide removed API?

* Fix routines timer data contract (#43949)

* Reorganizes client TypeSpec files for better structure and consistency (#43945)

* Add exact Python client renames (#43860)

* Remove opt-in flags, in prep for 6/30 release (#43976)

* First

* Second

* Fix invocation ws

* Remove space

* Agent Enable Disable Apis (#43919)

* Add EnableAgent and DisableAgent APIs with action route syntax

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add AgentState model

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update disable route to use action syntax

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* regenerated openapi3

---------

Co-authored-by: Daniel Rodrigues <darod@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Config for beta annotation emitter Java (#44072)

* WIP

* Added emitter-output-dir

* better output folder setting

* updated instructions

* More instruction updates

* Typos

* Fix deserialization of ModelPendingUploadResponse (#43618)

* Fix deserialization of ModelPendingUploadResponse

* Remove SystemDataV3.

* Temporary disable plugin

* Add plugin back

* Fix memory weights contract

* Shorter JS/Python method names for Agent enable/disable (#44089)

* feat(ai-foundry/tools): add ReminderPreviewTool type (#43620)

* feat(ai-foundry/tools): add ReminderTool and FoundryRoutinesTool types

- Add 'reminder' and 'foundry_routines' to _PreviewAgentToolType union
- Define ReminderTool model: type='reminder', name?, description?, ...Record<unknown>
- Define FoundryRoutinesTool model: type='foundry_routines', name?, description?, ...Record<unknown>
- Regenerate openapi3 output

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs(ai-foundry/routines): clarify TimerRoutineTrigger.at format and reminder tool usage

Update the doc for TimerRoutineTrigger.at to:

- Note the ISO-8601 UTC timestamp format with an example

- Document that the built-in reminder_preview tool sets this field

  by computing now + minutes from the model-supplied minutes argument

* fix(ai-foundry/tools): add ToolConfigExtension to ReminderPreviewTool

Match the pattern used by every other *PreviewTool in this file (including ToolboxSearchPreviewTool, the closest analog). ToolConfigExtension adds the optional tool_configs map used to control per-tool visibility and search behavior.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Replace AgentProtocol with AgentEndpointProcotol (#44050)

* Add BotServiceTenant authorization scheme (#44093)

Co-authored-by: Daniel Rodrigues <darod@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add protocol_configuration to AgentEndpointConfig (#44018)

- Add ProtocolConfiguration model with typed properties for all protocols
  (activity, responses, a2a, mcp, invocations, invocations_ws)
- Add ActivityProtocolConfiguration with enable_m365_public_endpoint
- Add empty placeholder models for other protocols
- Add @removed(Versions.v1) on protocols field and AgentEndpointProtocol union
- Remove x-ms-foundry-meta opt-in extensions (aligned with PR #43976)
- Regenerate OpenAPI3 files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Decouple toolbox tool schemas (#43467)

* Decouple toolbox tool schemas

Separate toolbox tool request shapes from OpenAI tool schemas and limit toolbox tools to the supported toolbox surface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine toolbox tool schemas

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Support custom web search config for agents

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine toolbox tool model composition

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine toolbox tool schema decoupling

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* [Foundry] Session Identity & Delegation — x-ms-user-identity header + deprecate isolation_key_source + remove platform-internal headers (#44055)

* Add x-ms-user-identity delegation header + deprecate isolation_key_source

Session Identity & RBAC (Steps 1-3) + A2A identity propagation (Step 6):

- Add UserDelegationHeader (x-ms-user-identity) on all session, invoke, responses,
  conversations, and session-files routes
- Deprecate UserIsolationKeyHeader (x-ms-user-isolation-key) — kept for backward compat
- Add FoundryRunTokenHeader (x-foundry-run-token) on invoke/responses routes for A2A
- Add FoundryFoundationTokenHeader (x-foundry-foundation-token) for A2A session binding
- Deprecate isolation_key_source field and all IsolationKeySource models
  (precedence-based identity resolution replaces per-agent isolation key config)

Design doc: https://dev.azure.com/msdata/Vienna/_git/vienna/pullrequest/2120517
Spec PRs: https://github.com/coreai-microsoft/foundrysdk_specs/pull/217
          https://github.com/coreai-microsoft/foundrysdk_specs/pull/218

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove UserDelegationHeader from session-files routes (out of scope)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add UserIsolationKeyHeader and UserDelegationHeader to stopSession

stopSession was the only session-mutating operation missing the identity
headers. All other session operations (create, get, delete, list) already
had them for precedence-based identity resolution.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: mark RT and FT headers as platform_injected for SDK suppression

Add x-ms-foundry-meta { platform_injected: true } to both
FoundryRunTokenHeader and FoundryFoundationTokenHeader. This gives SDK
generators a machine-readable signal that these headers are set by the
platform (egress proxy / invoke pipeline), not by SDK callers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: scope x-ms-user-identity to /responses and /invocations only; remove platform-internal headers from public spec

- Remove UserDelegationHeader from session APIs and conversation APIs —
  delegation only applies at invoke time.
- Remove all platform-internal headers (x-foundry-run-token,
  x-foundry-call-id, x-foundry-foundation-token) from public API spec.
  These are injected by the platform and not customer-facing (per review
  feedback from @glecaros).
- Fix #deprecated directive on UserIsolationKeyHeader: move from alias
  level to field level where it has effect.
- Remove UserDelegationHeader from invocations_ws (out of scope for now).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Removing deprecated headers.

---------

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* fix: correct RBAC permission name for x-ms-user-identity delegation (#44120)

Update from agents/endpoint/delegateViaUserId to
agents/endpoints/delegateViaUserId/action to match the actual
registered dataAction name.

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix Python client names. Unrelated: update openapi3 files

* Rename A2aProtocolConfiguration to A2AProtocolConfiguration (#44143)

* adding trigger payload (#44149)

* Python client renames related to session file upload/download (#44114)

* Fix (#44148)

* feat: add x-ms-user-identity (UserDelegationHeader) to Conversation APIs + fix RBAC name (#44192)

Add UserDelegationHeader to all 9 Conversation API operations (create,
update, get, delete, list, createItems, getItem, deleteItem, listItems).
Conversations are partitioned by user identity — delegating callers need
this header to specify which user's partition to access.

Also fix RBAC permission name: agents/endpoint/delegateViaUserId →
agents/endpoints/delegateViaUserId/action (matches registered dataAction).

Companion to Vienna PR #2166624 which activates the new partition scheme
on the public API path.

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Rebase with feature/foundry-release; add send_credentials_for_agent_card to A2APreviewTool (#43893)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename Python Agents method to update_details (#44198)

* Rename AgentEndpointProtocol to ProjectsAgentProtocol (#44202)

* Fix: deprecate name, description, and tool_configs on GA tool classes (#44208)

* feat: deprecate name, description, and tool_configs on GA tool classes

Retain name, description, and tool_configs fields on General Availability
tool definitions with #deprecated directive to prevent SDK breaking changes.
These fields now live on ToolboxTool and should not be used on tool definitions.

Affected GA tools:
- OpenAI.MCPTool (tool_configs only)
- OpenAI.WebSearchTool, CodeInterpreterTool, ImageGenTool,
  LocalShellToolParam, FunctionShellToolParam, FileSearchTool
- BingGroundingTool, AzureAISearchTool, CaptureStructuredOutputsTool
- AzureFunctionTool, OpenApiTool (tool_configs only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: use generic deprecation message for tool fields

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add deprecation notice to doc strings for SDK visibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* First (#44222)

* Python client method renames (download_code_as_bytes, download_session_file_as_bytes)

* Updating Java config for custom beta class emitters (#44163)

* Updating Java config and adding tspconfig entry for csharp to showcase

* Removed csharp configuration

* Updated config for java

* Foundry data-plane: add `draft` flag to Agent versions

Adds an optional `draft: boolean` (default false) to:
- CreateAgentVersionRequest
- CreateAgentRequest (via spread)
- AgentVersionObject (response)

Excluded from UpdateAgentRequest via OmitProperties — draft is immutable
once set at version-creation time.

Also adds `include_drafts` query parameter to listAgentVersions.
Draft versions are excluded from listings by default.

Fully additive — no required[] changes, no removals.

* fix: exclude tool_configs from ToolFields to prevent deprecated bleed-through (#44251)

ToolFields<Source> omitted name/description/type but not tool_configs,
causing the deprecated tool_configs from patched agent-side Tools to
bleed through into ToolboxTool subtypes via ...ToolFields<OpenAI.MCPTool>.
ToolboxTool base already defines a non-deprecated tool_configs, so the
spread was incorrectly overriding it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Mark agent draft version features as preview with AgentsDraft=V1Previ… (#44254)

* Mark agent draft version features as preview with AgentsDraft=V1Preview opt-in

Add agents_draft_v1_preview key to AgentDefinitionOptInKeys and apply
x-ms-foundry-meta extensions to the draft property on CreateAgentVersionRequest,
AgentVersionObject, and the include_drafts query param on listAgentVersions.
The listAgentVersions operation also gains an optional Foundry-Features header.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename opt-in key to draft_agents_v1_preview / DraftAgents=V1Preview

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add extension decorators on preview models (#44235)

* add preview decorators to preview models

* add openapi files

* add missing annotations

* update openapi files

* remove duplicate agentoptimization const

* openapi files

* changed required to conditional

* Apply renaming from the review (#44207)

* Apply renamings from the review

* Name changes for Azure.AI.Projetcs.Agents

* Applay renames in Azure.AI.Extensions.OpenAI

* Applay renames in Azure.AI.Projects

* Other fixes

* Generate insights as usual. (#44256)

* Add EndpointBasedEvaluatorDefinition to evaluator TypeSpec (#43903)

* Add EndpointBasedEvaluatorDefinition to evaluator TypeSpec

Add endpoint discriminator to EvaluatorDefinitionType union and
EndpointBasedEvaluatorDefinition model with connection_name field.
Enables customers to register HTTP endpoint-based evaluators that
reference a Project Connection for credentials (API Key or Entra ID).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: regenerate OpenAPI specs after EndpointBasedEvaluatorDefinition

Generated by: npx tsp compile .

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Ahmad Nader <ahmadnader@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* azure-ai-agents and azure-ai-projects 2.2.0 client updates (#44204)

* update union type to string

* unabbreviate

* renames

* rename toolbox tool classes

* renames and suppressions

* remove list

---------

Co-authored-by: Jose Alvarez <josealvar@microsoft.com>

* More renames for Python client (#44297)

* refactor(ai-foundry/tools): remove obsolete agent ReminderPreviewTool (superseded by toolbox ReminderPreviewToolboxTool) (#44176)

* Fix doc string by replacing the term `isolation key` with `user identity`

* Simplified parameter name for agent session operations (#44350)

* Simplified name for operation

* Corrected rename

* Move EvaluatorGenerationJobs tag under Evaluations parent (#44408)

Change the EvaluatorGenerationJobs tag's parent from "Platform APIs" to
"Evaluations" in tag-definitions.tsp and regenerate the OpenAPI outputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: adds missing tag for agent enablement operations (#44419)

* Nirovins/use beta annotations ii (#44375)

* Mark experimental features based on x-ms-foundry-meta.

* Enable plugin run and mark experimental features

* chore: sync OpenAI operations from openai-typespec-foundry (#44422)

Generated by @azure-tools/openai-typespec-foundry operations-emitter.
Source branch: feature/foundry-release

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: refreshes generated assets

* docs/normalize names (#44504)

* ci: adds generated routes to the list of things to validate
ci: adds precision regarding the number of doc comment block to maintain

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* docs: normalizes the oper…
Gerardo Lecaros (glecaros) added a commit that referenced this pull request Oct 5, 2026
* update spec for stop api. (#43510)

Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>

* Convert agents-optimization models to snake_case (#43552)

* convert agents-optimization models to snake_case

- All model property fields converted from camelCase to snake_case
- Updated agent_name filter query param in routes (was agentName)
- TypeSpec compiles cleanly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Apply suggestion from @glecaros

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Use better names other than 'body', since it gets emitted in SDKs (#43562)

* Update OpenAPI3 files

* Fix list session files (#43566)

* Align Foundry Routines TypeSpec contracts (#43498)

* fix(routines): align foundry typespec contracts

Align the Foundry Routines TypeSpec with the latest AgentExtensions contract updates from Vienna branch users/akannava/agentextensions-routine-contract-cleanup.

Update trigger and action discriminators, timer and GitHub issue fields, action input and conversation/session fields, and the service pagination shapes used by routine and run-history list operations.

Regenerate the Foundry OpenAPI artifacts from the updated TypeSpec.

Authored-by: GitHub Copilot CLI 1.0.55-0

Model: GPT-5.5 (gpt-5.5)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(routines): address foundry typespec review

- Clarify relative and absolute timer trigger syntax

- Document raw JSON routine input pass-through semantics

- Mark routine run ids read-only and use snake_case fields

Authored-by: GitHub Copilot CLI v1.0.55-0

Model: GPT-5.5 (gpt-5.5)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(routines): align list pagination contract

Update Foundry Routines TypeSpec and generated OpenAPI for the AgentExtensions pagination contract now exposed by the service.

Use limit/order/after/before query parameters and data/first_id/last_id/has_more list responses. Keep after/last_id modeled as opaque continuation tokens and document before as reserved/unsupported.

Authored-by: GitHub Copilot CLI v1.0.55-0

Model: GPT-5.5 (gpt-5.5)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(routines): make RoutineRun.id required per reviewer suggestion; regenerate OpenAPI

@visibility(Lifecycle.Read) already suppresses id from write operations,
so id: string (required) is correct here. Also regenerates OpenAPI artifacts.

* fix(routines): address remaining PR review comments

- TimerRoutineTrigger: replace relative in?: string with �t?: utcDateTime
  (per johanste: relative timers are imprecise in service APIs)
- Remove TimerRoutineTrigger.time_zone (no longer needed with absolute UTC time)
- Remove RoutineListResponse, RoutineRunsResponse custom models;
  replace with AgentsPagedResult<Routine> and AgentsPagedResult<RoutineRun>
  (per glecaros: standardize on AgentsPagedResult like other list operations)
- RoutineRun.id doc: remove internal MLflow reference (per johanste)
- RoutineRun.status doc: remove internal MLflow reference
- Remove RoutineRun.trigger_time_zone (per glecaros+johanste: not needed
  when timestamps are already UTC)
- Regenerate OpenAPI artifacts

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Akshaya Annavajhala <16749003+akshaya-a@users.noreply.github.com>
Co-authored-by: Linda Li <zhuoqunli@microsoft.com>

* Update names of new Skills method, for emitted Python and JS clients

* rename Skill method 'create_from_package' to 'create_from_files' for Python & JS clients, to match REST API operation name

* Rename `DeleteSkillVersionResponse` for Python client

* Ingest agents optimization. (#43567)

* First (#43595)

* Update doc strings to further clarify service-side defaults (#43598)

* Model type updates (#43597)

* update empty type to record<unknown>

* change int32 -> int64

* add openapi3 files

* Change name model create operation (#43603)

* fix(agents-optimization): format route definitions for better readability (#43623)

* Kaylieee/java 2.1.0 client updates (#43064)

* rename evaluator gen ops

* remove async from name

* revert targetconfig rename

* undo rename

* rename listsessionfiles

* add agents-optimization to agents client, add evaluation-suites, suppress createAgentFromCode

* move evaluation suite operations to evaluators, rename

* remove evaluationsuites

* Revert "remove evaluationsuites"

This reverts commit 1e8c4c9ff13811e42d00b897a36b19fa4c95bc4c.

* Reapply "remove evaluationsuites"

This reverts commit d9ead557066144db5eb1794cc36ac206288aec16.

* add evals dependency for agent optimizations

* suppress openai outputitem

* suppress inputitem

* customization for naming collision

* Ingest spec 52626 (#43522)

* Fix which 'fromCode' method we emit. Thanks Howie!

* feat(agents-session-files): add has_more, @list, and optional path to ListSessionFiles (#43280)

* Update specification/ai-foundry/data-plane/Foundry/src/agents-session-files/models.tsp

* Update specification/ai-foundry/data-plane/Foundry/src/agents-session-files/routes.tsp

* fix

* missing change

* inline page result

* Revert "Merge branch 'feature/foundry-release' of https://github.com/Azure/azure-rest-api-specs into feature/foundry-release"

This reverts commit 1027f31a437215ae41453cb0b9c184dcc1a5dc56, reversing
changes made to f67e0697da58478ee35a4ed96ee6cf3ebbc2dc31.

* Move Toolboxes operations back to a .beta client for JS and Python SDKs

* Map OpenAI.OutputItem to Record<Unknown> for JS and Python emitters. (#43354)

* Remove evaluation suites from JS and Python SDKs (#43356)

* Add isolation key header to session crud (#43348)

* Add isolation key header to session crud

* regen openapi3

---------

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Fix typespec (#43316)

* Expose CreateAgentFromCodeOptions (#43392)

* Add target and input_messages to evaluation suite generation inputs (#43282)

* Add target and input_messages to evaluation suite generation inputs

- Added optional target field to EvaluationSuiteGenerationJobInputs
- Added optional input_messages field (template or item_reference)
- Target is stored on the generated suite so it can be run immediately
- input_messages defaults to template with {{item.query}} if omitted

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add evaluation_level to generation job inputs

Optional field defaults to turn. When set to conversation,
dataset generation is skipped and user provides their own
multi-turn dataset. Target is required for turn-level but
optional for conversation-level.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Clean up doc comments — remove internal implementation details

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove level-specific details from target and input_messages docs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add @removed(Versions.v1) to evaluation suite interfaces for private preview

Mark EvaluationSuites and EvaluationSuiteGenerationJobs interfaces
as removed from v1 so they remain private preview only and are not
included in the public GA surface. Models don't need the tag since
they are unreachable without the routes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Doc string missing defaults. Minor updates to Python surface. (#43431)

* Minor TypeSpec, Python & JS renames. Does not affect OpenAPI3 files (#43438)

* Add type spec for stop sessions (#43206)

* add typespec for stop sessions.

* add stop session example.

* openai3

* correct verb for stop api.

* correct comment structure.

* Revert "correct comment structure."

This reverts commit 1c5669d081f79ec37bcdd456f1b05d2909f1b474.

* update comment decorator,

* update spec for stop.

* fix comment + regen

* updated comment

---------

Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove image and container_protocol_versions from HostedAgentDefinition (#43410)

These properties are not part of the v1 (GA) surface. Per review feedback, remove them from the model entirely rather than using @removed(Versions.v1).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Delete specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml,json

* Skills API: Versioned Skills aligned with OpenAI and agentskills.io (#43283)

* Add versioned Skills API alongside existing flat API

Add version support to Skills API mirroring the Toolbox pattern:
- SkillVersionObject model for immutable version snapshots
- default_version field on SkillObject
- New versioned routes: createSkillVersion, listSkillVersions,
  getSkillVersion, downloadSkillVersion, deleteSkillVersion,
  updateSkillDefaultVersion, createSkillVersionFromPackage
- All existing flat routes preserved

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add versioned Skills API and skill references in Toolboxes

Skills API:
- Add SkillVersionObject model aligned with OpenAI skills API
- Add default_version, latest_version, created_at to SkillObject
- New versioned routes: createSkillVersion, listSkillVersions,
  getSkillVersion, getSkillContent, getSkillVersionContent,
  updateSkillDefaultVersion, deleteSkillVersion
- Use /content pattern (OpenAI-style) instead of :download
- All existing flat skill routes preserved

Toolboxes:
- Add SkillReference model (name + optional version)
- Add skills field to CreateToolboxVersionRequest and ToolboxVersionObject
- When version is specified, reference is pinned to that immutable version

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align Skills API with OpenAI format: clean models, remove legacy routes

- Replace SkillObject/SkillVersionObject with clean Skill/SkillVersion models
- Remove old flat routes (createSkillFromPackage, downloadSkill, updateSkill)
- Switch updateSkillDefaultVersion from PATCH to POST (matching OpenAI)
- Add files upload to createSkill and createSkillVersion
- Remove metadata from create requests
- Remove SkillObject clientName mapping

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Align Skills API with OpenAI: remove zip_content/description from create, add SkillsPagedResult, DeleteSkillVersionResponse, type discriminator on SkillReference

- Remove zip_content and description from CreateSkillVersionRequest (match OpenAI)
- Remove description from CreateSkillVersionMetadata (match OpenAI)
- Add independent SkillsPagedResult<T> type for clean SDK naming
- Add DeleteSkillVersionResponse with id, deleted, version (match OpenAI)
- Add type discriminator to SkillReference for future union extensibility
- Update routes to use SkillsPagedResult and DeleteSkillVersionResponse

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add object discriminators, make description required, add agentskills.io fields to inline content

- Add object discriminators to SkillsPagedResult, DeleteSkillResponse, DeleteSkillVersionResponse
- Make description required on Skill and SkillVersion (matches OpenAI)
- Add license and metadata fields to SkillInlineContent (agentskills.io spec)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add id and name to both delete responses for consistency

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Simplify multipart: remove metadata wrapper, add upload behavior docs

- Remove CreateSkillVersionMetadata model, make default a top-level form field
- Add documentation for zip vs directory upload behavior
- Matches OpenAI's flat files + default pattern

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename updateSkillDefaultVersion to updateSkill for future extensibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update toolbox skill source model

Model toolbox skills as a discriminated base type with a skill reference variant so future skill sources can be added without reshaping the API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address skills API review feedback

Use the shared paged result type for skills lists, align timestamp modeling with FoundryTimestamp, remove object discriminator fields from skill responses, and make the update request a composed alias.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address remaining skills review feedback

Rename Skill in the Projects Agents SDK customization, document multipart default behavior, and model allowed tools as a string array.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* add missed invocations_ws into AgentProtocol (#43324)

Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Agents Optimization Alignment with APIs (#43436)

* set latest alignment fields

* add multi-turn simulation support (evaluationLevel, DatasetItem scenario fields)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* use shared OpenAI eval types (EvalRunOutputItemResult, EvalRunOutputItemSampleOutput)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove duplicate EvaluationLevel union (use shared definition from openai-evaluations)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove currentTargetAttribute from progress model

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove orphaned models and simplify deploy config types

* fix evalModel type to string

* flatten request body - remove inputs wrapper to match vienna contract

* remove dead response fields and add response-side AgentDefinitionResponse

* rename to AgentIdentifier for request, OptimizationAgentDefinition for response

* fix response structure: nest inputs in response, flat request body, update create operation

* remove read-only visibility from inputs to allow create+read

* add 202 Accepted response for GET while job in progress

* regen

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Remove dataset source from data generation jobs (#43448)

* Remove dataset source from data generation jobs

Removes the DatasetDataGenerationJobSource model and the dataset member of the DataGenerationJobSourceType union in the data generation jobs spec, and regenerates openapi3 outputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove scenario and type filters from listJobsPreview for data generation jobs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add Dan to CODEOWNERS (#43017)

* remove downloadskill override

* remove skillobject override

* relocate promote candidate

* relocate get candidate

---------

Co-authored-by: Darren Cohen <39422044+dargilco@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Andrew Schonhoffer <andscho@microsoft.com>
Co-authored-by: Nikolay Rovinskiy <30440255+nick863@users.noreply.github.com>
Co-authored-by: vebudumu <93553661+vebudumu@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Harsheet Shah <50236780+harsheet-shah@users.noreply.github.com>
Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Santhosh Kumar Gunasekaran <sagunase@microsoft.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Viswa Balaji <138743504+viswabalaji@users.noreply.github.com>
Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Yulin Li <liyulin@pku.edu.cn>
Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Justin Gonzales <115047469+jugonzales@users.noreply.github.com>
Co-authored-by: aprilk-ms <55356546+aprilk-ms@users.noreply.github.com>

* Revert "Ingest spec 52626 (#43522)" (#43523)

This reverts commit 2b538a263c45694f2fb4a150b1053694360b87f2.

* remove downloadskill override

* remove skillobject override

* relocate promote candidate

* relocate get candidate

* renames

* undo rename

* suppress tool type

* suppress deleteskillversion

* Adding Azure related classes for evals (#43508)

* Adding Azure related classes for evals

* forced json object

* unknown instead of string

* remove listsessionfiles rename

* rename uri to url

* rename fabriciq

* rename to blueprintIdentity

* rename contentHash to specify method

* missing quotes

* rename avg to average

* deleteskill suppressions

* customizations for deletememory

* remove async from method name

* renames

* skill rename

---------

Co-authored-by: Darren Cohen <39422044+dargilco@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Andrew Schonhoffer <andscho@microsoft.com>
Co-authored-by: Nikolay Rovinskiy <30440255+nick863@users.noreply.github.com>
Co-authored-by: vebudumu <93553661+vebudumu@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Harsheet Shah <50236780+harsheet-shah@users.noreply.github.com>
Co-authored-by: Harsheet Shah <harsheetshah@microsoft.com>
Co-authored-by: Santhosh Kumar Gunasekaran <sagunase@microsoft.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Viswa Balaji <138743504+viswabalaji@users.noreply.github.com>
Co-authored-by: Vishwanath Balaji <visbalaji@microsoft.com>
Co-authored-by: Yulin Li <liyulin@pku.edu.cn>
Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Justin Gonzales <115047469+jugonzales@users.noreply.github.com>
Co-authored-by: aprilk-ms <55356546+aprilk-ms@users.noreply.github.com>
Co-authored-by: Jose Alvarez <jpalvarezl@users.noreply.github.com>

* Cleanup client.tsp file (#43670)

* Format using `npx tsp format **/*tsp`

* Re-run  `npx tsp format **/*tsp` after merge from Main to get updated tools

* feat(ai-foundry/eval-rules): add samplingRate to ContinuousEvaluationRuleAction (#43626)

* feat(ai-foundry/eval-rules): add samplingRate to ContinuousEvaluationRuleAction

Adds an optional `samplingRate` (float64, percentage in (0, 100]) on

`ContinuousEvaluationRuleAction`. When set, each matching event has this

percentage chance of triggering an evaluation; when omitted, every event

is evaluated (equivalent to 100). To disable the rule entirely, callers

should set `enabled` to false rather than `samplingRate: 0` (which

is rejected by the service).

Mirrors the existing server-side validation in RAISvc:

  if (rate <= 0 || rate > 100) -> 400 BadRequest

Regenerated v1 + virtual-public-preview openapi3 (.json and .yaml) via

`npx tsp compile .`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry/eval-rules): set samplingRate default to 100 and clarify doc

Addresses review feedback on PR #43626 from @dargilco. Since the Foundry
RAI evaluation service treats an omitted samplingRate as full sampling
(equivalent to 100), express that explicitly in the TypeSpec contract by
adding a default of 100 and updating the docstring to call out the
service-side behavior.

Regenerated openapi3 outputs from
`specification/ai-foundry/data-plane/Foundry`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Foundry: add a local skill for consistent summary/description in OAS3 emission (#43558)

* initial pass: add and apply a skill for summary/description breakout

* cleanup: no root agency.toml change

* missing summary tags; skill, heal thyself

* merge again

* re-run skill with more careful pass

* more comprehensive summary/description pass

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Vincent Biret <vibiret@microsoft.com>

* fix: avoid multiple any of entries for different response bodies in responses API (#43662)

* fix: avoid multiple any of entries for different response bodies in responses API

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* warnings, getResponse, format

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Travis Wilson <travisw@microsoft.com>

* fix: use range for error responses in foundry (#43493)

* fix: use ranges for error responses instead of default

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: use range error for datasets operation

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refactors error definition to avoid duplication

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: use FoundryAzureOperations for resource operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: refresh Foundry OpenAPI descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): use range errors for version list operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(ai-foundry): refresh version list descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): use range errors for Foundry resource operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(ai-foundry): refresh resource operation descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): centralize range error operation templates

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(ai-foundry): use range errors for OpenAI operations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore(ai-foundry): refresh OpenAI operation descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: bad merge for see inline schema fix

* chore: refreshes generated assets

* fix: summary fix for delete toolbox after re-run of the skill

* fix: operations get concatenated descriptions and summaries (#43661)

* fix: adds summary and description overrides for skill version operations

* Adding extension annotation to create agent, update agent, and create agent version variants.

* improve override summary/descs for agents

* fix: aligns values

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: description alignment

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>
Co-authored-by: Travis Wilson <travisw@microsoft.com>

* Refresh OpenAPI3 files, from running `npx tsp compile .`

* Re-org client files (#43750)

* fix: update memory store endpoints in foundry-features-flag-summary.md (#43788)

* feat(ai-foundry/evaluators): add supported_evaluation_levels + List evaluator generation jobs propagation note (#43667)

* feat(ai-foundry/evaluators): add supported_evaluation_levels + List propagation note

Two related evaluator-API changes:

1. Add ``supported_evaluation_levels?: EvaluationLevel[]`` to ``EvaluatorVersion``
   to mirror the service-side contract in Vienna's RAISvc evaluator models
   (``Evaluator`` / ``CreateEvaluatorRequest`` / ``UpdateEvaluatorRequest`` in
   ``RAISvc/Contracts/Evaluations/Evaluators.cs``).

   - Read: always present; service defaults to ``[turn]`` when none are set.
   - Create: optional; omitted -> service defaults to ``[turn]``.
   - Update: optional; omitted -> no change. Empty list rejected.
   - Custom code-based evaluators support only ``turn``; custom prompt-based
     evaluators support exactly one level (``turn`` or ``conversation``).

   Reuses the existing ``EvaluationLevel`` union from
   ``openai-evaluations/models.tsp`` (same ``Azure.AI.Projects`` namespace).

2. Note in the ``EvaluatorGenerationJobs.list`` docstring that the List API
   has up to a few seconds of propagation delay; recently created jobs may
   not appear immediately. Callers should use the Get API with the job ID
   for a specific job without delay.

Regenerated openapi3 outputs via ``npx tsp compile .`` from
``specification/ai-foundry/data-plane/Foundry``.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Apply suggestion from @glecaros

Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* chore(ai-foundry/evaluators): regenerate openapi3 after glecaros suggestion

The suggestion in dc91dc3c6e8 added `= #[EvaluationLevel.turn]` as the
default for `supported_evaluation_levels` but did not include the
regenerated openapi3 artifacts. This commit refreshes them so the schema
emits `default: [turn]` consistently across the Create / Read / Update
views.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Compile client.tsp and compile typespec (#43800)

* Remove the line non-needed anymore (#43799)

* Placeholder union for routine run status. So we can add specific string values in the future without breaking changes (#43786)

* Update OpenAPI3 files after running `npx tsp compile .`

* [Foundry] Add `a2a` to AgentProtocol union (#43821)

Adds `a2a: "a2a"` to the container-side `AgentProtocol` union in
`src/agents/models.tsp`, mirroring the existing `a2a` entry in
`AgentEndpointProtocol`. This lets hosted agents declare that their
container natively serves the A2A protocol, enabling Azure ML Vienna's
Agents service to route A2A traffic directly to the container (passthrough)
instead of translating it through the head.

Non-breaking: this is a string-extensible union, so the new value extends
the schema without invalidating existing clients or stored agent definitions.

Also includes a fresh openapi3 regeneration (`tsp compile --emit @typespec/openapi3`).
The regen picked up four unrelated discriminator-mapping additions
(`azure_ai_source`, `synthetic_data_gen_preview`, OpenAI `json_schema` /
`summary_text`) that were added to the TypeSpec but not yet reflected in
the committed openapi3 outputs. Including them here keeps the openapi3
artifacts consistent with the TypeSpec source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Java beta subclients refactor (#43686)

* methods relocs

* hack to get relocs

* removed unused namespaces

* add clientInitialization

* Trying individual init

* fix

* Added allowbetatypes flag

* Inlined model

* moved allowBetaTypes to parent builder

* client setup correctly

* removed bad usage of clientInitialization

* Trying to promote header values to builder setting

* Added relocations to Projects SDK java entrypoint

* Adding Java expections for ops served in azure-ai-agents package

* Dedicated java op reloc entries for projects

* Promote Foundry preview header to Java client

* Narrow Java optimization convenience suppressions

* Document Java Foundry-Features header promotion rationale

* Document temporary Java convenience API suppressions

* Promote Foundry preview header for Java projects

* Internalize Java Foundry features opt-in key

* Preserve Java projects convenience models

* Implmeneted entry point re-org for java

* Added tspconfig for java projects entry point

* Added missing imports

* restored entry point for java projects for now

* re-org 2nd try

* Expanded import to 2 separate files

* Removed work around and restored automatic code gen

* Forcing emission of optIn keys for internal use

* Removed work around for projects

* Simplified PR changes

* Simplified spec changes more

* replicated comment

* PR feedback and removed unnecessary main.tsp file

* add miss dependent directory (#43867)

* Use plugin to mark classes as experimental. (#43828)

* Use plugin to mark classes as experimental.

* Fix path

* Update OpenAPI3 files

* feat: adds the ability to control tags (#43560)

* feat: adds tag definition file

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* ci: emit 3.2.0 OpenAPI descriptions to get all required properties

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* feat: adds missing tags from the OpenAI definitions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* feat: further groupings of the tags

* feat: better ordering of tags

* fix: reverts description to summary change

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: adds missing summary for evaluator jobs

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* small update to tags

* update for peer responses/agentmgmt

* fix: split agent operations for sessions and versions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: remaps download operation

* chore: refreshes generated assets

* feat: additional missing tags from OpenAI operations

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: duplicated tag

* chore: refreshes generated assets

* fix: duplicated tag

* chore: refreshes generated assets

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Travis Wilson <travisw@microsoft.com>

* Disable plugin, because it is not ready yet. (#43943)

* selective import to support python sdk generation (#43920)

* API Cleanup initial pass(merge sqush jugonzales/agents-optimization-v2preview) (#43927)

* rebase to /feature/foundry-release and merge sqush jugonzales/agents-optimization-v2preview

* resolve missing file

* address comment for minValue of max_candidates

* address comments of OptimizationInlineDatasetInput.type

* address coment of OptimizationJobListItem

* Fix latest typespec for C# (#43946)

* Nirovins/fix typespec (#43947)

* Fix latest typespec for C#

* Unhide removed API?

* Fix routines timer data contract (#43949)

* Reorganizes client TypeSpec files for better structure and consistency (#43945)

* Add exact Python client renames (#43860)

* Remove opt-in flags, in prep for 6/30 release (#43976)

* First

* Second

* Fix invocation ws

* Remove space

* Agent Enable Disable Apis (#43919)

* Add EnableAgent and DisableAgent APIs with action route syntax

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add AgentState model

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Update disable route to use action syntax

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* regenerated openapi3

---------

Co-authored-by: Daniel Rodrigues <darod@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Config for beta annotation emitter Java (#44072)

* WIP

* Added emitter-output-dir

* better output folder setting

* updated instructions

* More instruction updates

* Typos

* Fix deserialization of ModelPendingUploadResponse (#43618)

* Fix deserialization of ModelPendingUploadResponse

* Remove SystemDataV3.

* Temporary disable plugin

* Add plugin back

* Fix memory weights contract

* Shorter JS/Python method names for Agent enable/disable (#44089)

* feat(ai-foundry/tools): add ReminderPreviewTool type (#43620)

* feat(ai-foundry/tools): add ReminderTool and FoundryRoutinesTool types

- Add 'reminder' and 'foundry_routines' to _PreviewAgentToolType union
- Define ReminderTool model: type='reminder', name?, description?, ...Record<unknown>
- Define FoundryRoutinesTool model: type='foundry_routines', name?, description?, ...Record<unknown>
- Regenerate openapi3 output

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs(ai-foundry/routines): clarify TimerRoutineTrigger.at format and reminder tool usage

Update the doc for TimerRoutineTrigger.at to:

- Note the ISO-8601 UTC timestamp format with an example

- Document that the built-in reminder_preview tool sets this field

  by computing now + minutes from the model-supplied minutes argument

* fix(ai-foundry/tools): add ToolConfigExtension to ReminderPreviewTool

Match the pattern used by every other *PreviewTool in this file (including ToolboxSearchPreviewTool, the closest analog). ToolConfigExtension adds the optional tool_configs map used to control per-tool visibility and search behavior.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Replace AgentProtocol with AgentEndpointProcotol (#44050)

* Add BotServiceTenant authorization scheme (#44093)

Co-authored-by: Daniel Rodrigues <darod@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add protocol_configuration to AgentEndpointConfig (#44018)

- Add ProtocolConfiguration model with typed properties for all protocols
  (activity, responses, a2a, mcp, invocations, invocations_ws)
- Add ActivityProtocolConfiguration with enable_m365_public_endpoint
- Add empty placeholder models for other protocols
- Add @removed(Versions.v1) on protocols field and AgentEndpointProtocol union
- Remove x-ms-foundry-meta opt-in extensions (aligned with PR #43976)
- Regenerate OpenAPI3 files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Decouple toolbox tool schemas (#43467)

* Decouple toolbox tool schemas

Separate toolbox tool request shapes from OpenAI tool schemas and limit toolbox tools to the supported toolbox surface.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine toolbox tool schemas

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Support custom web search config for agents

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine toolbox tool model composition

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Refine toolbox tool schema decoupling

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* [Foundry] Session Identity & Delegation — x-ms-user-identity header + deprecate isolation_key_source + remove platform-internal headers (#44055)

* Add x-ms-user-identity delegation header + deprecate isolation_key_source

Session Identity & RBAC (Steps 1-3) + A2A identity propagation (Step 6):

- Add UserDelegationHeader (x-ms-user-identity) on all session, invoke, responses,
  conversations, and session-files routes
- Deprecate UserIsolationKeyHeader (x-ms-user-isolation-key) — kept for backward compat
- Add FoundryRunTokenHeader (x-foundry-run-token) on invoke/responses routes for A2A
- Add FoundryFoundationTokenHeader (x-foundry-foundation-token) for A2A session binding
- Deprecate isolation_key_source field and all IsolationKeySource models
  (precedence-based identity resolution replaces per-agent isolation key config)

Design doc: https://dev.azure.com/msdata/Vienna/_git/vienna/pullrequest/2120517
Spec PRs: https://github.com/coreai-microsoft/foundrysdk_specs/pull/217
          https://github.com/coreai-microsoft/foundrysdk_specs/pull/218

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove UserDelegationHeader from session-files routes (out of scope)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add UserIsolationKeyHeader and UserDelegationHeader to stopSession

stopSession was the only session-mutating operation missing the identity
headers. All other session operations (create, get, delete, list) already
had them for precedence-based identity resolution.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: mark RT and FT headers as platform_injected for SDK suppression

Add x-ms-foundry-meta { platform_injected: true } to both
FoundryRunTokenHeader and FoundryFoundationTokenHeader. This gives SDK
generators a machine-readable signal that these headers are set by the
platform (egress proxy / invoke pipeline), not by SDK callers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: scope x-ms-user-identity to /responses and /invocations only; remove platform-internal headers from public spec

- Remove UserDelegationHeader from session APIs and conversation APIs —
  delegation only applies at invoke time.
- Remove all platform-internal headers (x-foundry-run-token,
  x-foundry-call-id, x-foundry-foundation-token) from public API spec.
  These are injected by the platform and not customer-facing (per review
  feedback from @glecaros).
- Fix #deprecated directive on UserIsolationKeyHeader: move from alias
  level to field level where it has effect.
- Remove UserDelegationHeader from invocations_ws (out of scope for now).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Removing deprecated headers.

---------

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* fix: correct RBAC permission name for x-ms-user-identity delegation (#44120)

Update from agents/endpoint/delegateViaUserId to
agents/endpoints/delegateViaUserId/action to match the actual
registered dataAction name.

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix Python client names. Unrelated: update openapi3 files

* Rename A2aProtocolConfiguration to A2AProtocolConfiguration (#44143)

* adding trigger payload (#44149)

* Python client renames related to session file upload/download (#44114)

* Fix (#44148)

* feat: add x-ms-user-identity (UserDelegationHeader) to Conversation APIs + fix RBAC name (#44192)

Add UserDelegationHeader to all 9 Conversation API operations (create,
update, get, delete, list, createItems, getItem, deleteItem, listItems).
Conversations are partitioned by user identity — delegating callers need
this header to specify which user's partition to access.

Also fix RBAC permission name: agents/endpoint/delegateViaUserId →
agents/endpoints/delegateViaUserId/action (matches registered dataAction).

Companion to Vienna PR #2166624 which activates the new partition scheme
on the public API path.

Co-authored-by: Ankit Sultania <asultania@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* Rebase with feature/foundry-release; add send_credentials_for_agent_card to A2APreviewTool (#43893)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename Python Agents method to update_details (#44198)

* Rename AgentEndpointProtocol to ProjectsAgentProtocol (#44202)

* Fix: deprecate name, description, and tool_configs on GA tool classes (#44208)

* feat: deprecate name, description, and tool_configs on GA tool classes

Retain name, description, and tool_configs fields on General Availability
tool definitions with #deprecated directive to prevent SDK breaking changes.
These fields now live on ToolboxTool and should not be used on tool definitions.

Affected GA tools:
- OpenAI.MCPTool (tool_configs only)
- OpenAI.WebSearchTool, CodeInterpreterTool, ImageGenTool,
  LocalShellToolParam, FunctionShellToolParam, FileSearchTool
- BingGroundingTool, AzureAISearchTool, CaptureStructuredOutputsTool
- AzureFunctionTool, OpenApiTool (tool_configs only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: use generic deprecation message for tool fields

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: add deprecation notice to doc strings for SDK visibility

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* First (#44222)

* Python client method renames (download_code_as_bytes, download_session_file_as_bytes)

* Updating Java config for custom beta class emitters (#44163)

* Updating Java config and adding tspconfig entry for csharp to showcase

* Removed csharp configuration

* Updated config for java

* Foundry data-plane: add `draft` flag to Agent versions

Adds an optional `draft: boolean` (default false) to:
- CreateAgentVersionRequest
- CreateAgentRequest (via spread)
- AgentVersionObject (response)

Excluded from UpdateAgentRequest via OmitProperties — draft is immutable
once set at version-creation time.

Also adds `include_drafts` query parameter to listAgentVersions.
Draft versions are excluded from listings by default.

Fully additive — no required[] changes, no removals.

* fix: exclude tool_configs from ToolFields to prevent deprecated bleed-through (#44251)

ToolFields<Source> omitted name/description/type but not tool_configs,
causing the deprecated tool_configs from patched agent-side Tools to
bleed through into ToolboxTool subtypes via ...ToolFields<OpenAI.MCPTool>.
ToolboxTool base already defines a non-deprecated tool_configs, so the
spread was incorrectly overriding it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Mark agent draft version features as preview with AgentsDraft=V1Previ… (#44254)

* Mark agent draft version features as preview with AgentsDraft=V1Preview opt-in

Add agents_draft_v1_preview key to AgentDefinitionOptInKeys and apply
x-ms-foundry-meta extensions to the draft property on CreateAgentVersionRequest,
AgentVersionObject, and the include_drafts query param on listAgentVersions.
The listAgentVersions operation also gains an optional Foundry-Features header.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Rename opt-in key to draft_agents_v1_preview / DraftAgents=V1Preview

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add extension decorators on preview models (#44235)

* add preview decorators to preview models

* add openapi files

* add missing annotations

* update openapi files

* remove duplicate agentoptimization const

* openapi files

* changed required to conditional

* Apply renaming from the review (#44207)

* Apply renamings from the review

* Name changes for Azure.AI.Projetcs.Agents

* Applay renames in Azure.AI.Extensions.OpenAI

* Applay renames in Azure.AI.Projects

* Other fixes

* Generate insights as usual. (#44256)

* Add EndpointBasedEvaluatorDefinition to evaluator TypeSpec (#43903)

* Add EndpointBasedEvaluatorDefinition to evaluator TypeSpec

Add endpoint discriminator to EvaluatorDefinitionType union and
EndpointBasedEvaluatorDefinition model with connection_name field.
Enables customers to register HTTP endpoint-based evaluators that
reference a Project Connection for credentials (API Key or Entra ID).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: regenerate OpenAPI specs after EndpointBasedEvaluatorDefinition

Generated by: npx tsp compile .

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Ahmad Nader <ahmadnader@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Gerardo Lecaros <10088504+glecaros@users.noreply.github.com>

* azure-ai-agents and azure-ai-projects 2.2.0 client updates (#44204)

* update union type to string

* unabbreviate

* renames

* rename toolbox tool classes

* renames and suppressions

* remove list

---------

Co-authored-by: Jose Alvarez <josealvar@microsoft.com>

* More renames for Python client (#44297)

* refactor(ai-foundry/tools): remove obsolete agent ReminderPreviewTool (superseded by toolbox ReminderPreviewToolboxTool) (#44176)

* Fix doc string by replacing the term `isolation key` with `user identity`

* Simplified parameter name for agent session operations (#44350)

* Simplified name for operation

* Corrected rename

* Move EvaluatorGenerationJobs tag under Evaluations parent (#44408)

Change the EvaluatorGenerationJobs tag's parent from "Platform APIs" to
"Evaluations" in tag-definitions.tsp and regenerate the OpenAPI outputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* docs: adds missing tag for agent enablement operations (#44419)

* Nirovins/use beta annotations ii (#44375)

* Mark experimental features based on x-ms-foundry-meta.

* Enable plugin run and mark experimental features

* chore: sync OpenAI operations from openai-typespec-foundry (#44422)

Generated by @azure-tools/openai-typespec-foundry operations-emitter.
Source branch: feature/foundry-release

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: refreshes generated assets

* docs/normalize names (#44504)

* ci: adds generated routes to the list of things to validate
ci: adds precision regarding the number of doc comment block to maintain

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* docs: normalizes the operations ids, titles and summaries

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix/warnings (#44505)

* fix: point specific suppression

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: build warnings for re-exported operations

* docs: restore normalized descriptions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* Add batch scripts to compile all TypeSpec entry points (#44464)

* fix/additional naming (#44540)

* fix: removes suppressions and adds missing descriptions

* fix: skill definition so it removes suppressions when present

* chore: refreshes generated assets

* fix: do not miss blocks for description updates

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: realtime descriptions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* fix: adds missing extensions for concatanated descriptions

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore/move directories (#44541)

* chore(foundry): nest OpenAI route directories

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci(foundry): update route doc skill for nested OpenAI routes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: sanity generation

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* chore: refreshes generated assets

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

* ci: adds missing words to cspell configuration

Signed-off-by: Vincent Biret <vibiret@microsoft.com>

---------

Signed-off-by: Vincent Biret <vibiret@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* ci: additional cspell suppressions

* feat(ai-foundry): make hosted-agent WebSocket endpoint path-based (#44032)

Convert AgentWebsocket.connectEndpointWebsocket from query-parameter
routing to a path-templated route, mirroring the HTTP /invocations shape
now that APIM supports templated webSocketUrlTemplate paths:

  /agents/{agent_name}/endpoint/protocols/invocations_ws

- agent_name moves from @query to @path
- project_name dropped (carried by the {endpoint} server variable, same
  as the HTTP /invocations route)
- remove @removed(Versions.v1) so the endpoint is available in v1
- regenerate openapi3 (v1 + virtual-public-preview, yaml + json)

Co-authored-by: Yulin Li <yulili@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Adaptive Evals: add RubricGenerationInputQualityWarning and evaluator-version generation provenance (#44512)

* Adaptive Evals: add RubricGenerationInputQualityWarning and evaluator-version generation provenance

Purely additive read-only surface on the existing evaluator-generation
and evaluator-version response models.

New in `src/evaluators/models.tsp`:
- Model `RubricGenerationInputQualityWarning` (fields `code`, `severity`,
  `message`, `source`, `source_index?`)
- Extensible unions `RubricGenerationInputQualityWarningSource`
  (`prompt`|`agent`|`dataset`|`aggregate`) and
  `RubricGenerationInputQualityWarningSeverity` (`warning`)
- `EvaluatorGenerationJob.rubric_generation_input_quality_warnings?`
- `EvaluatorVersion.generation_job_id?` and
  `EvaluatorVersion.has_generation_input_quality_warnings?`

All new types carry `@extension("x-ms-foundry-meta", EvaluatorsRequiredPreviews)`
so the preview gate is consistent with every other type in the file.

`tsp compile` regenerates both OpenAPI outputs.

Contract matches the Vienna server-side implementation (RAISvc C#
contracts + ACA Python emitter). Design: rubric-generation input-quality
warnings surface non-fatal advisories on terminal generation jobs; a
subsequent PATCH to `EvaluatorVersion.definition` clears both the
paired job's warnings and the version's summary flag.

* Adaptive Evals: rename input_quality_warnings + add extensible warning code enum

- Rename field rubric_generation_input_quality_warnings -> input_quality_warnings
  on EvaluatorGenerationJob (per @dantaylo review on foundrysdk_specs#230:375;
  the EvaluatorGenerationJob prefix is redundant).
- Add extensible union RubricGenerationInputQualityWarningCode with all 8
  warning codes; retype `code` field from string to the new typed extensible
  enum (per @dantaylo review on foundrysdk_specs#230:652).
- Regenerate OpenAPI3 (v1 + virtual-public-preview, JSON + YAML).

* Adaptive Evals: address @glecaros review — @minValue on source_index + warnings union on EvaluatorVersion

Addresses reviewer feedback on PR #44512 (Iteration 6):

- (line 375, @minValue suggestion) Add @minValue(0) to
  RubricGenerationInputQualityWarning.source_index so the generated
  OpenAPI3 emits minimum: 0. Negative indices into
  EvaluatorGenerationJob.inputs.sources are meaningless; upstream
  validators can now reject them.
- (line 433, structured warnings suggestion) Replace the boolean
  EvaluatorVersion.has_generation_input_quality_warnings with an
  extensible categorical array EvaluatorVersion.warnings:
  GenerationWarningType[]. Today the union has a single member
  input_quality (with the string catch-all for extensibility);
  future warning categories (e.g., safety, output quality) can be
  added without a breaking change. Documented as read-only, present
  only on generation-produced versions with non-empty warnings, and
  cleared when a PATCH to definition invalidates the paired job's
  advisories.

Regenerate OpenAPI3 (v1 + virtual-public-preview, JSON + YAML).

Downstream cascade (tracked separately - both repos already merged
prior iterations):
- vienna (RAISvc): C# DTO Evaluator.HasGenerationInputQualityWarnings
  becomes Evaluator.Warnings (List<string>?), wire key
  has_generation_input_quality_warnings -> warnings; extension helpers
  Get/ApplyGenerationWarnings update accordingly.
- foundrysdk_specs (spec.md): rename doc references.

---------

Co-authored-by: Ahmad Qardahji <aqardahji@microsoft.com>

* Add optional status field to AgentIdentity model (#44543)

* Add optional status field to AgentIdentity model

Add an optional string `status` property to the Foundry AgentIdentity
model to denote the status of the agent identity.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Use AgentIdentityStatus union for status field

Replace the plain string status property with a lowercase-valued
AgentIdentityStatus union (active, disabled), following the AgentState
convention.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Clarify status doc strings apply to instance identity and blueprint

Update the AgentIdentity status field and AgentIdentityStatus union doc
strings to note the status is present for both the agent instance
identity and the agent blueprint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Daniel Rodrigues <darod@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat(agents-optimization): add max_stalls to OptimizationOptions (#44650)

Exposes the GEPA early-stopping parameter as an optional API field.
A 'stall' is a consecutive reflective minibatch rejection — when the
optimizer proposes a new prompt, evaluates it on a small subset, and
the score does not improve vs the current best. After max_stalls
consecutive failures the optimizer stops early.

When omitted the service uses its internal default (5). Must be >= 1.

Aligned with Vienna PR #2189426 (merged).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add GA toolbox search tool type (#44709)

* Add GA toolbox search tool type

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1e562256-29ba-4774-a2b6-535d23598c1e

* Rename GA toolbox search schema

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1e562256-29ba-4774-a2b6-535d23598c1e

* Remove generated OpenAPI changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1e562256-29ba-4774-a2b6-535d23598c1e

* Regenerate Foundry OpenAPI

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 1e562256-29ba-4774-a2b6-535d23598c1e

* copy AOAI user_security_context into Foundry surface (#44775)

* Add getAgentInvocationAsyncApiSpec{Json,Yaml} operations (#44416)

* Add getAgentInvocationAsyncApiSpec{Json,Yaml} operations

AsyncAPI is the companion to OpenAPI for streaming/bidirectional surfaces
(e.g. the invocations_ws WebSocket protocol) that OpenAPI cannot express.
Container authors publish an AsyncAPI document at
/invocations/docs/asyncapi.{json,yaml}; the path extension is authoritative
for the returned content type (no Accept negotiation).

Follow-up to coreai-microsoft/foundrysdk_specs#209 which established the
docs endpoint contract at the spec-text layer. Work item AB#5407708.

* Clarify AsyncAPI 404 docstring: publishing is optional; JSON+YAML come together

* Remove undefined preview extensions; regenerate OpenAPI from TSP

- Drop @extension(x-ms-foundry-meta, AgentInvocationRequiredPreviews)
  and & AgentInvocationPreviewHeader references (symbols undefined on
  feature/foundry-release; docs endpoints don't need preview gating).
- Regenerate openapi3 v1 and virtual-public-preview artifacts so tsp
  source and OpenAPI stay in sync (unblocks TypeSpec Validation and
  Swagger Avocado CI checks).

* Initial integration of WebIQ into typespec repo (#44701)

* Initial integration of WebIQ into typespec repo

* fix(ai-foundry): add TypeSpecValidation suppression for Foundry and sub-projects

The existing suppressions.yaml used tool: TypeSpecValidationAll, which is
only checked by the PowerShell script in 'check all specs' mode. During PR
validation (checkingAllSpecs=false), the TSV Node.js tool checks for
tool: TypeSpecValidation suppression entries.

Add TypeSpecValidation entry covering both the main Foundry folder ('.') and
all sub-projects ('**') to suppress:
- EmitAutorest failure: Foundry uses @typespec/openapi3, not autorest
- FolderStructure failure: sdk-* sub-projects use non-standard naming/imports

Both TypeSpecValidationAll and TypeSpecValidation are needed:
- TypeSpecValidationAll: PowerShell-level skip during full spec scans
- TypeSpecValidation: Node.js TSV tool skip during PR validation

Co-authored-by: pjoshi23 <66575273+pjoshi23@users.noreply.github.com>

* fix(ai-foundry): add missing readmes for avocado checks

Co-authored-by: pjoshi23 <66575273+pjoshi23@users.noreply.github.com>

* Removed optional tags and suppressions

* removed added readme files

---------

Co-authored-by: Pranav Joshi <t-pjoshi@microsoft.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>

* rollback codeowners (if desired should PR in isolation)

* properly scope cspell

* nl

* Fix issues introduced by merge.

* docs(agents-optimization): document max_stalls service-side default of 5 (#44802)

The previous doc comment said 'uses its internal default' without naming
the value. Updated to 'The service defaults to 5 if a value is not
specified by the caller.' to make the service-side default explicit and
distinct from the client-side SDK default (which is None).

This follows the pattern used by other optional fields in the same model
(e.g. max_candidates says 'Default: 5', agent_version says 'Defaults to
latest if omitted').

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* regen

* Fix the tspconfig (#44816)

* build fix

* Fix Java CI (#44874)

* remove import

* remove more imports

* add missing imports

* update openai import

* Fix failing 'SDK Generation - Python' job

* fixes

* Add task generation data generation options (#44687)

* Add task generation data generation options

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6ace76a4-db3e-4602-a868-5640e11e2e97

* Address task generation docs feedback

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 67844cc1-92f0-4cb5-a20f-e3b12f047d46

* Regenerate task generation descriptions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 67844cc1-92f0-4cb5-a20f-e3b12f047d46

* Revert "Add getAgentInvocationAsyncApiSpec{Json,Yaml} operations (#44416)" (#44835)

This reverts commit b7f859172ca485ea148923f2f70a525147139444.

* Improve the handling of an experimental decorator (#44907)

* First (#44939)

* format

* Add state_source field to AgentObject to denote origin of agent state (#44806)

Co-authored-by: Daniel Rodrigues <darod@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c6964ee0-c818-4f3f-9350-637ce18d3a17

* Add sdk-validation.yaml file, so `SDK Validation - Python` pipeline emits on top of our feature branch (instead of Main branch) (#45006)

* Add agent ID back (#45078)

* Add agent ID back

* Do not expose patched options

* Add voice-first prompt agents on a dedicated /voice-agents path to the Foundry data-plane spec (#43970)

* Add prompt_voice agent kind to Foundry data-plane spec

Adds a declarative prompt_voice agent kind whose live speech-to-speech
session is delegated to the managed Voice Live backend:

- PromptVoiceAgentDefinition (model, instructions, audio, output_modalities,
  avatar, tools, structured_inputs), gated by a new PromptVoiceAgents=V1Preview
  opt-in key. The architecture (realtime vs cascaded) is derived server-side
  from the deployment's model and is NOT a definition field.
- Typed audio stack following the OpenAI Realtime session schema that Voice
  Live implements/extends: VoiceAudioConfig (input/output), VoiceAudioFormat
  (audio/pcm|pcmu|pcma), VoiceNoiseReduction, VoiceTurnDetection
  (server_vad | semantic_vad, discriminated), VoiceInputTranscription,
  AzureVoice (+ built-in voice string), VoiceOutputModality.
- Typed VoiceAvatarConfig (Voice Live extension).
- Constrained VoiceAgentTool union (function | mcp | system | toolbox) reusing
  OpenAI FunctionTool/MCPTool plus VoiceSystemTool/VoiceToolboxTool; server-side
  tools are intentionally excluded (use a toolbox).
- prompt_voice value on AgentKind; voice protocol on AgentEndpointProtocol
  so the agent endpoint advertises /agents/{name}/endpoint/protocols/voice.
  The realtime session/event wire frames are owned by Voice Live; only the
  authored control-plane audio/avatar/tool defaults are typed here.

Control-plane CRUD only; the realtime data plane is Voice Live.

* Rename product to Voice-First Prompt Agent in doc strings (display name only)

Update @doc documentation prose from 'prompt voice agent(s)' to 'voice-first
prompt agent(s)' and regenerate the OpenAPI output. Wire identifiers are
unchanged: the kind value stays prompt_voice, the model stays
PromptVoiceAgentDefinition, and the PromptVoiceAgents=V1Preview opt-in key is
untouched, so this is not an API contract change.

* Add model_type field to PromptVoiceAgentDefinition

Reconcile the voice-first prompt agent contract with the Foundry service
per foundrysdk_specs PR #215: the model is selected by two fields —
model_type (managed vs. self_deployed/BYOM) plus the existing model name.
Adds the VoiceModelType extensible union and regenerates the OpenAPI output.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Add store field (default false) to PromptVoiceAgentDefinition

Expose an all-or-nothing boolean store persistence switch on PromptVoiceAgentDefinition, defaulting to false (privacy-safe off). store=true persists the conversation transcript/event timeline, per-turn voice metrics, and raw audio; store=false persists nothing. No separate audio_logging field. Regenerated the v1 and virtual-public-preview OpenAPI JSON/YAML artifacts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Add prompt_voice guided authoring and conversation/audio APIs

Add POST /agents:generate_voice guided-authoring action (GenerateVoiceAgentRequest -> AgentObject) with agent_type, use_case, goal, required model_type + model, optional description and tools.

Add the endpoint-scoped conversation/audio read API set under /agents/{agent_name}/endpoint/protocols/openai/conversations: list/get conversations and items, per-turn audio (audio/wav), merged-recording metadata (VoiceRecordingResponse, blob_path, no SAS) and content stream, and cascade delete. Reuses the OpenAI.* conversation models; documents 404 (store=false) and 409 (merged recording before session end).

Remove the deferred AgentEndpointProtocol.voice member and reword the PromptVoiceAgentDefinition doc so the realtime voice WebSocket connect (deferred to a later change) leaves no stale /endpoint/protocols/voice contract.

Regenerate the committed OpenAPI artifacts (openapi3 v1 + virtual-public-preview, JSON + YAML) via tsp compile.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Serve voice conversation/audio APIs under the voice protocol

Move the endpoint-scoped conversation/audio read API set from /agents/{agent_name}/endpoint/protocols/openai/conversations to /agents/{agent_name}/endpoint/protocols/voice/conversations. These are voice-agent-specific APIs, not OpenAI-protocol APIs, so the protocol segment is voice. The shared OpenAI.* conversation models remain reused. Regenerated the OpenAPI artifacts (v1 + virtual-public-preview, JSON + YAML).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Advertise the voice protocol on AgentEndpointProtocol

Re-add the voice member to AgentEndpointProtocol now that the prompt_voice endpoint exposes real operations under /agents/{agent_name}/endpoint/protocols/voice/conversations, consistent with invocations/invocations_ws each having a matching protocol value. Regenerated the OpenAPI artifacts.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Document that the voice WS connect operation stays deferred

Clarify the AgentEndpointProtocol.voice doc: the endpoint-scoped conversation/audio routes under /endpoint/protocols/voice/conversations are defined in this spec, while the realtime voice WebSocket connect operation (GET /endpoint/protocols/voice) is deferred to a later change.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Use canonical deferred voice WS route in protocol doc

Describe the deferred realtime voice WebSocket connect route canonically as GET /agents/{agent_name}/endpoint/protocols/voice?api-version=v1 in the AgentEndpointProtocol.voice doc; never the standalone /agents/{name}/voice form.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Model voice conversation API on Voice Live 2026-04-10, not OpenAI

Redesign the persisted voice conversation API (/agents/{agent_name}/endpoint/protocols/voice/conversations) to model Azure Voice Live 2026-04-10 conversation/response/item data instead of reusing OpenAI Respo…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

data-plane TypeSpec Authored with TypeSpec

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants