@wirecat/cli-core 0.284.0 → 0.286.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 (273) hide show
  1. package/dist/attachments/markup.d.ts.map +1 -1
  2. package/dist/attachments/markup.js +54 -19
  3. package/dist/attachments/markup.js.map +1 -1
  4. package/dist/background/units.d.ts.map +1 -1
  5. package/dist/background/units.js +1 -0
  6. package/dist/background/units.js.map +1 -1
  7. package/dist/cli/index.d.ts +3 -1
  8. package/dist/cli/index.d.ts.map +1 -1
  9. package/dist/cli/index.js +3 -1
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/list-query.d.ts +9 -2
  12. package/dist/cli/list-query.d.ts.map +1 -1
  13. package/dist/cli/list-query.js +39 -13
  14. package/dist/cli/list-query.js.map +1 -1
  15. package/dist/cli/meeting-preparation-answer.d.ts +20 -0
  16. package/dist/cli/meeting-preparation-answer.d.ts.map +1 -1
  17. package/dist/cli/meeting-preparation-answer.js +16 -0
  18. package/dist/cli/meeting-preparation-answer.js.map +1 -1
  19. package/dist/cli/meeting-preparation-read.d.ts +20 -0
  20. package/dist/cli/meeting-preparation-read.d.ts.map +1 -1
  21. package/dist/cli/messenger/mention-points.d.ts.map +1 -1
  22. package/dist/cli/messenger/mention-points.js +1 -1
  23. package/dist/cli/messenger/mention-points.js.map +1 -1
  24. package/dist/cli/messenger/mentions-command.d.ts.map +1 -1
  25. package/dist/cli/messenger/mentions-command.js +33 -3
  26. package/dist/cli/messenger/mentions-command.js.map +1 -1
  27. package/dist/cli/messenger/messages-search-command.d.ts +2 -3
  28. package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
  29. package/dist/cli/messenger/messages-search-command.js +24 -54
  30. package/dist/cli/messenger/messages-search-command.js.map +1 -1
  31. package/dist/cli/messenger/review.js +2 -1
  32. package/dist/cli/messenger/review.js.map +1 -1
  33. package/dist/cli/messenger/search-answers.d.ts +3 -0
  34. package/dist/cli/messenger/search-answers.d.ts.map +1 -1
  35. package/dist/cli/messenger/search-answers.js +2 -0
  36. package/dist/cli/messenger/search-answers.js.map +1 -1
  37. package/dist/cli/messenger/search-command.d.ts.map +1 -1
  38. package/dist/cli/messenger/search-command.js +15 -15
  39. package/dist/cli/messenger/search-command.js.map +1 -1
  40. package/dist/cli/messenger/serve-command.js +3 -2
  41. package/dist/cli/messenger/serve-command.js.map +1 -1
  42. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  43. package/dist/cli/messenger/tasks-command.js +83 -8
  44. package/dist/cli/messenger/tasks-command.js.map +1 -1
  45. package/dist/cli/moved.d.ts +13 -0
  46. package/dist/cli/moved.d.ts.map +1 -0
  47. package/dist/cli/moved.js +18 -0
  48. package/dist/cli/moved.js.map +1 -0
  49. package/dist/cli/program.d.ts.map +1 -1
  50. package/dist/cli/program.js +16 -0
  51. package/dist/cli/program.js.map +1 -1
  52. package/dist/cli/reasons.d.ts.map +1 -1
  53. package/dist/cli/reasons.js +3 -0
  54. package/dist/cli/reasons.js.map +1 -1
  55. package/dist/cli/store-settings.d.ts +1 -2
  56. package/dist/cli/store-settings.d.ts.map +1 -1
  57. package/dist/cli/store-settings.js +53 -3
  58. package/dist/cli/store-settings.js.map +1 -1
  59. package/dist/domain/mentions.d.ts +14 -0
  60. package/dist/domain/mentions.d.ts.map +1 -1
  61. package/dist/domain/mentions.js +25 -0
  62. package/dist/domain/mentions.js.map +1 -1
  63. package/dist/domain/models.d.ts +1 -0
  64. package/dist/domain/models.d.ts.map +1 -1
  65. package/dist/domain/task-categories.d.ts +25 -0
  66. package/dist/domain/task-categories.d.ts.map +1 -0
  67. package/dist/domain/task-categories.js +155 -0
  68. package/dist/domain/task-categories.js.map +1 -0
  69. package/dist/entities/fact.d.ts +5 -0
  70. package/dist/entities/fact.d.ts.map +1 -1
  71. package/dist/entities/fact.js +2 -0
  72. package/dist/entities/fact.js.map +1 -1
  73. package/dist/entities/index.d.ts +38 -1
  74. package/dist/entities/index.d.ts.map +1 -1
  75. package/dist/entities/index.js +3 -1
  76. package/dist/entities/index.js.map +1 -1
  77. package/dist/entities/meeting-preparation.d.ts +20 -0
  78. package/dist/entities/meeting-preparation.d.ts.map +1 -1
  79. package/dist/entities/meeting-preparation.js +20 -0
  80. package/dist/entities/meeting-preparation.js.map +1 -1
  81. package/dist/entities/relationship.d.ts +16 -0
  82. package/dist/entities/relationship.d.ts.map +1 -0
  83. package/dist/entities/relationship.js +18 -0
  84. package/dist/entities/relationship.js.map +1 -0
  85. package/dist/mcp/http/oauth.d.ts.map +1 -1
  86. package/dist/mcp/http/oauth.js +1 -0
  87. package/dist/mcp/http/oauth.js.map +1 -1
  88. package/dist/mcp/instructions.d.ts.map +1 -1
  89. package/dist/mcp/instructions.js +3 -2
  90. package/dist/mcp/instructions.js.map +1 -1
  91. package/dist/mcp/meeting-preparation.d.ts +27 -3
  92. package/dist/mcp/meeting-preparation.d.ts.map +1 -1
  93. package/dist/mcp/meeting-preparation.js +7 -3
  94. package/dist/mcp/meeting-preparation.js.map +1 -1
  95. package/dist/mcp/surface.d.ts.map +1 -1
  96. package/dist/mcp/surface.js +4 -0
  97. package/dist/mcp/surface.js.map +1 -1
  98. package/dist/mcp/text.d.ts +1 -2
  99. package/dist/mcp/text.d.ts.map +1 -1
  100. package/dist/mcp/text.js +2 -9
  101. package/dist/mcp/text.js.map +1 -1
  102. package/dist/mcp/tool.d.ts +1 -3
  103. package/dist/mcp/tool.d.ts.map +1 -1
  104. package/dist/mcp/tool.js +2 -3
  105. package/dist/mcp/tool.js.map +1 -1
  106. package/dist/mcp/tools/search-tools.d.ts.map +1 -1
  107. package/dist/mcp/tools/search-tools.js +21 -36
  108. package/dist/mcp/tools/search-tools.js.map +1 -1
  109. package/dist/mcp/tools/search.d.ts +0 -12
  110. package/dist/mcp/tools/search.d.ts.map +1 -1
  111. package/dist/mcp/tools/search.js +0 -12
  112. package/dist/mcp/tools/search.js.map +1 -1
  113. package/dist/mcp/tools/tasks.d.ts.map +1 -1
  114. package/dist/mcp/tools/tasks.js +121 -7
  115. package/dist/mcp/tools/tasks.js.map +1 -1
  116. package/dist/meetings/index.d.ts +1 -0
  117. package/dist/meetings/index.d.ts.map +1 -1
  118. package/dist/meetings/index.js.map +1 -1
  119. package/dist/meetings/mcp/agent-text.d.ts +23 -0
  120. package/dist/meetings/mcp/agent-text.d.ts.map +1 -0
  121. package/dist/meetings/mcp/agent-text.js +43 -0
  122. package/dist/meetings/mcp/agent-text.js.map +1 -0
  123. package/dist/meetings/mcp/index.d.ts +18 -53
  124. package/dist/meetings/mcp/index.d.ts.map +1 -1
  125. package/dist/meetings/mcp/index.js +9 -3
  126. package/dist/meetings/mcp/index.js.map +1 -1
  127. package/dist/meetings/mcp/passage.d.ts +7 -3
  128. package/dist/meetings/mcp/passage.d.ts.map +1 -1
  129. package/dist/meetings/mcp/passage.js +4 -3
  130. package/dist/meetings/mcp/passage.js.map +1 -1
  131. package/dist/meetings/mcp/project-evidence.d.ts +7 -3
  132. package/dist/meetings/mcp/project-evidence.d.ts.map +1 -1
  133. package/dist/meetings/mcp/project-evidence.js +7 -3
  134. package/dist/meetings/mcp/project-evidence.js.map +1 -1
  135. package/dist/meetings/mcp/search.d.ts +7 -3
  136. package/dist/meetings/mcp/search.d.ts.map +1 -1
  137. package/dist/meetings/mcp/search.js +7 -3
  138. package/dist/meetings/mcp/search.js.map +1 -1
  139. package/dist/meetings/preparation-knowledge.d.ts +21 -0
  140. package/dist/meetings/preparation-knowledge.d.ts.map +1 -0
  141. package/dist/meetings/preparation-knowledge.js +2 -0
  142. package/dist/meetings/preparation-knowledge.js.map +1 -0
  143. package/dist/parity/manifest.d.ts.map +1 -1
  144. package/dist/parity/manifest.js +4 -0
  145. package/dist/parity/manifest.js.map +1 -1
  146. package/dist/readers/doc/index.d.ts.map +1 -1
  147. package/dist/readers/doc/index.js +1 -0
  148. package/dist/readers/doc/index.js.map +1 -1
  149. package/dist/readers/html/index.d.ts.map +1 -1
  150. package/dist/readers/html/index.js +16 -1
  151. package/dist/readers/html/index.js.map +1 -1
  152. package/dist/search/account-list.js +1 -1
  153. package/dist/search/account-list.js.map +1 -1
  154. package/dist/sends/permissions.d.ts.map +1 -1
  155. package/dist/sends/permissions.js +4 -0
  156. package/dist/sends/permissions.js.map +1 -1
  157. package/dist/services/agenda.d.ts +4 -0
  158. package/dist/services/agenda.d.ts.map +1 -1
  159. package/dist/services/agenda.js +6 -1
  160. package/dist/services/agenda.js.map +1 -1
  161. package/dist/services/deps.d.ts +3 -3
  162. package/dist/services/deps.d.ts.map +1 -1
  163. package/dist/services/deps.js +33 -14
  164. package/dist/services/deps.js.map +1 -1
  165. package/dist/services/inbox.d.ts.map +1 -1
  166. package/dist/services/inbox.js +5 -1
  167. package/dist/services/inbox.js.map +1 -1
  168. package/dist/services/meeting-knowledge-preparation.d.ts +5 -0
  169. package/dist/services/meeting-knowledge-preparation.d.ts.map +1 -0
  170. package/dist/services/meeting-knowledge-preparation.js +87 -0
  171. package/dist/services/meeting-knowledge-preparation.js.map +1 -0
  172. package/dist/services/meeting-preparation-types.d.ts +13 -2
  173. package/dist/services/meeting-preparation-types.d.ts.map +1 -1
  174. package/dist/services/meeting-preparation.d.ts.map +1 -1
  175. package/dist/services/meeting-preparation.js +4 -1
  176. package/dist/services/meeting-preparation.js.map +1 -1
  177. package/dist/services/mentions.d.ts +16 -2
  178. package/dist/services/mentions.d.ts.map +1 -1
  179. package/dist/services/mentions.js +33 -3
  180. package/dist/services/mentions.js.map +1 -1
  181. package/dist/services/messages-search.d.ts.map +1 -1
  182. package/dist/services/messages-search.js +1 -1
  183. package/dist/services/messages-search.js.map +1 -1
  184. package/dist/services/search-kind.js +2 -2
  185. package/dist/services/search-kind.js.map +1 -1
  186. package/dist/services/task-categories.d.ts +2 -12
  187. package/dist/services/task-categories.d.ts.map +1 -1
  188. package/dist/services/task-categories.js +2 -74
  189. package/dist/services/task-categories.js.map +1 -1
  190. package/dist/services/task-rules.d.ts +5 -1
  191. package/dist/services/task-rules.d.ts.map +1 -1
  192. package/dist/services/task-rules.js +13 -13
  193. package/dist/services/task-rules.js.map +1 -1
  194. package/dist/services/tasks.d.ts +38 -3
  195. package/dist/services/tasks.d.ts.map +1 -1
  196. package/dist/services/tasks.js +83 -8
  197. package/dist/services/tasks.js.map +1 -1
  198. package/dist/store/index.d.ts +2 -0
  199. package/dist/store/index.d.ts.map +1 -1
  200. package/dist/store/index.js +1 -0
  201. package/dist/store/index.js.map +1 -1
  202. package/dist/store/sqlite/lucene.d.ts.map +1 -1
  203. package/dist/store/sqlite/lucene.js +13 -22
  204. package/dist/store/sqlite/lucene.js.map +1 -1
  205. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  206. package/dist/store/sqlite/manifest.js +2 -0
  207. package/dist/store/sqlite/manifest.js.map +1 -1
  208. package/dist/store/sqlite/meeting-preparation-knowledge.d.ts +4 -0
  209. package/dist/store/sqlite/meeting-preparation-knowledge.d.ts.map +1 -0
  210. package/dist/store/sqlite/meeting-preparation-knowledge.js +61 -0
  211. package/dist/store/sqlite/meeting-preparation-knowledge.js.map +1 -0
  212. package/dist/store/sqlite/meetings.d.ts +2 -2
  213. package/dist/store/sqlite/meetings.d.ts.map +1 -1
  214. package/dist/store/sqlite/meetings.js +2 -0
  215. package/dist/store/sqlite/meetings.js.map +1 -1
  216. package/dist/store/sqlite/mention-drain.d.ts +24 -1
  217. package/dist/store/sqlite/mention-drain.d.ts.map +1 -1
  218. package/dist/store/sqlite/mention-drain.js +40 -3
  219. package/dist/store/sqlite/mention-drain.js.map +1 -1
  220. package/dist/store/sqlite/mentions.d.ts +6 -3
  221. package/dist/store/sqlite/mentions.d.ts.map +1 -1
  222. package/dist/store/sqlite/mentions.js +29 -12
  223. package/dist/store/sqlite/mentions.js.map +1 -1
  224. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  225. package/dist/store/sqlite/migrations.generated.js +23 -0
  226. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  227. package/dist/store/sqlite/note-search.d.ts.map +1 -1
  228. package/dist/store/sqlite/note-search.js +11 -2
  229. package/dist/store/sqlite/note-search.js.map +1 -1
  230. package/dist/store/sqlite/schema.d.ts +231 -0
  231. package/dist/store/sqlite/schema.d.ts.map +1 -1
  232. package/dist/store/sqlite/schema.js +23 -0
  233. package/dist/store/sqlite/schema.js.map +1 -1
  234. package/dist/store/sqlite/task-candidates.d.ts +2 -0
  235. package/dist/store/sqlite/task-candidates.d.ts.map +1 -1
  236. package/dist/store/sqlite/task-candidates.js +14 -1
  237. package/dist/store/sqlite/task-candidates.js.map +1 -1
  238. package/dist/store/sqlite/task-category-settings.d.ts +9 -0
  239. package/dist/store/sqlite/task-category-settings.d.ts.map +1 -0
  240. package/dist/store/sqlite/task-category-settings.js +21 -0
  241. package/dist/store/sqlite/task-category-settings.js.map +1 -0
  242. package/dist/store/sqlite/task-pairs.d.ts +69 -0
  243. package/dist/store/sqlite/task-pairs.d.ts.map +1 -0
  244. package/dist/store/sqlite/task-pairs.js +262 -0
  245. package/dist/store/sqlite/task-pairs.js.map +1 -0
  246. package/dist/store/sqlite/task-relations.d.ts.map +1 -1
  247. package/dist/store/sqlite/task-relations.js +20 -8
  248. package/dist/store/sqlite/task-relations.js.map +1 -1
  249. package/dist/store/sqlite/tasks.d.ts +7 -1
  250. package/dist/store/sqlite/tasks.d.ts.map +1 -1
  251. package/dist/store/sqlite/tasks.js +23 -3
  252. package/dist/store/sqlite/tasks.js.map +1 -1
  253. package/dist/store/store.d.ts +4 -3
  254. package/dist/store/store.d.ts.map +1 -1
  255. package/dist/store/store.js +1 -6
  256. package/dist/store/store.js.map +1 -1
  257. package/dist/store/ulid.d.ts.map +1 -1
  258. package/dist/store/ulid.js +1 -0
  259. package/dist/store/ulid.js.map +1 -1
  260. package/dist/tasks/service.d.ts +3 -1
  261. package/dist/tasks/service.d.ts.map +1 -1
  262. package/dist/tasks/service.js +8 -4
  263. package/dist/tasks/service.js.map +1 -1
  264. package/dist/tasks/store.d.ts +9 -1
  265. package/dist/tasks/store.d.ts.map +1 -1
  266. package/dist/tasks/store.js.map +1 -1
  267. package/package.json +1 -1
  268. package/parity.json +84 -20
  269. package/skills/follow-ups/SKILL.md +2 -0
  270. package/dist/store/old-store.d.ts +0 -7
  271. package/dist/store/old-store.d.ts.map +0 -1
  272. package/dist/store/old-store.js +0 -36
  273. package/dist/store/old-store.js.map +0 -1
