bathys 0.6.2__tar.gz → 0.7.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 (100) hide show
  1. {bathys-0.6.2 → bathys-0.7.0}/.remember/logs/memory-2026-09-08.log +32 -0
  2. bathys-0.7.0/.remember/tmp/no-transcript-notice +1 -0
  3. {bathys-0.6.2 → bathys-0.7.0}/CHANGELOG.md +15 -0
  4. {bathys-0.6.2 → bathys-0.7.0}/PKG-INFO +36 -22
  5. {bathys-0.6.2 → bathys-0.7.0}/README.md +35 -21
  6. {bathys-0.6.2 → bathys-0.7.0}/docs/contracts/config.md +1 -0
  7. {bathys-0.6.2 → bathys-0.7.0}/docs/getting-started/configure.md +1 -0
  8. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/.remember/logs/memory-2026-09-08.log +5 -0
  9. {bathys-0.6.2 → bathys-0.7.0}/pyproject.toml +1 -1
  10. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/__init__.py +1 -1
  11. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/config.py +2 -0
  12. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/core.py +1 -1
  13. bathys-0.7.0/src/bathys/crawler.py +205 -0
  14. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/installer.py +102 -17
  15. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/server.py +12 -7
  16. {bathys-0.6.2 → bathys-0.7.0}/tests/test_installer.py +5 -3
  17. bathys-0.6.2/.remember/tmp/no-transcript-notice +0 -1
  18. bathys-0.6.2/src/bathys/crawler.py +0 -104
  19. {bathys-0.6.2 → bathys-0.7.0}/.github/workflows/ci.yml +0 -0
  20. {bathys-0.6.2 → bathys-0.7.0}/.gitignore +0 -0
  21. {bathys-0.6.2 → bathys-0.7.0}/.remember/.gitignore +0 -0
  22. {bathys-0.6.2 → bathys-0.7.0}/.remember/logs/hook-errors.log +0 -0
  23. {bathys-0.6.2 → bathys-0.7.0}/.remember/logs/memory-2026-09-06.log +0 -0
  24. {bathys-0.6.2 → bathys-0.7.0}/.remember/logs/memory-2026-09-07.log +0 -0
  25. {bathys-0.6.2 → bathys-0.7.0}/.remember/tmp/capture-gap-skipped +0 -0
  26. {bathys-0.6.2 → bathys-0.7.0}/.remember/tmp/case-divergence +0 -0
  27. {bathys-0.6.2 → bathys-0.7.0}/.remember/tmp/post-tool-ran +0 -0
  28. {bathys-0.6.2 → bathys-0.7.0}/.remember/tmp/session-slug +0 -0
  29. {bathys-0.6.2 → bathys-0.7.0}/Dockerfile +0 -0
  30. {bathys-0.6.2 → bathys-0.7.0}/LICENSE +0 -0
  31. {bathys-0.6.2 → bathys-0.7.0}/agents/HARNESS-DROPIN.md +0 -0
  32. {bathys-0.6.2 → bathys-0.7.0}/agents/bathys-researcher.md +0 -0
  33. {bathys-0.6.2 → bathys-0.7.0}/agents/skills/bathys-deep-dive/SKILL.md +0 -0
  34. {bathys-0.6.2 → bathys-0.7.0}/agents/skills/bathys-source-audit/SKILL.md +0 -0
  35. {bathys-0.6.2 → bathys-0.7.0}/docs/adr/0001-python-crawl4ai.md +0 -0
  36. {bathys-0.6.2 → bathys-0.7.0}/docs/adr/0002-pin-mcp-sdk-v1.md +0 -0
  37. {bathys-0.6.2 → bathys-0.7.0}/docs/adr/0003-self-managed-searxng.md +0 -0
  38. {bathys-0.6.2 → bathys-0.7.0}/docs/adr/0004-bm25-distillation.md +0 -0
  39. {bathys-0.6.2 → bathys-0.7.0}/docs/adr/0005-cache-raw-before-distill.md +0 -0
  40. {bathys-0.6.2 → bathys-0.7.0}/docs/adr/0006-three-tool-string-surface.md +0 -0
  41. {bathys-0.6.2 → bathys-0.7.0}/docs/architecture/data-flow.md +0 -0
  42. {bathys-0.6.2 → bathys-0.7.0}/docs/architecture/overview.md +0 -0
  43. {bathys-0.6.2 → bathys-0.7.0}/docs/architecture/pipeline.md +0 -0
  44. {bathys-0.6.2 → bathys-0.7.0}/docs/assets/banner.svg +0 -0
  45. {bathys-0.6.2 → bathys-0.7.0}/docs/contracts/mcp-tools.md +0 -0
  46. {bathys-0.6.2 → bathys-0.7.0}/docs/contracts/module-contracts.md +0 -0
  47. {bathys-0.6.2 → bathys-0.7.0}/docs/contracts/output-format.md +0 -0
  48. {bathys-0.6.2 → bathys-0.7.0}/docs/getting-started/cases.md +0 -0
  49. {bathys-0.6.2 → bathys-0.7.0}/docs/getting-started/install.md +0 -0
  50. {bathys-0.6.2 → bathys-0.7.0}/docs/getting-started/integrate.md +0 -0
  51. {bathys-0.6.2 → bathys-0.7.0}/docs/index.md +0 -0
  52. {bathys-0.6.2 → bathys-0.7.0}/docs/integrations/claude-code.md +0 -0
  53. {bathys-0.6.2 → bathys-0.7.0}/docs/integrations/cursor.md +0 -0
  54. {bathys-0.6.2 → bathys-0.7.0}/docs/integrations/generic-mcp.md +0 -0
  55. {bathys-0.6.2 → bathys-0.7.0}/docs/integrations/overview.md +0 -0
  56. {bathys-0.6.2 → bathys-0.7.0}/docs/integrations/zcode.md +0 -0
  57. {bathys-0.6.2 → bathys-0.7.0}/docs/meta/glossary.md +0 -0
  58. {bathys-0.6.2 → bathys-0.7.0}/docs/meta/style-guide.md +0 -0
  59. {bathys-0.6.2 → bathys-0.7.0}/docs/operations/metrics.md +0 -0
  60. {bathys-0.6.2 → bathys-0.7.0}/docs/operations/runbook.md +0 -0
  61. {bathys-0.6.2 → bathys-0.7.0}/docs/product/charter.md +0 -0
  62. {bathys-0.6.2 → bathys-0.7.0}/docs/product/competitive.md +0 -0
  63. {bathys-0.6.2 → bathys-0.7.0}/docs/product/features.md +0 -0
  64. {bathys-0.6.2 → bathys-0.7.0}/docs/product/mind-initiative.md +0 -0
  65. {bathys-0.6.2 → bathys-0.7.0}/docs/product/ocr-initiative.md +0 -0
  66. {bathys-0.6.2 → bathys-0.7.0}/docs/product/roadmap.md +0 -0
  67. {bathys-0.6.2 → bathys-0.7.0}/integrations/README.md +0 -0
  68. {bathys-0.6.2 → bathys-0.7.0}/integrations/hermes/README.md +0 -0
  69. {bathys-0.6.2 → bathys-0.7.0}/integrations/hermes/install.py +0 -0
  70. {bathys-0.6.2 → bathys-0.7.0}/integrations/pi/README.md +0 -0
  71. {bathys-0.6.2 → bathys-0.7.0}/integrations/pi/assets/bathys-rules.md +0 -0
  72. {bathys-0.6.2 → bathys-0.7.0}/integrations/zcode/README.md +0 -0
  73. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/.remember/.gitignore +0 -0
  74. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/.remember/logs/hook-errors.log +0 -0
  75. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/.remember/tmp/no-transcript-notice +0 -0
  76. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/.remember/tmp/post-tool-ran +0 -0
  77. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/README.md +0 -0
  78. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/bin/cli.js +0 -0
  79. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/bin/postinstall.js +0 -0
  80. {bathys-0.6.2 → bathys-0.7.0}/npm/bathys-mcp/package.json +0 -0
  81. {bathys-0.6.2 → bathys-0.7.0}/scripts/acceptance_v02.py +0 -0
  82. {bathys-0.6.2 → bathys-0.7.0}/scripts/batch_check.py +0 -0
  83. {bathys-0.6.2 → bathys-0.7.0}/scripts/metrics_report.py +0 -0
  84. {bathys-0.6.2 → bathys-0.7.0}/scripts/smoke.py +0 -0
  85. {bathys-0.6.2 → bathys-0.7.0}/scripts/stdio_check.py +0 -0
  86. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/batch.py +0 -0
  87. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/cache.py +0 -0
  88. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/compose.yaml +0 -0
  89. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/distill.py +0 -0
  90. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/doctor.py +0 -0
  91. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/searx.py +0 -0
  92. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/searxng-settings.yml +0 -0
  93. {bathys-0.6.2 → bathys-0.7.0}/src/bathys/services.py +0 -0
  94. {bathys-0.6.2 → bathys-0.7.0}/tests/test_batch.py +0 -0
  95. {bathys-0.6.2 → bathys-0.7.0}/tests/test_cache.py +0 -0
  96. {bathys-0.6.2 → bathys-0.7.0}/tests/test_config.py +0 -0
  97. {bathys-0.6.2 → bathys-0.7.0}/tests/test_core.py +0 -0
  98. {bathys-0.6.2 → bathys-0.7.0}/tests/test_distill.py +0 -0
  99. {bathys-0.6.2 → bathys-0.7.0}/tests/test_searx.py +0 -0
  100. {bathys-0.6.2 → bathys-0.7.0}/tests/test_v04.py +0 -0
