@leemour/cli-messaging 0.98.0 → 0.99.0

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.
Files changed (116) hide show
  1. package/README.md +6 -6
  2. package/dist/cli/bot/command.d.ts.map +1 -1
  3. package/dist/cli/bot/command.js +8 -2
  4. package/dist/cli/bot/command.js.map +1 -1
  5. package/dist/cli/bot/port.d.ts +95 -2
  6. package/dist/cli/bot/port.d.ts.map +1 -1
  7. package/dist/cli/bot/registry.d.ts +2 -0
  8. package/dist/cli/bot/registry.d.ts.map +1 -1
  9. package/dist/cli/bot/registry.js +2 -0
  10. package/dist/cli/bot/registry.js.map +1 -1
  11. package/dist/cli/bot/setup.d.ts +9 -0
  12. package/dist/cli/bot/setup.d.ts.map +1 -0
  13. package/dist/cli/bot/setup.js +155 -0
  14. package/dist/cli/bot/setup.js.map +1 -0
  15. package/dist/cli/bot/updates.d.ts +23 -0
  16. package/dist/cli/bot/updates.d.ts.map +1 -0
  17. package/dist/cli/bot/updates.js +61 -0
  18. package/dist/cli/bot/updates.js.map +1 -0
  19. package/dist/cli/bot/watch.d.ts +9 -0
  20. package/dist/cli/bot/watch.d.ts.map +1 -0
  21. package/dist/cli/bot/watch.js +197 -0
  22. package/dist/cli/bot/watch.js.map +1 -0
  23. package/dist/cli/index.d.ts +3 -2
  24. package/dist/cli/index.d.ts.map +1 -1
  25. package/dist/cli/index.js +1 -0
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  28. package/dist/cli/messenger/messages-command.js +45 -11
  29. package/dist/cli/messenger/messages-command.js.map +1 -1
  30. package/dist/cli/messenger/models-command.d.ts +1 -1
  31. package/dist/cli/messenger/models-command.d.ts.map +1 -1
  32. package/dist/cli/messenger/models-command.js +64 -3
  33. package/dist/cli/messenger/models-command.js.map +1 -1
  34. package/dist/cli/messenger/observed.d.ts.map +1 -1
  35. package/dist/cli/messenger/observed.js +27 -10
  36. package/dist/cli/messenger/observed.js.map +1 -1
  37. package/dist/cli/messenger/port.d.ts +15 -9
  38. package/dist/cli/messenger/port.d.ts.map +1 -1
  39. package/dist/cli/messenger/port.js.map +1 -1
  40. package/dist/cli/messenger/stored.d.ts.map +1 -1
  41. package/dist/cli/messenger/stored.js +41 -29
  42. package/dist/cli/messenger/stored.js.map +1 -1
  43. package/dist/embeddings/embed.d.ts +22 -0
  44. package/dist/embeddings/embed.d.ts.map +1 -0
  45. package/dist/embeddings/embed.js +69 -0
  46. package/dist/embeddings/embed.js.map +1 -0
  47. package/dist/embeddings/models.d.ts +33 -0
  48. package/dist/embeddings/models.d.ts.map +1 -0
  49. package/dist/embeddings/models.js +85 -0
  50. package/dist/embeddings/models.js.map +1 -0
  51. package/dist/index.d.ts +0 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js.map +1 -1
  54. package/dist/kit/contract.d.ts +4 -2
  55. package/dist/kit/contract.d.ts.map +1 -1
  56. package/dist/kit/contract.js +68 -27
  57. package/dist/kit/contract.js.map +1 -1
  58. package/dist/kit/fake.d.ts +2 -2
  59. package/dist/kit/fake.d.ts.map +1 -1
  60. package/dist/kit/fake.js.map +1 -1
  61. package/dist/mcp/resources.d.ts.map +1 -1
  62. package/dist/mcp/resources.js +2 -1
  63. package/dist/mcp/resources.js.map +1 -1
  64. package/dist/mcp/tools/messages.d.ts.map +1 -1
  65. package/dist/mcp/tools/messages.js +14 -4
  66. package/dist/mcp/tools/messages.js.map +1 -1
  67. package/dist/search/query.d.ts +2 -0
  68. package/dist/search/query.d.ts.map +1 -1
  69. package/dist/search/query.js +10 -7
  70. package/dist/search/query.js.map +1 -1
  71. package/dist/services/archive.d.ts.map +1 -1
  72. package/dist/services/archive.js +3 -1
  73. package/dist/services/archive.js.map +1 -1
  74. package/dist/services/chats.js +2 -2
  75. package/dist/services/chats.js.map +1 -1
  76. package/dist/services/inbox.d.ts +2 -2
  77. package/dist/services/inbox.d.ts.map +1 -1
  78. package/dist/services/inbox.js +12 -1
  79. package/dist/services/inbox.js.map +1 -1
  80. package/dist/services/index.d.ts +2 -2
  81. package/dist/services/index.d.ts.map +1 -1
  82. package/dist/services/index.js +1 -1
  83. package/dist/services/index.js.map +1 -1
  84. package/dist/services/messages.d.ts +42 -4
  85. package/dist/services/messages.d.ts.map +1 -1
  86. package/dist/services/messages.js +175 -15
  87. package/dist/services/messages.js.map +1 -1
  88. package/dist/services/people.d.ts.map +1 -1
  89. package/dist/services/people.js +4 -2
  90. package/dist/services/people.js.map +1 -1
  91. package/dist/speech/install.d.ts +8 -1
  92. package/dist/speech/install.d.ts.map +1 -1
  93. package/dist/speech/install.js +11 -4
  94. package/dist/speech/install.js.map +1 -1
  95. package/dist/store/sqlite/accounts.d.ts +1 -0
  96. package/dist/store/sqlite/accounts.d.ts.map +1 -1
  97. package/dist/store/sqlite/accounts.js +6 -1
  98. package/dist/store/sqlite/accounts.js.map +1 -1
  99. package/dist/store/sqlite/messages.d.ts +1 -1
  100. package/dist/store/sqlite/messages.d.ts.map +1 -1
  101. package/dist/store/sqlite/messages.js +8 -24
  102. package/dist/store/sqlite/messages.js.map +1 -1
  103. package/dist/store/sqlite/words.d.ts +10 -5
  104. package/dist/store/sqlite/words.d.ts.map +1 -1
  105. package/dist/store/sqlite/words.js +26 -8
  106. package/dist/store/sqlite/words.js.map +1 -1
  107. package/dist/store/store.d.ts +6 -1
  108. package/dist/store/store.d.ts.map +1 -1
  109. package/dist/store/store.js +6 -1
  110. package/dist/store/store.js.map +1 -1
  111. package/package.json +3 -1
  112. package/parity.json +605 -3
  113. package/dist/domain/capabilities.d.ts +0 -25
  114. package/dist/domain/capabilities.d.ts.map +0 -1
  115. package/dist/domain/capabilities.js +0 -2
  116. package/dist/domain/capabilities.js.map +0 -1
