Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 84b474c79b | |||
| b6241e8e67 | |||
| 607f0d2c56 |
@@ -28,3 +28,43 @@ jobs:
|
|||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
pytest -q
|
pytest -q
|
||||||
|
|
||||||
|
# Editable installs (-e) never exercise wheel packaging, so a broken wheel
|
||||||
|
# can pass tests and still fail every real `pip install` from source.
|
||||||
|
# This job builds the actual wheel and installs it into a clean venv.
|
||||||
|
wheel-gate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup Python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: "3.12"
|
||||||
|
|
||||||
|
- name: Build wheel
|
||||||
|
run: |
|
||||||
|
python -m pip install --upgrade pip build
|
||||||
|
python -m build
|
||||||
|
|
||||||
|
- name: Verify wheel has no duplicate entries and ships data files
|
||||||
|
run: |
|
||||||
|
python - <<'PY'
|
||||||
|
import glob, zipfile, collections
|
||||||
|
whl = glob.glob("dist/*.whl")[0]
|
||||||
|
names = zipfile.ZipFile(whl).namelist()
|
||||||
|
dupes = [n for n, c in collections.Counter(names).items() if c > 1]
|
||||||
|
assert not dupes, f"duplicate entries in wheel: {dupes}"
|
||||||
|
assert "agent_reach/skill/SKILL.md" in names, "SKILL.md missing from wheel"
|
||||||
|
for prefix in ("agent_reach/guides/", "agent_reach/scripts/", "agent_reach/skill/references/"):
|
||||||
|
assert any(n.startswith(prefix) for n in names), f"{prefix} missing from wheel"
|
||||||
|
print(f"wheel OK: {len(names)} entries, no duplicates, data files present")
|
||||||
|
PY
|
||||||
|
|
||||||
|
- name: Smoke-install wheel into clean venv
|
||||||
|
run: |
|
||||||
|
python -m venv /tmp/smoke
|
||||||
|
/tmp/smoke/bin/pip install --quiet dist/*.whl
|
||||||
|
/tmp/smoke/bin/agent-reach version
|
||||||
|
cd /tmp && /tmp/smoke/bin/python -c "import agent_reach; from importlib.resources import files; assert (files('agent_reach')/'skill'/'SKILL.md').is_file(); print('SKILL.md ships in site-packages OK')"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
## Project
|
## Project
|
||||||
Agent Reach — Python CLI + library that gives AI agents read/search access to 14+ internet platforms.
|
Agent Reach — Python CLI + library that gives AI agents read/search access to 14+ internet platforms.
|
||||||
Positioning: installer + doctor + config tool. NOT a wrapper — after install, agents call upstream tools directly.
|
Positioning: installer + doctor + config tool. NOT a wrapper — after install, agents call upstream tools directly.
|
||||||
Repo: github.com/Panniantong/Agent-Reach | License: MIT | Version: 1.3.0
|
Repo: github.com/Panniantong/Agent-Reach | License: MIT | Version: 1.4.1
|
||||||
|
|
||||||
## Commands
|
## Commands
|
||||||
- `pip install -e .` — Dev install
|
- `pip install -e .` — Dev install
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""Agent Reach — Give your AI Agent eyes to see the entire internet."""
|
"""Agent Reach — Give your AI Agent eyes to see the entire internet."""
|
||||||
|
|
||||||
__version__ = "1.4.0"
|
__version__ = "1.4.1"
|
||||||
__author__ = "Neo Reid"
|
__author__ = "Neo Reid"
|
||||||
|
|
||||||
from agent_reach.core import AgentReach
|
from agent_reach.core import AgentReach
|
||||||
|
|||||||
+1
-7
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "agent-reach"
|
name = "agent-reach"
|
||||||
version = "1.4.0"
|
version = "1.4.1"
|
||||||
description = "Give your AI Agent eyes to see the entire internet. Search + Read 10+ platforms."
|
description = "Give your AI Agent eyes to see the entire internet. Search + Read 10+ platforms."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = {text = "MIT"}
|
license = {text = "MIT"}
|
||||||
@@ -64,12 +64,6 @@ build-backend = "hatchling.build"
|
|||||||
[tool.hatch.build.targets.wheel]
|
[tool.hatch.build.targets.wheel]
|
||||||
packages = ["agent_reach"]
|
packages = ["agent_reach"]
|
||||||
|
|
||||||
[tool.hatch.build.targets.wheel.force-include]
|
|
||||||
"agent_reach/guides" = "agent_reach/guides"
|
|
||||||
# Keep the whole skill directory so SKILL.md, SKILL_en.md, and references/ ship together.
|
|
||||||
"agent_reach/skill" = "agent_reach/skill"
|
|
||||||
"agent_reach/scripts" = "agent_reach/scripts"
|
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
target-version = "py310"
|
target-version = "py310"
|
||||||
line-length = 100
|
line-length = 100
|
||||||
|
|||||||
+1
-1
@@ -89,7 +89,7 @@ class TestCheckUpdateRetry:
|
|||||||
|
|
||||||
sequence = [
|
sequence = [
|
||||||
R(429, headers={"Retry-After": "3"}),
|
R(429, headers={"Retry-After": "3"}),
|
||||||
R(200, payload={"tag_name": "v1.4.0"}),
|
R(200, payload={"tag_name": "v1.4.1"}),
|
||||||
]
|
]
|
||||||
|
|
||||||
with patch("requests.get", side_effect=sequence):
|
with patch("requests.get", side_effect=sequence):
|
||||||
|
|||||||
Reference in New Issue
Block a user