@truefoundry/ai-gateway-sdk 0.0.2 → 0.0.4-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -137,9 +137,10 @@ export type AgentSkillManifest = BaseArtifactVersion & {
137
137
  ml_repo: string;
138
138
  };
139
139
  /**
140
+ * Service, job, workflow, and cluster deployment alerts. Teams is not supported on these alerts.
140
141
  * +discriminator=type
141
142
  */
142
- export type NotificationTargetForAlertRule = Email | SlackWebhook | SlackBot | PagerDuty | MSTeamsWebhook;
143
+ export type NotificationTargetForAlertRule = Email | SlackWebhook | SlackBot | PagerDuty;
143
144
  export type AlertSeverity = 'warning' | 'critical';
144
145
  /**
145
146
  * +label=All Data
@@ -278,7 +279,7 @@ export type MimeType = 'text/plain' | 'application/json' | 'image/png' | 'image/
278
279
  /**
279
280
  * +discriminator=type
280
281
  */
281
- export type AwsIntegrations = AwsEcr | AwsS3 | AwsParameterStore | AwsSecretsManager | AwsEksIntegration;
282
+ export type AwsIntegrations = AwsEcr | AwsS3 | AwsParameterStore | AwsSecretsManager | AwsEksIntegration | AwsAgentCoreRuntime | AwsAgentCoreHarness;
282
283
  /**
283
284
  * +label=Assumed Role Based
284
285
  */
@@ -294,7 +295,7 @@ export type AzureContentSafetyCategory = 'Hate' | 'SelfHarm' | 'Sexual' | 'Viole
294
295
  /**
295
296
  * +discriminator=type
296
297
  */
297
- export type AzureIntegrations = AzureAksIntegration | AzureContainerRegistry | AzureBlobStorage | AzureVault | AzureReposIntegration;
298
+ export type AzureIntegrations = AzureAksIntegration | AzureContainerRegistry | AzureBlobStorage | AzureVault | AzureReposIntegration | MicrosoftCopilotStudio | MicrosoftFoundry;
298
299
  export type AzurePIICategory = '*' | 'ABARoutingNumber' | 'Address' | 'Age' | 'ARNationalIdentityNumber' | 'AUBankAccountNumber' | 'AUDriversLicenseNumber' | 'AUMedicalAccountNumber' | 'AUPassportNumber' | 'AUTaxFileNumber' | 'AUBusinessNumber' | 'AUCompanyNumber' | 'ATIdentityCard' | 'ATTaxIdentificationNumber' | 'ATValueAddedTaxNumber' | 'AzureDocumentDBAuthKey' | 'AzureIAASDatabaseConnectionAndSQLString' | 'AzureIoTConnectionString' | 'AzurePublishSettingPassword' | 'AzureRedisCacheString' | 'AzureSAS' | 'AzureServiceBusString' | 'AzureStorageAccountKey' | 'AzureStorageAccountGeneric' | 'BankAccountNumber' | 'BENationalNumber' | 'BEValueAddedTaxNumber' | 'BRCPFNumber' | 'BRLegalEntityNumber' | 'BRNationalIDRG' | 'BGUniformCivilNumber' | 'CABankAccountNumber' | 'CADriversLicenseNumber' | 'CAHealthServiceNumber' | 'CAPassportNumber' | 'CAPersonalHealthID' | 'CASocialInsuranceNumber' | 'CLIdentityCardNumber' | 'CNResidentIdentityCardNumber' | 'CreditCardNumber' | 'HRIdentityCardNumber' | 'HRNationalIDCardNumber' | 'HRPersonalIdentificationNumber' | 'CYIdentityCard' | 'CYTaxIdentificationNumber' | 'CZPersonalIdentityNumber' | 'Date' | 'DateTime' | 'DKPersonalIdentificationNumber' | 'DEANumber' | 'Email' | 'EEPersonalIdentificationCode' | 'EUDebitCardNumber' | 'EUDriversLicenseNumber' | 'EUGPSCoordinates' | 'EUNationalIdentificationNumber' | 'EUPassportNumber' | 'EUSocialSecurityNumber' | 'EUTaxIdentificationNumber' | 'FIEuropeanHealthNumber' | 'FINationalID' | 'FIPassportNumber' | 'FRDriversLicenseNumber' | 'FRHealthInsuranceNumber' | 'FRNationalID' | 'FRPassportNumber' | 'FRSocialSecurityNumber' | 'FRTaxIdentificationNumber' | 'FRValueAddedTaxNumber' | 'DEDriversLicenseNumber' | 'DEPassportNumber' | 'DEIdentityCardNumber' | 'DETaxIdentificationNumber' | 'DEValueAddedTaxNumber' | 'GRNationalIDCard' | 'GRTaxIdentificationNumber' | 'HKIdentityCardNumber' | 'HUValueAddedTaxNumber' | 'HUPersonalIdentificationNumber' | 'HUTaxIdentificationNumber' | 'INPermanentAccountNumber' | 'INUniqueIdentificationNumber' | 'IDIdentityCardNumber' | 'InternationalBankingAccountNumber' | 'IPAddress' | 'IEPersonalPublicServiceNumber' | 'ILBankAccountNumber' | 'ILNationalID' | 'ITDriversLicenseNumber' | 'ITFiscalCode' | 'ITValueAddedTaxNumber' | 'JPBankAccountNumber' | 'JPDriversLicenseNumber' | 'JPPassportNumber' | 'JPResidentRegistrationNumber' | 'JPSocialInsuranceNumber' | 'JPMyNumberCorporate' | 'JPMyNumberPersonal' | 'JPResidenceCardNumber' | 'LVPersonalCode' | 'LTPersonalCode' | 'LUNationalIdentificationNumberNatural' | 'LUNationalIdentificationNumberNonNatural' | 'MYIdentityCardNumber' | 'MTIdentityCardNumber' | 'MTTaxIDNumber' | 'NLCitizensServiceNumber' | 'NLTaxIdentificationNumber' | 'NLValueAddedTaxNumber' | 'NZBankAccountNumber' | 'NZDriversLicenseNumber' | 'NZInlandRevenueNumber' | 'NZMinistryOfHealthNumber' | 'NZSocialWelfareNumber' | 'NOIdentityNumber' | 'Organization' | 'Person' | 'PersonType' | 'PHUnifiedMultiPurposeIDNumber' | 'PhoneNumber' | 'PLIdentityCard' | 'PLNationalID' | 'PLPassportNumber' | 'PLTaxIdentificationNumber' | 'PLREGONNumber' | 'PTCitizenCardNumber' | 'PTTaxIdentificationNumber' | 'ROPersonalNumericalCode' | 'RUPassportNumberDomestic' | 'RUPassportNumberInternational' | 'SANationalID' | 'SGNationalRegistrationIdentityCardNumber' | 'SKPersonalNumber' | 'SITaxIdentificationNumber' | 'SIUniqueMasterCitizenNumber' | 'ZAIdentificationNumber' | 'KRResidentRegistrationNumber' | 'ESDNI' | 'ESSocialSecurityNumber' | 'ESTaxIdentificationNumber' | 'AzureSQLConnectionString' | 'SENationalID' | 'SEPassportNumber' | 'SETaxIdentificationNumber' | 'SWIFTCode' | 'CHSocialSecurityNumber' | 'TWNationalID' | 'TWPassportNumber' | 'TWResidentCertificate' | 'THPopulationIdentificationCode' | 'TRNationalIdentificationNumber' | 'UKDriversLicenseNumber' | 'UKElectoralRollNumber' | 'UKNationalHealthNumber' | 'UKNationalInsuranceNumber' | 'UKUniqueTaxpayerNumber' | 'USUKPassportNumber' | 'USBankAccountNumber' | 'USDriversLicenseNumber' | 'USIndividualTaxpayerIdentification' | 'USSocialSecurityNumber' | 'URL';
