diff --git a/content/docs/configuration.es.mdx b/content/docs/configuration.es.mdx index 450bc51a..d0ab0624 100644 --- a/content/docs/configuration.es.mdx +++ b/content/docs/configuration.es.mdx @@ -74,7 +74,7 @@ Las dos herramientas comparten la mayoría de los ajustes, como `limit`, `sends_ - **Telegram:** [guía de configuración de Telegram](./tg/configuration.md) · [todos los ajustes de Telegram, sus valores predeterminados y variables de entorno](./tg/configuration-reference.md). - **MAX:** [guía de configuración de MAX](./max/configuration.md) · [todos los ajustes de MAX, sus valores predeterminados y variables de entorno](./max/configuration-reference.md). -Las demás herramientas tienen sus propios archivos de ajustes: [Zoom](./zm/configuration.md), [Google Drive](./drive/configuration.md), [Google Calendar](./gcal/configuration.md) y [Memo](./memo/configuration.md). +Las demás herramientas tienen sus propios archivos de ajustes: [Zoom](./zm/configuration.md), [Google Drive](./drive/configuration.md), [Google Calendar](./gcal/configuration.md), [Mail](./mail/configuration.md) y [Memo](./memo/configuration.md). ## Perfiles y bots diff --git a/content/docs/configuration.mdx b/content/docs/configuration.mdx index c4a10165..c11451ed 100644 --- a/content/docs/configuration.mdx +++ b/content/docs/configuration.mdx @@ -74,7 +74,7 @@ The two tools share most settings, such as `limit`, `sends_per_hour`, `record` a - **Telegram:** [Telegram configuration guide](./tg/configuration.md) · [every Telegram setting, default and environment variable](./tg/configuration-reference.md). - **MAX:** [MAX configuration guide](./max/configuration.md) · [every MAX setting, default and environment variable](./max/configuration-reference.md). -The other tools have their own settings files: [Zoom](./zm/configuration.md), [Google Drive](./drive/configuration.md), [Google Calendar](./gcal/configuration.md) and [Memo](./memo/configuration.md). +The other tools have their own settings files: [Zoom](./zm/configuration.md), [Google Drive](./drive/configuration.md), [Google Calendar](./gcal/configuration.md), [Mail](./mail/configuration.md) and [Memo](./memo/configuration.md). ## Profiles and bots diff --git a/content/docs/configuration.ru.mdx b/content/docs/configuration.ru.mdx index 73960b42..85977260 100644 --- a/content/docs/configuration.ru.mdx +++ b/content/docs/configuration.ru.mdx @@ -74,7 +74,7 @@ tg personal config unset limit - **Telegram:** [руководство по настройкам Telegram](./tg/configuration.md) · [все настройки Telegram, значения по умолчанию и переменные окружения](./tg/configuration-reference.md). - **MAX:** [руководство по настройкам MAX](./max/configuration.md) · [все настройки MAX, значения по умолчанию и переменные окружения](./max/configuration-reference.md). -У остальных инструментов свои файлы настроек: [Zoom](./zm/configuration.md), [Google Drive](./drive/configuration.md), [Google Calendar](./gcal/configuration.md) и [Memo](./memo/configuration.md). +У остальных инструментов свои файлы настроек: [Zoom](./zm/configuration.md), [Google Drive](./drive/configuration.md), [Google Calendar](./gcal/configuration.md), [Mail](./mail/configuration.md) и [Memo](./memo/configuration.md). ## Профили и боты diff --git a/content/docs/features.es.mdx b/content/docs/features.es.mdx index 315f8a4d..ed45e169 100644 --- a/content/docs/features.es.mdx +++ b/content/docs/features.es.mdx @@ -102,6 +102,7 @@ Las operaciones de cada servicio, diferencias de compatibilidad y sintaxis exact - **Zoom:** [reuniones](./zoom.mdx), [uso diario](./zm/usage.md), [búsqueda](./zm/search.md) y [comandos](./zm/commands.md). - **Google Drive:** [uso diario](./drive/usage.md), [búsqueda](./drive/search.md) y [comandos](./drive/commands.md). - **Google Calendar:** [uso diario](./gcal/usage.md), [escenarios](./gcal/scenarios.md) y [comandos](./gcal/commands.md). +- **Mail:** [uso diario](./mail/usage.md), [preparar el buzón](./mail/providers.md) y [comandos](./mail/commands.md). - **Memo:** [notas y archivos](./memo/index.md) y [correo](./email.mdx). Las futuras fuentes y tareas se describen en la [hoja de ruta](./roadmap.md); una integración prevista todavía no es una función disponible. Empieza con [una primera tarea](./first-tasks.md) y comprueba las fuentes del resultado. diff --git a/content/docs/features.mdx b/content/docs/features.mdx index 1be52a53..b46f5fab 100644 --- a/content/docs/features.mdx +++ b/content/docs/features.mdx @@ -102,6 +102,7 @@ Exact messenger operations, supported differences and command syntax belong in t - **Zoom:** [meetings](./zoom.mdx), [daily use](./zm/usage.md), [search](./zm/search.md) and [commands](./zm/commands.md). - **Google Drive:** [daily use](./drive/usage.md), [search](./drive/search.md) and [commands](./drive/commands.md). - **Google Calendar:** [daily use](./gcal/usage.md), [scenarios](./gcal/scenarios.md) and [commands](./gcal/commands.md). +- **Mail:** [daily use](./mail/usage.md), [preparing the mailbox](./mail/providers.md) and [commands](./mail/commands.md). - **Memo:** [notes and files](./memo/index.md) and [email](./email.mdx). Future sources and workflows are described in the [roadmap](./roadmap.md); a planned integration is not an available capability. Start with [a first task](./first-tasks.md) and check the sources behind the result. diff --git a/content/docs/features.ru.mdx b/content/docs/features.ru.mdx index cd8b4215..a1863d5c 100644 --- a/content/docs/features.ru.mdx +++ b/content/docs/features.ru.mdx @@ -102,6 +102,7 @@ Memo также импортирует почту из настроенных а - **Zoom:** [встречи](./zoom.mdx), [повседневные задачи](./zm/usage.md), [поиск](./zm/search.md) и [команды](./zm/commands.md). - **Google Drive:** [повседневные задачи](./drive/usage.md), [поиск](./drive/search.md) и [команды](./drive/commands.md). - **Google Calendar:** [повседневные задачи](./gcal/usage.md), [сценарии](./gcal/scenarios.md) и [команды](./gcal/commands.md). +- **Mail:** [повседневные задачи](./mail/usage.md), [подготовка ящика](./mail/providers.md) и [команды](./mail/commands.md). - **Memo:** [заметки и файлы](./memo/index.md) и [почта](./email.mdx). Будущие источники и задачи описаны в [планах](./roadmap.md); запланированная интеграция ещё не является доступной возможностью. Начните с [первой задачи](./first-tasks.md) и проверьте источники результата. diff --git a/content/docs/index.es.mdx b/content/docs/index.es.mdx index 0f138f74..a36fa30a 100644 --- a/content/docs/index.es.mdx +++ b/content/docs/index.es.mdx @@ -24,6 +24,7 @@ todas las herramientas. | Notas, archivos locales o correo | [Configurar Memo](./memo/installation.md) | | Documentos de Google Drive | [Conectar Google Drive](./drive/installation.md) | | Reuniones de Google Calendar | [Conectar Google Calendar](./gcal/installation.md) | +| Correo de un buzón, solo lectura | [Conectar Mail](./mail/installation.md) | | Reuniones, transcripciones o grabaciones de Zoom | [Conectar Zoom](./zm/installation.md) | Cada guía explica la instalación, el acceso a la cuenta si hace falta y los primeros datos que diff --git a/content/docs/index.mdx b/content/docs/index.mdx index 662ff463..5c1f78a3 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -21,6 +21,7 @@ behind its answer. Start with one source; you do not need every tool. | Notes, local files or email | [Set up Memo](./memo/installation.md) | | Documents in Google Drive | [Connect Google Drive](./drive/installation.md) | | Meetings in Google Calendar | [Connect Google Calendar](./gcal/installation.md) | +| Email from a mailbox, read only | [Connect Mail](./mail/installation.md) | | Zoom meetings, transcripts or recordings | [Connect Zoom](./zm/installation.md) | Each guide explains installation, account access if needed, and the first data to retrieve. diff --git a/content/docs/index.ru.mdx b/content/docs/index.ru.mdx index 474d33a2..8a2703e4 100644 --- a/content/docs/index.ru.mdx +++ b/content/docs/index.ru.mdx @@ -24,6 +24,7 @@ description: "Выберите переписку, документы или в | Заметки, локальные файлы или почта | [Настроить Memo](./memo/installation.md) | | Документы в Google Диске | [Подключить Google Drive](./drive/installation.md) | | Встречи в Google Календаре | [Подключить Google Calendar](./gcal/installation.md) | +| Письма из почтового ящика, только чтение | [Подключить Mail](./mail/installation.md) | | Встречи, расшифровки или записи Zoom | [Подключить Zoom](./zm/installation.md) | В каждой инструкции есть установка, доступ к аккаунту при необходимости и первый набор данных. diff --git a/content/docs/installation.es.mdx b/content/docs/installation.es.mdx index 4121f81d..37009b1e 100644 --- a/content/docs/installation.es.mdx +++ b/content/docs/installation.es.mdx @@ -37,6 +37,7 @@ las herramientas y abre el inicio de sesión de cada una. [Qué hace la aplicaci | Chats de MAX | [Instalar MAX](./max/installation.md); para un bot, usa [su configuración](./max/bot.md) | | Documentos de Google Drive | [Instalar Drive](./drive/installation.md) desde npm, conectar Google y elegir una carpeta | | Reuniones de Google Calendar | [Instalar Google Calendar](./gcal/installation.md) desde npm e iniciar sesión en Google con tu propio cliente de Google | +| Correo por IMAP | [Instalar Mail](./mail/installation.md) desde npm y crear antes una contraseña de aplicación para tu buzón | | Reuniones o transcripciones de Zoom | [Instalar Zoom](./zm/installation.md); conectar una aplicación existente/nueva o importar VTT sin ella | Cada guía incluye los comandos exactos, los pasos de acceso, las plataformas compatibles y la diff --git a/content/docs/installation.mdx b/content/docs/installation.mdx index c7331d7f..5ca94f02 100644 --- a/content/docs/installation.mdx +++ b/content/docs/installation.mdx @@ -36,6 +36,7 @@ skills and opens each tool's sign-in. [What the app does](./desktop/index.mdx). | MAX chats | [Install MAX](./max/installation.md); for a bot, use [bot setup](./max/bot.md) | | Google Drive documents | [Install Drive](./drive/installation.md) from npm, connect Google and choose a folder | | Google Calendar meetings | [Install Google Calendar](./gcal/installation.md) from npm and sign in to Google with your own Google client | +| Email over IMAP | [Install Mail](./mail/installation.md) from npm, then make an app password for your mailbox | | Zoom meetings or transcripts | [Install Zoom](./zm/installation.md); connect an existing/new app or import VTT files without one | Each guide supplies its exact commands, account steps, supported platforms and repairs. A Zoom diff --git a/content/docs/installation.ru.mdx b/content/docs/installation.ru.mdx index b77749e7..37f9c359 100644 --- a/content/docs/installation.ru.mdx +++ b/content/docs/installation.ru.mdx @@ -37,6 +37,7 @@ Linux. Оно устанавливает и обновляет эти инстр | Чаты MAX | [Установить MAX](./max/installation.md); для бота — [настройка бота](./max/bot.md) | | Документы Google Диска | [Установить Drive](./drive/installation.md) из npm, подключить Google и выбрать папку | | Встречи Google Календаря | [Установить Google Calendar](./gcal/installation.md) из npm и войти в Google через свой клиент Google | +| Почта по IMAP | [Установить Mail](./mail/installation.md) из npm, затем создать пароль приложения для ящика | | Встречи или расшифровки Zoom | [Установить Zoom](./zm/installation.md); подключить существующее/новое приложение или импортировать VTT без него | В каждой инструкции есть точные команды, вход в аккаунт, поддерживаемые платформы и исправление diff --git a/content/docs/mcp.es.mdx b/content/docs/mcp.es.mdx index 6ad6feee..8e64959c 100644 --- a/content/docs/mcp.es.mdx +++ b/content/docs/mcp.es.mdx @@ -148,6 +148,7 @@ Cada herramienta inicia su propio servidor. Conéctalo con el comando que tu cli - **Zoom:** `zm personal mcp serve`. - **Google Drive:** `drive personal --read-only mcp serve`. - **Google Calendar:** `gcal personal mcp serve`. +- **Mail:** `mail personal mcp serve`. - **Memo:** `memo mcp serve`. ## Qué puede hacer el agente diff --git a/content/docs/mcp.mdx b/content/docs/mcp.mdx index 823a4d85..666998c9 100644 --- a/content/docs/mcp.mdx +++ b/content/docs/mcp.mdx @@ -148,6 +148,7 @@ Each tool starts its own server. Connect it with the command your client uses fo - **Zoom:** `zm personal mcp serve`. - **Google Drive:** `drive personal --read-only mcp serve`. - **Google Calendar:** `gcal personal mcp serve`. +- **Mail:** `mail personal mcp serve`. - **Memo:** `memo mcp serve`. ## What the agent can do diff --git a/content/docs/mcp.ru.mdx b/content/docs/mcp.ru.mdx index 85f7671e..04fc3a1f 100644 --- a/content/docs/mcp.ru.mdx +++ b/content/docs/mcp.ru.mdx @@ -152,6 +152,7 @@ Hermes использует `mcp_servers` в `~/.hermes/config.yaml`. Добав - **Zoom:** `zm personal mcp serve`. - **Google Drive:** `drive personal --read-only mcp serve`. - **Google Calendar:** `gcal personal mcp serve`. +- **Mail:** `mail personal mcp serve`. - **Memo:** `memo mcp serve`. ## Что агент может делать diff --git a/content/docs/meta.es.json b/content/docs/meta.es.json index 40a65cf5..5513b9d4 100644 --- a/content/docs/meta.es.json +++ b/content/docs/meta.es.json @@ -47,6 +47,7 @@ "max", "drive", "gcal", + "mail", "zm", "memo", "---Detalles técnicos---", diff --git a/content/docs/meta.json b/content/docs/meta.json index 9446dbd8..ccbf1b82 100644 --- a/content/docs/meta.json +++ b/content/docs/meta.json @@ -47,6 +47,7 @@ "max", "drive", "gcal", + "mail", "zm", "memo", "---Technical details---", diff --git a/content/docs/meta.ru.json b/content/docs/meta.ru.json index 64417163..cb64b063 100644 --- a/content/docs/meta.ru.json +++ b/content/docs/meta.ru.json @@ -47,6 +47,7 @@ "max", "drive", "gcal", + "mail", "zm", "memo", "---Технические подробности---", diff --git a/content/docs/roadmap.es.md b/content/docs/roadmap.es.md index bce90b8a..8da3a90d 100644 --- a/content/docs/roadmap.es.md +++ b/content/docs/roadmap.es.md @@ -49,6 +49,7 @@ También están disponibles los chats de [WhatsApp](./wa/index.md) y los bots em - [Hoja de ruta de Zoom](./zm/roadmap.md) - [Hoja de ruta de Google Drive](./drive/roadmap.md) - [Hoja de ruta de Google Calendar](./gcal/roadmap.md) +- [Hoja de ruta de Mail](./mail/roadmap.md) - [Hoja de ruta de Memo](./memo/roadmap.md) - [Hoja de ruta de WhatsApp](./wa/roadmap.md) diff --git a/content/docs/roadmap.md b/content/docs/roadmap.md index 6475849e..b13576b3 100644 --- a/content/docs/roadmap.md +++ b/content/docs/roadmap.md @@ -48,6 +48,7 @@ what comes next. - [Zoom roadmap](./zm/roadmap.md) - [Google Drive roadmap](./drive/roadmap.md) - [Google Calendar roadmap](./gcal/roadmap.md) +- [Mail roadmap](./mail/roadmap.md) - [Memo roadmap](./memo/roadmap.md) - [WhatsApp roadmap](./wa/roadmap.md) diff --git a/content/docs/roadmap.ru.md b/content/docs/roadmap.ru.md index a134f2cc..0f26b6d5 100644 --- a/content/docs/roadmap.ru.md +++ b/content/docs/roadmap.ru.md @@ -47,6 +47,7 @@ WireCat собирает ваш контекст в одном месте. Со - [Планы Zoom](./zm/roadmap.md) - [Планы Google Drive](./drive/roadmap.md) - [Планы Google Calendar](./gcal/roadmap.md) +- [Планы Mail](./mail/roadmap.md) - [Планы Memo](./memo/roadmap.md) - [Планы WhatsApp](./wa/roadmap.md) diff --git a/content/docs/skills.es.mdx b/content/docs/skills.es.mdx index 1914deb9..f27e3578 100644 --- a/content/docs/skills.es.mdx +++ b/content/docs/skills.es.mdx @@ -21,6 +21,7 @@ Los ejemplos usan `tg` para Telegram. Para otra herramienta, cambia el repositor - **WhatsApp** (`wa`): repositorio `WireCatLabs/whatsapp-cli`, skill `whatsapp-cli` - **Google Drive** (`drive`): repositorio `WireCatLabs/drive-cli`, skill `drive-cli` - **Google Calendar** (`gcal`): repositorio `WireCatLabs/gcal-cli`, skill `gcal-cli` +- **Mail** (`mail`): repositorio `WireCatLabs/mail-cli`, skill `mail-cli` - **Zoom** (`zm`): repositorio `WireCatLabs/zoom-cli`, skill `zoom-cli` - **Memo** (`memo`): repositorio `WireCatLabs/cli-memo`, skill `cli-memo` diff --git a/content/docs/skills.mdx b/content/docs/skills.mdx index 9e6a2a5e..199faf33 100644 --- a/content/docs/skills.mdx +++ b/content/docs/skills.mdx @@ -21,6 +21,7 @@ The examples use `tg` for Telegram. For another tool, replace the repository and - **WhatsApp** (`wa`): repository `WireCatLabs/whatsapp-cli`, skill `whatsapp-cli` - **Google Drive** (`drive`): repository `WireCatLabs/drive-cli`, skill `drive-cli` - **Google Calendar** (`gcal`): repository `WireCatLabs/gcal-cli`, skill `gcal-cli` +- **Mail** (`mail`): repository `WireCatLabs/mail-cli`, skill `mail-cli` - **Zoom** (`zm`): repository `WireCatLabs/zoom-cli`, skill `zoom-cli` - **Memo** (`memo`): repository `WireCatLabs/cli-memo`, skill `cli-memo` diff --git a/content/docs/skills.ru.mdx b/content/docs/skills.ru.mdx index 4a1cb884..59ad3830 100644 --- a/content/docs/skills.ru.mdx +++ b/content/docs/skills.ru.mdx @@ -21,6 +21,7 @@ description: "Установите навык инструмента через - **WhatsApp** (`wa`): репозиторий `WireCatLabs/whatsapp-cli`, навык `whatsapp-cli` - **Google Drive** (`drive`): репозиторий `WireCatLabs/drive-cli`, навык `drive-cli` - **Google Calendar** (`gcal`): репозиторий `WireCatLabs/gcal-cli`, навык `gcal-cli` +- **Mail** (`mail`): репозиторий `WireCatLabs/mail-cli`, навык `mail-cli` - **Zoom** (`zm`): репозиторий `WireCatLabs/zoom-cli`, навык `zoom-cli` - **Memo** (`memo`): репозиторий `WireCatLabs/cli-memo`, навык `cli-memo` diff --git a/docs/release-notes-review.json b/docs/release-notes-review.json index b2906be6..844bc63e 100644 --- a/docs/release-notes-review.json +++ b/docs/release-notes-review.json @@ -24,10 +24,10 @@ "conclusion": "Reviewed released Drive 0.45.1 (Core 0.473.0/Base 0.65.0), covering 0.41.1 (Core 0.448.0/Base 0.59.0), 0.42.0 (Core 0.450.0/Base 0.63.0), 0.43.0 (Core 0.451.0/Base 0.63.0), 0.44.0 (Core 0.467.0/Base 0.64.0) and 0.45.0 (Core 0.469.0/Base 0.65.0). 0.44.0 makes mcp a help-only group: the server is mcp serve (stdio or --http, --tools lists commands), mcp revoke replaces mcp --revoke, the shared store moves to schema 35, every run is kept (successes 7 days, keep_successful_runs_for_days, runs_size_limit_mb, record_input failed) and skill --json answers { item, meta }. 0.45.0 requires a named profile or --profiles a,b / --profiles all for mcp serve, mcp revoke and mcp server start|stop|status, and runs from a bundle. 0.45.1 keeps --profiles in the follow-up commands it prints. 0.42.0/0.43.0 add path-prefixed public URLs, a WireCat Desktop sign-in hint and faster meaning search. EN/RU/ES commands, configuration (run retention rows), recipes, remote (mcp serve, --profiles, mcp revoke), scenarios and changelog reviewed; other guides unchanged. Roadmap unchanged since 0.38.0: Google app review in progress, background mirrors watch service next, larger annotation copies and mirror deletion later. Earlier: Reviewed released Drive 0.41.0 (Core 0.446.0/Base 0.59.0), covering 0.39.0 (Core 0.435.0/Base 0.57.1) and 0.40.0 (Core 0.437.0/Base 0.59.0). 0.39.0 moves the shared store to version 34 (search-by-meaning index), so older WireCat CLIs refuse it, and drive upgrade shows only --check as its example. 0.40.0 adds skill install --for hermes, names OpenClaw or Hermes runs, declares metadata.openclaw in the skill, and drive runs --help shows no profile. 0.41.0 adds mcp server start|stop|status for the background HTTP MCP server, gives the Google sign-in page as an open_url line, keeps the command as typed in a run record with secrets hidden (record_input false hides every value that may be content). EN/RU/ES commands, configuration (record_input, --record), installation, remote (background server) and changelog reviewed; other guides unchanged. Roadmap unchanged since 0.38.0: Google app review in progress, background watch service next, larger annotation copies and mirror deletion later. Earlier: Reviewed released Drive 0.38.0 (Core 0.432.0/Base 0.57.1), covering 0.37.0. 0.37.0 adds drive store info: it describes the shared store (path, schema against the one drive reads with schema.reason and schema.upgrade, which tools used it), opens it read-only and needs no profile; the store group help covers the shared store. Run recording comes from cli-core recordRuns with the same runs kept; a run with no profile leaves profile out instead of an empty string. 0.38.0 answers a bare drive --version before the program loads. Native drive-cli#238 drops the release number from the configuration page and moves front matter in mirrored Markdown from Next into the current summary, so both portal corrections from the 0.36.0 review are retired. EN/RU/ES commands (store info), configuration (an older drive), roadmap (front matter in the current summary) and changelog reviewed; other guides unchanged. Roadmap: Google app review in progress, background watch service next, larger annotation copies and mirror deletion later. Earlier: Drive 0.36.0 (Core 0.428.0/Base 0.57.0), covering 0.35.0. Since 0.35.0 drive reads setting names only as written: old setting names are refused as unknown settings like any other key, every command except config and doctor refuses a file with a problem and names its drive config unset fix, and doctor --json lists every problem under config.issues (kind, file, profile, key, what, fix). New config unset removes one setting from a profile, the defaults or the top of the file; config show/set/unset keep working on a file with problems. 0.36.0 saves config.json as 0600; doctor reports a config file or folder others can read under files.problems and prints the chmod; the refusal's (and N more problems) counts what doctor lists; skill status and skill show --for come from cli-base; housekeeping commands (doctor, config show, session list, runs, models, api list) show no profile in help. EN/RU/ES configuration (old-name paragraphs and the saved-default sentence removed; new Fix a problem in the file and Keep the file private sections), troubleshooting (doctor row, Name a profile), scenarios (every account command names personal; the portal profile correction retired because 0.35.0 ships it), commands and changelog reviewed. Roadmap: front matter in mirrored Markdown shipped (drive-cli#228, cli-core#1952) and is removed from Next by a portal correction until the native roadmap drops it; Google app review in progress, background watch service next, larger annotation copies and mirror deletion later. Earlier: Drive 0.34.0 (Core 0.422.0/Base 0.53.0). drive keeps a log of its runs like tg, max and wa: failed runs always, every run with --record or record: true in defaults, for keep_runs_for_days (30); runs list|show|path read them without a profile, and a run never holds a document id, name or text. Help and MCP examples speak of drive and name a profile. EN/RU/ES configuration (record, keep_runs_for_days, --record/--no-record), troubleshooting (failed-run symptom row), commands and changelog reviewed. Roadmap unchanged: Google app review in progress, background watch service and front matter next, larger annotation copies and mirror deletion later. Earlier: search --json hits carry cli-core's url and kind: \"document\", the same fields as memo search notes and search all; source_url is removed without an alias from hits and pictures, and a folder hit is told apart by not_read: \"folder metadata only\". An expired Google sign-in now tells an agent that signing in is the owner's step. EN/RU/ES search and usage now name url; the recipes and troubleshooting guide overrides (documents account, older-CLI refusal) are retired because 0.33.0 ships those pages. Roadmap unchanged from 0.32.0: Google app review in progress, background watch service and front matter next, larger annotation copies and mirror deletion later. Earlier review of 0.30.0 to 0.32.0: 0.32.0 keeps Drive documents in the store's own Google Drive account named by the drive profile; Core 0.420.0 moves them on first open (store versions 30 to 33), keeps every document: reference, and older CLIs refuse the store until upgraded; two processes on one profile share a single Google sign-in refresh. 0.31.0 moves files list to the shared field query language (name:, modified_time with offsets, --timezone; raw Google queries stay under api), adds schema-derived list queries and joins a file's owner or editor with the mail contact of the same exact email. 0.30.0 removes mirrors sync/watch --public-url: Google Docs inserts only publicly downloadable images, so local images stay as Markdown text. EN/RU/ES mirrors (new section on when a Markdown file in Drive is enough; local images section rewritten), recipes (search only Drive documents from Memo with --source drive:), roadmap (tunnel image claim removed from the current summary), commands and changelog reviewed. Roadmap: background watch service and front matter stay next; larger annotation copies and mirror deletion stay later; Google app review stays in progress. The documents account and the older-CLI refusal reach the recipes and troubleshooting guides through docs-only guide overrides (drive PRs 220 and 222). No live Google request or global upgrade." }, "memo": { - "version": "v0.108.0", - "roadmapSha256": "46fe6d4dc8a43f812507c09de909384cd22964590ea1e9b26797a5f5ef548a3e", - "reviewedAt": "2026-10-26", - "conclusion": "Reviewed Memo 0.108.0 with exact Core 0.431.0/Base 0.57.1. 0.108.0 parses mail with postal-mime 4.1.4 (a few malformed messages read differently; re-importing one can store slightly different text) and answers a bare memo --version before the program loads; the command tree is unchanged. configuration.md now says keys are added by hand and memo config unset removes one, so the portal correction is retired. EN/RU/ES configuration and the 0.108.0 release notes reviewed. Roadmap unchanged: nothing under Next or Later shipped. Earlier: Reviewed Memo 0.98.0–0.107.0 with exact Core 0.431.0/Base 0.57.0. 0.107.0 adds doctor file-permission checks (files.problems with the chmod fix on stderr) and owner-only config.json saves; 0.104.0 adds config.issues with a runnable fix, memo config unset, run logs (runs list/show/path, record, keep_runs_for_days), renames config.exists to config.found, refuses retired permission keys and removes sync --account and the ignored --brief/--full of search all/notes; 0.103.0 moves notes folders to obsidian/local accounts on the shared store; 0.100.0/0.101.0 add people and confirmed-member lanes to projects evidence; 0.105.0 adds store info, skill status/show --for and run errors; 0.106.0 moves run recording to Core. EN/RU/ES configuration, installation, mcp, notes, search, tags, tasks, scenarios, generated reference and 0.98–0.107 release notes reviewed; doctor shape, config unset and the refusal checked on an isolated install. The released changelog has no 0.102.0 section, and configuration.md still says Memo has no config command (portal correction; cli-memo source issues). Roadmap unchanged: nothing under Next or Later shipped (tag merging still has no apply command)." + "version": "v0.131.2", + "reviewedAt": "2026-11-01", + "roadmapSha256": "e702995bc928503c609b7022e7ab5c86fc74d63eef5f4be84dea7952dea5f025", + "conclusion": "Reviewed Memo 0.131.2, covering 0.109.0 to 0.131.1 as captured in the source diff and the changelog. Mail now comes in through the mail CLI, which fills the shared store; Memo searches it, and the Himalaya import is described as the older path that a later version removes. The docs gain memo people list, tasks counts, history, move, claim and release, memories and facts remove or reject, the mcp serve, revoke and server subcommands, and the record_input, keep_successful_runs_for_days and runs_size_limit_mb settings. EN/RU/ES pages (commands, configuration, how-it-works, index, installation, mail, mcp, memories, people, recipes, remote, roadmap, search, security, tasks, troubleshooting, usage) and every changelog section from 0.109.0 carried into the translations; the generated command reference stays English as before. Roadmap: under Next, Reading mail without Himalaya is replaced by Removing the Himalaya import; nothing else under Next or Later shipped. Earlier: Reviewed Memo 0.108.0 with exact Core 0.431.0/Base 0.57.1. 0.108.0 parses mail with postal-mime 4.1.4 (a few malformed messages read differently; re-importing one can store slightly different text) and answers a bare memo --version before the program loads; the command tree is unchanged. configuration.md now says keys are added by hand and memo config unset removes one, so the portal correction is retired. EN/RU/ES configuration and the 0.108.0 release notes reviewed. Roadmap unchanged: nothing under Next or Later shipped. Earlier: Reviewed Memo 0.98.0–0.107.0 with exact Core 0.431.0/Base 0.57.0. 0.107.0 adds doctor file-permission checks (files.problems with the chmod fix on stderr) and owner-only config.json saves; 0.104.0 adds config.issues with a runnable fix, memo config unset, run logs (runs list/show/path, record, keep_runs_for_days), renames config.exists to config.found, refuses retired permission keys and removes sync --account and the ignored --brief/--full of search all/notes; 0.103.0 moves notes folders to obsidian/local accounts on the shared store; 0.100.0/0.101.0 add people and confirmed-member lanes to projects evidence; 0.105.0 adds store info, skill status/show --for and run errors; 0.106.0 moves run recording to Core. EN/RU/ES configuration, installation, mcp, notes, search, tags, tasks, scenarios, generated reference and 0.98–0.107 release notes reviewed; doctor shape, config unset and the refusal checked on an isolated install. The released changelog has no 0.102.0 section, and configuration.md still says Memo has no config command (portal correction; cli-memo source issues). Roadmap unchanged: nothing under Next or Later shipped (tag merging still has no apply command)." }, "wa": { "version": "v0.21.0", @@ -40,5 +40,11 @@ "roadmapSha256": "ccd4d1aaafb881029514e78336072fc7239d2766967957dc81e8581446970a76", "reviewedAt": "2026-11-01", "conclusion": "Reviewed released Google Calendar 0.10.0 (Core 0.512.0/Base 0.68.1). 0.10.0 only moves gcal to cli-core 0.512.0: no command, option, setting or MCP input changes for gcal. cli-core 0.512.0 renamed id to operation_id in its shared calendar MCP tools and gave events_list a page, but gcal does not serve those tools; its agents use gcal_write and gcal_read, which already take operation_id and events list --page since 0.9.0. RU/ES changelog reviewed; the other gcal pages are unchanged at v0.10.0. Roadmap unchanged since 0.7.0: sign-in through WireCat's shared Google app is still planned. Earlier: Reviewed released Google Calendar 0.9.0 (Core 0.510.0/Base 0.68.1), covering 0.8.0. 0.8.0 takes the keyring's file fallback from cli-base 0.68.0 with no workaround of gcal's own: a sign-in in the private file stays there until a session start reaches the keyring again. 0.9.0 renames events create --id and events update --following --id to --operation-id (may break callers), adds events list --page with a page.next step that keeps the query, makes search events --backend both answer (store hits first, those Google also found marked server, then Google-only hits, one page with no cursor), fixes the --cursor help, and the MCP agent log now names the calling agent instead of gcal-mcp. EN/RU/ES changelog, usage and commands reviewed. Roadmap unchanged since 0.7.0: sign-in through WireCat's shared Google app is still planned. Earlier: Reviewed released Google Calendar 0.7.0 (Core 0.502.0/Base 0.67.0), covering 0.5.0 and 0.6.0. 0.5.0 renames search to search events and status to store status, makes events list take only field query terms (today, week, from: and overlapping removed; changed: becomes changed_at>=), lists people with event:, and denies deleting or transferring a whole calendar by default. 0.6.0 adds starts_at bounds to events list, makes calendars busy take start>=/end<= with repeatable calendar: and person:, and falls back to a file when the keyring fails (--credential-storage file chooses it). 0.7.0 lets raw api writes that do not delete or share run without a question, and moves the upgrade check to 0.6.0. EN/RU/ES commands, usage, configuration, security, changelog and the comparison reviewed in cli-docs #465, #466 and #467. Roadmap matches the release: the current summary names search events and changed_at>=, the overlapping filter left it; sign-in through WireCat's shared Google app is still planned. Earlier: Reviewed released Google Calendar 0.4.0 (Core 0.491.0/Base 0.65.5). 0.4.0 moves the shared store to version 40 (the trigram index notes and documents search uses), so an older gcal no longer leaves a newer tool's store without its index entries; no command, setting or guide changes. EN/RU/ES changelog reviewed, and the comparison re-dated to 0.4.0 with every competitor mark linked to its source. Roadmap unchanged since 0.3.0: sign-in through WireCat's shared Google app is still planned. Earlier: Reviewed released Google Calendar 0.3.0 (Core 0.489.0/Base 0.65.5), covering 0.2.0. 0.2.0 only publishes the skill on ClawHub as wirecat-gcal. 0.3.0 adds events move --to-calendar, events update|delete --following, events list changed: and events list overlapping, and models list|download; create/update/move/respond are now allowed by default while delete asks, a series update that ends a series sooner needs events.delete.series, a failed sync prints nothing and fails with sync.partial carrying details.calendars, search and links review answer items, search --backend server refuses --newest, and a moved-folder run signs in to its own keyring entry. EN/RU/ES overview, usage, commands, settings, security, changelog, roadmap and the comparison reviewed. Roadmap matches the release: moving an event to another calendar and changing this-and-following occurrences shipped and left Next; sign-in through WireCat's shared Google app is still planned." + }, + "mail": { + "version": "v0.1.1", + "roadmapSha256": "4ed60073bd98237d6f6cc0a189ee7069b9943b0c1134c677604b24610c7481b6", + "reviewedAt": "2026-11-01", + "conclusion": "Reviewed released Mail 0.1.1 (documentation-only release; Core 0.507.0/Base 0.68.1 as in 0.1.0). The docs now end installation, usage and the index with memo search mail, say that the password comes from the keyring, a private file or MAIL_PASSWORD and never from stdin, name both causes of rate_limited (the server limiting the account, and sync using its own request budget, answered as state partial), and say that memo mail delete moves Gmail mail to Trash. EN/RU/ES index, installation, usage, configuration, security, troubleshooting and changelog reviewed against the 0.1.0 to 0.1.1 source diff. Roadmap unchanged. Earlier: Reviewed released Mail 0.1.0 (Core 0.507.0/Base 0.68.1), the first release. mail reads a mailbox over IMAP into the shared WireCat store and never changes it, and does not send mail. session start signs in with an app password (server found through the built-in table, the MX record, Thunderbird's ISPDB and the domain's autoconfig file; the password goes to the OS keyring, or to a private credentials.json when the keyring fails; a run with moved folders never removes the owner's password); session status, session end and session list manage the sign-in; account check, folders list and sync (INBOX and Sent, partial runs over several calls, retries on a flaky server) read the mail; mcp serve and skill install serve AI agents; wcat mail and wcat-mail --wcat-describe register the tool; doctor --online says whether a newer version is published. EN/RU/ES overview, installation, usage, providers, commands, settings, security, troubleshooting, changelog, roadmap and the comparison reviewed against the published package. Roadmap matches the release: OAuth sign-in for Outlook, Microsoft 365 and Google Workspace is still planned, and --wcat-describe left Later." } } diff --git a/docs/tasks.json b/docs/tasks.json index 8924a06e..89cb2924 100644 --- a/docs/tasks.json +++ b/docs/tasks.json @@ -160,5 +160,20 @@ "families": { "zm": ["mcp", "skill", "search", "commands", "complete"] } + }, + { + "id": "mail-connect", + "pages": ["mail/installation.md", "mail/providers.md", "mail/security.md"], + "families": { "mail": ["session", "account", "skill", "mcp"] } + }, + { + "id": "mail-sync", + "pages": ["mail/usage.md", "mail/commands.md"], + "families": { "mail": ["folders", "sync", "status", "commands"] } + }, + { + "id": "mail-upkeep", + "pages": ["mail/configuration.md", "mail/troubleshooting.md"], + "families": { "mail": ["config", "doctor", "runs", "upgrade"] } } ] diff --git a/lib/docs-sidebar-tree.tsx b/lib/docs-sidebar-tree.tsx index 4b1352c6..008727a1 100644 --- a/lib/docs-sidebar-tree.tsx +++ b/lib/docs-sidebar-tree.tsx @@ -160,6 +160,7 @@ const folderIcons = { wa: WhatsAppIcon, drive: FolderOpen, gcal: CalendarDays, + mail: Mail, memo: NotebookPen, zm: Video, desktop: Monitor, @@ -221,7 +222,7 @@ export function unifiedDocsTree(tree: Root, lang = "en"): Root { } } if (node.type !== "page") return node - const slug = /\/docs\/(tg|max|wa|drive|gcal|memo|zm)\/?$/.test(node.url) + const slug = /\/docs\/(tg|max|wa|drive|gcal|mail|memo|zm)\/?$/.test(node.url) ? "index" : (node.url.split("/").filter(Boolean).at(-1) ?? "") const Icon = sidebarIcons[slug as keyof typeof sidebarIcons] ?? FileText diff --git a/lib/mail-descriptions.ts b/lib/mail-descriptions.ts new file mode 100644 index 00000000..f9a3ffdc --- /dev/null +++ b/lib/mail-descriptions.ts @@ -0,0 +1,51 @@ +export const mailDescriptions: Record> = { + en: { + compare: + "See what Mail does and does not do: read-only IMAP sync into the shared store, search left to memo, no sending, no Outlook yet.", + index: "Sync your mailbox over IMAP into the shared WireCat store; memo searches it, offline.", + installation: "Install the Mail CLI with npm, check the Node.js version and run doctor.", + usage: "Connect a mailbox with an app password, sync mail in parts, script the output and connect an agent.", + providers: + "Turn on IMAP and make an app password for Yandex, Gmail, iCloud, Mail.ru, Fastmail or another provider.", + commands: "Find every Mail CLI command, option and exit code in the generated reference.", + configuration: "See and change a profile's mailbox settings, permissions and run records.", + troubleshooting: "Fix Mail CLI profile, app password, keyring, rate limit and settings-file problems.", + security: "What the Mail CLI keeps, where the app password lives and how to treat synced mail.", + changelog: "Read Mail CLI release notes, including new capabilities, changes and fixes.", + roadmap: "See which Mail CLI capabilities are available and which work remains planned.", + }, + ru: { + compare: + "Что Mail умеет и чего нет: синхронизация IMAP только для чтения в общее хранилище, поиск делает memo, без отправки, пока без Outlook.", + index: "Синхронизируйте почтовый ящик по IMAP в общее хранилище WireCat; memo ищет по нему без интернета.", + installation: "Установите Mail CLI через npm, проверьте версию Node.js и запустите doctor.", + usage: + "Подключите ящик с паролем приложения, синхронизируйте почту частями, получайте вывод для скриптов и подключайте агента.", + providers: + "Включите IMAP и создайте пароль приложения для Yandex, Gmail, iCloud, Mail.ru, Fastmail или другого провайдера.", + commands: "Все команды, параметры и коды выхода Mail CLI в сгенерированном справочнике.", + configuration: "Посмотрите и измените настройки ящика профиля, разрешения и записи запусков.", + troubleshooting: + "Исправьте проблемы с профилем, паролем приложения, связкой ключей, лимитами и файлом настроек Mail CLI.", + security: "Что хранит Mail CLI, где лежит пароль приложения и как обращаться с синхронизированной почтой.", + changelog: "Заметки о выпусках Mail CLI: новые возможности, изменения и исправления.", + roadmap: "Какие возможности Mail CLI уже есть и какие работы ещё запланированы.", + }, + es: { + compare: + "Qué hace y qué no hace Mail: sincronización IMAP de solo lectura al almacén compartido, búsqueda a cargo de memo, sin envío y aún sin Outlook.", + index: "Sincroniza tu buzón por IMAP en el almacén compartido de WireCat; memo busca en él sin conexión.", + installation: "Instala la CLI de Mail con npm, comprueba la versión de Node.js y ejecuta doctor.", + usage: + "Conecta un buzón con una contraseña de aplicación, sincroniza el correo por partes, usa la salida en scripts y conecta un agente.", + providers: + "Activa IMAP y crea una contraseña de aplicación para Yandex, Gmail, iCloud, Mail.ru, Fastmail u otro proveedor.", + commands: "Todos los comandos, opciones y códigos de salida de la CLI de Mail en la referencia generada.", + configuration: "Consulta y cambia los ajustes del buzón de un perfil, los permisos y los registros de ejecución.", + troubleshooting: + "Resuelve problemas de perfil, contraseña de aplicación, llavero, límites y archivo de ajustes de la CLI de Mail.", + security: "Qué guarda la CLI de Mail, dónde vive la contraseña de aplicación y cómo tratar el correo sincronizado.", + changelog: "Notas de versión de la CLI de Mail: nuevas capacidades, cambios y correcciones.", + roadmap: "Qué capacidades de la CLI de Mail están disponibles y qué trabajo sigue previsto.", + }, +} diff --git a/lib/seo.ts b/lib/seo.ts index 42716421..dff8ba90 100644 --- a/lib/seo.ts +++ b/lib/seo.ts @@ -2,6 +2,7 @@ import type { Metadata } from "next" import siteConfig from "../site.config.json" import { driveDescriptions } from "./drive-descriptions" import { gcalDescriptions } from "./gcal-descriptions" +import { mailDescriptions } from "./mail-descriptions" import { memoDescriptions } from "./memo-descriptions" import { readerGuide } from "./reader-guides" import seoCopy from "./seo-copy.json" @@ -99,6 +100,7 @@ export function documentationDescription(lang: string, slugs: string[], authored const reviewed = { drive: driveDescriptions, gcal: gcalDescriptions, + mail: mailDescriptions, memo: memoDescriptions, wa: whatsappDescriptions, }[selectedTool?.name ?? ""] diff --git a/scripts/docs-corrections.json b/scripts/docs-corrections.json index 9fb1cb23..dd72d2f1 100644 --- a/scripts/docs-corrections.json +++ b/scripts/docs-corrections.json @@ -2344,5 +2344,14 @@ } ] } + }, + { + "tool": "mail", + "slug": "index", + "source": "https://github.com/WireCatLabs/mail-cli/blob/main/docs/index.md", + "reason": "The overview page's sidebar label is its title. mail's overview is titled with the command name; the other tools' overview pages carry the product name. Drop this once the release's own heading is Mail.", + "replacements": { + "en": [{ "before": "title: \"mail\"", "after": "title: \"Mail\"" }] + } } ] diff --git a/tools.json b/tools.json index ecf22e18..6bac9fb4 100644 --- a/tools.json +++ b/tools.json @@ -62,6 +62,19 @@ "es": "Guarda tu Google Calendar en tu ordenador, busca reuniones sin conexión y reconoce a los asistentes de tus otros chats." } }, + { + "name": "mail", + "displayName": "Mail", + "repo": "WireCatLabs/mail-cli", + "package": "@wirecat/mail-cli", + "lang": "en", + "docsRef": "v0.1.1", + "summary": { + "en": "Sync your mailbox over IMAP into the shared WireCat store; memo searches it, offline. mail only reads your mailbox.", + "ru": "Синхронизируйте почтовый ящик по IMAP в общее хранилище WireCat; memo ищет по нему без интернета. mail только читает ящик.", + "es": "Sincroniza tu buzón por IMAP en el almacén compartido de WireCat; memo busca en él sin conexión. mail solo lee tu buzón." + } + }, { "name": "zm", "displayName": "Zoom", @@ -86,7 +99,7 @@ "ru": "Заметки, почта и сообщения в одном месте для вашего ИИ-агента: поиск, теги, люди и память, на вашем компьютере.", "es": "Tus notas, correo y mensajes en un solo lugar para tu agente de IA: búsqueda, etiquetas, personas y recuerdos, en tu ordenador." }, - "docsRef": "v0.108.0", + "docsRef": "v0.131.2", "profile": false } ] diff --git a/translations/mail/changelog.es.md b/translations/mail/changelog.es.md new file mode 100644 index 00000000..b2bd73ea --- /dev/null +++ b/translations/mail/changelog.es.md @@ -0,0 +1,68 @@ +--- +title: "Historial de cambios" +--- + +Cambios destacados de `@wirecat/mail-cli`. Una sección por versión, de la más reciente a la más antigua. + +## 0.1.1 — 01.11.2026 + +### Corregido + +- **La documentación lleva de `sync` al primer correo encontrado y dice cómo se guarda de verdad la contraseña.** La instalación, el uso y + el índice de la documentación terminan con `memo search mail`, porque `mail` llena el almacén común y memo busca en él. La + contraseña se guarda en el llavero, pasa a un archivo privado cuando el llavero falla y puede venir de `MAIL_PASSWORD`; nunca se lee de + stdin. `rate_limited` nombra las dos causas: el servidor limita la cuenta y `sync` agotó su propio presupuesto de peticiones. + La documentación también dice que `memo mail delete` mueve el correo de Gmail a la papelera. + +## 0.1.0 — 31.10.2026 + +### Añadido + +- **`mail` lee un buzón por IMAP en el almacén compartido de WireCat y nunca modifica el buzón.** `memo` y las demás + herramientas de WireCat buscan y leen después ese correo en tu ordenador. `mail` no envía correo. +- **`session start` inicia sesión de un perfil con una contraseña de aplicación.** Un perfil nuevo necesita `--address`, + o lo pide en una terminal. Encuentra el servidor mediante una tabla incorporada (Yandex, Gmail, iCloud, Mail.ru, + Fastmail), el registro MX, el ISPDB de Thunderbird y el archivo autoconfig del dominio; `--provider`, o `--host` con + `--port` y `--security`, lo fija a mano y se salta esas búsquedas. Muestra los pasos para preparar el buzón, pide la + contraseña de aplicación sin eco (o lee `MAIL_PASSWORD`), la comprueba en el servidor y solo entonces guarda el perfil + y deja la contraseña en el llavero del sistema. Sin terminal no pregunta nunca y nombra la opción o la variable que + falta. Una contraseña de aplicación que Himalaya ya guarda en el llavero se usa cuando `mail` no tiene ninguna. Los + pasos de cada proveedor están en + [Preparar el buzón](https://github.com/WireCatLabs/mail-cli/blob/main/docs/providers.md). Outlook y Microsoft 365 solo + aceptan OAuth, así que `session start` los rechaza por ahora. +- **`session status`, `session end` y `session list` gestionan el inicio de sesión.** `session status --check` entra en + el servidor para comprobar que la contraseña sigue funcionando; `session end` olvida la contraseña y conserva el correo + sincronizado; `session list` no necesita perfil y muestra los perfiles de este ordenador. +- **`account check` y `folders list`** inician sesión y muestran lo que admite el servidor, y las carpetas con su función + y su número de mensajes. +- **`sync` lee el correo nuevo en el almacén compartido y omite lo que ya está.** Lee INBOX y Sent, salvo que `--folder` + o el perfil nombren otras carpetas, empezando por lo más reciente, desde `--since-time` (por defecto, los últimos + 30 días). Una fecha sola empieza a medianoche local, y la respuesta indica la zona horaria y la ventana en UTC. + `--limit` limita los mensajes nuevos de una ejecución y `--rescan` vuelve a listar toda la ventana. Guarda el texto y + las cabeceras, no los adjuntos. +- **Un buzón grande se sincroniza en varias ejecuciones.** `sync` gasta un presupuesto de peticiones calculado según su + plazo (15 minutos en una terminal, 45 segundos por MCP; `--timeout` y `--max-pages` lo cambian), guarda tras cada parte + y responde `state: partial` con el comando para continuar. `mail status` muestra cuánto lleva, también + mientras se sincroniza. Si quedaron mensajes sin leer o no se comprobaron las eliminaciones, la respuesta lo indica en + `meta.issues`. +- **`sync` resiste un servidor inestable.** Una conexión caída se reabre tras una breve espera y la ejecución continúa; + un mensaje al que el servidor no puede responder ahora se pide de nuevo al final de la ejecución y se deja para la + siguiente. En un servidor sin identificadores de mensaje, como Yandex, cada mensaje nuevo se descarga una vez y el + correo ya guardado no se vuelve a leer. +- **Los agentes de IA usan `mail` mediante MCP y una skill.** `mail mcp serve` ofrece al agente los comandos + del perfil por stdio, o por HTTP tras tu propio túnel con `--http`; los permisos del perfil deciden qué se ejecuta y + `--permission` solo los restringe más. `mail skill install` instala las instrucciones de la herramienta para Claude + Code, Codex, Gemini CLI y OpenClaw, y para Hermes con `--for hermes`. +- **La contraseña de aplicación pasa a un archivo privado cuando falla el llavero, y nunca se pregunta por ello.** + `session start` guarda la contraseña en `credentials.json` (modo 600) en la carpeta de configuración, lo avisa una vez + por stderr y responde `credential_storage`. `--credential-storage file` elige el archivo directamente, no recomendado. + `session status` puede responder `password_from: "file"`. +- **Una ejecución con carpetas movidas nunca elimina del llavero del sistema la contraseña de aplicación del + propietario.** Esa ejecución lee la contraseña del propietario pero nunca la sustituye ni la elimina, y guarda una + nueva en una entrada temporal. `session end` sobre la contraseña del propietario no elimina nada y responde + `kept: "owners-sign-in"`. +- **`wcat mail` ejecuta la herramienta, y `wcat --help` la lista.** El paquete instala `wcat-mail` junto a `mail`, y + `wcat-mail --wcat-describe` imprime para `wcat` el nombre, la versión y la descripción de la herramienta. +- **`doctor --online` indica si hay publicada una versión más reciente.** No hace ninguna llamada al servidor de correo. +- **Los comandos que comparten todas las herramientas de WireCat:** `doctor`, `commands`, `config`, `skill`, `runs` y + `upgrade`. diff --git a/translations/mail/changelog.ru.md b/translations/mail/changelog.ru.md new file mode 100644 index 00000000..2208e1f4 --- /dev/null +++ b/translations/mail/changelog.ru.md @@ -0,0 +1,65 @@ +--- +title: "История изменений" +--- + +Заметные изменения в `@wirecat/mail-cli`. По одному разделу на версию, новые сверху. + +## 0.1.1 — 01.11.2026 + +### Исправлено + +- **Документация ведёт от `sync` к первому найденному письму и честно говорит, как хранится пароль.** Установка, работа с + инструментом и главная страница документации заканчиваются командой `memo search mail`: `mail` наполняет общее хранилище, а memo + ищет в нём. Пароль хранится в связке ключей, при её сбое переходит в закрытый файл и может приходить из `MAIL_PASSWORD`; из stdin он + никогда не читается. `rate_limited` называет обе причины: сервер ограничивает аккаунт, и `sync` исчерпал собственный бюджет запросов. + Документация также сообщает, что `memo mail delete` перемещает почту Gmail в корзину. + +## 0.1.0 — 31.10.2026 + +### Добавлено + +- **`mail` читает почтовый ящик по IMAP в общее хранилище WireCat и никогда не меняет сам ящик.** `memo` и другие + инструменты WireCat затем ищут и читают эту почту на вашем компьютере. `mail` не отправляет почту. +- **`session start` входит в профиль по паролю приложения.** Новому профилю нужен `--address`, а в терминале адрес + спросят сами. Сервер находится по встроенной таблице (Яндекс, Gmail, iCloud, Mail.ru, Fastmail), по записи MX, по + ISPDB Thunderbird и по файлу autoconfig домена; `--provider` или `--host` вместе с `--port` и `--security` задают его + вручную и пропускают эти поиски. Команда показывает шаги подготовки ящика, спрашивает пароль приложения без эха (или + читает `MAIL_PASSWORD`), проверяет его на сервере и только потом сохраняет профиль, а пароль кладёт в связке ключей + ОС. Без терминала она ничего не спрашивает и называет недостающий параметр или переменную. Пароль приложения, который + Himalaya уже хранит в связке ключей, используется, если у `mail` своего нет. Шаги для каждого провайдера описаны на + странице [Подготовка почтового ящика](https://github.com/WireCatLabs/mail-cli/blob/main/docs/providers.md). Outlook и + Microsoft 365 принимают только OAuth, поэтому `session start` пока отказывается с ними работать. +- **`session status`, `session end` и `session list` управляют входом.** `session status --check` входит на сервер и + доказывает, что пароль ещё работает; `session end` забывает пароль и оставляет синхронизированную почту; `session list` + не требует профиля и показывает профили на этом компьютере. +- **`account check` и `folders list`** входят на сервер и показывают, что он поддерживает, а также папки с их ролью и + числом писем. +- **`sync` читает новую почту в общее хранилище и пропускает то, что там уже есть.** Если `--folder` или профиль не + называют другие папки, читаются INBOX и Sent, сначала новые, начиная с `--since-time` (по умолчанию последние + 30 дней). Одна дата начинается с местной полуночи, а в ответе указаны часовой пояс и окно в UTC. `--limit` ограничивает + число новых писем за один запуск, `--rescan` заново перечисляет всё окно. Сохраняются текст и заголовки, вложения не + сохраняются. +- **Большой ящик синхронизируется за несколько запусков.** `sync` тратит бюджет запросов, рассчитанный по сроку (15 минут + в терминале, 45 секунд через MCP; `--timeout` и `--max-pages` меняют его), сохраняет после каждой части и отвечает + `state: partial` с командой для продолжения. `mail status` показывает, как далеко продвинулась синхронизация, + в том числе пока она идёт. Если часть писем осталась непрочитанной или удаления не проверялись, ответ сообщает об этом + в `meta.issues`. +- **`sync` переживает ненадёжный сервер.** Оборванное соединение открывается заново после короткой паузы, и запуск + продолжается; письмо, на которое сервер сейчас не может ответить, запрашивается ещё раз в конце запуска и остаётся + на следующий. На сервере без идентификаторов писем, например на Яндексе, каждое новое письмо скачивается один раз, а + уже сохранённая почта не читается заново. +- **ИИ-агенты работают с `mail` через MCP и навык.** `mail mcp serve` предлагает агенту команды профиля по + stdio или по HTTP за вашим собственным туннелем с `--http`; что можно запускать, решают разрешения профиля, а + `--permission` лишь ужесточает их. `mail skill install` устанавливает инструкции инструмента для Claude Code, Codex, + Gemini CLI и OpenClaw, а для Hermes — с `--for hermes`. +- **Если связка ключей не работает, пароль приложения попадает в закрытый файл, и об этом не спрашивают.** + `session start` кладёт пароль в `credentials.json` (режим 600) в папке настроек, один раз сообщает об этом в stderr и + отвечает `credential_storage`. `--credential-storage file` выбирает файл сразу, но это не рекомендуется. + `session status` может ответить `password_from: "file"`. +- **Запуск с перенесёнными папками никогда не удаляет пароль приложения владельца из связки ключей ОС.** Такой запуск + читает пароль владельца, но не заменяет и не удаляет его, а новый пароль кладёт во временную запись. `session end` для + пароля владельца ничего не удаляет и отвечает `kept: "owners-sign-in"`. +- **`wcat mail` запускает инструмент, а `wcat --help` его перечисляет.** Пакет устанавливает `wcat-mail` рядом с `mail`, + а `wcat-mail --wcat-describe` печатает для `wcat` имя, версию и описание инструмента. +- **`doctor --online` сообщает, опубликована ли более новая версия.** К почтовому серверу он не обращается. +- **Команды, общие для всех инструментов WireCat:** `doctor`, `commands`, `config`, `skill`, `runs` и `upgrade`. diff --git a/translations/mail/commands.es.md b/translations/mail/commands.es.md new file mode 100644 index 00000000..5835a292 --- /dev/null +++ b/translations/mail/commands.es.md @@ -0,0 +1,581 @@ +--- +title: "Comandos de mail" +--- + + + + +Todos los comandos, opciones y códigos de salida, generados a partir del propio programa. Para obtener la misma lista en +JSON, ejecuta `mail commands --json`. Las descripciones conservan el idioma de la ayuda. + +**La primera palabra es el perfil**, un nombre que eliges tú: `mail personal config show`. `MAIL_PROFILE` +hace lo mismo para toda una sesión de la terminal. Nunca se da un perfil por supuesto: un comando que usa una cuenta +se detiene si no lo tiene y muestra los perfiles de este ordenador. + +## Opciones para todos los comandos + +| Option | What it does | +|---|---| +| `-V, --version` | output the version number. | +| `-v, --verbose` | more detail in what is shown: -v ids, -vv everything we know. Default: `0`. | +| `--json` | machine-readable output: one JSON value on stdout; --json=id,text keeps only those fields. | +| `--jsonl` | machine-readable output: one JSON object per line, for streaming and jq. | +| `--quiet` | diagnostics off; a failure is still said. | +| `--trace` | the connection's own log lines on stderr — never content. | +| `--debug` | on a failure, its whole record — cause and stack — in place of the short line. | +| `--timeout ` | give up on the whole command after this — 30s, 2m, 500ms. | +| `--offline` | answer from what was recorded and never connect; fails if nothing was. | +| `--no-input` | never prompt or open interactive login; piped input remains available. | +| `--max-input-bytes ` | maximum buffered input bytes (default: 16777216). | +| `--max-output-bytes ` | maximum machine output bytes (default: 4194304; 0 disables). | +| `--brief` | found items as reference, title, time, author and excerpt only. | +| `--full` | found items with their whole text and every provider field. | +| `--dry-run` | preview parsed arguments and permissions before running the action. | +| `--yes` | go ahead without the question an ask level puts before a write. | +| `--record` | keep this run even where the config says record false; record_input false leaves the typed words out. | +| `--no-record` | do not keep this run, even if it fails. | + +## `mail commands` + +every command by section; --json prints its contract, one path per call + +### `mail commands info` + +one command contract, or all schemas, error reasons and explicit overrides + +```sh +mail commands info [path] +``` + +| Argument | | What it is | +|---|---|---| +| `path` | optional | one command path; without one, export schemas, error reasons and explicit overrides. | + +**Returns:** one command contract, or all schemas, error reasons and explicit overrides + +**Example:** `mail commands info commands` + +## `mail session` + +keep this profile's app password in the OS keyring + +### `mail session start` + +sign this profile in. A new profile needs its mailbox: --address, or it is asked at a terminal; the server is found (built-in providers, the MX record, ISPDB, the domain's autoconfig; all providers: https://github.com/WireCatLabs/mail-cli/blob/main/docs/providers.md); for a domain the built-in table does not know, the domain, never the address, goes to the DNS resolver, autoconfig.thunderbird.net and autoconfig., and --provider or --host skips those lookups; the steps to prepare the mailbox are shown, the app password is asked (hidden) or read from MAIL_PASSWORD, checked against the server, and only then the profile and the keyring entry are saved. An existing profile only asks for the password again. Without a terminal nothing is asked: a missing --address or password is a validation error + +**Changes something on this computer only.** + +```sh +mail session start [options] +``` + +| Option | What it does | +|---|---| +| `--address ` | the full mail address of a new profile, also the login for most providers. | +| `--provider ` | skip discovery and use a built-in provider: Yandex, Gmail, iCloud, Mail.ru, Fastmail, Outlook. | +| `--host ` | skip discovery and use this IMAP host. | +| `--port ` | IMAP port (default 993). | +| `--security ` | tls or starttls (default tls). | +| `--login ` | the login name, when it is not the full address. | +| `--folder ` | sync only this folder; repeat it for more. | +| `--credential-storage ` | where the password is kept: keyring (the default, which falls back to a private file by itself when no keyring works), or file, not recommended. Default: `keyring`. | + +**Returns:** sign in; a new profile is created first + +**Example:** `mail ya session start --address me@example.com`, `mail ya session start`, `mail me session start --address me@example.com --host imap.example.com --security tls` + +### `mail session status` + +show where this profile's app password comes from; the password is never printed + +```sh +mail session status [options] +``` + +| Option | What it does | +|---|---| +| `--check` | log in to the server to prove the password still works. | + +**Returns:** mail session status — profile, state, password_from, address, verified; every field: mail commands info session status + +**Example:** `mail ya session status`, `mail ya session status --check --json` + +### `mail session end` + +forget this profile's app password on this computer; synced mail stays + +**Changes something on this computer only.** + +```sh +mail session end +``` + +**Returns:** forget this profile's app password on this computer; synced mail stays + +**Example:** `mail ya session end` + +### `mail session list` + +list the profiles on this computer, each with its address and where its app password comes from; picks none and asks no server + +```sh +mail session list +``` + +**Returns:** mail profile — profile, address, password_from; every field: mail commands info session list + +**Example:** `mail session list`, `mail session list --json` + +## `mail account` + +the mailbox behind this profile + +### `mail account check` + +log in to the server and list what it supports (IDLE, CONDSTORE, MOVE, Gmail extensions) + +```sh +mail account check +``` + +**Returns:** mail account check — profile, host, port, security, password_from, login, capabilities, features, and 1 more; every field: mail commands info account check + +**Example:** `mail ya account check`, `mail ya account check --json` + +## `mail folders` + +the folders of this profile's mailbox + +### `mail folders list` + +the folders of the mailbox with their role (inbox, sent, trash, ...) and message counts + +```sh +mail folders list +``` + +**Returns:** mail folder — path, name, role, messages, unseen; every field: mail commands info folders list + +**Example:** `mail ya folders list`, `mail ya folders list --json` + +## `mail sync` + +read mail from the server into the shared store; mail already stored is skipped + +**Changes something on this computer only.** + +```sh +mail sync [options] +``` + +| Option | What it does | +|---|---| +| `--since-time