primcli 1.32.0 → 1.34.0

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.
@@ -1,4 +1,4 @@
1
- import { S as normalizeApiBaseUrl, c as resolveConfigEnvironment, i as loadCliConfig } from "../cli-config-BvflSzQe.js";
1
+ import { S as normalizeApiBaseUrl, c as resolveConfigEnvironment, i as loadCliConfig } from "../cli-config-x39ZVsXJ.js";
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import { join } from "node:path";
4
4
  import { homedir } from "node:os";
package/man/primitive.1 CHANGED
@@ -34,11 +34,17 @@ credential. This mode requires WebSocket and the shared saved subscription;
34
34
  --transport poll and a custom --subscription are rejected. The local-mail-*
35
35
  subscription namespace is reserved for shared receiving. No runtime is launched. Repeat --sender or use comma-separated exact
36
36
  addresses. Routine authenticated status interactions do not notify the session.
37
+ Verified receiver presence controls are answered deterministically while the
38
+ exact session binding is eligible. They do not start model turns, wake Claude,
39
+ complete chat waits, or consume --once or --number. Pending verification remains
40
+ durably deferred and reconciles independently of ordinary mail.
37
41
  .PP
38
42
  .B primitive listen --status --notify-session UUID
39
43
  inspects local notification receipts without receiving mail or connecting to a
40
44
  session. Accepted means queued; unknown outcomes are held across restarts and are
41
45
  never automatically resent. Inspect the exact session before a manual resend.
46
+ An explicit Codex Review or Compact refusal is recorded as not_submitted and
47
+ retried after a short delay; a timeout remains unknown.
42
48
  Use --limit (default 100, maximum 1000) and --cursor with the returned nextCursor
43
49
  to page through receipts. Notification subscriptions accept email.received only;
44
50
  --once counts a candidate processed during this invocation, including filtered
@@ -90,6 +96,44 @@ expose local webhook delivery on API hosts where it is enabled. Each command
90
96
  makes one API request. Use their --help output for the input fields. Consumers
91
97
  deduplicate event IDs and report the outcome with the returned attempt and lease.
92
98
  Queue retention does not extend source-content retention; inspect gap counts.
99
+ .SH AGENT LOOP
100
+ Every inbound email carries reply state:
101
+ .B awaiting
102
+ is
103
+ .B you
104
+ when the latest message in its thread is inbound and
105
+ .B them
106
+ when you replied last (queued and scheduled replies count).
107
+ .B primitive inbox next
108
+ prints the oldest email awaiting you with its conversation, and
109
+ .B primitive reply --id ID
110
+ answers it, after which the next call moves on:
111
+ .PP
112
+ .RS
113
+ .nf
114
+ primitive inbox next
115
+ primitive reply --id ID --body TEXT
116
+ primitive inbox next
117
+ .fi
118
+ .RE
119
+ .PP
120
+ Automated mail (bounces, mailer-daemon, postmaster, mail from the very address it was delivered to, delivery reports, Auto-Submitted, X-Auto-Response-Suppress, bulk and list mail) is skipped unless
121
+ .B --include-automated
122
+ is given. The server decides this when the mail arrives and filters on it, so the call does not slow down as unanswered automated mail accumulates; a server without that filter fails with
123
+ .B automated_filter_unsupported
124
+ instead of scanning.
125
+ .B --wait
126
+ blocks until something awaits you, taking the inbox position before checking so no arrival is missed;
127
+ .B --timeout
128
+ bounds it.
129
+ .B --json
130
+ prints a stable envelope.
131
+ .PP
132
+ It is not a work queue: nothing is claimed, so two agents on one inbox get the same email until one replies.
133
+ .PP
134
+ Exit status of
135
+ .BR "primitive inbox next" :
136
+ 0 an email awaits you; 1 error (including reply_state_unsupported from a server without reply state); 2 invalid flags; 5 nothing awaits you.
93
137
  .SH AUTHENTICATION
94
138
  .PP
95
139
  Commands use saved OAuth credentials from
