ente-cli 0.4.98 → 0.4.100

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
@@ -353,6 +353,17 @@ at most 20 address candidates with continuation. For example:
353
353
  ente agent user-mailbox --request '{"operation":"recipients","connectionId":"<permitted-private-connection>","query":"Alex Morgan"}'
354
354
  ```
355
355
 
356
+ When asked to write a new email from the inbox with no message selected, open
357
+ the draft first with one `editVisible` patch. Use an explicit address or a clear,
358
+ explicitly requested contact already in the authorized captured context. Otherwise
359
+ leave `draft.to` empty, including ambiguous, missing, incomplete or unavailable
360
+ matches. Keep the requested subject and body; all fields may be empty for a blank
361
+ email. Do not delay opening for lookup, history, provider research or clarification.
362
+ Never pick an arbitrary candidate. Explain an unresolved name after preparing the
363
+ draft. Later explicit recipient research retains the existing recency and access
364
+ checks. Opening and autosaving a draft never authorizes sending.
365
+
366
+ Outside inbox composition, use recipient resolution for missing requested names.
356
367
  For interactive name resolution, add `"resolve":true` (without `cursor`). The
357
368
  server discovers names and updates all candidate addresses in one recency pass.
358
369
  It uses a shared ceiling of 20 cached pages of at most 200 records (4000 reads
@@ -360,7 +371,8 @@ across both passes, with a separate byte bound per page), or 4 provider pages
360
371
  of at most 20 matching headers (80 fetched headers; native searches, metadata
361
372
  requests and retries are additional network operations). It returns terminal
362
373
  `resolutionComplete`, `discoveryComplete`, `recencyComplete` and budget metadata.
363
- If incomplete or truncated, ask for an explicit address or selection. Do not
374
+ If incomplete or truncated, ask for an explicit address or selection before choosing
375
+ a recipient; this does not block opening an inbox draft with an empty recipient. Do not
364
376
  claim uniqueness or latest contact, automatically restart resolution, or expand
365
377
  to provider research. Preserve all requested recipients. Provider source is for
366
378
  explicitly requested or necessary provider/older correspondence searches.
@@ -565,3 +577,16 @@ ente entity field remove <valueId>
565
577
  replaces that field's values; `"value":null` removes them. Entity `--attr` is
566
578
  retained only to report the moved-to-fields error. Activity/task/list attributes
567
579
  are unchanged. Entity reads expose field/value IDs, labels, types and text.
580
+
581
+ ### Experimental Ask availability
582
+
583
+ Hosted `ente ask` is an opt-in beta for the existing private cohort, not a general
584
+ AI chat or included-model execution API. Most accounts receive an explanation
585
+ without model execution. Explicit own/instance Ask model slots retain their route.
586
+ Use `ente search`, `ente entity get`, `ente activity search/list/get` and summarize
587
+ records with your agent. Do not change provider/model settings to repair beta
588
+ unavailability. Ask exits nonzero unless `synthesisStatus` is `answered`.
589
+
590
+ Default/lexical `ente query` remains deterministic and available without AI.
591
+ Hybrid/semantic query requires private beta enrollment and separate passage
592
+ consent; unavailable responses point to ordinary commands and lexical query.
package/dist/SKILL.md CHANGED
@@ -152,17 +152,19 @@ ente auth logout
152
152
  ente auth profiles
153
153
 
154
154
  # Search & ask
155
- # Ask keeps scoped evidence on synthesis failure; check synthesisStatus.
155
+ # Ask is an experimental opt-in beta, not a general AI chat or included-model execution API.
156
+ # Prefer ordinary search/entity/activity commands; unavailable beta is not a provider setup task.
157
+ # Check the exit code and synthesisStatus; never present a failed/evidence-only result as an AI answer.
156
158
  # Optional sourceHash/sourceFingerprint/passage metadata binds citations to a source version.
157
159
  # query remains deterministic and never starts embedding/indexing. See guide ask-the-graph.
158
160
  ente search "Alice" [--type person] [--space <name>] [--limit 5] [--projection compact|full] [--json]
159
- ente ask "What's open with Erik?" [--space <name>] [--entity <name>] [--evidence] [--json] # AI answer + citations
161
+ ente ask "What's open with Erik?" [--space <name>] [--entity <name>] [--evidence] [--json] # enrolled beta only: AI answer + citations
160
162
  ente query "QM system export" [--space <name>] [--entity <name>] [--since <epoch-ms>] [--until <epoch-ms>] [--limit 12] [--verbose] [--json] # evidence only, no AI
161
163
 
162
164
  # Entities
163
165
  ente entity list [--query <text>] [--type person|org|project|topic|place|object] [--space <name>] [--limit <count>] [--projection compact|full] [--archived] [--json]
164
166
  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]
165
- ente entity create "Leistungsphase 1" --type topic --space "Studio" --parent "Building A" [--json]
167
+ ente entity create "Leistungsphase 1" --type topic --space "Studio" --parent "Building A" [--parent-role "Mandant"] [--json]
166
168
  ente entity duplicate <name-or-id> --space <space> [--name "New project"] [--include-exclusive-children] [--json]
167
169
  ente entity get "Jane Doe" [--limit 20] [--hours-back <hours>] [--min-count 5] [--projection compact|full] [--json]
168
170
  ente entity update "Jane Doe" [--allow-non-exclusive-children | --disallow-non-exclusive-children] [--name "Jane A. Doe"] [--alias-add "Jane"] [--alias-remove "JD"] [--field '{"label":"Job title","type":"job-title","value":"CEO"}'] [--tag vip] [--description "…"] [--json]
@@ -216,7 +218,7 @@ ente canvas html delete <boardId> <elementId> [--json]
216
218
  # Entity files: the entity's linked Nextcloud folder, through YOUR own Nextcloud
217
219
  # connection. Works only with your personal agent's key; shared agents are refused.
218
220
  # MCP/REST: entity_files_list, entity_file_upload, entity_folder_link, entity_folder_create.
219
- ente files list <entityId> [--path "03 Unterlagen"] [--json]
221
+ ente files list <entityId> [--path "03 Unterlagen"] [--json] # --json: linkedFolderPath = the linked folder's path from your Nextcloud root; join it with an item path for the exact file
220
222
  ente files upload <entityId> <local-file> [--folder "03 Unterlagen"] [--name "Vertrag.pdf"] [--mime-type application/pdf] [--json] # at most 10 MiB
221
223
  ente files upload <entityId> --activity <activityId> --storage-id <storageId> --name "Vertrag.pdf" [--folder …] [--json] # copy an activity attachment
222
224
  ente files link <entityId> "Mandate/2026-017 Zebrafink" [--space <spaceId>] [--json]
@@ -396,7 +398,9 @@ not enter another browser's local undo stack.
396
398
  For entity files, `files list` returns a `status` (`ok`, `not_linked`, `not_connected`,
397
399
  `reconnect_required`, `no_access`, `folder_deleted`, `unreachable`, `unavailable`) instead of an
398
400
  empty list; tell the user to connect or reconnect Nextcloud in settings rather than retrying.
399
- Paths for `link`/`create-folder` are relative to the user's Nextcloud root; `--path`/`--folder`
401
+ Paths for `link`/`create-folder` are relative to the user's Nextcloud root (where the space has a
402
+ Nextcloud space folder they must lie inside it, e.g. `Kanzlei/Mandate/2026-017`; otherwise the
403
+ reason is `outside_space_folder`); `--path`/`--folder`
400
404
  are relative to the entity's linked folder. Inline uploads are limited to 10 MiB; for an
401
405
  existing activity attachment pass `--activity` and `--storage-id` (from `activity get --json`).
402
406
  A taken file name gets a numbered suffix, nothing is overwritten. `--space` is needed only when
@@ -568,6 +572,17 @@ at most 20 address candidates with continuation. For example:
568
572
  ente agent user-mailbox --request '{"operation":"recipients","connectionId":"<permitted-private-connection>","query":"Alex Morgan"}'
569
573
  ```
