@wirecat/cli-core 0.399.0 → 0.401.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 (259) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/README.md +1 -1
  3. package/dist/analysis/consents.d.ts +11 -6
  4. package/dist/analysis/consents.js +5 -2
  5. package/dist/cli/bot/mcp.js +2 -1
  6. package/dist/cli/bot/store.js +1 -1
  7. package/dist/cli/config-command.js +20 -1
  8. package/dist/cli/context.d.ts +2 -0
  9. package/dist/cli/context.js +1 -1
  10. package/dist/cli/effects.d.ts +4 -1
  11. package/dist/cli/effects.js +10 -2
  12. package/dist/cli/index.d.ts +3 -2
  13. package/dist/cli/index.js +3 -2
  14. package/dist/cli/json-fields.js +12 -1
  15. package/dist/cli/meeting-evidence-answer.d.ts +46 -0
  16. package/dist/cli/meeting-evidence-answer.js +22 -0
  17. package/dist/cli/meeting-preparation-answer.js +1 -13
  18. package/dist/cli/messenger/account-command.js +15 -6
  19. package/dist/cli/messenger/account-profile-query.d.ts +2 -0
  20. package/dist/cli/messenger/account-profile-query.js +13 -0
  21. package/dist/cli/messenger/account-sessions-command.js +1 -2
  22. package/dist/cli/messenger/admin-commands.js +12 -12
  23. package/dist/cli/messenger/admin-contacts-command.js +6 -3
  24. package/dist/cli/messenger/admin-folders-command.js +5 -5
  25. package/dist/cli/messenger/admin-moderation-command.js +4 -4
  26. package/dist/cli/messenger/admin-statistics-command.js +6 -14
  27. package/dist/cli/messenger/analysis-consents-query.d.ts +5 -0
  28. package/dist/cli/messenger/analysis-consents-query.js +20 -0
  29. package/dist/cli/messenger/archive-commands.js +3 -3
  30. package/dist/cli/messenger/attachments-command.js +3 -0
  31. package/dist/cli/messenger/backfill-command.js +5 -4
  32. package/dist/cli/messenger/chat-queries.d.ts +1 -0
  33. package/dist/cli/messenger/chat-queries.js +12 -2
  34. package/dist/cli/messenger/chats-command.js +2 -2
  35. package/dist/cli/messenger/chats-documents-command.js +7 -5
  36. package/dist/cli/messenger/chats-members-command.js +7 -3
  37. package/dist/cli/messenger/chats-read-command.js +1 -1
  38. package/dist/cli/messenger/chats-tracking-command.js +14 -6
  39. package/dist/cli/messenger/contacts-command.js +9 -5
  40. package/dist/cli/messenger/conversations-command.js +20 -16
  41. package/dist/cli/messenger/doctor-command.js +4 -1
  42. package/dist/cli/messenger/document-links-query.d.ts +2 -0
  43. package/dist/cli/messenger/document-links-query.js +9 -0
  44. package/dist/cli/messenger/download-command.js +1 -0
  45. package/dist/cli/messenger/flood-command.d.ts +2 -2
  46. package/dist/cli/messenger/flood-command.js +3 -3
  47. package/dist/cli/messenger/gaps-command.js +2 -2
  48. package/dist/cli/messenger/guard-commands.js +35 -13
  49. package/dist/cli/messenger/images-command.js +1 -0
  50. package/dist/cli/messenger/media-archive-command.js +2 -0
  51. package/dist/cli/messenger/media-archive-move-command.js +1 -0
  52. package/dist/cli/messenger/media-archive-timer-command.js +1 -1
  53. package/dist/cli/messenger/mentions-command.js +15 -2
  54. package/dist/cli/messenger/message-writes.d.ts +192 -2
  55. package/dist/cli/messenger/message-writes.js +6 -2
  56. package/dist/cli/messenger/messages-command.js +2 -0
  57. package/dist/cli/messenger/messages-delete-command.js +1 -0
  58. package/dist/cli/messenger/messages-edit-command.js +1 -0
  59. package/dist/cli/messenger/messages-evidence-command.js +3 -1
  60. package/dist/cli/messenger/messages-forward-command.js +1 -0
  61. package/dist/cli/messenger/messages-pin-command.js +3 -0
  62. package/dist/cli/messenger/messages-send-command.js +10 -6
  63. package/dist/cli/messenger/metadata-command.js +6 -1
  64. package/dist/cli/messenger/models-command.js +10 -5
  65. package/dist/cli/messenger/polls-command.js +4 -0
  66. package/dist/cli/messenger/private-people-command.js +3 -3
  67. package/dist/cli/messenger/rankings-command.js +6 -11
  68. package/dist/cli/messenger/reactions-command.js +2 -0
  69. package/dist/cli/messenger/recipients-query.d.ts +5 -0
  70. package/dist/cli/messenger/recipients-query.js +18 -0
  71. package/dist/cli/messenger/records-command.js +13 -8
  72. package/dist/cli/messenger/review.js +1 -1
  73. package/dist/cli/messenger/schedule-command.js +2 -2
  74. package/dist/cli/messenger/search-answers.js +2 -0
  75. package/dist/cli/messenger/search-command.js +3 -1
  76. package/dist/cli/messenger/searches-command.js +5 -1
  77. package/dist/cli/messenger/sends-query.d.ts +5 -0
  78. package/dist/cli/messenger/sends-query.js +33 -0
  79. package/dist/cli/messenger/serve-command.js +1 -0
  80. package/dist/cli/messenger/server-command.js +0 -3
  81. package/dist/cli/messenger/statistics-query.d.ts +14 -0
  82. package/dist/cli/messenger/statistics-query.js +143 -0
  83. package/dist/cli/messenger/stats-command.js +5 -5
  84. package/dist/cli/messenger/store-maintenance-command.js +10 -10
  85. package/dist/cli/messenger/stored.js +4 -1
  86. package/dist/cli/messenger/tags-command.js +7 -1
  87. package/dist/cli/messenger/tasks-command.js +57 -14
  88. package/dist/cli/messenger/transcribe-command.js +1 -0
  89. package/dist/cli/messenger/watch-answers.d.ts +6 -0
  90. package/dist/cli/messenger/watch-answers.js +69 -0
  91. package/dist/cli/messenger/watch-command.d.ts +1 -1
  92. package/dist/cli/messenger/watch-command.js +56 -7
  93. package/dist/cli/program.js +5 -1
  94. package/dist/cli/runs/command.js +25 -38
  95. package/dist/cli/runs/query.d.ts +5 -0
  96. package/dist/cli/runs/query.js +32 -0
  97. package/dist/cli/runs/search-command.d.ts +4 -0
  98. package/dist/cli/runs/search-command.js +27 -0
  99. package/dist/cli/runs/search-query.d.ts +4 -0
  100. package/dist/cli/runs/search-query.js +50 -0
  101. package/dist/cli/runs/search.d.ts +2 -1
  102. package/dist/cli/runs/search.js +6 -6
  103. package/dist/documents/index.d.ts +1 -0
  104. package/dist/documents/index.js +1 -0
  105. package/dist/domain/attachments.js +9 -1
  106. package/dist/domain/rankings-options.js +3 -3
  107. package/dist/entities/account-change.d.ts +89 -0
  108. package/dist/entities/account-change.js +20 -0
  109. package/dist/entities/account-profile.d.ts +7 -0
  110. package/dist/entities/account-profile.js +8 -0
  111. package/dist/entities/analysis-consent.d.ts +9 -0
  112. package/dist/entities/analysis-consent.js +4 -0
  113. package/dist/entities/attachment-results.d.ts +96 -0
  114. package/dist/entities/attachment-results.js +31 -0
  115. package/dist/entities/batch-result.d.ts +27 -0
  116. package/dist/entities/batch-result.js +18 -0
  117. package/dist/entities/chat-admin.d.ts +234 -0
  118. package/dist/entities/chat-admin.js +84 -0
  119. package/dist/entities/chat-change.d.ts +25 -0
  120. package/dist/entities/chat-change.js +11 -0
  121. package/dist/entities/chat-metadata.d.ts +34 -0
  122. package/dist/entities/chat-metadata.js +15 -0
  123. package/dist/entities/chat-moderation.d.ts +44 -0
  124. package/dist/entities/chat-moderation.js +37 -0
  125. package/dist/entities/chat-tracking.d.ts +26 -0
  126. package/dist/entities/chat-tracking.js +23 -0
  127. package/dist/entities/contact-activity.d.ts +52 -0
  128. package/dist/entities/contact-activity.js +42 -0
  129. package/dist/entities/contact-context.d.ts +1568 -0
  130. package/dist/entities/contact-context.js +191 -0
  131. package/dist/entities/contact-write.d.ts +22 -0
  132. package/dist/entities/contact-write.js +6 -0
  133. package/dist/entities/conversation-preparation.d.ts +63 -0
  134. package/dist/entities/conversation-preparation.js +23 -0
  135. package/dist/entities/conversation-results.d.ts +567 -0
  136. package/dist/entities/conversation-results.js +94 -0
  137. package/dist/entities/document-link.d.ts +13 -0
  138. package/dist/entities/document-link.js +11 -0
  139. package/dist/entities/extraction-report.d.ts +95 -0
  140. package/dist/entities/extraction-report.js +34 -0
  141. package/dist/entities/hit.d.ts +4 -0
  142. package/dist/entities/hit.js +4 -0
  143. package/dist/entities/image-embedding.d.ts +9 -0
  144. package/dist/entities/image-embedding.js +10 -0
  145. package/dist/entities/index.d.ts +8284 -1921
  146. package/dist/entities/index.js +178 -3
  147. package/dist/entities/listener.d.ts +2150 -0
  148. package/dist/entities/listener.js +46 -0
  149. package/dist/entities/media-archive.d.ts +43 -0
  150. package/dist/entities/media-archive.js +32 -0
  151. package/dist/entities/meeting-evidence.d.ts +86 -0
  152. package/dist/entities/meeting-evidence.js +25 -0
  153. package/dist/entities/meeting-preparation-parts.d.ts +14 -0
  154. package/dist/entities/meeting-preparation-parts.js +15 -13
  155. package/dist/entities/meeting-task-proposal.d.ts +14 -0
  156. package/dist/entities/meeting-task-proposal.js +19 -0
  157. package/dist/entities/meeting.d.ts +1 -1
  158. package/dist/entities/meeting.js +1 -1
  159. package/dist/entities/mention.d.ts +63 -0
  160. package/dist/entities/mention.js +44 -0
  161. package/dist/entities/message-change.d.ts +19 -0
  162. package/dist/entities/message-change.js +6 -0
  163. package/dist/entities/message-context.d.ts +617 -0
  164. package/dist/entities/message-context.js +20 -0
  165. package/dist/entities/message-read.d.ts +73 -0
  166. package/dist/entities/message-read.js +58 -0
  167. package/dist/entities/message-transfer.d.ts +379 -0
  168. package/dist/entities/message-transfer.js +83 -0
  169. package/dist/entities/message-write.d.ts +378 -0
  170. package/dist/entities/message-write.js +10 -0
  171. package/dist/entities/model-key.d.ts +14 -0
  172. package/dist/entities/model-key.js +10 -0
  173. package/dist/entities/poll.d.ts +40 -0
  174. package/dist/entities/poll.js +16 -0
  175. package/dist/entities/private-contact.d.ts +10 -0
  176. package/dist/entities/private-contact.js +4 -0
  177. package/dist/entities/reaction-change.d.ts +7 -0
  178. package/dist/entities/reaction-change.js +8 -0
  179. package/dist/entities/recipient.d.ts +29 -0
  180. package/dist/entities/recipient.js +11 -0
  181. package/dist/entities/recorded-run.d.ts +103 -0
  182. package/dist/entities/recorded-run.js +44 -0
  183. package/dist/entities/saved-search.d.ts +4 -0
  184. package/dist/entities/saved-search.js +2 -0
  185. package/dist/entities/send-attempt.d.ts +31 -0
  186. package/dist/entities/send-attempt.js +29 -0
  187. package/dist/entities/store-maintenance.d.ts +319 -0
  188. package/dist/entities/store-maintenance.js +145 -0
  189. package/dist/entities/store-records.d.ts +442 -0
  190. package/dist/entities/store-records.js +99 -0
  191. package/dist/entities/tag-change.d.ts +74 -0
  192. package/dist/entities/tag-change.js +31 -0
  193. package/dist/entities/task-pair.d.ts +31 -0
  194. package/dist/entities/task-pair.js +23 -0
  195. package/dist/entities/task-results.d.ts +524 -0
  196. package/dist/entities/task-results.js +142 -0
  197. package/dist/errors/reasons.js +3 -0
  198. package/dist/mcp/agent.d.ts +3 -1
  199. package/dist/mcp/agent.js +17 -10
  200. package/dist/mcp/bot/server.d.ts +2 -0
  201. package/dist/mcp/bot/server.js +1 -0
  202. package/dist/mcp/server.js +3 -1
  203. package/dist/mcp/tools/attachments.js +1 -0
  204. package/dist/meetings/cli/index.js +4 -2
  205. package/dist/meetings/cli/passage.js +1 -0
  206. package/dist/meetings/index.d.ts +2 -1
  207. package/dist/meetings/index.js +1 -0
  208. package/dist/meetings/links.d.ts +16 -0
  209. package/dist/meetings/read-answers.d.ts +185 -0
  210. package/dist/meetings/read-answers.js +213 -0
  211. package/dist/ports/messenger.d.ts +10 -1
  212. package/dist/runs/run.d.ts +10 -2
  213. package/dist/runs/run.js +11 -3
  214. package/dist/sends/guard.d.ts +1 -1
  215. package/dist/sends/guard.js +9 -5
  216. package/dist/sends/journal.d.ts +9 -2
  217. package/dist/sends/journal.js +9 -2
  218. package/dist/sends/permissions.d.ts +5 -1
  219. package/dist/sends/permissions.js +42 -2
  220. package/dist/sends/recipients.d.ts +8 -0
  221. package/dist/sends/recipients.js +9 -0
  222. package/dist/sends/upload.d.ts +4 -4
  223. package/dist/sends/upload.js +24 -20
  224. package/dist/services/admin-statistics.js +3 -3
  225. package/dist/services/chat-documents.d.ts +1 -0
  226. package/dist/services/chat-documents.js +9 -3
  227. package/dist/services/chats.d.ts +1 -1
  228. package/dist/services/chats.js +5 -2
  229. package/dist/services/documents/mirrors.d.ts +98 -0
  230. package/dist/services/documents/mirrors.js +144 -0
  231. package/dist/services/meeting-links.d.ts +2 -17
  232. package/dist/services/messages.js +1 -0
  233. package/dist/services/search-all-meetings.js +21 -8
  234. package/dist/services/task-rules.d.ts +1 -1
  235. package/dist/services/tasks.d.ts +2 -2
  236. package/dist/services/tasks.js +1 -1
  237. package/dist/store/exports.d.ts +1 -1
  238. package/dist/store/exports.js +1 -1
  239. package/dist/store/messages.d.ts +3 -1
  240. package/dist/store/messages.js +2 -2
  241. package/dist/store/roster.d.ts +4 -1
  242. package/dist/store/roster.js +2 -2
  243. package/dist/store/sqlite/chats.d.ts +12 -0
  244. package/dist/store/sqlite/chats.js +1 -0
  245. package/dist/store/sqlite/document-links.d.ts +1 -1
  246. package/dist/store/sqlite/document-links.js +5 -5
  247. package/dist/store/sqlite/drizzle/bun.js +3 -3
  248. package/dist/store/sqlite/drizzle/bun.js.map +1 -1
  249. package/dist/store/sqlite/drizzle/core.js +2 -2
  250. package/dist/store/sqlite/drizzle/core.js.map +1 -1
  251. package/dist/store/sqlite/drizzle/node.js +3 -3
  252. package/dist/store/sqlite/drizzle/node.js.map +1 -1
  253. package/dist/store/sqlite/drizzle/{shared-O7CTKP45.js → shared-HKXF6HKX.js} +57 -57
  254. package/dist/store/sqlite/drizzle/{shared-O7CTKP45.js.map → shared-HKXF6HKX.js.map} +1 -1
  255. package/dist/store/sqlite/involvements.js +2 -1
  256. package/dist/store/sqlite/roster.d.ts +2 -1
  257. package/dist/store/sqlite/roster.js +3 -2
  258. package/package.json +2 -2
  259. package/parity.json +14 -69
