bathys 0.7.0__tar.gz → 0.7.1__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.
- {bathys-0.7.0 → bathys-0.7.1}/.remember/logs/memory-2026-09-08.log +18 -0
- {bathys-0.7.0 → bathys-0.7.1}/CHANGELOG.md +7 -0
- {bathys-0.7.0 → bathys-0.7.1}/PKG-INFO +14 -6
- {bathys-0.7.0 → bathys-0.7.1}/README.md +13 -5
- bathys-0.7.1/install.sh +105 -0
- {bathys-0.7.0 → bathys-0.7.1}/pyproject.toml +1 -1
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/__init__.py +1 -1
- {bathys-0.7.0 → bathys-0.7.1}/.github/workflows/ci.yml +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.gitignore +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/.gitignore +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/logs/hook-errors.log +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/logs/memory-2026-09-06.log +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/logs/memory-2026-09-07.log +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/tmp/capture-gap-skipped +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/tmp/case-divergence +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/tmp/no-transcript-notice +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/tmp/post-tool-ran +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/.remember/tmp/session-slug +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/Dockerfile +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/LICENSE +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/agents/HARNESS-DROPIN.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/agents/bathys-researcher.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/agents/skills/bathys-deep-dive/SKILL.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/agents/skills/bathys-source-audit/SKILL.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/adr/0001-python-crawl4ai.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/adr/0002-pin-mcp-sdk-v1.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/adr/0003-self-managed-searxng.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/adr/0004-bm25-distillation.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/adr/0005-cache-raw-before-distill.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/adr/0006-three-tool-string-surface.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/architecture/data-flow.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/architecture/overview.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/architecture/pipeline.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/assets/banner.svg +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/contracts/config.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/contracts/mcp-tools.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/contracts/module-contracts.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/contracts/output-format.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/getting-started/cases.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/getting-started/configure.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/getting-started/install.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/getting-started/integrate.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/index.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/integrations/claude-code.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/integrations/cursor.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/integrations/generic-mcp.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/integrations/overview.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/integrations/zcode.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/meta/glossary.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/meta/style-guide.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/operations/metrics.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/operations/runbook.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/product/charter.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/product/competitive.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/product/features.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/product/mind-initiative.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/product/ocr-initiative.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/docs/product/roadmap.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/integrations/README.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/integrations/hermes/README.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/integrations/hermes/install.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/integrations/pi/README.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/integrations/pi/assets/bathys-rules.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/integrations/zcode/README.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/.remember/.gitignore +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/.remember/logs/hook-errors.log +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/.remember/logs/memory-2026-09-08.log +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/.remember/tmp/no-transcript-notice +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/.remember/tmp/post-tool-ran +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/README.md +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/bin/cli.js +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/bin/postinstall.js +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/npm/bathys-mcp/package.json +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/scripts/acceptance_v02.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/scripts/batch_check.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/scripts/metrics_report.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/scripts/smoke.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/scripts/stdio_check.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/batch.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/cache.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/compose.yaml +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/config.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/core.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/crawler.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/distill.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/doctor.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/installer.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/searx.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/searxng-settings.yml +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/server.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/src/bathys/services.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_batch.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_cache.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_config.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_core.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_distill.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_installer.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_searx.py +0 -0
- {bathys-0.7.0 → bathys-0.7.1}/tests/test_v04.py +0 -0
|
@@ -195,3 +195,21 @@
|
|
|
195
195
|
13:57:42 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
196
196
|
13:57:52 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
197
197
|
13:58:04 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
198
|
+
13:58:16 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
199
|
+
13:58:27 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
200
|
+
13:58:39 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
201
|
+
13:58:47 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
202
|
+
14:16:47 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
203
|
+
14:16:53 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
204
|
+
14:17:02 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
205
|
+
14:31:07 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
206
|
+
14:31:19 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
207
|
+
14:31:39 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
208
|
+
14:32:16 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
209
|
+
14:32:27 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
210
|
+
14:32:44 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
211
|
+
14:32:45 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
212
|
+
14:33:04 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
213
|
+
14:33:05 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
214
|
+
14:33:20 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
215
|
+
14:33:32 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch PIPELINE_DIR=/var/home/abyss/.distrobox/ubuntu/home/.zcode/cli/plugins/cache/claude-plugins-official/remember/0.20.0 PYTHON=python3 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Формат: Keep a Changelog; версии — semver. Дата — дата выпуска версии.
|
|
4
4
|
|
|
5
|
+
## [0.7.1] — 2026-09-08
|
|
6
|
+
|
|
7
|
+
### Добавлено
|
|
8
|
+
|
|
9
|
+
- **Однострочный установщик `install.sh`** — основной путь установки: `curl -fsSL https://raw.githubusercontent.com/Korrnals/bathys/main/install.sh | bash`. Приватный venv в `~/.local/share/bathys/venv` (решение против хрупкости `pip --user` между контейнерами и PEP 668), бутстрап pip через `get-pip.py` для минимальных образов, PATH прописывается в `.profile`/`.bashrc`, затем `bathys setup` и финальный `bathys-doctor`. Идемпотентен (повтор = обновление), без sudo, ничего вне `$HOME`. Живые прогоны: двойной (создание + идемпотентное обновление), setup прописал zcode+hermes с бэкапами, doctor 5/6 (бэкенд поднимается при первом вызове — норма).
|
|
10
|
+
- README: однострочник — основной путь Quick start; `pip install` + `bathys setup` — равноправная альтернатива «без скрипта»; npm/исходники — под катом.
|
|
11
|
+
|
|
5
12
|
## [0.7.0] — 2026-09-08
|
|
6
13
|
|
|
7
14
|
Тема: «Ship & Setup» — двухъярусное извлечение без обязательного браузера и модульная установка.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: bathys
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: Unified local deep-research search service for AI agents — one pipeline (search → extraction → query distillation → cache), zero cloud quotas. MCP stdio server with native harness integration (bathys install).
|
|
5
5
|
Project-URL: Homepage, https://github.com/Korrnals/bathys
|
|
6
6
|
Project-URL: Repository, https://github.com/Korrnals/bathys
|
|
@@ -33,21 +33,29 @@ Description-Content-Type: text/markdown
|
|
|
33
33
|
Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.
|
|
34
34
|
|
|
35
35
|

