ente-cli 0.4.60 → 0.4.61
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 +60 -11
- package/dist/SKILL.md +85 -15
- package/dist/cli.mjs +352 -165
- package/dist/cli.mjs.map +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ente CLI
|
|
2
2
|
|
|
3
3
|
Command-line interface for [ente](https://github.com/valentindoering/ente) — a
|
|
4
|
-
relationship manager and knowledge graph (people, orgs, projects, topics and the
|
|
4
|
+
relationship manager and knowledge graph (people, orgs, projects, topics, places, objects and the
|
|
5
5
|
notes/calls/tasks/conversations logged against them).
|
|
6
6
|
|
|
7
7
|
TypeScript, built on [clipanion](https://clipanion.dev/), bundled with esbuild
|
|
@@ -57,14 +57,16 @@ ente auth pair --url https://your-deployment.convex.site --email you@example.com
|
|
|
57
57
|
One Ente approval page lists all profiles and scopes. Existing local profiles
|
|
58
58
|
are never overwritten unless `--replace` is supplied. A stopped or expired CLI
|
|
59
59
|
run must be started again. Pending requests expire after ten minutes.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
read/unread, and change their workflow state. `write`
|
|
63
|
-
|
|
60
|
+
Every external credential is bound to an Ente agent. With `read`, it can read
|
|
61
|
+
allowed space content and inspect the bound agent. It can also mark inbox threads
|
|
62
|
+
read/unread, and change their workflow state when an inbox is enabled. `write`
|
|
63
|
+
additionally permits changes within the agent’s current space policy, agent
|
|
64
|
+
configuration changes, and sending email from its active permitted inbox. The CLI saves approved profiles before
|
|
64
65
|
activating their keys, so a failed local save cannot leave active keys behind.
|
|
65
66
|
|
|
66
|
-
For headless integrations or
|
|
67
|
-
and enter it directly in the terminal
|
|
67
|
+
For headless integrations, create or select an agent in `/agents`, issue a
|
|
68
|
+
credential from its Connections settings, and enter it directly in the terminal.
|
|
69
|
+
Several credentials may belong to one agent. Existing migrated keys remain valid:
|
|
68
70
|
|
|
69
71
|
```bash
|
|
70
72
|
ente auth login --url https://your-deployment.convex.site --key-stdin
|
|
@@ -82,10 +84,12 @@ ENTE_PROFILE=mail-operator ente agent config show
|
|
|
82
84
|
ENTE_PROFILE=mail-operator ente agent mail threads --unread
|
|
83
85
|
```
|
|
84
86
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
Agent keys use scoped REST calls and signed CLI JWTs carrying the agent and
|
|
88
|
+
credential IDs. Content calls recheck the live key and agent policy, including
|
|
89
|
+
cached JWT calls. Human-only settings and administration stay in the web app;
|
|
90
|
+
there is no unrestricted account-key fallback. CLI pairing without `--agent`
|
|
91
|
+
creates a named connection agent. MCP authorization creates a connection agent
|
|
92
|
+
named for the client.
|
|
89
93
|
|
|
90
94
|
Named profiles are optional. Use one only when a person or process deliberately
|
|
91
95
|
switches between several credentials. `--profile` overrides `ENTE_PROFILE`.
|
|
@@ -151,6 +155,11 @@ lets the bound external agent start, claim, and reply to external threads withou
|
|
|
151
155
|
calling an Ente-hosted model. Ente prompt and scheduled runs configure the Ente agent
|
|
152
156
|
counterpart; they are not instructions or schedules for the external operator.
|
|
153
157
|
The caller cannot select another agent, mailbox, or sender.
|
|
158
|
+
`ente agent list` shows the agent bound to this credential, including migrated
|
|
159
|
+
connection keys. Migrated keys keep their original scopes: listing that identity
|
|
160
|
+
does not grant prompt or conversation access. History needs `agent:read`;
|
|
161
|
+
`agent new` and `agent send` need `agent:communicate` and post messages as the
|
|
162
|
+
agent. They do not invoke a hosted model or impersonate a human user.
|
|
154
163
|
The corresponding scopes are `agent:read`, `agent:write`, `mail:read`, and
|
|
155
164
|
`mail:send`, and `agent:communicate`.
|
|
156
165
|
|
|
@@ -287,6 +296,14 @@ Never put secrets in chat, repositories, project `.env` files, or logs.
|
|
|
287
296
|
|
|
288
297
|
### Process a permitted user mailbox
|
|
289
298
|
|
|
299
|
+
Existing provider drafts retain their attachments when edited or sent through
|
|
300
|
+
`user-mailbox`, including the web composer's 25 MB combined raw-file budget
|
|
301
|
+
(25,000,000 bytes, at most 24 files). The complete MIME message must fit 35 MiB;
|
|
302
|
+
providers can allow less. `loadDraft` returns file metadata and a reviewed draft
|
|
303
|
+
version, without file bytes or private storage references. Attach new files in
|
|
304
|
+
the web composer. The agent's own inbox keeps its separate attachment limits.
|
|
305
|
+
|
|
306
|
+
|
|
290
307
|
A user's Gmail/IMAP inbox is separate from the agent's own email address. In
|
|
291
308
|
Ente `/agents`, the owner selects the mailboxes this personal agent can read,
|
|
292
309
|
classification/reply permissions, destination spaces, and full conversation
|
|
@@ -318,3 +335,35 @@ and 100 per UTC day. A successful operation acknowledges only its own purpose.
|
|
|
318
335
|
Published conversations remain durable after provider cache expiry/disconnect.
|
|
319
336
|
Their individual messages appear in entity activity feeds; activity content reads
|
|
320
337
|
return bounded, read-only email blocks with continuation cursors.
|
|
338
|
+
|
|
339
|
+
### Guardian health (global admin)
|
|
340
|
+
|
|
341
|
+
`ente health page --profile default --source toolMessages --since <epoch-ms> --until <epoch-ms> --json`
|
|
342
|
+
reads one content-free aggregate page. Use `--source threads --status idle|running|error`
|
|
343
|
+
or `--source recordings --status pending|transcribing|structuring|reflecting|done|error`
|
|
344
|
+
for current job counts. Use `--since 0` for active jobs; terminal recording statuses require a positive
|
|
345
|
+
`--since` and a window of at most seven days. Legacy terminal rows without update
|
|
346
|
+
timestamps are outside that coverage.
|
|
347
|
+
`--stale-after-ms` defaults to 1800000; `--limit` accepts 1–100. Follow
|
|
348
|
+
`data.continueCursor` with `--cursor` and unchanged arguments until `data.isDone`.
|
|
349
|
+
Counts are page-local. Tool windows are at most seven days. This is a human-only
|
|
350
|
+
global administration endpoint. Agent-bound CLI credentials cannot call it,
|
|
351
|
+
including credentials sponsored by an administrator. Use the web administration
|
|
352
|
+
interface for these operations; creating a broader agent key does not grant access.
|
|
353
|
+
No customer content or record IDs are returned. Unknown tool names become `other`.
|
|
354
|
+
See `docs/admin-health-monitoring.md` for collector continuity and limits.
|
|
355
|
+
|
|
356
|
+
### Assigned tasks and replies
|
|
357
|
+
|
|
358
|
+
Assigned agent work is available through `ente agent tasks <operation>`. Start
|
|
359
|
+
with `ente agent tasks list --view attention --json`, inspect each assignment,
|
|
360
|
+
read its discussion, optionally reply with a stable idempotency key, and
|
|
361
|
+
acknowledge only the returned version you processed. Newer replies remain
|
|
362
|
+
pending. The shipped skill documents pagination, long-message chunks and
|
|
363
|
+
optional five-minute claims. Your prompt and schedule control the workflow.
|
|
364
|
+
|
|
365
|
+
Task assignment accepts multiple agents alongside humans. Use repeatable
|
|
366
|
+
`ente activity create --type task --agent-assignee <agentId>` with the usual entity,
|
|
367
|
+
space and title arguments, or `ente activity update <activityId> --agent-assignee <agentId>`.
|
|
368
|
+
Updating replaces agent assignees and preserves human assignees. Use
|
|
369
|
+
`--clear-agent-assignees` to remove them. Only active agents with write access qualify.
|
package/dist/SKILL.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: m:ente-cli
|
|
3
|
-
description: "Cli: drives the ente CRM and knowledge graph over its Convex API as the signed-in user — entities (people, organisations, projects, topics), activities (notes, calls, meetings, tasks), relationships, spaces, full-text and AI-backed search, agent threads and mail, plus Excalidraw canvas prototypes. Use when context about a person, an organisation or a meeting has to be stored, looked up or updated from the shell. Not for splitting shared costs, which is schnorrer-cli."
|
|
3
|
+
description: "Cli: drives the ente CRM and knowledge graph over its Convex API as the signed-in user — entities (people, organisations, projects, topics, places, objects), activities (notes, calls, meetings, tasks), relationships, spaces, full-text and AI-backed search, agent threads and mail, plus Excalidraw canvas prototypes. Use when context about a person, an organisation or a meeting has to be stored, looked up or updated from the shell. Not for splitting shared costs, which is schnorrer-cli."
|
|
4
4
|
when_to_use: "Remembering what was said in a call or meeting; looking up open tasks, deadlines or follow-ups for a person or project; creating or renaming an entity and pinning it to a parent; linking an activity to several entities or moving it between spaces; asking a question over the whole graph and getting citations; reviewing the voice-recording prompt or debugging a failed recording; sending a notification mail or an agent-inbox reply; posting to the in-app feedback board; managing Excalidraw canvas HTML prototypes on an entity board."
|
|
5
5
|
metadata:
|
|
6
6
|
short-description: Relationship memory through ente
|
|
@@ -8,7 +8,7 @@ metadata:
|
|
|
8
8
|
|
|
9
9
|
# ente-cli - CRM & Relationship Manager CLI Skill
|
|
10
10
|
|
|
11
|
-
ente is a CRM / relationship manager that tracks people, organisations, projects, and
|
|
11
|
+
ente is a CRM / relationship manager that tracks people, organisations, projects, topics, places, and objects (entities), and logs notes, calls, tasks, and conversations (activities) against them. This skill wraps the `ente` CLI so an agent can manage entities, activities, tasks, pins, and search end-to-end.
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -48,10 +48,12 @@ For an agent operator, pair a named profile with the exact agent ID and scope.
|
|
|
48
48
|
For several operators, pass a JSON manifest with up to ten `{ profile, agentId,
|
|
49
49
|
access }` entries. The Ente page shows the complete set for one approval:
|
|
50
50
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
Every external credential is bound to an Ente agent. `read` permits reading
|
|
52
|
+
allowed space content and the bound agent. `write` additionally permits changes
|
|
53
|
+
within the agent’s current space policy. A mailbox is optional; mailbox
|
|
54
|
+
capabilities require an active mailbox and the relevant scopes. Read keys may
|
|
55
|
+
mark inbox threads read/unread, and change their workflow state. A CLI pairing
|
|
56
|
+
without `--agent` creates a named connection agent rather than a user API key.
|
|
55
57
|
|
|
56
58
|
```bash
|
|
57
59
|
ente auth pair --url <convex-site-url> --email <account-email> --profile operator-name --agent <agent-id> --access write
|
|
@@ -60,10 +62,11 @@ ENTE_PROFILE=operator-name ente agent config show --json
|
|
|
60
62
|
ENTE_PROFILE=operator-name ente agent mail threads --unread --json
|
|
61
63
|
```
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
Agent keys use a signed agent binding and credential reference for CLI
|
|
66
|
+
authentication. Current permissions and revocation are checked on each call,
|
|
67
|
+
including cached JWT calls. There is no unrestricted user-key fallback. Create
|
|
68
|
+
and manage keys from the agent’s Connections settings in `/agents`; several
|
|
69
|
+
credentials can belong to the same agent.
|
|
67
70
|
|
|
68
71
|
Named profiles are optional and only needed to switch deliberately between
|
|
69
72
|
credentials. `--profile` overrides `ENTE_PROFILE`. Profiles do not activate
|
|
@@ -89,7 +92,8 @@ npm i -g ente-cli --registry https://registry.npmjs.org
|
|
|
89
92
|
- **Space resolution**: Space names work the same way — exact match first, then substring. Use `--space` to target a workspace.
|
|
90
93
|
- **--json flag**: Every command supports `--json`. Always use `--json` when parsing output programmatically.
|
|
91
94
|
- **Deadlines**: stored as millisecond epochs; displayed as `DD.MM.YYYY` / `DD.MM.YYYY, HH:MM` in Europe/Berlin.
|
|
92
|
-
- **Entity types**: `person`, `org`, `project`, `topic`
|
|
95
|
+
- **Entity types**: `person`, `org`, `project`, `topic`, `place`, `object`
|
|
96
|
+
- **Place vs Object**: use `place` for a specific location (city, apartment, room), `object` for a specific physical thing (device, furniture), and `topic` for a general subject. Create entities only when their identity or relationships will be useful later.
|
|
93
97
|
- **Activity types**: `note`, `conversation`, `meeting`, `call`, `message`, `task`
|
|
94
98
|
|
|
95
99
|
---
|
|
@@ -110,7 +114,7 @@ ente ask "What's open with Erik?" [--space <name>] [--entity <name>] [--evidence
|
|
|
110
114
|
ente query "QM system export" [--space <name>] [--entity <name>] [--verbose] [--json] # evidence only, no AI
|
|
111
115
|
|
|
112
116
|
# Entities
|
|
113
|
-
ente entity list [--query <text>] [--type person|org|project|topic] [--space <name>] [--limit 50] [--archived] [--json]
|
|
117
|
+
ente entity list [--query <text>] [--type person|org|project|topic|place|object] [--space <name>] [--limit 50] [--archived] [--json]
|
|
114
118
|
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]
|
|
115
119
|
ente entity get "Jane Doe" [--json]
|
|
116
120
|
ente entity update "Jane Doe" [--name "Jane A. Doe"] [--alias-add "Jane"] [--alias-remove "JD"] [--attr role=CEO] [--tag vip] [--description "…"] [--json]
|
|
@@ -128,7 +132,7 @@ ente activity list [--entity "Jane"] [--type note|conversation|meeting|call|mess
|
|
|
128
132
|
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]
|
|
129
133
|
ente activity search "quarterly review" [--entity "Acme"] [--type meeting] [--limit 10] [--json]
|
|
130
134
|
ente activity get <activityId> [--json] # complete detail: body, full nested agenda, messages/replies, entities, attachments
|
|
131
|
-
ente activity update <activityId> [--title "…"] [--content "…"] [--entity-add "Bob"] [--entity-remove "Carol"] [--json]
|
|
135
|
+
ente activity update <activityId> [--title "…"] [--content "…"] [--entity-add "Bob"] [--entity-remove "Carol"] [--agent-assignee <agentId> ... | --clear-agent-assignees] [--json]
|
|
132
136
|
ente activity content read <activityId> [--cursor <cursor> --expected-version <version>] [--max-blocks 20] [--max-characters 12000] [--json]
|
|
133
137
|
ente activity content edit <activityId> --expected-version <version> --operations-file ./operations.json [--json]
|
|
134
138
|
ente activity message add <activityId> (--content "…" | --content-file ./update.md) [--json]
|
|
@@ -189,11 +193,24 @@ ente agent mail reply <thread-id> --message <message-id> --reply-all (--text "Re
|
|
|
189
193
|
ente agent mail mark <thread-id> --state-version <version> (--handled | --open | --needs-reply | --read | --unread) [--json]
|
|
190
194
|
```
|
|
191
195
|
|
|
192
|
-
Agent operator credentials are bound server-side to one exact agent.
|
|
196
|
+
Agent operator credentials are bound server-side to one exact agent.
|
|
197
|
+
`agent list` shows only that bound identity, including for migrated connection
|
|
198
|
+
keys. Migrated keys retain their original scopes. History requires `agent:read`;
|
|
199
|
+
`agent new` and `agent send` require `agent:communicate`, author messages as the
|
|
200
|
+
agent, and never invoke a hosted model or fall back to a human identity.
|
|
201
|
+
Agent read
|
|
193
202
|
adds `agent:read` and, while the inbox is active, `mail:read`. Agent write adds
|
|
194
203
|
`agent:write`, `agent:communicate`, and, while the inbox is active, `mail:send`.
|
|
195
204
|
Use `agent threads --attention agent`, then `agent send`; the CLI claims the current
|
|
196
205
|
attention version before replying so concurrent cron workers cannot duplicate work.
|
|
206
|
+
For a user-authorized Dream/maintenance run, use `agent config show`,
|
|
207
|
+
`agent threads --include-archived --limit 20`, and `agent show <thread-id>`.
|
|
208
|
+
Choose messages by their timestamps, including recent messages in older threads.
|
|
209
|
+
Skip scheduled-run and reflection summaries as sources for new durable lessons.
|
|
210
|
+
Compare the existing prompt before writing; `agent config set-prompt` replaces
|
|
211
|
+
the entire prompt, so preserve all unrelated instructions and context. Leave
|
|
212
|
+
the prompt unchanged when there is nothing useful to retain. The user's own
|
|
213
|
+
scheduler and prompt determine whether to perform this maintenance.
|
|
197
214
|
The prompt and
|
|
198
215
|
scheduled runs are Ente configuration for the Ente agent counterpart. They are
|
|
199
216
|
not work instructions or scheduler settings for the external operator. The key
|
|
@@ -248,6 +265,11 @@ ambiguous timeout, retry the exact operation with the same
|
|
|
248
265
|
|
|
249
266
|
For a focused update to an existing long body, use `activity content read`, select the returned
|
|
250
267
|
version-scoped block targets, then call `activity content edit` with the exact `contentVersion`.
|
|
268
|
+
Activity mentions use `[activity](ente://activity/<activityId>?display=card)` or
|
|
269
|
+
`display=inline`. Copy the exact activity ID returned by Ente without changing
|
|
270
|
+
any characters. Newly introduced malformed or wrong-table mention IDs are
|
|
271
|
+
rejected with `INVALID_INPUT` by activity, agenda, and message writes. Existing
|
|
272
|
+
broken references remain editable and render as unavailable.
|
|
251
273
|
The operations file is either a JSON array or `{ "operations": [...] }`; supported operation types
|
|
252
274
|
are `replaceBlock`, `insertBefore`, `insertAfter`, `deleteBlock`, `replaceText`, and `append`.
|
|
253
275
|
Use `replaceText` with a unique exact Markdown substring for file-patch-like changes inside a large
|
|
@@ -295,11 +317,14 @@ ente recording list [--user <email|id>] [--status error] [--limit 20] [--json]
|
|
|
295
317
|
ente recording show <recordingId> [--json] # status, error, transcript size, activity count
|
|
296
318
|
ente recording inspect <recordingId> [--json] # audio container: brands, fragmented?, box counts
|
|
297
319
|
ente recording rerun <recordingId> [--wait] [--timeout 900] [--json]
|
|
320
|
+
ente recording backups [--state failed|joining|capturing] [--user <email|id>] [--json] # server backups of browser recordings
|
|
321
|
+
ente recording backups join <backupId> [--now] # retry a failed join; --now joins one still waiting for its device
|
|
298
322
|
```
|
|
299
323
|
|
|
300
324
|
- Admin-only (`api.admin.recordings.*`); the ordinary `recordings.*` API is creator-scoped.
|
|
301
325
|
- `rerun` never modifies or deletes the stored audio; `--wait` polls to `done`/`error` and exits non-zero on failure.
|
|
302
326
|
- `--status` scans newest-first and says so when the sweep is capped.
|
|
327
|
+
- A backup in `failed` holds the only server copy of audio whose device never came back; read `error`, fix the cause, then `backups join`.
|
|
303
328
|
|
|
304
329
|
### Feedback board
|
|
305
330
|
|
|
@@ -361,6 +386,14 @@ Parent relationships are spaceless. Both entities must be accessible. Every acti
|
|
|
361
386
|
|
|
362
387
|
## User mailbox processing
|
|
363
388
|
|
|
389
|
+
Existing provider drafts retain their attachments when edited or sent through
|
|
390
|
+
`user-mailbox`, including the web composer's 25 MB combined raw-file budget
|
|
391
|
+
(25,000,000 bytes, at most 24 files). The complete MIME message must fit 35 MiB;
|
|
392
|
+
providers can allow less. `loadDraft` returns file metadata and a reviewed draft
|
|
393
|
+
version, without file bytes or private storage references. Attach new files in
|
|
394
|
+
the web composer. The agent's own inbox keeps its separate attachment limits.
|
|
395
|
+
|
|
396
|
+
|
|
364
397
|
`ente agent user-mailbox --request JSON` or `--request-file PATH` uses the mailbox
|
|
365
398
|
permission granted to the agent bound to this operator credential. This is
|
|
366
399
|
separate from `ente agent mail`, which manages the agent's own inbox. The owner
|
|
@@ -382,7 +415,7 @@ through old backlog. Read starts with the newest message and returns
|
|
|
382
415
|
minutes and fail after new arrivals or manual corrections. Re-read and claim
|
|
383
416
|
again rather than forcing a stale write. Default change limits are 20 per agent
|
|
384
417
|
execution and 100 per UTC day. Classification and replies are acknowledged
|
|
385
|
-
independently. Mailbox permission levels are read/draft, read/draft/assign, and full access including sending and inbox changes. `accounts` lists allowed connections; `search` returns bounded cursor pages; `context` reads a captured mail scope; `editVisible` queues a revision-bound editor patch; the browser must receive it before insertion. Interactive IMAP reply reads cover the retained mailbox conversation and report `historyScope`; `purpose: classification` always reads complete provider history. `draft`, `loadDraft`, and `discardDraft` use provider drafts. `send` requires full permission, an exact draftVersion returned by loadDraft, and a unique requestId. Writes also require the active agentThreadId. Reuse requestId for the same operation; uncertain provider outcomes block automatic retries.
|
|
418
|
+
independently. Mailbox permission levels are read/draft, read/draft/assign, and full access including sending and inbox changes. `accounts` lists allowed connections; `search` returns bounded cursor pages; `context` reads a captured mail scope; `editVisible` queues a revision-bound editor patch; the browser must receive it before insertion. Its canonical patch is `{revision,operation:"draft",draft:{body:"text"}}`. The exact shorthand `{draft:{body:"text"}}` binds to the active agent thread’s captured revision. Omitted draft fields are preserved; an explicit connectionId must match the captured scope. Unknown fields, partial bindings, stale revisions and edits without draft permission are rejected. Interactive IMAP reply reads cover the retained mailbox conversation and report `historyScope`; `purpose: classification` always reads complete provider history. `draft`, `loadDraft`, and `discardDraft` use provider drafts. `send` requires full permission, an exact draftVersion returned by loadDraft, and a unique requestId. Writes also require the active agentThreadId. Reuse requestId for the same operation; uncertain provider outcomes block automatic retries.
|
|
386
419
|
|
|
387
420
|
Optional schedules accept `intervalHours: 1 | 24` and
|
|
388
421
|
`mailPurpose: classification | replies`; empty queues skip model execution.
|
|
@@ -410,3 +443,40 @@ are ready immediately and confirmation completes the move atomically. Bulk jobs
|
|
|
410
443
|
continue server-side; track with status. A stale plan fails closed; completed batches remain applied.
|
|
411
444
|
Prepare a new review for remaining contents. Cancel only before execution.
|
|
412
445
|
`restore --source SPACE_ID` restores an archived space for an owner/admin.
|
|
446
|
+
|
|
447
|
+
### Guardian health (global admin)
|
|
448
|
+
|
|
449
|
+
`ente health page --profile default --source toolMessages --since <epoch-ms> --until <epoch-ms> --json`
|
|
450
|
+
reads one content-free aggregate page. Use `--source threads --status idle|running|error`
|
|
451
|
+
or `--source recordings --status pending|transcribing|structuring|reflecting|done|error`
|
|
452
|
+
for current job counts. Use `--since 0` for active jobs; terminal recording statuses require a positive
|
|
453
|
+
`--since` and a window of at most seven days. Legacy terminal rows without update
|
|
454
|
+
timestamps are outside that coverage.
|
|
455
|
+
`--stale-after-ms` defaults to 1800000; `--limit` accepts 1–100. Follow
|
|
456
|
+
`data.continueCursor` with `--cursor` and unchanged arguments until `data.isDone`.
|
|
457
|
+
Counts are page-local. Tool windows are at most seven days. This is a human-only
|
|
458
|
+
global administration endpoint. Agent-bound CLI credentials cannot call it,
|
|
459
|
+
including credentials sponsored by an administrator. Use the web administration
|
|
460
|
+
interface for these operations; creating a broader agent key does not grant access.
|
|
461
|
+
No customer content or record IDs are returned. Unknown tool names become `other`.
|
|
462
|
+
See `docs/admin-health-monitoring.md` for collector continuity and limits.
|
|
463
|
+
|
|
464
|
+
## Assigned tasks and replies
|
|
465
|
+
|
|
466
|
+
Use your bound agent's task queue independently of its mailbox:
|
|
467
|
+
|
|
468
|
+
- `ente agent tasks list --json` lists open assignments, including undated tasks.
|
|
469
|
+
- `ente agent tasks list --view attention --json` lists unseen changes, including closed or deleted tasks.
|
|
470
|
+
- `ente agent tasks inspect --assignment <id> --json` returns durable events, `observationId`, `observedVersion`, `snapshotVersion` and `hasMore`. Continue with `--observation <id>` while `hasMore` is true. Reading does not acknowledge anything.
|
|
471
|
+
- `ente agent tasks get --assignment <id> --json` reads task metadata and a body excerpt. Use the ordinary activity content read tool with its stable activity ID for the full body.
|
|
472
|
+
- `ente agent tasks discussion --assignment <id> --json` pages through comments using `--cursor`. Long messages are marked `truncated`; finish them with `ente agent tasks message --assignment <id> --message <message-id> --offset <next-offset> --expected-updated-at <timestamp> --json`. Restart if the message changes.
|
|
473
|
+
- `ente agent tasks comment --assignment <id> --content "..." --idempotency-key <stable-run-operation-id> --json` posts as your agent. Reuse a key only for the identical payload. A conflicting retry fails.
|
|
474
|
+
- `ente agent tasks acknowledge --assignment <id> --observation <id> --version <observed-version> --json` acknowledges only processed input. Observations expire after 15 minutes. A later reply stays pending.
|
|
475
|
+
- `claim`, `renew` and `release` accept `--assignment`; renew/release require `--claim-token`. Claims expire after five minutes and are optional. They do not grant write access or hide work permanently.
|
|
476
|
+
|
|
477
|
+
Each assignment ID identifies one enrollment. After unassignment/reassignment, use the new ID. Assignment never grants space access. Completion uses the ordinary task operations; the user-provided prompt decides when to close a task. These tools neither start a worker nor impose a response policy.
|
|
478
|
+
|
|
479
|
+
Assign agents to tasks with repeatable `activity create --agent-assignee <agentId>` or
|
|
480
|
+
`activity update <activityId> --agent-assignee <agentId>`. Updating replaces only agent
|
|
481
|
+
assignees and preserves humans. `--clear-agent-assignees` removes the agent assignments.
|
|
482
|
+
Assignment requires the agent to have write access in the task space; it grants no access.
|