@@ -163,3 +163,35 @@
163
163
  12:45:40 [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
164
164
  12:45:43 [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
165
165
  12:45: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
166
+ 12:45: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
167
+ 12:46:09 [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
168
+ 12:47: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
169
+ 12:47:14 [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
170
+ 12:47:17 [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
171
+ 12:47: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
172
+ 12:47:25 [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
173
+ 12:47:31 [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
174
+ 12:47:50 [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
175
+ 13:37:33 [hook] session-start: 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 REMEMBER_DIR=/var/home/abyss/LABs/MCP/deepreserch/.remember
176
+ 13:37:33 [hook] session-start: capture-gap check skipped — no session_id on stdin
177
+ 13:54:37 [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
178
+ 13:54:37 [hook] WARNING: no session dir for this project: /var/home/abyss/.distrobox/ubuntu/home/.claude/projects/-var-home-abyss-LABs-MCP-deepreserch (slug of /var/home/abyss/LABs/MCP/deepreserch). Memory cannot save until it matches a directory under /var/home/abyss/.distrobox/ubuntu/home/.claude/projects/
179
+ 13:54:43 [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
180
+ 13:54:59 [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
181
+ 13:55: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
182
+ 13:55:17 [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
183
+ 13:55: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
184
+ 13:55:33 [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
185
+ 13:56:11 [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
186
+ 13:56:25 [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
187
+ 13:56:37 [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
188
+ 13:56:50 [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
189
+ 13:56:58 [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
190
+ 13:57:00 [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
191
+ 13:57:08 [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
192
+ 13:57: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
193
+ 13:57:22 [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
194
+ 13:57:36 [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
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
+ 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
+ 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
@@ -0,0 +1 @@
1
+ 1788864877
@@ -2,6 +2,21 @@
2
2
 
3
3
  Формат: Keep a Changelog; версии — semver. Дата — дата выпуска версии.
4
4
 
5
+ ## [0.7.0] — 2026-09-08
6
+
7
+ Тема: «Ship & Setup» — двухъярусное извлечение без обязательного браузера и модульная установка.
8
+
9
+ ### Добавлено
10
+
11
+ - **Двухъярусное извлечение** (`crawler.py`): по умолчанию страницы читает собственный HTTP-движок (httpx, миллисекунды, ноль браузера); headless-Chromium включается автоматически только когда страница — JS-оболочка (детект: app-root-разметка, пустое тело, экранирование контента) или HTTP-ярус не смог. Замеры: Wikipedia 0.61 c, GitHub 1.0 c по HTTP против ~4–5 c с браузером. `BATHYS_BROWSER=off|auto|always` управляет режимом; браузер больше не обязательная зависимость запуска — `bathys setup` ставит его для JS-страниц, но сервер работает и без него.
12
+ - **`bathys setup`** — полная установка одним вызовом: браузерный движок (пропускается по `--skip-browser`) → интеграция всех найденных харнессов → субагент → итоговые подсказки. Идемпотентен; после `pip install bathys` пользователю достаточно `bathys setup`.
13
+ - **Точечная установка `bathys install <HARNESS>`**: `bathys install hermes` пишет только Hermes, отсутствующий конфиг целевого харнесса создаётся с нуля (проверено: opencode-конфиг создан в его формате); `--list` печатает все таргеты с их путями и статусом; неизвестное имя — понятная ошибка.
14
+
15
+ ### Изменено
16
+
17
+ - README: идентичность переписана («самостоятельный продукт, а не обёртка над чужими сервисами: реализует весь конвейер сам»); основной путь установки — `pip install bathys` + `bathys setup`, альтернативы (npm, исходники, минимальные образы) и ручное подключение убраны под `<details>`-каты.
18
+ - Синтаксис вызова диспетчера: `bathys` (сервер) / `bathys setup` / `bathys install [targets]` / `bathys doctor`; справка `--help` обновлена.
19
+
5
20
  ## [0.6.2] — 2026-09-08
6
21
 
7
22
  Публикационная волна: PyPI + NPM + кастомные интеграции.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: bathys
3
- Version: 0.6.2
3
+ Version: 0.7.0
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
@@ -28,31 +28,35 @@ Description-Content-Type: text/markdown
28
28
 
29
29
  # Bathys
30
30
 
31
- **Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.** Один процесс владеет всем конвейером — поиск → извлечение → дистилляция под запрос → кэш — и всей стратегией ресёрча: что искать, какие страницы читать, сколько вернуть. Агент видит лишь интерфейс из четырёх MCP-инструментов; SearXNG и Crawl4AI работают внутри как сменные движки. Облачных квот и API-ключей нет, LLM внутри нет — дистилляция детерминированная (BM25).
31
+ **Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.** Это самостоятельный продукт, а не обёртка над чужими сервисами: Bathys реализует весь конвейер сам — метапоиск с дедупликацией и живучестью к блокировкам, двухъярусное извлечение (HTTP-движок по умолчанию, headless-браузер только для JS-страниц), пятистадийную дистилляцию под запрос с жёсткими бюджетами, TTL-кэш сырца, robots-этику, метрики и диагностику. Метапоиск и извлечение оформлены как сменные внутренние движки (SearXNG, Crawl4AI) — их можно заменить, продукт останется Bathys. Облачных квот нет; LLM внутри нет — синтез остаётся за вызывающим агентом, дистилляция детерминированная (BM25).
32
32
 
33
33
  Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.
34
34
 
35
35
  ![python](https://img.shields.io/badge/python-3.10%2B-blue)
36
- ![version](https://img.shields.io/badge/version-0.6.2-9cf)
36
+ ![version](https://img.shields.io/badge/version-0.7.0-9cf)
37
37
  ![mcp](https://img.shields.io/badge/MCP-stdio%20server-6f42c1)
38
38
  ![license](https://img.shields.io/badge/license-MIT-green)
39
39
 
40
40
  ## ⚡ Quick start
41
41
 
42
- **Из PyPI** (основной путь — Python ≥ 3.10):
42
+ Три команды от чистой системы до работающего поиска (Python ≥ 3.10):
43
43
 
44
44
  ```bash
45
- pip install bathys # сервер + команды bathys/bathys-doctor
46
- python -m playwright install chromium # браузер для извлечения
47
- bathys install # автоподключение к найденным харнессам
48
- bathys-doctor # диагностика стека одним запуском
45
+ pip install bathys # пакет: сервер + bathys setup/install/doctor
46
+ bathys setup # браузер для JS-страниц → все найденные харнессы → субагент
47
+ bathys doctor # самодиагностика стека
49
48
  ```
50
49
 
51
- **Из npm** (для Node-first окружений — обёртка ставит Python-пакет сама):
50
+ `setup` идемпотентен — повторный запуск ничего не ломает. SearXNG ставить руками не нужно: бэкенд поднимется сам при первом поиске (внешний инстанс → docker → нативный режим). Браузер нужен только для JS-страниц: обычные страницы Bathys читает собственным HTTP-движком, `BATHYS_BROWSER=off` отключает браузерный ярус полностью.
51
+
52
+ <details>
53
+ <summary><b>Альтернативные пути установки</b> (npm, исходники, минимальные образы)</summary>
54
+
55
+ **npm** (Node-first окружения — обёртка ставит Python-пакет сама):
52
56
 
53
57
  ```bash
54
58
  npm install -g bathys-mcp
55
- bathys-mcp install
59
+ bathys-mcp setup
56
60
  ```
57
61
 
58
62
  **Из исходников** (разработка):
@@ -60,32 +64,40 @@ bathys-mcp install
60
64
  ```bash
61
65
  git clone https://github.com/Korrnals/bathys.git && cd bathys
62
66
  python3.12 -m venv .venv && .venv/bin/pip install -e .
63
- .venv/bin/python -m playwright install chromium
64
- .venv/bin/python -m unittest discover -s tests # юнит-тесты без сети, ~0.1 c
67
+ .venv/bin/bathys setup
68
+ .venv/bin/python -m unittest discover -s tests # юнит-тесты без сети
65
69
  ```
66
70
 
67
- В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md). SearXNG поднимать руками не нужно: при первом поиске сервер сам пробует внешний инстанс, затем docker/podman, затем нативный режим ([docs/getting-started/configure.md](docs/getting-started/configure.md)).
71
+ В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md).
72
+
73
+ </details>
68
74
 
69
75
  ## 🔌 Подключение к харнессу
70
76
 
71
- **Автоматически.** Одна команда найдёт харнессы по стандартным путям, пропишет сервер с бэкапом конфига и (с `--with-agent`) скопирует субагента:
77
+ **Автоматически — весь стек:** `bathys setup` (см. выше) прописывает сервер во все найденные харнессы.
78
+
79
+ **Точечно — когда нужно именно здесь:**
72
80
 
73
81
  ```bash
74
- .venv/bin/bathys install # сначала --dry-run, чтобы увидеть план
82
+ bathys install # автодетект всех установленных харнессов
83
+ bathys install hermes # только Hermes (отсутствующий конфиг создастся)
84
+ bathys install --list # все поддерживаемые таргеты
85
+ bathys install --print-config # готовые блоки для ручной вставки
75
86
  ```
76
87
 
77
- Детектируются zcode, Claude Code, Claude Desktop, Cursor, VS Code-семейство (Cline / Roo Code / Kilo Code), Gemini CLI, Windsurf, Zed, opencode, goose, Hermes; форматы каждого — свои (JSON-схемы и YAML-контуры goose/hermes), запись идемпотентна. Для Pi (badlogic pi-mono), у которого нет MCP-конфига, — дроп-ин в `AGENTS.md`. Поддерживаются `--print-config` (готовые блоки для ручной вставки) и `--searxng-home <путь>`; кастомные интеграции — в каталоге [integrations/](integrations/).
88
+ Детектируются zcode, Claude Code, Claude Desktop, Cursor, VS Code-семейство (Cline / Roo Code / Kilo Code), Gemini CLI, Windsurf, Zed, opencode, goose, Hermes; форматы каждого — свои (JSON-схемы и YAML-контуры goose/hermes), запись идемпотентна с бэкапом. Для Pi (badlogic pi-mono), у которого нет MCP-конфига, — дроп-ин в `AGENTS.md`. Кастомные интеграции — в каталоге [integrations/](integrations/).
89
+
90
+ <details>
91
+ <summary><b>Ручное подключение</b> (когда правите конфиги сами)</summary>
78
92
 
79
- **Вручную.** Bathys — stdio MCP-сервер, конфиг везде один и тот же блок `mcpServers`; от харнесса зависит только файл, в который его кладут. `command` — абсолютный путь к вашему клону (`~` внутри JSON не раскрывается); `BATHYS_SEARXNG_HOME` опциональна.
93
+ Bathys — stdio MCP-сервер: блок `mcpServers` один и тот же везде, от харнесса зависит только файл, в который его кладут. `command` — абсолютный путь к бинарнику (`~` внутри JSON не раскрывается); `BATHYS_SEARXNG_HOME` опциональна. Готовые блоки под каждый клиент: `bathys install --print-config`.
80
94
 
81
95
  ```json
82
96
  {
83
97
  "mcpServers": {
84
98
  "bathys": {
85
- "command": "/path/to/bathys/.venv/bin/bathys",
86
- "env": {
87
- "BATHYS_SEARXNG_HOME": "/path/to/bathys/.runtime/searxng-home"
88
- }
99
+ "command": "/path/to/bathys",
100
+ "env": { "BATHYS_SEARXNG_HOME": "/path/to/searxng-home" }
89
101
  }
90
102
  }
91
103
  }
@@ -98,6 +110,8 @@ python3.12 -m venv .venv && .venv/bin/pip install -e .
98
110
  | Cursor | [docs/integrations/cursor.md](docs/integrations/cursor.md) |
99
111
  | Любой другой MCP-клиент | [docs/integrations/generic-mcp.md](docs/integrations/generic-mcp.md) |
100
112
 
113
+ </details>
114
+
101
115
  ## 🧠 Научить агента работать эффективно
102
116
 
103
117
  Конфиг — только половина дела. Из коробки харнесс получает **instructions-playbook** (матрицу выбора инструментов), **annotations** и **три стратегии-промпта** — `bathys_deep_research`, `bathys_source_audit`, `bathys_fresh_scan`, — так что выбирает инструменты Bathys уже нативно. Сильнее — профиль: субагент [`agents/bathys-researcher.md`](agents/bathys-researcher.md) с двумя скиллами, которому глубокий ресёрч делегируется целиком; для клиентов, не показывающих MCP instructions, — дроп-ин [`agents/HARNESS-DROPIN.md`](agents/HARNESS-DROPIN.md) в `AGENTS.md` / `CLAUDE.md` / `.cursor/rules`.
@@ -166,7 +180,7 @@ docs/
166
180
 
167
181
  ## 📍 Статус
168
182
 
169
- **0.6.2.** Выпускная история: 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).
183
+ **0.7.0.** Выпускная история: 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).
170
184
 
171
185
  Репозиторий: `github.com/Korrnals/bathys`. До 1.0 остаются публикация пакета `bathys` на PyPI (имя свободно, публикация планируется к 1.0) и первый прогон Docker-образа; CI с matrix 3.10–3.12 уже в репозитории.
172
186
 
@@ -2,31 +2,35 @@
2
2
 
3
3
  # Bathys
4
4
 
5
- **Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.** Один процесс владеет всем конвейером — поиск → извлечение → дистилляция под запрос → кэш — и всей стратегией ресёрча: что искать, какие страницы читать, сколько вернуть. Агент видит лишь интерфейс из четырёх MCP-инструментов; SearXNG и Crawl4AI работают внутри как сменные движки. Облачных квот и API-ключей нет, LLM внутри нет — дистилляция детерминированная (BM25).
5
+ **Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.** Это самостоятельный продукт, а не обёртка над чужими сервисами: Bathys реализует весь конвейер сам — метапоиск с дедупликацией и живучестью к блокировкам, двухъярусное извлечение (HTTP-движок по умолчанию, headless-браузер только для JS-страниц), пятистадийную дистилляцию под запрос с жёсткими бюджетами, TTL-кэш сырца, robots-этику, метрики и диагностику. Метапоиск и извлечение оформлены как сменные внутренние движки (SearXNG, Crawl4AI) — их можно заменить, продукт останется Bathys. Облачных квот нет; LLM внутри нет — синтез остаётся за вызывающим агентом, дистилляция детерминированная (BM25).
6
6
 
7
7
  Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.
8
8
 
9
9
  ![python](https://img.shields.io/badge/python-3.10%2B-blue)
10
- ![version](https://img.shields.io/badge/version-0.6.2-9cf)
10
+ ![version](https://img.shields.io/badge/version-0.7.0-9cf)
11
11
  ![mcp](https://img.shields.io/badge/MCP-stdio%20server-6f42c1)
12
12
  ![license](https://img.shields.io/badge/license-MIT-green)
13
13
 
14
14
  ## ⚡ Quick start
15
15
 
16
- **Из PyPI** (основной путь — Python ≥ 3.10):
16
+ Три команды от чистой системы до работающего поиска (Python ≥ 3.10):
17
17
 
18
18
  ```bash
19
- pip install bathys # сервер + команды bathys/bathys-doctor
20
- python -m playwright install chromium # браузер для извлечения
21
- bathys install # автоподключение к найденным харнессам
22
- bathys-doctor # диагностика стека одним запуском
19
+ pip install bathys # пакет: сервер + bathys setup/install/doctor
20
+ bathys setup # браузер для JS-страниц → все найденные харнессы → субагент
21
+ bathys doctor # самодиагностика стека
23
22
  ```
24
23
 
25
- **Из npm** (для Node-first окружений — обёртка ставит Python-пакет сама):
24
+ `setup` идемпотентен — повторный запуск ничего не ломает. SearXNG ставить руками не нужно: бэкенд поднимется сам при первом поиске (внешний инстанс → docker → нативный режим). Браузер нужен только для JS-страниц: обычные страницы Bathys читает собственным HTTP-движком, `BATHYS_BROWSER=off` отключает браузерный ярус полностью.
25
+
26
+ <details>
27
+ <summary><b>Альтернативные пути установки</b> (npm, исходники, минимальные образы)</summary>
28
+
29
+ **npm** (Node-first окружения — обёртка ставит Python-пакет сама):
26
30
 
27
31
  ```bash
28
32
  npm install -g bathys-mcp
29
- bathys-mcp install
33
+ bathys-mcp setup
30
34
  ```
31
35
 
32
36
  **Из исходников** (разработка):
@@ -34,32 +38,40 @@ bathys-mcp install
34
38
  ```bash
35
39
  git clone https://github.com/Korrnals/bathys.git && cd bathys
36
40
  python3.12 -m venv .venv && .venv/bin/pip install -e .
37
- .venv/bin/python -m playwright install chromium
38
- .venv/bin/python -m unittest discover -s tests # юнит-тесты без сети, ~0.1 c
41
+ .venv/bin/bathys setup
42
+ .venv/bin/python -m unittest discover -s tests # юнит-тесты без сети
39
43
  ```
40
44
 
41
- В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md). SearXNG поднимать руками не нужно: при первом поиске сервер сам пробует внешний инстанс, затем docker/podman, затем нативный режим ([docs/getting-started/configure.md](docs/getting-started/configure.md)).
45
+ В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md).
46
+
47
+ </details>
42
48
 
43
49
  ## 🔌 Подключение к харнессу
44
50
 
45
- **Автоматически.** Одна команда найдёт харнессы по стандартным путям, пропишет сервер с бэкапом конфига и (с `--with-agent`) скопирует субагента:
51
+ **Автоматически — весь стек:** `bathys setup` (см. выше) прописывает сервер во все найденные харнессы.
52
+
53
+ **Точечно — когда нужно именно здесь:**
46
54
 
47
55
  ```bash
48
- .venv/bin/bathys install # сначала --dry-run, чтобы увидеть план
56
+ bathys install # автодетект всех установленных харнессов
57
+ bathys install hermes # только Hermes (отсутствующий конфиг создастся)
58
+ bathys install --list # все поддерживаемые таргеты
59
+ bathys install --print-config # готовые блоки для ручной вставки
49
60
  ```
50
61
 
51
- Детектируются zcode, Claude Code, Claude Desktop, Cursor, VS Code-семейство (Cline / Roo Code / Kilo Code), Gemini CLI, Windsurf, Zed, opencode, goose, Hermes; форматы каждого — свои (JSON-схемы и YAML-контуры goose/hermes), запись идемпотентна. Для Pi (badlogic pi-mono), у которого нет MCP-конфига, — дроп-ин в `AGENTS.md`. Поддерживаются `--print-config` (готовые блоки для ручной вставки) и `--searxng-home <путь>`; кастомные интеграции — в каталоге [integrations/](integrations/).
62
+ Детектируются zcode, Claude Code, Claude Desktop, Cursor, VS Code-семейство (Cline / Roo Code / Kilo Code), Gemini CLI, Windsurf, Zed, opencode, goose, Hermes; форматы каждого — свои (JSON-схемы и YAML-контуры goose/hermes), запись идемпотентна с бэкапом. Для Pi (badlogic pi-mono), у которого нет MCP-конфига, — дроп-ин в `AGENTS.md`. Кастомные интеграции — в каталоге [integrations/](integrations/).
63
+
64
+ <details>
65
+ <summary><b>Ручное подключение</b> (когда правите конфиги сами)</summary>
52
66
 
53
- **Вручную.** Bathys — stdio MCP-сервер, конфиг везде один и тот же блок `mcpServers`; от харнесса зависит только файл, в который его кладут. `command` — абсолютный путь к вашему клону (`~` внутри JSON не раскрывается); `BATHYS_SEARXNG_HOME` опциональна.
67
+ Bathys — stdio MCP-сервер: блок `mcpServers` один и тот же везде, от харнесса зависит только файл, в который его кладут. `command` — абсолютный путь к бинарнику (`~` внутри JSON не раскрывается); `BATHYS_SEARXNG_HOME` опциональна. Готовые блоки под каждый клиент: `bathys install --print-config`.
54
68
 
55
69
  ```json
56
70
  {
57
71
  "mcpServers": {
58
72
  "bathys": {
59
- "command": "/path/to/bathys/.venv/bin/bathys",
60
- "env": {
61
- "BATHYS_SEARXNG_HOME": "/path/to/bathys/.runtime/searxng-home"
62
- }
73
+ "command": "/path/to/bathys",
74
+ "env": { "BATHYS_SEARXNG_HOME": "/path/to/searxng-home" }
63
75
  }
64
76
  }
65
77
  }
@@ -72,6 +84,8 @@ python3.12 -m venv .venv && .venv/bin/pip install -e .
72
84
  | Cursor | [docs/integrations/cursor.md](docs/integrations/cursor.md) |
73
85
  | Любой другой MCP-клиент | [docs/integrations/generic-mcp.md](docs/integrations/generic-mcp.md) |
74
86
 
87
+ </details>
88
+
75
89
  ## 🧠 Научить агента работать эффективно
76
90
 
77
91
  Конфиг — только половина дела. Из коробки харнесс получает **instructions-playbook** (матрицу выбора инструментов), **annotations** и **три стратегии-промпта** — `bathys_deep_research`, `bathys_source_audit`, `bathys_fresh_scan`, — так что выбирает инструменты Bathys уже нативно. Сильнее — профиль: субагент [`agents/bathys-researcher.md`](agents/bathys-researcher.md) с двумя скиллами, которому глубокий ресёрч делегируется целиком; для клиентов, не показывающих MCP instructions, — дроп-ин [`agents/HARNESS-DROPIN.md`](agents/HARNESS-DROPIN.md) в `AGENTS.md` / `CLAUDE.md` / `.cursor/rules`.
@@ -140,7 +154,7 @@ docs/
140
154
 
141
155
  ## 📍 Статус
142
156
 
143
- **0.6.2.** Выпускная история: 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).
157
+ **0.7.0.** Выпускная история: 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).
144
158
 
145
159
  Репозиторий: `github.com/Korrnals/bathys`. До 1.0 остаются публикация пакета `bathys` на PyPI (имя свободно, публикация планируется к 1.0) и первый прогон Docker-образа; CI с matrix 3.10–3.12 уже в репозитории.
146
160
 
@@ -30,6 +30,7 @@
30
30
  | `BATHYS_SEARCH_MIN_INTERVAL` | `1.0` | float, с | вежливый минимальный интервал между поисками к бэкенду (F-301); 0 — без пауз |
31
31
  | `BATHYS_SEARCH_RETRIES` | `2` | int | дoп. попытки при пустой/заблокированной выдаче с ротацией наборов движков и паузой 1.5s×n (F-101); 0–3 |
32
32
  | `BATHYS_DIVE_CONCURRENCY` | `4` | int | параллельные нырки страниц в `deep_research` (F-301); 1–8 |
33
+ | `BATHYS_BROWSER` | `auto` | режим | двухъярусное извлечение: `auto` — HTTP-движок первым, браузер только для JS-страниц; `off` — без браузера; `always` — только браузер (отладка) |
33
34
  | `BATHYS_ROBOTS` | `1` | bool | уважать robots.txt при прямых нырках страниц (F-303); fail-open при недоступном robots; поиск не затрагивается |
34
35
  | `BATHYS_METRICS` | `1` | bool | локальный журнал вызовов `{DATA_DIR}/metrics.jsonl` (F-304); выключается полностью |
35
36
  | `BATHYS_ENGINE_BRAVE_KEY` | — | str | API-ключ Brave Search: одним ключом включает движок `brave` в генерируемых настройках SearXNG нативного режима (F-203, `services.render_settings`); для docker-режима — пропишите движок в settings сами |
@@ -22,6 +22,7 @@
22
22
  | `BATHYS_SEARCH_MIN_INTERVAL` | `1.0` | вежливая пауза между поисками к бэкенду, сек |
23
23
  | `BATHYS_SEARCH_RETRIES` | `2` | доп. попытки при пустой выдаче (ротация движков с паузами), 0–3 |
24
24
  | `BATHYS_DIVE_CONCURRENCY` | `4` | параллельные чтения страниц в `deep_research`, 1–8 |
25
+ | `BATHYS_BROWSER` | `auto` | режим | двухъярусное извлечение: `auto` — HTTP-движок первым, браузер только для JS-страниц; `off` — без браузера; `always` — только браузер (отладка) |
25
26
  | `BATHYS_ROBOTS` | `1` | уважать robots.txt при чтении страниц (отказ — пометкой, не ошибкой) |
26
27
  | `BATHYS_METRICS` | `1` | писать локальный журнал вызовов `~/.local/share/bathys/metrics.jsonl` |
27
28
  | `BATHYS_ENGINE_BRAVE_KEY` | — | ключ Brave Search API: включает движок `brave` в настройках нативного SearXNG одним env |
@@ -9,3 +9,8 @@
9
9
  12:44:57 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
10
10
  12:45:02 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
11
11
  12:45:09 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
12
+ 12:46:14 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
13
+ 12:46:18 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
14
+ 12:46:23 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
15
+ 12:46:28 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
16
+ 12:46:30 [hook] post-tool: PROJECT_DIR=/var/home/abyss/LABs/MCP/deepreserch/npm/bathys-mcp 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/npm/bathys-mcp/.remember
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bathys"
7
- version = "0.6.2"
7
+ version = "0.7.0"
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 = [
@@ -5,4 +5,4 @@ a query-focused distiller keeps only what answers the question. Built to spend
5
5
  the model's tokens on answers, not on boilerplate.
6
6
  """
7
7
 
8
- __version__ = "0.6.2"
8
+ __version__ = "0.7.0"
@@ -39,6 +39,7 @@ class Config:
39
39
  search_min_interval: float
40
40
  search_retries: int
41
41
  dive_concurrency: int
42
+ browser_mode: str
42
43
  respect_robots: bool
43
44
  metrics: bool
44
45
 
@@ -66,6 +67,7 @@ class Config:
66
67
  search_min_interval=float(os.environ.get("BATHYS_SEARCH_MIN_INTERVAL", "1.0")),
67
68
  search_retries=max(0, min(3, int(os.environ.get("BATHYS_SEARCH_RETRIES", "2")))),
68
69
  dive_concurrency=max(1, min(8, int(os.environ.get("BATHYS_DIVE_CONCURRENCY", "4")))),
70
+ browser_mode=(os.environ.get("BATHYS_BROWSER") or "auto").strip().lower(),
69
71
  respect_robots=_env_bool("BATHYS_ROBOTS", True),
70
72
  metrics=_env_bool("BATHYS_METRICS", True),
71
73
  )
@@ -313,7 +313,7 @@ class Engine:
313
313
  self.cache.set(pk, {"error": err}, ttl=max(3600, self.cfg.page_ttl // 24))
314
314
  raise RobotsRefusal(err)
315
315
  try:
316
- page = await self.crawler.fetch(url)
316
+ page = await self.crawler.fetch(url, http=self.http)
317
317
  except Exception as e:
318
318
  err = f"{e.__class__.__name__}: {e}"
319
319
  self.cache.set(pk, {"error": err}, ttl=max(3600, self.cfg.page_ttl // 24))