package/parity.json CHANGED
@@ -20,6 +20,9 @@
20
20
  "--all": {
21
21
  "meaning": "every row, no paging"
22
22
  },
23
+ "--all-bots": {
24
+ "meaning": "also read every other bot's copy on this machine that readOtherBots allows"
25
+ },
23
26
  "--all-can-pin": {
24
27
  "value": "<on|off>",
25
28
  "meaning": "every member may pin messages"
@@ -80,9 +83,17 @@
80
83
  "value": "<time>",
81
84
  "meaning": "read what came before this ISO 8601 time, or 2h / 1d ago; not with --before-id"
82
85
  },
86
+ "--block": {
87
+ "value": "<value>",
88
+ "meaning": "Set to `true` if user should be blocked in chat."
89
+ },
83
90
  "--bot": {
84
91
  "meaning": "the bot section of the profile's settings, rather than the personal account's"
85
92
  },
93
+ "--bots": {
94
+ "value": "<profiles>",
95
+ "meaning": "also read these bots' copies, comma separated — each allowed by readOtherBots"
96
+ },
86
97
  "--can": {
87
98
  "value": "<rights>",
88
99
  "meaning": "what they may do, comma-separated: read, members, admins, info, pin, link, post, edit, delete",
@@ -97,12 +108,17 @@
97
108
  "note": "max's `messages search` takes `<id>` only, since searching never connects to resolve a name; rule 6 says `<chat>` (e8)"
98
109
  },
