@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
|
@@ -2,8 +2,8 @@ import { createHash } from "node:crypto";
|
|
|
2
2
|
import { CliError } from "@wirecat/cli-base";
|
|
3
3
|
import { normalizeTag } from "../../domain/tags.js";
|
|
4
4
|
import { normalizeVocabularyName, vocabularySimilarity } from "../../domain/vocabulary.js";
|
|
5
|
-
import { atomic } from "./atomic.js";
|
|
6
5
|
import { tagCreationReview } from "./tag-creation.js";
|
|
6
|
+
import { read, write } from "./transaction.js";
|
|
7
7
|
const kinds = ["project", "tag", "topic"];
|
|
8
8
|
const cancelled = (signal) => {
|
|
9
9
|
if (signal?.aborted)
|
|
@@ -21,19 +21,7 @@ const kindOf = (kind) => {
|
|
|
21
21
|
/** Metadata and aliases only: no transcript, model or person-name lookup. */
|
|
22
22
|
export const vocabularyStoreOver = (context) => {
|
|
23
23
|
const { database, now } = context;
|
|
24
|
-
const
|
|
25
|
-
database.exec("SAVEPOINT vocabulary_snapshot");
|
|
26
|
-
try {
|
|
27
|
-
const result = body();
|
|
28
|
-
database.exec("RELEASE vocabulary_snapshot");
|
|
29
|
-
return result;
|
|
30
|
-
}
|
|
31
|
-
catch (error) {
|
|
32
|
-
database.exec("ROLLBACK TO vocabulary_snapshot; RELEASE vocabulary_snapshot");
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const catalog = (options = {}) => snapshot(() => {
|
|
24
|
+
const catalog = (options = {}) => read(database, () => {
|
|
37
25
|
cancelled(options.signal);
|
|
38
26
|
if (options.kind !== undefined)
|
|
39
27
|
kindOf(options.kind);
|
|
@@ -170,7 +158,7 @@ export const vocabularyStoreOver = (context) => {
|
|
|
170
158
|
};
|
|
171
159
|
return {
|
|
172
160
|
vocabulary: async (options) => catalog(options),
|
|
173
|
-
auditVocabulary: async (options = {}) =>
|
|
161
|
+
auditVocabulary: async (options = {}) => read(database, () => {
|
|
174
162
|
const minSimilarity = options.minSimilarity ?? 0.65;
|
|
175
163
|
const maxComparisons = options.maxComparisons ?? 10000;
|
|
176
164
|
const limit = options.limit ?? 20;
|
|
@@ -235,7 +223,7 @@ export const vocabularyStoreOver = (context) => {
|
|
|
235
223
|
},
|
|
236
224
|
addVocabularyAlias: async (target, name, options = {}) => {
|
|
237
225
|
const normalized = normalizeVocabularyName(name);
|
|
238
|
-
return
|
|
226
|
+
return write(database, () => {
|
|
239
227
|
const current = writable(options);
|
|
240
228
|
const entry = targetEntry(current, target);
|
|
241
229
|
const peers = current.entries.filter((value) => (value.kind === "project") === (target.kind === "project"));
|
|
@@ -260,7 +248,7 @@ export const vocabularyStoreOver = (context) => {
|
|
|
260
248
|
};
|
|
261
249
|
});
|
|
262
250
|
},
|
|
263
|
-
removeVocabularyAlias: async (target, aliasId, options = {}) =>
|
|
251
|
+
removeVocabularyAlias: async (target, aliasId, options = {}) => write(database, () => {
|
|
264
252
|
const current = writable(options);
|
|
265
253
|
const entry = targetEntry(current, target);
|
|
266
254
|
idOf(aliasId);
|
|
@@ -273,7 +261,7 @@ export const vocabularyStoreOver = (context) => {
|
|
|
273
261
|
cancelled(options.signal);
|
|
274
262
|
return { target: { kind: entry.kind, id: entry.id }, alias: held, changed: true };
|
|
275
263
|
}),
|
|
276
|
-
tagPreflight: async (name, options = {}) =>
|
|
264
|
+
tagPreflight: async (name, options = {}) => read(database, () => {
|
|
277
265
|
const kind = options.kind ?? "tag";
|
|
278
266
|
if (kind !== "tag" && kind !== "topic")
|
|
279
267
|
throw new CliError("validation_error", "choose tag or topic");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../../src/store/sqlite/vocabulary.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../../src/store/sqlite/vocabulary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAsF9C,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAU,CAAA;AAClD,MAAM,SAAS,GAAG,CAAC,MAAoB,EAAE,EAAE;IACzC,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,oCAAoC,CAAC,CAAA;AAC5F,CAAC,CAAA;AACD,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChG,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,gDAAgD,CAAC,CAAA;IAC1F,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;AACtB,CAAC,CAAA;AACD,MAAM,MAAM,GAAG,CAAC,IAAoB,EAAQ,EAAE;IAC5C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,8BAA8B,CAAC,CAAA;AACnG,CAAC,CAAA;AAED,6EAA6E;AAC7E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAqB,EAAmB,EAAE;IAC5E,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACjC,MAAM,OAAO,GAAG,CAAC,OAAO,GAAsB,EAAE,EAAqB,EAAE,CACrE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAClB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACpD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM;YACzF,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,0CAA0C,CAAC,CAAA;QACpF,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAA;QAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;QAC5D,IACE,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;YACjC,UAAU,GAAG,CAAC;YACd,UAAU,GAAG,MAAM;YACnB,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;YACnC,YAAY,GAAG,CAAC;YAChB,YAAY,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI;YAE/B,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,6DAA6D,CAAC,CAAA;QACvG,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAA;QACzE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAA;QACvC,MAAM,aAAa,GAAG,sEAAsE,CAAA;QAC5F,MAAM,SAAS,GAAG,uBAAuB,CAAA;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,CAAA;QAC1E,MAAM,QAAQ,GAAU,EAAE,CAAA;QAC1B,IAAI,QAAQ;YACV,QAAQ,CAAC,IAAI,CACX,GAAG,QAAQ;iBACR,OAAO,CACN,iHAAiH,aAAa,UAAU,CACzI;iBACA,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,UAAU,GAAG,CAAC,CAAC,CACrE,CAAA;QACH,IAAI,IAAI;YACN,QAAQ,CAAC,IAAI,CACX,GAAG,QAAQ;iBACR,OAAO,CAAC,sEAAsE,SAAS,UAAU,CAAC;iBAClG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,GAAG,CAAC,CAAC,CACzC,CAAA;QACH,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU;YAC9B,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,8CAA8C,EAAE;gBACrF,MAAM,EAAE,8BAA8B;aACvC,CAAC,CAAA;QACJ,MAAM,cAAc,GAClB,yEAAyE;YACzE,uIAAuI;YACvI,4HAA4H,CAAA;QAC9H,MAAM,WAAW,GAAG;YAClB,MAAM,CAAC,QAAQ,CAAC;YAChB,OAAO,CAAC,KAAK,IAAI,IAAI;YACrB,OAAO,CAAC,KAAK,IAAI,IAAI;YACrB,MAAM,CAAC,IAAI,CAAC;YACZ,OAAO;YACP,OAAO;SACR,CAAA;QACD,MAAM,OAAO,GAAG,QAAQ;aACrB,OAAO,CACN,wGAAwG,cAAc,EAAE,CACzH;aACA,GAAG,CAAC,GAAG,WAAW,CAAC,CAAA;QACtB,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,UAAU,GAAG,EAAE;YAC/C,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qDAAqD,CAAC,CAAA;QAC/F,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;QACzG,IAAI,KAAK,GAAG,YAAY;YACtB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mDAAmD,EAAE;gBAC1F,MAAM,EAAE,6BAA6B;aACtC,CAAC,CAAA;QACJ,MAAM,OAAO,GAAsB,EAAE,CAAA;QACrC,IAAI,QAAQ;YACV,OAAO,CAAC,IAAI,CACV,GAAG,QAAQ;iBACR,OAAO,CAAC,gDAAgD,aAAa,cAAc,CAAC;iBACpF,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;iBACjD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,IAAI,EAAE,SAAkB;gBACxB,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBACtB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;gBACpB,KAAK,EAAE,GAAG,CAAC,KAA4B;gBACvC,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,CAAC;aACd,CAAC,CAAC,CACN,CAAA;QACH,IAAI,IAAI;YACN,OAAO,CAAC,IAAI,CACV,GAAG,QAAQ;iBACR,OAAO,CACN,yMAAyM,SAAS,cAAc,CACjO;iBACA,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC;iBACrB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACb,IAAI,EAAE,GAAG,CAAC,IAAuB;gBACjC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;gBACtB,GAAG,EAAE,IAAI;gBACT,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;aAC7B,CAAC,CAAC,CACN,CAAA;QACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAC/F,CAAA;QACD,KAAK,MAAM,GAAG,IAAI,QAAQ;aACvB,OAAO,CACN,2EAA2E,cAAc,gBAAgB,CAC1G;aACA,GAAG,CAAC,GAAG,WAAW,CAAC;YACpB,QAAQ;iBACL,GAAG,CAAC,GAAG,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACjD,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAClE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO;YACL,OAAO;YACP,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC1I,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE;SACvD,CAAA;IACH,CAAC,CAAC,CAAA;IACJ,MAAM,UAAU,GAAG,CAAC,KAAa,EAAiB,EAAE;QAClD,IAAI,CAAC;YACH,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,CAAC,OAA0B,EAAE,IAAY,EAAE,EAAE;QAC3D,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;QAChD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9B,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC/F,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,UAAU,CAC5C,CACF,CAAA;IACH,CAAC,CAAA;IACD,MAAM,QAAQ,GAAG,CAAC,OAAuF,EAAE,EAAE;QAC3G,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,IAAI,OAAO,CAAC,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,EAAE,KAAK,OAAO;YACpD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mEAAmE,CAAC,CAAA;QAC7G,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAA;QAC5C,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,QAAQ,KAAK,QAAQ;YACxD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,CAAA;QAClF,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,CAAC,+DAA+D,CAAC,CAAA;QAC9F,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,KAAK;YAClC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,wCAAwC,CAAC,CAAA;QAClF,MAAM,OAAO,GAAG,OAAO,CAAC;YACtB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAwB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxF,CAAC,CAAA;QACF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,OAAO,CAAC,WAAW;YAC5D,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,sCAAsC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;QACnH,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IAClF,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,CAAC,OAA0B,EAAE,MAAwB,EAAE,EAAE;QAC3E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAA;QACpH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACf,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;QACnG,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,sCAAsC,CAAC,CAAA;QACnF,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,OAAO;QACL,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;QAC/C,eAAe,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CACtC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAClB,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAA;YACnD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,KAAK,CAAA;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAA;YACjC,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAC/B,aAAa,GAAG,IAAI;gBACpB,aAAa,GAAG,CAAC;gBACjB,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;gBACrC,cAAc,GAAG,CAAC;gBAClB,cAAc,GAAG,MAAM;gBACvB,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;gBAC5B,KAAK,GAAG,CAAC;gBACT,KAAK,GAAG,GAAG;gBAEX,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qEAAqE,CAAC,CAAA;YAC/G,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,MAAM,GAAoB;gBAC9B,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,WAAW,EAAE,CAAC;gBACd,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,eAAe;aAC1B,CAAA;YACD,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC,CAAC;gBAC1C,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9B,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG;aACvC,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,CAAC,KAAsB,EAAE,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI;gBACV,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;aAC5C,CAAA;YACD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;gBACzD,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAoB,CAAA;gBAClD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;oBAChD,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;wBAAE,SAAQ;oBAC/D,IAAI,UAAU,GAAG,CAAC,CAAA;oBAClB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC;wBACzB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC7B,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;4BACzB,IAAI,MAAM,CAAC,WAAW,KAAK,cAAc;gCAAE,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;4BAChF,MAAM,CAAC,WAAW,EAAE,CAAA;4BACpB,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI;gCACzD,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;wBACxE,CAAC;oBACH,IAAI,UAAU,IAAI,aAAa,EAAE,CAAC;wBAChC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;wBACnF,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK;4BAAE,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;oBAC1E,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAC;QACJ,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACzC,uBAAuB,CAAC,IAAI,CAAC,CAAA;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YAC5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAA;QACvG,CAAC;QACD,kBAAkB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;YACvD,MAAM,UAAU,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;YAChD,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACjC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAA;gBAC3G,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC5G,IAAI,SAAS,CAAC,MAAM;oBAClB,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,mDAAmD,EAAE;wBAC7F,MAAM,EAAE,2BAA2B;wBACnC,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;qBAC7F,CAAC,CAAA;gBACJ,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,CAAA;gBACjF,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC;oBAC3G,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;gBAC5F,MAAM,EAAE,GAAG,GAAG,EAAE,CAAA;gBAChB,MAAM,GAAG,GAAG,QAAQ;qBACjB,OAAO,CACN,qKAAqK,CACtK;qBACA,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;gBACvG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACzB,OAAO;oBACL,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;oBAC1C,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;oBACjD,OAAO,EAAE,IAAI;iBACd,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CAC7D,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;YACjC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC1C,IAAI,CAAC,OAAO,CAAC,CAAA;YACb,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAA;YAChE,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA;YAC7F,QAAQ;iBACL,OAAO,CAAC,+FAA+F,CAAC;iBACxG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;YACrF,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACzB,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QACnF,CAAC,CAAC;QACJ,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE,CACzC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA;YAClC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAO;gBAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,CAAA;YACrG,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;YAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,gCAAgC,CAAC,CAAA;YACjG,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;YACjC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;gBACpC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;YACnF,IAAI,CAAC,QAAQ;gBAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,WAAW,GAAG,QAAQ;gBAC1B,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,OAAO;qBACJ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACf,KAAK;oBACL,UAAU,EAAE,IAAI,CAAC,GAAG,CAClB,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACzE,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CACnE,CACF;oBACD,EAAE,EAAE,SAAkB;iBACvB,CAAC,CAAC;qBACF,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;qBAC3C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACtF,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACnB,OAAO;gBACL,mBAAmB,EAAE,iBAAiB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,mBAAmB;gBAC/E,IAAI;gBACJ,IAAI;gBACJ,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBAC1E,QAAQ;gBACR,WAAW;gBACX,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,QAAQ,EAAE,eAAe;aAC1B,CAAA;QACH,CAAC,CAAC;KACL,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,51 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Term } from "../../search/query.js";
|
|
3
|
-
import type { AccountKey, StoredHit } from "../store.js";
|
|
1
|
+
import type { StoredHit } from "../store.js";
|
|
4
2
|
import type { StoreContext } from "./open.js";
|
|
5
|
-
/**
|
|
6
|
-
* A chat or a sender with at most this many messages is filtered inside the word index; a larger one by
|
|
7
|
-
* a join (phase 2 plan S6). Measured on 1M (`bench/search/store-chain.ts`): the token is 3.5 times
|
|
8
|
-
* faster for "any word" in an 85k chat, and 5% slower in a 500k one.
|
|
9
|
-
*/
|
|
10
|
-
export declare const SCOPE_TOKEN_LIMIT = 100000;
|
|
11
|
-
export interface WordQuery {
|
|
12
|
-
/** AND of groups, each an OR of terms. */
|
|
13
|
-
required: Term[][];
|
|
14
|
-
excluded: Term[];
|
|
15
|
-
}
|
|
16
|
-
export interface SearchScope {
|
|
17
|
-
accounts: AccountKey[];
|
|
18
|
-
chat?: {
|
|
19
|
-
account: AccountKey;
|
|
20
|
-
chatId: Id;
|
|
21
|
-
};
|
|
22
|
-
sender?: {
|
|
23
|
-
provider: Provider;
|
|
24
|
-
id: Id;
|
|
25
|
-
};
|
|
26
|
-
/** Any of these senders — always a join, whatever their size. */
|
|
27
|
-
senders?: {
|
|
28
|
-
provider: Provider;
|
|
29
|
-
id: Id;
|
|
30
|
-
}[];
|
|
31
|
-
/** `from:me`: what the account itself sent. */
|
|
32
|
-
outgoing?: boolean;
|
|
33
|
-
/** Epoch ms, inclusive. */
|
|
34
|
-
after?: number;
|
|
35
|
-
/** Epoch ms, exclusive. */
|
|
36
|
-
before?: number;
|
|
37
|
-
/** Attachment kinds, `attachment` for any, `link` for a link in the text — all required. */
|
|
38
|
-
has?: string[];
|
|
39
|
-
}
|
|
40
|
-
export interface WordOptions {
|
|
41
|
-
/** Every group required, or any term enough. */
|
|
42
|
-
mode: "every" | "any";
|
|
43
|
-
/** Words of three letters or more match as the beginning of a word. */
|
|
44
|
-
beginnings: boolean;
|
|
45
|
-
limit: number;
|
|
46
|
-
/** Newest first instead of by score. */
|
|
47
|
-
newest?: boolean;
|
|
48
|
-
}
|
|
49
3
|
/** A hit with its relevance — bm25 turned round so higher is better; `null` from steps that do not rank. */
|
|
50
4
|
/** `exact: false`: a stemmed search found it only through another form of the words. */
|
|
51
5
|
export type ScoredHit = StoredHit & {
|
|
@@ -57,20 +11,6 @@ export type ScoredHit = StoredHit & {
|
|
|
57
11
|
matchedText?: string;
|
|
58
12
|
};
|
|
59
13
|
export type MatchPlace = "text" | "transcript" | "filename" | "file";
|
|
60
|
-
/**
|
|
61
|
-
* Steps 1, 2 and 4 of the search (plan S4): the word index, ranked by bm25, ties newest first. A small
|
|
62
|
-
* chat or sender is a token inside the index, a large one a join; with neither, the index ranks first
|
|
63
|
-
* and the join keeps this account's rows (plan S6). The index is always searched before the rows.
|
|
64
|
-
*/
|
|
65
|
-
export declare const matchWords: (context: StoreContext, query: WordQuery, scope: SearchScope, { mode, beginnings, limit, newest }: WordOptions) => Page<ScoredHit>;
|
|
66
|
-
/** A search of filters alone — `from:alice after:2026-01-01` — newest first (plan S5). */
|
|
67
|
-
export declare const matchFilters: (context: StoreContext, scope: SearchScope, { limit }: {
|
|
68
|
-
limit: number;
|
|
69
|
-
}) => Page<ScoredHit>;
|
|
70
|
-
/** Step 5 (plan S4): the substring index over the raw text, newest first. Pieces under three letters are dropped. */
|
|
71
|
-
export declare const matchSubstring: (context: StoreContext, query: WordQuery, scope: SearchScope, { limit }: {
|
|
72
|
-
limit: number;
|
|
73
|
-
}) => Page<ScoredHit>;
|
|
74
14
|
/**
|
|
75
15
|
* The words the index knows, of those given: a whole word, or the beginning of one — otherwise
|
|
76
16
|
* `квартир` would be "corrected" to `квартира` and lose `квартиру` (plan S4).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"words.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE7C,4GAA4G;AAC5G,wFAAwF;AACxF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2GAA2G;IAC3G,SAAS,CAAC,EAAE,UAAU,CAAA;IACtB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AACD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,MAAM,CAAA;AAIpE;;;GAGG;AACH,eAAO,MAAM,UAAU,iBAAkB,YAAY,SAAS,MAAM,EAAE,KAAG,GAAG,CAAC,MAAM,CAQlF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,iBACX,YAAY,UAClB,MAAM,EAAE,yBACO;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAC3D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAchC,CAAA"}
|
|
@@ -1,229 +1,4 @@
|
|
|
1
|
-
import { CliError } from "@wirecat/cli-base";
|
|
2
|
-
import { storedKinds } from "../../domain/attachments.js";
|
|
3
1
|
import { normalize } from "../normalize.js";
|
|
4
|
-
import { findAccountPk } from "./accounts.js";
|
|
5
|
-
import { findChatPk } from "./chats.js";
|
|
6
|
-
import { hitsByPk } from "./search.js";
|
|
7
|
-
/**
|
|
8
|
-
* A chat or a sender with at most this many messages is filtered inside the word index; a larger one by
|
|
9
|
-
* a join (phase 2 plan S6). Measured on 1M (`bench/search/store-chain.ts`): the token is 3.5 times
|
|
10
|
-
* faster for "any word" in an 85k chat, and 5% slower in a 500k one.
|
|
11
|
-
*/
|
|
12
|
-
export const SCOPE_TOKEN_LIMIT = 100_000;
|
|
13
|
-
/** The scope column out of bm25: otherwise a chat under the limit would rank its hits by the token too. */
|
|
14
|
-
const UNSCOPED_RANK = "bm25(1.0, 0.0)";
|
|
15
|
-
/** Ranked inside the index first, this many times the page, before the join drops other accounts' rows. */
|
|
16
|
-
const RANKED_FIRST = 5;
|
|
17
|
-
const quoted = (text) => `"${text.replaceAll('"', '""')}"`;
|
|
18
|
-
const meaningful = (text) => /[\p{L}\p{N}]/u.test(text);
|
|
19
|
-
const textOf = (term) => normalize(term.kind === "phrase" ? term.words.join(" ") : term.text);
|
|
20
|
-
const wordTerm = (term, beginnings) => {
|
|
21
|
-
const text = textOf(term);
|
|
22
|
-
if (!meaningful(text))
|
|
23
|
-
return undefined;
|
|
24
|
-
return beginnings && term.kind === "word" && [...text].length >= 3 ? `${quoted(text)}*` : quoted(text);
|
|
25
|
-
};
|
|
26
|
-
/** Null when nothing in the scope can match: an unknown account, chat or sender. */
|
|
27
|
-
const resolve = (context, scope) => {
|
|
28
|
-
if (scope.accounts.length === 0)
|
|
29
|
-
throw new CliError("validation_error", "a search names at least one account");
|
|
30
|
-
const accountPks = scope.accounts.flatMap((key) => findAccountPk(context, key) ?? []);
|
|
31
|
-
if (accountPks.length === 0)
|
|
32
|
-
return null;
|
|
33
|
-
const resolved = { accountPks };
|
|
34
|
-
const { database } = context;
|
|
35
|
-
if (scope.chat) {
|
|
36
|
-
const account = findAccountPk(context, scope.chat.account);
|
|
37
|
-
const chatPk = account === undefined ? undefined : findChatPk(context, account, scope.chat.chatId);
|
|
38
|
-
if (chatPk === undefined)
|
|
39
|
-
return null;
|
|
40
|
-
resolved.chatPk = chatPk;
|
|
41
|
-
resolved.chatMessages = Number(database.prepare("SELECT message_count FROM chats WHERE id = ?").get(chatPk)?.message_count);
|
|
42
|
-
}
|
|
43
|
-
if (scope.senders) {
|
|
44
|
-
const lookup = database.prepare("SELECT id AS pk FROM identities WHERE provider = ? AND external_id = ?");
|
|
45
|
-
resolved.senderPks = scope.senders.flatMap(({ provider, id }) => {
|
|
46
|
-
const pk = lookup.get(provider, id)?.pk;
|
|
47
|
-
return pk === undefined ? [] : [Number(pk)];
|
|
48
|
-
});
|
|
49
|
-
if (resolved.senderPks.length === 0)
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
if (scope.sender) {
|
|
53
|
-
const senderPk = database
|
|
54
|
-
.prepare("SELECT id AS pk FROM identities WHERE provider = ? AND external_id = ?")
|
|
55
|
-
.get(scope.sender.provider, scope.sender.id)?.pk;
|
|
56
|
-
if (senderPk === undefined)
|
|
57
|
-
return null;
|
|
58
|
-
resolved.senderPk = Number(senderPk);
|
|
59
|
-
// Counted only as far as the limit: past it the answer is "large", whatever the number.
|
|
60
|
-
resolved.senderMessages = Number(database
|
|
61
|
-
.prepare("SELECT count(*) AS n FROM (SELECT 1 FROM messages WHERE sender_identity_id = ? LIMIT ?)")
|
|
62
|
-
.get(resolved.senderPk, SCOPE_TOKEN_LIMIT + 1)?.n);
|
|
63
|
-
}
|
|
64
|
-
return resolved;
|
|
65
|
-
};
|
|
66
|
-
/** The conditions on the message row, shared by every step. */
|
|
67
|
-
const rowConditions = (resolved, scope, joined) => {
|
|
68
|
-
const where = ["m.deleted_at IS NULL", `m.account_id IN (${resolved.accountPks.join(", ")})`];
|
|
69
|
-
const params = [];
|
|
70
|
-
if (joined.chat) {
|
|
71
|
-
where.push("m.chat_id = ?");
|
|
72
|
-
params.push(resolved.chatPk);
|
|
73
|
-
}
|
|
74
|
-
if (joined.sender) {
|
|
75
|
-
where.push("m.sender_identity_id = ?");
|
|
76
|
-
params.push(resolved.senderPk);
|
|
77
|
-
}
|
|
78
|
-
if (resolved.senderPks)
|
|
79
|
-
where.push(`m.sender_identity_id IN (${resolved.senderPks.join(", ")})`);
|
|
80
|
-
if (scope.outgoing)
|
|
81
|
-
where.push("m.outgoing = 1");
|
|
82
|
-
if (scope.after !== undefined) {
|
|
83
|
-
where.push("m.sent_at >= ?");
|
|
84
|
-
params.push(scope.after);
|
|
85
|
-
}
|
|
86
|
-
if (scope.before !== undefined) {
|
|
87
|
-
where.push("m.sent_at < ?");
|
|
88
|
-
params.push(scope.before);
|
|
89
|
-
}
|
|
90
|
-
for (const kind of scope.has ?? []) {
|
|
91
|
-
if (kind === "link")
|
|
92
|
-
where.push(`m.id IN (SELECT rowid FROM messages_fts WHERE messages_fts MATCH '"://"')`);
|
|
93
|
-
else if (kind === "attachment")
|
|
94
|
-
where.push("EXISTS (SELECT 1 FROM attachments a WHERE a.attachable_type = 'message' AND a.attachable_id = m.id)");
|
|
95
|
-
else {
|
|
96
|
-
const kinds = storedKinds(kind);
|
|
97
|
-
where.push(`EXISTS (SELECT 1 FROM attachments a WHERE a.attachable_type = 'message' AND a.attachable_id = m.id AND a.kind IN (${kinds.map(() => "?").join(",")}))`);
|
|
98
|
-
params.push(...kinds);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// A chat marked not searchable is searched only when the search names it (plan S9).
|
|
102
|
-
if (!scope.chat)
|
|
103
|
-
where.push("c.searchable = 1");
|
|
104
|
-
return { where: where.join(" AND "), params };
|
|
105
|
-
};
|
|
106
|
-
const page = (context, rows, limit) => {
|
|
107
|
-
const kept = rows.slice(0, limit);
|
|
108
|
-
const scores = new Map(kept.map((row) => [row.pk, row.score]));
|
|
109
|
-
const hits = hitsByPk(context, kept.map((row) => row.pk));
|
|
110
|
-
return {
|
|
111
|
-
items: hits.map((hit, index) => {
|
|
112
|
-
const score = scores.get(kept[index].pk) ?? null;
|
|
113
|
-
return { ...hit, score: score === null ? null : -score };
|
|
114
|
-
}),
|
|
115
|
-
hasMore: rows.length > limit,
|
|
116
|
-
};
|
|
117
|
-
};
|
|
118
|
-
/**
|
|
119
|
-
* Steps 1, 2 and 4 of the search (plan S4): the word index, ranked by bm25, ties newest first. A small
|
|
120
|
-
* chat or sender is a token inside the index, a large one a join; with neither, the index ranks first
|
|
121
|
-
* and the join keeps this account's rows (plan S6). The index is always searched before the rows.
|
|
122
|
-
*/
|
|
123
|
-
export const matchWords = (context, query, scope, { mode, beginnings, limit, newest = false }) => {
|
|
124
|
-
const empty = { items: [], hasMore: false };
|
|
125
|
-
const groups = query.required
|
|
126
|
-
.map((group) => group.flatMap((term) => wordTerm(term, beginnings) ?? []))
|
|
127
|
-
.filter((group) => group.length > 0);
|
|
128
|
-
if (groups.length === 0)
|
|
129
|
-
return empty;
|
|
130
|
-
const resolved = resolve(context, scope);
|
|
131
|
-
if (!resolved)
|
|
132
|
-
return empty;
|
|
133
|
-
const tokenChat = resolved.chatPk !== undefined && (resolved.chatMessages ?? 0) <= SCOPE_TOKEN_LIMIT;
|
|
134
|
-
const tokenSender = resolved.senderPk !== undefined && (resolved.senderMessages ?? 0) <= SCOPE_TOKEN_LIMIT;
|
|
135
|
-
const required = mode === "every" ? groups.map((group) => `(${group.join(" OR ")})`).join(" AND ") : groups.flat().join(" OR ");
|
|
136
|
-
const tokens = [...(tokenChat ? [`c${resolved.chatPk}`] : []), ...(tokenSender ? [`s${resolved.senderPk}`] : [])];
|
|
137
|
-
let match = `(normalized_text : (${required}))`;
|
|
138
|
-
if (tokens.length > 0)
|
|
139
|
-
match = `(${match} AND (scope : (${tokens.map(quoted).join(" AND ")})))`;
|
|
140
|
-
for (const term of query.excluded) {
|
|
141
|
-
const excluded = wordTerm(term, false);
|
|
142
|
-
if (excluded)
|
|
143
|
-
match = `(${match} NOT (normalized_text : ${excluded}))`;
|
|
144
|
-
}
|
|
145
|
-
const joined = {
|
|
146
|
-
chat: resolved.chatPk !== undefined && !tokenChat,
|
|
147
|
-
sender: resolved.senderPk !== undefined && !tokenSender,
|
|
148
|
-
};
|
|
149
|
-
const { where, params } = rowConditions(resolved, scope, joined);
|
|
150
|
-
const order = newest ? "m.sent_at DESC, m.id DESC" : "f.rank, m.sent_at DESC, m.id DESC";
|
|
151
|
-
const full = () => context.database
|
|
152
|
-
.prepare(`SELECT m.id AS pk, f.rank AS score
|
|
153
|
-
FROM message_words f CROSS JOIN messages m CROSS JOIN chats c
|
|
154
|
-
WHERE message_words MATCH ? AND f.rank MATCH '${UNSCOPED_RANK}' AND m.id = f.rowid AND c.id = m.chat_id
|
|
155
|
-
AND ${where}
|
|
156
|
-
ORDER BY ${order} LIMIT ?`)
|
|
157
|
-
.all(match, ...params, limit + 1)
|
|
158
|
-
.map((row) => ({ pk: Number(row.pk), score: Number(row.score) }));
|
|
159
|
-
if (newest || resolved.chatPk !== undefined || resolved.senderPk !== undefined || resolved.senderPks) {
|
|
160
|
-
return page(context, full(), limit);
|
|
161
|
-
}
|
|
162
|
-
const ranked = context.database
|
|
163
|
-
.prepare("SELECT rowid AS pk, rank AS score FROM message_words WHERE message_words MATCH ? ORDER BY rank LIMIT ?")
|
|
164
|
-
.all(match, RANKED_FIRST * (limit + 1));
|
|
165
|
-
if (ranked.length === 0)
|
|
166
|
-
return empty;
|
|
167
|
-
const kept = new Map(context.database
|
|
168
|
-
.prepare(`SELECT m.id AS pk, m.sent_at AS sent FROM messages m CROSS JOIN chats c
|
|
169
|
-
WHERE m.id IN (${ranked.map((row) => Number(row.pk)).join(", ")}) AND c.id = m.chat_id AND ${where}`)
|
|
170
|
-
.all(...params)
|
|
171
|
-
.map((row) => [Number(row.pk), Number(row.sent)]));
|
|
172
|
-
const survivors = ranked
|
|
173
|
-
.filter((row) => kept.has(Number(row.pk)))
|
|
174
|
-
.map((row) => ({ pk: Number(row.pk), score: Number(row.score), sent: kept.get(Number(row.pk)) ?? 0 }))
|
|
175
|
-
.sort((a, b) => a.score - b.score || b.sent - a.sent || b.pk - a.pk);
|
|
176
|
-
// Fewer than a page survived only because the top of the index was other accounts' rows.
|
|
177
|
-
if (survivors.length > limit || ranked.length < RANKED_FIRST * (limit + 1))
|
|
178
|
-
return page(context, survivors, limit);
|
|
179
|
-
return page(context, full(), limit);
|
|
180
|
-
};
|
|
181
|
-
/** A search of filters alone — `from:alice after:2026-01-01` — newest first (plan S5). */
|
|
182
|
-
export const matchFilters = (context, scope, { limit }) => {
|
|
183
|
-
const resolved = resolve(context, scope);
|
|
184
|
-
if (!resolved)
|
|
185
|
-
return { items: [], hasMore: false };
|
|
186
|
-
const { where, params } = rowConditions(resolved, scope, {
|
|
187
|
-
chat: resolved.chatPk !== undefined,
|
|
188
|
-
sender: resolved.senderPk !== undefined,
|
|
189
|
-
});
|
|
190
|
-
const rows = context.database
|
|
191
|
-
.prepare(`SELECT m.id AS pk FROM messages m CROSS JOIN chats c
|
|
192
|
-
WHERE c.id = m.chat_id AND ${where} ORDER BY m.sent_at DESC, m.id DESC LIMIT ?`)
|
|
193
|
-
.all(...params, limit + 1)
|
|
194
|
-
.map((row) => ({ pk: Number(row.pk), score: null }));
|
|
195
|
-
return page(context, rows, limit);
|
|
196
|
-
};
|
|
197
|
-
/** Step 5 (plan S4): the substring index over the raw text, newest first. Pieces under three letters are dropped. */
|
|
198
|
-
export const matchSubstring = (context, query, scope, { limit }) => {
|
|
199
|
-
const empty = { items: [], hasMore: false };
|
|
200
|
-
const pieces = (term) => (term.kind === "phrase" ? [term.words.join(" ")] : (term.text.match(/[\p{L}\p{N}]+/gu) ?? [])).filter((piece) => [...piece].length >= 3);
|
|
201
|
-
const groups = query.required
|
|
202
|
-
.map((group) => group.flatMap((term) => pieces(term).map(quoted).join(" AND ") || []).filter(Boolean))
|
|
203
|
-
.filter((group) => group.length > 0);
|
|
204
|
-
if (groups.length === 0)
|
|
205
|
-
return empty;
|
|
206
|
-
const resolved = resolve(context, scope);
|
|
207
|
-
if (!resolved)
|
|
208
|
-
return empty;
|
|
209
|
-
let match = groups.map((group) => `(${group.map((one) => `(${one})`).join(" OR ")})`).join(" AND ");
|
|
210
|
-
for (const term of query.excluded) {
|
|
211
|
-
const excluded = pieces(term).map(quoted).join(" AND ");
|
|
212
|
-
if (excluded)
|
|
213
|
-
match = `(${match}) NOT (${excluded})`;
|
|
214
|
-
}
|
|
215
|
-
const { where, params } = rowConditions(resolved, scope, {
|
|
216
|
-
chat: resolved.chatPk !== undefined,
|
|
217
|
-
sender: resolved.senderPk !== undefined,
|
|
218
|
-
});
|
|
219
|
-
const rows = context.database
|
|
220
|
-
.prepare(`SELECT m.id AS pk FROM messages_fts f CROSS JOIN messages m CROSS JOIN chats c
|
|
221
|
-
WHERE messages_fts MATCH ? AND m.id = f.rowid AND c.id = m.chat_id AND ${where}
|
|
222
|
-
ORDER BY m.sent_at DESC, m.id DESC LIMIT ?`)
|
|
223
|
-
.all(match, ...params, limit + 1)
|
|
224
|
-
.map((row) => ({ pk: Number(row.pk), score: null }));
|
|
225
|
-
return page(context, rows, limit);
|
|
226
|
-
};
|
|
227
2
|
const VOCABULARY = "SELECT term, doc FROM message_words_vocab WHERE col = 'normalized_text'";
|
|
228
3
|
/**
|
|
229
4
|
* The words the index knows, of those given: a whole word, or the beginning of one — otherwise
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"words.js","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"words.js","sourceRoot":"","sources":["../../../src/store/sqlite/words.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAgB3C,MAAM,UAAU,GAAG,yEAAyE,CAAA;AAE5F;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAgB,EAAE,KAAe,EAAe,EAAE;IACrF,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,sCAAsC,CAAC,CAAA;IACpF,OAAO,IAAI,GAAG,CACZ,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACpB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,YAAY,CAAC,KAAK,SAAS,CAAA;IAC5D,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,EAAE,QAAQ,EAAgB,EAC1B,MAAgB,EAChB,EAAE,QAAQ,EAAE,OAAO,EAAyC,EAC1B,EAAE;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,UAAU,GAAG,QAAQ;SACxB,OAAO,CACN;2BACqB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;0DACD,CACrD;SACA,GAAG,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,UAAU,eAAe,CAAC,CAAA;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -8,7 +8,7 @@ import { type TaskRelationsStore } from "./task-relations.js";
|
|
|
8
8
|
export declare const WORK_TASK_TYPES: readonly ["bug", "feature", "chore"];
|
|
9
9
|
export declare const TASK_TYPES: readonly ["bug", "feature", "chore", "question", "request", "mention", "promise"];
|
|
10
10
|
export declare const TASK_ROLES: readonly ["assignee", "reviewer", "watcher"];
|
|
11
|
-
export declare const TASK_EVENT_KINDS: readonly ["created", "status", "assigned", "unassigned", "due", "priority", "moved", "linked", "unlinked"];
|
|
11
|
+
export declare const TASK_EVENT_KINDS: readonly ["created", "status", "assigned", "unassigned", "due", "priority", "moved", "linked", "unlinked", "category"];
|
|
12
12
|
export type WorkTaskType = (typeof WORK_TASK_TYPES)[number];
|
|
13
13
|
export type TaskType = (typeof TASK_TYPES)[number];
|
|
14
14
|
export type TaskRole = (typeof TASK_ROLES)[number];
|
|
@@ -24,6 +24,8 @@ export interface TaskFields {
|
|
|
24
24
|
nextCheckAt?: Date | null;
|
|
25
25
|
status?: TaskState;
|
|
26
26
|
reason?: string | null;
|
|
27
|
+
/** A name the caller checked against its category list; every change is a `category` event. */
|
|
28
|
+
category?: string;
|
|
27
29
|
}
|
|
28
30
|
export interface NewWorkTask extends Omit<TaskFields, "status" | "reason"> {
|
|
29
31
|
/** `project:<id>` or the project's key. */
|
|
@@ -55,6 +57,10 @@ export interface TaskDetails {
|
|
|
55
57
|
closedAt: string | null;
|
|
56
58
|
reason: string | null;
|
|
57
59
|
verdict: TaskVerdict | null;
|
|
60
|
+
category: string | null;
|
|
61
|
+
/** Who works on it now; null when nobody does or the claim lapsed. */
|
|
62
|
+
claimedBy: string | null;
|
|
63
|
+
claimedUntil: string | null;
|
|
58
64
|
assignments: TaskAssignment[];
|
|
59
65
|
createdAt: string;
|
|
60
66
|
updatedAt: string;
|
|
@@ -81,6 +87,14 @@ export interface WorkTasks extends TaskRelationsStore {
|
|
|
81
87
|
limit?: number;
|
|
82
88
|
}): Promise<TaskDetails[]>;
|
|
83
89
|
events(id: string): Promise<TaskEvent[]>;
|
|
90
|
+
/**
|
|
91
|
+
* Takes an open task for `holder` until `until`, unless someone else holds it now — a lapsed claim holds nothing,
|
|
92
|
+
* and the holder's own claim is extended.
|
|
93
|
+
* One statement under the write lock, so two processes never both win.
|
|
94
|
+
*/
|
|
95
|
+
claim(id: string, holder: string, until: Date): Promise<TaskDetails>;
|
|
96
|
+
/** Gives a task back; only its holder or the owner may. */
|
|
97
|
+
release(id: string, holder: string): Promise<TaskDetails>;
|
|
84
98
|
}
|
|
85
99
|
export declare const recordTaskEvent: (database: CacheDatabase, task: number, actor: Actor | null, kind: TaskEvent["kind"], changes: TaskEvent["changes"], at: number) => void;
|
|
86
100
|
export declare const workTasksOver: (context: StoreContext) => WorkTasks;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-tasks.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/work-tasks.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAChG,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"work-tasks.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/work-tasks.ts"],"names":[],"mappings":"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"}
|