@wirecat/cli-core 0.395.0 → 0.397.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 (109) hide show
  1. package/CHANGELOG.md +63 -1
  2. package/README.md +1 -0
  3. package/dist/background/daily-archive-timer.d.ts +40 -0
  4. package/dist/background/daily-archive-timer.js +181 -0
  5. package/dist/background/index.d.ts +2 -0
  6. package/dist/background/index.js +1 -0
  7. package/dist/cli/commands-command.js +6 -0
  8. package/dist/cli/index.d.ts +1 -1
  9. package/dist/cli/index.js +1 -1
  10. package/dist/cli/input-fields.d.ts +3 -0
  11. package/dist/cli/input-fields.js +27 -0
  12. package/dist/cli/messenger/account-command.js +1 -0
  13. package/dist/cli/messenger/account-sessions-command.js +3 -1
  14. package/dist/cli/messenger/admin-commands.js +1 -0
  15. package/dist/cli/messenger/admin-contacts-command.js +9 -3
  16. package/dist/cli/messenger/archive-commands.js +3 -1
  17. package/dist/cli/messenger/attachments-command.js +32 -10
  18. package/dist/cli/messenger/backfill-command.js +4 -0
  19. package/dist/cli/messenger/chats-command.js +1 -0
  20. package/dist/cli/messenger/chats-members-command.js +4 -0
  21. package/dist/cli/messenger/chats-stats-command.js +1 -0
  22. package/dist/cli/messenger/chats-tracking-command.js +4 -1
  23. package/dist/cli/messenger/complete-command.js +1 -1
  24. package/dist/cli/messenger/contacts-command.js +9 -3
  25. package/dist/cli/messenger/conversation-answers.d.ts +5 -0
  26. package/dist/cli/messenger/conversations-command.js +18 -1
  27. package/dist/cli/messenger/counters-command.js +1 -0
  28. package/dist/cli/messenger/download-command.js +1 -0
  29. package/dist/cli/messenger/flood-command.js +1 -0
  30. package/dist/cli/messenger/guard-commands.js +5 -4
  31. package/dist/cli/messenger/inbox.js +1 -0
  32. package/dist/cli/messenger/mcp-command.js +6 -2
  33. package/dist/cli/messenger/media-archive-command.d.ts +3 -0
  34. package/dist/cli/messenger/media-archive-command.js +72 -0
  35. package/dist/cli/messenger/media-archive-move-command.d.ts +3 -0
  36. package/dist/cli/messenger/media-archive-move-command.js +40 -0
  37. package/dist/cli/messenger/media-archive-timer-command.d.ts +3 -0
  38. package/dist/cli/messenger/media-archive-timer-command.js +70 -0
  39. package/dist/cli/messenger/message-answers.d.ts +5 -0
  40. package/dist/cli/messenger/message-writes.d.ts +5 -0
  41. package/dist/cli/messenger/messages-comments-command.js +1 -0
  42. package/dist/cli/messenger/messages-delete-command.js +1 -1
  43. package/dist/cli/messenger/messages-search-command.js +1 -0
  44. package/dist/cli/messenger/messages-stats-command.js +1 -0
  45. package/dist/cli/messenger/models-command.js +3 -0
  46. package/dist/cli/messenger/private-people-command.js +12 -10
  47. package/dist/cli/messenger/rankings-command.js +2 -0
  48. package/dist/cli/messenger/reactions-command.js +8 -2
  49. package/dist/cli/messenger/retention-command.js +1 -0
  50. package/dist/cli/messenger/review.js +1 -0
  51. package/dist/cli/messenger/search-answers.js +2 -0
  52. package/dist/cli/messenger/search-command.js +5 -1
  53. package/dist/cli/messenger/searches-command.d.ts +2 -0
  54. package/dist/cli/messenger/searches-command.js +26 -8
  55. package/dist/cli/messenger/server-command.js +7 -2
  56. package/dist/cli/messenger/store-maintenance-command.js +7 -0
  57. package/dist/cli/messenger/tags-command.js +6 -2
  58. package/dist/cli/messenger/tasks-command.js +10 -7
  59. package/dist/cli/messenger/transcribe-command.js +1 -0
  60. package/dist/cli/messenger/watch-command.js +1 -0
  61. package/dist/cli/program.js +5 -2
  62. package/dist/entities/contact-read.d.ts +119 -0
  63. package/dist/entities/contact-read.js +50 -0
  64. package/dist/entities/evidence.d.ts +40 -0
  65. package/dist/entities/index.d.ts +191 -2
  66. package/dist/entities/index.js +7 -1
  67. package/dist/entities/message.d.ts +9 -0
  68. package/dist/entities/message.js +6 -0
  69. package/dist/errors/reasons.d.ts +1 -0
  70. package/dist/errors/reasons.js +15 -0
  71. package/dist/meetings/mcp/index.d.ts +15 -15
  72. package/dist/parity/catalogue.js +1 -1
  73. package/dist/parity/manifest.d.ts +3 -1
  74. package/dist/parity/manifest.js +2 -0
  75. package/dist/parity/wording.js +2 -0
  76. package/dist/search/lucene/registry.js +2 -2
  77. package/dist/sends/permissions.js +7 -0
  78. package/dist/services/index.d.ts +5 -0
  79. package/dist/services/index.js +2 -0
  80. package/dist/services/media-archive-files.d.ts +10 -0
  81. package/dist/services/media-archive-files.js +110 -0
  82. package/dist/services/media-archive-locks.d.ts +6 -0
  83. package/dist/services/media-archive-locks.js +71 -0
  84. package/dist/services/media-archive-manifest.d.ts +29 -0
  85. package/dist/services/media-archive-manifest.js +116 -0
  86. package/dist/services/media-archive-move.d.ts +21 -0
  87. package/dist/services/media-archive-move.js +163 -0
  88. package/dist/services/media-archive.d.ts +34 -0
  89. package/dist/services/media-archive.js +165 -0
  90. package/dist/services/messages-search.js +13 -2
  91. package/dist/services/messages.d.ts +5 -0
  92. package/dist/store/search-index.d.ts +4 -1
  93. package/dist/store/search-index.js +10 -1
  94. package/dist/store/sqlite/hit-places.d.ts +12 -0
  95. package/dist/store/sqlite/hit-places.js +76 -0
  96. package/dist/store/sqlite/lucene-fields.d.ts +8 -0
  97. package/dist/store/sqlite/lucene-fields.js +6 -4
  98. package/dist/store/sqlite/lucene.js +25 -70
  99. package/dist/store/sqlite/manifest.js +2 -0
  100. package/dist/store/sqlite/migrations.generated.js +19 -0
  101. package/dist/store/sqlite/note-index.d.ts +11 -1
  102. package/dist/store/sqlite/note-index.js +18 -6
  103. package/dist/store/sqlite/schema.d.ts +39 -0
  104. package/dist/store/sqlite/schema.js +4 -0
  105. package/dist/store/sqlite/transcript-query.d.ts +40 -0
  106. package/dist/store/sqlite/transcript-query.js +108 -0
  107. package/dist/store/sqlite/words.d.ts +6 -0
  108. package/package.json +3 -3
  109. package/parity.json +50 -1
