diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index 1a0972d5a21f..ef3ae811327b 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -57962,6 +57962,9 @@ components:
type: string
type: object
LLMObsContentBlock:
+ anyOf:
+ - $ref: '#/components/schemas/LLMObsFrontendContentBlock'
+ - $ref: '#/components/schemas/LLMObsLegacyContentBlock'
description: |-
A single content block rendered inside a `display_block` interaction.
`type` discriminates which other fields are meaningful:
@@ -57972,6 +57975,7 @@ components:
- `image`: `url` is required.
- `widget`: `tileDef` is required (any well-formed JSON; the frontend owns the renderable schema).
- `llmobs_trace`: `traceId` is required; `interactionType`, when set, must be `trace` or `experiment_trace`.
+ - `frontend`: `code` is required and must be a non-empty string; `label` is optional.
`height`, when set, must be positive.
properties:
@@ -57979,11 +57983,13 @@ components:
description: Alternative text for an `image` block.
example: "Example image"
type: string
+ code:
+ $ref: '#/components/schemas/LLMObsFrontendContentBlockCode'
content:
description: |-
Block payload. A string for `markdown`, `header`, and `text`; an
arbitrary JSON value (object, array, or scalar) for `json`. Omitted
- for `image`, `widget`, and `llmobs_trace`.
+ for `image`, `widget`, `llmobs_trace`, and `frontend`.
example: "## Triage Instructions"
height:
description: Optional rendered height. Must be positive when set.
@@ -57993,7 +57999,7 @@ components:
interactionType:
$ref: '#/components/schemas/LLMObsContentBlockLLMObsTraceInteractionType'
label:
- description: Optional label rendered alongside the block.
+ description: Optional label rendered alongside a `frontend` block.
example: "Triage Instructions"
type: string
level:
@@ -58081,6 +58087,7 @@ components:
- image
- widget
- llmobs_trace
+ - frontend
example: markdown
type: string
x-enum-varnames:
@@ -58091,6 +58098,7 @@ components:
- IMAGE
- WIDGET
- LLMOBS_TRACE
+ - FRONTEND
LLMObsContentBlocks:
description: |-
List of content blocks that make up a `display_block` interaction.
@@ -60915,6 +60923,29 @@ components:
required:
- data
type: object
+ LLMObsFrontendContentBlock:
+ description: Validation requirements for a `frontend` display block.
+ properties:
+ code:
+ $ref: '#/components/schemas/LLMObsFrontendContentBlockCode'
+ type:
+ $ref: '#/components/schemas/LLMObsFrontendContentBlockType'
+ required:
+ - code
+ type: object
+ LLMObsFrontendContentBlockCode:
+ description: HTML code rendered by a `frontend` block. Required for `frontend` blocks.
+ example: '
Ready for review
'
+ minLength: 1
+ type: string
+ LLMObsFrontendContentBlockType:
+ description: Type discriminator for a `frontend` display block.
+ enum:
+ - frontend
+ example: frontend
+ type: string
+ x-enum-varnames:
+ - FRONTEND
LLMObsInferenceCode:
description: A generated code snippet for running an inference request programmatically.
properties:
@@ -61520,6 +61551,32 @@ components:
- CATEGORICAL
- BOOLEAN
- TEXT
+ LLMObsLegacyContentBlock:
+ description: Validation requirements for an existing non-frontend display block.
+ properties:
+ type:
+ $ref: '#/components/schemas/LLMObsLegacyContentBlockType'
+ type: object
+ LLMObsLegacyContentBlockType:
+ description: Type discriminator for an existing non-frontend display block.
+ enum:
+ - markdown
+ - header
+ - text
+ - json
+ - image
+ - widget
+ - llmobs_trace
+ example: markdown
+ type: string
+ x-enum-varnames:
+ - MARKDOWN
+ - HEADER
+ - TEXT
+ - JSON
+ - IMAGE
+ - WIDGET
+ - LLMOBS_TRACE
LLMObsMetricAssessment:
description: Assessment result for an Agent Observability experiment metric.
enum:
@@ -169960,6 +170017,9 @@ paths:
experiment_id: abc-123
label: "Experiments"
type: json
+ - code: 'Ready for review
'
+ label: "Review status"
+ type: frontend
type: display_block
type: interactions
schema:
diff --git a/packages/datadog-api-client-v2/index.ts b/packages/datadog-api-client-v2/index.ts
index 442644ed7b39..b369a13d8a0d 100644
--- a/packages/datadog-api-client-v2/index.ts
+++ b/packages/datadog-api-client-v2/index.ts
@@ -5715,6 +5715,8 @@ export { LLMObsExperimentUpdateDataAttributesRequest } from "./models/LLMObsExpe
export { LLMObsExperimentUpdateDataRequest } from "./models/LLMObsExperimentUpdateDataRequest";
export { LLMObsExperimentUpdateRequest } from "./models/LLMObsExperimentUpdateRequest";
export { LLMObsExperimentUser } from "./models/LLMObsExperimentUser";
+export { LLMObsFrontendContentBlock } from "./models/LLMObsFrontendContentBlock";
+export { LLMObsFrontendContentBlockType } from "./models/LLMObsFrontendContentBlockType";
export { LLMObsInferenceCode } from "./models/LLMObsInferenceCode";
export { LLMObsInferenceContent } from "./models/LLMObsInferenceContent";
export { LLMObsInferenceContentValue } from "./models/LLMObsInferenceContentValue";
@@ -5733,6 +5735,8 @@ export { LLMObsIntegrationName } from "./models/LLMObsIntegrationName";
export { LLMObsInternalReasoning } from "./models/LLMObsInternalReasoning";
export { LLMObsLabelSchema } from "./models/LLMObsLabelSchema";
export { LLMObsLabelSchemaType } from "./models/LLMObsLabelSchemaType";
+export { LLMObsLegacyContentBlock } from "./models/LLMObsLegacyContentBlock";
+export { LLMObsLegacyContentBlockType } from "./models/LLMObsLegacyContentBlockType";
export { LLMObsMetricAssessment } from "./models/LLMObsMetricAssessment";
export { LLMObsMetricScoreType } from "./models/LLMObsMetricScoreType";
export { LLMObsOpenAIMetadata } from "./models/LLMObsOpenAIMetadata";
diff --git a/packages/datadog-api-client-v2/models/LLMObsContentBlock.ts b/packages/datadog-api-client-v2/models/LLMObsContentBlock.ts
index 960eb380357e..3c274eddcde9 100644
--- a/packages/datadog-api-client-v2/models/LLMObsContentBlock.ts
+++ b/packages/datadog-api-client-v2/models/LLMObsContentBlock.ts
@@ -20,6 +20,7 @@ import { AttributeTypeMap } from "../../datadog-api-client-common/util";
* - `image`: `url` is required.
* - `widget`: `tileDef` is required (any well-formed JSON; the frontend owns the renderable schema).
* - `llmobs_trace`: `traceId` is required; `interactionType`, when set, must be `trace` or `experiment_trace`.
+ * - `frontend`: `code` is required and must be a non-empty string; `label` is optional.
*
* `height`, when set, must be positive.
*/
@@ -28,10 +29,14 @@ export class LLMObsContentBlock {
* Alternative text for an `image` block.
*/
"alt"?: string;
+ /**
+ * HTML code rendered by a `frontend` block. Required for `frontend` blocks.
+ */
+ "code"?: string;
/**
* Block payload. A string for `markdown`, `header`, and `text`; an
* arbitrary JSON value (object, array, or scalar) for `json`. Omitted
- * for `image`, `widget`, and `llmobs_trace`.
+ * for `image`, `widget`, `llmobs_trace`, and `frontend`.
*/
"content"?: any;
/**
@@ -44,7 +49,7 @@ export class LLMObsContentBlock {
*/
"interactionType"?: LLMObsContentBlockLLMObsTraceInteractionType;
/**
- * Optional label rendered alongside the block.
+ * Optional label rendered alongside a `frontend` block.
*/
"label"?: string;
/**
@@ -94,6 +99,10 @@ export class LLMObsContentBlock {
baseName: "alt",
type: "string",
},
+ code: {
+ baseName: "code",
+ type: "string",
+ },
content: {
baseName: "content",
type: "any",
diff --git a/packages/datadog-api-client-v2/models/LLMObsContentBlockType.ts b/packages/datadog-api-client-v2/models/LLMObsContentBlockType.ts
index 77484b94bdd1..df6c63a967db 100644
--- a/packages/datadog-api-client-v2/models/LLMObsContentBlockType.ts
+++ b/packages/datadog-api-client-v2/models/LLMObsContentBlockType.ts
@@ -19,6 +19,7 @@ export type LLMObsContentBlockType =
| typeof IMAGE
| typeof WIDGET
| typeof LLMOBS_TRACE
+ | typeof FRONTEND
| UnparsedObject;
export const MARKDOWN = "markdown";
export const HEADER = "header";
@@ -27,3 +28,4 @@ export const JSON = "json";
export const IMAGE = "image";
export const WIDGET = "widget";
export const LLMOBS_TRACE = "llmobs_trace";
+export const FRONTEND = "frontend";
diff --git a/packages/datadog-api-client-v2/models/LLMObsFrontendContentBlock.ts b/packages/datadog-api-client-v2/models/LLMObsFrontendContentBlock.ts
new file mode 100644
index 000000000000..f7cdcc842175
--- /dev/null
+++ b/packages/datadog-api-client-v2/models/LLMObsFrontendContentBlock.ts
@@ -0,0 +1,62 @@
+/**
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2020-Present Datadog, Inc.
+ */
+import { LLMObsFrontendContentBlockType } from "./LLMObsFrontendContentBlockType";
+
+import { AttributeTypeMap } from "../../datadog-api-client-common/util";
+
+/**
+ * Validation requirements for a `frontend` display block.
+ */
+export class LLMObsFrontendContentBlock {
+ /**
+ * HTML code rendered by a `frontend` block. Required for `frontend` blocks.
+ */
+ "code": string;
+ /**
+ * Type discriminator for a `frontend` display block.
+ */
+ "type"?: LLMObsFrontendContentBlockType;
+
+ /**
+ * A container for additional, undeclared properties.
+ * This is a holder for any undeclared properties as specified with
+ * the 'additionalProperties' keyword in the OAS document.
+ */
+ "additionalProperties"?: { [key: string]: any };
+
+ /**
+ * @ignore
+ */
+ "_unparsed"?: boolean;
+
+ /**
+ * @ignore
+ */
+ static readonly attributeTypeMap: AttributeTypeMap = {
+ code: {
+ baseName: "code",
+ type: "string",
+ required: true,
+ },
+ type: {
+ baseName: "type",
+ type: "LLMObsFrontendContentBlockType",
+ },
+ additionalProperties: {
+ baseName: "additionalProperties",
+ type: "{ [key: string]: any; }",
+ },
+ };
+
+ /**
+ * @ignore
+ */
+ static getAttributeTypeMap(): AttributeTypeMap {
+ return LLMObsFrontendContentBlock.attributeTypeMap;
+ }
+
+ public constructor() {}
+}
diff --git a/packages/datadog-api-client-v2/models/LLMObsFrontendContentBlockType.ts b/packages/datadog-api-client-v2/models/LLMObsFrontendContentBlockType.ts
new file mode 100644
index 000000000000..7161cd110952
--- /dev/null
+++ b/packages/datadog-api-client-v2/models/LLMObsFrontendContentBlockType.ts
@@ -0,0 +1,14 @@
+/**
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2020-Present Datadog, Inc.
+ */
+
+import { UnparsedObject } from "../../datadog-api-client-common/util";
+
+/**
+ * Type discriminator for a `frontend` display block.
+ */
+
+export type LLMObsFrontendContentBlockType = typeof FRONTEND | UnparsedObject;
+export const FRONTEND = "frontend";
diff --git a/packages/datadog-api-client-v2/models/LLMObsLegacyContentBlock.ts b/packages/datadog-api-client-v2/models/LLMObsLegacyContentBlock.ts
new file mode 100644
index 000000000000..84b6050d3a9f
--- /dev/null
+++ b/packages/datadog-api-client-v2/models/LLMObsLegacyContentBlock.ts
@@ -0,0 +1,53 @@
+/**
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2020-Present Datadog, Inc.
+ */
+import { LLMObsLegacyContentBlockType } from "./LLMObsLegacyContentBlockType";
+
+import { AttributeTypeMap } from "../../datadog-api-client-common/util";
+
+/**
+ * Validation requirements for an existing non-frontend display block.
+ */
+export class LLMObsLegacyContentBlock {
+ /**
+ * Type discriminator for an existing non-frontend display block.
+ */
+ "type"?: LLMObsLegacyContentBlockType;
+
+ /**
+ * A container for additional, undeclared properties.
+ * This is a holder for any undeclared properties as specified with
+ * the 'additionalProperties' keyword in the OAS document.
+ */
+ "additionalProperties"?: { [key: string]: any };
+
+ /**
+ * @ignore
+ */
+ "_unparsed"?: boolean;
+
+ /**
+ * @ignore
+ */
+ static readonly attributeTypeMap: AttributeTypeMap = {
+ type: {
+ baseName: "type",
+ type: "LLMObsLegacyContentBlockType",
+ },
+ additionalProperties: {
+ baseName: "additionalProperties",
+ type: "{ [key: string]: any; }",
+ },
+ };
+
+ /**
+ * @ignore
+ */
+ static getAttributeTypeMap(): AttributeTypeMap {
+ return LLMObsLegacyContentBlock.attributeTypeMap;
+ }
+
+ public constructor() {}
+}
diff --git a/packages/datadog-api-client-v2/models/LLMObsLegacyContentBlockType.ts b/packages/datadog-api-client-v2/models/LLMObsLegacyContentBlockType.ts
new file mode 100644
index 000000000000..4dee353e0e18
--- /dev/null
+++ b/packages/datadog-api-client-v2/models/LLMObsLegacyContentBlockType.ts
@@ -0,0 +1,28 @@
+/**
+ * Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
+ * This product includes software developed at Datadog (https://www.datadoghq.com/).
+ * Copyright 2020-Present Datadog, Inc.
+ */
+
+import { UnparsedObject } from "../../datadog-api-client-common/util";
+
+/**
+ * Type discriminator for an existing non-frontend display block.
+ */
+
+export type LLMObsLegacyContentBlockType =
+ | typeof MARKDOWN
+ | typeof HEADER
+ | typeof TEXT
+ | typeof JSON
+ | typeof IMAGE
+ | typeof WIDGET
+ | typeof LLMOBS_TRACE
+ | UnparsedObject;
+export const MARKDOWN = "markdown";
+export const HEADER = "header";
+export const TEXT = "text";
+export const JSON = "json";
+export const IMAGE = "image";
+export const WIDGET = "widget";
+export const LLMOBS_TRACE = "llmobs_trace";
diff --git a/packages/datadog-api-client-v2/models/ObjectSerializer.ts b/packages/datadog-api-client-v2/models/ObjectSerializer.ts
index aab73007df9f..65525c6a8556 100644
--- a/packages/datadog-api-client-v2/models/ObjectSerializer.ts
+++ b/packages/datadog-api-client-v2/models/ObjectSerializer.ts
@@ -2843,6 +2843,7 @@ import { LLMObsExperimentationSimpleSearchRequest } from "./LLMObsExperimentatio
import { LLMObsExperimentationSimpleSearchResponse } from "./LLMObsExperimentationSimpleSearchResponse";
import { LLMObsExperimentationSortField } from "./LLMObsExperimentationSortField";
import { LLMObsExperimentsResponse } from "./LLMObsExperimentsResponse";
+import { LLMObsFrontendContentBlock } from "./LLMObsFrontendContentBlock";
import { LLMObsInferenceCode } from "./LLMObsInferenceCode";
import { LLMObsInferenceContent } from "./LLMObsInferenceContent";
import { LLMObsInferenceContentValue } from "./LLMObsInferenceContentValue";
@@ -2859,6 +2860,7 @@ import { LLMObsIntegrationInferenceResponse } from "./LLMObsIntegrationInference
import { LLMObsIntegrationModel } from "./LLMObsIntegrationModel";
import { LLMObsInternalReasoning } from "./LLMObsInternalReasoning";
import { LLMObsLabelSchema } from "./LLMObsLabelSchema";
+import { LLMObsLegacyContentBlock } from "./LLMObsLegacyContentBlock";
import { LLMObsOpenAIMetadata } from "./LLMObsOpenAIMetadata";
import { LLMObsPatternsActivityProgress } from "./LLMObsPatternsActivityProgress";
import { LLMObsPatternsClusteredPoint } from "./LLMObsPatternsClusteredPoint";
@@ -7327,6 +7329,7 @@ const enumsMap: { [key: string]: any[] } = {
"image",
"widget",
"llmobs_trace",
+ "frontend",
],
LLMObsCustomEvalConfigEvalScope: ["span", "trace", "session"],
LLMObsCustomEvalConfigIntegrationProvider: [
@@ -7356,6 +7359,7 @@ const enumsMap: { [key: string]: any[] } = {
LLMObsExperimentType: ["experiments"],
LLMObsExperimentationSortFieldDirection: ["asc", "desc"],
LLMObsExperimentationType: ["experimentation"],
+ LLMObsFrontendContentBlockType: ["frontend"],
LLMObsIntegrationName: [
"openai",
"amazon_bedrock",
@@ -7365,6 +7369,15 @@ const enumsMap: { [key: string]: any[] } = {
"llmproxy",
],
LLMObsLabelSchemaType: ["score", "categorical", "boolean", "text"],
+ LLMObsLegacyContentBlockType: [
+ "markdown",
+ "header",
+ "text",
+ "json",
+ "image",
+ "widget",
+ "llmobs_trace",
+ ],
LLMObsMetricAssessment: ["pass", "fail"],
LLMObsMetricScoreType: ["score", "categorical", "boolean", "json"],
LLMObsOpenAIReasoningEffort: ["none", "low", "medium", "high", "xhigh"],
@@ -12748,6 +12761,7 @@ const typeMap: { [index: string]: any } = {
LLMObsExperimentationSimpleSearchResponse,
LLMObsExperimentationSortField: LLMObsExperimentationSortField,
LLMObsExperimentsResponse: LLMObsExperimentsResponse,
+ LLMObsFrontendContentBlock: LLMObsFrontendContentBlock,
LLMObsInferenceCode: LLMObsInferenceCode,
LLMObsInferenceContent: LLMObsInferenceContent,
LLMObsInferenceContentValue: LLMObsInferenceContentValue,
@@ -12764,6 +12778,7 @@ const typeMap: { [index: string]: any } = {
LLMObsIntegrationModel: LLMObsIntegrationModel,
LLMObsInternalReasoning: LLMObsInternalReasoning,
LLMObsLabelSchema: LLMObsLabelSchema,
+ LLMObsLegacyContentBlock: LLMObsLegacyContentBlock,
LLMObsOpenAIMetadata: LLMObsOpenAIMetadata,
LLMObsPatternsActivityProgress: LLMObsPatternsActivityProgress,
LLMObsPatternsClusteredPoint: LLMObsPatternsClusteredPoint,