299
300
  /**
300
301
  * +discriminator=type
@@ -695,18 +696,18 @@ export type OPAAuth = OPAHeaderAuth | OPABearerAuth;
695
696
  * +discriminator=type
696
697
  */
697
698
  export type HeaderRoutingConfig = WeightBasedLoadBalancing | LatencyBasedLoadBalancing | PriorityBasedLoadBalancing | ComplexityBasedLoadBalancing;
698
- export type IdentityProviders = 'custom' | 'okta' | 'azure-entra-id' | 'auth0';
699
+ export type IdentityProviders = 'custom' | 'okta' | 'azure-entra-id' | 'kubernetes' | 'github' | 'aws' | 'gcp' | 'auth0';
699
700
  /**
700
701
  * +usage=Name of the method used for inference
701
702
  * +label=Inference Method Name
702
703
  */
703
704
  export type InferMethodName = 'predict' | 'predict_proba';
704
- export type InfraProviderAccount = AwsProviderAccount | AzureProviderAccount | GcpProviderAccount | DockerhubProviderAccount | BitbucketProviderAccount | CustomProviderAccount | GithubProviderAccount | GitlabProviderAccount | JfrogProviderAccount | TTLProviderAccount | TrueFoundryProviderAccount | QuayProviderAccount | SlackProviderAccount | WebhookProviderAccount | PagerDutyProviderAccount | MSTeamsProviderAccount | HashicorpProviderAccount;
705
+ export type InfraProviderAccount = AwsProviderAccount | SnowflakeProviderAccount | AzureProviderAccount | GcpProviderAccount | DockerhubProviderAccount | BitbucketProviderAccount | CustomProviderAccount | GithubProviderAccount | GitlabProviderAccount | JfrogProviderAccount | TTLProviderAccount | TrueFoundryProviderAccount | QuayProviderAccount | SlackProviderAccount | WebhookProviderAccount | PagerDutyProviderAccount | MSTeamsProviderAccount | HashicorpProviderAccount;
705
706
  /**
706
707
  * +discriminator=type
707
708
  */
708
709
  export type SlackIntegrations = SlackWebhookIntegration | SlackBotIntegration;
709
- export type Input = AccountManifest | ClusterManifest | VirtualAccountManifest | PersonalAccessTokenManifest | WorkspaceManifest | ProviderIntegrations | Service | AsyncService | Workflow | Job | SparkJob | Helm | Volume | Notebook | SparkNotebook | Codeserver | SSHServer | RStudio | ApplicationSet | Intercept | MCPServerManifest | MLRepoManifest | ModelManifest | ArtifactManifest | DataDirectoryManifest | GatewayConfig | GatewayPolicyManifest | CacheConfig | HeaderRoutingConfig | TeamManifest | EnvironmentManifest | PolicyManifest | RoleManifest | RoleBindingManifest | AlertConfig | TracingProjectManifest | TracingApplicationManifest | ProviderAccounts | ChatPromptManifest | AgentSkillManifest | AWSTerraformConfig | GCPTerraformConfig | AzureTerraformConfig | GenericTerraformConfig | CommonToolsSettings | AIFeaturesSettings | SSOSettings | SecuritySettings | TracingProjectsControlPlaneStorage | FeaturesSettings | ThemeSettings | ProvisioningSettings | LegacyAgentManifest | AgentAppManifest | GatewayInstallationManifest | SecretGroupManifest | IdentityProviderManifest | AgentIdentityManifest | OidcClientManifest | AgentManifest | ModelConfig | MCPUserAuthInput | MCPUserAuthInputV2 | AgentManifestV2 | AgentChannelManifest;
710
+ export type Input = AccountManifest | ClusterManifest | VirtualAccountManifest | PersonalAccessTokenManifest | WorkspaceManifest | ProviderIntegrations | Service | AsyncService | Workflow | Job | SparkJob | Helm | Volume | Notebook | SparkNotebook | Codeserver | SSHServer | RStudio | ApplicationSet | Intercept | MCPServerManifest | MLRepoManifest | ModelManifest | ArtifactManifest | DataDirectoryManifest | GatewayConfig | GatewayPolicyManifest | CacheConfig | HeaderRoutingConfig | TeamManifest | EnvironmentManifest | PolicyManifest | RoleManifest | RoleBindingManifest | AlertConfig | TracingProjectManifest | TracingApplicationManifest | ProviderAccounts | ChatPromptManifest | AgentSkillManifest | AWSTerraformConfig | GCPTerraformConfig | AzureTerraformConfig | GenericTerraformConfig | CommonToolsSettings | AIFeaturesSettings | SSOSettings | SecuritySettings | TracingProjectsControlPlaneStorage | FeaturesSettings | ThemeSettings | ProvisioningSettings | AgentAppManifest | GatewayInstallationManifest | SecretGroupManifest | IdentityProviderManifest | AgentIdentityManifest | OidcClientManifest | ModelConfig | MCPUserAuthInput | MCPUserAuthInputV2 | AgentManifestV2 | AgentChannelManifest;
710
711
  /**
711
712
  * +label=Sync to Secret Manager
712
713
  * +sort=6
@@ -715,7 +716,7 @@ export type Input = AccountManifest | ClusterManifest | VirtualAccountManifest |
715
716
  * +discriminator=type
716
717
  */
717
718
  export type SecretStoreConfig = SecretStoreIntegrationConfig | TfySecretsConfig;
718
- export type ProviderIntegrations = AwsIntegrations | GcpIntegrations | AzureIntegrations | DockerhubIntegrations | CustomIntegrations | JFrogIntegrations | TTLIntegrations | TrueFoundryIntegrations | QuayIntegrations | CohereIntegrations | AI21Integrations | AnthropicIntegrations | AnyscaleIntegrations | DeepinfraIntegrations | GroqIntegrations | MistralAIIntegrations | PerplexityIntegrations | TogetherAIIntegrations | NomicIntegrations | PalmIntegrations | OllamaIntegrations | OpenAIIntegrations | SlackIntegrations | WebhookIntegrations | XAIIntegrations | BasetenIntegrations | DatabricksIntegrations | BedrockModel | VertexModel | GeminiModel | AzureOpenAIModel | AzureFoundryModel | MicrosoftFoundryModel | ClouderaIntegrations | PagerDutyIntegration | MSTeamsWebhookIntegration | SelfHostedModel | OpenRouterIntegrations | SambaNovaIntegrations | SagemakerIntegrations | CerebrasIntegrations | WaferIntegrations | TypeSafeIntegrations | HashicorpIntegrations | SnowflakeCortexIntegrations | ElevenLabsIntegrations | DeepgramIntegrations | CartesiaIntegrations | SmallestAiIntegrations | AWSClaudePlatformIntegrations | BedrockMantleModel | CustomEndpointIntegrations | TrueFoundryModelsIntegrations;
719
+ export type ProviderIntegrations = AwsIntegrations | SnowflakeIntegrations | GcpIntegrations | AzureIntegrations | DockerhubIntegrations | CustomIntegrations | JFrogIntegrations | TTLIntegrations | TrueFoundryIntegrations | QuayIntegrations | CohereIntegrations | AI21Integrations | AnthropicIntegrations | AnyscaleIntegrations | DeepinfraIntegrations | GroqIntegrations | MistralAIIntegrations | PerplexityIntegrations | TogetherAIIntegrations | NomicIntegrations | PalmIntegrations | OllamaIntegrations | OpenAIIntegrations | SlackIntegrations | WebhookIntegrations | XAIIntegrations | BasetenIntegrations | DatabricksIntegrations | BedrockModel | VertexModel | GeminiModel | AzureOpenAIModel | AzureFoundryModel | MicrosoftFoundryModel | ClouderaIntegrations | PagerDutyIntegration | MSTeamsWebhookIntegration | SelfHostedModel | OpenRouterIntegrations | SambaNovaIntegrations | SagemakerIntegrations | CerebrasIntegrations | WaferIntegrations | TypeSafeIntegrations | HashicorpIntegrations | SnowflakeCortexIntegrations | ElevenLabsIntegrations | DeepgramIntegrations | CartesiaIntegrations | SmallestAiIntegrations | AWSClaudePlatformIntegrations | BedrockMantleModel | CustomEndpointIntegrations | TrueFoundryModelsIntegrations;
719
720
  export type SelfHostedModelCostMetric = PerThousandTokensCostMetric | PerThousandEmbeddingTokensCostMetric | PerMillionCharactersCostMetric | PerMinuteOfAudioCostMetric | OCRCostMetric | PublicCostMetric;
