Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/docs/browser-apps.es.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Después pide un borrador o, cuando quieras enviar, indica el destinatario y el
## Elegir qué puede hacer el agente

El servidor puede hacer lo que permiten los permisos guardados del perfil. Para restringirlos solo en este proceso,
añade `--permission messages.send=deny` o `--permission messages=readonly` al comando de inicio; en `tg` la opción
añade `--permission messages.send=deny` o `--permission messages=readonly` al comando de inicio; la opción
solo endurece, y una anulación que aflojaría el perfil se rechaza al iniciar. Para permitir el envío, cambia los
permisos del perfil. La app controla sus aprobaciones. Por MCP, `ask` no fuerza una confirmación del servidor. Para
solo leer, elige un perfil de solo lectura.
Expand Down
2 changes: 1 addition & 1 deletion content/docs/browser-apps.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ Then ask for a draft or, when you intend to send, name the recipient and exact t
## Choose what the agent may do

The server can do what the profile's saved permissions allow. To narrow them for this running server only, add
`--permission messages.send=deny` or `--permission messages=readonly` to the startup command; in `tg` the flag only
`--permission messages.send=deny` or `--permission messages=readonly` to the startup command; the flag only
tightens, and an override that would loosen the profile is refused at startup. To allow sending, change the profile's
permissions. The app controls its own approval prompts. Over MCP, `ask` does not force a server confirmation. For a
connection that only reads, use a read-only profile.
Expand Down
2 changes: 1 addition & 1 deletion content/docs/browser-apps.ru.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ tg personal mcp --http --port 8765 --public-url "$mcpPublicUrl"
## Выбрать права агента

Сервер может делать то, что разрешают сохранённые права профиля. Чтобы сузить их только для этого процесса, добавьте
в команду запуска `--permission messages.send=deny` или `--permission messages=readonly`; в `tg` флаг только
в команду запуска `--permission messages.send=deny` или `--permission messages=readonly`; флаг только
ужесточает, а переопределение, которое ослабило бы профиль, отклоняется при запуске. Чтобы разрешить отправку,
измените права профиля. Приложение управляет собственными подтверждениями. Через MCP уровень `ask` не требует
подтверждения сервера. Для подключения только на чтение выберите профиль с такими правами.
Expand Down
5 changes: 2 additions & 3 deletions content/docs/permissions.es.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,8 @@ Las instrucciones están en la seguridad de [Telegram](./tg/security.md) y [MAX]
## Cambiar temporalmente un servidor MCP

Añade `--permission messages.send=deny` al inicio del servidor para impedir enviar durante
ese proceso. No cambia los ajustes guardados. En `tg` la opción solo endurece: una anulación que aflojaría el nivel
del perfil se rechaza al iniciar, así que para permitir más cambia los permisos del perfil. `max` todavía acepta un
nivel más permisivo para un proceso, como `--permission messages.send=allow`. Por MCP, `ask` no exige un formulario de confirmación en el servidor: la app
ese proceso. No cambia los ajustes guardados. La opción solo endurece: una anulación que aflojaría el nivel
del perfil se rechaza al iniciar, así que para permitir más cambia los permisos del perfil. Por MCP, `ask` no exige un formulario de confirmación en el servidor: la app
controla sus aprobaciones y puede permitir otra llamada sin preguntar. Usa `deny` o `readonly` para impedir cambios. Consulta [la conexión web](./browser-apps.mdx).

## Límites y reglas detalladas
Expand Down
5 changes: 2 additions & 3 deletions content/docs/permissions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,8 @@ for the commands to manage these controls.
## A temporary change for an MCP server

Add `--permission messages.send=deny` to the server startup command to refuse sending for that
process. Saved settings stay the same. In `tg` the flag only tightens: an override that would loosen the profile's
level is refused at startup, so to allow more, change the profile's permissions. `max` still accepts a looser level
for one process, such as `--permission messages.send=allow`. Over MCP, `ask` does not require a confirmation form on the server: the app controls
process. Saved settings stay the same. The flag only tightens: an override that would loosen the profile's
level is refused at startup, so to allow more, change the profile's permissions. Over MCP, `ask` does not require a confirmation form on the server: the app controls
its own approvals and may allow a call without asking again. Use `deny` or `readonly` to refuse changes. [Browser setup](./browser-apps.mdx) explains the full connection.

## Limits and detailed rules
Expand Down
5 changes: 2 additions & 3 deletions content/docs/permissions.ru.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,8 @@ max support config set sends_per_hour 30 --bot
## Временно изменить права MCP-сервера

