@leemour/cli-messaging 0.55.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.d.ts +1 -2
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +1 -2
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/messenger/archive-commands.d.ts +2 -10
  7. package/dist/cli/messenger/archive-commands.d.ts.map +1 -1
  8. package/dist/cli/messenger/archive-commands.js +12 -4
  9. package/dist/cli/messenger/archive-commands.js.map +1 -1
  10. package/dist/cli/messenger/backfill-command.d.ts +6 -3
  11. package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
  12. package/dist/cli/messenger/backfill-command.js +116 -93
  13. package/dist/cli/messenger/backfill-command.js.map +1 -1
  14. package/dist/cli/messenger/backfill-estimate.js +1 -1
  15. package/dist/cli/messenger/backfill-estimate.js.map +1 -1
  16. package/dist/cli/messenger/chats-command.d.ts +1 -30
  17. package/dist/cli/messenger/chats-command.d.ts.map +1 -1
  18. package/dist/cli/messenger/chats-command.js +11 -48
  19. package/dist/cli/messenger/chats-command.js.map +1 -1
  20. package/dist/cli/messenger/chats-members-command.d.ts.map +1 -1
  21. package/dist/cli/messenger/chats-members-command.js +1 -2
  22. package/dist/cli/messenger/chats-members-command.js.map +1 -1
  23. package/dist/cli/messenger/chats-read-command.d.ts +1 -14
  24. package/dist/cli/messenger/chats-read-command.d.ts.map +1 -1
  25. package/dist/cli/messenger/chats-read-command.js +2 -11
  26. package/dist/cli/messenger/chats-read-command.js.map +1 -1
  27. package/dist/cli/messenger/contacts-command.d.ts +1 -21
  28. package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
  29. package/dist/cli/messenger/contacts-command.js +7 -58
  30. package/dist/cli/messenger/contacts-command.js.map +1 -1
  31. package/dist/cli/messenger/download-command.js +3 -3
  32. package/dist/cli/messenger/download-command.js.map +1 -1
  33. package/dist/cli/messenger/guard-commands.d.ts +1 -1
  34. package/dist/cli/messenger/guard-commands.js +3 -3
  35. package/dist/cli/messenger/guard-commands.js.map +1 -1
  36. package/dist/cli/messenger/hearing-command.js +1 -1
  37. package/dist/cli/messenger/hearing-command.js.map +1 -1
  38. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  39. package/dist/cli/messenger/messages-command.js +9 -16
  40. package/dist/cli/messenger/messages-command.js.map +1 -1
  41. package/dist/cli/messenger/patience.d.ts +1 -1
  42. package/dist/cli/messenger/patience.d.ts.map +1 -1
  43. package/dist/cli/messenger/patience.js +1 -1
  44. package/dist/cli/messenger/patience.js.map +1 -1
  45. package/dist/cli/messenger/transcribe-command.js +2 -2
  46. package/dist/cli/messenger/transcribe-command.js.map +1 -1
  47. package/dist/conversations/link.d.ts +30 -0
  48. package/dist/conversations/link.d.ts.map +1 -0
  49. package/dist/conversations/link.js +93 -0
  50. package/dist/conversations/link.js.map +1 -0
  51. package/dist/domain/models.d.ts +2 -0
  52. package/dist/domain/models.d.ts.map +1 -1
  53. package/dist/mcp/instructions.js +1 -1
  54. package/dist/mcp/instructions.js.map +1 -1
  55. package/dist/mcp/tools/chats-read.d.ts.map +1 -1
  56. package/dist/mcp/tools/chats-read.js +6 -3
  57. package/dist/mcp/tools/chats-read.js.map +1 -1
  58. package/dist/mcp/tools/chats.d.ts.map +1 -1
  59. package/dist/mcp/tools/chats.js +12 -10
  60. package/dist/mcp/tools/chats.js.map +1 -1
  61. package/dist/mcp/tools/contacts.d.ts +1 -1
  62. package/dist/mcp/tools/contacts.d.ts.map +1 -1
  63. package/dist/mcp/tools/contacts.js +10 -7
  64. package/dist/mcp/tools/contacts.js.map +1 -1
  65. package/dist/sends/recipients.js +1 -1
  66. package/dist/sends/recipients.js.map +1 -1
  67. package/dist/services/chats.d.ts +47 -0
  68. package/dist/services/chats.d.ts.map +1 -0
  69. package/dist/services/chats.js +57 -0
  70. package/dist/services/chats.js.map +1 -0
  71. package/dist/services/index.d.ts +8 -0
  72. package/dist/services/index.d.ts.map +1 -1
  73. package/dist/services/index.js +9 -1
  74. package/dist/services/index.js.map +1 -1
  75. package/dist/services/people.d.ts +27 -0
  76. package/dist/services/people.d.ts.map +1 -0
  77. package/dist/services/people.js +60 -0
  78. package/dist/services/people.js.map +1 -0
  79. package/dist/speech/hearing.d.ts +6 -6
  80. package/dist/speech/hearing.d.ts.map +1 -1
  81. package/dist/speech/hearing.js +14 -40
  82. package/dist/speech/hearing.js.map +1 -1
  83. package/dist/store/index.d.ts +1 -1
  84. package/dist/store/index.d.ts.map +1 -1
  85. package/dist/store/index.js.map +1 -1
  86. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  87. package/dist/store/sqlite/manifest.js +4 -0
  88. package/dist/store/sqlite/manifest.js.map +1 -1
  89. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  90. package/dist/store/sqlite/migrations.generated.js +25 -0
  91. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  92. package/dist/store/sqlite/schema.d.ts +267 -0
  93. package/dist/store/sqlite/schema.d.ts.map +1 -1
  94. package/dist/store/sqlite/schema.js +36 -0
  95. package/dist/store/sqlite/schema.js.map +1 -1
  96. package/dist/store/store.d.ts +83 -3
  97. package/dist/store/store.d.ts.map +1 -1
  98. package/dist/store/store.js +239 -25
  99. package/dist/store/store.js.map +1 -1
  100. package/package.json +1 -1
package/README.md CHANGED
@@ -20,7 +20,7 @@ provider has travels in `providerMetadata`.
20
20
  | `.` | `Chat`, `Message`, `Contact`, `Page`… · `formatLocator` / `parseLocator` · `renderMessages` · `pickChat` / `pickPerson` |
21
21
  | `./store` | `openCache` — `node:sqlite` under Node, `bun:sqlite` under Bun, WAL and a busy timeout on both · `openStore` — the shared message store, every method async: one file for every messenger (`MESSAGING_STORE` overrides where), forward-only migrations with `min_compatible`, every sender an identity with a person of their own, edits kept as revisions, a message by its id, deletions kept as tombstones, trigram search · `find` — by text, by sender, or both; `together` for the chats where every sender wrote, `perChat` to cap each chat · `savePeople` and `people` — usernames and bot flags, and a `PeopleLookup` for `pickPerson` |
22
22
  | `./sends` | the send guard: read-only profiles, an allow-list of actions, a recipient list, an hourly limit, and a journal of every attempt that never holds the text; `newSendId` for a send's identity across retries |
23
- | `./cli` | the command skeleton: `run` (never throws, returns an exit code), the global flags, `settingsFor` (flag → environment → file → default, one strict file schema with each CLI's own fields), the profile as the first word, `--timeout` that closes what a command holds, paging, and run records: `--record` keeps a run's ids and timings (never content), a failure is kept unless `--no-record`, and `runsCommand` gives `runs list\|show\|path` · `configCommand(app, config)` shows and changes the settings with where each came from · `completeCommand(messenger, config)` gives shell completion, chat ids from the store and never a connection · `doctorCommand(messenger)` reports the installation's state from disk (the store, the account, sends, runs, the messenger's own checks), and connects only with `--online`; `doctor report create` writes that, the failed run and the recent sends to a file with every id a label · `skillCommand(app, url)` prints the CLI's own SKILL.md for an agent (`skill show`) · `commandsCommand(app)` describes every command as JSON, with `contract` (`CONTRACT`, the major version of the output types) and which commands write · the shared read commands: a CLI describes its messenger once (`Messenger`: its app, a `connect` that returns a `MessengerAdapter`, how `me` maps to a chat) and gets `accountCommand`, `chatsCommand` (`list`, `show`), `contactsCommand` (`list`, `show`) `recipientsCommand`, `sendsCommand`, `watchCommand` (new messages as they arrive, `--jsonl`, until Ctrl-C or `--timeout`; `--events` adds edits, deletions and reactions, each kept in the store), `backfillCommand` (a chat's history into the store, resumable, FloodWait-aware; `--background` makes it a detached job that `backfill list|status|cancel` follow; `--estimate` prices what is left from the store alone), `syncCommand` and `exportCommand` (what the store holds; a chat's messages out of it, as JSON or `--format markdown`), `inboxCommand` (other people's unread messages in every chat, or with `--new` what arrived since the last check — each message once, the point moved only by a run that printed; copied from max-cli), `serveCommand` (keeps the store current until stopped — one per profile by a lock file, catch-up on, started by a person, `server start` or a unit), `serverCommand` (`server start|stop|restart|status|logs`: `serve` in the background, as max-cli's `server`; `install|uninstall` add a systemd user unit or a launchd agent per profile, and `install` starts nothing), and `messagesCommand` (`list`, `show`, `context`, `search` over the store by any three letters inside a word, or `--regex`, `send`/`reply` through the send guard (`--silent`, `--no-preview`, `--md`, `--file` and `--photo` with the text as the caption, and `--at` to send later, with `scheduled` listing the queue), `edit` of the owner's own message, `forward` to another chat and `pin`/`unpin` through it too (the adapter's optional `edit`, `forward`, `pin` and `unpin`), and `delete` — at most 10, for the owner unless `--for-everyone`, never without `--allow-dangerous` · `reactionsCommand` (`add`, `remove`: the owner's reaction on a message, through the guard; the adapter's optional `react`) · `pollsCommand` (`show` a poll with its answer ids, `vote` by id or `--retract`, `close` the owner's own, `create` one — a vote guarded as a reaction, closing as an edit, a new poll as a message with a send id); a `msg:` locator names a message) — every read saved to the store, `--offline` answered from it, each call a run event · `mcpCommand(messenger)` serves the profile to an agent over MCP on stdin and stdout (copied from max-cli: one connection held for minutes, one call at a time, read tools named `<cli>_<command words>` answering what `--json` prints, `<cli>_status` without connecting; `--allow-send` adds `<cli>_messages_send`, `_edit`, `_forward`, `_pin`, `_unpin`, `<cli>_reactions_add`, `_remove`, `<cli>_polls_vote`, `_close` and `_create` (and `<cli>_polls_show` is a read tool) through the same guard as their commands, `--allow-mark-read` adds `<cli>_chats_read` (`chats read`: the other side sees it, so `--allow-send` does not imply it), `--allow-delete` adds `<cli>_messages_delete` (the owner's copy only, never for everyone), and `--confirm-send` shows the owner every send in a form from the server first), and `mcp config` prints the entry for a desktop client |
23
+ | `./cli` | the command skeleton: `run` (never throws, returns an exit code), the global flags, `settingsFor` (flag → environment → file → default, one strict file schema with each CLI's own fields), the profile as the first word, `--timeout` that closes what a command holds, paging, and run records: `--record` keeps a run's ids and timings (never content), a failure is kept unless `--no-record`, and `runsCommand` gives `runs list\|show\|path` · `configCommand(app, config)` shows and changes the settings with where each came from · `completeCommand(messenger, config)` gives shell completion, chat ids from the store and never a connection · `doctorCommand(messenger)` reports the installation's state from disk (the store, the account, sends, runs, the messenger's own checks), and connects only with `--online`; `doctor report create` writes that, the failed run and the recent sends to a file with every id a label · `skillCommand(app, url)` prints the CLI's own SKILL.md for an agent (`skill show`) · `commandsCommand(app)` describes every command as JSON, with `contract` (`CONTRACT`, the major version of the output types) and which commands write · the shared read commands: a CLI describes its messenger once (`Messenger`: its app, a `connect` that returns a `MessengerAdapter`, how `me` maps to a chat) and gets `accountCommand`, `chatsCommand` (`list`, `show`), `contactsCommand` (`list`, `show`) `recipientsCommand`, `sendsCommand`, `watchCommand` (new messages as they arrive, `--jsonl`, until Ctrl-C or `--timeout`; `--events` adds edits, deletions and reactions, each kept in the store), `storeCommand` (the local store: `store fetch` puts a chat's history into it, resumable, FloodWait-aware, `--since` to stop at a time, `--background` for a detached job that `store jobs list|show|cancel` follow, `--estimate` to only price what is left from the store alone; `store status` what it holds; `store export` a chat's messages out of it, as JSON or `--format markdown`), `inboxCommand` (other people's unread messages in every chat, or with `--new` what arrived since the last check — each message once, the point moved only by a run that printed; copied from max-cli), `serveCommand` (keeps the store current until stopped — one per profile by a lock file, catch-up on, started by a person, `server start` or a unit), `serverCommand` (`server start|stop|restart|status|logs`: `serve` in the background, as max-cli's `server`; `install|uninstall` add a systemd user unit or a launchd agent per profile, and `install` starts nothing), and `messagesCommand` (`list`, `show`, `context`, `search` over the store by any three letters inside a word, or `--regex`, `send` through the send guard (`--reply-to`, `--silent`, `--no-preview`, `--md`, `--file` and `--photo` with the text as the caption, and `--at` to send later, with `scheduled` listing the queue), `edit` of the owner's own message, `forward` to another chat and `pin`/`unpin` through it too (the adapter's optional `edit`, `forward`, `pin` and `unpin`), and `delete` — at most 10, for the owner unless `--for-everyone`, never without `--allow-dangerous` · `reactionsCommand` (`add`, `remove`: the owner's reaction on a message, through the guard; the adapter's optional `react`) · `pollsCommand` (`show` a poll with its answer ids, `vote` by id or `--retract`, `close` the owner's own, `create` one — a vote guarded as a reaction, closing as an edit, a new poll as a message with a send id); a `msg:` locator names a message) — every read saved to the store, `--offline` answered from it, each call a run event · `mcpCommand(messenger)` serves the profile to an agent over MCP on stdin and stdout (copied from max-cli: one connection held for minutes, one call at a time, read tools named `<cli>_<command words>` answering what `--json` prints, `<cli>_status` without connecting; `--allow-send` adds `<cli>_messages_send`, `_edit`, `_forward`, `_pin`, `_unpin`, `<cli>_reactions_add`, `_remove`, `<cli>_polls_vote`, `_close` and `_create` (and `<cli>_polls_show` is a read tool) through the same guard as their commands, `--allow-mark-read` adds `<cli>_chats_mark_read` (`chats mark-read`: the other side sees it, so `--allow-send` does not imply it), `--allow-delete` adds `<cli>_messages_delete` (the owner's copy only, never for everyone), and `--confirm-send` shows the owner every send in a form from the server first), and `mcp config` prints the entry for a desktop client |
24
24
 
25
25
  ⚠ **Errors are recognised by shape, not by class** (`isCliFailure`). A package linked during
26
26
  development brings its own copy of cli-core, and an error built by one copy is not an `instanceof`
@@ -6,8 +6,7 @@ export { type Closeable, withDeadline } from "./deadline.js";
6
6
  export { isCliFailure, isCommanderFailure } from "./failures.js";
7
7
  export { accountCommand } from "./messenger/account-command.js";
8
8
  export { accountFileFor, rememberAccount } from "./messenger/accounts.js";
9
- export { exportCommand, syncCommand } from "./messenger/archive-commands.js";
10
- export { backfillCommand } from "./messenger/backfill-command.js";
9
+ export { storeCommand } from "./messenger/archive-commands.js";
11
10
  export { chatsCommand } from "./messenger/chats-command.js";
12
11
  export { completeCommand } from "./messenger/complete-command.js";
13
12
  export { contactsCommand } from "./messenger/contacts-command.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -6,8 +6,7 @@ export { withDeadline } from "./deadline.js";
6
6
  export { isCliFailure, isCommanderFailure } from "./failures.js";
7
7
  export { accountCommand } from "./messenger/account-command.js";
8
8
  export { accountFileFor, rememberAccount } from "./messenger/accounts.js";
9
- export { exportCommand, syncCommand } from "./messenger/archive-commands.js";
10
- export { backfillCommand } from "./messenger/backfill-command.js";
9
+ export { storeCommand } from "./messenger/archive-commands.js";
11
10
  export { chatsCommand } from "./messenger/chats-command.js";
12
11
  export { completeCommand } from "./messenger/complete-command.js";
13
12
  export { contactsCommand } from "./messenger/contacts-command.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAGL,WAAW,EACX,aAAa,EACb,SAAS,EACT,OAAO,GACR,MAAM,cAAc,CAAA;AACrB,OAAO,EAAkB,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAA8D,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC3F,OAAO,EAAuB,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAW3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,EAAqB,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAgE,GAAG,EAAE,MAAM,cAAc,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAGL,gBAAgB,EAEhB,WAAW,GAEZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAyB,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,QAAQ,EACR,SAAS,EAET,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EAER,aAAa,EACb,KAAK,EAKL,WAAW,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,OAAO,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAGL,WAAW,EACX,aAAa,EACb,SAAS,EACT,OAAO,GACR,MAAM,cAAc,CAAA;AACrB,OAAO,EAAkB,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAA8D,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC3F,OAAO,EAAuB,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAW3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,EAAqB,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAgE,GAAG,EAAE,MAAM,cAAc,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAGL,gBAAgB,EAEhB,WAAW,GAEZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAyB,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,QAAQ,EACR,SAAS,EAET,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EAGL,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EAER,aAAa,EACb,KAAK,EAKL,WAAW,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,13 +1,5 @@
1
1
  import { Command } from "commander";
2
2
  import { type Messenger } from "./context.js";
3
- /**
4
- * What the local store holds, per chat — read from the store alone. Whether a backfill reached a
5
- * chat's very first message is not recorded, so it is not claimed: the stretches held are shown.
6
- */
7
- export declare const syncCommand: (messenger: Messenger) => Command;
8
- /**
9
- * One chat's stored messages, oldest first — `--jsonl` for a file or a pipe, one message per line,
10
- * `--format markdown` for a transcript a person reads.
11
- */
12
- export declare const exportCommand: (messenger: Messenger) => Command;
3
+ /** `store`: the local store of messages — what it holds, filling it, and reading it out. */
4
+ export declare const storeCommand: (messenger: Messenger) => Command;
13
5
  //# sourceMappingURL=archive-commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"archive-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/archive-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAE/D;;;GAGG;AACH,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,OAehD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,OAmC/C,CAAA"}
1
+ {"version":3,"file":"archive-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/archive-commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAE/D,4FAA4F;AAC5F,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OAMX,CAAA"}
@@ -3,12 +3,20 @@ import { Command } from "commander";
3
3
  import { toMarkdown } from "../../render/markdown.js";
4
4
  import { renderMessages } from "../../render/messages.js";
5
5
  import { storedChatId } from "../../services/index.js";
6
+ import { fetchCommand, jobsCommand } from "./backfill-command.js";
6
7
  import { messengerContext } from "./context.js";
8
+ /** `store`: the local store of messages — what it holds, filling it, and reading it out. */
9
+ export const storeCommand = (messenger) => new Command("store")
10
+ .description("the local store of messages")
11
+ .addCommand(statusCommand(messenger))
12
+ .addCommand(fetchCommand(messenger))
13
+ .addCommand(jobsCommand(messenger))
14
+ .addCommand(exportCommand(messenger));
7
15
  /**
8
- * What the local store holds, per chat — read from the store alone. Whether a backfill reached a
16
+ * What the local store holds, per chat — read from the store alone. Whether a fetch reached a
9
17
  * chat's very first message is not recorded, so it is not claimed: the stretches held are shown.
10
18
  */
11
- export const syncCommand = (messenger) => new Command("sync").description("what the local store holds").addCommand(new Command("status")
19
+ const statusCommand = (messenger) => new Command("status")
12
20
  .description("per chat: messages stored, the oldest and newest, and the stretches held completely")
13
21
  .argument("[chat]", messenger.chatArgument)
14
22
  .action(async function (chat) {
@@ -21,12 +29,12 @@ export const syncCommand = (messenger) => new Command("sync").description("what
21
29
  context.renderer.stream(rows);
22
30
  if (rows.length === 0)
23
31
  context.renderer.note("the store holds no messages for this profile yet");
24
- }));
32
+ });
25
33
  /**
26
34
  * One chat's stored messages, oldest first — `--jsonl` for a file or a pipe, one message per line,
27
35
  * `--format markdown` for a transcript a person reads.
28
36
  */
29
- export const exportCommand = (messenger) => new Command("export")
37
+ const exportCommand = (messenger) => new Command("export")
30
38
  .description("a chat's stored messages as JSON lines, oldest first; never asks the messenger")
31
39
  .argument("<chat>", messenger.chatArgument)
32
40
  .option("--format <format>", "markdown: a transcript with a heading per day, replies and forwards quoted")
@@ -1 +1 @@
1
- {"version":3,"file":"archive-commands.js","sourceRoot":"","sources":["../../../src/cli/messenger/archive-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"archive-commands.js","sourceRoot":"","sources":["../../../src/cli/messenger/archive-commands.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,11 @@ import { Command } from "commander";
2
2
  import { type Messenger } from "./context.js";
3
3
  /**
4
4
  * A chat's history into the store, newest to oldest, **resumable**: after every page the stretch it
5
- * covered is recorded, so a stop — Ctrl-C, `--timeout`, `--max`, a long FloodWait — loses nothing,
6
- * and the next run jumps over what is already held. Needs numeric message ids, which order the chat.
5
+ * covered is recorded, so a stop — Ctrl-C, `--timeout`, `--max`, `--since`, a long FloodWait — loses
6
+ * nothing, and the next run jumps over what is already held. Needs numeric message ids, which order
7
+ * the chat.
7
8
  */
8
- export declare const backfillCommand: (messenger: Messenger) => Command;
9
+ export declare const fetchCommand: (messenger: Messenger) => Command;
10
+ /** `store jobs`: the background runs `store fetch --background` started. */
11
+ export declare const jobsCommand: (messenger: Messenger) => Command;
9
12
  //# sourceMappingURL=backfill-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backfill-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,cAAc,CAAA;AAOtF;;;;GAIG;AACH,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,OA6HtD,CAAA"}
1
+ {"version":3,"file":"backfill-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBnC,OAAO,EAAE,KAAK,SAAS,EAA2C,MAAM,cAAc,CAAA;AAQtF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OA8F9C,CAAA;AAEN,4EAA4E;AAC5E,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,OA4ClD,CAAA"}
@@ -13,109 +13,124 @@ import { parseDuration } from "../settings.js";
13
13
  import { estimateBackfill } from "./backfill-estimate.js";
14
14
  import { jobsDir, listJobs, readJob, saveJob, spawnDetached, stateOf, updateJob, } from "./backfill-jobs.js";
15
15
  import { messengerContext } from "./context.js";
16
+ import { momentOf } from "./inbox.js";
16
17
  import { patiently, stopOnSignal } from "./patience.js";
17
18
  /** The most messages a provider hands out per history request — Telegram's cap. */
18
19
  const PAGE = 100;
19
20
  /**
20
21
  * A chat's history into the store, newest to oldest, **resumable**: after every page the stretch it
21
- * covered is recorded, so a stop — Ctrl-C, `--timeout`, `--max`, a long FloodWait — loses nothing,
22
- * and the next run jumps over what is already held. Needs numeric message ids, which order the chat.
22
+ * covered is recorded, so a stop — Ctrl-C, `--timeout`, `--max`, `--since`, a long FloodWait — loses
23
+ * nothing, and the next run jumps over what is already held. Needs numeric message ids, which order
24
+ * the chat.
23
25
  */
24
- export const backfillCommand = (messenger) => {
25
- const command = new Command("backfill")
26
- .description("fetch a chat's history into the local store, newest first; run it again to continue")
27
- .argument("<chat>", messenger.chatArgument)
28
- .option("--max <n>", "at most this many messages in this run", wholeNumber, 1000)
29
- .option("--pace <duration>", "pause between pages, to stay under the provider's limits", "1s")
30
- .option("--background", "run as a job that outlives this command; `backfill status` follows it")
31
- .option("--estimate", "how many messages, requests and minutes a full backfill would still take — from the store, no request")
32
- .action(async function (chat) {
33
- const { max, pace, background, estimate } = this.opts();
34
- const pauseMs = parseDuration(pace, "--pace");
35
- const context = messengerContext(this, messenger);
36
- if (estimate) {
37
- const answer = await context.withStore(async (store, account) => {
38
- const chatId = await storedChatId(messenger, chat, store, account);
39
- const newest = Number((await store.messages(account, chatId, { limit: 1 })).items[0]?.id);
40
- return {
41
- chat: chatId,
42
- ...estimateBackfill({
43
- ranges: await store.ranges(account, chatId),
44
- held: (await store.chatStats(account, chatId))[0]?.messages ?? 0,
45
- newest: Number.isSafeInteger(newest) ? newest : undefined,
46
- page: PAGE,
47
- max,
48
- pauseMs,
49
- }),
50
- };
51
- });
52
- context.renderer.result(answer);
53
- if (answer.missing === null) {
54
- context.renderer.note(`nothing held of this chat to measure by — \`${messenger.app.command} backfill ${chat} --max 100\` gives the estimate something to go on`);
55
- }
56
- else if (answer.missing > 0)
57
- context.renderer.note("an estimate: provider waits (FloodWait) come on top");
58
- return;
26
+ export const fetchCommand = (messenger) => new Command("fetch")
27
+ .description("fetch a chat's history into the local store, newest first; run it again to continue")
28
+ .argument("<chat>", messenger.chatArgument)
29
+ .option("--max <n>", "at most this many messages in this run", wholeNumber, 1000)
30
+ .option("--pause <duration>", "pause between pages, to stay under the provider's limits", "1s")
31
+ .option("--since <time>", "stop once it reaches messages older than this: ISO 8601, or 2h / 1d ago")
32
+ .option("--background", "run as a job that outlives this command; `store jobs show` follows it")
33
+ .option("--estimate", "only estimate how many messages, requests and minutes a full fetch would still take — from the store, no request")
34
+ .action(async function (chat) {
35
+ const { max, pause, since, background, estimate } = this.opts();
36
+ const pauseMs = parseDuration(pause, "--pause");
37
+ const sinceMs = since === undefined ? undefined : momentOf(since);
38
+ const context = messengerContext(this, messenger);
39
+ if (estimate) {
40
+ if (since !== undefined) {
41
+ throw new CliError("validation_error", "--estimate prices a full fetch; --since does not narrow it");
59
42
  }
60
- if (background) {
61
- startJob(this, context, messenger, { chat, max, pace });
62
- return;
43
+ const answer = await context.withStore(async (store, account) => {
44
+ const chatId = await storedChatId(messenger, chat, store, account);
45
+ const newest = Number((await store.messages(account, chatId, { limit: 1 })).items[0]?.id);
46
+ return {
47
+ chat: chatId,
48
+ ...estimateBackfill({
49
+ ranges: await store.ranges(account, chatId),
50
+ held: (await store.chatStats(account, chatId))[0]?.messages ?? 0,
51
+ newest: Number.isSafeInteger(newest) ? newest : undefined,
52
+ page: PAGE,
53
+ max,
54
+ pauseMs,
55
+ }),
56
+ };
57
+ });
58
+ context.renderer.result(answer);
59
+ if (answer.missing === null) {
60
+ context.renderer.note(`nothing held of this chat to measure by — \`${messenger.app.command} store fetch ${chat} --max 100\` gives the estimate something to go on`);
63
61
  }
64
- const jobs = jobsDir(messenger.app, context.env);
65
- const jobId = context.env[envName(messenger.app, "BACKFILL_JOB")];
66
- const stop = stopOnSignal(this);
67
- try {
68
- const result = await context.withMessenger(async (connection) => {
69
- const self = connection.self();
70
- if (self === null)
71
- throw new CliError("authentication_error", "not logged in — nothing to backfill for");
72
- const store = await openStore({ env: context.env });
73
- try {
74
- return await walk(connection, store, { provider: messenger.provider, account: self }, chat, {
75
- max,
76
- pauseMs,
77
- note: context.renderer.note,
78
- stop: stop.signal,
79
- onPage: (progress) => {
80
- if (jobId)
81
- updateJob(jobs, jobId, { progress });
82
- },
83
- });
84
- }
85
- finally {
86
- await store.close();
87
- }
88
- });
89
- if (jobId)
90
- updateJob(jobs, jobId, { finishedAt: new Date().toISOString(), result });
91
- context.renderer.result(result);
92
- }
93
- catch (error) {
94
- if (jobId) {
95
- const code = isCliFailure(error) ? error.code : "generic_failure";
96
- const message = error instanceof Error ? error.message : String(error);
97
- updateJob(jobs, jobId, { finishedAt: new Date().toISOString(), error: { code, message } });
62
+ else if (answer.missing > 0)
63
+ context.renderer.note("an estimate: provider waits (FloodWait) come on top");
64
+ return;
65
+ }
66
+ if (background) {
67
+ startJob(this, context, messenger, {
68
+ chat,
69
+ max,
70
+ pause,
71
+ ...(sinceMs === undefined ? {} : { since: new Date(sinceMs).toISOString() }),
72
+ });
73
+ return;
74
+ }
75
+ const jobs = jobsDir(messenger.app, context.env);
76
+ const jobId = context.env[envName(messenger.app, "BACKFILL_JOB")];
77
+ const stop = stopOnSignal(this);
78
+ try {
79
+ const result = await context.withMessenger(async (connection) => {
80
+ const self = connection.self();
81
+ if (self === null)
82
+ throw new CliError("authentication_error", "not logged in — nothing to fetch for");
83
+ const store = await openStore({ env: context.env });
84
+ try {
85
+ return await walk(connection, store, { provider: messenger.provider, account: self }, chat, {
86
+ max,
87
+ pauseMs,
88
+ ...(sinceMs === undefined ? {} : { sinceMs }),
89
+ note: context.renderer.note,
90
+ stop: stop.signal,
91
+ onPage: (progress) => {
92
+ if (jobId)
93
+ updateJob(jobs, jobId, { progress });
94
+ },
95
+ });
98
96
  }
99
- throw error;
100
- }
101
- finally {
102
- stop.release();
97
+ finally {
98
+ await store.close();
99
+ }
100
+ });
101
+ if (jobId)
102
+ updateJob(jobs, jobId, { finishedAt: new Date().toISOString(), result });
103
+ context.renderer.result(result);
104
+ }
105
+ catch (error) {
106
+ if (jobId) {
107
+ const code = isCliFailure(error) ? error.code : "generic_failure";
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ updateJob(jobs, jobId, { finishedAt: new Date().toISOString(), error: { code, message } });
103
110
  }
104
- });
111
+ throw error;
112
+ }
113
+ finally {
114
+ stop.release();
115
+ }
116
+ });
117
+ /** `store jobs`: the background runs `store fetch --background` started. */
118
+ export const jobsCommand = (messenger) => {
119
+ const command = new Command("jobs").description("background fetch jobs");
105
120
  command
106
121
  .command("list")
107
- .description("background backfill jobs, newest first")
122
+ .description("background fetch jobs, newest first")
108
123
  .action(function () {
109
124
  const context = messengerContext(this, messenger);
110
125
  const jobs = listJobs(jobsDir(messenger.app, context.env)).filter((job) => job.profile === context.profile);
111
126
  context.renderer.stream(jobs.map(brief));
112
127
  if (jobs.length === 0)
113
- context.renderer.note("no background backfill jobs for this profile");
128
+ context.renderer.note("no background fetch jobs for this profile");
114
129
  });
115
130
  command
116
- .command("status")
131
+ .command("show")
117
132
  .description("one background job — the newest when none is named — and what the store now holds of its chat")
118
- .argument("[job]", "the job id `backfill --background` printed")
133
+ .argument("[job]", "the job id `store fetch --background` printed")
119
134
  .action(async function (id) {
120
135
  const context = messengerContext(this, messenger);
121
136
  const job = findJob(messenger, context, id);
@@ -127,7 +142,7 @@ export const backfillCommand = (messenger) => {
127
142
  });
128
143
  command
129
144
  .command("cancel")
130
- .description("stop a running background job after its current page; a later backfill resumes where it stopped")
145
+ .description("stop a running background job after its current page; a later fetch resumes where it stopped")
131
146
  .argument("<job>", "the job id")
132
147
  .action(function (id) {
133
148
  const context = messengerContext(this, messenger);
@@ -157,16 +172,16 @@ const findJob = (messenger, context, id) => {
157
172
  const dir = jobsDir(messenger.app, context.env);
158
173
  const job = id === undefined ? listJobs(dir).find((each) => each.profile === context.profile) : readJob(dir, id);
159
174
  if (!job || job.profile !== context.profile) {
160
- throw new CliError("not_found", id === undefined ? "no background backfill jobs for this profile" : `no backfill job ${id} for this profile`);
175
+ throw new CliError("not_found", id === undefined ? "no background fetch jobs for this profile" : `no fetch job ${id} for this profile`);
161
176
  }
162
177
  return job;
163
178
  };
164
- const startJob = (command, context, messenger, { chat, max, pace }) => {
179
+ const startJob = (command, context, messenger, { chat, max, pause, since }) => {
165
180
  const { app } = messenger;
166
181
  const dir = jobsDir(app, context.env);
167
182
  const running = listJobs(dir).find((job) => job.profile === context.profile && job.chat === chat && stateOf(job) === "running");
168
183
  if (running) {
169
- throw new CliError("validation_error", `job ${running.id} is already backfilling ${chat} (PID ${running.pid}) — \`${app.command} backfill status ${running.id}\``);
184
+ throw new CliError("validation_error", `job ${running.id} is already fetching ${chat} (PID ${running.pid}) — \`${app.command} store jobs show ${running.id}\``);
170
185
  }
171
186
  const now = new Date();
172
187
  const id = `${now.toISOString().replace(/[-:]/g, "").slice(0, 15)}-${randomBytes(3).toString("hex")}`;
@@ -174,12 +189,14 @@ const startJob = (command, context, messenger, { chat, max, pace }) => {
174
189
  const log = join(dir, `${id}.log`);
175
190
  const { timeout } = command.optsWithGlobals();
176
191
  const argv = [
177
- "backfill",
192
+ "store",
193
+ "fetch",
178
194
  chat,
179
195
  "--max",
180
196
  String(max),
181
- "--pace",
182
- pace,
197
+ "--pause",
198
+ pause,
199
+ ...(since === undefined ? [] : ["--since", since]),
183
200
  "--json",
184
201
  ...(timeout ? ["--timeout", timeout] : []),
185
202
  ];
@@ -192,14 +209,15 @@ const startJob = (command, context, messenger, { chat, max, pace }) => {
192
209
  const pid = spawnJob(argv, env, log);
193
210
  saveJob(dir, { ...job, pid });
194
211
  context.renderer.result({ job: id, pid, chat, log });
195
- context.renderer.note(`started — \`${app.command} backfill status ${id}\` follows it`);
212
+ context.renderer.note(`started — \`${app.command} store jobs show ${id}\` follows it`);
196
213
  };
197
- const walk = async (connection, store, account, chat, { max, pauseMs, note, stop, onPage }) => {
214
+ const walk = async (connection, store, account, chat, { max, pauseMs, sinceMs, note, stop, onPage }) => {
198
215
  let before;
199
216
  let chatId;
200
217
  let top;
201
218
  let fetched = 0;
202
219
  let reachedStart = false;
220
+ let reachedSince = false;
203
221
  while (fetched < max && !stop.aborted) {
204
222
  const page = await patiently(() => connection.history(chat, { limit: PAGE, ...(before ? { before } : {}) }), note, stop);
205
223
  const first = page.items[0];
@@ -210,7 +228,7 @@ const walk = async (connection, store, account, chat, { max, pauseMs, note, stop
210
228
  chatId ??= first.chatId;
211
229
  const keys = page.items.map((message) => Number(message.id));
212
230
  if (keys.some((key) => !Number.isSafeInteger(key))) {
213
- throw new CliError("validation_error", "this messenger's message ids do not order a chat, so it cannot backfill");
231
+ throw new CliError("validation_error", "this messenger's message ids do not order a chat, so it cannot fetch its history");
214
232
  }
215
233
  const low = Math.min(...keys);
216
234
  top ??= Math.max(...keys);
@@ -222,6 +240,10 @@ const walk = async (connection, store, account, chat, { max, pauseMs, note, stop
222
240
  reachedStart = true;
223
241
  break;
224
242
  }
243
+ if (sinceMs !== undefined && page.items.some((message) => Date.parse(message.timestamp) < sinceMs)) {
244
+ reachedSince = true;
245
+ break;
246
+ }
225
247
  before = String(held.from);
226
248
  note(`${fetched} messages so far, back to ${held.from}`);
227
249
  await sleep(pauseMs, undefined, { signal: stop }).catch(() => { });
@@ -232,6 +254,7 @@ const walk = async (connection, store, account, chat, { max, pauseMs, note, stop
232
254
  fetched,
233
255
  complete: reachedStart && ranges.length === 1,
234
256
  ranges,
257
+ ...(reachedSince ? { reachedSince: true } : {}),
235
258
  ...(stop.aborted ? { stopped: true } : {}),
236
259
  };
237
260
  };
@@ -1 +1 @@
1
- {"version":3,"file":"backfill-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-command.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** A request's own round trip, on top of `--pace`: Telegram's history answers in a few hundred ms. */
1
+ /** A request's own round trip, on top of `--pause`: Telegram's history answers in a few hundred ms. */
2
2
  const REQUEST_MS = 400;
3
3
  /**
4
4
  * **What a full backfill would still cost, from the store alone** — no request. Message ids leave
@@ -1 +1 @@
1
- {"version":3,"file":"backfill-estimate.js","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-estimate.ts"],"names":[],"mappings":"AAcA,sGAAsG;AACtG,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,MAAM,EACN,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,GAAG,EACH,OAAO,GASR,EAAY,EAAE;IACb,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAEtG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,CAAA;IAC5E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IAC9E,OAAO;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;KAChE,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"backfill-estimate.js","sourceRoot":"","sources":["../../../src/cli/messenger/backfill-estimate.ts"],"names":[],"mappings":"AAcA,uGAAuG;AACvG,MAAM,UAAU,GAAG,GAAG,CAAA;AAEtB;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,MAAM,EACN,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,GAAG,EACH,OAAO,GASR,EAAY,EAAE;IACb,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;IACxB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAEtG,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;IACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,CAAA;IAC5E,qEAAqE;IACrE,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAA;IAC9E,OAAO;QACL,IAAI;QACJ,MAAM;QACN,OAAO;QACP,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;KAChE,CAAA;AACH,CAAC,CAAA"}
@@ -1,36 +1,7 @@
1
1
  import { Command } from "commander";
2
- import type { Chat, Page } from "../../domain/models.js";
2
+ import { type ChatFilter } from "../../services/index.js";
3
3
  import { type Messenger } from "./context.js";
4
- import { type MessengerAdapter } from "./port.js";
5
- /** How far back `chats events` looks without `--since`, as in max-cli. */
6
- export declare const EVENTS_DAYS = 7;
7
- /** `chats events` and its tool alike; `only` keeps the events named, as typed. */
8
- export declare const chatEventsOf: (adapter: MessengerAdapter, chat: string, { since, only }: {
9
- since?: string;
10
- only?: string;
11
- }, flag?: string) => Promise<import("../../domain/models.js").ChatEvents>;
12
- /** A filtered list searches the newest this many: paging through every dialog hit FLOOD_WAIT (tg handoff §4.14). */
13
- export declare const CHAT_SCAN = 200;
14
- export interface ChatFilter {
15
- search?: string;
16
- kind?: string;
17
- unread?: boolean;
18
- }
19
4
  /** Refuses a filter that would match nothing useful, before anything is asked. */
20
5
  export declare const checkedFilter: ({ search, kind, unread }: ChatFilter) => ChatFilter;
21
- /**
22
- * One page of the chats that pass `filter`, cut from the newest `CHAT_SCAN` — or from every stored
23
- * chat, `recorded`, offline. `partial` says there were older chats that were not searched.
24
- */
25
- export declare const filteredChats: (source: {
26
- adapter: MessengerAdapter;
27
- } | {
28
- recorded: Page<Chat>;
29
- }, filter: ChatFilter, { limit, offset }: {
30
- limit?: number;
31
- offset: number;
32
- }) => Promise<Page<Chat> & {
33
- partial: boolean;
34
- }>;
35
6
  export declare const chatsCommand: (messenger: Messenger) => Command;
36
7
  //# sourceMappingURL=chats-command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chats-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/chats-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,IAAI,EAAY,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAIlE,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAE/D,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE7D,0EAA0E;AAC1E,eAAO,MAAM,WAAW,IAAI,CAAA;AAE5B,kFAAkF;AAClF,eAAO,MAAM,YAAY,YACd,gBAAgB,QACnB,MAAM,mBACK;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,wEAOnD,CAAA;AAED,oHAAoH;AACpH,eAAO,MAAM,SAAS,MAAM,CAAA;AAG5B,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB;AAED,kFAAkF;AAClF,eAAO,MAAM,aAAa,6BAA8B,UAAU,KAAG,UAYpE,CAAA;AAUD;;;GAGG;AACH,eAAO,MAAM,aAAa,WAChB;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;CAAE,UACxD,UAAU,qBACC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACpD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAK3C,CAAA;AAKD,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OA2GnD,CAAA"}
1
+ {"version":3,"file":"chats-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/chats-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAa,KAAK,UAAU,EAAe,MAAM,yBAAyB,CAAA;AAIjF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAK/D,kFAAkF;AAClF,eAAO,MAAM,aAAa,6BAA8B,UAAU,KAAG,UAYpE,CAAA;AAED,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OAyFnD,CAAA"}