Update frontend types and api client

This commit is contained in:
Krzysztof Czerwinski
2025-05-25 15:12:01 +02:00
parent bb69e32fee
commit 2d654bf64b
2 changed files with 70 additions and 6 deletions

View File

@@ -9,6 +9,9 @@ import type {
APIKeyCredentials,
APIKeyPermission,
Block,
BlockCategoryResponse,
BlockRequest,
BlockResponse,
BlockSearchResponse,
CreateAPIKeyResponse,
CreateLibraryAgentPresetRequest,
@@ -41,6 +44,8 @@ import type {
OttoQuery,
OttoResponse,
ProfileDetails,
Provider,
ProviderResponse,
RefundRequest,
ReviewSubmissionRequest,
Schedule,
@@ -55,6 +60,7 @@ import type {
StoreSubmissionRequest,
StoreSubmissionsResponse,
SubmissionStatus,
SuggestionsResponse,
TransactionHistory,
User,
UserOnboarding,
@@ -204,21 +210,43 @@ export default class BackendAPI {
}
////////////////////////////////////////
//////////////// GRAPHS ////////////////
//////////////// BUILDER ///////////////
////////////////////////////////////////
getBuilderBlocks(options: {
getSuggestions(): Promise<SuggestionsResponse> {
return this._get("/builder/suggestions");
}
getBlockCategories(): Promise<BlockCategoryResponse[]> {
return this._get("/builder/categories");
}
getBuilderBlocks(request?: BlockRequest): Promise<BlockResponse> {
return this._get("/builder/blocks", request);
}
getProviders(request?: {
page?: number;
page_size?: number;
}): Promise<ProviderResponse> {
return this._get("/builder/providers", request);
}
searchBlocks(options: {
search_query?: string;
filter?: Omit<DefaultStateType | "providers", "suggestions">[];
providers?: CredentialsProviderName[];
filter?: ("blocks" | "integrations" | "marketplace_agents" | "my_agents")[];
by_creator?: string[];
search_id?: string;
page?: number;
page_size?: number;
}): Promise<BlockSearchResponse> {
return this._request("POST", "/builder/blocks", options);
return this._request("POST", "/builder/search", options);
}
////////////////////////////////////////
//////////////// GRAPHS ////////////////
////////////////////////////////////////
getBlocks(): Promise<Block[]> {
return this._get("/blocks");
}

View File

@@ -27,13 +27,49 @@ export type BlockCost = {
cost_filter: { [key: string]: any };
};
/* Mirror of backend/server/v2/builder/model.py:SuggestionsResponse */
export type SuggestionsResponse = {
otto_suggestions: string[];
recent_searches: string[];
providers: string[];
top_blocks: Block[];
};
/* Mirror of backend/server/v2/builder/model.py:BlockCategoryResponse */
export type BlockCategoryResponse = {
name: string;
total_blocks: number;
blocks: Block[];
};
export type BlockRequest = {
page?: number;
page_size?: number;
} & (
| { category?: string }
| { type?: "all" | "input" | "action" | "output" }
| { provider?: CredentialsProviderName }
);
/* Mirror of backend/server/v2/builder/model.py:BlockReponse */
export type BlockResponse = {
blocks: Block[];
pagination: Pagination;
};
/* Mirror of backend/server/v2/builder/model.py:Provider */
export type Provider = {
name: string;
name: CredentialsProviderName;
description: string;
integration_count: number;
};
/* Mirror of backend/server/v2/builder/model.py:ProviderResponse */
export type ProviderResponse = {
providers: Provider[];
pagination: Pagination;
};
/* Mirror of backend/server/v2/builder/model.py:BlockSearchResponse */
export type BlockSearchResponse = {
items: (Block | Provider | LibraryAgent | StoreAgent)[];