ente-cli 0.4.80 → 0.4.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -135,6 +135,7 @@ Every command supports `--json`. Run `ente --help` or `ente <group> --help`.
135
135
  | `activity` | `list`, `create`, `search`, `get`, `transcript` (`--grep`, `--context`), `update`, `delete`, `restore`, `message add`, `attachment upload` |
136
136
  | `agenda` | `create-point`, `link-task` |
137
137
  | `task` | `list`, `get`, `create`, `update`, `done`, `assign`, `unassign`, `set-assignees`, `clear-assignees` |
138
+ | `list` | `create` (`--column`, `--pin`), `add` (`--key` upsert), `update` (`--attr`, `--title`), `import` (JSONL upsert by `--key`, `--dry-run`), `show` (`--all`, `--cursor`, `--where`, `--view`), `column add`, `column remove` |
138
139
  | `pins` | `list` |
139
140
  | `space` | `members` |
140
141
  | `recording` | `list`, `show`, `inspect`, `rerun` (admin only) |
@@ -329,6 +330,25 @@ Never put secrets in chat, repositories, project `.env` files, or logs.
329
330
 
330
331
  ### Process a permitted user mailbox
331
332
 
333
+ Use `recipients` with an explicit permitted Gmail/IMAP `connectionId` and a
334
+ nonempty `query` to resolve a name or address fragment from cached non-draft
335
+ From/To/Cc/Bcc headers. A call scans at most 800 metadata records and returns
336
+ at most 20 address candidates with continuation. For example:
337
+
338
+ ```sh
339
+ ente agent user-mailbox --request '{"operation":"recipients","connectionId":"<permitted-private-connection>","query":"Alex Morgan"}'
340
+ ```
341
+
342
+ Follow every cursor. For name matches, repeat lookup with each candidate exact
343
+ email and follow those cursors too: newer headers may omit the name. Combine
344
+ exact-address results using maximum `lastContactAt` before preferring the most
345
+ recently contacted match. Results exclude unsynced
346
+ provider history and shared Ente inboxes. If `truncated` is true, refine the query;
347
+ a bounded subset does not establish uniqueness. Disclose alternatives and the
348
+ chosen address in the prepared draft. Ask for confirmation on ties or unresolved
349
+ matches. Lookup never sends and never authorizes inventing an address.
350
+
351
+
332
352
  Existing provider drafts retain their attachments when edited or sent through
333
353
  `user-mailbox`, including the web composer's 25 MB combined raw-file budget
334
354
  (25,000,000 bytes, at most 24 files). The complete MIME message must fit 35 MiB;
@@ -461,3 +481,12 @@ the shipped skill for scope and citation details.
461
481
  Explicit vector modes report the selected provider, model, region, embedding identity and generation in `retrieval.vector`. Optional OpenAI embeddings use `text-embedding-3-small` at 512 dimensions. A provider/model/region change requires renewed account consent and a new empty generation; it does not select history or future activities. No automatic provider fallback runs. Omitted/lexical query remains zero-egress.
462
482
 
463
483
  Hybrid ordering uses RRF plus semantic branch coverage. Returned rank is authoritative; scores are not calibrated confidence or a pure sort contract.
484
+
485
+ Recipient lookup may explicitly use `"source":"provider"` to read bounded
486
+ native matching headers outside the synced cache. It imports no messages and
487
+ reads no bodies. Continue provider cursors separately from cached cursors, then
488
+ repeat each candidate exact address in the same source to rank actual dates.
489
+ Gmail applies native word/operator matching; arbitrary mid-name/address substring
490
+ and alias expansion are not guaranteed. IMAP applies native address-header
491
+ substring matching with UIDVALIDITY-bound continuation. Neither source proves
492
+ complete historical coverage; retain alternatives and ask on unresolved matches.
package/dist/SKILL.md CHANGED
@@ -187,6 +187,14 @@ ente activity attachment upload <activityId> ./file.pdf [--name "Contract.pdf"]
187
187
  ente activity delete <activityId> [--json]
188
188
  ente activity restore <activityId> [--json]
189
189
 