570
574
 
575
+ When asked to write a new email from the inbox with no message selected, open
576
+ the draft first with one `editVisible` patch. Use an explicit address or a clear,
577
+ explicitly requested contact already in the authorized captured context. Otherwise
578
+ leave `draft.to` empty, including ambiguous, missing, incomplete or unavailable
579
+ matches. Keep the requested subject and body; all fields may be empty for a blank
580
+ email. Do not delay opening for lookup, history, provider research or clarification.
581
+ Never pick an arbitrary candidate. Explain an unresolved name after preparing the
582
+ draft. Later explicit recipient research retains the existing recency and access
583
+ checks. Opening and autosaving a draft never authorizes sending.
584
+
585
+ Outside inbox composition, use recipient resolution for missing requested names.
571
586
  For interactive name resolution, add `"resolve":true` (without `cursor`). The
572
587
  server discovers names and updates all candidate addresses in one recency pass.
573
588
  It uses a shared ceiling of 20 cached pages of at most 200 records (4000 reads
@@ -575,7 +590,8 @@ across both passes, with a separate byte bound per page), or 4 provider pages
575
590
  of at most 20 matching headers (80 fetched headers; native searches, metadata
576
591
  requests and retries are additional network operations). It returns terminal
577
592
  `resolutionComplete`, `discoveryComplete`, `recencyComplete` and budget metadata.