99
110
  "--check": {
100
- "meaning": "say whether a newer version exists, and install nothing"
111
+ "meaning": "say whether a newer version exists, and install nothing",
112
+ "note": "`bot list --check` names the messenger until both CLIs take the release after 0.98.0, where it says \"the messenger\"; then this note goes"
101
113
  },
102
114
  "--confirm-send": {
103
115
  "meaning": "show the owner every write the MCP server offers, in a form to approve",
104
116
  "note": "max's own `mcp` is worded differently until the permission levels (P7) replace these flags there (e13)"
105
117
  },
118
+ "--context": {
119
+ "value": "<n>",
120
+ "meaning": "messages before and after each hit"
121
+ },
106
122
  "--defaults": {
107
123
  "meaning": "change what every profile gets, rather than this profile"
108
124
  },
@@ -147,9 +163,16 @@
147
163
  "meaning": "jsonl, one message per line, or a markdown transcript",
148
164
  "note": "the shared `store export` takes `jsonl` or `markdown`, max's own takes `jsonl` or `md` (e4)"
149
165
  },
166
+ "--from": {
167
+ "value": "<value>",
168
+ "meaning": "Start time for requested messages - use after instead"
169
+ },
150
170
  "--history": {
151
171
  "meaning": "the people added also see the messages from before they came"
152
172
  },
173
+ "--html": {
174
+ "meaning": "the text is HTML: <b>, <i>, <a href>, <code>"
175
+ },
153
176
  "--idle": {
154
177
  "value": "<duration>",
155
178
  "meaning": "stop after this long with nobody using it — 15m, 1h"
@@ -192,6 +215,10 @@
192
215
  "--mark-read": {
193
216
  "meaning": "also mark the chat read up to the newest message shown; the other person sees it"
194
217
  },
218
+ "--marker": {
219
+ "value": "<value>",
220
+ "meaning": "Marker"
221
+ },
195
222
  "--max-actions": {
196
223
  "value": "<n>",
197
224
  "meaning": "at most this many actions in one run",
@@ -215,6 +242,12 @@
215
242
  "--new": {
216
243
  "meaning": "what arrived since the last check, each message once — for scheduled runs"
217
244
  },
245
+ "--newest": {
246
+ "meaning": "newest first instead of best first"
247
+ },
248
+ "--no-ban": {
249
+ "meaning": "remove without banning; by default a removed person cannot come back by the link"
250
+ },
218
251
  "--no-preview": {
219
252
  "meaning": "no preview card for a link in the text"
220
253
  },
@@ -224,6 +257,10 @@
224
257
  "--no-serve": {
225
258
  "meaning": "do not start it; log in on this command's own connection unless one is running"
226
259
  },
260
+ "--notification": {
261
+ "value": "<text>",
262
+ "meaning": "a note only the person who pressed sees"
263
+ },
227
264
  "--notify": {
228
265
  "meaning": "tell the chat's members about the pin"
229
266
  },
@@ -298,6 +335,9 @@
298
335
  "meaning": "keep this run under `runs` — ids and timings, never message content",
299
336
  "note": "max's own copy is worded differently until T6 moves the command onto the shared one (e13)"
300
337
  },
338
+ "--refresh": {
339
+ "meaning": "read the private chat with them from MAX first — one request"
340
+ },
301
341
  "--regex": {
302
342
  "meaning": "the words are one regular expression, case-insensitive, tested against every stored text"
303
343
  },
@@ -323,6 +363,9 @@
323
363
  "value": "<text>",
324
364
  "meaning": "only chats whose name contains this; at least 3 characters"
325
365
  },
366
+ "--secret-stdin": {
367
+ "meaning": "a secret MAX sends back in X-Max-Bot-Api-Secret — asked for, or read from a pipe"
368
+ },
326
369
  "--send-id": {
327
370
  "value": "<id>",
328
371
  "meaning": "reuse the id of an earlier send whose outcome is unknown; the messenger drops the duplicate"
@@ -349,6 +392,14 @@
349
392
  "value": "<n>",
350
393
  "meaning": "messages to answer per batch, 10–200; 50 by default"
351
394
  },
