Skip to content

Commit 425b4fb

Browse files
authored
fix: align extension schemas in TypeScript with Python schemas (#1375)
1 parent 13e5c45 commit 425b4fb

File tree

9 files changed

+41
-47
lines changed

9 files changed

+41
-47
lines changed

apps/beeai-sdk-ts/src/client/a2a/extensions/services/embedding.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import type { A2AServiceExtension } from '../types';
1010
const URI = 'https://a2a-extensions.beeai.dev/services/embedding/v1';
1111

1212
const embeddingDemandSchema = z.object({
13-
description: z.string().nullable(),
14-
suggested: z.array(z.string()).nullable(),
13+
description: z.string().nullish(),
14+
suggested: z.array(z.string()).nullish(),
1515
});
1616

1717
const embeddingDemandsSchema = z.object({
@@ -23,7 +23,7 @@ const embeddingFulfillmentsSchema = z.object({
2323
embedding_fulfillments: z.record(
2424
z.string(),
2525
z.object({
26-
identifier: z.string().optional(),
26+
identifier: z.string().nullish(),
2727
api_base: z.string(),
2828
api_key: z.string(),
2929
api_model: z.string(),

apps/beeai-sdk-ts/src/client/a2a/extensions/services/llm.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import type { A2AServiceExtension } from '../types';
1010
const URI = 'https://a2a-extensions.beeai.dev/services/llm/v1';
1111

1212
const llmDemandSchema = z.object({
13-
description: z.string().nullable(),
14-
suggested: z.array(z.string()).nullable(),
13+
description: z.string().nullish(),
14+
suggested: z.array(z.string()).nullish(),
1515
});
1616

1717
const llmDemandsSchema = z.object({
@@ -23,7 +23,7 @@ const llmFulfillmentSchema = z.object({
2323
llm_fulfillments: z.record(
2424
z.string(),
2525
z.object({
26-
identifier: z.string().optional(),
26+
identifier: z.string().nullish(),
2727
api_base: z.string(),
2828
api_key: z.string(),
2929
api_model: z.string(),

apps/beeai-sdk-ts/src/client/a2a/extensions/services/mcp.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ const mcpTransportTypesEnum = z.enum(['streamable_http', 'stdio']);
1313
type MCPTransportType = z.infer<typeof mcpTransportTypesEnum>;
1414

1515
const mcpDemandSchema = z.object({
16-
description: z.string().nullable(),
17-
suggested: z.array(z.string()).nullable(),
18-
allowed_transports: z.array(mcpTransportTypesEnum).nullable(),
16+
description: z.string().nullish(),
17+
suggested: z.array(z.string()).nullish(),
18+
allowed_transports: z.array(mcpTransportTypesEnum).nullish(),
1919
});
2020

2121
const mcpDemandsSchema = z.object({

apps/beeai-sdk-ts/src/client/a2a/extensions/services/secrets.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ const URI = 'https://a2a-extensions.beeai.dev/auth/secrets/v1';
1111

1212
const secretDemandSchema = z.object({
1313
name: z.string(),
14-
description: z.string().nullable(),
14+
description: z.string().nullish(),
1515
});
1616
export type SecretDemand = z.infer<typeof secretDemandSchema>;
1717

apps/beeai-sdk-ts/src/client/a2a/extensions/ui/agent-detail.ts

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,29 @@ const URI = 'https://a2a-extensions.beeai.dev/ui/agent-detail/v1';
1212

1313
const contributorSchema = z.object({
1414
name: z.string(),
15-
email: z.string().nullable(),
16-
url: z.string().nullable(),
15+
email: z.string().nullish(),
16+
url: z.string().nullish(),
1717
});
1818

1919
const toolSchema = z.object({
2020
name: z.string(),
2121
description: z.string(),
2222
});
2323

24-
const schema = z
25-
.object({
26-
interaction_mode: z.union([interactionModeSchema, z.string()]).nullable(),
27-
user_greeting: z.string().nullable(),
28-
input_placeholder: z.string().nullable(),
29-
tools: z.array(toolSchema).nullable(),
30-
framework: z.string().nullable(),
31-
license: z.string().nullable(),
32-
programming_language: z.string().nullable(),
33-
homepage_url: z.string().nullable(),
34-
source_code_url: z.string().nullable(),
35-
container_image_url: z.string().nullable(),
36-
author: contributorSchema.nullable(),
37-
contributors: z.array(contributorSchema).nullable(),
38-
})
39-
.partial();
24+
const schema = z.object({
25+
interaction_mode: z.union([interactionModeSchema, z.string()]).nullish(),
26+
user_greeting: z.string().nullish(),
27+
input_placeholder: z.string().nullish(),
28+
tools: z.array(toolSchema).nullish(),
29+
framework: z.string().nullish(),
30+
license: z.string().nullish(),
31+
programming_language: z.string().nullish(),
32+
homepage_url: z.string().nullish(),
33+
source_code_url: z.string().nullish(),
34+
container_image_url: z.string().nullish(),
35+
author: contributorSchema.nullish(),
36+
contributors: z.array(contributorSchema).nullish(),
37+
});
4038

4139
export type AgentDetailTool = z.infer<typeof toolSchema>;
4240
export type AgentDetailContributor = z.infer<typeof contributorSchema>;

apps/beeai-sdk-ts/src/client/a2a/extensions/ui/citation.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,13 @@ import type { A2AUiExtension } from '../types';
99

1010
const URI = 'https://a2a-extensions.beeai.dev/ui/citation/v1';
1111

12-
const citationSchema = z
13-
.object({
14-
url: z.string(),
15-
start_index: z.number(),
16-
end_index: z.number(),
17-
title: z.string(),
18-
description: z.string(),
19-
})
20-
.partial();
12+
const citationSchema = z.object({
13+
url: z.string().nullish(),
14+
start_index: z.number().nullish(),
15+
end_index: z.number().nullish(),
16+
title: z.string().nullish(),
17+
description: z.string().nullish(),
18+
});
2119

2220
const schema = z.object({
2321
citations: z.array(citationSchema),

apps/beeai-sdk-ts/src/client/a2a/extensions/ui/form.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ const fileFieldValue = z.object({
5050
.array(
5151
z.object({
5252
uri: z.string(),
53-
name: z.string().optional(),
54-
mime_type: z.string().optional(),
53+
name: z.string().nullish(),
54+
mime_type: z.string().nullish(),
5555
}),
5656
)
5757
.nullish(),

apps/beeai-sdk-ts/src/client/a2a/extensions/ui/trajectory.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@ import type { A2AUiExtension } from '../types';
99

1010
const URI = 'https://a2a-extensions.beeai.dev/ui/trajectory/v1';
1111

12-
const schema = z
13-
.object({
14-
title: z.string(),
15-
content: z.string(),
16-
})
17-
.partial();
12+
const schema = z.object({
13+
title: z.string().nullish(),
14+
content: z.string().nullish(),
15+
});
1816

1917
export type TrajectoryMetadata = z.infer<typeof schema>;
2018

apps/beeai-ui/src/api/a2a/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ export function createTrajectoryPart(metadata: TrajectoryMetadata): UITrajectory
146146
const trajectoryPart: UITrajectoryPart = {
147147
kind: UIMessagePartKind.Trajectory,
148148
id: uuid(),
149-
title,
150-
content: truncate(content, { length: MAX_CONTENT_CHARS_LENGTH }),
149+
title: title ?? undefined,
150+
content: truncate(content ?? undefined, { length: MAX_CONTENT_CHARS_LENGTH }),
151151
};
152152

153153
return trajectoryPart;

0 commit comments

Comments
 (0)