Skip to content

Add agentBaseType support.#4620

Open
vayada wants to merge 7 commits into
Azure:mainfrom
vayada:vayada/agentBaseType
Open

Add agentBaseType support.#4620
vayada wants to merge 7 commits into
Azure:mainfrom
vayada:vayada/agentBaseType

Conversation

@vayada

@vayada vayada commented Jun 11, 2026

Copy link
Copy Markdown

This change introduces AgentBaseType as a shared contract for RPs implementing Agent resource types, providing a unified and consistent schema definition.

The model adheres to the canonical definition described in the ARM API contracts:
https://msazure.visualstudio.com/One/_git/AzureUX-ARMWiki?path=/src/api_contracts/agentBaseTypeV4.md&version=GBevanhi/agentBaseType

Design decisions:

  • Avoid adding new vendor-specific extensions
  • Represent semantics through explicit contract modeling
  • Classify properties using standard mutability and requirement annotations (readOnly, required, optional)

@microsoft-github-policy-service microsoft-github-policy-service Bot added lib:azure-resource-manager Issues for @azure-tools/typespec-azure-core library meta:website TypeSpec.io updates labels Jun 11, 2026
@vayada vayada changed the title Add agentBaseType support to Typespec. Add agentBaseType support. Jun 11, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jun 11, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@azure-tools/typespec-azure-resource-manager@4620

commit: 1e3be12

@github-actions

github-actions Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

⚠️ 2 metric(s) regressed above the +5% threshold:

Metric Baseline Current Change
total 🔴 655.5ms 🔴 689.2ms +5.1% 🔴
loader 🟢 196.8ms 🟡 244.6ms +24.3% 🔴
Full details – comparing 7ff6104 vs baseline dcdf200
Metric Baseline Current Change
total 🔴 655.5ms 🔴 689.2ms +5.1% 🔴
loader 🟢 196.8ms 🟡 244.6ms +24.3% 🔴
resolver 🟢 18.9ms 🟢 18.3ms -3.4%
checker 🟡 210.4ms 🟡 201.2ms -4.4%
validation 🟢 43.7ms 🟢 41.3ms -5.6% 🟢
 ↳ validation/@azure-tools/typespec-azure-core 🟢 7.2ms 🟢 6.9ms -4.2%
 ↳ validation/@typespec/http 🟢 5.7ms 🟢 5.7ms -0.0%
 ↳ validation/@typespec/rest 🟢 0.6ms 🟢 0.5ms -4.2%
 ↳ validation/@typespec/versioning 🔴 28.5ms 🔴 26.3ms -7.8% 🟢
 ↳ validation/compiler 🟢 1.5ms 🟢 1.4ms -6.3%