395
+ "--source": {
396
+ "value": "<messenger>",
397
+ "meaning": "every account of this messenger held in the store, or all of them — the same as in: in the query"
398
+ },
399
+ "--text": {
400
+ "value": "<text>",
401
+ "meaning": "the message's new text; - reads stdin"
402
+ },
352
403
  "--timeout": {
353
404
  "value": "<duration>",
354
405
  "meaning": "give up on the whole command after this — 30s, 2m, 500ms"
@@ -374,6 +425,10 @@
374
425
  "value": "<names>",
375
426
  "meaning": "only events of these types, comma-separated, as the messenger names them"
376
427
  },
428
+ "--types": {
429
+ "value": "<value>",
430
+ "meaning": "Comma separated list of update types your bot want to receive"
431
+ },
377
432
  "--unanswered": {
378
433
  "value": "[duration]",
379
434
  "meaning": "only questions to you or a group's admins that nobody answered, asked at least this long ago — 4h, 1d",
@@ -474,12 +529,530 @@
474
529
  }
475
530
  },
476
531
  "bot": {
532
+ "in": "all"
533
+ },
534
+ "bot api": {
535
+ "in": ["max"],
536
+ "reason": "MAX's own Bot API operations, generated from MAX's schema; a generated `bot api` for Telegram comes after P8"
537
+ },
538
+ "bot auth": {
539
+ "in": "all"
540
+ },
541
+ "bot auth remove": {
542
+ "in": "all"
543
+ },
544
+ "bot auth set": {
545
+ "in": "all"
546
+ },
547
+ "bot auth show": {
548
+ "in": "all"
549
+ },
550
+ "bot callbacks": {
551
+ "in": ["max"],
552
+ "planned": {
553
+ "tg": "P8"
554
+ }
555
+ },
556
+ "bot callbacks answer": {
557
+ "in": ["max"],
558
+ "planned": {
559
+ "tg": "P8"
560
+ },
561
+ "options": {
562
+ "--notification": {
563
+ "in": ["max"],
564
+ "planned": {
565
+ "tg": "P8"
566
+ }
567
+ },
568
+ "--text": {
569
+ "in": ["max"],
570
+ "planned": {
571
+ "tg": "P8"
572
+ }
573
+ }
574
+ }
575
+ },
576
+ "bot chats": {
577
+ "in": "all"
578
+ },
579
+ "bot chats action": {
580
+ "in": "all"
581
+ },
582
+ "bot chats admins": {
583
+ "in": "all"
584
+ },
585
+ "bot chats admins add": {
586
+ "in": "all",
587
+ "options": {
588
+ "--can": "all",
589
+ "--title": "all"
590
+ }
591
+ },
592
+ "bot chats admins list": {
593
+ "in": "all"
594
+ },
595
+ "bot chats admins remove": {
596
+ "in": "all"
597
+ },
598
+ "bot chats check": {
599
+ "in": ["max"],
600
+ "planned": {
601
+ "tg": "P8"
602
+ },
603
+ "options": {
604
+ "--allow-dangerous": {
605
+ "in": ["max"],
606
+ "planned": {
607
+ "tg": "P8"
608
+ }
609
+ },
610
+ "--dry-run": {
611
+ "in": ["max"],
612
+ "planned": {
613
+ "tg": "P8"
614
+ }
615
+ },
616
+ "--max-actions": {
617
+ "in": ["max"],
618
+ "planned": {
619
+ "tg": "P8"
620
+ }
621
+ },
622
+ "--no-ban": {
623
+ "in": ["max"],
624
+ "planned": {
625
+ "tg": "P8"
626
+ }
627
+ },
628
+ "--since": {
629
+ "in": ["max"],
630
+ "planned": {
631
+ "tg": "P8"
632
+ }
633
+ }
634
+ }
635
+ },
636
+ "bot chats leave": {
637
+ "in": "all"
638
+ },
639
+ "bot chats list": {
640
+ "in": "all"
641
+ },
642
+ "bot chats members": {
643
+ "in": "all"
644
+ },
645
+ "bot chats members add": {
646
+ "in": ["max"],
647
+ "reason": "a Telegram bot cannot add people to a chat"
648
+ },
649
+ "bot chats members list": {
650
+ "in": ["max"],
651
+ "options": {
652
+ "--limit": {
653
+ "in": ["max"],
654
+ "reason": "Telegram's Bot API cannot list a chat's members, only its admins and a count"
655
+ },
656
+ "--marker": {
657
+ "in": ["max"],
658
+ "reason": "Telegram's Bot API cannot list a chat's members, only its admins and a count"
659
+ }
660
+ },
661
+ "reason": "Telegram's Bot API cannot list a chat's members, only its admins and a count"
662
+ },
663
+ "bot chats members remove": {
664
+ "in": "all",
665
+ "options": {
666
+ "--block": "all"
667
+ }
668
+ },
669
+ "bot chats rules": {
670
+ "in": ["max"],
671
+ "planned": {
672
+ "tg": "P8"
673
+ }
674
+ },
675
+ "bot chats rules set": {
676
+ "in": ["max"],
677
+ "planned": {
678
+ "tg": "P8"
679
+ }
680
+ },
681
+ "bot chats rules show": {
682
+ "in": ["max"],
683
+ "planned": {
684
+ "tg": "P8"
685
+ }
686
+ },
687
+ "bot chats rules unset": {
688
+ "in": ["max"],
689
+ "planned": {
690
+ "tg": "P8"
691
+ }
692
+ },
693
+ "bot chats show": {
694
+ "in": "all"
695
+ },
696
+ "bot commands": {
697
+ "in": ["max"],
698
+ "planned": {
699
+ "tg": "P8"
700
+ }
701
+ },
702
+ "bot commands clear": {
703
+ "in": ["max"],
704
+ "planned": {
705
+ "tg": "P8"
706
+ }
707
+ },
708
+ "bot commands list": {
709
+ "in": ["max"],
710
+ "planned": {
711
+ "tg": "P8"
712
+ }
713
+ },
714
+ "bot commands set": {
715
+ "in": ["max"],
716
+ "planned": {
717
+ "tg": "P8"
718
+ }
719
+ },
720
+ "bot comments": {
721
+ "in": ["max"],
722
+ "reason": "a Telegram channel's comments are messages in a separate discussion group, reached by ids only an update gives"
723
+ },
724
+ "bot list": {
725
+ "in": "all",
726
+ "options": {
727
+ "--check": "all"
728
+ }
729
+ },
730
+ "bot mcp": {
731
+ "in": ["max"],
732
+ "planned": {
733
+ "tg": "P8"
734
+ },
735
+ "options": {
736
+ "--allow-delete": {
737
+ "in": ["max"],
738
+ "planned": {
739
+ "tg": "P8"
740
+ }
741
+ },
742
+ "--allow-moderate": {
743
+ "in": ["max"],
744
+ "planned": {
745
+ "tg": "P8"
746
+ }
747
+ },
748
+ "--allow-send": {
749
+ "in": ["max"],
750
+ "planned": {
751
+ "tg": "P8"
752
+ }
753
+ },
754
+ "--confirm-send": {
755
+ "in": ["max"],
756
+ "planned": {
757
+ "tg": "P8"
758
+ }
759
+ }
760
+ }
761
+ },
762
+ "bot mcp config": {
763
+ "in": ["max"],
764
+ "planned": {
765
+ "tg": "P8"
766
+ },
767
+ "options": {
768
+ "--allow-delete": {
769
+ "in": ["max"],
770
+ "planned": {
771
+ "tg": "P8"
772
+ }
773
+ },
774
+ "--allow-moderate": {
775
+ "in": ["max"],
776
+ "planned": {
777
+ "tg": "P8"
778
+ }
779
+ },
780
+ "--allow-send": {
781
+ "in": ["max"],
782
+ "planned": {
783
+ "tg": "P8"
784
+ }
785
+ },
786
+ "--confirm-send": {
787
+ "in": ["max"],
788
+ "planned": {
789
+ "tg": "P8"
790
+ }
791
+ }
792
+ }
793
+ },
794
+ "bot me": {
795
+ "in": ["max"],
796
+ "planned": {
797
+ "tg": "P8"
798
+ }
799
+ },
800
+ "bot messages": {
801
+ "in": "all"
802
+ },
803
+ "bot messages between": {
804
+ "in": ["max"],
805
+ "planned": {
806
+ "tg": "P8"
807
+ },
808
+ "options": {
809
+ "--all-bots": {
810
+ "in": ["max"],
811
+ "planned": {
812
+ "tg": "P8"
813
+ }
814
+ },
815
+ "--bots": {
816
+ "in": ["max"],
817
+ "planned": {
818
+ "tg": "P8"
819
+ }
820
+ },
821
+ "--limit": {
822
+ "in": ["max"],
823
+ "planned": {
824
+ "tg": "P8"
825
+ }
826
+ }
827
+ }
828
+ },
829
+ "bot messages delete": {
830
+ "in": "all",
831
+ "options": {
832
+ "--allow-dangerous": "all"
833
+ }
834
+ },
835
+ "bot messages edit": {
836
+ "in": "all",
837
+ "options": {
838
+ "--html": "all",
839
+ "--md": "all"
840
+ }
841
+ },
842
+ "bot messages list": {
843
+ "in": "all",
844
+ "options": {
845
+ "--limit": "all"
846
+ }
847
+ },
848
+ "bot messages pin": {
849
+ "in": "all",
850
+ "options": {
851
+ "--notify": "all"
852
+ }
853
+ },
854
+ "bot messages search": {
855
+ "in": ["max"],
856
+ "planned": {
857
+ "tg": "P8"
858
+ },
859
+ "options": {
860
+ "--all-bots": {
861
+ "in": ["max"],
862
+ "planned": {
863
+ "tg": "P8"
864
+ }
865
+ },
866
+ "--bots": {
867
+ "in": ["max"],
868
+ "planned": {
869
+ "tg": "P8"
870
+ }
871
+ },
872
+ "--from": {
873
+ "in": ["max"],
874
+ "planned": {
875
+ "tg": "P8"
876
+ }
877
+ },
878
+ "--limit": {
879
+ "in": ["max"],
880
+ "planned": {
881
+ "tg": "P8"
882
+ }
883
+ }
884
+ }
885
+ },
886
+ "bot messages send": {
887
+ "in": "all",
888
+ "options": {
889
+ "--allow-any-file": "all",
890
+ "--as-file": "all",
891
+ "--file": "all",
892
+ "--html": "all",
893
+ "--md": "all",
894
+ "--photo": "all",
895
+ "--reply-to": "all",
896
+ "--silent": "all",
897
+ "--voice": "all"
898
+ }
899
+ },
900
+ "bot messages show": {
901
+ "in": "all"
902
+ },
903
+ "bot messages unpin": {
904
+ "in": "all"
905
+ },
906
+ "bot people": {
907
+ "in": ["max"],
908
+ "planned": {
909
+ "tg": "P8"
910
+ }
911
+ },
912
+ "bot people show": {
913
+ "in": ["max"],
914
+ "planned": {
915
+ "tg": "P8"
916
+ },
917
+ "options": {
918
+ "--all-bots": {
919
+ "in": ["max"],
920
+ "planned": {
921
+ "tg": "P8"
922
+ }
923
+ },
924
+ "--bots": {
925
+ "in": ["max"],
926
+ "planned": {
927
+ "tg": "P8"
928
+ }
929
+ },
930
+ "--limit": {
931
+ "in": ["max"],
932
+ "planned": {
933
+ "tg": "P8"
934
+ }
935
+ },
936
+ "--refresh": {
937
+ "in": ["max"],
938
+ "planned": {
939
+ "tg": "P8"
940
+ }
941
+ }
942
+ }
943
+ },
944
+ "bot recipients": {
945
+ "in": "all"
946
+ },
947
+ "bot recipients add": {
948
+ "in": "all"
949
+ },
950
+ "bot recipients clear": {
951
+ "in": "all"
952
+ },
953
+ "bot recipients list": {
954
+ "in": "all"
955
+ },
956
+ "bot recipients remove": {
957
+ "in": "all"
958
+ },
959
+ "bot sends": {
960
+ "in": "all"
961
+ },
962
+ "bot sends list": {
963
+ "in": "all"
964
+ },
965
+ "bot updates": {
477
966
  "in": [],
478
967
  "planned": {
479
- "max": "P8",
968
+ "max": "P8 B4: becomes bot watch",
969
+ "tg": "P8"
970
+ }
971
+ },
972
+ "bot updates watch": {
973
+ "in": [],
974
+ "planned": {
975
+ "max": "P8 B4: becomes bot watch",
480
976
  "tg": "P8"
481
977
  },
482
- "subtree": true
978
+ "options": {
979
+ "--types": {
980
+ "in": [],
981
+ "planned": {
982
+ "max": "P8 B4: becomes bot watch",
983
+ "tg": "P8"
984
+ }
985
+ }
986
+ }
987
+ },
988
+ "bot uploads": {
989
+ "in": ["max"],
990
+ "reason": "Telegram has no upload-only step: a file goes up with the message that carries it"
991
+ },
992
+ "bot watch": {
993
+ "in": [],
994
+ "planned": {
995
+ "max": "P8 B4: max's bot watch comes with its move to the shared one",
996
+ "tg": "P8"
997
+ },
998
+ "options": {
999
+ "--events": {
1000
+ "in": [],
1001
+ "planned": {
1002
+ "max": "P8 B4: max's bot watch comes with its move to the shared one",
1003
+ "tg": "P8"
1004
+ }
1005
+ },
1006
+ "--types": {
1007
+ "in": [],
1008
+ "planned": {
1009
+ "max": "P8 B4: max's bot watch comes with its move to the shared one",
1010
+ "tg": "P8"
1011
+ }
1012
+ }
1013
+ }
1014
+ },
1015
+ "bot webhooks": {
1016
+ "in": ["max"],
1017
+ "planned": {
1018
+ "tg": "P8"
1019
+ }
1020
+ },
1021
+ "bot webhooks delete": {
1022
+ "in": ["max"],
1023
+ "planned": {
1024
+ "tg": "P8"
1025
+ }
1026
+ },
1027
+ "bot webhooks list": {
1028
+ "in": ["max"],
1029
+ "planned": {
1030
+ "tg": "P8"
1031
+ }
1032
+ },
1033
+ "bot webhooks set": {
1034
+ "in": ["max"],
1035
+ "planned": {
1036
+ "tg": "P8"
1037
+ },
1038
+ "options": {
1039
+ "--add": {
1040
+ "in": ["max"],
1041
+ "reason": "a Telegram bot holds one webhook address"
1042
+ },
1043
+ "--secret-stdin": {
1044
+ "in": ["max"],
1045
+ "planned": {
1046
+ "tg": "P8"
1047
+ }
1048
+ },
1049
+ "--types": {
1050
+ "in": ["max"],
1051
+ "planned": {
1052
+ "tg": "P8"
1053
+ }
1054
+ }
1055
+ }
483
1056
  },
