@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
@@ -2,8 +2,8 @@ import { createHash } from "node:crypto";
2
2
  import { CliError } from "@wirecat/cli-base";
3
3
  import { normalizeTag } from "../../domain/tags.js";
4
4
  import { normalizeVocabularyName, vocabularySimilarity } from "../../domain/vocabulary.js";
5
- import { atomic } from "./atomic.js";
6
5
  import { tagCreationReview } from "./tag-creation.js";
6
+ import { read, write } from "./transaction.js";
7
7
  const kinds = ["project", "tag", "topic"];
8
8
  const cancelled = (signal) => {
9
9
  if (signal?.aborted)
@@ -21,19 +21,7 @@ const kindOf = (kind) => {
21
21
  /** Metadata and aliases only: no transcript, model or person-name lookup. */
22
22
  export const vocabularyStoreOver = (context) => {
23
23
  const { database, now } = context;
24
- const snapshot = (body) => {
25
- database.exec("SAVEPOINT vocabulary_snapshot");
26
- try {
27
- const result = body();
28
- database.exec("RELEASE vocabulary_snapshot");
29
- return result;
30
- }
31
- catch (error) {
32
- database.exec("ROLLBACK TO vocabulary_snapshot; RELEASE vocabulary_snapshot");
33
- throw error;
34
- }
35
- };
36
- const catalog = (options = {}) => snapshot(() => {
24
+ const catalog = (options = {}) => read(database, () => {
37
25
  cancelled(options.signal);
38
26
  if (options.kind !== undefined)
39
27
  kindOf(options.kind);
@@ -170,7 +158,7 @@ export const vocabularyStoreOver = (context) => {
170
158
  };
171
159
  return {
172
160
  vocabulary: async (options) => catalog(options),
173
- auditVocabulary: async (options = {}) => snapshot(() => {
161
+ auditVocabulary: async (options = {}) => read(database, () => {
174
162
  const minSimilarity = options.minSimilarity ?? 0.65;
175
163
  const maxComparisons = options.maxComparisons ?? 10000;
176
164
  const limit = options.limit ?? 20;
@@ -235,7 +223,7 @@ export const vocabularyStoreOver = (context) => {
235
223
  },
236
224
  addVocabularyAlias: async (target, name, options = {}) => {
237
225
  const normalized = normalizeVocabularyName(name);
238
- return atomic(database, () => {
226
+ return write(database, () => {
239
227
  const current = writable(options);
240
228
  const entry = targetEntry(current, target);
241
229
  const peers = current.entries.filter((value) => (value.kind === "project") === (target.kind === "project"));
@@ -260,7 +248,7 @@ export const vocabularyStoreOver = (context) => {
260
248
  };
261
249
  });
262
250
  },
263
- removeVocabularyAlias: async (target, aliasId, options = {}) => atomic(database, () => {
251
+ removeVocabularyAlias: async (target, aliasId, options = {}) => write(database, () => {
264
252
  const current = writable(options);
265
253
  const entry = targetEntry(current, target);
266
254
  idOf(aliasId);
@@ -273,7 +261,7 @@ export const vocabularyStoreOver = (context) => {
273
261
  cancelled(options.signal);
274
262
  return { target: { kind: entry.kind, id: entry.id }, alias: held, changed: true };
275
263
  }),
276
- tagPreflight: async (name, options = {}) => snapshot(() => {
264
+ tagPreflight: async (name, options = {}) => read(database, () => {
277
265
  const kind = options.kind ?? "tag";
278
266
  if (kind !== "tag" && kind !== "topic")
279
267
  throw new CliError("validation_error", "choose tag or topic");
@@ -1 +1 @@
1
- {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../../src/store/sqlite/vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../../src/store/sqlite/vocabulary.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,5 @@
1
- import type { Id, Page, Provider } from "../../domain/models.js";
2
- import type { Term } from "../../search/query.js";
3
- import type { AccountKey, StoredHit } from "../store.js";
1
+ import type { StoredHit } from "../store.js";
4
2
  import type { StoreContext } from "./open.js";
5
- /**
6
- * A chat or a sender with at most this many messages is filtered inside the word index; a larger one by
7
- * a join (phase 2 plan S6). Measured on 1M (`bench/search/store-chain.ts`): the token is 3.5 times
8
- * faster for "any word" in an 85k chat, and 5% slower in a 500k one.
9
- */
10
- export declare const SCOPE_TOKEN_LIMIT = 100000;
11
- export interface WordQuery {
12
- /** AND of groups, each an OR of terms. */
13
- required: Term[][];
14
- excluded: Term[];
15
- }
16
- export interface SearchScope {
17
- accounts: AccountKey[];
18
- chat?: {
19
- account: AccountKey;
20
- chatId: Id;
21
- };
22
- sender?: {
23
- provider: Provider;
24
- id: Id;
25
- };
26
- /** Any of these senders — always a join, whatever their size. */
27
- senders?: {
28
- provider: Provider;
29
- id: Id;
30
- }[];
31
- /** `from:me`: what the account itself sent. */
32
- outgoing?: boolean;
33
- /** Epoch ms, inclusive. */
34
- after?: number;
35
- /** Epoch ms, exclusive. */
36
- before?: number;
37
- /** Attachment kinds, `attachment` for any, `link` for a link in the text — all required. */
38
- has?: string[];
39
- }
40
- export interface WordOptions {
41
- /** Every group required, or any term enough. */
42
- mode: "every" | "any";
43
- /** Words of three letters or more match as the beginning of a word. */
44
- beginnings: boolean;
45
- limit: number;
46
- /** Newest first instead of by score. */
47
- newest?: boolean;
48
- }
49
3
  /** A hit with its relevance — bm25 turned round so higher is better; `null` from steps that do not rank. */
50
4
  /** `exact: false`: a stemmed search found it only through another form of the words. */
51
5
  export type ScoredHit = StoredHit & {
@@ -57,20 +11,6 @@ export type ScoredHit = StoredHit & {
57
11
  matchedText?: string;
58
12
  };
59
13
  export type MatchPlace = "text" | "transcript" | "filename" | "file";
60
- /**
61
- * Steps 1, 2 and 4 of the search (plan S4): the word index, ranked by bm25, ties newest first. A small
62
- * chat or sender is a token inside the index, a large one a join; with neither, the index ranks first
63
- * and the join keeps this account's rows (plan S6). The index is always searched before the rows.
64
- */
65
- export declare const matchWords: (context: StoreContext, query: WordQuery, scope: SearchScope, { mode, beginnings, limit, newest }: WordOptions) => Page<ScoredHit>;
66
- /** A search of filters alone — `from:alice after:2026-01-01` — newest first (plan S5). */
67
- export declare const matchFilters: (context: StoreContext, scope: SearchScope, { limit }: {
68
- limit: number;
69
- }) => Page<ScoredHit>;
70
- /** Step 5 (plan S4): the substring index over the raw text, newest first. Pieces under three letters are dropped. */
71
- export declare const matchSubstring: (context: StoreContext, query: WordQuery, scope: SearchScope, { limit }: {
72
- limit: number;
73
- }) => Page<ScoredHit>;
74
14
  /**
75
15
  * The words the index knows, of those given: a whole word, or the beginning of one — otherwise
76
16
  * `квартир` would be "corrected" to `квартира` and lose `квартиру` (plan S4).
@@ -1 +1 @@
1
- {"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAU,CAAA;AAMxC,MAAM,WAAW,SAAS;IACxB,0CAA0C;IAC1C,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAA;IAClB,QAAQ,EAAE,IAAI,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,EAAE,CAAA;KAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,EAAE,EAAE,EAAE,CAAA;KAAE,CAAA;IACvC,iEAAiE;IACjE,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,EAAE,EAAE,EAAE,CAAA;KAAE,EAAE,CAAA;IAC1C,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4FAA4F;IAC5F,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,IAAI,EAAE,OAAO,GAAG,KAAK,CAAA;IACrB,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,4GAA4G;AAC5G,wFAAwF;AACxF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2GAA2G;IAC3G,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;AAoHpE;;;;GAIG;AACH,eAAO,MAAM,UAAU,YACZ,YAAY,SACd,SAAS,SACT,WAAW,uCAC2B,WAAW,KACvD,IAAI,CAAC,SAAS,CA8DhB,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,YAAY,YACd,YAAY,SACd,WAAW,aACP;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAC3B,IAAI,CAAC,SAAS,CAehB,CAAA;AAED,qHAAqH;AACrH,eAAO,MAAM,cAAc,YAChB,YAAY,SACd,SAAS,SACT,WAAW,aACP;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,KAC3B,IAAI,CAAC,SAAS,CA8BhB,CAAA;AAID;;;GAGG;AACH,eAAO,MAAM,UAAU,iBAAkB,YAAY,SAAS,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,CAQlF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iBACX,YAAY,UAClB,MAAM,EAAE,yBACO;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAC3D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAchC,CAAA"}
1
+ {"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,4GAA4G;AAC5G,wFAAwF;AACxF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2GAA2G;IAC3G,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;AAIpE;;;GAGG;AACH,eAAO,MAAM,UAAU,iBAAkB,YAAY,SAAS,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,CAQlF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iBACX,YAAY,UAClB,MAAM,EAAE,yBACO;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAC3D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAchC,CAAA"}
@@ -1,229 +1,4 @@
1
- import { CliError } from "@wirecat/cli-base";
2
- import { storedKinds } from "../../domain/attachments.js";
3
1
  import { normalize } from "../normalize.js";
4
- import { findAccountPk } from "./accounts.js";
5
- import { findChatPk } from "./chats.js";
6
- import { hitsByPk } from "./search.js";
7
- /**
8
- * A chat or a sender with at most this many messages is filtered inside the word index; a larger one by
9
- * a join (phase 2 plan S6). Measured on 1M (`bench/search/store-chain.ts`): the token is 3.5 times
10
- * faster for "any word" in an 85k chat, and 5% slower in a 500k one.
11
- */
12
- export const SCOPE_TOKEN_LIMIT = 100_000;
13
- /** The scope column out of bm25: otherwise a chat under the limit would rank its hits by the token too. */
14
- const UNSCOPED_RANK = "bm25(1.0, 0.0)";
15
- /** Ranked inside the index first, this many times the page, before the join drops other accounts' rows. */
16
- const RANKED_FIRST = 5;
17
- const quoted = (text) => `"${text.replaceAll('"', '""')}"`;
18
- const meaningful = (text) => /[\p{L}\p{N}]/u.test(text);
19
- const textOf = (term) => normalize(term.kind === "phrase" ? term.words.join(" ") : term.text);
20
- const wordTerm = (term, beginnings) => {
21
- const text = textOf(term);
22
- if (!meaningful(text))
23
- return undefined;
24
- return beginnings && term.kind === "word" && [...text].length >= 3 ? `${quoted(text)}*` : quoted(text);
25
- };
26
- /** Null when nothing in the scope can match: an unknown account, chat or sender. */
27
- const resolve = (context, scope) => {
28
- if (scope.accounts.length === 0)
29
- throw new CliError("validation_error", "a search names at least one account");
30
- const accountPks = scope.accounts.flatMap((key) => findAccountPk(context, key) ?? []);
31
- if (accountPks.length === 0)
32
- return null;
33
- const resolved = { accountPks };
34
- const { database } = context;
35
- if (scope.chat) {
36
- const account = findAccountPk(context, scope.chat.account);
37
- const chatPk = account === undefined ? undefined : findChatPk(context, account, scope.chat.chatId);
38
- if (chatPk === undefined)
39
- return null;
40
- resolved.chatPk = chatPk;
41
- resolved.chatMessages = Number(database.prepare("SELECT message_count FROM chats WHERE id = ?").get(chatPk)?.message_count);
42
- }
43
- if (scope.senders) {
44
- const lookup = database.prepare("SELECT id AS pk FROM identities WHERE provider = ? AND external_id = ?");
45
- resolved.senderPks = scope.senders.flatMap(({ provider, id }) => {
46
- const pk = lookup.get(provider, id)?.pk;
47
- return pk === undefined ? [] : [Number(pk)];
48
- });
49
- if (resolved.senderPks.length === 0)
50
- return null;
51
- }
52
- if (scope.sender) {
53
- const senderPk = database
54
- .prepare("SELECT id AS pk FROM identities WHERE provider = ? AND external_id = ?")
55
- .get(scope.sender.provider, scope.sender.id)?.pk;
56
- if (senderPk === undefined)
57
- return null;
58
- resolved.senderPk = Number(senderPk);
59
- // Counted only as far as the limit: past it the answer is "large", whatever the number.
60
- resolved.senderMessages = Number(database
61
- .prepare("SELECT count(*) AS n FROM (SELECT 1 FROM messages WHERE sender_identity_id = ? LIMIT ?)")
62
- .get(resolved.senderPk, SCOPE_TOKEN_LIMIT + 1)?.n);
63
- }
64
- return resolved;
65
- };
66
- /** The conditions on the message row, shared by every step. */
67
- const rowConditions = (resolved, scope, joined) => {
68
- const where = ["m.deleted_at IS NULL", `m.account_id IN (${resolved.accountPks.join(", ")})`];
69
- const params = [];
70
- if (joined.chat) {
71
- where.push("m.chat_id = ?");
72
- params.push(resolved.chatPk);
73
- }
74
- if (joined.sender) {
75
- where.push("m.sender_identity_id = ?");
76
- params.push(resolved.senderPk);
77
- }
78
- if (resolved.senderPks)
79
- where.push(`m.sender_identity_id IN (${resolved.senderPks.join(", ")})`);
80
- if (scope.outgoing)
81
- where.push("m.outgoing = 1");
82
- if (scope.after !== undefined) {
83
- where.push("m.sent_at >= ?");
84
- params.push(scope.after);
85
- }
86
- if (scope.before !== undefined) {
87
- where.push("m.sent_at < ?");
88
- params.push(scope.before);
89
- }
90
- for (const kind of scope.has ?? []) {
91
- if (kind === "link")
92
- where.push(`m.id IN (SELECT rowid FROM messages_fts WHERE messages_fts MATCH '"://"')`);
93
- else if (kind === "attachment")
94
- where.push("EXISTS (SELECT 1 FROM attachments a WHERE a.attachable_type = 'message' AND a.attachable_id = m.id)");
95
- else {
96
- const kinds = storedKinds(kind);
97
- where.push(`EXISTS (SELECT 1 FROM attachments a WHERE a.attachable_type = 'message' AND a.attachable_id = m.id AND a.kind IN (${kinds.map(() => "?").join(",")}))`);
98
- params.push(...kinds);
99
- }
100
- }
101
- // A chat marked not searchable is searched only when the search names it (plan S9).
102
- if (!scope.chat)
103
- where.push("c.searchable = 1");
104
- return { where: where.join(" AND "), params };
105
- };
106
- const page = (context, rows, limit) => {
107
- const kept = rows.slice(0, limit);
108
- const scores = new Map(kept.map((row) => [row.pk, row.score]));
109
- const hits = hitsByPk(context, kept.map((row) => row.pk));
110
- return {
111
- items: hits.map((hit, index) => {
112
- const score = scores.get(kept[index].pk) ?? null;
113
- return { ...hit, score: score === null ? null : -score };
114
- }),
115
- hasMore: rows.length > limit,
116
- };
117
- };
118
- /**
119
- * Steps 1, 2 and 4 of the search (plan S4): the word index, ranked by bm25, ties newest first. A small
120
- * chat or sender is a token inside the index, a large one a join; with neither, the index ranks first
121
- * and the join keeps this account's rows (plan S6). The index is always searched before the rows.
122
- */
123
- export const matchWords = (context, query, scope, { mode, beginnings, limit, newest = false }) => {
124
- const empty = { items: [], hasMore: false };
125
- const groups = query.required
126
- .map((group) => group.flatMap((term) => wordTerm(term, beginnings) ?? []))
127
- .filter((group) => group.length > 0);
128
- if (groups.length === 0)
129
- return empty;
130
- const resolved = resolve(context, scope);
131
- if (!resolved)
132
- return empty;
133
- const tokenChat = resolved.chatPk !== undefined && (resolved.chatMessages ?? 0) <= SCOPE_TOKEN_LIMIT;
134
- const tokenSender = resolved.senderPk !== undefined && (resolved.senderMessages ?? 0) <= SCOPE_TOKEN_LIMIT;
135
- const required = mode === "every" ? groups.map((group) => `(${group.join(" OR ")})`).join(" AND ") : groups.flat().join(" OR ");
136
- const tokens = [...(tokenChat ? [`c${resolved.chatPk}`] : []), ...(tokenSender ? [`s${resolved.senderPk}`] : [])];
137
- let match = `(normalized_text : (${required}))`;
138
- if (tokens.length > 0)
139
- match = `(${match} AND (scope : (${tokens.map(quoted).join(" AND ")})))`;
140
- for (const term of query.excluded) {
141
- const excluded = wordTerm(term, false);
142
- if (excluded)
143
- match = `(${match} NOT (normalized_text : ${excluded}))`;
144
- }
145
- const joined = {
146
- chat: resolved.chatPk !== undefined && !tokenChat,
147
- sender: resolved.senderPk !== undefined && !tokenSender,
148
- };
149
- const { where, params } = rowConditions(resolved, scope, joined);
150
- const order = newest ? "m.sent_at DESC, m.id DESC" : "f.rank, m.sent_at DESC, m.id DESC";
151
- const full = () => context.database
152
- .prepare(`SELECT m.id AS pk, f.rank AS score
153
- FROM message_words f CROSS JOIN messages m CROSS JOIN chats c
154
- WHERE message_words MATCH ? AND f.rank MATCH '${UNSCOPED_RANK}' AND m.id = f.rowid AND c.id = m.chat_id
155
- AND ${where}
156
- ORDER BY ${order} LIMIT ?`)
157
- .all(match, ...params, limit + 1)
158
- .map((row) => ({ pk: Number(row.pk), score: Number(row.score) }));
159
- if (newest || resolved.chatPk !== undefined || resolved.senderPk !== undefined || resolved.senderPks) {
160
- return page(context, full(), limit);
161
- }
162
- const ranked = context.database
163
- .prepare("SELECT rowid AS pk, rank AS score FROM message_words WHERE message_words MATCH ? ORDER BY rank LIMIT ?")
164
- .all(match, RANKED_FIRST * (limit + 1));
165
- if (ranked.length === 0)
166
- return empty;
167
- const kept = new Map(context.database
168
- .prepare(`SELECT m.id AS pk, m.sent_at AS sent FROM messages m CROSS JOIN chats c
169
- WHERE m.id IN (${ranked.map((row) => Number(row.pk)).join(", ")}) AND c.id = m.chat_id AND ${where}`)
170
- .all(...params)
171
- .map((row) => [Number(row.pk), Number(row.sent)]));
172
- const survivors = ranked
173
- .filter((row) => kept.has(Number(row.pk)))
174
- .map((row) => ({ pk: Number(row.pk), score: Number(row.score), sent: kept.get(Number(row.pk)) ?? 0 }))
175
- .sort((a, b) => a.score - b.score || b.sent - a.sent || b.pk - a.pk);
176
- // Fewer than a page survived only because the top of the index was other accounts' rows.
177
- if (survivors.length > limit || ranked.length < RANKED_FIRST * (limit + 1))
178
- return page(context, survivors, limit);
179
- return page(context, full(), limit);
180
- };
181
- /** A search of filters alone — `from:alice after:2026-01-01` — newest first (plan S5). */
182
- export const matchFilters = (context, scope, { limit }) => {
183
- const resolved = resolve(context, scope);
184
- if (!resolved)
185
- return { items: [], hasMore: false };
186
- const { where, params } = rowConditions(resolved, scope, {
187
- chat: resolved.chatPk !== undefined,
188
- sender: resolved.senderPk !== undefined,
189
- });
190
- const rows = context.database
191
- .prepare(`SELECT m.id AS pk FROM messages m CROSS JOIN chats c
192
- WHERE c.id = m.chat_id AND ${where} ORDER BY m.sent_at DESC, m.id DESC LIMIT ?`)
193
- .all(...params, limit + 1)
194
- .map((row) => ({ pk: Number(row.pk), score: null }));
195
- return page(context, rows, limit);
196
- };
197
- /** Step 5 (plan S4): the substring index over the raw text, newest first. Pieces under three letters are dropped. */
198
- export const matchSubstring = (context, query, scope, { limit }) => {
199
- const empty = { items: [], hasMore: false };
200
- const pieces = (term) => (term.kind === "phrase" ? [term.words.join(" ")] : (term.text.match(/[\p{L}\p{N}]+/gu) ?? [])).filter((piece) => [...piece].length >= 3);
201
- const groups = query.required
202
- .map((group) => group.flatMap((term) => pieces(term).map(quoted).join(" AND ") || []).filter(Boolean))
203
- .filter((group) => group.length > 0);
204
- if (groups.length === 0)
205
- return empty;
206
- const resolved = resolve(context, scope);
207
- if (!resolved)
208
- return empty;
209
- let match = groups.map((group) => `(${group.map((one) => `(${one})`).join(" OR ")})`).join(" AND ");
210
- for (const term of query.excluded) {
211
- const excluded = pieces(term).map(quoted).join(" AND ");
212
- if (excluded)
213
- match = `(${match}) NOT (${excluded})`;
214
- }
215
- const { where, params } = rowConditions(resolved, scope, {
216
- chat: resolved.chatPk !== undefined,
217
- sender: resolved.senderPk !== undefined,
218
- });
219
- const rows = context.database
220
- .prepare(`SELECT m.id AS pk FROM messages_fts f CROSS JOIN messages m CROSS JOIN chats c
221
- WHERE messages_fts MATCH ? AND m.id = f.rowid AND c.id = m.chat_id AND ${where}
222
- ORDER BY m.sent_at DESC, m.id DESC LIMIT ?`)
223
- .all(match, ...params, limit + 1)
224
- .map((row) => ({ pk: Number(row.pk), score: null }));
225
- return page(context, rows, limit);
226
- };
227
2
  const VOCABULARY = "SELECT term, doc FROM message_words_vocab WHERE col = 'normalized_text'";
228
3
  /**
229
4
  * The words the index knows, of those given: a whole word, or the beginning of one — otherwise
@@ -1 +1 @@
1
- {"version":3,"file":"words.js","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"words.js","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAgB3C,MAAM,UAAU,GAAG,yEAAyE,CAAA;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,KAAe,EAAe,EAAE;IACrF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,sCAAsC,CAAC,CAAA;IACpF,OAAO,IAAI,GAAG,CACZ,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,YAAY,CAAC,KAAK,SAAS,CAAA;IAC5D,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,EAAE,QAAQ,EAAgB,EAC1B,MAAgB,EAChB,EAAE,QAAQ,EAAE,OAAO,EAAyC,EAC1B,EAAE;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,UAAU,GAAG,QAAQ;SACxB,OAAO,CACN;2BACqB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;0DACD,CACrD;SACA,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,eAAe,CAAC,CAAA;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -8,7 +8,7 @@ import { type TaskRelationsStore } from "./task-relations.js";
8
8
  export declare const WORK_TASK_TYPES: readonly ["bug", "feature", "chore"];
9
9
  export declare const TASK_TYPES: readonly ["bug", "feature", "chore", "question", "request", "mention", "promise"];
10
10
  export declare const TASK_ROLES: readonly ["assignee", "reviewer", "watcher"];
11
- export declare const TASK_EVENT_KINDS: readonly ["created", "status", "assigned", "unassigned", "due", "priority", "moved", "linked", "unlinked"];
11
+ export declare const TASK_EVENT_KINDS: readonly ["created", "status", "assigned", "unassigned", "due", "priority", "moved", "linked", "unlinked", "category"];
12
12
  export type WorkTaskType = (typeof WORK_TASK_TYPES)[number];
13
13
  export type TaskType = (typeof TASK_TYPES)[number];
14
14
  export type TaskRole = (typeof TASK_ROLES)[number];
@@ -24,6 +24,8 @@ export interface TaskFields {
24
24
  nextCheckAt?: Date | null;
25
25
  status?: TaskState;
26
26
  reason?: string | null;
27
+ /** A name the caller checked against its category list; every change is a `category` event. */
28
+ category?: string;
27
29
  }
28
30
  export interface NewWorkTask extends Omit<TaskFields, "status" | "reason"> {
29
31
  /** `project:<id>` or the project's key. */
@@ -55,6 +57,10 @@ export interface TaskDetails {
55
57
  closedAt: string | null;
56
58
  reason: string | null;
57
59
  verdict: TaskVerdict | null;
60
+ category: string | null;
61
+ /** Who works on it now; null when nobody does or the claim lapsed. */
62
+ claimedBy: string | null;
63
+ claimedUntil: string | null;
58
64
  assignments: TaskAssignment[];
59
65
  createdAt: string;
60
66
  updatedAt: string;
@@ -81,6 +87,14 @@ export interface WorkTasks extends TaskRelationsStore {
81
87
  limit?: number;
82
88
  }): Promise<TaskDetails[]>;
83
89
  events(id: string): Promise<TaskEvent[]>;
90
+ /**
91
+ * Takes an open task for `holder` until `until`, unless someone else holds it now — a lapsed claim holds nothing,
92
+ * and the holder's own claim is extended.
93
+ * One statement under the write lock, so two processes never both win.
94
+ */
95
+ claim(id: string, holder: string, until: Date): Promise<TaskDetails>;
96
+ /** Gives a task back; only its holder or the owner may. */
97
+ release(id: string, holder: string): Promise<TaskDetails>;
84
98
  }
85
99
  export declare const recordTaskEvent: (database: CacheDatabase, task: number, actor: Actor | null, kind: TaskEvent["kind"], changes: TaskEvent["changes"], at: number) => void;
86
100
  export declare const workTasksOver: (context: StoreContext) => WorkTasks;
@@ -1 +1 @@
1
- {"version":3,"file":"work-tasks.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/work-tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"work-tasks.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/work-tasks.ts"],"names":[],"mappings":"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"}