ente-cli 0.4.99 → 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 +26 -1
- package/dist/SKILL.md +41 -9
- package/dist/cli.mjs +205 -86
- package/dist/cli.mjs.map +4 -4
- package/package.json +1 -1
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
740
|
-
|
|
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.
|