@@ -0,0 +1,262 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { folded } from "./folded.js";
3
+ import { linkKind } from "./link-kinds.js";
4
+ import { authorActor } from "./memories.js";
5
+ import { insertLink } from "./notes.js";
6
+ import { inboxKey } from "./task-keys.js";
7
+ import { validateTaskRelation } from "./task-relations.js";
8
+ import { taskIdOf, taskRowOf, thingOf } from "./things.js";
9
+ import { read, write } from "./transaction.js";
10
+ import { recordTaskEvent } from "./work-tasks.js";
11
+ /**
12
+ * What became of a pair: `review` waits for the agent that reviews after a sync, `unsure` for the owner; the rest
13
+ * are labelled pairs (tasks plan, "Learn from answers") — `merged`, `attached` say one job, `rejected`, `unmerged`,
14
+ * `new` say two.
15
+ */
16
+ export const TASK_PAIR_DECISIONS = ["review", "unsure", "merged", "rejected", "unmerged", "attached", "new"];
17
+ export const taskPairsOver = (context, similarity) => {
18
+ const { database, now } = context;
19
+ const required = (id) => {
20
+ const row = taskRowOf(database, id.startsWith("task:") ? id.slice("task:".length) : id);
21
+ const found = row === undefined
22
+ ? undefined
23
+ : database.prepare("SELECT * FROM tasks WHERE id = ? AND deleted_at IS NULL").get(row);
24
+ if (!found)
25
+ throw new CliError("not_found", `no task ${id}`);
26
+ return found;
27
+ };
28
+ const sideOf = (id) => {
29
+ if (id == null)
30
+ return null;
31
+ const row = database.prepare("SELECT key, package_id, title, status FROM tasks WHERE id = ?").get(Number(id));
32
+ return {
33
+ ref: `task:${String(row.package_id ?? row.key)}`,
34
+ key: String(row.key),
35
+ title: String(row.title),
36
+ status: String(row.status),
37
+ };
38
+ };
39
+ const pairOf = (row) => ({
40
+ task: sideOf(row.task_id),
41
+ source: row.source_locator == null ? null : String(row.source_locator),
42
+ other: sideOf(row.other_id),
43
+ score: Number(row.score),
44
+ band: row.band,
45
+ levels: JSON.parse(String(row.levels)),
46
+ reasons: JSON.parse(String(row.reasons)),
47
+ decision: row.decision,
48
+ decidedAt: row.decided_at == null ? null : new Date(Number(row.decided_at)).toISOString(),
49
+ createdAt: new Date(Number(row.created_at)).toISOString(),
50
+ });
51
+ /** One pair, whichever way round it was recorded. */
52
+ const heldPair = (a, b) => database
53
+ .prepare("SELECT * FROM task_pairs WHERE (task_id = ? AND other_id = ?) OR (task_id = ? AND other_id = ?) ORDER BY id LIMIT 1")
54
+ .get(a, b, b, a);
55
+ const insertPair = (pair, scored, by) => {
56
+ const at = now();
57
+ const actor = by === null ? null : authorActor(context, by).actor;
58
+ return Number(database
59
+ .prepare("INSERT INTO task_pairs (task_id, source_locator, other_id, score, band, levels, reasons, decision, " +
60
+ "decided_by_type, decided_by_id, decided_at, created_at, updated_at) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) " +
61
+ "RETURNING id")
62
+ .get(pair.task, pair.source ?? null, pair.other, scored.score, scored.band, JSON.stringify(scored.levels), JSON.stringify(scored.reasons), pair.decision, actor?.type ?? null, actor?.id ?? null, actor === null ? null : at, at, at)?.id);
63
+ };
64
+ const decide = (id, decision, by) => {
65
+ const { actor } = authorActor(context, by);
66
+ const at = now();
67
+ database
68
+ .prepare("UPDATE task_pairs SET decision = ?, decided_by_type = ?, decided_by_id = ?, decided_at = ?, updated_at = ? WHERE id = ?")
69
+ .run(decision, actor.type, actor.id, at, at, id);
70
+ };
71
+ /** The pair's row, recorded now with a fresh comparison when it was never offered. */
72
+ const settle = async (task, other, decision, by) => {
73
+ const scored = heldPair(Number(task.id), Number(other.id))
74
+ ? undefined
75
+ : await similarity.compare({ task: String(task.key) }, String(other.key));
76
+ return write(database, () => {
77
+ const held = heldPair(Number(task.id), Number(other.id));
78
+ const id = held
79
+ ? Number(held.id)
80
+ : insertPair({ task: Number(task.id), other: Number(other.id), decision }, scored, by);
81
+ if (held)
82
+ decide(id, decision, by);
83
+ return pairOf(database.prepare("SELECT * FROM task_pairs WHERE id = ?").get(id));
84
+ });
85
+ };
86
+ const sameInbox = (a, b) => {
87
+ if (Number(a.id) === Number(b.id))
88
+ throw new CliError("validation_error", "a task is not a duplicate of itself");
89
+ if (Number(a.project_id) !== Number(b.project_id))
90
+ throw new CliError("validation_error", "the two tasks belong to different accounts or projects");
91
+ };
92
+ const ref = (row) => `task:${taskIdOf(database, Number(row.id))}`;
93
+ const mergedInto = (row) => database
94
+ .prepare(`SELECT id, to_id FROM links WHERE from_type = 'task' AND from_id = ? AND to_type = 'task' AND kind = ${linkKind("duplicate-of")} ` +
95
+ "AND anchor IS NULL ORDER BY id DESC LIMIT 1")
96
+ .get(Number(row.id));
97
+ /** The messages a task stands on: its source, and every message linked to it. */
98
+ const messagesOf = (row) => {
99
+ const linked = database
100
+ .prepare("SELECT l.to_type, l.to_id, l.target_text FROM links l WHERE l.from_type = 'task' AND l.from_id = ? AND " +
101
+ "(l.to_type = 'message' OR (l.to_id IS NULL AND l.target_text LIKE 'msg:%')) ORDER BY l.id")
102
+ .all(Number(row.id))
103
+ .map((link) => (link.to_type === "message" ? `message:${String(link.to_id)}` : String(link.target_text)));
104
+ const source = row.source_locator == null ? [] : [String(row.source_locator)];
105
+ return [...new Set([...source.filter((one) => one.startsWith("msg:")), ...linked])];
106
+ };
107
+ /** Links a message to a task as evidence; false when it already was. */
108
+ const linkMessage = (task, message, by) => {
109
+ const thing = message.startsWith("message:")
110
+ ? { type: "message", id: Number(message.slice("message:".length)) }
111
+ : thingOf(database, message);
112
+ const held = database
113
+ .prepare(`SELECT 1 FROM links WHERE from_type = 'task' AND from_id = ? AND kind = ${linkKind("evidence")} AND ` +
114
+ "((to_type = ? AND to_id = ?) OR (to_id IS NULL AND target_text = ?))")
115
+ .get(Number(task.id), thing?.type ?? null, thing?.id ?? null, message);
116
+ if (held)
117
+ return false;
118
+ const origin = by === "owner" ? "owner" : "suggested";
119
+ if (thing?.type === "message")
120
+ database
121
+ .prepare("INSERT INTO links (from_type, from_id, to_type, to_id, kind, source, confirmed, created_at, author, updated_at) " +
122
+ `VALUES ('task', ?, 'message', ?, ${linkKind("evidence")}, ?, 1, ?, ?, ?)`)
123
+ .run(Number(task.id), thing.id, origin, now(), origin === "owner" ? "owner" : null, now());
124
+ else
125
+ insertLink(context, { from: ref(task), targetText: message, kind: "evidence", origin });
126
+ return true;
127
+ };
128
+ return {
129
+ reviewDuplicates: async (task) => {
130
+ const row = required(task);
131
+ const found = (await similarity.similar({ task: String(row.key) }, { limit: 40 })).filter((one) => one.band !== "different");
132
+ if (found.length === 0)
133
+ return 0;
134
+ return write(database, () => {
135
+ let added = 0;
136
+ for (const one of found) {
137
+ const other = required(one.key);
138
+ if (heldPair(Number(row.id), Number(other.id)))
139
+ continue;
140
+ insertPair({ task: Number(row.id), other: Number(other.id), decision: "review" }, one, null);
141
+ added += 1;
142
+ }
143
+ return added;
144
+ });
145
+ },
146
+ pairs: async (account, { decision, limit, offset }) => read(database, () => {
147
+ const project = database.prepare("SELECT id FROM projects WHERE key = ?").get(inboxKey(account));
148
+ if (!project)
149
+ return [];
150
+ return database
151
+ .prepare("SELECT p.* FROM task_pairs p JOIN tasks a ON a.id = p.task_id JOIN tasks b ON b.id = p.other_id " +
152
+ "WHERE p.decision = ? AND a.project_id = ? AND b.project_id = ? AND a.deleted_at IS NULL AND b.deleted_at IS NULL " +
153
+ "ORDER BY p.created_at DESC, p.id DESC LIMIT ? OFFSET ?")
154
+ .all(decision, Number(project.id), Number(project.id), limit, offset)
155
+ .map(pairOf);
156
+ }),
157
+ recordPair: async ({ task, source, other, decision, similarity: scored, by }) => {
158
+ const otherRow = required(other);
159
+ const taskRow = task === undefined ? undefined : required(task);
160
+ write(database, () => {
161
+ const held = taskRow
162
+ ? heldPair(Number(taskRow.id), Number(otherRow.id))
163
+ : database
164
+ .prepare("SELECT * FROM task_pairs WHERE task_id IS NULL AND source_locator = ? AND other_id = ?")
165
+ .get(source ?? null, Number(otherRow.id));
166
+ if (held)
167
+ decide(Number(held.id), decision, by);
168
+ else
169
+ insertPair({
170
+ task: taskRow ? Number(taskRow.id) : null,
171
+ ...(source === undefined ? {} : { source }),
172
+ other: Number(otherRow.id),
173
+ decision,
174
+ }, scored, by);
175
+ });
176
+ },
177
+ decidePair: async (task, other, decision, by) => {
178
+ const a = required(task);
179
+ const b = required(other);
180
+ sameInbox(a, b);
181
+ return settle(a, b, decision, by);
182
+ },
183
+ merge: async (dup, into, by) => {
184
+ const a = required(dup);
185
+ const b = required(into);
186
+ sameInbox(a, b);
187
+ if (a.status !== "open")
188
+ throw new CliError("validation_error", `task ${String(a.key)} is already ${String(a.status)}; a merge closes an open task — reopen it with tasks unmerge if a merge closed it`, { reason: "task.closed" });
189
+ const onward = mergedInto(b);
190
+ if (onward)
191
+ throw new CliError("validation_error", `task ${String(b.key)} was merged into ${String(sideOf(onward.to_id)?.key)}; merge into that one`, { reason: "task.merged" });
192
+ const scored = heldPair(Number(a.id), Number(b.id))
193
+ ? undefined
194
+ : await similarity.compare({ task: String(a.key) }, String(b.key));
195
+ return write(database, () => {
196
+ validateTaskRelation(database, Number(a.id), Number(b.id), "duplicate-of");
197
+ const { actor } = authorActor(context, by);
198
+ const at = now();
199
+ let linked = 0;
200
+ for (const message of messagesOf(a))
201
+ if (linkMessage(b, message, by))
202
+ linked += 1;
203
+ const reason = `duplicate of ${String(b.key)}`;
204
+ database
205
+ .prepare("UPDATE tasks SET status = 'dismissed', closed_at = ?, closed_by_type = ?, closed_by_id = ?, close_reason = ?, " +
206
+ "close_reason_folded = ?, claimed_by = NULL, claimed_until = NULL, updated_at = ? WHERE id = ?")
207
+ .run(at, actor.type, actor.id, reason, folded(reason), at, Number(a.id));
208
+ recordTaskEvent(database, Number(a.id), actor, "status", { status: ["open", "dismissed"] }, at);
209
+ database
210
+ .prepare("INSERT INTO links (from_type, from_id, to_type, to_id, kind, source, confirmed, author, created_at, updated_at) " +
211
+ `VALUES ('task', ?, 'task', ?, ${linkKind("duplicate-of")}, ?, 1, ?, ?, ?)`)
212
+ .run(Number(a.id), Number(b.id), by === "owner" ? "owner" : "suggested", by === "owner" ? "owner" : null, at, at);
213
+ recordTaskEvent(database, Number(a.id), actor, "linked", { relation: [null, { kind: "duplicate-of", to: ref(b) }] }, at);
214
+ const held = heldPair(Number(a.id), Number(b.id));
215
+ const id = held
216
+ ? Number(held.id)
217
+ : insertPair({ task: Number(a.id), other: Number(b.id), decision: "merged" }, scored, by);
218
+ if (held)
219
+ decide(id, "merged", by);
220
+ return { pair: pairOf(database.prepare("SELECT * FROM task_pairs WHERE id = ?").get(id)), linked };
221
+ });
222
+ },
223
+ unmerge: async (dup, by) => {
224
+ const a = required(dup);
225
+ const relation = mergedInto(a);
226
+ if (!relation)
227
+ throw new CliError("validation_error", `task ${String(a.key)} was not merged into another task`, {
228
+ reason: "task.not-merged",
229
+ });
230
+ const b = database.prepare("SELECT * FROM tasks WHERE id = ?").get(Number(relation.to_id));
231
+ // A merge made with tasks link --kind duplicate-of left no pair; the undo still labels one.
232
+ const scored = heldPair(Number(a.id), Number(b.id))
233
+ ? undefined
234
+ : await similarity.compare({ task: String(a.key) }, String(b.key));
235
+ return write(database, () => {
236
+ const { actor } = authorActor(context, by);
237
+ const at = now();
238
+ if (database.prepare("DELETE FROM links WHERE id = ?").run(Number(relation.id)).changes === 0)
239
+ throw new CliError("validation_error", `task ${String(a.key)} was unmerged meanwhile`, {
240
+ reason: "task.not-merged",
241
+ });
242
+ recordTaskEvent(database, Number(a.id), actor, "unlinked", { relation: [{ kind: "duplicate-of", to: ref(b) }, null] }, at);
243
+ const status = String(database.prepare("SELECT status FROM tasks WHERE id = ?").get(Number(a.id)).status);
244
+ if (status !== "open") {
245
+ database
246
+ .prepare("UPDATE tasks SET status = 'open', closed_at = NULL, closed_by_type = NULL, closed_by_id = NULL, " +
247
+ "close_reason = NULL, close_reason_folded = NULL, updated_at = ? WHERE id = ?")
248
+ .run(at, Number(a.id));
249
+ recordTaskEvent(database, Number(a.id), actor, "status", { status: [status, "open"] }, at);
250
+ }
251
+ const held = heldPair(Number(a.id), Number(b.id));
252
+ const id = held
253
+ ? Number(held.id)
254
+ : insertPair({ task: Number(a.id), other: Number(b.id), decision: "unmerged" }, scored, by);
255
+ if (held)
256
+ decide(id, "unmerged", by);
257
+ return { pair: pairOf(database.prepare("SELECT * FROM task_pairs WHERE id = ?").get(id)) };
258
+ });
259
+ },
260
+ };
261
+ };
262
+ //# sourceMappingURL=task-pairs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-pairs.js","sourceRoot":"","sources":["../../../src/store/sqlite/task-pairs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-relations.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/task-relations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAI7C,eAAO,MAAM,mBAAmB,YAC9B,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,CACT,CAAA;AACV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AACnE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,gBAAgB,CAAA;CACvB;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACxD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACvG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,aAAa,CACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAAA;IACzG,UAAU,CACR,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACtF;AAgBD,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,aAAc,aAAa,QAAQ,MAAM,MAAM,MAAM,QAAQ,gBAAgB,SAgB7G,CAAA;AAED,eAAO,MAAM,sBAAsB,YACxB,YAAY,UACb,CACN,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,QAAQ,GAAG,UAAU,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAC3C,EAAE,EAAE,MAAM,KACP,IAAI,KACR,kBA4HF,CAAA"}
1
+ {"version":3,"file":"task-relations.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/task-relations.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,KAAK,MAAM,EAAe,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAI7C,eAAO,MAAM,mBAAmB,YAC9B,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,cAAc,EACd,iBAAiB,CACT,CAAA;AACV,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAA;AACnE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,gBAAgB,CAAA;CACvB;AACD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;QAAE,QAAQ,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACxD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IACvG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IACpD,aAAa,CACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC,CAAA;IACzG,UAAU,CACR,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3B,OAAO,CAAC;QAAE,KAAK,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CACtF;AA4BD,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,aAAc,aAAa,QAAQ,MAAM,MAAM,MAAM,QAAQ,gBAAgB,SAkB7G,CAAA;AAED,eAAO,MAAM,sBAAsB,YACxB,YAAY,UACb,CACN,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,QAAQ,GAAG,UAAU,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAC3C,EAAE,EAAE,MAAM,KACP,IAAI,KACR,kBA4HF,CAAA"}
@@ -21,13 +21,25 @@ const liveTask = (database, rowId) => {
21
21
  throw new CliError("not_found", "the owner project task is unavailable");
22
22
  return row;
23
23
  };
