diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de5ff0c..9967e04 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -283,11 +283,11 @@ jobs: tag_name: v${{ steps.version.outputs.version }} name: Release v${{ steps.version.outputs.version }} body: | - Release v${{ steps.version.outputs.version }} of predicatelabs + Release v${{ steps.version.outputs.version }} of predicate-sdk ## Installation ```bash - pip install predicatelabs==${{ steps.version.outputs.version }} + pip install predicate-sdk==${{ steps.version.outputs.version }} ``` draft: false prerelease: false diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3bd6a8d..2d15829 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,7 @@ jobs: shell: bash run: | pip cache purge || true - pip uninstall -y predicatelabs || true + pip uninstall -y predicate-sdk predicatelabs || true # Aggressively clean any bytecode cache (cross-platform Python approach) python -c "import pathlib; [p.unlink() for p in pathlib.Path('.').rglob('*.pyc')]" || true python -c "import pathlib, shutil; [shutil.rmtree(p) for p in pathlib.Path('.').rglob('__pycache__') if p.is_dir()]" || true diff --git a/README.md b/README.md index cd2b51a..72b83b3 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,14 @@ The core loop is: ## Install ```bash -pip install predicatelabs +pip install predicate-sdk +playwright install chromium +``` + +If you’re developing from source (this repo), install the local checkout instead: + +```bash +pip install -e . playwright install chromium ``` diff --git a/examples/browser-use/README.md b/examples/browser-use/README.md index 1454d56..4e28b87 100644 --- a/examples/browser-use/README.md +++ b/examples/browser-use/README.md @@ -16,13 +16,13 @@ This directory contains examples for integrating [Sentience](https://github.com/ Install both packages together using the optional dependency: ```bash -pip install "predicatelabs[browser-use]" +pip install "predicate-sdk[browser-use]" ``` Or install separately: ```bash -pip install predicatelabs browser-use +pip install predicate-sdk browser-use ``` ## Quick Start diff --git a/examples/browser-use/integration.py b/examples/browser-use/integration.py index dc63974..04cb440 100644 --- a/examples/browser-use/integration.py +++ b/examples/browser-use/integration.py @@ -6,10 +6,10 @@ using Sentience's snapshot-based grounding instead of coordinate estimation. Requirements: - pip install "predicatelabs[browser-use]" python-dotenv + pip install "predicate-sdk[browser-use]" python-dotenv Or install separately: - pip install predicatelabs browser-use python-dotenv + pip install predicate-sdk browser-use python-dotenv Usage: python examples/browser-use/integration.py @@ -240,7 +240,7 @@ async def example_with_sentience_context() -> None: print("Extension path:", get_extension_dir()) print() print("To run with a real browser:") - print(' 1. pip install "predicatelabs[browser-use]" python-dotenv') + print(' 1. pip install "predicate-sdk[browser-use]" python-dotenv') print(" 2. Uncomment the browser-use imports and code sections") print(" 3. Run: python examples/browser-use/integration.py") diff --git a/examples/lang-chain/README.md b/examples/lang-chain/README.md index 6857d7c..789dcaf 100644 --- a/examples/lang-chain/README.md +++ b/examples/lang-chain/README.md @@ -5,7 +5,7 @@ These examples show how to use Sentience as a **tool layer** inside LangChain an Install: ```bash -pip install predicatelabs[langchain] +pip install predicate-sdk[langchain] ``` Examples: diff --git a/examples/lang-chain/langchain_tools_demo.py b/examples/lang-chain/langchain_tools_demo.py index 781cc67..0c7f250 100644 --- a/examples/lang-chain/langchain_tools_demo.py +++ b/examples/lang-chain/langchain_tools_demo.py @@ -2,7 +2,7 @@ Example: Build Sentience LangChain tools (async-only). Install: - pip install predicatelabs[langchain] + pip install predicate-sdk[langchain] Run: python examples/lang-chain/langchain_tools_demo.py diff --git a/examples/lang-chain/langgraph_self_correcting_graph.py b/examples/lang-chain/langgraph_self_correcting_graph.py index 4f81163..abda07f 100644 --- a/examples/lang-chain/langgraph_self_correcting_graph.py +++ b/examples/lang-chain/langgraph_self_correcting_graph.py @@ -2,7 +2,7 @@ LangGraph reference example: Sentience observe → act → verify → branch (self-correcting). Install: - pip install predicatelabs[langchain] + pip install predicate-sdk[langchain] Run: python examples/lang-chain/langgraph_self_correcting_graph.py diff --git a/examples/langgraph/sentience_self_correcting_graph.py b/examples/langgraph/sentience_self_correcting_graph.py index f974c5b..8e94b52 100644 --- a/examples/langgraph/sentience_self_correcting_graph.py +++ b/examples/langgraph/sentience_self_correcting_graph.py @@ -2,7 +2,7 @@ LangGraph reference example: Sentience observe → act → verify → branch (self-correcting). Install: - pip install predicatelabs[langchain] + pip install predicate-sdk[langchain] Run: python examples/langgraph/sentience_self_correcting_graph.py diff --git a/examples/pydantic_ai/pydantic_ai_self_correcting_click.py b/examples/pydantic_ai/pydantic_ai_self_correcting_click.py index c1afcad..195c7f4 100644 --- a/examples/pydantic_ai/pydantic_ai_self_correcting_click.py +++ b/examples/pydantic_ai/pydantic_ai_self_correcting_click.py @@ -2,7 +2,7 @@ Example: PydanticAI + Sentience self-correcting action loop using URL guards. Run: - pip install predicatelabs[pydanticai] + pip install predicate-sdk[pydanticai] python examples/pydantic_ai/pydantic_ai_self_correcting_click.py """ diff --git a/examples/pydantic_ai/pydantic_ai_typed_extraction.py b/examples/pydantic_ai/pydantic_ai_typed_extraction.py index 59ff012..52ed84f 100644 --- a/examples/pydantic_ai/pydantic_ai_typed_extraction.py +++ b/examples/pydantic_ai/pydantic_ai_typed_extraction.py @@ -2,7 +2,7 @@ Example: PydanticAI + Sentience typed extraction (Phase 1 integration). Run: - pip install predicatelabs[pydanticai] + pip install predicate-sdk[pydanticai] python examples/pydantic_ai/pydantic_ai_typed_extraction.py """ diff --git a/predicate/integrations/browser_use/plugin.py b/predicate/integrations/browser_use/plugin.py index a5a1449..b2dad5a 100644 --- a/predicate/integrations/browser_use/plugin.py +++ b/predicate/integrations/browser_use/plugin.py @@ -361,7 +361,7 @@ def register_tools(self, tools: Any) -> None: raise ImportError("browser_use.ActionResult/BrowserSession not available") except Exception as e: # pragma: no cover raise ImportError( - "browser-use is required to register tools. Install with `predicatelabs[browser-use]`." + "browser-use is required to register tools. Install with `predicate-sdk[browser-use]`." ) from e if tools is None: diff --git a/predicate/integrations/pydanticai/__init__.py b/predicate/integrations/pydanticai/__init__.py index cf8b732..825e5a9 100644 --- a/predicate/integrations/pydanticai/__init__.py +++ b/predicate/integrations/pydanticai/__init__.py @@ -4,7 +4,7 @@ This module does NOT import `pydantic_ai` at import time so the base SDK can be installed without the optional dependency. Users should install: - pip install predicatelabs[pydanticai] + pip install predicate-sdk[pydanticai] and then use `register_sentience_tools(...)` with a PydanticAI `Agent`. """ diff --git a/pyproject.toml b/pyproject.toml index 0401491..614f91f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "predicatelabs" +name = "predicate-sdk" version = "1.0.5" description = "Python SDK for Sentience AI Agent Browser Automation" readme = "README.md"