@leemour/cli-messaging 0.37.0 → 0.39.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 (40) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/index.d.ts +1 -0
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +1 -0
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/cli/messenger/inbox.d.ts +16 -1
  7. package/dist/cli/messenger/inbox.d.ts.map +1 -1
  8. package/dist/cli/messenger/inbox.js +4 -4
  9. package/dist/cli/messenger/inbox.js.map +1 -1
  10. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  11. package/dist/cli/messenger/messages-command.js +2 -0
  12. package/dist/cli/messenger/messages-command.js.map +1 -1
  13. package/dist/cli/messenger/messages-forward-command.d.ts +14 -0
  14. package/dist/cli/messenger/messages-forward-command.d.ts.map +1 -0
  15. package/dist/cli/messenger/messages-forward-command.js +25 -0
  16. package/dist/cli/messenger/messages-forward-command.js.map +1 -0
  17. package/dist/cli/messenger/port.d.ts +6 -0
  18. package/dist/cli/messenger/port.d.ts.map +1 -1
  19. package/dist/cli/messenger/port.js.map +1 -1
  20. package/dist/cli/messenger/review.d.ts +44 -0
  21. package/dist/cli/messenger/review.d.ts.map +1 -0
  22. package/dist/cli/messenger/review.js +183 -0
  23. package/dist/cli/messenger/review.js.map +1 -0
  24. package/dist/domain/models.d.ts +25 -0
  25. package/dist/domain/models.d.ts.map +1 -1
  26. package/dist/mcp/prompts.d.ts +1 -1
  27. package/dist/mcp/prompts.d.ts.map +1 -1
  28. package/dist/mcp/prompts.js +27 -1
  29. package/dist/mcp/prompts.js.map +1 -1
  30. package/dist/mcp/tools/messages-actions.d.ts.map +1 -1
  31. package/dist/mcp/tools/messages-actions.js +24 -0
  32. package/dist/mcp/tools/messages-actions.js.map +1 -1
  33. package/dist/mcp/tools/review.d.ts +4 -0
  34. package/dist/mcp/tools/review.d.ts.map +1 -0
  35. package/dist/mcp/tools/review.js +27 -0
  36. package/dist/mcp/tools/review.js.map +1 -0
  37. package/dist/mcp/tools.d.ts.map +1 -1
  38. package/dist/mcp/tools.js +2 -0
  39. package/dist/mcp/tools.js.map +1 -1
  40. 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 or a service unit), `serviceCommand` (`service install|uninstall|start|stop|status|logs`: `serve` as a systemd user unit or a launchd agent per profile; `install` writes the file and 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, and `edit` of the owner's own message through it too (the adapter's optional `edit`); 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` and `<cli>_messages_edit` through the same guard as their commands, 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), `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 or a service unit), `serviceCommand` (`service install|uninstall|start|stop|status|logs`: `serve` as a systemd user unit or a launchd agent per profile; `install` writes the file and 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, `edit` of the owner's own message and `forward` to another chat through it too (the adapter's optional `edit` and `forward`); 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`, `<cli>_messages_edit` and `<cli>_messages_forward` through the same guard as their commands, 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`
@@ -18,6 +18,7 @@ export { INBOX_CHATS, inboxCommand, momentOf, newIn, unreadIn } from "./messenge
18
18
  export { type McpEnvironment, mcpCommand, serverEntry } from "./messenger/mcp-command.js";
19
19
  export { messagesCommand } from "./messenger/messages-command.js";
20
20
  export type { Download, MessengerAdapter, RemoteFile, SendOptions, Sent, Transcript } from "./messenger/port.js";
21
+ export { REVIEW_CHATS, reviewCommand, reviewIn, unanswered } from "./messenger/review.js";
21
22
  export { serveCommand } from "./messenger/serve-command.js";
22
23
  export { type ServiceSystem, serviceCommand } from "./messenger/service-command.js";
23
24
  export { watchCommand } from "./messenger/watch-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":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,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,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,WAAW,EACX,aAAa,EACb,SAAS,EACT,OAAO,GACR,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,KAAK,SAAS,EAAE,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,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAE,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,EAAE,KAAK,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACzF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AACjE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACnF,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,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,gBAAgB,EAChB,KAAK,YAAY,EACjB,WAAW,EACX,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9E,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,KAAK,WAAW,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,eAAe,CAAA;AACtB,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,EACL,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,KAAK,WAAW,EAChB,aAAa,EACb,KAAK,EACL,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,iBAAiB,EACtB,KAAK,MAAM,EACX,WAAW,GACZ,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/cli/index.js CHANGED
@@ -17,6 +17,7 @@ export { recipientsCommand, sendsCommand } from "./messenger/guard-commands.js";
17
17
  export { INBOX_CHATS, inboxCommand, momentOf, newIn, unreadIn } from "./messenger/inbox.js";
18
18
  export { mcpCommand, serverEntry } from "./messenger/mcp-command.js";
19
19
  export { messagesCommand } from "./messenger/messages-command.js";
20
+ export { REVIEW_CHATS, reviewCommand, reviewIn, unanswered } from "./messenger/review.js";
20
21
  export { serveCommand } from "./messenger/serve-command.js";
21
22
  export { serviceCommand } from "./messenger/service-command.js";
22
23
  export { watchCommand } from "./messenger/watch-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;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAsB,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACnF,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,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;AAEjE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAsB,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACnF,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,5 +1,5 @@
1
1
  import { Command } from "commander";
2
- import type { Inbox } from "../../domain/models.js";
2
+ import type { Chat, Inbox } from "../../domain/models.js";
3
3
  import { type Messenger } from "./context.js";
4
4
  import type { MessengerAdapter } from "./port.js";
5
5
  /**
@@ -7,6 +7,21 @@ import type { MessengerAdapter } from "./port.js";
7
7
  * one burst is already more than a person does, and the rest are named in `skipped`, not lost.
8
8
  */
9
9
  export declare const INBOX_CHATS = 20;
