@iola_adm/iola-cli 0.2.34 → 0.2.36
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.
- package/README.md +3 -2
- package/package.json +1 -1
- package/skills/yandex-services/SKILL.md +36 -4
- package/src/cli.js +1238 -40
- package/wiki/Daemon-RPC-/320/270-cron.md +47 -29
- package/wiki/Skills-/320/270-toolsets.md +20 -3
- package/wiki/Yandex-Connector.md +58 -3
- package/wiki//320/241/320/272/320/270/320/273/320/273/321/213-/320/264/320/273/321/217-/320/266/320/270/321/202/320/265/320/273/320/265/320/271.md +84 -2
|
@@ -1,35 +1,53 @@
|
|
|
1
|
-
# Daemon, RPC и cron
|
|
2
|
-
|
|
3
|
-
Локальный daemon запускает HTTP/RPC endpoint на компьютере пользователя:
|
|
4
|
-
|
|
5
|
-
```bash
|
|
6
|
-
iola daemon status
|
|
7
|
-
iola daemon start
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
По умолчанию endpoint:
|
|
11
|
-
|
|
12
|
-
```text
|
|
13
|
-
http://127.0.0.1:18790
|
|
14
|
-
```
|
|
1
|
+
# Daemon, RPC и cron
|
|
2
|
+
|
|
3
|
+
Локальный daemon запускает HTTP/RPC endpoint на компьютере пользователя:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
iola daemon status
|
|
7
|
+
iola daemon start
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
По умолчанию endpoint:
|
|
11
|
+
|
|
12
|
+
```text
|
|
13
|
+
http://127.0.0.1:18790
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
RPC-команды:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
iola rpc call status
|
|
20
|
+
iola rpc call search --query Петрова --dataset schools
|
|
21
|
+
iola rpc call card --query "школа 29"
|
|
22
|
+
iola rpc call quality
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Cron-задачи:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
iola cron add "каждый день 09:00 -- quality"
|
|
29
|
+
iola cron list
|
|
30
|
+
iola cron run 1
|
|
31
|
+
iola cron tick
|
|
32
|
+
iola cron delete 1
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`cron tick` проверяет задачи, которые пора выполнить. Его можно запускать вручную, через Windows Task Scheduler или другой планировщик.
|
|
15
36
|
|
|
16
|
-
|
|
37
|
+
## Готовые cron-сценарии Яндекса
|
|
17
38
|
|
|
18
39
|
```bash
|
|
19
|
-
iola
|
|
20
|
-
iola
|
|
21
|
-
iola
|
|
22
|
-
iola
|
|
40
|
+
iola yandex mail-watch on --minutes 5
|
|
41
|
+
iola yandex daily-digest on --time 09:00
|
|
42
|
+
iola yandex calendar-reminders on --minutes 15
|
|
43
|
+
iola yandex contacts-maintenance on --days 7 --backup
|
|
44
|
+
iola yandex disk-maintenance on --days 7
|
|
23
45
|
```
|
|
24
46
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
iola cron run 1
|
|
31
|
-
iola cron tick
|
|
32
|
-
iola cron delete 1
|
|
33
|
-
```
|
|
47
|
+
- `mail-watch` проверяет новые письма.
|
|
48
|
+
- `daily-digest` собирает сводку по почте, календарю и контактам, сохраняет Markdown-документ на Яндекс Диск.
|
|
49
|
+
- `calendar-reminders` проверяет ближайшие события календаря.
|
|
50
|
+
- `contacts-maintenance` ищет неполные карточки и дубликаты, опционально делает backup.
|
|
51
|
+
- `disk-maintenance` проверяет место, документы и публичные ссылки в папке `/IOLA`, сохраняет отчет на Диск.
|
|
34
52
|
|
|
35
|
-
|
|
53
|
+
Чтобы расписания выполнялись автоматически, должен регулярно запускаться `iola cron tick`: вручную, через daemon или системный планировщик.
|
|
@@ -53,12 +53,27 @@ Skill - это инструкция для агента, а не произво
|
|
|
53
53
|
|
|
54
54
|
- `user_skill_list` - список пользовательских skills;
|
|
55
55
|
- `user_skill_create` - создать skill;
|
|
56
|
+
- `user_skill_update` - обновить существующий skill;
|
|
57
|
+
- `user_skill_templates` - показать готовые шаблоны;
|
|
58
|
+
- `user_skill_preview` - показать будущий `SKILL.md` до записи;
|
|
59
|
+
- `user_skill_validate` - проверить структуру и безопасность skill;
|
|
56
60
|
- `user_skill_enable` - включить skill;
|
|
57
61
|
- `user_skill_disable` - выключить skill;
|
|
58
62
|
- `user_skill_delete` - удалить пользовательский skill.
|
|
59
63
|
|
|
60
64
|
При создании через AI пользователь может написать обычным языком: `создай скилл, который при просьбе "сводка почты" берет непрочитанные письма и группирует по отправителям`. CLI создаст локальный `SKILL.md` и включит его.
|
|
61
65
|
|
|
66
|
+
Команды:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
iola skills templates
|
|
70
|
+
iola skills preview family --template family-calendar
|
|
71
|
+
iola skills create family --template family-calendar --enable
|
|
72
|
+
iola skills validate family
|
|
73
|
+
iola skills update family --instructions "..."
|
|
74
|
+
iola skills delete family --yes
|
|
75
|
+
```
|
|
76
|
+
|
|
62
77
|
Для опасных действий внутри пользовательского skill нужно явное подтверждение пользователя: отправка писем, удаление данных, публикация ссылок, запись файлов и изменение внешних сервисов.
|
|
63
78
|
|
|
64
79
|
## Yandex toolset
|
|
@@ -68,8 +83,10 @@ Toolset `yandex` включает локальные tools для пользов
|
|
|
68
83
|
- Yandex ID: профиль, логин, email;
|
|
69
84
|
- Яндекс Диск: список, создание папок, поиск, сохранение текста, загрузка, скачивание, публичные ссылки;
|
|
70
85
|
- Яндекс Почта: статус, список писем, поиск, чтение, отправка;
|
|
71
|
-
- Яндекс Календарь:
|
|
86
|
+
- Яндекс Календарь: календари, список, поиск, создание, перенос, редактирование, повторы, напоминания, удаление событий;
|
|
87
|
+
- Яндекс Документы / 360: работа через Яндекс Диск - список, поиск, создание текстовых документов, чтение, ссылка/QR, переименование, удаление;
|
|
72
88
|
- Яндекс Контакты: статус, список, поиск, карточка, создание, обновление, удаление, импорт/экспорт, дубликаты, неполные карточки, backup на Диск, дни рождения в календарь, письмо/ссылка/встреча по контакту;
|
|
73
|
-
-
|
|
89
|
+
- Комбинированные сценарии: пакет по письму, полный пакет по контакту, ежедневный дайджест, календарные напоминания, аудит Яндекс Диска;
|
|
90
|
+
- Телемост: попытка прямого API и fallback через календарное событие, если API недоступен аккаунту.
|
|
74
91
|
|
|
75
|
-
Опасные действия ограничены: отправка письма, удаление файлов, публикация
|
|
92
|
+
Опасные действия ограничены: отправка письма, удаление файлов, публикация ссылок, создание/изменение документов и создание/изменение/удаление событий требуют явного подтверждения в tool-вызове. Токены хранятся локально в `~/.iola/secrets.json`.
|
package/wiki/Yandex-Connector.md
CHANGED
|
@@ -143,8 +143,24 @@ QR-код:
|
|
|
143
143
|
- `yandex_mail_read` - прочитать письмо по UID;
|
|
144
144
|
- `yandex_mail_send` - отправить письмо;
|
|
145
145
|
- `yandex_calendar_status` - проверить доступ к Календарю;
|
|
146
|
-
- `
|
|
147
|
-
- `
|
|
146
|
+
- `yandex_calendar_calendars` - показать доступные календари;
|
|
147
|
+
- `yandex_calendar_list` - показать ближайшие события;
|
|
148
|
+
- `yandex_calendar_search` - найти событие;
|
|
149
|
+
- `yandex_calendar_get` - открыть карточку события;
|
|
150
|
+
- `yandex_calendar_create_event` - создать событие с участниками, местом и напоминаниями;
|
|
151
|
+
- `yandex_calendar_create_recurring_event` - создать повторяющееся событие;
|
|
152
|
+
- `yandex_calendar_update` - изменить событие;
|
|
153
|
+
- `yandex_calendar_move` - перенести событие;
|
|
154
|
+
- `yandex_calendar_add_reminder` - добавить напоминание;
|
|
155
|
+
- `yandex_calendar_delete` - удалить событие;
|
|
156
|
+
- `yandex_docs_status` - проверить Документы / 360 через Диск;
|
|
157
|
+
- `yandex_docs_list` - показать документы;
|
|
158
|
+
- `yandex_docs_find` - найти документ;
|
|
159
|
+
- `yandex_docs_create_text` - создать текстовый документ на Яндекс Диске;
|
|
160
|
+
- `yandex_docs_read` - прочитать небольшой текстовый документ;
|
|
161
|
+
- `yandex_docs_share` - создать ссылку и QR-код на документ;
|
|
162
|
+
- `yandex_docs_rename` - переименовать документ;
|
|
163
|
+
- `yandex_docs_delete` - удалить документ;
|
|
148
164
|
- `yandex_contacts_status` - проверить доступ к Контактам;
|
|
149
165
|
- `yandex_contacts_list` - показать контакты;
|
|
150
166
|
- `yandex_contacts_search` - найти контакт по имени, email, телефону, организации, адресу или заметке;
|
|
@@ -166,7 +182,20 @@ QR-код:
|
|
|
166
182
|
- `yandex_contact_create_calendar_event` - создать встречу с контактом;
|
|
167
183
|
- `yandex_contact_create_telemost_event` - создать событие для Телемоста с контактом;
|
|
168
184
|
- `yandex_contact_from_public_entity` - создать контакт из открытого городского слоя;
|
|
169
|
-
- `
|
|
185
|
+
- `yandex_contact_full_pack` - собрать полный пакет по контакту: папка на Диске, заметка, публичная ссылка/QR, событие календаря и опциональное письмо;
|
|
186
|
+
- `yandex_mail_meeting_pack` - собрать пакет по письму: сохранить письмо на Диск, создать ссылку/QR, поставить встречу в календарь и опционально отправить ссылку отправителю;
|
|
187
|
+
- `yandex_telemost_status` - проверить режим Телемоста;
|
|
188
|
+
- `yandex_telemost_create_event` - создать встречу: прямой Telemost API используется только если он доступен аккаунту; иначе создается календарное событие без выдуманной ссылки.
|
|
189
|
+
|
|
190
|
+
Комбинированные сценарии:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
iola ask "по последнему письму создай встречу завтра в 14:00, сохрани письмо на диск и пришли отправителю ссылку"
|
|
194
|
+
iola ask "собери полный пакет по контакту Петров: папка на диске, заметка, встреча завтра в 12 и ссылка с QR"
|
|
195
|
+
iola ask "создай папку для школы 2 на яндекс диске и отправь ссылку контакту Иванов"
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
CLI использует уже подключенные сервисы: Почту, Диск, Контакты и Календарь. Если не хватает email, найдено несколько контактов или неясна дата встречи, CLI должен уточнить, а не выбирать случайно.
|
|
170
199
|
|
|
171
200
|
Регулярная проверка контактов:
|
|
172
201
|
|
|
@@ -180,6 +209,32 @@ iola yandex contacts-maintenance off
|
|
|
180
209
|
|
|
181
210
|
Проверка ищет дубликаты и неполные карточки. Если включен `--backup`, при tick сохраняется CSV-копия контактов на Яндекс Диск.
|
|
182
211
|
|
|
212
|
+
Регулярная автоматизация:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
iola yandex daily-digest on --time 09:00
|
|
216
|
+
iola yandex daily-digest on --time 09:00 --email
|
|
217
|
+
iola yandex daily-digest status
|
|
218
|
+
iola yandex daily-digest tick
|
|
219
|
+
iola yandex daily-digest off
|
|
220
|
+
|
|
221
|
+
iola yandex calendar-reminders on --minutes 15
|
|
222
|
+
iola yandex calendar-reminders status
|
|
223
|
+
iola yandex calendar-reminders tick
|
|
224
|
+
iola yandex calendar-reminders off
|
|
225
|
+
|
|
226
|
+
iola yandex disk-maintenance on --days 7
|
|
227
|
+
iola yandex disk-maintenance status
|
|
228
|
+
iola yandex disk-maintenance tick
|
|
229
|
+
iola yandex disk-maintenance off
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
`daily-digest` собирает короткую сводку: непрочитанные письма, события ближайших суток и неполные контакты. По умолчанию сводка сохраняется документом в `/IOLA/docs`; с `--email` дополнительно отправляется на email подключенного Yandex ID.
|
|
233
|
+
|
|
234
|
+
`calendar-reminders` проверяет события в ближайшие минуты и показывает напоминания без повторов по уже увиденным событиям.
|
|
235
|
+
|
|
236
|
+
`disk-maintenance` проверяет место на Диске, публичные ссылки и состояние папки `/IOLA`, затем сохраняет отчет в `/IOLA/docs`.
|
|
237
|
+
|
|
183
238
|
Включение сервиса в `/yandex` разрешает CLI использовать соответствующую категорию. Отправка письма, удаление файлов, публикация ссылок и создание событий требуют явного намерения пользователя и подтверждения в tool-вызове.
|
|
184
239
|
|
|
185
240
|
## Иконка приложения
|
|
@@ -233,7 +233,47 @@ iola geo services "Йошкар-Ола, улица Петрова, 15"
|
|
|
233
233
|
Работать с Яндекс Календарем:
|
|
234
234
|
|
|
235
235
|
- показать ближайшие события;
|
|
236
|
-
-
|
|
236
|
+
- показать список календарей;
|
|
237
|
+
- найти событие по названию, месту, описанию или дате;
|
|
238
|
+
- создать событие только после явного подтверждения;
|
|
239
|
+
- создать повторяющееся событие;
|
|
240
|
+
- перенести встречу на новую дату или время;
|
|
241
|
+
- изменить название, описание или место события;
|
|
242
|
+
- добавить напоминание;
|
|
243
|
+
- удалить событие по явной просьбе.
|
|
244
|
+
|
|
245
|
+
Примеры:
|
|
246
|
+
|
|
247
|
+
- `покажи яндекс календарь`;
|
|
248
|
+
- `найди событие собрание в яндекс календаре`;
|
|
249
|
+
- `создай событие название: прием врача завтра в 10:00`;
|
|
250
|
+
- `перенеси встречу прием врача на послезавтра в 11:00`;
|
|
251
|
+
- `добавь напоминание 20 минут к событию прием врача`;
|
|
252
|
+
- `удали событие прием врача`.
|
|
253
|
+
|
|
254
|
+
### yandex-docs
|
|
255
|
+
|
|
256
|
+
Работать с документами Яндекс 360 через Яндекс Диск:
|
|
257
|
+
|
|
258
|
+
- показать документы в папке `/IOLA/docs`;
|
|
259
|
+
- найти документ по названию;
|
|
260
|
+
- создать текстовый, Markdown или HTML-документ;
|
|
261
|
+
- прочитать небольшой текстовый документ;
|
|
262
|
+
- создать публичную ссылку и QR-код на документ;
|
|
263
|
+
- переименовать документ;
|
|
264
|
+
- удалить документ по явной просьбе.
|
|
265
|
+
|
|
266
|
+
Важно: CLI работает с документами как с файлами на Яндекс Диске. Он не подменяет веб-редактор Яндекс Документов и не обещает создание "нативного" документа, если Яндекс не дает стабильный API для этого действия.
|
|
267
|
+
|
|
268
|
+
Примеры:
|
|
269
|
+
|
|
270
|
+
- `покажи документы на Яндекс Диске`;
|
|
271
|
+
- `найди документ справка на Яндекс Диске`;
|
|
272
|
+
- `создай документ яндекс 360 название: заметка текст: купить лекарства`;
|
|
273
|
+
- `прочитай документ /IOLA/docs/заметка.md`;
|
|
274
|
+
- `сделай ссылку на документ /IOLA/docs/заметка.md`;
|
|
275
|
+
- `переименуй документ /IOLA/docs/заметка.md в лекарства.md`;
|
|
276
|
+
- `удали документ /IOLA/docs/лекарства.md`.
|
|
237
277
|
|
|
238
278
|
### yandex-contacts
|
|
239
279
|
|
|
@@ -282,6 +322,7 @@ iola geo services "Йошкар-Ола, улица Петрова, 15"
|
|
|
282
322
|
- создать папку контакта на Яндекс Диске и сохранить туда `contact.vcf` и `README.txt`;
|
|
283
323
|
- создать встречу с контактом в Яндекс Календаре;
|
|
284
324
|
- создать календарное событие для Телемоста с контактом;
|
|
325
|
+
- создать полный пакет контакта: папка на Диске, Markdown-документ, публичная ссылка, QR-код и встреча в календаре;
|
|
285
326
|
- создать контакт из открытого городского слоя, если у школы или детского сада есть публичный email или телефон.
|
|
286
327
|
|
|
287
328
|
Примеры:
|
|
@@ -289,12 +330,53 @@ iola geo services "Йошкар-Ола, улица Петрова, 15"
|
|
|
289
330
|
- `отправь Петрову письмо текст: встреча завтра в 14:00`;
|
|
290
331
|
- `отправь Иванову ссылку и QR-код на /IOLA/report.pdf`;
|
|
291
332
|
- `создай папку на Яндекс Диске для контакта Иван Петров`;
|
|
333
|
+
- `подготовь полный пакет по контакту Иван Петров завтра в 15:00`;
|
|
292
334
|
- `создай встречу с Иваном Петровым завтра в 15:00`;
|
|
293
335
|
- `создай контакт из школы № 7`.
|
|
294
336
|
|
|
337
|
+
### yandex-mail-combined
|
|
338
|
+
|
|
339
|
+
Комбинированные сценарии по письмам:
|
|
340
|
+
|
|
341
|
+
- сохранить письмо на Яндекс Диск в Markdown;
|
|
342
|
+
- создать публичную ссылку и QR-код на сохраненное письмо;
|
|
343
|
+
- создать событие календаря по письму;
|
|
344
|
+
- пригласить отправителя письма как участника, если в отправителе есть email;
|
|
345
|
+
- при явной просьбе отправить отправителю ссылку и QR-код.
|
|
346
|
+
|
|
347
|
+
Примеры:
|
|
348
|
+
|
|
349
|
+
- `по письму #2382 создай пакет: сохрани на диск, сделай ссылку и событие`;
|
|
350
|
+
- `по самому свежему письму подготовь встречу завтра в 14:00`;
|
|
351
|
+
- `сохрани письмо #2382 на Диск и создай событие`.
|
|
352
|
+
|
|
295
353
|
### yandex-telemost
|
|
296
354
|
|
|
297
|
-
Подготовить встречу через
|
|
355
|
+
Подготовить встречу через Телемост:
|
|
356
|
+
|
|
357
|
+
- проверить режим Телемоста;
|
|
358
|
+
- попробовать создать ссылку через прямой API, если он доступен текущему аккаунту;
|
|
359
|
+
- если прямой API недоступен, создать календарное событие и честно сообщить, что ссылка Телемоста не была получена через API.
|
|
360
|
+
|
|
361
|
+
CLI не должен сам нажимать финальные кнопки в веб-интерфейсе Яндекса без явного действия пользователя и не должен выдумывать ссылку Телемоста.
|
|
362
|
+
|
|
363
|
+
### yandex-automation
|
|
364
|
+
|
|
365
|
+
Регулярные сценарии через локальный cron:
|
|
366
|
+
|
|
367
|
+
- автоопрос новых писем;
|
|
368
|
+
- ежедневный дайджест: непрочитанные письма, события на 24 часа, неполные контакты, сохранение отчета на Диск;
|
|
369
|
+
- календарные напоминания: проверка ближайших событий;
|
|
370
|
+
- регулярная проверка контактов: неполные карточки, дубликаты, backup;
|
|
371
|
+
- аудит Яндекс Диска: место, корзина, документы и публичные ссылки в `/IOLA`.
|
|
372
|
+
|
|
373
|
+
Команды:
|
|
374
|
+
|
|
375
|
+
- `iola yandex mail-watch on --minutes 5`;
|
|
376
|
+
- `iola yandex daily-digest on --time 09:00`;
|
|
377
|
+
- `iola yandex calendar-reminders on --minutes 15`;
|
|
378
|
+
- `iola yandex contacts-maintenance on --days 7 --backup`;
|
|
379
|
+
- `iola yandex disk-maintenance on --days 7`.
|
|
298
380
|
|
|
299
381
|
## Yandex Connector backlog
|
|
300
382
|
|