@@ -121,7 +165,10 @@ to remove local credentials, pending email-code auth state, and stale credential
121
165
  .PP
122
166
  Run
123
167
  .B primitive whoami
124
- to verify which account the CLI is authenticated as.
168
+ to verify account authentication. With PRIMITIVE_AGENT_PROFILE selected, it
169
+ prints saved connected identity offline, without claiming live authentication
170
+ or receiving readiness. Use listen --status --notify-session UUID to inspect
171
+ the exact receiver under the same profile.
125
172
  .SH COMMON COMMANDS
126
173
  .TP
127
174
  .B primitive send --to ADDRESS --subject SUBJECT --body TEXT
@@ -140,7 +187,14 @@ Verify DNS records for a pending domain claim.
140
187
  Download DNS records as a BIND-format zone file.
141
188
  .TP
142
189
  .B primitive emails latest
143
- Show recent inbound emails.
190
+ Show recent inbound emails, with whose turn it is (AWAITING) and the reply count.
191
+ .TP
192
+ .B primitive emails latest --awaiting you
193
+ Show only inbound emails waiting on your reply.
194
+ .TP
195
+ .B primitive inbox next
196
+ Show the oldest email awaiting your reply, its conversation, and the reply command. See
197
+ .BR "AGENT LOOP" .
144
198
  .TP
145
199
  .B primitive functions init NAME
146
200
  Scaffold a Primitive Function.
@@ -185,6 +239,36 @@ stable idempotency key. After a lost send response, repeating the same command
185
239
  looks up that key without sending again. Timed-out exact-parent waits retain
186
240
  their claim for resume. A plain reply does not prove task completion.
187
241
 
242
+ .SS Organization agent network
243
+ .B primitive network peers --owner NAME --json
244
+ finds listed agents owned by a coworker in the private default organization
245
+ network. Results include address, owner name and last recorded API activity;
246
+ activity is not live presence. Use the returned cursor for further pages.
247
+ The owner can separately allow an agent to see peers or be seen. Contacts are
248
+ saved addresses, not the network roster. Network listing and contact acceptance
249
+ do not grant task authority. Known addresses can still exchange ordinary email.
250
+
251
+ .SS Explicit communication signals
252
+ .B primitive signal read --id EMAIL_ID --json
253
+ reports that you read one authenticated plain email.
254
+ .B primitive signal ack --id EMAIL_ID --status received --json
255
+ reports acknowledgement; supported statuses are received, will_process, and
256
+ will_not_process. Choose the state you actually intend.
257
+ .B primitive signal working --id EMAIL_ID --expires-in 30 --json
258
+ and
259
+ .B primitive signal typing --id EMAIL_ID --expires-in 30 --json
260
+ report temporary activity. Both default to 30 seconds; typing allows 1-30
261
+ seconds and working allows 1-60. These commands require a saved connected
262
+ profile selected with PRIMITIVE_AGENT_PROFILE and pin its sender identity.
263
+ .PP
264
+ Read and acknowledgement deduplicate by parent, kind and acknowledgement status.
265
+ Unexpired activity deduplicates; a new explicit invocation after a known outcome
266
+ expires may send fresh activity. Unknown sends must reconcile before renewal;
267
+ expired unsent activity is never replayed. No automatic signal or task authority
268
+ is granted. Signal and interaction parents are refused to prevent reply loops.
269
+ JSON outcomes are sent, already_sent, expired (exit 0), not_sent (exit 1), and
270
+ uncertain (exit 4). Ordinary CLI argument errors exit 2.
271
+
188
272
  .SH GLOBAL OPTIONS
189
273
  .TP
190
274
  .B --api-key KEY
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "primcli",
3
- "version": "1.32.0",
3
+ "version": "1.34.0",
4
4
  "description": "Official Primitive CLI: deploy Primitive Functions, send and inspect mail, manage endpoints, all from the terminal. Wraps the @primitivedotdev/sdk runtime client with one-shot commands.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -50,10 +50,10 @@
50
50
  "description": "Manage your account settings, storage, and webhook secret"