Добавьте `--permission messages.send=deny` к запуску сервера, чтобы запретить отправку
этому процессу. Сохранённые настройки не меняются. В `tg` флаг только ужесточает: переопределение, которое ослабило
бы уровень профиля, отклоняется при запуске, поэтому, чтобы разрешить больше, измените права профиля. `max` пока
принимает более мягкий уровень для одного процесса, например `--permission messages.send=allow`. Через MCP уровень `ask` не требует формы подтверждения на сервере:
этому процессу. Сохранённые настройки не меняются. Флаг только ужесточает: переопределение, которое ослабило
бы уровень профиля, отклоняется при запуске, поэтому, чтобы разрешить больше, измените права профиля. Через MCP уровень `ask` не требует формы подтверждения на сервере:
приложение управляет своими подтверждениями и может разрешить вызов без нового вопроса.
Чтобы запретить изменения, используйте `deny` или `readonly`.
[Настройка браузера](./browser-apps.mdx) объясняет подключение целиком.
Expand Down
41 changes: 20 additions & 21 deletions content/docs/tasks-architecture.es.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,8 @@ duplicados con un ejemplo resuelto. Para el uso diario, empieza por [Tareas](./t

El diseño viene del plan de tareas aprobado en cli-core
([WireCatLabs/cli-core#1216](https://github.com/WireCatLabs/cli-core/pull/1216)). Todo está ya hecho
en cli-core salvo las partes marcadas como **aún no está hecho**. `tg` y `max` lo tienen todo, salvo que solo `tg` lee la lista de categorías del archivo de ajustes compartido,
abre tareas en un grupo solo por lo que va dirigido al propietario (y cada pregunta en un grupo con la
etiqueta `watch-tasks`), registra responsables en las tareas encontradas en mensajes y compara dos tareas
de un mismo mensaje por sus propias palabras. En `max` la revisión del historial se llama `tasks apply`;
en `tg`, `tasks scan`. `memo` no tiene los cierres de agente por certeza, los seguimientos, la lista de 59 categorías con sus categorías fuera de la lista ni la lectura de mensajes vinculados en la detección de duplicados; tiene categorías (`tasks plan --category`, `category:`), etiquetas y la detección de duplicados en `tasks add`, pero
en cli-core salvo las partes marcadas como **aún no está hecho**. `tg` y `max` lo tienen todo, salvo que `serve` en `max` abre solo las tareas de las reglas de respuesta
automática. `memo` no tiene los cierres de agente por certeza, los seguimientos, la lista de 59 categorías con sus categorías fuera de la lista ni la lectura de mensajes vinculados en la detección de duplicados; tiene categorías (`tasks plan --category`, `category:`), etiquetas y la detección de duplicados en `tasks add`, pero
aún no `tasks categories`, la reserva, `tasks related`, `tasks duplicates` ni `tasks merge`.

## Los datos
Expand Down Expand Up @@ -140,8 +137,8 @@ agente: vio la respuesta del propietario y cierra sin certeza.
## Categorías

La lista de categorías es una para todas las herramientas, no una por perfil ni por aplicación, porque
las reglas se ejecutan en `tg`, `max`, `memo` y `messages sync` y tienen que coincidir. `tg` lee los
cambios del propietario de un archivo de ajustes compartido, `~/.config/WireCat/config.json` (en
las reglas se ejecutan en `tg`, `max`, `memo` y `messages sync` y tienen que coincidir. `tg` y `max` leen
los cambios del propietario de un archivo de ajustes compartido, `~/.config/WireCat/config.json` (en
Windows, `%APPDATA%\WireCat\Config\config.json`), sección `task_categories`. La sección solo guarda
cambios sobre la lista por defecto: `"<name>": "<meaning> | <words>"` añade o sustituye una categoría
(una nueva va antes de `other`), y `null` quita una por defecto, así que las categorías que añada una
Expand Down Expand Up @@ -173,12 +170,11 @@ palabra como `la`, `que` o `para`. Una lista admite hasta 80 categorías.
`tasks agenda category:<name> tag:<name>` filtra la agenda con campos de consulta (MCP `tasks_agenda` los recibe en `query`). Cambiar la lista no cambia la
categoría de las tareas que ya existen.

Antes de que `tg` leyera el archivo, la lista se guardaba en el almacén (`store_settings`). Esa lista
Antes de que las herramientas leyeran el archivo, la lista se guardaba en el almacén (`store_settings`). Esa lista
guardada sigue siendo la base bajo los cambios del archivo hasta que el siguiente `config set` o
`unset` de una categoría la pasa al archivo y la quita del almacén. `max` y `memo` aún no leen el
archivo: usan una lista guardada en el almacén o la lista por defecto de la herramienta que abre el
almacén. Así que, después de que `tg` pase una lista guardada al archivo, `max` y `memo` usan su propia
lista por defecto. `tasks categories` (MCP `tasks_categories`) indica el archivo en `file`. Una categoría que salió de la lista mientras las tareas aún la llevan se nombra:
`unset` de una categoría la pasa al archivo y la quita del almacén. `memo` aún no lee el archivo: usa
una lista guardada en el almacén o su propia lista por defecto. Así que, después de que `tg` o `max`
pase una lista guardada al archivo, `memo` usa su propia lista por defecto. `tasks categories` (MCP `tasks_categories`) indica el archivo en `file`. Una categoría que salió de la lista mientras las tareas aún la llevan se nombra:
`tasks categories` la lista en `unlisted` con el número de tareas abiertas y el total (también MCP
`tasks_categories`), un `config set` o `unset` de `task_categories` termina su nota con las mismas
líneas, y `tasks agenda` nombra las que llevan las tareas abiertas (`unlisted_categories`).
Expand Down Expand Up @@ -251,7 +247,7 @@ La lista por defecto en `tg` y `max`:
## Dónde abren tareas las reglas

Una tarea es lo que el propietario tiene que hacer o lo que alguien le debe, no cada pregunta de cada
chat. En `tg`, las reglas abren tareas según el tipo de chat:
chat. En `tg` y `max`, las reglas abren tareas según el tipo de chat:

| Tipo de chat | Qué abre una tarea |
| --- | --- |
Expand All @@ -261,21 +257,24 @@ chat. En `tg`, las reglas abren tareas según el tipo de chat:
| Canal, Mensajes guardados | nada |

Es una etiqueta de chat normal: `tags add --chat <group> watch-tasks`. En un chat individual o en un
canal no cambia nada. La leen `review`, `serve`, la pasada al sincronizar y `tasks scan`. Una regla
canal no cambia nada. La leen `review`, `serve` en `tg`, la pasada al sincronizar y `tasks scan`. Una regla
cierra una tarea solo en un chat donde puede abrirla, con la respuesta del propietario. En un grupo
vigilado, también la cierra una respuesta directa a la pregunta de cualquier miembro que no sea quien
preguntó, con la resolución «answered in the group»; un mensaje posterior que no responde a la pregunta
no cierra nada. Una pregunta es un mensaje con signo de interrogación o una respuesta a un
mensaje del propietario; una petición o promesa sin él la añade el agente. En `max`, cada pregunta que el propietario no
respondió abre una tarea en cualquier chat.
mensaje del propietario; una petición o promesa sin él la añade el agente. `max` lee los diálogos de MAX como chats
individuales, sus chats de grupo como grupos y sus canales como canales; cualquier otro chat es de un
tipo que el almacén no conoce. En `max`, `serve` solo ejecuta la acción `task` de las reglas de
respuesta automática, así que una pregunta que llega mientras funciona abre su tarea en la siguiente
sincronización o en `review`.

Por qué: en un almacén real, las 300 publicaciones más recientes de un canal habrían abierto 85 tareas
con la regla anterior, que abría una tarea por cualquier pregunta sin respuesta en cualquier chat.
Ahora un canal no abre ninguna.

## Responsables

En `tg`, una tarea encontrada en un mensaje puede indicar quién debe hacerla, con las mismas filas de
En `tg` y `max`, una tarea encontrada en un mensaje puede indicar quién debe hacerla, con las mismas filas de
asignación que las tareas de proyecto (rol `assignee`). Una tarea abierta con responsable es lo que esa
persona le debe al propietario.

Expand Down Expand Up @@ -303,7 +302,7 @@ sincronización. Nada se une por su cuenta salvo una coincidencia segura (paso 2
En `tg` y `max`, la primera pasada de una cuenta además abre como mucho `task_first_pass_per_chat` tareas por
chat, primero las más recientes; por defecto, 0. Una primera sincronización lee el historial, y qué
chats merece la pena convertir en tareas lo decide el propietario. Las tareas retenidas se cuentan en `tasks`
como `held`, en `held_chats` chats, y una nota nombra `tasks scan` (`tasks apply` en `max`). En `tg`,
como `held`, en `held_chats` chats, y una nota nombra `tasks scan`.
`held` no cuenta un chat donde las reglas no abren nada, como un canal. Los cierres siguen funcionando:
una pregunta que el propietario respondió cierra su tarea abierta. El ajuste vale para todo el almacén y se
guarda en `store_settings`, como los ajustes de cierre de agente; es un número entero de 0 a 1000, y
Expand All @@ -319,8 +318,8 @@ almacén local. Sin el `--yes` global (MCP `yes`) no cambia nada y lista, por ch
y cada tarea que se abriría, con su origen, tipo y categoría; con él, las tareas se abren pasando por la
detección de duplicados, como en una sincronización, y las preguntas respondidas se cierran. Un mensaje
que ya tiene tarea no se vuelve a listar. La descripción de la herramienta MCP pide al agente que
pregunte al propietario antes de crear las tareas de un chat. En `max` el comando sigue llamándose
`tasks apply` (MCP `tasks_apply`); `tg` no conserva el nombre antiguo.
pregunte al propietario antes de crear las tareas de un chat. Ni `tg` ni `max` conservan el
nombre antiguo `tasks apply`.

| Comando | Qué hace |
| --- | --- |
Expand Down Expand Up @@ -364,7 +363,7 @@ puede subir la puntuación de un par, nunca bajarla. El importe y la fecha lími
cuentan cuando el texto de la tarea no los tiene, y su «mañana» se cuenta desde cuándo se envió. Los
mensajes se leen del almacén al comparar; una tarea no guarda el texto de los mensajes.

**Dos tareas de un mismo mensaje.** En `tg`, cuando dos tareas tienen el mismo mensaje de origen, como
**Dos tareas de un mismo mensaje.** En `tg` y `max`, cuando dos tareas tienen el mismo mensaje de origen, como
una promesa y una petición que un agente sacó de un mensaje largo, se comparan solo por su título y su
descripción. El mensaje compartido haría que dos trabajos distintos parecieran uno.

Expand Down
Loading
Loading