720
721
  /**
721
722
  * +label=Driver Config
@@ -1383,6 +1384,41 @@ export interface OwnedBy {
1383
1384
  */
1384
1385
  account: string;
1385
1386
  }
1387
+ /**
1388
+ * +label=AI Features Models
1389
+ * +usage=Gateway model to use for each task complexity tier. AI features route each
1390
+ * request to the model matching the estimated difficulty of the task, trading off cost,
1391
+ * latency and quality. Each value is a Gateway model FQN in the form provider/model.
1392
+ */
1393
+ export interface AIFeaturesModels {
1394
+ /**
1395
+ * +label=Simple Tasks
1396
+ * +usage=Fast, low-cost model for high-volume, well-defined tasks like classification, extraction, formatting and short summaries.
1397
+ * +sort=1
1398
+ * +uiType=IntegrationSelect
1399
+ * +uiProps={"integrationType":"model","descriptionInline":true,"valuePattern":"${providerAccount.name}/${manifest.name}"}
1400
+ * +message=Select a Gateway model for simple tasks
1401
+ */
1402
+ simple: string;
1403
+ /**
1404
+ * +label=Medium Tasks
1405
+ * +usage=Balanced mid-tier model for standard tasks like general Q&A, structured output.
1406
+ * +sort=2
1407
+ * +uiType=IntegrationSelect
1408
+ * +uiProps={"integrationType":"model","descriptionInline":true,"valuePattern":"${providerAccount.name}/${manifest.name}"}
1409
+ * +message=Select a Gateway model for medium tasks
1410
+ */
1411
+ medium: string;
1412
+ /**
1413
+ * +label=Complex Tasks
1414
+ * +usage=Most capable model for demanding tasks like multi-step reasoning, code generation and nuanced analysis.
1415
+ * +sort=3
1416
+ * +uiType=IntegrationSelect
1417
+ * +uiProps={"integrationType":"model","descriptionInline":true,"valuePattern":"${providerAccount.name}/${manifest.name}"}
1418
+ * +message=Select a Gateway model for complex tasks
1419
+ */
1420
+ complex: string;
1421
+ }
1386
1422
  /**
1387
1423
  * +docs=Describes the configuration for TrueFoundry AI features
1388
1424
  * +label=AI Features Settings
@@ -1401,11 +1437,12 @@ export interface AIFeaturesSettings {
1401
1437
  enabled: boolean;
1402
1438
  /**
1403
1439
  * +label=AI Provider
1404
- * +usage=AI provider to use for AI features
1405
- * When TrueFoundry is selected, TrueFoundry will manage and provide the AI models for the features.
1406
- * +uiProps={"disableEdit":true}
1440
+ * +usage=AI provider to use for AI features.
1441
+ * TrueFoundry manages models on SaaS. Self-Managed uses your gateway models.
1442
+ * +sort=2
1407
1443
  */
1408
- ai_provider: 'truefoundry';
1444
+ ai_provider: 'truefoundry' | 'self-managed';
1445
+ models?: AIFeaturesModels;
1409
1446
  }
1410
1447
  /**
1411
1448
  * +docs=Describes the configuration for the input AMQP worker
@@ -2650,7 +2687,7 @@ export interface SlackBot {
2650
2687
  /**
2651
2688
  * +label=Slack Channel Names
2652
2689
  * +usage=List of channels to send messages to.
2653
- * +message=3 to 81 lower case characters long alphanumeric word, may contain - or _ in between, must start with #
2690
+ * +message=2 to 80 lower case characters long alphanumeric word, may contain - or _ in between, optional leading #
2654
2691
  * +sort=665
2655
2692
  */
2656
2693
  channels: string[];
@@ -3476,6 +3513,13 @@ export interface AgentManifestV2 {
3476
3513
  * +message=2 to 64 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
3477
3514
  */
3478
3515
  name: string;
3516
+ /**
3517
+ * +label=Display Name
3518
+ * +usage=A human-readable label for the Agent in the UI. If omitted, the agent name is shown.
3519
+ * +message=1 to 128 characters long
3520
+ * +sort=105
3521
+ */
3522
+ display_name?: string;
3479
3523
  /**
3480
3524
  * +label=Description
3481
3525
  * +usage=A short note on what this agent does — shown in the registry list and audit trail.
@@ -3483,6 +3527,14 @@ export interface AgentManifestV2 {
3483
3527
  * +uiType=TextArea
3484
3528
  */
3485
3529
  description: string;
3530
+ source?: RemoteAgentSource;
3531
+ /**
3532
+ * +label=State
3533
+ * +usage=Lifecycle state of the agent. Active: managed and available for use. Unmanaged: imported from an external registry for governance (not fully managed yet). Inactive: disabled and cannot be used or invoked.
3534
+ * +sort=116
3535
+ * +uiType=Select
3536
+ */
3537
+ state?: 'active' | 'unmanaged' | 'inactive';
3486
3538
  identity: RemoteAgentV2AgentIdentity;
3487
3539
  proxy_via_gateway: RemoteAgentProxyViaGatewayConfig;
3488
3540
  /**
@@ -3501,6 +3553,51 @@ export interface AgentManifestV2 {
3501
3553
  */
3502
3554
  tags?: {};
3503
3555
  }
3556
+ /**
3557
+ * +label=Source
3558
+ * +usage=Where the agent originated from.
3559
+ */
3560
+ export interface RemoteAgentSource {
3561
+ /**
3562
+ * +label=Type
3563
+ * +usage=Where the agent originated from.
3564
+ * +sort=100
3565
+ * +uiType=Select
3566
+ */
3567
+ type: 'trueforge' | 'aws-agentcore-harness' | 'aws-agentcore-runtime' | 'microsoft-foundry' | 'microsoft-copilot-studio';
3568
+ /**
3569
+ * +label=Provider Integration FQN
3570
+ * +usage=FQN of the provider integration used by this agent source.
3571
+ * +sort=250
3572
+ * +uiType=IntegrationSelect
3573
+ * +uiProps={"integrationType":"agent-registry"}
3574
+ */
3575
+ provider_integration_fqn?: string;
3576
+ /**
3577
+ * +label=External Name
3578
+ * +usage=Name of the agent in the external source system.
3579
+ * +sort=300
3580
+ */
3581
+ external_name?: string;
3582
+ /**
3583
+ * +label=External ID
3584
+ * +usage=ID of the agent in the external source system.
3585
+ * +sort=310
3586
+ */
3587
+ external_id?: string;
3588
+ /**
3589
+ * +label=Entra Agent Identity ID
3590
+ * +usage=Entra agent identity object ID (AgentIdentityId).
3591
+ * +sort=400
3592
+ */
3593
+ entra_agent_identity_id?: string;
3594
+ /**
3595
+ * +label=Entra Blueprint ID
3596
+ * +usage=Entra Agent Identity Blueprint ID (AgentIdentityBlueprintId).
3597
+ * +sort=410
3598
+ */
3599
+ entra_blueprint_id?: string;
3600
+ }
3504
3601
  /**
3505
3602
  * +label=TrueFoundry-backed
3506
3603
  * +usage=We issue and sign the token. Simplest option for agents you build and run yourself.
@@ -6004,7 +6101,7 @@ export interface JobAlert {
6004
6101
  * +sort=665
6005
6102
  */
