agentstack-sdk 0.4.2-rc1
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.
- package/dist/client/a2a/extensions/common/form.d.ts +244 -0
- package/dist/client/a2a/extensions/fulfillment-resolvers/build-llm-extension-fulfillment-resolver.d.ts +8 -0
- package/dist/client/a2a/extensions/handle-agent-card.d.ts +146 -0
- package/dist/client/a2a/extensions/handle-input-required.d.ts +11 -0
- package/dist/client/a2a/extensions/handle-task-status-update.d.ts +26 -0
- package/dist/client/a2a/extensions/services/embedding.d.ts +25 -0
- package/dist/client/a2a/extensions/services/form.d.ts +103 -0
- package/dist/client/a2a/extensions/services/llm.d.ts +25 -0
- package/dist/client/a2a/extensions/services/mcp.d.ts +46 -0
- package/dist/client/a2a/extensions/services/oauth-provider.d.ts +30 -0
- package/dist/client/a2a/extensions/services/platform.d.ts +11 -0
- package/dist/client/a2a/extensions/services/secrets.d.ts +28 -0
- package/dist/client/a2a/extensions/types.d.ts +16 -0
- package/dist/client/a2a/extensions/ui/agent-detail.d.ts +49 -0
- package/dist/client/a2a/extensions/ui/citation.d.ts +27 -0
- package/dist/client/a2a/extensions/ui/form-request.d.ts +11 -0
- package/dist/client/a2a/extensions/ui/oauth.d.ts +13 -0
- package/dist/client/a2a/extensions/ui/settings.d.ts +110 -0
- package/dist/client/a2a/extensions/ui/trajectory.d.ts +15 -0
- package/dist/client/a2a/extensions/utils/build-message-builder.d.ts +9 -0
- package/dist/client/a2a/extensions/utils.d.ts +11 -0
- package/dist/client/api/build-api-client.d.ts +27 -0
- package/dist/client/api/types.d.ts +59 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.js +2 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/package.json +56 -0
- package/src/client/a2a/extensions/common/form.ts +144 -0
- package/src/client/a2a/extensions/fulfillment-resolvers/build-llm-extension-fulfillment-resolver.ts +43 -0
- package/src/client/a2a/extensions/handle-agent-card.ts +116 -0
- package/src/client/a2a/extensions/handle-input-required.ts +29 -0
- package/src/client/a2a/extensions/handle-task-status-update.ts +74 -0
- package/src/client/a2a/extensions/services/embedding.ts +43 -0
- package/src/client/a2a/extensions/services/form.ts +31 -0
- package/src/client/a2a/extensions/services/llm.ts +39 -0
- package/src/client/a2a/extensions/services/mcp.ts +59 -0
- package/src/client/a2a/extensions/services/oauth-provider.ts +52 -0
- package/src/client/a2a/extensions/services/platform.ts +22 -0
- package/src/client/a2a/extensions/services/secrets.ts +46 -0
- package/src/client/a2a/extensions/types.ts +20 -0
- package/src/client/a2a/extensions/ui/agent-detail.ts +46 -0
- package/src/client/a2a/extensions/ui/citation.ts +30 -0
- package/src/client/a2a/extensions/ui/form-request.ts +18 -0
- package/src/client/a2a/extensions/ui/oauth.ts +21 -0
- package/src/client/a2a/extensions/ui/settings.ts +84 -0
- package/src/client/a2a/extensions/ui/trajectory.ts +23 -0
- package/src/client/a2a/extensions/utils/build-message-builder.ts +28 -0
- package/src/client/a2a/extensions/utils.ts +66 -0
- package/src/client/api/build-api-client.ts +74 -0
- package/src/client/api/types.ts +72 -0
- package/src/index.ts +32 -0
- package/src/types.ts +9 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import z from 'zod';
|
|
7
|
+
|
|
8
|
+
import type { A2AServiceExtension } from '../types';
|
|
9
|
+
|
|
10
|
+
const URI = 'https://a2a-extensions.agentstack.beeai.dev/ui/settings/v1';
|
|
11
|
+
|
|
12
|
+
const checkboxField = z.object({
|
|
13
|
+
id: z.string().nonempty(),
|
|
14
|
+
label: z.string().nonempty(),
|
|
15
|
+
default_value: z.boolean(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const checkboxGroupField = z.object({
|
|
19
|
+
id: z.string().nonempty(),
|
|
20
|
+
type: z.literal('checkbox_group'),
|
|
21
|
+
fields: z.array(checkboxField),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const optionItem = z.object({
|
|
25
|
+
label: z.string().nonempty(),
|
|
26
|
+
value: z.string().nonempty(),
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const singleSelectField = z.object({
|
|
30
|
+
type: z.literal('single_select'),
|
|
31
|
+
id: z.string().nonempty(),
|
|
32
|
+
label: z.string().nonempty(),
|
|
33
|
+
options: z.array(optionItem).nonempty(),
|
|
34
|
+
default_value: z.string().nonempty(),
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const settingsRenderSchema = z.object({
|
|
38
|
+
fields: z.array(z.discriminatedUnion('type', [checkboxGroupField, singleSelectField])),
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const checkboxFieldValue = z.object({
|
|
42
|
+
value: z.boolean(),
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const checkboxGroupFieldValue = z.object({
|
|
46
|
+
type: z.literal('checkbox_group'),
|
|
47
|
+
values: z.record(z.string(), checkboxFieldValue),
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const singleSelectFieldValue = z.object({
|
|
51
|
+
type: z.literal('single_select'),
|
|
52
|
+
value: z.string(),
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const settingsFieldValue = z.discriminatedUnion('type', [checkboxGroupFieldValue, singleSelectFieldValue]);
|
|
56
|
+
|
|
57
|
+
export const agentSettings = z.record(z.string(), settingsFieldValue);
|
|
58
|
+
export type AgentSettings = z.infer<typeof agentSettings>;
|
|
59
|
+
|
|
60
|
+
const agentRunSettingsSchema = z.object({
|
|
61
|
+
values: agentSettings,
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
export type SettingsCheckboxField = z.infer<typeof checkboxField>;
|
|
65
|
+
export type SettingsCheckboxGroupField = z.infer<typeof checkboxGroupField>;
|
|
66
|
+
export type SettingsOptionItem = z.infer<typeof optionItem>;
|
|
67
|
+
export type SettingsSingleSelectField = z.infer<typeof singleSelectField>;
|
|
68
|
+
export type SettingsCheckboxFieldValue = z.infer<typeof checkboxFieldValue>;
|
|
69
|
+
export type SettingsCheckboxGroupFieldValue = z.infer<typeof checkboxGroupFieldValue>;
|
|
70
|
+
export type SettingsSingleSelectFieldValue = z.infer<typeof singleSelectFieldValue>;
|
|
71
|
+
export type SettingsFieldValue = z.infer<typeof settingsFieldValue>;
|
|
72
|
+
|
|
73
|
+
export type SettingsDemands = z.infer<typeof settingsRenderSchema>;
|
|
74
|
+
export type SettingsFulfillments = z.infer<typeof agentRunSettingsSchema>;
|
|
75
|
+
|
|
76
|
+
export const settingsExtension: A2AServiceExtension<
|
|
77
|
+
typeof URI,
|
|
78
|
+
z.infer<typeof settingsRenderSchema>,
|
|
79
|
+
SettingsFulfillments
|
|
80
|
+
> = {
|
|
81
|
+
getDemandsSchema: () => settingsRenderSchema,
|
|
82
|
+
getFulfillmentSchema: () => agentRunSettingsSchema,
|
|
83
|
+
getUri: () => URI,
|
|
84
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import z from 'zod';
|
|
7
|
+
|
|
8
|
+
import type { A2AUiExtension } from '../types';
|
|
9
|
+
|
|
10
|
+
const URI = 'https://a2a-extensions.agentstack.beeai.dev/ui/trajectory/v1';
|
|
11
|
+
|
|
12
|
+
const schema = z.object({
|
|
13
|
+
title: z.string().nullish(),
|
|
14
|
+
content: z.string().nullish(),
|
|
15
|
+
group_id: z.string().nullish(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export type TrajectoryMetadata = z.infer<typeof schema>;
|
|
19
|
+
|
|
20
|
+
export const trajectoryExtension: A2AUiExtension<typeof URI, TrajectoryMetadata> = {
|
|
21
|
+
getMessageMetadataSchema: () => z.object({ [URI]: schema }).partial(),
|
|
22
|
+
getUri: () => URI,
|
|
23
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { AgentCapabilities, Message } from '@a2a-js/sdk';
|
|
7
|
+
|
|
8
|
+
import type { Fulfillments } from '../handle-agent-card';
|
|
9
|
+
import { handleAgentCard } from '../handle-agent-card';
|
|
10
|
+
|
|
11
|
+
export const buildMessageBuilder =
|
|
12
|
+
(agent: { capabilities: AgentCapabilities }) =>
|
|
13
|
+
async (
|
|
14
|
+
contextId: string,
|
|
15
|
+
fulfillments: Fulfillments,
|
|
16
|
+
originalMessage: Pick<Message, 'parts' | 'messageId'>,
|
|
17
|
+
): Promise<Message> => {
|
|
18
|
+
const { resolveMetadata } = handleAgentCard(agent);
|
|
19
|
+
const metadata = await resolveMetadata(fulfillments);
|
|
20
|
+
|
|
21
|
+
return {
|
|
22
|
+
...originalMessage,
|
|
23
|
+
contextId,
|
|
24
|
+
kind: 'message',
|
|
25
|
+
role: 'user',
|
|
26
|
+
metadata,
|
|
27
|
+
} as const;
|
|
28
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { AgentExtension } from '@a2a-js/sdk';
|
|
7
|
+
|
|
8
|
+
import type { A2AServiceExtension, A2AUiExtension } from './types';
|
|
9
|
+
|
|
10
|
+
export function extractUiExtensionData<U extends string, D>(extension: A2AUiExtension<U, D>) {
|
|
11
|
+
const schema = extension.getMessageMetadataSchema();
|
|
12
|
+
const uri = extension.getUri();
|
|
13
|
+
|
|
14
|
+
return function (metadata: Record<string, unknown> | undefined) {
|
|
15
|
+
const { success, data: parsed, error } = schema.safeParse(metadata ?? {});
|
|
16
|
+
|
|
17
|
+
if (!success) {
|
|
18
|
+
console.warn(error);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (!success) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return parsed[uri];
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function extractServiceExtensionDemands<U extends string, D, F>(extension: A2AServiceExtension<U, D, F>) {
|
|
30
|
+
const schema = extension.getDemandsSchema();
|
|
31
|
+
const uri = extension.getUri();
|
|
32
|
+
|
|
33
|
+
return function (agentExtensions: AgentExtension[]) {
|
|
34
|
+
const foundExtension = agentExtensions.find((agentExtension) => agentExtension.uri === uri);
|
|
35
|
+
if (!foundExtension?.params) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const { success, data: parsed, error } = schema.safeParse(foundExtension.params);
|
|
39
|
+
|
|
40
|
+
if (!success) {
|
|
41
|
+
console.warn(error);
|
|
42
|
+
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return parsed;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function fulfillServiceExtensionDemand<U extends string, D, F>(extension: A2AServiceExtension<U, D, F>) {
|
|
51
|
+
const schema = extension.getFulfillmentSchema();
|
|
52
|
+
const uri = extension.getUri();
|
|
53
|
+
|
|
54
|
+
return function (metadata: Record<string, unknown>, fulfillment: F) {
|
|
55
|
+
const { success, data: parsed, error } = schema.safeParse(fulfillment);
|
|
56
|
+
|
|
57
|
+
if (!success) {
|
|
58
|
+
console.warn(error);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return {
|
|
62
|
+
...metadata,
|
|
63
|
+
[uri]: success ? parsed : {},
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
import type { ContextPermissionGrant, GlobalPermissionGrant, ModelCapability } from './types';
|
|
9
|
+
import { contextSchema, contextTokenSchema, modelProviderMatchSchema } from './types';
|
|
10
|
+
|
|
11
|
+
export const buildApiClient = ({ baseUrl }: { baseUrl: string } = { baseUrl: '' }) => {
|
|
12
|
+
async function callApi<T>(method: 'POST', url: string, data: Record<string, unknown>, resultSchema: z.ZodSchema<T>) {
|
|
13
|
+
const response = await fetch(`${baseUrl}${url}`, {
|
|
14
|
+
method,
|
|
15
|
+
headers: {
|
|
16
|
+
'Content-Type': 'application/json',
|
|
17
|
+
},
|
|
18
|
+
body: JSON.stringify(data),
|
|
19
|
+
});
|
|
20
|
+
if (!response.ok) {
|
|
21
|
+
throw new Error(`Failed to call Agent Stackk API - ${url}`);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const json = await response.json();
|
|
25
|
+
return resultSchema.parse(json);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const createContext = async (providerId: string) => {
|
|
29
|
+
const { id: contextId } = await callApi(
|
|
30
|
+
'POST',
|
|
31
|
+
'/api/v1/contexts',
|
|
32
|
+
{ metadata: {}, provider_id: providerId },
|
|
33
|
+
contextSchema,
|
|
34
|
+
);
|
|
35
|
+
|
|
36
|
+
return contextId;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const createContextToken = async (
|
|
40
|
+
contextId: string,
|
|
41
|
+
globalPermissions: GlobalPermissionGrant,
|
|
42
|
+
contextPermissions: ContextPermissionGrant,
|
|
43
|
+
) => {
|
|
44
|
+
const token = await callApi(
|
|
45
|
+
'POST',
|
|
46
|
+
`/api/v1/contexts/${contextId}/token`,
|
|
47
|
+
{
|
|
48
|
+
context_id: contextId,
|
|
49
|
+
grant_global_permissions: globalPermissions,
|
|
50
|
+
grant_context_permissions: contextPermissions,
|
|
51
|
+
},
|
|
52
|
+
contextTokenSchema,
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
return { token, contextId };
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const matchProviders = async (suggestedModels: string[], capability: ModelCapability, scoreCutoff: number) => {
|
|
59
|
+
return await callApi(
|
|
60
|
+
'POST',
|
|
61
|
+
'/api/v1/model_providers/match',
|
|
62
|
+
{
|
|
63
|
+
capability,
|
|
64
|
+
score_cutoff: scoreCutoff,
|
|
65
|
+
suggested_models: suggestedModels,
|
|
66
|
+
},
|
|
67
|
+
modelProviderMatchSchema,
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
return { createContextToken, createContext, matchProviders };
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export type AgentstackClient = ReturnType<typeof buildApiClient>;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
export const contextSchema = z.object({
|
|
9
|
+
id: z.string(),
|
|
10
|
+
created_at: z.string().optional(),
|
|
11
|
+
created_by: z.string(),
|
|
12
|
+
last_active_at: z.string(),
|
|
13
|
+
provider_id: z.string().nullable(),
|
|
14
|
+
updated_at: z.string(),
|
|
15
|
+
metadata: z.record(z.string(), z.unknown()).nullable(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const contextTokenSchema = z.object({
|
|
19
|
+
token: z.string(),
|
|
20
|
+
expires_at: z.string().nullable(),
|
|
21
|
+
});
|
|
22
|
+
export type ContextToken = z.infer<typeof contextTokenSchema>;
|
|
23
|
+
|
|
24
|
+
export enum ModelCapability {
|
|
25
|
+
Llm = 'llm',
|
|
26
|
+
Embedding = 'embedding',
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const paginatedResultSchema = z.object({
|
|
30
|
+
items: z.array(z.unknown()),
|
|
31
|
+
total_count: z.number(),
|
|
32
|
+
has_more: z.boolean(),
|
|
33
|
+
next_page_token: z.string().nullable(),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
export const modelProviderMatchSchema = paginatedResultSchema.extend({
|
|
37
|
+
items: z.array(
|
|
38
|
+
z.object({
|
|
39
|
+
model_id: z.string(),
|
|
40
|
+
score: z.number(),
|
|
41
|
+
}),
|
|
42
|
+
),
|
|
43
|
+
});
|
|
44
|
+
export type ModelProviderMatch = z.infer<typeof modelProviderMatchSchema>;
|
|
45
|
+
|
|
46
|
+
interface ResourceIdPermission {
|
|
47
|
+
id: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface GlobalPermissionGrant {
|
|
51
|
+
a2a_proxy?: '*'[];
|
|
52
|
+
connectors?: ('read' | 'write' | 'proxy' | '*')[];
|
|
53
|
+
context_data?: ('read' | 'write' | '*')[];
|
|
54
|
+
contexts?: ('read' | 'write' | '*')[];
|
|
55
|
+
embeddings?: ('*' | ResourceIdPermission)[];
|
|
56
|
+
feedback?: 'write'[];
|
|
57
|
+
files?: ('read' | 'write' | 'extract' | '*')[];
|
|
58
|
+
llm?: ('*' | ResourceIdPermission)[];
|
|
59
|
+
mcp_providers?: ('read' | 'write' | '*')[];
|
|
60
|
+
mcp_proxy?: '*'[];
|
|
61
|
+
mcp_tools?: ('read' | '*')[];
|
|
62
|
+
model_providers?: ('read' | 'write' | '*')[];
|
|
63
|
+
provider_variables?: ('read' | 'write' | '*')[];
|
|
64
|
+
providers?: ('read' | 'write' | '*')[];
|
|
65
|
+
vector_stores?: ('read' | 'write' | 'extract' | '*')[];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface ContextPermissionGrant {
|
|
69
|
+
context_data?: ('read' | 'write' | '*')[];
|
|
70
|
+
files?: ('read' | 'write' | 'extract' | '*')[];
|
|
71
|
+
vector_stores?: ('read' | 'write' | 'extract' | '*')[];
|
|
72
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export * from './client/a2a/extensions/common/form';
|
|
7
|
+
export * from './client/a2a/extensions/fulfillment-resolvers/build-llm-extension-fulfillment-resolver';
|
|
8
|
+
export { type Fulfillments, handleAgentCard } from './client/a2a/extensions/handle-agent-card';
|
|
9
|
+
export { handleInputRequired, type InputRequiredResponses } from './client/a2a/extensions/handle-input-required';
|
|
10
|
+
export {
|
|
11
|
+
handleTaskStatusUpdate,
|
|
12
|
+
type TaskStatusUpdateResult,
|
|
13
|
+
TaskStatusUpdateType,
|
|
14
|
+
} from './client/a2a/extensions/handle-task-status-update';
|
|
15
|
+
export * from './client/a2a/extensions/services/embedding';
|
|
16
|
+
export * from './client/a2a/extensions/services/form';
|
|
17
|
+
export * from './client/a2a/extensions/services/llm';
|
|
18
|
+
export * from './client/a2a/extensions/services/mcp';
|
|
19
|
+
export * from './client/a2a/extensions/services/oauth-provider';
|
|
20
|
+
export * from './client/a2a/extensions/services/platform';
|
|
21
|
+
export * from './client/a2a/extensions/services/secrets';
|
|
22
|
+
export * from './client/a2a/extensions/types';
|
|
23
|
+
export * from './client/a2a/extensions/ui/agent-detail';
|
|
24
|
+
export * from './client/a2a/extensions/ui/citation';
|
|
25
|
+
export * from './client/a2a/extensions/ui/form-request';
|
|
26
|
+
export * from './client/a2a/extensions/ui/oauth';
|
|
27
|
+
export * from './client/a2a/extensions/ui/settings';
|
|
28
|
+
export * from './client/a2a/extensions/ui/trajectory';
|
|
29
|
+
export * from './client/a2a/extensions/utils';
|
|
30
|
+
export * from './client/a2a/extensions/utils/build-message-builder';
|
|
31
|
+
export * from './client/api/build-api-client';
|
|
32
|
+
export * from './client/api/types';
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 © BeeAI a Series of LF Projects, LLC
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import z from 'zod';
|
|
7
|
+
|
|
8
|
+
export const interactionModeSchema = z.enum(['single-turn', 'multi-turn']);
|
|
9
|
+
export type InteractionMode = z.infer<typeof interactionModeSchema>;
|