10
+ /** The newest dialogs looked at. Walking every dialog hit FLOOD_WAIT once (tg handoff §4.14). */
11
+ export declare const CHAT_WINDOW = 100;
12
+ export declare const byRecency: (chats: Chat[]) => Chat[];
13
+ export declare const heard: (chats: Chat[], all: boolean) => {
14
+ heard: Chat[];
15
+ quiet: number;
16
+ };
17
+ export declare const capped: (chats: Chat[], most: number) => {
18
+ read: Chat[];
19
+ skipped: {
20
+ id: string;
21
+ title: string | null;
22
+ lastMessageAt: string | null;
23
+ }[];
24
+ };
10
25
  /**
11
26
  * Other people's unread messages, as the messenger counts them: for each chat with a count, its
12
27
  * newest that many. Reading marks nothing read, so the same messages come back until they are read
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/inbox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAQ,KAAK,EAAyB,MAAM,wBAAwB,CAAA;AAGhF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,WAAW,KAAK,CAAA;AAsB7B;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,YACV,gBAAgB,kBACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KACvD,OAAO,CAAC,KAAK,CAcf,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,YACP,gBAAgB,yBACM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7E,OAAO,CAAC,KAAK,CAgCf,CAAA;AAKD;;;GAGG;AACH,eAAO,MAAM,QAAQ,cAAe,MAAM,kCAAuC,MAchF,CAAA;AAiBD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OA2E9C,CAAA"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/inbox.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAyB,MAAM,wBAAwB,CAAA;AAGhF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAEjD;;;GAGG;AACH,eAAO,MAAM,WAAW,KAAK,CAAA;AAC7B,iGAAiG;AACjG,eAAO,MAAM,WAAW,MAAM,CAAA;AAG9B,eAAO,MAAM,SAAS,UAAW,IAAI,EAAE,KAAG,IAAI,EACmD,CAAA;AAMjG,eAAO,MAAM,KAAK,UAAW,IAAI,EAAE,OAAO,OAAO;;;CAG2C,CAAA;AAE5F,eAAO,MAAM,MAAM,UAAW,IAAI,EAAE,QAAQ,MAAM;IAChD,IAAI;IACJ,OAAO;;;;;CACP,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,YACV,gBAAgB,kBACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KACvD,OAAO,CAAC,KAAK,CAcf,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,YACP,gBAAgB,yBACM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7E,OAAO,CAAC,KAAK,CAgCf,CAAA;AAKD;;;GAGG;AACH,eAAO,MAAM,QAAQ,cAAe,MAAM,kCAAuC,MAchF,CAAA;AAiBD;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,cAAe,SAAS,KAAG,OA2E9C,CAAA"}
@@ -10,15 +10,15 @@ import { messengerContext } from "./context.js";
10
10
  */
11
11
  export const INBOX_CHATS = 20;
12
12
  /** The newest dialogs looked at. Walking every dialog hit FLOOD_WAIT once (tg handoff §4.14). */
13
- const CHAT_WINDOW = 100;
13
+ export const CHAT_WINDOW = 100;
14
14
  const FIRST_LOOK_MS = 24 * 60 * 60 * 1000;
15
- const byRecency = (chats) => chats.toSorted((a, b) => Date.parse(b.lastMessageAt ?? "") - Date.parse(a.lastMessageAt ?? ""));
15
+ export const byRecency = (chats) => chats.toSorted((a, b) => Date.parse(b.lastMessageAt ?? "") - Date.parse(a.lastMessageAt ?? ""));
16
16
  /** Muted or archived, and nothing in it mentions the owner or replies to them. */
17
17
  const isQuiet = (chat) => (chat.muted === true || chat.archived === true) && (chat.unreadMentions ?? 0) === 0;
18
- const heard = (chats, all) => all
18
+ export const heard = (chats, all) => all
19
19
  ? { heard: chats, quiet: 0 }
20
20
  : { heard: chats.filter((chat) => !isQuiet(chat)), quiet: chats.filter(isQuiet).length };
