@truefoundry/ai-gateway-sdk 0.0.3 → 0.0.4

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.
@@ -167,6 +167,26 @@
167
167
  },
168
168
  "$schema": "http://json-schema.org/draft-04/schema#"
169
169
  },
170
+ "AIFeaturesModels": {
171
+ "description": "+label=AI Features Models\n+usage=Gateway model to use for each task complexity tier. AI features route each\nrequest to the model matching the estimated difficulty of the task, trading off cost,\nlatency and quality. Each value is a Gateway model FQN in the form provider/model.",
172
+ "type": "object",
173
+ "required": ["simple", "medium", "complex"],
174
+ "properties": {
175
+ "simple": {
176
+ "description": "+label=Simple Tasks\n+usage=Fast, low-cost model for high-volume, well-defined tasks like classification, extraction, formatting and short summaries.\n+sort=1\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\",\"descriptionInline\":true,\"valuePattern\":\"${providerAccount.name}/${manifest.name}\"}\n+message=Select a Gateway model for simple tasks",
177
+ "type": "string"
178
+ },
179
+ "medium": {
180
+ "description": "+label=Medium Tasks\n+usage=Balanced mid-tier model for standard tasks like general Q&A, structured output.\n+sort=2\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\",\"descriptionInline\":true,\"valuePattern\":\"${providerAccount.name}/${manifest.name}\"}\n+message=Select a Gateway model for medium tasks",
181
+ "type": "string"
182
+ },
183
+ "complex": {
184
+ "description": "+label=Complex Tasks\n+usage=Most capable model for demanding tasks like multi-step reasoning, code generation and nuanced analysis.\n+sort=3\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\",\"descriptionInline\":true,\"valuePattern\":\"${providerAccount.name}/${manifest.name}\"}\n+message=Select a Gateway model for complex tasks",
185
+ "type": "string"
186
+ }
187
+ },
188
+ "$schema": "http://json-schema.org/draft-04/schema#"
189
+ },
170
190
  "AIFeaturesSettings": {
171
191
  "description": "+docs=Describes the configuration for TrueFoundry AI features\n+label=AI Features Settings",
172
192
  "type": "object",
@@ -182,9 +202,13 @@
182
202
  "type": "boolean"
183
203
  },
184
204
  "ai_provider": {
185
- "description": "+label=AI Provider\n+usage=AI provider to use for AI features\nWhen TrueFoundry is selected, TrueFoundry will manage and provide the AI models for the features.\n+uiProps={\"disableEdit\":true}",
205
+ "description": "+label=AI Provider\n+usage=AI provider to use for AI features.\nTrueFoundry manages models on SaaS. Self-Managed uses your gateway models.\n+sort=2",
186
206
  "type": "string",
187
- "enum": ["truefoundry"]
207
+ "enum": ["truefoundry", "self-managed"],
208
+ "default": "truefoundry"
209
+ },
210
+ "models": {
211
+ "$ref": "#/definitions/AIFeaturesModels"
188
212
  }
189
213
  },
190
214
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -2289,6 +2313,92 @@
2289
2313
  },
2290
2314
  "$schema": "http://json-schema.org/draft-04/schema#"
2291
2315
  },
2316
+ "AwsAgentCoreHarness": {
2317
+ "description": "+label=AWS AgentCore Harness\n+icon=aws-agentcore-harness\n+usage=Import agents from Amazon Bedrock AgentCore harness into the TrueFoundry agent registry.",
2318
+ "type": "object",
2319
+ "required": ["type", "name", "region"],
2320
+ "properties": {
2321
+ "type": {
2322
+ "description": "+value=integration/agent-registry/aws/agentcore-harness",
2323
+ "type": "string",
2324
+ "enum": ["integration/agent-registry/aws/agentcore-harness"]
2325
+ },
2326
+ "name": {
2327
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
2328
+ "type": "string",
2329
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
2330
+ },
2331
+ "region": {
2332
+ "$ref": "#/definitions/AWSRegion"
2333
+ },
2334
+ "syncSchedule": {
2335
+ "$ref": "#/definitions/CronSyncSchedule"
2336
+ },
2337
+ "auth_data": {
2338
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
2339
+ "type": "object",
2340
+ "oneOf": [
2341
+ {
2342
+ "$ref": "#/definitions/AwsAccessKeyBasedAuth"
2343
+ },
2344
+ {
2345
+ "$ref": "#/definitions/AwsAssumedRoleBasedAuth"
2346
+ }
2347
+ ]
2348
+ },
2349
+ "authorized_subjects": {
2350
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
2351
+ "type": "array",
2352
+ "items": {
2353
+ "type": "string"
2354
+ }
2355
+ }
2356
+ },
2357
+ "$schema": "http://json-schema.org/draft-04/schema#"
2358
+ },
2359
+ "AwsAgentCoreRuntime": {
2360
+ "description": "+label=AWS AgentCore Runtime\n+icon=aws-agentcore-runtime\n+usage=Import agents from Amazon Bedrock AgentCore runtime into the TrueFoundry agent registry.",
2361
+ "type": "object",
2362
+ "required": ["type", "name", "region"],
2363
+ "properties": {
2364
+ "type": {
2365
+ "description": "+value=integration/agent-registry/aws/agentcore-runtime",
2366
+ "type": "string",
2367
+ "enum": ["integration/agent-registry/aws/agentcore-runtime"]
2368
+ },
2369
+ "name": {
2370
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
2371
+ "type": "string",
2372
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
2373
+ },
2374
+ "region": {
2375
+ "$ref": "#/definitions/AWSRegion"
2376
+ },
2377
+ "syncSchedule": {
2378
+ "$ref": "#/definitions/CronSyncSchedule"
2379
+ },
2380
+ "auth_data": {
2381
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
2382
+ "type": "object",
2383
+ "oneOf": [
2384
+ {
2385
+ "$ref": "#/definitions/AwsAccessKeyBasedAuth"
2386
+ },
2387
+ {
2388
+ "$ref": "#/definitions/AwsAssumedRoleBasedAuth"
2389
+ }
2390
+ ]
2391
+ },
2392
+ "authorized_subjects": {
2393
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
2394
+ "type": "array",
2395
+ "items": {
2396
+ "type": "string"
2397
+ }
2398
+ }
2399
+ },
2400
+ "$schema": "http://json-schema.org/draft-04/schema#"
2401
+ },
2292
2402
  "AwsAssumedRoleBasedAuth": {
2293
2403
  "description": "+label=AWS Assumed Role Based Auth",
2294
2404
  "type": "object",
@@ -2629,6 +2739,12 @@
2629
2739
  },
2630
2740
  {
2631
2741
  "$ref": "#/definitions/AwsEksIntegration"
2742
+ },
2743
+ {
2744
+ "$ref": "#/definitions/AwsAgentCoreRuntime"
2745
+ },
2746
+ {
2747
+ "$ref": "#/definitions/AwsAgentCoreHarness"
2632
2748
  }
2633
2749
  ],
2634
2750
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -3686,6 +3802,12 @@
3686
3802
  },
3687
3803
  {
3688
3804
  "$ref": "#/definitions/AzureReposIntegration"
3805
+ },
3806
+ {
3807
+ "$ref": "#/definitions/MicrosoftCopilotStudio"
3808
+ },
3809
+ {
3810
+ "$ref": "#/definitions/MicrosoftFoundry"
3689
3811
  }
3690
3812
  ],
3691
3813
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -6213,6 +6335,78 @@
6213
6335
  },
6214
6336
  "$schema": "http://json-schema.org/draft-04/schema#"
6215
6337
  },
