ente-cli 0.4.90 → 0.4.92

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
@@ -104,6 +104,7 @@ project `.env` file.
104
104
  ```bash
105
105
  ente search "Alice"
106
106
  ente entity list --type person
107
+ ente entity get "Alice" --projection full --limit 50 --json
107
108
  ente entity rename "Lorey Georg" "Georg Lorey"
108
109
  ente task list --due today
109
110
  ente activity create --type note --title "Meeting notes" --entity "Alice" --space "Personal"
@@ -125,6 +126,14 @@ ente tasks
125
126
  ente guide # concepts; `ente guide <topic>`: entities, tasks, activities, search, patterns, limits
126
127
  ```
127
128
 
129
+ Entity search, list and detail default to the compact projection. Search returns
130
+ 5 matches by default; list returns 50, and detail returns 20 activities. Search
131
+ and list accept up to 1,000 results; detail accepts up to 200 activities.
132
+ `--projection full` returns the public fields without compact text excerpts.
133
+ `entity get` also accepts `--hours-back` and `--min-count`. A missing or
134
+ archived detail returns `{"data":null}` in JSON. JSON preserves the canonical
135
+ result under `data`; a root `spaces` map supplies the CLI's space labels.
136
+
128
137
  Every command supports `--json`. Run `ente --help` or `ente <group> --help`.
129
138
 
130
139
  ### Command groups
@@ -536,3 +545,20 @@ Gmail applies native word/operator matching; arbitrary mid-name/address substrin
536
545
  and alias expansion are not guaranteed. IMAP applies native address-header
537
546
  substring matching with UIDVALIDITY-bound continuation. Neither source proves
538
547
  complete historical coverage; retain alternatives and ask on unresolved matches.
548
+
549
+ ### Typed entity fields
550
+
551
+ Entity contact and business values are typed field values. Use, for example:
552
+
553
+ ```sh
554
+ ente entity create "Jane Doe" --type person --space Personal --field '{"label":"E-Mail","type":"email","value":"jane@example.com"}'
555
+ ente entity update "Jane Doe" --field '{"label":"Job title","type":"job-title","value":"Architect"}'
556
+ ente entity field add "Jane Doe" --label "Mobilnummer" --type phone --value "+49 1512 3456789"
557
+ ente entity field update <valueId> --value "replacement"
558
+ ente entity field remove <valueId>
559
+ ```
560
+
561
+ `--field` repeats JSON objects. Omitted labels stay unchanged; a supplied label
562
+ replaces that field's values; `"value":null` removes them. Entity `--attr` is
563
+ retained only to report the moved-to-fields error. Activity/task/list attributes
564
+ are unchanged. Entity reads expose field/value IDs, labels, types and text.
package/dist/SKILL.md CHANGED
@@ -131,6 +131,8 @@ Check the exit before parsing. Do not append a successful help command and treat
131
131
  its exit as the preceding command's result. `entity show` reports the supported
132
132
  `entity get` command and fails without making a request.
133
133
 
134
+ Entity reads default to compact public DTOs. Search defaults to 5 results; entity list without a query defaults to 50; entity get defaults to 20 activities. Search/list accept at most 1,000, and get accepts at most 200. Use `--projection full` for full public text and fields. JSON keeps the canonical result under `data` with space labels in the root `spaces` envelope. Missing or archived detail returns `data: null`.
135
+
134
136
  For inbox coverage, page the unfiltered `agent mail threads` list to completion,
135
137
  then inspect thread messages, including updates to older threads. `--unread`
136
138
  and `--needs-reply` answer different questions; unread alone misses read but
@@ -153,17 +155,20 @@ ente auth profiles
153
155
  # Ask keeps scoped evidence on synthesis failure; check synthesisStatus.
154
156
  # Optional sourceHash/sourceFingerprint/passage metadata binds citations to a source version.
155
157
  # query remains deterministic and never starts embedding/indexing. See guide ask-the-graph.
156
- ente search "Alice" [--type person] [--json]
158
+ ente search "Alice" [--type person] [--space <name>] [--limit 5] [--projection compact|full] [--json]
157
159
  ente ask "What's open with Erik?" [--space <name>] [--entity <name>] [--evidence] [--json] # AI answer + citations
158
160
  ente query "QM system export" [--space <name>] [--entity <name>] [--since <epoch-ms>] [--until <epoch-ms>] [--limit 12] [--verbose] [--json] # evidence only, no AI
159
161
 
160
162
  # Entities
161
- ente entity list [--query <text>] [--type person|org|project|topic|place|object] [--space <name>] [--limit 50] [--archived] [--json]
162
- ente entity create "Jane Doe" --type person [--pin "Acme Corp"] [--share-parents --parent-space-grant-fingerprint <token>] [--alias "JD"] [--attr email=jane@acme.com] [--tag vip] [--description "CTO at Acme"] [--json]
163
+ ente entity list [--query <text>] [--type person|org|project|topic|place|object] [--space <name>] [--limit <count>] [--projection compact|full] [--archived] [--json]
164
+ ente entity create "Jane Doe" --type person [--pin "Acme Corp"] [--share-parents --parent-space-grant-fingerprint <token>] [--alias "JD"] [--field '{"label":"E-Mail","type":"email","value":"jane@acme.com"}'] [--tag vip] [--description "CTO at Acme"] [--json]
163
165
  ente entity create "Leistungsphase 1" --type topic --space "Studio" --parent "Building A" --exclusive-parent [--json]
164
166
  ente entity duplicate <name-or-id> --space <space> [--name "New project"] [--include-exclusive-children] [--json]