51
51
  },
52
52
  "agent-connections": {
53
- "description": "Claim a private invitation from stdin or remove a revoked connection with an owner/admin login."
53
+ "description": "Create, list, invite, revoke, and remove connected agents; claim private invitations through stdin."
54
54
  },
55
55
  "agent": {
56
- "description": "Connect an existing agent privately, manage its contacts, or use agent signup operations."
56
+ "description": "Connect an invited session, enroll a new session using a saved member login, disconnect one saved profile, or manage contacts and signup."
57
57
  },
58
58
  "credits": {
59
59
  "description": "Redeem credit codes and check the organization credit balance"
@@ -64,8 +64,14 @@
64
64
  "registries": {
65
65
  "description": "Create and manage agent registries, publish and resolve agents by handle, and moderate publication requests"
66
66
  },
67
+ "network": {
68
+ "description": "Discover same-organization agents by email address and manage default network visibility. Use `primitive network` to see the commands."
69
+ },
70
+ "agent-networks": {
71
+ "description": "Generated agent network API operations. Prefer `primitive network` for discovery and visibility."
72
+ },
67
73
  "inbox": {
68
- "description": "Check inbound email setup and processing readiness. Prefer `primitive inbox setup` for a guided setup path and `primitive inbox status` for the readiness table."
74
+ "description": "Check inbound email setup and readiness, and work through mail awaiting your reply. Prefer `primitive inbox setup` for a guided setup path, `primitive inbox status` for the readiness table, and `primitive inbox next` for the oldest email awaiting your reply."
69
75
  },
70
76
  "emails": {
71
77
  "description": "List, inspect, and wait for received emails. Prefer task aliases like `primitive emails list`, `primitive emails get`, `primitive emails latest`, `primitive emails wait`, and `primitive emails watch`; generated API names remain available for compatibility."
@@ -129,13 +135,16 @@
129
135
  "description": "Schedule and send wake commands to your own functions over signed email, and manage which senders may wake them. Use `primitive wake schedules list|create|get|update|delete|run`, `primitive wake authorizations list|create|update|delete`, and `primitive wake dispatches list`."
130
136
  },
131
137
  "listen": {
132
- "description": "Receive events locally as JSONL, use --exec or --forward-to, or notify an exact loaded native session using --notify-session with --contacts or approved --sender addresses. Add --contact-requests for owner-enabled structured first-contact intake. Use --status --notify-session to inspect durable notification receipts."
138
+ "description": "Receive events locally as JSONL with JSON status responses by default; --json is accepted explicitly. Use --exec or --forward-to, or deliver external mail events as tool output, never user messages, to an exact loaded native session using --notify-session with --contacts or approved --sender addresses. Add --email-id to --status to explain one received email. Add --contact-requests for owner-enabled structured first-contact intake. Use --background for independent receiving, --status --notify-session for current receiver health and durable receipts, or --stop --notify-session to stop only that receiver. Verified presence controls use no model turns and do not consume --once or --number."
133
139
  },
134
140
  "contacts": {
135
- "description": "Shared organization contacts plus structured request, accept, and wait commands for connected agents. Directory list, get, add, update, and remove use conditional versions."
141
+ "description": "Shared organization contacts plus structured request, accept, and wait commands for connected agents. Directory list, get, add, update, and remove use conditional versions. Commands return JSON by default and accept explicit --json."
136
142
  },
137
143
  "agent:contacts": {
138
- "description": "Contacts and notification preferences for one agent address. Connected profiles default to their own address."
144
+ "description": "Contacts and notification preferences for one agent address. Connected profiles default to their own address. Commands return JSON by default and accept explicit --json."
145
+ },
146
+ "agent:notes": {
147
+ "description": "Read and maintain organization address notes. Connected profiles default to their own address and can write only their own notes. Use agent notes list|get|set|delete; new notes are private, and updates preserve visibility unless explicitly changed. Commands return JSON by default."
139
148
  }
140
149
  },
141
150
  "topicSeparator": " "