@@ -0,0 +1,50 @@
1
+ import * as v from "valibot";
2
+ import { chat } from "./chat.js";
3
+ import { count, id, text, time } from "./fields.js";
4
+ export const contactLookup = v.strictObject({ id, name: v.nullable(text), username: v.nullable(text) });
5
+ export const contactSync = v.strictObject({ added: count, changed: count, known: count });
6
+ export const contactProfile = v.strictObject({
7
+ id,
8
+ name: v.nullable(text),
9
+ usernames: v.array(text),
10
+ bio: v.nullable(text),
11
+ birthday: v.optional(v.nullable(text)),
12
+ phone: v.optional(v.nullable(text)),
13
+ flags: v.partial(v.strictObject({
14
+ bot: v.boolean(),
15
+ verified: v.boolean(),
16
+ premium: v.boolean(),
17
+ scam: v.boolean(),
18
+ fake: v.boolean(),
19
+ restricted: v.boolean(),
20
+ deleted: v.boolean(),
21
+ support: v.boolean(),
22
+ })),
23
+ seen: v.optional(text),
24
+ contact: v.optional(v.boolean()),
25
+ mutual_contact: v.optional(v.boolean()),
26
+ common_chats_count: v.optional(v.nullable(count)),
27
+ registered: v.optional(v.nullable(v.strictObject({
28
+ at: text,
29
+ source: v.picklist(["telegram", "max", "estimate"]),
30
+ precision: v.picklist(["day", "month"]),
31
+ }))),
32
+ has_photo: v.optional(v.boolean()),
33
+ chats: v.array(v.strictObject({
34
+ id,
35
+ title: v.nullable(text),
36
+ kind: chat.entries.kind,
37
+ their_messages: count,
38
+ first_at: v.nullable(time),
39
+ last_at: v.nullable(time),
40
+ complete: v.boolean(),
41
+ })),
42
+ aliases: v.array(v.strictObject({
43
+ name: v.optional(text),
44
+ username: v.optional(text),
45
+ link: v.optional(text),
46
+ first_seen_at: time,
47
+ last_seen_at: time,
48
+ source: v.picklist(["profile", "messages"]),
49
+ })),
50
+ });
@@ -21,6 +21,11 @@ export declare const contribution: v.StrictObjectSchema<{
21
21
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
22
22
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
23
23
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
24
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
25
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
26
+ readonly from: v.StringSchema<undefined>;
27
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
28
+ }, undefined>, undefined>, undefined>;
24
29
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
25
30
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
26
31
  readonly coverage: v.NumberSchema<undefined>;
