Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .codegen.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{ "engineHash": "6a7e147", "specHash": "137da0d", "version": "1.2.0" }
{ "engineHash": "c2b0bec", "specHash": "d36b9f0", "version": "1.2.0" }
28 changes: 28 additions & 0 deletions docs/ai.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

- [Send AI question request](#send-ai-question-request)
- [Send AI request to generate text](#send-ai-request-to-generate-text)
- [Get AI agent default configuration](#get-ai-agent-default-configuration)

## Send AI question request

Expand Down Expand Up @@ -95,3 +96,30 @@ await client.ai.createAiTextGen({
This function returns a value of type `AiResponse`.

A successful response including the answer from the LLM.

## Get AI agent default configuration

Get the AI agent default config

This operation is performed by calling function `getAiAgentDefault`.

See the endpoint docs at
[API Reference](https://developer.box.com/reference/get-ai-agent-default/).

_Currently we don't have an example for calling `getAiAgentDefault` in integration tests_

### Arguments

- queryParams `GetAiAgentDefaultQueryParams`
- Query parameters of getAiAgentDefault method
- optionalsInput `GetAiAgentDefaultOptionalsInput`
-

### Returns

This function returns a value of type `AiAgentAskOrAiAgentTextGen`.

A successful response including the default agent configuration.
This response can be one of the following two objects:
AI agent for questions and AI agent for text generation. The response
depends on the agent configuration requested in this endpoint.
348 changes: 174 additions & 174 deletions package-lock.json

Large diffs are not rendered by default.

108 changes: 107 additions & 1 deletion src/managers/ai.generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ import { serializeAiAsk } from '../schemas/aiAsk.generated.js';
import { deserializeAiAsk } from '../schemas/aiAsk.generated.js';
import { serializeAiTextGen } from '../schemas/aiTextGen.generated.js';
import { deserializeAiTextGen } from '../schemas/aiTextGen.generated.js';
import { serializeAiAgentAskOrAiAgentTextGen } from '../schemas/aiAgentAskOrAiAgentTextGen.generated.js';
import { deserializeAiAgentAskOrAiAgentTextGen } from '../schemas/aiAgentAskOrAiAgentTextGen.generated.js';
import { AiResponse } from '../schemas/aiResponse.generated.js';
import { ClientError } from '../schemas/clientError.generated.js';
import { AiAsk } from '../schemas/aiAsk.generated.js';
import { AiTextGen } from '../schemas/aiTextGen.generated.js';
import { AiAgentAskOrAiAgentTextGen } from '../schemas/aiAgentAskOrAiAgentTextGen.generated.js';
import { Authentication } from '../networking/auth.generated.js';
import { NetworkSession } from '../networking/network.generated.js';
import { prepareParams } from '../internal/utils.js';
Expand All @@ -20,6 +23,8 @@ import { FetchOptions } from '../networking/fetch.js';
import { FetchResponse } from '../networking/fetch.js';
import { fetch } from '../networking/fetch.js';
import { SerializedData } from '../serialization/json.js';
import { sdToJson } from '../serialization/json.js';
import { BoxSdkError } from '../box/errors.js';
import { sdIsEmpty } from '../serialization/json.js';
import { sdIsBoolean } from '../serialization/json.js';
import { sdIsNumber } from '../serialization/json.js';
Expand Down Expand Up @@ -64,6 +69,25 @@ export interface CreateAiTextGenOptionalsInput {
readonly headers?: CreateAiTextGenHeaders;
readonly cancellationToken?: undefined | CancellationToken;
}
export class GetAiAgentDefaultOptionals {
readonly headers: GetAiAgentDefaultHeaders = new GetAiAgentDefaultHeaders({});
readonly cancellationToken?: CancellationToken = void 0;
constructor(
fields: Omit<GetAiAgentDefaultOptionals, 'headers' | 'cancellationToken'> &
Partial<Pick<GetAiAgentDefaultOptionals, 'headers' | 'cancellationToken'>>
) {
if (fields.headers) {
this.headers = fields.headers;
}
if (fields.cancellationToken) {
this.cancellationToken = fields.cancellationToken;
}
}
}
export interface GetAiAgentDefaultOptionalsInput {
readonly headers?: GetAiAgentDefaultHeaders;
readonly cancellationToken?: undefined | CancellationToken;
}
export class CreateAiAskHeaders {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
Expand Down Expand Up @@ -104,13 +128,39 @@ export interface CreateAiTextGenHeadersInput {
readonly [key: string]: undefined | string;
};
}
export type GetAiAgentDefaultQueryParamsModeField = 'ask' | 'text_gen';
export interface GetAiAgentDefaultQueryParams {
readonly mode: GetAiAgentDefaultQueryParamsModeField;
readonly language?: string;
readonly model?: string;
}
export class GetAiAgentDefaultHeaders {
readonly extraHeaders?: {
readonly [key: string]: undefined | string;
} = {};
constructor(
fields: Omit<GetAiAgentDefaultHeaders, 'extraHeaders'> &
Partial<Pick<GetAiAgentDefaultHeaders, 'extraHeaders'>>
) {
if (fields.extraHeaders) {
this.extraHeaders = fields.extraHeaders;
}
}
}
export interface GetAiAgentDefaultHeadersInput {
readonly extraHeaders?:
| undefined
| {
readonly [key: string]: undefined | string;
};
}
export class AiManager {
readonly auth?: Authentication;
readonly networkSession: NetworkSession = new NetworkSession({});
constructor(
fields: Omit<
AiManager,
'networkSession' | 'createAiAsk' | 'createAiTextGen'
'networkSession' | 'createAiAsk' | 'createAiTextGen' | 'getAiAgentDefault'
> &
Partial<Pick<AiManager, 'networkSession'>>
) {
Expand Down Expand Up @@ -180,8 +230,64 @@ export class AiManager {
)) as FetchResponse;
return deserializeAiResponse(response.data);
}
async getAiAgentDefault(
queryParams: GetAiAgentDefaultQueryParams,
optionalsInput: GetAiAgentDefaultOptionalsInput = {}
): Promise<AiAgentAskOrAiAgentTextGen> {
const optionals: GetAiAgentDefaultOptionals =
new GetAiAgentDefaultOptionals({
headers: optionalsInput.headers,
cancellationToken: optionalsInput.cancellationToken,
});
const headers: any = optionals.headers;
const cancellationToken: any = optionals.cancellationToken;
const queryParamsMap: {
readonly [key: string]: string;
} = prepareParams({
['mode']: toString(queryParams.mode) as string,
['language']: toString(queryParams.language) as string,
['model']: toString(queryParams.model) as string,
});
const headersMap: {
readonly [key: string]: string;
} = prepareParams({ ...{}, ...headers.extraHeaders });
const response: FetchResponse = (await fetch(
''.concat(
this.networkSession.baseUrls.baseUrl,
'/2.0/ai_agent_default'
) as string,
{
method: 'GET',
params: queryParamsMap,
headers: headersMap,
responseFormat: 'json',
auth: this.auth,
networkSession: this.networkSession,
cancellationToken: cancellationToken,
} satisfies FetchOptions
)) as FetchResponse;
return deserializeAiAgentAskOrAiAgentTextGen(response.data);
}
}
export interface AiManagerInput {
readonly auth?: Authentication;
readonly networkSession?: NetworkSession;
}
export function serializeGetAiAgentDefaultQueryParamsModeField(
val: GetAiAgentDefaultQueryParamsModeField
): SerializedData {
return val;
}
export function deserializeGetAiAgentDefaultQueryParamsModeField(
val: SerializedData
): GetAiAgentDefaultQueryParamsModeField {
if (val == 'ask') {
return val;
}
if (val == 'text_gen') {
return val;
}
throw new BoxSdkError({
message: "Can't deserialize GetAiAgentDefaultQueryParamsModeField",
});
}
87 changes: 87 additions & 0 deletions src/schemas/aiAgentAsk.generated.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import { serializeAiAgentLongTextTool } from './aiAgentLongTextTool.generated.js';
import { deserializeAiAgentLongTextTool } from './aiAgentLongTextTool.generated.js';
import { serializeAiAgentBasicTextToolAsk } from './aiAgentBasicTextToolAsk.generated.js';
import { deserializeAiAgentBasicTextToolAsk } from './aiAgentBasicTextToolAsk.generated.js';
import { AiAgentLongTextTool } from './aiAgentLongTextTool.generated.js';
import { AiAgentBasicTextToolAsk } from './aiAgentBasicTextToolAsk.generated.js';
import { BoxSdkError } from '../box/errors.js';
import { SerializedData } from '../serialization/json.js';
import { sdIsEmpty } from '../serialization/json.js';
import { sdIsBoolean } from '../serialization/json.js';
import { sdIsNumber } from '../serialization/json.js';
import { sdIsString } from '../serialization/json.js';
import { sdIsList } from '../serialization/json.js';
import { sdIsMap } from '../serialization/json.js';
export type AiAgentAskTypeField = 'ai_agent_ask';
export interface AiAgentAsk {
readonly type?: AiAgentAskTypeField;
readonly longText?: AiAgentLongTextTool;
readonly basicText?: AiAgentBasicTextToolAsk;
readonly longTextMulti?: AiAgentLongTextTool;
readonly basicTextMulti?: AiAgentBasicTextToolAsk;
}
export function serializeAiAgentAskTypeField(
val: AiAgentAskTypeField
): SerializedData {
return val;
}
export function deserializeAiAgentAskTypeField(
val: SerializedData
): AiAgentAskTypeField {
if (val == 'ai_agent_ask') {
return val;
}
throw new BoxSdkError({ message: "Can't deserialize AiAgentAskTypeField" });
}
export function serializeAiAgentAsk(val: AiAgentAsk): SerializedData {
return {
['type']:
val.type == void 0 ? void 0 : serializeAiAgentAskTypeField(val.type),
['long_text']:
val.longText == void 0
? void 0
: serializeAiAgentLongTextTool(val.longText),
['basic_text']:
val.basicText == void 0
? void 0
: serializeAiAgentBasicTextToolAsk(val.basicText),
['long_text_multi']:
val.longTextMulti == void 0
? void 0
: serializeAiAgentLongTextTool(val.longTextMulti),
['basic_text_multi']:
val.basicTextMulti == void 0
? void 0
: serializeAiAgentBasicTextToolAsk(val.basicTextMulti),
};
}
export function deserializeAiAgentAsk(val: SerializedData): AiAgentAsk {
if (!sdIsMap(val)) {
throw new BoxSdkError({ message: 'Expecting a map for "AiAgentAsk"' });
}
const type: undefined | AiAgentAskTypeField =
val.type == void 0 ? void 0 : deserializeAiAgentAskTypeField(val.type);
const longText: undefined | AiAgentLongTextTool =
val.long_text == void 0
? void 0
: deserializeAiAgentLongTextTool(val.long_text);
const basicText: undefined | AiAgentBasicTextToolAsk =
val.basic_text == void 0
? void 0
: deserializeAiAgentBasicTextToolAsk(val.basic_text);
const longTextMulti: undefined | AiAgentLongTextTool =
val.long_text_multi == void 0
? void 0
: deserializeAiAgentLongTextTool(val.long_text_multi);
const basicTextMulti: undefined | AiAgentBasicTextToolAsk =
val.basic_text_multi == void 0
? void 0
: deserializeAiAgentBasicTextToolAsk(val.basic_text_multi);
return {
type: type,
longText: longText,
basicText: basicText,
longTextMulti: longTextMulti,
basicTextMulti: basicTextMulti,
} satisfies AiAgentAsk;
}
42 changes: 42 additions & 0 deletions src/schemas/aiAgentAskOrAiAgentTextGen.generated.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import { serializeAiAgentAsk } from './aiAgentAsk.generated.js';
import { deserializeAiAgentAsk } from './aiAgentAsk.generated.js';
import { serializeAiAgentTextGen } from './aiAgentTextGen.generated.js';
import { deserializeAiAgentTextGen } from './aiAgentTextGen.generated.js';
import { AiAgentAsk } from './aiAgentAsk.generated.js';
import { AiAgentTextGen } from './aiAgentTextGen.generated.js';
import { BoxSdkError } from '../box/errors.js';
import { SerializedData } from '../serialization/json.js';
import { sdIsEmpty } from '../serialization/json.js';
import { sdIsBoolean } from '../serialization/json.js';
import { sdIsNumber } from '../serialization/json.js';
import { sdIsString } from '../serialization/json.js';
import { sdIsList } from '../serialization/json.js';
import { sdIsMap } from '../serialization/json.js';
export type AiAgentAskOrAiAgentTextGen = AiAgentAsk | AiAgentTextGen;
export function serializeAiAgentAskOrAiAgentTextGen(val: any): SerializedData {
if (val.type == 'ai_agent_ask') {
return serializeAiAgentAsk(val);
}
if (val.type == 'ai_agent_text_gen') {
return serializeAiAgentTextGen(val);
}
throw new BoxSdkError({ message: 'unknown type' });
}
export function deserializeAiAgentAskOrAiAgentTextGen(
val: SerializedData
): AiAgentAskOrAiAgentTextGen {
if (!sdIsMap(val)) {
throw new BoxSdkError({
message: 'Expecting a map for "AiAgentAskOrAiAgentTextGen"',
});
}
if (val.type == 'ai_agent_ask') {
return deserializeAiAgentAsk(val);
}
if (val.type == 'ai_agent_text_gen') {
return deserializeAiAgentTextGen(val);
}
throw new BoxSdkError({
message: "Can't deserialize AiAgentAskOrAiAgentTextGen",
});
}
Loading