@wirecat/cli-core 0.280.0 → 0.283.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 (582) hide show
  1. package/dist/analysis/settings.d.ts.map +1 -1
  2. package/dist/analysis/settings.js +1 -2
  3. package/dist/analysis/settings.js.map +1 -1
  4. package/dist/background/index.d.ts +0 -1
  5. package/dist/background/index.d.ts.map +1 -1
  6. package/dist/background/index.js +0 -1
  7. package/dist/background/index.js.map +1 -1
  8. package/dist/background/schedules.d.ts +1 -1
  9. package/dist/background/schedules.d.ts.map +1 -1
  10. package/dist/background/schedules.js +4 -3
  11. package/dist/background/schedules.js.map +1 -1
  12. package/dist/background/units.d.ts.map +1 -1
  13. package/dist/background/units.js +1 -3
  14. package/dist/background/units.js.map +1 -1
  15. package/dist/cli/app.d.ts +2 -0
  16. package/dist/cli/app.d.ts.map +1 -1
  17. package/dist/cli/app.js +6 -0
  18. package/dist/cli/app.js.map +1 -1
  19. package/dist/cli/author.d.ts +6 -0
  20. package/dist/cli/author.d.ts.map +1 -1
  21. package/dist/cli/author.js +12 -0
  22. package/dist/cli/author.js.map +1 -1
  23. package/dist/cli/bot/command.js +6 -6
  24. package/dist/cli/bot/command.js.map +1 -1
  25. package/dist/cli/bot/context.d.ts.map +1 -1
  26. package/dist/cli/bot/context.js +0 -2
  27. package/dist/cli/bot/context.js.map +1 -1
  28. package/dist/cli/bot/moderation.js +3 -3
  29. package/dist/cli/bot/moderation.js.map +1 -1
  30. package/dist/cli/bot/people.d.ts.map +1 -1
  31. package/dist/cli/bot/people.js +6 -8
  32. package/dist/cli/bot/people.js.map +1 -1
  33. package/dist/cli/config-command.d.ts.map +1 -1
  34. package/dist/cli/config-command.js +4 -30
  35. package/dist/cli/config-command.js.map +1 -1
  36. package/dist/cli/config-keys.d.ts +2 -29
  37. package/dist/cli/config-keys.d.ts.map +1 -1
  38. package/dist/cli/config-keys.js +5 -75
  39. package/dist/cli/config-keys.js.map +1 -1
  40. package/dist/cli/effects.d.ts +7 -0
  41. package/dist/cli/effects.d.ts.map +1 -1
  42. package/dist/cli/effects.js +11 -0
  43. package/dist/cli/effects.js.map +1 -1
  44. package/dist/cli/envelope.d.ts +6 -1
  45. package/dist/cli/envelope.d.ts.map +1 -1
  46. package/dist/cli/envelope.js +22 -8
  47. package/dist/cli/envelope.js.map +1 -1
  48. package/dist/cli/index.d.ts +5 -5
  49. package/dist/cli/index.d.ts.map +1 -1
  50. package/dist/cli/index.js +5 -5
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/json-fields.d.ts.map +1 -1
  53. package/dist/cli/json-fields.js +8 -3
  54. package/dist/cli/json-fields.js.map +1 -1
  55. package/dist/cli/messenger/admin-moderation-command.js +3 -3
  56. package/dist/cli/messenger/admin-moderation-command.js.map +1 -1
  57. package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
  58. package/dist/cli/messenger/backfill-command.js +19 -3
  59. package/dist/cli/messenger/backfill-command.js.map +1 -1
  60. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  61. package/dist/cli/messenger/conversations-command.js +0 -3
  62. package/dist/cli/messenger/conversations-command.js.map +1 -1
  63. package/dist/cli/messenger/download-command.d.ts +15 -0
  64. package/dist/cli/messenger/download-command.d.ts.map +1 -1
  65. package/dist/cli/messenger/download-command.js +4 -6
  66. package/dist/cli/messenger/download-command.js.map +1 -1
  67. package/dist/cli/messenger/export-folder.d.ts.map +1 -1
  68. package/dist/cli/messenger/export-folder.js +3 -7
  69. package/dist/cli/messenger/export-folder.js.map +1 -1
  70. package/dist/cli/messenger/flood-command.js +2 -2
  71. package/dist/cli/messenger/flood-command.js.map +1 -1
  72. package/dist/cli/messenger/guard-commands.js +4 -4
  73. package/dist/cli/messenger/guard-commands.js.map +1 -1
  74. package/dist/cli/messenger/mcp-command.js +2 -2
  75. package/dist/cli/messenger/mcp-command.js.map +1 -1
  76. package/dist/cli/messenger/messages-search-command.d.ts +0 -1
  77. package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
  78. package/dist/cli/messenger/messages-search-command.js +6 -31
  79. package/dist/cli/messenger/messages-search-command.js.map +1 -1
  80. package/dist/cli/messenger/messages-stats-command.d.ts.map +1 -1
  81. package/dist/cli/messenger/messages-stats-command.js +0 -4
  82. package/dist/cli/messenger/messages-stats-command.js.map +1 -1
  83. package/dist/cli/messenger/models-command.js +3 -3
  84. package/dist/cli/messenger/models-command.js.map +1 -1
  85. package/dist/cli/messenger/rankings-command.d.ts.map +1 -1
  86. package/dist/cli/messenger/rankings-command.js +2 -3
  87. package/dist/cli/messenger/rankings-command.js.map +1 -1
  88. package/dist/cli/messenger/replies-command.js +3 -3
  89. package/dist/cli/messenger/replies-command.js.map +1 -1
  90. package/dist/cli/messenger/replies-consents-command.js +3 -3
  91. package/dist/cli/messenger/replies-consents-command.js.map +1 -1
  92. package/dist/cli/messenger/replies-edit-command.js +5 -5
  93. package/dist/cli/messenger/replies-edit-command.js.map +1 -1
  94. package/dist/cli/messenger/schedule-command.d.ts.map +1 -1
  95. package/dist/cli/messenger/schedule-command.js +8 -4
  96. package/dist/cli/messenger/schedule-command.js.map +1 -1
  97. package/dist/cli/messenger/search-answers.js +1 -1
  98. package/dist/cli/messenger/search-answers.js.map +1 -1
  99. package/dist/cli/messenger/searches-command.d.ts.map +1 -1
  100. package/dist/cli/messenger/searches-command.js +1 -4
  101. package/dist/cli/messenger/searches-command.js.map +1 -1
  102. package/dist/cli/messenger/server-command.js +3 -3
  103. package/dist/cli/messenger/server-command.js.map +1 -1
  104. package/dist/cli/messenger/tags-command.d.ts.map +1 -1
  105. package/dist/cli/messenger/tags-command.js +10 -7
  106. package/dist/cli/messenger/tags-command.js.map +1 -1
  107. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  108. package/dist/cli/messenger/tasks-command.js +56 -10
  109. package/dist/cli/messenger/tasks-command.js.map +1 -1
  110. package/dist/cli/program.d.ts.map +1 -1
  111. package/dist/cli/program.js +6 -2
  112. package/dist/cli/program.js.map +1 -1
  113. package/dist/cli/reasons.d.ts.map +1 -1
  114. package/dist/cli/reasons.js +2 -0
  115. package/dist/cli/reasons.js.map +1 -1
  116. package/dist/cli/result-fields.d.ts +0 -1
  117. package/dist/cli/result-fields.d.ts.map +1 -1
  118. package/dist/cli/result-fields.js +1 -5
  119. package/dist/cli/result-fields.js.map +1 -1
  120. package/dist/cli/settings.d.ts +5 -12
  121. package/dist/cli/settings.d.ts.map +1 -1
  122. package/dist/cli/settings.js +16 -46
  123. package/dist/cli/settings.js.map +1 -1
  124. package/dist/cli/skill-command.d.ts.map +1 -1
  125. package/dist/cli/skill-command.js +5 -5
  126. package/dist/cli/skill-command.js.map +1 -1
  127. package/dist/cli/store-settings.js +4 -4
  128. package/dist/cli/store-settings.js.map +1 -1
  129. package/dist/cli/upgrade-command.js +2 -2
  130. package/dist/cli/upgrade-command.js.map +1 -1
  131. package/dist/domain/tags.d.ts +1 -1
  132. package/dist/domain/tags.d.ts.map +1 -1
  133. package/dist/domain/tags.js +1 -1
  134. package/dist/domain/tags.js.map +1 -1
  135. package/dist/entities/agenda.d.ts +4 -0
  136. package/dist/entities/agenda.d.ts.map +1 -1
  137. package/dist/entities/agenda.js +4 -0
  138. package/dist/entities/agenda.js.map +1 -1
  139. package/dist/entities/hit.d.ts +1 -1
  140. package/dist/entities/hit.js +1 -1
  141. package/dist/entities/hit.js.map +1 -1
  142. package/dist/entities/index.d.ts +67 -15
  143. package/dist/entities/index.d.ts.map +1 -1
  144. package/dist/entities/note.d.ts +17 -1
  145. package/dist/entities/note.d.ts.map +1 -1
  146. package/dist/entities/note.js +19 -8
  147. package/dist/entities/note.js.map +1 -1
  148. package/dist/entities/tagging.d.ts +1 -1
  149. package/dist/entities/task.d.ts +7 -0
  150. package/dist/entities/task.d.ts.map +1 -1
  151. package/dist/entities/task.js +7 -0
  152. package/dist/entities/task.js.map +1 -1
  153. package/dist/kit/index.d.ts +0 -1
  154. package/dist/kit/index.d.ts.map +1 -1
  155. package/dist/kit/index.js +0 -1
  156. package/dist/kit/index.js.map +1 -1
  157. package/dist/mcp/tools/messages-send.d.ts.map +1 -1
  158. package/dist/mcp/tools/messages-send.js +3 -2
  159. package/dist/mcp/tools/messages-send.js.map +1 -1
  160. package/dist/mcp/tools/rankings.d.ts.map +1 -1
  161. package/dist/mcp/tools/rankings.js +2 -3
  162. package/dist/mcp/tools/rankings.js.map +1 -1
  163. package/dist/mcp/tools/search.d.ts +2 -3
  164. package/dist/mcp/tools/search.d.ts.map +1 -1
  165. package/dist/mcp/tools/search.js +4 -11
  166. package/dist/mcp/tools/search.js.map +1 -1
  167. package/dist/mcp/tools/searches.d.ts.map +1 -1
  168. package/dist/mcp/tools/searches.js +1 -3
  169. package/dist/mcp/tools/searches.js.map +1 -1
  170. package/dist/mcp/tools/tags.d.ts.map +1 -1
  171. package/dist/mcp/tools/tags.js +9 -7
  172. package/dist/mcp/tools/tags.js.map +1 -1
  173. package/dist/mcp/tools/tasks.d.ts.map +1 -1
  174. package/dist/mcp/tools/tasks.js +19 -6
  175. package/dist/mcp/tools/tasks.js.map +1 -1
  176. package/dist/meetings/answers.d.ts +6 -0
  177. package/dist/meetings/answers.d.ts.map +1 -1
  178. package/dist/meetings/answers.js +16 -0
  179. package/dist/meetings/answers.js.map +1 -1
  180. package/dist/meetings/index.d.ts +1 -1
  181. package/dist/meetings/index.d.ts.map +1 -1
  182. package/dist/meetings/index.js.map +1 -1
  183. package/dist/meetings/mcp/search.d.ts +6 -0
  184. package/dist/meetings/mcp/search.d.ts.map +1 -1
  185. package/dist/meetings/project-evidence-answer.d.ts +6 -0
  186. package/dist/meetings/project-evidence-answer.d.ts.map +1 -1
  187. package/dist/meetings/store.d.ts +7 -0
  188. package/dist/meetings/store.d.ts.map +1 -1
  189. package/dist/models/settings.d.ts.map +1 -1
  190. package/dist/models/settings.js +2 -3
  191. package/dist/models/settings.js.map +1 -1
  192. package/dist/search/account-list.d.ts +3 -1
  193. package/dist/search/account-list.d.ts.map +1 -1
  194. package/dist/search/account-list.js +4 -2
  195. package/dist/search/account-list.js.map +1 -1
  196. package/dist/search/lucene/registry.d.ts +1 -1
  197. package/dist/search/lucene/registry.d.ts.map +1 -1
  198. package/dist/search/lucene/registry.js +2 -2
  199. package/dist/search/lucene/registry.js.map +1 -1
  200. package/dist/search/query.d.ts +0 -28
  201. package/dist/search/query.d.ts.map +1 -1
  202. package/dist/search/query.js +0 -100
  203. package/dist/search/query.js.map +1 -1
  204. package/dist/search/task-signature.d.ts +19 -0
  205. package/dist/search/task-signature.d.ts.map +1 -0
  206. package/dist/search/task-signature.js +105 -0
  207. package/dist/search/task-signature.js.map +1 -0
  208. package/dist/search/task-similarity.d.ts +168 -0
  209. package/dist/search/task-similarity.d.ts.map +1 -0
  210. package/dist/search/task-similarity.js +177 -0
  211. package/dist/search/task-similarity.js.map +1 -0
  212. package/dist/sends/guard.d.ts +4 -15
  213. package/dist/sends/guard.d.ts.map +1 -1
  214. package/dist/sends/guard.js +4 -21
  215. package/dist/sends/guard.js.map +1 -1
  216. package/dist/sends/index.d.ts +2 -2
  217. package/dist/sends/index.d.ts.map +1 -1
  218. package/dist/sends/index.js +2 -2
  219. package/dist/sends/index.js.map +1 -1
  220. package/dist/sends/permissions.d.ts +1 -5
  221. package/dist/sends/permissions.d.ts.map +1 -1
  222. package/dist/sends/permissions.js +6 -21
  223. package/dist/sends/permissions.js.map +1 -1
  224. package/dist/sends/upload.d.ts +1 -1
  225. package/dist/sends/upload.d.ts.map +1 -1
  226. package/dist/sends/upload.js +87 -15
  227. package/dist/sends/upload.js.map +1 -1
  228. package/dist/services/admin-statistics.d.ts.map +1 -1
  229. package/dist/services/admin-statistics.js +5 -12
  230. package/dist/services/admin-statistics.js.map +1 -1
  231. package/dist/services/agenda.d.ts +5 -1
  232. package/dist/services/agenda.d.ts.map +1 -1
  233. package/dist/services/agenda.js +8 -1
  234. package/dist/services/agenda.js.map +1 -1
  235. package/dist/services/attachments.d.ts.map +1 -1
  236. package/dist/services/attachments.js +1 -1
  237. package/dist/services/attachments.js.map +1 -1
  238. package/dist/services/counters.d.ts.map +1 -1
  239. package/dist/services/counters.js +4 -8
  240. package/dist/services/counters.js.map +1 -1
  241. package/dist/services/embeddings-maintenance.d.ts +4 -6
  242. package/dist/services/embeddings-maintenance.d.ts.map +1 -1
  243. package/dist/services/embeddings-maintenance.js +14 -15
  244. package/dist/services/embeddings-maintenance.js.map +1 -1
  245. package/dist/services/embeddings-search.d.ts.map +1 -1
  246. package/dist/services/embeddings-search.js +1 -6
  247. package/dist/services/embeddings-search.js.map +1 -1
  248. package/dist/services/embeddings.d.ts +0 -2
  249. package/dist/services/embeddings.d.ts.map +1 -1
  250. package/dist/services/embeddings.js.map +1 -1
  251. package/dist/services/index.d.ts +1 -2
  252. package/dist/services/index.d.ts.map +1 -1
  253. package/dist/services/index.js +1 -2
  254. package/dist/services/index.js.map +1 -1
  255. package/dist/services/message-resolution.d.ts +1 -10
  256. package/dist/services/message-resolution.d.ts.map +1 -1
  257. package/dist/services/message-resolution.js +0 -59
  258. package/dist/services/message-resolution.js.map +1 -1
  259. package/dist/services/messages-archive-search.d.ts +1 -1
  260. package/dist/services/messages-archive-search.d.ts.map +1 -1
  261. package/dist/services/messages-archive-search.js +4 -50
  262. package/dist/services/messages-archive-search.js.map +1 -1
  263. package/dist/services/messages-combined.d.ts.map +1 -1
  264. package/dist/services/messages-combined.js +1 -5
  265. package/dist/services/messages-combined.js.map +1 -1
  266. package/dist/services/messages-discovery.js +1 -1
  267. package/dist/services/messages-discovery.js.map +1 -1
  268. package/dist/services/messages-search.d.ts.map +1 -1
  269. package/dist/services/messages-search.js +2 -6
  270. package/dist/services/messages-search.js.map +1 -1
  271. package/dist/services/messages.d.ts +2 -6
  272. package/dist/services/messages.d.ts.map +1 -1
  273. package/dist/services/messages.js +8 -20
  274. package/dist/services/messages.js.map +1 -1
  275. package/dist/services/notes-search.d.ts +1 -1
  276. package/dist/services/notes-search.d.ts.map +1 -1
  277. package/dist/services/notes-search.js +24 -8
  278. package/dist/services/notes-search.js.map +1 -1
  279. package/dist/services/notes-title-tier.d.ts +13 -0
  280. package/dist/services/notes-title-tier.d.ts.map +1 -0
  281. package/dist/services/notes-title-tier.js +41 -0
  282. package/dist/services/notes-title-tier.js.map +1 -0
  283. package/dist/services/pictures.js +1 -1
  284. package/dist/services/pictures.js.map +1 -1
  285. package/dist/services/rankings.d.ts.map +1 -1
  286. package/dist/services/rankings.js +5 -11
  287. package/dist/services/rankings.js.map +1 -1
  288. package/dist/services/retention.d.ts.map +1 -1
  289. package/dist/services/retention.js +1 -4
  290. package/dist/services/retention.js.map +1 -1
  291. package/dist/services/search-all.d.ts +1 -1
  292. package/dist/services/search-all.d.ts.map +1 -1
  293. package/dist/services/search-all.js +0 -1
  294. package/dist/services/search-all.js.map +1 -1
  295. package/dist/services/search-catchup.d.ts.map +1 -1
  296. package/dist/services/search-catchup.js +0 -1
  297. package/dist/services/search-catchup.js.map +1 -1
  298. package/dist/services/search-record.d.ts +0 -4
  299. package/dist/services/search-record.d.ts.map +1 -1
  300. package/dist/services/search-record.js +2 -3
  301. package/dist/services/search-record.js.map +1 -1
  302. package/dist/services/search-refresh.d.ts.map +1 -1
  303. package/dist/services/search-refresh.js +3 -9
  304. package/dist/services/search-refresh.js.map +1 -1
  305. package/dist/services/searches.d.ts +0 -1
  306. package/dist/services/searches.d.ts.map +1 -1
  307. package/dist/services/searches.js +13 -35
  308. package/dist/services/searches.js.map +1 -1
  309. package/dist/services/server-search.d.ts +1 -1
  310. package/dist/services/server-search.d.ts.map +1 -1
  311. package/dist/services/server-search.js +0 -3
  312. package/dist/services/server-search.js.map +1 -1
  313. package/dist/services/tags.d.ts +3 -0
  314. package/dist/services/tags.d.ts.map +1 -1
  315. package/dist/services/tags.js +13 -5
  316. package/dist/services/tags.js.map +1 -1
  317. package/dist/services/task-categories.d.ts +17 -0
  318. package/dist/services/task-categories.d.ts.map +1 -0
  319. package/dist/services/task-categories.js +113 -0
  320. package/dist/services/task-categories.js.map +1 -0
  321. package/dist/services/task-rules.d.ts +9 -1
  322. package/dist/services/task-rules.d.ts.map +1 -1
  323. package/dist/services/task-rules.js +25 -1
  324. package/dist/services/task-rules.js.map +1 -1
  325. package/dist/services/tasks.d.ts +14 -3
  326. package/dist/services/tasks.d.ts.map +1 -1
  327. package/dist/services/tasks.js +58 -6
  328. package/dist/services/tasks.js.map +1 -1
  329. package/dist/services/thread-context.d.ts +1 -1
  330. package/dist/services/thread-context.d.ts.map +1 -1
  331. package/dist/services/thread-context.js +3 -9
  332. package/dist/services/thread-context.js.map +1 -1
  333. package/dist/store/account-store.d.ts +1 -1
  334. package/dist/store/account-store.d.ts.map +1 -1
  335. package/dist/store/account-store.js +2 -0
  336. package/dist/store/account-store.js.map +1 -1
  337. package/dist/store/index.d.ts +1 -1
  338. package/dist/store/index.d.ts.map +1 -1
  339. package/dist/store/index.js.map +1 -1
  340. package/dist/store/migrations.d.ts +2 -1
  341. package/dist/store/migrations.d.ts.map +1 -1
  342. package/dist/store/migrations.js +5 -2
  343. package/dist/store/migrations.js.map +1 -1
  344. package/dist/store/sqlite/attachment-texts.js +2 -2
  345. package/dist/store/sqlite/attachment-texts.js.map +1 -1
  346. package/dist/store/sqlite/backfill.d.ts.map +1 -1
  347. package/dist/store/sqlite/backfill.js +6 -11
  348. package/dist/store/sqlite/backfill.js.map +1 -1
  349. package/dist/store/sqlite/catalog.d.ts.map +1 -1
  350. package/dist/store/sqlite/catalog.js +3 -3
  351. package/dist/store/sqlite/catalog.js.map +1 -1
  352. package/dist/store/sqlite/conversations.d.ts.map +1 -1
  353. package/dist/store/sqlite/conversations.js +3 -8
  354. package/dist/store/sqlite/conversations.js.map +1 -1
  355. package/dist/store/sqlite/document-pictures.d.ts.map +1 -1
  356. package/dist/store/sqlite/document-pictures.js +3 -3
  357. package/dist/store/sqlite/document-pictures.js.map +1 -1
  358. package/dist/store/sqlite/email-index.d.ts.map +1 -1
  359. package/dist/store/sqlite/email-index.js +18 -7
  360. package/dist/store/sqlite/email-index.js.map +1 -1
  361. package/dist/store/sqlite/emails.js +5 -5
  362. package/dist/store/sqlite/emails.js.map +1 -1
  363. package/dist/store/sqlite/facts.d.ts.map +1 -1
  364. package/dist/store/sqlite/facts.js +3 -3
  365. package/dist/store/sqlite/facts.js.map +1 -1
  366. package/dist/store/sqlite/folded.d.ts.map +1 -1
  367. package/dist/store/sqlite/folded.js +7 -12
  368. package/dist/store/sqlite/folded.js.map +1 -1
  369. package/dist/store/sqlite/index-state.d.ts +4 -0
  370. package/dist/store/sqlite/index-state.d.ts.map +1 -0
  371. package/dist/store/sqlite/index-state.js +8 -0
  372. package/dist/store/sqlite/index-state.js.map +1 -0
  373. package/dist/store/sqlite/involvement-queue.d.ts +1 -1
  374. package/dist/store/sqlite/involvement-queue.js +1 -1
  375. package/dist/store/sqlite/involvements.js +3 -3
  376. package/dist/store/sqlite/involvements.js.map +1 -1
  377. package/dist/store/sqlite/knowledge.d.ts.map +1 -1
  378. package/dist/store/sqlite/knowledge.js +15 -10
  379. package/dist/store/sqlite/knowledge.js.map +1 -1
  380. package/dist/store/sqlite/log-pruning.d.ts.map +1 -1
  381. package/dist/store/sqlite/log-pruning.js +3 -8
  382. package/dist/store/sqlite/log-pruning.js.map +1 -1
  383. package/dist/store/sqlite/lucene.d.ts.map +1 -1
  384. package/dist/store/sqlite/lucene.js +3 -8
  385. package/dist/store/sqlite/lucene.js.map +1 -1
  386. package/dist/store/sqlite/mail-rules.js +3 -3
  387. package/dist/store/sqlite/mail-rules.js.map +1 -1
  388. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  389. package/dist/store/sqlite/manifest.js +1 -0
  390. package/dist/store/sqlite/manifest.js.map +1 -1
  391. package/dist/store/sqlite/meeting-context-links.d.ts.map +1 -1
  392. package/dist/store/sqlite/meeting-context-links.js +8 -7
  393. package/dist/store/sqlite/meeting-context-links.js.map +1 -1
  394. package/dist/store/sqlite/meeting-hit-index.d.ts.map +1 -1
  395. package/dist/store/sqlite/meeting-hit-index.js +4 -3
  396. package/dist/store/sqlite/meeting-hit-index.js.map +1 -1
  397. package/dist/store/sqlite/meeting-hit-search.d.ts.map +1 -1
  398. package/dist/store/sqlite/meeting-hit-search.js +19 -5
  399. package/dist/store/sqlite/meeting-hit-search.js.map +1 -1
  400. package/dist/store/sqlite/meeting-operation.d.ts +0 -2
  401. package/dist/store/sqlite/meeting-operation.d.ts.map +1 -1
  402. package/dist/store/sqlite/meeting-operation.js +0 -15
  403. package/dist/store/sqlite/meeting-operation.js.map +1 -1
  404. package/dist/store/sqlite/meeting-participant-search.d.ts.map +1 -1
  405. package/dist/store/sqlite/meeting-participant-search.js +2 -2
  406. package/dist/store/sqlite/meeting-participant-search.js.map +1 -1
  407. package/dist/store/sqlite/meeting-preparation-context.d.ts.map +1 -1
  408. package/dist/store/sqlite/meeting-preparation-context.js +2 -2
  409. package/dist/store/sqlite/meeting-preparation-context.js.map +1 -1
  410. package/dist/store/sqlite/meeting-projects.d.ts.map +1 -1
  411. package/dist/store/sqlite/meeting-projects.js +2 -2
  412. package/dist/store/sqlite/meeting-projects.js.map +1 -1
  413. package/dist/store/sqlite/meeting-reads.d.ts +0 -3
  414. package/dist/store/sqlite/meeting-reads.d.ts.map +1 -1
  415. package/dist/store/sqlite/meeting-reads.js +6 -18
  416. package/dist/store/sqlite/meeting-reads.js.map +1 -1
  417. package/dist/store/sqlite/meeting-series-history.d.ts.map +1 -1
  418. package/dist/store/sqlite/meeting-series-history.js +2 -2
  419. package/dist/store/sqlite/meeting-series-history.js.map +1 -1
  420. package/dist/store/sqlite/meeting-vectors.d.ts.map +1 -1
  421. package/dist/store/sqlite/meeting-vectors.js +6 -6
  422. package/dist/store/sqlite/meeting-vectors.js.map +1 -1
  423. package/dist/store/sqlite/meetings.d.ts.map +1 -1
  424. package/dist/store/sqlite/meetings.js +6 -6
  425. package/dist/store/sqlite/meetings.js.map +1 -1
  426. package/dist/store/sqlite/memories.d.ts.map +1 -1
  427. package/dist/store/sqlite/memories.js +2 -2
  428. package/dist/store/sqlite/memories.js.map +1 -1
  429. package/dist/store/sqlite/mention-drain.d.ts +39 -0
  430. package/dist/store/sqlite/mention-drain.d.ts.map +1 -0
  431. package/dist/store/sqlite/mention-drain.js +147 -0
  432. package/dist/store/sqlite/mention-drain.js.map +1 -0
  433. package/dist/store/sqlite/mentions.d.ts +0 -4
  434. package/dist/store/sqlite/mentions.d.ts.map +1 -1
  435. package/dist/store/sqlite/mentions.js +7 -154
  436. package/dist/store/sqlite/mentions.js.map +1 -1
  437. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  438. package/dist/store/sqlite/migrations.generated.js +9 -0
  439. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  440. package/dist/store/sqlite/note-index.d.ts.map +1 -1
  441. package/dist/store/sqlite/note-index.js +5 -4
  442. package/dist/store/sqlite/note-index.js.map +1 -1
  443. package/dist/store/sqlite/note-search.d.ts.map +1 -1
  444. package/dist/store/sqlite/note-search.js +3 -6
  445. package/dist/store/sqlite/note-search.js.map +1 -1
  446. package/dist/store/sqlite/notes.d.ts.map +1 -1
  447. package/dist/store/sqlite/notes.js +13 -14
  448. package/dist/store/sqlite/notes.js.map +1 -1
  449. package/dist/store/sqlite/proposed-actions.d.ts.map +1 -1
  450. package/dist/store/sqlite/proposed-actions.js +3 -3
  451. package/dist/store/sqlite/proposed-actions.js.map +1 -1
  452. package/dist/store/sqlite/schema.d.ts +87 -0
  453. package/dist/store/sqlite/schema.d.ts.map +1 -1
  454. package/dist/store/sqlite/schema.js +7 -0
  455. package/dist/store/sqlite/schema.js.map +1 -1
  456. package/dist/store/sqlite/search-index.d.ts +0 -3
  457. package/dist/store/sqlite/search-index.d.ts.map +1 -1
  458. package/dist/store/sqlite/search-index.js +10 -29
  459. package/dist/store/sqlite/search-index.js.map +1 -1
  460. package/dist/store/sqlite/search.d.ts +1 -1
  461. package/dist/store/sqlite/search.d.ts.map +1 -1
  462. package/dist/store/sqlite/search.js +4 -8
  463. package/dist/store/sqlite/search.js.map +1 -1
  464. package/dist/store/sqlite/searches.d.ts +1 -1
  465. package/dist/store/sqlite/searches.d.ts.map +1 -1
  466. package/dist/store/sqlite/stems-fill.d.ts +30 -0
  467. package/dist/store/sqlite/stems-fill.d.ts.map +1 -0
  468. package/dist/store/sqlite/stems-fill.js +119 -0
  469. package/dist/store/sqlite/stems-fill.js.map +1 -0
  470. package/dist/store/sqlite/stems.d.ts +14 -28
  471. package/dist/store/sqlite/stems.d.ts.map +1 -1
  472. package/dist/store/sqlite/stems.js +8 -123
  473. package/dist/store/sqlite/stems.js.map +1 -1
  474. package/dist/store/sqlite/tags.d.ts +10 -2
  475. package/dist/store/sqlite/tags.d.ts.map +1 -1
  476. package/dist/store/sqlite/tags.js +25 -7
  477. package/dist/store/sqlite/tags.js.map +1 -1
  478. package/dist/store/sqlite/task-keys.d.ts +16 -0
  479. package/dist/store/sqlite/task-keys.d.ts.map +1 -0
  480. package/dist/store/sqlite/task-keys.js +40 -0
  481. package/dist/store/sqlite/task-keys.js.map +1 -0
  482. package/dist/store/sqlite/task-relations.d.ts +1 -1
  483. package/dist/store/sqlite/task-relations.d.ts.map +1 -1
  484. package/dist/store/sqlite/task-relations.js +14 -9
  485. package/dist/store/sqlite/task-relations.js.map +1 -1
  486. package/dist/store/sqlite/task-rule-stops.d.ts +5 -0
  487. package/dist/store/sqlite/task-rule-stops.d.ts.map +1 -0
  488. package/dist/store/sqlite/task-rule-stops.js +13 -0
  489. package/dist/store/sqlite/task-rule-stops.js.map +1 -0
  490. package/dist/store/sqlite/tasks.d.ts +1 -7
  491. package/dist/store/sqlite/tasks.d.ts.map +1 -1
  492. package/dist/store/sqlite/tasks.js +23 -28
  493. package/dist/store/sqlite/tasks.js.map +1 -1
  494. package/dist/store/sqlite/transaction.d.ts +19 -0
  495. package/dist/store/sqlite/transaction.d.ts.map +1 -0
  496. package/dist/store/sqlite/transaction.js +77 -0
  497. package/dist/store/sqlite/transaction.js.map +1 -0
  498. package/dist/store/sqlite/vocabulary.d.ts.map +1 -1
  499. package/dist/store/sqlite/vocabulary.js +6 -18
  500. package/dist/store/sqlite/vocabulary.js.map +1 -1
  501. package/dist/store/sqlite/words.d.ts +1 -61
  502. package/dist/store/sqlite/words.d.ts.map +1 -1
  503. package/dist/store/sqlite/words.js +0 -225
  504. package/dist/store/sqlite/words.js.map +1 -1
  505. package/dist/store/sqlite/work-tasks.d.ts +15 -1
  506. package/dist/store/sqlite/work-tasks.d.ts.map +1 -1
  507. package/dist/store/sqlite/work-tasks.js +49 -5
  508. package/dist/store/sqlite/work-tasks.js.map +1 -1
  509. package/dist/store/store.d.ts +24 -41
  510. package/dist/store/store.d.ts.map +1 -1
  511. package/dist/store/store.js +55 -117
  512. package/dist/store/store.js.map +1 -1
  513. package/dist/tasks/model.d.ts +7 -0
  514. package/dist/tasks/model.d.ts.map +1 -1
  515. package/dist/tasks/model.js +2 -1
  516. package/dist/tasks/model.js.map +1 -1
  517. package/dist/tasks/service.d.ts +1 -0
  518. package/dist/tasks/service.d.ts.map +1 -1
  519. package/dist/tasks/service.js.map +1 -1
  520. package/package.json +3 -3
  521. package/parity.json +132 -73
  522. package/skills/follow-ups/SKILL.md +4 -2
  523. package/dist/background/folders.d.ts +0 -16
  524. package/dist/background/folders.d.ts.map +0 -1
  525. package/dist/background/folders.js +0 -52
  526. package/dist/background/folders.js.map +0 -1
  527. package/dist/background/renamed-paths.d.ts +0 -3
  528. package/dist/background/renamed-paths.d.ts.map +0 -1
  529. package/dist/background/renamed-paths.js +0 -6
  530. package/dist/background/renamed-paths.js.map +0 -1
  531. package/dist/background/wirecat-folder.d.ts +0 -26
  532. package/dist/background/wirecat-folder.d.ts.map +0 -1
  533. package/dist/background/wirecat-folder.js +0 -339
  534. package/dist/background/wirecat-folder.js.map +0 -1
  535. package/dist/cli/permission-migration.d.ts +0 -16
  536. package/dist/cli/permission-migration.d.ts.map +0 -1
  537. package/dist/cli/permission-migration.js +0 -152
  538. package/dist/cli/permission-migration.js.map +0 -1
  539. package/dist/embeddings/pool.d.ts +0 -17
  540. package/dist/embeddings/pool.d.ts.map +0 -1
  541. package/dist/embeddings/pool.js +0 -22
  542. package/dist/embeddings/pool.js.map +0 -1
  543. package/dist/embeddings/worker.d.ts +0 -2
  544. package/dist/embeddings/worker.d.ts.map +0 -1
  545. package/dist/embeddings/worker.js +0 -22
  546. package/dist/embeddings/worker.js.map +0 -1
  547. package/dist/embeddings/workers.d.ts +0 -8
  548. package/dist/embeddings/workers.d.ts.map +0 -1
  549. package/dist/embeddings/workers.js +0 -51
  550. package/dist/embeddings/workers.js.map +0 -1
  551. package/dist/kit/mcp-commands-client.d.ts +0 -7
  552. package/dist/kit/mcp-commands-client.d.ts.map +0 -1
  553. package/dist/kit/mcp-commands-client.js +0 -50
  554. package/dist/kit/mcp-commands-client.js.map +0 -1
  555. package/dist/search/legacy-regex.d.ts +0 -7
  556. package/dist/search/legacy-regex.d.ts.map +0 -1
  557. package/dist/search/legacy-regex.js +0 -48
  558. package/dist/search/legacy-regex.js.map +0 -1
  559. package/dist/search/lucene/migration.d.ts +0 -21
  560. package/dist/search/lucene/migration.d.ts.map +0 -1
  561. package/dist/search/lucene/migration.js +0 -31
  562. package/dist/search/lucene/migration.js.map +0 -1
  563. package/dist/search/search.d.ts +0 -27
  564. package/dist/search/search.d.ts.map +0 -1
  565. package/dist/search/search.js +0 -66
  566. package/dist/search/search.js.map +0 -1
  567. package/dist/services/message-query-validation.d.ts +0 -3
  568. package/dist/services/message-query-validation.d.ts.map +0 -1
  569. package/dist/services/message-query-validation.js +0 -14
  570. package/dist/services/message-query-validation.js.map +0 -1
  571. package/dist/store/sqlite/atomic.d.ts +0 -8
  572. package/dist/store/sqlite/atomic.d.ts.map +0 -1
  573. package/dist/store/sqlite/atomic.js +0 -28
  574. package/dist/store/sqlite/atomic.js.map +0 -1
  575. package/dist/store/sqlite/legacy-regex.d.ts +0 -7
  576. package/dist/store/sqlite/legacy-regex.d.ts.map +0 -1
  577. package/dist/store/sqlite/legacy-regex.js +0 -42
  578. package/dist/store/sqlite/legacy-regex.js.map +0 -1
  579. package/dist/store/sqlite/read-snapshot.d.ts +0 -4
  580. package/dist/store/sqlite/read-snapshot.d.ts.map +0 -1
  581. package/dist/store/sqlite/read-snapshot.js +0 -14
  582. package/dist/store/sqlite/read-snapshot.js.map +0 -1
