From abe41644fd5197f6d1fc3daa4bdad195326ad7ef Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 29 Apr 2026 17:46:12 -0700 Subject: [PATCH 1/5] docs: smoke-test Visibility wrappers for .md export links Wraps one Card and one inline link in on index.mdx with .md-suffixed hrefs in the agent variant. Goal is to verify on a preview deploy that the markdown export at /index.md only contains the .md-suffixed copy and the rendered HTML at / only contains the bare-path copy. If this works, we can build a preprocessor that emits these wrapper pairs across the docs so relative links in the .md export point to other .md pages instead of HTML pages. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/index.mdx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/docs/src/index.mdx b/docs/src/index.mdx index d2125d32f..1d1c624d8 100644 --- a/docs/src/index.mdx +++ b/docs/src/index.mdx @@ -51,16 +51,23 @@ The shortest path to a working Notte integration is to create a cloud browser se -For the API surface, see [API Reference](/api-reference/authentication); for the SDK entrypoint, see [SDK Reference](/sdk-reference/manual/index). +For the API surface, see [API Reference](/api-reference/authentication)[API Reference](/api-reference/authentication.md); for the SDK entrypoint, see [SDK Reference](/sdk-reference/manual/index). ## Platform The building blocks for your web agents and automations. - - Remote browser infrastructure. Fast, scalable browsers with anti-detection, proxies, and captcha solving. - + + + Remote browser infrastructure. Fast, scalable browsers with anti-detection, proxies, and captcha solving. + + + + + Remote browser infrastructure. Fast, scalable browsers with anti-detection, proxies, and captcha solving. + + AI web agents & automation framework. Build agents that browse, understand, and complete tasks autonomously. From 1ae89fee95590a487790d753fd3c4d3d23d84c81 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 29 Apr 2026 18:06:01 -0700 Subject: [PATCH 2/5] docs: wrap internal links with Visibility pairs for .md export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds docs/src/scripts/wrap_md_links.py and runs it across hand-authored MDX. Inline markdown links and hrefs that point to internal pages now get a / pair — the agent variant uses an .md-suffixed href so the markdown export at /.md emits links that themselves point to other .md exports instead of the HTML pages. Scope: hand-authored MDX only. sdk-reference/ (sphinx_mintlify-generated) and snippets/ (sniptest-generated) are excluded from this run; they'll get the same treatment via their respective generators in a follow-up. The script is idempotent (skips already-wrapped links) and supports --dry-run and --path for spot checks. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/changelog.mdx | 12 +- docs/src/concepts/agents.mdx | 123 ++++++--- docs/src/concepts/bua.mdx | 2 +- docs/src/concepts/file-storage.mdx | 58 ++-- docs/src/concepts/functions.mdx | 58 ++-- docs/src/concepts/personas.mdx | 2 +- docs/src/concepts/scraping.mdx | 58 ++-- docs/src/concepts/sessions.mdx | 132 +++++++--- docs/src/concepts/vaults.mdx | 2 +- docs/src/features/agents/configuration.mdx | 64 +++-- docs/src/features/agents/fallback.mdx | 58 ++-- docs/src/features/agents/lifecycle.mdx | 45 +++- docs/src/features/agents/replay.mdx | 58 ++-- .../src/features/agents/structured-output.mdx | 58 ++-- docs/src/features/agents/workflows.mdx | 58 ++-- docs/src/features/functions/creating.mdx | 58 ++-- docs/src/features/functions/invocations.mdx | 58 ++-- docs/src/features/functions/management.mdx | 58 ++-- docs/src/features/functions/schedules.mdx | 43 ++- .../features/sessions/browser-controls.mdx | 64 +++-- .../features/sessions/browser-profiles.mdx | 58 ++-- docs/src/features/sessions/browser-types.mdx | 58 ++-- .../src/features/sessions/captcha-solving.mdx | 58 ++-- .../sessions/cloudflare-web-bot-auth.mdx | 60 +++-- docs/src/features/sessions/configuration.mdx | 66 +++-- docs/src/features/sessions/cookies.mdx | 58 ++-- .../features/sessions/external-providers.mdx | 60 +++-- docs/src/features/sessions/lifecycle.mdx | 58 ++-- docs/src/features/sessions/live-view.mdx | 58 ++-- .../features/sessions/playwright-vs-notte.mdx | 58 ++-- docs/src/features/sessions/playwright.mdx | 58 ++-- docs/src/features/sessions/puppeteer.mdx | 58 ++-- docs/src/features/sessions/recordings.mdx | 58 ++-- docs/src/features/sessions/selenium.mdx | 58 ++-- docs/src/features/sessions/stealth-mode.mdx | 58 ++-- docs/src/guides/scraping.mdx | 2 +- docs/src/index.mdx | 132 +++++++--- docs/src/integrations/massive.mdx | 2 +- docs/src/integrations/mcp.mdx | 2 +- docs/src/integrations/stagehand.mdx | 68 +++-- docs/src/pricing.mdx | 13 +- docs/src/product/anything-api.mdx | 2 +- docs/src/quickstart.mdx | 39 ++- docs/src/rate-limits.mdx | 10 +- docs/src/scripts/wrap_md_links.py | 249 ++++++++++++++++++ 45 files changed, 1888 insertions(+), 582 deletions(-) create mode 100644 docs/src/scripts/wrap_md_links.py diff --git a/docs/src/changelog.mdx b/docs/src/changelog.mdx index d26ffa0a0..2a9339488 100644 --- a/docs/src/changelog.mdx +++ b/docs/src/changelog.mdx @@ -90,7 +90,7 @@ description: Updates and improvements to Notte - Restructured navigation and content - Comprehensive SDK reference and guides - - [AI tools compatibility](/guides/vibe-coding) for vibe coding + - [AI tools compatibility](/guides/vibe-coding)[AI tools compatibility](/guides/vibe-coding.md) for vibe coding @@ -104,11 +104,11 @@ description: Updates and improvements to Notte We wrapped Launch Week I with five major releases: - - **[Agent Identities](/concepts/personas)** - Manage personas for your agents - - **[Automation Studio](/product/studio)** - Visual automation builder - - **[Agent Mode](/product/agent-mode)** - AI-powered browser automation - - **[Demonstrate Mode](/product/demonstrate-mode)** - Record and replay workflows - - **[Deployed Functions](/concepts/functions)** - Serverless function execution + - **[Agent Identities](/concepts/personas)[Agent Identities](/concepts/personas.md)** - Manage personas for your agents + - **[Automation Studio](/product/studio)[Automation Studio](/product/studio.md)** - Visual automation builder + - **[Agent Mode](/product/agent-mode)[Agent Mode](/product/agent-mode.md)** - AI-powered browser automation + - **[Demonstrate Mode](/product/demonstrate-mode)[Demonstrate Mode](/product/demonstrate-mode.md)** - Record and replay workflows + - **[Deployed Functions](/concepts/functions)[Deployed Functions](/concepts/functions.md)** - Serverless function execution Read the full recap: https://www.notte.cc/launch-week-i diff --git a/docs/src/concepts/agents.mdx b/docs/src/concepts/agents.mdx index 7997a18ff..2a97071db 100644 --- a/docs/src/concepts/agents.mdx +++ b/docs/src/concepts/agents.mdx @@ -29,7 +29,7 @@ Create and run an agent in a few lines: - Agents run within [browser sessions](/concepts/sessions). Use context managers to ensure sessions are automatically stopped when done. This prevents orphaned sessions and unexpected costs. + Agents run within [browser sessions](/concepts/sessions)[browser sessions](/concepts/sessions.md). Use context managers to ensure sessions are automatically stopped when done. This prevents orphaned sessions and unexpected costs. ## How Agents Work @@ -68,7 +68,7 @@ This cycle repeats until: ## Agents vs Scripted Automation -Both agents and scripted automation run on [browser sessions](/concepts/sessions)—the cloud browser infrastructure. The difference is how you control what happens in that session. +Both agents and scripted automation run on [browser sessions](/concepts/sessions)[browser sessions](/concepts/sessions.md)—the cloud browser infrastructure. The difference is how you control what happens in that session. | Aspect | Scripted Automation | Agent | |--------|---------------------|-------| @@ -90,7 +90,7 @@ Both agents and scripted automation run on [browser sessions](/concepts/sessions - You need intelligent decision-making - You can combine both approaches: use an agent to figure out a workflow, then [convert it to a function](/features/agents/workflows) for faster, cheaper repeated execution. + You can combine both approaches: use an agent to figure out a workflow, then [convert it to a function](/features/agents/workflows)[convert it to a function](/features/agents/workflows.md) for faster, cheaper repeated execution. ## Agent Capabilities @@ -98,21 +98,56 @@ Both agents and scripted automation run on [browser sessions](/concepts/sessions Agents come with powerful built-in capabilities: - - Get type-safe responses using Pydantic models - - - Use credentials and identities in automations - - - Analyze images and visual page elements - - - Debug with MP4 replays of agent execution - - - Automatic recovery from script failures - + + + Get type-safe responses using Pydantic models + + + + + Get type-safe responses using Pydantic models + + + + + Use credentials and identities in automations + + + + + Use credentials and identities in automations + + + + + Analyze images and visual page elements + + + + + Analyze images and visual page elements + + + + + Debug with MP4 replays of agent execution + + + + + Debug with MP4 replays of agent execution + + + + + Automatic recovery from script failures + + + + + Automatic recovery from script failures + + ## Key Concepts @@ -150,16 +185,44 @@ Agents can fail for various reasons. Always check the result: ## Next Steps - - Create, manage, and stop agents - - - All configuration options - - - Get typed responses from agents - - - Turn agent runs into reusable code - + + + Create, manage, and stop agents + + + + + Create, manage, and stop agents + + + + + All configuration options + + + + + All configuration options + + + + + Get typed responses from agents + + + + + Get typed responses from agents + + + + + Turn agent runs into reusable code + + + + + Turn agent runs into reusable code + + diff --git a/docs/src/concepts/bua.mdx b/docs/src/concepts/bua.mdx index 4930217db..89fff0eed 100644 --- a/docs/src/concepts/bua.mdx +++ b/docs/src/concepts/bua.mdx @@ -19,7 +19,7 @@ BUA is available through the `bua/completions` endpoint. Input-wise, on top of the traditional CUA Screenshot + Prompt approach, BUA also leverages the DOM of the page for improved understanding and reasoning of web pages. This is explained in the figure below. -![BUA Explained](/images/bua.png) +![BUA Explained](/images/bua.png)[BUA Explained](/images/bua.png.md) diff --git a/docs/src/concepts/file-storage.mdx b/docs/src/concepts/file-storage.mdx index d8f19dbe2..43d7de6d9 100644 --- a/docs/src/concepts/file-storage.mdx +++ b/docs/src/concepts/file-storage.mdx @@ -128,19 +128,47 @@ Always check for downloaded files after the session ends: ## Next Steps - - Use agents with file operations - - - - Learn about browser sessions - - - - Store credentials securely - - - - Create browser identities - + + + Use agents with file operations + + + + + Use agents with file operations + + + + + + Learn about browser sessions + + + + + Learn about browser sessions + + + + + + Store credentials securely + + + + + Store credentials securely + + + + + + Create browser identities + + + + + Create browser identities + + diff --git a/docs/src/concepts/functions.mdx b/docs/src/concepts/functions.mdx index 9a4779f43..20f097bcb 100644 --- a/docs/src/concepts/functions.mdx +++ b/docs/src/concepts/functions.mdx @@ -230,19 +230,47 @@ Log important steps for debugging: ## Next Steps - - Learn how to write and deploy Functions - - - - Call Functions via API, SDK, or cURL - - - - Schedule Functions with cron - - - - Update, version, and monitor Functions - + + + Learn how to write and deploy Functions + + + + + Learn how to write and deploy Functions + + + + + + Call Functions via API, SDK, or cURL + + + + + Call Functions via API, SDK, or cURL + + + + + + Schedule Functions with cron + + + + + Schedule Functions with cron + + + + + + Update, version, and monitor Functions + + + + + Update, version, and monitor Functions + + diff --git a/docs/src/concepts/personas.mdx b/docs/src/concepts/personas.mdx index 97d82a010..f571f5fe7 100644 --- a/docs/src/concepts/personas.mdx +++ b/docs/src/concepts/personas.mdx @@ -39,7 +39,7 @@ Notte Personas provide automated identity management for AI agents, enabling the ## How it works -![persona-workflow](/images/persona-workflow.png) +![persona-workflow](/images/persona-workflow.png)[persona-workflow](/images/persona-workflow.png.md) Personas act as complete digital identities that your AI agents can assume during execution. When an agent needs to create an account or authenticate with a service, it uses the persona's credentials and communication channels to complete the entire flow autonomously. diff --git a/docs/src/concepts/scraping.mdx b/docs/src/concepts/scraping.mdx index b970df3fd..4702a21d5 100644 --- a/docs/src/concepts/scraping.mdx +++ b/docs/src/concepts/scraping.mdx @@ -179,19 +179,47 @@ Use selectors to focus on relevant content: ## Next Steps - - Learn about session management - - - - Use AI agents for complex scraping - - - - Store credentials for authenticated scraping - - - - Deploy scraping as serverless functions - + + + Learn about session management + + + + + Learn about session management + + + + + + Use AI agents for complex scraping + + + + + Use AI agents for complex scraping + + + + + + Store credentials for authenticated scraping + + + + + Store credentials for authenticated scraping + + + + + + Deploy scraping as serverless functions + + + + + Deploy scraping as serverless functions + + diff --git a/docs/src/concepts/sessions.mdx b/docs/src/concepts/sessions.mdx index 5163f7c09..aa08da254 100644 --- a/docs/src/concepts/sessions.mdx +++ b/docs/src/concepts/sessions.mdx @@ -17,7 +17,7 @@ Create a session and start automating: - We strongly recommend using the `with` statement (context manager) to ensure sessions are automatically stopped when done. This prevents orphaned sessions and unexpected costs. See [Session Lifecycle](/features/sessions/lifecycle) for manual management options. + We strongly recommend using the `with` statement (context manager) to ensure sessions are automatically stopped when done. This prevents orphaned sessions and unexpected costs. See [Session Lifecycle](/features/sessions/lifecycle)[Session Lifecycle](/features/sessions/lifecycle.md) for manual management options. ## Core Operations @@ -37,39 +37,109 @@ Sessions provide three methods for interacting with the browser: Sessions come with powerful built-in capabilities: - - Route traffic through residential proxies for geo-targeting - - - Automatically solve reCAPTCHA and hCaptcha - - - Evade bot detection with fingerprint randomization - - - Record sessions for debugging and replay - - - Watch sessions execute in real-time - - - Persist browser state across sessions - + + + Route traffic through residential proxies for geo-targeting + + + + + Route traffic through residential proxies for geo-targeting + + + + + Automatically solve reCAPTCHA and hCaptcha + + + + + Automatically solve reCAPTCHA and hCaptcha + + + + + Evade bot detection with fingerprint randomization + + + + + Evade bot detection with fingerprint randomization + + + + + Record sessions for debugging and replay + + + + + Record sessions for debugging and replay + + + + + Watch sessions execute in real-time + + + + + Watch sessions execute in real-time + + + + + Persist browser state across sessions + + + + + Persist browser state across sessions + + ## Next Steps - - Create, manage, and stop sessions - - - All configuration options - - - Complete action reference - - - Use Playwright via CDP - + + + Create, manage, and stop sessions + + + + + Create, manage, and stop sessions + + + + + All configuration options + + + + + All configuration options + + + + + Complete action reference + + + + + Complete action reference + + + + + Use Playwright via CDP + + + + + Use Playwright via CDP + + diff --git a/docs/src/concepts/vaults.mdx b/docs/src/concepts/vaults.mdx index c2ca1a041..e4f10fa1a 100644 --- a/docs/src/concepts/vaults.mdx +++ b/docs/src/concepts/vaults.mdx @@ -22,7 +22,7 @@ Your credentials are protected with multiple layers of security: ## How it works -![vault-fill-action](/images/vault-fill-action.png) +![vault-fill-action](/images/vault-fill-action.png)[vault-fill-action](/images/vault-fill-action.png.md) The Vault acts as an intermediary between the LLM agent and the browser session. Some actions like `FillActions` may contain secure information such as passwords, credit card numbers, MFA secrets, etc. diff --git a/docs/src/features/agents/configuration.mdx b/docs/src/features/agents/configuration.mdx index 260681819..a1ee6449a 100644 --- a/docs/src/features/agents/configuration.mdx +++ b/docs/src/features/agents/configuration.mdx @@ -70,7 +70,7 @@ Parameters set when creating the agent instance. ### vault - Optional vault instance containing credentials the agent can use for authentication. See [Vaults](/concepts/vaults) for details. + Optional vault instance containing credentials the agent can use for authentication. See [Vaults](/concepts/vaults)[Vaults](/concepts/vaults.md) for details. @@ -78,7 +78,7 @@ Parameters set when creating the agent instance. ### persona - Optional persona providing the agent with phone numbers, email addresses, and other identity information. See [Personas](/concepts/personas) for details. + Optional persona providing the agent with phone numbers, email addresses, and other identity information. See [Personas](/concepts/personas)[Personas](/concepts/personas.md) for details. @@ -114,7 +114,7 @@ Parameters provided when running the agent. ### response_format - Optional Pydantic model defining the structure of the agent's response. Use this to get type-safe, structured output. See [Structured Output](/features/agents/structured-output) for details. + Optional Pydantic model defining the structure of the agent's response. Use this to get type-safe, structured output. See [Structured Output](/features/agents/structured-output)[Structured Output](/features/agents/structured-output.md) for details. @@ -178,19 +178,47 @@ Start agents at the right page: ## Next Steps - - Learn about agent execution modes - - - - Debug agents with visual replays - - - - Get typed responses from agents - - - - Store credentials for agent use - + + + Learn about agent execution modes + + + + + Learn about agent execution modes + + + + + + Debug agents with visual replays + + + + + Debug agents with visual replays + + + + + + Get typed responses from agents + + + + + Get typed responses from agents + + + + + + Store credentials for agent use + + + + + Store credentials for agent use + + diff --git a/docs/src/features/agents/fallback.mdx b/docs/src/features/agents/fallback.mdx index ce7850c3b..ee2bfe68b 100644 --- a/docs/src/features/agents/fallback.mdx +++ b/docs/src/features/agents/fallback.mdx @@ -194,19 +194,47 @@ Handle failures gracefully: ## Next Steps - - Understand agent execution modes - - - - Configure agent parameters - - - - Learn about session actions - - - - Build reliable automations - + + + Understand agent execution modes + + + + + Understand agent execution modes + + + + + + Configure agent parameters + + + + + Configure agent parameters + + + + + + Learn about session actions + + + + + Learn about session actions + + + + + + Build reliable automations + + + + + Build reliable automations + + diff --git a/docs/src/features/agents/lifecycle.mdx b/docs/src/features/agents/lifecycle.mdx index a5ba576aa..d204f4ed4 100644 --- a/docs/src/features/agents/lifecycle.mdx +++ b/docs/src/features/agents/lifecycle.mdx @@ -183,7 +183,7 @@ Use `AgentFallback` for automatic error recovery: -See [Agent Fallback](/features/agents/fallback) for details. +See [Agent Fallback](/features/agents/fallback)[Agent Fallback](/features/agents/fallback.md) for details. ## Best Practices @@ -206,15 +206,36 @@ See [Agent Fallback](/features/agents/fallback) for details. ## Next Steps - - Configure agent parameters - - - - Automatic error recovery - - - - Debug with visual replays - + + + Configure agent parameters + + + + + Configure agent parameters + + + + + + Automatic error recovery + + + + + Automatic error recovery + + + + + + Debug with visual replays + + + + + Debug with visual replays + + diff --git a/docs/src/features/agents/replay.mdx b/docs/src/features/agents/replay.mdx index 3d339c6ef..67c30b6e1 100644 --- a/docs/src/features/agents/replay.mdx +++ b/docs/src/features/agents/replay.mdx @@ -200,19 +200,47 @@ Replays are currently: ## Next Steps - - Understand agent execution - - - - Optimize agent settings - - - - Build reliable agents - - - - Watch sessions in real-time - + + + Understand agent execution + + + + + Understand agent execution + + + + + + Optimize agent settings + + + + + Optimize agent settings + + + + + + Build reliable agents + + + + + Build reliable agents + + + + + + Watch sessions in real-time + + + + + Watch sessions in real-time + + diff --git a/docs/src/features/agents/structured-output.mdx b/docs/src/features/agents/structured-output.mdx index 5c867ac59..3342edb5c 100644 --- a/docs/src/features/agents/structured-output.mdx +++ b/docs/src/features/agents/structured-output.mdx @@ -152,19 +152,47 @@ Very complex nested structures may be challenging: ## Next Steps - - Configure agent parameters - - - - Understand agent execution modes - - - - Alternative data extraction methods - - - - Data extraction best practices - + + + Configure agent parameters + + + + + Configure agent parameters + + + + + + Understand agent execution modes + + + + + Understand agent execution modes + + + + + + Alternative data extraction methods + + + + + Alternative data extraction methods + + + + + + Data extraction best practices + + + + + Data extraction best practices + + diff --git a/docs/src/features/agents/workflows.mdx b/docs/src/features/agents/workflows.mdx index 6ec1cbc8c..e9c65dd41 100644 --- a/docs/src/features/agents/workflows.mdx +++ b/docs/src/features/agents/workflows.mdx @@ -173,19 +173,47 @@ When pages change or tasks become complex, revert to agents. ## Next Steps - - Deploy automations as serverless APIs - - - - Available session actions - - - - Optimize agent runs - - - - Deploy and manage serverless functions - + + + Deploy automations as serverless APIs + + + + + Deploy automations as serverless APIs + + + + + + Available session actions + + + + + Available session actions + + + + + + Optimize agent runs + + + + + Optimize agent runs + + + + + + Deploy and manage serverless functions + + + + + Deploy and manage serverless functions + + diff --git a/docs/src/features/functions/creating.mdx b/docs/src/features/functions/creating.mdx index 0059d2d01..390be07d0 100644 --- a/docs/src/features/functions/creating.mdx +++ b/docs/src/features/functions/creating.mdx @@ -200,19 +200,47 @@ Check parameters before processing: ## Next Steps - - Learn how to call your Functions - - - - Schedule Functions to run automatically - - - - Update and manage Functions - - - - Back to Functions overview - + + + Learn how to call your Functions + + + + + Learn how to call your Functions + + + + + + Schedule Functions to run automatically + + + + + Schedule Functions to run automatically + + + + + + Update and manage Functions + + + + + Update and manage Functions + + + + + + Back to Functions overview + + + + + Back to Functions overview + + diff --git a/docs/src/features/functions/invocations.mdx b/docs/src/features/functions/invocations.mdx index 948155698..8939b329f 100644 --- a/docs/src/features/functions/invocations.mdx +++ b/docs/src/features/functions/invocations.mdx @@ -226,19 +226,47 @@ Functions have rate limits based on your plan: ## Next Steps - - Schedule Functions automatically - - - - Update and monitor Functions - - - - Learn to write Functions - - - - Full API documentation - + + + Schedule Functions automatically + + + + + Schedule Functions automatically + + + + + + Update and monitor Functions + + + + + Update and monitor Functions + + + + + + Learn to write Functions + + + + + Learn to write Functions + + + + + + Full API documentation + + + + + Full API documentation + + diff --git a/docs/src/features/functions/management.mdx b/docs/src/features/functions/management.mdx index b45cb19c7..1500a1c18 100644 --- a/docs/src/features/functions/management.mdx +++ b/docs/src/features/functions/management.mdx @@ -273,19 +273,47 @@ Analyze failure patterns: ## Next Steps - - Learn how to write Functions - - - - Call Functions via API or SDK - - - - Schedule Functions with cron - - - - Back to Functions overview - + + + Learn how to write Functions + + + + + Learn how to write Functions + + + + + + Call Functions via API or SDK + + + + + Call Functions via API or SDK + + + + + + Schedule Functions with cron + + + + + Schedule Functions with cron + + + + + + Back to Functions overview + + + + + Back to Functions overview + + diff --git a/docs/src/features/functions/schedules.mdx b/docs/src/features/functions/schedules.mdx index 27d57c75e..9debb9331 100644 --- a/docs/src/features/functions/schedules.mdx +++ b/docs/src/features/functions/schedules.mdx @@ -319,17 +319,38 @@ Or handle timezone in function: ## Next Steps - - Learn how to invoke Functions manually - - - - Update and monitor Functions - - - - Write schedulable Functions - + + + Learn how to invoke Functions manually + + + + + Learn how to invoke Functions manually + + + + + + Update and monitor Functions + + + + + Update and monitor Functions + + + + + + Write schedulable Functions + + + + + Write schedulable Functions + + Configure schedules in Console diff --git a/docs/src/features/sessions/browser-controls.mdx b/docs/src/features/sessions/browser-controls.mdx index b587d7777..f17dbfd1d 100644 --- a/docs/src/features/sessions/browser-controls.mdx +++ b/docs/src/features/sessions/browser-controls.mdx @@ -290,7 +290,7 @@ Extract data from the current page. **Use for:** Data extraction, web scraping, content analysis -See [Scraping](/concepts/scraping) for detailed documentation. +See [Scraping](/concepts/scraping)[Scraping](/concepts/scraping.md) for detailed documentation. --- @@ -307,7 +307,7 @@ Read SMS messages from a persona's phone number. **Use for:** Reading 2FA codes, SMS verification, phone-based authentication -See [Personas](/concepts/personas) for details. +See [Personas](/concepts/personas)[Personas](/concepts/personas.md) for details. --- @@ -322,7 +322,7 @@ Read emails from a persona's email address. **Use for:** Reading verification emails, email-based authentication -See [Personas](/concepts/personas) for details. +See [Personas](/concepts/personas)[Personas](/concepts/personas.md) for details. --- @@ -391,19 +391,47 @@ Use direct attribute parameters when available: ## Next Steps - - Configure session behavior - - - - Manage session states - - - - Detailed API documentation - - - - Let AI handle actions automatically - + + + Configure session behavior + + + + + Configure session behavior + + + + + + Manage session states + + + + + Manage session states + + + + + + Detailed API documentation + + + + + Detailed API documentation + + + + + + Let AI handle actions automatically + + + + + Let AI handle actions automatically + + diff --git a/docs/src/features/sessions/browser-profiles.mdx b/docs/src/features/sessions/browser-profiles.mdx index 3ce8b6e5a..02b30beda 100644 --- a/docs/src/features/sessions/browser-profiles.mdx +++ b/docs/src/features/sessions/browser-profiles.mdx @@ -148,19 +148,47 @@ Use profiles when you need complete browser state preservation. Use cookies when ## Next Steps - - Manage session lifecycle - - - - Manual cookie management - - - - Secure credential storage - - - - All session options - + + + Manage session lifecycle + + + + + Manage session lifecycle + + + + + + Manual cookie management + + + + + Manual cookie management + + + + + + Secure credential storage + + + + + Secure credential storage + + + + + + All session options + + + + + All session options + + diff --git a/docs/src/features/sessions/browser-types.mdx b/docs/src/features/sessions/browser-types.mdx index add089085..ce1ae9cdc 100644 --- a/docs/src/features/sessions/browser-types.mdx +++ b/docs/src/features/sessions/browser-types.mdx @@ -65,19 +65,47 @@ Google Chrome with additional Google-specific features and branding. ## Next Steps - - Configure anti-detection features - - - - Automatically solve captchas - - - - All session configuration options - - - - Use persistent browser profiles - + + + Configure anti-detection features + + + + + Configure anti-detection features + + + + + + Automatically solve captchas + + + + + Automatically solve captchas + + + + + + All session configuration options + + + + + All session configuration options + + + + + + Use persistent browser profiles + + + + + Use persistent browser profiles + + diff --git a/docs/src/features/sessions/captcha-solving.mdx b/docs/src/features/sessions/captcha-solving.mdx index 02bbf69e4..c5520f878 100644 --- a/docs/src/features/sessions/captcha-solving.mdx +++ b/docs/src/features/sessions/captcha-solving.mdx @@ -193,19 +193,47 @@ CAPTCHA solving incurs additional costs based on the number of captchas solved. ## Next Steps - - Learn about Chrome and other browsers - - - - Combine with anti-detection features - - - - Use proxies with captcha solving - - - - Watch captcha solving in real-time - + + + Learn about Chrome and other browsers + + + + + Learn about Chrome and other browsers + + + + + + Combine with anti-detection features + + + + + Combine with anti-detection features + + + + + + Use proxies with captcha solving + + + + + Use proxies with captcha solving + + + + + + Watch captcha solving in real-time + + + + + Watch captcha solving in real-time + + diff --git a/docs/src/features/sessions/cloudflare-web-bot-auth.mdx b/docs/src/features/sessions/cloudflare-web-bot-auth.mdx index e930ab087..c9e292cbb 100644 --- a/docs/src/features/sessions/cloudflare-web-bot-auth.mdx +++ b/docs/src/features/sessions/cloudflare-web-bot-auth.mdx @@ -54,7 +54,7 @@ The [webbotauth.io/test](https://webbotauth.io/test) page is a handy diagnostic - **Data pipelines** — collect data from protected endpoints without manual intervention - Web bot auth proves your identity cryptographically, which is fundamentally different from [stealth mode](/features/sessions/stealth-mode) (which hides your identity) or [proxies](/features/sessions/proxies) (which mask your IP). These approaches are complementary — combining them gives you the broadest coverage. + Web bot auth proves your identity cryptographically, which is fundamentally different from [stealth mode](/features/sessions/stealth-mode)[stealth mode](/features/sessions/stealth-mode.md) (which hides your identity) or [proxies](/features/sessions/proxies)[proxies](/features/sessions/proxies.md) (which mask your IP). These approaches are complementary — combining them gives you the broadest coverage. ## Limitations @@ -73,19 +73,47 @@ The [webbotauth.io/test](https://webbotauth.io/test) page is a handy diagnostic ## Next Steps - - Combine with anti-detection features - - - - Route traffic through residential proxies - - - - Automatically solve captchas - - - - Explore all session options - + + + Combine with anti-detection features + + + + + Combine with anti-detection features + + + + + + Route traffic through residential proxies + + + + + Route traffic through residential proxies + + + + + + Automatically solve captchas + + + + + Automatically solve captchas + + + + + + Explore all session options + + + + + Explore all session options + + diff --git a/docs/src/features/sessions/configuration.mdx b/docs/src/features/sessions/configuration.mdx index f67c21ab5..ab71568d7 100644 --- a/docs/src/features/sessions/configuration.mdx +++ b/docs/src/features/sessions/configuration.mdx @@ -122,7 +122,7 @@ Route sessions through residential proxies for geo-targeting and enhanced stealt - See the [Proxies Guide](/features/sessions/proxies) for country-specific proxies, custom proxies, and troubleshooting. + See the [Proxies Guide](/features/sessions/proxies)[Proxies Guide](/features/sessions/proxies.md) for country-specific proxies, custom proxies, and troubleshooting. ## Captcha Solving @@ -132,7 +132,7 @@ Automatically detect and solve captchas during automation: - See the [Captcha Solving](/features/sessions/captcha-solving) guide for more details. + See the [Captcha Solving](/features/sessions/captcha-solving)[Captcha Solving](/features/sessions/captcha-solving.md) guide for more details. ## Session Timeout @@ -156,7 +156,7 @@ Automatically load and save cookies across sessions using the `cookie_file` para - See the [Cookies Guide](/features/sessions/cookies) for manual cookie management and best practices. + See the [Cookies Guide](/features/sessions/cookies)[Cookies Guide](/features/sessions/cookies.md) for manual cookie management and best practices. ## External Providers (CDP) @@ -166,25 +166,53 @@ Use Notte with external browser providers like Kernel.sh: - See the [Kernel.sh Integration](/integrations/kernel) guide for complete setup instructions. + See the [Kernel.sh Integration](/integrations/kernel)[Kernel.sh Integration](/integrations/kernel.md) guide for complete setup instructions. ## Next Steps - - Watch recorded sessions and debug issues - - - - Configure proxies and anti-detection features - - - - Watch sessions in real-time - - - - Persist authentication across sessions - + + + Watch recorded sessions and debug issues + + + + + Watch recorded sessions and debug issues + + + + + + Configure proxies and anti-detection features + + + + + Configure proxies and anti-detection features + + + + + + Watch sessions in real-time + + + + + Watch sessions in real-time + + + + + + Persist authentication across sessions + + + + + Persist authentication across sessions + + diff --git a/docs/src/features/sessions/cookies.mdx b/docs/src/features/sessions/cookies.mdx index a14aa17b9..9f04faee6 100644 --- a/docs/src/features/sessions/cookies.mdx +++ b/docs/src/features/sessions/cookies.mdx @@ -92,19 +92,47 @@ Extract cookies programmatically: ## Next Steps - - Configure sessions with all options - - - - Persist full browser state - - - - Secure credential storage - - - - Manage session states - + + + Configure sessions with all options + + + + + Configure sessions with all options + + + + + + Persist full browser state + + + + + Persist full browser state + + + + + + Secure credential storage + + + + + Secure credential storage + + + + + + Manage session states + + + + + Manage session states + + diff --git a/docs/src/features/sessions/external-providers.mdx b/docs/src/features/sessions/external-providers.mdx index 723b13556..fdde5ccb5 100644 --- a/docs/src/features/sessions/external-providers.mdx +++ b/docs/src/features/sessions/external-providers.mdx @@ -33,7 +33,7 @@ Kernel.sh is a browser infrastructure platform optimized for AI agents. Here's h - See the [Kernel.sh Integration](/integrations/kernel) guide for complete setup instructions and examples. + See the [Kernel.sh Integration](/integrations/kernel)[Kernel.sh Integration](/integrations/kernel.md) guide for complete setup instructions and examples. ## BrowserBase Integration @@ -181,19 +181,47 @@ External providers typically charge per session or minute. Monitor usage: ## Next Steps - - Complete Kernel.sh integration guide - - - - Learn about session configuration options - - - - Use Playwright directly with sessions - - - - Manage session states - + + + Complete Kernel.sh integration guide + + + + + Complete Kernel.sh integration guide + + + + + + Learn about session configuration options + + + + + Learn about session configuration options + + + + + + Use Playwright directly with sessions + + + + + Use Playwright directly with sessions + + + + + + Manage session states + + + + + Manage session states + + diff --git a/docs/src/features/sessions/lifecycle.mdx b/docs/src/features/sessions/lifecycle.mdx index fcb0f3569..883ac3534 100644 --- a/docs/src/features/sessions/lifecycle.mdx +++ b/docs/src/features/sessions/lifecycle.mdx @@ -185,19 +185,47 @@ Even with context managers, handle interrupts: ## Next Steps - - Configure sessions with advanced options - - - - Record and replay session activity - - - - Watch sessions in real-time - - - - Persist authentication across sessions - + + + Configure sessions with advanced options + + + + + Configure sessions with advanced options + + + + + + Record and replay session activity + + + + + Record and replay session activity + + + + + + Watch sessions in real-time + + + + + Watch sessions in real-time + + + + + + Persist authentication across sessions + + + + + Persist authentication across sessions + + diff --git a/docs/src/features/sessions/live-view.mdx b/docs/src/features/sessions/live-view.mdx index a710ad557..bef80c101 100644 --- a/docs/src/features/sessions/live-view.mdx +++ b/docs/src/features/sessions/live-view.mdx @@ -106,19 +106,47 @@ Open multiple viewer types simultaneously: ## Next Steps - - Record sessions for later analysis - - - - Connect with Playwright via CDP - - - - Understand session management - - - - Configure session parameters - + + + Record sessions for later analysis + + + + + Record sessions for later analysis + + + + + + Connect with Playwright via CDP + + + + + Connect with Playwright via CDP + + + + + + Understand session management + + + + + Understand session management + + + + + + Configure session parameters + + + + + Configure session parameters + + diff --git a/docs/src/features/sessions/playwright-vs-notte.mdx b/docs/src/features/sessions/playwright-vs-notte.mdx index a43323fcc..36697daaf 100644 --- a/docs/src/features/sessions/playwright-vs-notte.mdx +++ b/docs/src/features/sessions/playwright-vs-notte.mdx @@ -96,19 +96,47 @@ You can combine both methods in the same session: ## Next Steps - - Learn how to use Playwright with Notte sessions - - - - Configure sessions with advanced options - - - - Explore all available Notte actions - - - - Debug with session replays - + + + Learn how to use Playwright with Notte sessions + + + + + Learn how to use Playwright with Notte sessions + + + + + + Configure sessions with advanced options + + + + + Configure sessions with advanced options + + + + + + Explore all available Notte actions + + + + + Explore all available Notte actions + + + + + + Debug with session replays + + + + + Debug with session replays + + diff --git a/docs/src/features/sessions/playwright.mdx b/docs/src/features/sessions/playwright.mdx index 490c0bbed..df2ced44e 100644 --- a/docs/src/features/sessions/playwright.mdx +++ b/docs/src/features/sessions/playwright.mdx @@ -102,19 +102,47 @@ For most automation tasks, `session.page` (which is already Playwright-compatibl ## Next Steps - - Use Puppeteer with Notte sessions - - - - Connect Notte to Kernel.sh and other providers - - - - Configure session settings and features - - - - Connect to Kernel.sh and other providers - + + + Use Puppeteer with Notte sessions + + + + + Use Puppeteer with Notte sessions + + + + + + Connect Notte to Kernel.sh and other providers + + + + + Connect Notte to Kernel.sh and other providers + + + + + + Configure session settings and features + + + + + Configure session settings and features + + + + + + Connect to Kernel.sh and other providers + + + + + Connect to Kernel.sh and other providers + + diff --git a/docs/src/features/sessions/puppeteer.mdx b/docs/src/features/sessions/puppeteer.mdx index e9098cfea..65b82b659 100644 --- a/docs/src/features/sessions/puppeteer.mdx +++ b/docs/src/features/sessions/puppeteer.mdx @@ -141,19 +141,47 @@ For Python-based automation, consider using Playwright with Notte instead, as it ## Next Steps - - Use Playwright with Notte sessions - - - - Use Selenium with Notte sessions - - - - Connect Notte to Kernel.sh and other providers - - - - Explore the Notte REST API - + + + Use Playwright with Notte sessions + + + + + Use Playwright with Notte sessions + + + + + + Use Selenium with Notte sessions + + + + + Use Selenium with Notte sessions + + + + + + Connect Notte to Kernel.sh and other providers + + + + + Connect Notte to Kernel.sh and other providers + + + + + + Explore the Notte REST API + + + + + Explore the Notte REST API + + diff --git a/docs/src/features/sessions/recordings.mdx b/docs/src/features/sessions/recordings.mdx index 13542daa2..ed6cbf024 100644 --- a/docs/src/features/sessions/recordings.mdx +++ b/docs/src/features/sessions/recordings.mdx @@ -107,19 +107,47 @@ Recordings are: ## Next Steps - - Watch sessions in real-time - - - - Understand session management - - - - Connect with Playwright via CDP - - - - Agent-specific replay features - + + + Watch sessions in real-time + + + + + Watch sessions in real-time + + + + + + Understand session management + + + + + Understand session management + + + + + + Connect with Playwright via CDP + + + + + Connect with Playwright via CDP + + + + + + Agent-specific replay features + + + + + Agent-specific replay features + + diff --git a/docs/src/features/sessions/selenium.mdx b/docs/src/features/sessions/selenium.mdx index 253a1317e..5bd999027 100644 --- a/docs/src/features/sessions/selenium.mdx +++ b/docs/src/features/sessions/selenium.mdx @@ -164,19 +164,47 @@ Wrap operations in try-except blocks: ## Next Steps - - Use Playwright with Notte (Recommended) - - - - Use Puppeteer with Notte sessions - - - - Configure session settings - - - - Connect Notte to Kernel.sh and other providers - + + + Use Playwright with Notte (Recommended) + + + + + Use Playwright with Notte (Recommended) + + + + + + Use Puppeteer with Notte sessions + + + + + Use Puppeteer with Notte sessions + + + + + + Configure session settings + + + + + Configure session settings + + + + + + Connect Notte to Kernel.sh and other providers + + + + + Connect Notte to Kernel.sh and other providers + + diff --git a/docs/src/features/sessions/stealth-mode.mdx b/docs/src/features/sessions/stealth-mode.mdx index 306445b78..296184124 100644 --- a/docs/src/features/sessions/stealth-mode.mdx +++ b/docs/src/features/sessions/stealth-mode.mdx @@ -158,19 +158,47 @@ Combine stealth with automatic captcha solving for comprehensive protection: ## Next Steps - - Configure residential proxies - - - - Automatically solve captchas - - - - Choose the right browser engine - - - - Run sessions in different regions - + + + Configure residential proxies + + + + + Configure residential proxies + + + + + + Automatically solve captchas + + + + + Automatically solve captchas + + + + + + Choose the right browser engine + + + + + Choose the right browser engine + + + + + + Run sessions in different regions + + + + + Run sessions in different regions + + diff --git a/docs/src/guides/scraping.mdx b/docs/src/guides/scraping.mdx index ee72e264f..8cd256702 100644 --- a/docs/src/guides/scraping.mdx +++ b/docs/src/guides/scraping.mdx @@ -11,7 +11,7 @@ import SchemaDesign from '/snippets/guides/schema_design.mdx'; ## Scrape any page and get formatted data The Scrape API allows you to get the data you want from web pages using a single call. You can scrape page content and capture its data in various formats. -For detailed usage, checkout the [Scrape API Reference](/sdk-reference/remotesession/scrape). +For detailed usage, checkout the [Scrape API Reference](/sdk-reference/remotesession/scrape)[Scrape API Reference](/sdk-reference/remotesession/scrape.md). ## Basic Markdown Scraping diff --git a/docs/src/index.mdx b/docs/src/index.mdx index 1d1c624d8..3faa80b7f 100644 --- a/docs/src/index.mdx +++ b/docs/src/index.mdx @@ -38,20 +38,34 @@ The shortest path to a working Notte integration is to create a cloud browser se - - Continue to the full quickstart for Agents, Scraping, and additional examples. - + + + Continue to the full quickstart for Agents, Scraping, and additional examples. + + + + + Continue to the full quickstart for Agents, Scraping, and additional examples. + + - - Start from the SDK entrypoint for Sessions, Agents, Vaults, Personas, and Functions. - + + + Start from the SDK entrypoint for Sessions, Agents, Vaults, Personas, and Functions. + + + + + Start from the SDK entrypoint for Sessions, Agents, Vaults, Personas, and Functions. + + Access the machine-readable API contract directly from the Notte API. -For the API surface, see [API Reference](/api-reference/authentication)[API Reference](/api-reference/authentication.md); for the SDK entrypoint, see [SDK Reference](/sdk-reference/manual/index). +For the API surface, see [API Reference](/api-reference/authentication)[API Reference](/api-reference/authentication.md); for the SDK entrypoint, see [SDK Reference](/sdk-reference/manual/index)[SDK Reference](/sdk-reference/manual/index.md). ## Platform @@ -69,17 +83,38 @@ The building blocks for your web agents and automations. - - AI web agents & automation framework. Build agents that browse, understand, and complete tasks autonomously. - + + + AI web agents & automation framework. Build agents that browse, understand, and complete tasks autonomously. + + + + + AI web agents & automation framework. Build agents that browse, understand, and complete tasks autonomously. + + - - Deploy your scripts as API endpoints. Serverless automations and agents you can invoke and schedule anywhere. - + + + Deploy your scripts as API endpoints. Serverless automations and agents you can invoke and schedule anywhere. + + + + + Deploy your scripts as API endpoints. Serverless automations and agents you can invoke and schedule anywhere. + + - - Extract structured data with AI. Turn any website into structured data. Use agents or direct scrape endpoints. - + + + Extract structured data with AI. Turn any website into structured data. Use agents or direct scrape endpoints. + + + + + Extract structured data with AI. Turn any website into structured data. Use agents or direct scrape endpoints. + + ## Products @@ -87,17 +122,38 @@ The building blocks for your web agents and automations. Tools to speed up the build, debug, and deploy automations lifecycle. - - Create automation scripts with an AI conversation. - + + + Create automation scripts with an AI conversation. + + + + + Create automation scripts with an AI conversation. + + - - Record workflows and get automation scripts automatically. - + + + Record workflows and get automation scripts automatically. + + + + + Record workflows and get automation scripts automatically. + + - - Edit & debug in live browser enabled IDE and one-click deploy. - + + + Edit & debug in live browser enabled IDE and one-click deploy. + + + + + Edit & debug in live browser enabled IDE and one-click deploy. + + ## Agent Tools @@ -105,11 +161,25 @@ Tools to speed up the build, debug, and deploy automations lifecycle. Empower your agents with secure credentials and authentic identities. - - Secure credential storage. Keep passwords, API keys, and sensitive data encrypted. - + + + Secure credential storage. Keep passwords, API keys, and sensitive data encrypted. + + + + + Secure credential storage. Keep passwords, API keys, and sensitive data encrypted. + + - - Emails and phone numbers for agents. Verified identities to interact authentically across platforms. - + + + Emails and phone numbers for agents. Verified identities to interact authentically across platforms. + + + + + Emails and phone numbers for agents. Verified identities to interact authentically across platforms. + + diff --git a/docs/src/integrations/massive.mdx b/docs/src/integrations/massive.mdx index e312c3033..287092664 100644 --- a/docs/src/integrations/massive.mdx +++ b/docs/src/integrations/massive.mdx @@ -11,7 +11,7 @@ import MassiveComplete from '/snippets/integrations/massive_complete.mdx'; Notte x Massive integration -[Massive](https://www.joinmassive.com/) is a residential proxy provider offering ethically-sourced IPs across 195+ countries. If you have a Massive account (or are considering one), you can plug their proxies directly into your Notte sessions using the [`ExternalProxy`](/features/sessions/proxies#custom-proxies) type. +[Massive](https://www.joinmassive.com/) is a residential proxy provider offering ethically-sourced IPs across 195+ countries. If you have a Massive account (or are considering one), you can plug their proxies directly into your Notte sessions using the [`ExternalProxy`](/features/sessions/proxies#custom-proxies)[`ExternalProxy`](/features/sessions/proxies.md#custom-proxies) type. This is useful when you need residential IP rotation, geo-targeted traffic, or want to route your browser automation through a dedicated proxy provider. diff --git a/docs/src/integrations/mcp.mdx b/docs/src/integrations/mcp.mdx index 27c8603df..44aff2250 100644 --- a/docs/src/integrations/mcp.mdx +++ b/docs/src/integrations/mcp.mdx @@ -11,7 +11,7 @@ At Notte, we've developed an MCP server implementation focused specifically on b ## Notte-MCP: Browser Control for AI Agents -![Notte-MCP](/images/mcp.png) +![Notte-MCP](/images/mcp.png)[Notte-MCP](/images/mcp.png.md) The Notte-MCP implementation directly mirrors the [Notte API offering](https://docs.notte.cc). With Notte-MCP, LLM systems can extend their capabilities to browser control, solving even complex tasks: diff --git a/docs/src/integrations/stagehand.mdx b/docs/src/integrations/stagehand.mdx index bb7e6eac5..4fb6ec371 100644 --- a/docs/src/integrations/stagehand.mdx +++ b/docs/src/integrations/stagehand.mdx @@ -51,29 +51,57 @@ MODEL_API_KEY=your-openai-api-key ## Benefits of using Notte with Stagehand -- **Anti-detection**: Notte's [stealth mode](/features/sessions/stealth-mode) keeps your automations undetected -- **Captcha solving**: Built-in [captcha solving](/features/sessions/captcha-solving) handles CAPTCHAs automatically -- **Residential proxies**: Route traffic through [residential proxies](/features/sessions/proxies) in 195+ countries -- **Live view**: Debug automations in real-time with [live view](/features/sessions/live-view) -- **Session replay**: Record and review runs with [session recordings](/features/sessions/recordings) +- **Anti-detection**: Notte's [stealth mode](/features/sessions/stealth-mode)[stealth mode](/features/sessions/stealth-mode.md) keeps your automations undetected +- **Captcha solving**: Built-in [captcha solving](/features/sessions/captcha-solving)[captcha solving](/features/sessions/captcha-solving.md) handles CAPTCHAs automatically +- **Residential proxies**: Route traffic through [residential proxies](/features/sessions/proxies)[residential proxies](/features/sessions/proxies.md) in 195+ countries +- **Live view**: Debug automations in real-time with [live view](/features/sessions/live-view)[live view](/features/sessions/live-view.md) +- **Session replay**: Record and review runs with [session recordings](/features/sessions/recordings)[session recordings](/features/sessions/recordings.md) - **No local browser**: Run automations without installing or maintaining browsers locally ## Next steps - - Customize browser settings, proxies, and more - - - - Configure anti-detection for your automations - - - - Learn about CDP connections and external browsers - - - - Debug your automations in real-time - + + + Customize browser settings, proxies, and more + + + + + Customize browser settings, proxies, and more + + + + + + Configure anti-detection for your automations + + + + + Configure anti-detection for your automations + + + + + + Learn about CDP connections and external browsers + + + + + Learn about CDP connections and external browsers + + + + + + Debug your automations in real-time + + + + + Debug your automations in real-time + + diff --git a/docs/src/pricing.mdx b/docs/src/pricing.mdx index ad249734d..13c00b665 100644 --- a/docs/src/pricing.mdx +++ b/docs/src/pricing.mdx @@ -81,6 +81,13 @@ description: Simple usage-based pricing with included hours on every plan | Credit Packs | $100 / $200 / $500 - lifetime credits that don't expire | | Fixed IPs | [Contact us](https://cal.com/team/notte/demo) | - - View the full breakdown of rate limits, quotas, and feature availability. - + + + View the full breakdown of rate limits, quotas, and feature availability. + + + + + View the full breakdown of rate limits, quotas, and feature availability. + + diff --git a/docs/src/product/anything-api.mdx b/docs/src/product/anything-api.mdx index 961444373..40324505d 100644 --- a/docs/src/product/anything-api.mdx +++ b/docs/src/product/anything-api.mdx @@ -26,7 +26,7 @@ curl -N -X POST https://anything.notte.cc/api/anything/start \ -d '{"query": "fetch the top 3 hacker news posts"}' ``` -The API streams back SSE events as the agent works. When it's done, the final `done` event contains the `function_id` of the created function, which you can re-run later via the [Notte CLI](https://github.com/nottelabs/notte-cli) or [SDK](/quickstart). +The API streams back SSE events as the agent works. When it's done, the final `done` event contains the `function_id` of the created function, which you can re-run later via the [Notte CLI](https://github.com/nottelabs/notte-cli) or [SDK](/quickstart)[SDK](/quickstart.md). ## Request diff --git a/docs/src/quickstart.mdx b/docs/src/quickstart.mdx index 2246564ef..4da83d63f 100644 --- a/docs/src/quickstart.mdx +++ b/docs/src/quickstart.mdx @@ -51,9 +51,16 @@ Create a cloud browser session and control it with Playwright over CDP. - - Proxies, anti-detection, captcha solving, and more. - + + + Proxies, anti-detection, captcha solving, and more. + + + + + Proxies, anti-detection, captcha solving, and more. + + --- @@ -63,9 +70,16 @@ Run an AI agent that browses and completes tasks autonomously. - - Models, reasoning, structured output, and more. - + + + Models, reasoning, structured output, and more. + + + + + Models, reasoning, structured output, and more. + + --- @@ -75,6 +89,13 @@ Extract structured data from any page using AI. - - Structured extraction, selectors, and more. - + + + Structured extraction, selectors, and more. + + + + + Structured extraction, selectors, and more. + + diff --git a/docs/src/rate-limits.mdx b/docs/src/rate-limits.mdx index f08d2db34..7ff03afea 100644 --- a/docs/src/rate-limits.mdx +++ b/docs/src/rate-limits.mdx @@ -16,8 +16,8 @@ description: Feature limits and quotas by plan | | Free | Developer | Startup | Enterprise | |--|------|-----------|---------|------------| | **Browser Profiles** | — | ✓ | ✓ | ✓ | -| **[Residential Proxies](/features/sessions/proxies#built-in-proxies)** | — | ✓ | ✓ | ✓ | -| **[Captcha Solving](/features/sessions/captcha-solving)** | — | ✓ | ✓ | ✓ | +| **[Residential Proxies](/features/sessions/proxies#built-in-proxies)[Residential Proxies](/features/sessions/proxies.md#built-in-proxies)** | — | ✓ | ✓ | ✓ | +| **[Captcha Solving](/features/sessions/captcha-solving)[Captcha Solving](/features/sessions/captcha-solving.md)** | — | ✓ | ✓ | ✓ | | **Files I/O** | — | ✓ | ✓ | ✓ | | **Cronjobs** | — | ✓ | ✓ | ✓ | @@ -25,14 +25,14 @@ description: Feature limits and quotas by plan | | Free | Developer | Startup | Enterprise | |--|------|-----------|---------|------------| -| **[Vaults](/concepts/vaults)** | 1 | 2 | 5 | 10+ | -| **[Personas](/concepts/personas)** | 1 | 10 | 100 | 100+ | +| **[Vaults](/concepts/vaults)[Vaults](/concepts/vaults.md)** | 1 | 2 | 5 | 10+ | +| **[Personas](/concepts/personas)[Personas](/concepts/personas.md)** | 1 | 10 | 100 | 100+ | ## BYO (Bring Your Own) | | Free | Developer | Startup | Enterprise | |--|------|-----------|---------|------------| -| **[Custom Proxies](/features/sessions/proxies#custom-proxies)** | — | — | ✓ | ✓ | +| **[Custom Proxies](/features/sessions/proxies#custom-proxies)[Custom Proxies](/features/sessions/proxies.md#custom-proxies)** | — | — | ✓ | ✓ | | **Model Keys** | — | — | ✓ | ✓ | | **Cloud (On-Prem)** | — | — | — | ✓ | diff --git a/docs/src/scripts/wrap_md_links.py b/docs/src/scripts/wrap_md_links.py new file mode 100644 index 000000000..4395875fd --- /dev/null +++ b/docs/src/scripts/wrap_md_links.py @@ -0,0 +1,249 @@ +#!/usr/bin/env python3 +"""One-shot preprocessor that wraps internal links in hand-authored MDX with +/ pairs so the .md export +emits .md-suffixed hrefs while the HTML render is unchanged. + +Scope: hand-authored MDX under docs/src. Skips sdk-reference/ (sphinx_mintlify +auto-gen, handled separately) and snippets/ (sniptest auto-gen). Also skips +any file starting with the sniptest auto-gen marker as a safety belt. + +Transforms: + - Inline markdown links: [text](/path) -> [text](/path) + [text](/path.md) + - JSX Card components: ... -> wrapped pair, agent variant gets .md href. + +Skips: + - External URLs (http://, https://, mailto:, tel:) + - Anchor-only links (#foo) + - Links inside fenced code blocks + - Links/cards already wrapped in + +Usage: + python docs/src/scripts/wrap_md_links.py --dry-run # preview diff stats + python docs/src/scripts/wrap_md_links.py # write in place + python docs/src/scripts/wrap_md_links.py --path foo.mdx # single file +""" + +from __future__ import annotations + +import argparse +import re +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parent.parent # docs/src + +EXCLUDE_DIR_NAMES = {"sdk-reference", "snippets", "images", "logo", "sniptest", "testers", "tests", "scripts"} +AUTO_GEN_MARKER = "{/* Auto-generated mdx file. Do not edit! */}" + +VIS_HUMANS_OPEN = '' +VIS_AGENTS_OPEN = '' +VIS_CLOSE = "" + +INLINE_LINK_RE = re.compile(r"\[(?P[^\]\n]+)\]\((?P/[^)\s]*)\)") +CARD_OPEN_RE = re.compile(r']*?\shref="(?P/[^"]+)"[^>]*>') +VIS_OPEN_RE = re.compile(r'') + + +def is_external(path: str) -> bool: + return "://" in path or path.startswith(("mailto:", "tel:", "#")) + + +def add_md_suffix(path: str) -> str: + """Insert .md before any anchor or query string.""" + rest, anchor = (path.split("#", 1) + [""])[:2] + rest, query = (rest.split("?", 1) + [""])[:2] + if rest.endswith(".md"): + return path + out = rest + ".md" + if query: + out += "?" + query + if anchor: + out += "#" + anchor + return out + + +def find_code_regions(text: str) -> list[tuple[int, int]]: + regions: list[tuple[int, int]] = [] + in_fence = False + fence_start = 0 + pos = 0 + for line in text.split("\n"): + line_end = pos + len(line) + 1 + if line.lstrip().startswith("```"): + if not in_fence: + in_fence = True + fence_start = pos + else: + regions.append((fence_start, line_end)) + in_fence = False + pos = line_end + if in_fence: + regions.append((fence_start, pos)) + return regions + + +def find_visibility_regions(text: str) -> list[tuple[int, int]]: + regions: list[tuple[int, int]] = [] + pos = 0 + while True: + m = VIS_OPEN_RE.search(text, pos) + if not m: + break + end_idx = text.find(VIS_CLOSE, m.end()) + if end_idx == -1: + break + regions.append((m.start(), end_idx + len(VIS_CLOSE))) + pos = end_idx + len(VIS_CLOSE) + return regions + + +def in_any_region(idx: int, regions: list[tuple[int, int]]) -> bool: + return any(s <= idx < e for s, e in regions) + + +def transform_inline_links(text: str) -> tuple[str, int]: + code_regions = find_code_regions(text) + vis_regions = find_visibility_regions(text) + out: list[str] = [] + last = 0 + count = 0 + for m in INLINE_LINK_RE.finditer(text): + idx = m.start() + if in_any_region(idx, code_regions) or in_any_region(idx, vis_regions): + continue + path = m.group("path") + if is_external(path): + continue + text_part = m.group("text") + md_path = add_md_suffix(path) + replacement = ( + f"{VIS_HUMANS_OPEN}[{text_part}]({path}){VIS_CLOSE}{VIS_AGENTS_OPEN}[{text_part}]({md_path}){VIS_CLOSE}" + ) + out.append(text[last:idx]) + out.append(replacement) + last = m.end() + count += 1 + out.append(text[last:]) + return "".join(out), count + + +def find_matching_card_close(text: str, after: int) -> int: + """Return the start index of the that closes the open at `after`. + Returns -1 if there's a nested ", after) + if close_idx == -1: + return -1 + # Reject nested Cards (none expected in this corpus, but be safe). + if re.search(r" str: + """Re-indent a Card block so it sits one level deeper than `base_indent`. + First line gets `base_indent + " "`; subsequent lines get +2 added to the + indent they already had.""" + inner = base_indent + " " + lines = block.split("\n") + out = [inner + lines[0]] + for ln in lines[1:]: + out.append(" " + ln) + return "\n".join(out) + + +def transform_cards(text: str) -> tuple[str, int]: + code_regions = find_code_regions(text) + vis_regions = find_visibility_regions(text) + matches = list(CARD_OPEN_RE.finditer(text)) + matches.reverse() # transform end-to-start so earlier offsets stay valid + new = text + count = 0 + for m in matches: + open_start = m.start() + if in_any_region(open_start, code_regions) or in_any_region(open_start, vis_regions): + continue + path = m.group("path") + if is_external(path): + continue + close_start = find_matching_card_close(new, m.end()) + if close_start == -1: + continue + close_end = close_start + len("") + block = new[open_start:close_end] + # Determine the file indent of the line. + line_start = new.rfind("\n", 0, open_start) + 1 + indent = new[line_start:open_start] + if indent.strip(): + # Card open isn't at the start of a (whitespace-only) prefix; bail. + continue + + md_path = add_md_suffix(path) + agent_block = block.replace(f'href="{path}"', f'href="{md_path}"', 1) + human_indented = reindent_block(block, indent) + agent_indented = reindent_block(agent_block, indent) + replacement = ( + f"{VIS_HUMANS_OPEN}\n" + f"{human_indented}\n" + f"{indent}{VIS_CLOSE}\n" + f"{indent}{VIS_AGENTS_OPEN}\n" + f"{agent_indented}\n" + f"{indent}{VIS_CLOSE}" + ) + new = new[:open_start] + replacement + new[close_end:] + count += 1 + return new, count + + +def is_in_scope(path: Path) -> bool: + rel = path.relative_to(ROOT) + if any(part in EXCLUDE_DIR_NAMES for part in rel.parts): + return False + return True + + +def is_auto_generated(content: str) -> bool: + return content.lstrip().startswith(AUTO_GEN_MARKER) + + +def process_file(path: Path, *, dry_run: bool) -> tuple[int, int]: + content = path.read_text() + if is_auto_generated(content): + return 0, 0 + new, n_links = transform_inline_links(content) + new, n_cards = transform_cards(new) + if (n_links or n_cards) and not dry_run and new != content: + path.write_text(new) + return n_links, n_cards + + +def main() -> int: + p = argparse.ArgumentParser() + p.add_argument("--dry-run", action="store_true", help="don't write files") + p.add_argument("--path", help="process a single file (relative to docs/src)") + args = p.parse_args() + + if args.path: + targets = [ROOT / args.path] + else: + targets = [p for p in ROOT.rglob("*.mdx") if is_in_scope(p)] + + total_links = 0 + total_cards = 0 + files_changed = 0 + for f in sorted(targets): + n_links, n_cards = process_file(f, dry_run=args.dry_run) + if n_links or n_cards: + files_changed += 1 + rel = f.relative_to(ROOT) + print(f" {rel}: {n_links} links, {n_cards} cards") + total_links += n_links + total_cards += n_cards + + verb = "would change" if args.dry_run else "changed" + print(f"\n{files_changed} file(s) {verb} | {total_links} inline links, {total_cards} cards wrapped") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) From 2fc0800eabd1c9211189fccb33d93626732b6280 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 29 Apr 2026 18:32:46 -0700 Subject: [PATCH 3/5] docs(sdk-ref): regenerate with sphinx_mintlify Visibility wrappers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regenerated docs/src/sdk-reference/ against a local sphinx_mintlify build that emits / pairs around generated internal links — same pattern as the prior commit applied to hand-authored MDX. The agent variant uses .md-suffixed hrefs so the markdown export at /.md links to other .md exports instead of HTML pages. Two kinds of changes in this regen: * 123 Method Cards wrapped (the on every class index page). * 80 inline type-annotation links wrapped (e.g. [`AgentStatusResponse`] in return-type docs). It also fixes a pre-existing sphinx_mintlify bug where 7 call sites emitted [Class]{path} (curly braces, not parens) instead of a real markdown link. That literal-text-with-URL output is now a wrapped markdown link, which is why the diff is bigger than just the Visibility wrapping. The sphinx_mintlify changes themselves live in the sphinx_mintlify repo and need to be published to PyPI before merging this; instructions are at sphinx_mintlify's MD_EXPORT_VISIBILITY.md. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../agentsclient/async_watch_logs.mdx | 2 +- .../async_watch_logs_and_wait.mdx | 2 +- .../agentsclient/create_function.mdx | 2 +- .../agentsclient/function_code.mdx | 2 +- docs/src/sdk-reference/agentsclient/index.mdx | 550 ++++++++---- docs/src/sdk-reference/agentsclient/list.mdx | 2 +- docs/src/sdk-reference/agentsclient/run.mdx | 2 +- .../sdk-reference/agentsclient/run_custom.mdx | 2 +- docs/src/sdk-reference/agentsclient/start.mdx | 2 +- .../src/sdk-reference/agentsclient/status.mdx | 2 +- docs/src/sdk-reference/agentsclient/stop.mdx | 2 +- docs/src/sdk-reference/agentsclient/wait.mdx | 2 +- .../sdk-reference/agentsclient/watch_logs.mdx | 2 +- .../agentsclient/watch_logs_and_wait.mdx | 2 +- docs/src/sdk-reference/misc/domnode.mdx | 16 +- .../sdk-reference/misc/interactiondomnode.mdx | 16 +- docs/src/sdk-reference/misc/nottefunction.mdx | 10 +- docs/src/sdk-reference/misc/nottepersona.mdx | 12 +- docs/src/sdk-reference/misc/nottevault.mdx | 2 +- .../sdk-reference/misc/remotefilestorage.mdx | 4 +- docs/src/sdk-reference/misc/remotesession.mdx | 2 +- docs/src/sdk-reference/notteclient/index.mdx | 75 +- docs/src/sdk-reference/notteclient/scrape.mdx | 2 +- docs/src/sdk-reference/nottefunction/fork.mdx | 2 +- .../sdk-reference/nottefunction/get_run.mdx | 2 +- .../src/sdk-reference/nottefunction/index.mdx | 275 ++++-- .../sdk-reference/nottefunction/replay.mdx | 2 +- docs/src/sdk-reference/nottefunction/run.mdx | 2 +- .../sdk-reference/nottefunction/stop_run.mdx | 2 +- .../sdk-reference/nottepersona/aemails.mdx | 2 +- docs/src/sdk-reference/nottepersona/asms.mdx | 2 +- .../nottepersona/create_number.mdx | 2 +- .../nottepersona/delete_number.mdx | 2 +- .../src/sdk-reference/nottepersona/emails.mdx | 2 +- docs/src/sdk-reference/nottepersona/index.mdx | 325 +++++-- docs/src/sdk-reference/nottepersona/sms.mdx | 2 +- .../nottevault/credential_fields_to_dict.mdx | 2 +- .../nottevault/get_credit_card.mdx | 2 +- .../nottevault/get_credit_card_async.mdx | 2 +- docs/src/sdk-reference/nottevault/index.mdx | 850 +++++++++++++----- .../nottevault/replace_credentials.mdx | 2 +- .../remoteagent/async_watch_logs_and_wait.mdx | 2 +- docs/src/sdk-reference/remoteagent/index.mdx | 250 ++++-- docs/src/sdk-reference/remoteagent/replay.mdx | 2 +- docs/src/sdk-reference/remoteagent/run.mdx | 2 +- docs/src/sdk-reference/remoteagent/start.mdx | 2 +- docs/src/sdk-reference/remoteagent/status.mdx | 2 +- docs/src/sdk-reference/remoteagent/stop.mdx | 2 +- docs/src/sdk-reference/remoteagent/wait.mdx | 2 +- .../sdk-reference/remoteagent/watch_logs.mdx | 2 +- .../remoteagent/watch_logs_and_wait.mdx | 2 +- .../remoteagentfallback/index.mdx | 25 +- .../sdk-reference/remotefilestorage/index.mdx | 275 ++++-- .../list_downloaded_files.mdx | 2 +- .../remotefilestorage/list_uploaded_files.mdx | 2 +- .../remotesession/debug_info.mdx | 2 +- .../sdk-reference/remotesession/execute.mdx | 2 +- .../remotesession/get_cookies.mdx | 2 +- .../src/sdk-reference/remotesession/index.mdx | 457 +++++++--- .../sdk-reference/remotesession/observe.mdx | 2 +- .../sdk-reference/remotesession/replay.mdx | 2 +- .../sdk-reference/remotesession/scrape.mdx | 2 +- .../remotesession/set_cookies.mdx | 2 +- .../sdk-reference/remotesession/status.mdx | 2 +- .../remotesession/viewer_notebook.mdx | 2 +- 65 files changed, 2299 insertions(+), 943 deletions(-) diff --git a/docs/src/sdk-reference/agentsclient/async_watch_logs.mdx b/docs/src/sdk-reference/agentsclient/async_watch_logs.mdx index 62ccf6262..521a20be3 100644 --- a/docs/src/sdk-reference/agentsclient/async_watch_logs.mdx +++ b/docs/src/sdk-reference/agentsclient/async_watch_logs.mdx @@ -23,4 +23,4 @@ connections are not supported. ## Returns -`UnionType`[[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse), `None`]: The final agent status, or None if failed. +`UnionType`[[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md), `None`]: The final agent status, or None if failed. diff --git a/docs/src/sdk-reference/agentsclient/async_watch_logs_and_wait.mdx b/docs/src/sdk-reference/agentsclient/async_watch_logs_and_wait.mdx index 493a9635a..b247ab862 100644 --- a/docs/src/sdk-reference/agentsclient/async_watch_logs_and_wait.mdx +++ b/docs/src/sdk-reference/agentsclient/async_watch_logs_and_wait.mdx @@ -23,4 +23,4 @@ connections are not supported. ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse): The response from the completed agent execution. +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md): The response from the completed agent execution. diff --git a/docs/src/sdk-reference/agentsclient/create_function.mdx b/docs/src/sdk-reference/agentsclient/create_function.mdx index 095991e5d..11f778907 100644 --- a/docs/src/sdk-reference/agentsclient/create_function.mdx +++ b/docs/src/sdk-reference/agentsclient/create_function.mdx @@ -19,7 +19,7 @@ resulting script is stored internally before being returned. ## Returns -[`GetFunctionResponse`](/sdk-reference/misc/getfunctionresponse): The workflow that reproduces the steps of the agent +[`GetFunctionResponse`](/sdk-reference/misc/getfunctionresponse)[`GetFunctionResponse`](/sdk-reference/misc/getfunctionresponse.md): The workflow that reproduces the steps of the agent ## Raises diff --git a/docs/src/sdk-reference/agentsclient/function_code.mdx b/docs/src/sdk-reference/agentsclient/function_code.mdx index 8ad7f1656..70d4f8ef4 100644 --- a/docs/src/sdk-reference/agentsclient/function_code.mdx +++ b/docs/src/sdk-reference/agentsclient/function_code.mdx @@ -22,7 +22,7 @@ resulting script is stored internally before being returned. ## Returns -[`AgentFunctionCodeResponse`](/sdk-reference/misc/agentfunctioncoderesponse): The script that reproduces the steps of the specified agent +[`AgentFunctionCodeResponse`](/sdk-reference/misc/agentfunctioncoderesponse)[`AgentFunctionCodeResponse`](/sdk-reference/misc/agentfunctioncoderesponse.md): The script that reproduces the steps of the specified agent ## Raises diff --git a/docs/src/sdk-reference/agentsclient/index.mdx b/docs/src/sdk-reference/agentsclient/index.mdx index 1cdd8211f..e7b7b450a 100644 --- a/docs/src/sdk-reference/agentsclient/index.mdx +++ b/docs/src/sdk-reference/agentsclient/index.mdx @@ -13,160 +13,402 @@ If you need to handle multiple sessions, you need to create a new client for eac ## Methods - - Initialize an AgentsClient instance - - - Watch the logs of the specified agent asynchronously - - - Execute a task with the agent and wait for completion asynchronously - - - Check if the current notte-sdk version matches the latest PyPI version - - - Creates a function that reproduces the steps of the specified agent - - - Retrieves a script that reproduces the steps of the specified agent - - - Return HTTP headers for authenticated API requests - - - Health check the Notte API - - - Check if the custom endpoint is available - - - Lists agents matching specified criteria - - - Requests the specified API endpoint and returns the validated response - - - No description available - - - Retrieves and validates a list of responses from the API - - - Constructs the full request URL for the given API endpoint - - - Run an agent with the specified request parameters - - - Run a custom agent with the specified request parameters and wait for completion - - - Start an agent with the specified request parameters - - - Retrieves the status of the specified agent - - - Stops the specified agent and clears the last agent response - - - Waits for the specified agent to complete - - - Watch the logs of the specified agent - - - Execute a task with the agent and wait for completion - + + + Initialize an AgentsClient instance + + + + + Initialize an AgentsClient instance + + + + + Watch the logs of the specified agent asynchronously + + + + + Watch the logs of the specified agent asynchronously + + + + + Execute a task with the agent and wait for completion asynchronously + + + + + Execute a task with the agent and wait for completion asynchronously + + + + + Check if the current notte-sdk version matches the latest PyPI version + + + + + Check if the current notte-sdk version matches the latest PyPI version + + + + + Creates a function that reproduces the steps of the specified agent + + + + + Creates a function that reproduces the steps of the specified agent + + + + + Retrieves a script that reproduces the steps of the specified agent + + + + + Retrieves a script that reproduces the steps of the specified agent + + + + + Return HTTP headers for authenticated API requests + + + + + Return HTTP headers for authenticated API requests + + + + + Health check the Notte API + + + + + Health check the Notte API + + + + + Check if the custom endpoint is available + + + + + Check if the custom endpoint is available + + + + + Lists agents matching specified criteria + + + + + Lists agents matching specified criteria + + + + + Requests the specified API endpoint and returns the validated response + + + + + Requests the specified API endpoint and returns the validated response + + + + + No description available + + + + + No description available + + + + + Retrieves and validates a list of responses from the API + + + + + Retrieves and validates a list of responses from the API + + + + + Constructs the full request URL for the given API endpoint + + + + + Constructs the full request URL for the given API endpoint + + + + + Run an agent with the specified request parameters + + + + + Run an agent with the specified request parameters + + + + + Run a custom agent with the specified request parameters and wait for completion + + + + + Run a custom agent with the specified request parameters and wait for completion + + + + + Start an agent with the specified request parameters + + + + + Start an agent with the specified request parameters + + + + + Retrieves the status of the specified agent + + + + + Retrieves the status of the specified agent + + + + + Stops the specified agent and clears the last agent response + + + + + Stops the specified agent and clears the last agent response + + + + + Waits for the specified agent to complete + + + + + Waits for the specified agent to complete + + + + + Watch the logs of the specified agent + + + + + Watch the logs of the specified agent + + + + + Execute a task with the agent and wait for completion + + + + + Execute a task with the agent and wait for completion + + ## Class Information diff --git a/docs/src/sdk-reference/agentsclient/list.mdx b/docs/src/sdk-reference/agentsclient/list.mdx index 150746f78..374ddf18a 100644 --- a/docs/src/sdk-reference/agentsclient/list.mdx +++ b/docs/src/sdk-reference/agentsclient/list.mdx @@ -31,4 +31,4 @@ responses. ## Returns -`Sequence`[[`AgentResponse`](/sdk-reference/misc/agentresponse)]: A sequence of AgentResponse objects. +`Sequence`[[`AgentResponse`](/sdk-reference/misc/agentresponse)[`AgentResponse`](/sdk-reference/misc/agentresponse.md)]: A sequence of AgentResponse objects. diff --git a/docs/src/sdk-reference/agentsclient/run.mdx b/docs/src/sdk-reference/agentsclient/run.mdx index 2c9e8182e..1cb80e32b 100644 --- a/docs/src/sdk-reference/agentsclient/run.mdx +++ b/docs/src/sdk-reference/agentsclient/run.mdx @@ -64,4 +64,4 @@ This function is synchronous and will block the main thread until the agent is c ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse) +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md) diff --git a/docs/src/sdk-reference/agentsclient/run_custom.mdx b/docs/src/sdk-reference/agentsclient/run_custom.mdx index c1e7e06fa..6b6994112 100644 --- a/docs/src/sdk-reference/agentsclient/run_custom.mdx +++ b/docs/src/sdk-reference/agentsclient/run_custom.mdx @@ -18,4 +18,4 @@ Note: not all servers support custom agents ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse) +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md) diff --git a/docs/src/sdk-reference/agentsclient/start.mdx b/docs/src/sdk-reference/agentsclient/start.mdx index d2fd6ef84..811aa9835 100644 --- a/docs/src/sdk-reference/agentsclient/start.mdx +++ b/docs/src/sdk-reference/agentsclient/start.mdx @@ -57,4 +57,4 @@ designated endpoint, updates the last agent response, and returns the resulting ## Returns -[`AgentResponse`](/sdk-reference/misc/agentresponse): The response obtained from the agent run request. +[`AgentResponse`](/sdk-reference/misc/agentresponse)[`AgentResponse`](/sdk-reference/misc/agentresponse.md): The response obtained from the agent run request. diff --git a/docs/src/sdk-reference/agentsclient/status.mdx b/docs/src/sdk-reference/agentsclient/status.mdx index ea0212f82..1096a8095 100644 --- a/docs/src/sdk-reference/agentsclient/status.mdx +++ b/docs/src/sdk-reference/agentsclient/status.mdx @@ -19,7 +19,7 @@ resulting status is stored internally before being returned. ## Returns -[`LegacyAgentStatusResponse`](/sdk-reference/misc/legacyagentstatusresponse): The current status information of the specified agent. +[`LegacyAgentStatusResponse`](/sdk-reference/misc/legacyagentstatusresponse)[`LegacyAgentStatusResponse`](/sdk-reference/misc/legacyagentstatusresponse.md): The current status information of the specified agent. ## Raises diff --git a/docs/src/sdk-reference/agentsclient/stop.mdx b/docs/src/sdk-reference/agentsclient/stop.mdx index 325fb41cf..5f3b56ec3 100644 --- a/docs/src/sdk-reference/agentsclient/stop.mdx +++ b/docs/src/sdk-reference/agentsclient/stop.mdx @@ -22,7 +22,7 @@ and returns the resulting AgentResponse. ## Returns -[`AgentResponse`](/sdk-reference/misc/agentresponse): The response from the stop operation. +[`AgentResponse`](/sdk-reference/misc/agentresponse)[`AgentResponse`](/sdk-reference/misc/agentresponse.md): The response from the stop operation. ## Raises diff --git a/docs/src/sdk-reference/agentsclient/wait.mdx b/docs/src/sdk-reference/agentsclient/wait.mdx index 178779a0a..5acc78b1c 100644 --- a/docs/src/sdk-reference/agentsclient/wait.mdx +++ b/docs/src/sdk-reference/agentsclient/wait.mdx @@ -23,4 +23,4 @@ description: "Waits for the specified agent to complete" ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse): The response from the agent status check. +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md): The response from the agent status check. diff --git a/docs/src/sdk-reference/agentsclient/watch_logs.mdx b/docs/src/sdk-reference/agentsclient/watch_logs.mdx index 1ef184eca..af446d6e9 100644 --- a/docs/src/sdk-reference/agentsclient/watch_logs.mdx +++ b/docs/src/sdk-reference/agentsclient/watch_logs.mdx @@ -19,4 +19,4 @@ description: "Watch the logs of the specified agent" ## Returns -`UnionType`[[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse), `None`] +`UnionType`[[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md), `None`] diff --git a/docs/src/sdk-reference/agentsclient/watch_logs_and_wait.mdx b/docs/src/sdk-reference/agentsclient/watch_logs_and_wait.mdx index 9faecaaaf..b833e8368 100644 --- a/docs/src/sdk-reference/agentsclient/watch_logs_and_wait.mdx +++ b/docs/src/sdk-reference/agentsclient/watch_logs_and_wait.mdx @@ -20,4 +20,4 @@ description: "Execute a task with the agent and wait for completion" ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse): The response from the completed agent execution. +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md): The response from the completed agent execution. diff --git a/docs/src/sdk-reference/misc/domnode.mdx b/docs/src/sdk-reference/misc/domnode.mdx index 3d3d8a2aa..3f50b9d2c 100644 --- a/docs/src/sdk-reference/misc/domnode.mdx +++ b/docs/src/sdk-reference/misc/domnode.mdx @@ -17,7 +17,7 @@ Create an empty root DomNode for scraping (skips DOM tree computation) **Returns:** -[`DomNode`](/sdk-reference/misc/domnode) +[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md) --- @@ -43,7 +43,7 @@ TODO: same implementation for A11yNode and DomNode **Returns:** -`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)] +`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -55,7 +55,7 @@ flatten(keep_filter: typing.Optional[typing.Callable[[ForwardRef('DomNode')], bo **Returns:** -`list`[[`DomNode`](/sdk-reference/misc/domnode)] +`list`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -91,7 +91,7 @@ image_nodes() -> list['DomNode'] **Returns:** -`list`[[`DomNode`](/sdk-reference/misc/domnode)] +`list`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -115,7 +115,7 @@ interaction_nodes() -> collections.abc.Sequence['InteractionDomNode'] **Returns:** -`Sequence`[[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode)] +`Sequence`[[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode)[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode.md)] --- @@ -153,7 +153,7 @@ TODO: make it work with A11yNode and DomNode **Returns:** -`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)] +`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -185,7 +185,7 @@ subtree_without(roles: set[str]) -> DomNode **Returns:** -[`DomNode`](/sdk-reference/misc/domnode) +[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md) --- @@ -197,7 +197,7 @@ to_interaction_node() -> InteractionDomNode **Returns:** -[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode) +[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode)[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode.md) --- diff --git a/docs/src/sdk-reference/misc/interactiondomnode.mdx b/docs/src/sdk-reference/misc/interactiondomnode.mdx index 1d771ed85..8d4013b37 100644 --- a/docs/src/sdk-reference/misc/interactiondomnode.mdx +++ b/docs/src/sdk-reference/misc/interactiondomnode.mdx @@ -17,7 +17,7 @@ Create an empty root DomNode for scraping (skips DOM tree computation) **Returns:** -[`DomNode`](/sdk-reference/misc/domnode) +[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md) --- @@ -43,7 +43,7 @@ TODO: same implementation for A11yNode and DomNode **Returns:** -`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)] +`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -55,7 +55,7 @@ flatten(keep_filter: typing.Optional[typing.Callable[[ForwardRef('DomNode')], bo **Returns:** -`list`[[`DomNode`](/sdk-reference/misc/domnode)] +`list`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -91,7 +91,7 @@ image_nodes() -> list['DomNode'] **Returns:** -`list`[[`DomNode`](/sdk-reference/misc/domnode)] +`list`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -115,7 +115,7 @@ interaction_nodes() -> collections.abc.Sequence['InteractionDomNode'] **Returns:** -`Sequence`[[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode)] +`Sequence`[[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode)[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode.md)] --- @@ -153,7 +153,7 @@ TODO: make it work with A11yNode and DomNode **Returns:** -`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)] +`Sequence`[[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md)] --- @@ -185,7 +185,7 @@ subtree_without(roles: set[str]) -> DomNode **Returns:** -[`DomNode`](/sdk-reference/misc/domnode) +[`DomNode`](/sdk-reference/misc/domnode)[`DomNode`](/sdk-reference/misc/domnode.md) --- @@ -197,7 +197,7 @@ to_interaction_node() -> InteractionDomNode **Returns:** -[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode) +[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode)[`InteractionDomNode`](/sdk-reference/misc/interactiondomnode.md) --- diff --git a/docs/src/sdk-reference/misc/nottefunction.mdx b/docs/src/sdk-reference/misc/nottefunction.mdx index 0bf4d17c7..b63482672 100644 --- a/docs/src/sdk-reference/misc/nottefunction.mdx +++ b/docs/src/sdk-reference/misc/nottefunction.mdx @@ -44,7 +44,7 @@ Fork a shared function into your own private function **Returns:** -[`NotteFunction`](/sdk-reference/misc/nottefunction) +[`NotteFunction`](/sdk-reference/misc/nottefunction)[`NotteFunction`](/sdk-reference/misc/nottefunction.md) --- @@ -72,7 +72,7 @@ Get a function run by its ID **Returns:** -[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse) +[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse)[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse.md) --- @@ -104,7 +104,7 @@ Get presigned URLs for the workflow run replay **Returns:** -[`ReplayResponse`](/sdk-reference/misc/replayresponse) +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md) --- @@ -118,7 +118,7 @@ Run the function code using the specified version and variables **Returns:** -[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse) +[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse)[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse.md) --- @@ -132,7 +132,7 @@ Manually stop a function run by its ID **Returns:** -[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse) +[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse)[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse.md) --- diff --git a/docs/src/sdk-reference/misc/nottepersona.mdx b/docs/src/sdk-reference/misc/nottepersona.mdx index 1625eebb9..dac5962c3 100644 --- a/docs/src/sdk-reference/misc/nottepersona.mdx +++ b/docs/src/sdk-reference/misc/nottepersona.mdx @@ -34,7 +34,7 @@ aemails(data: *) -> collections. **Returns:** -`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)] +`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)[`EmailResponse`](/sdk-reference/misc/emailresponse.md)] --- @@ -46,7 +46,7 @@ asms(data: *) -> collections.abc **Returns:** -`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)] +`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)[`SMSResponse`](/sdk-reference/misc/smsresponse.md)] --- @@ -68,7 +68,7 @@ Create a phone number to the persona **Returns:** -[`CreatePhoneNumberResponse`](/sdk-reference/misc/createphonenumberresponse) +[`CreatePhoneNumberResponse`](/sdk-reference/misc/createphonenumberresponse)[`CreatePhoneNumberResponse`](/sdk-reference/misc/createphonenumberresponse.md) --- @@ -92,7 +92,7 @@ Delete the phone number from the persona **Returns:** -[`DeletePhoneNumberResponse`](/sdk-reference/misc/deletephonenumberresponse) +[`DeletePhoneNumberResponse`](/sdk-reference/misc/deletephonenumberresponse)[`DeletePhoneNumberResponse`](/sdk-reference/misc/deletephonenumberresponse.md) --- @@ -106,7 +106,7 @@ Read recent emails sent to the persona **Returns:** -`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)] +`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)[`EmailResponse`](/sdk-reference/misc/emailresponse.md)] --- @@ -130,7 +130,7 @@ Read recent sms messages sent to the persona **Returns:** -`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)] +`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)[`SMSResponse`](/sdk-reference/misc/smsresponse.md)] --- diff --git a/docs/src/sdk-reference/misc/nottevault.mdx b/docs/src/sdk-reference/misc/nottevault.mdx index 100a5dd8d..b99cf7ca9 100644 --- a/docs/src/sdk-reference/misc/nottevault.mdx +++ b/docs/src/sdk-reference/misc/nottevault.mdx @@ -255,7 +255,7 @@ get_credit_card() -> CreditCardDict **Returns:** -[`CreditCardDict`](/sdk-reference/misc/creditcarddict) +[`CreditCardDict`](/sdk-reference/misc/creditcarddict)[`CreditCardDict`](/sdk-reference/misc/creditcarddict.md) --- diff --git a/docs/src/sdk-reference/misc/remotefilestorage.mdx b/docs/src/sdk-reference/misc/remotefilestorage.mdx index ecd8361a3..c0e457f7f 100644 --- a/docs/src/sdk-reference/misc/remotefilestorage.mdx +++ b/docs/src/sdk-reference/misc/remotefilestorage.mdx @@ -87,7 +87,7 @@ List all files in the download_dir **Returns:** -`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)] +`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)[`FileInfo`](/sdk-reference/misc/fileinfo.md)] --- @@ -101,7 +101,7 @@ List all files from the upload_dir **Returns:** -`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)] +`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)[`FileInfo`](/sdk-reference/misc/fileinfo.md)] --- diff --git a/docs/src/sdk-reference/misc/remotesession.mdx b/docs/src/sdk-reference/misc/remotesession.mdx index b5a6f8803..d37613fb9 100644 --- a/docs/src/sdk-reference/misc/remotesession.mdx +++ b/docs/src/sdk-reference/misc/remotesession.mdx @@ -300,7 +300,7 @@ Returns a WebsocketJupyterDisplay for displaying live session replay in Jupyter **Returns:** -[`WebsocketService`](/sdk-reference/misc/websocketservice) +[`WebsocketService`](/sdk-reference/misc/websocketservice)[`WebsocketService`](/sdk-reference/misc/websocketservice.md) --- diff --git a/docs/src/sdk-reference/notteclient/index.mdx b/docs/src/sdk-reference/notteclient/index.mdx index c29dee12a..dac3c8392 100644 --- a/docs/src/sdk-reference/notteclient/index.mdx +++ b/docs/src/sdk-reference/notteclient/index.mdx @@ -13,27 +13,60 @@ If you need to handle multiple sessions, you need to create a new client for eac ## Methods - - Initialize a NotteClient instance - - - Health check the Notte API - - - Scrape the current page data - + + + Initialize a NotteClient instance + + + + + Initialize a NotteClient instance + + + + + Health check the Notte API + + + + + Health check the Notte API + + + + + Scrape the current page data + + + + + Scrape the current page data + + ## Class Information diff --git a/docs/src/sdk-reference/notteclient/scrape.mdx b/docs/src/sdk-reference/notteclient/scrape.mdx index ea098ca83..c8b338d01 100644 --- a/docs/src/sdk-reference/notteclient/scrape.mdx +++ b/docs/src/sdk-reference/notteclient/scrape.mdx @@ -72,4 +72,4 @@ data = client.scrape( ## Returns -`UnionType`[[`StructuredData[BaseModel]`](/sdk-reference/misc/structureddata), [`BaseModel`](/sdk-reference/misc/basemodel), `Dict`[`str`, `Any`], `str`, `list`[[`ImageData`](/sdk-reference/misc/imagedata)]]: returns the extracted data directly. When raise_on_failure=False: returns StructuredData wrapper so user can check .success. For markdown scraping: returns str. For image scraping: returns list[ImageData]. +`UnionType`[[`StructuredData[BaseModel]`](/sdk-reference/misc/structureddata)[`StructuredData[BaseModel]`](/sdk-reference/misc/structureddata.md), [`BaseModel`](/sdk-reference/misc/basemodel)[`BaseModel`](/sdk-reference/misc/basemodel.md), `Dict`[`str`, `Any`], `str`, `list`[[`ImageData`](/sdk-reference/misc/imagedata)[`ImageData`](/sdk-reference/misc/imagedata.md)]]: returns the extracted data directly. When raise_on_failure=False: returns StructuredData wrapper so user can check .success. For markdown scraping: returns str. For image scraping: returns list[ImageData]. diff --git a/docs/src/sdk-reference/nottefunction/fork.mdx b/docs/src/sdk-reference/nottefunction/fork.mdx index b831f14ac..376dc45c9 100644 --- a/docs/src/sdk-reference/nottefunction/fork.mdx +++ b/docs/src/sdk-reference/nottefunction/fork.mdx @@ -16,4 +16,4 @@ The forked function is only accessible to you and you can update it as you want ## Returns -[`NotteFunction`](/sdk-reference/misc/nottefunction) +[`NotteFunction`](/sdk-reference/misc/nottefunction)[`NotteFunction`](/sdk-reference/misc/nottefunction.md) diff --git a/docs/src/sdk-reference/nottefunction/get_run.mdx b/docs/src/sdk-reference/nottefunction/get_run.mdx index 3f5869fe7..4e3b6d181 100644 --- a/docs/src/sdk-reference/nottefunction/get_run.mdx +++ b/docs/src/sdk-reference/nottefunction/get_run.mdx @@ -13,4 +13,4 @@ description: "Get a function run by its ID" ## Returns -[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse) +[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse)[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse.md) diff --git a/docs/src/sdk-reference/nottefunction/index.mdx b/docs/src/sdk-reference/nottefunction/index.mdx index 425903dde..72b328ac0 100644 --- a/docs/src/sdk-reference/nottefunction/index.mdx +++ b/docs/src/sdk-reference/nottefunction/index.mdx @@ -13,83 +13,204 @@ This is a wrapper around RemoteWorkflow that uses function_id terminology. ## Methods - - Initialize self - - - Delete the workflow from the notte console - - - Download the function code from the notte console as a python file - - - Fork a shared function into your own private function - - - Convert the workflow/run to a curl request - - - Get a function run by its ID - - - No description available - - - Get presigned URLs for the workflow run replay - - - Run the function code using the specified version and variables - - - Manually stop a function run by its ID - - - Update the workflow with a a new code version - + + + Initialize self + + + + + Initialize self + + + + + Delete the workflow from the notte console + + + + + Delete the workflow from the notte console + + + + + Download the function code from the notte console as a python file + + + + + Download the function code from the notte console as a python file + + + + + Fork a shared function into your own private function + + + + + Fork a shared function into your own private function + + + + + Convert the workflow/run to a curl request + + + + + Convert the workflow/run to a curl request + + + + + Get a function run by its ID + + + + + Get a function run by its ID + + + + + No description available + + + + + No description available + + + + + Get presigned URLs for the workflow run replay + + + + + Get presigned URLs for the workflow run replay + + + + + Run the function code using the specified version and variables + + + + + Run the function code using the specified version and variables + + + + + Manually stop a function run by its ID + + + + + Manually stop a function run by its ID + + + + + Update the workflow with a a new code version + + + + + Update the workflow with a a new code version + + ## Class Information diff --git a/docs/src/sdk-reference/nottefunction/replay.mdx b/docs/src/sdk-reference/nottefunction/replay.mdx index 6103fc1dd..5f5bad337 100644 --- a/docs/src/sdk-reference/nottefunction/replay.mdx +++ b/docs/src/sdk-reference/nottefunction/replay.mdx @@ -31,4 +31,4 @@ replay.download("workflow.mp4") ## Returns -[`ReplayResponse`](/sdk-reference/misc/replayresponse) +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md) diff --git a/docs/src/sdk-reference/nottefunction/run.mdx b/docs/src/sdk-reference/nottefunction/run.mdx index 3e41eed0e..aeec9b593 100644 --- a/docs/src/sdk-reference/nottefunction/run.mdx +++ b/docs/src/sdk-reference/nottefunction/run.mdx @@ -49,4 +49,4 @@ function.run(variable1="value1", variable2="value2") ## Returns -[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse) +[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse)[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse.md) diff --git a/docs/src/sdk-reference/nottefunction/stop_run.mdx b/docs/src/sdk-reference/nottefunction/stop_run.mdx index 3fdec6e01..531a82b37 100644 --- a/docs/src/sdk-reference/nottefunction/stop_run.mdx +++ b/docs/src/sdk-reference/nottefunction/stop_run.mdx @@ -13,4 +13,4 @@ description: "Manually stop a function run by its ID" ## Returns -[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse) +[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse)[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse.md) diff --git a/docs/src/sdk-reference/nottepersona/aemails.mdx b/docs/src/sdk-reference/nottepersona/aemails.mdx index 4cbd2eda3..98d1350b7 100644 --- a/docs/src/sdk-reference/nottepersona/aemails.mdx +++ b/docs/src/sdk-reference/nottepersona/aemails.mdx @@ -21,4 +21,4 @@ description: "No description available" ## Returns -`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)] +`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)[`EmailResponse`](/sdk-reference/misc/emailresponse.md)] diff --git a/docs/src/sdk-reference/nottepersona/asms.mdx b/docs/src/sdk-reference/nottepersona/asms.mdx index 0fa8bf16d..7e2941960 100644 --- a/docs/src/sdk-reference/nottepersona/asms.mdx +++ b/docs/src/sdk-reference/nottepersona/asms.mdx @@ -21,4 +21,4 @@ description: "No description available" ## Returns -`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)] +`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)[`SMSResponse`](/sdk-reference/misc/smsresponse.md)] diff --git a/docs/src/sdk-reference/nottepersona/create_number.mdx b/docs/src/sdk-reference/nottepersona/create_number.mdx index 5adf34ad5..c4e3a0951 100644 --- a/docs/src/sdk-reference/nottepersona/create_number.mdx +++ b/docs/src/sdk-reference/nottepersona/create_number.mdx @@ -15,4 +15,4 @@ persona.create_number() ## Returns -[`CreatePhoneNumberResponse`](/sdk-reference/misc/createphonenumberresponse) +[`CreatePhoneNumberResponse`](/sdk-reference/misc/createphonenumberresponse)[`CreatePhoneNumberResponse`](/sdk-reference/misc/createphonenumberresponse.md) diff --git a/docs/src/sdk-reference/nottepersona/delete_number.mdx b/docs/src/sdk-reference/nottepersona/delete_number.mdx index 4d0978587..5dd4899fd 100644 --- a/docs/src/sdk-reference/nottepersona/delete_number.mdx +++ b/docs/src/sdk-reference/nottepersona/delete_number.mdx @@ -13,4 +13,4 @@ persona.delete_number() ## Returns -[`DeletePhoneNumberResponse`](/sdk-reference/misc/deletephonenumberresponse) +[`DeletePhoneNumberResponse`](/sdk-reference/misc/deletephonenumberresponse)[`DeletePhoneNumberResponse`](/sdk-reference/misc/deletephonenumberresponse.md) diff --git a/docs/src/sdk-reference/nottepersona/emails.mdx b/docs/src/sdk-reference/nottepersona/emails.mdx index b3ff047c7..60bec1f3e 100644 --- a/docs/src/sdk-reference/nottepersona/emails.mdx +++ b/docs/src/sdk-reference/nottepersona/emails.mdx @@ -37,4 +37,4 @@ Use the `limit` and/or `timedelta` parameters to limit the number of emails retu ## Returns -`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)] +`Sequence`[[`EmailResponse`](/sdk-reference/misc/emailresponse)[`EmailResponse`](/sdk-reference/misc/emailresponse.md)] diff --git a/docs/src/sdk-reference/nottepersona/index.mdx b/docs/src/sdk-reference/nottepersona/index.mdx index 9c9f21928..b35faab04 100644 --- a/docs/src/sdk-reference/nottepersona/index.mdx +++ b/docs/src/sdk-reference/nottepersona/index.mdx @@ -19,97 +19,240 @@ Notte Personas come with complete digital identities: ## Methods - - Initialize self - - - Add credentials to the persona (generates a password and stores it in the vault) - - - No description available - - - No description available - - - No description available - - - Create a phone number to the persona - - - Delete the persona from the notte console - - - Delete the phone number from the persona - - - Read recent emails sent to the persona - - - Resets the resource to its initial state - - - Read recent sms messages sent to the persona - - - No description available - - - No description available - + + + Initialize self + + + + + Initialize self + + + + + Add credentials to the persona (generates a password and stores it in the vault) + + + + + Add credentials to the persona (generates a password and stores it in the vault) + + + + + No description available + + + + + No description available + + + + + No description available + + + + + No description available + + + + + No description available + + + + + No description available + + + + + Create a phone number to the persona + + + + + Create a phone number to the persona + + + + + Delete the persona from the notte console + + + + + Delete the persona from the notte console + + + + + Delete the phone number from the persona + + + + + Delete the phone number from the persona + + + + + Read recent emails sent to the persona + + + + + Read recent emails sent to the persona + + + + + Resets the resource to its initial state + + + + + Resets the resource to its initial state + + + + + Read recent sms messages sent to the persona + + + + + Read recent sms messages sent to the persona + + + + + No description available + + + + + No description available + + + + + No description available + + + + + No description available + + ## Class Information diff --git a/docs/src/sdk-reference/nottepersona/sms.mdx b/docs/src/sdk-reference/nottepersona/sms.mdx index 43d5f92c4..69890a9ce 100644 --- a/docs/src/sdk-reference/nottepersona/sms.mdx +++ b/docs/src/sdk-reference/nottepersona/sms.mdx @@ -36,4 +36,4 @@ Use the `limit` and/or `timedelta` parameters to limit the number of sms returne ## Returns -`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)] +`Sequence`[[`SMSResponse`](/sdk-reference/misc/smsresponse)[`SMSResponse`](/sdk-reference/misc/smsresponse.md)] diff --git a/docs/src/sdk-reference/nottevault/credential_fields_to_dict.mdx b/docs/src/sdk-reference/nottevault/credential_fields_to_dict.mdx index 709d93cca..d967e7392 100644 --- a/docs/src/sdk-reference/nottevault/credential_fields_to_dict.mdx +++ b/docs/src/sdk-reference/nottevault/credential_fields_to_dict.mdx @@ -9,4 +9,4 @@ description: "Convert a list of CredentialField objects to a credentials diction ## Returns -[`CredentialsDict`](/sdk-reference/misc/credentialsdict): Dictionary containing credential key-value pairs +[`CredentialsDict`](/sdk-reference/misc/credentialsdict)[`CredentialsDict`](/sdk-reference/misc/credentialsdict.md): Dictionary containing credential key-value pairs diff --git a/docs/src/sdk-reference/nottevault/get_credit_card.mdx b/docs/src/sdk-reference/nottevault/get_credit_card.mdx index 680b3ee91..92dba631a 100644 --- a/docs/src/sdk-reference/nottevault/get_credit_card.mdx +++ b/docs/src/sdk-reference/nottevault/get_credit_card.mdx @@ -8,4 +8,4 @@ description: "No description available" ## Returns -[`CreditCardDict`](/sdk-reference/misc/creditcarddict) +[`CreditCardDict`](/sdk-reference/misc/creditcarddict)[`CreditCardDict`](/sdk-reference/misc/creditcarddict.md) diff --git a/docs/src/sdk-reference/nottevault/get_credit_card_async.mdx b/docs/src/sdk-reference/nottevault/get_credit_card_async.mdx index a132e7cf2..fb331e349 100644 --- a/docs/src/sdk-reference/nottevault/get_credit_card_async.mdx +++ b/docs/src/sdk-reference/nottevault/get_credit_card_async.mdx @@ -9,4 +9,4 @@ description: "Retrieve credit card information (one for the whole vault)" ## Returns -[`CreditCardDict`](/sdk-reference/misc/creditcarddict): Dictionary containing credit card information +[`CreditCardDict`](/sdk-reference/misc/creditcarddict)[`CreditCardDict`](/sdk-reference/misc/creditcarddict.md): Dictionary containing credit card information diff --git a/docs/src/sdk-reference/nottevault/index.mdx b/docs/src/sdk-reference/nottevault/index.mdx index 713d7a253..098d5d831 100644 --- a/docs/src/sdk-reference/nottevault/index.mdx +++ b/docs/src/sdk-reference/nottevault/index.mdx @@ -10,244 +10,618 @@ Vault that fetches credentials stored using the sdk ## Methods - - Initialize the vault with an empty dictionary to track retrieved credentials - - - No description available - - - Store credentials for a given URL - - - No description available - - - Add credentials from environment variables for a given URL - - - Check if the action contains credentials - - - Convert a list of CredentialField objects to a credentials dictionary - - - Convert a credentials dictionary to a list of CredentialField objects - - - No description available - - - No description available - - - Remove credentials for a given URL - - - No description available - - - Remove saved credit card information - - - Generate a secure random password - - - No description available - - - Get credentials for a given URL - - - No description available - - - Retrieve credit card information (one for the whole vault) - - - Get the current map to replace text from previously used credentials back to their placeholder value - - - No description available - - - Check whether we hold a credential for a given website - - - Get detailed instructions for credential and payment handling - - - No description available - - - List urls for which we hold credentials - - - Get a copy of all previously retrieved credentials - - - No description available - - - Recursively replace strings using a mapping dictionary - - - Replace credentials in the action with actual values from the vault - - - Resets the resource to its initial state - - - No description available - - - Store credit card information (one for the whole vault) - - - No description available - - - No description available - - - Get system instructions for credential handling - + + + Initialize the vault with an empty dictionary to track retrieved credentials + + + + + Initialize the vault with an empty dictionary to track retrieved credentials + + + + + No description available + + + + + No description available + + + + + Store credentials for a given URL + + + + + Store credentials for a given URL + + + + + No description available + + + + + No description available + + + + + Add credentials from environment variables for a given URL + + + + + Add credentials from environment variables for a given URL + + + + + Check if the action contains credentials + + + + + Check if the action contains credentials + + + + + Convert a list of CredentialField objects to a credentials dictionary + + + + + Convert a list of CredentialField objects to a credentials dictionary + + + + + Convert a credentials dictionary to a list of CredentialField objects + + + + + Convert a credentials dictionary to a list of CredentialField objects + + + + + No description available + + + + + No description available + + + + + No description available + + + + + No description available + + + + + Remove credentials for a given URL + + + + + Remove credentials for a given URL + + + + + No description available + + + + + No description available + + + + + Remove saved credit card information + + + + + Remove saved credit card information + + + + + Generate a secure random password + + + + + Generate a secure random password + + + + + No description available + + + + + No description available + + + + + Get credentials for a given URL + + + + + Get credentials for a given URL + + + + + No description available + + + + + No description available + + + + + Retrieve credit card information (one for the whole vault) + + + + + Retrieve credit card information (one for the whole vault) + + + + + Get the current map to replace text from previously used credentials back to their placeholder value + + + + + Get the current map to replace text from previously used credentials back to their placeholder value + + + + + No description available + + + + + No description available + + + + + Check whether we hold a credential for a given website + + + + + Check whether we hold a credential for a given website + + + + + Get detailed instructions for credential and payment handling + + + + + Get detailed instructions for credential and payment handling + + + + + No description available + + + + + No description available + + + + + List urls for which we hold credentials + + + + + List urls for which we hold credentials + + + + + Get a copy of all previously retrieved credentials + + + + + Get a copy of all previously retrieved credentials + + + + + No description available + + + + + No description available + + + + + Recursively replace strings using a mapping dictionary + + + + + Recursively replace strings using a mapping dictionary + + + + + Replace credentials in the action with actual values from the vault + + + + + Replace credentials in the action with actual values from the vault + + + + + Resets the resource to its initial state + + + + + Resets the resource to its initial state + + + + + No description available + + + + + No description available + + + + + Store credit card information (one for the whole vault) + + + + + Store credit card information (one for the whole vault) + + + + + No description available + + + + + No description available + + + + + No description available + + + + + No description available + + + + + Get system instructions for credential handling + + + + + Get system instructions for credential handling + + ## Class Information diff --git a/docs/src/sdk-reference/nottevault/replace_credentials.mdx b/docs/src/sdk-reference/nottevault/replace_credentials.mdx index bc9985b68..6d69d4a69 100644 --- a/docs/src/sdk-reference/nottevault/replace_credentials.mdx +++ b/docs/src/sdk-reference/nottevault/replace_credentials.mdx @@ -23,7 +23,7 @@ description: "Replace credentials in the action with actual values from the vaul ## Returns -[`BaseAction`](/sdk-reference/misc/baseaction): Modified action with replaced credentials +[`BaseAction`](/sdk-reference/misc/baseaction)[`BaseAction`](/sdk-reference/misc/baseaction.md): Modified action with replaced credentials ## Raises diff --git a/docs/src/sdk-reference/remoteagent/async_watch_logs_and_wait.mdx b/docs/src/sdk-reference/remoteagent/async_watch_logs_and_wait.mdx index f47a750d6..0eb3da946 100644 --- a/docs/src/sdk-reference/remoteagent/async_watch_logs_and_wait.mdx +++ b/docs/src/sdk-reference/remoteagent/async_watch_logs_and_wait.mdx @@ -24,4 +24,4 @@ be instantaneous under high load ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse) +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md) diff --git a/docs/src/sdk-reference/remoteagent/index.mdx b/docs/src/sdk-reference/remoteagent/index.mdx index 0f3843af0..8f26a1ebe 100644 --- a/docs/src/sdk-reference/remoteagent/index.mdx +++ b/docs/src/sdk-reference/remoteagent/index.mdx @@ -31,76 +31,186 @@ concurrent agents, create separate RemoteAgent instances. ## Methods - - Create a new RemoteAgent instance with the specified configuration - - - Watch the logs of the agent and wait for completion asynchronously - - - Get the replay for the agent's session - - - Run an agent with the specified request parameters and wait for completion - - - Start the agent with the specified request parameters - - - Get the current status of the agent - - - Stop the currently running agent - - - Wait for the agent to complete its current task - - - Watch the logs of the agent - - - Watch the logs of the agent and wait for completion - + + + Create a new RemoteAgent instance with the specified configuration + + + + + Create a new RemoteAgent instance with the specified configuration + + + + + Watch the logs of the agent and wait for completion asynchronously + + + + + Watch the logs of the agent and wait for completion asynchronously + + + + + Get the replay for the agent's session + + + + + Get the replay for the agent's session + + + + + Run an agent with the specified request parameters and wait for completion + + + + + Run an agent with the specified request parameters and wait for completion + + + + + Start the agent with the specified request parameters + + + + + Start the agent with the specified request parameters + + + + + Get the current status of the agent + + + + + Get the current status of the agent + + + + + Stop the currently running agent + + + + + Stop the currently running agent + + + + + Wait for the agent to complete its current task + + + + + Wait for the agent to complete its current task + + + + + Watch the logs of the agent + + + + + Watch the logs of the agent + + + + + Watch the logs of the agent and wait for completion + + + + + Watch the logs of the agent and wait for completion + + ## Class Information diff --git a/docs/src/sdk-reference/remoteagent/replay.mdx b/docs/src/sdk-reference/remoteagent/replay.mdx index d5618d4bd..de171f179 100644 --- a/docs/src/sdk-reference/remoteagent/replay.mdx +++ b/docs/src/sdk-reference/remoteagent/replay.mdx @@ -27,4 +27,4 @@ description: "Get the replay for the agent's session" ## Returns -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Presigned URLs for HLS playlist and MP4 download. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Presigned URLs for HLS playlist and MP4 download. diff --git a/docs/src/sdk-reference/remoteagent/run.mdx b/docs/src/sdk-reference/remoteagent/run.mdx index ba6b2ba5e..290df810e 100644 --- a/docs/src/sdk-reference/remoteagent/run.mdx +++ b/docs/src/sdk-reference/remoteagent/run.mdx @@ -37,7 +37,7 @@ This function is synchronous and will block the main thread until the agent is c ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse): The final status response after task completion. +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md): The final status response after task completion. ## Raises diff --git a/docs/src/sdk-reference/remoteagent/start.mdx b/docs/src/sdk-reference/remoteagent/start.mdx index 3c8a81005..9154c408d 100644 --- a/docs/src/sdk-reference/remoteagent/start.mdx +++ b/docs/src/sdk-reference/remoteagent/start.mdx @@ -30,4 +30,4 @@ The agent will begin processing the task immediately after starting. ## Returns -[`AgentResponse`](/sdk-reference/misc/agentresponse): The initial response from starting the agent. +[`AgentResponse`](/sdk-reference/misc/agentresponse)[`AgentResponse`](/sdk-reference/misc/agentresponse.md): The initial response from starting the agent. diff --git a/docs/src/sdk-reference/remoteagent/status.mdx b/docs/src/sdk-reference/remoteagent/status.mdx index 2d2140b9d..35de7bc56 100644 --- a/docs/src/sdk-reference/remoteagent/status.mdx +++ b/docs/src/sdk-reference/remoteagent/status.mdx @@ -17,7 +17,7 @@ status = agent.status() ## Returns -[`LegacyAgentStatusResponse`](/sdk-reference/misc/legacyagentstatusresponse): The current status of the agent execution. +[`LegacyAgentStatusResponse`](/sdk-reference/misc/legacyagentstatusresponse)[`LegacyAgentStatusResponse`](/sdk-reference/misc/legacyagentstatusresponse.md): The current status of the agent execution. ## Raises diff --git a/docs/src/sdk-reference/remoteagent/stop.mdx b/docs/src/sdk-reference/remoteagent/stop.mdx index 30ef93177..f3ee891c0 100644 --- a/docs/src/sdk-reference/remoteagent/stop.mdx +++ b/docs/src/sdk-reference/remoteagent/stop.mdx @@ -12,7 +12,7 @@ The agent will stop processing its current task immediately. ## Returns -[`AgentResponse`](/sdk-reference/misc/agentresponse): The response from the stop operation. +[`AgentResponse`](/sdk-reference/misc/agentresponse)[`AgentResponse`](/sdk-reference/misc/agentresponse.md): The response from the stop operation. ## Raises diff --git a/docs/src/sdk-reference/remoteagent/wait.mdx b/docs/src/sdk-reference/remoteagent/wait.mdx index 316f07731..a6d2ebedb 100644 --- a/docs/src/sdk-reference/remoteagent/wait.mdx +++ b/docs/src/sdk-reference/remoteagent/wait.mdx @@ -13,7 +13,7 @@ The polling continues until either the agent completes or a timeout is reached. ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse): The final status response after completion. +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md): The final status response after completion. ## Raises diff --git a/docs/src/sdk-reference/remoteagent/watch_logs.mdx b/docs/src/sdk-reference/remoteagent/watch_logs.mdx index c5abcbc61..bb82ee387 100644 --- a/docs/src/sdk-reference/remoteagent/watch_logs.mdx +++ b/docs/src/sdk-reference/remoteagent/watch_logs.mdx @@ -13,4 +13,4 @@ description: "Watch the logs of the agent" ## Returns -`UnionType`[[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse), `None`] +`UnionType`[[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md), `None`] diff --git a/docs/src/sdk-reference/remoteagent/watch_logs_and_wait.mdx b/docs/src/sdk-reference/remoteagent/watch_logs_and_wait.mdx index 677f3bfe6..7abbf9522 100644 --- a/docs/src/sdk-reference/remoteagent/watch_logs_and_wait.mdx +++ b/docs/src/sdk-reference/remoteagent/watch_logs_and_wait.mdx @@ -13,4 +13,4 @@ description: "Watch the logs of the agent and wait for completion" ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse) +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md) diff --git a/docs/src/sdk-reference/remoteagentfallback/index.mdx b/docs/src/sdk-reference/remoteagentfallback/index.mdx index 2886c4d76..d837e0a6e 100644 --- a/docs/src/sdk-reference/remoteagentfallback/index.mdx +++ b/docs/src/sdk-reference/remoteagentfallback/index.mdx @@ -23,13 +23,24 @@ Attributes: ## Methods - - Initialize self - + + + Initialize self + + + + + Initialize self + + ## Class Information diff --git a/docs/src/sdk-reference/remotefilestorage/index.mdx b/docs/src/sdk-reference/remotefilestorage/index.mdx index 050335201..16c05b988 100644 --- a/docs/src/sdk-reference/remotefilestorage/index.mdx +++ b/docs/src/sdk-reference/remotefilestorage/index.mdx @@ -10,83 +10,204 @@ Base class for storage implementations that handle upload and download file stor ## Methods - - Initialize self - - - List files that have been downloaded into storage by the agents - - - List files that have been uploaded to storage - - - Stores a file that has been downloaded from a website in the current session - - - Returns the local path for a file - - - Return LLM instructions to append to the prompt - - - List all files in the download_dir - - - List all files from the upload_dir - - - Stores a file from the local path - - - No description available - - - Upload a file from your local machine to storage - + + + Initialize self + + + + + Initialize self + + + + + List files that have been downloaded into storage by the agents + + + + + List files that have been downloaded into storage by the agents + + + + + List files that have been uploaded to storage + + + + + List files that have been uploaded to storage + + + + + Stores a file that has been downloaded from a website in the current session + + + + + Stores a file that has been downloaded from a website in the current session + + + + + Returns the local path for a file + + + + + Returns the local path for a file + + + + + Return LLM instructions to append to the prompt + + + + + Return LLM instructions to append to the prompt + + + + + List all files in the download_dir + + + + + List all files in the download_dir + + + + + List all files from the upload_dir + + + + + List all files from the upload_dir + + + + + Stores a file from the local path + + + + + Stores a file from the local path + + + + + No description available + + + + + No description available + + + + + Upload a file from your local machine to storage + + + + + Upload a file from your local machine to storage + + ## Class Information diff --git a/docs/src/sdk-reference/remotefilestorage/list_downloaded_files.mdx b/docs/src/sdk-reference/remotefilestorage/list_downloaded_files.mdx index a96e288de..852d21a63 100644 --- a/docs/src/sdk-reference/remotefilestorage/list_downloaded_files.mdx +++ b/docs/src/sdk-reference/remotefilestorage/list_downloaded_files.mdx @@ -8,4 +8,4 @@ description: "List all files in the download_dir" ## Returns -`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)] +`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)[`FileInfo`](/sdk-reference/misc/fileinfo.md)] diff --git a/docs/src/sdk-reference/remotefilestorage/list_uploaded_files.mdx b/docs/src/sdk-reference/remotefilestorage/list_uploaded_files.mdx index 6e7e20ad2..342620687 100644 --- a/docs/src/sdk-reference/remotefilestorage/list_uploaded_files.mdx +++ b/docs/src/sdk-reference/remotefilestorage/list_uploaded_files.mdx @@ -8,4 +8,4 @@ description: "List all files from the upload_dir" ## Returns -`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)] +`list`[[`FileInfo`](/sdk-reference/misc/fileinfo)[`FileInfo`](/sdk-reference/misc/fileinfo.md)] diff --git a/docs/src/sdk-reference/remotesession/debug_info.mdx b/docs/src/sdk-reference/remotesession/debug_info.mdx index 704e81681..70f61a9b6 100644 --- a/docs/src/sdk-reference/remotesession/debug_info.mdx +++ b/docs/src/sdk-reference/remotesession/debug_info.mdx @@ -9,7 +9,7 @@ description: "Get detailed debug information for the session" ## Returns -[`SessionDebugResponse`](/sdk-reference/misc/sessiondebugresponse): Debug information for the session. +[`SessionDebugResponse`](/sdk-reference/misc/sessiondebugresponse)[`SessionDebugResponse`](/sdk-reference/misc/sessiondebugresponse.md): Debug information for the session. ## Raises diff --git a/docs/src/sdk-reference/remotesession/execute.mdx b/docs/src/sdk-reference/remotesession/execute.mdx index 4893387b0..ee51145e2 100644 --- a/docs/src/sdk-reference/remotesession/execute.mdx +++ b/docs/src/sdk-reference/remotesession/execute.mdx @@ -72,7 +72,7 @@ This syntax also supports Xpath (e.g. `xpath=/html/body/div[3]/div/button[1]`) o ## Returns -[`ExecutionResult`](/sdk-reference/misc/executionresult): Result containing execution details, any errors, and the updated session state. +[`ExecutionResult`](/sdk-reference/misc/executionresult)[`ExecutionResult`](/sdk-reference/misc/executionresult.md): Result containing execution details, any errors, and the updated session state. ## Raises diff --git a/docs/src/sdk-reference/remotesession/get_cookies.mdx b/docs/src/sdk-reference/remotesession/get_cookies.mdx index 3020ff535..d73d38ddd 100644 --- a/docs/src/sdk-reference/remotesession/get_cookies.mdx +++ b/docs/src/sdk-reference/remotesession/get_cookies.mdx @@ -16,7 +16,7 @@ with open("cookies.json", "w") as f: ## Returns -`list`[[`CookieDict`](/sdk-reference/misc/cookiedict)]: The response containing the list of cookies in the session. +`list`[[`CookieDict`](/sdk-reference/misc/cookiedict)[`CookieDict`](/sdk-reference/misc/cookiedict.md)]: The response containing the list of cookies in the session. ## Raises diff --git a/docs/src/sdk-reference/remotesession/index.mdx b/docs/src/sdk-reference/remotesession/index.mdx index ffd3f0426..48ff22279 100644 --- a/docs/src/sdk-reference/remotesession/index.mdx +++ b/docs/src/sdk-reference/remotesession/index.mdx @@ -19,135 +19,336 @@ Attributes: ## Methods - - Create a new RemoteSession instance with the specified configuration - - - Get the Chrome DevTools Protocol WebSocket URL for the session - - - Get detailed debug information for the session - - - Executes an action on the current session page - - - Gets cookies from the session - - - Observes the current session page - - - Get the trajectory offset of the session + + + Create a new RemoteSession instance with the specified configuration + + + + + Create a new RemoteSession instance with the specified configuration + + + + + Get the Chrome DevTools Protocol WebSocket URL for the session + + + + + Get the Chrome DevTools Protocol WebSocket URL for the session + + + + + Get detailed debug information for the session + + + + + Get detailed debug information for the session + + + + + Executes an action on the current session page + + + + + Executes an action on the current session page + + + + + Gets cookies from the session + + + + + Gets cookies from the session + + + + + Observes the current session page + + + + + Observes the current session page + + + + + Get the trajectory offset of the session -This is useful to start an agent that remembers information about steps -that happened before it started - - - Get presigned URLs for the session replay - - - Resets the resource to its initial state - - - Scrape the current page data - - - Uploads cookies to the session - - - Start the session using the configured request - - - Get the current status of the session - - - Stop the session and clean up resources - - - Open the viewer for the session based on the viewer_type - - - Opens live session replay in browser (frame by frame) in a new browser tab - - - Open a browser tab with the debug URL for visualizing the session - - - Returns a WebsocketJupyterDisplay for displaying live session replay in Jupyter notebook - + This is useful to start an agent that remembers information about steps + that happened before it started + + + + + Get the trajectory offset of the session + + This is useful to start an agent that remembers information about steps + that happened before it started + + + + + Get presigned URLs for the session replay + + + + + Get presigned URLs for the session replay + + + + + Resets the resource to its initial state + + + + + Resets the resource to its initial state + + + + + Scrape the current page data + + + + + Scrape the current page data + + + + + Uploads cookies to the session + + + + + Uploads cookies to the session + + + + + Start the session using the configured request + + + + + Start the session using the configured request + + + + + Get the current status of the session + + + + + Get the current status of the session + + + + + Stop the session and clean up resources + + + + + Stop the session and clean up resources + + + + + Open the viewer for the session based on the viewer_type + + + + + Open the viewer for the session based on the viewer_type + + + + + Opens live session replay in browser (frame by frame) in a new browser tab + + + + + Opens live session replay in browser (frame by frame) in a new browser tab + + + + + Open a browser tab with the debug URL for visualizing the session + + + + + Open a browser tab with the debug URL for visualizing the session + + + + + Returns a WebsocketJupyterDisplay for displaying live session replay in Jupyter notebook + + + + + Returns a WebsocketJupyterDisplay for displaying live session replay in Jupyter notebook + + ## Class Information diff --git a/docs/src/sdk-reference/remotesession/observe.mdx b/docs/src/sdk-reference/remotesession/observe.mdx index 1bf0bbd32..b4fa821f1 100644 --- a/docs/src/sdk-reference/remotesession/observe.mdx +++ b/docs/src/sdk-reference/remotesession/observe.mdx @@ -66,4 +66,4 @@ print(actions[0].model_dump()) ## Returns -`UnionType`[[`Observation`](/sdk-reference/misc/observation), `list`[`Annotated`[`UnionType`[[`ClickAction`](/sdk-reference/misc/clickaction), [`FillAction`](/sdk-reference/misc/fillaction), [`MultiFactorFillAction`](/sdk-reference/misc/multifactorfillaction), [`FallbackFillAction`](/sdk-reference/misc/fallbackfillaction), [`CheckAction`](/sdk-reference/misc/checkaction), [`SelectDropdownOptionAction`](/sdk-reference/misc/selectdropdownoptionaction), [`UploadFileAction`](/sdk-reference/misc/uploadfileaction), [`DownloadFileAction`](/sdk-reference/misc/downloadfileaction)], `annotation=NoneType required=True discriminator='type'`]]]: The formatted observation result from the API response when no instructions provided. list[InteractionActionUnion]: The filtered list of actions when instructions is provided. +`UnionType`[[`Observation`](/sdk-reference/misc/observation)[`Observation`](/sdk-reference/misc/observation.md), `list`[`Annotated`[`UnionType`[[`ClickAction`](/sdk-reference/misc/clickaction)[`ClickAction`](/sdk-reference/misc/clickaction.md), [`FillAction`](/sdk-reference/misc/fillaction)[`FillAction`](/sdk-reference/misc/fillaction.md), [`MultiFactorFillAction`](/sdk-reference/misc/multifactorfillaction)[`MultiFactorFillAction`](/sdk-reference/misc/multifactorfillaction.md), [`FallbackFillAction`](/sdk-reference/misc/fallbackfillaction)[`FallbackFillAction`](/sdk-reference/misc/fallbackfillaction.md), [`CheckAction`](/sdk-reference/misc/checkaction)[`CheckAction`](/sdk-reference/misc/checkaction.md), [`SelectDropdownOptionAction`](/sdk-reference/misc/selectdropdownoptionaction)[`SelectDropdownOptionAction`](/sdk-reference/misc/selectdropdownoptionaction.md), [`UploadFileAction`](/sdk-reference/misc/uploadfileaction)[`UploadFileAction`](/sdk-reference/misc/uploadfileaction.md), [`DownloadFileAction`](/sdk-reference/misc/downloadfileaction)[`DownloadFileAction`](/sdk-reference/misc/downloadfileaction.md)], `annotation=NoneType required=True discriminator='type'`]]]: The formatted observation result from the API response when no instructions provided. list[InteractionActionUnion]: The filtered list of actions when instructions is provided. diff --git a/docs/src/sdk-reference/remotesession/replay.mdx b/docs/src/sdk-reference/remotesession/replay.mdx index 2f0432b2b..4b675360c 100644 --- a/docs/src/sdk-reference/remotesession/replay.mdx +++ b/docs/src/sdk-reference/remotesession/replay.mdx @@ -33,7 +33,7 @@ to fail immediately if the replay is not yet available. ## Returns -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Presigned URLs for HLS playlist and MP4 download. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Presigned URLs for HLS playlist and MP4 download. ## Raises diff --git a/docs/src/sdk-reference/remotesession/scrape.mdx b/docs/src/sdk-reference/remotesession/scrape.mdx index e1bb85c48..a2006c74e 100644 --- a/docs/src/sdk-reference/remotesession/scrape.mdx +++ b/docs/src/sdk-reference/remotesession/scrape.mdx @@ -71,4 +71,4 @@ with client.Session() as session: ## Returns -`UnionType`[[`StructuredData[BaseModel]`](/sdk-reference/misc/structureddata), [`BaseModel`](/sdk-reference/misc/basemodel), `Dict`[`str`, `Any`], `str`, `list`[[`ImageData`](/sdk-reference/misc/imagedata)]]: An Observation object containing metadata, screenshot, action space, and data space. +`UnionType`[[`StructuredData[BaseModel]`](/sdk-reference/misc/structureddata)[`StructuredData[BaseModel]`](/sdk-reference/misc/structureddata.md), [`BaseModel`](/sdk-reference/misc/basemodel)[`BaseModel`](/sdk-reference/misc/basemodel.md), `Dict`[`str`, `Any`], `str`, `list`[[`ImageData`](/sdk-reference/misc/imagedata)[`ImageData`](/sdk-reference/misc/imagedata.md)]]: An Observation object containing metadata, screenshot, action space, and data space. diff --git a/docs/src/sdk-reference/remotesession/set_cookies.mdx b/docs/src/sdk-reference/remotesession/set_cookies.mdx index cf1472891..068b928a7 100644 --- a/docs/src/sdk-reference/remotesession/set_cookies.mdx +++ b/docs/src/sdk-reference/remotesession/set_cookies.mdx @@ -25,7 +25,7 @@ Accepts either cookies (list of dicts) or cookie_file (json file path) as argume ## Returns -[`SetCookiesResponse`](/sdk-reference/misc/setcookiesresponse): The response from the upload cookies request. +[`SetCookiesResponse`](/sdk-reference/misc/setcookiesresponse)[`SetCookiesResponse`](/sdk-reference/misc/setcookiesresponse.md): The response from the upload cookies request. ## Raises diff --git a/docs/src/sdk-reference/remotesession/status.mdx b/docs/src/sdk-reference/remotesession/status.mdx index 39d85204a..a93b891db 100644 --- a/docs/src/sdk-reference/remotesession/status.mdx +++ b/docs/src/sdk-reference/remotesession/status.mdx @@ -16,7 +16,7 @@ status = session.status() ## Returns -[`SessionResponse`](/sdk-reference/misc/sessionresponse): The current status information of the session. +[`SessionResponse`](/sdk-reference/misc/sessionresponse)[`SessionResponse`](/sdk-reference/misc/sessionresponse.md): The current status information of the session. ## Raises diff --git a/docs/src/sdk-reference/remotesession/viewer_notebook.mdx b/docs/src/sdk-reference/remotesession/viewer_notebook.mdx index b64c17188..6e23bd98f 100644 --- a/docs/src/sdk-reference/remotesession/viewer_notebook.mdx +++ b/docs/src/sdk-reference/remotesession/viewer_notebook.mdx @@ -14,4 +14,4 @@ session.viewer_notebook() ## Returns -[`WebsocketService`](/sdk-reference/misc/websocketservice) +[`WebsocketService`](/sdk-reference/misc/websocketservice)[`WebsocketService`](/sdk-reference/misc/websocketservice.md) From 79985d75f83657a5ec22eb781f734b3ee6a643c7 Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 29 Apr 2026 18:37:22 -0700 Subject: [PATCH 4/5] docs: fix link wrapper to skip images and OpenAPI hub paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first preprocessor pass wrapped two patterns it shouldn't have, both flagged by the broken-link checker: * Image links — the inline-link regex matched the [alt](src) portion of ![alt](src), producing !... with .md appended to image filenames (e.g. /images/bua.png.md). Fix: regex now requires no preceding ! via negative lookbehind. * /api-reference Cards — that root path is an OpenAPI-rendered hub page. Mintlify generates it at runtime and doesn't expose a .md export, so /api-reference.md returns 404. Fix: an EXCLUDE_HREFS set the script consults before wrapping; /api-reference is the only entry for now. Also reverts the 6 sites that were already incorrectly wrapped: 4 image links (concepts/bua, concepts/personas, concepts/vaults, integrations/mcp) and 2 /api-reference Cards (features/sessions/puppeteer, features/functions/invocations). A dry-run on the full corpus after these changes is a no-op, confirming the exclusions land only the wrapping that should be there. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/concepts/bua.mdx | 2 +- docs/src/concepts/personas.mdx | 2 +- docs/src/concepts/vaults.mdx | 2 +- docs/src/features/functions/invocations.mdx | 13 +++---------- docs/src/features/sessions/puppeteer.mdx | 13 +++---------- docs/src/integrations/mcp.mdx | 2 +- docs/src/scripts/wrap_md_links.py | 19 ++++++++++++++++--- 7 files changed, 26 insertions(+), 27 deletions(-) diff --git a/docs/src/concepts/bua.mdx b/docs/src/concepts/bua.mdx index 89fff0eed..4930217db 100644 --- a/docs/src/concepts/bua.mdx +++ b/docs/src/concepts/bua.mdx @@ -19,7 +19,7 @@ BUA is available through the `bua/completions` endpoint. Input-wise, on top of the traditional CUA Screenshot + Prompt approach, BUA also leverages the DOM of the page for improved understanding and reasoning of web pages. This is explained in the figure below. -![BUA Explained](/images/bua.png)[BUA Explained](/images/bua.png.md) +![BUA Explained](/images/bua.png) diff --git a/docs/src/concepts/personas.mdx b/docs/src/concepts/personas.mdx index f571f5fe7..97d82a010 100644 --- a/docs/src/concepts/personas.mdx +++ b/docs/src/concepts/personas.mdx @@ -39,7 +39,7 @@ Notte Personas provide automated identity management for AI agents, enabling the ## How it works -![persona-workflow](/images/persona-workflow.png)[persona-workflow](/images/persona-workflow.png.md) +![persona-workflow](/images/persona-workflow.png) Personas act as complete digital identities that your AI agents can assume during execution. When an agent needs to create an account or authenticate with a service, it uses the persona's credentials and communication channels to complete the entire flow autonomously. diff --git a/docs/src/concepts/vaults.mdx b/docs/src/concepts/vaults.mdx index e4f10fa1a..c2ca1a041 100644 --- a/docs/src/concepts/vaults.mdx +++ b/docs/src/concepts/vaults.mdx @@ -22,7 +22,7 @@ Your credentials are protected with multiple layers of security: ## How it works -![vault-fill-action](/images/vault-fill-action.png)[vault-fill-action](/images/vault-fill-action.png.md) +![vault-fill-action](/images/vault-fill-action.png) The Vault acts as an intermediary between the LLM agent and the browser session. Some actions like `FillActions` may contain secure information such as passwords, credit card numbers, MFA secrets, etc. diff --git a/docs/src/features/functions/invocations.mdx b/docs/src/features/functions/invocations.mdx index 8939b329f..703b70bb2 100644 --- a/docs/src/features/functions/invocations.mdx +++ b/docs/src/features/functions/invocations.mdx @@ -259,14 +259,7 @@ Functions have rate limits based on your plan: - - - Full API documentation - - - - - Full API documentation - - + + Full API documentation + diff --git a/docs/src/features/sessions/puppeteer.mdx b/docs/src/features/sessions/puppeteer.mdx index 65b82b659..7a7cb5573 100644 --- a/docs/src/features/sessions/puppeteer.mdx +++ b/docs/src/features/sessions/puppeteer.mdx @@ -174,14 +174,7 @@ For Python-based automation, consider using Playwright with Notte instead, as it - - - Explore the Notte REST API - - - - - Explore the Notte REST API - - + + Explore the Notte REST API + diff --git a/docs/src/integrations/mcp.mdx b/docs/src/integrations/mcp.mdx index 44aff2250..27c8603df 100644 --- a/docs/src/integrations/mcp.mdx +++ b/docs/src/integrations/mcp.mdx @@ -11,7 +11,7 @@ At Notte, we've developed an MCP server implementation focused specifically on b ## Notte-MCP: Browser Control for AI Agents -![Notte-MCP](/images/mcp.png)[Notte-MCP](/images/mcp.png.md) +![Notte-MCP](/images/mcp.png) The Notte-MCP implementation directly mirrors the [Notte API offering](https://docs.notte.cc). With Notte-MCP, LLM systems can extend their capabilities to browser control, solving even complex tasks: diff --git a/docs/src/scripts/wrap_md_links.py b/docs/src/scripts/wrap_md_links.py index 4395875fd..24ea86561 100644 --- a/docs/src/scripts/wrap_md_links.py +++ b/docs/src/scripts/wrap_md_links.py @@ -36,11 +36,18 @@ EXCLUDE_DIR_NAMES = {"sdk-reference", "snippets", "images", "logo", "sniptest", "testers", "tests", "scripts"} AUTO_GEN_MARKER = "{/* Auto-generated mdx file. Do not edit! */}" +# Hrefs whose .md export doesn't exist on the deployed site, so wrapping +# would produce broken links. /api-reference is OpenAPI-rendered by Mintlify +# at runtime — only the 3 hand-authored subpages have .md exports. +EXCLUDE_HREFS = {"/api-reference"} + VIS_HUMANS_OPEN = '' VIS_AGENTS_OPEN = '' VIS_CLOSE = "" -INLINE_LINK_RE = re.compile(r"\[(?P[^\]\n]+)\]\((?P/[^)\s]*)\)") +# Negative lookbehind on `!` so we don't match the `[alt](src)` portion of +# an `![alt](src)` image — those should stay as plain markdown images. +INLINE_LINK_RE = re.compile(r"(?[^\]\n]+)\]\((?P/[^)\s]*)\)") CARD_OPEN_RE = re.compile(r']*?\shref="(?P/[^"]+)"[^>]*>') VIS_OPEN_RE = re.compile(r'') @@ -49,6 +56,12 @@ def is_external(path: str) -> bool: return "://" in path or path.startswith(("mailto:", "tel:", "#")) +def is_excluded(path: str) -> bool: + """Path resolves to a page that doesn't have a working .md export.""" + base = path.split("#", 1)[0].split("?", 1)[0] + return base in EXCLUDE_HREFS + + def add_md_suffix(path: str) -> str: """Insert .md before any anchor or query string.""" rest, anchor = (path.split("#", 1) + [""])[:2] @@ -113,7 +126,7 @@ def transform_inline_links(text: str) -> tuple[str, int]: if in_any_region(idx, code_regions) or in_any_region(idx, vis_regions): continue path = m.group("path") - if is_external(path): + if is_external(path) or is_excluded(path): continue text_part = m.group("text") md_path = add_md_suffix(path) @@ -164,7 +177,7 @@ def transform_cards(text: str) -> tuple[str, int]: if in_any_region(open_start, code_regions) or in_any_region(open_start, vis_regions): continue path = m.group("path") - if is_external(path): + if is_external(path) or is_excluded(path): continue close_start = find_matching_card_close(new, m.end()) if close_start == -1: From dd3ce4a62b3c06d9ec9e116e26b61fb82c3777ba Mon Sep 17 00:00:00 2001 From: Leo Date: Wed, 29 Apr 2026 18:52:19 -0700 Subject: [PATCH 5/5] docs: include sdk-reference manual pages + fix overlap-region matcher MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The earlier preprocessor pass excluded sdk-reference/ wholesale, which also skipped the 12 hand-authored pages there: 3 root files (authentication, errors, rate-limits) and 9 under sdk-reference/manual/ (agent, agent_fallback, file_storage, function, index, persona, session, vault, workflow). Those .md exports were the user-visible regression. While running on the broader sdk-reference/ tree, two latent bugs surfaced and are fixed in this commit: * Inline-link regex matched across wrapper boundaries in sphinx-gen output like `list[..., ...]` — the outer `[` was unwrapped, the inner `]` was inside a wrapper, so the regex captured a span that crossed the boundary. Fix: an overlaps_any_region check rejects matches whose start is outside but end is inside (or vice versa). * Cards in sdk-reference/remoteworkflow/* and a handful of "## Returns" inline links in other sphinx-gen pages were unwrapped because the prior sphinx_mintlify regen used a stale build cache (and the Returns-formatter is a code path that still needs wrapping in sphinx_mintlify). Until the next clean regen, the preprocessor wraps them — output is functionally identical and a future regen will replace them. Net: 17 files changed, 20 inline links + 17 Cards wrapped. Dry-run is a no-op. The sphinx_mintlify TODO in /home/lboesinger/github/work/ sphinx_mintlify/MD_EXPORT_VISIBILITY.md still applies. Co-Authored-By: Claude Opus 4.7 (1M context) --- docs/src/scripts/wrap_md_links.py | 20 +- docs/src/sdk-reference/agentsclient/arun.mdx | 2 +- .../agentsclient/arun_custom.mdx | 2 +- .../src/sdk-reference/agentsclient/replay.mdx | 4 +- .../agentsclient/workflow_code.mdx | 2 +- .../agentsclient/workflow_create.mdx | 2 +- docs/src/sdk-reference/manual/index.mdx | 150 +++++++--- docs/src/sdk-reference/misc/agentsclient.mdx | 2 +- docs/src/sdk-reference/misc/mp4replay.mdx | 2 +- .../src/sdk-reference/misc/remoteworkflow.mdx | 10 +- .../src/sdk-reference/misc/sessionsclient.mdx | 2 +- docs/src/sdk-reference/remoteagent/arun.mdx | 2 +- .../src/sdk-reference/remoteworkflow/fork.mdx | 2 +- .../sdk-reference/remoteworkflow/get_run.mdx | 2 +- .../sdk-reference/remoteworkflow/index.mdx | 275 +++++++++++++----- .../sdk-reference/remoteworkflow/replay.mdx | 2 +- docs/src/sdk-reference/remoteworkflow/run.mdx | 2 +- .../sdk-reference/remoteworkflow/stop_run.mdx | 2 +- 18 files changed, 344 insertions(+), 141 deletions(-) diff --git a/docs/src/scripts/wrap_md_links.py b/docs/src/scripts/wrap_md_links.py index 24ea86561..e1f4684ec 100644 --- a/docs/src/scripts/wrap_md_links.py +++ b/docs/src/scripts/wrap_md_links.py @@ -33,7 +33,11 @@ ROOT = Path(__file__).resolve().parent.parent # docs/src -EXCLUDE_DIR_NAMES = {"sdk-reference", "snippets", "images", "logo", "sniptest", "testers", "tests", "scripts"} +# sdk-reference/ is intentionally NOT excluded: the bulk is sphinx_mintlify +# auto-gen (already wrapped post-regen, so idempotency skips it) and the +# rest is hand-authored (sdk-reference/*.mdx, sdk-reference/manual/**) which +# we DO want to wrap. +EXCLUDE_DIR_NAMES = {"snippets", "images", "logo", "sniptest", "testers", "tests", "scripts"} AUTO_GEN_MARKER = "{/* Auto-generated mdx file. Do not edit! */}" # Hrefs whose .md export doesn't exist on the deployed site, so wrapping @@ -115,6 +119,14 @@ def in_any_region(idx: int, regions: list[tuple[int, int]]) -> bool: return any(s <= idx < e for s, e in regions) +def overlaps_any_region(start: int, end: int, regions: list[tuple[int, int]]) -> bool: + """True if [start, end) overlaps any region. Catches matches that span + a Visibility-wrapper boundary, which happens when sphinx_mintlify emits + e.g. `list[..., ...]` — + the outer `[` is unwrapped but the inner `]` is inside a wrapper.""" + return any(s < end and start < e for s, e in regions) + + def transform_inline_links(text: str) -> tuple[str, int]: code_regions = find_code_regions(text) vis_regions = find_visibility_regions(text) @@ -123,7 +135,11 @@ def transform_inline_links(text: str) -> tuple[str, int]: count = 0 for m in INLINE_LINK_RE.finditer(text): idx = m.start() - if in_any_region(idx, code_regions) or in_any_region(idx, vis_regions): + if in_any_region(idx, code_regions): + continue + # Use overlap (not just start) for vis_regions: a match that begins + # outside a wrapper but extends into one is matching across boundaries. + if overlaps_any_region(idx, m.end(), vis_regions): continue path = m.group("path") if is_external(path) or is_excluded(path): diff --git a/docs/src/sdk-reference/agentsclient/arun.mdx b/docs/src/sdk-reference/agentsclient/arun.mdx index d288092e1..8e8a975f1 100644 --- a/docs/src/sdk-reference/agentsclient/arun.mdx +++ b/docs/src/sdk-reference/agentsclient/arun.mdx @@ -57,4 +57,4 @@ designated endpoint, updates the last agent response, and returns the resulting ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse) +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md) diff --git a/docs/src/sdk-reference/agentsclient/arun_custom.mdx b/docs/src/sdk-reference/agentsclient/arun_custom.mdx index 31b2bfcf0..167b8933a 100644 --- a/docs/src/sdk-reference/agentsclient/arun_custom.mdx +++ b/docs/src/sdk-reference/agentsclient/arun_custom.mdx @@ -16,4 +16,4 @@ description: "No description available" ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse) +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md) diff --git a/docs/src/sdk-reference/agentsclient/replay.mdx b/docs/src/sdk-reference/agentsclient/replay.mdx index 0274e7b2e..435e383f3 100644 --- a/docs/src/sdk-reference/agentsclient/replay.mdx +++ b/docs/src/sdk-reference/agentsclient/replay.mdx @@ -4,7 +4,7 @@ description: "Get presigned URLs for the specified agent's session replay" --- - This method is deprecated. Use [`session.replay()`](/sdk-reference/remotesession/replay) instead. + This method is deprecated. Use [`session.replay()`](/sdk-reference/remotesession/replay)[`session.replay()`](/sdk-reference/remotesession/replay.md) instead. ```python @@ -35,4 +35,4 @@ replay.download("replay.mp4") ## Returns -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Contains presigned URLs for MP4 download and HLS playlist. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Contains presigned URLs for MP4 download and HLS playlist. diff --git a/docs/src/sdk-reference/agentsclient/workflow_code.mdx b/docs/src/sdk-reference/agentsclient/workflow_code.mdx index 7839b32de..e759d2d89 100644 --- a/docs/src/sdk-reference/agentsclient/workflow_code.mdx +++ b/docs/src/sdk-reference/agentsclient/workflow_code.mdx @@ -22,7 +22,7 @@ resulting script is stored internally before being returned. ## Returns -[`AgentWorkflowCodeResponse`](/sdk-reference/misc/agentworkflowcoderesponse): The script that reproduces the steps of the specified agent +[`AgentWorkflowCodeResponse`](/sdk-reference/misc/agentworkflowcoderesponse)[`AgentWorkflowCodeResponse`](/sdk-reference/misc/agentworkflowcoderesponse.md): The script that reproduces the steps of the specified agent ## Raises diff --git a/docs/src/sdk-reference/agentsclient/workflow_create.mdx b/docs/src/sdk-reference/agentsclient/workflow_create.mdx index cd8a7d196..13692cb41 100644 --- a/docs/src/sdk-reference/agentsclient/workflow_create.mdx +++ b/docs/src/sdk-reference/agentsclient/workflow_create.mdx @@ -19,7 +19,7 @@ resulting script is stored internally before being returned. ## Returns -[`GetWorkflowResponse`](/sdk-reference/misc/getworkflowresponse): The workflow that reproduces the steps of the agent +[`GetWorkflowResponse`](/sdk-reference/misc/getworkflowresponse)[`GetWorkflowResponse`](/sdk-reference/misc/getworkflowresponse.md): The workflow that reproduces the steps of the agent ## Raises diff --git a/docs/src/sdk-reference/manual/index.mdx b/docs/src/sdk-reference/manual/index.mdx index aeb200b62..0b10791df 100644 --- a/docs/src/sdk-reference/manual/index.mdx +++ b/docs/src/sdk-reference/manual/index.mdx @@ -23,52 +23,118 @@ From there, you're able to create browser sessions, run new agents, or manage cr ## Available Operations - - List and manage browser sessions - - - List and manage automation agents - - - Create and manage functions for your automations - + + + List and manage browser sessions + + + + + List and manage browser sessions + + + + + List and manage automation agents + + + + + List and manage automation agents + + + + + Create and manage functions for your automations + + + + + Create and manage functions for your automations + + ## Available Tooling for your agents - - Upload and download files to and from your agents - - - Create and manage personas - - - Create and manage secure credential vaults for your agents - + + + Upload and download files to and from your agents + + + + + Upload and download files to and from your agents + + + + + Create and manage personas + + + + + Create and manage personas + + + + + Create and manage secure credential vaults for your agents + + + + + Create and manage secure credential vaults for your agents + + diff --git a/docs/src/sdk-reference/misc/agentsclient.mdx b/docs/src/sdk-reference/misc/agentsclient.mdx index 823a0cfe6..7bc907ae0 100644 --- a/docs/src/sdk-reference/misc/agentsclient.mdx +++ b/docs/src/sdk-reference/misc/agentsclient.mdx @@ -116,7 +116,7 @@ Get presigned URLs for the specified agent's session replay. Deprecated — use **Returns:** -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Contains presigned URLs for MP4 download and HLS playlist. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Contains presigned URLs for MP4 download and HLS playlist. --- diff --git a/docs/src/sdk-reference/misc/mp4replay.mdx b/docs/src/sdk-reference/misc/mp4replay.mdx index 6a2705d64..972e71f74 100644 --- a/docs/src/sdk-reference/misc/mp4replay.mdx +++ b/docs/src/sdk-reference/misc/mp4replay.mdx @@ -5,7 +5,7 @@ description: "Local MP4 replay data wrapper (for local browser sessions)" This class is used internally for local session replays. For cloud/API replays, - see [`ReplayResponse`](/sdk-reference/misc/replayresponse) which provides presigned + see [`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md) which provides presigned URLs for downloading MP4 files. diff --git a/docs/src/sdk-reference/misc/remoteworkflow.mdx b/docs/src/sdk-reference/misc/remoteworkflow.mdx index 66a27f7f9..244f02757 100644 --- a/docs/src/sdk-reference/misc/remoteworkflow.mdx +++ b/docs/src/sdk-reference/misc/remoteworkflow.mdx @@ -43,7 +43,7 @@ Fork a shared workflow into your own private workflow **Returns:** -[`RemoteWorkflow`](/sdk-reference/misc/remoteworkflow) +[`RemoteWorkflow`](/sdk-reference/misc/remoteworkflow)[`RemoteWorkflow`](/sdk-reference/misc/remoteworkflow.md) --- @@ -71,7 +71,7 @@ Get a function run by its ID **Returns:** -[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse) +[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse)[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse.md) --- @@ -103,7 +103,7 @@ Get presigned URLs for the workflow run replay. **Returns:** -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Contains presigned URLs for MP4 download and HLS playlist. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Contains presigned URLs for MP4 download and HLS playlist. --- @@ -117,7 +117,7 @@ Run the function code using the specified version and variables **Returns:** -[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse) +[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse)[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse.md) --- @@ -131,7 +131,7 @@ Manually stop a function run by its ID **Returns:** -[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse) +[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse)[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse.md) --- diff --git a/docs/src/sdk-reference/misc/sessionsclient.mdx b/docs/src/sdk-reference/misc/sessionsclient.mdx index 20674cb9c..df759fd5f 100644 --- a/docs/src/sdk-reference/misc/sessionsclient.mdx +++ b/docs/src/sdk-reference/misc/sessionsclient.mdx @@ -150,7 +150,7 @@ Get presigned URLs for session replay. **Returns:** -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Contains presigned URLs for MP4 download and HLS playlist. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Contains presigned URLs for MP4 download and HLS playlist. --- diff --git a/docs/src/sdk-reference/remoteagent/arun.mdx b/docs/src/sdk-reference/remoteagent/arun.mdx index ef428c089..f0f3f1a6a 100644 --- a/docs/src/sdk-reference/remoteagent/arun.mdx +++ b/docs/src/sdk-reference/remoteagent/arun.mdx @@ -30,4 +30,4 @@ In future versions, this might be implemented as a true async operation. ## Returns -[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse): The final status response after task completion. +[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse)[`AgentStatusResponse`](/sdk-reference/misc/agentstatusresponse.md): The final status response after task completion. diff --git a/docs/src/sdk-reference/remoteworkflow/fork.mdx b/docs/src/sdk-reference/remoteworkflow/fork.mdx index 7632de1d3..5199a8495 100644 --- a/docs/src/sdk-reference/remoteworkflow/fork.mdx +++ b/docs/src/sdk-reference/remoteworkflow/fork.mdx @@ -16,4 +16,4 @@ The forked workflow is only accessible to you and you can update it as you want ## Returns -[`RemoteWorkflow`](/sdk-reference/misc/remoteworkflow) +[`RemoteWorkflow`](/sdk-reference/misc/remoteworkflow)[`RemoteWorkflow`](/sdk-reference/misc/remoteworkflow.md) diff --git a/docs/src/sdk-reference/remoteworkflow/get_run.mdx b/docs/src/sdk-reference/remoteworkflow/get_run.mdx index 3f5869fe7..4e3b6d181 100644 --- a/docs/src/sdk-reference/remoteworkflow/get_run.mdx +++ b/docs/src/sdk-reference/remoteworkflow/get_run.mdx @@ -13,4 +13,4 @@ description: "Get a function run by its ID" ## Returns -[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse) +[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse)[`GetFunctionRunResponse`](/sdk-reference/misc/getfunctionrunresponse.md) diff --git a/docs/src/sdk-reference/remoteworkflow/index.mdx b/docs/src/sdk-reference/remoteworkflow/index.mdx index 9ce4040be..d25b5e3ee 100644 --- a/docs/src/sdk-reference/remoteworkflow/index.mdx +++ b/docs/src/sdk-reference/remoteworkflow/index.mdx @@ -12,83 +12,204 @@ Workflows are saved in the notte console for easy access and versioning for user ## Methods - - Initialize self - - - Delete the workflow from the notte console - - - Download the function code from the notte console as a python file - - - Fork a shared workflow into your own private workflow - - - Convert the workflow/run to a curl request - - - Get a function run by its ID - - - No description available - - - Replay the workflow run - - - Run the function code using the specified version and variables - - - Manually stop a function run by its ID - - - Update the workflow with a a new code version - + + + Initialize self + + + + + Initialize self + + + + + Delete the workflow from the notte console + + + + + Delete the workflow from the notte console + + + + + Download the function code from the notte console as a python file + + + + + Download the function code from the notte console as a python file + + + + + Fork a shared workflow into your own private workflow + + + + + Fork a shared workflow into your own private workflow + + + + + Convert the workflow/run to a curl request + + + + + Convert the workflow/run to a curl request + + + + + Get a function run by its ID + + + + + Get a function run by its ID + + + + + No description available + + + + + No description available + + + + + Replay the workflow run + + + + + Replay the workflow run + + + + + Run the function code using the specified version and variables + + + + + Run the function code using the specified version and variables + + + + + Manually stop a function run by its ID + + + + + Manually stop a function run by its ID + + + + + Update the workflow with a a new code version + + + + + Update the workflow with a a new code version + + ## Class Information diff --git a/docs/src/sdk-reference/remoteworkflow/replay.mdx b/docs/src/sdk-reference/remoteworkflow/replay.mdx index cbde0e912..5cc6c8ced 100644 --- a/docs/src/sdk-reference/remoteworkflow/replay.mdx +++ b/docs/src/sdk-reference/remoteworkflow/replay.mdx @@ -29,7 +29,7 @@ replay.download("run_replay.mp4") ## Returns -[`ReplayResponse`](/sdk-reference/misc/replayresponse): Contains presigned URLs for MP4 download and HLS playlist. +[`ReplayResponse`](/sdk-reference/misc/replayresponse)[`ReplayResponse`](/sdk-reference/misc/replayresponse.md): Contains presigned URLs for MP4 download and HLS playlist. ## Raises diff --git a/docs/src/sdk-reference/remoteworkflow/run.mdx b/docs/src/sdk-reference/remoteworkflow/run.mdx index e9c268290..5e2d59225 100644 --- a/docs/src/sdk-reference/remoteworkflow/run.mdx +++ b/docs/src/sdk-reference/remoteworkflow/run.mdx @@ -46,4 +46,4 @@ function.run(variable1="value1", variable2="value2") ## Returns -[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse) +[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse)[`FunctionRunResponse`](/sdk-reference/misc/functionrunresponse.md) diff --git a/docs/src/sdk-reference/remoteworkflow/stop_run.mdx b/docs/src/sdk-reference/remoteworkflow/stop_run.mdx index 3fdec6e01..531a82b37 100644 --- a/docs/src/sdk-reference/remoteworkflow/stop_run.mdx +++ b/docs/src/sdk-reference/remoteworkflow/stop_run.mdx @@ -13,4 +13,4 @@ description: "Manually stop a function run by its ID" ## Returns -[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse) +[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse)[`UpdateFunctionRunResponse`](/sdk-reference/misc/updatefunctionrunresponse.md)