6338
+ "CatoNetworksApiKeyAuth": {
6339
+ "description": "+label=Cato Networks API Key Auth",
6340
+ "type": "object",
6341
+ "required": ["type", "api_key"],
6342
+ "properties": {
6343
+ "type": {
6344
+ "description": "+value=api-key",
6345
+ "type": "string",
6346
+ "enum": ["api-key"]
6347
+ },
6348
+ "api_key": {
6349
+ "description": "+sort=100\n+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.\n+message=API key must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
6350
+ "type": "string",
6351
+ "pattern": "^\\S+$"
6352
+ }
6353
+ },
6354
+ "$schema": "http://json-schema.org/draft-04/schema#"
6355
+ },
6356
+ "CatoNetworksGuardrailConfig": {
6357
+ "description": "+label=Cato Networks\n+icon=https://assets.production.truefoundry.com/cato.png",
6358
+ "type": "object",
6359
+ "required": ["name", "type", "auth_data", "operation", "enforcing_strategy", "config"],
6360
+ "properties": {
6361
+ "name": {
6362
+ "description": "+label=Name\n+sort=50\n+usage=The name of the Guardrail Config.\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number\n+uiProps={\"disableEdit\":true}",
6363
+ "type": "string",
6364
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
6365
+ },
6366
+ "description": {
6367
+ "description": "+label=Description\n+sort=75\n+usage=Optional description for this Guardrail Config.",
6368
+ "type": "string",
6369
+ "default": "Cato AI Security runtime protection for prompts and model responses"
6370
+ },
6371
+ "type": {
6372
+ "description": "+uiType=Hidden\n+value=integration/guardrail-config/cato-networks",
6373
+ "type": "string",
6374
+ "enum": ["integration/guardrail-config/cato-networks"]
6375
+ },
6376
+ "auth_data": {
6377
+ "$ref": "#/definitions/CatoNetworksApiKeyAuth"
6378
+ },
6379
+ "operation": {
6380
+ "description": "+label=Operation\n+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.\nValidate guardrails are run in parallel while mutate guardrails are run sequentially.\n+uiType=MultiSelectPills\n+uiProps={\"hideRadioIcon\": true}\n+sort=100",
6381
+ "type": "string",
6382
+ "enum": ["mutate", "validate"],
6383
+ "default": "mutate"
6384
+ },
6385
+ "priority": {
6386
+ "description": "+label=Priority\n+usage=Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.\n+sort=150",
6387
+ "type": "integer",
6388
+ "minimum": 0,
6389
+ "exclusiveMinimum": true,
6390
+ "default": 1
6391
+ },
6392
+ "enforcing_strategy": {
6393
+ "$ref": "#/definitions/EnforcingStrategy"
6394
+ },
6395
+ "config": {
6396
+ "description": "+uiType=Ignore\n+uiProps={\"forwardJsonKey\": true}",
6397
+ "type": "object",
6398
+ "required": ["base_url"],
6399
+ "properties": {
6400
+ "base_url": {
6401
+ "description": "+label=Base URL\n+usage=Cato API base URL. Use the regional Cato endpoint or the URL of a Cato Outpost in your environment. Trailing slashes are ignored.\n+sort=50\n+message=Base URL must be an http or https URL",
6402
+ "type": "string",
6403
+ "pattern": "^https?:\\/\\/\\S+$"
6404
+ }
6405
+ }
6406
+ }
6407
+ },
6408
+ "$schema": "http://json-schema.org/draft-04/schema#"
6409
+ },
6216
6410
  "CedarGuardrailConfig": {
6217
6411
  "description": "+label=Cedar\n+icon=truefoundry",
6218
6412
  "type": "object",
@@ -7140,6 +7334,9 @@
7140
7334
  },
7141
7335
  {
7142
7336
  "$ref": "#/definitions/CustomClassificationStrategy"
7337
+ },
7338
+ {
7339
+ "$ref": "#/definitions/DecisionClassificationStrategy"
7143
7340
  }
7144
7341
  ]
7145
7342
  },
@@ -7314,10 +7511,6 @@
7314
7511
  "type": "number",
7315
7512
  "minimum": 0
7316
7513
  },
7317
- "cache_read_input_image_token_cost": {
7318
- "type": "number",
7319
- "minimum": 0
7320
- },
7321
7514
  "cache_read_input_token_cost": {
7322
7515
  "type": "number",
7323
7516
  "minimum": 0
@@ -7535,6 +7728,29 @@
7535
7728
  },
7536
7729
  "$schema": "http://json-schema.org/draft-04/schema#"
7537
7730
  },
7731
+ "CronSyncSchedule": {
7732
+ "description": "+label=Cron Sync Schedule",
7733
+ "type": "object",
7734
+ "required": ["type", "expression"],
7735
+ "properties": {
7736
+ "type": {
7737
+ "description": "+value=cron",
7738
+ "type": "string",
7739
+ "enum": ["cron"]
7740
+ },
7741
+ "expression": {
7742
+ "description": "+label=Cron Expression\n+usage=Cron expression for when to run the sync. Minute cannot be configured.\n+uiType=CronInput\n+uiProps={\"disableMinute\": true, \"hideTimezonePicker\": true}\n```\n* * * * *\n | | | |\n | | | |___ day of week (0-6) (Sunday is 0)\n | | |_____ month (1-12)\n | |_______ day of month (1-31)\n |_________ hour (0-23)\n```\n+message=Sync schedule must not specify a minute.",
7743
+ "type": "string",
7744
+ "pattern": "^0 [^ ]+ [^ ]+ [^ ]+ [^ ]+$"
7745
+ },
7746
+ "timezone": {
7747
+ "description": "+label=Timezone\n+uiType=TimezoneSelect\n+usage=Timezone against which the cron schedule will be calculated, e.g. \"Asia/Tokyo\". Default is UTC.\nhttps://docs.truefoundry.com/docs/list-of-supported-timezones",
7748
+ "type": "string",
7749
+ "default": "UTC"
7750
+ }
7751
+ },
7752
+ "$schema": "http://json-schema.org/draft-04/schema#"
7753
+ },
7538
7754
  "CrowdStrikeAIDRGuardrailConfig": {
7539
7755
  "description": "+label=CrowdStrike AIDR\n+icon=https://assets.production.truefoundry.com/crowdstrike-aidr-logo.svg",
7540
7756
  "type": "object",
@@ -7810,7 +8026,7 @@
7810
8026
  "$ref": "#/definitions/CustomHeaderAuth"
7811
8027
  },
7812
8028
  "headers": {
7813
- "description": "+label=Custom Headers\n+usage=Custom headers forwarded to the upstream endpoint with every request. For example: `{\"X-Custom-Header\": \"value\"}`\n+sort=500\n+isAdvanced=true",
8029
+ "description": "+label=Custom Headers\n+usage=Custom headers forwarded to the upstream endpoint with every request. For example: `{\"X-Custom-Header\": \"value\"}`\n+sort=500\n+isAdvanced=true\n+uiProps={\"keyPlaceholder\": \"X-Custom-Header\", \"valuePlaceholder\": \"value\", \"allowSecrets\": true}",
7814
8030
  "type": "object",
7815
8031
  "additionalProperties": {
7816
8032
  "type": "string"
@@ -8124,6 +8340,14 @@
8124
8340
  "type": "string",
8125
8341
  "pattern": "^https:\\/\\/(([a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63})(\\/[^\\s]*)?$"
8126
8342
  },
8343
+ "audiences": {
8344
+ "description": "+label=Allowed Audiences\n+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.\n+sort=350\n+placeholder=e.g. https://api.example.com",
8345
+ "type": "array",
8346
+ "items": {
8347
+ "type": "string",
8348
+ "pattern": "^\\S+$"
8349
+ }
8350
+ },
8127
8351
  "login_provider": {
8128
8352
  "$ref": "#/definitions/OAuth2LoginProvider"
8129
8353
  },
@@ -8659,7 +8883,7 @@
8659
8883
  "$schema": "http://json-schema.org/draft-04/schema#"
8660
8884
  },
8661
8885
  "DatabricksServicePrincipalAuth": {
8662
- "description": "+label=Databricks Service Principal Auth\n+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.",
8886
+ "description": "+label=Databricks Service Principal Auth\n+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.",
8663
8887
  "type": "object",
8664
8888
  "required": ["type", "oauth_secret", "client_id"],
8665
8889
  "properties": {
@@ -8681,6 +8905,45 @@
8681
8905
  },
8682
8906
  "$schema": "http://json-schema.org/draft-04/schema#"
8683
8907
  },