@@ -30,16 +30,14 @@ import { factsStoreOver } from "./sqlite/facts.js";
30
30
  import { fillFolded } from "./sqlite/folded.js";
31
31
  import * as identities from "./sqlite/identities.js";
32
32
  import * as imageChunks from "./sqlite/image-chunks.js";
33
- import { drainInvolvementQueue } from "./sqlite/involvement-queue.js";
34
33
  import { involvementStoreOver } from "./sqlite/involvements.js";
35
34
  import { knowledgeStoreOver } from "./sqlite/knowledge.js";
36
- import { findRegex } from "./sqlite/legacy-regex.js";
37
35
  import { logPruner } from "./sqlite/log-pruning.js";
38
36
  import * as lucene from "./sqlite/lucene.js";
39
37
  import { meetingVectorsOver } from "./sqlite/meeting-vectors.js";
40
38
  import { meetingStoreOver } from "./sqlite/meetings.js";
41
39
  import { memoriesStoreOver } from "./sqlite/memories.js";
42
- import { confirmMention, drainMentions, listMentions, mentionsState, rebuildMentions, rejectMention, showMention, } from "./sqlite/mentions.js";
40
+ import { confirmMention, listMentions, mentionsState, rebuildMentions, rejectMention, showMention, } from "./sqlite/mentions.js";
43
41
  import * as messageWrites from "./sqlite/messages.js";
