Skip to content

feat!: v2 SDK with shorter type names and forward-compatible enums#176

Closed
andreaonofrei01 wants to merge 1 commit intomainfrom
feat/v2-namespace-migration
Closed

feat!: v2 SDK with shorter type names and forward-compatible enums#176
andreaonofrei01 wants to merge 1 commit intomainfrom
feat/v2-namespace-migration

Conversation

@andreaonofrei01
Copy link
Copy Markdown
Contributor

Summary

Migrate the TypeScript SDK to v2, mirroring the Python client v2 changes.

Changes

  • v2 OpenAPI specs: Switch all three sources (main, Azure, GCP) to :v2 registry tags with x-speakeasy-name-override for shorter type names
  • Speakeasy v2 fix flags: Enable nameOverrideFeb2026, sharedNestedComponentsJan2026, methodSignaturesApr2024, securityFeb2025, forwardCompatibleEnumsByDefault, forwardCompatibleUnionsByDefault: tagged-only, and others
  • Regenerate all SDKs: Main, Azure, and GCP packages regenerated from clean state
  • Publish workflows: Auto-publish triggers moved to v1 branch, workflow_dispatch with confirmation for v2
  • Azure/GCP: Added persistentEdits: enabled: "true" to protect custom sdk.ts files
  • Custom code fixes: Fixed type narrowing in src/extra/realtime/connection.ts for forward-compatible unions
  • Example fix: Removed broken unused AssisantMessage import
  • MIGRATION.md: Documents v1→v2 breaking changes (type renames, forward-compatible enums/unions)
  • README callout: Directs v1 users to the v1 branch

Breaking Changes

  • Type renames (e.g., BatchJobOutBatchJob, AgentCreationRequestCreateAgentRequest)
  • Enums now accept unknown values (forward-compatible)
  • Discriminated unions include handling for unrecognized variants

Related

Test plan

  • Main SDK compiles with zero errors
  • Azure SDK compiles with zero errors
  • GCP SDK compiles with zero errors
  • Forward-compatible enums verified (OpenEnum types)
  • Type renames verified (BatchJob, CreateAgentRequest, etc.)
  • CI passes

- Switch to v2 OpenAPI specs (`:v2` registry tags)
- Enable v2 Speakeasy fix flags (nameOverrideFeb2026, forwardCompatibleEnumsByDefault, etc.)
- Regenerate all three SDKs (main, Azure, GCP) from clean state
- Update publish workflows: auto-publish from v1 branch, manual dispatch for v2
- Add persistentEdits to Azure/GCP gen.yaml to protect custom sdk.ts
- Fix src/extra/realtime/connection.ts type narrowing for forward-compatible unions
- Fix broken unused import in async_function_calling_streaming example
- Add MIGRATION.md documenting v1→v2 breaking changes
- Add README callout directing v1 users to v1 branch