6006
6103
  to_emails?: string[];
6007
- notification_target?: NotificationTarget;
6104
+ notification_target?: NotificationTargetForAlertRule;
6008
6105
  /**
6009
6106
  * +label=On Start
6010
6107
  * +usage=Send an alert when the job starts
@@ -6339,6 +6436,106 @@ export interface AutoRotate {
6339
6436
  */
6340
6437
  grace_period: number;
6341
6438
  }
6439
+ /**
6440
+ * +label=AWS AgentCore Harness
6441
+ * +icon=aws-agentcore-harness
6442
+ * +usage=Import agents from Amazon Bedrock AgentCore harness into the TrueFoundry agent registry.
6443
+ */
6444
+ export interface AwsAgentCoreHarness {
6445
+ /**
6446
+ * +value=integration/agent-registry/aws/agentcore-harness
6447
+ */
6448
+ type: 'integration/agent-registry/aws/agentcore-harness';
6449
+ /**
6450
+ * +label=Display Name
6451
+ * +usage=The name of the integration that will be displayed in the TrueFoundry UI.
6452
+ * +sort=100
6453
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
6454
+ */
6455
+ name: string;
6456
+ region: AWSRegion;
6457
+ syncSchedule?: CronSyncSchedule;
6458
+ /**
6459
+ * +label=Auth Data
6460
+ * +usage=Custom authentication data for the integration.
6461
+ * +sort=300
6462
+ * +discriminator=type
6463
+ */
6464
+ auth_data?: AwsAccessKeyBasedAuth | AwsAssumedRoleBasedAuth;
6465
+ /**
6466
+ * +label=Access Control
6467
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
6468
+ * +sort=600
6469
+ * +uiType=AuthorizedSubjects
6470
+ */
6471
+ authorized_subjects?: string[];
6472
+ }
6473
+ /**
6474
+ * +label=Cron Sync Schedule
6475
+ */
6476
+ export interface CronSyncSchedule {
6477
+ /**
6478
+ * +value=cron
6479
+ */
6480
+ type: 'cron';
6481
+ /**
6482
+ * +label=Cron Expression
6483
+ * +usage=Cron expression for when to run the sync. Minute cannot be configured.
6484
+ * +uiType=CronInput
6485
+ * +uiProps={"disableMinute": true, "hideTimezonePicker": true}
6486
+ * ```
6487
+ * * * * * *
6488
+ * | | | |
6489
+ * | | | |___ day of week (0-6) (Sunday is 0)
6490
+ * | | |_____ month (1-12)
6491
+ * | |_______ day of month (1-31)
6492
+ * |_________ hour (0-23)
6493
+ * ```
6494
+ * +message=Sync schedule must not specify a minute.
6495
+ */
6496
+ expression: string;
6497
+ /**
6498
+ * +label=Timezone
6499
+ * +uiType=TimezoneSelect
6500
+ * +usage=Timezone against which the cron schedule will be calculated, e.g. "Asia/Tokyo". Default is UTC.
6501
+ * https://docs.truefoundry.com/docs/list-of-supported-timezones
6502
+ */
6503
+ timezone?: string;
6504
+ }
6505
+ /**
6506
+ * +label=AWS AgentCore Runtime
6507
+ * +icon=aws-agentcore-runtime
6508
+ * +usage=Import agents from Amazon Bedrock AgentCore runtime into the TrueFoundry agent registry.
6509
+ */
6510
+ export interface AwsAgentCoreRuntime {
6511
+ /**
6512
+ * +value=integration/agent-registry/aws/agentcore-runtime
6513
+ */
6514
+ type: 'integration/agent-registry/aws/agentcore-runtime';
6515
+ /**
6516
+ * +label=Display Name
6517
+ * +usage=The name of the integration that will be displayed in the TrueFoundry UI.
6518
+ * +sort=100
6519
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
6520
+ */
6521
+ name: string;
6522
+ region: AWSRegion;
6523
+ syncSchedule?: CronSyncSchedule;
6524
+ /**
6525
+ * +label=Auth Data
6526
+ * +usage=Custom authentication data for the integration.
6527
+ * +sort=300
6528
+ * +discriminator=type
6529
+ */
6530
+ auth_data?: AwsAccessKeyBasedAuth | AwsAssumedRoleBasedAuth;
6531
+ /**
6532
+ * +label=Access Control
6533
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
6534
+ * +sort=600
6535
+ * +uiType=AuthorizedSubjects
6536
+ */
6537
+ authorized_subjects?: string[];
6538
+ }
6342
6539
  /**
6343
6540
  * +label=Bedrock Mantle Model
6344
6541
  * +icon=aws-bedrock
@@ -7758,6 +7955,72 @@ export interface VCSTokenAuthData {
7758
7955
  */
7759
7956
  token: string;
7760
7957
  }
7958
+ /**
7959
+ * +label=Microsoft Copilot Studio
7960
+ * +icon=copilot-studio
7961
+ * +usage=Import agents from Microsoft Copilot Studio into the TrueFoundry agent registry.
7962
+ */
7963
+ export interface MicrosoftCopilotStudio {
7964
+ /**
7965
+ * +value=integration/agent-registry/azure/microsoft-copilot-studio
7966
+ */
7967
+ type: 'integration/agent-registry/azure/microsoft-copilot-studio';
7968
+ /**
7969
+ * +label=Display Name
7970
+ * +usage=The name of the integration that will be displayed in the TrueFoundry UI.
7971
+ * +sort=100
7972
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
7973
+ */
7974
+ name: string;
7975
+ syncSchedule?: CronSyncSchedule;
7976
+ /**
7977
+ * +label=Auth Data
7978
+ * +usage=Custom authentication data for the integration.
7979
+ * +sort=300
7980
+ * +discriminator=type
7981
+ */
7982
+ auth_data?: AzureCertificateAuth | AzureClientSecretAuth;
7983
+ /**
7984
+ * +label=Access Control
7985
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
7986
+ * +sort=600
7987
+ * +uiType=AuthorizedSubjects
7988
+ */
7989
+ authorized_subjects?: string[];
7990
+ }
7991
+ /**
7992
+ * +label=Microsoft Foundry
7993
+ * +icon=microsoft-foundry
7994
+ * +usage=Import agents from Microsoft Foundry into the TrueFoundry agent registry.
7995
+ */
7996
+ export interface MicrosoftFoundry {
7997
+ /**
7998
+ * +value=integration/agent-registry/azure/microsoft-foundry
7999
+ */
8000
+ type: 'integration/agent-registry/azure/microsoft-foundry';
8001
+ /**
8002
+ * +label=Display Name
8003
+ * +usage=The name of the integration that will be displayed in the TrueFoundry UI.
8004
+ * +sort=100
8005
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
8006
+ */
8007
+ name: string;
8008
+ syncSchedule?: CronSyncSchedule;
8009
+ /**
8010
+ * +label=Auth Data
8011
+ * +usage=Custom authentication data for the integration.
8012
+ * +sort=300
8013
+ * +discriminator=type
8014
+ */
8015
+ auth_data?: AzureCertificateAuth | AzureClientSecretAuth;
8016
+ /**
8017
+ * +label=Access Control
8018
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
8019
+ * +sort=600
8020
+ * +uiType=AuthorizedSubjects
8021
+ */
8022
+ authorized_subjects?: string[];
8023
+ }
7761
8024
  /**
7762
8025
  * +label=Create New Cluster
7763
8026
  */
