@wirecat/cli-base 0.24.0 → 0.26.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 (104) hide show
  1. package/README.md +27 -4
  2. package/THIRD_PARTY_NOTICES +760 -0
  3. package/dist/commands/document.d.ts +10 -10
  4. package/dist/commands/document.d.ts.map +1 -1
  5. package/dist/commands/document.js +27 -9
  6. package/dist/commands/document.js.map +1 -1
  7. package/dist/commands/index.d.ts +16 -4
  8. package/dist/commands/index.d.ts.map +1 -1
  9. package/dist/commands/index.js +10 -3
  10. package/dist/commands/index.js.map +1 -1
  11. package/dist/completion/index.js +2 -2
  12. package/dist/completion/index.js.map +1 -1
  13. package/dist/deadline.js +1 -1
  14. package/dist/deadline.js.map +1 -1
  15. package/dist/dev/lint.d.ts +10 -2
  16. package/dist/dev/lint.d.ts.map +1 -1
  17. package/dist/dev/lint.js +134 -7
  18. package/dist/dev/lint.js.map +1 -1
  19. package/dist/dev/main.d.ts.map +1 -1
  20. package/dist/dev/main.js +14 -3
  21. package/dist/dev/main.js.map +1 -1
  22. package/dist/errors.d.ts +3 -3
  23. package/dist/errors.d.ts.map +1 -1
  24. package/dist/errors.js.map +1 -1
  25. package/dist/failure.d.ts +3 -3
  26. package/dist/failure.d.ts.map +1 -1
  27. package/dist/failure.js +9 -7
  28. package/dist/failure.js.map +1 -1
  29. package/dist/logging.d.ts +1 -1
  30. package/dist/logging.d.ts.map +1 -1
  31. package/dist/logging.js +5 -3
  32. package/dist/logging.js.map +1 -1
  33. package/dist/output-buffer.js +3 -3
  34. package/dist/output-buffer.js.map +1 -1
  35. package/dist/query/dates.d.ts +15 -0
  36. package/dist/query/dates.d.ts.map +1 -0
  37. package/dist/query/dates.js +104 -0
  38. package/dist/query/dates.js.map +1 -0
  39. package/dist/query/evaluate.d.ts +15 -0
  40. package/dist/query/evaluate.d.ts.map +1 -0
  41. package/dist/query/evaluate.js +70 -0
  42. package/dist/query/evaluate.js.map +1 -0
  43. package/dist/query/fields.d.ts +54 -0
  44. package/dist/query/fields.d.ts.map +1 -0
  45. package/dist/query/fields.js +87 -0
  46. package/dist/query/fields.js.map +1 -0
  47. package/dist/query/help.d.ts +5 -0
  48. package/dist/query/help.d.ts.map +1 -0
  49. package/dist/query/help.js +18 -0
  50. package/dist/query/help.js.map +1 -0
  51. package/dist/query/index.d.ts +13 -0
  52. package/dist/query/index.d.ts.map +1 -0
  53. package/dist/query/index.js +13 -0
  54. package/dist/query/index.js.map +1 -0
  55. package/dist/query/parser.d.ts +9 -0
  56. package/dist/query/parser.d.ts.map +1 -0
  57. package/dist/query/parser.js +303 -0
  58. package/dist/query/parser.js.map +1 -0
  59. package/dist/query/registry.d.ts +23 -0
  60. package/dist/query/registry.d.ts.map +1 -0
  61. package/dist/query/registry.js +77 -0
  62. package/dist/query/registry.js.map +1 -0
  63. package/dist/query/types.d.ts +53 -0
  64. package/dist/query/types.d.ts.map +1 -0
  65. package/dist/query/types.js +44 -0
  66. package/dist/query/types.js.map +1 -0
  67. package/dist/query/validate.d.ts +11 -0
  68. package/dist/query/validate.d.ts.map +1 -0
  69. package/dist/query/validate.js +82 -0
  70. package/dist/query/validate.js.map +1 -0
  71. package/dist/result-fields.js +1 -1
  72. package/dist/result-fields.js.map +1 -1
  73. package/dist/standards/errors.d.ts +3 -3
  74. package/dist/standards/errors.d.ts.map +1 -1
  75. package/dist/standards/errors.js +7 -7
  76. package/dist/standards/errors.js.map +1 -1
  77. package/dist/standards/index.d.ts +2 -2
  78. package/dist/standards/index.d.ts.map +1 -1
  79. package/dist/standards/index.js +2 -2
  80. package/dist/standards/index.js.map +1 -1
  81. package/dist/standards/lint.d.ts +1 -1
  82. package/dist/standards/lint.d.ts.map +1 -1
  83. package/dist/standards/lint.js +31 -1
  84. package/dist/standards/lint.js.map +1 -1
  85. package/dist/standards/log.d.ts +7 -3
  86. package/dist/standards/log.d.ts.map +1 -1
  87. package/dist/standards/log.js +7 -3
  88. package/dist/standards/log.js.map +1 -1
  89. package/dist/standards/output.d.ts +10 -8
  90. package/dist/standards/output.d.ts.map +1 -1
  91. package/dist/standards/output.js +7 -5
  92. package/dist/standards/output.js.map +1 -1
  93. package/dist/standards/registry.d.ts +2 -0
  94. package/dist/standards/registry.d.ts.map +1 -1
  95. package/dist/standards/registry.js +3 -1
  96. package/dist/standards/registry.js.map +1 -1
  97. package/dist/standards/steps.d.ts +1 -1
  98. package/dist/standards/steps.js +2 -2
  99. package/dist/standards/steps.js.map +1 -1
  100. package/dist/standards/vocabulary.d.ts +18 -0
  101. package/dist/standards/vocabulary.d.ts.map +1 -1
  102. package/dist/standards/vocabulary.js +579 -15
  103. package/dist/standards/vocabulary.js.map +1 -1
  104. package/package.json +7 -2
