bathys 0.6.1__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.
- {bathys-0.6.1 → bathys-0.7.0}/.remember/logs/memory-2026-09-08.log +61 -0
- bathys-0.7.0/.remember/tmp/no-transcript-notice +1 -0
- {bathys-0.6.1 → bathys-0.7.0}/CHANGELOG.md +29 -0
- bathys-0.6.1/README.md → bathys-0.7.0/PKG-INFO +73 -19
- bathys-0.6.1/PKG-INFO → bathys-0.7.0/README.md +47 -31
- {bathys-0.6.1 → bathys-0.7.0}/docs/contracts/config.md +1 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/getting-started/configure.md +1 -0
- bathys-0.7.0/integrations/README.md +33 -0
- bathys-0.7.0/integrations/hermes/README.md +37 -0
- bathys-0.7.0/integrations/hermes/install.py +149 -0
- bathys-0.7.0/integrations/pi/README.md +42 -0
- bathys-0.7.0/integrations/pi/assets/bathys-rules.md +35 -0
- bathys-0.7.0/integrations/zcode/README.md +32 -0
- bathys-0.7.0/npm/bathys-mcp/.remember/.gitignore +1 -0
- bathys-0.7.0/npm/bathys-mcp/.remember/logs/hook-errors.log +0 -0
- bathys-0.7.0/npm/bathys-mcp/.remember/logs/memory-2026-09-08.log +16 -0
- bathys-0.7.0/npm/bathys-mcp/.remember/tmp/no-transcript-notice +1 -0
- bathys-0.7.0/npm/bathys-mcp/.remember/tmp/post-tool-ran +0 -0
- bathys-0.7.0/npm/bathys-mcp/README.md +42 -0
- bathys-0.7.0/npm/bathys-mcp/bin/cli.js +72 -0
- bathys-0.7.0/npm/bathys-mcp/bin/postinstall.js +45 -0
- bathys-0.7.0/npm/bathys-mcp/package.json +35 -0
- bathys-0.7.0/pyproject.toml +48 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/__init__.py +1 -1
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/config.py +2 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/core.py +1 -1
- bathys-0.7.0/src/bathys/crawler.py +205 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/installer.py +102 -17
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/server.py +12 -7
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_installer.py +5 -3
- bathys-0.6.1/.remember/tmp/no-transcript-notice +0 -1
- bathys-0.6.1/pyproject.toml +0 -29
- bathys-0.6.1/src/bathys/crawler.py +0 -104
- {bathys-0.6.1 → bathys-0.7.0}/.github/workflows/ci.yml +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.gitignore +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/.gitignore +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/logs/hook-errors.log +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/logs/memory-2026-09-06.log +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/logs/memory-2026-09-07.log +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/tmp/capture-gap-skipped +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/tmp/case-divergence +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/tmp/post-tool-ran +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/.remember/tmp/session-slug +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/Dockerfile +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/LICENSE +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/agents/HARNESS-DROPIN.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/agents/bathys-researcher.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/agents/skills/bathys-deep-dive/SKILL.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/agents/skills/bathys-source-audit/SKILL.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/adr/0001-python-crawl4ai.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/adr/0002-pin-mcp-sdk-v1.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/adr/0003-self-managed-searxng.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/adr/0004-bm25-distillation.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/adr/0005-cache-raw-before-distill.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/adr/0006-three-tool-string-surface.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/architecture/data-flow.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/architecture/overview.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/architecture/pipeline.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/assets/banner.svg +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/contracts/mcp-tools.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/contracts/module-contracts.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/contracts/output-format.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/getting-started/cases.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/getting-started/install.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/getting-started/integrate.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/index.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/integrations/claude-code.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/integrations/cursor.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/integrations/generic-mcp.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/integrations/overview.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/integrations/zcode.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/meta/glossary.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/meta/style-guide.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/operations/metrics.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/operations/runbook.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/product/charter.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/product/competitive.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/product/features.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/product/mind-initiative.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/product/ocr-initiative.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/docs/product/roadmap.md +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/scripts/acceptance_v02.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/scripts/batch_check.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/scripts/metrics_report.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/scripts/smoke.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/scripts/stdio_check.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/batch.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/cache.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/compose.yaml +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/distill.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/doctor.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/searx.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/searxng-settings.yml +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/src/bathys/services.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_batch.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_cache.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_config.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_core.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_distill.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_searx.py +0 -0
- {bathys-0.6.1 → bathys-0.7.0}/tests/test_v04.py +0 -0
|
@@ -134,3 +134,64 @@
|
|
|
134
134
|
11:14: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
|
|
135
135
|
11:14: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
|
|
136
136
|
11:14:21 [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
|
|
137
|
+
12:39:12 [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
|
|
138
|
+
12:39:12 [hook] session-start: capture-gap check skipped — no session_id on stdin
|
|
139
|
+
12:42:38 [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
|
|
140
|
+
12:42:38 [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/
|
|
141
|
+
12:42: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
|
|
142
|
+
12:42:49 [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
|
|
143
|
+
12:42:49 [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
|
|
144
|
+
12:42:56 [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
|
|
145
|
+
12:43: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
|
|
146
|
+
12:43:06 [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
|
|
147
|
+
12:43: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
|
|
148
|
+
12:43: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
|
|
149
|
+
12:43: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
|
|
150
|
+
12:43: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
|
|
151
|
+
12:43:23 [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
|
|
152
|
+
12:43:41 [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
|
|
153
|
+
12:43: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
|
|
154
|
+
12:43:55 [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
|
|
155
|
+
12:43:56 [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
|
|
156
|
+
12:43:56 [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
|
|
157
|
+
12:43:56 [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
|
|
158
|
+
12:44:29 [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
|
|
159
|
+
12:45:15 [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
|
|
160
|
+
12:45: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
|
|
161
|
+
12:45:29 [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
|
|
162
|
+
12:45:35 [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
|
|
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
|
+
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
|
+
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,35 @@
|
|
|
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
|
+
|
|
20
|
+
## [0.6.2] — 2026-09-08
|
|
21
|
+
|
|
22
|
+
Публикационная волна: PyPI + NPM + кастомные интеграции.
|
|
23
|
+
|
|
24
|
+
### Добавлено
|
|
25
|
+
|
|
26
|
+
- **Каталог `integrations/`** — кастомные интеграции с конвенцией (README-установщик-assets): `hermes/` (установщик `install.py`: создаёт `~/.hermes/config.yaml` с `mcp_servers.bathys`, ставит субагента; идемпотентен, бэкап; ловит и чинит артефакт старой установки), `pi/` (дроп-ин `assets/bathys-rules.md` для `AGENTS.md` — у Pi нет MCP-конфига), `zcode/` (комплект: конфиг + субагент + скиллы + дроп-ин).
|
|
27
|
+
- **NPM-обёртка `bathys-mcp`** (`npm/bathys-mcp/`): тонкий установщик для Node-first пользователей — postinstall ставит Python-пакет (`pip install bathys`), CLI делегирует `bathys install|doctor|--help` и запускает stdio-сервер; проверена на node v20 (install --dry-run, print-config, doctor — зелёные). Публикуется на NPM как `bathys-mcp`.
|
|
28
|
+
- **Живые интеграции на машине мейнтейнера**: Hermes — `config.yaml` + субагент установлены идемпотентно.
|
|
29
|
+
|
|
30
|
+
### Изменено
|
|
31
|
+
|
|
32
|
+
- **Метаданные пакета** (PyPI-витрина): `description` переведён на канон продукта («Unified local deep-research search service…», вместо обёрточной формулировки про SearXNG/Crawl4AI); добавлены `keywords` (mcp, deep-research, local-first…), `classifiers`, секция `[project.urls]` (Homepage/Repository/Changelog/Documentation).
|
|
33
|
+
|
|
5
34
|
## [0.6.1] — 2026-09-08
|
|
6
35
|
|
|
7
36
|
Расширение автодетекта `bathys install` на базовый набор харнессов (форматы подтверждены первоисточниками каждого клиента).
|
|
@@ -1,51 +1,103 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: bathys
|
|
3
|
+
Version: 0.7.0
|
|
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
|
+
Project-URL: Homepage, https://github.com/Korrnals/bathys
|
|
6
|
+
Project-URL: Repository, https://github.com/Korrnals/bathys
|
|
7
|
+
Project-URL: Changelog, https://github.com/Korrnals/bathys/blob/main/CHANGELOG.md
|
|
8
|
+
Project-URL: Documentation, https://github.com/Korrnals/bathys/tree/main/docs
|
|
9
|
+
License: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: ai-agents,crawl4ai,deep-research,distillation,llm,local-first,mcp,search,searxng,web-search
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Indexing/Search
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
21
|
+
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: crawl4ai>=0.6.0
|
|
23
|
+
Requires-Dist: httpx>=0.27
|
|
24
|
+
Requires-Dist: mcp<2,>=1.2.0
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
1
27
|
<p align="center"><img src="docs/assets/banner.svg" alt="Bathys" width="720"></p>
|
|
2
28
|
|
|
3
29
|
# Bathys
|
|
4
30
|
|
|
5
|
-
**Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.**
|
|
31
|
+
**Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.** Это самостоятельный продукт, а не обёртка над чужими сервисами: Bathys реализует весь конвейер сам — метапоиск с дедупликацией и живучестью к блокировкам, двухъярусное извлечение (HTTP-движок по умолчанию, headless-браузер только для JS-страниц), пятистадийную дистилляцию под запрос с жёсткими бюджетами, TTL-кэш сырца, robots-этику, метрики и диагностику. Метапоиск и извлечение оформлены как сменные внутренние движки (SearXNG, Crawl4AI) — их можно заменить, продукт останется Bathys. Облачных квот нет; LLM внутри нет — синтез остаётся за вызывающим агентом, дистилляция детерминированная (BM25).
|
|
6
32
|
|
|
7
33
|
Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.
|
|
8
34
|
|
|
9
35
|

|
|
10
|
-

|
|
11
37
|

|
|
12
38
|

|
|
13
39
|
|
|
14
40
|
## ⚡ Quick start
|
|
15
41
|
|
|
16
|
-
|
|
42
|
+
Три команды от чистой системы до работающего поиска (Python ≥ 3.10):
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install bathys # пакет: сервер + bathys setup/install/doctor
|
|
46
|
+
bathys setup # браузер для JS-страниц → все найденные харнессы → субагент
|
|
47
|
+
bathys doctor # самодиагностика стека
|
|
48
|
+
```
|
|
49
|
+
|
|
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-пакет сама):
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g bathys-mcp
|
|
59
|
+
bathys-mcp setup
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Из исходников** (разработка):
|
|
17
63
|
|
|
18
64
|
```bash
|
|
19
65
|
git clone https://github.com/Korrnals/bathys.git && cd bathys
|
|
20
|
-
python3.12 -m venv .venv
|
|
21
|
-
.venv/bin/
|
|
22
|
-
.venv/bin/python -m
|
|
23
|
-
.venv/bin/python -m unittest discover -s tests # 72 теста без сети, ~0.1 c
|
|
24
|
-
.venv/bin/bathys-doctor # диагностика стека одним запуском
|
|
66
|
+
python3.12 -m venv .venv && .venv/bin/pip install -e .
|
|
67
|
+
.venv/bin/bathys setup
|
|
68
|
+
.venv/bin/python -m unittest discover -s tests # юнит-тесты без сети
|
|
25
69
|
```
|
|
26
70
|
|
|
27
|
-
В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md).
|
|
71
|
+
В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md).
|
|
72
|
+
|
|
73
|
+
</details>
|
|
28
74
|
|
|
29
75
|
## 🔌 Подключение к харнессу
|
|
30
76
|
|
|
31
|
-
|
|
77
|
+
**Автоматически — весь стек:** `bathys setup` (см. выше) прописывает сервер во все найденные харнессы.
|
|
78
|
+
|
|
79
|
+
**Точечно — когда нужно именно здесь:**
|
|
32
80
|
|
|
33
81
|
```bash
|
|
34
|
-
|
|
82
|
+
bathys install # автодетект всех установленных харнессов
|
|
83
|
+
bathys install hermes # только Hermes (отсутствующий конфиг создастся)
|
|
84
|
+
bathys install --list # все поддерживаемые таргеты
|
|
85
|
+
bathys install --print-config # готовые блоки для ручной вставки
|
|
35
86
|
```
|
|
36
87
|
|
|
37
|
-
Детектируются zcode, Claude Code, Claude Desktop, Cursor
|
|
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>
|
|
38
92
|
|
|
39
|
-
|
|
93
|
+
Bathys — stdio MCP-сервер: блок `mcpServers` один и тот же везде, от харнесса зависит только файл, в который его кладут. `command` — абсолютный путь к бинарнику (`~` внутри JSON не раскрывается); `BATHYS_SEARXNG_HOME` опциональна. Готовые блоки под каждый клиент: `bathys install --print-config`.
|
|
40
94
|
|
|
41
95
|
```json
|
|
42
96
|
{
|
|
43
97
|
"mcpServers": {
|
|
44
98
|
"bathys": {
|
|
45
|
-
"command": "/path/to/bathys
|
|
46
|
-
"env": {
|
|
47
|
-
"BATHYS_SEARXNG_HOME": "/path/to/bathys/.runtime/searxng-home"
|
|
48
|
-
}
|
|
99
|
+
"command": "/path/to/bathys",
|
|
100
|
+
"env": { "BATHYS_SEARXNG_HOME": "/path/to/searxng-home" }
|
|
49
101
|
}
|
|
50
102
|
}
|
|
51
103
|
}
|
|
@@ -58,6 +110,8 @@ python3.12 -m venv .venv
|
|
|
58
110
|
| Cursor | [docs/integrations/cursor.md](docs/integrations/cursor.md) |
|
|
59
111
|
| Любой другой MCP-клиент | [docs/integrations/generic-mcp.md](docs/integrations/generic-mcp.md) |
|
|
60
112
|
|
|
113
|
+
</details>
|
|
114
|
+
|
|
61
115
|
## 🧠 Научить агента работать эффективно
|
|
62
116
|
|
|
63
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`.
|
|
@@ -122,11 +176,11 @@ docs/
|
|
|
122
176
|
└── meta/ # стайлгайд · глоссарий
|
|
123
177
|
```
|
|
124
178
|
|
|
125
|
-
Вне `docs/`: [agents/](agents/) (субагент `bathys-researcher`, дроп-ин для харнессов) · [tests/](tests/) (
|
|
179
|
+
Вне `docs/`: [agents/](agents/) (субагент `bathys-researcher`, скиллы, дроп-ин для харнессов) · [integrations/](integrations/) (кастомные интеграции: hermes, pi, zcode) · [tests/](tests/) (юнит-тесты без сети) · [scripts/](scripts/) (smoke, stdio_check, метрики) · [npm/bathys-mcp/](npm/bathys-mcp/) (NPM-обёртка) · [CHANGELOG.md](CHANGELOG.md).
|
|
126
180
|
|
|
127
181
|
## 📍 Статус
|
|
128
182
|
|
|
129
|
-
**0.
|
|
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).
|
|
130
184
|
|
|
131
185
|
Репозиторий: `github.com/Korrnals/bathys`. До 1.0 остаются публикация пакета `bathys` на PyPI (имя свободно, публикация планируется к 1.0) и первый прогон Docker-образа; CI с matrix 3.10–3.12 уже в репозитории.
|
|
132
186
|
|
|
@@ -1,63 +1,77 @@
|
|
|
1
|
-
Metadata-Version: 2.5
|
|
2
|
-
Name: bathys
|
|
3
|
-
Version: 0.6.1
|
|
4
|
-
Summary: Deep-research MCP server: SearXNG metasearch + Crawl4AI extraction, distilled to LLM-lean output
|
|
5
|
-
License: MIT
|
|
6
|
-
License-File: LICENSE
|
|
7
|
-
Requires-Python: >=3.10
|
|
8
|
-
Requires-Dist: crawl4ai>=0.6.0
|
|
9
|
-
Requires-Dist: httpx>=0.27
|
|
10
|
-
Requires-Dist: mcp<2,>=1.2.0
|
|
11
|
-
Description-Content-Type: text/markdown
|
|
12
|
-
|
|
13
1
|
<p align="center"><img src="docs/assets/banner.svg" alt="Bathys" width="720"></p>
|
|
14
2
|
|
|
15
3
|
# Bathys
|
|
16
4
|
|
|
17
|
-
**Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.**
|
|
5
|
+
**Единый локальный поисковый сервис глубокого ресёрча для ИИ-агентов.** Это самостоятельный продукт, а не обёртка над чужими сервисами: Bathys реализует весь конвейер сам — метапоиск с дедупликацией и живучестью к блокировкам, двухъярусное извлечение (HTTP-движок по умолчанию, headless-браузер только для JS-страниц), пятистадийную дистилляцию под запрос с жёсткими бюджетами, TTL-кэш сырца, robots-этику, метрики и диагностику. Метапоиск и извлечение оформлены как сменные внутренние движки (SearXNG, Crawl4AI) — их можно заменить, продукт останется Bathys. Облачных квот нет; LLM внутри нет — синтез остаётся за вызывающим агентом, дистилляция детерминированная (BM25).
|
|
18
6
|
|
|
19
7
|
Сонар находит координаты, батискаф ныряет за полными текстами, дистиллятор поднимает на палубу только то, что отвечает на вопрос.
|
|
20
8
|
|
|
21
9
|

|
|
22
|
-

|
|
23
11
|

|
|
24
12
|

|
|
25
13
|
|
|
26
14
|
## ⚡ Quick start
|
|
27
15
|
|
|
28
|
-
|
|
16
|
+
Три команды от чистой системы до работающего поиска (Python ≥ 3.10):
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install bathys # пакет: сервер + bathys setup/install/doctor
|
|
20
|
+
bathys setup # браузер для JS-страниц → все найденные харнессы → субагент
|
|
21
|
+
bathys doctor # самодиагностика стека
|
|
22
|
+
```
|
|
23
|
+
|
|
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-пакет сама):
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npm install -g bathys-mcp
|
|
33
|
+
bathys-mcp setup
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Из исходников** (разработка):
|
|
29
37
|
|
|
30
38
|
```bash
|
|
31
39
|
git clone https://github.com/Korrnals/bathys.git && cd bathys
|
|
32
|
-
python3.12 -m venv .venv
|
|
33
|
-
.venv/bin/
|
|
34
|
-
.venv/bin/python -m
|
|
35
|
-
.venv/bin/python -m unittest discover -s tests # 72 теста без сети, ~0.1 c
|
|
36
|
-
.venv/bin/bathys-doctor # диагностика стека одним запуском
|
|
40
|
+
python3.12 -m venv .venv && .venv/bin/pip install -e .
|
|
41
|
+
.venv/bin/bathys setup
|
|
42
|
+
.venv/bin/python -m unittest discover -s tests # юнит-тесты без сети
|
|
37
43
|
```
|
|
38
44
|
|
|
39
|
-
В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md).
|
|
45
|
+
В минимальном контейнерном образе без `ensurepip` venv собирается через `get-pip.py` — ветка в [docs/getting-started/install.md](docs/getting-started/install.md).
|
|
46
|
+
|
|
47
|
+
</details>
|
|
40
48
|
|
|
41
49
|
## 🔌 Подключение к харнессу
|
|
42
50
|
|
|
43
|
-
|
|
51
|
+
**Автоматически — весь стек:** `bathys setup` (см. выше) прописывает сервер во все найденные харнессы.
|
|
52
|
+
|
|
53
|
+
**Точечно — когда нужно именно здесь:**
|
|
44
54
|
|
|
45
55
|
```bash
|
|
46
|
-
|
|
56
|
+
bathys install # автодетект всех установленных харнессов
|
|
57
|
+
bathys install hermes # только Hermes (отсутствующий конфиг создастся)
|
|
58
|
+
bathys install --list # все поддерживаемые таргеты
|
|
59
|
+
bathys install --print-config # готовые блоки для ручной вставки
|
|
47
60
|
```
|
|
48
61
|
|
|
49
|
-
Детектируются zcode, Claude Code, Claude Desktop, Cursor
|
|
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>
|
|
50
66
|
|
|
51
|
-
|
|
67
|
+
Bathys — stdio MCP-сервер: блок `mcpServers` один и тот же везде, от харнесса зависит только файл, в который его кладут. `command` — абсолютный путь к бинарнику (`~` внутри JSON не раскрывается); `BATHYS_SEARXNG_HOME` опциональна. Готовые блоки под каждый клиент: `bathys install --print-config`.
|
|
52
68
|
|
|
53
69
|
```json
|
|
54
70
|
{
|
|
55
71
|
"mcpServers": {
|
|
56
72
|
"bathys": {
|
|
57
|
-
"command": "/path/to/bathys
|
|
58
|
-
"env": {
|
|
59
|
-
"BATHYS_SEARXNG_HOME": "/path/to/bathys/.runtime/searxng-home"
|
|
60
|
-
}
|
|
73
|
+
"command": "/path/to/bathys",
|
|
74
|
+
"env": { "BATHYS_SEARXNG_HOME": "/path/to/searxng-home" }
|
|
61
75
|
}
|
|
62
76
|
}
|
|
63
77
|
}
|
|
@@ -70,6 +84,8 @@ python3.12 -m venv .venv
|
|
|
70
84
|
| Cursor | [docs/integrations/cursor.md](docs/integrations/cursor.md) |
|
|
71
85
|
| Любой другой MCP-клиент | [docs/integrations/generic-mcp.md](docs/integrations/generic-mcp.md) |
|
|
72
86
|
|
|
87
|
+
</details>
|
|
88
|
+
|
|
73
89
|
## 🧠 Научить агента работать эффективно
|
|
74
90
|
|
|
75
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`.
|
|
@@ -134,11 +150,11 @@ docs/
|
|
|
134
150
|
└── meta/ # стайлгайд · глоссарий
|
|
135
151
|
```
|
|
136
152
|
|
|
137
|
-
Вне `docs/`: [agents/](agents/) (субагент `bathys-researcher`, дроп-ин для харнессов) · [tests/](tests/) (
|
|
153
|
+
Вне `docs/`: [agents/](agents/) (субагент `bathys-researcher`, скиллы, дроп-ин для харнессов) · [integrations/](integrations/) (кастомные интеграции: hermes, pi, zcode) · [tests/](tests/) (юнит-тесты без сети) · [scripts/](scripts/) (smoke, stdio_check, метрики) · [npm/bathys-mcp/](npm/bathys-mcp/) (NPM-обёртка) · [CHANGELOG.md](CHANGELOG.md).
|
|
138
154
|
|
|
139
155
|
## 📍 Статус
|
|
140
156
|
|
|
141
|
-
**0.
|
|
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).
|
|
142
158
|
|
|
143
159
|
Репозиторий: `github.com/Korrnals/bathys`. До 1.0 остаются публикация пакета `bathys` на PyPI (имя свободно, публикация планируется к 1.0) и первый прогон Docker-образа; CI с matrix 3.10–3.12 уже в репозитории.
|
|
144
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 |
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# integrations/ — кастомные интеграции Bathys
|
|
2
|
+
|
|
3
|
+
Здесь живут интеграции для харнессов, которым мало стандартной записи MCP-сервера:
|
|
4
|
+
скрипты, оболочки, готовые конфиги и дроп-ины. Стандартный автопат (`bathys
|
|
5
|
+
install`) покрывает 14 клиентов из их собственных конфигов; этот каталог —
|
|
6
|
+
для кастомной механики.
|
|
7
|
+
|
|
8
|
+
## Конвенция
|
|
9
|
+
|
|
10
|
+
Каждая интеграция — подкаталог `integrations/<harness>/`:
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
integrations/<harness>/
|
|
14
|
+
├── README.md # что это, когда нужно, установка по шагам
|
|
15
|
+
├── install.* # установщик (если интеграция больше ручной вставки)
|
|
16
|
+
└── assets/ # конфиги, скрипты, промпты, расширения
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Правила:
|
|
20
|
+
|
|
21
|
+
- интеграция не тянет зависимостей сверх самого Bathys (только stdlib);
|
|
22
|
+
- установщик идемпотентен и делает бэкап перед записью — как `bathys install`;
|
|
23
|
+
- каждый README фиксирует формат конфига по первоисточнику (ссылка на доки
|
|
24
|
+
харнесса) и дату проверки;
|
|
25
|
+
- сюда попадают только кастомные пути; обычные конфиги правит `bathys install`.
|
|
26
|
+
|
|
27
|
+
## Содержимое
|
|
28
|
+
|
|
29
|
+
| Интеграция | Что даёт |
|
|
30
|
+
|---|---|
|
|
31
|
+
| [`hermes/`](hermes/) | установщик для Hermes Agent: `mcp_servers` в `~/.hermes/config.yaml` + субагент в `~/.hermes/agents/`; обходит случай, когда у Hermes нет конфига вообще (создаёт по канону его доков) |
|
|
32
|
+
| [`pi/`](pi/) | дроп-ин для Pi (badlogic pi-mono): у Pi нет MCP-конфига — интеграция это правила для `AGENTS.md` проекта + скилл-каталог Bathys |
|
|
33
|
+
| [`zcode/`](zcode/) | комплект для zcode: MCP-конфиг, субагент `bathys-researcher`, скиллы и ссылка на дроп-ин — всё, что ставится копированием |
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Bathys × Hermes Agent
|
|
2
|
+
|
|
3
|
+
[Hermes Agent](https://github.com/NousResearch/hermes-agent) читает MCP из
|
|
4
|
+
`~/.hermes/config.yaml` под ключом `mcp_servers` (snake_case; формат
|
|
5
|
+
подтверждён [доками Hermes](https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp),
|
|
6
|
+
проверено 2026-09-08). Стандартный `bathys install` уже пишет этот файл, если
|
|
7
|
+
он существует. Эта интеграция добавляет остальное:
|
|
8
|
+
|
|
9
|
+
- **создаёт** `~/.hermes/config.yaml`, если его ещё нет (Hermes после первого
|
|
10
|
+
запуска имеет), — по канону его доков;
|
|
11
|
+
- ставит **субагента** `bathys-researcher` в `~/.hermes/agents/`.
|
|
12
|
+
|
|
13
|
+
## Установка
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
python integrations/hermes/install.py # что изменится — вначале план
|
|
17
|
+
python integrations/hermes/install.py --apply # записать (бэкап создастся сам)
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Скрипту нужен только Python ≥3.10 (stdlib); он не импортирует bathys и
|
|
21
|
+
работает с любой установки (`pip install bathys` или из клона). Идемпотентен:
|
|
22
|
+
повторный запуск ничего не меняет.
|
|
23
|
+
|
|
24
|
+
## Что именно пишется
|
|
25
|
+
|
|
26
|
+
`~/.hermes/config.yaml`:
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
mcp_servers:
|
|
30
|
+
bathys:
|
|
31
|
+
command: "<путь к bathys>"
|
|
32
|
+
args: []
|
|
33
|
+
env: {}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`~/.hermes/agents/bathys-researcher.md` — профиль субагента глубокого ресёрча
|
|
37
|
+
(копия `agents/bathys-researcher.md` из корня репозитория).
|