cellenium 0.3.6__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cellenium-0.3.6 → cellenium-0.4.0}/PKG-INFO +7 -6
- {cellenium-0.3.6 → cellenium-0.4.0}/README.md +2 -2
- {cellenium-0.3.6 → cellenium-0.4.0}/pyproject.toml +50 -45
- cellenium-0.4.0/src/cellenium/ai/__init__.py +9 -0
- cellenium-0.4.0/src/cellenium/api/__init__.py +9 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/uv.lock +11 -6
- cellenium-0.3.6/src/cellenium/engine/__init__.py +0 -0
- cellenium-0.3.6/src/cellenium/functions/__init__.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/bin/checklist.js +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/artifact.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/before-startup.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/cruising.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/fordec.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/landing.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/evaluator.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/executor.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/locator-writer.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/plan.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/prd-reader.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/test-spec.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/web.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/writer.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/artifact/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/before-startup/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/cruising/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/emergency/fordec/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/evaluator/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/executor/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/landing/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/locator-writer/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/plan/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/plan/template.html +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/prd-reader/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/test-spec/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/web/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/writer/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/before-startup/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/cruising/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/emergency/fordec/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/landing/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.claude/test/install.test.js +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.env.example +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/.gitignore +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/LICENSE +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/__init__.py +0 -0
- {cellenium-0.3.6/src/cellenium/ai → cellenium-0.4.0/src/cellenium/ai/agents}/__init__.py +0 -0
- {cellenium-0.3.6/src/cellenium/ai/agents → cellenium-0.4.0/src/cellenium/ai/agents/vision}/__init__.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/config/agents.yaml +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/config/tasks.yaml +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/crew.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/schemas.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/skills/evaluator/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/skills/vision/SKILL.md +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/tools/vision.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/config.py +0 -0
- {cellenium-0.3.6/src/cellenium/ai/agents/vision → cellenium-0.4.0/src/cellenium/ai/tools}/__init__.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/tools/image_encoder.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/api/vision.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/cli.py +0 -0
- {cellenium-0.3.6/src/cellenium/ai/tools → cellenium-0.4.0/src/cellenium/engine}/__init__.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/engine/manager.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/engine/page_engine.py +0 -0
- {cellenium-0.3.6/src/cellenium/api → cellenium-0.4.0/src/cellenium/functions}/__init__.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/functions/locators.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/functions/logger.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/functions/sheets.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/settings.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/templates/env.template +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/e2e/conftest.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/e2e/test_google_search.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_cli.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_google_sheet_locators.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_page_engine.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_settings.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_vision_agent.py +0 -0
- {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_vision_api.py +0 -0
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: cellenium
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Playwright browser automation with a Google Sheets Page Object Model and CrewAI vision analysis
|
|
5
5
|
Project-URL: Homepage, https://github.com/MedviJenka/cellenium-playwright
|
|
6
6
|
License-File: LICENSE
|
|
7
7
|
Requires-Python: >=3.13
|
|
8
|
-
Requires-Dist: crewai
|
|
9
|
-
Requires-Dist: fastapi
|
|
10
8
|
Requires-Dist: gspread
|
|
11
9
|
Requires-Dist: importlib-metadata
|
|
12
10
|
Requires-Dist: logfire
|
|
@@ -14,7 +12,10 @@ Requires-Dist: oauth2client
|
|
|
14
12
|
Requires-Dist: pillow
|
|
15
13
|
Requires-Dist: playwright
|
|
16
14
|
Requires-Dist: pydantic-settings
|
|
17
|
-
|
|
15
|
+
Provides-Extra: vision
|
|
16
|
+
Requires-Dist: crewai; extra == 'vision'
|
|
17
|
+
Requires-Dist: fastapi; extra == 'vision'
|
|
18
|
+
Requires-Dist: uvicorn; extra == 'vision'
|
|
18
19
|
Description-Content-Type: text/markdown
|
|
19
20
|
|
|
20
21
|
# Cellenium Playwright
|
|
@@ -23,7 +24,7 @@ Cellenium Playwright is an experimental Python browser-automation toolkit built
|
|
|
23
24
|
|
|
24
25
|
The repository also contains **TestFlow**, a set of Claude Code skills that turns product requirements and technical specifications into traceable pytest tests, validated UI locators, execution evidence, and a test-quality verdict.
|
|
25
26
|
|
|
26
|
-
> **Status:** active development. The browser and locator layers are usable, but the checked-in vision test is still a scaffold and does not currently pass. Install it from PyPI with `pip install cellenium` (or `uv add cellenium`), then run `playwright install chromium`. Configuration (`.env`, `credentials.json`) is read from your project's working directory.
|
|
27
|
+
> **Status:** active development. The browser and locator layers are usable, but the checked-in vision test is still a scaffold and does not currently pass. Install it from PyPI with `pip install cellenium` (or `uv add cellenium`), then run `playwright install chromium`. The CrewAI vision components are an optional extra: `pip install "cellenium[vision]"` (or `uv add "cellenium[vision]"`). The base install does not depend on CrewAI, so it works with any `openai` version. Configuration (`.env`, `credentials.json`) is read from your project's working directory.
|
|
27
28
|
|
|
28
29
|
## Features
|
|
29
30
|
|
|
@@ -50,7 +51,7 @@ Clone the repository and install the locked dependencies:
|
|
|
50
51
|
```sh
|
|
51
52
|
git clone https://github.com/MedviJenka/cellenium-playwright.git
|
|
52
53
|
cd cellenium-playwright
|
|
53
|
-
uv sync --frozen
|
|
54
|
+
uv sync --frozen --all-extras
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
Install Chromium:
|
|
@@ -4,7 +4,7 @@ Cellenium Playwright is an experimental Python browser-automation toolkit built
|
|
|
4
4
|
|
|
5
5
|
The repository also contains **TestFlow**, a set of Claude Code skills that turns product requirements and technical specifications into traceable pytest tests, validated UI locators, execution evidence, and a test-quality verdict.
|
|
6
6
|
|
|
7
|
-
> **Status:** active development. The browser and locator layers are usable, but the checked-in vision test is still a scaffold and does not currently pass. Install it from PyPI with `pip install cellenium` (or `uv add cellenium`), then run `playwright install chromium`. Configuration (`.env`, `credentials.json`) is read from your project's working directory.
|
|
7
|
+
> **Status:** active development. The browser and locator layers are usable, but the checked-in vision test is still a scaffold and does not currently pass. Install it from PyPI with `pip install cellenium` (or `uv add cellenium`), then run `playwright install chromium`. The CrewAI vision components are an optional extra: `pip install "cellenium[vision]"` (or `uv add "cellenium[vision]"`). The base install does not depend on CrewAI, so it works with any `openai` version. Configuration (`.env`, `credentials.json`) is read from your project's working directory.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -31,7 +31,7 @@ Clone the repository and install the locked dependencies:
|
|
|
31
31
|
```sh
|
|
32
32
|
git clone https://github.com/MedviJenka/cellenium-playwright.git
|
|
33
33
|
cd cellenium-playwright
|
|
34
|
-
uv sync --frozen
|
|
34
|
+
uv sync --frozen --all-extras
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
Install Chromium:
|
|
@@ -1,45 +1,50 @@
|
|
|
1
|
-
[project]
|
|
2
|
-
name = "cellenium"
|
|
3
|
-
version = "0.
|
|
4
|
-
description = "Playwright browser automation with a Google Sheets Page Object Model and CrewAI vision analysis"
|
|
5
|
-
readme = "README.md"
|
|
6
|
-
requires-python = ">=3.13"
|
|
7
|
-
dependencies = [
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
]
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
[
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
[project]
|
|
2
|
+
name = "cellenium"
|
|
3
|
+
version = "0.4.0"
|
|
4
|
+
description = "Playwright browser automation with a Google Sheets Page Object Model and CrewAI vision analysis"
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.13"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"gspread",
|
|
9
|
+
"importlib-metadata",
|
|
10
|
+
"logfire",
|
|
11
|
+
"oauth2client",
|
|
12
|
+
"pillow",
|
|
13
|
+
"playwright",
|
|
14
|
+
"pydantic-settings",
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
# CrewAI pins openai<3, so the vision components are opt-in: `pip install "cellenium[vision]"`.
|
|
18
|
+
[project.optional-dependencies]
|
|
19
|
+
vision = [
|
|
20
|
+
"crewai",
|
|
21
|
+
"fastapi",
|
|
22
|
+
"uvicorn",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
[dependency-groups]
|
|
26
|
+
dev = [
|
|
27
|
+
"pytest>=9.1.1",
|
|
28
|
+
"pytest-xdist>=3.8.0",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
[project.scripts]
|
|
32
|
+
cellenium = "cellenium.cli:main"
|
|
33
|
+
|
|
34
|
+
[project.urls]
|
|
35
|
+
Homepage = "https://github.com/MedviJenka/cellenium-playwright"
|
|
36
|
+
|
|
37
|
+
[build-system]
|
|
38
|
+
requires = ["hatchling"]
|
|
39
|
+
build-backend = "hatchling.build"
|
|
40
|
+
|
|
41
|
+
[tool.hatch.build.targets.wheel]
|
|
42
|
+
packages = ["src/cellenium"]
|
|
43
|
+
|
|
44
|
+
# Ship the Claude Code commands and skills inside the package; `cellenium claude` installs them.
|
|
45
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
46
|
+
".claude/commands/cellenium" = "cellenium/claude/commands/cellenium"
|
|
47
|
+
".claude/skills/cellenium" = "cellenium/claude/skills/cellenium"
|
|
48
|
+
|
|
49
|
+
[tool.pytest.ini_options]
|
|
50
|
+
pythonpath = ["src"]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from importlib.util import find_spec
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
_missing = [name for name in ('crewai', 'fastapi', 'uvicorn') if find_spec(name) is None]
|
|
5
|
+
if _missing:
|
|
6
|
+
raise ImportError(
|
|
7
|
+
f"cellenium vision components need {', '.join(_missing)}. "
|
|
8
|
+
'Install them with: pip install "cellenium[vision]" (or uv add "cellenium[vision]")'
|
|
9
|
+
)
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
from importlib.util import find_spec
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
_missing = [name for name in ('crewai', 'fastapi', 'uvicorn') if find_spec(name) is None]
|
|
5
|
+
if _missing:
|
|
6
|
+
raise ImportError(
|
|
7
|
+
f"cellenium vision components need {', '.join(_missing)}. "
|
|
8
|
+
'Install them with: pip install "cellenium[vision]" (or uv add "cellenium[vision]")'
|
|
9
|
+
)
|
|
@@ -328,11 +328,9 @@ wheels = [
|
|
|
328
328
|
|
|
329
329
|
[[package]]
|
|
330
330
|
name = "cellenium"
|
|
331
|
-
version = "0.
|
|
331
|
+
version = "0.4.0"
|
|
332
332
|
source = { editable = "." }
|
|
333
333
|
dependencies = [
|
|
334
|
-
{ name = "crewai" },
|
|
335
|
-
{ name = "fastapi" },
|
|
336
334
|
{ name = "gspread" },
|
|
337
335
|
{ name = "importlib-metadata" },
|
|
338
336
|
{ name = "logfire" },
|
|
@@ -340,6 +338,12 @@ dependencies = [
|
|
|
340
338
|
{ name = "pillow" },
|
|
341
339
|
{ name = "playwright" },
|
|
342
340
|
{ name = "pydantic-settings" },
|
|
341
|
+
]
|
|
342
|
+
|
|
343
|
+
[package.optional-dependencies]
|
|
344
|
+
vision = [
|
|
345
|
+
{ name = "crewai" },
|
|
346
|
+
{ name = "fastapi" },
|
|
343
347
|
{ name = "uvicorn" },
|
|
344
348
|
]
|
|
345
349
|
|
|
@@ -351,8 +355,8 @@ dev = [
|
|
|
351
355
|
|
|
352
356
|
[package.metadata]
|
|
353
357
|
requires-dist = [
|
|
354
|
-
{ name = "crewai" },
|
|
355
|
-
{ name = "fastapi" },
|
|
358
|
+
{ name = "crewai", marker = "extra == 'vision'" },
|
|
359
|
+
{ name = "fastapi", marker = "extra == 'vision'" },
|
|
356
360
|
{ name = "gspread" },
|
|
357
361
|
{ name = "importlib-metadata" },
|
|
358
362
|
{ name = "logfire" },
|
|
@@ -360,8 +364,9 @@ requires-dist = [
|
|
|
360
364
|
{ name = "pillow" },
|
|
361
365
|
{ name = "playwright" },
|
|
362
366
|
{ name = "pydantic-settings" },
|
|
363
|
-
{ name = "uvicorn" },
|
|
367
|
+
{ name = "uvicorn", marker = "extra == 'vision'" },
|
|
364
368
|
]
|
|
369
|
+
provides-extras = ["vision"]
|
|
365
370
|
|
|
366
371
|
[package.metadata.requires-dev]
|
|
367
372
|
dev = [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/skills/evaluator/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|