44
42
  import { noteSearchOver } from "./sqlite/note-search.js";
45
43
  import { notesStoreOver } from "./sqlite/notes.js";
@@ -58,9 +56,12 @@ import * as search from "./sqlite/search.js";
58
56
  import * as searchIndex from "./sqlite/search-index.js";
59
57
  import * as searchRecords from "./sqlite/searches.js";
60
58
  import * as stems from "./sqlite/stems.js";
59
+ import { fillStems, followDefaultStemmers } from "./sqlite/stems-fill.js";
61
60
  import * as sync from "./sqlite/sync.js";
62
61
  import * as tagQueries from "./sqlite/tags.js";
62
+ import { setTaskRulesStop, taskRulesStop } from "./sqlite/task-rule-stops.js";
63
63
  import { linkInbox, taskStoreOver } from "./sqlite/tasks.js";
64
+ import { read, write } from "./sqlite/transaction.js";
64
65
  import * as transcripts from "./sqlite/transcripts.js";
65
66
  import * as vectors from "./sqlite/vectors.js";
66
67
  import * as words from "./sqlite/words.js";
@@ -85,11 +86,11 @@ export const openStore = async ({ path, env, now = Date.now, command } = {}) =>
85
86
  const pending = pendingNormalization(database);
86
87
  if (pending > 0 && pending <= BACKFILL_ON_OPEN)