linter 🟢 146.6ms 🟢 138.5ms -5.5% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms -9.1%
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms +0.4%
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 6.2ms 🟢 6.0ms -3.4%
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.7ms 🟢 0.7ms -3.9%
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.1ms 🟢 0.1ms -9.2%
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.9ms 🟢 0.8ms -9.6%
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.6ms 🟢 0.6ms -3.6%
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.2ms 🟢 0.2ms -8.1%
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.3ms 🟢 0.3ms -4.5%
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.3ms -6.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.3ms 🟢 0.2ms -11.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.3ms 🟢 0.2ms -12.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms -5.2%
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms -2.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms -5.3%
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.6ms 🟢 0.6ms +1.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.4ms 🟢 0.4ms -8.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🔴 21.4ms 🔴 20.7ms -3.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.1ms 🟢 1.1ms -2.4%
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.1ms 🟢 0.1ms -6.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.3ms 🟢 0.2ms -10.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.2ms 🟢 1.2ms -1.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 2.1ms 🟢 1.9ms -8.6%
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.9ms 🟢 1.8ms -6.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🔴 21.0ms 🔴 20.9ms -0.2%
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 25.4ms 🔴 24.2ms -4.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms -18.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 5.5ms 🟢 5.3ms -3.3%
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms -9.4%
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.0ms 🟢 0.0ms -7.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.2ms 🟢 0.2ms -2.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.4ms 🟢 0.3ms -8.2%
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms -11.3%
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.3ms 🟢 0.3ms -4.2%
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms -24.6%
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🔴 25.3ms 🔴 22.8ms -10.1% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.3ms -6.8%
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.3ms 🟢 0.3ms -6.1%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 6.1ms 🟢 5.4ms -11.9%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms -12.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 4.5ms 🟢 4.0ms -9.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms +1.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms -8.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 6.0ms 🟢 5.3ms -11.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.9ms 🟢 4.3ms -13.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.4ms 🟢 0.4ms -2.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.5ms 🟢 0.5ms -9.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms -8.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.2ms -6.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.1ms -0.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms -24.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms -17.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms -2.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.0ms -10.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.3ms 🟢 0.3ms -0.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms -20.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.2ms 🟢 0.2ms -3.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 5.0ms 🟢 4.7ms -5.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.3ms -7.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms -7.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms -4.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms -9.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.1ms 🟢 0.1ms +2.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms -18.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 15.1ms 🟡 15.1ms +0.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms -1.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms -9.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-override-props 🟢 0.1ms 🟢 0.1ms -13.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.2ms 🟢 0.2ms -0.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🔴 22.8ms 🔴 22.0ms -3.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.1ms -6.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.2ms 🟢 0.1ms -2.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.3ms 🟢 2.1ms -8.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.4ms 🟢 0.4ms +6.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms -9.9%
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 1.1ms 🟢 1.1ms -5.3%
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms -16.1%
emit 🔴 6.32s 🔴 6.00s -5.1% 🟢
 ↳ emit/@azure-tools/typespec-autorest 🟡 209.6ms 🟢 167.0ms -20.3% 🟢
 ↳ emit/@azure-tools/typespec-python 🔴 4.62s 🔴 4.40s -4.8%
 ↳ emit/@typespec/http-client-js 🔴 1.22s 🔴 1.26s +3.4%
 ↳ emit/@typespec/openapi3 🟢 161.7ms 🟢 149.7ms -7.4% 🟢
 ↳ emit/@typespec/openapi3/compute 🟢 141.7ms 🟢 133.3ms -6.0% 🟢
 ↳ emit/@typespec/openapi3/write 🟢 20.3ms 🟢 16.6ms -18.3% 🟢

Averaged across 3 specs (azure-arm-resource-manager, azure-core-dataplane, azure-full).
Threshold: changes > ±5% are highlighted.
🟢 Fast · 🟡 Moderate (stages >200ms, rules >10ms) · 🔴 Slow (stages >400ms, rules >20ms)

@markcowl markcowl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should target the final PR at the release/june-2026 branch for hotfix release.

I think we want to consider whether we want this in CommonTypes, or whether we want an Azure.ResourceManager.BaseTypes namespace that we could version separately (and release as an experimental export). I would suggest doing this for now, regardless.

Will sned you my pr later this evening and will try to merge any additional info from this one into mine before we meet on Friday

Comment thread .chronus/changes/add-agent-base-types-common-type-2026-6-9-14-50-0.md Outdated
Comment thread packages/typespec-azure-resource-manager/lib/common-types/agent-base-types.tsp Outdated
Comment thread packages/typespec-azure-resource-manager/lib/common-types/agent-base-types.tsp Outdated
Comment thread packages/typespec-azure-resource-manager/lib/common-types/agent-base-types.tsp Outdated
Comment thread packages/typespec-azure-resource-manager/lib/common-types/agent-base-types.tsp Outdated
vayada and others added 5 commits June 12, 2026 12:45
Resolves the core submodule gitlink conflict: the branch had rewound
core to 212a9eda while upstream advanced it to 5b8f8dc4. Adopt the
upstream pointer since the agent base types work does not touch core.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update the generated base-types/data-types.md to reflect the ResponseStatus
open union, the extracted ConversationReference model, and the ResponseStatus
references on Response.status and ResponseOutputItem.status. Keeps generated
docs in sync so the changed-files CI check passes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lib:azure-resource-manager Issues for @azure-tools/typespec-azure-core library meta:website TypeSpec.io updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants