@leemour/cli-messaging 0.146.0 → 0.148.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/index.d.ts +1 -1
- package/dist/background/index.d.ts.map +1 -1
- package/dist/background/index.js +1 -1
- package/dist/background/index.js.map +1 -1
- package/dist/background/lock.d.ts +6 -0
- package/dist/background/lock.d.ts.map +1 -1
- package/dist/background/lock.js +31 -1
- package/dist/background/lock.js.map +1 -1
- package/dist/background/units.d.ts +1 -0
- package/dist/background/units.d.ts.map +1 -1
- package/dist/background/units.js +9 -0
- package/dist/background/units.js.map +1 -1
- package/dist/cli/bot/people.js +1 -1
- 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 +17 -3
- package/dist/cli/config-command.js.map +1 -1
- package/dist/cli/index.d.ts +6 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
- package/dist/cli/messenger/backfill-command.js +4 -0
- package/dist/cli/messenger/backfill-command.js.map +1 -1
- package/dist/cli/messenger/chats-command.d.ts.map +1 -1
- package/dist/cli/messenger/chats-command.js +2 -2
- package/dist/cli/messenger/chats-command.js.map +1 -1
- package/dist/cli/messenger/chats-members-command.d.ts.map +1 -1
- package/dist/cli/messenger/chats-members-command.js +35 -1
- package/dist/cli/messenger/chats-members-command.js.map +1 -1
- package/dist/cli/messenger/chats-stats-command.js +1 -1
- package/dist/cli/messenger/chats-stats-command.js.map +1 -1
- package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
- package/dist/cli/messenger/contacts-command.js +45 -1
- package/dist/cli/messenger/contacts-command.js.map +1 -1
- package/dist/cli/messenger/context.d.ts +10 -1
- package/dist/cli/messenger/context.d.ts.map +1 -1
- package/dist/cli/messenger/context.js +21 -2
- package/dist/cli/messenger/context.js.map +1 -1
- package/dist/cli/messenger/conversations-command.d.ts.map +1 -1
- package/dist/cli/messenger/conversations-command.js +6 -20
- package/dist/cli/messenger/conversations-command.js.map +1 -1
- package/dist/cli/messenger/doctor-command.d.ts +14 -0
- package/dist/cli/messenger/doctor-command.d.ts.map +1 -1
- package/dist/cli/messenger/doctor-command.js +117 -6
- package/dist/cli/messenger/doctor-command.js.map +1 -1
- package/dist/cli/messenger/flood-command.d.ts +8 -0
- package/dist/cli/messenger/flood-command.d.ts.map +1 -0
- package/dist/cli/messenger/flood-command.js +31 -0
- package/dist/cli/messenger/flood-command.js.map +1 -0
- package/dist/cli/messenger/flooded.d.ts +12 -0
- package/dist/cli/messenger/flooded.d.ts.map +1 -0
- package/dist/cli/messenger/flooded.js +77 -0
- package/dist/cli/messenger/flooded.js.map +1 -0
- package/dist/cli/messenger/inbox.d.ts +1 -0
- package/dist/cli/messenger/inbox.d.ts.map +1 -1
- package/dist/cli/messenger/inbox.js +4 -3
- package/dist/cli/messenger/inbox.js.map +1 -1
- package/dist/cli/messenger/mcp-command.d.ts +12 -0
- package/dist/cli/messenger/mcp-command.d.ts.map +1 -1
- package/dist/cli/messenger/mcp-command.js +49 -3
- package/dist/cli/messenger/mcp-command.js.map +1 -1
- package/dist/cli/messenger/messages-search-command.d.ts +2 -0
- package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-search-command.js +49 -16
- package/dist/cli/messenger/messages-search-command.js.map +1 -1
- package/dist/cli/messenger/messages-stats-command.d.ts +2 -0
- package/dist/cli/messenger/messages-stats-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-stats-command.js +35 -11
- package/dist/cli/messenger/messages-stats-command.js.map +1 -1
- package/dist/cli/messenger/points.d.ts +2 -1
- package/dist/cli/messenger/points.d.ts.map +1 -1
- package/dist/cli/messenger/points.js +1 -0
- package/dist/cli/messenger/points.js.map +1 -1
- package/dist/cli/messenger/port.d.ts +25 -1
- package/dist/cli/messenger/port.d.ts.map +1 -1
- package/dist/cli/messenger/port.js.map +1 -1
- package/dist/cli/messenger/private-files.d.ts +25 -0
- package/dist/cli/messenger/private-files.d.ts.map +1 -0
- package/dist/cli/messenger/private-files.js +28 -0
- package/dist/cli/messenger/private-files.js.map +1 -0
- package/dist/cli/messenger/replies-command.d.ts +5 -0
- package/dist/cli/messenger/replies-command.d.ts.map +1 -0
- package/dist/cli/messenger/replies-command.js +78 -0
- package/dist/cli/messenger/replies-command.js.map +1 -0
- package/dist/cli/messenger/report.d.ts +5 -0
- package/dist/cli/messenger/report.d.ts.map +1 -1
- package/dist/cli/messenger/report.js +25 -7
- package/dist/cli/messenger/report.js.map +1 -1
- package/dist/cli/messenger/review.d.ts.map +1 -1
- package/dist/cli/messenger/review.js +5 -3
- package/dist/cli/messenger/review.js.map +1 -1
- package/dist/cli/messenger/searches-command.d.ts +5 -0
- package/dist/cli/messenger/searches-command.d.ts.map +1 -0
- package/dist/cli/messenger/searches-command.js +117 -0
- package/dist/cli/messenger/searches-command.js.map +1 -0
- package/dist/cli/messenger/serve-command.d.ts.map +1 -1
- package/dist/cli/messenger/serve-command.js +87 -8
- package/dist/cli/messenger/serve-command.js.map +1 -1
- package/dist/cli/messenger/server-command.d.ts.map +1 -1
- package/dist/cli/messenger/server-command.js +25 -2
- package/dist/cli/messenger/server-command.js.map +1 -1
- package/dist/cli/messenger/store-maintenance-command.d.ts.map +1 -1
- package/dist/cli/messenger/store-maintenance-command.js +105 -4
- package/dist/cli/messenger/store-maintenance-command.js.map +1 -1
- package/dist/cli/messenger/tags-command.d.ts +5 -0
- package/dist/cli/messenger/tags-command.d.ts.map +1 -0
- package/dist/cli/messenger/tags-command.js +76 -0
- package/dist/cli/messenger/tags-command.js.map +1 -0
- package/dist/cli/messenger/watch-command.d.ts +4 -1
- package/dist/cli/messenger/watch-command.d.ts.map +1 -1
- package/dist/cli/messenger/watch-command.js +2 -1
- package/dist/cli/messenger/watch-command.js.map +1 -1
- package/dist/cli/store-settings.d.ts +26 -0
- package/dist/cli/store-settings.d.ts.map +1 -0
- package/dist/cli/store-settings.js +59 -0
- package/dist/cli/store-settings.js.map +1 -0
- package/dist/domain/models.d.ts +11 -1
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/tags.d.ts +6 -0
- package/dist/domain/tags.d.ts.map +1 -0
- package/dist/domain/tags.js +15 -0
- package/dist/domain/tags.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/kit/contract.d.ts.map +1 -1
- package/dist/kit/contract.js +6 -2
- package/dist/kit/contract.js.map +1 -1
- package/dist/mcp/personal.d.ts.map +1 -1
- package/dist/mcp/personal.js +2 -1
- package/dist/mcp/personal.js.map +1 -1
- package/dist/mcp/prompts.d.ts.map +1 -1
- package/dist/mcp/prompts.js +27 -8
- package/dist/mcp/prompts.js.map +1 -1
- package/dist/mcp/tool.d.ts +5 -0
- package/dist/mcp/tool.d.ts.map +1 -1
- package/dist/mcp/tool.js +12 -1
- package/dist/mcp/tool.js.map +1 -1
- package/dist/mcp/tools/chats.d.ts.map +1 -1
- package/dist/mcp/tools/chats.js +22 -4
- package/dist/mcp/tools/chats.js.map +1 -1
- package/dist/mcp/tools/contacts.d.ts.map +1 -1
- package/dist/mcp/tools/contacts.js +21 -1
- package/dist/mcp/tools/contacts.js.map +1 -1
- package/dist/mcp/tools/conversations.d.ts.map +1 -1
- package/dist/mcp/tools/conversations.js +2 -7
- package/dist/mcp/tools/conversations.js.map +1 -1
- package/dist/mcp/tools/inbox.d.ts +2 -0
- package/dist/mcp/tools/inbox.d.ts.map +1 -1
- package/dist/mcp/tools/inbox.js +27 -4
- package/dist/mcp/tools/inbox.js.map +1 -1
- package/dist/mcp/tools/messages.d.ts.map +1 -1
- package/dist/mcp/tools/messages.js +8 -2
- package/dist/mcp/tools/messages.js.map +1 -1
- package/dist/mcp/tools/review.d.ts.map +1 -1
- package/dist/mcp/tools/review.js +23 -2
- package/dist/mcp/tools/review.js.map +1 -1
- package/dist/mcp/tools/search.d.ts +6 -3
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +48 -11
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/searches.d.ts +4 -0
- package/dist/mcp/tools/searches.d.ts.map +1 -0
- package/dist/mcp/tools/searches.js +77 -0
- package/dist/mcp/tools/searches.js.map +1 -0
- package/dist/mcp/tools/tags.d.ts +4 -0
- package/dist/mcp/tools/tags.d.ts.map +1 -0
- package/dist/mcp/tools/tags.js +57 -0
- package/dist/mcp/tools/tags.js.map +1 -0
- package/dist/mcp/tools.d.ts +2 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +7 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/replies/decide.d.ts +37 -0
- package/dist/replies/decide.d.ts.map +1 -0
- package/dist/replies/decide.js +112 -0
- package/dist/replies/decide.js.map +1 -0
- package/dist/replies/dry-run.d.ts +51 -0
- package/dist/replies/dry-run.d.ts.map +1 -0
- package/dist/replies/dry-run.js +116 -0
- package/dist/replies/dry-run.js.map +1 -0
- package/dist/replies/rules.d.ts +139 -0
- package/dist/replies/rules.d.ts.map +1 -0
- package/dist/replies/rules.js +128 -0
- package/dist/replies/rules.js.map +1 -0
- package/dist/replies/serve.d.ts +44 -0
- package/dist/replies/serve.d.ts.map +1 -0
- package/dist/replies/serve.js +70 -0
- package/dist/replies/serve.js.map +1 -0
- package/dist/replies/state.d.ts +36 -0
- package/dist/replies/state.d.ts.map +1 -0
- package/dist/replies/state.js +67 -0
- package/dist/replies/state.js.map +1 -0
- package/dist/search/lucene/automaton.d.ts +5 -0
- package/dist/search/lucene/automaton.d.ts.map +1 -1
- package/dist/search/lucene/automaton.js +116 -0
- package/dist/search/lucene/automaton.js.map +1 -1
- package/dist/search/lucene/parser.d.ts.map +1 -1
- package/dist/search/lucene/parser.js +6 -2
- package/dist/search/lucene/parser.js.map +1 -1
- package/dist/search/lucene/registry.d.ts +5 -5
- package/dist/search/lucene/registry.d.ts.map +1 -1
- package/dist/search/lucene/registry.js +12 -7
- package/dist/search/lucene/registry.js.map +1 -1
- package/dist/search/search.d.ts.map +1 -1
- package/dist/search/search.js +4 -3
- package/dist/search/search.js.map +1 -1
- package/dist/sends/flood.d.ts +57 -0
- package/dist/sends/flood.d.ts.map +1 -0
- package/dist/sends/flood.js +90 -0
- package/dist/sends/flood.js.map +1 -0
- package/dist/sends/guard.d.ts +4 -1
- package/dist/sends/guard.d.ts.map +1 -1
- package/dist/sends/guard.js +9 -1
- package/dist/sends/guard.js.map +1 -1
- package/dist/sends/index.d.ts +1 -0
- package/dist/sends/index.d.ts.map +1 -1
- package/dist/sends/index.js +1 -0
- package/dist/sends/index.js.map +1 -1
- package/dist/sends/journal.d.ts +2 -0
- package/dist/sends/journal.d.ts.map +1 -1
- package/dist/sends/journal.js.map +1 -1
- package/dist/sends/permissions.d.ts +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js +13 -1
- package/dist/sends/permissions.js.map +1 -1
- package/dist/services/archive.d.ts.map +1 -1
- package/dist/services/archive.js +4 -2
- package/dist/services/archive.js.map +1 -1
- package/dist/services/chat-stats.d.ts +3 -0
- package/dist/services/chat-stats.d.ts.map +1 -1
- package/dist/services/chat-stats.js +3 -0
- package/dist/services/chat-stats.js.map +1 -1
- package/dist/services/chats.d.ts +13 -3
- package/dist/services/chats.d.ts.map +1 -1
- package/dist/services/chats.js +63 -2
- package/dist/services/chats.js.map +1 -1
- package/dist/services/deps.d.ts +2 -0
- package/dist/services/deps.d.ts.map +1 -1
- package/dist/services/deps.js.map +1 -1
- package/dist/services/inbox.d.ts +0 -2
- package/dist/services/inbox.d.ts.map +1 -1
- package/dist/services/inbox.js +13 -8
- package/dist/services/inbox.js.map +1 -1
- package/dist/services/index.d.ts +8 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +6 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/members-audit.d.ts +44 -0
- package/dist/services/members-audit.d.ts.map +1 -0
- package/dist/services/members-audit.js +111 -0
- package/dist/services/members-audit.js.map +1 -0
- package/dist/services/messages-search.d.ts +6 -4
- package/dist/services/messages-search.d.ts.map +1 -1
- package/dist/services/messages-search.js +24 -8
- package/dist/services/messages-search.js.map +1 -1
- package/dist/services/messages.d.ts +10 -3
- package/dist/services/messages.d.ts.map +1 -1
- package/dist/services/messages.js +48 -5
- package/dist/services/messages.js.map +1 -1
- package/dist/services/people.d.ts +7 -0
- package/dist/services/people.d.ts.map +1 -1
- package/dist/services/people.js +18 -0
- package/dist/services/people.js.map +1 -1
- package/dist/services/person-context.d.ts +69 -0
- package/dist/services/person-context.d.ts.map +1 -0
- package/dist/services/person-context.js +130 -0
- package/dist/services/person-context.js.map +1 -0
- package/dist/services/searches.d.ts +50 -0
- package/dist/services/searches.d.ts.map +1 -0
- package/dist/services/searches.js +127 -0
- package/dist/services/searches.js.map +1 -0
- package/dist/services/tags.d.ts +40 -0
- package/dist/services/tags.d.ts.map +1 -0
- package/dist/services/tags.js +56 -0
- package/dist/services/tags.js.map +1 -0
- 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/normalize.d.ts +2 -0
- package/dist/store/normalize.d.ts.map +1 -1
- package/dist/store/normalize.js +7 -5
- package/dist/store/normalize.js.map +1 -1
- package/dist/store/repair.d.ts +55 -0
- package/dist/store/repair.d.ts.map +1 -0
- package/dist/store/repair.js +313 -0
- package/dist/store/repair.js.map +1 -0
- package/dist/store/sqlite/accounts.d.ts.map +1 -1
- package/dist/store/sqlite/accounts.js +3 -1
- package/dist/store/sqlite/accounts.js.map +1 -1
- package/dist/store/sqlite/chats.d.ts.map +1 -1
- package/dist/store/sqlite/chats.js +3 -1
- package/dist/store/sqlite/chats.js.map +1 -1
- package/dist/store/sqlite/completeness.d.ts +10 -1
- package/dist/store/sqlite/completeness.d.ts.map +1 -1
- package/dist/store/sqlite/completeness.js +15 -3
- package/dist/store/sqlite/completeness.js.map +1 -1
- package/dist/store/sqlite/drizzle/bun.js +1 -1
- package/dist/store/sqlite/drizzle/core.d.ts +1 -1
- package/dist/store/sqlite/drizzle/core.d.ts.map +1 -1
- package/dist/store/sqlite/drizzle/core.js +3 -1
- package/dist/store/sqlite/drizzle/core.js.map +1 -1
- package/dist/store/sqlite/drizzle/node.js +1 -1
- package/dist/store/sqlite/drizzle/{shared-WZFJ4TMA.js → shared-IZ6QGA7N.js} +2 -1
- package/dist/store/sqlite/lucene.d.ts.map +1 -1
- package/dist/store/sqlite/lucene.js +17 -3
- package/dist/store/sqlite/lucene.js.map +1 -1
- package/dist/store/sqlite/manifest.d.ts.map +1 -1
- package/dist/store/sqlite/manifest.js +6 -0
- package/dist/store/sqlite/manifest.js.map +1 -1
- package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
- package/dist/store/sqlite/migrations.generated.js +53 -0
- package/dist/store/sqlite/migrations.generated.js.map +1 -1
- package/dist/store/sqlite/person-links.d.ts +18 -0
- package/dist/store/sqlite/person-links.d.ts.map +1 -0
- package/dist/store/sqlite/person-links.js +122 -0
- package/dist/store/sqlite/person-links.js.map +1 -0
- package/dist/store/sqlite/roster.d.ts +57 -0
- package/dist/store/sqlite/roster.d.ts.map +1 -0
- package/dist/store/sqlite/roster.js +179 -0
- package/dist/store/sqlite/roster.js.map +1 -0
- package/dist/store/sqlite/schema.d.ts +753 -0
- package/dist/store/sqlite/schema.d.ts.map +1 -1
- package/dist/store/sqlite/schema.js +99 -0
- package/dist/store/sqlite/schema.js.map +1 -1
- package/dist/store/sqlite/search-index.d.ts +3 -0
- package/dist/store/sqlite/search-index.d.ts.map +1 -1
- package/dist/store/sqlite/search-index.js +8 -6
- package/dist/store/sqlite/search-index.js.map +1 -1
- package/dist/store/sqlite/search.d.ts +2 -0
- package/dist/store/sqlite/search.d.ts.map +1 -1
- package/dist/store/sqlite/search.js +5 -0
- package/dist/store/sqlite/search.js.map +1 -1
- package/dist/store/sqlite/searches.d.ts +35 -0
- package/dist/store/sqlite/searches.d.ts.map +1 -0
- package/dist/store/sqlite/searches.js +77 -0
- package/dist/store/sqlite/searches.js.map +1 -0
- package/dist/store/sqlite/stems.d.ts +61 -0
- package/dist/store/sqlite/stems.d.ts.map +1 -0
- package/dist/store/sqlite/stems.js +215 -0
- package/dist/store/sqlite/stems.js.map +1 -0
- package/dist/store/sqlite/tags.d.ts +38 -0
- package/dist/store/sqlite/tags.d.ts.map +1 -0
- package/dist/store/sqlite/tags.js +85 -0
- package/dist/store/sqlite/tags.js.map +1 -0
- package/dist/store/store.d.ts +99 -1
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +115 -2
- package/dist/store/store.js.map +1 -1
- package/package.json +1 -1
- package/parity.json +254 -30
- /package/dist/store/sqlite/drizzle/{shared-WZFJ4TMA.js.map → shared-IZ6QGA7N.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { CHAT_KINDS,
|
|
2
|
+
import { CHAT_KINDS, checkedFilter, EVENTS_DAYS } from "../../services/chats.js";
|
|
3
3
|
import { momentOf } from "../../services/moment.js";
|
|
4
4
|
import { listed, renderPage, window, withPaging } from "../paging.js";
|
|
5
5
|
import { groupCommands } from "./admin-commands.js";
|
|
@@ -21,7 +21,7 @@ export const chatsCommand = (messenger) => {
|
|
|
21
21
|
const wanted = window(context.settings);
|
|
22
22
|
const page = await context.withServices((services) => services.chats.list(filter, wanted));
|
|
23
23
|
if (page.partial) {
|
|
24
|
-
context.renderer.note(
|
|
24
|
+
context.renderer.note("the messenger did not list every chat, and did not say how many it left out; one may match too");
|
|
25
25
|
}
|
|
26
26
|
renderPage(context, {
|
|
27
27
|
...page,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/chats-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"chats-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/chats-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats-members-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/chats-members-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"chats-members-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/chats-members-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAE/D,gFAAgF;AAChF,eAAO,MAAM,cAAc,cAAe,SAAS,KAAG,OA+FrD,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { annotate } from "@leemour/cli-core/commands";
|
|
2
2
|
import { Command } from "commander";
|
|
3
|
-
import {
|
|
3
|
+
import { AUDIT_BUDGET, AUDIT_MIN_SCORE, AUDIT_PAGE } from "../../services/members-audit.js";
|
|
4
|
+
import { positiveCount, renderPage, window, withPaging } from "../paging.js";
|
|
4
5
|
import { messengerContext } from "./context.js";
|
|
5
6
|
/** `chats members …`; a subcommand that changes membership belongs here too. */
|
|
6
7
|
export const membersCommand = (messenger) => {
|
|
@@ -13,6 +14,39 @@ export const membersCommand = (messenger) => {
|
|
|
13
14
|
const page = await context.withServices((services) => services.chats.members(chat, wanted));
|
|
14
15
|
renderPage(context, page);
|
|
15
16
|
}));
|
|
17
|
+
members.addCommand(new Command("audit")
|
|
18
|
+
.description("members that look like bots, each with its reasons — read from the member list and the local store; " +
|
|
19
|
+
"never one request per person, and it removes nobody")
|
|
20
|
+
.argument("<chat>", messenger.chatArgument)
|
|
21
|
+
.option("--budget <pages>", `at most this many pages of ${AUDIT_PAGE} members, a pause between them (default: ${AUDIT_BUDGET})`, positiveCount("--budget"))
|
|
22
|
+
.option("--min-score <n>", `only members scoring at least this; 1 lists everyone with a reason (default: ${AUDIT_MIN_SCORE})`, positiveCount("--min-score"))
|
|
23
|
+
.action(async function (chat) {
|
|
24
|
+
const context = messengerContext(this, messenger);
|
|
25
|
+
const { budget, minScore } = this.opts();
|
|
26
|
+
const audit = await context.withServices((services) => services.chats.audit(chat, {
|
|
27
|
+
...(budget === undefined ? {} : { budget }),
|
|
28
|
+
...(minScore === undefined ? {} : { minScore }),
|
|
29
|
+
}));
|
|
30
|
+
if (audit.more) {
|
|
31
|
+
const of = audit.participantsCount === null ? "" : ` of ${audit.participantsCount}`;
|
|
32
|
+
context.renderer.note(`${audit.read}${of} members read; a higher --budget reads more`);
|
|
33
|
+
}
|
|
34
|
+
if (audit.fetch)
|
|
35
|
+
context.renderer.note(`"never wrote" counts only stored messages — \`${audit.fetch}\` fetches the rest`);
|
|
36
|
+
if (audit.unknown.length > 0)
|
|
37
|
+
context.renderer.note(`not judged, nothing to judge by: ${audit.unknown.join(", ")}`);
|
|
38
|
+
if (context.format !== "pretty") {
|
|
39
|
+
context.renderer.result(audit);
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
context.renderer.stream(audit.items.map(({ id, name, username, score, reasons }) => ({
|
|
43
|
+
score,
|
|
44
|
+
id,
|
|
45
|
+
name: name ?? "",
|
|
46
|
+
username: username ?? "",
|
|
47
|
+
reasons: reasons.join(", "),
|
|
48
|
+
})));
|
|
49
|
+
}));
|
|
16
50
|
const add = annotate(new Command("add"), { mutates: true })
|
|
17
51
|
.description("add people; they are told")
|
|
18
52
|
.argument("<chat>", messenger.chatArgument)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats-members-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/chats-members-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"chats-members-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/chats-members-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/D,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAW,EAAE;IAC9D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAA;IAEvE,OAAO,CAAC,UAAU,CAChB,UAAU,CACR,IAAI,OAAO,CAAC,MAAM,CAAC;SAChB,WAAW,CAAC,qFAAqF,CAAC;SAClG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,CAC9C,CAAC,MAAM,CAAC,KAAK,WAA0B,IAAY;QAClD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3F,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CACH,CAAA;IAED,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,OAAO,CAAC;SACjB,WAAW,CACV,sGAAsG;QACpG,qDAAqD,CACxD;SACA,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC;SAC1C,MAAM,CACL,kBAAkB,EAClB,8BAA8B,UAAU,4CAA4C,YAAY,GAAG,EACnG,aAAa,CAAC,UAAU,CAAC,CAC1B;SACA,MAAM,CACL,iBAAiB,EACjB,gFAAgF,eAAe,GAAG,EAClG,aAAa,CAAC,aAAa,CAAC,CAC7B;SACA,MAAM,CAAC,KAAK,WAA0B,IAAY;QACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACjD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,EAA0C,CAAA;QAChF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACzB,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;YAC3C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;SAChD,CAAC,CACH,CAAA;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,KAAK,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,iBAAiB,EAAE,CAAA;YACnF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,GAAG,EAAE,6CAA6C,CAAC,CAAA;QACxF,CAAC;QACD,IAAI,KAAK,CAAC,KAAK;YACb,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,iDAAiD,KAAK,CAAC,KAAK,qBAAqB,CAAC,CAAA;QAC1G,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvF,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,MAAM,CACrB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,KAAK;YACL,EAAE;YACF,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,QAAQ,EAAE,QAAQ,IAAI,EAAE;YACxB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5B,CAAC,CAAC,CACJ,CAAA;IACH,CAAC,CAAC,CACL,CAAA;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACxD,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC;SAC1C,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC,CAAA;IACtD,IAAI,SAAS,CAAC,eAAe,KAAK,KAAK,EAAE,CAAC;QACxC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,8DAA8D,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,CAAC,UAAU,CAChB,GAAG,CAAC,MAAM,CAAC,KAAK,WAA0B,IAAY,EAAE,MAAgB;QACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAyB,CAAC,OAAO,KAAK,IAAI,CAAA;QACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CACrB,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAC9G,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IAED,OAAO,CAAC,UAAU,CAChB,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SAC/C,WAAW,CAAC,oCAAoC,CAAC;SACjD,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC;SAC1C,QAAQ,CAAC,aAAa,EAAE,0BAA0B,CAAC;SACnD,MAAM,CAAC,KAAK,WAA0B,IAAY,EAAE,MAAgB;QACnE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;QACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC/G,CAAC,CAAC,CACL,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -34,7 +34,7 @@ export const statsCommand = (messenger) => new Command("stats")
|
|
|
34
34
|
const lines = [
|
|
35
35
|
`${stats.since} – ${stats.until}`,
|
|
36
36
|
`messages ${stats.messages}, from ${stats.senders} people; replies ${stats.replies}, threads ${stats.threads}`,
|
|
37
|
-
`reactions ${stats.reactions}${stats.views === undefined ? "" : `, views ${stats.views}`}${stats.forwards === undefined ? "" : `, forwards ${stats.forwards}`}`,
|
|
37
|
+
`reactions ${stats.reactions}${stats.views === undefined ? "" : `, views ${stats.views}`}${stats.forwards === undefined ? "" : `, forwards ${stats.forwards}`}${stats.comments === undefined ? "" : `, comments ${stats.comments}`}`,
|
|
38
38
|
`questions ${questions.asked}, answered ${questions.answered}${minutes(questions.medianMinutesToAnswer, "answer")}`,
|
|
39
39
|
...(members
|
|
40
40
|
? [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chats-stats-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/chats-stats-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/D,MAAM,OAAO,GAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAW,EAAE,CAC5D,IAAI,OAAO,CAAC,OAAO,CAAC;KACjB,WAAW,CACV,iHAAiH;IAC/G,8FAA8F,CACjG;KACA,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,6BAA6B,WAAW,wBAAwB,CAAC;KAC/F,MAAM,CAAC,iBAAiB,EAAE,+DAA+D,EAAE,QAAQ,CAAC;KACpG,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;KAClE,MAAM,CAAC,KAAK,WAA0B,IAAY;IACjD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACjD,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,EAA+D,CAAA;IAC5G,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,EAAE,CACpD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;QACzB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;KAChD,CAAC,CACH,CAAA;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CACnB,KAAK,CAAC,YAAY,CAAC,KAAK,KAAK,UAAU;YACrC,CAAC,CAAC,mGAAmG;YACrG,CAAC,CAAC,0EAA0E,KAAK,CAAC,KAAK,eAAe,CACzG,CAAA;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAM;IACR,CAAC;IACD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;IACpC,MAAM,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,KAAK,EAAE;QACjC,YAAY,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,OAAO,oBAAoB,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,OAAO,EAAE;QAC9G,aAAa,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,KAAK,EAAE,GACtF,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,QAAQ,EAClE,EAAE;
|
|
1
|
+
{"version":3,"file":"chats-stats-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/chats-stats-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/contacts-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"contacts-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/contacts-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAE/D,yFAAyF;AACzF,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,OAoHtD,CAAA"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { CliError } from "@leemour/cli-core";
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { phoneOf } from "../../services/index.js";
|
|
4
|
+
import { momentOf } from "../../services/moment.js";
|
|
5
|
+
import { CONTEXT_BYTES, CONTEXT_MESSAGES } from "../../services/person-context.js";
|
|
4
6
|
import { readSecret } from "../../terminal/prompt.js";
|
|
5
|
-
import { renderPage, window, withPaging } from "../paging.js";
|
|
7
|
+
import { positiveCount, renderPage, window, withPaging } from "../paging.js";
|
|
6
8
|
import { contactWriteCommands } from "./admin-contacts-command.js";
|
|
7
9
|
import { messengerContext } from "./context.js";
|
|
8
10
|
/** People this account has a one-to-one chat with, as the people service counts them. */
|
|
@@ -28,6 +30,48 @@ export const contactsCommand = (messenger) => {
|
|
|
28
30
|
const context = messengerContext(this, messenger);
|
|
29
31
|
context.renderer.result(await context.withServices((services) => services.people.show(person)));
|
|
30
32
|
});
|
|
33
|
+
contacts
|
|
34
|
+
.command("context")
|
|
35
|
+
.description("what the store holds about one person, in every messenger linked to them: shared chats, the last " +
|
|
36
|
+
"messages each way, their recent messages, where others mentioned them — never connects")
|
|
37
|
+
.argument("<person>", "their id, @username, or part of their name")
|
|
38
|
+
.option("--limit <n>", `at most this many messages in each list; ${CONTEXT_MESSAGES} if not given`, positiveCount("--limit"))
|
|
39
|
+
.option("--since-time <time>", "nothing older than this ISO 8601 time, or 2h / 1d ago")
|
|
40
|
+
.action(async function (person) {
|
|
41
|
+
const { limit, sinceTime } = this.opts();
|
|
42
|
+
const context = messengerContext(this, messenger);
|
|
43
|
+
const found = await context.withServices((services) => services.people.context(person, {
|
|
44
|
+
messages: limit ?? CONTEXT_MESSAGES,
|
|
45
|
+
bytes: CONTEXT_BYTES,
|
|
46
|
+
...(sinceTime === undefined ? {} : { since: momentOf(sinceTime, "--since-time") }),
|
|
47
|
+
}));
|
|
48
|
+
for (const chat of found.notRead) {
|
|
49
|
+
context.renderer.note(`${chat.title ?? chat.chatId}: ${chat.reason === "not_fetched" ? "nothing" : "only part"} of it is stored — ` +
|
|
50
|
+
`\`${messenger.app.command} store fetch ${chat.chatId}\``);
|
|
51
|
+
}
|
|
52
|
+
if (found.hasMore)
|
|
53
|
+
context.renderer.note("cut at --limit; a larger one shows more");
|
|
54
|
+
context.renderer.result(found);
|
|
55
|
+
});
|
|
56
|
+
contacts
|
|
57
|
+
.command("link")
|
|
58
|
+
.description("record that two people in the store are one person — the same name is never enough")
|
|
59
|
+
.argument("<person>", "their id, @username, or part of their name")
|
|
60
|
+
.argument("<other>", "the same in another messenger of the store, as <messenger>:<person> — max:Ana")
|
|
61
|
+
.action(async function (person, other) {
|
|
62
|
+
const context = messengerContext(this, messenger);
|
|
63
|
+
const linked = await context.withServices((services) => services.people.link(person, other));
|
|
64
|
+
context.renderer.result(linked);
|
|
65
|
+
context.renderer.success(`${linked.identities.length} identities are now one person`);
|
|
66
|
+
});
|
|
67
|
+
contacts
|
|
68
|
+
.command("unlink")
|
|
69
|
+
.description("undo contacts link for one identity: it is a person of its own again")
|
|
70
|
+
.argument("<person>", "their id, @username, or part of their name; <messenger>:<person> for another messenger")
|
|
71
|
+
.action(async function (person) {
|
|
72
|
+
const context = messengerContext(this, messenger);
|
|
73
|
+
context.renderer.result(await context.withServices((services) => services.people.unlink(person)));
|
|
74
|
+
});
|
|
31
75
|
/**
|
|
32
76
|
* ⚠ **The number is asked for or piped, never an argument**: argv is read by `ps` and kept by shell
|
|
33
77
|
* history, and a phone number is personal data.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contacts-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/contacts-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"contacts-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/contacts-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
import type { AdminRight, Chat, GroupSettings, Id, Provider } from "../../domain/models.js";
|
|
3
3
|
import { type SendGuard } from "../../sends/guard.js";
|
|
4
|
+
import { type PermissionKey } from "../../sends/permissions.js";
|
|
4
5
|
import { type Override, type Services } from "../../services/index.js";
|
|
5
6
|
import type { OpenRecognizer } from "../../speech/transcribe.js";
|
|
6
7
|
import { type AccountKey, type DeletionScope, type MessageStore } from "../../store/store.js";
|
|
@@ -21,6 +22,8 @@ export interface ConnectOptions {
|
|
|
21
22
|
export interface Fetching {
|
|
22
23
|
/** Messages per history request. */
|
|
23
24
|
page: number;
|
|
25
|
+
/** The most one history request returns, where the messenger is known to cap it; a larger `--page-size` is refused. */
|
|
26
|
+
maxPageSize?: number;
|
|
24
27
|
/** The least wait between requests, as `--pause` takes it. */
|
|
25
28
|
pause: string;
|
|
26
29
|
/** Each wait drawn between `pause` and twice that, as a person scrolls rather than a clock. */
|
|
@@ -122,9 +125,15 @@ export interface MessengerContext extends BaseContext {
|
|
|
122
125
|
* the reads answer saved to the store. `close` closes the connection and the store it opened. One
|
|
123
126
|
* function, so a command and an MCP tool call save and record exactly alike.
|
|
124
127
|
*/
|
|
125
|
-
export declare const connected: (connection: MessengerAdapter, { app, provider, deletedWithoutChat }: Pick<Messenger, "app" | "provider" | "deletedWithoutChat">, { settings, env, renderer }: Pick<BaseContext, "settings" | "env" | "renderer">, events: EventSink) => {
|
|
128
|
+
export declare const connected: (connection: MessengerAdapter, { app, provider, name, deletedWithoutChat }: Pick<Messenger, "app" | "provider" | "name" | "deletedWithoutChat">, { settings, env, renderer }: Pick<BaseContext, "settings" | "env" | "renderer">, events: EventSink) => {
|
|
126
129
|
adapter: MessengerAdapter;
|
|
127
130
|
close: () => Promise<void>;
|
|
128
131
|
};
|
|
132
|
+
/**
|
|
133
|
+
* A write to the local store alone. `deny` already stopped the command (`messengerContext`); `readonly`
|
|
134
|
+
* stops this write too. There is no question to put to the owner here, so `ask` refuses rather than
|
|
135
|
+
* writing unasked.
|
|
136
|
+
*/
|
|
137
|
+
export declare const refuseLocalWrite: (context: MessengerContext, command: string, permission: PermissionKey) => void;
|
|
129
138
|
export declare const messengerContext: (command: Command, messenger: Messenger) => MessengerContext;
|
|
130
139
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CliError } from "@leemour/cli-core";
|
|
2
2
|
import { servingProfiles } from "../../background/lock.js";
|
|
3
|
+
import { FloodMemory, floodPathFor } from "../../sends/flood.js";
|
|
3
4
|
import { guardFor } from "../../sends/guard.js";
|
|
4
5
|
import { keyForCommand, levelFor } from "../../sends/permissions.js";
|
|
5
6
|
import { OFFLINE, servicesFor } from "../../services/index.js";
|
|
@@ -8,6 +9,7 @@ import { baseContext, environmentOf } from "../context.js";
|
|
|
8
9
|
import { knownPermissionKeys, unknownPermissionKeys } from "../permission-keys.js";
|
|
9
10
|
import { recalledAccount, rememberAccount } from "./accounts.js";
|
|
10
11
|
import { terminalAsker } from "./ask.js";
|
|
12
|
+
import { flooded } from "./flooded.js";
|
|
11
13
|
import { observed } from "./observed.js";
|
|
12
14
|
import { stored } from "./stored.js";
|
|
13
15
|
/** Long enough for a local write; a store that hangs must not keep the process alive. */
|
|
@@ -32,11 +34,12 @@ const settled = async (pending, ms) => {
|
|
|
32
34
|
* the reads answer saved to the store. `close` closes the connection and the store it opened. One
|
|
33
35
|
* function, so a command and an MCP tool call save and record exactly alike.
|
|
34
36
|
*/
|
|
35
|
-
export const connected = (connection, { app, provider, deletedWithoutChat }, { settings, env, renderer }, events) => {
|
|
37
|
+
export const connected = (connection, { app, provider, name, deletedWithoutChat }, { settings, env, renderer }, events) => {
|
|
36
38
|
const self = connection.self();
|
|
37
39
|
if (self !== null)
|
|
38
40
|
rememberAccount(app, settings.profile, self, env);
|
|
39
|
-
const
|
|
41
|
+
const memory = new FloodMemory(floodPathFor(app, settings.profile, env));
|
|
42
|
+
const adapter = observed(flooded(connection, memory, { name: name ?? app.command, warn: renderer.warn }), events);
|
|
40
43
|
let store;
|
|
41
44
|
const pending = new Set();
|
|
42
45
|
return {
|
|
@@ -107,6 +110,20 @@ const refuseDenied = (command, settings) => {
|
|
|
107
110
|
throw new CliError("permission_error", `profile ${settings.profile} denies ${key} (permissions.${named} is deny, from the ` +
|
|
108
111
|
`${settings.permissionSources[named ?? ""] ?? "default"})`, { permission: key });
|
|
109
112
|
};
|
|
113
|
+
/**
|
|
114
|
+
* A write to the local store alone. `deny` already stopped the command (`messengerContext`); `readonly`
|
|
115
|
+
* stops this write too. There is no question to put to the owner here, so `ask` refuses rather than
|
|
116
|
+
* writing unasked.
|
|
117
|
+
*/
|
|
118
|
+
export const refuseLocalWrite = (context, command, permission) => {
|
|
119
|
+
const { settings } = context;
|
|
120
|
+
const { level, key } = levelFor(settings.permissions, permission);
|
|
121
|
+
if (level === "allow")
|
|
122
|
+
return;
|
|
123
|
+
throw new CliError(level === "ask" ? "confirmation_required" : "permission_error", `profile ${settings.profile} does not let ${permission} write (permissions.${key} is ${level}, from the ` +
|
|
124
|
+
`${settings.permissionSources[key ?? ""] ?? "default"}); to allow it: ` +
|
|
125
|
+
`${command} ${settings.profile} config set permissions.${permission} allow`, { permission });
|
|
126
|
+
};
|
|
110
127
|
export const messengerContext = (command, messenger) => {
|
|
111
128
|
const { app, provider } = messenger;
|
|
112
129
|
const base = baseContext(command, messenger.resolveSettings);
|
|
@@ -159,6 +176,8 @@ export const messengerContext = (command, messenger) => {
|
|
|
159
176
|
env: base.env,
|
|
160
177
|
offline: base.settings.offline,
|
|
161
178
|
reads: messenger.history ?? "server",
|
|
179
|
+
// Turning recording off by name (--no-record, or record: false) keeps no search history either.
|
|
180
|
+
history: base.settings.keepFailedRuns,
|
|
162
181
|
guard,
|
|
163
182
|
connection: async () => {
|
|
164
183
|
if (base.settings.offline)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/messenger/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,QAAQ,EAAkB,MAAM,sBAAsB,CAAA;AAC/D,OAAO,EAAE,aAAa,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/cli/messenger/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversations-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/conversations-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"conversations-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/conversations-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmBnC,OAAO,EAAE,KAAK,SAAS,EAA6D,MAAM,cAAc,CAAA;AAGxG;;;GAGG;AACH,eAAO,MAAM,oBAAoB,cAAe,SAAS,KAAG,OAic3D,CAAA;AAyLD,8EAA8E;AAC9E,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OAwB9C,CAAA"}
|
|
@@ -3,14 +3,13 @@ import { Command } from "commander";
|
|
|
3
3
|
import { DEFAULT_TEXT_MODEL } from "../../embeddings/models.js";
|
|
4
4
|
import { isLocal, remoteModel } from "../../embeddings/remote.js";
|
|
5
5
|
import { renderMessages } from "../../render/messages.js";
|
|
6
|
-
import { levelFor } from "../../sends/permissions.js";
|
|
7
6
|
import { BATCH_SIZE } from "../../services/conversations.js";
|
|
8
7
|
import { REFRESH_BOUNDS, } from "../../services/embeddings.js";
|
|
9
8
|
import { momentOf } from "../../services/moment.js";
|
|
10
9
|
import { embeddingKeys } from "../embedding-keys.js";
|
|
11
10
|
import { positiveCount, renderList } from "../paging.js";
|
|
12
11
|
import { answerOf as askOwner } from "./ask.js";
|
|
13
|
-
import { messengerContext } from "./context.js";
|
|
12
|
+
import { messengerContext, refuseLocalWrite } from "./context.js";
|
|
14
13
|
import { readAll } from "./stdin.js";
|
|
15
14
|
/**
|
|
16
15
|
* `conversations`: the threads inside a group chat, found by rules over the stored messages — replies,
|
|
@@ -162,7 +161,7 @@ export const conversationsCommand = (messenger) => {
|
|
|
162
161
|
const model = choiceOf(options, messenger, context);
|
|
163
162
|
if (options.refresh) {
|
|
164
163
|
localOnly(model, "--refresh");
|
|
165
|
-
|
|
164
|
+
refuseLocalWrite(context, messenger.app.command, EMBED_KEY);
|
|
166
165
|
}
|
|
167
166
|
const { limit } = context.settings;
|
|
168
167
|
const { found, refreshed } = await context.withServices(async (services) => {
|
|
@@ -268,7 +267,7 @@ export const conversationsCommand = (messenger) => {
|
|
|
268
267
|
.action(async function () {
|
|
269
268
|
const { batch } = this.opts();
|
|
270
269
|
const context = messengerContext(this, messenger);
|
|
271
|
-
|
|
270
|
+
refuseLocalWrite(context, messenger.app.command, LINKS_KEY);
|
|
272
271
|
const answer = answerOf(await readAll(context.stdin));
|
|
273
272
|
const stored = await context.withServices((services) => services.conversations.addAnswers(batch, answer));
|
|
274
273
|
if (context.format === "pretty") {
|
|
@@ -285,7 +284,7 @@ export const conversationsCommand = (messenger) => {
|
|
|
285
284
|
.action(async function () {
|
|
286
285
|
const { chat, model } = this.opts();
|
|
287
286
|
const context = messengerContext(this, messenger);
|
|
288
|
-
|
|
287
|
+
refuseLocalWrite(context, messenger.app.command, LINKS_KEY);
|
|
289
288
|
const cleared = await context.withServices((services) => services.conversations.clearAnswers(chat, model));
|
|
290
289
|
if (context.format === "pretty")
|
|
291
290
|
context.streams.data(`${cleared.cleared} answers dropped\n`);
|
|
@@ -305,7 +304,7 @@ export const conversationsCommand = (messenger) => {
|
|
|
305
304
|
embed.action(async function () {
|
|
306
305
|
const options = this.optsWithGlobals();
|
|
307
306
|
const context = messengerContext(this, messenger);
|
|
308
|
-
|
|
307
|
+
refuseLocalWrite(context, messenger.app.command, EMBED_KEY);
|
|
309
308
|
const model = choiceOf(options, messenger, context);
|
|
310
309
|
if (options.chat === undefined) {
|
|
311
310
|
localOnly(model, "embedding without --chat");
|
|
@@ -367,7 +366,7 @@ export const conversationsCommand = (messenger) => {
|
|
|
367
366
|
const options = this.optsWithGlobals();
|
|
368
367
|
const chat = chatOf(options);
|
|
369
368
|
const context = messengerContext(this, messenger);
|
|
370
|
-
|
|
369
|
+
refuseLocalWrite(context, messenger.app.command, EMBED_KEY);
|
|
371
370
|
const given = options.model !== undefined || options.provider !== undefined || options.baseUrl !== undefined;
|
|
372
371
|
const model = given ? choiceOf(options, messenger, context, { needKey: false }) : undefined;
|
|
373
372
|
const cleared = await context.withServices((services) => services.embeddings.clear(chat, model));
|
|
@@ -379,19 +378,6 @@ export const conversationsCommand = (messenger) => {
|
|
|
379
378
|
conversations.addCommand(embed);
|
|
380
379
|
return conversations;
|
|
381
380
|
};
|
|
382
|
-
/**
|
|
383
|
-
* `deny` already stopped the command (`messengerContext`); `readonly` stops this write too. There is no
|
|
384
|
-
* question to put to the owner here, so `ask` refuses rather than writing unasked.
|
|
385
|
-
*/
|
|
386
|
-
const writable = (context, command, permission = LINKS_KEY) => {
|
|
387
|
-
const { settings } = context;
|
|
388
|
-
const { level, key } = levelFor(settings.permissions, permission);
|
|
389
|
-
if (level === "allow")
|
|
390
|
-
return;
|
|
391
|
-
throw new CliError(level === "ask" ? "confirmation_required" : "permission_error", `profile ${settings.profile} does not let ${permission} write (permissions.${key} is ${level}, from the ` +
|
|
392
|
-
`${settings.permissionSources[key ?? ""] ?? "default"}); to allow it: ` +
|
|
393
|
-
`${command} ${settings.profile} config set permissions.${permission} allow`, { permission });
|
|
394
|
-
};
|
|
395
381
|
/**
|
|
396
382
|
* `embed` and its subcommands all take `--chat` and the model options, and commander gives each value to
|
|
397
383
|
* the group: a subcommand reads them with the group's (`optsWithGlobals`) and checks `--chat` itself.
|