|
|
36
|
-

|
|
37
37
|

|
|
38
38
|

|
|
39
39
|
|
|
40
40
|
## ⚡ Quick start
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
**Одной командой** (Python ≥ 3.10; приватный venv, без sudo, идемпотентно):
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
curl -fsSL https://raw.githubusercontent.com/Korrnals/bathys/main/install.sh | bash
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Скрипт ставит пакет с PyPI в `~/.local/share/bathys/venv`, прописывает PATH, запускает `bathys setup` (браузер для JS-страниц → все найденные харнессы → субагент) и финальный `bathys-doctor`. Повторный запуск — безопасное обновление.
|
|
49
|
+
|
|
50
|
+
**Без скрипта** (то же самое вручную, для тех кто предпочитает pip):
|
|
43
51
|
|
|
44
52
|
```bash
|
|
45
53
|
pip install bathys # пакет: сервер + bathys setup/install/doctor
|
|
46
|
-
bathys setup # браузер
|
|
54
|
+
bathys setup # браузер → харнессы → субагент
|
|
47
55
|
bathys doctor # самодиагностика стека
|
|
48
56
|
```
|
|
49
57
|
|
|
50
|
-
|
|
58
|
+
SearXNG ставить руками не нужно: бэкенд поднимется сам при первом поиске (внешний инстанс → docker → нативный режим). Браузер нужен только для JS-страниц: обычные страницы Bathys читает собственным HTTP-движком, `BATHYS_BROWSER=off` отключает браузерный ярус полностью.
|
|
51
59
|
|
|
52
60
|
<details>
|
|
53
61
|
<summary><b>Альтернативные пути установки</b> (npm, исходники, минимальные образы)</summary>
|
|
@@ -180,7 +188,7 @@ docs/
|
|
|
180
188
|
|
|
181
189
|
## 📍 Статус
|
|
182
190
|
|
|
183
|
-
**0.7.
|
|
191
|
+
**0.7.1.** Выпускная история: v0.2 «Качество выдачи» (ретраи, здоровье движков), v0.3 «Паритет с Tavily» (`read_urls`, JSON-режим), v0.4 «Эксплуатация» (robots-этика, метрики, `bathys-doctor`), v0.5 «Identity & Harness» (репозиционирование, промпты, субагент), v0.6 «Native Install» (`bathys install`) — итоги в [CHANGELOG.md](CHANGELOG.md).
|
|
184
192
|
|
|
185
193
|
Репозиторий: `github.com/Korrnals/bathys`. До 1.0 остаются публикация пакета `bathys` на PyPI (имя свободно, публикация планируется к 1.0) и первый прогон Docker-образа; CI с matrix 3.10–3.12 уже в репозитории.
|
|
186
194
|
|
|
@@ -7,21 +7,29 @@
|
|
|
7
7
|
Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.
|
|
8
8
|
|
|
9
9
|