8908
+ "DecisionClassificationStrategy": {
8909
+ "description": "+label=Decision Model\n+usage=Classify request using a TypeSafe decision model such as Jev. The gateway builds the question itself; the rubric is built in and not configurable.",
8910
+ "type": "object",
8911
+ "required": ["type", "model", "fallback_strategy"],
8912
+ "properties": {
8913
+ "type": {
8914
+ "description": "+value=decision-classifier\n+sort=1\n+label=Strategy",
8915
+ "type": "string",
8916
+ "enum": ["decision-classifier"]
8917
+ },
8918
+ "model": {
8919
+ "description": "+usage=Catalog model FQN used to classify request complexity. Must be resolvable by this tenant, must be a TypeSafe catalog model (not a virtual model), and must be a decision model.\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"model\", \"valuePattern\": \"${providerAccount.name}/${manifest.name}\", \"filterConfig\": {\"model_types\": [\"decision\"]}}\n+sort=2\n+label=Classifier Model",
8920
+ "type": "string"
8921
+ },
8922
+ "timeout_ms": {
8923
+ "description": "+usage=Maximum time to wait for the classifier response in milliseconds before applying the fallback strategy.\n+uiProps={\"descriptionInline\":true}\n+sort=3\n+label=Timeout (ms)",
8924
+ "type": "integer",
8925
+ "minimum": 0,
8926
+ "exclusiveMinimum": true,
8927
+ "default": 800
8928
+ },
8929
+ "fallback_strategy": {
8930
+ "description": "+usage=Fallback strategy applied when the classifier fails.\n+uiProps={\"descriptionInline\":true}\n+sort=4\n+label=Fallback Strategy\n+discriminator=type",
8931
+ "type": "object",
8932
+ "default": {
8933
+ "type": "heuristic"
8934
+ },
8935
+ "oneOf": [
8936
+ {
8937
+ "$ref": "#/definitions/HeuristicFallbackStrategy"
8938
+ },
8939
+ {
8940
+ "$ref": "#/definitions/StaticFallbackStrategy"
8941
+ }
8942
+ ]
8943
+ }
8944
+ },
8945
+ "$schema": "http://json-schema.org/draft-04/schema#"
8946
+ },
8684
8947
  "DeepgramApiKeyAuth": {
8685
8948
  "description": "+label=Deepgram API Key Auth\n+icon=https://assets.production.truefoundry.com/deepgram.svg",
8686
8949
  "type": "object",
@@ -12524,25 +12787,66 @@
12524
12787
  "GuardrailsConfig": {
12525
12788
  "description": "+label=Guardrails Configuration",
12526
12789
  "type": "object",
12527
- "required": ["type", "rules"],
12790
+ "required": [
12791
+ "type",
12792
+ "name",
12793
+ "when",
12794
+ "llm_input_guardrails",
12795
+ "llm_output_guardrails",
12796
+ "mcp_tool_pre_invoke_guardrails",
12797
+ "mcp_tool_post_invoke_guardrails"
12798
+ ],
12528
12799
  "properties": {
12529
12800
  "type": {
12530
- "description": "+value=gateway-guardrails-config\n+sort=2",
12801
+ "description": "+value=gateway-guardrails-config\n+sort=1",
12531
12802
  "type": "string",
12532
12803
  "enum": ["gateway-guardrails-config"]
12533
12804
  },
12534
- "rules": {
12535
- "description": "+usage=List of guardrail rules\n+uiProps={\"descriptionInline\":true}\n+sort=3\n+label=Guardrail Rules",
12805
+ "name": {
12806
+ "description": "+usage=Unique name for this guardrails configuration\n+uiProps={\"descriptionInline\":true}\n+label=Configuration Name\n+sort=2",
12807
+ "type": "string",
12808
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9\\-]{0,60}[a-zA-Z0-9])$"
12809
+ },
12810
+ "when": {
12811
+ "$ref": "#/definitions/GuardrailsWhen"
12812
+ },
12813
+ "llm_input_guardrails": {
12814
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the input (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=4\n+label=Input Guardrails",
12536
12815
  "type": "array",
12537
12816
  "items": {
12538
- "$ref": "#/definitions/GuardrailsRule"
12817
+ "type": "string"
12539
12818
  }
12819
+ },
12820
+ "llm_output_guardrails": {
12821
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the output (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=5\n+label=Output Guardrails",
12822
+ "type": "array",
12823
+ "items": {
12824
+ "type": "string"
12825
+ }
12826
+ },
12827
+ "mcp_tool_pre_invoke_guardrails": {
12828
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the MCP tool pre invoke (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=6\n+label=MCP Tool Pre Invoke Guardrails",
12829
+ "type": "array",
12830
+ "items": {
12831
+ "type": "string"
12832
+ }
12833
+ },
12834
+ "mcp_tool_post_invoke_guardrails": {
12835
+ "description": "+usage=Guardrail selectors of the guardrails to apply to the MCP tool post invoke (format: groupName/guardrailName)\n+uiProps={\"descriptionInline\":true}\n+sort=7\n+label=MCP Tool Post Invoke Guardrails",
12836
+ "type": "array",
12837
+ "items": {
12838
+ "type": "string"
12839
+ }
12840
+ },
12841
+ "custom_error_message": {
12842
+ "description": "+label=Custom Error Message\n+usage=Optional message returned to the client when a guardrail in this config blocks a request. Supported placeholders: {{guardrail_message}} (default guardrail failure detail), {{failed_guardrails}} (comma-separated list of the guardrails that failed).\n+sort=500\n+isAdvanced=true\n+placeholder=Your request was blocked by {{failed_guardrails}}: {{guardrail_message}}\n+uiProps={\"descriptionInline\":true}",
12843
+ "type": "string"
12540
12844
  }
12541
12845
  },
12542
12846
  "$schema": "http://json-schema.org/draft-04/schema#"
12543
12847
  },
12544
12848
  "GuardrailsRule": {
12545
- "description": "+label=Guardrails Rule",
12849
+ "description": "+label=Guardrails Rule (folded/legacy NATS shape)",
12546
12850
  "type": "object",
12547
12851
  "required": [
12548
12852
  "id",
@@ -13211,7 +13515,7 @@
13211
13515
  },
13212
13516
  "IdentityProviderManifest": {
13213
13517
  "type": "object",
13214
- "required": ["type", "name", "provider", "config", "resolve_token_to"],
13518
+ "required": ["type", "name", "provider", "config"],
13215
13519
  "properties": {
13216
13520
  "type": {
13217
13521
  "description": "+sort=10000\n+value=identity-provider",
@@ -13278,7 +13582,7 @@
13278
13582
  },
13279
13583
  "IdentityProviders": {
13280
13584
  "type": "string",
13281
- "enum": ["custom", "okta", "azure-entra-id", "auth0"],
13585
+ "enum": ["custom", "okta", "azure-entra-id", "kubernetes", "github", "aws", "gcp", "auth0"],
13282
13586
  "default": "custom",
13283
13587
  "$schema": "http://json-schema.org/draft-04/schema#"
13284
13588
  },
@@ -13406,6 +13710,9 @@
13406
13710
  {
13407
13711
  "$ref": "#/definitions/AwsProviderAccount"
13408
13712
  },
13713
+ {
13714
+ "$ref": "#/definitions/SnowflakeProviderAccount"
13715
+ },
13409
13716
  {
13410
13717
  "$ref": "#/definitions/AzureProviderAccount"
13411
13718
  },
@@ -13657,9 +13964,6 @@
13657
13964
  {
13658
13965
  "$ref": "#/definitions/ProvisioningSettings"
13659
13966
  },
13660
- {
13661
- "$ref": "#/definitions/LegacyAgentManifest"
13662
- },
13663
13967
  {
13664
13968
  "$ref": "#/definitions/AgentAppManifest"
13665
13969
  },
@@ -13678,9 +13982,6 @@
13678
13982
  {
13679
13983
  "$ref": "#/definitions/OidcClientManifest"
13680
13984
  },
13681
- {
13682
- "$ref": "#/definitions/AgentManifest"
13683
- },
13684
13985
  {
13685
13986
  "$ref": "#/definitions/ModelConfig"
13686
13987
  },
@@ -13829,6 +14130,12 @@
13829
14130
  "description": "+label=JWKS URI\n+usage=The public HTTPS endpoint exposing your provider's JSON Web Key Set (JWKS). TrueFoundry fetches public keys from this URL to verify JWT signatures — ensure it is reachable from the TrueFoundry control plane.\n+sort=2500\n+message=Must be a valid HTTPS URL.\n+placeholder=https://accounts.example.com/.well-known/jwks.json",
13830
14131
  "type": "string",
13831
14132
  "pattern": "^https://[^\\s/]+(/[^\\s]*)?$"
14133
+ },
14134
+ "token_ttl_seconds": {
14135
+ "description": "+label=Token TTL (seconds)\n+usage=Lifetime of tokens TrueFoundry issues after exchanging a token from this provider. Allowed range is 60 to 3600 seconds.\n+sort=3000\n+message=Must be between 60 and 3600 seconds.",
14136
+ "type": "integer",
14137
+ "minimum": 60,
14138
+ "maximum": 3600
13832
14139
  }
13833
14140
  },
13834
14141
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -14072,7 +14379,7 @@
14072
14379
  }
14073
14380
  },
14074
14381
  "notification_target": {
14075
- "$ref": "#/definitions/NotificationTarget"
14382
+ "$ref": "#/definitions/NotificationTargetForAlertRule"
14076
14383
  },
14077
14384
  "on_start": {
14078
14385
  "description": "+label=On Start\n+usage=Send an alert when the job starts\n+sort=670",
@@ -14788,7 +15095,7 @@
14788
15095
  "local_build": {
14789
15096
  "description": "run docker build locally",
14790
15097
  "type": "boolean",
14791
- "default": true
15098
+ "default": false
14792
15099
  }
14793
15100
  },
14794
15101
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -15908,6 +16215,86 @@
15908
16215
  "enum": ["system", "user", "assistant", "developer"],
15909
16216
  "$schema": "http://json-schema.org/draft-04/schema#"
15910
16217
  },
16218
+ "MicrosoftCopilotStudio": {
16219
+ "description": "+label=Microsoft Copilot Studio\n+icon=copilot-studio\n+usage=Import agents from Microsoft Copilot Studio into the TrueFoundry agent registry.",
16220
+ "type": "object",
16221
+ "required": ["type", "name"],
16222
+ "properties": {
16223
+ "type": {
16224
+ "description": "+value=integration/agent-registry/azure/microsoft-copilot-studio",
16225
+ "type": "string",
16226
+ "enum": ["integration/agent-registry/azure/microsoft-copilot-studio"]
16227
+ },
16228
+ "name": {
16229
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
16230
+ "type": "string",
16231
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
16232
+ },
16233
+ "syncSchedule": {
16234
+ "$ref": "#/definitions/CronSyncSchedule"
16235
+ },
16236
+ "auth_data": {
16237
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
16238
+ "type": "object",
16239
+ "oneOf": [
16240
+ {
16241
+ "$ref": "#/definitions/AzureCertificateAuth"
16242
+ },
16243
+ {
16244
+ "$ref": "#/definitions/AzureClientSecretAuth"
16245
+ }
16246
+ ]
16247
+ },
16248
+ "authorized_subjects": {
16249
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
16250
+ "type": "array",
16251
+ "items": {
16252
+ "type": "string"
16253
+ }
16254
+ }
16255
+ },
16256
+ "$schema": "http://json-schema.org/draft-04/schema#"
16257
+ },
16258
+ "MicrosoftFoundry": {
16259
+ "description": "+label=Microsoft Foundry\n+icon=microsoft-foundry\n+usage=Import agents from Microsoft Foundry into the TrueFoundry agent registry.",
16260
+ "type": "object",
16261
+ "required": ["type", "name"],
16262
+ "properties": {
16263
+ "type": {
16264
+ "description": "+value=integration/agent-registry/azure/microsoft-foundry",
16265
+ "type": "string",
16266
+ "enum": ["integration/agent-registry/azure/microsoft-foundry"]
16267
+ },
16268
+ "name": {
16269
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
16270
+ "type": "string",
16271
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
16272
+ },
16273
+ "syncSchedule": {
16274
+ "$ref": "#/definitions/CronSyncSchedule"
16275
+ },
16276
+ "auth_data": {
16277
+ "description": "+label=Auth Data\n+usage=Custom authentication data for the integration.\n+sort=300\n+discriminator=type",
16278
+ "type": "object",
16279
+ "oneOf": [
16280
+ {
16281
+ "$ref": "#/definitions/AzureCertificateAuth"
16282
+ },
16283
+ {
16284
+ "$ref": "#/definitions/AzureClientSecretAuth"
16285
+ }
16286
+ ]
16287
+ },
16288
+ "authorized_subjects": {
16289
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
16290
+ "type": "array",
16291
+ "items": {
16292
+ "type": "string"
16293
+ }
16294
+ }
16295
+ },
16296
+ "$schema": "http://json-schema.org/draft-04/schema#"
16297
+ },
15911
16298
  "MicrosoftFoundryModel": {
15912
16299
  "description": "+label=Microsoft Foundry Model\n+icon=azure",
15913
16300
  "type": "object",
@@ -15980,12 +16367,12 @@
15980
16367
  "pattern": "^[a-z][a-z0-9\\-]{1,30}[a-z0-9]$"
15981
16368
  },
15982
16369
  "openai_endpoint": {
15983
- "description": "+label=Azure OpenAI Endpoint\n+sort=300\n+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).\n+message=Endpoint URL must not be empty",
16370
+ "description": "+label=Azure OpenAI Endpoint\n+sort=300\n+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).\n+message=Endpoint URL must not be empty\n+uiProps={\"descriptionInline\":true}",
15984
16371
  "type": "string",
15985
16372
  "pattern": "^\\S+$"
15986
16373
  },
15987
16374
  "project_endpoint": {
15988
- "description": "+label=Project Endpoint\n+sort=310\n+usage=The Microsoft Foundry project endpoint, e.g. https://{resource-name}.services.ai.azure.com/api/projects/{project-name}.\n+message=Endpoint URL must not be empty",
16375
+ "description": "+label=Project Endpoint\n+sort=310\n+usage=The Microsoft Foundry project endpoint, e.g. https://{resource-name}.services.ai.azure.com/api/projects/{project-name}.\n+message=Endpoint URL must not be empty\n+uiProps={\"descriptionInline\":true}",
15989
16376
  "type": "string",
15990
16377
  "pattern": "^\\S+$"
15991
16378
  },
@@ -16213,6 +16600,7 @@
16213
16600
  "ocr",
16214
16601
  "responses",
16215
16602
  "video",
16603
+ "decision",
16216
16604
  "unknown",
16217
16605
  "unsupported"
16218
16606
  ],