484
1057
  "cache": {
485
1058
  "in": ["max"],
@@ -1080,13 +1653,34 @@
1080
1653
  "in": "all",
1081
1654
  "options": {
1082
1655
  "--chat": "all",
1656
+ "--context": {
1657
+ "in": [],
1658
+ "planned": {
1659
+ "max": "each CLI's cli-messaging bump with phase 2",
1660
+ "tg": "each CLI's cli-messaging bump with phase 2"
1661
+ }
1662
+ },
1083
1663
  "--limit": "all",
1664
+ "--newest": {
1665
+ "in": [],
1666
+ "planned": {
1667
+ "max": "each CLI's cli-messaging bump with phase 2",
1668
+ "tg": "each CLI's cli-messaging bump with phase 2"
1669
+ }
1670
+ },
1084
1671
  "--regex": {
1085
1672
  "in": [],
1086
1673
  "planned": {
1087
1674
  "max": "T6",
1088
1675
  "tg": "T6"
1089
1676
  }
1677
+ },
1678
+ "--source": {
1679
+ "in": [],
1680
+ "planned": {
1681
+ "max": "each CLI's cli-messaging bump with phase 2",
1682
+ "tg": "each CLI's cli-messaging bump with phase 2"
1683
+ }
1090
1684
  }
1091
1685
  }
1092
1686
  },
@@ -1134,6 +1728,14 @@
1134
1728
  "models audio list": {
1135
1729
  "in": "all"
1136
1730
  },
1731
+ "models text": {
1732
+ "in": [],
1733
+ "planned": {
1734
+ "max": "storage phase 5: the cli-messaging bump after it ships",
1735
+ "tg": "storage phase 5: the cli-messaging bump after it ships"
1736
+ },
1737
+ "subtree": true
1738
+ },
1137
1739
  "polls": {
1138
1740
  "in": "all"
1139
1741
  },