87
88
  backfillNormalized(database);
88
- stems.followDefaultStemmers(database, now);
89
+ followDefaultStemmers(database, now);
89
90
  const stemming = stems.stemsState(database);
90
91
  if (stemming?.cause === "building" &&
91
92
  stemming.watermark - stemming.filledThrough + stemming.pending <= BACKFILL_ON_OPEN) {
92
- stems.fillStems(database, { now });
93
+ fillStems(database, { now });
93
94
  }
94
95
  logPruner(database, now)();
95
96
  }
@@ -103,20 +104,6 @@ const storeOver = (context) => {
103
104
  const { database } = context;
104
105
  const stemmerFor = stems.stemmerCache();
105
106
  const pruneLogsWhenDue = logPruner(database, context.now);
106
- const inTransaction = (body) => {
107
- database.exec("BEGIN IMMEDIATE");
108
- try {
109
- body();
110
- stems.drainStems(database, stemmerFor);
111
- drainMentions(database, context.now());
112
- drainInvolvementQueue(database);
113
- database.exec("COMMIT");
114
- }
115
- catch (error) {
116
- database.exec("ROLLBACK");
117
- throw error;
118
- }
119
- };
120
107
  const mailIndexed = (execution) => {
121
108
  if (execution.corpus === "mail")
122
109
  drainEmailIndex(database, stemmerFor);
@@ -157,12 +144,12 @@ const storeOver = (context) => {
157
144
  linkInbox(database, `${key.provider}:${key.account}`, pk);
158
145
  return pk;
159
146
  },
160
- saveChats: async (key, list) => inTransaction(() => {
147
+ saveChats: async (key, list) => write(database, () => {
161
148
  const accountKey = accountPk(key);
162
149
  for (const chat of list)
163
150
  chatQueries.upsertChat(context, accountKey, chat);
164
151
  }),
165
- saveMessages: async (key, chatId, messages, { via, seenAt }) => inTransaction(() => {
152
+ saveMessages: async (key, chatId, messages, { via, seenAt }) => write(database, () => {
166
153
  const accountKey = accountPk(key);
167
154
  const chatKey = chatPkFor(accountKey, chatId);
168
155
  for (const message of messages) {
@@ -170,10 +157,10 @@ const storeOver = (context) => {
170
157
  upsertMessage(key, accountKey, chatKey, message, via, seenAt);
171
158
  }
172
159
  }),
173
- saveMembers: async (key, chatId, memberIds) => inTransaction(() => writeMembers(key, accountPk(key), chatId, memberIds)),
160
+ saveMembers: async (key, chatId, memberIds) => write(database, () => writeMembers(key, accountPk(key), chatId, memberIds)),
174
161
  saveRoster: async (key, chatId, read) => {
175
162
  let change = { joined: [], gone: [], changed: [] };
176
- inTransaction(() => {
163
+ write(database, () => {
177
164
  const accountKey = accountPk(key);
178
165
  change = roster.saveRoster(context, accountKey, key.provider, chatPkFor(accountKey, chatId), read);
179
166
  });
@@ -195,7 +182,7 @@ const storeOver = (context) => {
195
182
  ? []
196
183
  : roster.profileRevisionsOf(context, chatKey, since === undefined ? undefined : Date.parse(since));
197
184
  },
198
- trackMembers: async (key, chatId, tracked) => inTransaction(() => roster.setTracked(context, chatPkFor(accountPk(key), chatId), tracked)),
185
+ trackMembers: async (key, chatId, tracked) => write(database, () => roster.setTracked(context, chatPkFor(accountPk(key), chatId), tracked)),
199
186
  trackedChats: async (key) => {
200
187
  const accountKey = findAccountPk(key);
201
188
  return accountKey === undefined ? [] : roster.trackedChats(context, accountKey);
@@ -209,18 +196,10 @@ const storeOver = (context) => {
209
196
  personSeenInAccounts: async (uid, accountIds) => personSeenInAccounts(context, uid, accountIds),
210
197
  personByUid: async (uid) => personLinks.personByUid(context, uid),
211
198
  linkIdentities: async (person, other, options) => {
212
- let linked;
213
- inTransaction(() => {
214
- linked = personLinks.linkIdentities(context, person, other, options);
215
- });
216
- return linked;
199
+ return write(database, () => personLinks.linkIdentities(context, person, other, options));
217
200
  },
218
201
  unlinkIdentity: async (identity, options) => {
219
- let alone;
220
- inTransaction(() => {
221
- alone = personLinks.unlinkIdentity(context, identity, options);
222
- });
223
- return alone;
202
+ return write(database, () => personLinks.unlinkIdentity(context, identity, options));
224
203
  },
225
204
  mentioning: async (key, person, limit) => {
226
205
  const accountKey = findAccountPk(key);
@@ -236,8 +215,8 @@ const storeOver = (context) => {
236
215
  const accountKey = findAccountPk(key);
237
216
  return accountKey === undefined ? undefined : sync.syncStateOf(context, accountKey, name);
238
217
  },
239
- setSyncState: async (key, name, value) => inTransaction(() => writeState(accountPk(key), name, value)),
240
- applyDelta: async (key, { chats = [], people = [], members = new Map(), state = {} }) => inTransaction(() => {
218
+ setSyncState: async (key, name, value) => write(database, () => writeState(accountPk(key), name, value)),
219
+ applyDelta: async (key, { chats = [], people = [], members = new Map(), state = {} }) => write(database, () => {
241
220
  const accountKey = accountPk(key);
242
221
  for (const chat of chats)
243
222
  chatQueries.upsertChat(context, accountKey, chat);
@@ -255,7 +234,7 @@ const storeOver = (context) => {
255
234
  },
256
235
  claim: async (key, chatId, anchor, holder, forMs) => {
257
236
  let taken = false;
258
- inTransaction(() => {
237
+ write(database, () => {
259
238
  taken = sync.claim(context, chatPkFor(accountPk(key), chatId), anchor, holder, forMs);
260
239
  });
261
240
  return taken;
@@ -274,7 +253,7 @@ const storeOver = (context) => {
274
253
  keepTranscript: async (key, chatId, messageId, text, source) => {
275
254
  if (text.trim() === "")
276
255
  return;
277
- inTransaction(() => transcripts.keepTranscript(context, chatPkFor(accountPk(key), chatId), messageId, text, source));
256
+ write(database, () => transcripts.keepTranscript(context, chatPkFor(accountPk(key), chatId), messageId, text, source));
278
257
  },
279
258
  fileAttachments: async (key, { chatId, ...page }) => {
280
259
  const accountKey = findAccountPk(key);
@@ -297,7 +276,7 @@ const storeOver = (context) => {
297
276
  localPathOf: async (attachmentPk) => attachmentTexts.localPathOf(context, attachmentPk),
298
277
  keepAttachmentText: async (attachmentPk, entry) => {
299
278
  let kept = false;
300
- inTransaction(() => {
279
+ write(database, () => {
301
280
  kept = attachmentTexts.keepText(context, attachmentPk, entry);
302
281
  });
303
282
  return kept;
@@ -307,7 +286,7 @@ const storeOver = (context) => {
307
286
  if (chatKey === undefined || files.length === 0)
308
287
  return 0;
309
288
  let kept = 0;
310
- inTransaction(() => {
289
+ write(database, () => {
311
290
  kept = attachmentRows.keepDownloads(context, chatKey, messageId, files);
312
291
  });
313
292
  return kept;
@@ -377,7 +356,7 @@ const storeOver = (context) => {
377
356
  throw new CliError("validation_error", `the answer was not stored: ${batch} is not a batch of this account`);
378
357
  }
379
358
  let stored = 0;
380
- inTransaction(() => {
359
+ write(database, () => {
381
360
  stored = batches.saveAnswers(context, batch, answer);
382
361
  });
383
362
  return { chat, stored };
@@ -387,7 +366,7 @@ const storeOver = (context) => {
387
366
  if (chatKey === undefined)
388
367
  return 0;
389
368
  let cleared = 0;
390
- inTransaction(() => {
369
+ write(database, () => {
391
370
  cleared = batches.clearAnswers(context, chatKey, model);
392
371
  });
393
372
  return cleared;
@@ -418,7 +397,7 @@ const storeOver = (context) => {
418
397
  return chatKey === undefined ? [] : vectors.chunksToEmbed(context, chatKey, model, options);
419
398
  },
420
399
  saveVectors: async (model, dims, rows) => {
421
- inTransaction(() => vectors.saveVectors(context, model, dims, rows));
400
+ write(database, () => vectors.saveVectors(context, model, dims, rows));
422
401
  },
423
402
  imagesToDescribe: async (key, chatId, window) => {
424
403
  const chatKey = chatKeyOf(key, chatId);
@@ -429,7 +408,7 @@ const storeOver = (context) => {
429
408
  const chatKey = chatKeyOf(key, chatId);
430
409
  if (accountPk === undefined || chatKey === undefined)
431
410
  return;
432
- inTransaction(() => imageChunks.saveImageChunks(context, accountPk, chatKey, chunks, keep));
411
+ write(database, () => imageChunks.saveImageChunks(context, accountPk, chatKey, chunks, keep));
433
412
  },
434
413
  embeddedHashes: async (model, hashes) => imageChunks.embeddedHashes(context, model, hashes),
435
414
  nearestImages: async (key, { chatId, model, since, limit, query }) => {
@@ -481,7 +460,7 @@ const storeOver = (context) => {
481
460
  const accountPk = findAccountPk(key);
482
461
  if (accountPk === undefined)
483
462
  return;
484
- inTransaction(() => {
463
+ write(database, () => {
485
464
  vectors.saveVectors(context, model, dims, pictures.map(({ hash, vector }) => ({ hash, vector })));
486
465
  imageChunks.savePictureChunks(context, accountPk, pictures);
487
466
  });
@@ -511,7 +490,7 @@ const storeOver = (context) => {
511
490
  if (chatKey === undefined)
512
491
  return 0;
513
492
  let cleared = 0;
514
- inTransaction(() => {
493
+ write(database, () => {
515
494
  cleared = vectors.clearVectors(context, chatKey, model);
516
495
  });
517
496
  return cleared;
@@ -672,24 +651,18 @@ const storeOver = (context) => {
672
651
  owner = { organization: Number(found.id) };
673
652
  }
674
653
  }
675
- let decision;
676
- inTransaction(() => {
677
- decision = confirmMention(context, accountKey, id, owner, by);
678
- });
679
- return decision;
654
+ return write(database, () => confirmMention(context, accountKey, id, owner, by));
680
655
  },
681
656
  rejectMention: async (key, id, by) => {
682
657
  const accountKey = findAccountPk(key);
683
658
  if (accountKey === undefined)
684
659
  throw new CliError("not_found", `no mention ${id} in this account`);
685
- let decision;
686
- inTransaction(() => {
687
- decision = rejectMention(context, accountKey, id, by);
688
- });
689
- return decision;
660
+ return write(database, () => rejectMention(context, accountKey, id, by));
690
661
  },
691
662
  rebuildMentions: async (options = {}) => rebuildMentions(database, { now: context.now(), ...options }),
692
663
  mentionsState: async () => mentionsState(database),
664
+ taskRulesStop: async (key) => taskRulesStop(database, key),
665
+ setTaskRulesStop: async (key, until) => setTaskRulesStop(database, key, until, context.now()),
693
666
  changes: async (key, chatId, at) => {
694
667
  const chatKey = chatKeyOf(key, chatId);
695
668
  return chatKey === undefined
@@ -714,7 +687,7 @@ const storeOver = (context) => {
714
687
  if (accountKey === undefined || messageIds.length === 0)
715
688
  return 0;
716
689
  let changed = 0;
717
- inTransaction(() => {
690
+ write(database, () => {
718
691
  changed = messageWrites.markDeleted(context, accountKey, messageIds, chatId, among);
719
692
  });
720
693
  return changed;
@@ -723,14 +696,14 @@ const storeOver = (context) => {
723
696
  const accountKey = findAccountPk(key);
724
697
  if (accountKey === undefined)
725
698
  return;
726
- inTransaction(() => accounts.purgeAccount(context, accountKey));
699
+ write(database, () => accounts.purgeAccount(context, accountKey));
727
700
  },
728
701
  markChatsLeft: async (key, present) => {
729
702
  const accountKey = findAccountPk(key);
730
703
  if (accountKey === undefined)
731
704
  return 0;
732
705
  let marked = 0;
733
- inTransaction(() => {
706
+ write(database, () => {
734
707
  marked = chatQueries.markLeft(context, accountKey, present);
735
708
  writeState(accountKey, completeness.CHAT_LIST_KEY, String(present.length));
736
709
  });
@@ -741,7 +714,7 @@ const storeOver = (context) => {
741
714
  if (accountKey === undefined)
742
715
  return { chats: 0, messages: 0 };
743
716
  let found = { pks: [], messages: 0 };
744
- inTransaction(() => {
717
+ write(database, () => {
745
718
  found = chatQueries.leftChats(context, accountKey);
746
719
  if (clear)
747
720
  chatQueries.purgeChats(context, found.pks);
@@ -749,7 +722,7 @@ const storeOver = (context) => {
749
722
  return { chats: found.pks.length, messages: found.messages };
750
723
  },
751
724
  search: async (query, { limit, account }) => search.find(context, { text: query, limit, ...(account ? { account } : {}) }),
752
- find: async (filter) => (filter.pattern ? findRegex(context, filter) : search.find(context, filter)),
725
+ find: async (filter) => search.find(context, filter),
753
726
  rankingDiscussionChats: async (account, chatId) => {
754
727
  const rows = database
755
728
  .prepare("SELECT DISTINCT json_extract(CASE WHEN json_valid(m.metadata) THEN m.metadata ELSE '{}' END,'$.graph.discussionChatId') AS id FROM messages m JOIN chats c ON c.id=m.chat_id JOIN accounts ac ON ac.id=m.account_id WHERE ac.provider=? AND ac.external_id=? AND c.external_id=? AND c.kind='channel' AND m.deleted_at IS NULL AND json_extract(CASE WHEN json_valid(m.metadata) THEN m.metadata ELSE '{}' END,'$.graph.version')=1 AND json_type(CASE WHEN json_valid(m.metadata) THEN m.metadata ELSE '{}' END,'$.graph.discussionChatId')='text' LIMIT 101")
@@ -764,16 +737,7 @@ const storeOver = (context) => {
764
737
  const chatKey = accountKey === undefined ? undefined : findChatPk(accountKey, chatId);
765
738
  if (accountKey === undefined || chatKey === undefined)
766
739
  throw new CliError("validation_error", "retention needs a stored chat and membership observations");
767
- context.database.exec("BEGIN");
768
- try {
769
- const result = retentionQuery(context, accountKey, chatKey, chatId, options, evidence);
770
- context.database.exec("COMMIT");
771
- return result;
772
- }
773
- catch (error) {
774
- context.database.exec("ROLLBACK");
775
- throw error;
776
- }
740
+ return read(database, () => retentionQuery(context, accountKey, chatKey, chatId, options, evidence));
777
741
  },
778
742
  adminStatisticsQuery: async (execution, request) => adminStatisticsQuery(context, execution, request),
779
743
  rankQuery: async (execution, request) => rankQuery(context, execution, request),
@@ -781,13 +745,6 @@ const storeOver = (context) => {
781
745
  matchQuery: async (execution) => lucene.matchQuery(context, mailIndexed(execution)),
782
746
  conversationEligibility: async (execution) => conversationEligibility(context, execution),
783
747
  countQuery: async (execution, by) => lucene.countQuery(context, mailIndexed(execution), by),
784
- matchWords: async (query, scope, options) => words.matchWords(context, query, scope, options),
785
- matchSubstring: async (query, scope, options) => words.matchSubstring(context, query, scope, options),
786
- attachmentKinds: async () => database
787
- .prepare("SELECT DISTINCT kind FROM attachments ORDER BY kind")
788
- .all()
789
- .map((row) => String(row.kind)),
790
- matchFilters: async (scope, options) => words.matchFilters(context, scope, options),
791
748
  accounts: async () => accounts.heldAccounts(context),
792
749
  storedAccounts: async () => accounts.storedAccounts(context),
793
750
  storedAccount: async (key) => accounts.storedAccount(context, key),
@@ -801,13 +758,13 @@ const storeOver = (context) => {
801
758
  searchIndexState: async () => searchIndex.searchIndexState(database),
802
759
  fillSearchIndex: async ({ until } = {}) => searchIndex.fillSearchIndex(database, { now: context.now, ...(until ? { until } : {}) }),
803
760
  stemsState: async () => stems.stemsState(database),
804
- fillStems: async ({ until } = {}) => stems.fillStems(database, { now: context.now, ...(until ? { until } : {}) }),
761
+ fillStems: async ({ until } = {}) => fillStems(database, { now: context.now, ...(until ? { until } : {}) }),
805
762
  stemmers: async () => stems.savedStemmers(database),
806
- saveStemmers: async (stemmers) => inTransaction(() => stems.saveStoreStemmers(database, stemmers, context.now())),
763
+ saveStemmers: async (stemmers) => write(database, () => stems.saveStoreStemmers(database, stemmers, context.now())),
807
764
  accountGroups: async () => accountGroupsOf(database),
808
765
  profiles: async () => profilesOf(database),
809
- saveProfile: async (app, profile, key) => inTransaction(() => saveProfile(database, app, profile, key, context.now())),
810
- saveAccountGroup: async (name, members) => inTransaction(() => {
766
+ saveProfile: async (app, profile, key) => write(database, () => saveProfile(database, app, profile, key, context.now())),
767
+ saveAccountGroup: async (name, members) => write(database, () => {
811
768
  const groups = accountGroupsOf(database);
812
769
  if (members === undefined)
813
770
  delete groups[name];
@@ -832,7 +789,7 @@ const storeOver = (context) => {
832
789
  if (accountKey !== undefined)
833
790
  identities.refreshRecency(context, accountKey);
834
791
  },
835
- savePeople: async (key, people) => inTransaction(() => {
792
+ savePeople: async (key, people) => write(database, () => {
836
793
  const accountKey = accountPk(key);
837
794
  for (const person of people)
838
795
  identityPk(accountKey, key.provider, person.id, person.name, person);
@@ -847,7 +804,7 @@ const storeOver = (context) => {
847
804
  },
848
805
  updateCounterObservations: async (key, chatId, messageId, observations) => {
849
806
  let updated = 0;
850
- inTransaction(() => {
807
+ write(database, () => {
851
808
  const row = database
852
809
  .prepare("SELECT m.id AS pk FROM messages m JOIN chats c ON c.id=m.chat_id JOIN accounts ac ON ac.id=m.account_id WHERE ac.provider=? AND ac.external_id=? AND c.external_id=? AND m.external_id=? AND m.deleted_at IS NULL")
853
810
  .get(key.provider, key.account, chatId, messageId);
@@ -862,7 +819,7 @@ const storeOver = (context) => {
862
819
  if (chatKey === undefined)
863
820
  return false;
864
821
  let saved = false;
865
- inTransaction(() => {
822
+ write(database, () => {
866
823
  saved = messageWrites.saveReactions(context, chatKey, messageId, reactions);
867
824
  const row = database
868
825
  .prepare("SELECT id AS pk FROM messages WHERE chat_id=? AND external_id=? AND deleted_at IS NULL")
@@ -874,7 +831,7 @@ const storeOver = (context) => {
874
831
  },
875
832
  markRange: async (key, chatId, from, to) => {
876
833
  let merged = { from, to };
877
- inTransaction(() => {
834
+ write(database, () => {
878
835
  merged = ranges.markRange(context, chatPkFor(accountPk(key), chatId), from, to);
879
836
  });
880
837
  return merged;
@@ -904,67 +861,47 @@ const storeOver = (context) => {
904
861
  },
905
862
  chatMetadata: async (key, chatId) => metadataQueries.metadata(context, key, chatId),
906
863
  saveChatMetadata: async (key, entry) => metadataQueries.saveMetadata(context, key, entry),
907
- replaceAutoTags: async (key, chatId, algorithm, matches) => inTransaction(() => metadataQueries.replaceAutoTags(context, key, chatId, algorithm, matches)),
864
+ replaceAutoTags: async (key, chatId, algorithm, matches) => write(database, () => metadataQueries.replaceAutoTags(context, key, chatId, algorithm, matches)),
908
865
  privateContact: async (key, person) => privatePeople.privateContact(context, key, person),
909
866
  setContactAlias: async (key, person, alias) => {
910
- let result;
911
- inTransaction(() => {
912
- result = privatePeople.setAlias(context, key, person, alias);
913
- });
914
- return result;
867
+ return write(database, () => privatePeople.setAlias(context, key, person, alias));
915
868
  },
916
869
  addContactNote: async (key, person, text) => {
917
- let added;
918
- inTransaction(() => {
919
- added = privatePeople.addNote(context, key, person, text);
920
- });
921
- return added;
870
+ return write(database, () => privatePeople.addNote(context, key, person, text));
922
871
  },
923
872
  contactNote: async (key, person, id) => privatePeople.note(context, key, person, id),
924
873
  editContactNote: async (key, person, id, text, revision) => {
925
- let edited;
926
- inTransaction(() => {
927
- edited = privatePeople.editNote(context, key, person, id, text, revision);
928
- });
929
- return edited;
874
+ return write(database, () => privatePeople.editNote(context, key, person, id, text, revision));
930
875
  },
931
876
  removeContactNote: async (key, person, id) => privatePeople.removeNote(context, key, person, id),
932
877
  addTags: async (key, target, list) => {
933
878
  let added = [];
934
- inTransaction(() => {
879
+ write(database, () => {
935
880
  added = tagQueries.addTags(context, tagQueries.targetThing(context, key, target), list);
936
881
  });
937
882
  return added;
938
883
  },
939
884
  removeTags: async (key, target, list, source) => {
940
885
  let removed = [];
941
- inTransaction(() => {
886
+ write(database, () => {
942
887
  removed = tagQueries.removeTags(context, tagQueries.targetThing(context, key, target), list, source);
943
888
  });
944
889
  return removed;
945
890
  },
946
891
  tags: async (key, filter = {}) => tagQueries.tagsOf(context, key, filter),
947
- recordSearch: async (run, { saved } = {}) => inTransaction(() => searchRecords.recordRun(context, run, saved)),
892
+ recordSearch: async (run, { saved } = {}) => write(database, () => searchRecords.recordRun(context, run, saved)),
948
893
  saveSearch: async (name, search, { replace = false } = {}) => {
949
- let saved;
950
- inTransaction(() => {
951
- saved = searchRecords.saveSearch(context, name, search, replace);
952
- });
953
- return saved;
894
+ return write(database, () => searchRecords.saveSearch(context, name, search, replace));
954
895
  },
955
896
  storedSearch: async (reference) => searchRecords.findSearch(context, reference),
956
897
  savedSearches: async () => searchRecords.savedSearches(context),
957
898
  searchHistory: async (limit, offset) => searchRecords.searchHistory(context, limit, offset),
958
899
  deleteSearch: async (reference) => {
959
- let deleted;
960
- inTransaction(() => {
961
- deleted = searchRecords.deleteSearch(context, reference);
962
- });
963
- return deleted;
900
+ return write(database, () => searchRecords.deleteSearch(context, reference));
964
901
  },
965
902
  clearSearchHistory: async () => {
966
903
  let cleared = 0;
967
- inTransaction(() => {
904
+ write(database, () => {
968
905
  cleared = searchRecords.clearHistory(context);
969
906
  });
970
907
  return cleared;
@@ -1039,6 +976,7 @@ export { drainNoteIndex, noteIndexState, resetNoteIndex } from "./sqlite/note-in
1039
976
  export { queryFilter } from "./sqlite/query-filter.js";
1040
977
  export { AGENDA_COLUMNS } from "./sqlite/reads.js";
1041
978
  export { fillSearchIndex, resetSearchIndex, searchIndexState } from "./sqlite/search-index.js";
1042
- export { fillStems, resetStems, savedStemmers, stemmerCache, stemmersOrigin, stemsState, } from "./sqlite/stems.js";
979
+ export { savedStemmers, stemmerCache, stemmersOrigin, stemsState, } from "./sqlite/stems.js";
980
+ export { fillStems, resetStems } from "./sqlite/stems-fill.js";
1043
981
  export { inboxKey } from "./sqlite/tasks.js";
1044
982
  //# sourceMappingURL=store.js.map