578
- If incomplete or truncated, ask for an explicit address or selection. Do not
593
+ If incomplete or truncated, ask for an explicit address or selection before choosing
594
+ a recipient; this does not block opening an inbox draft with an empty recipient. Do not
579
595
  claim uniqueness or latest contact, automatically restart resolution, or expand
580
596
  to provider research. Preserve all requested recipients. Provider source is for
581
597
  explicitly requested or necessary provider/older correspondence searches.
@@ -633,7 +649,7 @@ blocks. Use existing activity controls to correct thread space/owners.
633
649
 
634
650
  Entity duplication copies the type, name, description, email addresses, icon and enabled bottom-bar tabs in their configured order, database columns/filters/sorts, grouping rules and the calendar-sidebar list/Kanban preference into the selected source space. It never copies activities or existing parents. `--include-exclusive-children` is the compatibility name for recursively recreating branches whose selected parent is each child’s sole regular parent already in that space with exact child names, order and aggregation settings. Selected-child grouping rules refer only to copied aggregation-enabled direct children; excluded children are dropped from the rule. Classifier-parent branches and archived children are excluded. Extra classifier links are never copied. The operation fails atomically above 100 entities including the root. Use parent context or an ID to distinguish same-named phases across projects.
635
651
 
636
- `entity create --parent` atomically creates and attaches a child. Add `--exclusive-parent` to restrict it to that parent. The parent must already belong to the destination space; this path never shares it or its ancestors. Resolve same-named phases by parent context or ID. Do not combine `--parent` with `--pin`; `--pin` retains the older separate-link behavior.
652
+ `entity create --parent` atomically creates and attaches a child. `--parent-role "Gegner"` sets the relationship role on that link in the same write (same rule as `entity pin --role`; requires `--parent`). Add `--exclusive-parent` to restrict it to that parent. The parent must already belong to the destination space; this path never shares it or its ancestors. Resolve same-named phases by parent context or ID. Do not combine `--parent` with `--pin`; `--pin` retains the older separate-link behavior.
637
653
 
638
654
  ## Reviewed space changes
639
655
 
@@ -736,8 +752,11 @@ task and relationship retrieval without provider calls. `--mode lexical` is the
736
752
  same default. Keep `ente search` for fuzzy entity lookup and `ente activity search`
737
753
  for ordinary title/body keyword search.
738
754
 
739
- Use `ente query "question" --mode hybrid --space Personal --json` only when semantic
740
- retrieval is wanted and consented. Hybrid retains typed deterministic structured
755
+ Hybrid/semantic query is an experimental private opt-in beta. It is unavailable
756
+ for most accounts; do not change model/provider settings or repeatedly retry to
757
+ obtain enrollment. Use ordinary commands or lexical query instead.
758
+ Use `ente query "question" --mode hybrid --space Personal --json` only when
759
+ explicitly enrolled and semantic retrieval is wanted and consented. Hybrid retains typed deterministic structured
741
760
  results and combines lexical/vector activity passages. `--mode semantic` returns
742
761
  vector activity passages only, for inspection/comparison. Initial vectors cover
743
762
  only the caller's own Personal notes, conversations, meetings and calls. Related
@@ -780,3 +799,16 @@ conflicting children, including archived or inaccessible ones, without removing
780
799
  links. Legacy `--exclusive-parent` is accepted but inert after policy activation;
781
800
  it never sets the new parent setting. Existing Space confirmation and cycle
782
801
  rules still apply.
802
+
803
+ ### Ask beta availability
804
+
805
+ Hosted `ente ask` is restricted to the existing private beta cohort. The local
806
+ fictional equivalent is test@example.com on a loopback backend. This is separate
807
+ from passage-index consent: enabling/disabling semantic retrieval does not enroll
808
+ another account in hosted Ask. Explicitly configured own/instance Ask model slots
809
+ retain their route and permissions. Ordinary paid plans do not enroll an account.
810
+ If unavailable, use `ente search`, `ente entity get`, `ente activity search`,
811
+ `ente activity list` and `ente activity get`, then summarize the returned records
812
+ with your agent. Default/lexical `ente query` remains available without AI.
813
+ `ask` returns a nonzero exit unless synthesisStatus is answered. Do not request
814
+ a Bedrock key, provider access or model change to repair beta unavailability.