🚨 Breaking Changes
0. ⚠️ SDK-wide: field names are now camelCase + a serialization layer was added
This release was generated with retainOriginalCasing: false and noSerde: false (both
were the opposite in v0.3.4). Two SDK-wide effects, independent of any API change — and this is
the largest breaking change here:
- All model/response field names changed from
snake_case to camelCase. Every property on
every type is affected — e.g. artifact.ml_repo_id → artifact.mlRepoId,
version.created_at → version.createdAt.
Request-object parameters were already camelCase, so call sites don't change, but every field
read off a returned object must be updated. The wire protocol is unchanged — the new
serialization layer maps camelCase ↔ snake_case.
- A serialization layer was added (
src/serialization/, ~1300 files). Responses are now parsed
through generated schemas (casing mapping + validation) instead of being returned as raw wire JSON.
Every field name in the sections below is shown in the new camelCase form.
1. Client Methods Removed
| Method |
Notes |
client.internal.ml.apply(...) |
removed (returned ApplyMlEntityResponse) |
client.internal.ml.delete(...) |
removed (returned EmptyResponse) |
Only the client.internal.ml sub-client was removed. client.users.* (including
getTeams/getResources/getPermissions), client.internal.users, and
client.internal.aiGateway are all still present.
2. Client Method Parameters Removed
client.teams.list() — the type filter ("team" / "sso-team", typed
TeamsListRequestType) was removed. role and attributes were added (see New Features).
3. Client Parameter Type Changes
| Method |
Param |
Old |
New |
users.updateRoles() |
resourceType |
string |
TrueFoundry.ResourceType |
applications.list() |
applicationType |
string |
TrueFoundry.ApplicationType |
logs.get() |
startTs |
number |
string |
logs.get() |
endTs |
number |
string |
// Before
await client.logs.get({ startTs: 1779262323000000000, endTs: 1779262333000000000, ... });
// After
await client.logs.get({ startTs: "1779262323000000000", endTs: "1779262333000000000", ... });
4. Client Return Type Changes
| Method |
Old Return |
New Return |
clusters.delete() |
ClustersDeleteResponse |
DeleteClusterResponse |
workspaces.delete() |
WorkspacesDeleteResponse |
DeleteWorkspaceResponse |
5. Types Removed
These exported types no longer exist (import / TrueFoundry.<Type> references will break):
| Removed Type |
Notes |
ApplyMlEntityResponse, ApplyMlEntityResponseData, ApplyMlEntityRequest, ApplyMlEntityRequestManifest, DeleteMlEntityRequest, DeleteMlEntityRequestManifest |
internal.ml removed |
BaseArtifactVersionManifest |
|
HttpValidationError, ValidationError, ValidationErrorLocItem |
error models |
LogsFilterQuery, LogsFilterQueryType |
log filtering now a JSON string |
ChatPromptManifestMessagesItem |
renamed → ChatMessageTurn (§6) |
ClustersDeleteResponse, WorkspacesDeleteResponse |
renamed (§6 / §4) |
TeamsListRequestType |
teams.list() type filter removed |
PangeaGuardrailConfig, PangeaGuardrailConfigConfig, PangeaGuardrailConfigOperation, PangeaKeyAuth, PangeaGuardType |
renamed → CrowdStrike AIDR (§6) |
TrueFoundryAgentManifestResponseFormat, TrueFoundryAgentManifestModelParams |
renamed (§6) |
TrueFoundryAgentManifestModelParamsReasoningEffort, TrueFoundryAgentManifestSandbox, TrueFoundryAgentMcpTool |
agent manifest restructured |
6. Types & Enums Renamed
Referencing the old names breaks. Wire values are unchanged unless noted.
| Old Name |
New Name |
ChatPromptManifestMessagesItem |
ChatMessageTurn |
TrueFoundryAgentManifestResponseFormat |
TrueFoundryAgentResponseFormat |
TrueFoundryAgentManifestModelParams |
TrueFoundryAgentModelParams |
ClustersDeleteResponse |
DeleteClusterResponse |
WorkspacesDeleteResponse |
DeleteWorkspaceResponse |
Pangea guardrail → CrowdStrike AIDR (full rebrand):
| Old |
New |
PangeaGuardrailConfig |
CrowdStrikeAidrGuardrailConfig |
PangeaGuardrailConfigConfig |
CrowdStrikeAidrGuardrailConfigConfig |
PangeaGuardrailConfigOperation |
CrowdStrikeAidrGuardrailConfigOperation |
PangeaKeyAuth |
CrowdStrikeAidrKeyAuth |
discriminator "integration/guardrail-config/pangea" |
"integration/guardrail-config/crowdstrike-aidr" |
The Pangea rename is breaking on the wire — persisted configs with
type: "integration/guardrail-config/pangea" will no longer deserialize.
7. Type Fields Removed
| Type |
Removed Fields |
ArtifactVersion, ModelVersion, PromptVersion, InternalArtifactVersion, InternalModelVersion |
versionAlias |
BaseArtifactVersion |
id, fqn, createdAt, updatedAt, createdBySubject, mlRepoId, manifest (now the manifest base: name/metadata/mlRepo/version) |
AgentSkill |
description, tags, examples, inputModes, outputModes (moved to A2AAgentSkill; AgentSkill is now an artifact-style entity) |
TrueFoundryAgentManifest |
instruction, iterationLimit, modelParams, sandbox |
TrueFoundryAgentMcpServer |
deferred, tools |
TrueFoundryAgentSkill |
preloadSkillMd |
UserMetadata |
isPrimarySso |
8. Field Type Changes
Now required (was optional):
| Type |
Field |
Old |
New |
ArtifactManifest |
step |
number | undefined |
number (default 0) |
ModelManifest |
step |
number | undefined |
number (default 0) |
Now optional (was required):
| Type |
Field |
Old |
New |
AzureOpenAiModel |
deploymentType |
AzureOpenAiModelDeploymentType |
... | undefined |
OpenaiProviderAccount |
authData |
OpenaiApiKeyAuth |
OpenaiApiKeyAuth | undefined |
Environment |
priority |
number |
number | undefined |
Referenced type changed:
| Type |
Field |
Old |
New |
Artifact |
type |
ArtifactType |
"artifact" |
Artifact |
latestVersion |
BaseArtifactVersion |
ArtifactVersion |
ChatPromptManifest |
messages |
ChatPromptManifestMessagesItem[] |
ChatMessageTurn[] |
Deployment |
application |
Application |
ApplicationSummary |
BitbucketProviderAccount |
integrations |
BitbucketIntegration[] |
BitbucketIntegrations[] |
PromptSource |
skills |
AgentSkill[] |
A2AAgentSkill[] |
PersonalAccessTokenManifest |
ownedBy |
OwnedBy |
VirtualAccountOwnedBy |
TrueFoundryAgentManifest |
model |
string |
TrueFoundryAgentModel |
TrueFoundryAgentManifest |
responseFormat |
TrueFoundryAgentManifestResponseFormat |
TrueFoundryAgentResponseFormat |
9. Enums Removed
| Removed Enum |
Members it had |
LogsFilterQueryType |
Regex, Substring, IgnoreCaseSubstring |
TeamsListRequestType |
"team", "sso-team" |
TrueFoundryAgentManifestModelParamsReasoningEffort |
None, Minimal, Low, Medium, High |
PangeaGuardType |
TextGuard, Pii |
✨ New Features
New Resource Clients
| Client |
Methods |
client.agents |
list, createOrUpdate, get, delete |
client.agentVersions |
list |
client.runs |
create, get, update, delete, search, getMetricHistory, listMetricHistory, logMetric, logParameter, setTag, deleteTag, logBatch |
New Client Methods
client.teams.listMembers(id, { limit, offset, filter }) → Page<TrueFoundry.TeamSubjectRow>
client.teams.listManagers(id, { limit, offset, filter }) → Page<TrueFoundry.TeamSubjectRow>
client.internal.aiGateway.getBudgetUsage(...)
New Optional Client Parameters
| Method |
New Param |
Type |
workspaces.list(), mlRepos.list(), clusters.list(), clusters.getAddons(), secretGroups.list(), teams.list() |
attributes |
string | string[] |
teams.list() |
role |
"manager" |
artifactVersions.list() |
artifactTypes |
TrueFoundry.ArtifactType[] |
secretGroups.delete() |
forceDelete |
boolean |
personalAccessTokens.create() |
teamName, tokenType |
string, CreatePersonalAccessTokenRequestTokenType |
personalAccessTokens.get() |
teamName |
string |
Notable New Types
- Agents / Runs:
Agent, AgentVersion, Run, RunData, RunInfo, RunParam, RunTag,
MetricCollection, A2AAgentSkill, ChatMessageTurn, and the TrueFoundryAgentConfig
family (compaction / sandbox / context-management / response-format / sub-agents configs),
TrueFoundryAgentModel, TrueFoundryAgentModelParams, TrueFoundryAgentResponseFormat.
- Budget v2:
BudgetV2* family, TeamBudgetConfig, TenantBudgetConfig (+ mode enums).
- New provider integrations: AWS Bedrock Mantle, AWS Claude Platform, Smallest AI, Wafer,
Microsoft Teams (MsTeams*).
- Guardrails:
CrowdStrikeAidrGuardrailConfig (replaces Pangea), TfyMetadataGuardrailConfig.
- Identity:
AgentIdentityManifest/AgentIdentityConfig, IdentityProviderBackedIdentity,
TruefoundryBackedIdentity, JwtTokenType, token-type enums on PAT / virtual-account manifests.
- Snowflake / Flyte task templates:
SnowflakeConfig, `SnowflakeS...