190
+ # Database lists (entity + typed columns; each row is a note/task activity; no date column type)
191
+ ente list create "<name>" --space "<space>" [--column "key[=Label]:text|number|boolean|single-select|multi-select[:opt,opt]"] [--pin "<parent>" [--share-parents --parent-space-grant-fingerprint <token>]] [--json]
192
+ ente list add "<list>" --title "…" [--attr k=v ...] [--key <textColumn>] [--content-file ./row.md] [--json] # --key = upsert by that cell
193
+ ente list update "<list>" <rowId> [--attr k=v ...] [--title "…"] [--json] # empty value clears a cell
194
+ ente list import "<list>" --file rows.jsonl --key <textColumn> [--dry-run] [--concurrency 4] [--json] # {"title","attrs","content"} per line → created/updated/unchanged
195
+ ente list show "<list>" [--all | --cursor <nextCursor>] [--limit 100] [--where k=v ...] [--view] [--json] # all rows by default; --view = table's saved filters
196
+ # Rows are activities: trash with `ente activity delete <rowId>`, promote with `ente activity update <rowId> --entity-add "<entity>"`. Guide: playbooks/database-list-sync.md
197
+
190
198
  # Activity agendas (all activity types)
191
199
  # --meeting remains a compatibility alias for --activity.
192
200
  ente agenda create-point --activity <activityId> --title "Decisions" [--content="…"] [--content-file ./decisions.md] [--parent <agendaPointId>] [--after <agendaPointId>] [--json]
@@ -493,6 +501,25 @@ Parent relationships are spaceless. Both entities must be accessible. Every acti
493
501
 
494
502
  ## User mailbox processing
495
503
 
504
+ Use `recipients` with an explicit permitted Gmail/IMAP `connectionId` and a
505
+ nonempty `query` to resolve a name or address fragment from cached non-draft
506
+ From/To/Cc/Bcc headers. A call scans at most 800 metadata records and returns
507
+ at most 20 address candidates with continuation. For example:
508
+
509
+ ```sh
510
+ ente agent user-mailbox --request '{"operation":"recipients","connectionId":"<permitted-private-connection>","query":"Alex Morgan"}'
511
+ ```
512
+
513
+ Follow every cursor. For name matches, repeat lookup with each candidate exact
514
+ email and follow those cursors too: newer headers may omit the name. Combine
515
+ exact-address results using maximum `lastContactAt` before preferring the most
516
+ recently contacted match. Results exclude unsynced
517
+ provider history and shared Ente inboxes. If `truncated` is true, refine the query;
518
+ a bounded subset does not establish uniqueness. Disclose alternatives and the
519
+ chosen address in the prepared draft. Ask for confirmation on ties or unresolved
520
+ matches. Lookup never sends and never authorizes inventing an address.
521
+
522
+
496
523
  Existing provider drafts retain their attachments when edited or sent through
497
524
  `user-mailbox`, including the web composer's 25 MB combined raw-file budget
498
525
  (25,000,000 bytes, at most 24 files). The complete MIME message must fit 35 MiB;
@@ -656,3 +683,12 @@ accounts do not send data to the hosted embedding pilot.
656
683
  Explicit vector modes report the selected provider, model, region, embedding identity and generation in `retrieval.vector`. Optional OpenAI embeddings use `text-embedding-3-small` at 512 dimensions. A provider/model/region change requires renewed account consent and a new empty generation; it does not select history or future activities. No automatic provider fallback runs. Omitted/lexical query remains zero-egress.
657
684
 
658
685
  Hybrid ranking uses RRF plus early semantic branch coverage. Use returned `rank` for order; numeric scores are neither a pure sort contract nor calibrated confidence.
686
+
687
+ For older recipient correspondence, `user-mailbox` operation `recipients` accepts
688
+ `source: "provider"` for bounded native matching header reads without imports or
689
+ bodies. Keep provider and cached cursors separate. Continue pages, then repeat
690
+ candidate exact addresses in the same source before comparing actual dates.
691
+ Gmail uses native word/operator matching, without guaranteed arbitrary substring
692
+ or alias expansion. IMAP uses native address-header substring search and checks
693
+ UIDVALIDITY on continuation. Never claim complete historical coverage or send
694
+ from a recipient lookup; disclose choices and ask on unresolved alternatives.