@wirecat/cli-core 0.280.0 → 0.281.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 (499) hide show
  1. package/dist/background/schedules.d.ts +1 -1
  2. package/dist/background/schedules.d.ts.map +1 -1
  3. package/dist/background/schedules.js +3 -1
  4. package/dist/background/schedules.js.map +1 -1
  5. package/dist/cli/app.d.ts +2 -0
  6. package/dist/cli/app.d.ts.map +1 -1
  7. package/dist/cli/app.js +6 -0
  8. package/dist/cli/app.js.map +1 -1
  9. package/dist/cli/author.d.ts +6 -0
  10. package/dist/cli/author.d.ts.map +1 -1
  11. package/dist/cli/author.js +12 -0
  12. package/dist/cli/author.js.map +1 -1
  13. package/dist/cli/bot/command.js +6 -6
  14. package/dist/cli/bot/command.js.map +1 -1
  15. package/dist/cli/bot/moderation.js +3 -3
  16. package/dist/cli/bot/moderation.js.map +1 -1
  17. package/dist/cli/bot/people.d.ts.map +1 -1
  18. package/dist/cli/bot/people.js +6 -8
  19. package/dist/cli/bot/people.js.map +1 -1
  20. package/dist/cli/config-command.d.ts.map +1 -1
  21. package/dist/cli/config-command.js +10 -6
  22. package/dist/cli/config-command.js.map +1 -1
  23. package/dist/cli/effects.d.ts +7 -0
  24. package/dist/cli/effects.d.ts.map +1 -1
  25. package/dist/cli/effects.js +11 -0
  26. package/dist/cli/effects.js.map +1 -1
  27. package/dist/cli/envelope.d.ts +6 -1
  28. package/dist/cli/envelope.d.ts.map +1 -1
  29. package/dist/cli/envelope.js +22 -8
  30. package/dist/cli/envelope.js.map +1 -1
  31. package/dist/cli/index.d.ts +5 -4
  32. package/dist/cli/index.d.ts.map +1 -1
  33. package/dist/cli/index.js +5 -4
  34. package/dist/cli/index.js.map +1 -1
  35. package/dist/cli/messenger/admin-moderation-command.js +3 -3
  36. package/dist/cli/messenger/admin-moderation-command.js.map +1 -1
  37. package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
  38. package/dist/cli/messenger/conversations-command.js +0 -3
  39. package/dist/cli/messenger/conversations-command.js.map +1 -1
  40. package/dist/cli/messenger/download-command.d.ts +15 -0
  41. package/dist/cli/messenger/download-command.d.ts.map +1 -1
  42. package/dist/cli/messenger/download-command.js +4 -6
  43. package/dist/cli/messenger/download-command.js.map +1 -1
  44. package/dist/cli/messenger/export-folder.d.ts.map +1 -1
  45. package/dist/cli/messenger/export-folder.js +3 -7
  46. package/dist/cli/messenger/export-folder.js.map +1 -1
  47. package/dist/cli/messenger/flood-command.js +2 -2
  48. package/dist/cli/messenger/flood-command.js.map +1 -1
  49. package/dist/cli/messenger/guard-commands.js +4 -4
  50. package/dist/cli/messenger/guard-commands.js.map +1 -1
  51. package/dist/cli/messenger/mcp-command.js +2 -2
  52. package/dist/cli/messenger/mcp-command.js.map +1 -1
  53. package/dist/cli/messenger/messages-search-command.d.ts +0 -1
  54. package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
  55. package/dist/cli/messenger/messages-search-command.js +6 -31
  56. package/dist/cli/messenger/messages-search-command.js.map +1 -1
  57. package/dist/cli/messenger/messages-stats-command.d.ts.map +1 -1
  58. package/dist/cli/messenger/messages-stats-command.js +0 -4
  59. package/dist/cli/messenger/messages-stats-command.js.map +1 -1
  60. package/dist/cli/messenger/models-command.js +3 -3
  61. package/dist/cli/messenger/models-command.js.map +1 -1
  62. package/dist/cli/messenger/rankings-command.d.ts.map +1 -1
  63. package/dist/cli/messenger/rankings-command.js +2 -3
  64. package/dist/cli/messenger/rankings-command.js.map +1 -1
  65. package/dist/cli/messenger/replies-command.js +3 -3
  66. package/dist/cli/messenger/replies-command.js.map +1 -1
  67. package/dist/cli/messenger/replies-consents-command.js +3 -3
  68. package/dist/cli/messenger/replies-consents-command.js.map +1 -1
  69. package/dist/cli/messenger/replies-edit-command.js +5 -5
  70. package/dist/cli/messenger/replies-edit-command.js.map +1 -1
  71. package/dist/cli/messenger/schedule-command.d.ts.map +1 -1
  72. package/dist/cli/messenger/schedule-command.js +8 -4
  73. package/dist/cli/messenger/schedule-command.js.map +1 -1
  74. package/dist/cli/messenger/search-answers.js +1 -1
  75. package/dist/cli/messenger/search-answers.js.map +1 -1
  76. package/dist/cli/messenger/searches-command.d.ts.map +1 -1
  77. package/dist/cli/messenger/searches-command.js +1 -4
  78. package/dist/cli/messenger/searches-command.js.map +1 -1
  79. package/dist/cli/messenger/server-command.js +3 -3
  80. package/dist/cli/messenger/server-command.js.map +1 -1
  81. package/dist/cli/messenger/tags-command.d.ts.map +1 -1
  82. package/dist/cli/messenger/tags-command.js +10 -7
  83. package/dist/cli/messenger/tags-command.js.map +1 -1
  84. package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
  85. package/dist/cli/messenger/tasks-command.js +56 -10
  86. package/dist/cli/messenger/tasks-command.js.map +1 -1
  87. package/dist/cli/program.d.ts.map +1 -1
  88. package/dist/cli/program.js +6 -2
  89. package/dist/cli/program.js.map +1 -1
  90. package/dist/cli/reasons.d.ts.map +1 -1
  91. package/dist/cli/reasons.js +2 -0
  92. package/dist/cli/reasons.js.map +1 -1
  93. package/dist/cli/settings.d.ts.map +1 -1
  94. package/dist/cli/settings.js +2 -3
  95. package/dist/cli/settings.js.map +1 -1
  96. package/dist/cli/skill-command.d.ts.map +1 -1
  97. package/dist/cli/skill-command.js +8 -3
  98. package/dist/cli/skill-command.js.map +1 -1
  99. package/dist/cli/store-settings.js +4 -4
  100. package/dist/cli/store-settings.js.map +1 -1
  101. package/dist/cli/upgrade-command.js +2 -2
  102. package/dist/cli/upgrade-command.js.map +1 -1
  103. package/dist/domain/tags.d.ts +1 -1
  104. package/dist/domain/tags.d.ts.map +1 -1
  105. package/dist/domain/tags.js +1 -1
  106. package/dist/domain/tags.js.map +1 -1
  107. package/dist/entities/agenda.d.ts +4 -0
  108. package/dist/entities/agenda.d.ts.map +1 -1
  109. package/dist/entities/agenda.js +4 -0
  110. package/dist/entities/agenda.js.map +1 -1
  111. package/dist/entities/hit.d.ts +1 -1
  112. package/dist/entities/hit.js +1 -1
  113. package/dist/entities/hit.js.map +1 -1
  114. package/dist/entities/index.d.ts +55 -15
  115. package/dist/entities/index.d.ts.map +1 -1
  116. package/dist/entities/note.d.ts +17 -1
  117. package/dist/entities/note.d.ts.map +1 -1
  118. package/dist/entities/note.js +19 -8
  119. package/dist/entities/note.js.map +1 -1
  120. package/dist/entities/tagging.d.ts +1 -1
  121. package/dist/entities/task.d.ts +7 -0
  122. package/dist/entities/task.d.ts.map +1 -1
  123. package/dist/entities/task.js +7 -0
  124. package/dist/entities/task.js.map +1 -1
  125. package/dist/mcp/tools/messages-send.d.ts.map +1 -1
  126. package/dist/mcp/tools/messages-send.js +3 -2
  127. package/dist/mcp/tools/messages-send.js.map +1 -1
  128. package/dist/mcp/tools/rankings.d.ts.map +1 -1
  129. package/dist/mcp/tools/rankings.js +2 -3
  130. package/dist/mcp/tools/rankings.js.map +1 -1
  131. package/dist/mcp/tools/search.d.ts +2 -3
  132. package/dist/mcp/tools/search.d.ts.map +1 -1
  133. package/dist/mcp/tools/search.js +4 -11
  134. package/dist/mcp/tools/search.js.map +1 -1
  135. package/dist/mcp/tools/searches.d.ts.map +1 -1
  136. package/dist/mcp/tools/searches.js +1 -3
  137. package/dist/mcp/tools/searches.js.map +1 -1
  138. package/dist/mcp/tools/tags.d.ts.map +1 -1
  139. package/dist/mcp/tools/tags.js +9 -7
  140. package/dist/mcp/tools/tags.js.map +1 -1
  141. package/dist/mcp/tools/tasks.d.ts.map +1 -1
  142. package/dist/mcp/tools/tasks.js +19 -6
  143. package/dist/mcp/tools/tasks.js.map +1 -1
  144. package/dist/search/account-list.d.ts +3 -1
  145. package/dist/search/account-list.d.ts.map +1 -1
  146. package/dist/search/account-list.js +4 -2
  147. package/dist/search/account-list.js.map +1 -1
  148. package/dist/search/lucene/registry.d.ts +1 -1
  149. package/dist/search/lucene/registry.d.ts.map +1 -1
  150. package/dist/search/lucene/registry.js +2 -2
  151. package/dist/search/lucene/registry.js.map +1 -1
  152. package/dist/search/query.d.ts +0 -28
  153. package/dist/search/query.d.ts.map +1 -1
  154. package/dist/search/query.js +0 -100
  155. package/dist/search/query.js.map +1 -1
  156. package/dist/search/task-signature.d.ts +19 -0
  157. package/dist/search/task-signature.d.ts.map +1 -0
  158. package/dist/search/task-signature.js +105 -0
  159. package/dist/search/task-signature.js.map +1 -0
  160. package/dist/search/task-similarity.d.ts +168 -0
  161. package/dist/search/task-similarity.d.ts.map +1 -0
  162. package/dist/search/task-similarity.js +177 -0
  163. package/dist/search/task-similarity.js.map +1 -0
  164. package/dist/sends/index.d.ts +1 -1
  165. package/dist/sends/index.d.ts.map +1 -1
  166. package/dist/sends/index.js +1 -1
  167. package/dist/sends/index.js.map +1 -1
  168. package/dist/sends/permissions.d.ts.map +1 -1
  169. package/dist/sends/permissions.js +2 -0
  170. package/dist/sends/permissions.js.map +1 -1
  171. package/dist/sends/upload.d.ts +1 -1
  172. package/dist/sends/upload.d.ts.map +1 -1
  173. package/dist/sends/upload.js +87 -15
  174. package/dist/sends/upload.js.map +1 -1
  175. package/dist/services/admin-statistics.d.ts.map +1 -1
  176. package/dist/services/admin-statistics.js +5 -12
  177. package/dist/services/admin-statistics.js.map +1 -1
  178. package/dist/services/agenda.d.ts +5 -1
  179. package/dist/services/agenda.d.ts.map +1 -1
  180. package/dist/services/agenda.js +8 -1
  181. package/dist/services/agenda.js.map +1 -1
  182. package/dist/services/attachments.d.ts.map +1 -1
  183. package/dist/services/attachments.js +1 -1
  184. package/dist/services/attachments.js.map +1 -1
  185. package/dist/services/counters.d.ts.map +1 -1
  186. package/dist/services/counters.js +4 -8
  187. package/dist/services/counters.js.map +1 -1
  188. package/dist/services/embeddings-maintenance.d.ts +4 -6
  189. package/dist/services/embeddings-maintenance.d.ts.map +1 -1
  190. package/dist/services/embeddings-maintenance.js +14 -15
  191. package/dist/services/embeddings-maintenance.js.map +1 -1
  192. package/dist/services/embeddings-search.d.ts.map +1 -1
  193. package/dist/services/embeddings-search.js +1 -6
  194. package/dist/services/embeddings-search.js.map +1 -1
  195. package/dist/services/embeddings.d.ts +0 -2
  196. package/dist/services/embeddings.d.ts.map +1 -1
  197. package/dist/services/embeddings.js.map +1 -1
  198. package/dist/services/index.d.ts +0 -1
  199. package/dist/services/index.d.ts.map +1 -1
  200. package/dist/services/index.js +0 -1
  201. package/dist/services/index.js.map +1 -1
  202. package/dist/services/message-resolution.d.ts +1 -10
  203. package/dist/services/message-resolution.d.ts.map +1 -1
  204. package/dist/services/message-resolution.js +0 -59
  205. package/dist/services/message-resolution.js.map +1 -1
  206. package/dist/services/messages-archive-search.d.ts +1 -1
  207. package/dist/services/messages-archive-search.d.ts.map +1 -1
  208. package/dist/services/messages-archive-search.js +4 -50
  209. package/dist/services/messages-archive-search.js.map +1 -1
  210. package/dist/services/messages-combined.d.ts.map +1 -1
  211. package/dist/services/messages-combined.js +1 -5
  212. package/dist/services/messages-combined.js.map +1 -1
  213. package/dist/services/messages-discovery.js +1 -1
  214. package/dist/services/messages-discovery.js.map +1 -1
  215. package/dist/services/messages-search.d.ts.map +1 -1
  216. package/dist/services/messages-search.js +2 -6
  217. package/dist/services/messages-search.js.map +1 -1
  218. package/dist/services/messages.d.ts +2 -6
  219. package/dist/services/messages.d.ts.map +1 -1
  220. package/dist/services/messages.js +8 -20
  221. package/dist/services/messages.js.map +1 -1
  222. package/dist/services/notes-search.d.ts +1 -1
  223. package/dist/services/notes-search.d.ts.map +1 -1
  224. package/dist/services/notes-search.js +24 -8
  225. package/dist/services/notes-search.js.map +1 -1
  226. package/dist/services/notes-title-tier.d.ts +13 -0
  227. package/dist/services/notes-title-tier.d.ts.map +1 -0
  228. package/dist/services/notes-title-tier.js +41 -0
  229. package/dist/services/notes-title-tier.js.map +1 -0
  230. package/dist/services/pictures.js +1 -1
  231. package/dist/services/pictures.js.map +1 -1
  232. package/dist/services/rankings.d.ts.map +1 -1
  233. package/dist/services/rankings.js +5 -11
  234. package/dist/services/rankings.js.map +1 -1
  235. package/dist/services/retention.d.ts.map +1 -1
  236. package/dist/services/retention.js +1 -4
  237. package/dist/services/retention.js.map +1 -1
  238. package/dist/services/search-all.d.ts +1 -1
  239. package/dist/services/search-all.d.ts.map +1 -1
  240. package/dist/services/search-all.js +0 -1
  241. package/dist/services/search-all.js.map +1 -1
  242. package/dist/services/search-catchup.d.ts.map +1 -1
  243. package/dist/services/search-catchup.js +0 -1
  244. package/dist/services/search-catchup.js.map +1 -1
  245. package/dist/services/search-record.d.ts +0 -4
  246. package/dist/services/search-record.d.ts.map +1 -1
  247. package/dist/services/search-record.js +2 -3
  248. package/dist/services/search-record.js.map +1 -1
  249. package/dist/services/search-refresh.d.ts.map +1 -1
  250. package/dist/services/search-refresh.js +3 -9
  251. package/dist/services/search-refresh.js.map +1 -1
  252. package/dist/services/searches.d.ts +0 -1
  253. package/dist/services/searches.d.ts.map +1 -1
  254. package/dist/services/searches.js +13 -35
  255. package/dist/services/searches.js.map +1 -1
  256. package/dist/services/server-search.d.ts +1 -1
  257. package/dist/services/server-search.d.ts.map +1 -1
  258. package/dist/services/server-search.js +0 -3
  259. package/dist/services/server-search.js.map +1 -1
  260. package/dist/services/tags.d.ts +3 -0
  261. package/dist/services/tags.d.ts.map +1 -1
  262. package/dist/services/tags.js +13 -5
  263. package/dist/services/tags.js.map +1 -1
  264. package/dist/services/task-categories.d.ts +17 -0
  265. package/dist/services/task-categories.d.ts.map +1 -0
  266. package/dist/services/task-categories.js +113 -0
  267. package/dist/services/task-categories.js.map +1 -0
  268. package/dist/services/task-rules.d.ts.map +1 -1
  269. package/dist/services/task-rules.js +3 -0
  270. package/dist/services/task-rules.js.map +1 -1
  271. package/dist/services/tasks.d.ts +14 -3
  272. package/dist/services/tasks.d.ts.map +1 -1
  273. package/dist/services/tasks.js +58 -6
  274. package/dist/services/tasks.js.map +1 -1
  275. package/dist/services/thread-context.d.ts +1 -1
  276. package/dist/services/thread-context.d.ts.map +1 -1
  277. package/dist/services/thread-context.js +3 -9
  278. package/dist/services/thread-context.js.map +1 -1
  279. package/dist/store/index.d.ts +1 -1
  280. package/dist/store/index.d.ts.map +1 -1
  281. package/dist/store/index.js.map +1 -1
  282. package/dist/store/migrations.d.ts +2 -1
  283. package/dist/store/migrations.d.ts.map +1 -1
  284. package/dist/store/migrations.js +5 -2
  285. package/dist/store/migrations.js.map +1 -1
  286. package/dist/store/sqlite/attachment-texts.js +2 -2
  287. package/dist/store/sqlite/attachment-texts.js.map +1 -1
  288. package/dist/store/sqlite/backfill.d.ts.map +1 -1
  289. package/dist/store/sqlite/backfill.js +6 -11
  290. package/dist/store/sqlite/backfill.js.map +1 -1
  291. package/dist/store/sqlite/catalog.d.ts.map +1 -1
  292. package/dist/store/sqlite/catalog.js +3 -3
  293. package/dist/store/sqlite/catalog.js.map +1 -1
  294. package/dist/store/sqlite/conversations.d.ts.map +1 -1
  295. package/dist/store/sqlite/conversations.js +3 -8
  296. package/dist/store/sqlite/conversations.js.map +1 -1
  297. package/dist/store/sqlite/document-pictures.d.ts.map +1 -1
  298. package/dist/store/sqlite/document-pictures.js +3 -3
  299. package/dist/store/sqlite/document-pictures.js.map +1 -1
  300. package/dist/store/sqlite/email-index.js +4 -4
  301. package/dist/store/sqlite/email-index.js.map +1 -1
  302. package/dist/store/sqlite/emails.js +5 -5
  303. package/dist/store/sqlite/emails.js.map +1 -1
  304. package/dist/store/sqlite/facts.d.ts.map +1 -1
  305. package/dist/store/sqlite/facts.js +3 -3
  306. package/dist/store/sqlite/facts.js.map +1 -1
  307. package/dist/store/sqlite/folded.d.ts.map +1 -1
  308. package/dist/store/sqlite/folded.js +7 -12
  309. package/dist/store/sqlite/folded.js.map +1 -1
  310. package/dist/store/sqlite/index-state.d.ts +4 -0
  311. package/dist/store/sqlite/index-state.d.ts.map +1 -0
  312. package/dist/store/sqlite/index-state.js +8 -0
  313. package/dist/store/sqlite/index-state.js.map +1 -0
  314. package/dist/store/sqlite/involvement-queue.d.ts +1 -1
  315. package/dist/store/sqlite/involvement-queue.js +1 -1
  316. package/dist/store/sqlite/involvements.js +3 -3
  317. package/dist/store/sqlite/involvements.js.map +1 -1
  318. package/dist/store/sqlite/knowledge.d.ts.map +1 -1
  319. package/dist/store/sqlite/knowledge.js +15 -10
  320. package/dist/store/sqlite/knowledge.js.map +1 -1
  321. package/dist/store/sqlite/log-pruning.d.ts.map +1 -1
  322. package/dist/store/sqlite/log-pruning.js +3 -8
  323. package/dist/store/sqlite/log-pruning.js.map +1 -1
  324. package/dist/store/sqlite/lucene.d.ts.map +1 -1
  325. package/dist/store/sqlite/lucene.js +3 -8
  326. package/dist/store/sqlite/lucene.js.map +1 -1
  327. package/dist/store/sqlite/mail-rules.js +3 -3
  328. package/dist/store/sqlite/mail-rules.js.map +1 -1
  329. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  330. package/dist/store/sqlite/manifest.js +1 -0
  331. package/dist/store/sqlite/manifest.js.map +1 -1
  332. package/dist/store/sqlite/meeting-context-links.d.ts.map +1 -1
  333. package/dist/store/sqlite/meeting-context-links.js +8 -7
  334. package/dist/store/sqlite/meeting-context-links.js.map +1 -1
  335. package/dist/store/sqlite/meeting-hit-index.d.ts.map +1 -1
  336. package/dist/store/sqlite/meeting-hit-index.js +4 -3
  337. package/dist/store/sqlite/meeting-hit-index.js.map +1 -1
  338. package/dist/store/sqlite/meeting-hit-search.d.ts.map +1 -1
  339. package/dist/store/sqlite/meeting-hit-search.js +3 -2
  340. package/dist/store/sqlite/meeting-hit-search.js.map +1 -1
  341. package/dist/store/sqlite/meeting-operation.d.ts +0 -2
  342. package/dist/store/sqlite/meeting-operation.d.ts.map +1 -1
  343. package/dist/store/sqlite/meeting-operation.js +0 -15
  344. package/dist/store/sqlite/meeting-operation.js.map +1 -1
  345. package/dist/store/sqlite/meeting-participant-search.d.ts.map +1 -1
  346. package/dist/store/sqlite/meeting-participant-search.js +2 -2
  347. package/dist/store/sqlite/meeting-participant-search.js.map +1 -1
  348. package/dist/store/sqlite/meeting-preparation-context.d.ts.map +1 -1
  349. package/dist/store/sqlite/meeting-preparation-context.js +2 -2
  350. package/dist/store/sqlite/meeting-preparation-context.js.map +1 -1
  351. package/dist/store/sqlite/meeting-projects.d.ts.map +1 -1
  352. package/dist/store/sqlite/meeting-projects.js +2 -2
  353. package/dist/store/sqlite/meeting-projects.js.map +1 -1
  354. package/dist/store/sqlite/meeting-reads.d.ts +0 -3
  355. package/dist/store/sqlite/meeting-reads.d.ts.map +1 -1
  356. package/dist/store/sqlite/meeting-reads.js +6 -18
  357. package/dist/store/sqlite/meeting-reads.js.map +1 -1
  358. package/dist/store/sqlite/meeting-series-history.d.ts.map +1 -1
  359. package/dist/store/sqlite/meeting-series-history.js +2 -2
  360. package/dist/store/sqlite/meeting-series-history.js.map +1 -1
  361. package/dist/store/sqlite/meeting-vectors.d.ts.map +1 -1
  362. package/dist/store/sqlite/meeting-vectors.js +6 -6
  363. package/dist/store/sqlite/meeting-vectors.js.map +1 -1
  364. package/dist/store/sqlite/meetings.d.ts.map +1 -1
  365. package/dist/store/sqlite/meetings.js +6 -6
  366. package/dist/store/sqlite/meetings.js.map +1 -1
  367. package/dist/store/sqlite/memories.d.ts.map +1 -1
  368. package/dist/store/sqlite/memories.js +2 -2
  369. package/dist/store/sqlite/memories.js.map +1 -1
  370. package/dist/store/sqlite/mention-drain.d.ts +39 -0
  371. package/dist/store/sqlite/mention-drain.d.ts.map +1 -0
  372. package/dist/store/sqlite/mention-drain.js +147 -0
  373. package/dist/store/sqlite/mention-drain.js.map +1 -0
  374. package/dist/store/sqlite/mentions.d.ts +0 -4
  375. package/dist/store/sqlite/mentions.d.ts.map +1 -1
  376. package/dist/store/sqlite/mentions.js +7 -154
  377. package/dist/store/sqlite/mentions.js.map +1 -1
  378. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  379. package/dist/store/sqlite/migrations.generated.js +9 -0
  380. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  381. package/dist/store/sqlite/note-index.d.ts.map +1 -1
  382. package/dist/store/sqlite/note-index.js +5 -4
  383. package/dist/store/sqlite/note-index.js.map +1 -1
  384. package/dist/store/sqlite/note-search.d.ts.map +1 -1
  385. package/dist/store/sqlite/note-search.js +3 -6
  386. package/dist/store/sqlite/note-search.js.map +1 -1
  387. package/dist/store/sqlite/notes.d.ts.map +1 -1
  388. package/dist/store/sqlite/notes.js +13 -14
  389. package/dist/store/sqlite/notes.js.map +1 -1
  390. package/dist/store/sqlite/proposed-actions.d.ts.map +1 -1
  391. package/dist/store/sqlite/proposed-actions.js +3 -3
  392. package/dist/store/sqlite/proposed-actions.js.map +1 -1
  393. package/dist/store/sqlite/schema.d.ts +87 -0
  394. package/dist/store/sqlite/schema.d.ts.map +1 -1
  395. package/dist/store/sqlite/schema.js +7 -0
  396. package/dist/store/sqlite/schema.js.map +1 -1
  397. package/dist/store/sqlite/search-index.d.ts +0 -3
  398. package/dist/store/sqlite/search-index.d.ts.map +1 -1
  399. package/dist/store/sqlite/search-index.js +10 -29
  400. package/dist/store/sqlite/search-index.js.map +1 -1
  401. package/dist/store/sqlite/search.d.ts +1 -1
  402. package/dist/store/sqlite/search.d.ts.map +1 -1
  403. package/dist/store/sqlite/search.js +4 -8
  404. package/dist/store/sqlite/search.js.map +1 -1
  405. package/dist/store/sqlite/searches.d.ts +1 -1
  406. package/dist/store/sqlite/searches.d.ts.map +1 -1
  407. package/dist/store/sqlite/stems-fill.d.ts +30 -0
  408. package/dist/store/sqlite/stems-fill.d.ts.map +1 -0
  409. package/dist/store/sqlite/stems-fill.js +119 -0
  410. package/dist/store/sqlite/stems-fill.js.map +1 -0
  411. package/dist/store/sqlite/stems.d.ts +14 -28
  412. package/dist/store/sqlite/stems.d.ts.map +1 -1
  413. package/dist/store/sqlite/stems.js +8 -123
  414. package/dist/store/sqlite/stems.js.map +1 -1
  415. package/dist/store/sqlite/tags.d.ts +10 -2
  416. package/dist/store/sqlite/tags.d.ts.map +1 -1
  417. package/dist/store/sqlite/tags.js +25 -7
  418. package/dist/store/sqlite/tags.js.map +1 -1
  419. package/dist/store/sqlite/task-keys.d.ts +16 -0
  420. package/dist/store/sqlite/task-keys.d.ts.map +1 -0
  421. package/dist/store/sqlite/task-keys.js +40 -0
  422. package/dist/store/sqlite/task-keys.js.map +1 -0
  423. package/dist/store/sqlite/task-relations.d.ts +1 -1
  424. package/dist/store/sqlite/task-relations.d.ts.map +1 -1
  425. package/dist/store/sqlite/task-relations.js +14 -9
  426. package/dist/store/sqlite/task-relations.js.map +1 -1
  427. package/dist/store/sqlite/tasks.d.ts +1 -7
  428. package/dist/store/sqlite/tasks.d.ts.map +1 -1
  429. package/dist/store/sqlite/tasks.js +23 -28
  430. package/dist/store/sqlite/tasks.js.map +1 -1
  431. package/dist/store/sqlite/transaction.d.ts +19 -0
  432. package/dist/store/sqlite/transaction.d.ts.map +1 -0
  433. package/dist/store/sqlite/transaction.js +77 -0
  434. package/dist/store/sqlite/transaction.js.map +1 -0
  435. package/dist/store/sqlite/vocabulary.d.ts.map +1 -1
  436. package/dist/store/sqlite/vocabulary.js +6 -18
  437. package/dist/store/sqlite/vocabulary.js.map +1 -1
  438. package/dist/store/sqlite/words.d.ts +1 -61
  439. package/dist/store/sqlite/words.d.ts.map +1 -1
  440. package/dist/store/sqlite/words.js +0 -225
  441. package/dist/store/sqlite/words.js.map +1 -1
  442. package/dist/store/sqlite/work-tasks.d.ts +15 -1
  443. package/dist/store/sqlite/work-tasks.d.ts.map +1 -1
  444. package/dist/store/sqlite/work-tasks.js +49 -5
  445. package/dist/store/sqlite/work-tasks.js.map +1 -1
  446. package/dist/store/store.d.ts +21 -41
  447. package/dist/store/store.d.ts.map +1 -1
  448. package/dist/store/store.js +52 -117
  449. package/dist/store/store.js.map +1 -1
  450. package/dist/tasks/model.d.ts +7 -0
  451. package/dist/tasks/model.d.ts.map +1 -1
  452. package/dist/tasks/model.js +2 -1
  453. package/dist/tasks/model.js.map +1 -1
  454. package/dist/tasks/service.d.ts +1 -0
  455. package/dist/tasks/service.d.ts.map +1 -1
  456. package/dist/tasks/service.js.map +1 -1
  457. package/package.json +1 -1
  458. package/parity.json +51 -23
  459. package/skills/follow-ups/SKILL.md +4 -2
  460. package/dist/embeddings/pool.d.ts +0 -17
  461. package/dist/embeddings/pool.d.ts.map +0 -1
  462. package/dist/embeddings/pool.js +0 -22
  463. package/dist/embeddings/pool.js.map +0 -1
  464. package/dist/embeddings/worker.d.ts +0 -2
  465. package/dist/embeddings/worker.d.ts.map +0 -1
  466. package/dist/embeddings/worker.js +0 -22
  467. package/dist/embeddings/worker.js.map +0 -1
  468. package/dist/embeddings/workers.d.ts +0 -8
  469. package/dist/embeddings/workers.d.ts.map +0 -1
  470. package/dist/embeddings/workers.js +0 -51
  471. package/dist/embeddings/workers.js.map +0 -1
  472. package/dist/search/legacy-regex.d.ts +0 -7
  473. package/dist/search/legacy-regex.d.ts.map +0 -1
  474. package/dist/search/legacy-regex.js +0 -48
  475. package/dist/search/legacy-regex.js.map +0 -1
  476. package/dist/search/lucene/migration.d.ts +0 -21
  477. package/dist/search/lucene/migration.d.ts.map +0 -1
  478. package/dist/search/lucene/migration.js +0 -31
  479. package/dist/search/lucene/migration.js.map +0 -1
  480. package/dist/search/search.d.ts +0 -27
  481. package/dist/search/search.d.ts.map +0 -1
  482. package/dist/search/search.js +0 -66
  483. package/dist/search/search.js.map +0 -1
  484. package/dist/services/message-query-validation.d.ts +0 -3
  485. package/dist/services/message-query-validation.d.ts.map +0 -1
  486. package/dist/services/message-query-validation.js +0 -14
  487. package/dist/services/message-query-validation.js.map +0 -1
  488. package/dist/store/sqlite/atomic.d.ts +0 -8
  489. package/dist/store/sqlite/atomic.d.ts.map +0 -1
  490. package/dist/store/sqlite/atomic.js +0 -28
  491. package/dist/store/sqlite/atomic.js.map +0 -1
  492. package/dist/store/sqlite/legacy-regex.d.ts +0 -7
  493. package/dist/store/sqlite/legacy-regex.d.ts.map +0 -1
  494. package/dist/store/sqlite/legacy-regex.js +0 -42
  495. package/dist/store/sqlite/legacy-regex.js.map +0 -1
  496. package/dist/store/sqlite/read-snapshot.d.ts +0 -4
  497. package/dist/store/sqlite/read-snapshot.d.ts.map +0 -1
  498. package/dist/store/sqlite/read-snapshot.js +0 -14
  499. package/dist/store/sqlite/read-snapshot.js.map +0 -1