@@ -13,6 +13,22 @@ export const FLAG_TYPES = [
13
13
  "path",
14
14
  "cursor",
15
15
  ];
16
+ /**
17
+ * What a flag does to a command. There is no `filter`: a list filters with its query, so a flag that filters has no
18
+ * role and `option-role` reports it.
19
+ */
20
+ export const FLAG_ROLES = {
21
+ paging: "which part of a long answer: how many, which page, where to continue",
22
+ output: "how the answer is shaped or shown",
23
+ sort: "the order of the answer",
24
+ mode: "how the command runs, not what it reads",
25
+ action: "does something extra besides the answer",
26
+ budget: "how much time or work the command may spend",
27
+ scope: "which accounts, providers or sources are read; never picked for you, so a flag and not a query field",
28
+ target: "which thing or time window the command acts on, when that is not a list's filter",
29
+ value: "sets a field on a write",
30
+ query: "a query in the query language, beside a search's own words",
31
+ };
16
32
  const verbSchema = v.strictObject({ word, meaning: text, replaces: v.optional(v.array(word)) });
17
33
  const nounSchema = v.strictObject({
18
34
  word,
@@ -27,6 +43,7 @@ const flagSchema = v.strictObject({
27
43
  name: v.pipe(v.string(), v.regex(/^--[a-z][a-z0-9]*(-[a-z0-9]+)*$/, "a long flag: --lower-case-words")),
28
44
  value: v.optional(v.pipe(v.string(), v.regex(/^<[a-z][a-z0-9-|]*>$/, "a value name such as <n>"))),
29
45
  type: v.picklist(FLAG_TYPES),
46
+ role: v.picklist(Object.keys(FLAG_ROLES)),
30
47
  meaning: text,
31
48
  unit: v.optional(text),
32
49
  });
@@ -215,28 +232,575 @@ const roots = [
215
232
  ["search", "searches across resources"],
216
233
  ];
217
234
  const flags = [
218
- { name: "--limit", value: "<n>", type: "count", meaning: "how many items", unit: "items" },
219
- { name: "--page", value: "<n>", type: "count", meaning: "which page, from 1, where the source has no cursor" },
235
+ { name: "--limit", value: "<n>", role: "paging", type: "count", meaning: "how many items", unit: "items" },
236
+ {
237
+ name: "--page",
238
+ value: "<n>",
239
+ role: "paging",
240
+ type: "count",
241
+ meaning: "which page, from 1, where the source has no cursor",
242
+ },
220
243
  {
221
244
  name: "--page-size",
222
245
  value: "<n>",
246
+ role: "paging",
223
247
  type: "count",
224
248
  meaning: "how many items one request to the source asks for",
225
249
  unit: "items",
226
250
  },
227
- { name: "--cursor", value: "<cursor>", type: "cursor", meaning: "continue from where the previous page ended" },
228
- { name: "--before-id", value: "<id>", type: "id", meaning: "read what came before this message id" },
229
- { name: "--after-id", value: "<id>", type: "id", meaning: "read what came after this message id" },
230
- { name: "--before-time", value: "<time>", type: "time", meaning: "read what came before this time" },
231
- { name: "--after-time", value: "<time>", type: "time", meaning: "read what came after this time" },
232
- { name: "--since-time", value: "<time>", type: "time", meaning: "only what came since this time" },
233
- { name: "--until-time", value: "<time>", type: "time", meaning: "only what came up to and including this time" },
234
- { name: "--at-time", value: "<time>", type: "time", meaning: "do it at this time" },
235
- { name: "--before-n", value: "<n>", type: "count", meaning: "how many messages before it", unit: "messages" },
236
- { name: "--after-n", value: "<n>", type: "count", meaning: "how many messages after it", unit: "messages" },
237
- { name: "--timeout", value: "<duration>", type: "duration", meaning: "give up after this long" },
238
- { name: "--dry-run", type: "switch", meaning: "judge and plan; do nothing" },
239
- { name: "--debug", type: "switch", meaning: "on failure, show the full error record: cause and stack" },
251
+ {
252
+ name: "--cursor",
253
+ value: "<cursor>",
254
+ role: "paging",
255
+ type: "cursor",
256
+ meaning: "continue from where the previous page ended",
257
+ },
258
+ { name: "--before-id", value: "<id>", role: "paging", type: "id", meaning: "read what came before this message id" },
259
+ { name: "--after-id", value: "<id>", role: "paging", type: "id", meaning: "read what came after this message id" },
260
+ { name: "--before-time", value: "<time>", role: "target", type: "time", meaning: "read what came before this time" },
261
+ { name: "--after-time", value: "<time>", role: "target", type: "time", meaning: "read what came after this time" },
262
+ { name: "--since-time", value: "<time>", role: "target", type: "time", meaning: "only what came since this time" },
263
+ {
264
+ name: "--until-time",
265
+ value: "<time>",
266
+ role: "target",
267
+ type: "time",
268
+ meaning: "only what came up to and including this time",
269
+ },
270
+ { name: "--at-time", value: "<time>", role: "value", type: "time", meaning: "do it at this time" },
271
+ {
272
+ name: "--before-n",
273
+ value: "<n>",
274
+ role: "output",
275
+ type: "count",
276
+ meaning: "how many messages before it",
277
+ unit: "messages",
278
+ },
279
+ {
280
+ name: "--after-n",
281
+ value: "<n>",
282
+ role: "output",
283
+ type: "count",
284
+ meaning: "how many messages after it",
285
+ unit: "messages",
286
+ },
287
+ { name: "--timeout", value: "<duration>", role: "budget", type: "duration", meaning: "give up after this long" },
288
+ {
289
+ name: "--account",
290
+ value: "<account>",
291
+ role: "scope",
292
+ type: "string",
293
+ meaning: "the account to use; never assumed",
294
+ },
295
+ {
296
+ name: "--provider",
297
+ value: "<provider>",
298
+ role: "scope",
299
+ type: "choice",
300
+ meaning: "read every account of this provider",
301
+ },
302
+ {
303
+ name: "--source",
304
+ value: "<accounts>",
305
+ role: "scope",
306
+ type: "list",
307
+ meaning: "what to read: provider:account, a provider, a kind or group:<name>; comma-separated",
308
+ },
309
+ { name: "--dry-run", role: "mode", type: "switch", meaning: "judge and plan; do nothing" },
310
+ {
311
+ name: "--debug",
312
+ role: "output",
313
+ type: "switch",
314
+ meaning: "on failure, show the full error record: cause and stack",
315
+ },
316
+ {
317
+ name: "--agent-json",
318
+ role: "output",
319
+ type: "switch",
320
+ meaning: "JSON with control and direction characters made visible in strings and keys",
321
+ },
322
+ {
323
+ name: "--brief",
324
+ role: "output",
325
+ type: "switch",
326
+ meaning: "each item as its reference, title, time and excerpt only",
327
+ },
328
+ {
329
+ name: "--chart-kind",
330
+ value: "<messages|active|membership>",
331
+ role: "output",
332
+ type: "choice",
333
+ meaning: "what a chart draws",
334
+ },
335
+ {
336
+ name: "--checkpoints",
337
+ value: "<durations>",
338
+ role: "output",
339
+ type: "list",
340
+ meaning: "the ages to report on, comma-separated: 1d,7d,30d",
341
+ },
342
+ {
343
+ name: "--fields",
344
+ value: "<paths>",
345
+ role: "output",
346
+ type: "list",
347
+ meaning: "only these comma-separated fields of each item; list metadata stays",
348
+ },
349
+ { name: "--format", value: "<format>", role: "output", type: "choice", meaning: "the format of the file written" },
350
+ { name: "--full", role: "output", type: "switch", meaning: "each item with its whole text and every field" },
351
+ {
352
+ name: "--json",
353
+ role: "output",
354
+ type: "switch",
355
+ meaning: "machine-readable output: one JSON value on stdout, nothing else",
356
+ },
357
+ { name: "--jsonl", role: "output", type: "switch", meaning: "machine-readable output: one JSON object per line" },
358
+ { name: "--output", value: "<file>", role: "output", type: "path", meaning: "the file to write" },
359
+ {
360
+ name: "--output-dir",
361
+ value: "<dir>",
362
+ role: "output",
363
+ type: "path",
364
+ meaning: "the folder to write into, created if missing",
365
+ },
366
+ { name: "--quiet", role: "output", type: "switch", meaning: "no diagnostics on stderr" },
367
+ { name: "--show-phone", role: "output", type: "switch", meaning: "print the whole phone number" },
368
+ {
369
+ name: "--thread-within",
370
+ value: "<duration>",
371
+ role: "output",
372
+ type: "duration",
373
+ meaning: "messages within this long either side of the hit",
374
+ },
375
+ {
376
+ name: "--trace",
377
+ role: "output",
378
+ type: "switch",
379
+ meaning: "one line per request on stderr: ids and timings, never content",
380
+ },
381
+ { name: "--verbose", role: "output", type: "switch", meaning: "more detail in what is shown; repeat for more" },
382
+ { name: "--version", role: "output", type: "switch", meaning: "print the version number" },
383
+ { name: "--with-notes", role: "output", type: "switch", meaning: "include the owner's private notes" },
384
+ { name: "--measure", value: "<name>", role: "sort", type: "choice", meaning: "the metric a ranking is ordered by" },
385
+ { name: "--newest", role: "sort", type: "switch", meaning: "newest first instead of best first" },
386
+ {
387
+ name: "--order",
388
+ value: "<recent|name>",
389
+ role: "sort",
390
+ type: "choice",
391
+ meaning: "the order of a list: most recent first, or by name",
392
+ },
393
+ { name: "--score", value: "<preset>", role: "sort", type: "choice", meaning: "the named ranking score preset" },
394
+ {
395
+ name: "--weights",
396
+ value: "<json>",
397
+ role: "sort",
398
+ type: "string",
399
+ meaning: "the ranking component weights, all of them",
400
+ },
401
+ { name: "--accept-terms", role: "mode", type: "switch", meaning: "accept the model's licence terms" },
402
+ {
403
+ name: "--allow-any-file",
404
+ role: "mode",
405
+ type: "switch",
406
+ meaning: "send a file even from a credential folder or the tool's own folders",
407
+ },
408
+ {
409
+ name: "--allow-dangerous",
410
+ role: "mode",
411
+ type: "switch",
412
+ meaning: "go ahead without the question an ask level puts before a deletion",
413
+ },
414
+ {
415
+ name: "--allow-writes",
416
+ role: "mode",
417
+ type: "switch",
418
+ meaning: "acknowledge that the profile offers writing tools",
419
+ },
420
+ { name: "--as-file", role: "mode", type: "switch", meaning: "send every file as a plain file to download" },
421
+ { name: "--background", role: "mode", type: "switch", meaning: "run as a job that outlives this command" },
422
+ {
423
+ name: "--base-url",
424
+ value: "<url>",
425
+ role: "mode",
426
+ type: "string",
427
+ meaning: "the address of an OpenAI-compatible model API",
428
+ },
429
+ { name: "--dims", value: "<n>", role: "mode", type: "count", meaning: "the embedding vector size" },
430
+ {
431
+ name: "--discover",
432
+ role: "mode",
433
+ type: "switch",
434
+ meaning: "also find partial matches; the results are evidence, not answers",
435
+ },
436
+ {
437
+ name: "--encrypt",
438
+ role: "mode",
439
+ type: "switch",
440
+ meaning: "compress and encrypt with a password that is never kept",
441
+ },
442
+ { name: "--exact", role: "mode", type: "switch", meaning: "bare words and quotes match their exact form only" },
443
+ {
444
+ name: "--fingerprint",
445
+ value: "<hash>",
446
+ role: "mode",
447
+ type: "string",
448
+ meaning: "refuse if the plan it names has changed",
449
+ },
450
+ {
451
+ name: "--for-everyone",
452
+ role: "mode",
453
+ type: "switch",
454
+ meaning: "delete for everyone in the chat, not only for the owner",
455
+ },
456
+ { name: "--http", role: "mode", type: "switch", meaning: "serve over HTTP on 127.0.0.1" },
457
+ { name: "--language", value: "<lucene|legacy>", role: "mode", type: "choice", meaning: "the query language" },
458
+ { name: "--local", role: "mode", type: "switch", meaning: "use the model on this machine, never the source" },
459
+ {
460
+ name: "--max-age",
461
+ value: "<duration>",
462
+ role: "mode",
463
+ type: "duration",
464
+ meaning: "how old a stored snapshot may be and still count as fresh",
465
+ },
466
+ { name: "--md", role: "mode", type: "switch", meaning: "the text is the messenger's Markdown" },
467
+ { name: "--no-backup", role: "mode", type: "switch", meaning: "do not back the file up before deleting it" },
468
+ { name: "--no-input", role: "mode", type: "switch", meaning: "never prompt or open an interactive login" },
469
+ { name: "--no-preview", role: "mode", type: "switch", meaning: "no preview card for a link in the text" },
470
+ {
471
+ name: "--no-record",
472
+ role: "mode",
473
+ type: "switch",
474
+ meaning: "do not keep this run, whatever the configuration says",
475
+ },
476
+ { name: "--no-registries", role: "mode", type: "switch", meaning: "do not ask the public ban lists" },
477
+ { name: "--notify", role: "mode", type: "switch", meaning: "tell the chat's members about it" },
478
+ { name: "--offline", role: "mode", type: "switch", meaning: "answer from what was recorded and never connect" },
479
+ { name: "--port", value: "<port>", role: "mode", type: "number", meaning: "the local port for --http" },
480
+ {
481
+ name: "--public-url",
482
+ value: "<url>",
483
+ role: "mode",
484
+ type: "string",
485
+ meaning: "the public https address of the tunnel",
486
+ },
487
+ {
488
+ name: "--record",
489
+ role: "mode",
490
+ type: "switch",
491
+ meaning: "keep this run under runs: ids and timings, never content",
492
+ },
493
+ { name: "--regex", role: "mode", type: "switch", meaning: "the words are one regular expression" },
494
+ {
495
+ name: "--send-id",
496
+ value: "<id>",
497
+ role: "mode",
498
+ type: "id",
499
+ meaning: "identify a send attempt, so a retry reuses it",
500
+ },
501
+ { name: "--silent", role: "mode", type: "switch", meaning: "deliver without a notification" },
502
+ { name: "--thread", role: "mode", type: "switch", meaning: "the stored reply chain instead of time neighbours" },
503
+ {
504
+ name: "--timezone",
505
+ value: "<zone>",
506
+ role: "mode",
507
+ type: "string",
508
+ meaning: "the IANA timezone dates and times are read in",
509
+ },
510
+ {
511
+ name: "--yes",
512
+ role: "mode",
513
+ type: "switch",
514
+ meaning: "go ahead with the write without asking or previewing first",
515
+ },
516
+ { name: "--analyze", role: "action", type: "switch", meaning: "also analyze with the configured provider" },
517
+ { name: "--catch-up", role: "action", type: "switch", meaning: "prepare local search after this run" },
518
+ { name: "--extract", role: "action", type: "switch", meaning: "also read the text inside the files written" },
519
+ {
520
+ name: "--mark-read",
521
+ role: "action",
522
+ type: "switch",
523
+ meaning: "also mark the chat read up to the newest message shown; the other person sees it",
524
+ },
525
+ { name: "--no-catch-up", role: "action", type: "switch", meaning: "skip local preparation after this run" },
526
+ { name: "--retract", role: "action", type: "switch", meaning: "take the owner's vote back" },
527
+ { name: "--revoke", role: "action", type: "switch", meaning: "forget every login given to a browser app" },
528
+ { name: "--track", role: "action", type: "switch", meaning: "also do it daily while serve runs" },
529
+ {
530
+ name: "--transcribe",
531
+ role: "action",
532
+ type: "switch",
533
+ meaning: "also transcribe voice messages not transcribed yet, on this machine",
534
+ },
535
+ {
536
+ name: "--catch-up-chunks",
537
+ value: "<n>",
538
+ role: "budget",
539
+ type: "count",
540
+ meaning: "at most this many chunks prepared after the run",
541
+ unit: "chunks",
542
+ },
543
+ {
544
+ name: "--catch-up-messages",
545
+ value: "<n>",
546
+ role: "budget",
547
+ type: "count",
548
+ meaning: "skip the graph rebuild above this many messages",
549
+ unit: "messages",
550
+ },
551
+ {
552
+ name: "--concurrency",
553
+ value: "<n>",
554
+ role: "budget",
555
+ type: "count",
556
+ meaning: "requests to the source at once",
557
+ unit: "requests",
558
+ },
559
+ {
560
+ name: "--deep",
561
+ value: "<n>",
562
+ role: "budget",
563
+ type: "count",
564
+ meaning: "also check the top n in full, one a second",
565
+ unit: "people",
566
+ },
567
+ {
568
+ name: "--max-actions",
569
+ value: "<n>",
570
+ role: "budget",
571
+ type: "count",
572
+ meaning: "at most this many actions in one run",
573
+ unit: "actions",
574
+ },
575
+ {
576
+ name: "--max-chats",
577
+ value: "<n>",
578
+ role: "budget",
579
+ type: "count",
580
+ meaning: "at most this many chats in one run",
581
+ unit: "chats",
582
+ },
583
+ {
584
+ name: "--max-chunks",
585
+ value: "<n>",
586
+ role: "budget",
587
+ type: "count",
588
+ meaning: "at most this many chunks in one run",
589
+ unit: "chunks",
590
+ },
591
+ {
592
+ name: "--max-gaps",
593
+ value: "<n>",
594
+ role: "budget",
595
+ type: "count",
596
+ meaning: "at most this many gaps repaired in one run",
597
+ unit: "gaps",
598
+ },
599
+ {
600
+ name: "--max-input-bytes",
601
+ value: "<bytes>",
602
+ role: "budget",
603
+ type: "count",
604
+ meaning: "at most this many bytes of buffered stdin",
605
+ unit: "bytes",
606
+ },
607
+ {
608
+ name: "--max-messages",
609
+ value: "<n>",
610
+ role: "budget",
611
+ type: "count",
612
+ meaning: "at most this many messages in one run",
613
+ unit: "messages",
614
+ },
615
+ {
616
+ name: "--max-replies",
617
+ value: "<n>",
618
+ role: "budget",
619
+ type: "count",
620
+ meaning: "at most this many replies read",
621
+ unit: "replies",
622
+ },
623
+ {
624
+ name: "--max-tokens",
625
+ value: "<n>",
626
+ role: "budget",
627
+ type: "count",
628
+ meaning: "at most this many model tokens in one run",
629
+ unit: "tokens",
630
+ },
631
+ {
632
+ name: "--thread-bytes",
633
+ value: "<n>",
634
+ role: "budget",
635
+ type: "count",
636
+ meaning: "at most this many bytes in each thread context",
637
+ unit: "bytes",
638
+ },
639
+ {
640
+ name: "--thread-hops",
641
+ value: "<n>",
642
+ role: "budget",
643
+ type: "count",
644
+ meaning: "at most this many links from the hit",
645
+ unit: "links",
646
+ },
647
+ {
648
+ name: "--thread-messages",
649
+ value: "<n>",
650
+ role: "budget",
651
+ type: "count",
652
+ meaning: "at most this many messages in each thread context",
653
+ unit: "messages",
654
+ },
655
+ {
656
+ name: "--batch",
657
+ value: "<id>",
658
+ role: "target",
659
+ type: "id",
660
+ meaning: "the batch to act on, by the id that listed it",
661
+ },
662
+ {
663
+ name: "--component",
664
+ value: "<name>",
665
+ role: "target",
666
+ type: "string",
667
+ meaning: "the ranking component to read the evidence of",
668
+ },
669
+ {
670
+ name: "--counters",
671
+ value: "<names>",
672
+ role: "target",
673
+ type: "list",
674
+ meaning: "the counters to read: views, reactions, comments",
675
+ },
676
+ { name: "--failed", role: "target", type: "switch", meaning: "every chat whose newest job failed or died" },
677
+ { name: "--left", role: "target", type: "switch", meaning: "only the chats this account has left" },
678
+ { name: "--others", role: "target", type: "switch", meaning: "every session but this one" },
679
+ {
680
+ name: "--saved",
681
+ value: "<name|id>",
682
+ role: "target",
683
+ type: "string",
684
+ meaning: "run a saved search, or an earlier run by its id",
685
+ },
686
+ {
687
+ name: "--selection",
688
+ value: "<json>",
689
+ role: "target",
690
+ type: "string",
691
+ meaning: "the resolved ranking selection a drilldown returned",
692
+ },
693
+ {
694
+ name: "--add",
695
+ value: "<chat>",
696
+ role: "value",
697
+ type: "id",
698
+ meaning: "put this chat into the set being changed; repeat it for more",
699
+ },
700
+ { name: "--all-can-pin", value: "<on|off>", role: "value", type: "choice", meaning: "every member may pin messages" },
701
+ { name: "--anonymous", role: "value", type: "switch", meaning: "nobody sees who voted for what" },
702
+ {
703
+ name: "--approval",
704
+ role: "value",
705
+ type: "switch",
706
+ meaning: "who joins by the link asks first, and an admin lets them in",
707
+ },
708
+ { name: "--can", value: "<rights>", role: "value", type: "list", meaning: "what an admin may do, comma-separated" },
709
+ { name: "--channel", role: "value", type: "switch", meaning: "a channel instead of a group" },
710
+ {
711
+ name: "--closed",
712
+ value: "<on|off>",
713
+ role: "value",
714
+ type: "choice",
715
+ meaning: "close it to new messages, or reopen it",
716
+ },
717
+ { name: "--comment-to", value: "<post>", role: "value", type: "id", meaning: "comment on this channel post" },
718
+ { name: "--description", value: "<text>", role: "value", type: "string", meaning: "the new description" },
719
+ { name: "--expire-time", value: "<time>", role: "value", type: "time", meaning: "it stops working at this time" },
720
+ { name: "--first-name", value: "<name>", role: "value", type: "string", meaning: "the account's first name" },
721
+ { name: "--hidden", value: "<on|off>", role: "value", type: "choice", meaning: "hide it from the list, or show it" },
722
+ { name: "--last-name", value: "<name>", role: "value", type: "string", meaning: "the account's last name" },
723
+ {
724
+ name: "--max-uses",
725
+ value: "<n>",
726
+ role: "value",
727
+ type: "count",
728
+ meaning: "at most this many people join by it",
729
+ unit: "people",
730
+ },
731
+ {
732
+ name: "--members-see-link",
733
+ value: "<on|off>",
734
+ role: "value",
735
+ type: "choice",
736
+ meaning: "members may see the invite link",
737
+ },
738
+ { name: "--multiple", role: "value", type: "switch", meaning: "people may pick several answers" },
739
+ {
740
+ name: "--only-admins-add",
741
+ value: "<on|off>",
742
+ role: "value",
743
+ type: "choice",
744
+ meaning: "only admins may add members",
745
+ },
746
+ {
747
+ name: "--only-admins-call",
748
+ value: "<on|off>",
749
+ role: "value",
750
+ type: "choice",
751
+ meaning: "only admins may start a call",
752
+ },
753
+ {
754
+ name: "--only-owner-edits-info",
755
+ value: "<on|off>",
756
+ role: "value",
757
+ type: "choice",
758
+ meaning: "only the owner may change the name and photo",
759
+ },
760
+ {
761
+ name: "--photo",
762
+ value: "<file>",
763
+ role: "value",
764
+ type: "path",
765
+ meaning: "an image file: a profile or chat photo, or a photo to send",
766
+ },
767
+ {
768
+ name: "--pinned",
769
+ value: "<on|off>",
770
+ role: "value",
771
+ type: "choice",
772
+ meaning: "pin it at the top of the list, or unpin it",
773
+ },
774
+ {
775
+ name: "--remove",
776
+ value: "<chat>",
777
+ role: "value",
778
+ type: "id",
779
+ meaning: "take this chat out of the set being changed; repeat it for more",
780
+ },
781
+ {
782
+ name: "--reply-to",
783
+ value: "<message>",
784
+ role: "value",
785
+ type: "id",
786
+ meaning: "answer this message in the same chat",
787
+ },
788
+ { name: "--revote", role: "value", type: "switch", meaning: "people may change their vote" },
789
+ { name: "--send-as", value: "<id>", role: "value", type: "id", meaning: "send as this identity of the chat" },
790
+ {
791
+ name: "--voice",
792
+ value: "<file>",
793
+ role: "value",
794
+ type: "path",
795
+ meaning: "an Ogg Opus file sent as a voice message",
796
+ },
797
+ {
798
+ name: "--filter",
799
+ value: "<query>",
800
+ role: "query",
801
+ type: "string",
802
+ meaning: "a query every result must also match, beside the search's own words",
803
+ },
240
804
  ];
241
805
  /** The words every CLI on cli-base is judged against. Seeded from STANDARD's command-name rules and the glossary. */
242
806
  export const VOCABULARY = defineVocabulary({