Automate browser based workflows with AI
This report presents the forensic synthetic code analysis of Skyvern-AI/skyvern, a Python project with 22,873 GitHub stars. SynthScan v2.0 examined 1,337,182 lines of code across 4623 source files, recording 33464 pattern matches distributed across 26 syntactic categories. The overall adjusted score of 27.4 places this repository in the Moderate AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 33464 distinct pattern matches across 26 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skyvern-frontend/localServer.js | 33 | function resolveOrganizationApiKey(env = process.env) { | CODE |
| LOW | skyvern-frontend/localServer.js | 46 | function formatApiBaseUrlForLogging(value) { | CODE |
| LOW | skyvern-frontend/localServer.js | 94 | function resolveLocalServerConfiguration({ | CODE |
| LOW | skyvern-frontend/localServer.js | 118 | function createUiSessionNonceManager(secret) { | CODE |
| LOW | skyvern-frontend/localServer.js | 155 | function issueUiSessionNonceCookie(request, response, nonceManager) { | CODE |
| LOW | skyvern-frontend/vite.config.ts | 31 | function resolveOrganizationApiKey(env: UiSessionEnvironment): string | null { | CODE |
| LOW | skyvern-frontend/src/util/timeFormat.ts | 86 | function localTimeFormatWithShortDate(time: string): string { | CODE |
| LOW | skyvern-frontend/src/util/googleSheetsUrl.ts | 11 | export function extractSpreadsheetIdFromUrl(input: string): string | null { | CODE |
| LOW | skyvern-frontend/src/util/dashboardLoadStateActive.ts | 2 | function isDashboardLoadStateActive({ | CODE |
| LOW | skyvern-frontend/src/util/geoData.ts | 153 | export function geoTargetToProxyLocationInput( | CODE |
| LOW | skyvern-frontend/src/util/lazyWithReload.ts | 75 | export function installChunkLoadErrorHandler(): void { | CODE |
| LOW | skyvern-frontend/src/util/novncGestureCrashGuard.ts | 12 | export function installNoVncGestureCrashGuard(): void { | CODE |
| LOW | skyvern-frontend/src/util/tson.ts | 112 | function replaceBracesOutsideQuotes(input: string): string { | CODE |
| LOW | skyvern-frontend/src/util/translationCrashGuard.ts | 3 | export function installTranslationCrashGuard(): void { | CODE |
| LOW⚡ | skyvern-frontend/src/util/env.ts | 67 | function setRuntimeCredentialReady(ready: Promise<unknown>): void { | CODE |
| LOW⚡ | skyvern-frontend/src/util/env.ts | 71 | function whenRuntimeCredentialReady(): Promise<unknown> { | CODE |
| LOW⚡ | skyvern-frontend/src/util/env.ts | 75 | function subscribeToRuntimeCredential(listener: () => void): () => void { | CODE |
| LOW⚡ | skyvern-frontend/src/util/env.ts | 82 | function notifyRuntimeCredentialChanged(): void { | CODE |
| LOW | skyvern-frontend/src/util/env.ts | 105 | function getRuntimeApiKeyExpiresAt(): number | null { | CODE |
| LOW | skyvern-frontend/src/util/lazyWithReload.test.ts | 10 | function dispatchUnhandledRejection(reason: unknown): void { | CODE |
| LOW | skyvern-frontend/src/util/caretPosition.ts | 47 | function getTextareaCaretCoordinates( | CODE |
| LOW | skyvern-frontend/src/util/recordBrowserTelemetry.ts | 17 | export function markRecordBrowserProcessed(blockCount: number): void { | CODE |
| LOW | skyvern-frontend/src/util/recordBrowserTelemetry.ts | 27 | export function captureRecordBrowserUndoAfterRecordingIfRecent( | CODE |
| LOW | …rn-frontend/src/util/onboarding/OnboardingTelemetry.ts | 155 | function questionnaireResponseProperties(input: QuestionnaireResponseInput) { | CODE |
| LOW | …rn-frontend/src/util/onboarding/OnboardingTelemetry.ts | 165 | function questionnaireAnswerProperties(answers: QuestionnaireAnswersV1) { | CODE |
| LOW | …ontend/src/util/onboarding/credentialSetupTelemetry.ts | 23 | function credentialSetupCtaClicked( | CODE |
| LOW | …ntend/src/util/onboarding/recoveryGuidanceTelemetry.ts | 107 | function hasRecoveryGuidanceTelemetryContext( | CODE |
| LOW | …ntend/src/util/onboarding/recoveryGuidanceTelemetry.ts | 125 | function isRecoveryGuidanceTelemetryContext( | CODE |
| LOW | …ntend/src/util/onboarding/recoveryGuidanceTelemetry.ts | 131 | function isRecoveryGuidanceRetryNavigation( | CODE |
| LOW | …ntend/src/util/onboarding/recoveryGuidanceTelemetry.ts | 142 | function getRecoveryGuidanceRetryContext( | CODE |
| LOW | …ntend/src/util/onboarding/recoveryGuidanceTelemetry.ts | 156 | function getRecoveryGuidanceRetryNavigation( | CODE |
| LOW | skyvern-frontend/src/util/onboarding/rolloutGating.ts | 26 | function isFirstFailedRunRecoveryEligible(args: { | CODE |
| LOW | …ntend/src/components/ParameterAutocompleteDropdown.tsx | 37 | function ParameterAutocompleteDropdown({ | CODE |
| LOW | …frontend/src/components/WorkflowBlockInputTextarea.tsx | 31 | function WorkflowBlockInputTextarea(props: Props) { | CODE |
| LOW | …rc/components/AzureClientSecretCredentialTokenForm.tsx | 39 | export function AzureClientSecretCredentialTokenForm({ | CODE |
| LOW | …vern-frontend/src/components/browserStreamClipboard.ts | 62 | async function handleVncClipboardPasteShortcut( | CODE |
| LOW | …d/src/components/CustomCredentialServiceConfigForm.tsx | 42 | export function CustomCredentialServiceConfigForm({ onSuccess }: Props = {}) { | CODE |
| LOW | …-frontend/src/components/TriggerTypeFilterDropdown.tsx | 40 | function TriggerTypeFilterDropdown({ values, onChange }: Props) { | CODE |
| LOW | skyvern-frontend/src/components/SelectionCheckbox.tsx | 66 | function SelectionHeaderCheckboxCell({ | CODE |
| LOW | …rontend/src/components/ConnectedEmailAccountPicker.tsx | 106 | function ConnectedEmailAccountPicker({ | CODE |
| LOW | …ontend/src/components/CredentialFallbackRetryBadge.tsx | 14 | function CredentialFallbackRetryBadge({ retriedFromWorkflowRunId }: Props) { | CODE |
| LOW | …frontend/src/components/GlobalNotificationListener.tsx | 36 | function GlobalNotificationListener() { | CODE |
| LOW | …rontend/src/components/GoogleOAuthClientConfigForm.tsx | 44 | export function GoogleOAuthClientConfigForm({ onSuccess }: Props = {}) { | CODE |
| LOW | …/DataSchemaInputGroup/WorkflowDataSchemaInputGroup.tsx | 41 | function WorkflowDataSchemaInputGroup({ | CODE |
| LOW | …c/components/onboarding/QuestionnaireNextStepsCard.tsx | 120 | function QuestionnaireNextStepsCard({ | CODE |
| LOW | …frontend/src/components/onboarding/GetStartedModal.tsx | 124 | function questionnaireTerminalOwner( | CODE |
| LOW | …frontend/src/components/onboarding/GetStartedModal.tsx | 484 | async function handleQuestionnaireAction(patch: QuestionnairePatchV1) { | CODE |
| LOW | …src/components/onboarding/FirstRunRecoveryGuidance.tsx | 26 | function shouldShowRecoveryGuidance({ | CODE |
| LOW | …frontend/src/hooks/useAnalyticsAnomalyDetectionFlag.ts | 6 | export function useAnalyticsAnomalyDetectionFlag(): boolean | undefined { | CODE |
| LOW | …rn-frontend/src/hooks/useShouldNotifyWhenClosingTab.ts | 3 | function useShouldNotifyWhenClosingTab(shouldNotify: boolean) { | CODE |
| LOW | …rn-frontend/src/hooks/useClearOrganizationAuthToken.ts | 15 | export function useClearOrganizationAuthToken({ | CODE |
| LOW | …yvern-frontend/src/hooks/useRecordingElapsedSeconds.ts | 11 | export function useRecordingElapsedSeconds(): number { | CODE |
| LOW | …frontend/src/hooks/useCustomCredentialServiceConfig.ts | 14 | export function useCustomCredentialServiceConfig() { | CODE |
| LOW | …rn-frontend/src/hooks/useAzureClientCredentialToken.ts | 12 | export function useAzureClientCredentialToken() { | CODE |
| LOW | …yvern-frontend/src/hooks/useLocalStorageFormDefault.ts | 11 | export function useLocalStorageFormDefault( | CODE |
| LOW | skyvern-frontend/src/hooks/useSpeechToText.ts | 52 | function getSpeechRecognitionConstructor(): | CODE |
| LOW | skyvern-frontend/src/hooks/useSpeechToText.ts | 61 | export function isSpeechRecognitionSupported(): boolean { | CODE |
| LOW | skyvern-frontend/src/hooks/useSpeechToText.ts | 166 | function microphonePermissionErrorMessage(error: unknown): string { | CODE |
| LOW | skyvern-frontend/src/hooks/useSpeechToText.ts | 178 | async function requestMicrophonePermission(): Promise<void> { | CODE |
| LOW | skyvern-frontend/src/hooks/useWorkflowStudioEnabled.ts | 9 | export function useWorkflowStudioFlagState(): boolean | undefined { | CODE |
| 23354 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_click_desired_state.py | 1524 | " return !!(row && row.getAttribute('aria-selected') === 'true'); }", | CODE |
| HIGH | tests/unit/test_click_desired_state.py | 1537 | " return !!(row && row.classList.contains('app-picked')); }", | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 1365 | # the finder must refuse it (return null) rather than commit a wrong value. | COMMENT |
| HIGH⚡ | tests/unit/test_taskv3_tools.py | 2462 | await page.evaluate("() => { window.CSS = null; }") | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 4562 | const TREE = {'Referral': ['Current employee', 'Former employee'], 'Job board': null, | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 4563 | 'Search engine': null, 'Event': ['Career fair', 'Conference']}; | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 4753 | kids.push(kid); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 4825 | kids.push(kid); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 4951 | kids.push(kid); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 5130 | document.addEventListener('click', (e) => window.__clicked.push(e.composedPath()[0].textContent), true); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 5753 | try { const r = realGetRootNode.call(this); inRoot = !!(r && r.nodeType === 11); } catch (e) {} | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 5754 | window.__tv3_writes.push({ value: String(value), inRoot: inRoot }); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 5814 | r.querySelector('button').addEventListener('click', function () { window.__clicked.push(host.textContent.trim()); }); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 5871 | r.querySelector('button').addEventListener('click', () => window.__clicked.push('save')); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 5876 | d.addEventListener('click', () => window.__clicked.push('delete')); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 6674 | history.pushState(null, '', '/search?q='); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 7013 | r.querySelector('input').addEventListener('click', (e) => window.hits.push('inner:' + e.currentTarget.tagName)); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 8283 | assert await page.evaluate("() => !!window.__sealedRoot && window.__sealedRoot.mode === 'closed'"), ( | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 8722 | assert await page.evaluate("() => document.host && document.host.tagName") == "FORM", ( | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 8959 | return el ? el.tagName : null; | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 9288 | var r = host.shadowRoot || host.attachShadow({mode: 'open'}); | CODE |
| HIGH | tests/unit/test_taskv3_tools.py | 9290 | r.querySelector('button').addEventListener('click', function () { window.hits.push(token); }); | CODE |
| HIGH⚡ | tests/unit/test_taskv3_tools.py | 9858 | const i = h.shadowRoot && h.shadowRoot.querySelector('input[type=file]'); | STRING |
| HIGH⚡ | tests/unit/test_taskv3_tools.py | 9859 | return [h.id || h.className, i ? i.files.length : -1]; | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 5198 | document.addEventListener('click', (e) => window.__clicked.push(e.target.textContent), true); | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 5924 | if (name !== 'data-tv3' || newV === null || this.__stolen) return; | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 5926 | if (m === null) return; | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 5982 | const r = this.shadowRoot || this.attachShadow({mode: 'open'}); | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 6174 | if (pay && ship) { pay.id = 'x-old'; ship.id = 'pay'; } | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 6200 | if (m !== null) { a.removeAttribute('data-tv3'); b.setAttribute('data-tv3', m); } | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 6327 | if (a && b) { a.removeAttribute('id'); b.id = 'card'; } | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 6464 | assert await page.evaluate("() => document.activeElement && document.activeElement.id") == "city" | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 7901 | (b) => b.addEventListener('click', () => window.hits.push(b.textContent))); | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 7985 | (b) => b.addEventListener('click', () => window.hits.push(b.textContent))); | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 8017 | (b) => b.addEventListener('click', () => window.hits.push(b.textContent))); | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 8089 | try { if (inroot.matches(sel)) out.push(inroot); } catch (e) {} | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 8990 | b.addEventListener('click', (e) => window.hits.push(e.currentTarget.textContent));</script>""" | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 9055 | root.getElementById('inner-btn').addEventListener('click', (e) => window.hits.push(e.currentTarget.id)); | STRING |
| HIGH | tests/unit/test_taskv3_tools.py | 9056 | document.getElementById('light').addEventListener('click', () => window.hits.push('light')); | STRING |
| HIGH⚡ | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 752 | # A page defines a non-writable, non-configurable same-name property (null/undefined). Install must | COMMENT |
| HIGH | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 81 | urls.push(url); | CODE |
| HIGH⚡ | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 531 | revokeUndefined: revokeReturn === undefined }; | STRING |
| HIGH⚡ | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 760 | value: v === 'null' ? null : undefined, writable: false, configurable: false, enumerable: true, | STRING |
| HIGH⚡ | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 773 | isNull: window.__skyvernBlobRetention === null, | STRING |
| HIGH⚡ | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 774 | isUndefined: window.__skyvernBlobRetention === undefined, | STRING |
| HIGH | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 576 | stillPresent: !!window.__skyvernBlobRetention && window.__skyvernBlobRetention.note === 'page-owned', | STRING |
| HIGH | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 647 | skyvernDropped: window.__skyvernBlobRetention === undefined, | STRING |
| HIGH | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 710 | dropped: window.__skyvernBlobRetention === undefined, | STRING |
| HIGH | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 737 | dropped: window.__skyvernBlobRetention === undefined, | STRING |
| HIGH | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 804 | dropped: window.__skyvernBlobRetention === undefined, | STRING |
| HIGH⚡ | tests/unit/test_mcp_workflow_create_defaults.py | 379 | """Blocks without a prompt (missing key or explicit null) are legacy and get no steps.""" | STRING |
| HIGH⚡ | tests/unit/test_mcp_workflow_create_defaults.py | 456 | """AC3 on create: a legacy block cloned via workflow get (prompt: null) gets neither prompt nor steps.""" | STRING |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 77 | socket.push({"id": frame["id"], "result": {"frameId": "F1"}}) | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 93 | socket.push({"id": second_id, "result": {"value": 2}}) | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 94 | socket.push({"id": first_id, "result": {"value": 1}}) | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 109 | socket.push({"id": socket.sent[0]["id"], "sessionId": "S1", "result": {"root": {}}}) | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 122 | socket.push({"id": socket.sent[0]["id"], "result": {"targetInfos": []}}) | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 133 | socket.push( | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 175 | socket.push({"method": "Target.targetCreated", "params": {"targetInfo": {"targetId": "T1"}}}) | CODE |
| HIGH⚡ | tests/unit/test_skycdp_transport.py | 176 | socket.push({"method": "Page.loadEventFired", "sessionId": "S1", "params": {"timestamp": 1}}) | CODE |
| 1082 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | entrypoint-skyvern.sh | 5 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | entrypoint-skyvern.sh | 8 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | docker-compose.yml | 50 | # ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docker-compose.yml | 61 | # ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | docker-compose.yml | 84 | # ========================= | COMMENT |
| MEDIUM | docker-compose.yml | 86 | # ========================= | COMMENT |
| MEDIUM | k8s/charts/skyvern-ui/values.yaml | 13 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | k8s/charts/skyvern-ui/values.yaml | 21 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 113 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 115 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 229 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 231 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 243 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 245 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 298 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 300 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 310 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 312 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 315 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_non_retriable_nav.py | 317 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_copilot_non_retriable_nav.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_copilot_non_retriable_nav.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_copilot_non_retriable_nav.py | 371 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_copilot_non_retriable_nav.py | 373 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 260 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 262 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 336 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 338 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 470 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 472 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 501 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 503 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 597 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 602 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 786 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 791 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 867 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 874 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 1268 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 1275 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 1719 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 1727 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 1809 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_click_desired_state.py | 1813 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_auto_completion_location.py | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_auto_completion_location.py | 30 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_auto_completion_location.py | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_auto_completion_location.py | 100 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_auto_completion_location.py | 406 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_auto_completion_location.py | 408 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_auto_completion_location.py | 462 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/unit/test_auto_completion_location.py | 464 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 210 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 212 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 354 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 356 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 575 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/unit/test_browser_session_download_artifacts.py | 577 | # --------------------------------------------------------------------------- | COMMENT |
| 757 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …evaluation/extract_action/scripts/install_directory.py | 3 | CODE | |
| LOW | tests/unit/test_copilot_non_retriable_nav.py | 10 | CODE | |
| LOW | …_real_browser_manager_publisher_self_stops_on_close.py | 7 | CODE | |
| LOW | tests/unit/test_click_desired_state.py | 12 | CODE | |
| LOW | tests/unit/test_login_block_missing_credential.py | 8 | CODE | |
| LOW | …sts/unit/test_workflow_definition_version_inference.py | 9 | CODE | |
| LOW | tests/unit/test_verifier_goal_unwrap.py | 9 | CODE | |
| LOW | tests/unit/test_mcp_scope_visibility.py | 1 | CODE | |
| LOW | tests/unit/test_copilot_token_accounting.py | 3 | CODE | |
| LOW | tests/unit/test_skycdp_endpoint_resolution.py | 15 | CODE | |
| LOW | tests/unit/test_skycdp_evaluation.py | 13 | CODE | |
| LOW | tests/unit/test_normal_select_deterministic.py | 1 | CODE | |
| LOW | tests/unit/test_webhook_delivery_retry.py | 3 | CODE | |
| LOW | tests/unit/test_quickstart_server_extra.py | 1 | CODE | |
| LOW | tests/unit/test_transient_ui_capture_experiment.py | 9 | CODE | |
| LOW | tests/unit/test_masked_prompt.py | 1 | CODE | |
| LOW | tests/unit/test_copilot_scout_act_observe.py | 6 | CODE | |
| LOW | tests/unit/test_mcp_trajectory.py | 1 | CODE | |
| LOW | tests/unit/test_auto_completion_location.py | 7 | CODE | |
| LOW | tests/unit/test_init_command.py | 1 | CODE | |
| LOW | tests/unit/test_record_artifacts_popup_preserving.py | 10 | CODE | |
| LOW | tests/unit/test_browser_session_download_artifacts.py | 18 | CODE | |
| LOW | tests/unit/test_copilot_run_output_content_gate.py | 7 | CODE | |
| LOW | tests/unit/test_workflow_run_parameter_batching.py | 8 | CODE | |
| LOW | tests/unit/test_parameter_reference_guard.py | 3 | CODE | |
| LOW | …ts/unit/test_copilot_tools_credential_id_misbinding.py | 1 | CODE | |
| LOW | tests/unit/test_copilot_code_block_persist_seam.py | 8 | CODE | |
| LOW | tests/unit/test_run_recording_clips.py | 1 | CODE | |
| LOW | tests/unit/test_copilot_diagnosis_repair_contract.py | 1 | CODE | |
| LOW | tests/unit/test_qa_skill_content.py | 1 | CODE | |
| LOW | tests/unit/test_taskv3_loop.py | 9 | CODE | |
| LOW | tests/unit/test_copilot_secret_scrub.py | 6 | CODE | |
| LOW | tests/unit/test_credential_fallback.py | 1 | CODE | |
| LOW | …it/test_browser_artifacts_remote_browser_session_id.py | 8 | CODE | |
| LOW | tests/unit/test_downloaded_files_artifact_urls.py | 3 | CODE | |
| LOW | tests/unit/test_copilot_hooks.py | 3 | CODE | |
| LOW | tests/unit/test_ngrok_helpers.py | 1 | CODE | |
| LOW | tests/unit/test_run_sdk_action_failures.py | 1 | CODE | |
| LOW | tests/unit/test_copilot_watchdog.py | 27 | CODE | |
| LOW | tests/unit/test_workflow_copilot_route_helpers.py | 11 | CODE | |
| LOW | tests/unit/test_copilot_enforcement_pruning.py | 9 | CODE | |
| LOW | tests/unit/test_mcp_workflow_route_prefixes.py | 16 | CODE | |
| LOW | tests/unit/test_select_option_blocking_overlay.py | 12 | CODE | |
| LOW | tests/unit/test_copilot_author_time_refusal_residue.py | 1 | CODE | |
| LOW | tests/unit/test_real_browser_state_on_close_hook.py | 7 | CODE | |
| LOW | tests/unit/test_skycdp_route_matching.py | 15 | CODE | |
| LOW | tests/unit/test_copilot_narrative_activity.py | 1 | CODE | |
| LOW | tests/unit/test_otp_service.py | 3 | CODE | |
| LOW | tests/unit/test_span_exception_redaction.py | 8 | CODE | |
| LOW | …sts/unit/test_workflow_system_prompt_llm_forwarding.py | 11 | CODE | |
| LOW | tests/unit/test_browser_session_recording_artifacts.py | 13 | CODE | |
| LOW | tests/unit/test_copilot_result_evidence.py | 1 | CODE | |
| LOW | tests/unit/test_seed_precedence_engine.py | 1 | CODE | |
| LOW | tests/unit/test_mcp_response_workflow.py | 1 | CODE | |
| LOW | tests/unit/test_browser_profile_key.py | 1 | CODE | |
| LOW | tests/unit/test_extract_information_retry_bypass.py | 9 | CODE | |
| LOW | tests/unit/test_cli_no_args_help.py | 9 | CODE | |
| LOW | tests/unit/test_browser_recording_interpretation.py | 1 | CODE | |
| LOW | tests/unit/test_wait_block_invalid_time.py | 9 | CODE | |
| LOW | tests/unit/test_quickstart_browser_install.py | 1 | CODE | |
| 2986 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_streaming.py | 27 | except Exception: | CODE |
| LOW | run_streaming.py | 54 | except Exception: | CODE |
| LOW | run_streaming.py | 74 | except Exception: | CODE |
| LOW | run_streaming.py | 84 | except Exception: | CODE |
| MEDIUM | tests/unit/test_click_desired_state.py | 28 | def _has_playwright_browser() -> bool: | CODE |
| LOW | tests/unit/test_click_desired_state.py | 34 | except Exception: | CODE |
| LOW | tests/unit/test_copilot_requested_output_designation.py | 30 | except Exception: | CODE |
| MEDIUM | tests/unit/test_copilot_requested_output_designation.py | 26 | def _has_playwright_chromium() -> bool: | CODE |
| MEDIUM | tests/unit/test_taskv3_tools.py | 168 | def _has_playwright_browser() -> bool: | CODE |
| LOW | tests/unit/test_taskv3_tools.py | 174 | except Exception: | CODE |
| LOW | tests/unit/test_credential_rotation.py | 798 | except Exception as exc: | STRING |
| LOW | tests/unit/test_scrape_frame_decision.py | 36 | except Exception: | CODE |
| MEDIUM | tests/unit/test_scrape_frame_decision.py | 30 | def _has_playwright_browser() -> bool: | CODE |
| MEDIUM | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 40 | def _has_playwright_browser() -> bool: | CODE |
| LOW | …/unit/test_adopted_session_blob_iframe_recovery_e2e.py | 46 | except Exception: | CODE |
| LOW | tests/unit/test_iframe_mcp_e2e.py | 40 | except Exception: | CODE |
| LOW | tests/unit/test_iframe_mcp_e2e.py | 103 | except Exception: | CODE |
| LOW | tests/unit/test_get_scripts_query.py | 75 | except Exception: | CODE |
| MEDIUM | tests/unit/test_paste_text_action.py | 38 | def _has_playwright_browser() -> bool: | CODE |
| LOW | tests/unit/test_paste_text_action.py | 44 | except Exception: | CODE |
| LOW⚡ | …unit/test_copilot_code_artifact_metadata_violations.py | 500 | except Exception: | CODE |
| LOW⚡ | …unit/test_copilot_code_artifact_metadata_violations.py | 569 | except Exception: | CODE |
| LOW⚡ | …unit/test_copilot_code_artifact_metadata_violations.py | 586 | except Exception: | CODE |
| LOW | …unit/test_copilot_code_artifact_metadata_violations.py | 416 | except Exception: | CODE |
| MEDIUM | tests/unit/test_code_block_recording.py | 54 | def _has_playwright_chromium() -> bool: | CODE |
| LOW | tests/unit/test_code_block_recording.py | 58 | except Exception: | CODE |
| LOW | tests/unit/test_code_block_sandbox.py | 1551 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | tests/unit/test_iframe_e2e.py | 31 | except Exception: | CODE |
| LOW | tests/unit/test_agent_step_artifact_tracker.py | 42 | except Exception: | CODE |
| LOW⚡ | tests/unit/test_pdf_download_fixes.py | 191 | except Exception: | CODE |
| LOW | tests/unit/test_pdf_download_fixes.py | 129 | except Exception: | CODE |
| LOW | tests/unit/test_pdf_download_fixes.py | 161 | except Exception: | CODE |
| LOW | tests/unit/test_workflow_service_cancel.py | 501 | except Exception: | CODE |
| LOW | tests/unit/test_transient_page_observer.py | 84 | except Exception as exc: | CODE |
| LOW | tests/unit/test_saved_session_proxy_pin.py | 279 | except Exception as exc: | CODE |
| LOW | tests/unit/test_code_block_downloads.py | 645 | except Exception: | CODE |
| LOW | tests/unit/test_missing_starter_url.py | 387 | except Exception: | CODE |
| LOW | tests/unit/test_task_v2_loop_inline_values.py | 62 | except Exception: | CODE |
| LOW | tests/unit/test_select_shadow_match.py | 1274 | except Exception as exc: | CODE |
| MEDIUM | tests/unit/test_llm_response_parsing.py | 19 | def test_coerce_response_to_dict_variants(response, expected): | CODE |
| LOW⚡ | tests/unit/test_llm_response_parsing.py | 23 | except Exception: | CODE |
| MEDIUM | tests/unit/test_copilot_composition_evidence.py | 3425 | def _has_playwright_browser() -> bool: | CODE |
| MEDIUM | tests/unit/test_copilot_composition_evidence.py | 5464 | def _playwright_chromium_available() -> bool: | CODE |
| LOW | tests/unit/test_copilot_composition_evidence.py | 5472 | except Exception: | CODE |
| LOW | tests/unit/test_copilot_composition_evidence.py | 3431 | except Exception: | STRING |
| MEDIUM | tests/unit/test_script_reviewer_terminate.py | 182 | def block_fn(page, context): | CODE |
| MEDIUM | tests/unit/test_script_reviewer_terminate.py | 195 | def block_fn(page, context): | CODE |
| MEDIUM | tests/unit/test_script_reviewer_terminate.py | 213 | def block_fn(page, context): | CODE |
| LOW⚡ | tests/unit/test_script_reviewer_terminate.py | 185 | except Exception: | CODE |
| LOW⚡ | tests/unit/test_script_reviewer_terminate.py | 205 | except Exception: | CODE |
| LOW⚡ | tests/unit/test_script_reviewer_terminate.py | 216 | except Exception: | CODE |
| LOW | tests/unit/webeye/test_dom_inspection.py | 271 | except Exception: | STRING |
| MEDIUM | tests/unit/webeye/test_dom_inspection.py | 265 | def _has_playwright_browser() -> bool: | CODE |
| LOW | …sts/unit/workflow/test_block_browser_state_recovery.py | 37 | except Exception: | CODE |
| LOW | …sts/unit/workflow/test_block_browser_state_recovery.py | 379 | except Exception: | CODE |
| LOW | tests/unit/embedded/test_tab_management_e2e.py | 25 | except Exception: | CODE |
| LOW | tests/unit/embedded/test_tab_management_e2e.py | 55 | except Exception: | CODE |
| MEDIUM | tests/unit/embedded/test_tab_management_e2e.py | 19 | def _has_playwright_browser() -> bool: | CODE |
| LOW | tests/unit/embedded/test_embedded_e2e.py | 29 | except Exception: | CODE |
| LOW | …s/smoke_tests/browser_extension/run_extension_smoke.py | 428 | except Exception: | CODE |
| 2335 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | README.md | 230 | skyvern = Skyvern(api_key="your-api-key") | CODE |
| HIGH | README.md | 248 | const skyvern = new Skyvern({ apiKey: "your-api-key" }); | CODE |
| HIGH⚡ | README.md | 294 | api_key="YOUR_API_KEY", | CODE |
| HIGH | README.md | 326 | skyvern = Skyvern(api_key="your-api-key") | CODE |
| HIGH | …yvern-frontend/src/routes/tasks/detail/TaskDetails.tsx | 249 | "x-api-key": apiCredential ?? "<your-api-key>", | CODE |
| HIGH | …frontend/src/routes/tasks/create/CreateNewTaskForm.tsx | 763 | "x-api-key": apiCredential ?? "<your-api-key>", | CODE |
| HIGH | …ern-frontend/src/routes/tasks/create/SavedTaskForm.tsx | 775 | "x-api-key": apiCredential ?? "<your-api-key>", | CODE |
| HIGH | …vern-frontend/src/routes/workflows/RunWorkflowForm.tsx | 882 | "x-api-key": apiCredential ?? "<your-api-key>", | CODE |
| HIGH | skyvern-frontend/src/routes/workflows/WorkflowRun.tsx | 720 | "x-api-key": apiCredential ?? "<your-api-key>", | CODE |
| HIGH | …/src/routes/workflows/studio/runview/RunPaneHeader.tsx | 257 | "x-api-key": apiCredential ?? "<your-api-key>", | CODE |
| HIGH | …ws/editor/nodes/HttpRequestNode/QuickHeadersDialog.tsx | 50 | { name: "X-API-Key", value: "YOUR_API_KEY", description: "API key header" }, | CODE |
| HIGH | tests/unit/test_cli_doctor.py | 30 | (frontend / ".env.example").write_text("VITE_SKYVERN_API_KEY=YOUR_API_KEY\n") | CODE |
| HIGH⚡ | tests/unit/test_cli_doctor.py | 90 | assert CREDENTIAL_PLACEHOLDERS == ("", "PLACEHOLDER", "YOUR_API_KEY") | CODE |
| HIGH⚡ | tests/unit/test_cli_doctor.py | 98 | ("YOUR_API_KEY", True), | CODE |
| HIGH⚡ | tests/unit/test_cli_doctor.py | 113 | (tmp_path / "skyvern-frontend" / ".env").write_text("VITE_SKYVERN_API_KEY=YOUR_API_KEY\n") | CODE |
| HIGH⚡ | tests/unit/test_cli_doctor.py | 135 | assert is_frontend_api_key_placeholder("YOUR_API_KEY") | CODE |
| HIGH | docs/skill.md | 44 | client = Skyvern(api_key="YOUR_API_KEY") | CODE |
| HIGH | docs/skill.md | 55 | const client = new Skyvern({ apiKey: "YOUR_API_KEY" }); | CODE |
| HIGH | docs/skill.md | 65 | -H "x-api-key: YOUR_API_KEY" \ | CODE |
| HIGH | docs/skill.md | 137 | claude mcp add skyvern-cloud -- npx @anthropic-ai/skyvern-mcp@latest --skyvern-api-key YOUR_API_KEY | CODE |
| HIGH | docs/skill.md | 146 | "args": ["@anthropic-ai/skyvern-mcp@latest", "--skyvern-api-key", "YOUR_API_KEY"] | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 586 | "code": "\nfrom skyvern import Skyvern\n\n# Create a workflow in JSON format\nworkflow_definition = {\n | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 590 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 3386 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\n# Create a blank br | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 3390 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 4476 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.creat | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 4480 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.creat | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 4484 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 4488 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 5262 | "code": "# Login with password saved in Skyvern\nfrom skyvern import Skyvern\n\nskyvern = Skyvern(api_ke | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 5266 | "code": "# Login with password saved in Bitwarden\nfrom skyvern import Skyvern\n\nskyvern = Skyvern(api_ | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 5270 | "code": "# Login with password saved in 1Password\nfrom skyvern import Skyvern\n\nskyvern = Skyvern(api_ | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 5274 | "code": "// Login with password saved in Skyvern\nimport { SkyvernClient } from \"@skyvern/client\";\n\n | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 5278 | "code": "// Login with password saved in Bitwarden\nimport { SkyvernClient } from \"@skyvern/client\";\n | CODE |
| HIGH⚡ | docs/api-reference/openapi.json | 5282 | "code": "// Login with password saved in 1Password\nimport { SkyvernClient } from \"@skyvern/client\";\n | CODE |
| HIGH | docs/api-reference/openapi.json | 93 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.run_t | CODE |
| HIGH | docs/api-reference/openapi.json | 97 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 213 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.run_w | CODE |
| HIGH | docs/api-reference/openapi.json | 217 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 320 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nrun = await skyvern | CODE |
| HIGH | docs/api-reference/openapi.json | 324 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 396 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.cance | CODE |
| HIGH | docs/api-reference/openapi.json | 400 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 473 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.bulk_ | CODE |
| HIGH | docs/api-reference/openapi.json | 477 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 819 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nworkflows = await s | CODE |
| HIGH | docs/api-reference/openapi.json | 823 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 907 | "code": "\nfrom skyvern import Skyvern\n\nupdated_workflow_definition = {\n \"title\": \"Updated Cont | CODE |
| HIGH | docs/api-reference/openapi.json | 911 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 986 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.delet | CODE |
| HIGH | docs/api-reference/openapi.json | 990 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 2873 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nawait skyvern.retry | CODE |
| HIGH | docs/api-reference/openapi.json | 2877 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 2965 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\n# Get timeline for | CODE |
| HIGH | docs/api-reference/openapi.json | 2969 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 3529 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nbrowser_profiles = | CODE |
| HIGH | docs/api-reference/openapi.json | 3533 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 3613 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nbrowser_profile = a | CODE |
| HIGH | docs/api-reference/openapi.json | 3617 | "code": "import { SkyvernClient } from \"@skyvern/client\";\n\nconst skyvern = new SkyvernClient({ apiKe | CODE |
| HIGH | docs/api-reference/openapi.json | 3708 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\nbrowser_profile = a | CODE |
| 325 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/unit/test_download_file_action_handler.py | 0 | page.goto-style response whose followed redirect chain visited ``urls`` in order. | STRING |
| HIGH | …sts/unit/test_chain_click_blocked_anchor_navigation.py | 0 | page.goto-style response whose followed redirect chain visited ``urls`` in order. | STRING |
| HIGH | tests/unit/test_navigation_action_handlers.py | 0 | page.goto-style response whose followed redirect chain visited ``urls`` in order. | STRING |
| HIGH | tests/unit/test_iframe_mcp_e2e.py | 0 | check that playwright's chromium binary exists for the current installed version. | STRING |
| HIGH | tests/unit/test_iframe_e2e.py | 0 | check that playwright's chromium binary exists for the current installed version. | STRING |
| HIGH | …sts/unit/workflow/test_block_browser_state_recovery.py | 0 | check that playwright's chromium binary exists for the current installed version. | STRING |
| HIGH | tests/unit/embedded/test_embedded_e2e.py | 0 | check that playwright's chromium binary exists for the current installed version. | STRING |
| HIGH | …026_05_22_2059-0b0bd1875c6e_add_cdp_connect_headers.py | 0 | select 1 from information_schema.columns where table_schema = current_schema() and table_name = :table_name and column_n | STRING |
| HIGH | …_0957-58c683692601_add_credential_run_serialization.py | 0 | select 1 from information_schema.columns where table_schema = current_schema() and table_name = :table_name and column_n | STRING |
| HIGH | …026_05_22_1755-9f512f2da31e_add_cdp_connect_headers.py | 0 | select 1 from information_schema.columns where table_schema = current_schema() and table_name = :table_name and column_n | STRING |
| HIGH | skyvern/schemas/tags.py | 0 | response for the run-tags batch endpoint. runs with no tags are present with an empty list so the frontend can distingui | STRING |
| HIGH | skyvern/client/types/workflow_tags_batch_response.py | 0 | response for the run-tags batch endpoint. runs with no tags are present with an empty list so the frontend can distingui | STRING |
| HIGH | skyvern/client/types/run_tags_batch_response.py | 0 | response for the run-tags batch endpoint. runs with no tags are present with an empty list so the frontend can distingui | STRING |
| HIGH | skyvern/schemas/docs/doc_strings.py | 0 | geographic proxy location to route the browser traffic through. this is only available in skyvern cloud. available geota | STRING |
| HIGH | skyvern/client/types/workflow_run_request_output.py | 0 | geographic proxy location to route the browser traffic through. this is only available in skyvern cloud. available geota | STRING |
| HIGH | skyvern/client/types/task_run_request_output.py | 0 | geographic proxy location to route the browser traffic through. this is only available in skyvern cloud. available geota | STRING |
| HIGH | skyvern/schemas/docs/doc_strings.py | 0 | identifier for the totp/2fa/mfa code when the code is pushed to skyvern. refer to https://www.skyvern.com/docs/credentia | STRING |
| HIGH | skyvern/client/types/workflow_run_request_output.py | 0 | identifier for the totp/2fa/mfa code when the code is pushed to skyvern. refer to https://www.skyvern.com/docs/credentia | STRING |
| HIGH | skyvern/client/types/task_run_request_output.py | 0 | identifier for the totp/2fa/mfa code when the code is pushed to skyvern. refer to https://www.skyvern.com/docs/credentia | STRING |
| HIGH | skyvern/schemas/docs/doc_strings.py | 0 | url that serves totp/2fa/mfa codes for skyvern to use during the workflow run. refer to https://www.skyvern.com/docs/cre | STRING |
| HIGH | skyvern/client/types/workflow_run_request_output.py | 0 | url that serves totp/2fa/mfa codes for skyvern to use during the workflow run. refer to https://www.skyvern.com/docs/cre | STRING |
| HIGH | skyvern/client/types/task_run_request_output.py | 0 | url that serves totp/2fa/mfa codes for skyvern to use during the workflow run. refer to https://www.skyvern.com/docs/cre | STRING |
| HIGH | skyvern/client/types/google_sheets_read_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/text_prompt_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/send_email_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/conditional_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/file_parser_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/email_inbox_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/while_loop_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/url_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/print_page_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/action_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/navigation_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/pdf_parser_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/for_loop_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/google_sheets_write_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/human_interaction_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/task_v2block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/pdf_fill_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/file_upload_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/split_pdf_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/download_to_s3block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/task_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/validation_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/upload_to_s3block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/login_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/http_request_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/wait_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/code_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/file_download_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/extraction_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/workflow_trigger_block_yaml.py | 0 | author-facing identifier; must be unique per workflow. | STRING |
| HIGH | skyvern/client/types/google_sheets_read_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/text_prompt_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/send_email_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/conditional_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/file_parser_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/email_inbox_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/while_loop_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| HIGH | skyvern/client/types/url_block_yaml.py | 0 | optional pointer to the label of the next block. when omitted, it will default to sequential order. see [[s-4bnl]]. | STRING |
| 86 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | run_streaming.py | 18 | CODE | |
| LOW | tests/unit/test_mcp_scope_visibility.py | 254 | CODE | |
| LOW | tests/unit/test_budget_preflight.py | 10 | CODE | |
| LOW | tests/unit/test_qa_skill_content.py | 144 | CODE | |
| LOW | tests/unit/test_qa_skill_content.py | 153 | CODE | |
| LOW | tests/unit/test_span_exception_redaction.py | 121 | CODE | |
| LOW | tests/unit/test_span_exception_redaction.py | 156 | CODE | |
| LOW | tests/unit/test_download_file_action_handler.py | 4203 | CODE | |
| LOW | tests/unit/test_taskv3_auth_tools.py | 242 | CODE | |
| LOW | tests/unit/test_taskv3_auth_tools.py | 408 | CODE | |
| LOW | tests/unit/test_taskv3_tools.py | 12386 | CODE | |
| LOW | tests/unit/test_copilot_runtime.py | 728 | CODE | |
| LOW | tests/unit/test_sdk_export_parity.py | 28 | CODE | |
| LOW | tests/unit/test_sdk_export_parity.py | 48 | CODE | |
| LOW | tests/unit/test_agent_task_v3.py | 764 | CODE | |
| LOW | tests/unit/test_scrape_default_no_overlay.py | 57 | CODE | |
| LOW | tests/unit/test_scrape_default_no_overlay.py | 74 | CODE | |
| LOW | tests/unit/test_video_utils.py | 141 | CODE | |
| LOW | tests/unit/test_video_utils.py | 219 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 44 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 99 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 129 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 170 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 225 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 261 | CODE | |
| LOW | tests/unit/test_fail_task_error_detection.py | 306 | CODE | |
| LOW | tests/unit/test_mcp_sdk_equivalent_guard.py | 82 | CODE | |
| LOW | tests/unit/test_mcp_sdk_equivalent_guard.py | 127 | CODE | |
| LOW | tests/unit/test_mcp_sdk_equivalent_guard.py | 146 | CODE | |
| LOW | tests/unit/test_code_block_recording.py | 398 | CODE | |
| LOW | tests/unit/test_code_block_recording.py | 430 | CODE | |
| LOW | tests/unit/test_code_block_recording.py | 469 | CODE | |
| LOW | tests/unit/test_code_block_sandbox.py | 661 | CODE | |
| LOW | tests/unit/test_browser_action_policy_enrollment.py | 430 | CODE | |
| LOW | tests/unit/test_error_detection_integration.py | 65 | CODE | |
| LOW | tests/unit/test_error_detection_integration.py | 365 | CODE | |
| LOW | tests/unit/test_error_detection_integration.py | 409 | CODE | |
| LOW | tests/unit/test_error_detection_integration.py | 448 | CODE | |
| LOW | tests/unit/test_error_detection_integration.py | 522 | CODE | |
| LOW | …/unit/test_generate_cua_actions_visual_continuation.py | 40 | CODE | |
| LOW | tests/unit/test_animation_wait_attrs.py | 42 | CODE | |
| LOW | tests/unit/test_mcp_response_savings.py | 97 | CODE | |
| LOW | tests/unit/test_browser_object_identity_guard.py | 115 | CODE | |
| LOW | tests/unit/test_domutils_scroll_helpers_gating.py | 28 | CODE | |
| LOW | tests/unit/test_domutils_scroll_helpers_gating.py | 56 | CODE | |
| LOW | tests/unit/test_domutils_scroll_helpers_gating.py | 96 | CODE | |
| LOW | tests/unit/test_browser_action_policy.py | 515 | CODE | |
| LOW | tests/unit/test_vertex_cache_model_extraction.py | 44 | CODE | |
| LOW | tests/unit/browser_extension/test_cdp_adapter.py | 326 | CODE | |
| LOW | tests/unit/browser_extension/test_broker_client.py | 388 | CODE | |
| LOW | tests/unit/browser_extension/test_broker_client.py | 435 | CODE | |
| LOW | …sts/unit/workflow/test_block_browser_state_recovery.py | 351 | CODE | |
| LOW | …ts/unit/workflow/test_conditional_branch_evaluation.py | 1125 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 149 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 172 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 195 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 228 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 257 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 282 | CODE | |
| LOW | tests/unit/workflow/test_file_parser_error_code.py | 408 | CODE | |
| 652 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 70 | totp_identifier: "user@example.com", | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 91 | totp_identifier: "user@example.com", | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 117 | target: { value: "user@example.com" }, | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 151 | target: { value: "user@example.com" }, | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 161 | totp_identifier: "user@example.com", | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 177 | target: { value: "user@example.com" }, | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 186 | totp_identifier: "user@example.com", | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 205 | target: { value: "user@example.com" }, | CODE |
| LOW | …yvern-frontend/src/components/PushTotpCodeForm.test.ts | 239 | totp_identifier: "user@example.com", | CODE |
| LOW | …rn-frontend/src/components/BitwardenCredentialForm.tsx | 113 | placeholder="user@example.com" | CODE |
| LOW | …yvern-frontend/src/routes/tasks/data/sampleTaskData.ts | 86 | name: "John Doe", | CODE |
| LOW | …yvern-frontend/src/routes/tasks/data/sampleTaskData.ts | 104 | name: "John Doe", | CODE |
| LOW | skyvern-frontend/src/routes/tasks/create/PromptBox.tsx | 62 | prompt: `Go to https://jobs.lever.co/leverdemo-8/45d39614-464a-4b62-a5cd-8683ce4fb80a/apply, fill out the job applic | CODE |
| LOW | skyvern-frontend/src/routes/tasks/create/PromptBox.tsx | 80 | prompt: `Go to https://canadahvac.com/contact-hvac-canada. Fill out the contact us form and submit it. Your goal is | CODE |
| LOW | …/copilot/WorkflowCopilotChat.composerControls.test.tsx | 360 | expect(ta.getAttribute("placeholder")).toBe( | CODE |
| LOW | …kflows/workflowRun/blockDetail/BlockInspector.test.tsx | 171 | text: "user@example.com", | CODE |
| LOW | …kflows/workflowRun/blockDetail/BlockInspector.test.tsx | 179 | expect(screen.getByText("user@example.com")).toBeDefined(); | CODE |
| LOW | …/routes/workflows/components/SheetTabCombobox.test.tsx | 147 | expect(screen.getByRole("textbox").getAttribute("placeholder")).toBe( | CODE |
| LOW | …utes/workflows/components/SpreadsheetCombobox.test.tsx | 163 | expect(screen.getByRole("textbox").getAttribute("placeholder")).toBe( | CODE |
| LOW | …lows/editor/nodes/HttpRequestNode/CurlImportDialog.tsx | 50 | -d '{"name": "John Doe", "email": "john@example.com"}'`, | CODE |
| LOW | …lows/editor/nodes/HttpRequestNode/CurlImportDialog.tsx | 56 | -d '{"name": "Jane Doe"}'`, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 155 | username: "user@example.com", | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 296 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 321 | username: "user@example.com", | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 373 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 425 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 463 | username: "user@example.com", | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 539 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 737 | const usernameInput = screen.getByDisplayValue("user@example.com"); | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 843 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 865 | username: "user@example.com", | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 953 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 1214 | target: { value: "user@example.com" }, | CODE |
| LOW | …ntend/src/routes/credentials/CredentialsModal.test.tsx | 1266 | username: "user@example.com", | CODE |
| LOW | …rontend/src/routes/credentials/CredentialItem.test.tsx | 52 | username: "user@example.com", | CODE |
| LOW | …rontend/src/routes/credentials/CredentialItem.test.tsx | 86 | username: "user@example.com", | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 62 | username: "user@example.com", | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 745 | username: "user@example.com", | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 758 | return next.totp_identifier === "user@example.com"; | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 773 | username: "user@example.com", | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 805 | username: "user@example.com", | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 823 | next.totp_identifier === "user@example.com" | CODE |
| LOW | …/routes/credentials/PasswordCredentialContent.test.tsx | 850 | username: "user@example.com", | CODE |
| LOW | …ontend/src/routes/credentials/CredentialsList.test.tsx | 36 | credential: { username: "user@example.com", totp_type: "none" }, | CODE |
| LOW | …end/src/routes/credentials/CredentialsTotpTab.test.tsx | 108 | totp_identifier: "user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 48 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 114 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 131 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 144 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 157 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 190 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 229 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 260 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 286 | username="user@example.com", | CODE |
| LOW | tests/unit/test_credential_totp_code.py | 303 | username="user@example.com", | CODE |
| LOW⚡ | tests/unit/test_auto_completion_location.py | 550 | # LLM should be called because "No results" doesn't contain "123 Main St" | COMMENT |
| LOW⚡ | tests/unit/test_auto_completion_location.py | 34 | _TASK = make_task(_NOW, _ORG, navigation_payload={"address": "123 Main St"}) | CODE |
| LOW⚡ | tests/unit/test_auto_completion_location.py | 543 | text="123 Main St", | CODE |
| LOW | tests/unit/test_auto_completion_location.py | 128 | text="123 Main St", | CODE |
| LOW | tests/unit/test_auto_completion_location.py | 172 | text="123 Main St", # Double spaces - should still match after normalization | CODE |
| 407 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/unit/fake_workflow_run_context.py | 45 | def update_block_metadata(self, label: str, metadata: dict[str, Any]) -> None: | CODE |
| LOW⚡ | tests/unit/fake_workflow_run_context.py | 60 | def set_value(self, key: str, value: Any) -> None: | CODE |
| LOW | tests/unit/test_taskv3_tools.py | 212 | async def set_input_files(self, paths: Any) -> None: | CODE |
| LOW | tests/unit/test_taskv3_tools.py | 11781 | async def _set_with_noise(paths: Any) -> None: | CODE |
| LOW | tests/unit/test_block_description_caching.py | 57 | def _setup_mocks(mock_app: MagicMock) -> None: | CODE |
| LOW | tests/unit/test_cdp_download_interceptor.py | 3457 | async def _settle(interceptor: CDPDownloadInterceptor) -> None: | CODE |
| LOW | tests/unit/test_api_handler_factory.py | 264 | def _set_hard_deadline_settings(monkeypatch: pytest.MonkeyPatch, *, enforce: bool, grace: float) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1023 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1095 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1147 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1271 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1389 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1409 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1430 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1452 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW | tests/unit/test_input_text_combobox_commit.py | 1504 | async def _settle_spy(_element: object) -> None: | CODE |
| LOW⚡ | tests/unit/test_cdp_connection_retry.py | 44 | def _set_budget(monkeypatch: pytest.MonkeyPatch, attempts: int, backoff: list[float]) -> None: | CODE |
| LOW | tests/unit/test_quickstart_command.py | 84 | def _set_home(monkeypatch, home: Path) -> None: | STRING |
| LOW | tests/unit/test_task_v2_summary_envelope.py | 128 | async def update_thought(self, **kwargs: object) -> None: | CODE |
| LOW | …test_real_browser_state_discards_orphaned_tab_video.py | 61 | async def _set_working_page(page: MagicMock | None, index: int = 0) -> None: | CODE |
| LOW | …test_real_browser_state_discards_orphaned_tab_video.py | 122 | async def _set_working_page(page: MagicMock | None, index: int = 0) -> None: | CODE |
| LOW | …unit/test_copilot_code_artifact_metadata_violations.py | 613 | def set_attributes(self, fields: dict) -> None: | STRING |
| LOW | tests/unit/test_browser_header_sanitization.py | 53 | async def set_extra_http_headers(self, headers: dict[str, str]) -> None: | CODE |
| LOW | tests/unit/test_copilot_completion_verification.py | 3129 | def _set_workflow_labels(ctx: CopilotContext, *labels: str) -> None: | STRING |
| LOW⚡ | tests/unit/test_pdf_download_fixes.py | 471 | def _setup_context(self) -> None: | CODE |
| LOW | tests/unit/test_skycdp_artifacts.py | 89 | async def _settle() -> None: | CODE |
| LOW | tests/unit/test_artifact_url_expiry_org_config.py | 425 | __all__ = [ | CODE |
| LOW | tests/unit/test_collapse_fanout_gates.py | 70 | def _set_provider(monkeypatch: pytest.MonkeyPatch, provider: FakeExperimentationProvider) -> None: | CODE |
| LOW | tests/unit/test_copilot_frontier.py | 1579 | def _set_failure_ctx(ctx: CopilotContext, definition: _FakeDefinition, reason: str) -> None: | STRING |
| LOW | tests/unit/test_cleanup_service.py | 14 | def _set_backend(monkeypatch, storage: object) -> None: | CODE |
| LOW | tests/unit/test_copilot_candidate_navigation_guard.py | 104 | async def set_working_page(self, page: _Page | SimpleNamespace | None) -> None: | CODE |
| LOW | tests/unit/test_copilot_candidate_navigation_guard.py | 107 | async def set_active_page(self, page: SimpleNamespace) -> None: | CODE |
| LOW | tests/unit/test_feature_flag_resolution_logging.py | 68 | def _set_context() -> None: | CODE |
| LOW | tests/unit/test_feature_flag_resolution_logging.py | 81 | def _set_logger(monkeypatch: pytest.MonkeyPatch, logger: CaptureLogger) -> None: | CODE |
| LOW | tests/unit/workflow/test_dag_engine.py | 79 | def update_block_metadata(self, label: str, metadata: dict) -> None: | CODE |
| LOW⚡ | tests/unit/workflow/test_code_block_escalation.py | 703 | async def _update_workflow_run_block(**kwargs: object) -> None: | CODE |
| LOW | scripts/patch_generated_client.py | 77 | FORWARD_REFS_OLD = """def update_forward_refs(model: Type["Model"], **localns: Any) -> None: | CODE |
| LOW | scripts/patch_generated_client.py | 83 | FORWARD_REFS_NEW = """def update_forward_refs(model: Type["Model"], **localns: Any) -> None: | CODE |
| LOW | skyvern/__init__.py | 58 | __all__ = ["__version__", *_base_lazy_imports, *_server_lazy_imports] | CODE |
| LOW | skyvern/settings_manager.py | 13 | def set_settings(settings: Settings) -> None: | CODE |
| LOW⚡ | skyvern/core/script_generations/script_skyvern_page.py | 1238 | async def _update_step_output_before_complete(self, context: skyvern_context.SkyvernContext) -> None: | CODE |
| LOW | skyvern/core/script_generations/script_skyvern_page.py | 1294 | def set_run_context(self, run_context: RunContext) -> None: | CODE |
| LOW | skyvern/core/script_generations/script_skyvern_page.py | 1302 | def set_cached_fn(self, cache_key: str, fn: Callable) -> None: | CODE |
| LOW | skyvern/experimentation/__init__.py | 5 | __all__ = ["WaitConfig", "get_wait_config_from_experiment", "WAIT_VARIANTS"] | CODE |
| LOW | skyvern/browser_extension/cdp_adapter.py | 994 | def _update_main_frame(self, tab_id: int, params: dict) -> None: | CODE |
| LOW | skyvern/browser_extension/__init__.py | 36 | __all__ = [ | CODE |
| LOW | skyvern/browser_extension/broker_client.py | 541 | def _update_scoped_tabs(self, event: str, params: dict[str, Any]) -> None: | CODE |
| LOW | skyvern/browser_extension/relay.py | 1087 | def _update_scoped_tabs(self, event: str, params: dict) -> None: | CODE |
| LOW | skyvern/browser_extension/target_registry.py | 163 | def update_tab(self, tab_id: int, url: str, title: str) -> None: | CODE |
| LOW | skyvern/webeye/browser_state.py | 72 | async def set_working_page(self, page: Page | None, index: int = 0) -> None: ... | CODE |
| LOW | skyvern/webeye/browser_state.py | 74 | async def set_active_page(self, page: Page) -> None: ... | CODE |
| LOW⚡ | skyvern/webeye/dialog_handler.py | 183 | def set_dialog_handler(browser_context: BrowserContext) -> None: | CODE |
| LOW | skyvern/webeye/real_browser_state.py | 447 | async def set_working_page(self, page: Page | None, index: int = 0) -> None: | CODE |
| LOW | skyvern/webeye/real_browser_state.py | 453 | async def set_active_page(self, page: Page) -> None: | CODE |
| LOW⚡ | skyvern/webeye/browser_factory.py | 271 | def set_browser_console_log(browser_context: BrowserContext, browser_artifacts: BrowserArtifacts) -> None: | CODE |
| LOW | skyvern/webeye/browser_factory.py | 349 | def set_popup_video_listener(browser_context: BrowserContext, browser_artifacts: BrowserArtifacts) -> None: | CODE |
| LOW | skyvern/webeye/cdp_download_interceptor.py | 895 | def set_download_dir(self, download_dir: str) -> None: | CODE |
| LOW | skyvern/webeye/real_browser_manager.py | 1130 | def set_video_artifact_for_task(self, task: Task, artifacts: list[VideoArtifact]) -> None: | CODE |
| LOW | skyvern/webeye/browser_manager.py | 91 | def set_video_artifact_for_task(self, task: Task, artifacts: list[VideoArtifact]) -> None: ... | CODE |
| LOW⚡ | skyvern/webeye/browser_engine.py | 496 | def set_browser_engine_resolver(resolver: BrowserEngineResolver) -> None: | CODE |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_span_exception_redaction.py | 128 | # This file is synced to the OSS repo, where `cloud/` does not exist. Skipping | COMMENT |
| MEDIUM⚡ | tests/unit/test_span_exception_redaction.py | 163 | # This file is synced to the OSS repo, where `cloud/` does not exist. Skipping | COMMENT |
| MEDIUM | tests/unit/test_script_skyvern_page.py | 308 | # Create a mock page first, then set page to None after construction | COMMENT |
| MEDIUM | tests/unit/test_download_file_action_handler.py | 2203 | # Create a read-only directory to simulate write failure | COMMENT |
| MEDIUM | tests/unit/test_forloop_script_generation.py | 208 | # Create a mock CodeGenInput with ForLoop block | COMMENT |
| MEDIUM | tests/unit/test_aiohttp_helper.py | 923 | # Create a temporary file for testing | COMMENT |
| MEDIUM | tests/unit/test_aiohttp_helper.py | 977 | # Create a temporary file for testing | COMMENT |
| MEDIUM | tests/unit/test_aiohttp_helper.py | 1104 | # Create a temporary file for testing | COMMENT |
| MEDIUM⚡ | tests/unit/test_http_block_raw_filter.py | 344 | # Create a real context to test the method | COMMENT |
| MEDIUM⚡ | tests/unit/test_local_file_path_validation.py | 83 | # Create a symlink inside the sandbox that points to /etc/passwd | COMMENT |
| MEDIUM | tests/unit/test_vertex_cache_model_extraction.py | 114 | # Create a mock router config that matches the real GEMINI_3_0_FLASH_WITH_FALLBACK | COMMENT |
| MEDIUM | tests/unit/test_aws_client_ttl.py | 250 | # Create a stream that raises on seek | COMMENT |
| MEDIUM⚡ | tests/unit/workflow/test_file_parser_block.py | 145 | # Create a minimal valid PDF file | COMMENT |
| MEDIUM | tests/unit/embedded/test_sqlite_server_mode.py | 430 | # Create a client with a bad setting that will cause validation error | COMMENT |
| MEDIUM | tests/unit_tests/test_file_parser_block.py | 25 | # Create a mock OutputParameter with all required fields | COMMENT |
| MEDIUM⚡ | tests/unit_tests/test_file_parser_block.py | 88 | # Create a mock OutputParameter | COMMENT |
| MEDIUM⚡ | tests/unit_tests/test_file_parser_block.py | 151 | # Create a binary file that's definitely not CSV | COMMENT |
| MEDIUM | tests/unit_tests/test_file_parser_block.py | 233 | # Create a DataFrame with NaN, NaT, and timestamp values | COMMENT |
| MEDIUM | tests/unit_tests/test_schema_validator.py | 455 | # Create a schema that will fail Draft202012Validator.check_schema | COMMENT |
| MEDIUM | tests/sdk/python_sdk/conftest.py | 57 | # Create a handler class that serves from the specific directory | COMMENT |
| MEDIUM⚡ | docs/api-reference/openapi.json | 586 | "code": "\nfrom skyvern import Skyvern\n\n# Create a workflow in JSON format\nworkflow_definition = {\n | CODE |
| MEDIUM⚡ | docs/api-reference/openapi.json | 3386 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\n# Create a blank br | CODE |
| MEDIUM⚡ | fern/openapi/skyvern_openapi.json | 566 | "code": "\nfrom skyvern import Skyvern\n\n# Create a workflow in JSON format\nworkflow_definition = {\n | CODE |
| MEDIUM⚡ | fern/openapi/skyvern_openapi.json | 3136 | "code": "from skyvern import Skyvern\n\nskyvern = Skyvern(api_key=\"YOUR_API_KEY\")\n# Create a blank br | CODE |
| MEDIUM | skyvern/core/script_generations/real_skyvern_page_ai.py | 952 | # Create the episode now so v3's agent can attach decisions to it. | COMMENT |
| MEDIUM | skyvern/core/script_generations/generate_script.py | 2869 | # Create the for loop target (current_value) | COMMENT |
| MEDIUM | skyvern/core/script_generations/generate_script.py | 2892 | # Create the async for loop | COMMENT |
| MEDIUM | skyvern/core/script_generations/generate_script.py | 3873 | # Create a requires_agent entry (no code, no run_signature) | COMMENT |
| MEDIUM | skyvern/core/script_generations/generate_script.py | 4018 | # Create a temporary module to convert the start block content to a function | COMMENT |
| MEDIUM⚡ | skyvern/webeye/actions/handler.py | 8566 | # Create a TerminateAction and execute it | COMMENT |
| MEDIUM | skyvern/webeye/actions/handler.py | 7909 | # This function is deprecated in 'extract-actions' prompt. Downloads are handled by the click action handler now. | COMMENT |
| MEDIUM | skyvern/library/skyvern_browser.py | 38 | # Create a new page | STRING |
| MEDIUM | skyvern/forge/sdk/log_artifacts.py | 85 | # This function is called from ``update_workflow_run`` in the DB layer, which | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/service.py | 2545 | # Create the workflow run and set skyvern context | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/service.py | 7194 | # Create the browser with the saved profile and navigate to the login block's URL. The | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/service.py | 12475 | # Create a new version of the SAME script_id instead of a new script | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 2608 | # Create a temporary output parameter using the current block's workflow_id | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 3029 | # Create a failure block result for this iteration | COMMENT |
| MEDIUM | skyvern/forge/sdk/api/llm/config_registry.py | 1706 | # Create a GCP service account WITH the Vertex AI API access enabled | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/agent_protocol.py | 5900 | # Create a new timeline with processed children | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/credentials.py | 974 | # Create a temporary credential | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/credentials.py | 2894 | # Create the new token | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/credentials.py | 3151 | # Create the new Azure token | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/credentials.py | 3257 | # Create the new configuration | COMMENT |
| MEDIUM⚡ | skyvern/forge/sdk/routes/code_samples.py | 910 | # Create a blank browser profile for future runs | COMMENT |
| MEDIUM⚡ | skyvern/forge/sdk/routes/code_samples.py | 916 | # Create a browser profile from a persistent browser session | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/code_samples.py | 277 | # Create a workflow in JSON format | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/scripts.py | 587 | # Create a new version of the script | COMMENT |
| MEDIUM | skyvern/forge/sdk/routes/scripts.py | 1395 | # Create a new script version with the updated blocks | COMMENT |
| MEDIUM | skyvern/services/workflow_script_service.py | 1990 | # Create a new script version | COMMENT |
| MEDIUM | skyvern/services/workflow_script_service.py | 2159 | # Create the workflow script mapping for cache lookup | COMMENT |
| MEDIUM | skyvern/services/workflow_script_service.py | 2289 | # Create a new script version | COMMENT |
| MEDIUM | skyvern/services/task_v2_service.py | 261 | # Create a dedicated termination thought for UI visibility | COMMENT |
| MEDIUM | skyvern/services/script_service.py | 1830 | # Create a new script version | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skyvern/core/script_generations/skyvern_page.py | 408 | Click an element using a CSS selector, AI-powered prompt matching, or both. This method supports three modes: | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 640 | Fill an input field using a CSS selector, AI-powered prompt matching, or both. This method supports three modes | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 808 | Fill an autocomplete input by typing a value and clicking the matching dropdown option. Handles widgets like Go | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 1374 | Select an option from a dropdown using a CSS selector, AI-powered prompt matching, or both. This method support | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 1543 | Extract structured data from the page using AI. Args: prompt: Natural language description of what | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 1591 | Validate the current page state using AI. Args: prompt: Validation criteria or condition to check | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 1634 | Classify the current page state against named options using a tiered cascade. This method uses a three-tier app | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 3522 | Activate the AI agent from the CURRENT page position to achieve a goal. Instead of re-running the entire block | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 3565 | Send a prompt to the LLM and get a response based on the provided schema. This method allows you to interact wi | STRING |
| HIGH | skyvern/core/script_generations/skyvern_page.py | 3636 | Get a Playwright locator using a CSS selector, AI-powered prompt, or both. This method extends Playwright's loc | STRING |
| HIGH | skyvern/library/skyvern_browser_page_agent.py | 356 | Run a workflow in the context of this page and wait for it to finish. Args: workflow_id: ID of the | STRING |
| HIGH | skyvern/cli/core/browser_launcher.py | 230 | Launch Chrome with CDP enabled and wait for it to be ready. Args: port: The port for Chrome's CDP server. | STRING |
| HIGH | skyvern/cli/core/browser_launcher.py | 294 | Wait for Chrome's CDP server to be ready and return the WebSocket URL. Args: port: CDP port to poll. | STRING |
| HIGH | skyvern/schemas/workflows.py | 245 | Sanitizes parameter keys and collects the key mapping. Args: parameters: List of parameter dictionaries | STRING |
| HIGH | skyvern/forge/sdk/core/curl_converter.py | 11 | Parse a curl command into HTTP request parameters using curlparser library. Args: curl_command: The cu | STRING |
| HIGH | skyvern/forge/sdk/utils/pdf_parser.py | 29 | Extract text from a PDF file with fallback support. This function attempts to parse the PDF using pypdf first. | STRING |
| HIGH | skyvern/forge/sdk/utils/pdf_parser.py | 149 | Validate that a file is a readable PDF. This function attempts to validate the PDF using pypdf first. If that | STRING |
| HIGH | skyvern/forge/sdk/workflow/context_manager.py | 761 | Extract vault_id and item_id from the credential_id. This method handles the legacy format vault_id:ite | STRING |
| HIGH | skyvern/forge/sdk/workflow/models/block.py | 13631 | Resolve a dotted/bracket access path on a nested value. Examples: _resolve_nested_path({"a": {"b": 1}} | STRING |
| HIGH | skyvern/forge/sdk/workflow/models/block.py | 13768 | Extract the evaluations array from LLM output. ExtractionBlock wraps output in 'extracted_information', so we | STRING |
| HIGH | skyvern/forge/sdk/db/repositories/artifacts.py | 245 | Return artifacts associated with a run. Args: run_id: The ID of the run to get artifacts for | STRING |
| HIGH | skyvern/forge/sdk/api/azure.py | 62 | Create or update a secret in Azure Key Vault. Args: secret_name: The name of the secret to create o | STRING |
| HIGH | skyvern/forge/sdk/api/azure.py | 78 | Delete a secret from Azure Key Vault. Args: secret_name: The name of the secret to delete | STRING |
| HIGH | skyvern/forge/sdk/api/custom_credential_client.py | 178 | Create a credential using the custom API. Args: name: Name of the credential c | STRING |
| HIGH | skyvern/forge/sdk/api/custom_credential_client.py | 262 | Get a credential using the custom API. Args: credential_id: ID of the credential to retrie | STRING |
| HIGH | skyvern/forge/sdk/api/llm/api_handler_factory.py | 1649 | Custom LLM API handler that utilizes the LiteLLM router and fallbacks to OpenAI GPT-4 Vision. | STRING |
| HIGH | skyvern/forge/sdk/routes/agent_protocol.py | 4384 | Get all artifacts for an entity (step, task, workflow_run). Args: entity_type: Type of entity to fetch | STRING |
| HIGH | skyvern/forge/sdk/routes/webhooks.py | 208 | Return the replay payload preview for a completed run. Args: run_id (str): Identifier of the run to preview | STRING |
| HIGH | skyvern/forge/sdk/routes/webhooks.py | 262 | Replay a completed run's webhook to the stored or override URL. Args: run_id (str): Identifier of the run w | STRING |
| HIGH | …services/credential/custom_credential_vault_service.py | 85 | Get or create a CustomCredentialAPIClient for the given organization. Args: organization_i | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_taskv3_loop.py | 77 | CODE | |
| LOW | tests/unit/test_credential_fallback.py | 50 | CODE | |
| LOW | tests/unit/test_credential_fallback.py | 258 | CODE | |
| LOW | tests/unit/test_taskv3_tools.py | 3878 | CODE | |
| LOW | tests/unit/test_cached_script_deploy_service.py | 110 | CODE | |
| LOW | tests/unit/test_cdp_download_interceptor.py | 3314 | CODE | |
| LOW | tests/unit/test_agent_task_v3.py | 63 | CODE | |
| LOW | tests/unit/test_input_text_combobox_commit.py | 407 | CODE | |
| LOW | tests/unit/test_file_download_targets.py | 81 | CODE | |
| LOW | …sts/unit/test_chain_click_blocked_anchor_navigation.py | 418 | CODE | |
| LOW | tests/unit/test_scoped_xhr_download_capture.py | 13 | CODE | |
| LOW | tests/unit/test_llm_handler_parity_characterization.py | 249 | CODE | |
| LOW | tests/unit/test_llm_handler_parity_characterization.py | 305 | CODE | |
| LOW | tests/unit/test_llm_handler_parity_characterization.py | 78 | CODE | |
| LOW | tests/unit/test_schedule_mcp_tools.py | 27 | CODE | |
| LOW | tests/unit/test_copilot_failure_tracking.py | 27 | CODE | |
| LOW | tests/unit/copilot_test_helpers.py | 141 | CODE | |
| LOW | tests/unit/test_browser_action_policy.py | 122 | CODE | |
| LOW | tests/unit/forge/sdk/db/test_self_heal_repository.py | 22 | CODE | |
| LOW | …sts/unit/forge/sdk/db/test_workflow_runs_repository.py | 107 | CODE | |
| LOW | skyvern/core/script_generations/script_skyvern_page.py | 456 | CODE | |
| LOW | skyvern/core/script_generations/skyvern_page_ai.py | 36 | CODE | |
| LOW | skyvern/core/script_generations/real_skyvern_page_ai.py | 377 | CODE | |
| LOW | skyvern/core/script_generations/real_skyvern_page_ai.py | 1754 | CODE | |
| LOW | skyvern/core/script_generations/generate_script.py | 3316 | CODE | |
| LOW | skyvern/core/script_generations/skyvern_page.py | 609 | CODE | |
| LOW | skyvern/core/script_generations/skyvern_page.py | 625 | CODE | |
| LOW | skyvern/core/script_generations/skyvern_page.py | 759 | CODE | |
| LOW | skyvern/core/script_generations/skyvern_page.py | 1107 | CODE | |
| LOW | skyvern/browser_extension/broker_client.py | 175 | CODE | |
| LOW | skyvern/webeye/browser_state.py | 37 | CODE | |
| LOW | skyvern/webeye/browser_state.py | 56 | CODE | |
| LOW | skyvern/webeye/browser_state.py | 84 | CODE | |
| LOW | skyvern/webeye/browser_state.py | 121 | CODE | |
| LOW | skyvern/webeye/persistent_sessions_manager.py | 136 | CODE | |
| LOW | skyvern/webeye/real_browser_state.py | 242 | CODE | |
| LOW | skyvern/webeye/real_browser_state.py | 458 | CODE | |
| LOW | skyvern/webeye/real_browser_state.py | 638 | CODE | |
| LOW | skyvern/webeye/real_browser_state.py | 773 | CODE | |
| LOW | skyvern/webeye/default_persistent_sessions_manager.py | 442 | CODE | |
| LOW | skyvern/webeye/real_browser_manager.py | 534 | CODE | |
| LOW | skyvern/webeye/scraper/scraper.py | 283 | CODE | |
| LOW | skyvern/webeye/scraper/scraper.py | 519 | CODE | |
| LOW | skyvern/webeye/actions/handler.py | 10740 | CODE | |
| LOW | skyvern/webeye/actions/handler.py | 11440 | CODE | |
| LOW | skyvern/library/skyvern.py | 312 | CODE | |
| LOW | skyvern/library/skyvern.py | 369 | CODE | |
| LOW | skyvern/library/skyvern.py | 425 | CODE | |
| LOW | skyvern/library/embedded_server_factory.py | 127 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 42 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 108 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 123 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 155 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 172 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 289 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 343 | CODE | |
| LOW | skyvern/library/skyvern_browser_page_ai.py | 79 | CODE | |
| LOW | skyvern/cli/credentials.py | 61 | CODE | |
| LOW | skyvern/cli/schedule_command.py | 181 | CODE | |
| LOW | skyvern/cli/schedule_command.py | 214 | CODE | |
| 152 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | README.md | 277 | #### Step 1: Enable remote debugging in Chrome | COMMENT |
| LOW⚡ | README.md | 286 | #### Step 2: Connect Skyvern | COMMENT |
| LOW⚡ | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 1234 | // Step 1: Remove inline {{ deleted_block_output }} references from all nodes | COMMENT |
| LOW⚡ | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 1241 | // Step 2: Remove from parameterKeys arrays and handle special cases | COMMENT |
| LOW⚡ | …end/src/routes/workflows/editor/workflowEditorUtils.ts | 4034 | // Step 1: Update inline {{ old_output }} references to {{ new_output }} | COMMENT |
| LOW⚡ | …end/src/routes/workflows/editor/workflowEditorUtils.ts | 4041 | // Step 2: Update parameterKeys arrays and the label of the renamed node | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 81 | // Step 1: Remove inline {{ parameter.key }} references | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 86 | // Step 2: Remove from parameterKeys arrays | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 283 | // Step 1: Update inline {{ old_key }} references to {{ new_key }} | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 288 | // Step 2: Update parameterKeys arrays | COMMENT |
| LOW | tests/unit/test_workflow_schema_field_preservation.py | 374 | # Step 1: Build existing field assignments | STRING |
| LOW | tests/unit/test_workflow_schema_field_preservation.py | 386 | # Step 2: SKY-8965 Phase 2 — deterministic picker preserves existing | STRING |
| LOW⚡ | tests/unit/workflow/test_browser_session_id_template.py | 244 | # Step 1: Register context (like initialize_workflow_run_context does) | COMMENT |
| LOW⚡ | tests/unit/workflow/test_browser_session_id_template.py | 254 | # Step 2: Simulate auto_create_browser_session_if_needed returning a session, | COMMENT |
| LOW⚡ | tests/unit/workflow/test_browser_session_id_template.py | 260 | # Step 3: Verify template rendering (as _execute_workflow_blocks would) | COMMENT |
| LOW | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 24 | # Step 1: Create folders table | COMMENT |
| LOW | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 56 | # Step 2: Add folder_id to workflows table | COMMENT |
| LOW⚡ | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 81 | # Step 1: Remove folder_id from workflows table (must be done before dropping folders table) | COMMENT |
| LOW⚡ | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 86 | # Step 2: Drop folders table | COMMENT |
| LOW | skills/skyvern/SKILL.md | 11 | ## Step 1: Classify Your Task (ALWAYS do this first) | COMMENT |
| LOW | skills/skyvern/SKILL.md | 25 | ## Step 2: Apply These Decision Rules | COMMENT |
| LOW | skills/skyvern/SKILL.md | 34 | ## Step 3: Create a Session | COMMENT |
| LOW | skills/skyvern/SKILL.md | 52 | ## Step 4: Execute by Classification | COMMENT |
| LOW | skills/skyvern/SKILL.md | 138 | ## Step 5: Verify | COMMENT |
| LOW | skills/skyvern/SKILL.md | 148 | ## Step 6: Error Recovery | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 4164 | # Step 1: Get or create ScriptBlock record for this revision | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 4197 | # Step 2: Create or update ScriptFile with content deduplication | COMMENT |
| LOW⚡ | skyvern/webeye/utils/dom.py | 1466 | # Step 1: Use native element.scrollIntoView() which handles both window scrolling | COMMENT |
| LOW⚡ | skyvern/webeye/utils/dom.py | 1525 | # Step 2: Playwright actionability confirmation. After Step 1, the element should | COMMENT |
| LOW⚡ | skyvern/cli/browser.py | 252 | # Step 1: Check if debugging is already enabled | COMMENT |
| LOW⚡ | skyvern/cli/browser.py | 266 | # Step 2: Guide the user to enable Chrome remote debugging. | COMMENT |
| LOW⚡ | skyvern/cli/browser.py | 274 | # Step 3: Auto-discover the debugging server with retries | COMMENT |
| LOW | skyvern/cli/browser.py | 293 | # Step 4: Fallback — ask for manual URL | COMMENT |
| LOW⚡ | skyvern/cli/setup_commands.py | 1077 | # Step 1: Credentials | COMMENT |
| LOW⚡ | skyvern/cli/setup_commands.py | 1086 | # Step 2: Detect tools | COMMENT |
| LOW | skyvern/cli/setup_commands.py | 1133 | # Step 3: Configure detected tools | COMMENT |
| LOW | skyvern/cli/skills/qa/SKILL.md | 35 | ## Step 1: Understand the Changes | COMMENT |
| LOW | skyvern/cli/skills/qa/SKILL.md | 67 | ## Step 2: Classify the Diff | COMMENT |
| LOW | skyvern/cli/skills/qa/SKILL.md | 83 | ## Step 3: Choose the Validation Strategy | COMMENT |
| LOW | skyvern/cli/skills/qa/SKILL.md | 335 | ## Step 5: Report Results | COMMENT |
| LOW | skyvern/cli/skills/qa/SKILL.md | 369 | ## Step 6: Post Evidence to PR | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 47 | ## Step 1: Understand the Changes | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 79 | ## Step 2: Classify the Diff | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 95 | ## Step 3: Choose the Validation Strategy | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 159 | ## Step 4: Start the App | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 178 | ## Step 5: Generate Smoke Test Cases | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 212 | ## Step 6: Run Tests via Browser Tools | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 312 | ## Step 7: Report Results | COMMENT |
| LOW | skyvern/cli/skills/smoke-test/SKILL.md | 360 | ## Step 8: Post to PR | COMMENT |
| LOW | skyvern/cli/skills/skyvern/SKILL.md | 11 | ## Step 1: Classify Your Task (ALWAYS do this first) | COMMENT |
| LOW | skyvern/cli/skills/skyvern/SKILL.md | 25 | ## Step 2: Apply These Decision Rules | COMMENT |
| LOW | skyvern/cli/skills/skyvern/SKILL.md | 34 | ## Step 3: Create a Session | COMMENT |
| LOW | skyvern/cli/skills/skyvern/SKILL.md | 52 | ## Step 4: Execute by Classification | COMMENT |
| LOW | skyvern/cli/skills/skyvern/SKILL.md | 138 | ## Step 5: Verify | COMMENT |
| LOW | skyvern/cli/skills/skyvern/SKILL.md | 148 | ## Step 6: Error Recovery | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 163 | ### Step 1: Create and run | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 167 | ### Step 2: Check status | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 174 | ### Step 3: Fix and re-run | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 253 | ## Step 1: Read the Error | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 188 | ### Step 4: Verify output | COMMENT |
| 21 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | conftest.py | 1 | from skyvern.forge.sdk.forge_log import setup_logger | COMMENT |
| LOW | pytest.ini | 1 | [pytest] | COMMENT |
| LOW | alembic.ini | 1 | # A generic, single database configuration. | COMMENT |
| LOW | alembic.ini | 21 | # string value is passed to dateutil.tz.gettz() | COMMENT |
| LOW | alembic.ini | 41 | # The path separator used here should be the separator specified by "version_path_separator" below. | COMMENT |
| LOW | alembic.ini | 61 | # output_encoding = utf-8 | COMMENT |
| LOW | docker-compose.yml | 41 | - ./downloads:/data/downloads | COMMENT |
| LOW | docker-compose.yml | 81 | # - BROWSER_TYPE=cdp-connect | COMMENT |
| LOW | docker-compose.yml | 101 | # - LLM_KEY=GEMINI_3.0_FLASH | COMMENT |
| LOW | docker-compose.yml | 121 | # - LLM_KEY=OLLAMA | COMMENT |
| LOW | docker-compose.yml | 181 | - VITE_BROWSER_STREAMING_MODE=${VITE_BROWSER_STREAMING_MODE:-cdp} | COMMENT |
| LOW | docker-compose.yml | 201 | # image: vaultwarden/server:latest-alpine | COMMENT |
| LOW | docker-compose.yml | 221 | # # API credentials for vaultwarden | COMMENT |
| LOW | docker-compose.yml | 241 | # - ~/bitwarden-cli-config:/app/.config | COMMENT |
| LOW | skyvern-frontend/src/components/ui/css-vars.test.ts | 1 | import { describe, expect, it } from "vitest"; | COMMENT |
| LOW | …end/src/routes/workflows/copilot/copilotActivityLog.ts | 41 | pending: boolean; | COMMENT |
| LOW | …rontend/src/routes/workflows/copilot/narrativeState.ts | 221 | kind: "tool_call" | "tool_result" | "narration"; | COMMENT |
| LOW | …rontend/src/routes/workflows/copilot/narrativeState.ts | 241 | id: string; | COMMENT |
| LOW | …rontend/src/routes/workflows/copilot/narrativeState.ts | 301 | // ISO timestamps from turn_start and the terminal frame. Drive the convo | COMMENT |
| LOW | …rontend/src/routes/workflows/copilot/narrativeState.ts | 681 | // (the narrator can emit mid-flight progress on a slow call), replacing in | COMMENT |
| LOW | …rontend/src/routes/workflows/copilot/narrativeState.ts | 1141 | // and returns a growing action set. First sighting seeds the reveal | COMMENT |
| LOW | …d/src/routes/workflows/copilot/WorkflowCopilotChat.tsx | 801 | // Single-flight guard for the resume POST against a double-click. | COMMENT |
| LOW | …d/src/routes/workflows/copilot/WorkflowCopilotChat.tsx | 841 | // Mirrors workflowCopilotChatId for async handlers that would otherwise | COMMENT |
| LOW | …es/workflows/workflowRun/resizableTimelineSplitMath.ts | 1 | export const TIMELINE_SPLIT_STORAGE_KEY = "skyvern.runView.timelineSplit"; | COMMENT |
| LOW | …utes/workflows/components/tagging/TagFilterControl.tsx | 41 | type Props = { | COMMENT |
| LOW | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 401 | // Counter that the parent bumps to force a re-layout (e.g. on container | COMMENT |
| LOW | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 421 | // Supplied by Workspace so the docked Block Library inside | COMMENT |
| LOW | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 801 | return; | COMMENT |
| LOW | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 1581 | // Commit a reorder drop in a single atomic mutation so the chain never | COMMENT |
| LOW | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 1761 | COMMENT | |
| LOW | …ern-frontend/src/routes/workflows/editor/Workspace.tsx | 981 | }; | COMMENT |
| LOW | …s/workflows/editor/panels/WorkflowNodeLibraryPanel.tsx | 81 | /> | COMMENT |
| LOW | …s/workflows/editor/panels/WorkflowNodeLibraryPanel.tsx | 181 | // ), | COMMENT |
| LOW | …editor/panels/BlockConfigForm/Taskv2BlockForm.test.tsx | 321 | // mutating the fixture, so the wrapper's `value` snapshot never moves | COMMENT |
| LOW | …/workflows/editor/collapse/scheduleCollapseRelayout.ts | 1 | // A container block (loop / conditional) drives a canvas re-layout whenever | COMMENT |
| LOW | …s/editor/collapse/applyDescendantCollapseVisibility.ts | 21 | .conditionalBranchId; | COMMENT |
| LOW | …utes/workflows/editor/collapse/useNodeCollapseStore.ts | 21 | toggleBlock: (workflowId: string, blockLabel: string) => void; | COMMENT |
| LOW | …utes/workflows/editor/collapse/useNodeCollapseStore.ts | 161 | // `<WorkflowScopeContext.Provider>` wrap is obvious during development, | COMMENT |
| LOW | …rc/routes/workflows/editor/hooks/useWorkflowHistory.ts | 221 | // independent of React's render/batch cycle. Fires synchronously | COMMENT |
| LOW | …rc/routes/workflows/editor/hooks/useWorkflowHistory.ts | 361 | // persisted state - mark dirty so the leave-page warning fires | COMMENT |
| LOW | …rc/routes/workflows/editor/hooks/useWorkflowHistory.ts | 381 | // History navigation is unsafe while an internal update is in | COMMENT |
| LOW | …ditor/hooks/useResolveDefaultGoogleSheetsCredential.ts | 81 | // the fill is silently unsaved and a later Run reads the stale credential_id | COMMENT |
| LOW | …utes/workflows/editor/selection/selectedRingClasses.ts | 1 | // Shared visual treatment for "this canvas element is the active selection." | COMMENT |
| LOW | …end/src/routes/workflows/editor/sortable/scope.test.ts | 321 | const keys = scopes.map(getScopeKey); | COMMENT |
| LOW | …rontend/src/routes/streaming/InteractiveStreamView.tsx | 201 | onHistoryNavigate, | COMMENT |
| LOW | k8s/charts/skyvern-ui/values.yaml | 1 | # Default values for skyvern-ui. | COMMENT |
| LOW | tests/unit/test_copilot_watchdog.py | 841 | COMMENT | |
| LOW | tests/unit/conftest.py | 101 | ) | COMMENT |
| LOW | tests/unit/test_copilot_cancel_helpers.py | 161 | # _trusted_post_drain_status | COMMENT |
| LOW | tests/unit/test_taskv3_opaque_refs.py | 81 | # essentially never does by chance, so it must not be masked just for having all three character | COMMENT |
| LOW | tests/unit/test_domutils_injection_scope.js | 1 | // Behavioral test for domUtils.js injection scope isolation. | COMMENT |
| LOW | tests/unit/workflow/test_reorder_graph_validation.py | 81 | COMMENT | |
| LOW | scripts/test-install.sh | 1 | #!/bin/sh | COMMENT |
| LOW | skyvern/config.py | 161 | # Carry the planner's required_subgoals leg-checklist forward into the next planner | COMMENT |
| LOW | skyvern/config.py | 221 | # sampling=True is dropped from stdout/Datadog with probability | COMMENT |
| LOW | skyvern/config.py | 241 | # Dispatch flag for the workflow copilot v2 (openai-agents-SDK rewrite). | COMMENT |
| LOW | skyvern/config.py | 261 | # Requires app.CACHE to be a shared cache (Redis) -- a same-process-only cache can't | COMMENT |
| LOW | skyvern/config.py | 381 | # browser settings | COMMENT |
| LOW | skyvern/config.py | 441 | # How long a cached vault may go without a `bw sync`. A miss forces a sync and one retry, | COMMENT |
| LOW | skyvern/config.py | 841 | COMMENT | |
| 104 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/unit/test_workflow_schema_field_preservation.py | 30 | # Check if real LLM tests should run (set RUN_LLM_TESTS=1 to enable) | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 285 | # Check if this task has existing field names to preserve | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 3781 | # Check if already cached (for progressive caching) | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 3850 | # Check if the reviewer has already provided code for this block | COMMENT |
| LOW | skyvern/core/script_generations/skyvern_page.py | 1017 | # Check if the value persisted | COMMENT |
| LOW | skyvern/experimentation/wait_config.py | 170 | # Check if user is in the experiment | COMMENT |
| LOW | skyvern/webeye/browser_factory.py | 1183 | # Check if Chrome is already running | COMMENT |
| LOW | skyvern/webeye/scraper/scraped_page.py | 122 | # Check if the element is self-closing | COMMENT |
| LOW⚡ | skyvern/webeye/actions/handler.py | 8556 | # Check if we should terminate instead of complete | COMMENT |
| LOW | skyvern/webeye/actions/handler.py | 6310 | # Check if cached TOTP has expired | COMMENT |
| LOW | skyvern/cli/doctor.py | 288 | # Check if any tools are even installed (binary on PATH or config dir exists) | COMMENT |
| LOW | skyvern/cli/quickstart.py | 929 | # Check if Docker Compose option was explicitly requested or offer choice | COMMENT |
| LOW | skyvern/cli/commands/browser.py | 2038 | # Check if Chrome process is still alive | COMMENT |
| LOW | skyvern/cli/commands/browser.py | 2124 | # Check if ngrok is installed | COMMENT |
| LOW | skyvern/cli/commands/browser.py | 2134 | # Check if ngrok auth token is configured | COMMENT |
| LOW | skyvern/cli/commands/browser.py | 2158 | # Check if ngrok died (e.g. bad auth token, port conflict) | COMMENT |
| LOW | skyvern/forge/agent.py | 3462 | # Check if Skyvern already returned a complete action, if so, don't run user goal check | COMMENT |
| LOW | skyvern/forge/agent.py | 3662 | # Check if the src is a data URI with base64 encoded PDF | COMMENT |
| LOW | skyvern/forge/agent.py | 4557 | # Check if we should use the termination-aware prompt (experiment) | COMMENT |
| LOW | skyvern/forge/agent.py | 4695 | # Check if we should terminate instead of complete | COMMENT |
| LOW | skyvern/forge/agent.py | 5063 | # Check if we have pre-scraped data from parallel verification optimization | COMMENT |
| LOW | skyvern/forge/agent.py | 5631 | # Check if prompt caching is enabled for extract-action | COMMENT |
| LOW | skyvern/forge/agent.py | 6000 | # Check if inputs are close together or have similar attributes | COMMENT |
| LOW | skyvern/forge/agent.py | 7474 | # Check if this is an LLM provider error | COMMENT |
| LOW | skyvern/forge/agent.py | 7537 | # Check if we have LLM errors even if the summarization failed | COMMENT |
| LOW | skyvern/forge/agent.py | 7607 | # Check if this is an LLM provider error | COMMENT |
| LOW | skyvern/forge/agent.py | 7691 | # Check if we have LLM errors even if the summarization failed | COMMENT |
| LOW | skyvern/forge/agent.py | 7834 | # Check if parallel verification should be used | COMMENT |
| LOW | skyvern/forge/sdk/models.py | 124 | # Check if there is a successful complete action | COMMENT |
| LOW | skyvern/forge/sdk/models.py | 160 | # Check if there is a successful terminate action | COMMENT |
| LOW | skyvern/forge/sdk/forge_log.py | 821 | # Check if it's a subclass of known exception types | COMMENT |
| LOW | skyvern/forge/sdk/forge_log.py | 870 | # Check if exception is a subclass of transient exceptions | COMMENT |
| LOW | skyvern/forge/sdk/forge_log.py | 877 | # Check if exception is a subclass of bug exceptions | COMMENT |
| LOW | …rn/forge/sdk/workflow/workflow_definition_converter.py | 114 | # Check if user's trying to manually create an output parameter | COMMENT |
| LOW | …rn/forge/sdk/workflow/workflow_definition_converter.py | 127 | # Check if any parameter keys collide with automatically created output parameter keys | COMMENT |
| LOW | skyvern/forge/sdk/workflow/service.py | 5008 | # Check if there's a related workflow script that should be used instead. | COMMENT |
| LOW | skyvern/forge/sdk/workflow/service.py | 5095 | # Check if there's a finally block configured | COMMENT |
| LOW | skyvern/forge/sdk/workflow/service.py | 6765 | # Check if this block is designated as requires_agent by the script reviewer. | COMMENT |
| LOW | skyvern/forge/sdk/workflow/service.py | 6773 | # Check if this block has never been cached (e.g. from an unexecuted | COMMENT |
| LOW | skyvern/forge/sdk/workflow/service.py | 12683 | # Check if the script is pinned — skip auto-review for pinned scripts. | COMMENT |
| LOW | skyvern/forge/sdk/workflow/context_manager.py | 774 | # Check if it's in the format vault_id:item_id | COMMENT |
| LOW | skyvern/forge/sdk/workflow/context_manager.py | 1019 | # Check if item is None | COMMENT |
| LOW⚡ | skyvern/forge/sdk/workflow/models/block.py | 12843 | # Check if file_path is a URL or managed storage URI | COMMENT |
| LOW⚡ | skyvern/forge/sdk/workflow/models/block.py | 12851 | # Check if file is in allowed directories | COMMENT |
| LOW⚡ | skyvern/forge/sdk/workflow/models/block.py | 12861 | # Check if file is within any allowed directory | COMMENT |
| LOW | skyvern/forge/sdk/workflow/models/block.py | 2347 | # Check if this looks like a parameter path (contains dots and/or _output) | COMMENT |
| LOW | skyvern/forge/sdk/workflow/models/block.py | 9791 | # Check if the recipient is a parameter and get its value | COMMENT |
| LOW | skyvern/forge/sdk/workflow/models/block.py | 9869 | # Check if the filename has an extension | COMMENT |
| LOW | skyvern/forge/sdk/workflow/models/block.py | 11626 | # Check if timeout_seconds has elapsed | COMMENT |
| LOW | skyvern/forge/sdk/workflow/models/block.py | 12613 | # Check if url is a parameter | COMMENT |
| LOW | skyvern/forge/sdk/db/repositories/folders.py | 174 | # Check if folder exists | COMMENT |
| LOW | skyvern/forge/sdk/api/files.py | 439 | # Check if URL is a Google Drive link | COMMENT |
| LOW | skyvern/forge/sdk/api/files.py | 448 | # Check if URL is a cloud storage URI handled by the configured storage backend. | COMMENT |
| LOW | skyvern/forge/sdk/api/files.py | 471 | # Check if URL is a file:// URI | COMMENT |
| LOW⚡ | skyvern/forge/sdk/api/llm/schema_validator.py | 75 | # Check if null is allowed in the schema type | COMMENT |
| LOW | skyvern/forge/sdk/api/llm/api_handler_factory.py | 1800 | # Check if this is an OpenAI model | COMMENT |
| LOW | skyvern/forge/sdk/api/llm/api_handler_factory.py | 2588 | # Check if this is an OpenAI model | COMMENT |
| LOW | skyvern/forge/sdk/api/llm/utils.py | 384 | # Check if the next non-whitespace character is a JSON structure character | COMMENT |
| LOW⚡ | skyvern/forge/sdk/api/llm/vertex_cache_manager.py | 103 | # Check if cache already exists for this key | COMMENT |
| LOW⚡ | skyvern/forge/sdk/api/llm/vertex_cache_manager.py | 106 | # Check if still valid | COMMENT |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 1234 | // Step 1: Remove inline {{ deleted_block_output }} references from all nodes | COMMENT |
| LOW⚡ | …-frontend/src/routes/workflows/editor/FlowRenderer.tsx | 1241 | // Step 2: Remove from parameterKeys arrays and handle special cases | COMMENT |
| LOW⚡ | …end/src/routes/workflows/editor/workflowEditorUtils.ts | 4034 | // Step 1: Update inline {{ old_output }} references to {{ new_output }} | COMMENT |
| LOW⚡ | …end/src/routes/workflows/editor/workflowEditorUtils.ts | 4041 | // Step 2: Update parameterKeys arrays and the label of the renamed node | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 81 | // Step 1: Remove inline {{ parameter.key }} references | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 86 | // Step 2: Remove from parameterKeys arrays | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 283 | // Step 1: Update inline {{ old_key }} references to {{ new_key }} | COMMENT |
| LOW⚡ | …es/workflows/editor/panels/WorkflowParametersPanel.tsx | 288 | // Step 2: Update parameterKeys arrays | COMMENT |
| LOW | tests/unit/test_workflow_schema_field_preservation.py | 374 | # Step 1: Build existing field assignments | STRING |
| LOW | tests/unit/test_workflow_schema_field_preservation.py | 386 | # Step 2: SKY-8965 Phase 2 — deterministic picker preserves existing | STRING |
| LOW⚡ | tests/unit/workflow/test_browser_session_id_template.py | 244 | # Step 1: Register context (like initialize_workflow_run_context does) | COMMENT |
| LOW⚡ | tests/unit/workflow/test_browser_session_id_template.py | 254 | # Step 2: Simulate auto_create_browser_session_if_needed returning a session, | COMMENT |
| LOW⚡ | tests/unit/workflow/test_browser_session_id_template.py | 260 | # Step 3: Verify template rendering (as _execute_workflow_blocks would) | COMMENT |
| LOW | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 24 | # Step 1: Create folders table | COMMENT |
| LOW | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 56 | # Step 2: Add folder_id to workflows table | COMMENT |
| LOW⚡ | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 81 | # Step 1: Remove folder_id from workflows table (must be done before dropping folders table) | COMMENT |
| LOW⚡ | …ions/2025_10_30_1414-541870962332_add_folders_table.py | 86 | # Step 2: Drop folders table | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 4164 | # Step 1: Get or create ScriptBlock record for this revision | COMMENT |
| LOW | skyvern/core/script_generations/generate_script.py | 4197 | # Step 2: Create or update ScriptFile with content deduplication | COMMENT |
| LOW⚡ | skyvern/webeye/utils/dom.py | 1466 | # Step 1: Use native element.scrollIntoView() which handles both window scrolling | COMMENT |
| LOW⚡ | skyvern/webeye/utils/dom.py | 1525 | # Step 2: Playwright actionability confirmation. After Step 1, the element should | COMMENT |
| LOW⚡ | skyvern/cli/browser.py | 252 | # Step 1: Check if debugging is already enabled | COMMENT |
| LOW⚡ | skyvern/cli/browser.py | 266 | # Step 2: Guide the user to enable Chrome remote debugging. | COMMENT |
| LOW⚡ | skyvern/cli/browser.py | 274 | # Step 3: Auto-discover the debugging server with retries | COMMENT |
| LOW | skyvern/cli/browser.py | 293 | # Step 4: Fallback — ask for manual URL | COMMENT |
| LOW⚡ | skyvern/cli/setup_commands.py | 1077 | # Step 1: Credentials | COMMENT |
| LOW⚡ | skyvern/cli/setup_commands.py | 1086 | # Step 2: Detect tools | COMMENT |
| LOW | skyvern/cli/setup_commands.py | 1133 | # Step 3: Configure detected tools | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 163 | ### Step 1: Create and run | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 167 | ### Step 2: Check status | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 174 | ### Step 3: Fix and re-run | COMMENT |
| LOW⚡ | skyvern/cli/mcp_tools/prompts.py | 253 | ## Step 1: Read the Error | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 188 | ### Step 4: Verify output | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 271 | ## Step 2: Diagnose the Pattern | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 313 | ## Step 3: Fix and Re-run | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 327 | ## Step 4: Escalation | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 522 | ## Step 1: Understand the Changes | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 567 | ## Step 2: Choose the Validation Strategy | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 817 | ## Step 4: Report Results | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 849 | ## Step 5: Post Evidence to PR | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 989 | ## Step 1: Understand the Changes | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 1011 | ## Step 2: Choose the Validation Strategy | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 1064 | ## Step 4: Report Results | COMMENT |
| LOW | skyvern/cli/mcp_tools/prompts.py | 1094 | ## Step 5: Remote / Stateless Constraints | COMMENT |
| LOW⚡ | skyvern/schemas/workflows.py | 334 | # Step 1: Sanitize all block labels and collect the mapping | COMMENT |
| LOW⚡ | skyvern/schemas/workflows.py | 341 | # Step 2: Sanitize all parameter keys and collect the mapping | COMMENT |
| LOW⚡ | skyvern/schemas/workflows.py | 434 | # Step 5: Update parameter_keys arrays in blocks | COMMENT |
| LOW⚡ | skyvern/schemas/workflows.py | 440 | # Step 6: Update finally_block_label if it references an old label | COMMENT |
| LOW⚡ | skyvern/schemas/workflows.py | 446 | # Step 7: Update next_block_label in all blocks | COMMENT |
| LOW | skyvern/schemas/workflows.py | 358 | # Step 3: Update all block label references | COMMENT |
| LOW | skyvern/schemas/workflows.py | 397 | # Step 4: Update all parameter key references | COMMENT |
| LOW | skyvern/forge/sdk/copilot/tools/__init__.py | 1026 | # Step 1: Update the workflow | COMMENT |
| LOW | skyvern/forge/sdk/workflow/models/block.py | 2297 | # If the loop_data is a dict, we need to check if the key exists in the loop_data | COMMENT |
| LOW | skyvern/forge/sdk/services/bitwarden.py | 1197 | # Step 3: Retrieve the items | COMMENT |
| LOW | skyvern/forge/sdk/services/bitwarden.py | 1375 | # Step 3: Get the item | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …rn-frontend/src/util/onboarding/OnboardingTelemetry.ts | 252 | // -- Error events (rollback guardrails) -- | COMMENT |
| MEDIUM | …nit/test_action_to_stmt_credential_totp_inheritance.py | 77 | # `totp_identifier=` explicitly on the block. Mirrors the agentic | COMMENT |
| MEDIUM | …nit/test_action_to_stmt_credential_totp_inheritance.py | 206 | # agentic walk over `block.get_all_parameters(...)`. | COMMENT |
| MEDIUM | …nit/test_action_to_stmt_credential_totp_inheritance.py | 232 | # Block has no credential parameter bound — matches the agentic case | COMMENT |
| MEDIUM⚡ | tests/unit/test_validation_evidence_router_prompts.py | 141 | # invites it to hallucinate visual evidence. The no-page branch must not | COMMENT |
| MEDIUM⚡ | tests/unit/test_mcp_workflow_tools.py | 379 | # Prove the exact Slack scenario: MCP agent hallucinates various model strings | COMMENT |
| MEDIUM | tests/unit/test_domutils_scroll_helpers_gating.py | 123 | # And the helper that orchestrates the scroll loop defaults to False. | COMMENT |
| MEDIUM⚡ | tests/unit/test_copilot_composition_evidence.py | 1796 | # The first goto_url is the scaffold the agent scouts from — never gated. | STRING |
| MEDIUM | skills/skyvern/references/prompt-writing.md | 23 | ## Reliability guardrails | COMMENT |
| MEDIUM | skyvern/webeye/actions/parse_actions.py | 131 | # LLM sometimes hallucinates and returns element id for non-web actions such as WAIT, TERMINATE, COMPLETE etc. | COMMENT |
| MEDIUM | skyvern/cli/skills/skyvern/references/prompt-writing.md | 23 | ## Reliability guardrails | COMMENT |
| MEDIUM | skyvern/cli/mcp_tools/response.py | 815 | # combined value past the formatter's own output (generic scaffolding plus | COMMENT |
| MEDIUM | skyvern/forge/failure_classifier.py | 299 | # LLM reasoning error (wrong action, hallucination) | COMMENT |
| MEDIUM | skyvern/forge/agent.py | 403 | # Exception types that indicate an LLM-specific step failure (context window, provider errors, | COMMENT |
| MEDIUM | skyvern/forge/agent.py | 2119 | # 1. CUA executes only one action step by step -- it's pretty less likely to have a hallucination for completion | COMMENT |
| MEDIUM | skyvern/forge/agent.py | 7587 | # LLM-specific failure (e.g. context window exceeded) | COMMENT |
| MEDIUM | skyvern/forge/agent_functions.py | 2210 | # from element attributes to make sure this won't increase hallucination | COMMENT |
| MEDIUM | skyvern/forge/sdk/core/skyvern_context.py | 383 | # v3 agentic reviewer — per-run cumulative budget. Initialized at workflow | COMMENT |
| MEDIUM | skyvern/forge/sdk/copilot/composition_evidence.py | 588 | # entrypoint scaffold — ungated so the agent can record it and scout from it. | COMMENT |
| MEDIUM⚡ | skyvern/forge/sdk/copilot/code_block_preflight.py | 528 | # The wrapper scaffolding is static and valid, so any SyntaxError is in the supplied code — | COMMENT |
| MEDIUM⚡ | skyvern/forge/sdk/copilot/tools/guardrails.py | 41 | # Agents SDK guardrails may hand us either raw JSON or an already parsed mapping. | COMMENT |
| MEDIUM⚡ | skyvern/forge/sdk/workflow/models/block.py | 5683 | # pre-copilot code blocks must never gain agentic recovery from the toggle alone. | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 6931 | # "context" is a skyvern-defined field to reduce LLM hallucination | COMMENT |
| MEDIUM | skyvern/services/script_reviewer_v3/skills/validate.py | 211 | # agent doesn't hallucinate methods. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/unit/test_taskv3_tools.py | 390 | # The whole point: no task-ecosystem / LLM-backed tools in the raw harness. | COMMENT |
| MEDIUM⚡ | tests/unit/test_cdp_connection_retry.py | 262 | """An invalid runtime override falls back to the settings field default (the robust | STRING |
| MEDIUM | …s/unit/test_explicit_submit_sequential_click_bypass.py | 281 | # bypass above is caused by the submit semantics, not the harness. | COMMENT |
| LOW | tests/unit/test_cached_download_s3_upload.py | 473 | # A misconfigured cached destination must halt the script (raise), not just return a | COMMENT |
| MEDIUM⚡ | tests/unit/test_download_suffix_lineage.py | 219 | # 4-case reproduction harness (real render/copy + real finalize + real contextvar naming) | COMMENT |
| MEDIUM | tests/unit/workflow/test_code_block_escalation.py | 1289 | # The harness heal path composes its goal without the floor path's `if not self.prompt` | COMMENT |
| MEDIUM | skyvern/webeye/cdp_download_interceptor.py | 119 | # and a separate local harness reproduced the interceptor replay materializing ~4/3x the body as base64. | COMMENT |
| MEDIUM | skyvern/webeye/cdp_download_interceptor.py | 120 | # Those are local-stack / replay-harness observations, not interceptor-path production measurements. | COMMENT |
| MEDIUM⚡ | skyvern/cli/lazy.py | 108 | # Click-version-robust group base | COMMENT |
| LOW | skyvern/forge/agent.py | 2417 | # TODO (kerem): keep the task object uptodate at all times so that clean_up_task can just use it | COMMENT |
| MEDIUM | skyvern/forge/sdk/copilot/hooks.py | 181 | # harness's cue to end the loop and speak for it. | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/service.py | 10436 | # soft-deleted (e.g. eval harness teardown fired while the orphan | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/service.py | 11180 | # harness tears down a workflow while the run is still executing in | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 5607 | # The harness path reaches here without the floor path's `if not self.prompt` gate, and | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 6580 | # Reserve cap only once harness preconditions are satisfied so transient infra skips | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 6581 | # do not consume slots; cap limits harness attempts, not floor fallback attempts. | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 6649 | # Fail closed when an unverified harness run already mutated controls: | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 6712 | # A failed harness turn that already mutated controls must not hand off to floor: | COMMENT |
| MEDIUM | skyvern/forge/sdk/workflow/models/block.py | 6776 | # If the harness already mutated a control before the error (e.g. the workflow-mutation | COMMENT |
| MEDIUM | skyvern/forge/sdk/db/repositories/scripts.py | 970 | # Join on both script_id and organization_id to leverage uc_org_script_version index. | COMMENT |
| LOW | skyvern/client/core/serialization.py | 180 | # then we can just pass the value through as is | COMMENT |
| LOW | skyvern/services/script_service.py | 3938 | # Invariant: loop_output_values was just set to [] above (step 5 setup). | COMMENT |
| MEDIUM | skyvern/services/browser_recording/service.py | 252 | # Base64, but Python's standard decoder is usually robust enough to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/unit/test_script_skyvern_page.py | 1149 | assert "654321" not in script_page._ai.ai_input_text.await_args.kwargs.values() | CODE |
| CRITICAL | tests/unit/test_script_skyvern_page.py | 1543 | assert "654321" not in script_page._ai.ai_input_text.await_args.kwargs.values() | CODE |
| CRITICAL | tests/unit/test_real_azure.py | 5 | from azure.core.exceptions import HttpResponseError, ResourceExistsError, ResourceNotFoundError | CODE |
| CRITICAL⚡ | tests/unit/webeye/test_main_world_eval.py | 99 | page.context.new_cdp_session.return_value.detach.assert_awaited_once() | CODE |
| CRITICAL | skyvern/forge/sdk/api/real_azure.py | 8 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skyvern-ts/client/src/library/SkyvernBrowserPage.ts | 142 | // If the original selector doesn't work, try to click the element with the AI generated selector | COMMENT |
| HIGH | evaluation/results/webvoyager-Allrecipes.md | 36 | | 33 | Allrecipes--33 | completed | Find a recipe for a low-carb breakfast on Allrecipes with at least 25 rev | CODE |
| HIGH | skyvern/core/script_generations/script_skyvern_page.py | 1184 | # AI-generated cached scripts still get LLM verification. | COMMENT |
| HIGH | skyvern/forge/sdk/workflow/models/block.py | 15320 | # v3 is honored as requested); bare tasks with a verification URL are rerouted. Block-run | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/unit/test_copilot_streaming_adapter.py | 358 | CODE | |
| MEDIUM | tests/unit/test_agent_protocol_idempotency.py | 392 | CODE | |
| MEDIUM | tests/unit/test_copilot_candidate_navigation_guard.py | 410 | CODE | |
| MEDIUM | tests/unit/test_copilot_mcp_adapter.py | 560 | CODE | |
| MEDIUM | tests/unit/test_copilot_mcp_adapter.py | 786 | CODE | |
| MEDIUM | tests/unit/test_copilot_mcp_adapter.py | 839 | CODE | |
| MEDIUM | tests/unit/test_copilot_mcp_adapter.py | 1333 | CODE | |
| MEDIUM | tests/unit/test_copilot_mcp_adapter.py | 1357 | CODE | |
| MEDIUM | skyvern/forge/agent_functions.py | 2443 | CODE | |
| MEDIUM | skyvern/forge/sdk/routes/scripts.py | 724 | CODE | |
| MEDIUM | skyvern/services/script_service.py | 1790 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …unit/test_copilot_code_artifact_metadata_violations.py | 480 | def helper(): | CODE |
| LOW⚡ | …unit/test_copilot_code_artifact_metadata_violations.py | 489 | def helper(): | CODE |
| LOW | …unit/test_copilot_code_artifact_metadata_violations.py | 401 | def helper(): | CODE |
| LOW⚡ | tests/unit/test_copilot_code_block_synthesis.py | 2069 | "async def helper():\n" | STRING |
| LOW⚡ | tests/unit/test_copilot_code_block_synthesis.py | 2081 | "async def helper():\n" | STRING |
| LOW⚡ | tests/unit/test_copilot_code_block_synthesis.py | 2152 | "async def helper():\n" | STRING |
| LOW⚡ | tests/unit/test_copilot_code_block_synthesis.py | 2164 | "async def helper():\n" | STRING |
| LOW | tests/unit/test_uploaded_file_retention.py | 463 | async def execute_task(**kwargs: object) -> None: | CODE |
| LOW⚡ | tests/unit/test_task_v2_compute_task.py | 276 | nested = "def helper():\n return {'output': 1}\nanswer = helper()\n" | CODE |
| LOW⚡ | skyvern/webeye/actions/handler.py | 1930 | async def helper(element_dict: dict, frame: Page | Frame) -> bool: | CODE |
| LOW | skyvern/webeye/actions/handler.py | 1899 | async def helper(element_dict: dict, frame: Page | Frame) -> bool: | CODE |
| LOW | skyvern/library/skyvern.py | 312 | async def run_task( | CODE |
| LOW | skyvern/library/skyvern_browser_page_agent.py | 42 | async def run_task( | CODE |
| LOW | skyvern/cli/commands/browser.py | 1688 | def run_task( | CODE |
| LOW | skyvern/forge/sdk/api/aws.py | 600 | async def run_task( | CODE |
| LOW | skyvern/forge/sdk/executor/background_task_executor.py | 66 | async def execute_task( | CODE |
| LOW | skyvern/forge/sdk/executor/async_executor.py | 11 | async def execute_task( | CODE |
| LOW | skyvern/forge/sdk/routes/agent_protocol.py | 304 | async def run_task( | CODE |
| LOW | skyvern/client/client.py | 164 | def run_task( | CODE |
| LOW | skyvern/client/client.py | 3979 | async def run_task( | CODE |
| LOW | skyvern/client/raw_client.py | 90 | def run_task( | CODE |
| LOW | skyvern/client/raw_client.py | 5695 | async def run_task( | CODE |
| LOW | skyvern/services/task_v1_service.py | 111 | async def run_task( | CODE |
| LOW | skyvern/services/script_service.py | 2056 | async def run_task( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker-compose.yml | 139 | # If you are looking to integrate Skyvern with a password manager (eg Bitwarden), you can use the following environm | COMMENT |
| MEDIUM | docker-compose.yml | 148 | # If you are looking to integrate Skyvern with 1Password, you can use the following environment variables. | COMMENT |
| MEDIUM | docker-compose.yml | 210 | # - 127.0.0.1:11002:80 # you can replace the 11002 with your preferred port | COMMENT |
| MEDIUM | tests/unit/test_actions.py | 936 | "I cannot provide an action. The `actions` array will be empty.", | CODE |
| LOW | skyvern/forge/sdk/core/aiohttp_helper.py | 326 | # TODO: make sure to test this out | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skyvern/core/script_generations/script_skyvern_page.py | 1137 | # TODO: add validation here. if it doesn't pass the validation criteria: | COMMENT |
| LOW | skyvern/webeye/cdp_download_interceptor.py | 991 | # TODO: implement proper filename dedup (e.g., content hash or UUID suffix) | COMMENT |
| LOW | skyvern/forge/agent_functions.py | 621 | # TODO: implement a fallback solution for "too large" case, maybe convert by screenshot | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/test-install.sh | 4 | # Usage: | COMMENT |