Publish npm package using Trusted Publisher (#3953)

This commit is contained in:
Stanislav Novosad
2025-11-10 13:51:53 -07:00
committed by GitHub
parent af88a7912b
commit e3cd3eeae0
43 changed files with 2143 additions and 290 deletions

View File

@@ -0,0 +1,16 @@
// This file was auto-generated by Fern from our API Definition.
import type * as Skyvern from "../../index.js";
/**
* @example
* {
* folder_id: "folder_id",
* body: {}
* }
*/
export interface CreateWorkflowRequest {
/** Optional folder ID to assign the workflow to */
folder_id?: string;
body: Skyvern.WorkflowRequest;
}

View File

@@ -1,6 +1,7 @@
export type { CreateBrowserSessionRequest } from "./CreateBrowserSessionRequest.js";
export type { CreateCredentialRequest } from "./CreateCredentialRequest.js";
export type { CreateScriptRequest } from "./CreateScriptRequest.js";
export type { CreateWorkflowRequest } from "./CreateWorkflowRequest.js";
export type { DeployScriptRequest } from "./DeployScriptRequest.js";
export type { GetCredentialsRequest } from "./GetCredentialsRequest.js";
export type { GetRunArtifactsRequest } from "./GetRunArtifactsRequest.js";

View File

@@ -0,0 +1,343 @@
// This file was auto-generated by Fern from our API Definition.
import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { mergeHeaders, mergeOnlyDefinedHeaders } from "../../../../core/headers.js";
import * as core from "../../../../core/index.js";
import * as environments from "../../../../environments.js";
import * as errors from "../../../../errors/index.js";
import * as Skyvern from "../../../index.js";
export declare namespace BrowserProfiles {
export interface Options extends BaseClientOptions {}
export interface RequestOptions extends BaseRequestOptions {}
}
export class BrowserProfiles {
protected readonly _options: BrowserProfiles.Options;
constructor(_options: BrowserProfiles.Options = {}) {
this._options = _options;
}
/**
* Get all browser profiles for the organization
*
* @param {Skyvern.ListBrowserProfilesV1BrowserProfilesGetRequest} request
* @param {BrowserProfiles.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Skyvern.UnprocessableEntityError}
*
* @example
* await client.browserProfiles.listBrowserProfiles({
* include_deleted: true
* })
*/
public listBrowserProfiles(
request: Skyvern.ListBrowserProfilesV1BrowserProfilesGetRequest = {},
requestOptions?: BrowserProfiles.RequestOptions,
): core.HttpResponsePromise<Skyvern.BrowserProfile[]> {
return core.HttpResponsePromise.fromPromise(this.__listBrowserProfiles(request, requestOptions));
}
private async __listBrowserProfiles(
request: Skyvern.ListBrowserProfilesV1BrowserProfilesGetRequest = {},
requestOptions?: BrowserProfiles.RequestOptions,
): Promise<core.WithRawResponse<Skyvern.BrowserProfile[]>> {
const { include_deleted: includeDeleted } = request;
const _queryParams: Record<string, string | string[] | object | object[] | null> = {};
if (includeDeleted != null) {
_queryParams.include_deleted = includeDeleted.toString();
}
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
this._options?.headers,
mergeOnlyDefinedHeaders({ "x-api-key": requestOptions?.apiKey ?? this._options?.apiKey }),
requestOptions?.headers,
);
const _response = await core.fetcher({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SkyvernEnvironment.Cloud,
"v1/browser_profiles",
),
method: "GET",
headers: _headers,
queryParameters: { ..._queryParams, ...requestOptions?.queryParams },
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
});
if (_response.ok) {
return { data: _response.body as Skyvern.BrowserProfile[], rawResponse: _response.rawResponse };
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 422:
throw new Skyvern.UnprocessableEntityError(_response.error.body as unknown, _response.rawResponse);
default:
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
switch (_response.error.reason) {
case "non-json":
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.rawBody,
rawResponse: _response.rawResponse,
});
case "timeout":
throw new errors.SkyvernTimeoutError("Timeout exceeded when calling GET /v1/browser_profiles.");
case "unknown":
throw new errors.SkyvernError({
message: _response.error.errorMessage,
rawResponse: _response.rawResponse,
});
}
}
/**
* @param {Skyvern.CreateBrowserProfileRequest} request
* @param {BrowserProfiles.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Skyvern.UnprocessableEntityError}
*
* @example
* await client.browserProfiles.createBrowserProfile({
* name: "name"
* })
*/
public createBrowserProfile(
request: Skyvern.CreateBrowserProfileRequest,
requestOptions?: BrowserProfiles.RequestOptions,
): core.HttpResponsePromise<Skyvern.BrowserProfile> {
return core.HttpResponsePromise.fromPromise(this.__createBrowserProfile(request, requestOptions));
}
private async __createBrowserProfile(
request: Skyvern.CreateBrowserProfileRequest,
requestOptions?: BrowserProfiles.RequestOptions,
): Promise<core.WithRawResponse<Skyvern.BrowserProfile>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
this._options?.headers,
mergeOnlyDefinedHeaders({ "x-api-key": requestOptions?.apiKey ?? this._options?.apiKey }),
requestOptions?.headers,
);
const _response = await core.fetcher({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SkyvernEnvironment.Cloud,
"v1/browser_profiles",
),
method: "POST",
headers: _headers,
contentType: "application/json",
queryParameters: requestOptions?.queryParams,
requestType: "json",
body: request,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
});
if (_response.ok) {
return { data: _response.body as Skyvern.BrowserProfile, rawResponse: _response.rawResponse };
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 422:
throw new Skyvern.UnprocessableEntityError(_response.error.body as unknown, _response.rawResponse);
default:
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
switch (_response.error.reason) {
case "non-json":
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.rawBody,
rawResponse: _response.rawResponse,
});
case "timeout":
throw new errors.SkyvernTimeoutError("Timeout exceeded when calling POST /v1/browser_profiles.");
case "unknown":
throw new errors.SkyvernError({
message: _response.error.errorMessage,
rawResponse: _response.rawResponse,
});
}
}
/**
* Get a specific browser profile by ID
*
* @param {string} profileId - The ID of the browser profile. browser_profile_id starts with `bp_`
* @param {BrowserProfiles.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Skyvern.NotFoundError}
* @throws {@link Skyvern.UnprocessableEntityError}
*
* @example
* await client.browserProfiles.getBrowserProfile("bp_123456")
*/
public getBrowserProfile(
profileId: string,
requestOptions?: BrowserProfiles.RequestOptions,
): core.HttpResponsePromise<Skyvern.BrowserProfile> {
return core.HttpResponsePromise.fromPromise(this.__getBrowserProfile(profileId, requestOptions));
}
private async __getBrowserProfile(
profileId: string,
requestOptions?: BrowserProfiles.RequestOptions,
): Promise<core.WithRawResponse<Skyvern.BrowserProfile>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
this._options?.headers,
mergeOnlyDefinedHeaders({ "x-api-key": requestOptions?.apiKey ?? this._options?.apiKey }),
requestOptions?.headers,
);
const _response = await core.fetcher({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SkyvernEnvironment.Cloud,
`v1/browser_profiles/${core.url.encodePathParam(profileId)}`,
),
method: "GET",
headers: _headers,
queryParameters: requestOptions?.queryParams,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
});
if (_response.ok) {
return { data: _response.body as Skyvern.BrowserProfile, rawResponse: _response.rawResponse };
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 404:
throw new Skyvern.NotFoundError(_response.error.body as unknown, _response.rawResponse);
case 422:
throw new Skyvern.UnprocessableEntityError(_response.error.body as unknown, _response.rawResponse);
default:
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
switch (_response.error.reason) {
case "non-json":
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.rawBody,
rawResponse: _response.rawResponse,
});
case "timeout":
throw new errors.SkyvernTimeoutError(
"Timeout exceeded when calling GET /v1/browser_profiles/{profile_id}.",
);
case "unknown":
throw new errors.SkyvernError({
message: _response.error.errorMessage,
rawResponse: _response.rawResponse,
});
}
}
/**
* Delete a browser profile (soft delete)
*
* @param {string} profileId - The ID of the browser profile to delete. browser_profile_id starts with `bp_`
* @param {BrowserProfiles.RequestOptions} requestOptions - Request-specific configuration.
*
* @throws {@link Skyvern.NotFoundError}
* @throws {@link Skyvern.UnprocessableEntityError}
*
* @example
* await client.browserProfiles.deleteBrowserProfile("bp_123456")
*/
public deleteBrowserProfile(
profileId: string,
requestOptions?: BrowserProfiles.RequestOptions,
): core.HttpResponsePromise<void> {
return core.HttpResponsePromise.fromPromise(this.__deleteBrowserProfile(profileId, requestOptions));
}
private async __deleteBrowserProfile(
profileId: string,
requestOptions?: BrowserProfiles.RequestOptions,
): Promise<core.WithRawResponse<void>> {
const _headers: core.Fetcher.Args["headers"] = mergeHeaders(
this._options?.headers,
mergeOnlyDefinedHeaders({ "x-api-key": requestOptions?.apiKey ?? this._options?.apiKey }),
requestOptions?.headers,
);
const _response = await core.fetcher({
url: core.url.join(
(await core.Supplier.get(this._options.baseUrl)) ??
(await core.Supplier.get(this._options.environment)) ??
environments.SkyvernEnvironment.Cloud,
`v1/browser_profiles/${core.url.encodePathParam(profileId)}`,
),
method: "DELETE",
headers: _headers,
queryParameters: requestOptions?.queryParams,
timeoutMs: (requestOptions?.timeoutInSeconds ?? this._options?.timeoutInSeconds ?? 60) * 1000,
maxRetries: requestOptions?.maxRetries ?? this._options?.maxRetries,
abortSignal: requestOptions?.abortSignal,
});
if (_response.ok) {
return { data: undefined, rawResponse: _response.rawResponse };
}
if (_response.error.reason === "status-code") {
switch (_response.error.statusCode) {
case 404:
throw new Skyvern.NotFoundError(_response.error.body as unknown, _response.rawResponse);
case 422:
throw new Skyvern.UnprocessableEntityError(_response.error.body as unknown, _response.rawResponse);
default:
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.body,
rawResponse: _response.rawResponse,
});
}
}
switch (_response.error.reason) {
case "non-json":
throw new errors.SkyvernError({
statusCode: _response.error.statusCode,
body: _response.error.rawBody,
rawResponse: _response.rawResponse,
});
case "timeout":
throw new errors.SkyvernTimeoutError(
"Timeout exceeded when calling DELETE /v1/browser_profiles/{profile_id}.",
);
case "unknown":
throw new errors.SkyvernError({
message: _response.error.errorMessage,
rawResponse: _response.rawResponse,
});
}
}
}

