diff --git a/scripts/fern_build_python_sdk.sh b/scripts/fern_build_python_sdk.sh index cb9adbeb..c112806a 100755 --- a/scripts/fern_build_python_sdk.sh +++ b/scripts/fern_build_python_sdk.sh @@ -2,4 +2,14 @@ CURRENT_VERSION=$(grep '^version = ' pyproject.toml | sed 's/version = "\(.*\)"/\1/') fern generate --group python-sdk --log-level debug --version "$CURRENT_VERSION" --preview -cp -rf fern/.preview/fern-python-sdk/src/skyvern/* skyvern/client/ \ No newline at end of file +cp -rf fern/.preview/fern-python-sdk/src/skyvern/* skyvern/client/ + +# Post-processing: Patch version.py to handle missing metadata gracefully +VERSION_FILE="skyvern/client/version.py" +if [ -f "$VERSION_FILE" ]; then + sed -i.bak 's/__version__ = metadata\.version("skyvern")/try:\ + __version__ = metadata.version("skyvern")\ +except Exception:\ + __version__ = "0.0.0"/' "$VERSION_FILE" + rm -f "${VERSION_FILE}.bak" +fi \ No newline at end of file diff --git a/scripts/fern_build_ts_sdk.sh b/scripts/fern_build_ts_sdk.sh index 52fffe38..e1ee4925 100755 --- a/scripts/fern_build_ts_sdk.sh +++ b/scripts/fern_build_ts_sdk.sh @@ -9,4 +9,9 @@ fern generate --group ts-sdk --log-level debug --version "$CURRENT_VERSION" --pr && npx tsc --project ./tsconfig.esm.json \ && node scripts/rename-to-esm-files.js dist/esm) -cp -rf fern/.preview/fern-typescript-sdk/* skyvern-ts/client/ \ No newline at end of file +cp -rf fern/.preview/fern-typescript-sdk/* skyvern-ts/client/ + +# Post-processing: Update repository references the monorepo +sed -i.bak 's|Skyvern-AI/skyvern-typescript|Skyvern-AI/skyvern|g' skyvern-ts/client/package.json +sed -i.bak 's|https://github.com/Skyvern-AI/skyvern-typescript/blob/HEAD/./reference.md|https://www.skyvern.com/docs/api-reference/api-reference|g' skyvern-ts/client/README.md +rm -f skyvern-ts/client/package.json.bak skyvern-ts/client/README.md.bak \ No newline at end of file diff --git a/skyvern-ts/client/README.md b/skyvern-ts/client/README.md index 4fa7a49f..13e6bde0 100644 --- a/skyvern-ts/client/README.md +++ b/skyvern-ts/client/README.md @@ -13,7 +13,7 @@ npm i -s @skyvern/client ## Reference -A full reference for this library is available [here](https://github.com/Skyvern-AI/skyvern-typescript/blob/HEAD/./reference.md). +A full reference for this library is available [here](https://www.skyvern.com/docs/api-reference/api-reference). ## Usage diff --git a/skyvern-ts/client/package-lock.json b/skyvern-ts/client/package-lock.json index 67d1940c..1fbd153b 100644 --- a/skyvern-ts/client/package-lock.json +++ b/skyvern-ts/client/package-lock.json @@ -1843,9 +1843,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.240", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.240.tgz", - "integrity": "sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==", + "version": "1.5.241", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.241.tgz", + "integrity": "sha512-ILMvKX/ZV5WIJzzdtuHg8xquk2y0BOGlFOxBVwTpbiXqWIH0hamG45ddU4R3PQ0gYu+xgo0vdHXHli9sHIGb4w==", "dev": true, "license": "ISC" }, @@ -3044,9 +3044,9 @@ } }, "node_modules/vite-node/node_modules/@types/node": { - "version": "24.9.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.1.tgz", - "integrity": "sha512-QoiaXANRkSXK6p0Duvt56W208du4P9Uye9hWLWgGMDTEoKPhuenzNcC4vGUmrNkiOKTlIrBoyNQYNpSwfEZXSg==", + "version": "24.9.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.2.tgz", + "integrity": "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==", "dev": true, "license": "MIT", "optional": true, diff --git a/skyvern-ts/client/package.json b/skyvern-ts/client/package.json index 1262a7dd..2fe28b9e 100644 --- a/skyvern-ts/client/package.json +++ b/skyvern-ts/client/package.json @@ -2,7 +2,7 @@ "name": "@skyvern/client", "version": "0.2.20", "private": false, - "repository": "github:Skyvern-AI/skyvern-typescript", + "repository": "github:Skyvern-AI/skyvern", "type": "commonjs", "main": "./dist/cjs/index.js", "module": "./dist/esm/index.mjs", diff --git a/skyvern-ts/client/src/api/types/ActionType.ts b/skyvern-ts/client/src/api/types/ActionType.ts index 9861555d..595c9050 100644 --- a/skyvern-ts/client/src/api/types/ActionType.ts +++ b/skyvern-ts/client/src/api/types/ActionType.ts @@ -13,6 +13,7 @@ export const ActionType = { Terminate: "terminate", Complete: "complete", ReloadPage: "reload_page", + ClosePage: "close_page", Extract: "extract", VerificationCode: "verification_code", GotoUrl: "goto_url", diff --git a/skyvern-ts/client/src/api/types/BlockType.ts b/skyvern-ts/client/src/api/types/BlockType.ts index 0c4c658b..1f4f6b69 100644 --- a/skyvern-ts/client/src/api/types/BlockType.ts +++ b/skyvern-ts/client/src/api/types/BlockType.ts @@ -21,5 +21,6 @@ export const BlockType = { GotoUrl: "goto_url", PdfParser: "pdf_parser", HttpRequest: "http_request", + HumanInteraction: "human_interaction", } as const; export type BlockType = (typeof BlockType)[keyof typeof BlockType]; diff --git a/skyvern-ts/client/src/api/types/ForLoopBlockLoopBlocksItem.ts b/skyvern-ts/client/src/api/types/ForLoopBlockLoopBlocksItem.ts index e3952f67..cd6626fa 100644 --- a/skyvern-ts/client/src/api/types/ForLoopBlockLoopBlocksItem.ts +++ b/skyvern-ts/client/src/api/types/ForLoopBlockLoopBlocksItem.ts @@ -13,6 +13,7 @@ export type ForLoopBlockLoopBlocksItem = | Skyvern.ForLoopBlockLoopBlocksItem.ForLoop | Skyvern.ForLoopBlockLoopBlocksItem.GotoUrl | Skyvern.ForLoopBlockLoopBlocksItem.HttpRequest + | Skyvern.ForLoopBlockLoopBlocksItem.HumanInteraction | Skyvern.ForLoopBlockLoopBlocksItem.Login | Skyvern.ForLoopBlockLoopBlocksItem.Navigation | Skyvern.ForLoopBlockLoopBlocksItem.PdfParser @@ -65,6 +66,10 @@ export namespace ForLoopBlockLoopBlocksItem { block_type: "http_request"; } + export interface HumanInteraction extends Skyvern.HumanInteractionBlock { + block_type: "human_interaction"; + } + export interface Login extends Skyvern.LoginBlock { block_type: "login"; } diff --git a/skyvern-ts/client/src/api/types/ForLoopBlockYamlLoopBlocksItem.ts b/skyvern-ts/client/src/api/types/ForLoopBlockYamlLoopBlocksItem.ts index 9c0f417f..4b2d6333 100644 --- a/skyvern-ts/client/src/api/types/ForLoopBlockYamlLoopBlocksItem.ts +++ b/skyvern-ts/client/src/api/types/ForLoopBlockYamlLoopBlocksItem.ts @@ -18,6 +18,7 @@ export type ForLoopBlockYamlLoopBlocksItem = | Skyvern.ForLoopBlockYamlLoopBlocksItem.Extraction | Skyvern.ForLoopBlockYamlLoopBlocksItem.Login | Skyvern.ForLoopBlockYamlLoopBlocksItem.Wait + | Skyvern.ForLoopBlockYamlLoopBlocksItem.HumanInteraction | Skyvern.ForLoopBlockYamlLoopBlocksItem.FileDownload | Skyvern.ForLoopBlockYamlLoopBlocksItem.GotoUrl | Skyvern.ForLoopBlockYamlLoopBlocksItem.PdfParser @@ -85,6 +86,10 @@ export namespace ForLoopBlockYamlLoopBlocksItem { block_type: "wait"; } + export interface HumanInteraction extends Skyvern.HumanInteractionBlockYaml { + block_type: "human_interaction"; + } + export interface FileDownload extends Skyvern.FileDownloadBlockYaml { block_type: "file_download"; } diff --git a/skyvern-ts/client/src/api/types/HumanInteractionBlock.ts b/skyvern-ts/client/src/api/types/HumanInteractionBlock.ts new file mode 100644 index 00000000..54496d30 --- /dev/null +++ b/skyvern-ts/client/src/api/types/HumanInteractionBlock.ts @@ -0,0 +1,55 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Skyvern from "../index.js"; + +/** + * A block for human/agent interaction. + * + * For the first pass at this, the implicit behaviour is that the user is given a single binary + * choice (a go//no-go). + * + * If the human: + * - chooses positively, the workflow continues + * - chooses negatively, the workflow is terminated + * - does not respond within the timeout period, the workflow terminates + */ +export interface HumanInteractionBlock { + label: string; + output_parameter: Skyvern.OutputParameter; + continue_on_failure?: boolean; + model?: Record; + disable_cache?: boolean; + task_type?: string; + url?: string; + title?: string; + engine?: Skyvern.RunEngine; + complete_criterion?: string; + terminate_criterion?: string; + navigation_goal?: string; + data_extraction_goal?: string; + data_schema?: HumanInteractionBlock.DataSchema; + error_code_mapping?: Record; + max_retries?: number; + max_steps_per_run?: number; + parameters?: Skyvern.HumanInteractionBlockParametersItem[]; + complete_on_download?: boolean; + download_suffix?: string; + totp_verification_url?: string; + totp_identifier?: string; + cache_actions?: boolean; + complete_verification?: boolean; + include_action_history_in_verification?: boolean; + download_timeout?: number; + instructions?: string; + positive_descriptor?: string; + negative_descriptor?: string; + timeout_seconds?: number; + sender?: string; + recipients?: string[]; + subject?: string; + body?: string; +} + +export namespace HumanInteractionBlock { + export type DataSchema = Record | unknown[] | string; +} diff --git a/skyvern-ts/client/src/api/types/HumanInteractionBlockParametersItem.ts b/skyvern-ts/client/src/api/types/HumanInteractionBlockParametersItem.ts new file mode 100644 index 00000000..63d722c9 --- /dev/null +++ b/skyvern-ts/client/src/api/types/HumanInteractionBlockParametersItem.ts @@ -0,0 +1,62 @@ +// This file was auto-generated by Fern from our API Definition. + +import type * as Skyvern from "../index.js"; + +export type HumanInteractionBlockParametersItem = + | Skyvern.HumanInteractionBlockParametersItem.AwsSecret + | Skyvern.HumanInteractionBlockParametersItem.AzureSecret + | Skyvern.HumanInteractionBlockParametersItem.AzureVaultCredential + | Skyvern.HumanInteractionBlockParametersItem.BitwardenCreditCardData + | Skyvern.HumanInteractionBlockParametersItem.BitwardenLoginCredential + | Skyvern.HumanInteractionBlockParametersItem.BitwardenSensitiveInformation + | Skyvern.HumanInteractionBlockParametersItem.Context + | Skyvern.HumanInteractionBlockParametersItem.Credential + | Skyvern.HumanInteractionBlockParametersItem.Onepassword + | Skyvern.HumanInteractionBlockParametersItem.Output + | Skyvern.HumanInteractionBlockParametersItem.Workflow; + +export namespace HumanInteractionBlockParametersItem { + export interface AwsSecret extends Skyvern.AwsSecretParameter { + parameter_type: "aws_secret"; + } + + export interface AzureSecret extends Skyvern.AzureSecretParameter { + parameter_type: "azure_secret"; + } + + export interface AzureVaultCredential extends Skyvern.AzureVaultCredentialParameter { + parameter_type: "azure_vault_credential"; + } + + export interface BitwardenCreditCardData extends Skyvern.BitwardenCreditCardDataParameter { + parameter_type: "bitwarden_credit_card_data"; + } + + export interface BitwardenLoginCredential extends Skyvern.BitwardenLoginCredentialParameter { + parameter_type: "bitwarden_login_credential"; + } + + export interface BitwardenSensitiveInformation extends Skyvern.BitwardenSensitiveInformationParameter { + parameter_type: "bitwarden_sensitive_information"; + } + + export interface Context extends Skyvern.ContextParameter { + parameter_type: "context"; + } + + export interface Credential extends Skyvern.CredentialParameter { + parameter_type: "credential"; + } + + export interface Onepassword extends Skyvern.OnePasswordCredentialParameter { + parameter_type: "onepassword"; + } + + export interface Output extends Skyvern.OutputParameter { + parameter_type: "output"; + } + + export interface Workflow extends Skyvern.WorkflowParameter { + parameter_type: "workflow"; + } +} diff --git a/skyvern-ts/client/src/api/types/HumanInteractionBlockYaml.ts b/skyvern-ts/client/src/api/types/HumanInteractionBlockYaml.ts new file mode 100644 index 00000000..af6eca2a --- /dev/null +++ b/skyvern-ts/client/src/api/types/HumanInteractionBlockYaml.ts @@ -0,0 +1,15 @@ +// This file was auto-generated by Fern from our API Definition. + +export interface HumanInteractionBlockYaml { + label: string; + continue_on_failure?: boolean; + model?: Record; + instructions?: string; + positive_descriptor?: string; + negative_descriptor?: string; + timeout_seconds: number; + sender: string; + recipients: string[]; + subject: string; + body: string; +} diff --git a/skyvern-ts/client/src/api/types/WorkflowDefinitionBlocksItem.ts b/skyvern-ts/client/src/api/types/WorkflowDefinitionBlocksItem.ts index 5477f27f..38ee85e4 100644 --- a/skyvern-ts/client/src/api/types/WorkflowDefinitionBlocksItem.ts +++ b/skyvern-ts/client/src/api/types/WorkflowDefinitionBlocksItem.ts @@ -13,6 +13,7 @@ export type WorkflowDefinitionBlocksItem = | Skyvern.WorkflowDefinitionBlocksItem.ForLoop | Skyvern.WorkflowDefinitionBlocksItem.GotoUrl | Skyvern.WorkflowDefinitionBlocksItem.HttpRequest + | Skyvern.WorkflowDefinitionBlocksItem.HumanInteraction | Skyvern.WorkflowDefinitionBlocksItem.Login | Skyvern.WorkflowDefinitionBlocksItem.Navigation | Skyvern.WorkflowDefinitionBlocksItem.PdfParser @@ -65,6 +66,10 @@ export namespace WorkflowDefinitionBlocksItem { block_type: "http_request"; } + export interface HumanInteraction extends Skyvern.HumanInteractionBlock { + block_type: "human_interaction"; + } + export interface Login extends Skyvern.LoginBlock { block_type: "login"; } diff --git a/skyvern-ts/client/src/api/types/WorkflowDefinitionYamlBlocksItem.ts b/skyvern-ts/client/src/api/types/WorkflowDefinitionYamlBlocksItem.ts index d424f238..6535b3a9 100644 --- a/skyvern-ts/client/src/api/types/WorkflowDefinitionYamlBlocksItem.ts +++ b/skyvern-ts/client/src/api/types/WorkflowDefinitionYamlBlocksItem.ts @@ -13,6 +13,7 @@ export type WorkflowDefinitionYamlBlocksItem = | Skyvern.WorkflowDefinitionYamlBlocksItem.ForLoop | Skyvern.WorkflowDefinitionYamlBlocksItem.GotoUrl | Skyvern.WorkflowDefinitionYamlBlocksItem.HttpRequest + | Skyvern.WorkflowDefinitionYamlBlocksItem.HumanInteraction | Skyvern.WorkflowDefinitionYamlBlocksItem.Login | Skyvern.WorkflowDefinitionYamlBlocksItem.Navigation | Skyvern.WorkflowDefinitionYamlBlocksItem.PdfParser @@ -65,6 +66,10 @@ export namespace WorkflowDefinitionYamlBlocksItem { block_type: "http_request"; } + export interface HumanInteraction extends Skyvern.HumanInteractionBlockYaml { + block_type: "human_interaction"; + } + export interface Login extends Skyvern.LoginBlockYaml { block_type: "login"; } diff --git a/skyvern-ts/client/src/api/types/index.ts b/skyvern-ts/client/src/api/types/index.ts index 77105f65..26eca585 100644 --- a/skyvern-ts/client/src/api/types/index.ts +++ b/skyvern-ts/client/src/api/types/index.ts @@ -58,6 +58,9 @@ export * from "./HttpRequestBlock.js"; export * from "./HttpRequestBlockParametersItem.js"; export * from "./HttpRequestBlockYaml.js"; export * from "./HttpValidationError.js"; +export * from "./HumanInteractionBlock.js"; +export * from "./HumanInteractionBlockParametersItem.js"; +export * from "./HumanInteractionBlockYaml.js"; export * from "./InputOrSelectContext.js"; export * from "./LoginBlock.js"; export * from "./LoginBlockParametersItem.js";