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.
Files changed (76) hide show
  1. {cellenium-0.3.6 → cellenium-0.4.0}/PKG-INFO +7 -6
  2. {cellenium-0.3.6 → cellenium-0.4.0}/README.md +2 -2
  3. {cellenium-0.3.6 → cellenium-0.4.0}/pyproject.toml +50 -45
  4. cellenium-0.4.0/src/cellenium/ai/__init__.py +9 -0
  5. cellenium-0.4.0/src/cellenium/api/__init__.py +9 -0
  6. {cellenium-0.3.6 → cellenium-0.4.0}/uv.lock +11 -6
  7. cellenium-0.3.6/src/cellenium/engine/__init__.py +0 -0
  8. cellenium-0.3.6/src/cellenium/functions/__init__.py +0 -0
  9. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/bin/checklist.js +0 -0
  10. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/artifact.md +0 -0
  11. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/before-startup.md +0 -0
  12. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/cruising.md +0 -0
  13. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/fordec.md +0 -0
  14. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/checklist/landing.md +0 -0
  15. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/evaluator.md +0 -0
  16. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/executor.md +0 -0
  17. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/locator-writer.md +0 -0
  18. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/plan.md +0 -0
  19. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/prd-reader.md +0 -0
  20. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/test-spec.md +0 -0
  21. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/web.md +0 -0
  22. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/commands/cellenium/writer.md +0 -0
  23. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/artifact/SKILL.md +0 -0
  24. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/before-startup/SKILL.md +0 -0
  25. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/cruising/SKILL.md +0 -0
  26. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/emergency/fordec/SKILL.md +0 -0
  27. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/evaluator/SKILL.md +0 -0
  28. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/executor/SKILL.md +0 -0
  29. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/landing/SKILL.md +0 -0
  30. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/locator-writer/SKILL.md +0 -0
  31. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/plan/SKILL.md +0 -0
  32. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/plan/template.html +0 -0
  33. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/prd-reader/SKILL.md +0 -0
  34. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/test-spec/SKILL.md +0 -0
  35. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/web/SKILL.md +0 -0
  36. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/cellenium/writer/SKILL.md +0 -0
  37. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/before-startup/SKILL.md +0 -0
  38. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/cruising/SKILL.md +0 -0
  39. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/emergency/fordec/SKILL.md +0 -0
  40. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/skills/checklist/landing/SKILL.md +0 -0
  41. {cellenium-0.3.6 → cellenium-0.4.0}/.claude/test/install.test.js +0 -0
  42. {cellenium-0.3.6 → cellenium-0.4.0}/.env.example +0 -0
  43. {cellenium-0.3.6 → cellenium-0.4.0}/.gitignore +0 -0
  44. {cellenium-0.3.6 → cellenium-0.4.0}/LICENSE +0 -0
  45. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/__init__.py +0 -0
  46. {cellenium-0.3.6/src/cellenium/ai → cellenium-0.4.0/src/cellenium/ai/agents}/__init__.py +0 -0
  47. {cellenium-0.3.6/src/cellenium/ai/agents → cellenium-0.4.0/src/cellenium/ai/agents/vision}/__init__.py +0 -0
  48. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/config/agents.yaml +0 -0
  49. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/config/tasks.yaml +0 -0
  50. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/crew.py +0 -0
  51. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/schemas.py +0 -0
  52. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/skills/evaluator/SKILL.md +0 -0
  53. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/skills/vision/SKILL.md +0 -0
  54. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/agents/vision/tools/vision.py +0 -0
  55. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/config.py +0 -0
  56. {cellenium-0.3.6/src/cellenium/ai/agents/vision → cellenium-0.4.0/src/cellenium/ai/tools}/__init__.py +0 -0
  57. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/ai/tools/image_encoder.py +0 -0
  58. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/api/vision.py +0 -0
  59. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/cli.py +0 -0
  60. {cellenium-0.3.6/src/cellenium/ai/tools → cellenium-0.4.0/src/cellenium/engine}/__init__.py +0 -0
  61. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/engine/manager.py +0 -0
  62. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/engine/page_engine.py +0 -0
  63. {cellenium-0.3.6/src/cellenium/api → cellenium-0.4.0/src/cellenium/functions}/__init__.py +0 -0
  64. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/functions/locators.py +0 -0
  65. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/functions/logger.py +0 -0
  66. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/functions/sheets.py +0 -0
  67. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/settings.py +0 -0
  68. {cellenium-0.3.6 → cellenium-0.4.0}/src/cellenium/templates/env.template +0 -0
  69. {cellenium-0.3.6 → cellenium-0.4.0}/tests/e2e/conftest.py +0 -0
  70. {cellenium-0.3.6 → cellenium-0.4.0}/tests/e2e/test_google_search.py +0 -0
  71. {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_cli.py +0 -0
  72. {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_google_sheet_locators.py +0 -0
  73. {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_page_engine.py +0 -0
  74. {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_settings.py +0 -0
  75. {cellenium-0.3.6 → cellenium-0.4.0}/tests/test_vision_agent.py +0 -0
  76. {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.6
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
- Requires-Dist: uvicorn
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.3.6"
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
- "crewai",
9
- "fastapi",
10
- "gspread",
11
- "importlib-metadata",
12
- "logfire",
13
- "oauth2client",
14
- "pillow",
15
- "playwright",
16
- "pydantic-settings",
17
- "uvicorn",
18
- ]
19
-
20
- [dependency-groups]
21
- dev = [
22
- "pytest>=9.1.1",
23
- "pytest-xdist>=3.8.0",
24
- ]
25
-
26
- [project.scripts]
27
- cellenium = "cellenium.cli:main"
28
-
29
- [project.urls]
30
- Homepage = "https://github.com/MedviJenka/cellenium-playwright"
31
-
32
- [build-system]
33
- requires = ["hatchling"]
34
- build-backend = "hatchling.build"
35
-
36
- [tool.hatch.build.targets.wheel]
37
- packages = ["src/cellenium"]
38
-
39
- # Ship the Claude Code commands and skills inside the package; `cellenium claude` installs them.
40
- [tool.hatch.build.targets.wheel.force-include]
41
- ".claude/commands/cellenium" = "cellenium/claude/commands/cellenium"
42
- ".claude/skills/cellenium" = "cellenium/claude/skills/cellenium"
43
-
44
- [tool.pytest.ini_options]
45
- pythonpath = ["src"]
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.3.6"
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