View File

@@ -0,0 +1 @@
export * from "./requests/index.js";

View File

@@ -0,0 +1,18 @@
// This file was auto-generated by Fern from our API Definition.
/**
* @example
* {
* name: "name"
* }
*/
export interface CreateBrowserProfileRequest {
/** Name for the browser profile */
name: string;
/** Optional profile description */
description?: string;
/** Persistent browser session to convert into a profile */
browser_session_id?: string;
/** Workflow run whose persisted session should be captured */
workflow_run_id?: string;
}

View File

@@ -0,0 +1,12 @@
// This file was auto-generated by Fern from our API Definition.
/**
* @example
* {
* include_deleted: true
* }
*/
export interface ListBrowserProfilesV1BrowserProfilesGetRequest {
/** Include deleted browser profiles */
include_deleted?: boolean;
}

View File

@@ -0,0 +1,2 @@
export type { CreateBrowserProfileRequest } from "./CreateBrowserProfileRequest.js";
export type { ListBrowserProfilesV1BrowserProfilesGetRequest } from "./ListBrowserProfilesV1BrowserProfilesGetRequest.js";

View File

@@ -0,0 +1 @@
export * from "./client/index.js";

View File

@@ -1,3 +1,5 @@
export * from "./browserProfiles/client/requests/index.js";
export * as browserProfiles from "./browserProfiles/index.js";
export * as scripts from "./scripts/index.js";
export * from "./workflows/client/requests/index.js";
export * as workflows from "./workflows/index.js";