165
- ente entity get "Jane Doe" [--json]
166
- ente entity update "Jane Doe" [--name "Jane A. Doe"] [--alias-add "Jane"] [--alias-remove "JD"] [--attr role=CEO] [--tag vip] [--description "…"] [--json]
167
+ ente entity get "Jane Doe" [--limit 20] [--hours-back <hours>] [--min-count 5] [--projection compact|full] [--json]
168
+ ente entity update "Jane Doe" [--name "Jane A. Doe"] [--alias-add "Jane"] [--alias-remove "JD"] [--field '{"label":"Job title","type":"job-title","value":"CEO"}'] [--tag vip] [--description "…"] [--json]
169
+ ente entity field add "Jane Doe" --label "Mobilnummer" --type phone --value "+49 1512 3456789" [--json]
170
+ ente entity field update <valueId> --value "new text" [--json]
171
+ ente entity field remove <valueId> [--json]
167
172
  ente entity rename "Lorey Georg" "Georg Lorey" # change display name
168
173
  ente entity pin "Jane Doe" "Acme Corp" [--role "student"] [--share-parents --parent-space-grant-fingerprint <token>] [--json]
169
174
  ente entity unpin "Jane Doe" "Acme Corp" [--json]
@@ -176,8 +181,8 @@ ente entity restore <entity-id> [--share-parents --parent-space-grant-fingerprin
176
181
  # Activities
177
182
  ente activity list [--entity "Jane"] [--compact] [--cursor <nextCursor>] [--min-count 0] [--type note|conversation|meeting|call|message|task] [--attr k=v] [--only-open] [--hours 168] [--limit 20] [--sort deadline|created] [--json]
178
183
  ente activity create --type meeting --title "Call with Jane" --entity "Jane Doe" --entity "Acme Corp" --space "Work" [--content "…"] [--content-file ./notes.md] [--auto-link --entity-space-grant-fingerprint <token>] [--json]
179
- ente activity search "quarterly review" [--entity "Acme"] [--type meeting] [--limit 10] [--json]
180
- ente activity get <activityId> [--json] # complete detail: body, full nested agenda, messages/replies, entities, attachments
184
+ ente activity search "quarterly review" [--entity "Acme"] [--type meeting] [--limit 20] [--projection compact|full] [--json]
185
+ ente activity get <activityId> [--projection compact|full] [--json] # public detail; use --projection full for full text and attachments
181
186
  ente activity transcript <activityId> [--grep "Preis"] [--context 2] [--recording <id>] [--json] # transcript of the recording behind it
182
187
  ente activity update <activityId> [--title "…"] [--content "…"] [--deadline "2026-05-26" | --clear-deadline] [--entity-add "Bob"] [--entity-remove "Carol"] [--agent-assignee <agentId> ... | --clear-agent-assignees] [--json]
183
188
  ente activity content read <activityId> [--cursor <cursor> --expected-version <version>] [--max-blocks 20] [--max-characters 12000] [--json]
@@ -189,9 +194,9 @@ ente activity restore <activityId> [--json]
189
194
 
190
195
  # Database lists (entity + typed columns; each row is a note/task activity; no date column type)
191
196
  ente list create "<name>" --space "<space>" [--icon <topic-icon>] [--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
197
+ ente list add "<list>" [--space "<space>"] --title "…" [--attr k=v ...] [--key <textColumn>] [--content-file ./row.md] [--json] # --key = upsert by that cell
193
198
  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
199
+ ente list import "<list>" [--space "<space>"] --file rows.jsonl --key <textColumn> [--dry-run] [--concurrency 4] [--json] # {"title","attrs","content"} per line → created/updated/unchanged
195
200
  ente list show "<list>" [--all | --cursor <nextCursor>] [--limit 100] [--where k=v ...] [--view] [--json] # all rows by default; --view = table's saved filters
196
201
  # 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
202
 
@@ -250,6 +255,12 @@ ente agent mail reply <thread-id> --message <message-id> --reply-all (--text "Re
250
255
  ente agent mail mark <thread-id> --state-version <version> (--handled | --open | --needs-reply | --read | --unread) [--json]
251
256
  ```
252
257
 
258
+ New list rows require explicit `--space`, including import dry runs and lists in a single space. Updates to existing rows keep their current space.
259
+
260
+
261
+ Activity search and get return canonical public DTOs, defaulting to compact text. Use `--projection full` to include full public fields and attachment metadata. Missing or archived detail returns `data: null`. Search accepts at most 200 results and `--entity` includes the same bounded direct-child history as other canonical reads. The JSON result stays under `data`; `spaces` is a separate label envelope. Activity list keeps its installed filtering, sorting and pagination profile.
262
+
263
+
253
264
  Received attachments are available through the same bound agent credential;
254
265
  no browser login is needed. `ente agent mail show <thread-id> --json` lists
255
266
  `attachments` on each message with `attachmentId`, `filename`, `mimeType`, and
@@ -736,3 +747,9 @@ Gmail uses native word/operator matching, without guaranteed arbitrary substring
736
747
  or alias expansion. IMAP uses native address-header substring search and checks
737
748
  UIDVALIDITY on continuation. Never claim complete historical coverage or send
738
749
  from a recipient lookup; disclose choices and ask on unresolved alternatives.
750
+
751
+ Entity values use typed `fields`; entity `--attr` and attribute payloads are legacy errors.
752
+ `entity update --field` merges only supplied labels. Repeat JSON objects to store
753
+ several values under one label; use `"value":null` to remove that label's values.
754
+ A field ID selects an existing definition; a new label is owned by the acting
755
+ space. Activity, task and list `--attr` options keep their existing behavior.