@@ -16625,6 +17013,9 @@
16625
17013
  {
16626
17014
  "$ref": "#/definitions/WaferProviderAccount"
16627
17015
  },
17016
+ {
17017
+ "$ref": "#/definitions/TypeSafeProviderAccount"
17018
+ },
16628
17019
  {
16629
17020
  "$ref": "#/definitions/SnowflakeCortexProviderAccount"
16630
17021
  },
@@ -16674,7 +17065,8 @@
16674
17065
  "image",
16675
17066
  "responses",
16676
17067
  "ocr",
16677
- "video"
17068
+ "video",
17069
+ "decision"
16678
17070
  ],
16679
17071
  "$schema": "http://json-schema.org/draft-04/schema#"
16680
17072
  },
@@ -16870,88 +17262,16 @@
16870
17262
  "type": "object",
16871
17263
  "required": ["type"],
16872
17264
  "properties": {
16873
- "type": {
16874
- "description": "+value=nodepool_selector",
16875
- "type": "string",
16876
- "enum": ["nodepool_selector"]
16877
- },
16878
- "nodepools": {
16879
- "description": "+label=Nodepools\n+usage=Nodepools where you want to run your workload. Multiple nodepools can be selected.\n The workload is guaranteed to be scheduled on one of the nodepool",
16880
- "type": "array",
16881
- "items": {
16882
- "type": "string"
16883
- }
16884
- }
16885
- },
16886
- "$schema": "http://json-schema.org/draft-04/schema#"
16887
- },
16888
- "CatoNetworksApiKeyAuth": {
16889
- "description": "+label=Cato Networks API Key Auth",
16890
- "type": "object",
16891
- "required": ["type", "api_key"],
16892
- "properties": {
16893
- "type": {
16894
- "description": "+value=api-key",
16895
- "type": "string",
16896
- "enum": ["api-key"]
16897
- },
16898
- "api_key": {
16899
- "description": "+sort=100\n+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.\n+message=API key must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
16900
- "type": "string",
16901
- "pattern": "^\\S+$"
16902
- }
16903
- },
16904
- "$schema": "http://json-schema.org/draft-04/schema#"
16905
- },
16906
- "CatoNetworksGuardrailConfig": {
16907
- "description": "+label=Cato Networks\n+icon=https://assets.production.truefoundry.com/cato.png",
16908
- "type": "object",
16909
- "required": ["name", "type", "auth_data", "operation", "enforcing_strategy", "config"],
16910
- "properties": {
16911
- "name": {
16912
- "description": "+label=Name\n+sort=50\n+usage=The name of the Guardrail Config.\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number\n+uiProps={\"disableEdit\":true}",
16913
- "type": "string",
16914
- "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
16915
- },
16916
- "description": {
16917
- "description": "+label=Description\n+sort=75\n+usage=Optional description for this Guardrail Config.",
16918
- "type": "string",
16919
- "default": "Cato AI Security runtime protection for prompts and model responses"
16920
- },
16921
- "type": {
16922
- "description": "+uiType=Hidden\n+value=integration/guardrail-config/cato-networks",
16923
- "type": "string",
16924
- "enum": ["integration/guardrail-config/cato-networks"]
16925
- },
16926
- "auth_data": {
16927
- "$ref": "#/definitions/CatoNetworksApiKeyAuth"
16928
- },
16929
- "operation": {
16930
- "description": "+label=Operation\n+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.\nValidate guardrails are run in parallel while mutate guardrails are run sequentially.\n+uiType=MultiSelectPills\n+uiProps={\"hideRadioIcon\": true}\n+sort=100",
16931
- "type": "string",
16932
- "enum": ["mutate", "validate"],
16933
- "default": "mutate"
16934
- },
16935
- "priority": {
16936
- "description": "+label=Priority\n+usage=Execution order for mutate guardrails. Lower values run first. Only applicable when operation is mutate.\n+sort=150",
16937
- "type": "integer",
16938
- "minimum": 0,
16939
- "exclusiveMinimum": true,
16940
- "default": 1
16941
- },
16942
- "enforcing_strategy": {
16943
- "$ref": "#/definitions/EnforcingStrategy"
17265
+ "type": {
17266
+ "description": "+value=nodepool_selector",
17267
+ "type": "string",
17268
+ "enum": ["nodepool_selector"]
16944
17269
  },
16945
- "config": {
16946
- "description": "+uiType=Ignore\n+uiProps={\"forwardJsonKey\": true}",
16947
- "type": "object",
16948
- "required": ["base_url"],
16949
- "properties": {
16950
- "base_url": {
16951
- "description": "+label=Base URL\n+usage=Cato API base URL. Use the regional Cato endpoint or the URL of a Cato Outpost in your environment. Trailing slashes are ignored.\n+sort=50\n+message=Base URL must be an http or https URL",
16952
- "type": "string",
16953
- "pattern": "^https?:\\/\\/\\S+$"
16954
- }
17270
+ "nodepools": {
17271
+ "description": "+label=Nodepools\n+usage=Nodepools where you want to run your workload. Multiple nodepools can be selected.\n The workload is guaranteed to be scheduled on one of the nodepool",
17272
+ "type": "array",
17273
+ "items": {
17274
+ "type": "string"
16955
17275
  }
16956
17276
  }
16957
17277
  },
@@ -17213,7 +17533,7 @@
17213
17533
  "$schema": "http://json-schema.org/draft-04/schema#"
17214
17534
  },
17215
17535
  "NotificationTargetForAlertRule": {
17216
- "description": "+discriminator=type",
17536
+ "description": "Service, job, workflow, and cluster deployment alerts. Teams is not supported on these alerts.\n+discriminator=type",
17217
17537
  "type": "object",
17218
17538
  "oneOf": [
17219
17539
  {
@@ -17227,9 +17547,6 @@
17227
17547
  },
17228
17548
  {
17229
17549
  "$ref": "#/definitions/PagerDuty"
17230
- },
17231
- {
17232
- "$ref": "#/definitions/MSTeamsWebhook"
17233
17550
  }
17234
17551
  ],
17235
17552
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -19873,6 +20190,9 @@
19873
20190
  {
19874
20191
  "$ref": "#/definitions/AwsIntegrations"
19875
20192
  },
20193
+ {
20194
+ "$ref": "#/definitions/SnowflakeIntegrations"
20195
+ },
19876
20196
  {
19877
20197
  "$ref": "#/definitions/GcpIntegrations"
19878
20198
  },
@@ -19996,6 +20316,9 @@
19996
20316
  {
19997
20317
  "$ref": "#/definitions/WaferIntegrations"
19998
20318
  },
20319
+ {
20320
+ "$ref": "#/definitions/TypeSafeIntegrations"
20321
+ },
19999
20322
  {
20000
20323
  "$ref": "#/definitions/HashicorpIntegrations"
20001
20324
  },
@@ -21315,6 +21638,45 @@
21315
21638
  },
21316
21639
  "$schema": "http://json-schema.org/draft-04/schema#"
21317
21640
  },
21641
+ "RemoteAgentSource": {
21642
+ "description": "+label=Source\n+usage=Where the agent originated from.",
21643
+ "type": "object",
21644
+ "required": ["type"],
21645
+ "properties": {
21646
+ "type": {
21647
+ "description": "+label=Type\n+usage=Where the agent originated from.\n+sort=100\n+uiType=Select",
21648
+ "type": "string",
21649
+ "enum": [
21650
+ "trueforge",
21651
+ "aws-agentcore-harness",
21652
+ "aws-agentcore-runtime",
21653
+ "microsoft-foundry",
21654
+ "microsoft-copilot-studio"
21655
+ ]
21656
+ },
21657
+ "provider_integration_fqn": {
21658
+ "description": "+label=Provider Integration FQN\n+usage=FQN of the provider integration used by this agent source.\n+sort=250\n+uiType=IntegrationSelect\n+uiProps={\"integrationType\":\"agent-registry\"}",
21659
+ "type": "string"
21660
+ },
21661
+ "external_name": {
21662
+ "description": "+label=External Name\n+usage=Name of the agent in the external source system.\n+sort=300",
21663
+ "type": "string"
21664
+ },
21665
+ "external_id": {
21666
+ "description": "+label=External ID\n+usage=ID of the agent in the external source system.\n+sort=310",
21667
+ "type": "string"
21668
+ },
21669
+ "entra_agent_identity_id": {
21670
+ "description": "+label=Entra Agent Identity ID\n+usage=Entra agent identity object ID (AgentIdentityId).\n+sort=400",
21671
+ "type": "string"
21672
+ },
21673
+ "entra_blueprint_id": {
21674
+ "description": "+label=Entra Blueprint ID\n+usage=Entra Agent Identity Blueprint ID (AgentIdentityBlueprintId).\n+sort=410",
21675
+ "type": "string"
21676
+ }
21677
+ },
21678
+ "$schema": "http://json-schema.org/draft-04/schema#"
21679
+ },
21318
21680
  "RemoteAgentV2": {
21319
21681
  "description": "+label=Remote",
21320
21682
  "type": "object",
@@ -21330,11 +21692,26 @@
21330
21692
  "type": "string",
21331
21693
  "pattern": "^[a-z][a-z0-9\\-]{0,62}[a-z0-9]$"
21332
21694
  },
21695
+ "display_name": {
21696
+ "description": "+label=Display Name\n+usage=A human-readable label for the Agent in the UI. If omitted, the agent name is shown.\n+message=1 to 128 characters long\n+sort=105",
21697
+ "type": "string",
21698
+ "minLength": 1,
21699
+ "maxLength": 128
21700
+ },
21333
21701
  "description": {
21334
21702
  "description": "+label=Description\n+usage=A short note on what this agent does — shown in the registry list and audit trail.\n+sort=110\n+uiType=TextArea",
21335
21703
  "type": "string",
21336
21704
  "maxLength": 2000
21337
21705
  },
21706
+ "source": {
21707
+ "$ref": "#/definitions/RemoteAgentSource"
21708
+ },
21709
+ "state": {
21710
+ "description": "+label=State\n+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.\n+sort=116\n+uiType=Select",
21711
+ "type": "string",
21712
+ "enum": ["active", "unmanaged", "inactive"],
21713
+ "default": "active"
21714
+ },
21338
21715
  "identity": {
21339
21716
  "$ref": "#/definitions/RemoteAgentV2AgentIdentity"
21340
21717
  },
@@ -22628,7 +23005,7 @@
22628
23005
  "type": "boolean"
22629
23006
  },
22630
23007
  "max_pat_expiry_minutes": {
22631
- "description": "+label=Maximum Expiry Time for Personal Access Token (PAT) in days\n+usage=Personal Access Tokens cannot be created with an expiry longer than this. Maximum allowed is 365 days.\n+sort=2\n+message=Maximum expiry time must be between 1 and 365 days",
23008
+ "description": "+label=Maximum Expiry Time for Personal Access Token (PAT) in days\n+usage=Personal Access Tokens cannot be created with an expiry longer than this. Maximum allowed is 7000 days.\n+sort=2\n+message=Maximum expiry time must be between 1 and 7000 days",
22632
23009
  "type": "integer",
22633
23010
  "minimum": 1
22634
23011
  },
@@ -22637,12 +23014,23 @@
22637
23014
  "type": "integer",
22638
23015
  "minimum": 1
22639
23016
  },