View File

@@ -0,0 +1,11 @@
// This file was auto-generated by Fern from our API Definition.
export interface BrowserProfile {
browser_profile_id: string;
organization_id: string;
name: string;
description?: string;
created_at: string;
modified_at: string;
deleted_at?: string;
}

View File

@@ -7,4 +7,5 @@ export interface InputOrSelectContext {
is_search_bar?: boolean;
is_location_input?: boolean;
is_date_related?: boolean;
date_format?: string;
}

View File

@@ -10,6 +10,7 @@ export type RunSdkActionRequestAction =
| Skyvern.RunSdkActionRequestAction.AiClick
| Skyvern.RunSdkActionRequestAction.AiInputText
| Skyvern.RunSdkActionRequestAction.AiSelectOption
| Skyvern.RunSdkActionRequestAction.AiUploadFile
| Skyvern.RunSdkActionRequestAction.Extract;
export namespace RunSdkActionRequestAction {
@@ -29,6 +30,10 @@ export namespace RunSdkActionRequestAction {
type: "ai_select_option";
}
export interface AiUploadFile extends Skyvern.UploadFileAction {
type: "ai_upload_file";
}
export interface Extract extends Skyvern.ExtractAction {
type: "extract";
}

View File

@@ -31,6 +31,8 @@ export interface TaskRunResponse {
app_url?: string;
/** ID of the Skyvern persistent browser session used for this run */
browser_session_id?: string;
/** ID of the browser profile used for this run */
browser_profile_id?: string;
/** The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot */
max_screenshot_scrolls?: number;
/** The script run result */

View File

@@ -0,0 +1,24 @@
// This file was auto-generated by Fern from our API Definition.
/**
* Upload file action parameters.
*/
export interface UploadFileAction {
/** CSS selector for the element */
selector?: string;
/** File URL for upload */
file_url?: string;
/** The intention or goal of the upload */
intention?: string;
/** Additional context data */
data?: UploadFileAction.Data;
/** Timeout in milliseconds */
timeout?: number;
}
export namespace UploadFileAction {
/**
* Additional context data
*/
export type Data = string | Record<string, unknown>;
}

View File

@@ -21,4 +21,5 @@ export interface WorkflowCreateYamlRequest {
cache_key?: string;
run_sequentially?: boolean;
sequential_key?: string;
folder_id?: string;
}

View File

@@ -46,6 +46,8 @@ export interface WorkflowRunRequest {
totp_identifier?: string;
/** ID of a Skyvern browser session to reuse, having it continue from the current screen state */
browser_session_id?: string;
/** ID of a browser profile to reuse for this workflow run */
browser_profile_id?: string;
/** The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot. */
max_screenshot_scrolls?: number;
/** The extra HTTP headers for the requests in browser. */

View File

@@ -31,6 +31,8 @@ export interface WorkflowRunResponse {
app_url?: string;
/** ID of the Skyvern persistent browser session used for this run */
browser_session_id?: string;
/** ID of the browser profile used for this run */
browser_profile_id?: string;
/** The maximum number of scrolls for the post action screenshot. When it's None or 0, it takes the current viewpoint screenshot */
max_screenshot_scrolls?: number;
/** The script run result */

View File

@@ -19,6 +19,7 @@ export * from "./BitwardenLoginCredentialParameterYaml.js";
export * from "./BitwardenSensitiveInformationParameter.js";
export * from "./BitwardenSensitiveInformationParameterYaml.js";
export * from "./BlockType.js";
export * from "./BrowserProfile.js";
export * from "./BrowserSessionResponse.js";
export * from "./ClickAction.js";
export * from "./ClickContext.js";
@@ -113,6 +114,7 @@ export * from "./ThoughtScenario.js";
export * from "./ThoughtType.js";
export * from "./TotpCode.js";
export * from "./TotpType.js";
export * from "./UploadFileAction.js";
export * from "./UploadToS3Block.js";
export * from "./UploadToS3BlockYaml.js";
export * from "./UrlBlock.js";