Fern: add TypeScript code examples (#3839)
This commit is contained in:
committed by
GitHub
parent
47899085cf
commit
d1008959b0
@@ -22,18 +22,28 @@ from skyvern.forge.sdk.db.enums import OrganizationAuthTokenType
|
||||
from skyvern.forge.sdk.executor.factory import AsyncExecutorFactory
|
||||
from skyvern.forge.sdk.models import Step
|
||||
from skyvern.forge.sdk.routes.code_samples import (
|
||||
CANCEL_RUN_CODE_SAMPLE,
|
||||
CREATE_WORKFLOW_CODE_SAMPLE,
|
||||
CANCEL_RUN_CODE_SAMPLE_PYTHON,
|
||||
CANCEL_RUN_CODE_SAMPLE_TS,
|
||||
CREATE_WORKFLOW_CODE_SAMPLE_CURL,
|
||||
CREATE_WORKFLOW_CODE_SAMPLE_PYTHON,
|
||||
DELETE_WORKFLOW_CODE_SAMPLE,
|
||||
GET_RUN_CODE_SAMPLE,
|
||||
GET_RUN_TIMELINE_CODE_SAMPLE,
|
||||
GET_WORKFLOWS_CODE_SAMPLE,
|
||||
RETRY_RUN_WEBHOOK_CODE_SAMPLE,
|
||||
RUN_TASK_CODE_SAMPLE,
|
||||
RUN_WORKFLOW_CODE_SAMPLE,
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE,
|
||||
CREATE_WORKFLOW_CODE_SAMPLE_TS,
|
||||
DELETE_WORKFLOW_CODE_SAMPLE_PYTHON,
|
||||
DELETE_WORKFLOW_CODE_SAMPLE_TS,
|
||||
GET_RUN_CODE_SAMPLE_PYTHON,
|
||||
GET_RUN_CODE_SAMPLE_TS,
|
||||
GET_RUN_TIMELINE_CODE_SAMPLE_PYTHON,
|
||||
GET_RUN_TIMELINE_CODE_SAMPLE_TS,
|
||||
GET_WORKFLOWS_CODE_SAMPLE_PYTHON,
|
||||
GET_WORKFLOWS_CODE_SAMPLE_TS,
|
||||
RETRY_RUN_WEBHOOK_CODE_SAMPLE_PYTHON,
|
||||
RETRY_RUN_WEBHOOK_CODE_SAMPLE_TS,
|
||||
RUN_TASK_CODE_SAMPLE_PYTHON,
|
||||
RUN_TASK_CODE_SAMPLE_TS,
|
||||
RUN_WORKFLOW_CODE_SAMPLE_PYTHON,
|
||||
RUN_WORKFLOW_CODE_SAMPLE_TS,
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE_CURL,
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE_PYTHON,
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE_TS,
|
||||
)
|
||||
from skyvern.forge.sdk.routes.routers import base_router, legacy_base_router, legacy_v2_router
|
||||
from skyvern.forge.sdk.schemas.ai_suggestions import AISuggestionBase, AISuggestionRequest
|
||||
@@ -106,10 +116,8 @@ class AISuggestionType(str, Enum):
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{
|
||||
"sdk": "python",
|
||||
"code": RUN_TASK_CODE_SAMPLE,
|
||||
}
|
||||
{"sdk": "python", "code": RUN_TASK_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": RUN_TASK_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -287,10 +295,8 @@ async def run_task(
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{
|
||||
"sdk": "python",
|
||||
"code": RUN_WORKFLOW_CODE_SAMPLE,
|
||||
}
|
||||
{"sdk": "python", "code": RUN_WORKFLOW_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": RUN_WORKFLOW_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -375,7 +381,14 @@ async def run_workflow(
|
||||
summary="Get a run by id",
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_run",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_RUN_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_RUN_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_RUN_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
responses={
|
||||
200: {"description": "Successfully got run"},
|
||||
@@ -407,7 +420,14 @@ async def get_run(
|
||||
tags=["Agent", "Workflows"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "cancel_run",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": CANCEL_RUN_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": CANCEL_RUN_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": CANCEL_RUN_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Cancel a run (task or workflow)",
|
||||
summary="Cancel a run by id",
|
||||
@@ -478,8 +498,9 @@ async def create_workflow_legacy(
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "curl", "code": CREATE_WORKFLOW_CODE_SAMPLE},
|
||||
{"sdk": "curl", "code": CREATE_WORKFLOW_CODE_SAMPLE_CURL},
|
||||
{"sdk": "python", "code": CREATE_WORKFLOW_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": CREATE_WORKFLOW_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -695,8 +716,9 @@ async def update_workflow_legacy(
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "curl", "code": UPDATE_WORKFLOW_CODE_SAMPLE},
|
||||
{"sdk": "curl", "code": UPDATE_WORKFLOW_CODE_SAMPLE_CURL},
|
||||
{"sdk": "python", "code": UPDATE_WORKFLOW_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": UPDATE_WORKFLOW_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -770,7 +792,14 @@ async def update_workflow(
|
||||
tags=["Workflows"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "delete_workflow",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": DELETE_WORKFLOW_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": DELETE_WORKFLOW_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": DELETE_WORKFLOW_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Delete a workflow",
|
||||
summary="Delete a workflow",
|
||||
@@ -935,7 +964,14 @@ async def get_run_artifacts(
|
||||
tags=["Agent"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "retry_run_webhook",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": RETRY_RUN_WEBHOOK_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": RETRY_RUN_WEBHOOK_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": RETRY_RUN_WEBHOOK_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Retry sending the webhook for a run",
|
||||
summary="Retry run webhook",
|
||||
@@ -956,7 +992,14 @@ async def retry_run_webhook(
|
||||
response_model=list[WorkflowRunTimeline],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_run_timeline",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_RUN_TIMELINE_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_RUN_TIMELINE_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_RUN_TIMELINE_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Get timeline for a run (workflow run or task_v2 run)",
|
||||
summary="Get run timeline",
|
||||
@@ -1828,7 +1871,14 @@ async def get_workflow_run(
|
||||
tags=["Workflows"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_workflows",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_WORKFLOWS_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_WORKFLOWS_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_WORKFLOWS_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
@base_router.get("/workflows/", response_model=list[Workflow], include_in_schema=False)
|
||||
|
||||
@@ -6,10 +6,14 @@ from fastapi.responses import ORJSONResponse
|
||||
from skyvern import analytics
|
||||
from skyvern.forge import app
|
||||
from skyvern.forge.sdk.routes.code_samples import (
|
||||
CLOSE_BROWSER_SESSION_CODE_SAMPLE,
|
||||
CREATE_BROWSER_SESSION_CODE_SAMPLE,
|
||||
GET_BROWSER_SESSION_CODE_SAMPLE,
|
||||
GET_BROWSER_SESSIONS_CODE_SAMPLE,
|
||||
CLOSE_BROWSER_SESSION_CODE_SAMPLE_PYTHON,
|
||||
CLOSE_BROWSER_SESSION_CODE_SAMPLE_TS,
|
||||
CREATE_BROWSER_SESSION_CODE_SAMPLE_PYTHON,
|
||||
CREATE_BROWSER_SESSION_CODE_SAMPLE_TS,
|
||||
GET_BROWSER_SESSION_CODE_SAMPLE_PYTHON,
|
||||
GET_BROWSER_SESSION_CODE_SAMPLE_TS,
|
||||
GET_BROWSER_SESSIONS_CODE_SAMPLE_PYTHON,
|
||||
GET_BROWSER_SESSIONS_CODE_SAMPLE_TS,
|
||||
)
|
||||
from skyvern.forge.sdk.routes.routers import base_router
|
||||
from skyvern.forge.sdk.schemas.organizations import Organization
|
||||
@@ -56,7 +60,14 @@ async def get_browser_sessions_all(
|
||||
tags=["Browser Sessions"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "create_browser_session",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": CREATE_BROWSER_SESSION_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": CREATE_BROWSER_SESSION_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": CREATE_BROWSER_SESSION_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Create a browser session that persists across multiple runs",
|
||||
summary="Create a session",
|
||||
@@ -87,7 +98,14 @@ async def create_browser_session(
|
||||
tags=["Browser Sessions"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "close_browser_session",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": CLOSE_BROWSER_SESSION_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": CLOSE_BROWSER_SESSION_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": CLOSE_BROWSER_SESSION_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Close a session. Once closed, the session cannot be used again.",
|
||||
summary="Close a session",
|
||||
@@ -122,7 +140,14 @@ async def close_browser_session(
|
||||
tags=["Browser Sessions"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_browser_session",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_BROWSER_SESSION_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_BROWSER_SESSION_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_BROWSER_SESSION_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Get details about a specific browser session, including the browser address for cdp connection.",
|
||||
summary="Get a session",
|
||||
@@ -159,7 +184,14 @@ async def get_browser_session(
|
||||
tags=["Browser Sessions"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_browser_sessions",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_BROWSER_SESSIONS_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_BROWSER_SESSIONS_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_BROWSER_SESSIONS_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
description="Get all active browser sessions for the organization",
|
||||
summary="Get active browser sessions",
|
||||
|
||||
@@ -1,31 +1,66 @@
|
||||
# Agent
|
||||
RUN_TASK_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
RUN_TASK_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.run_task(prompt="What's the top post on hackernews?")
|
||||
"""
|
||||
RUN_WORKFLOW_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
RUN_TASK_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.runTask({
|
||||
body: {
|
||||
prompt: "Find the top 3 posts on Hacker News."
|
||||
}
|
||||
})
|
||||
"""
|
||||
RUN_WORKFLOW_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.run_workflow(workflow_id="wpid_123", parameters={"parameter1": "value1", "parameter2": "value2"})
|
||||
"""
|
||||
GET_RUN_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
RUN_WORKFLOW_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.runWorkflow({
|
||||
body: {
|
||||
workflow_id: "wpid_123",
|
||||
parameters: { parameter1: "value1", parameter2: "value2" }
|
||||
}
|
||||
});
|
||||
"""
|
||||
GET_RUN_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
run = await skyvern.get_run(run_id="tsk_v2_123")
|
||||
print(run)
|
||||
"""
|
||||
CANCEL_RUN_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
GET_RUN_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const run = await skyvern.getRun("tsk_v2_123");
|
||||
console.log(run);
|
||||
"""
|
||||
CANCEL_RUN_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.cancel_run(run_id="tsk_v2_123")
|
||||
"""
|
||||
RETRY_RUN_WEBHOOK_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
CANCEL_RUN_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.cancelRun("tsk_v2_123");
|
||||
"""
|
||||
RETRY_RUN_WEBHOOK_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.retry_run_webhook(run_id="tsk_v2_123")
|
||||
"""
|
||||
GET_RUN_TIMELINE_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
RETRY_RUN_WEBHOOK_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.retryRunWebhook("tsk_v2_123");
|
||||
"""
|
||||
GET_RUN_TIMELINE_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
# Get timeline for a workflow run
|
||||
@@ -36,7 +71,18 @@ print(timeline)
|
||||
timeline = await skyvern.get_run_timeline(run_id="tsk_v2_123")
|
||||
print(timeline)
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_SKYVERN = """# Login with password saved in Skyvern
|
||||
GET_RUN_TIMELINE_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
// Get timeline for a workflow run
|
||||
const timeline = await skyvern.getRunTimeline("wr_123");
|
||||
console.log(timeline);
|
||||
|
||||
// Get timeline for a task_v2 run
|
||||
const timeline2 = await skyvern.getRunTimeline("tsk_v2_123");
|
||||
console.log(timeline2);
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_SKYVERN_PYTHON = """# Login with password saved in Skyvern
|
||||
from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
@@ -46,7 +92,17 @@ await skyvern.login(
|
||||
credential_id="cred_123"),
|
||||
)
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_BITWARDEN = """# Login with password saved in Bitwarden
|
||||
LOGIN_CODE_SAMPLE_SKYVERN_TS = """// Login with password saved in Skyvern
|
||||
import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.login({
|
||||
url: "https://example.com",
|
||||
credential_type: "skyvern",
|
||||
credential_id: "cred_123"
|
||||
});
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_BITWARDEN_PYTHON = """# Login with password saved in Bitwarden
|
||||
from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
@@ -64,7 +120,25 @@ await skyvern.login(
|
||||
bitwarden_item_id="BITWARDEN ITEM ID",
|
||||
)
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_ONEPASSWORD = """# Login with password saved in 1Password
|
||||
LOGIN_CODE_SAMPLE_BITWARDEN_TS = """// Login with password saved in Bitwarden
|
||||
import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
// Login with a Bitwarden collection and website url filter
|
||||
await skyvern.login({
|
||||
url: "https://example.com",
|
||||
credential_type: "bitwarden",
|
||||
bitwarden_collection_id: "BITWARDEN COLLECTION ID"
|
||||
});
|
||||
|
||||
// Login with a Bitwarden item
|
||||
await skyvern.login({
|
||||
url: "https://example.com",
|
||||
credential_type: "bitwarden",
|
||||
bitwarden_item_id: "BITWARDEN ITEM ID"
|
||||
});
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_ONEPASSWORD_PYTHON = """# Login with password saved in 1Password
|
||||
from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
@@ -75,9 +149,20 @@ await skyvern.login(
|
||||
onepassword_item_id="1PASSWORD ITEM ID",
|
||||
)
|
||||
"""
|
||||
LOGIN_CODE_SAMPLE_ONEPASSWORD_TS = """// Login with password saved in 1Password
|
||||
import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.login({
|
||||
url: "https://example.com",
|
||||
credential_type: "onepassword",
|
||||
onepassword_vault_id: "1PASSWORD VAULT ID",
|
||||
onepassword_item_id: "1PASSWORD ITEM ID"
|
||||
});
|
||||
"""
|
||||
|
||||
# Workflows
|
||||
CREATE_WORKFLOW_CODE_SAMPLE = """curl -X POST https://api.skyvern.com/v1/workflows \
|
||||
CREATE_WORKFLOW_CODE_SAMPLE_CURL = """curl -X POST https://api.skyvern.com/v1/workflows \
|
||||
--header 'x-api-key: {{x-api-key}}' \
|
||||
--header 'Content-Type: text/plain' \
|
||||
--data-raw 'title: Contact Forms
|
||||
@@ -245,7 +330,95 @@ skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
workflow = await skyvern.create_workflow(json_definition=workflow_definition)
|
||||
print(workflow)
|
||||
"""
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE = """curl -X POST https://api.skyvern.com/v1/workflows/wpid_123 \
|
||||
CREATE_WORKFLOW_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
|
||||
// Create a workflow in JSON format
|
||||
const workflowDefinition = {
|
||||
title: "Contact Forms Workflow",
|
||||
description: "Fill the contact form on the website",
|
||||
proxy_location: "RESIDENTIAL",
|
||||
webhook_callback_url: "https://example.com/webhook",
|
||||
totp_verification_url: "https://example.com/totp",
|
||||
totp_identifier: "4155555555",
|
||||
model: { name: "gpt-4.1" },
|
||||
workflow_definition: {
|
||||
parameters: [
|
||||
{
|
||||
key: "website_url",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: null
|
||||
},
|
||||
{
|
||||
key: "name",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: null
|
||||
},
|
||||
{
|
||||
key: "additional_information",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: "Message: I'd love to learn more about your...\\nPhone: 123-456-7890\\nInquiry type: sales\\nOptional Subject: Hello from [Company Here]"
|
||||
},
|
||||
{
|
||||
key: "email",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: null
|
||||
}
|
||||
],
|
||||
blocks: [
|
||||
{
|
||||
label: "Fill_Out_Contact_Form",
|
||||
continue_on_failure: true,
|
||||
block_type: "navigation",
|
||||
url: "{{website_url}}",
|
||||
title: "Fill_Out_Contact_Form",
|
||||
engine: "skyvern-1.0",
|
||||
navigation_goal: "Find the contact form. Fill out the contact us form and submit it. Your goal is complete when the page says your message has been sent. In the case you can't find a contact us form, terminate.\\n\\nFill out required fields as best you can using the following information:\\n{{name}}\\n{{email}}\\n{{additional_information}}",
|
||||
error_code_mapping: null,
|
||||
max_retries: 0,
|
||||
max_steps_per_run: null,
|
||||
complete_on_download: false,
|
||||
download_suffix: null,
|
||||
parameter_keys: [],
|
||||
totp_identifier: null,
|
||||
totp_verification_url: null,
|
||||
cache_actions: false,
|
||||
complete_criterion: "",
|
||||
terminate_criterion: "",
|
||||
include_action_history_in_verification: false
|
||||
},
|
||||
{
|
||||
label: "Extract_Email",
|
||||
continue_on_failure: false,
|
||||
block_type: "extraction",
|
||||
url: "",
|
||||
title: "Extract_Email",
|
||||
data_extraction_goal: "Extract a company email if available ",
|
||||
data_schema: null,
|
||||
max_retries: 0,
|
||||
max_steps_per_run: null,
|
||||
parameter_keys: [],
|
||||
cache_actions: false
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
const workflow = await skyvern.createWorkflow({
|
||||
json_definition: workflowDefinition
|
||||
});
|
||||
console.log(workflow);
|
||||
"""
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE_CURL = """curl -X POST https://api.skyvern.com/v1/workflows/wpid_123 \
|
||||
--header 'x-api-key: {{x-api-key}}' \
|
||||
--header 'Content-Type: text/plain' \
|
||||
--data-raw 'title: Contact Forms
|
||||
@@ -412,25 +585,134 @@ skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
workflow = await skyvern.update_workflow(workflow_id="wpid_123", json_definition=updated_workflow_definition)
|
||||
print(workflow)
|
||||
"""
|
||||
DELETE_WORKFLOW_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
UPDATE_WORKFLOW_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
|
||||
const updatedWorkflowDefinition = {
|
||||
title: "Updated Contact Forms Workflow",
|
||||
description: "Fill the contact form on the website",
|
||||
proxy_location: "RESIDENTIAL",
|
||||
webhook_callback_url: "https://example.com/webhook",
|
||||
totp_verification_url: "https://example.com/totp",
|
||||
totp_identifier: "4155555555",
|
||||
model: { name: "gpt-4.1" },
|
||||
workflow_definition: {
|
||||
parameters: [
|
||||
{
|
||||
key: "website_url",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: null
|
||||
},
|
||||
{
|
||||
key: "name",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: null
|
||||
},
|
||||
{
|
||||
key: "additional_information",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: "Message: I'd love to learn more about your...\\nPhone: 123-456-7890\\nInquiry type: sales\\nOptional Subject: Hello from [Company Here]"
|
||||
},
|
||||
{
|
||||
key: "email",
|
||||
description: null,
|
||||
parameter_type: "workflow",
|
||||
workflow_parameter_type: "string",
|
||||
default_value: null
|
||||
}
|
||||
],
|
||||
blocks: [
|
||||
{
|
||||
label: "Fill_Out_Contact_Form",
|
||||
continue_on_failure: true,
|
||||
block_type: "navigation",
|
||||
url: "{{website_url}}",
|
||||
title: "Fill_Out_Contact_Form",
|
||||
engine: "skyvern-1.0",
|
||||
navigation_goal: "Find the contact form. Fill out the contact us form and submit it. Your goal is complete when the page says your message has been sent. In the case you can't find a contact us form, terminate.\\n\\nFill out required fields as best you can using the following information:\\n{{name}}\\n{{email}}\\n{{additional_information}}",
|
||||
error_code_mapping: null,
|
||||
max_retries: 0,
|
||||
max_steps_per_run: null,
|
||||
complete_on_download: false,
|
||||
download_suffix: null,
|
||||
parameter_keys: [],
|
||||
totp_identifier: null,
|
||||
totp_verification_url: null,
|
||||
cache_actions: false,
|
||||
complete_criterion: "",
|
||||
terminate_criterion: "",
|
||||
include_action_history_in_verification: false
|
||||
},
|
||||
{
|
||||
label: "Extract_Email",
|
||||
continue_on_failure: false,
|
||||
block_type: "extraction",
|
||||
url: "",
|
||||
title: "Extract_Email",
|
||||
data_extraction_goal: "Extract a company email if available ",
|
||||
data_schema: null,
|
||||
max_retries: 0,
|
||||
max_steps_per_run: null,
|
||||
parameter_keys: [],
|
||||
cache_actions: false
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
const workflow = await skyvern.updateWorkflow("wpid_123", {
|
||||
json_definition: updatedWorkflowDefinition
|
||||
});
|
||||
console.log(workflow);
|
||||
"""
|
||||
DELETE_WORKFLOW_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.delete_workflow(workflow_id="wpid_123")
|
||||
"""
|
||||
GET_WORKFLOWS_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
DELETE_WORKFLOW_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.deleteWorkflow("wpid_123");
|
||||
"""
|
||||
GET_WORKFLOWS_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
workflows = await skyvern.get_workflows()
|
||||
print(workflows)
|
||||
"""
|
||||
GET_WORKFLOWS_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const workflows = await skyvern.getWorkflows();
|
||||
console.log(workflows);
|
||||
"""
|
||||
|
||||
# Credentials
|
||||
SEND_TOTP_CODE_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
SEND_TOTP_CODE_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.send_totp_code(totp_code="123456")
|
||||
await skyvern.send_totp_code(
|
||||
totp_identifier="john.doe@example.com",
|
||||
content="Hello, your verification code is 123456"
|
||||
)
|
||||
"""
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
SEND_TOTP_CODE_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.sendTotpCode({
|
||||
totp_identifier: "john.doe@example.com",
|
||||
content: "Hello, your verification code is 123456"
|
||||
});
|
||||
"""
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.create_credential(
|
||||
@@ -439,7 +721,16 @@ await skyvern.create_credential(
|
||||
credential={"username": "username", "password": "password"},
|
||||
)
|
||||
"""
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD = """from skyvern import Skyvern
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.createCredential({
|
||||
name: "My Credential",
|
||||
credential_type: "password",
|
||||
credential: { username: "username", password: "password" }
|
||||
});
|
||||
"""
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.create_credential(
|
||||
@@ -455,46 +746,104 @@ await skyvern.create_credential(
|
||||
},
|
||||
)
|
||||
"""
|
||||
DELETE_CREDENTIAL_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.createCredential({
|
||||
name: "My Credit Card",
|
||||
credential_type: "credit_card",
|
||||
credential: {
|
||||
card_number: "4242424242424242",
|
||||
card_cvv: "424",
|
||||
card_exp_month: "12",
|
||||
card_exp_year: "2028",
|
||||
card_brand: "visa",
|
||||
card_holder_name: "John Doe"
|
||||
}
|
||||
});
|
||||
"""
|
||||
DELETE_CREDENTIAL_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.delete_credential(credential_id="cred_123")
|
||||
"""
|
||||
GET_CREDENTIAL_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
DELETE_CREDENTIAL_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.deleteCredential("cred_123");
|
||||
"""
|
||||
GET_CREDENTIAL_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
credential = await skyvern.get_credential(credential_id="cred_123")
|
||||
print(credential)
|
||||
"""
|
||||
GET_CREDENTIALS_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
GET_CREDENTIAL_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const credential = await skyvern.getCredential("cred_123");
|
||||
console.log(credential);
|
||||
"""
|
||||
GET_CREDENTIALS_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
credentials = await skyvern.get_credentials()
|
||||
print(credentials)
|
||||
"""
|
||||
GET_CREDENTIALS_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const credentials = await skyvern.getCredentials();
|
||||
console.log(credentials);
|
||||
"""
|
||||
|
||||
# Browser Sessions
|
||||
|
||||
CREATE_BROWSER_SESSION_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
CREATE_BROWSER_SESSION_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
browser_session = await skyvern.create_browser_session(timeout=60)
|
||||
print(browser_session)
|
||||
"""
|
||||
CLOSE_BROWSER_SESSION_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
CREATE_BROWSER_SESSION_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const browserSession = await skyvern.createBrowserSession({
|
||||
timeout: 60
|
||||
});
|
||||
console.log(browserSession);
|
||||
"""
|
||||
CLOSE_BROWSER_SESSION_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
await skyvern.close_browser_session(browser_session_id="pbs_123")
|
||||
"""
|
||||
GET_BROWSER_SESSION_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
CLOSE_BROWSER_SESSION_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
await skyvern.closeBrowserSession("pbs_123");
|
||||
"""
|
||||
GET_BROWSER_SESSION_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
browser_session = await skyvern.get_browser_session(browser_session_id="pbs_123")
|
||||
print(browser_session)
|
||||
"""
|
||||
GET_BROWSER_SESSIONS_CODE_SAMPLE = """from skyvern import Skyvern
|
||||
GET_BROWSER_SESSION_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const browserSession = await skyvern.getBrowserSession("pbs_123");
|
||||
console.log(browserSession);
|
||||
"""
|
||||
GET_BROWSER_SESSIONS_CODE_SAMPLE_PYTHON = """from skyvern import Skyvern
|
||||
|
||||
skyvern = Skyvern(api_key="YOUR_API_KEY")
|
||||
browser_sessions = await skyvern.get_browser_sessions()
|
||||
print(browser_sessions)
|
||||
"""
|
||||
GET_BROWSER_SESSIONS_CODE_SAMPLE_TS = """import { SkyvernClient } from "@skyvern/client";
|
||||
|
||||
const skyvern = new SkyvernClient({ apiKey: "YOUR_API_KEY" });
|
||||
const browserSessions = await skyvern.getBrowserSessions();
|
||||
console.log(browserSessions);
|
||||
"""
|
||||
|
||||
@@ -5,12 +5,18 @@ from skyvern.config import settings
|
||||
from skyvern.forge import app
|
||||
from skyvern.forge.sdk.db.enums import OrganizationAuthTokenType
|
||||
from skyvern.forge.sdk.routes.code_samples import (
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE,
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD,
|
||||
DELETE_CREDENTIAL_CODE_SAMPLE,
|
||||
GET_CREDENTIAL_CODE_SAMPLE,
|
||||
GET_CREDENTIALS_CODE_SAMPLE,
|
||||
SEND_TOTP_CODE_CODE_SAMPLE,
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD_PYTHON,
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD_TS,
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_PYTHON,
|
||||
CREATE_CREDENTIAL_CODE_SAMPLE_TS,
|
||||
DELETE_CREDENTIAL_CODE_SAMPLE_PYTHON,
|
||||
DELETE_CREDENTIAL_CODE_SAMPLE_TS,
|
||||
GET_CREDENTIAL_CODE_SAMPLE_PYTHON,
|
||||
GET_CREDENTIAL_CODE_SAMPLE_TS,
|
||||
GET_CREDENTIALS_CODE_SAMPLE_PYTHON,
|
||||
GET_CREDENTIALS_CODE_SAMPLE_TS,
|
||||
SEND_TOTP_CODE_CODE_SAMPLE_PYTHON,
|
||||
SEND_TOTP_CODE_CODE_SAMPLE_TS,
|
||||
)
|
||||
from skyvern.forge.sdk.routes.routers import base_router, legacy_base_router
|
||||
from skyvern.forge.sdk.schemas.credentials import (
|
||||
@@ -60,7 +66,14 @@ async def fetch_credential_item_background(item_id: str) -> None:
|
||||
tags=["Credentials"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "send_totp_code",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": SEND_TOTP_CODE_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": SEND_TOTP_CODE_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": SEND_TOTP_CODE_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
@base_router.post(
|
||||
@@ -125,8 +138,10 @@ async def send_totp_code(
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": CREATE_CREDENTIAL_CODE_SAMPLE},
|
||||
{"sdk": "python", "code": CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD},
|
||||
{"sdk": "python", "code": CREATE_CREDENTIAL_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "python", "code": CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD_PYTHON},
|
||||
{"sdk": "typescript", "code": CREATE_CREDENTIAL_CODE_SAMPLE_TS},
|
||||
{"sdk": "typescript", "code": CREATE_CREDENTIAL_CODE_SAMPLE_CREDIT_CARD_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -196,7 +211,14 @@ async def create_credential(
|
||||
tags=["Credentials"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "delete_credential",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": DELETE_CREDENTIAL_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": DELETE_CREDENTIAL_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": DELETE_CREDENTIAL_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
@base_router.post(
|
||||
@@ -243,7 +265,14 @@ async def delete_credential(
|
||||
tags=["Credentials"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_credential",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_CREDENTIAL_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_CREDENTIAL_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_CREDENTIAL_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
@base_router.get(
|
||||
@@ -275,7 +304,14 @@ async def get_credential(
|
||||
tags=["Credentials"],
|
||||
openapi_extra={
|
||||
"x-fern-sdk-method-name": "get_credentials",
|
||||
"x-fern-examples": [{"code-samples": [{"sdk": "python", "code": GET_CREDENTIALS_CODE_SAMPLE}]}],
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{"sdk": "python", "code": GET_CREDENTIALS_CODE_SAMPLE_PYTHON},
|
||||
{"sdk": "typescript", "code": GET_CREDENTIALS_CODE_SAMPLE_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
},
|
||||
)
|
||||
@base_router.get(
|
||||
|
||||
@@ -8,9 +8,12 @@ from skyvern.exceptions import MissingBrowserAddressError
|
||||
from skyvern.forge import app
|
||||
from skyvern.forge.sdk.core import skyvern_context
|
||||
from skyvern.forge.sdk.routes.code_samples import (
|
||||
LOGIN_CODE_SAMPLE_BITWARDEN,
|
||||
LOGIN_CODE_SAMPLE_ONEPASSWORD,
|
||||
LOGIN_CODE_SAMPLE_SKYVERN,
|
||||
LOGIN_CODE_SAMPLE_BITWARDEN_PYTHON,
|
||||
LOGIN_CODE_SAMPLE_BITWARDEN_TS,
|
||||
LOGIN_CODE_SAMPLE_ONEPASSWORD_PYTHON,
|
||||
LOGIN_CODE_SAMPLE_ONEPASSWORD_TS,
|
||||
LOGIN_CODE_SAMPLE_SKYVERN_PYTHON,
|
||||
LOGIN_CODE_SAMPLE_SKYVERN_TS,
|
||||
)
|
||||
from skyvern.forge.sdk.routes.routers import base_router
|
||||
from skyvern.forge.sdk.schemas.organizations import Organization
|
||||
@@ -49,18 +52,12 @@ If login is completed, you're successful."""
|
||||
"x-fern-examples": [
|
||||
{
|
||||
"code-samples": [
|
||||
{
|
||||
"sdk": "python",
|
||||
"code": LOGIN_CODE_SAMPLE_SKYVERN,
|
||||
},
|
||||
{
|
||||
"sdk": "python",
|
||||
"code": LOGIN_CODE_SAMPLE_BITWARDEN,
|
||||
},
|
||||
{
|
||||
"sdk": "python",
|
||||
"code": LOGIN_CODE_SAMPLE_ONEPASSWORD,
|
||||
},
|
||||
{"sdk": "python", "code": LOGIN_CODE_SAMPLE_SKYVERN_PYTHON},
|
||||
{"sdk": "python", "code": LOGIN_CODE_SAMPLE_BITWARDEN_PYTHON},
|
||||
{"sdk": "python", "code": LOGIN_CODE_SAMPLE_ONEPASSWORD_PYTHON},
|
||||
{"sdk": "typescript", "code": LOGIN_CODE_SAMPLE_SKYVERN_TS},
|
||||
{"sdk": "typescript", "code": LOGIN_CODE_SAMPLE_BITWARDEN_TS},
|
||||
{"sdk": "typescript", "code": LOGIN_CODE_SAMPLE_ONEPASSWORD_TS},
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user