21
- const capped = (chats, most) => ({
21
+ export const capped = (chats, most) => ({
22
22
  read: chats.slice(0, most),
23
23
  skipped: chats.slice(most).map(({ id, title, lastMessageAt }) => ({ id, title, lastMessageAt })),
24
24
  });
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/cli/messenger/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../../src/cli/messenger/inbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"messages-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/messages-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAG/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIvD,6FAA6F;AAC7F,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,OA4JtD,CAAA;AAoCD,oGAAoG;AACpG,eAAO,MAAM,WAAW,UACf,SAAS,cACJ,gBAAgB,uEACyC,WAAW,KAC/E,OAAO,CAAC,IAAI,CAgCd,CAAA;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAoCD,eAAO,MAAM,YAAY,cACZ,SAAS,aACT,MAAM,SACV,YAAY,WACV,UAAU,KAClB,OAAO,CAAC,MAAM,CAchB,CAAA"}
1
+ {"version":3,"file":"messages-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/messages-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACpE,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAI/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIvD,6FAA6F;AAC7F,eAAO,MAAM,eAAe,cAAe,SAAS,KAAG,OA6JtD,CAAA;AAoCD,oGAAoG;AACpG,eAAO,MAAM,WAAW,UACf,SAAS,cACJ,gBAAgB,uEACyC,WAAW,KAC/E,OAAO,CAAC,IAAI,CAgCd,CAAA;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,wFAAwF;IACxF,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAoCD,eAAO,MAAM,YAAY,cACZ,SAAS,aACT,MAAM,SACV,YAAY,WACV,UAAU,KAClB,OAAO,CAAC,MAAM,CAchB,CAAA"}
@@ -9,6 +9,7 @@ import { newSendId } from "../../sends/send-id.js";
9
9
  import { messengerContext } from "./context.js";
10
10
  import { downloadSubcommand } from "./download-command.js";
11
11
  import { editCommand } from "./messages-edit-command.js";
12
+ import { forwardCommand } from "./messages-forward-command.js";
12
13
  import { readAll } from "./stdin.js";
13
14
  import { transcribeSubcommand } from "./transcribe-command.js";
14
15
  /** `messages`: reading, and sending through the guard. A CLI may add its own subcommands. */
@@ -150,6 +151,7 @@ export const messagesCommand = (messenger) => {
150
151
  downloadSubcommand(messages, messenger);
151
152
  transcribeSubcommand(messages, messenger);
152
153
  messages.addCommand(editCommand(messenger));
154
+ messages.addCommand(forwardCommand(messenger));
153
155
  return messages;
154
156
  };
155
157
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"messages-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/messages-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/messages-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Command } from "commander";
2
+ import type { Message } from "../../domain/models.js";
3
+ import type { SendGuard } from "../../sends/guard.js";
4
+ import { type Messenger } from "./context.js";
5
+ import { type MessengerAdapter } from "./port.js";
6
+ export declare const forwardCommand: (messenger: Messenger) => Command;
7
+ /** Guarded against the chat it goes to: that is where somebody new reads it. */
8
+ export declare const guardedForward: (guard: SendGuard, connection: MessengerAdapter, { chat, message, to, silent }: {
9
+ chat: string;
10
+ message: string;
11
+ to: string;
12
+ silent: boolean;
13
+ }) => Promise<Message>;
14
+ //# sourceMappingURL=messages-forward-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages-forward-command.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/messages-forward-command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE7D,eAAO,MAAM,cAAc,cAAe,SAAS,KAAG,OAchD,CAAA;AAEN,gFAAgF;AAChF,eAAO,MAAM,cAAc,UAClB,SAAS,cACJ,gBAAgB,iCACG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,KAC5F,OAAO,CAAC,OAAO,CAUjB,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { annotate } from "@leemour/cli-core/commands";
2
+ import { Command } from "commander";
3
+ import { guardedWrite } from "../../sends/guarded.js";
4
+ import { messengerContext } from "./context.js";
5
+ import { capability } from "./port.js";
6
+ export const forwardCommand = (messenger) => annotate(new Command("forward"), { mutates: true })
7
+ .description("forward one message to another chat")
8
+ .argument("<chat>", `the chat the message is in: ${messenger.chatArgument}`)
9
+ .argument("<message>", "the message id")
10
+ .requiredOption("--to <chat>", `where it goes: ${messenger.chatArgument}`)
11
+ .option("--silent", "deliver it without a notification")
12
+ .action(async function (chat, message) {
13
+ const context = messengerContext(this, messenger);
14
+ const { to, silent } = this.opts();
15
+ const forwarded = await context.withMessenger((connection) => guardedForward(context.guard, connection, { chat, message: message.trim(), to, silent: silent === true }));
16
+ context.renderer.result({ message: forwarded });
17
+ });
18
+ /** Guarded against the chat it goes to: that is where somebody new reads it. */
19
+ export const guardedForward = async (guard, connection, { chat, message, to, silent }) => {
20
+ const forward = capability(connection, "forward", "forward a message");
21
+ const { id: fromChatId } = await connection.resolve(chat);
22
+ const { id: toChatId } = await connection.resolve(to);
23
+ return guardedWrite(guard, { chatId: toChatId, kind: "forward" }, () => forward(fromChatId, message, toChatId, silent ? { silent } : {}), (done) => ({ messageId: done.id }));
24
+ };
25
+ //# sourceMappingURL=messages-forward-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages-forward-command.js","sourceRoot":"","sources":["../../../src/cli/messenger/messages-forward-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAyB,MAAM,WAAW,CAAA;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAW,EAAE,CAC9D,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAChD,WAAW,CAAC,qCAAqC,CAAC;KAClD,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,SAAS,CAAC,YAAY,EAAE,CAAC;KAC3E,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACvC,cAAc,CAAC,aAAa,EAAE,kBAAkB,SAAS,CAAC,YAAY,EAAE,CAAC;KACzE,MAAM,CAAC,UAAU,EAAE,mCAAmC,CAAC;KACvD,MAAM,CAAC,KAAK,WAA0B,IAAY,EAAE,OAAe;IAClE,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACjD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAoC,CAAA;IACpE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3D,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,CAC1G,CAAA;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEN,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,KAAgB,EAChB,UAA4B,EAC5B,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkE,EAC3E,EAAE;IACpB,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAA;IACtE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACrD,OAAO,YAAY,CACjB,KAAK,EACL,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EACrC,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACtE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CACnC,CAAA;AACH,CAAC,CAAA"}
@@ -72,6 +72,10 @@ export interface MessengerAdapter {
72
72
  send(chatId: Id, text: string, options: SendOptions): Promise<Sent>;
73
73
  /** The new text of one of the owner's own messages; the answer is the message as it now stands. */
74
74
  edit?(chatId: Id, messageId: Id, text: string): Promise<Message>;
75
+ /** One message into another chat; the answer is the copy there. `silent` delivers it without a notification. */
76
+ forward?(fromChatId: Id, messageId: Id, toChatId: Id, options: {
77
+ silent?: boolean;
78
+ }): Promise<Message>;
75
79
  /**
76
80
  * New messages and changes to messages as they arrive, until `signal` aborts. `onReady` once it is
77
81
  * actually listening — a caller that sends on "listening" must not race the connection. Only on a
@@ -82,6 +86,8 @@ export interface MessengerAdapter {
82
86
  download?(chat: string, messageId: Id): Promise<Download>;
83
87
  /** A voice or video note as text, by the messenger's own speech recognition. */
84
88
  transcribe?(chat: string, messageId: Id): Promise<Transcript>;
89
+ /** A group's admins, whose answer counts as the group's in `review --unanswered`; `null` where the group hides them. */
90
+ admins?(chat: string): Promise<Id[] | null>;
85
91
  logout(): Promise<void>;
86
92
  close(): Promise<void>;
87
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/port.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/port.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../src/cli/messenger/port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAkG5C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAuB,EACvB,OAAyB,EACzB,IAAI,GAA6E,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAChF,EAAE,CACpB,IAAI,KAAK,CAAC,OAAO,EAAE;IACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAChB,IAAI,GAAG,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC,GAA6B,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,GAA6B,CAAY,CAAA;QAC7D,OAAO,OAAO,KAAK,KAAK,UAAU;YAChC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAE,KAA+C,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrG,CAAC,CAAC,KAAK,CAAA;IACX,CAAC;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;CAC9C,CAAC,CAAA;AAEJ,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAyB,EACzB,MAAS,EACT,IAAY,EACsB,EAAE;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAA;IACxG,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAqC,CAAA;AAChE,CAAC,CAAA"}
1
+ {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../src/cli/messenger/port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAsG5C;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAuB,EACvB,OAAyB,EACzB,IAAI,GAA6E,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAChF,EAAE,CACpB,IAAI,KAAK,CAAC,OAAO,EAAE;IACjB,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAChB,IAAI,GAAG,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC,GAA6B,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,KAAK,CAAC,GAA6B,CAAY,CAAA;QAC7D,OAAO,OAAO,KAAK,KAAK,UAAU;YAChC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CAAE,KAA+C,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrG,CAAC,CAAC,KAAK,CAAA;IACX,CAAC;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,KAAK;CAC9C,CAAC,CAAA;AAEJ,iFAAiF;AACjF,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,OAAyB,EACzB,MAAS,EACT,IAAY,EACsB,EAAE;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAA;IACxG,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAqC,CAAA;AAChE,CAAC,CAAA"}
@@ -0,0 +1,44 @@
1
+ import { Command } from "commander";
2
+ import type { Id, Message, Review } from "../../domain/models.js";
3
+ import { type Messenger } from "./context.js";
4
+ import type { MessengerAdapter } from "./port.js";
5
+ /** Owner's ruling in max-cli: without a boundary, a review looks at the last three days. */
6
+ export declare const REVIEW_DAYS = 3;
7
+ export declare const UNANSWERED_HOURS = 24;
8
+ /** Every page is a history request; 20 chats of 3 pages stays well inside what one account may ask. */
9
+ export declare const REVIEW_CHATS = 20;
10
+ export declare const reviewStart: (now?: number) => number;
11
+ /** `--unanswered` with no value is `true`; a value is hours, a fraction allowed. */
12
+ export declare const unansweredHours: (value: unknown, flag?: string) => number;
13
+ export interface ReviewOptions {
14
+ since: number;
15
+ /** A chat as typed; only that one is read, muted or not. */
16
+ chat?: string;
17
+ all?: boolean;
18
+ /** Keep only questions nobody answered in this many hours. */
19
+ unansweredAfterHours?: number;
20
+ now?: number;
21
+ }
22
+ /**
23
+ * **Every message, both sides, in each chat that changed after `since`** — what a review of who
24
+ * owes what reads, where `inbox` reads only other people's newest few. Cut at the chat list's newest
25
+ * message, as `inbox --new` is, so the next review starting at `until` misses nothing.
26
+ */
27
+ export declare const reviewIn: (adapter: MessengerAdapter, { since, chat, all, unansweredAfterHours, now }: ReviewOptions) => Promise<Review>;
28
+ /**
29
+ * Questions from others still waiting, as max-cli counts them. A question is a message with `?` in
30
+ * it, or a reply to the owner or an admin. It is answered when one of them replied to it, or was the
31
+ * next to speak after the person who asked — "the next to speak" rather than "spoke later", because
32
+ * in a busy group an admin answering somebody else says nothing about this question.
33
+ */
34
+ export declare const unanswered: (messages: Message[], { answerers, before }: {
35
+ answerers: ReadonlySet<Id>;
36
+ before: number;
37
+ }) => Message[];
38
+ /**
39
+ * **Everything said since a point, both sides, in every chat that changed** — the reading half of a
40
+ * review of who owes what (max-cli's `review`). Sorting it is the reader's job, person or agent.
41
+ * Reads only: nothing is marked read, and `inbox --new` keeps its point.
42
+ */
43
+ export declare const reviewCommand: (messenger: Messenger) => Command;
44
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/messenger/review.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,KAAK,EAAE,EAAE,EAAE,OAAO,EAAc,MAAM,EAAc,MAAM,wBAAwB,CAAA;AAEzF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAA;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAEjD,4FAA4F;AAC5F,eAAO,MAAM,WAAW,IAAI,CAAA;AAC5B,eAAO,MAAM,gBAAgB,KAAK,CAAA;AAClC,uGAAuG;AACvG,eAAO,MAAM,YAAY,KAAK,CAAA;AAI9B,eAAO,MAAM,WAAW,oBAAuB,MAAwC,CAAA;AAEvF,oFAAoF;AACpF,eAAO,MAAM,eAAe,UAAW,OAAO,oBAA0B,MAOvE,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,8DAA8D;IAC9D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAqBD;;;;GAIG;AACH,eAAO,MAAM,QAAQ,YACV,gBAAgB,mDAC6C,aAAa,KAClF,OAAO,CAAC,MAAM,CAwChB,CAAA;AAKD;;;;;GAKG;AACH,eAAO,MAAM,UAAU,aACX,OAAO,EAAE,yBACI;IAAE,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACpE,OAAO,EAsBT,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,OAgD/C,CAAA"}
@@ -0,0 +1,183 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ import { Command } from "commander";
3
+ import { renderMessages } from "../../render/messages.js";
4
+ import { messengerContext } from "./context.js";
5
+ import { byRecency, CHAT_WINDOW, capped, heard, momentOf } from "./inbox.js";
6
+ /** Owner's ruling in max-cli: without a boundary, a review looks at the last three days. */
7
+ export const REVIEW_DAYS = 3;
8
+ export const UNANSWERED_HOURS = 24;
9
+ /** Every page is a history request; 20 chats of 3 pages stays well inside what one account may ask. */
10
+ export const REVIEW_CHATS = 20;
11
+ const REVIEW_PAGE = 100;
12
+ const REVIEW_PER_CHAT = 300;
13
+ export const reviewStart = (now = Date.now()) => now - REVIEW_DAYS * 86_400_000;
14
+ /** `--unanswered` with no value is `true`; a value is hours, a fraction allowed. */
15
+ export const unansweredHours = (value, flag = "--unanswered") => {
16
+ if (value === true)
17
+ return UNANSWERED_HOURS;
18
+ const hours = Number(value);
19
+ if (!Number.isFinite(hours) || hours < 0) {
20
+ throw new CliError("validation_error", `${flag} takes hours, a number 0 or more — got ${String(value)}`);
21
+ }
22
+ return hours;
23
+ };
24
+ /**
25
+ * The chat's messages after `since` and up to `cut`, oldest first. The history pages backwards —
26
+ * Telegram's cannot start from a time — so a chat cut short keeps its newest, and the review is
27
+ * incomplete rather than silently missing the start.
28
+ */
29
+ const window = async (adapter, chat, since, cut) => {
30
+ const messages = [];
31
+ let before;
32
+ while (true) {
33
+ const page = await adapter.history(chat, { limit: REVIEW_PAGE, ...(before === undefined ? {} : { before }) });
34
+ const time = (message) => Date.parse(message.timestamp);
35
+ messages.unshift(...page.items.filter((message) => time(message) > since && time(message) <= cut));
36
+ const oldest = page.items[0];
37
+ if (!page.hasMore || !oldest || time(oldest) <= since)
38
+ return { messages, more: false };
39
+ if (messages.length >= REVIEW_PER_CHAT)
40
+ return { messages: messages.slice(-REVIEW_PER_CHAT), more: true };
41
+ before = oldest.id;
42
+ }
43
+ };
44
+ /**
45
+ * **Every message, both sides, in each chat that changed after `since`** — what a review of who
46
+ * owes what reads, where `inbox` reads only other people's newest few. Cut at the chat list's newest
47
+ * message, as `inbox --new` is, so the next review starting at `until` misses nothing.
48
+ */
49
+ export const reviewIn = async (adapter, { since, chat, all = false, unansweredAfterHours, now = Date.now() }) => {
50
+ const page = await adapter.chats({ limit: CHAT_WINDOW, offset: 0 });
51
+ const changed = byRecency(page.items.filter((one) => one.lastMessageAt !== null && Date.parse(one.lastMessageAt) > since));
52
+ const cut = Math.max(since, ...changed.map((one) => Date.parse(one.lastMessageAt ?? "")));
53
+ const only = chat === undefined ? undefined : (await adapter.resolve(chat)).id;
54
+ const { heard: wanted, quiet } = only === undefined ? heard(changed, all) : { heard: changed.filter((one) => one.id === only), quiet: 0 };
55
+ const { read, skipped } = capped(wanted, REVIEW_CHATS);
56
+ const chats = [];
57
+ for (const { id, title, kind } of read) {
58
+ const { messages, more } = await window(adapter, id, since, cut);
59
+ if (messages.length > 0)
60
+ chats.push({ id, title, kind, messages, more });
61
+ }
62
+ const partial = page.hasMore && changed.length === page.items.length;
63
+ const found = {
64
+ since: new Date(since).toISOString(),
65
+ until: new Date(cut).toISOString(),
66
+ complete: skipped.length === 0 && !partial && chats.every((one) => !one.more),
67
+ chats,
68
+ skipped,
69
+ partial,
70
+ quiet,
71
+ };
72
+ if (unansweredAfterHours === undefined)
73
+ return found;
74
+ const open = [];
75
+ for (const one of chats) {
76
+ const admins = one.kind === "dialog" ? [] : ((await adapter.admins?.(one.id)) ?? undefined);
77
+ const questions = unanswered(one.messages, {
78
+ answerers: new Set(admins ?? []),
79
+ before: now - unansweredAfterHours * 3_600_000,
80
+ });
81
+ if (questions.length > 0) {
82
+ open.push({ ...one, messages: questions, answeredBy: admins === undefined ? "owner" : "owner-and-admins" });
83
+ }
84
+ }
85
+ return { ...found, chats: open, unanswered: { olderThanHours: unansweredAfterHours } };
86
+ };
87
+ /** A shared link's query string is not a question. */
88
+ const LINKS = /https?:\/\/\S+/g;
89
+ /**
90
+ * Questions from others still waiting, as max-cli counts them. A question is a message with `?` in
91
+ * it, or a reply to the owner or an admin. It is answered when one of them replied to it, or was the
92
+ * next to speak after the person who asked — "the next to speak" rather than "spoke later", because
93
+ * in a busy group an admin answering somebody else says nothing about this question.
94
+ */
95
+ export const unanswered = (messages, { answerers, before }) => {
96
+ const answers = (message) => message.outgoing === true || (message.senderId !== null && answerers.has(message.senderId));
97
+ const byId = new Map(messages.map((message) => [message.id, message]));
98
+ // Telegram names only the id a reply answers; the message itself is found in the window, or not at all.
99
+ const repliesToAnswerer = (message) => {
100
+ const to = message.replyTo?.id ?? message.replyToId;
101
+ const quoted = to === undefined ? undefined : byId.get(to);
102
+ if (quoted)
103
+ return answers(quoted);
104
+ return (message.replyTo !== null && (message.replyTo.outgoing === true || answerers.has(message.replyTo.senderId ?? "")));
105
+ };
106
+ return messages.filter((message, index) => {
107
+ if (answers(message) || Date.parse(message.timestamp) >= before)
108
+ return false;
109
+ if (!message.text.replace(LINKS, "").includes("?") && !repliesToAnswerer(message))
110
+ return false;
111
+ const later = messages.slice(index + 1);
112
+ if (later.some((reply) => (reply.replyTo?.id ?? reply.replyToId) === message.id && answers(reply)))
113
+ return false;
114
+ const next = later.find((other) => other.senderId !== message.senderId);
115
+ return !(next && answers(next));
116
+ });
117
+ };
118
+ /**
119
+ * **Everything said since a point, both sides, in every chat that changed** — the reading half of a
120
+ * review of who owes what (max-cli's `review`). Sorting it is the reader's job, person or agent.
121
+ * Reads only: nothing is marked read, and `inbox --new` keeps its point.
122
+ */
123
+ export const reviewCommand = (messenger) => new Command("review")
124
+ .description("every message, yours too, in chats that changed since a point — for reviewing who owes what")
125
+ .option("--since <time>", `where the last review ended — ISO 8601, or 2h / 1d ago; ${REVIEW_DAYS} days ago if not given`)
126
+ .option("--chat <chat>", `only this chat: ${messenger.chatArgument}`)
127
+ .option("--unanswered [hours]", `only questions to you or a group's admins that nobody answered, asked at least this long ago; ${UNANSWERED_HOURS} hours if not given`)
128
+ .option("--all", "muted and archived chats too — left out unless they mention you or reply to you")
129
+ .action(async function () {
130
+ const options = this.opts();
131
+ const context = messengerContext(this, messenger);
132
+ const { settings, renderer, format, streams } = context;
133
+ if (settings.offline) {
134
+ throw new CliError("validation_error", "`review` asks the messenger what changed; with `--offline` nothing did");
135
+ }
136
+ const since = options.since === undefined ? reviewStart() : momentOf(options.since);
137
+ const hours = options.unanswered === undefined ? undefined : unansweredHours(options.unanswered);
138
+ const found = await context.withMessenger((adapter) => reviewIn(adapter, {
139
+ since,
140
+ ...(options.chat === undefined ? {} : { chat: options.chat }),
141
+ ...(options.all ? { all: true } : {}),
142
+ ...(hours === undefined ? {} : { unansweredAfterHours: hours }),
143
+ }));
144
+ const messages = found.chats.flatMap((chat) => chat.messages.map((message) => ({ ...message, chatTitle: chat.title })));
145
+ if (format === "jsonl")
146
+ renderer.stream(messages);
147
+ else if (format !== "pretty")
148
+ renderer.result(found);
149
+ else if (messages.length > 0) {
150
+ streams.data(renderMessages(messages, {
151
+ color: context.color,
152
+ verbosity: settings.detail,
153
+ senderColors: settings.senderColors,
154
+ profile: context.profile,
155
+ provider: messenger.provider,
156
+ }));
157
+ }
158
+ notes(found, messenger.app.command, renderer.note.bind(renderer));
159
+ });
160
+ const notes = (found, command, note) => {
161
+ for (const chat of found.chats) {
162
+ if (chat.more)
163
+ note(`${chat.title ?? chat.id}: cut short, only the newest — \`${command} messages list ${chat.id}\``);
164
+ if (chat.answeredBy === "owner")
165
+ note(`${chat.title ?? chat.id}: its admins are not known, so only your answers count`);
166
+ }
167
+ if (found.skipped.length > 0) {
168
+ note(`not read — too many chats at once: ${found.skipped.map((chat) => chat.title ?? chat.id).join(", ")}`);
169
+ }
170
+ if (found.partial)
171
+ note(`only the ${CHAT_WINDOW} newest chats were looked at; an older one may have more`);
172
+ if (found.quiet > 0)
173
+ note(`${found.quiet} muted or archived chats left out — --all reads them`);
174
+ if (found.unanswered) {
175
+ note(`questions from ${found.since} to ${found.until} still open after ${found.unanswered.olderThanHours} hours; ` +
176
+ "an answer after the review's end is not seen");
177
+ return;
178
+ }
179
+ note(found.complete
180
+ ? `from ${found.since} to ${found.until} — the next review starts with --since ${found.until}`
181
+ : `from ${found.since} to ${found.until}, incomplete — keep --since ${found.since} for the next review`);
182
+ };
183
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/messenger/review.ts"],"names":[],"mappings":"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"}
@@ -178,6 +178,31 @@ export interface Inbox {
178
178
  /** Muted or archived chats with something waiting, left out because nothing in them is for the owner. */
179
179
  quiet: number;
180
180
  }
181
+ /** One chat's share of `review`: both sides, oldest first, from `since` to `until`. */
182
+ export interface ReviewChat extends Pick<Chat, "id" | "title" | "kind"> {
183
+ messages: Message[];
184
+ /** The chat had more in the window than one review reads; the newest are here. */
185
+ more: boolean;
186
+ /** `--unanswered` only: whose words count as an answer. `owner` where the messenger did not say who the admins are. */
187
+ answeredBy?: "owner" | "owner-and-admins";
188
+ }
189
+ /** `review`: everything said since a point, for someone sorting out who owes what. */
190
+ export interface Review {
191
+ /** ISO 8601. `until` is where the next review starts. */
192
+ since: string;
193
+ until: string;
194
+ /** Nothing skipped or cut short: the next review may start at `until`. */
195
+ complete: boolean;
196
+ chats: ReviewChat[];
197
+ skipped: Pick<Chat, "id" | "title" | "lastMessageAt">[];
198
+ partial: boolean;
199
+ /** Muted or archived chats that changed, left out because nothing in them is for the owner. */
200
+ quiet: number;
201
+ /** `--unanswered`: only questions still open after this many hours are in `chats`. */
202
+ unanswered?: {
203
+ olderThanHours: number;
204
+ };
205
+ }
181
206
  export interface Contact {
182
207
  id: Id;
183
208
  name: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/domain/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/domain/models.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { McpServer } from "@modelcontextprotocol/server";
2
2
  /**
3
3
  * Slash commands in Claude Code, copied from max-cli's. Each names tools and steps only — fetching
4
4
  * is the tools' job, so no message text is ever part of a prompt. The owner's own argument goes in
5
- * quoted, as data. `review` comes with the command it calls.
5
+ * quoted, as data.
6
6
  */
7
7
  export declare const registerPrompts: (server: McpServer, { command, name }: {
8
8
  command: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAS9E;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAY,SAAS,qBAAqB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,IA+DzG,CAAA"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAS9E;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAY,SAAS,qBAAqB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAG,IAwGzG,CAAA"}
@@ -6,7 +6,7 @@ const asked = (text) => ({ messages: [{ role: "user", content: { type: "text", t
6
6
  /**
7
7
  * Slash commands in Claude Code, copied from max-cli's. Each names tools and steps only — fetching
8
8
  * is the tools' job, so no message text is ever part of a prompt. The owner's own argument goes in
9
- * quoted, as data. `review` comes with the command it calls.
9
+ * quoted, as data.
10
10
  */
11
11
  export const registerPrompts = (server, { command, name }) => {
12
12
  server.registerPrompt("catch-up", {
@@ -31,6 +31,32 @@ export const registerPrompts = (server, { command, name }) => {
31
31
  `4. Only after I approve that exact text, send it with ${command}_messages_send, with reply_to when it answers one message.`,
32
32
  DATA,
33
33
  ].join("\n")));
34
+ server.registerPrompt("review", {
35
+ title: `Review commitments in ${name}`,
36
+ description: "What the owner owes, what others owe, what needs clarifying — since the last review. Reads only; " +
37
+ "reminders are drafts until the owner approves each one.",
38
+ argsSchema: toStandardJsonSchema(v.object({
39
+ since: v.optional(v.pipe(v.string(), v.description("where the last review ended: an ISO 8601 time, or 2h / 1d ago"))),
40
+ groups: v.optional(v.pipe(v.string(), v.description("group chats where work gets done, by name or id, comma-separated"))),
41
+ })),
42
+ }, ({ since, groups }) => asked([
43
+ `Review my commitments in ${name}. Do not send, react, forward or mark anything read, except as step 4 allows.`,
44
+ "If I gave you the open items of the previous review, check each of those first.",
45
+ `1. Call ${command}_review once${since ? ` with since ${JSON.stringify(since)}` : ""}. It returns every message in`,
46
+ "each chat that changed, mine included (outgoing: true — most of what I owe is there).",
47
+ "2. Sort what you find into three lists: I owe · Waiting on others · Needs clarifying. Each item: chat",
48
+ "title and id, date, the ids of the messages it rests on, and a deadline only if one was stated. When a",
49
+ `message answers one from before the review, read around that one with ${command}_messages_context.`,
50
+ "3. Before calling anything overdue, look for it being done: later in the review, in " +
51
+ (groups ? `these group chats: ${JSON.stringify(groups)}` : "the group chats in the review") +
52
+ ` (${command}_messages_list for anything older), and with ${command}_messages_search — which sees only what` +
53
+ " this machine has kept, so no hit is not proof.",
54
+ "4. Draft at most five reminders, each with its chat and text. Send one only after I approve that exact",
55
+ `text and recipient, with ${command}_messages_send and reply_to. Without that tool, show the drafts only.`,
56
+ "5. If complete is false, say the review is incomplete, say why, and give no new boundary. Otherwise end",
57
+ "with «Next review: since = <until>» and the open items, for the next review to check first.",
58
+ DATA,
59
+ ].join("\n")));
34
60
  server.registerPrompt("find", {
35
61
  title: `Find in ${name}`,
36
62
  description: "A person or a phrase, with the messages around what was found. Reads only.",
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,oHAAoH;AACpH,MAAM,IAAI,GAAG,uFAAuF,CAAA;AAEpG,MAAM,KAAK,GAAG,CAAC,IAAY,EAAmB,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;AAEpH;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAiB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAqC,EAAQ,EAAE;IAC/G,MAAM,CAAC,cAAc,CACnB,UAAU,EACV;QACE,KAAK,EAAE,eAAe,IAAI,EAAE;QAC5B,WAAW,EAAE,gDAAgD;QAC7D,UAAU,EAAE,oBAAoB,CAC9B,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,CAAC,CACvG;KACF,EACD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACZ,KAAK,CACH;QACE,kBAAkB,IAAI,UAAU,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;QAC3G,+FAA+F;QAC/F,oDAAoD;QACpD,IAAI;KACL,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CACJ,CAAA;IAED,MAAM,CAAC,cAAc,CACnB,OAAO,EACP;QACE,KAAK,EAAE,cAAc,IAAI,OAAO;QAChC,WAAW,EAAE,uFAAuF;QACpG,UAAU,EAAE,oBAAoB,CAC9B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CACnF;KACF,EACD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACX,KAAK,CACH;QACE,wBAAwB,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;QAC5D,yCAAyC,OAAO,oDAAoD;QACpG,oCAAoC,OAAO,iBAAiB;QAC5D,qCAAqC;QACrC,yDAAyD,OAAO,4DAA4D;QAC5H,IAAI;KACL,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CACJ,CAAA;IAED,MAAM,CAAC,cAAc,CACnB,MAAM,EACN;QACE,KAAK,EAAE,WAAW,IAAI,EAAE;QACxB,WAAW,EAAE,4EAA4E;QACzF,UAAU,EAAE,oBAAoB,CAC9B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC,EAAE,CAAC,CACxF;KACF,EACD,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACX,KAAK,CACH;QACE,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,GAAG;QAC1C,qBAAqB,OAAO,sBAAsB,OAAO,8BAA8B,OAAO,qCAAqC;QACnI,gFAAgF;QAChF,sBAAsB,OAAO,6DAA6D;QAC1F,IAAI;KACL,CAAC,IAAI,CAAC,GAAG,CAAC,CACZ,CACJ,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"messages-actions.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/messages-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAE/D,OAAO,EAAE,KAAK,OAAO,EAAyC,MAAM,YAAY,CAAA;AAEhF,uHAAuH;AACvH,eAAO,MAAM,kBAAkB,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiB/E,CAAA"}
1
+ {"version":3,"file":"messages-actions.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/messages-actions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAAyC,MAAM,YAAY,CAAA;AAEhF,uHAAuH;AACvH,eAAO,MAAM,kBAAkB,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAyC/E,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import * as v from "valibot";
2
2
  import { guardedEdit } from "../../cli/messenger/messages-edit-command.js";
3
+ import { guardedForward } from "../../cli/messenger/messages-forward-command.js";
3
4
  import { APPROVE, chatOf, message, tool, WRITE } from "../tool.js";
4
5
  /** What changes a message others already have, offered with `--allow-send`, each behind its own `allow` permission. */
5
6
  export const messageActionTools = (messenger) => {
@@ -17,6 +18,29 @@ export const messageActionTools = (messenger) => {
17
18
  message: await guardedEdit(guard, adapter, { chat: args.chat, message: args.message, text: args.text }),
18
19
  }),
19
20
  }),
21
+ messages_forward: tool({
22
+ title: "Forward a message",
23
+ description: "Forward one message to another chat, where new people will read it. Only when the owner asked for this " +
24
+ "message to go to this chat. On outcome_unknown, look in the target chat before forwarding again: a repeat " +
25
+ "is a second copy.",
26
+ input: v.object({
27
+ chat: v.pipe(v.string(), v.minLength(1), v.description("the chat the message is in")),
28
+ message,
29
+ to: v.pipe(v.string(), v.minLength(1), v.description(`where it goes: ${messenger.chatArgument}`)),
30
+ silent: v.optional(v.pipe(v.boolean(), v.description("deliver without a notification"))),
31
+ }),
32
+ annotations: WRITE,
33
+ _meta: APPROVE,
34
+ permission: "forward",
35
+ online: async (adapter, args, { guard }) => ({
36
+ message: await guardedForward(guard, adapter, {
37
+ chat: args.chat,
38
+ message: args.message,
39
+ to: args.to,
40
+ silent: args.silent === true,
41
+ }),
42
+ }),
43
+ }),
20
44
  };
21
45
  };
22
46
  //# sourceMappingURL=messages-actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages-actions.js","sourceRoot":"","sources":["../../../src/mcp/tools/messages-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAC1E,OAAO,EAAgB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEhF,uHAAuH;AACvH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAA2B,EAAE;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9B,OAAO;QACL,aAAa,EAAE,IAAI,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,wGAAwG;gBACxG,6FAA6F;YAC/F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACxG,CAAC;SACH,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"messages-actions.js","sourceRoot":"","sources":["../../../src/mcp/tools/messages-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAA;AAChF,OAAO,EAAgB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAEhF,uHAAuH;AACvH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,SAAoB,EAA2B,EAAE;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAC9B,OAAO;QACL,aAAa,EAAE,IAAI,CAAC;YAClB,KAAK,EAAE,gBAAgB;YACvB,WAAW,EACT,wGAAwG;gBACxG,6FAA6F;YAC/F,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,MAAM,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACxG,CAAC;SACH,CAAC;QACF,gBAAgB,EAAE,IAAI,CAAC;YACrB,KAAK,EAAE,mBAAmB;YAC1B,WAAW,EACT,yGAAyG;gBACzG,4GAA4G;gBAC5G,mBAAmB;YACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBACrF,OAAO;gBACP,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,kBAAkB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;gBACjG,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,gCAAgC,CAAC,CAAC,CAAC;aACzF,CAAC;YACF,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,OAAO,EAAE,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC5C,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI;iBAC7B,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { Messenger } from "../../cli/messenger/context.js";
2
+ import { type AnyTool } from "../tool.js";
3
+ export declare const reviewTools: (messenger: Messenger) => Record<string, AnyTool>;
4
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG/D,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,YAAY,CAAA;AAE7D,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CA+BvE,CAAA"}
@@ -0,0 +1,27 @@
1
+ import * as v from "valibot";
2
+ import { momentOf } from "../../cli/messenger/inbox.js";
3
+ import { REVIEW_DAYS, reviewIn, reviewStart, UNANSWERED_HOURS } from "../../cli/messenger/review.js";
4
+ import { chatOf, READ, tool } from "../tool.js";
5
+ export const reviewTools = (messenger) => ({
6
+ review: tool({
7
+ title: "Review who owes what",
8
+ description: "Every message, the owner's too (outgoing: true), in each chat that changed since a point — for sorting out " +
9
+ `what the owner owes and what others owe. Without \`since\`, the last ${REVIEW_DAYS} days. Muted and archived ` +
10
+ "chats are left out unless they mention the owner, or `all` is set. Returns { since, until, complete, chats: " +
11
+ "[{ id, title, messages, more }], skipped, partial, quiet }; when complete, the next review starts at until.",
12
+ input: v.object({
13
+ since: v.optional(v.pipe(v.string(), v.description("where the last review ended: ISO 8601, or 2h / 1d ago"))),
14
+ chat: v.optional(chatOf(messenger)),
15
+ unanswered: v.optional(v.pipe(v.number(), v.minValue(0), v.description(`only questions nobody answered, asked at least this many hours ago (${UNANSWERED_HOURS} is usual)`))),
16
+ all: v.optional(v.pipe(v.boolean(), v.description("muted and archived chats too"))),
17
+ }),
18
+ annotations: READ,
19
+ online: (adapter, args) => reviewIn(adapter, {
20
+ since: args.since === undefined ? reviewStart() : momentOf(args.since, "since"),
21
+ ...(args.chat === undefined ? {} : { chat: args.chat }),
22
+ ...(args.all ? { all: true } : {}),
23
+ ...(args.unanswered === undefined ? {} : { unansweredAfterHours: args.unanswered }),
24
+ }),
25
+ }),
26
+ });
27
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/mcp/tools/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AACpG,OAAO,EAAgB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,IAAI,CAAC;QACX,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,6GAA6G;YAC7G,wEAAwE,WAAW,4BAA4B;YAC/G,8GAA8G;YAC9G,6GAA6G;QAC/G,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,uDAAuD,CAAC,CAAC,CAAC;YAC7G,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACnC,UAAU,EAAE,CAAC,CAAC,QAAQ,CACpB,CAAC,CAAC,IAAI,CACJ,CAAC,CAAC,MAAM,EAAE,EACV,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EACb,CAAC,CAAC,WAAW,CACX,uEAAuE,gBAAgB,YAAY,CACpG,CACF,CACF;YACD,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,8BAA8B,CAAC,CAAC,CAAC;SACpF,CAAC;QACF,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACxB,QAAQ,CAAC,OAAO,EAAE;YAChB,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YAC/E,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClC,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;SACpF,CAAC;KACL,CAAC;CACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWxC;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAQrE,CAAA;AAEF,wCAAwC;AACxC,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAGrE,CAAA"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAYxC;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CASrE,CAAA;AAEF,wCAAwC;AACxC,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAGrE,CAAA"}
package/dist/mcp/tools.js CHANGED
@@ -7,12 +7,14 @@ import { messageActionTools } from "./tools/messages-actions.js";
7
7
  import { messagesPhotoTools } from "./tools/messages-photo.js";
8
8
  import { messageSendTools } from "./tools/messages-send.js";
9
9
  import { messagesTranscribeTools } from "./tools/messages-transcribe.js";
10
+ import { reviewTools } from "./tools/review.js";
10
11
  /**
11
12
  * The read tools, each answering what its command's `--json` prints. Named `<cli>_<command words>`,
12
13
  * so `tg_chats_list` is `tg chats list`. A new resource is a file in `tools/` and a line here.
13
14
  */
14
15
  export const readTools = (messenger) => ({
15
16
  ...inboxTools(messenger),
17
+ ...reviewTools(messenger),
16
18
  ...accountTools(messenger),
17
19
  ...chatsTools(messenger),
18
20
  ...contactsTools(messenger),
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAC3E,GAAG,UAAU,CAAC,SAAS,CAAC;IACxB,GAAG,YAAY,CAAC,SAAS,CAAC;IAC1B,GAAG,UAAU,CAAC,SAAS,CAAC;IACxB,GAAG,aAAa,CAAC,SAAS,CAAC;IAC3B,GAAG,aAAa,CAAC,SAAS,CAAC;IAC3B,GAAG,kBAAkB,CAAC,SAAS,CAAC;IAChC,GAAG,uBAAuB,CAAC,SAAS,CAAC;CACtC,CAAC,CAAA;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAC3E,GAAG,gBAAgB,CAAC,SAAS,CAAC;IAC9B,GAAG,kBAAkB,CAAC,SAAS,CAAC;CACjC,CAAC,CAAA"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAC3E,GAAG,UAAU,CAAC,SAAS,CAAC;IACxB,GAAG,WAAW,CAAC,SAAS,CAAC;IACzB,GAAG,YAAY,CAAC,SAAS,CAAC;IAC1B,GAAG,UAAU,CAAC,SAAS,CAAC;IACxB,GAAG,aAAa,CAAC,SAAS,CAAC;IAC3B,GAAG,aAAa,CAAC,SAAS,CAAC;IAC3B,GAAG,kBAAkB,CAAC,SAAS,CAAC;IAChC,GAAG,uBAAuB,CAAC,SAAS,CAAC;CACtC,CAAC,CAAA;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,SAAoB,EAA2B,EAAE,CAAC,CAAC;IAC3E,GAAG,gBAAgB,CAAC,SAAS,CAAC;IAC9B,GAAG,kBAAkB,CAAC,SAAS,CAAC;CACjC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leemour/cli-messaging",
3
- "version": "0.37.0",
3
+ "version": "0.39.0",
4
4
  "description": "The messenger-neutral half of a messaging CLI: domain model, message locators, rendering, name resolution, the SQLite seam, the command skeleton and shared read commands, the send guard, run records and the message store",
5
5
  "license": "MIT",
6
6
  "author": "Viacheslav Ptsarev",