@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.
- package/dist/background/schedules.d.ts +1 -1
- package/dist/background/schedules.d.ts.map +1 -1
- package/dist/background/schedules.js +3 -1
- package/dist/background/schedules.js.map +1 -1
- package/dist/cli/app.d.ts +2 -0
- package/dist/cli/app.d.ts.map +1 -1
- package/dist/cli/app.js +6 -0
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/author.d.ts +6 -0
- package/dist/cli/author.d.ts.map +1 -1
- package/dist/cli/author.js +12 -0
- package/dist/cli/author.js.map +1 -1
- package/dist/cli/bot/command.js +6 -6
- package/dist/cli/bot/command.js.map +1 -1
- package/dist/cli/bot/moderation.js +3 -3
- package/dist/cli/bot/moderation.js.map +1 -1
- package/dist/cli/bot/people.d.ts.map +1 -1
- package/dist/cli/bot/people.js +6 -8
- package/dist/cli/bot/people.js.map +1 -1
- package/dist/cli/config-command.d.ts.map +1 -1
- package/dist/cli/config-command.js +10 -6
- package/dist/cli/config-command.js.map +1 -1
- package/dist/cli/effects.d.ts +7 -0
- package/dist/cli/effects.d.ts.map +1 -1
- package/dist/cli/effects.js +11 -0
- package/dist/cli/effects.js.map +1 -1
- package/dist/cli/envelope.d.ts +6 -1
- package/dist/cli/envelope.d.ts.map +1 -1
- package/dist/cli/envelope.js +22 -8
- package/dist/cli/envelope.js.map +1 -1
- package/dist/cli/index.d.ts +5 -4
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/messenger/admin-moderation-command.js +3 -3
- package/dist/cli/messenger/admin-moderation-command.js.map +1 -1
- package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
- package/dist/cli/messenger/conversations-command.js +0 -3
- package/dist/cli/messenger/conversations-command.js.map +1 -1
- package/dist/cli/messenger/download-command.d.ts +15 -0
- package/dist/cli/messenger/download-command.d.ts.map +1 -1
- package/dist/cli/messenger/download-command.js +4 -6
- package/dist/cli/messenger/download-command.js.map +1 -1
- package/dist/cli/messenger/export-folder.d.ts.map +1 -1
- package/dist/cli/messenger/export-folder.js +3 -7
- package/dist/cli/messenger/export-folder.js.map +1 -1
- package/dist/cli/messenger/flood-command.js +2 -2
- package/dist/cli/messenger/flood-command.js.map +1 -1
- package/dist/cli/messenger/guard-commands.js +4 -4
- package/dist/cli/messenger/guard-commands.js.map +1 -1
- package/dist/cli/messenger/mcp-command.js +2 -2
- package/dist/cli/messenger/mcp-command.js.map +1 -1
- package/dist/cli/messenger/messages-search-command.d.ts +0 -1
- package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-search-command.js +6 -31
- package/dist/cli/messenger/messages-search-command.js.map +1 -1
- package/dist/cli/messenger/messages-stats-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-stats-command.js +0 -4
- package/dist/cli/messenger/messages-stats-command.js.map +1 -1
- package/dist/cli/messenger/models-command.js +3 -3
- package/dist/cli/messenger/models-command.js.map +1 -1
- package/dist/cli/messenger/rankings-command.d.ts.map +1 -1
- package/dist/cli/messenger/rankings-command.js +2 -3
- package/dist/cli/messenger/rankings-command.js.map +1 -1
- package/dist/cli/messenger/replies-command.js +3 -3
- package/dist/cli/messenger/replies-command.js.map +1 -1
- package/dist/cli/messenger/replies-consents-command.js +3 -3
- package/dist/cli/messenger/replies-consents-command.js.map +1 -1
- package/dist/cli/messenger/replies-edit-command.js +5 -5
- package/dist/cli/messenger/replies-edit-command.js.map +1 -1
- package/dist/cli/messenger/schedule-command.d.ts.map +1 -1
- package/dist/cli/messenger/schedule-command.js +8 -4
- package/dist/cli/messenger/schedule-command.js.map +1 -1
- package/dist/cli/messenger/search-answers.js +1 -1
- package/dist/cli/messenger/search-answers.js.map +1 -1
- package/dist/cli/messenger/searches-command.d.ts.map +1 -1
- package/dist/cli/messenger/searches-command.js +1 -4
- package/dist/cli/messenger/searches-command.js.map +1 -1
- package/dist/cli/messenger/server-command.js +3 -3
- package/dist/cli/messenger/server-command.js.map +1 -1
- package/dist/cli/messenger/tags-command.d.ts.map +1 -1
- package/dist/cli/messenger/tags-command.js +10 -7
- package/dist/cli/messenger/tags-command.js.map +1 -1
- package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
- package/dist/cli/messenger/tasks-command.js +56 -10
- package/dist/cli/messenger/tasks-command.js.map +1 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +6 -2
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/reasons.d.ts.map +1 -1
- package/dist/cli/reasons.js +2 -0
- package/dist/cli/reasons.js.map +1 -1
- package/dist/cli/settings.d.ts.map +1 -1
- package/dist/cli/settings.js +2 -3
- package/dist/cli/settings.js.map +1 -1
- package/dist/cli/skill-command.d.ts.map +1 -1
- package/dist/cli/skill-command.js +8 -3
- package/dist/cli/skill-command.js.map +1 -1
- package/dist/cli/store-settings.js +4 -4
- package/dist/cli/store-settings.js.map +1 -1
- package/dist/cli/upgrade-command.js +2 -2
- package/dist/cli/upgrade-command.js.map +1 -1
- package/dist/domain/tags.d.ts +1 -1
- package/dist/domain/tags.d.ts.map +1 -1
- package/dist/domain/tags.js +1 -1
- package/dist/domain/tags.js.map +1 -1
- package/dist/entities/agenda.d.ts +4 -0
- package/dist/entities/agenda.d.ts.map +1 -1
- package/dist/entities/agenda.js +4 -0
- package/dist/entities/agenda.js.map +1 -1
- package/dist/entities/hit.d.ts +1 -1
- package/dist/entities/hit.js +1 -1
- package/dist/entities/hit.js.map +1 -1
- package/dist/entities/index.d.ts +55 -15
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/note.d.ts +17 -1
- package/dist/entities/note.d.ts.map +1 -1
- package/dist/entities/note.js +19 -8
- package/dist/entities/note.js.map +1 -1
- package/dist/entities/tagging.d.ts +1 -1
- package/dist/entities/task.d.ts +7 -0
- package/dist/entities/task.d.ts.map +1 -1
- package/dist/entities/task.js +7 -0
- package/dist/entities/task.js.map +1 -1
- package/dist/mcp/tools/messages-send.d.ts.map +1 -1
- package/dist/mcp/tools/messages-send.js +3 -2
- package/dist/mcp/tools/messages-send.js.map +1 -1
- package/dist/mcp/tools/rankings.d.ts.map +1 -1
- package/dist/mcp/tools/rankings.js +2 -3
- package/dist/mcp/tools/rankings.js.map +1 -1
- package/dist/mcp/tools/search.d.ts +2 -3
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +4 -11
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/searches.d.ts.map +1 -1
- package/dist/mcp/tools/searches.js +1 -3
- package/dist/mcp/tools/searches.js.map +1 -1
- package/dist/mcp/tools/tags.d.ts.map +1 -1
- package/dist/mcp/tools/tags.js +9 -7
- package/dist/mcp/tools/tags.js.map +1 -1
- package/dist/mcp/tools/tasks.d.ts.map +1 -1
- package/dist/mcp/tools/tasks.js +19 -6
- package/dist/mcp/tools/tasks.js.map +1 -1
- package/dist/search/account-list.d.ts +3 -1
- package/dist/search/account-list.d.ts.map +1 -1
- package/dist/search/account-list.js +4 -2
- package/dist/search/account-list.js.map +1 -1
- package/dist/search/lucene/registry.d.ts +1 -1
- package/dist/search/lucene/registry.d.ts.map +1 -1
- package/dist/search/lucene/registry.js +2 -2
- package/dist/search/lucene/registry.js.map +1 -1
- package/dist/search/query.d.ts +0 -28
- package/dist/search/query.d.ts.map +1 -1
- package/dist/search/query.js +0 -100
- package/dist/search/query.js.map +1 -1
- package/dist/search/task-signature.d.ts +19 -0
- package/dist/search/task-signature.d.ts.map +1 -0
- package/dist/search/task-signature.js +105 -0
- package/dist/search/task-signature.js.map +1 -0
- package/dist/search/task-similarity.d.ts +168 -0
- package/dist/search/task-similarity.d.ts.map +1 -0
- package/dist/search/task-similarity.js +177 -0
- package/dist/search/task-similarity.js.map +1 -0
- package/dist/sends/index.d.ts +1 -1
- package/dist/sends/index.d.ts.map +1 -1
- package/dist/sends/index.js +1 -1
- package/dist/sends/index.js.map +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js +2 -0
- package/dist/sends/permissions.js.map +1 -1
- package/dist/sends/upload.d.ts +1 -1
- package/dist/sends/upload.d.ts.map +1 -1
- package/dist/sends/upload.js +87 -15
- package/dist/sends/upload.js.map +1 -1
- package/dist/services/admin-statistics.d.ts.map +1 -1
- package/dist/services/admin-statistics.js +5 -12
- package/dist/services/admin-statistics.js.map +1 -1
- package/dist/services/agenda.d.ts +5 -1
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/agenda.js +8 -1
- package/dist/services/agenda.js.map +1 -1
- package/dist/services/attachments.d.ts.map +1 -1
- package/dist/services/attachments.js +1 -1
- package/dist/services/attachments.js.map +1 -1
- package/dist/services/counters.d.ts.map +1 -1
- package/dist/services/counters.js +4 -8
- package/dist/services/counters.js.map +1 -1
- package/dist/services/embeddings-maintenance.d.ts +4 -6
- package/dist/services/embeddings-maintenance.d.ts.map +1 -1
- package/dist/services/embeddings-maintenance.js +14 -15
- package/dist/services/embeddings-maintenance.js.map +1 -1
- package/dist/services/embeddings-search.d.ts.map +1 -1
- package/dist/services/embeddings-search.js +1 -6
- package/dist/services/embeddings-search.js.map +1 -1
- package/dist/services/embeddings.d.ts +0 -2
- package/dist/services/embeddings.d.ts.map +1 -1
- package/dist/services/embeddings.js.map +1 -1
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +0 -1
- package/dist/services/index.js.map +1 -1
- package/dist/services/message-resolution.d.ts +1 -10
- package/dist/services/message-resolution.d.ts.map +1 -1
- package/dist/services/message-resolution.js +0 -59
- package/dist/services/message-resolution.js.map +1 -1
- package/dist/services/messages-archive-search.d.ts +1 -1
- package/dist/services/messages-archive-search.d.ts.map +1 -1
- package/dist/services/messages-archive-search.js +4 -50
- package/dist/services/messages-archive-search.js.map +1 -1
- package/dist/services/messages-combined.d.ts.map +1 -1
- package/dist/services/messages-combined.js +1 -5
- package/dist/services/messages-combined.js.map +1 -1
- package/dist/services/messages-discovery.js +1 -1
- package/dist/services/messages-discovery.js.map +1 -1
- package/dist/services/messages-search.d.ts.map +1 -1
- package/dist/services/messages-search.js +2 -6
- package/dist/services/messages-search.js.map +1 -1
- package/dist/services/messages.d.ts +2 -6
- package/dist/services/messages.d.ts.map +1 -1
- package/dist/services/messages.js +8 -20
- package/dist/services/messages.js.map +1 -1
- package/dist/services/notes-search.d.ts +1 -1
- package/dist/services/notes-search.d.ts.map +1 -1
- package/dist/services/notes-search.js +24 -8
- package/dist/services/notes-search.js.map +1 -1
- package/dist/services/notes-title-tier.d.ts +13 -0
- package/dist/services/notes-title-tier.d.ts.map +1 -0
- package/dist/services/notes-title-tier.js +41 -0
- package/dist/services/notes-title-tier.js.map +1 -0
- package/dist/services/pictures.js +1 -1
- package/dist/services/pictures.js.map +1 -1
- package/dist/services/rankings.d.ts.map +1 -1
- package/dist/services/rankings.js +5 -11
- package/dist/services/rankings.js.map +1 -1
- package/dist/services/retention.d.ts.map +1 -1
- package/dist/services/retention.js +1 -4
- package/dist/services/retention.js.map +1 -1
- package/dist/services/search-all.d.ts +1 -1
- package/dist/services/search-all.d.ts.map +1 -1
- package/dist/services/search-all.js +0 -1
- package/dist/services/search-all.js.map +1 -1
- package/dist/services/search-catchup.d.ts.map +1 -1
- package/dist/services/search-catchup.js +0 -1
- package/dist/services/search-catchup.js.map +1 -1
- package/dist/services/search-record.d.ts +0 -4
- package/dist/services/search-record.d.ts.map +1 -1
- package/dist/services/search-record.js +2 -3
- package/dist/services/search-record.js.map +1 -1
- package/dist/services/search-refresh.d.ts.map +1 -1
- package/dist/services/search-refresh.js +3 -9
- package/dist/services/search-refresh.js.map +1 -1
- package/dist/services/searches.d.ts +0 -1
- package/dist/services/searches.d.ts.map +1 -1
- package/dist/services/searches.js +13 -35
- package/dist/services/searches.js.map +1 -1
- package/dist/services/server-search.d.ts +1 -1
- package/dist/services/server-search.d.ts.map +1 -1
- package/dist/services/server-search.js +0 -3
- package/dist/services/server-search.js.map +1 -1
- package/dist/services/tags.d.ts +3 -0
- package/dist/services/tags.d.ts.map +1 -1
- package/dist/services/tags.js +13 -5
- package/dist/services/tags.js.map +1 -1
- package/dist/services/task-categories.d.ts +17 -0
- package/dist/services/task-categories.d.ts.map +1 -0
- package/dist/services/task-categories.js +113 -0
- package/dist/services/task-categories.js.map +1 -0
- package/dist/services/task-rules.d.ts.map +1 -1
- package/dist/services/task-rules.js +3 -0
- package/dist/services/task-rules.js.map +1 -1
- package/dist/services/tasks.d.ts +14 -3
- package/dist/services/tasks.d.ts.map +1 -1
- package/dist/services/tasks.js +58 -6
- package/dist/services/tasks.js.map +1 -1
- package/dist/services/thread-context.d.ts +1 -1
- package/dist/services/thread-context.d.ts.map +1 -1
- package/dist/services/thread-context.js +3 -9
- package/dist/services/thread-context.js.map +1 -1
- package/dist/store/index.d.ts +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/migrations.d.ts +2 -1
- package/dist/store/migrations.d.ts.map +1 -1
- package/dist/store/migrations.js +5 -2
- package/dist/store/migrations.js.map +1 -1
- package/dist/store/sqlite/attachment-texts.js +2 -2
- package/dist/store/sqlite/attachment-texts.js.map +1 -1
- package/dist/store/sqlite/backfill.d.ts.map +1 -1
- package/dist/store/sqlite/backfill.js +6 -11
- package/dist/store/sqlite/backfill.js.map +1 -1
- package/dist/store/sqlite/catalog.d.ts.map +1 -1
- package/dist/store/sqlite/catalog.js +3 -3
- package/dist/store/sqlite/catalog.js.map +1 -1
- package/dist/store/sqlite/conversations.d.ts.map +1 -1
- package/dist/store/sqlite/conversations.js +3 -8
- package/dist/store/sqlite/conversations.js.map +1 -1
- package/dist/store/sqlite/document-pictures.d.ts.map +1 -1
- package/dist/store/sqlite/document-pictures.js +3 -3
- package/dist/store/sqlite/document-pictures.js.map +1 -1
- package/dist/store/sqlite/email-index.js +4 -4
- package/dist/store/sqlite/email-index.js.map +1 -1
- package/dist/store/sqlite/emails.js +5 -5
- package/dist/store/sqlite/emails.js.map +1 -1
- package/dist/store/sqlite/facts.d.ts.map +1 -1
- package/dist/store/sqlite/facts.js +3 -3
- package/dist/store/sqlite/facts.js.map +1 -1
- package/dist/store/sqlite/folded.d.ts.map +1 -1
- package/dist/store/sqlite/folded.js +7 -12
- package/dist/store/sqlite/folded.js.map +1 -1
- package/dist/store/sqlite/index-state.d.ts +4 -0
- package/dist/store/sqlite/index-state.d.ts.map +1 -0
- package/dist/store/sqlite/index-state.js +8 -0
- package/dist/store/sqlite/index-state.js.map +1 -0
- package/dist/store/sqlite/involvement-queue.d.ts +1 -1
- package/dist/store/sqlite/involvement-queue.js +1 -1
- package/dist/store/sqlite/involvements.js +3 -3
- package/dist/store/sqlite/involvements.js.map +1 -1
- package/dist/store/sqlite/knowledge.d.ts.map +1 -1
- package/dist/store/sqlite/knowledge.js +15 -10
- package/dist/store/sqlite/knowledge.js.map +1 -1
- package/dist/store/sqlite/log-pruning.d.ts.map +1 -1
- package/dist/store/sqlite/log-pruning.js +3 -8
- package/dist/store/sqlite/log-pruning.js.map +1 -1
- package/dist/store/sqlite/lucene.d.ts.map +1 -1
- package/dist/store/sqlite/lucene.js +3 -8
- package/dist/store/sqlite/lucene.js.map +1 -1
- package/dist/store/sqlite/mail-rules.js +3 -3
- package/dist/store/sqlite/mail-rules.js.map +1 -1
- package/dist/store/sqlite/manifest.d.ts.map +1 -1
- package/dist/store/sqlite/manifest.js +1 -0
- package/dist/store/sqlite/manifest.js.map +1 -1
- package/dist/store/sqlite/meeting-context-links.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-context-links.js +8 -7
- package/dist/store/sqlite/meeting-context-links.js.map +1 -1
- package/dist/store/sqlite/meeting-hit-index.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-hit-index.js +4 -3
- package/dist/store/sqlite/meeting-hit-index.js.map +1 -1
- package/dist/store/sqlite/meeting-hit-search.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-hit-search.js +3 -2
- package/dist/store/sqlite/meeting-hit-search.js.map +1 -1
- package/dist/store/sqlite/meeting-operation.d.ts +0 -2
- package/dist/store/sqlite/meeting-operation.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-operation.js +0 -15
- package/dist/store/sqlite/meeting-operation.js.map +1 -1
- package/dist/store/sqlite/meeting-participant-search.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-participant-search.js +2 -2
- package/dist/store/sqlite/meeting-participant-search.js.map +1 -1
- package/dist/store/sqlite/meeting-preparation-context.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-preparation-context.js +2 -2
- package/dist/store/sqlite/meeting-preparation-context.js.map +1 -1
- package/dist/store/sqlite/meeting-projects.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-projects.js +2 -2
- package/dist/store/sqlite/meeting-projects.js.map +1 -1
- package/dist/store/sqlite/meeting-reads.d.ts +0 -3
- package/dist/store/sqlite/meeting-reads.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-reads.js +6 -18
- package/dist/store/sqlite/meeting-reads.js.map +1 -1
- package/dist/store/sqlite/meeting-series-history.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-series-history.js +2 -2
- package/dist/store/sqlite/meeting-series-history.js.map +1 -1
- package/dist/store/sqlite/meeting-vectors.d.ts.map +1 -1
- package/dist/store/sqlite/meeting-vectors.js +6 -6
- package/dist/store/sqlite/meeting-vectors.js.map +1 -1
- package/dist/store/sqlite/meetings.d.ts.map +1 -1
- package/dist/store/sqlite/meetings.js +6 -6
- package/dist/store/sqlite/meetings.js.map +1 -1
- package/dist/store/sqlite/memories.d.ts.map +1 -1
- package/dist/store/sqlite/memories.js +2 -2
- package/dist/store/sqlite/memories.js.map +1 -1
- package/dist/store/sqlite/mention-drain.d.ts +39 -0
- package/dist/store/sqlite/mention-drain.d.ts.map +1 -0
- package/dist/store/sqlite/mention-drain.js +147 -0
- package/dist/store/sqlite/mention-drain.js.map +1 -0
- package/dist/store/sqlite/mentions.d.ts +0 -4
- package/dist/store/sqlite/mentions.d.ts.map +1 -1
- package/dist/store/sqlite/mentions.js +7 -154
- package/dist/store/sqlite/mentions.js.map +1 -1
- package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
- package/dist/store/sqlite/migrations.generated.js +9 -0
- package/dist/store/sqlite/migrations.generated.js.map +1 -1
- package/dist/store/sqlite/note-index.d.ts.map +1 -1
- package/dist/store/sqlite/note-index.js +5 -4
- package/dist/store/sqlite/note-index.js.map +1 -1
- package/dist/store/sqlite/note-search.d.ts.map +1 -1
- package/dist/store/sqlite/note-search.js +3 -6
- package/dist/store/sqlite/note-search.js.map +1 -1
- package/dist/store/sqlite/notes.d.ts.map +1 -1
- package/dist/store/sqlite/notes.js +13 -14
- package/dist/store/sqlite/notes.js.map +1 -1
- package/dist/store/sqlite/proposed-actions.d.ts.map +1 -1
- package/dist/store/sqlite/proposed-actions.js +3 -3
- package/dist/store/sqlite/proposed-actions.js.map +1 -1
- package/dist/store/sqlite/schema.d.ts +87 -0
- package/dist/store/sqlite/schema.d.ts.map +1 -1
- package/dist/store/sqlite/schema.js +7 -0
- package/dist/store/sqlite/schema.js.map +1 -1
- package/dist/store/sqlite/search-index.d.ts +0 -3
- package/dist/store/sqlite/search-index.d.ts.map +1 -1
- package/dist/store/sqlite/search-index.js +10 -29
- package/dist/store/sqlite/search-index.js.map +1 -1
- package/dist/store/sqlite/search.d.ts +1 -1
- package/dist/store/sqlite/search.d.ts.map +1 -1
- package/dist/store/sqlite/search.js +4 -8
- package/dist/store/sqlite/search.js.map +1 -1
- package/dist/store/sqlite/searches.d.ts +1 -1
- package/dist/store/sqlite/searches.d.ts.map +1 -1
- package/dist/store/sqlite/stems-fill.d.ts +30 -0
- package/dist/store/sqlite/stems-fill.d.ts.map +1 -0
- package/dist/store/sqlite/stems-fill.js +119 -0
- package/dist/store/sqlite/stems-fill.js.map +1 -0
- package/dist/store/sqlite/stems.d.ts +14 -28
- package/dist/store/sqlite/stems.d.ts.map +1 -1
- package/dist/store/sqlite/stems.js +8 -123
- package/dist/store/sqlite/stems.js.map +1 -1
- package/dist/store/sqlite/tags.d.ts +10 -2
- package/dist/store/sqlite/tags.d.ts.map +1 -1
- package/dist/store/sqlite/tags.js +25 -7
- package/dist/store/sqlite/tags.js.map +1 -1
- package/dist/store/sqlite/task-keys.d.ts +16 -0
- package/dist/store/sqlite/task-keys.d.ts.map +1 -0
- package/dist/store/sqlite/task-keys.js +40 -0
- package/dist/store/sqlite/task-keys.js.map +1 -0
- package/dist/store/sqlite/task-relations.d.ts +1 -1
- package/dist/store/sqlite/task-relations.d.ts.map +1 -1
- package/dist/store/sqlite/task-relations.js +14 -9
- package/dist/store/sqlite/task-relations.js.map +1 -1
- package/dist/store/sqlite/tasks.d.ts +1 -7
- package/dist/store/sqlite/tasks.d.ts.map +1 -1
- package/dist/store/sqlite/tasks.js +23 -28
- package/dist/store/sqlite/tasks.js.map +1 -1
- package/dist/store/sqlite/transaction.d.ts +19 -0
- package/dist/store/sqlite/transaction.d.ts.map +1 -0
- package/dist/store/sqlite/transaction.js +77 -0
- package/dist/store/sqlite/transaction.js.map +1 -0
- package/dist/store/sqlite/vocabulary.d.ts.map +1 -1
- package/dist/store/sqlite/vocabulary.js +6 -18
- package/dist/store/sqlite/vocabulary.js.map +1 -1
- package/dist/store/sqlite/words.d.ts +1 -61
- package/dist/store/sqlite/words.d.ts.map +1 -1
- package/dist/store/sqlite/words.js +0 -225
- package/dist/store/sqlite/words.js.map +1 -1
- package/dist/store/sqlite/work-tasks.d.ts +15 -1
- package/dist/store/sqlite/work-tasks.d.ts.map +1 -1
- package/dist/store/sqlite/work-tasks.js +49 -5
- package/dist/store/sqlite/work-tasks.js.map +1 -1
- package/dist/store/store.d.ts +21 -41
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +52 -117
- package/dist/store/store.js.map +1 -1
- package/dist/tasks/model.d.ts +7 -0
- package/dist/tasks/model.d.ts.map +1 -1
- package/dist/tasks/model.js +2 -1
- package/dist/tasks/model.js.map +1 -1
- package/dist/tasks/service.d.ts +1 -0
- package/dist/tasks/service.d.ts.map +1 -1
- package/dist/tasks/service.js.map +1 -1
- package/package.json +1 -1
- package/parity.json +51 -23
- package/skills/follow-ups/SKILL.md +4 -2
- package/dist/embeddings/pool.d.ts +0 -17
- package/dist/embeddings/pool.d.ts.map +0 -1
- package/dist/embeddings/pool.js +0 -22
- package/dist/embeddings/pool.js.map +0 -1
- package/dist/embeddings/worker.d.ts +0 -2
- package/dist/embeddings/worker.d.ts.map +0 -1
- package/dist/embeddings/worker.js +0 -22
- package/dist/embeddings/worker.js.map +0 -1
- package/dist/embeddings/workers.d.ts +0 -8
- package/dist/embeddings/workers.d.ts.map +0 -1
- package/dist/embeddings/workers.js +0 -51
- package/dist/embeddings/workers.js.map +0 -1
- package/dist/search/legacy-regex.d.ts +0 -7
- package/dist/search/legacy-regex.d.ts.map +0 -1
- package/dist/search/legacy-regex.js +0 -48
- package/dist/search/legacy-regex.js.map +0 -1
- package/dist/search/lucene/migration.d.ts +0 -21
- package/dist/search/lucene/migration.d.ts.map +0 -1
- package/dist/search/lucene/migration.js +0 -31
- package/dist/search/lucene/migration.js.map +0 -1
- package/dist/search/search.d.ts +0 -27
- package/dist/search/search.d.ts.map +0 -1
- package/dist/search/search.js +0 -66
- package/dist/search/search.js.map +0 -1
- package/dist/services/message-query-validation.d.ts +0 -3
- package/dist/services/message-query-validation.d.ts.map +0 -1
- package/dist/services/message-query-validation.js +0 -14
- package/dist/services/message-query-validation.js.map +0 -1
- package/dist/store/sqlite/atomic.d.ts +0 -8
- package/dist/store/sqlite/atomic.d.ts.map +0 -1
- package/dist/store/sqlite/atomic.js +0 -28
- package/dist/store/sqlite/atomic.js.map +0 -1
- package/dist/store/sqlite/legacy-regex.d.ts +0 -7
- package/dist/store/sqlite/legacy-regex.d.ts.map +0 -1
- package/dist/store/sqlite/legacy-regex.js +0 -42
- package/dist/store/sqlite/legacy-regex.js.map +0 -1
- package/dist/store/sqlite/read-snapshot.d.ts +0 -4
- package/dist/store/sqlite/read-snapshot.d.ts.map +0 -1
- package/dist/store/sqlite/read-snapshot.js +0 -14
- 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":"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"}
|
|
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE3D,MAAM,YAAY,GAAG;;4HAEuG,CAAA;AAC5H,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAAe,EACf,KAAe,EACf,OAAO,GAIH,EAAE,EACa,EAAE;IACrB,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO;QAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC3E,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,UAAU;QAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACvE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,SAAS;QAAE,SAAS,CAAC,YAAY,CAAC,CAAA;IACnH,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO;QACzB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5G,MAAM,MAAM,GACV,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACtD,IAAI,MAAM,CAAC,YAAY,EAAE;YACvB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,EAAE,sBAAsB,EAAE,EAAE,EAAE,wBAAwB,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;YAC5F,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE;SACpE,CAAC,CAAA;IACJ,IAAI,KAAgD,CAAA;IACpD,IAAI,KAA+B,CAAA;IACnC,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,MAAe,EAAE,EAAE;gBACzC,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;oBACtB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAW,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;oBAEpG,MAAM,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,6CAA6C,CAAC,CAAC,CAAA;;oBACpF,OAAO,CAAC,MAAkB,CAAC,CAAA;YAClC,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAA;YAC/F,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAC,CAAC,CAAA;YAC/G,KAAK,GAAG,GAAG,EAAE,CACX,MAAM,CAAC,IAAI,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YAC9G,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YAChE,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CACH,MAAM,CACJ,IAAI,QAAQ,CACV,kBAAkB,EAClB,8EAA8E,EAC9E,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAC/D,CACF,EACH,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,YAAY,CAC/C,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,KAAK;YAAE,YAAY,CAAC,KAAK,CAAC,CAAA;QAC9B,IAAI,KAAK;YAAE,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC9D,MAAM,MAAM,CAAC,SAAS,EAAE,CAAA;IAC1B,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -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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"}
|
package/dist/search/search.d.ts
DELETED
|
@@ -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"}
|
package/dist/search/search.js
DELETED
|
@@ -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 +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 +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"}
|