22640
- "mandate_team_selection_in_pat": {
22641
- "description": "+label=Mandate Team Selection in Personal Access Token (PAT)\n+usage=Require a team owner to be selected while creating a Personal Access Token.\n+sort=4\n+uiProps={\"descriptionInline\":true}",
23017
+ "pat_team_assignment_mode": {
23018
+ "description": "+label=Personal Access Token (PAT) Team Assignment Mode\n+usage=Controls whether assigning a team owner while creating a Personal Access Token is required, optional, or disabled.\n+sort=4\n+uiType=RadioCard\n+uiProps={\"descriptionInline\":true}",
23019
+ "type": "string",
23020
+ "enum": ["optional", "required", "disabled"],
23021
+ "default": "optional"
23022
+ },
23023
+ "enable_pat_retrieval_after_creation": {
23024
+ "description": "+label=Enable PAT Retrieval After Creation\n+usage=Allow users to retrieve the value of their own Personal Access Tokens via API after creation.\n+sort=5\n+uiProps={\"descriptionInline\":true}",
23025
+ "type": "boolean",
23026
+ "default": false
23027
+ },
23028
+ "enable_viewing_secrets": {
23029
+ "description": "+label=Enable Viewing Secret\n+usage=Allow users with permission to view plaintext secret values in the UI and API. When disabled, secret values are never returned.\n+sort=6\n+uiProps={\"descriptionInline\":true}",
22642
23030
  "type": "boolean"
22643
23031
  },
22644
23032
  "to_emails": {
22645
- "description": "+label=Send security updates to\n+usage=Email addresses to receive security-related notifications.\n+sort=5\n+message=Must be a valid email address",
23033
+ "description": "+label=Send security updates to\n+usage=Email addresses to receive security-related notifications.\n+sort=7\n+message=Must be a valid email address",
22646
23034
  "type": "array",
22647
23035
  "items": {
22648
23036
  "type": "string",
@@ -23036,11 +23424,11 @@
23036
23424
  "minLength": 1
23037
23425
  },
23038
23426
  "channels": {
23039
- "description": "+label=Slack Channel Names\n+usage=List of channels to send messages to.\n+message=3 to 81 lower case characters long alphanumeric word, may contain - or _ in between, must start with #\n+sort=665",
23427
+ "description": "+label=Slack Channel Names\n+usage=List of channels to send messages to.\n+message=2 to 80 lower case characters long alphanumeric word, may contain - or _ in between, optional leading #\n+sort=665",
23040
23428
  "type": "array",
23041
23429
  "items": {
23042
23430
  "type": "string",
23043
- "pattern": "^#[a-z0-9\\-_]{2,80}$"
23431
+ "pattern": "^#?[a-z0-9\\-_]{2,80}$"
23044
23432
  }
23045
23433
  }
23046
23434
  },
@@ -23347,6 +23735,37 @@
23347
23735
  },