@@ -202,6 +207,11 @@ export declare const contribution: v.StrictObjectSchema<{
202
207
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
203
208
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
204
209
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
210
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
211
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
212
+ readonly from: v.StringSchema<undefined>;
213
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
214
+ }, undefined>, undefined>, undefined>;
205
215
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
206
216
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
207
217
  readonly coverage: v.NumberSchema<undefined>;
@@ -421,6 +431,11 @@ export declare const contribution: v.StrictObjectSchema<{
421
431
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
422
432
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
423
433
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
434
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
435
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
436
+ readonly from: v.StringSchema<undefined>;
437
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
438
+ }, undefined>, undefined>, undefined>;
424
439
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
425
440
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
426
441
  readonly coverage: v.NumberSchema<undefined>;
@@ -602,6 +617,11 @@ export declare const contribution: v.StrictObjectSchema<{
602
617
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
603
618
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
604
619
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
620
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
621
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
622
+ readonly from: v.StringSchema<undefined>;
623
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
624
+ }, undefined>, undefined>, undefined>;
605
625
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
606
626
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
607
627
  readonly coverage: v.NumberSchema<undefined>;
@@ -857,6 +877,11 @@ export declare const evidence: v.UnionSchema<[v.StrictObjectSchema<{
857
877
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
858
878
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
859
879
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
880
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
881
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
882
+ readonly from: v.StringSchema<undefined>;
883
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
884
+ }, undefined>, undefined>, undefined>;
860
885
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
861
886
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
862
887
  readonly coverage: v.NumberSchema<undefined>;
@@ -1038,6 +1063,11 @@ export declare const evidence: v.UnionSchema<[v.StrictObjectSchema<{
1038
1063
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1039
1064
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
1040
1065
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1066
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
1067
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
1068
+ readonly from: v.StringSchema<undefined>;
1069
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
1070
+ }, undefined>, undefined>, undefined>;
1041
1071
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
1042
1072
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
1043
1073
  readonly coverage: v.NumberSchema<undefined>;
@@ -1257,6 +1287,11 @@ export declare const evidence: v.UnionSchema<[v.StrictObjectSchema<{
1257
1287
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1258
1288
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
1259
1289
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1290
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
1291
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
1292
+ readonly from: v.StringSchema<undefined>;
1293
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
1294
+ }, undefined>, undefined>, undefined>;
1260
1295
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
1261
1296
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
1262
1297
  readonly coverage: v.NumberSchema<undefined>;
@@ -1438,6 +1473,11 @@ export declare const evidence: v.UnionSchema<[v.StrictObjectSchema<{
1438
1473
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1439
1474
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
1440
1475
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1476
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
1477
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
1478
+ readonly from: v.StringSchema<undefined>;
1479
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
1480
+ }, undefined>, undefined>, undefined>;
1441
1481
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
1442
1482
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
1443
1483
  readonly coverage: v.NumberSchema<undefined>;
@@ -10,6 +10,7 @@ import { chatEvent } from "./chat-event.js";
10
10
  import { chatStats, taskStats } from "./chat-stats.js";
11
11
  import { contact } from "./contact.js";
12
12
  import { contactNote } from "./contact-note.js";
13
+ import { contactLookup, contactProfile, contactSync } from "./contact-read.js";
13
14
  import { conversation } from "./conversation.js";
14
15
  import { counterRefresh, counters } from "./counters.js";
15
16
  import { document } from "./document.js";
@@ -47,7 +48,7 @@ import { topic } from "./topic.js";
47
48
  * subset of its fields, never a renamed one. Commands move onto these one by one; until then, a schema
48
49
  * is the target, not a description of today's output.
49
50
  */
50
- export { account, accountSession, adminReport, agenda, attachment, chart, chat, chatEvent, chatStats, contact, contactNote, conversation, counterRefresh, counters, document, evidence, fact, folder, hit, identity, inviteLink, job, joinRequest, meeting, meetingProjectCandidates, meetingSeriesInventory, member, memory, message, messageCounts, messageLink, model, note, officialStats, person, pollVote, ranking, reference, relationship, retention, savedSearch, tagging, task, taskStats, topic, };
51
+ export { account, accountSession, adminReport, agenda, attachment, chart, chat, chatEvent, chatStats, contact, contactLookup, contactNote, contactProfile, contactSync, conversation, counterRefresh, counters, document, evidence, fact, folder, hit, identity, inviteLink, job, joinRequest, meeting, meetingProjectCandidates, meetingSeriesInventory, member, memory, message, messageCounts, messageLink, model, note, officialStats, person, pollVote, ranking, reference, relationship, retention, savedSearch, tagging, task, taskStats, topic, };
51
52
  export declare const ENTITIES: {
52
53
  readonly message: v.StrictObjectSchema<{
53
54
  readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
@@ -69,6 +70,11 @@ export declare const ENTITIES: {
69
70
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
70
71
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
71
72
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
73
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
74
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
75
+ readonly from: v.StringSchema<undefined>;
76
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
77
+ }, undefined>, undefined>, undefined>;
72
78
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
73
79
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
74
80
  readonly coverage: v.NumberSchema<undefined>;
@@ -250,6 +256,11 @@ export declare const ENTITIES: {
250
256
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
251
257
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
252
258
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
259
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
260
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
261
+ readonly from: v.StringSchema<undefined>;
262
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
263
+ }, undefined>, undefined>, undefined>;
253
264
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
254
265
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
255
266
  readonly coverage: v.NumberSchema<undefined>;
@@ -431,6 +442,11 @@ export declare const ENTITIES: {
431
442
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
432
443
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
433
444
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
445
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
446
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
447
+ readonly from: v.StringSchema<undefined>;
448
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
449
+ }, undefined>, undefined>, undefined>;
434
450
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
435
451
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
436
452
  readonly coverage: v.NumberSchema<undefined>;
@@ -591,7 +607,7 @@ export declare const ENTITIES: {
591
607
  }, undefined>, undefined>;
592
608
  }, undefined>, undefined>;
593
609
  readonly provider_metadata: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.UnknownSchema, undefined>, undefined>;
594
- }, "chat_title" | "context" | "discovery" | "email" | "excerpt" | "found_in" | "matched_in" | "ref" | "score" | "sender_name" | "timestamp">;
610
+ }, "chat_title" | "context" | "corrections" | "discovery" | "email" | "excerpt" | "found_in" | "match" | "matched_in" | "ref" | "score" | "sender_name" | "timestamp">;
595
611
  readonly "~standard": v.StandardProps<{
596
612
  ref: string;
597
613
  chat_title?: string | null | undefined;
@@ -600,6 +616,11 @@ export declare const ENTITIES: {
600
616
  excerpt?: string | undefined;
601
617
  matched_in?: "context" | "file" | "filename" | "picture" | "text" | "transcript" | undefined;
602
618
  score?: number | undefined;
619
+ match?: "beginnings" | "corrected" | "words" | undefined;
620
+ corrections?: {
621
+ from: string;
622
+ to: string[];
623
+ }[] | undefined;
603
624
  found_in?: "archive" | "both" | "server" | undefined;
604
625
  discovery?: {
605
626
  coverage: number;
@@ -658,6 +679,11 @@ export declare const ENTITIES: {
658
679
  excerpt?: string | undefined;
659
680
  matched_in?: "context" | "file" | "filename" | "picture" | "text" | "transcript" | undefined;
660
681
  score?: number | undefined;
682
+ match?: "beginnings" | "corrected" | "words" | undefined;
683
+ corrections?: {
684
+ from: string;
685
+ to: string[];
686
+ }[] | undefined;
661
687
  found_in?: "archive" | "both" | "server" | undefined;
662
688
  discovery?: {
663
689
  coverage: number;
@@ -717,6 +743,11 @@ export declare const ENTITIES: {
717
743
  excerpt?: string | undefined;
718
744
  matched_in?: "context" | "file" | "filename" | "picture" | "text" | "transcript" | undefined;
719
745
  score?: number | undefined;
746
+ match?: "beginnings" | "corrected" | "words" | undefined;
747
+ corrections?: {
748
+ from: string;
749
+ to: string[];
750
+ }[] | undefined;
720
751
  found_in?: "archive" | "both" | "server" | undefined;
721
752
  discovery?: {
722
753
  coverage: number;
@@ -777,6 +808,11 @@ export declare const ENTITIES: {
777
808
  excerpt?: string | undefined;
778
809
  matched_in?: "context" | "file" | "filename" | "picture" | "text" | "transcript" | undefined;
779
810
  score?: number | undefined;
811
+ match?: "beginnings" | "corrected" | "words" | undefined;
812
+ corrections?: {
813
+ from: string;
814
+ to: string[];
815
+ }[] | undefined;
780
816
  found_in?: "archive" | "both" | "server" | undefined;
781
817
  discovery?: {
782
818
  coverage: number;
@@ -836,6 +872,11 @@ export declare const ENTITIES: {
836
872
  excerpt?: string | undefined;
837
873
  matched_in?: "context" | "file" | "filename" | "picture" | "text" | "transcript" | undefined;
838
874
  score?: number | undefined;
875
+ match?: "beginnings" | "corrected" | "words" | undefined;
876
+ corrections?: {
877
+ from: string;
878
+ to: string[];
879
+ }[] | undefined;
839
880
  found_in?: "archive" | "both" | "server" | undefined;
840
881
  discovery?: {
841
882
  coverage: number;
@@ -910,6 +951,11 @@ export declare const ENTITIES: {
910
951
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
911
952
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
912
953
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
954
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
955
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
956
+ readonly from: v.StringSchema<undefined>;
957
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
958
+ }, undefined>, undefined>, undefined>;
913
959
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
914
960
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
915
961
  readonly coverage: v.NumberSchema<undefined>;
@@ -1091,6 +1137,11 @@ export declare const ENTITIES: {
1091
1137
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1092
1138
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
1093
1139
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1140
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
1141
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
1142
+ readonly from: v.StringSchema<undefined>;
1143
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
1144
+ }, undefined>, undefined>, undefined>;
1094
1145
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
1095
1146
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
1096
1147
  readonly coverage: v.NumberSchema<undefined>;
@@ -1676,6 +1727,124 @@ export declare const ENTITIES: {
1676
1727
  readonly created_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>;
1677
1728
  readonly updated_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>;
1678
1729
  }, undefined>;
1730
+ readonly contact_lookup: v.StrictObjectSchema<{
1731
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1732
+ readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1733
+ readonly username: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1734
+ }, undefined>;
1735
+ readonly contact_profile: v.StrictObjectSchema<{
1736
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1737
+ readonly name: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1738
+ readonly usernames: v.ArraySchema<v.StringSchema<undefined>, undefined>;
1739
+ readonly bio: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1740
+ readonly birthday: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1741
+ readonly phone: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1742
+ readonly flags: Omit<v.StrictObjectSchema<{
1743
+ readonly bot: v.BooleanSchema<undefined>;
1744
+ readonly verified: v.BooleanSchema<undefined>;
1745
+ readonly premium: v.BooleanSchema<undefined>;
1746
+ readonly scam: v.BooleanSchema<undefined>;
1747
+ readonly fake: v.BooleanSchema<undefined>;
1748
+ readonly restricted: v.BooleanSchema<undefined>;
1749
+ readonly deleted: v.BooleanSchema<undefined>;
1750
+ readonly support: v.BooleanSchema<undefined>;
1751
+ }, undefined>, "entries" | "~run" | "~standard" | "~types"> & {
1752
+ readonly entries: {
1753
+ readonly bot: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1754
+ readonly verified: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1755
+ readonly premium: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1756
+ readonly scam: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1757
+ readonly fake: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1758
+ readonly restricted: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1759
+ readonly deleted: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1760
+ readonly support: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1761
+ };
1762
+ readonly "~standard": v.StandardProps<{
1763
+ bot?: boolean | undefined;
1764
+ verified?: boolean | undefined;
1765
+ premium?: boolean | undefined;
1766
+ scam?: boolean | undefined;
1767
+ fake?: boolean | undefined;
1768
+ restricted?: boolean | undefined;
1769
+ deleted?: boolean | undefined;
1770
+ support?: boolean | undefined;
1771
+ }, {
1772
+ bot?: boolean | undefined;
1773
+ verified?: boolean | undefined;
1774
+ premium?: boolean | undefined;
1775
+ scam?: boolean | undefined;
1776
+ fake?: boolean | undefined;
1777
+ restricted?: boolean | undefined;
1778
+ deleted?: boolean | undefined;
1779
+ support?: boolean | undefined;
1780
+ }>;
1781
+ readonly "~run": (dataset: v.UnknownDataset, config: v.Config<v.BaseIssue<unknown>>) => v.OutputDataset<{
1782
+ bot?: boolean | undefined;
1783
+ verified?: boolean | undefined;
1784
+ premium?: boolean | undefined;
1785
+ scam?: boolean | undefined;
1786
+ fake?: boolean | undefined;
1787
+ restricted?: boolean | undefined;
1788
+ deleted?: boolean | undefined;
1789
+ support?: boolean | undefined;
1790
+ }, v.BooleanIssue | v.StrictObjectIssue>;
1791
+ readonly "~types"?: {
1792
+ readonly input: {
1793
+ bot?: boolean | undefined;
1794
+ verified?: boolean | undefined;
1795
+ premium?: boolean | undefined;
1796
+ scam?: boolean | undefined;
1797
+ fake?: boolean | undefined;
1798
+ restricted?: boolean | undefined;
1799
+ deleted?: boolean | undefined;
1800
+ support?: boolean | undefined;
1801
+ };
1802
+ readonly output: {
1803
+ bot?: boolean | undefined;
1804
+ verified?: boolean | undefined;
1805
+ premium?: boolean | undefined;
1806
+ scam?: boolean | undefined;
1807
+ fake?: boolean | undefined;
1808
+ restricted?: boolean | undefined;
1809
+ deleted?: boolean | undefined;
1810
+ support?: boolean | undefined;
1811
+ };
1812
+ readonly issue: v.BooleanIssue | v.StrictObjectIssue;
1813
+ } | undefined;
1814
+ };
1815
+ readonly seen: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1816
+ readonly contact: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1817
+ readonly mutual_contact: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1818
+ readonly common_chats_count: v.OptionalSchema<v.NullableSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>, undefined>, undefined>;
1819
+ readonly registered: v.OptionalSchema<v.NullableSchema<v.StrictObjectSchema<{
1820
+ readonly at: v.StringSchema<undefined>;
1821
+ readonly source: v.PicklistSchema<["telegram", "max", "estimate"], undefined>;
1822
+ readonly precision: v.PicklistSchema<["day", "month"], undefined>;
1823
+ }, undefined>, undefined>, undefined>;
1824
+ readonly has_photo: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1825
+ readonly chats: v.ArraySchema<v.StrictObjectSchema<{
1826
+ readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
1827
+ readonly title: v.NullableSchema<v.StringSchema<undefined>, undefined>;
1828
+ readonly kind: v.PicklistSchema<["dialog", "group", "channel", "saved", "unknown"], undefined>;
1829
+ readonly their_messages: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
1830
+ readonly first_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
1831
+ readonly last_at: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>, undefined>;
1832
+ readonly complete: v.BooleanSchema<undefined>;
1833
+ }, undefined>, undefined>;
1834
+ readonly aliases: v.ArraySchema<v.StrictObjectSchema<{
1835
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1836
+ readonly username: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1837
+ readonly link: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1838
+ readonly first_seen_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>;
1839
+ readonly last_seen_at: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.IsoTimestampAction<string, "an ISO 8601 time in UTC">, v.EndsWithAction<string, "Z", "an ISO 8601 time in UTC, ending in `Z`">]>;
1840
+ readonly source: v.PicklistSchema<["profile", "messages"], undefined>;
1841
+ }, undefined>, undefined>;
1842
+ }, undefined>;
1843
+ readonly contact_sync: v.StrictObjectSchema<{
1844
+ readonly added: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
1845
+ readonly changed: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
1846
+ readonly known: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
1847
+ }, undefined>;
1679
1848
  readonly account: v.StrictObjectSchema<{
1680
1849
  readonly provider: v.StringSchema<undefined>;
1681
1850
  readonly id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
@@ -3264,6 +3433,11 @@ export declare const ENTITIES: {
3264
3433
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
3265
3434
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
3266
3435
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
3436
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
3437
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
3438
+ readonly from: v.StringSchema<undefined>;
3439
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
3440
+ }, undefined>, undefined>, undefined>;
3267
3441
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
3268
3442
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
3269
3443
  readonly coverage: v.NumberSchema<undefined>;
@@ -3445,6 +3619,11 @@ export declare const ENTITIES: {
3445
3619
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
3446
3620
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
3447
3621
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
3622
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
3623
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
3624
+ readonly from: v.StringSchema<undefined>;
3625
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
3626
+ }, undefined>, undefined>, undefined>;
3448
3627
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
3449
3628
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
3450
3629
  readonly coverage: v.NumberSchema<undefined>;
@@ -3664,6 +3843,11 @@ export declare const ENTITIES: {
3664
3843
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
3665
3844
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
3666
3845
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
3846
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
3847
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
3848
+ readonly from: v.StringSchema<undefined>;
3849
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
3850
+ }, undefined>, undefined>, undefined>;
3667
3851
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
3668
3852
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
3669
3853
  readonly coverage: v.NumberSchema<undefined>;
@@ -3845,6 +4029,11 @@ export declare const ENTITIES: {
3845
4029
  readonly excerpt: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
3846
4030
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
3847
4031
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
4032
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
4033
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
4034
+ readonly from: v.StringSchema<undefined>;
4035
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
4036
+ }, undefined>, undefined>, undefined>;
3848
4037
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
3849
4038
  readonly discovery: v.OptionalSchema<v.StrictObjectSchema<{
3850
4039
  readonly coverage: v.NumberSchema<undefined>;
@@ -11,6 +11,7 @@ import { chatEvent } from "./chat-event.js";
11
11
  import { chatStats, taskStats } from "./chat-stats.js";
12
12
  import { contact } from "./contact.js";
13
13
  import { contactNote } from "./contact-note.js";
14
+ import { contactLookup, contactProfile, contactSync } from "./contact-read.js";
14
15
  import { conversation } from "./conversation.js";
15
16
  import { counterRefresh, counters } from "./counters.js";
16
17
  import { document } from "./document.js";
@@ -50,7 +51,7 @@ import { topic } from "./topic.js";
50
51
  * subset of its fields, never a renamed one. Commands move onto these one by one; until then, a schema
51
52
  * is the target, not a description of today's output.
52
53
  */
53
- export { account, accountSession, adminReport, agenda, attachment, chart, chat, chatEvent, chatStats, contact, contactNote, conversation, counterRefresh, counters, document, evidence, fact, folder, hit, identity, inviteLink, job, joinRequest, meeting, meetingProjectCandidates, meetingSeriesInventory, member, memory, message, messageCounts, messageLink, model, note, officialStats, person, pollVote, ranking, reference, relationship, retention, savedSearch, tagging, task, taskStats, topic, };
54
+ export { account, accountSession, adminReport, agenda, attachment, chart, chat, chatEvent, chatStats, contact, contactLookup, contactNote, contactProfile, contactSync, conversation, counterRefresh, counters, document, evidence, fact, folder, hit, identity, inviteLink, job, joinRequest, meeting, meetingProjectCandidates, meetingSeriesInventory, member, memory, message, messageCounts, messageLink, model, note, officialStats, person, pollVote, ranking, reference, relationship, retention, savedSearch, tagging, task, taskStats, topic, };
54
55
  export const ENTITIES = {
55
56
  message,
56
57
  "message.hit": v.pick(message, [
@@ -61,6 +62,8 @@ export const ENTITIES = {
61
62
  "excerpt",
62
63
  "matched_in",
63
64
  "score",
65
+ "match",
66
+ "corrections",
64
67
  "found_in",
65
68
  "discovery",
66
69
  "context",
@@ -83,6 +86,9 @@ export const ENTITIES = {
83
86
  identity,
84
87
  contact,
85
88
  contact_note: contactNote,
89
+ contact_lookup: contactLookup,
90
+ contact_profile: contactProfile,
91
+ contact_sync: contactSync,
86
92
  account,
87
93
  account_session: accountSession,
88
94
  note,
@@ -25,6 +25,15 @@ export declare const message: v.StrictObjectSchema<{
25
25
  /** `picture`: the picture search lane found it by what the picture shows; it follows the text hits. */
26
26
  readonly matched_in: v.OptionalSchema<v.PicklistSchema<["text", "transcript", "filename", "file", "context", "picture"], undefined>, undefined>;
27
27
  readonly score: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
28
+ /**
29
+ * `corrected`: a query word matched only a spelling speech recognition garbled in a voice note's transcript,
30
+ * listed in `corrections`. `words` and `beginnings`: what a discovery search matched.
31
+ */
32
+ readonly match: v.OptionalSchema<v.PicklistSchema<["words", "beginnings", "corrected"], undefined>, undefined>;
33
+ readonly corrections: v.OptionalSchema<v.ArraySchema<v.StrictObjectSchema<{
34
+ readonly from: v.StringSchema<undefined>;
35
+ readonly to: v.ArraySchema<v.StringSchema<undefined>, undefined>;
36
+ }, undefined>, undefined>, undefined>;
28
37
  /** Where a search found it: the local archive, the messenger's server, or both. */
29
38
  readonly found_in: v.OptionalSchema<v.PicklistSchema<["archive", "server", "both"], undefined>, undefined>;
30
39
  /** A discovery search's partial match: how much of the question it covers, and which words it lacks. */
@@ -37,6 +37,12 @@ export const message = v.strictObject({
37
37
  /** `picture`: the picture search lane found it by what the picture shows; it follows the text hits. */
38
38
  matched_in: v.optional(v.picklist(["text", "transcript", "filename", "file", "context", "picture"])),
39
39
  score: v.optional(v.number()),
40
+ /**
41
+ * `corrected`: a query word matched only a spelling speech recognition garbled in a voice note's transcript,
42
+ * listed in `corrections`. `words` and `beginnings`: what a discovery search matched.
43
+ */
44
+ match: v.optional(v.picklist(["words", "beginnings", "corrected"])),
45
+ corrections: v.optional(v.array(v.strictObject({ from: text, to: v.array(text) }))),
40
46
  /** Where a search found it: the local archive, the messenger's server, or both. */
41
47
  found_in: v.optional(v.picklist(["archive", "server", "both"])),
42
48
  /** A discovery search's partial match: how much of the question it covers, and which words it lacks. */
@@ -1,5 +1,6 @@
1
1
  import type { FailureContext } from "@wirecat/cli-base";
2
2
  import type { ErrorReason } from "@wirecat/cli-base/standards";
3
+ export declare const INPUT_FIELD_REASONS: ErrorReason[];
3
4
  /** Every reason this package raises; cli-base's own are known to the handler already. */
4
5
  export declare const REASONS: ErrorReason[];
5
6
  /**
@@ -78,9 +78,24 @@ const OTHERS = [
78
78
  validation("vocabulary.over-entry-budget", "the vocabulary has too many entries"),
79
79
  ["vocabulary.stale", "configuration_error", "the vocabulary changed meanwhile"],
80
80
  ];
81
+ export const INPUT_FIELD_REASONS = defineReasons([
82
+ {
83
+ reason: "input.field-conflict",
84
+ code: "validation_error",
85
+ message: "the input fields conflict",
86
+ details: ["fields"],
87
+ },
88
+ {
89
+ reason: "input.field-unsupported",
90
+ code: "validation_error",
91
+ message: "the input field is not supported",
92
+ details: ["fields"],
93
+ },
94
+ ]);
81
95
  /** Every reason this package raises; cli-base's own are known to the handler already. */
82
96
  export const REASONS = defineReasons([
83
97
  ...QUERY_REASONS,
98
+ ...INPUT_FIELD_REASONS,
84
99
  ...[...QUERY, ...OTHERS].map(([reason, code, message]) => ({
85
100
  reason,
86
101
  code,