24
+ /** A message task's inbox has an account, so the owner-project check refuses it; one job seen twice is either kind. */
25
+ const anyLiveTask = (database, rowId) => {
26
+ const row = database
27
+ .prepare("SELECT t.id,t.status,t.project_id FROM tasks t JOIN projects p ON p.id=t.project_id WHERE t.id=? AND t.deleted_at IS NULL AND p.deleted_at IS NULL")
28
+ .get(rowId);
29
+ if (!row)
30
+ throw new CliError("not_found", "the task is unavailable");
31
+ return row;
32
+ };
33
+ const liveFor = (database, rowId, kind) => kind === "duplicate-of" || kind === undefined ? anyLiveTask(database, rowId) : liveTask(database, rowId);
24
34
  /** Validation and the edge insert must see the same write-locked snapshot. */
25
35
  export const validateTaskRelation = (database, from, to, kind) => {
26
36
  kindOf(kind);
27
- liveTask(database, from);
28
- liveTask(database, to);
37
+ const a = liveFor(database, from, kind);
38
+ const b = liveFor(database, to, kind);
29
39
  if (from === to)
30
40
  throw new CliError("validation_error", "a task cannot link to itself");
41
+ if (kind === "duplicate-of" && a.project_id !== b.project_id)
42
+ throw new CliError("validation_error", "a duplicate is in the same project or account as the task it duplicates");
31
43
  if (kind === "related-to")
32
44
  return;
33
45
  const reached = database
@@ -42,13 +54,13 @@ export const validateTaskRelation = (database, from, to, kind) => {
42
54
  };
43
55
  export const taskRelationsStoreOver = (context, record) => {
44
56
  const { database, now } = context;
45
- const required = (reference) => {
57
+ const required = (reference, kind) => {
46
58
  if (typeof reference !== "string" || !reference.trim())
47
59
  throw new CliError("validation_error", "a task reference is required");
48
60
  const rowId = taskRowOf(database, reference.startsWith("task:") ? reference.slice(5) : reference);
49
61
  if (rowId === undefined)
50
62
  throw new CliError("not_found", "the task is unavailable");
51
- liveTask(database, rowId);
63
+ liveFor(database, rowId, kind);
52
64
  return rowId;
53
65
  };
54
66
  const ref = (rowId) => {
@@ -59,8 +71,8 @@ export const taskRelationsStoreOver = (context, record) => {
59
71
  };
60
72
  const pair = (from, to, kind) => {
61
73
  kindOf(kind);
62
- const a = required(from);
63
- const b = required(to);
74
+ const a = required(from, kind);
75
+ const b = required(to, kind);
64
76
  return kind === "related-to" && a > b ? [b, a] : [a, b];
65
77
  };
66
78
  const relationOf = (row) => ({
@@ -102,14 +114,14 @@ export const taskRelationsStoreOver = (context, record) => {
102
114
  taskRelations: async (task) => read(database, () => {
103
115
  const rowId = required(task);
104
116
  const rows = database
105
- .prepare("SELECT id,from_id,to_id,kind FROM links WHERE from_type='task' AND to_type='task' AND (from_id=? OR to_id=?) AND kind IN ('blocked-by','follow-up-of','related-to') AND anchor IS NULL ORDER BY id LIMIT 501")
117
+ .prepare("SELECT id,from_id,to_id,kind FROM links WHERE from_type='task' AND to_type='task' AND (from_id=? OR to_id=?) AND kind IN ('blocked-by','follow-up-of','related-to','duplicate-of') AND anchor IS NULL ORDER BY id LIMIT 501")
106
118
  .all(rowId, rowId);
107
119
  if (rows.length > 500)
108
120
  throw new CliError("validation_error", "task relationships exceed the 500-edge read budget");
109
121
  return rows.map(relationOf);
110
122
  }),
111
123
  taskReadiness: async (task) => read(database, () => {
112
- const rowId = required(task);
124
+ const rowId = required(task, "blocked-by");
113
125
  const rows = database
114
126
  .prepare("SELECT l.to_id,t.status,t.deleted_at,p.deleted_at AS project_deleted FROM links l LEFT JOIN tasks t ON t.id=l.to_id LEFT JOIN projects p ON p.id=t.project_id WHERE l.from_type='task' AND l.to_type='task' AND l.kind='blocked-by' AND l.from_id=? AND l.confirmed=1 AND l.anchor IS NULL AND (t.id IS NULL OR t.deleted_at IS NOT NULL OR p.deleted_at IS NOT NULL OR t.status!='done') ORDER BY l.id LIMIT 101")
115
127
  .all(rowId);
@@ -1 +1 @@
1
- {"version":3,"file":"task-relations.js","sourceRoot":"","sources":["../../../src/store/sqlite/task-relations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-relations.js","sourceRoot":"","sources":["../../../src/store/sqlite/task-relations.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,18 @@
1
+ import type { TaskCategory } from "../../domain/task-categories.js";
1
2
  import { type Task, type TaskStore } from "../../tasks/index.js";
2
3
  import type { StoreContext } from "./open.js";
3
4
  import type { Where } from "./query-filter.js";
4
5
  import { type TaskSimilarity } from "./task-candidates.js";
6
+ import { type TaskPairs } from "./task-pairs.js";
5
7
  import { type WorkTasks } from "./work-tasks.js";
6
8
  export { inboxKey, linkInbox, taskAccountOf } from "./task-keys.js";
7
9
  export { taskIdOf, taskRowOf } from "./things.js";
8
10
  /** `TaskStore` for `src/tasks/`, plus a way from its task ids to the store's rows. */
9
- export interface StoreTaskStore extends TaskStore, WorkTasks, TaskSimilarity {
11
+ export interface StoreTaskStore extends Required<TaskStore>, WorkTasks, TaskSimilarity, TaskPairs {
12
+ /** The task categories `config set task_categories.*` saved, or the default list: one per store. */
13
+ categories(): Promise<readonly TaskCategory[]>;
14
+ /** `undefined` goes back to the default list. */
15
+ saveCategories(categories: readonly TaskCategory[] | undefined): Promise<void>;
10
16
  /** What the task package calls a task — its id, or a key like `IN1A2B3C4D-3` — as the row's `tasks.id`. */
11
17
  rowOf(id: string): number | undefined;
12
18
  /** One account's tasks a list query keeps, oldest first, each with its title and last change. */
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,IAAI,EAET,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,sBAAsB,CAAA;AAI9E,OAAO,EAAmB,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAA;AAEhF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEjD,sFAAsF;AACtF,MAAM,WAAW,cAAe,SAAQ,SAAS,EAAE,SAAS,EAAE,cAAc;IAC1E,2GAA2G;IAC3G,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,iGAAiG;IACjG,KAAK,CACH,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC,CAAA;CAC7D;AAMD,eAAO,MAAM,aAAa,YAAa,YAAY,KAAG,cA2MrD,CAAA"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/tasks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAML,KAAK,IAAI,EAET,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAA;AAK7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,KAAK,cAAc,EAAsB,MAAM,sBAAsB,CAAA;AAG9E,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAA;AAG/D,OAAO,EAAmB,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAA;AAEhF,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEjD,sFAAsF;AACtF,MAAM,WAAW,cAAe,SAAQ,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS;IAC/F,oGAAoG;IACpG,UAAU,IAAI,OAAO,CAAC,SAAS,YAAY,EAAE,CAAC,CAAA;IAC9C,iDAAiD;IACjD,cAAc,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9E,2GAA2G;IAC3G,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,iGAAiG;IACjG,KAAK,CACH,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACxC,OAAO,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,EAAE,CAAC,CAAA;CAC7D;AAMD,eAAO,MAAM,aAAa,YAAa,YAAY,KAAG,cA6NrD,CAAA"}
@@ -4,7 +4,9 @@ import { actorOfOrigin, originOfActor } from "./actors.js";
4
4
  import { folded } from "./folded.js";
5
5
  import { linkKind } from "./link-kinds.js";
6
6
  import { taskSimilarityOver } from "./task-candidates.js";
7
+ import { saveTaskCategories, storeTaskCategories } from "./task-category-settings.js";
7
8
  import { inboxKey, typedKey } from "./task-keys.js";
9
+ import { taskPairsOver } from "./task-pairs.js";
8
10
  import { taskRowOf, thingOf } from "./things.js";
9
11
  import { write } from "./transaction.js";
10
12
  import { recordTaskEvent, workTasksOver } from "./work-tasks.js";
@@ -76,10 +78,14 @@ export const taskStoreOver = (context) => {
76
78
  throw new CliError("not_found", `no task ${id}`);
77
79
  return row;
78
80
  };
81
+ const similarity = taskSimilarityOver(context);
79
82
  return {
80
83
  ...workTasksOver(context),
81
- ...taskSimilarityOver(context),
84
+ ...similarity,
85
+ ...taskPairsOver(context, similarity),
82
86
  rowOf: (id) => taskRowOf(database, id),
87
+ categories: async () => storeTaskCategories(database),
88
+ saveCategories: async (categories) => write(database, () => saveTaskCategories(database, categories, now())),
83
89
  query: async (account, where, { limit, offset }) => {
84
90
  const project = inbox(account, false);
85
91
  if (project === undefined)
@@ -98,13 +104,27 @@ export const taskStoreOver = (context) => {
98
104
  const found = select("t.id = ?").get(row);
99
105
  return found && toTask(found);
100
106
  },
101
- findBySource: async (account, source) => {
107
+ findBySource: async (account, source, { linked = false } = {}) => {
102
108
  const project = inbox(account, false);
103
109
  if (project === undefined)
104
110
  return [];
105
- return select("t.project_id = ? AND t.source_locator = ? ORDER BY t.created_at, t.id")
111
+ const own = select("t.project_id = ? AND t.source_locator = ? ORDER BY t.created_at, t.id")
106
112
  .all(project, source)
107
113
  .map(toTask);
114
+ if (!linked || own.length > 0)
115
+ return own;
116
+ let message;
117
+ try {
118
+ message = thingOf(database, source);
119
+ }
120
+ catch {
121
+ message = undefined;
122
+ }
123
+ return select("t.project_id = ? AND t.deleted_at IS NULL AND EXISTS (SELECT 1 FROM links l WHERE l.from_type = 'task' " +
124
+ `AND l.from_id = t.id AND l.kind = ${linkKind("evidence")} AND ((l.to_type = ? AND l.to_id = ?) ` +
125
+ "OR (l.to_id IS NULL AND l.target_text = ?))) ORDER BY t.created_at, t.id")
126
+ .all(project, message?.type ?? null, message?.id ?? null, source)
127
+ .map(toTask);
108
128
  },
109
129
  insert: async (task) => {
110
130
  write(database, () => {
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/store/sqlite/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../../src/store/sqlite/tasks.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { Link, LinkInput } from "../conversations/link.js";
4
4
  import type { DownloadedFile } from "../domain/attachments.js";
5
5
  import type { ChannelTagMatch } from "../domain/channel-tags.js";
6
6
  import type { CounterObservations, CounterState } from "../domain/counters.js";
7
- import type { MentionKind } from "../domain/mentions.js";
7
+ import type { Decider, MentionKind } from "../domain/mentions.js";
8
8
  import type { Chat, ChatKind, Contact, Id, Member, Message, MessageHit, Page, PersonAlias, Provider, Reactions, WindowedMessage } from "../domain/models.js";
9
9
  import type { RetentionOptions } from "../domain/retention.js";
10
10
  import type { PeopleLookup } from "../resolve.js";
@@ -437,9 +437,9 @@ export interface MessageStore {
437
437
  * Says what a mention's value is, everywhere it is written: a phone or an address belongs to its owner
438
438
  * (`person:<uid>` or `organization:<id>`), a document id names the stored document.
439
439
  */
440
- confirmMention(key: AccountKey, id: number, owner: string | undefined, by: string): Promise<MentionDecision>;
440
+ confirmMention(key: AccountKey, id: number, owner: string | undefined, by: Decider): Promise<MentionDecision>;
441
441
  /** Dismisses a mention's value everywhere it is written, and on later syncs. */
442
- rejectMention(key: AccountKey, id: number, by: string): Promise<MentionDecision>;
442
+ rejectMention(key: AccountKey, id: number, by: Decider): Promise<MentionDecision>;
443
443
  /** Finds the mentions of every stored message again, every account's; decisions stay. */
444
444
  rebuildMentions(options?: {
445
445
  kinds?: readonly MentionKind[];
@@ -908,6 +908,7 @@ export type { SearchCommand, SearchRecord, StoredSearch } from "./sqlite/searche
908
908
  export { type StemsState, savedStemmers, stemmerCache, stemmersOrigin, stemsState, } from "./sqlite/stems.js";
909
909
  export { fillStems, resetStems } from "./sqlite/stems-fill.js";
910
910
  export type { StoredTag, TagFilter, TagTarget, TaskTagTarget } from "./sqlite/tags.js";
911
+ export { savedTaskCategories } from "./sqlite/task-category-settings.js";
911
912
  export { inboxKey } from "./sqlite/tasks.js";
912
913
  export type { MatchPlace, ScoredHit } from "./sqlite/words.js";
913
914
  export type { TaskDetails } from "./sqlite/work-tasks.js";