@@ -9416,6 +9679,78 @@ export interface CartesiaProviderAccount {
9416
9679
  */
9417
9680
  discount_percent?: number;
9418
9681
  }
9682
+ /**
9683
+ * +label=Cato Networks API Key Auth
9684
+ */
9685
+ export interface CatoNetworksApiKeyAuth {
9686
+ /**
9687
+ * +value=api-key
9688
+ */
9689
+ type: 'api-key';
9690
+ /**
9691
+ * +sort=100
9692
+ * +usage=API key issued by Cato for this AI Security guard. Sent as a Bearer token. The key secret is never forwarded to Cato as the gateway key alias.
9693
+ * +message=API key must not be empty
9694
+ * +uiType=SecretSelect
9695
+ * +uiProps={"isPassword": true, "enableNew": true}
9696
+ */
9697
+ api_key: string;
9698
+ }
9699
+ /**
9700
+ * +label=Cato Networks
9701
+ * +icon=https://assets.production.truefoundry.com/cato.png
9702
+ */
9703
+ export interface CatoNetworksGuardrailConfig {
9704
+ /**
9705
+ * +label=Name
9706
+ * +sort=50
9707
+ * +usage=The name of the Guardrail Config.
9708
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
9709
+ * +uiProps={"disableEdit":true}
9710
+ */
9711
+ name: string;
9712
+ /**
9713
+ * +label=Description
9714
+ * +sort=75
9715
+ * +usage=Optional description for this Guardrail Config.
9716
+ */
9717
+ description?: string;
9718
+ /**
9719
+ * +uiType=Hidden
9720
+ * +value=integration/guardrail-config/cato-networks
9721
+ */
9722
+ type: 'integration/guardrail-config/cato-networks';
9723
+ auth_data: CatoNetworksApiKeyAuth;
9724
+ /**
9725
+ * +label=Operation
9726
+ * +usage=Validate treats a Cato block or anonymize action as a violation and leaves the payload unchanged. Mutate also replaces the messages with Cato's anonymized versions and continues.
9727
+ * Validate guardrails are run in parallel while mutate guardrails are run sequentially.
9728
+ * +uiType=MultiSelectPills
9729
+ * +uiProps={"hideRadioIcon": true}
9730
+ * +sort=100
9731
+ */
9732
+ operation: 'mutate' | 'validate';
9733
+ /**
9734
+ * +label=Priority
9735
+ * +usage=Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
9736
+ * +sort=150
9737
+ */
9738
+ priority?: number;
9739
+ enforcing_strategy: EnforcingStrategy;
9740
+ /**
9741
+ * +uiType=Ignore
9742
+ * +uiProps={"forwardJsonKey": true}
9743
+ */
9744
+ config: {
9745
+ /**
9746
+ * +label=Base URL
9747
+ * +usage=Cato API base URL. Use the regional Cato endpoint or the URL of a Cato Outpost in your environment. Trailing slashes are ignored.
9748
+ * +sort=50
9749
+ * +message=Base URL must be an http or https URL
9750
+ */
9751
+ base_url: string;
9752
+ };
9753
+ }
9419
9754
  /**
9420
9755
  * +label=Cedar
9421
9756
  * +icon=truefoundry
@@ -11257,7 +11592,6 @@ export interface Cost {
11257
11592
  cache_creation_input_token_cost?: number;
11258
11593
  cache_creation_input_token_cost_per_hour?: number;
11259
11594
  cache_read_input_audio_token_cost?: number;
11260
- cache_read_input_image_token_cost?: number;
11261
11595
  cache_read_input_token_cost?: number;
11262
11596
  input_cost_per_annotated_page?: number;
11263
11597
  input_cost_per_audio_token?: number;
@@ -11447,6 +11781,7 @@ export interface CustomEndpoint {
11447
11781
  * +usage=Custom headers forwarded to the upstream endpoint with every request. For example: `{"X-Custom-Header": "value"}`
11448
11782
  * +sort=500
11449
11783
  * +isAdvanced=true
11784
+ * +uiProps={"keyPlaceholder": "X-Custom-Header", "valuePlaceholder": "value", "allowSecrets": true}
11450
11785
  */