|
|
10
|
-

|
|
11
11
|

|
|
12
12
|

|
|
13
13
|
|
|
14
14
|
## ⚡ Quick start
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
**Одной командой** (Python ≥ 3.10; приватный venv, без sudo, идемпотентно):
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
curl -fsSL https://raw.githubusercontent.com/Korrnals/bathys/main/install.sh | bash
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Скрипт ставит пакет с PyPI в `~/.local/share/bathys/venv`, прописывает PATH, запускает `bathys setup` (браузер для JS-страниц → все найденные харнессы → субагент) и финальный `bathys-doctor`. Повторный запуск — безопасное обновление.
|
|
23
|
+
|
|
24
|
+
**Без скрипта** (то же самое вручную, для тех кто предпочитает pip):
|
|
17
25
|
|
|
18
26
|
```bash
|
|
19
27
|
pip install bathys # пакет: сервер + bathys setup/install/doctor
|
|
20
|
-
bathys setup # браузер
|
|
28
|
+
bathys setup # браузер → харнессы → субагент
|
|
21
29
|
bathys doctor # самодиагностика стека
|
|
22
30
|
```
|
|
23
31
|
|
|
24
|
-
|
|
32
|
+
SearXNG ставить руками не нужно: бэкенд поднимется сам при первом поиске (внешний инстанс → docker → нативный режим). Браузер нужен только для JS-страниц: обычные страницы Bathys читает собственным HTTP-движком, `BATHYS_BROWSER=off` отключает браузерный ярус полностью.
|
|
25
33
|
|
|
26
34
|
<details>
|
|
27
35
|
<summary><b>Альтернативные пути установки</b> (npm, исходники, минимальные образы)</summary>
|
|
@@ -154,7 +162,7 @@ docs/
|
|
|
154
162
|
|
|
155
163
|
## 📍 Статус
|
|
156
164
|
|
|
157
|
-
**0.7.
|
|
165
|
+
**0.7.1.** Выпускная история: v0.2 «Качество выдачи» (ретраи, здоровье движков), v0.3 «Паритет с Tavily» (`read_urls`, JSON-режим), v0.4 «Эксплуатация» (robots-этика, метрики, `bathys-doctor`), v0.5 «Identity & Harness» (репозиционирование, промпты, субагент), v0.6 «Native Install» (`bathys install`) — итоги в [CHANGELOG.md](CHANGELOG.md).
|
|
158
166
|
|
|
159
167
|
Репозиторий: `github.com/Korrnals/bathys`. До 1.0 остаются публикация пакета `bathys` на PyPI (имя свободно, публикация планируется к 1.0) и первый прогон Docker-образа; CI с matrix 3.10–3.12 уже в репозитории.
|
|
160
168
|
|
bathys-0.7.1/install.sh
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Bathys — one-line installer.
|
|
3
|
+
#
|
|
4
|
+
# curl -fsSL https://raw.githubusercontent.com/Korrnals/bathys/main/install.sh | bash
|
|
5
|
+
#
|
|
6
|
+
# What it does (idempotent, safe to re-run):
|
|
7
|
+
# 1. finds Python >= 3.10 (python3/python/3.12/3.11/3.10);
|
|
8
|
+
# 2. installs the `bathys` package from PyPI into a PRIVATE venv at
|
|
9
|
+
# ~/.local/share/bathys/venv (deterministic, no PEP-668 surprises,
|
|
10
|
+
# no sudo, nothing outside $HOME; --user is deliberately not used —
|
|
11
|
+
# it is fragile across containers/managed environments);
|
|
12
|
+
# 3. wires the venv bin into PATH permanently (.profile/.bashrc);
|
|
13
|
+
# 4. runs `bathys setup`: browser engine for JS pages -> harness
|
|
14
|
+
# auto-integration (zcode, Claude, Cursor, VS Code family, Gemini CLI,
|
|
15
|
+
# Windsurf, Zed, opencode, goose, Hermes) -> researcher subagent;
|
|
16
|
+
# 5. runs `bathys-doctor` for a final health check.
|
|
17
|
+
#
|
|
18
|
+
# Exit code is the doctor's. Manual alternative (the same result, no script):
|
|
19
|
+
# pip install bathys && bathys setup
|
|
20
|
+
|
|
21
|
+
set -euo pipefail
|
|
22
|
+
|
|
23
|
+
BOLD="$(tput bold 2>/dev/null || echo '')"
|
|
24
|
+
DIM="$(tput dim 2>/dev/null || echo '')"
|
|
25
|
+
RESET="$(tput sgr0 2>/dev/null || echo '')"
|
|
26
|
+
say() { printf "%s\n" "${BOLD}[bathys]${RESET} $*"; }
|
|
27
|
+
note() { printf "%s\n" "${DIM}[bathys]${RESET} $*"; }
|
|
28
|
+
die() { printf "%s\n" "${BOLD}[bathys]${RESET} ERROR: $*" >&2; exit 1; }
|
|
29
|
+
|
|
30
|
+
VENV_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/bathys/venv"
|
|
31
|
+
|
|
32
|
+
# ------------------------------------------------------------------ python --
|
|
33
|
+
find_python() {
|
|
34
|
+
for cand in python3.12 python3.11 python3.10 python3 python; do
|
|
35
|
+
if command -v "$cand" >/dev/null 2>&1; then
|
|
36
|
+
if "$cand" - <<'PY' >/dev/null 2>&1
|
|
37
|
+
import sys
|
|
38
|
+
raise SystemExit(0 if (3, 10) <= sys.version_info[:2] <= (3, 14) else 1)
|
|
39
|
+
PY
|
|
40
|
+
then
|
|
41
|
+
echo "$cand"
|
|
42
|
+
return 0
|
|
43
|
+
fi
|
|
44
|
+
fi
|
|
45
|
+
done
|
|
46
|
+
return 1
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
PY="$(find_python)" || die "Python 3.10–3.14 не найден. Установите его и повторите — либо вручную: pip install bathys && bathys setup"
|
|
50
|
+
note "python: $($PY --version 2>&1)"
|
|
51
|
+
|
|
52
|
+
# ------------------------------------------------------------------- venv --
|
|
53
|
+
if [ -x "$VENV_DIR/bin/bathys" ] && "$VENV_DIR/bin/bathys" --help >/dev/null 2>&1; then
|
|
54
|
+
note "venv уже живой: $VENV_DIR (обновляю пакет)"
|
|
55
|
+
UPGRADE=yes
|
|
56
|
+
else
|
|
57
|
+
note "создаю приватный venv: $VENV_DIR"
|
|
58
|
+
rm -rf "$VENV_DIR"
|
|
59
|
+
"$PY" -m venv "$VENV_DIR" 2>/dev/null \
|
|
60
|
+
|| "$PY" -m venv --without-pip "$VENV_DIR" \
|
|
61
|
+
|| die "не удалось создать venv в $VENV_DIR"
|
|
62
|
+
UPGRADE=no
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
# bootstrap pip when the venv lacks it (minimal images without ensurepip)
|
|
66
|
+
if [ ! -x "$VENV_DIR/bin/pip" ]; then
|
|
67
|
+
note "pip отсутствует в venv — бутстрап через get-pip.py…"
|
|
68
|
+
TMP_GP="$(mktemp)"; trap 'rm -f "$TMP_GP"' EXIT
|
|
69
|
+
curl -fsSL https://bootstrap.pypa.io/get-pip.py -o "$TMP_GP" \
|
|
70
|
+
|| die "не удалось скачать get-pip.py (сеть?)"
|
|
71
|
+
"$VENV_DIR/bin/python" "$TMP_GP" -q >/dev/null 2>&1 \
|
|
72
|
+
|| die "get-pip.py не смог подняться в venv"
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
# ---------------------------------------------------------------- install --
|
|
76
|
+
if [ "$UPGRADE" = yes ]; then
|
|
77
|
+
"$VENV_DIR/bin/pip" install --quiet --upgrade bathys >/dev/null 2>&1 \
|
|
78
|
+
|| die "pip install --upgrade bathys не удался (сеть/PyPI?)"
|
|
79
|
+
else
|
|
80
|
+
"$VENV_DIR/bin/pip" install --quiet bathys >/dev/null 2>&1 \
|
|
81
|
+
|| die "pip install bathys не удался (сеть/PyPI?)"
|
|
82
|
+
fi
|
|
83
|
+
[ -x "$VENV_DIR/bin/bathys" ] || die "bathys не появился в venv — проверьте вывод pip вручную"
|
|
84
|
+
|
|
85
|
+
# ------------------------------------------------------------------- PATH --
|
|
86
|
+
PATH_LINE='export PATH="$HOME/.local/share/bathys/venv/bin:$PATH"'
|
|
87
|
+
if ! case ":$PATH:" in *":$VENV_DIR/bin:"*) false;; esac; then
|
|
88
|
+
export PATH="$VENV_DIR/bin:$PATH"
|
|
89
|
+
fi
|
|
90
|
+
for rc in "$HOME/.profile" "$HOME/.bashrc"; do
|
|
91
|
+
if [ -f "$rc" ] && ! grep -qF 'bathys/venv/bin' "$rc"; then
|
|
92
|
+
printf '\n# bathys (one-line installer)\n%s\n' "$PATH_LINE" >> "$rc"
|
|
93
|
+
note "PATH дополнен в $rc — перезапустите шелл или: source $rc"
|
|
94
|
+
fi
|
|
95
|
+
done
|
|
96
|
+
|
|
97
|
+
say "установлен: $VENV_DIR/bin/bathys"
|
|
98
|
+
|
|
99
|
+
# ------------------------------------------------------------------ setup --
|
|
100
|
+
say "полная настройка (браузер → харнессы → субагент)…"
|
|
101
|
+
"$VENV_DIR/bin/bathys" setup
|
|
102
|
+
|
|
103
|
+
# ----------------------------------------------------------------- doctor --
|
|
104
|
+
say "финальная диагностика:"
|
|
105
|
+
exec "$VENV_DIR/bin/bathys" doctor
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bathys"
|
|
7
|
-
version = "0.7.
|
|
7
|
+
version = "0.7.1"
|
|
8
8
|
description = "Unified local deep-research search service for AI agents — one pipeline (search → extraction → query distillation → cache), zero cloud quotas. MCP stdio server with native harness integration (bathys install)."
|
|
9
9
|
keywords = ["mcp", "deep-research", "search", "web-search", "ai-agents", "llm", "local-first", "distillation", "searxng", "crawl4ai"]
|
|
10
10
|
classifiers = [
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|