@@ -0,0 +1,99 @@
1
+ import * as v from "valibot";
2
+ import { batchResult } from "./batch-result.js";
3
+ import { chat } from "./chat.js";
4
+ import { catchUpPreparation } from "./conversation-preparation.js";
5
+ import { count, id, text, time } from "./fields.js";
6
+ import { job } from "./job.js";
7
+ import { message } from "./message.js";
8
+ import { messageSyncStarted } from "./message-transfer.js";
9
+ const range = v.strictObject({ from: v.number(), to: v.number() });
10
+ export const storeChatStatus = v.strictObject({
11
+ chat_id: id,
12
+ title: v.nullable(text),
13
+ kind: chat.entries.kind,
14
+ messages: count,
15
+ oldest_at: v.nullable(time),
16
+ newest_at: v.nullable(time),
17
+ last_stored_at: v.nullable(time),
18
+ held: v.array(range),
19
+ });
20
+ export const storeClear = v.strictObject({
21
+ cleared: v.boolean(),
22
+ dry_run: v.optional(v.literal(true)),
23
+ chats: count,
24
+ messages: count,
25
+ left: v.array(v.strictObject({ id, title: v.nullable(text), messages: count })),
26
+ });
27
+ /** Exports answer with message rows, one written file, or an incremental directory receipt. */
28
+ export const storeExport = v.union([
29
+ message,
30
+ v.strictObject({
31
+ path: text,
32
+ format: v.picklist(["jsonl", "markdown"]),
33
+ count,
34
+ encrypted: v.optional(v.literal(true)),
35
+ }),
36
+ v.strictObject({
37
+ path: text,
38
+ encrypted: v.optional(v.literal(true)),
39
+ chats: v.array(v.strictObject({ id, title: v.nullable(text), file: v.nullable(text), messages: count, deleted: count })),
40
+ }),
41
+ ]);
42
+ export const storeGapPlan = v.strictObject({
43
+ version: v.literal(1),
44
+ scope: v.literal("interior"),
45
+ account: v.strictObject({ provider: text, account: id }),
46
+ chat: id,
47
+ ordering: v.picklist(["id", "time"]),
48
+ held: v.array(range),
49
+ gaps: v.array(range),
50
+ unknown: v.strictObject({ older: v.boolean(), newer: v.literal(true) }),
51
+ fingerprint: text,
52
+ limits: v.strictObject({ max_gaps: count, limit: count, time_ms: count, page_size: count }),
53
+ });
54
+ export const storeGapRepair = v.union([
55
+ messageSyncStarted,
56
+ v.strictObject({
57
+ version: v.literal(1),
58
+ scope: v.literal("interior"),
59
+ chat: id,
60
+ before: storeGapPlan,
61
+ after: storeGapPlan,
62
+ repaired: v.array(range),
63
+ fetched: count,
64
+ requests: count,
65
+ complete: v.boolean(),
66
+ prepared: v.optional(catchUpPreparation),
67
+ stopped: v.optional(v.picklist(["bound", "partial_or_inaccessible", "fetch_failed"])),
68
+ }),
69
+ ]);
70
+ /** Persisted older jobs can lack recovery flags; newer diagnostics remain available. */
71
+ const problem = v.objectWithRest({ code: text, message: text, retryable: v.optional(v.boolean()), retry_after_ms: v.optional(v.number()) }, v.unknown());
72
+ const progress = v.strictObject({
73
+ job: id,
74
+ profile: text,
75
+ done: count,
76
+ total: v.nullable(count),
77
+ remaining: v.nullable(count),
78
+ state: v.picklist(["partial", "complete"]),
79
+ updated_at: v.nullable(time),
80
+ cursor_age_ms: v.nullable(count),
81
+ });
82
+ export const storeJobDetails = v.strictObject({
83
+ ...v.omit(job, ["id", "issue", "error"]).entries,
84
+ job: id,
85
+ profile: text,
86
+ issue: v.optional(problem),
87
+ error: v.optional(problem),
88
+ batch: v.optional(batchResult),
89
+ resume: v.optional(v.strictObject({ before: v.optional(text) })),
90
+ progress,
91
+ held: v.optional(v.array(range)),
92
+ log: text,
93
+ });
94
+ export const storeJobCancel = v.strictObject({ job: id, cancelled: v.literal(true) });
95
+ export const storeJobRetry = v.union([
96
+ v.strictObject({ ...messageSyncStarted.entries, retried: id }),
97
+ v.strictObject({ retried: id, chat: text, error: v.strictObject({ code: text, message: text }) }),
98
+ ]);
99
+ export const storeJobClear = v.strictObject({ cleared: v.array(id) });
@@ -0,0 +1,74 @@
1
+ import * as v from "valibot";
2
+ export declare const tagTarget: v.VariantSchema<"type", [v.StrictObjectSchema<{
3
+ readonly type: v.LiteralSchema<"chat", undefined>;
4
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
5
+ }, undefined>, v.StrictObjectSchema<{
6
+ readonly type: v.LiteralSchema<"contact", undefined>;
7
+ readonly person_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
8
+ }, undefined>, v.StrictObjectSchema<{
9
+ readonly type: v.LiteralSchema<"message", undefined>;
10
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
11
+ readonly message_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
12
+ readonly locator: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
13
+ }, undefined>, v.StrictObjectSchema<{
14
+ readonly type: v.LiteralSchema<"task", undefined>;
15
+ readonly task_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
16
+ }, undefined>], undefined>;
17
+ export declare const tagChange: v.UnionSchema<[v.StrictObjectSchema<{
18
+ readonly target: v.VariantSchema<"type", [v.StrictObjectSchema<{
19
+ readonly type: v.LiteralSchema<"chat", undefined>;
20
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
21
+ }, undefined>, v.StrictObjectSchema<{
22
+ readonly type: v.LiteralSchema<"contact", undefined>;
23
+ readonly person_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
24
+ }, undefined>, v.StrictObjectSchema<{
25
+ readonly type: v.LiteralSchema<"message", undefined>;
26
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
27
+ readonly message_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
28
+ readonly locator: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
29
+ }, undefined>, v.StrictObjectSchema<{
30
+ readonly type: v.LiteralSchema<"task", undefined>;
31
+ readonly task_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
32
+ }, undefined>], undefined>;
33
+ readonly unchanged: v.ArraySchema<v.StringSchema<undefined>, undefined>;
34
+ readonly added: v.ArraySchema<v.StringSchema<undefined>, undefined>;
35
+ }, undefined>, v.StrictObjectSchema<{
36
+ readonly target: v.VariantSchema<"type", [v.StrictObjectSchema<{
37
+ readonly type: v.LiteralSchema<"chat", undefined>;
38
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
39
+ }, undefined>, v.StrictObjectSchema<{
40
+ readonly type: v.LiteralSchema<"contact", undefined>;
41
+ readonly person_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
42
+ }, undefined>, v.StrictObjectSchema<{
43
+ readonly type: v.LiteralSchema<"message", undefined>;
44
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
45
+ readonly message_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
46
+ readonly locator: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
47
+ }, undefined>, v.StrictObjectSchema<{
48
+ readonly type: v.LiteralSchema<"task", undefined>;
49
+ readonly task_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
50
+ }, undefined>], undefined>;
51
+ readonly unchanged: v.ArraySchema<v.StringSchema<undefined>, undefined>;
52
+ readonly removed: v.ArraySchema<v.StringSchema<undefined>, undefined>;
53
+ }, undefined>], undefined>;
54
+ export declare const automaticTags: v.StrictObjectSchema<{
55
+ readonly items: v.ArraySchema<v.UnionSchema<[v.StrictObjectSchema<{
56
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
57
+ readonly tags: v.ArraySchema<v.StrictObjectSchema<{
58
+ readonly tag: v.StringSchema<undefined>;
59
+ readonly score: v.NumberSchema<undefined>;
60
+ readonly fields: v.ArraySchema<v.PicklistSchema<["title", "username", "description"], undefined>, undefined>;
61
+ }, undefined>, undefined>;
62
+ readonly algorithm: v.StringSchema<undefined>;
63
+ readonly fetched_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>;
64
+ readonly source: v.PicklistSchema<["metadata", "stored-chat"], undefined>;
65
+ }, undefined>, v.StrictObjectSchema<{
66
+ readonly chat_id: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>]>;
67
+ readonly error: v.StrictObjectSchema<{
68
+ readonly code: v.StringSchema<undefined>;
69
+ readonly message: v.StringSchema<undefined>;
70
+ }, undefined>;
71
+ }, undefined>], undefined>, undefined>;
72
+ readonly has_more: v.BooleanSchema<undefined>;
73
+ readonly dry_run: v.BooleanSchema<undefined>;
74
+ }, undefined>;
@@ -0,0 +1,31 @@
1
+ import * as v from "valibot";
2
+ import { id, reference, text, time } from "./fields.js";
3
+ export const tagTarget = v.variant("type", [
4
+ v.strictObject({ type: v.literal("chat"), chat_id: id }),
5
+ v.strictObject({ type: v.literal("contact"), person_id: id }),
6
+ v.strictObject({ type: v.literal("message"), chat_id: id, message_id: id, locator: reference }),
7
+ v.strictObject({ type: v.literal("task"), task_id: id }),
8
+ ]);
9
+ const receipt = { target: tagTarget, unchanged: v.array(text) };
10
+ export const tagChange = v.union([
11
+ v.strictObject({ ...receipt, added: v.array(text) }),
12
+ v.strictObject({ ...receipt, removed: v.array(text) }),
13
+ ]);
14
+ export const automaticTags = v.strictObject({
15
+ items: v.array(v.union([
16
+ v.strictObject({
17
+ chat_id: id,
18
+ tags: v.array(v.strictObject({
19
+ tag: text,
20
+ score: v.number(),
21
+ fields: v.array(v.picklist(["title", "username", "description"])),
22
+ })),
23
+ algorithm: text,
24
+ fetched_at: v.nullable(time),
25
+ source: v.picklist(["metadata", "stored-chat"]),
26
+ }),
27
+ v.strictObject({ chat_id: id, error: v.strictObject({ code: text, message: text }) }),
28
+ ])),
29
+ has_more: v.boolean(),
30
+ dry_run: v.boolean(),
31
+ });
@@ -0,0 +1,31 @@
1
+ import * as v from "valibot";
2
+ export declare const taskPair: v.StrictObjectSchema<{
3
+ readonly task: v.NullableSchema<v.StrictObjectSchema<{
4
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
5
+ readonly key: v.StringSchema<undefined>;
6
+ readonly title: v.StringSchema<undefined>;
7
+ readonly status: v.StringSchema<undefined>;
8
+ }, undefined>, undefined>;
9
+ readonly source: v.NullableSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>, undefined>;
10
+ readonly other: v.StrictObjectSchema<{
11
+ readonly ref: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, "a reference such as `note:42`">]>;
12
+ readonly key: v.StringSchema<undefined>;
13
+ readonly title: v.StringSchema<undefined>;
14
+ readonly status: v.StringSchema<undefined>;
15
+ }, undefined>;
16
+ readonly score: v.NumberSchema<undefined>;
17
+ readonly band: v.PicklistSchema<["likely", "maybe", "different"], undefined>;
18
+ readonly levels: v.StrictObjectSchema<{
19
+ readonly text: v.PicklistSchema<["high", "middle", "low"], undefined>;
20
+ readonly person: v.PicklistSchema<["same", "different", "unknown"], undefined>;
21
+ readonly amount: v.PicklistSchema<["equal", "different", "missing"], undefined>;
22
+ readonly category: v.PicklistSchema<["same", "different", "unknown"], undefined>;
23
+ readonly due: v.PicklistSchema<["near", "far", "missing"], undefined>;
24
+ readonly reply: v.PicklistSchema<["yes", "no"], undefined>;
25
+ readonly time: v.PicklistSchema<["near", "weeks", "far"], undefined>;
26
+ }, undefined>;
27
+ readonly reasons: v.ArraySchema<v.StringSchema<undefined>, undefined>;
28
+ readonly decision: v.PicklistSchema<["review", "unsure", "merged", "rejected", "unmerged", "attached", "new"], undefined>;
29
+ readonly decided_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>;
30
+ 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`">]>;
31
+ }, undefined>;
@@ -0,0 +1,23 @@
1
+ import * as v from "valibot";
2
+ import { reference, text, time } from "./fields.js";
3
+ const side = v.strictObject({ ref: reference, key: text, title: text, status: text });
4
+ export const taskPair = v.strictObject({
5
+ task: v.nullable(side),
6
+ source: v.nullable(reference),
7
+ other: side,
8
+ score: v.number(),
9
+ band: v.picklist(["likely", "maybe", "different"]),
10
+ levels: v.strictObject({
11
+ text: v.picklist(["high", "middle", "low"]),
12
+ person: v.picklist(["same", "different", "unknown"]),
13
+ amount: v.picklist(["equal", "different", "missing"]),
14
+ category: v.picklist(["same", "different", "unknown"]),
15
+ due: v.picklist(["near", "far", "missing"]),
16
+ reply: v.picklist(["yes", "no"]),
17
+ time: v.picklist(["near", "weeks", "far"]),
18
+ }),
19
+ reasons: v.array(text),
20
+ decision: v.picklist(["review", "unsure", "merged", "rejected", "unmerged", "attached", "new"]),
21
+ decided_at: v.nullable(time),
22
+ created_at: time,
23
+ });