11451
11786
  headers?: {
11452
11787
  [k: string]: string;
@@ -11563,6 +11898,7 @@ export interface CustomEndpointIntegrations {
11563
11898
  * +usage=Custom headers forwarded to the upstream endpoint with every request. For example: `{"X-Custom-Header": "value"}`
11564
11899
  * +sort=500
11565
11900
  * +isAdvanced=true
11901
+ * +uiProps={"keyPlaceholder": "X-Custom-Header", "valuePlaceholder": "value", "allowSecrets": true}
11566
11902
  */
11567
11903
  headers?: {
11568
11904
  [k: string]: string;
@@ -11877,6 +12213,13 @@ export interface CustomJWTAuthIntegration {
11877
12213
  * +sort=300
11878
12214
  */
11879
12215
  jwks_uri: string;
12216
+ /**
12217
+ * +label=Allowed Audiences
12218
+ * +usage=One or more audience values that must be present in the `aud` claim of incoming JWT tokens. Tokens with an audience not listed here will be rejected. When unset, the login provider client ID is used if configured.
12219
+ * +sort=350
12220
+ * +placeholder=e.g. https://api.example.com
12221
+ */
12222
+ audiences?: string[];
11880
12223
  login_provider?: OAuth2LoginProvider;
11881
12224
  /**
11882
12225
  * +label=Access Control
@@ -12323,7 +12666,7 @@ export interface DatabricksProviderAccount {
12323
12666
  }
12324
12667
  /**
12325
12668
  * +label=Databricks Service Principal Auth
12326
- * +usage=You can authenticate using Databricks service principal. To generate OAuth secret and Client ID, go to Databricks workspace -> Workspace Settings -> Identity and Access -> Service Principals -> Secrets.
12669
+ * +usage=You can authenticate using Databricks service principal. To generate OAuth secret and Client ID, go to Databricks workspace -> Workspace Settings -> Identity and Access -> Service Principals -> Secrets. When generating the secret, select the scopes model-serving and ai-gateway.
12327
12670
  */
12328
12671
  export interface DatabricksServicePrincipalAuth {
12329
12672
  /**
@@ -14644,7 +14987,6 @@ export interface LoadBalancingWhen {
14644
14987
  }
14645
14988
  /**
14646
14989
  * +label=Guardrails Configuration
14647
- * Named single-rule manifest (same grain as gateway-logging-config).
14648
14990
  */
14649
14991
  export interface GuardrailsConfig {
14650
14992
  /**
@@ -14705,8 +15047,8 @@ export interface GuardrailsConfig {
14705
15047
  custom_error_message?: string;
14706
15048
  }
14707
15049
  /**
14708
- * Runtime rule shape used for matching. Named GuardrailsConfig maps to this via name → id.
14709
- * Also the element type of the legacy folded NATS document `{ type, rules: [...] }`.
15050
+ * Folded / legacy rule shape published under the single NATS key for older gateways.
15051
+ * API manifests use GuardrailsConfig (named) instead.
14710
15052
  */
14711
15053
  export interface GuardrailsRule {
14712
15054
  id: string;
@@ -14717,11 +15059,6 @@ export interface GuardrailsRule {
14717
15059
  mcp_tool_post_invoke_guardrails: string[];
14718
15060
  custom_error_message?: string;
14719
15061
  }
14720
- /** Legacy folded NATS projection published alongside named configs for older gateways. */
14721
- export interface FoldedGuardrailsConfig {
14722
- type: 'gateway-guardrails-config';
14723
- rules: GuardrailsRule[];
14724
- }
14725
15062
  export interface GuardrailsWhen {
14726
15063
  target?: TargetConditionGroup;
14727
15064
  subjects?: SubjectConditionGroup;
@@ -17274,82 +17611,10 @@ export interface OPABearerAuth {
17274
17611
  bearer_token: string;
17275
17612
  }
17276
17613
  /**
17277
- * +label=Cato Networks
17278
- * +icon=https://assets.production.truefoundry.com/cato.png
17614
+ * +label=Noma Security
17615
+ * +icon=https://assets.production.truefoundry.com/noma.ico
17279
17616
  */
17280
- export interface CatoNetworksGuardrailConfig {
17281
- /**
17282
- * +label=Name
17283
- * +sort=50
17284
- * +usage=The name of the Guardrail Config.
17285
- * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
17286
- * +uiProps={"disableEdit":true}
17287
- */
17288
- name: string;
17289
- /**
17290
- * +label=Description
17291
- * +sort=75
17292
- * +usage=Optional description for this Guardrail Config.
17293
- */
17294
- description?: string;
17295
- /**
17296
- * +uiType=Hidden
17297
- * +value=integration/guardrail-config/cato-networks
17298
- */
17299
- type: 'integration/guardrail-config/cato-networks';
17300
- auth_data: CatoNetworksApiKeyAuth;
17301
- /**
17302
- * +label=Operation
17303
- * +usage=Validate treats a Cato block or anonymize action as a violation and leaves the payload unchanged. Mutate also replaces the messages with Cato's anonymized versions and continues.
17304
- * Validate guardrails are run in parallel while mutate guardrails are run sequentially.
17305
- * +uiType=MultiSelectPills
17306
- * +uiProps={"hideRadioIcon": true}
17307
- * +sort=100
17308
- */
17309
- operation: 'mutate' | 'validate';
17310
- /**
17311
- * +label=Priority
17312
- * +usage=Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.
17313
- * +sort=150
17314
- */
17315
- priority?: number;
17316
- enforcing_strategy: EnforcingStrategy;
17317
- /**
17318
- * +uiType=Ignore
17319
- * +uiProps={"forwardJsonKey": true}
17320
- */
17321
- config: {
17322
- /**
17323
- * +label=Base URL
17324
- * +usage=Cato API base URL. Use the regional Cato endpoint or the URL of a Cato Outpost in your environment. Trailing slashes are ignored.
17325
- * +sort=50
17326
- * +message=Base URL must be an http or https URL
17327
- */
17328
- base_url: string;
17329
- };
17330
- }
17331
- /**
17332
- * +label=Cato Networks API Key Auth
17333
- */
17334
- export interface CatoNetworksApiKeyAuth {
17335
- /**
17336
- * +value=api-key
17337
- */
17338
- type: 'api-key';
17339
- /**
17340
- * +sort=100
17341
- * +usage=API key issued by Cato for this AI Security guard. Sent as a Bearer token. The key secret is never forwarded to Cato as the gateway key alias.
17342
- * +message=API key must not be empty
17343
- * +uiType=SecretSelect
17344
- * +uiProps={"isPassword": true, "enableNew": true}
17345
- */
17346
- api_key: string;
17347
- }
17348
- /**
17349
- * +label=Noma Security
17350
- * +icon=https://assets.production.truefoundry.com/noma.ico
17351
- */
17352
- export interface NomaSecurityGuardrailConfig {
17617
+ export interface NomaSecurityGuardrailConfig {
17353
17618
  /**
17354
17619
  * +label=Name
17355
17620
  * +sort=50
@@ -17833,7 +18098,7 @@ export interface IdentityProviderManifest {
17833
18098
  * +usage=Controls how JWT token claims are mapped to a TrueFoundry identity. Tokens can be resolved to a Virtual Account (recommended for machine users or shared external identities) or directly to a TrueFoundry User. If both options are configured, Virtual Account resolution takes precedence.
17834
18099
  * +sort=10040
17835
18100
  */
17836
- resolve_token_to: {
18101
+ resolve_token_to?: {
17837
18102
  virtual_account?: ResolveToVirtualAccount;
17838
18103
  user?: ResolveToUser;
17839
18104
  agent?: ResolveToAgent;
@@ -17901,6 +18166,13 @@ export interface JWTBasedValidationConfig {
17901
18166
  * +placeholder=https://accounts.example.com/.well-known/jwks.json
17902
18167
  */
17903
18168
  jwks_uri: string;
18169
+ /**
18170
+ * +label=Token TTL (seconds)
18171
+ * +usage=Lifetime of tokens TrueFoundry issues after exchanging a token from this provider. Allowed range is 60 to 3600 seconds.
18172
+ * +sort=3000
18173
+ * +message=Must be between 60 and 3600 seconds.
18174
+ */
18175
+ token_ttl_seconds?: number;
17904
18176
  }
17905
18177
  /**
17906
18178
  * +label=Virtual Account
@@ -18011,6 +18283,86 @@ export interface OktaCrossAppAccessSettings {
18011
18283
  [k: string]: string;
18012
18284
  };
18013
18285
  }
18286
+ /**
18287
+ * +label=Snowflake
18288
+ * +icon=snowflake-cortex
18289
+ * +heroDataKey=account_identifier
18290
+ */
18291
+ export interface SnowflakeProviderAccount {
18292
+ /**
18293
+ * +value=provider-account/snowflake
18294
+ */
18295
+ type: 'provider-account/snowflake';
18296
+ /**
18297
+ * +label=Name
18298
+ * +sort=100
18299
+ * +usage=The name of the Snowflake provider account
18300
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
18301
+ * +uiProps={"disableEdit":true}
18302
+ */
18303
+ name: string;
18304
+ /**
18305
+ * +label=Snowflake Account Identifier
18306
+ * +sort=200
18307
+ * +message=Snowflake account identifier must not be empty
18308
+ * +usage=Snowflake account identifier, as in https://<account_identifier>.snowflakecomputing.com. Insert the identifier only, without the URL.
18309
+ */
18310
+ account_identifier: string;
18311
+ auth_data: SnowflakePatTokenAuth;
18312
+ /**
18313
+ * +label=Integrations
18314
+ * +sort=400
18315
+ * +usage=List of integrations that are associated with the Snowflake provider account
18316
+ * +uiType=IntegrationsGroup
18317
+ */
18318
+ integrations: SnowflakeIntegrations[];
18319
+ ownedBy?: OwnedBy;
18320
+ }
18321
+ /**
18322
+ * +label=PAT
18323
+ */
18324
+ export interface SnowflakePatTokenAuth {
18325
+ /**
18326
+ * +value=pat-token
18327
+ */
18328
+ type: 'pat-token';
18329
+ /**
18330
+ * +label=PAT Token
18331
+ * +sort=100
18332
+ * +usage=Snowflake programmatic access token. The account's network policy must allow the TrueFoundry control plane and gateway egress IPs.
18333
+ * +message=PAT token must not be empty
18334
+ * +uiType=SecretSelect
18335
+ * +uiProps={"isPassword": true, "enableNew": true}
18336
+ */
18337
+ pat_token: string;
18338
+ }
18339
+ /**
18340
+ * +label=Snowflake Cortex Agents
18341
+ * +icon=snowflake-cortex
18342
+ * +usage=Import agents from Snowflake Cortex into the TrueFoundry agent registry.
18343
+ */
18344
+ export interface SnowflakeIntegrations {
18345
+ /**
18346
+ * +value=integration/agent-registry/snowflake/cortex-agent
18347
+ */
18348
+ type: 'integration/agent-registry/snowflake/cortex-agent';
18349
+ /**
18350
+ * +label=Display Name
18351
+ * +usage=The name of the integration that will be displayed in the TrueFoundry UI.
18352
+ * +sort=100
18353
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
18354
+ */
18355
+ name: string;
18356
+ auth_data?: SnowflakePatTokenAuth;
18357
+ syncSchedule?: CronSyncSchedule;
18358
+ /**
18359
+ * +label=Access Control
18360
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
18361
+ * +sort=600
18362
+ * +uiType=AuthorizedSubjects
18363
+ */
18364
+ authorized_subjects?: string[];
18365
+ }
18014
18366
  /**
18015
18367
  * +label=Jfrog
18016
18368
  * +icon=jfrog
@@ -19570,7 +19922,7 @@ export interface TypeSafeIntegrations {
19570
19922
  /**
19571
19923
  * +label=Model ID
19572
19924
  * +sort=2
19573
- * +usage=The TypeSafe model identifier (e.g., jev-1.13.0, jev-latest). Pin a versioned id so confidence thresholds stay stable across releases.
19925
+ * +usage=The TypeSafe model identifier (e.g., jev-1.13.0, jev-latest). Pin a versioned id so confidence thresholds stay stable across releases. On a Cloudflare Workers AI base URL, use the Workers AI model name instead (e.g., typesafe/jev, @cf/cloudflare/clef, @cf/cloudflare/clef-flash).
19574
19926
  * +message=Model ID must not be empty
19575
19927
  * +uiProps={"descriptionInline":true}
19576
19928
  */
@@ -19582,7 +19934,7 @@ export interface TypeSafeIntegrations {
19582
19934
  * +uiProps={"disableAllOption": true}
19583
19935
  */
19584
19936
  model_types: ModelType[];
19585
- cost?: PerThousandTokensCostMetric;
19937
+ cost?: ModelCostMetric;
19586
19938
  /**
19587
19939
  * +label=Access Control
19588
19940
  * +sort=5
@@ -19750,7 +20102,7 @@ export interface Workflow {
19750
20102
  * +label=Alert
19751
20103
  */
19752
20104
  export interface WorkflowAlert {
19753
- notification_target?: NotificationTarget;
20105
+ notification_target?: NotificationTargetForAlertRule;
19754
20106
  /**
19755
20107
  * +label=On Completion
19756
20108
  * +usage=Send an alert when the job completes
@@ -21672,6 +22024,7 @@ export interface MicrosoftFoundryProviderAccount {
21672
22024
  * +sort=300
21673
22025
  * +usage=The classic Azure OpenAI endpoint, e.g. https://{resource-name}.openai.azure.com (the /openai or /openai/v1 suffix is optional and stripped automatically).
21674
22026
  * +message=Endpoint URL must not be empty
22027
+ * +uiProps={"descriptionInline":true}
21675
22028
  */
21676
22029
  openai_endpoint: string;
21677
22030
  /**
@@ -21679,6 +22032,7 @@ export interface MicrosoftFoundryProviderAccount {
21679
22032
  * +sort=310
21680
22033
  * +usage=The Microsoft Foundry project endpoint, e.g. https://{resource-name}.services.ai.azure.com/api/projects/{project-name}.
21681
22034
  * +message=Endpoint URL must not be empty
22035
+ * +uiProps={"descriptionInline":true}
21682
22036
  */
21683
22037
  project_endpoint: string;
21684
22038
  /**
@@ -22520,7 +22874,7 @@ export interface TypeSafeProviderAccount {
22520
22874
  /**
22521
22875
  * +label=Base URL
22522
22876
  * +sort=250
22523
- * +usage=Optional custom base URL for the TypeSafe API (defaults to https://api.typesafe.ai)
22877
+ * +usage=Optional custom base URL for the TypeSafe API (defaults to https://api.typesafe.ai). Point this at a Cloudflare account (https://api.cloudflare.com/client/v4/accounts/<account_id>) to serve System One models through Cloudflare Workers AI instead.
22524
22878
  * +message=Base URL must not be empty
22525
22879
  */
22526
22880
  base_url?: string;
@@ -23212,9 +23566,9 @@ export interface SecuritySettings {
23212
23566
  enabled: boolean;
23213
23567
  /**
23214
23568
  * +label=Maximum Expiry Time for Personal Access Token (PAT) in days
23215
- * +usage=Personal Access Tokens cannot be created with an expiry longer than this. Maximum allowed is 365 days.
23569
+ * +usage=Personal Access Tokens cannot be created with an expiry longer than this. Maximum allowed is 7000 days.
23216
23570
  * +sort=2
23217
- * +message=Maximum expiry time must be between 1 and 365 days
23571
+ * +message=Maximum expiry time must be between 1 and 7000 days
23218
23572
  */
23219
23573
  max_pat_expiry_minutes: number;
23220
23574
  /**
@@ -23226,16 +23580,31 @@ export interface SecuritySettings {
23226
23580
  */
23227
23581
  max_pats_per_user?: number;
23228
23582
  /**
23229
- * +label=Mandate Team Selection in Personal Access Token (PAT)
23230
- * +usage=Require a team owner to be selected while creating a Personal Access Token.
23583
+ * +label=Personal Access Token (PAT) Team Assignment Mode
23584
+ * +usage=Controls whether assigning a team owner while creating a Personal Access Token is required, optional, or disabled.
23231
23585
  * +sort=4
23586
+ * +uiType=RadioCard
23587
+ * +uiProps={"descriptionInline":true}
23588
+ */
23589
+ pat_team_assignment_mode?: 'optional' | 'required' | 'disabled';
23590
+ /**
23591
+ * +label=Enable PAT Retrieval After Creation
23592
+ * +usage=Allow users to retrieve the value of their own Personal Access Tokens via API after creation.
23593
+ * +sort=5
23594
+ * +uiProps={"descriptionInline":true}
23595
+ */
23596
+ enable_pat_retrieval_after_creation?: boolean;
23597
+ /**
23598
+ * +label=Enable Viewing Secret
23599
+ * +usage=Allow users with permission to view plaintext secret values in the UI and API. When disabled, secret values are never returned.
23600
+ * +sort=6
23232
23601
  * +uiProps={"descriptionInline":true}
23233
23602
  */
23234
- mandate_team_selection_in_pat?: boolean;
23603
+ enable_viewing_secrets?: boolean;
23235
23604
  /**
23236
23605
  * +label=Send security updates to
23237
23606
  * +usage=Email addresses to receive security-related notifications.
23238
- * +sort=5
23607
+ * +sort=7
23239
23608
  * +message=Must be a valid email address
23240
23609
  */
23241
23610
  to_emails?: string[];
@@ -23603,47 +23972,6 @@ export interface JfrogArtifactsRegistry {
23603
23972
  */
23604
23973
  authorized_subjects?: string[];
23605
23974
  }
23606
- /**
23607
- * +label=TrueFoundry Models Model
23608
- * +icon=truefoundry
23609
- */
23610
- export interface TrueFoundryModelsModel {
23611
- /**
23612
- * +value=integration/model/truefoundry-models
23613
- */
23614
- type: 'integration/model/truefoundry-models';
23615
- /**
23616
- * +label=Display Name
23617
- * +sort=1
23618
- * +usage=A descriptive name to identify this model integration in the UI
23619
- * +message=2 to 64 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number
23620
- */
23621
- name: string;
23622
- /**
23623
- * +label=Model ID
23624
- * +sort=2
23625
- * +usage=The full model name including the virtual model group prefix (e.g., tfy-managed/grok-4.7).
23626
- * +message=Model ID must not be empty
23627
- * +uiProps={"descriptionInline":true}
23628
- */
23629
- model_id: string;
23630
- /**
23631
- * +label=Model Types
23632
- * +sort=3
23633
- * +usage=Specify the type of the TrueFoundry Models model
23634
- * +uiType=Select
23635
- * +uiProps={"disableAllOption": true}
23636
- */
23637
- model_types: ModelType[];
23638
- cost?: ModelCostMetric;
23639
- /**
23640
- * +label=Access Control
23641
- * +sort=5
23642
- * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
23643
- * +uiType=Hidden
23644
- */
23645
- authorized_subjects?: string[];
23646
- }
23647
23975
  /**
23648
23976
  * +label=MCP Tool Approval Policy
23649
23977
  */
@@ -24000,6 +24328,13 @@ export interface RemoteAgentV2 {
24000
24328
  * +message=2 to 64 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
24001
24329
  */
24002
24330
  name: string;
24331
+ /**
24332
+ * +label=Display Name
24333
+ * +usage=A human-readable label for the Agent in the UI. If omitted, the agent name is shown.
24334
+ * +message=1 to 128 characters long
24335
+ * +sort=105
24336
+ */
24337
+ display_name?: string;
24003
24338
  /**
24004
24339
  * +label=Description
24005
24340
  * +usage=A short note on what this agent does — shown in the registry list and audit trail.
@@ -24007,6 +24342,14 @@ export interface RemoteAgentV2 {
24007
24342
  * +uiType=TextArea
24008
24343
  */
24009
24344
  description: string;
24345
+ source?: RemoteAgentSource;
24346
+ /**
24347
+ * +label=State
24348
+ * +usage=Lifecycle state of the agent. Active: managed and available for use. Unmanaged: imported from an external registry for governance (not fully managed yet). Inactive: disabled and cannot be used or invoked.
24349
+ * +sort=116
24350
+ * +uiType=Select
24351
+ */
24352
+ state?: 'active' | 'unmanaged' | 'inactive';
24010
24353
  identity: RemoteAgentV2AgentIdentity;
24011
24354
  proxy_via_gateway: RemoteAgentProxyViaGatewayConfig;
24012
24355
  /**
@@ -24065,6 +24408,33 @@ export interface SambaNovaModel {
24065
24408
  */
24066
24409
  authorized_subjects?: string[];
24067
24410
  }
24411
+ /**
24412
+ * +label=Snowflake Cortex Agents
24413
+ * +icon=snowflake-cortex
24414
+ * +usage=Import agents from Snowflake Cortex into the TrueFoundry agent registry.
24415
+ */
24416
+ export interface SnowflakeCortexAgentRegistry {
24417
+ /**
24418
+ * +value=integration/agent-registry/snowflake/cortex-agent
24419
+ */
24420
+ type: 'integration/agent-registry/snowflake/cortex-agent';
24421
+ /**
24422
+ * +label=Display Name
24423
+ * +usage=The name of the integration that will be displayed in the TrueFoundry UI.
24424
+ * +sort=100
24425
+ * +message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number
24426
+ */
24427
+ name: string;
24428
+ auth_data?: SnowflakePatTokenAuth;
24429
+ syncSchedule?: CronSyncSchedule;
24430
+ /**
24431
+ * +label=Access Control
24432
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
24433
+ * +sort=600
24434
+ * +uiType=AuthorizedSubjects
24435
+ */
24436
+ authorized_subjects?: string[];
24437
+ }
24068
24438
  export interface SnowflakeCortexModel {
24069
24439
  /**
24070
24440
  * +value=integration/model/snowflake-cortex
@@ -24229,14 +24599,14 @@ export interface TrueFoundryDBSSM {
24229
24599
  authorized_subjects?: string[];
24230
24600
  }
24231
24601
  /**
24232
- * +label=Wafer Model
24233
- * +icon=https://assets.production.truefoundry.com/wafer.svg
24602
+ * +label=TrueFoundry Models Model
24603
+ * +icon=truefoundry
24234
24604
  */
24235
- export interface WaferModel {
24605
+ export interface TrueFoundryModelsModel {
24236
24606
  /**
24237
- * +value=integration/model/wafer
24607
+ * +value=integration/model/truefoundry-models
24238
24608
  */
24239
- type: 'integration/model/wafer';
24609
+ type: 'integration/model/truefoundry-models';
24240
24610
  /**
24241
24611
  * +label=Display Name
24242
24612
  * +sort=1
@@ -24247,7 +24617,7 @@ export interface WaferModel {
24247
24617
  /**
24248
24618
  * +label=Model ID
24249
24619
  * +sort=2
24250
- * +usage=The Wafer model identifier (e.g., deepseek-v4-pro, deepseek-v4-flash). See https://docs.wafer.ai/serverless for the public catalog.
24620
+ * +usage=The full model name including the virtual model group prefix (e.g., tfy-managed/grok-4.7).
24251
24621
  * +message=Model ID must not be empty
24252
24622
  * +uiProps={"descriptionInline":true}
24253
24623
  */
@@ -24255,7 +24625,8 @@ export interface WaferModel {
24255
24625
  /**
24256
24626
  * +label=Model Types
24257
24627
  * +sort=3
24258
- * +usage=Specify the type of the Wafer model
24628
+ * +usage=Specify the type of the TrueFoundry Models model
24629
+ * +uiType=Select
24259
24630
  * +uiProps={"disableAllOption": true}
24260
24631
  */
24261
24632
  model_types: ModelType[];
@@ -24287,7 +24658,7 @@ export interface TypeSafeModel {
24287
24658
  /**
24288
24659
  * +label=Model ID
24289
24660
  * +sort=2
24290
- * +usage=The TypeSafe model identifier (e.g., jev-1.13.0, jev-latest). Pin a versioned id so confidence thresholds stay stable across releases.
24661
+ * +usage=The TypeSafe model identifier (e.g., jev-1.13.0, jev-latest). Pin a versioned id so confidence thresholds stay stable across releases. On a Cloudflare Workers AI base URL, use the Workers AI model name instead (e.g., typesafe/jev, @cf/cloudflare/clef, @cf/cloudflare/clef-flash).
24291
24662
  * +message=Model ID must not be empty
24292
24663
  * +uiProps={"descriptionInline":true}
24293
24664
  */
@@ -24299,7 +24670,47 @@ export interface TypeSafeModel {
24299
24670
  * +uiProps={"disableAllOption": true}
24300
24671
  */
24301
24672
  model_types: ModelType[];
24302
- cost?: PerThousandTokensCostMetric;
24673
+ cost?: ModelCostMetric;
24674
+ /**
24675
+ * +label=Access Control
24676
+ * +sort=5
24677
+ * +usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.
24678
+ * +uiType=Hidden
24679
+ */
24680
+ authorized_subjects?: string[];
24681
+ }
24682
+ /**
24683
+ * +label=Wafer Model
24684
+ * +icon=https://assets.production.truefoundry.com/wafer.svg
24685
+ */
24686
+ export interface WaferModel {
24687
+ /**
24688
+ * +value=integration/model/wafer
24689
+ */
24690
+ type: 'integration/model/wafer';
24691
+ /**
24692
+ * +label=Display Name
24693
+ * +sort=1
24694
+ * +usage=A descriptive name to identify this model integration in the UI
24695
+ * +message=2 to 64 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number
24696
+ */
24697
+ name: string;
24698
+ /**
24699
+ * +label=Model ID
24700
+ * +sort=2
24701
+ * +usage=The Wafer model identifier (e.g., deepseek-v4-pro, deepseek-v4-flash). See https://docs.wafer.ai/serverless for the public catalog.
24702
+ * +message=Model ID must not be empty
24703
+ * +uiProps={"descriptionInline":true}
24704
+ */
24705
+ model_id: string;
24706
+ /**
24707
+ * +label=Model Types
24708
+ * +sort=3
24709
+ * +usage=Specify the type of the Wafer model
24710
+ * +uiProps={"disableAllOption": true}
24711
+ */
24712
+ model_types: ModelType[];
24713
+ cost?: ModelCostMetric;
24303
24714
  /**
24304
24715
  * +label=Access Control
24305
24716
  * +sort=5