23348
23736
  "$schema": "http://json-schema.org/draft-04/schema#"
23349
23737
  },
23738
+ "SnowflakeCortexAgentRegistry": {
23739
+ "description": "+label=Snowflake Cortex Agents\n+icon=snowflake-cortex\n+usage=Import agents from Snowflake Cortex into the TrueFoundry agent registry.",
23740
+ "type": "object",
23741
+ "required": ["type", "name"],
23742
+ "properties": {
23743
+ "type": {
23744
+ "description": "+value=integration/agent-registry/snowflake/cortex-agent",
23745
+ "type": "string",
23746
+ "enum": ["integration/agent-registry/snowflake/cortex-agent"]
23747
+ },
23748
+ "name": {
23749
+ "description": "+label=Display Name\n+usage=The name of the integration that will be displayed in the TrueFoundry UI.\n+sort=100\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number",
23750
+ "type": "string",
23751
+ "pattern": "^[a-z][a-z0-9\\-]{1,34}[a-z0-9]$"
23752
+ },
23753
+ "auth_data": {
23754
+ "$ref": "#/definitions/SnowflakePatTokenAuth"
23755
+ },
23756
+ "syncSchedule": {
23757
+ "$ref": "#/definitions/CronSyncSchedule"
23758
+ },
23759
+ "authorized_subjects": {
23760
+ "description": "+label=Access Control\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+sort=600\n+uiType=AuthorizedSubjects",
23761
+ "type": "array",
23762
+ "items": {
23763
+ "type": "string"
23764
+ }
23765
+ }
23766
+ },
23767
+ "$schema": "http://json-schema.org/draft-04/schema#"
23768
+ },
23350
23769
  "SnowflakeCortexIntegrations": {
23351
23770
  "$ref": "#/definitions/SnowflakeCortexModel",
23352
23771
  "$schema": "http://json-schema.org/draft-04/schema#"
@@ -23456,6 +23875,64 @@
23456
23875
  },
23457
23876
  "$schema": "http://json-schema.org/draft-04/schema#"
23458
23877
  },
23878
+ "SnowflakeIntegrations": {
23879
+ "$ref": "#/definitions/SnowflakeCortexAgentRegistry",
23880
+ "$schema": "http://json-schema.org/draft-04/schema#"
23881
+ },
23882
+ "SnowflakePatTokenAuth": {
23883
+ "description": "+label=PAT",
23884
+ "type": "object",
23885
+ "required": ["type", "pat_token"],
23886
+ "properties": {
23887
+ "type": {
23888
+ "description": "+value=pat-token",
23889
+ "type": "string",
23890
+ "enum": ["pat-token"]
23891
+ },
23892
+ "pat_token": {
23893
+ "description": "+label=PAT Token\n+sort=100\n+usage=Snowflake programmatic access token. The account's network policy must allow the TrueFoundry control plane and gateway egress IPs.\n+message=PAT token must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
23894
+ "type": "string",
23895
+ "pattern": "^\\S+$"
23896
+ }
23897
+ },
23898
+ "$schema": "http://json-schema.org/draft-04/schema#"
23899
+ },
23900
+ "SnowflakeProviderAccount": {
23901
+ "description": "+label=Snowflake\n+icon=snowflake-cortex\n+heroDataKey=account_identifier",
23902
+ "type": "object",
23903
+ "required": ["type", "name", "account_identifier", "auth_data", "integrations"],
23904
+ "properties": {
23905
+ "type": {
23906
+ "description": "+value=provider-account/snowflake",
23907
+ "type": "string",
23908
+ "enum": ["provider-account/snowflake"]
23909
+ },
23910
+ "name": {
23911
+ "description": "+label=Name\n+sort=100\n+usage=The name of the Snowflake provider account\n+message=3 to 36 lower case characters long alphanumeric word, may contain - in between, cannot start with a number\n+uiProps={\"disableEdit\":true}",
23912
+ "type": "string",
23913
+ "pattern": "^[a-z](?:[a-z0-9]|-(?!-)){1,34}[a-z0-9]$"
23914
+ },
23915
+ "account_identifier": {
23916
+ "description": "+label=Snowflake Account Identifier\n+sort=200\n+message=Snowflake account identifier must not be empty\n+usage=Snowflake account identifier, as in https://<account_identifier>.snowflakecomputing.com. Insert the identifier only, without the URL.",
23917
+ "type": "string",
23918
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9\\-_.]*$"
23919
+ },
23920
+ "auth_data": {
23921
+ "$ref": "#/definitions/SnowflakePatTokenAuth"
23922
+ },
23923
+ "integrations": {
23924
+ "description": "+label=Integrations\n+sort=400\n+usage=List of integrations that are associated with the Snowflake provider account\n+uiType=IntegrationsGroup",
23925
+ "type": "array",
23926
+ "items": {
23927
+ "$ref": "#/definitions/SnowflakeIntegrations"
23928
+ }
23929
+ },
23930
+ "ownedBy": {
23931
+ "$ref": "#/definitions/OwnedBy"
23932
+ }
23933
+ },
23934
+ "$schema": "http://json-schema.org/draft-04/schema#"
23935
+ },
23459
23936
  "SnowflakeSql": {
23460
23937
  "type": "object",
23461
23938
  "required": ["statement"],
@@ -26513,6 +26990,118 @@
26513
26990
  },
