Compare commits
2
Commits
cf9781604d
...
761fd9978b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
761fd9978b | ||
|
|
0ab5dbe182 |
No files matched your search
@@ -27,7 +27,7 @@ This repository contains personal dotfiles and configurations for a highly produ
|
||||
* **Shared Skills:** Located in `agents/.agents/skills/`. This is the single source of truth for AI instructions.
|
||||
* **Gemini CLI:** Configured via `gemini/.gemini/`.
|
||||
* **Policies:** `readonly-commands.toml` allows critical commands like `git status`, `git diff`, and `git add` to run without confirmation.
|
||||
* **Opencode:** MCP-based assistant configuration (`opencode.json`) with support for documentation, search, and web-reading.
|
||||
* **Opencode:** MCP-based assistant configuration (`opencode.json`): Context7 для документации и встроенные `websearch`/`webfetch`. Локальный SearXNG в `docker/searxng` — резервный вариант, MCP-сервер отключён.
|
||||
* **Skill Bridges:** Claude gets skills via the `~/.claude/skills` symlink; Opencode reads `~/.agents/skills` natively, no bridge needed.
|
||||
|
||||
## 🚀 Usage & Maintenance
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
# SearXNG — резервный поиск
|
||||
|
||||
Локальный SearXNG на `127.0.0.1:26745`. Постоянно не нужен: с 2026-10-17
|
||||
основной поиск идёт через встроенные `websearch`/`webfetch` OpenCode, а
|
||||
MCP-сервер `searxng` отключён в `opencode/.config/opencode/opencode.json`.
|
||||
Стек оставлен как запасной вариант, если встроенный поиск недоступен
|
||||
(например, кончилась подписка OpenCode Go) или нужен фильтр по времени.
|
||||
|
||||
## Запуск и остановка
|
||||
|
||||
```
|
||||
docker compose up -d # поднять
|
||||
docker compose down # погасить, кэш и настройки в томах сохранятся
|
||||
docker logs --since 10m searxng-core
|
||||
```
|
||||
|
||||
Проверка: `curl -s -H 'Accept: application/json' http://127.0.0.1:26745/config | head -c 200`
|
||||
|
||||
## Возврат MCP-сервера
|
||||
|
||||
Добавить в `mcp.servers` файла `opencode/.config/opencode/opencode.json`:
|
||||
|
||||
```json
|
||||
"searxng": {
|
||||
"type": "local",
|
||||
"command": ["npx", "-y", "mcp-searxng"],
|
||||
"environment": { "SEARXNG_URL": "http://localhost:26745" }
|
||||
}
|
||||
```
|
||||
|
||||
После правки — разложить конфиг установщиком (`./install.sh`) или скопировать
|
||||
файл в `~/.config/opencode/opencode.json`, затем перезапустить OpenCode.
|
||||
|
||||
## Ограничения
|
||||
|
||||
- Настройки по умолчанию (`use_default_settings: true`), форматы `html` и `json`.
|
||||
- С домашнего IP часть движков быстро упирается в лимиты: `brave` и `wikipedia`
|
||||
отвечают `too many requests`, `duckduckgo` — CAPTCHA. Остаётся `google cse`,
|
||||
то есть полноценной агрегации из многих движков ждать не стоит.
|
||||
- Контейнер не обновляется сам: `docker compose pull && docker compose up -d`.
|
||||
@@ -1,70 +1,34 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
// Плагин opencode-permission-reviewer снят (эксперимент 2026-10-11 признан
|
||||
// неудачным — см. docs/research/). Блок сохранён для возврата:
|
||||
// "plugins": [
|
||||
// {
|
||||
// "package": "opencode-permission-reviewer@^2.4.0",
|
||||
// "options": {}
|
||||
// }
|
||||
// ],
|
||||
"default_agent": "build",
|
||||
"permission": {
|
||||
// edit покрывает и запись, и патчи (write/patch в V2 устарели)
|
||||
"edit": "ask",
|
||||
"webfetch": "ask",
|
||||
"task": "ask",
|
||||
"bash": {
|
||||
"*": "ask",
|
||||
"*/.ssh/*": "deny",
|
||||
"*id_rsa*": "deny",
|
||||
"*id_ed25519*": "deny",
|
||||
"*.pem": "deny",
|
||||
"*.env": "deny",
|
||||
"*.env.*": "deny",
|
||||
"*.secrets*": "deny",
|
||||
"*.netrc*": "deny",
|
||||
"*.env.example": "allow"
|
||||
}
|
||||
},
|
||||
// Минимальный шаблон для OpenCode 2.x. Файл раскладывается копией
|
||||
// (install.sh → copy_managed_file), поэтому правки в репозитории
|
||||
// попадают в ~/.config/opencode только после ./install.sh.
|
||||
"share": "manual",
|
||||
"permissions": [
|
||||
// Порядок важен: побеждает последнее совпавшее правило.
|
||||
{ "action": "edit", "resource": "*", "effect": "ask" },
|
||||
{ "action": "webfetch", "resource": "*", "effect": "ask" },
|
||||
{ "action": "subagent", "resource": "*", "effect": "ask" },
|
||||
{ "action": "shell", "resource": "*", "effect": "ask" },
|
||||
{ "action": "shell", "resource": "*/.ssh/*", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*id_rsa*", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*id_ed25519*", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*.pem", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*.env", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*.env.*", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*.secrets*", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*.netrc*", "effect": "deny" },
|
||||
{ "action": "shell", "resource": "*.env.example", "effect": "allow" }
|
||||
],
|
||||
"mcp": {
|
||||
"context7": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.context7.com/mcp",
|
||||
"headers": {
|
||||
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
|
||||
},
|
||||
"enabled": true
|
||||
},
|
||||
"searxng": {
|
||||
"type": "local",
|
||||
"command": [
|
||||
"npx",
|
||||
"-y",
|
||||
"mcp-searxng"
|
||||
],
|
||||
"environment": {
|
||||
"SEARXNG_URL": "http://localhost:26745"
|
||||
},
|
||||
"enabled": true
|
||||
},
|
||||
"playwright": {
|
||||
"type": "local",
|
||||
"command": [
|
||||
"npx",
|
||||
"-y",
|
||||
"@playwright/mcp@latest"
|
||||
],
|
||||
"enabled": false
|
||||
},
|
||||
"duckduckgo": {
|
||||
"type": "local",
|
||||
"command": [
|
||||
"uvx",
|
||||
"duckduckgo-mcp-server"
|
||||
],
|
||||
"enabled": true
|
||||
"servers": {
|
||||
"context7": {
|
||||
"type": "remote",
|
||||
"url": "https://mcp.context7.com/mcp",
|
||||
"headers": {
|
||||
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"share": "manual"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../../../agents/.agents/skills
|
||||
Reference in new issue
Block a user