# Conflicts:
#	.speakeasy/gen.lock
#	.speakeasy/gen.yaml
#	.speakeasy/main.out.openapi.yaml
#	.speakeasy/workflow.lock
#	README.md
#	RELEASES.md
#	docs/models/components/agentcreationrequest.md
#	docs/models/components/audience.md
#	docs/models/components/audiocontent.md
#	docs/models/components/audiourlchunk.md
#	docs/models/components/basefielddefinition.md
#	docs/models/components/basetaskstatus.md
#	docs/models/components/chatcompletioneventpreview.md
#	docs/models/components/connector.md
#	docs/models/components/contentchunk.md
#	docs/models/components/conversationrequest.md
#	docs/models/components/conversationresponse.md
#	docs/models/components/conversationsource.md
#	docs/models/components/embeddedresource.md
#	docs/models/components/filevisibility.md
#	docs/models/components/functioncallentry.md
#	docs/models/components/imagecontent.md
#	docs/models/components/judgeclassificationoutput.md
#	docs/models/components/judgeregressionoutput.md
#	docs/models/components/library.md
#	docs/models/components/listdocumentsresponse.md
#	docs/models/components/moderationllmv1action.md
#	docs/models/components/observabilityerrorcode.md
#	docs/models/components/op.md
#	docs/models/components/paginatedresultcampaignpreview.md
#	docs/models/components/paginatedresultjudgepreview.md
#	docs/models/components/processingstatusout.md
#	docs/models/components/processstatus.md
#	docs/models/components/resourcelink.md
#	docs/models/components/resourcevisibility.md
#	docs/models/components/retrievefileout.md
#	docs/models/components/textcontent.md
#	docs/models/components/uploadfileout.md
#	docs/models/operations/agents-api-v1-agents-list-request.md
#	docs/models/operations/connectorcalltoolv1request.md
#	docs/models/operations/connectorupdatev1request.md
#	docs/models/operations/createdatasetrecordv1observabilitydatasetsdatasetidrecordspostrequest.md
#	docs/models/operations/documentupload.md
#	docs/models/operations/getchatcompletioneventsv1observabilitychatcompletioneventssearchpostrequest.md
#	docs/models/operations/getchatcompletionfieldoptionscountsv1observabilitychatcompletionfieldsfieldnameoptionscountspostrequest.md
#	docs/models/operations/judgechatcompletioneventv1observabilitychatcompletioneventseventidlivejudgingpostrequest.md
#	docs/models/operations/judgedatasetrecordv1observabilitydatasetrecordsdatasetrecordidlivejudgingpostrequest.md
#	docs/models/operations/postdatasetrecordsfromcampaignv1observabilitydatasetsdatasetidimportsfromcampaignpostrequest.md
#	docs/models/operations/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpostrequest.md
#	docs/models/operations/postdatasetrecordsfromexplorerv1observabilitydatasetsdatasetidimportsfromexplorerpostrequest.md
#	docs/models/operations/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepostrequest.md
#	docs/models/operations/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpostrequest.md
#	docs/models/operations/updatedatasetrecordpayloadv1observabilitydatasetrecordsdatasetrecordidpayloadputrequest.md
#	docs/models/operations/updatedatasetrecordpropertiesv1observabilitydatasetrecordsdatasetrecordidpropertiesputrequest.md
#	docs/models/operations/updatedatasetv1observabilitydatasetsdatasetidpatchrequest.md
#	docs/models/operations/updatejudgev1observabilityjudgesjudgeidputrequest.md
#	docs/sdks/campaigns/README.md
#	docs/sdks/chatcompletionevents/README.md
#	docs/sdks/connectors/README.md
#	docs/sdks/datasets/README.md
#	docs/sdks/fields/README.md
#	docs/sdks/judges/README.md
#	docs/sdks/records/README.md
#	examples/package-lock.json
#	jsr.json
#	package-lock.json
#	package.json
#	packages/mistralai-azure/.speakeasy/gen.lock
#	packages/mistralai-azure/.speakeasy/gen.yaml
#	packages/mistralai-azure/package-lock.json
#	packages/mistralai-azure/src/lib/config.ts
#	packages/mistralai-azure/src/models/components/index.ts
#	packages/mistralai-gcp/.speakeasy/gen.lock
#	packages/mistralai-gcp/.speakeasy/gen.yaml
#	packages/mistralai-gcp/src/lib/config.ts
#	packages/mistralai-gcp/src/models/components/index.ts
#	src/funcs/betaConnectorsCallTool.ts
#	src/funcs/betaConnectorsCreate.ts
#	src/funcs/betaConnectorsUpdate.ts
#	src/funcs/betaObservabilityCampaignsCreate.ts
#	src/funcs/betaObservabilityCampaignsFetch.ts
#	src/funcs/betaObservabilityCampaignsFetchStatus.ts
#	src/funcs/betaObservabilityCampaignsList.ts
#	src/funcs/betaObservabilityCampaignsListEvents.ts
#	src/funcs/betaObservabilityChatCompletionEventsFetchSimilarEvents.ts
#	src/funcs/betaObservabilityChatCompletionEventsFieldsFetchOptionCounts.ts
#	src/funcs/betaObservabilityChatCompletionEventsFieldsFetchOptions.ts
#	src/funcs/betaObservabilityChatCompletionEventsFieldsList.ts
#	src/funcs/betaObservabilityChatCompletionEventsJudge.ts
#	src/funcs/betaObservabilityChatCompletionEventsSearch.ts
#	src/funcs/betaObservabilityChatCompletionEventsSearchIds.ts
#	src/funcs/betaObservabilityDatasetsCreate.ts
#	src/funcs/betaObservabilityDatasetsCreateRecord.ts
#	src/funcs/betaObservabilityDatasetsExportToJsonl.ts
#	src/funcs/betaObservabilityDatasetsImportFromCampaign.ts
#	src/funcs/betaObservabilityDatasetsImportFromDatasetRecords.ts
#	src/funcs/betaObservabilityDatasetsImportFromExplorer.ts
#	src/funcs/betaObservabilityDatasetsImportFromFile.ts
#	src/funcs/betaObservabilityDatasetsImportFromPlayground.ts
#	src/funcs/betaObservabilityDatasetsList.ts
#	src/funcs/betaObservabilityDatasetsListRecords.ts
#	src/funcs/betaObservabilityDatasetsListTasks.ts
#	src/funcs/betaObservabilityDatasetsRecordsBulkDelete.ts
#	src/funcs/betaObservabilityDatasetsRecordsJudge.ts
#	src/funcs/betaObservabilityDatasetsRecordsUpdatePayload.ts
#	src/funcs/betaObservabilityDatasetsRecordsUpdateProperties.ts
#	src/funcs/betaObservabilityDatasetsUpdate.ts
#	src/funcs/betaObservabilityJudgesCreate.ts
#	src/funcs/betaObservabilityJudgesFetch.ts
#	src/funcs/betaObservabilityJudgesList.ts
#	src/funcs/betaObservabilityJudgesUpdate.ts
#	src/lib/config.ts
#	src/models/components/agentcreationrequest.ts
#	src/models/components/agentupdaterequest.ts
#	src/models/components/annotations.ts
#	src/models/components/archivemodelresponse.ts
#	src/models/components/audiocontent.ts
#	src/models/components/audiourlchunk.ts
#	src/models/components/basefielddefinition.ts
#	src/models/components/basetaskstatus.ts
#	src/models/components/batchjob.ts
#	src/models/components/batchjobsout.ts
#	src/models/components/blobresourcecontents.ts
#	src/models/components/chatcompletioneventpreview.ts
#	src/models/components/checkpoint.ts
#	src/models/components/classifierdetailedjobout.ts
#	src/models/components/classifierfinetunedmodel.ts
#	src/models/components/classifierfinetuningjob.ts
#	src/models/components/classifiertarget.ts
#	src/models/components/classifiertargetresult.ts
#	src/models/components/classifiertrainingparametersin.ts
#	src/models/components/completiondetailedjobout.ts
#	src/models/components/completionfinetunedmodel.ts
#	src/models/components/completionfinetuningjob.ts
#	src/models/components/completiontrainingparametersin.ts
#	src/models/components/connector.ts
#	src/models/components/contentchunk.ts
#	src/models/components/conversationpayload.ts
#	src/models/components/conversationresponse.ts
#	src/models/components/conversationsource.ts
#	src/models/components/createbatchjobrequest.ts
#	src/models/components/createfileresponse.ts
#	src/models/components/createfinetuningjobrequest.ts
#	src/models/components/creategithubrepositoryrequest.ts
#	src/models/components/createlibraryrequest.ts
#	src/models/components/deletefileresponse.ts
#	src/models/components/deletemodelresponse.ts
#	src/models/components/document.ts
#	src/models/components/embeddedresource.ts
#	src/models/components/event.ts
#	src/models/components/executionconfig.ts
#	src/models/components/filevisibility.ts
#	src/models/components/filtercondition.ts
#	src/models/components/finetunedmodelcapabilities.ts
#	src/models/components/getfileresponse.ts
#	src/models/components/getsignedurlresponse.ts
#	src/models/components/githubrepository.ts
#	src/models/components/imagecontent.ts
#	src/models/components/index.ts
#	src/models/components/jobmetadata.ts
#	src/models/components/jobsout.ts
#	src/models/components/judgeclassificationoutput.ts
#	src/models/components/judgeregressionoutput.ts
#	src/models/components/legacyjobmetadata.ts
#	src/models/components/libraryout.ts
#	src/models/components/listdocumentsresponse.ts
#	src/models/components/listfilesresponse.ts
#	src/models/components/listlibraryout.ts
#	src/models/components/listsharingout.ts
#	src/models/components/mcpservericon.ts
#	src/models/components/metric.ts
#	src/models/components/moderationllmv1action.ts
#	src/models/components/observabilityerrorcode.ts
#	src/models/components/paginatedresultcampaignpreview.ts
#	src/models/components/paginatedresultjudgepreview.ts
#	src/models/components/processingstatus.ts
#	src/models/components/processstatus.ts
#	src/models/components/resourcelink.ts
#	src/models/components/resourcevisibility.ts
#	src/models/components/sharingout.ts
#	src/models/components/sharingrequest.ts
#	src/models/components/textcontent.ts
#	src/models/components/textresourcecontents.ts
#	src/models/components/unarchivemodelresponse.ts
#	src/models/components/updatedatasetrequest.ts
#	src/models/components/updatedocumentrequest.ts
#	src/models/components/updatemodelrequest.ts
#	src/models/components/wandbintegrationresult.ts
#	src/models/operations/connectorcalltoolv1.ts
#	src/models/operations/connectorupdatev1.ts
#	src/models/operations/createdatasetrecordv1observabilitydatasetsdatasetidrecordspost.ts
#	src/models/operations/filesapiroutesuploadfile.ts
#	src/models/operations/getchatcompletioneventsv1observabilitychatcompletioneventssearchpost.ts
#	src/models/operations/getchatcompletionfieldoptionscountsv1observabilitychatcompletionfieldsfieldnameoptionscountspost.ts
#	src/models/operations/judgechatcompletioneventv1observabilitychatcompletioneventseventidlivejudgingpost.ts
#	src/models/operations/judgedatasetrecordv1observabilitydatasetrecordsdatasetrecordidlivejudgingpost.ts
#	src/models/operations/postdatasetrecordsfromcampaignv1observabilitydatasetsdatasetidimportsfromcampaignpost.ts
#	src/models/operations/postdatasetrecordsfromdatasetv1observabilitydatasetsdatasetidimportsfromdatasetpost.ts
#	src/models/operations/postdatasetrecordsfromexplorerv1observabilitydatasetsdatasetidimportsfromexplorerpost.ts
#	src/models/operations/postdatasetrecordsfromfilev1observabilitydatasetsdatasetidimportsfromfilepost.ts
#	src/models/operations/postdatasetrecordsfromplaygroundv1observabilitydatasetsdatasetidimportsfromplaygroundpost.ts
#	src/models/operations/updatedatasetrecordpayloadv1observabilitydatasetrecordsdatasetrecordidpayloadput.ts
#	src/models/operations/updatedatasetrecordpropertiesv1observabilitydatasetrecordsdatasetrecordidpropertiesput.ts
#	src/models/operations/updatedatasetv1observabilitydatasetsdatasetidpatch.ts
#	src/models/operations/updatejudgev1observabilityjudgesjudgeidput.ts
#	src/sdk/batchjobs.ts
#	src/sdk/beta.ts
#	src/sdk/betaagents.ts
#	src/sdk/campaigns.ts
#	src/sdk/chatcompletionevents.ts
#	src/sdk/connectors.ts
#	src/sdk/datasets.ts
#	src/sdk/fields.ts
#	src/sdk/finetuningjobs.ts
#	src/sdk/judges.ts
#	src/sdk/records.ts
@andreaonofrei01 andreaonofrei01 force-pushed the feat/v2-namespace-migration branch from ae84f8d to 92e9155 Compare March 10, 2026 15:10
@andreaonofrei01 andreaonofrei01 marked this pull request as draft March 10, 2026 15:12
@andreaonofrei01
Copy link
Copy Markdown
Contributor Author

not having persistentEdits and removing the genlock killed custom code. new version solving this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant