Compare commits
2
Commits
| 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.
|
* **Shared Skills:** Located in `agents/.agents/skills/`. This is the single source of truth for AI instructions.
|
||||||
* **Gemini CLI:** Configured via `gemini/.gemini/`.
|
* **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.
|
* **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.
|
* **Skill Bridges:** Claude gets skills via the `~/.claude/skills` symlink; Opencode reads `~/.agents/skills` natively, no bridge needed.
|
||||||
|
|
||||||
## 🚀 Usage & Maintenance
|
## 🚀 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",
|
"$schema": "https://opencode.ai/config.json",
|
||||||
// Плагин opencode-permission-reviewer снят (эксперимент 2026-10-11 признан
|
// Минимальный шаблон для OpenCode 2.x. Файл раскладывается копией
|
||||||
// неудачным — см. docs/research/). Блок сохранён для возврата:
|
// (install.sh → copy_managed_file), поэтому правки в репозитории
|
||||||
// "plugins": [
|
// попадают в ~/.config/opencode только после ./install.sh.
|
||||||
// {
|
"share": "manual",
|
||||||
// "package": "opencode-permission-reviewer@^2.4.0",
|
"permissions": [
|
||||||
// "options": {}
|
// Порядок важен: побеждает последнее совпавшее правило.
|
||||||
// }
|
{ "action": "edit", "resource": "*", "effect": "ask" },
|
||||||
// ],
|
{ "action": "webfetch", "resource": "*", "effect": "ask" },
|
||||||
"default_agent": "build",
|
{ "action": "subagent", "resource": "*", "effect": "ask" },
|
||||||
"permission": {
|
{ "action": "shell", "resource": "*", "effect": "ask" },
|
||||||
// edit покрывает и запись, и патчи (write/patch в V2 устарели)
|
{ "action": "shell", "resource": "*/.ssh/*", "effect": "deny" },
|
||||||
"edit": "ask",
|
{ "action": "shell", "resource": "*id_rsa*", "effect": "deny" },
|
||||||
"webfetch": "ask",
|
{ "action": "shell", "resource": "*id_ed25519*", "effect": "deny" },
|
||||||
"task": "ask",
|
{ "action": "shell", "resource": "*.pem", "effect": "deny" },
|
||||||
"bash": {
|
{ "action": "shell", "resource": "*.env", "effect": "deny" },
|
||||||
"*": "ask",
|
{ "action": "shell", "resource": "*.env.*", "effect": "deny" },
|
||||||
"*/.ssh/*": "deny",
|
{ "action": "shell", "resource": "*.secrets*", "effect": "deny" },
|
||||||
"*id_rsa*": "deny",
|
{ "action": "shell", "resource": "*.netrc*", "effect": "deny" },
|
||||||
"*id_ed25519*": "deny",
|
{ "action": "shell", "resource": "*.env.example", "effect": "allow" }
|
||||||
"*.pem": "deny",
|
],
|
||||||
"*.env": "deny",
|
|
||||||
"*.env.*": "deny",
|
|
||||||
"*.secrets*": "deny",
|
|
||||||
"*.netrc*": "deny",
|
|
||||||
"*.env.example": "allow"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mcp": {
|
"mcp": {
|
||||||
"context7": {
|
"servers": {
|
||||||
"type": "remote",
|
"context7": {
|
||||||
"url": "https://mcp.context7.com/mcp",
|
"type": "remote",
|
||||||
"headers": {
|
"url": "https://mcp.context7.com/mcp",
|
||||||
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
|
"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
|
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
"share": "manual"
|
|
||||||
}
|
}
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../../agents/.agents/skills
|
|
||||||
Reference in new issue
Block a user