@@ -1,22 +0,0 @@
1
- import { parentPort, workerData } from "node:worker_threads";
2
- import { openEmbedder } from "./embed.js";
3
- const { model, directory, threads } = workerData;
4
- const embedder = await openEmbedder(model, directory, { threads });
5
- const port = parentPort;
6
- if (!port)
7
- throw new Error("run as a worker");
8
- port.on("message", async (job) => {
9
- if (job === "close") {
10
- await embedder.close();
11
- port.close();
12
- return;
13
- }
14
- try {
15
- port.postMessage({ id: job.id, vectors: await embedder.embed(job.texts, job.kind) });
16
- }
17
- catch (error) {
18
- port.postMessage({ id: job.id, error: error instanceof Error ? error.message : String(error) });
19
- }
20
- });
21
- port.postMessage("ready");
22
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/embeddings/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAa,YAAY,EAAE,MAAM,YAAY,CAAA;AAGpD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAsE,CAAA;AAC5G,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;AAClE,MAAM,IAAI,GAAG,UAAU,CAAA;AACvB,IAAI,CAAC,IAAI;IAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;AAE7C,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAA0D,EAAE,EAAE;IACtF,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,KAAK,EAAE,CAAA;QACZ,OAAM;IACR,CAAC;IACD,IAAI,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACjG,CAAC;AACH,CAAC,CAAC,CAAA;AACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- import type { Embedder } from "./embed.js";
2
- import type { TextModel } from "./models.js";
3
- /** `workers` worker threads, each with its own session on `threads` threads; texts are split between them. */
4
- export declare const openWorkers: (model: TextModel, directory: string, { workers, threads }: {
5
- workers: number;
6
- threads: number;
7
- }) => Promise<Embedder>;
8
- //# sourceMappingURL=workers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../src/embeddings/workers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAQ,MAAM,YAAY,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C,8GAA8G;AAC9G,eAAO,MAAM,WAAW,UACf,SAAS,aACL,MAAM,wBACK;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KACzD,OAAO,CAAC,QAAQ,CAkDlB,CAAA"}
@@ -1,51 +0,0 @@
1
- import { Worker } from "node:worker_threads";
2
- /** `workers` worker threads, each with its own session on `threads` threads; texts are split between them. */
3
- export const openWorkers = async (model, directory, { workers, threads }) => {
4
- const pending = new Map();
5
- const started = await Promise.allSettled(Array.from({ length: workers }, () => {
6
- const worker = new Worker(new URL("./worker.js", import.meta.url), {
7
- workerData: { model, directory, threads },
8
- });
9
- return new Promise((resolve, reject) => {
10
- worker.once("error", reject);
11
- worker.once("message", (first) => {
12
- if (first !== "ready")
13
- return reject(new Error("the embedding worker did not start"));
14
- worker.off("error", reject);
15
- worker.on("message", ({ id, vectors, error }) => {
16
- const job = pending.get(id);
17
- pending.delete(id);
18
- if (error !== undefined || !vectors)
19
- job?.reject(new Error(error ?? "no vectors"));
20
- else
21
- job?.resolve(vectors);
22
- });
23
- resolve(worker);
24
- });
25
- });
26
- }));
27
- const pool = started.flatMap((result) => (result.status === "fulfilled" ? [result.value] : []));
28
- const failed = started.find((result) => result.status === "rejected");
29
- if (failed) {
30
- await Promise.all(pool.map((worker) => worker.terminate()));
31
- throw failed.reason;
32
- }
33
- let next = 0;
34
- const run = (worker, texts, kind) => new Promise((resolve, reject) => {
35
- const id = next++;
36
- pending.set(id, { resolve, reject });
37
- worker.postMessage({ id, texts, kind });
38
- });
39
- return {
40
- model,
41
- embed: async (texts, kind) => {
42
- const share = Math.ceil(texts.length / pool.length);
43
- const parts = await Promise.all(pool.map((worker, index) => run(worker, texts.slice(index * share, (index + 1) * share), kind)));
44
- return parts.flat();
45
- },
46
- close: async () => {
47
- await Promise.all(pool.map((worker) => worker.terminate()));
48
- },
49
- };
50
- };
51
- //# sourceMappingURL=workers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workers.js","sourceRoot":"","sources":["../../src/embeddings/workers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAI5C,8GAA8G;AAC9G,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAC9B,KAAgB,EAChB,SAAiB,EACjB,EAAE,OAAO,EAAE,OAAO,EAAwC,EACvC,EAAE;IACrB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA0F,CAAA;IACjH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;YACjE,UAAU,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;SAC1C,CAAC,CAAA;QACF,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC/B,IAAI,KAAK,KAAK,OAAO;oBAAE,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAA;gBACrF,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC3B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAA4D,EAAE,EAAE;oBACxG,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;oBAC3B,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAClB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO;wBAAE,GAAG,EAAE,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,CAAA;;wBAC7E,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;gBAC5B,CAAC,CAAC,CAAA;gBACF,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/F,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAA;IACrE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAC3D,MAAM,MAAM,CAAC,MAAM,CAAA;IACrB,CAAC;IACD,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,KAAe,EAAE,IAAU,EAAE,EAAE,CAC1D,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAA;QACjB,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QACpC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEJ,OAAO;QACL,KAAK;QACL,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;YACnD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC7B,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAChG,CAAA;YACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAA;QACrB,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;QAC7D,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -1,7 +0,0 @@
1
- import { Worker } from "node:worker_threads";
2
- export declare const isolatedRegex: (pattern: RegExp, texts: string[], options?: {
3
- signal?: AbortSignal;
4
- timeoutMs?: number;
5
- worker?: (source: string, flags: string, texts: string[]) => Worker;
6
- }) => Promise<number[]>;
7
- //# sourceMappingURL=legacy-regex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-regex.d.ts","sourceRoot":"","sources":["../../src/search/legacy-regex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAO5C,eAAO,MAAM,aAAa,YACf,MAAM,SACR,MAAM,EAAE,YACN;IACP,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CACpE,KACA,OAAO,CAAC,MAAM,EAAE,CA+ClB,CAAA"}
@@ -1,48 +0,0 @@
1
- import { Worker } from "node:worker_threads";
2
- import { CliError } from "@wirecat/cli-base";
3
- import { exhausted, QUERY_LIMITS } from "./lucene/types.js";
4
- const workerSource = `const {parentPort,workerData}=require("node:worker_threads");
5
- const pattern=new RegExp(workerData.source,workerData.flags);
6
- parentPort.postMessage(workerData.texts.flatMap((text,index)=>{pattern.lastIndex=0;return pattern.test(text)?[index]:[]}));`;
7
- export const isolatedRegex = async (pattern, texts, options = {}) => {
8
- if ([...pattern.source].length > QUERY_LIMITS.pattern)
9
- exhausted("pattern");
10
- if (texts.length > QUERY_LIMITS.candidates)
11
- exhausted("candidate rows");
12
- if (texts.reduce((sum, text) => sum + Buffer.byteLength(text), 0) > QUERY_LIMITS.bodyBytes)
13
- exhausted("body bytes");
14
- if (options.signal?.aborted)
15
- throw new CliError("validation_error", "search was aborted", { reason: "query.aborted", complete: false });
16
- const worker = options.worker?.(pattern.source, pattern.flags, texts) ??
17
- new Worker(workerSource, {
18
- eval: true,
19
- resourceLimits: { maxOldGenerationSizeMb: 64, maxYoungGenerationSizeMb: 16, stackSizeMb: 2 },
20
- workerData: { source: pattern.source, flags: pattern.flags, texts },
21
- });
22
- let timer;
23
- let abort;
24
- try {
25
- return await new Promise((resolve, reject) => {
26
- worker.once("message", (result) => {
27
- if (!Array.isArray(result) ||
28
- !result.every((id) => Number.isInteger(id) && Number(id) >= 0 && Number(id) < texts.length))
29
- reject(new CliError("validation_error", "the regex worker returned an invalid result"));
30
- else
31
- resolve(result);
32
- });
33
- worker.once("error", () => reject(new CliError("validation_error", "the regex worker failed")));
34
- worker.once("exit", () => reject(new CliError("validation_error", "the regex worker exited before answering")));
35
- abort = () => reject(new CliError("validation_error", "search was aborted", { reason: "query.aborted", complete: false }));
36
- options.signal?.addEventListener("abort", abort, { once: true });
37
- timer = setTimeout(() => reject(new CliError("validation_error", "legacy regex exceeded its time budget — narrow the query or use Lucene regex", { reason: "query.too-large", budget: "time", complete: false })), options.timeoutMs ?? QUERY_LIMITS.milliseconds);
38
- });
39
- }
40
- finally {
41
- if (timer)
42
- clearTimeout(timer);
43
- if (abort)
44
- options.signal?.removeEventListener("abort", abort);
45
- await worker.terminate();
46
- }
47
- };
48
- //# sourceMappingURL=legacy-regex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-regex.js","sourceRoot":"","sources":["../../src/search/legacy-regex.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { type QueryAst } from "@wirecat/cli-base/query";
2
- import type { Provider } from "../../domain/models.js";
3
- export interface SavedQuery {
4
- version: 1;
5
- language: "lucene-v1" | "legacy-v1";
6
- text: string;
7
- timezone?: string;
8
- fieldsVersion: number;
9
- }
10
- export interface QueryMigration {
11
- from: "legacy-v1";
12
- to: "lucene-v1";
13
- query: string;
14
- ast: QueryAst;
15
- warnings: string[];
16
- }
17
- export declare const migrateLegacyQuery: (text: string, options?: {
18
- now?: number;
19
- providers?: readonly Provider[];
20
- }) => QueryMigration;
21
- //# sourceMappingURL=migration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.d.ts","sourceRoot":"","sources":["../../../src/search/lucene/migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAItD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAA;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;CACtB;AACD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAA;IACjB,EAAE,EAAE,WAAW,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,QAAQ,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAGD,eAAO,MAAM,kBAAkB,SACvB,MAAM,YACH;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAA;CAAE,KACzD,cAoBF,CAAA"}
@@ -1,31 +0,0 @@
1
- import { parseLucene } from "@wirecat/cli-base/query";
2
- import { parseQuery } from "../query.js";
3
- import { SEARCH_QUERY } from "./types.js";
4
- const quoted = (value) => `"${value.replaceAll("\\", "\\\\").replaceAll('"', '\\"')}"`;
5
- const term = (value) => quoted(value.kind === "phrase" ? value.words.join(" ") : value.text);
6
- export const migrateLegacyQuery = (text, options = {}) => {
7
- const legacy = parseQuery(text, options);
8
- const parts = legacy.required.map((group) => group.length === 1 ? term(group[0]) : `(${group.map(term).join(" OR ")})`);
9
- parts.push(...legacy.excluded.map((one) => `NOT ${term(one)}`));
10
- if (legacy.from !== undefined)
11
- parts.push(`from:${quoted(legacy.from)}`);
12
- if (legacy.chat !== undefined)
13
- parts.push(`chat:${quoted(legacy.chat)}`);
14
- if (legacy.in !== undefined)
15
- parts.push(`in:${quoted(legacy.in)}`);
16
- parts.push(...legacy.has.map((kind) => `has:${quoted(kind)}`));
17
- if (legacy.after !== undefined)
18
- parts.push(`date:[${quoted(new Date(legacy.after).toISOString())} TO *]`);
19
- if (legacy.before !== undefined)
20
- parts.push(`date:[* TO ${quoted(new Date(legacy.before).toISOString())}}`);
21
- if (parts.length === 0)
22
- parts.push("date:[* TO *]");
23
- const query = parts.join(" AND ");
24
- const warnings = [
25
- "Strict Lucene matching does not preserve legacy prefix, typo, any-word or substring discovery; keep explicit legacy mode when those results matter.",
26
- ];
27
- if ((text.match(/"/gu)?.length ?? 0) % 2 !== 0)
28
- warnings.push("Legacy accepted an unclosed quote; the interpreted phrase has been closed explicitly.");
29
- return { from: "legacy-v1", to: "lucene-v1", query, ast: parseLucene(query, SEARCH_QUERY), warnings };
30
- };
31
- //# sourceMappingURL=migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migration.js","sourceRoot":"","sources":["../../../src/search/lucene/migration.ts"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import type { MessageStore, ScoredHit, SearchScope, WordQuery } from "../store/store.js";
2
- /** Which step found a hit (plan S4). `filters` answers a search with no word. */
3
- export type Match = "words" | "beginnings" | "corrected" | "anyWord" | "substring" | "filters";
4
- export type SearchHit = ScoredHit & {
5
- match: Match;
6
- };
7
- export interface SearchAnswer {
8
- items: SearchHit[];
9
- hasMore: boolean;
10
- corrections: {
11
- from: string;
12
- to: string[];
13
- }[];
14
- /** `false` while the word index is not built: the answer then came from the substring index alone. */
15
- wordsReady: boolean;
16
- }
17
- export type SearchSteps = Pick<MessageStore, "searchIndexState" | "matchWords" | "matchSubstring" | "matchFilters" | "knownTerms" | "termCandidates">;
18
- /**
19
- * The search, in the order of plan S4: every word, topped up by word beginnings; then typo
20
- * correction; then any word, unless the query chose with OR; then the substring index. Each step
21
- * runs only when the one before found nothing. Until the word index is built, substring alone.
22
- */
23
- export declare const search: (store: SearchSteps, query: WordQuery, scope: SearchScope, { limit, newest }: {
24
- limit: number;
25
- newest?: boolean;
26
- }) => Promise<SearchAnswer>;
27
- //# sourceMappingURL=search.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAIxF,iFAAiF;AACjF,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAA;AAE9F,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAA;AAEpD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAA;IAC7C,sGAAsG;IACtG,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,MAAM,WAAW,GAAG,IAAI,CAC5B,YAAY,EACZ,kBAAkB,GAAG,YAAY,GAAG,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,gBAAgB,CACxG,CAAA;AAkCD;;;;GAIG;AACH,eAAO,MAAM,MAAM,UACV,WAAW,SACX,SAAS,SACT,WAAW,qBACS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7D,OAAO,CAAC,YAAY,CAwCtB,CAAA"}
@@ -1,66 +0,0 @@
1
- import { correctWords } from "./correct.js";
2
- const tagged = (page, match) => page.items.map((hit) => ({ ...hit, match }));
3
- /** Step 1 topped up by step 2: whole words first, then the hits only a word's beginning finds. */
4
- const everyWord = async (store, query, scope, { limit, newest }, match) => {
5
- const options = { mode: "every", limit, newest };
6
- const whole = await store.matchWords(query, scope, { ...options, beginnings: false });
7
- if (whole.items.length >= limit)
8
- return { items: tagged(whole, match.whole), hasMore: whole.hasMore };
9
- const begun = await store.matchWords(query, scope, { ...options, beginnings: true });
10
- const seen = new Set(whole.items.map((hit) => hit.locator));
11
- const more = tagged(begun, match.beginnings).filter((hit) => !seen.has(hit.locator));
12
- const items = [...tagged(whole, match.whole), ...more];
13
- return { items: items.slice(0, limit), hasMore: items.length > limit || begun.hasMore };
14
- };
15
- /** Every plain word replaced by its corrections, when it has any; phrases and left-out words never are. */
16
- const corrected = (query, corrections) => ({
17
- ...query,
18
- required: query.required.map((group) => group.flatMap((term) => term.kind === "word" && corrections.has(term.text)
19
- ? (corrections.get(term.text) ?? []).map((text) => ({ kind: "word", text }))
20
- : [term])),
21
- });
22
- /**
23
- * The search, in the order of plan S4: every word, topped up by word beginnings; then typo
24
- * correction; then any word, unless the query chose with OR; then the substring index. Each step
25
- * runs only when the one before found nothing. Until the word index is built, substring alone.
26
- */
27
- export const search = async (store, query, scope, { limit, newest = false }) => {
28
- const wordsReady = (await store.searchIndexState())?.ready === true;
29
- const answer = (found, rest = {}) => ({
30
- corrections: [],
31
- wordsReady,
32
- ...found,
33
- ...rest,
34
- });
35
- if (query.required.length === 0) {
36
- const page = await store.matchFilters(scope, { limit });
37
- return answer({ items: tagged(page, "filters"), hasMore: page.hasMore });
38
- }
39
- if (!wordsReady) {
40
- const page = await store.matchSubstring(query, scope, { limit });
41
- return answer({ items: tagged(page, "substring"), hasMore: page.hasMore });
42
- }
43
- const options = { limit, newest };
44
- const found = await everyWord(store, query, scope, options, { whole: "words", beginnings: "beginnings" });
45
- if (found.items.length > 0)
46
- return answer(found);
47
- const plain = query.required.flat().flatMap((term) => (term.kind === "word" ? [term.text] : []));
48
- const corrections = await correctWords(store, [...new Set(plain)]);
49
- const listed = [...corrections].map(([from, to]) => ({ from, to }));
50
- const fixed = corrections.size > 0 ? corrected(query, corrections) : query;
51
- if (corrections.size > 0) {
52
- const repaired = await everyWord(store, fixed, scope, options, { whole: "corrected", beginnings: "corrected" });
53
- if (repaired.items.length > 0)
54
- return answer(repaired, { corrections: listed });
55
- }
56
- const chose = query.required.some((group) => group.length > 1);
57
- if (!chose && query.required.length > 1) {
58
- const any = await store.matchWords(fixed, scope, { mode: "any", beginnings: true, limit, newest });
59
- if (any.items.length > 0)
60
- return answer({ items: tagged(any, "anyWord"), hasMore: any.hasMore }, { corrections: listed });
61
- }
62
- // The raw text is searched as typed: a correction is a guess about words, not about pieces of them.
63
- const page = await store.matchSubstring(query, scope, { limit });
64
- return answer({ items: tagged(page, "substring"), hasMore: page.hasMore });
65
- };
66
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/search/search.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { SearchQuery } from "./messages.js";
2
- export declare const validateSearchDialect: (request: SearchQuery) => void;
3
- //# sourceMappingURL=message-query-validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-query-validation.d.ts","sourceRoot":"","sources":["../../src/services/message-query-validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,eAAO,MAAM,qBAAqB,YAAa,WAAW,KAAG,IAc5D,CAAA"}
@@ -1,14 +0,0 @@
1
- import { CliError } from "@wirecat/cli-base";
2
- export const validateSearchDialect = (request) => {
3
- const { pattern } = request;
4
- if (request.language !== undefined && !["lucene", "legacy"].includes(request.language))
5
- throw new CliError("validation_error", "--language takes lucene or legacy");
6
- if (pattern && (request.language === "lucene" || request.ast !== undefined || request.timezone !== undefined))
7
- throw new CliError("validation_error", "--regex is legacy JavaScript mode; not with Lucene, AST or timezone");
8
- if (request.language === "legacy" && (request.ast !== undefined || request.timezone !== undefined))
9
- throw new CliError("validation_error", "AST and timezone require the Lucene language");
10
- if (pattern && (request.source !== undefined || request.accounts !== undefined || request.senders !== undefined)) {
11
- throw new CliError("validation_error", "--regex reads the account it runs as — not with --source, other accounts or senders");
12
- }
13
- };
14
- //# sourceMappingURL=message-query-validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message-query-validation.js","sourceRoot":"","sources":["../../src/services/message-query-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAAoB,EAAQ,EAAE;IAClE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QACpF,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mCAAmC,CAAC,CAAA;IAC7E,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;QAC3G,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qEAAqE,CAAC,CAAA;IAC/G,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;QAChG,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,8CAA8C,CAAC,CAAA;IACxF,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC;QACjH,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,qFAAqF,CACtF,CAAA;IACH,CAAC;AACH,CAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- import type { CacheDatabase } from "../driver.js";
2
- /**
3
- * One write transaction. The outermost takes the write lock at once (`BEGIN IMMEDIATE`): a deferred one that
4
- * reads first fails with SQLITE_BUSY when another process writes in between, and tg, max, memo and zm share
5
- * the file. A nested call is a savepoint.
6
- */
7
- export declare const atomic: <T>(database: CacheDatabase, body: () => T) => T;
8
- //# sourceMappingURL=atomic.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atomic.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/atomic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKjD;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,CAAC,YAAY,aAAa,QAAQ,MAAM,CAAC,KAAG,CAgBlE,CAAA"}
@@ -1,28 +0,0 @@
1
- import { drainInvolvementQueue } from "./involvement-queue.js";
2
- let depth = 0;
3
- /**
4
- * One write transaction. The outermost takes the write lock at once (`BEGIN IMMEDIATE`): a deferred one that
5
- * reads first fails with SQLITE_BUSY when another process writes in between, and tg, max, memo and zm share
6
- * the file. A nested call is a savepoint.
7
- */
8
- export const atomic = (database, body) => {
9
- const outer = depth === 0;
10
- const name = `k${depth + 1}`;
11
- database.exec(outer ? "BEGIN IMMEDIATE" : `SAVEPOINT ${name}`);
12
- depth += 1;
13
- try {
14
- const result = body();
15
- if (outer)
16
- drainInvolvementQueue(database);
17
- database.exec(outer ? "COMMIT" : `RELEASE ${name}`);
18
- return result;
19
- }
20
- catch (error) {
21
- database.exec(outer ? "ROLLBACK" : `ROLLBACK TO ${name}; RELEASE ${name}`);
22
- throw error;
23
- }
24
- finally {
25
- depth -= 1;
26
- }
27
- };
28
- //# sourceMappingURL=atomic.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"atomic.js","sourceRoot":"","sources":["../../../src/store/sqlite/atomic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D,IAAI,KAAK,GAAG,CAAC,CAAA;AAEb;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,QAAuB,EAAE,IAAa,EAAK,EAAE;IACrE,MAAM,KAAK,GAAG,KAAK,KAAK,CAAC,CAAA;IACzB,MAAM,IAAI,GAAG,IAAI,KAAK,GAAG,CAAC,EAAE,CAAA;IAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC,CAAA;IAC9D,KAAK,IAAI,CAAC,CAAA;IACV,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,EAAE,CAAA;QACrB,IAAI,KAAK;YAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAA;QAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;QACnD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,IAAI,aAAa,IAAI,EAAE,CAAC,CAAA;QAC1E,MAAM,KAAK,CAAA;IACb,CAAC;YAAS,CAAC;QACT,KAAK,IAAI,CAAC,CAAA;IACZ,CAAC;AACH,CAAC,CAAA"}
@@ -1,7 +0,0 @@
1
- import type { MessageFilter, StoredHit } from "../store.js";
2
- import type { StoreContext } from "./open.js";
3
- export declare const findRegex: (context: StoreContext, filter: MessageFilter) => Promise<{
4
- items: StoredHit[];
5
- hasMore: boolean;
6
- }>;
7
- //# sourceMappingURL=legacy-regex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-regex.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/legacy-regex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAK7C,eAAO,MAAM,SAAS,YAAmB,YAAY,UAAU,aAAa;WAEtC,SAAS,EAAE;;EAmChD,CAAA"}
@@ -1,42 +0,0 @@
1
- import { isolatedRegex } from "../../search/legacy-regex.js";
2
- import { exhausted, QUERY_LIMITS } from "../../search/lucene/types.js";
3
- import { eq, inArray, sql } from "./drizzle/core.js";
4
- import { newestFirst } from "./reads.js";
5
- import { accounts, chats, identities, messages } from "./schema.js";
6
- import { hitsByPk, matching } from "./search.js";
7
- export const findRegex = async (context, filter) => {
8
- const pattern = filter.pattern;
9
- if (!pattern)
10
- return { items: [], hasMore: false };
11
- const selected = context.orm
12
- .select({ pk: messages.id, bytes: sql `length(cast(${messages.text} AS BLOB))` })
13
- .from(messages)
14
- .innerJoin(chats, eq(chats.id, messages.chatId))
15
- .leftJoin(identities, eq(identities.id, messages.senderIdentityId))
16
- .innerJoin(accounts, eq(accounts.id, messages.accountId))
17
- .where(matching(context, filter))
18
- .orderBy(...newestFirst)
19
- .limit(QUERY_LIMITS.candidates + 1)
20
- .all();
21
- if (selected.length > QUERY_LIMITS.candidates)
22
- exhausted("candidate rows");
23
- if (selected.reduce((sum, row) => sum + row.bytes, 0) > QUERY_LIMITS.bodyBytes)
24
- exhausted("body bytes");
25
- const ids = selected.map(({ pk }) => pk);
26
- const texts = new Map();
27
- for (let at = 0; at < ids.length; at += 500) {
28
- const rows = context.orm
29
- .select({ pk: messages.id, text: messages.text })
30
- .from(messages)
31
- .where(inArray(messages.id, ids.slice(at, at + 500)))
32
- .all();
33
- for (const row of rows)
34
- texts.set(row.pk, row.text);
35
- }
36
- const matched = await isolatedRegex(pattern, ids.map((pk) => texts.get(pk) ?? ""), { signal: filter.signal });
37
- return {
38
- items: hitsByPk(context, matched.slice(0, filter.limit).map((index) => ids[index])),
39
- hasMore: matched.length > filter.limit,
40
- };
41
- };
42
- //# sourceMappingURL=legacy-regex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"legacy-regex.js","sourceRoot":"","sources":["../../../src/store/sqlite/legacy-regex.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import type { CacheDatabase } from "../driver.js";
2
- /** Multi-query reads must stay coherent without draining the derived-write queue. */
3
- export declare const readSnapshot: <T>(database: CacheDatabase, body: () => T) => T;
4
- //# sourceMappingURL=read-snapshot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-snapshot.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/read-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjD,qFAAqF;AACrF,eAAO,MAAM,YAAY,GAAI,CAAC,YAAY,aAAa,QAAQ,MAAM,CAAC,KAAG,CAUxE,CAAA"}
@@ -1,14 +0,0 @@
1
- /** Multi-query reads must stay coherent without draining the derived-write queue. */
2
- export const readSnapshot = (database, body) => {
3
- database.exec("SAVEPOINT read_snapshot");
4
- try {
5
- const result = body();
6
- database.exec("RELEASE read_snapshot");
7
- return result;
8
- }
9
- catch (error) {
10
- database.exec("ROLLBACK TO read_snapshot; RELEASE read_snapshot");
11
- throw error;
12
- }
13
- };
14
- //# sourceMappingURL=read-snapshot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-snapshot.js","sourceRoot":"","sources":["../../../src/store/sqlite/read-snapshot.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,QAAuB,EAAE,IAAa,EAAK,EAAE;IAC3E,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,EAAE,CAAA;QACrB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;QACjE,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA"}