26514
26991
  "$schema": "http://json-schema.org/draft-04/schema#"
26515
26992
  },
26993
+ "TypeSafeAPIKeyAuth": {
26994
+ "description": "+label=TypeSafe API Key Auth\n+icon=https://assets.production.truefoundry.com/typesafe.svg",
26995
+ "type": "object",
26996
+ "required": ["type", "api_key"],
26997
+ "properties": {
26998
+ "type": {
26999
+ "description": "+value=api-key",
27000
+ "type": "string",
27001
+ "enum": ["api-key"]
27002
+ },
27003
+ "api_key": {
27004
+ "description": "+label=API Key\n+sort=100\n+usage=The TypeSafe API key, sent to the model as an Authorization Bearer token\n+message=API key must not be empty\n+uiType=SecretSelect\n+uiProps={\"isPassword\": true, \"enableNew\": true}",
27005
+ "type": "string",
27006
+ "pattern": "^\\S+$"
27007
+ }
27008
+ },
27009
+ "$schema": "http://json-schema.org/draft-04/schema#"
27010
+ },
27011
+ "TypeSafeIntegrations": {
27012
+ "$ref": "#/definitions/TypeSafeModel",
27013
+ "$schema": "http://json-schema.org/draft-04/schema#"
27014
+ },
27015
+ "TypeSafeModel": {
27016
+ "description": "+label=TypeSafe Model\n+icon=https://assets.production.truefoundry.com/typesafe.svg",
27017
+ "type": "object",
27018
+ "required": ["type", "name", "model_id", "model_types"],
27019
+ "properties": {
27020
+ "type": {
27021
+ "description": "+value=integration/model/typesafe",
27022
+ "type": "string",
27023
+ "enum": ["integration/model/typesafe"]
27024
+ },
27025
+ "name": {
27026
+ "description": "+label=Display Name\n+sort=1\n+usage=A descriptive name to identify this model integration in the UI\n+message=2 to 64 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number",
27027
+ "type": "string",
27028
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9\\-._]{0,62}[a-zA-Z0-9])$"
27029
+ },
27030
+ "model_id": {
27031
+ "description": "+label=Model ID\n+sort=2\n+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).\n+message=Model ID must not be empty\n+uiProps={\"descriptionInline\":true}",
27032
+ "type": "string",
27033
+ "pattern": "^\\S+$"
27034
+ },
27035
+ "model_types": {
27036
+ "description": "+label=Model Types\n+sort=3\n+usage=Specify the type of the TypeSafe model\n+uiProps={\"disableAllOption\": true}",
27037
+ "type": "array",
27038
+ "items": {
27039
+ "$ref": "#/definitions/ModelType"
27040
+ },
27041
+ "default": ["decision"]
27042
+ },
27043
+ "cost": {
27044
+ "$ref": "#/definitions/ModelCostMetric"
27045
+ },
27046
+ "authorized_subjects": {
27047
+ "description": "+label=Access Control\n+sort=5\n+usage=List of subjects that are authorized to access this integration. List of user fqn in format <user_type>:<username>.\n+uiType=Hidden",
27048
+ "type": "array",
27049
+ "items": {
27050
+ "type": "string"
27051
+ }
27052
+ }
27053
+ },
27054
+ "$schema": "http://json-schema.org/draft-04/schema#"
27055
+ },
27056
+ "TypeSafeProviderAccount": {
27057
+ "description": "+label=TypeSafe Model Account\n+icon=https://assets.production.truefoundry.com/typesafe.svg",
27058
+ "type": "object",
27059
+ "required": ["type", "name", "auth_data"],
27060
+ "properties": {
27061
+ "type": {
27062
+ "description": "+value=provider-account/typesafe",
27063
+ "type": "string",
27064
+ "enum": ["provider-account/typesafe"]
27065
+ },
27066
+ "name": {
27067
+ "description": "+label=Name\n+sort=100\n+usage=The name of the TypeSafe model account\n+message=2 to 62 characters long alphanumeric word, may contain - , . or _ in between, cannot start with a number",
27068
+ "type": "string",
27069
+ "pattern": "^[a-zA-Z](?:[a-zA-Z0-9\\-._]{0,60}[a-zA-Z0-9])$"
27070
+ },
27071
+ "auth_data": {
27072
+ "$ref": "#/definitions/TypeSafeAPIKeyAuth"
27073
+ },
27074
+ "base_url": {
27075
+ "description": "+label=Base URL\n+sort=250\n+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.\n+message=Base URL must not be empty",
27076
+ "type": "string",
27077
+ "pattern": "^\\S+$"
27078
+ },
27079
+ "integrations": {
27080
+ "description": "+label=Integrations\n+sort=300\n+usage=List of integrations that are associated with the TypeSafe model account\n+uiType=IntegrationsGroup",
27081
+ "type": "array",
27082
+ "items": {
27083
+ "$ref": "#/definitions/TypeSafeIntegrations"
27084
+ }
27085
+ },
27086
+ "collaborators": {
27087
+ "description": "+label=Collaborators\n+sort=400\n+usage=List of users who have access to this model account\n+uiType=Collaborators",
27088
+ "type": "array",
27089
+ "items": {
27090
+ "$ref": "#/definitions/Collaborator"
27091
+ }
27092
+ },
27093
+ "ownedBy": {
27094
+ "$ref": "#/definitions/OwnedBy"
27095
+ },
27096
+ "discount_percent": {
27097
+ "description": "+label=Discount %\n+sort=650\n+uiProps={\"allowDecimal\": true}\n+usage=Discount % applied to upstream list price for this model account.\n+placeholder=Value should be in the range of 0–100\n+isAdvanced=true",
27098
+ "type": "number",
27099
+ "minimum": 0,
27100
+ "maximum": 100
27101
+ }
27102
+ },
27103
+ "$schema": "http://json-schema.org/draft-04/schema#"
27104
+ },
26516
27105
  "UV": {
26517
27106
  "description": "+usage=Use `uv` to setup env.\nYour build context root must contain `pyproject.toml` and `uv.lock`\n+label=uv",
26518
27107
  "type": "object",
@@ -27062,7 +27651,8 @@
27062
27651
  "text_to_speech",
27063
27652
  "image",
27064
27653
  "responses",
27065
- "video"
27654
+ "video",
27655
+ "decision"
27066
27656
  ],
27067
27657
  "$schema": "http://json-schema.org/draft-04/schema#"
27068
27658
  },
@@ -27603,7 +28193,7 @@
27603
28193
  "type": "object",
27604
28194
  "properties": {
27605
28195
  "notification_target": {
27606
- "$ref": "#/definitions/NotificationTarget"
28196
+ "$ref": "#/definitions/NotificationTargetForAlertRule"
27607
28197
  },
27608
28198
  "on_completion": {
27609
28199
  "description": "+label=On Completion\n+usage=Send an alert when the job completes\n+sort=680",
@@ -27857,6 +28447,9 @@
27857
28447
  "AI21ProviderAccount": {
27858
28448
  "$ref": "#/definitions/AI21ProviderAccount"
27859
28449
  },
28450
+ "AIFeaturesModels": {
28451
+ "$ref": "#/definitions/AIFeaturesModels"
28452
+ },
27860
28453
  "AIFeaturesSettings": {
27861
28454
  "$ref": "#/definitions/AIFeaturesSettings"
27862
28455
  },
@@ -28073,6 +28666,12 @@
28073
28666
  "AwsAccessKeyBasedAuth": {
28074
28667
  "$ref": "#/definitions/AwsAccessKeyBasedAuth"
28075
28668
  },
28669
+ "AwsAgentCoreHarness": {
28670
+ "$ref": "#/definitions/AwsAgentCoreHarness"
28671
+ },
28672
+ "AwsAgentCoreRuntime": {
28673
+ "$ref": "#/definitions/AwsAgentCoreRuntime"
28674
+ },
28076
28675
  "AwsAssumedRoleBasedAuth": {
28077
28676
  "$ref": "#/definitions/AwsAssumedRoleBasedAuth"
28078
28677
  },
@@ -28415,6 +29014,12 @@
28415
29014
  "CartesiaProviderAccount": {
28416
29015
  "$ref": "#/definitions/CartesiaProviderAccount"
28417
29016
  },
29017
+ "CatoNetworksApiKeyAuth": {
29018
+ "$ref": "#/definitions/CatoNetworksApiKeyAuth"
29019
+ },
29020
+ "CatoNetworksGuardrailConfig": {
29021
+ "$ref": "#/definitions/CatoNetworksGuardrailConfig"
29022
+ },
28418
29023
  "CedarGuardrailConfig": {
28419
29024
  "$ref": "#/definitions/CedarGuardrailConfig"
28420
29025
  },
@@ -28511,6 +29116,9 @@
28511
29116
  "CronMetric": {
28512
29117
  "$ref": "#/definitions/CronMetric"
28513
29118
  },
29119
+ "CronSyncSchedule": {
29120
+ "$ref": "#/definitions/CronSyncSchedule"
29121
+ },
28514
29122
  "CrowdStrikeAIDRGuardrailConfig": {
28515
29123
  "$ref": "#/definitions/CrowdStrikeAIDRGuardrailConfig"
28516
29124
  },
@@ -28625,6 +29233,9 @@
28625
29233
  "DatabricksServicePrincipalAuth": {
28626
29234
  "$ref": "#/definitions/DatabricksServicePrincipalAuth"
28627
29235
  },
29236
+ "DecisionClassificationStrategy": {
29237
+ "$ref": "#/definitions/DecisionClassificationStrategy"
29238
+ },
28628
29239
  "DeepgramApiKeyAuth": {
28629
29240
  "$ref": "#/definitions/DeepgramApiKeyAuth"
28630
29241
  },
@@ -29048,15 +29659,15 @@
29048
29659
  "HeuristicFallbackStrategy": {
29049
29660
  "$ref": "#/definitions/HeuristicFallbackStrategy"
29050
29661
  },
29662
+ "HostedA2AAgent": {
29663
+ "$ref": "#/definitions/HostedA2AAgent"
29664
+ },
29051
29665
  "HiddenLayerGuardrailConfig": {
29052
29666
  "$ref": "#/definitions/HiddenLayerGuardrailConfig"
29053
29667
  },
29054
29668
  "HiddenLayerOAuth2ClientCredentialsAuth": {
29055
29669
  "$ref": "#/definitions/HiddenLayerOAuth2ClientCredentialsAuth"
29056
29670
  },
29057
- "HostedA2AAgent": {
29058
- "$ref": "#/definitions/HostedA2AAgent"
29059
- },
29060
29671
  "HttpProbe": {
29061
29672
  "$ref": "#/definitions/HttpProbe"
29062
29673
  },
@@ -29375,6 +29986,12 @@
29375
29986
  "MessageOption": {
29376
29987
  "$ref": "#/definitions/MessageOption"
29377
29988
  },
29989
+ "MicrosoftCopilotStudio": {
29990
+ "$ref": "#/definitions/MicrosoftCopilotStudio"
29991
+ },
29992
+ "MicrosoftFoundry": {
29993
+ "$ref": "#/definitions/MicrosoftFoundry"
29994
+ },
29378
29995
  "MicrosoftFoundryModel": {
29379
29996
  "$ref": "#/definitions/MicrosoftFoundryModel"
29380
29997
  },
@@ -29462,12 +30079,6 @@
29462
30079
  "NodepoolSelector": {
29463
30080
  "$ref": "#/definitions/NodepoolSelector"
29464
30081
  },
29465
- "CatoNetworksApiKeyAuth": {
29466
- "$ref": "#/definitions/CatoNetworksApiKeyAuth"
29467
- },
29468
- "CatoNetworksGuardrailConfig": {
29469
- "$ref": "#/definitions/CatoNetworksGuardrailConfig"
29470
- },
29471
30082
  "NomaSecurityApiKeyAuth": {
29472
30083
  "$ref": "#/definitions/NomaSecurityApiKeyAuth"
29473
30084
  },
@@ -29981,6 +30592,9 @@
29981
30592
  "RemoteAgentProxyViaGatewayConfig": {
29982
30593
  "$ref": "#/definitions/RemoteAgentProxyViaGatewayConfig"
29983
30594
  },
30595
+ "RemoteAgentSource": {
30596
+ "$ref": "#/definitions/RemoteAgentSource"
30597
+ },
29984
30598
  "RemoteAgentV2": {
29985
30599
  "$ref": "#/definitions/RemoteAgentV2"
29986
30600
  },
@@ -30194,6 +30808,9 @@
30194
30808
  "SnowflakeConfig": {
30195
30809
  "$ref": "#/definitions/SnowflakeConfig"
30196
30810
  },
30811
+ "SnowflakeCortexAgentRegistry": {
30812
+ "$ref": "#/definitions/SnowflakeCortexAgentRegistry"
30813
+ },
30197
30814
  "SnowflakeCortexIntegrations": {
30198
30815
  "$ref": "#/definitions/SnowflakeCortexIntegrations"
30199
30816
  },
@@ -30206,6 +30823,15 @@
30206
30823
  "SnowflakeCortexProviderAccount": {
30207
30824
  "$ref": "#/definitions/SnowflakeCortexProviderAccount"
30208
30825
  },
30826
+ "SnowflakeIntegrations": {
30827
+ "$ref": "#/definitions/SnowflakeIntegrations"
30828
+ },
30829
+ "SnowflakePatTokenAuth": {
30830
+ "$ref": "#/definitions/SnowflakePatTokenAuth"
30831
+ },
30832
+ "SnowflakeProviderAccount": {
30833
+ "$ref": "#/definitions/SnowflakeProviderAccount"
30834
+ },
30209
30835
  "SnowflakeSql": {
30210
30836
  "$ref": "#/definitions/SnowflakeSql"
30211
30837
  },
@@ -30563,6 +31189,18 @@
30563
31189
  "TruefoundryFlyteTaskTemplate": {
30564
31190
  "$ref": "#/definitions/TruefoundryFlyteTaskTemplate"
30565
31191
  },
31192
+ "TypeSafeAPIKeyAuth": {
31193
+ "$ref": "#/definitions/TypeSafeAPIKeyAuth"
31194
+ },
31195
+ "TypeSafeIntegrations": {
31196
+ "$ref": "#/definitions/TypeSafeIntegrations"
31197
+ },
31198
+ "TypeSafeModel": {
31199
+ "$ref": "#/definitions/TypeSafeModel"
31200
+ },
31201
+ "TypeSafeProviderAccount": {
31202
+ "$ref": "#/definitions/TypeSafeProviderAccount"
31203
+ },
30566
31204
  "UV": {
30567
31205
  "$ref": "#/definitions/UV"
30568
31206
  },