primcli 1.31.0 → 1.33.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-Cv2-NAOd.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
@@ -90,6 +90,44 @@ expose local webhook delivery on API hosts where it is enabled. Each command
90
90
  makes one API request. Use their --help output for the input fields. Consumers
91
91
  deduplicate event IDs and report the outcome with the returned attempt and lease.
92
92
  Queue retention does not extend source-content retention; inspect gap counts.
93
+ .SH AGENT LOOP
94
+ Every inbound email carries reply state:
95
+ .B awaiting
96
+ is
97
+ .B you
98
+ when the latest message in its thread is inbound and
99
+ .B them
100
+ when you replied last (queued and scheduled replies count).
101
+ .B primitive inbox next
102
+ prints the oldest email awaiting you with its conversation, and
103
+ .B primitive reply --id ID
104
+ answers it, after which the next call moves on:
105
+ .PP
106
+ .RS
107
+ .nf
108
+ primitive inbox next
109
+ primitive reply --id ID --body TEXT
110
+ primitive inbox next
111
+ .fi
112
+ .RE
113
+ .PP
114
+ 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
115
+ .B --include-automated
116
+ 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
117
+ .B automated_filter_unsupported
118
+ instead of scanning.
119
+ .B --wait
120
+ blocks until something awaits you, taking the inbox position before checking so no arrival is missed;
121
+ .B --timeout
122
+ bounds it.
123
+ .B --json
124
+ prints a stable envelope.
125
+ .PP
126
+ It is not a work queue: nothing is claimed, so two agents on one inbox get the same email until one replies.
127
+ .PP
128
+ Exit status of
129
+ .BR "primitive inbox next" :
130
+ 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
131
  .SH AUTHENTICATION
94
132
  .PP
95
133
  Commands use saved OAuth credentials from
@@ -121,7 +159,10 @@ to remove local credentials, pending email-code auth state, and stale credential
121
159
  .PP
122
160
  Run
123
161
  .B primitive whoami
124
- to verify which account the CLI is authenticated as.
162
+ to verify account authentication. With PRIMITIVE_AGENT_PROFILE selected, it
163
+ prints saved connected identity offline, without claiming live authentication
164
+ or receiving readiness. Use listen --status --notify-session UUID to inspect
165
+ the exact receiver under the same profile.
125
166
  .SH COMMON COMMANDS
126
167
  .TP
127
168
  .B primitive send --to ADDRESS --subject SUBJECT --body TEXT
@@ -140,7 +181,14 @@ Verify DNS records for a pending domain claim.
140
181
  Download DNS records as a BIND-format zone file.
141
182
  .TP
142
183
  .B primitive emails latest
143
- Show recent inbound emails.
184
+ Show recent inbound emails, with whose turn it is (AWAITING) and the reply count.
185
+ .TP
186
+ .B primitive emails latest --awaiting you
187
+ Show only inbound emails waiting on your reply.
188
+ .TP
189
+ .B primitive inbox next
190
+ Show the oldest email awaiting your reply, its conversation, and the reply command. See
191
+ .BR "AGENT LOOP" .
144
192
  .TP
145
193
  .B primitive functions init NAME
146
194
  Scaffold a Primitive Function.
@@ -185,6 +233,27 @@ stable idempotency key. After a lost send response, repeating the same command
185
233
  looks up that key without sending again. Timed-out exact-parent waits retain
186
234
  their claim for resume. A plain reply does not prove task completion.
187
235
 
236
+ .SS Explicit communication signals
237
+ .B primitive signal read --id EMAIL_ID --json
238
+ reports that you read one authenticated plain email.
239
+ .B primitive signal ack --id EMAIL_ID --status received --json
240
+ reports acknowledgement; supported statuses are received, will_process, and
241
+ will_not_process. Choose the state you actually intend.
242
+ .B primitive signal working --id EMAIL_ID --expires-in 30 --json
243
+ and
244
+ .B primitive signal typing --id EMAIL_ID --expires-in 30 --json
245
+ report temporary activity. Both default to 30 seconds; typing allows 1-30
246
+ seconds and working allows 1-60. These commands require a saved connected
247
+ profile selected with PRIMITIVE_AGENT_PROFILE and pin its sender identity.
248
+ .PP
249
+ Read and acknowledgement deduplicate by parent, kind and acknowledgement status.
250
+ Unexpired activity deduplicates; a new explicit invocation after a known outcome
251
+ expires may send fresh activity. Unknown sends must reconcile before renewal;
252
+ expired unsent activity is never replayed. No automatic signal or task authority
253
+ is granted. Signal and interaction parents are refused to prevent reply loops.
254
+ JSON outcomes are sent, already_sent, expired (exit 0), not_sent (exit 1), and
255
+ uncertain (exit 4). Ordinary CLI argument errors exit 2.
256
+
188
257
  .SH GLOBAL OPTIONS
189
258
  .TP
190
259
  .B --api-key KEY
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "primcli",
3
- "version": "1.31.0",
3
+ "version": "1.33.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,
@@ -53,7 +53,7 @@
53
53
  "description": "Claim a private invitation from stdin or remove a revoked connection with an owner/admin login."
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 owner 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"
@@ -65,7 +65,7 @@
65
65
  "description": "Create and manage agent registries, publish and resolve agents by handle, and moderate publication requests"
66
66
  },
67
67
  "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."
68
+ "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
69
  },
70
70
  "emails": {
71
71
  "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 +129,16 @@
129
129
  "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
130
  },
131
131
  "listen": {
132
- "description": "Receive events locally as JSONL, use --exec or --forward-to, or notify an exact loaded native session with --notify-session and approved --sender addresses. Use --status --notify-session to inspect durable notification receipts."
132
+ "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."
133
133
  },
134
134
  "contacts": {
135
- "description": "Shared organization contacts. Use list, get, add, update, or remove; edits use conditional versions."
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. Commands return JSON by default and accept explicit --json."
136
136
  },
137
137
  "agent:contacts": {
138
- "description": "Contacts and notification preferences for one agent address. Connected profiles default to their own address."
138
+ "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."
139
+ },
140
+ "agent:notes": {
141
+ "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
142
  }
140
143
  },
141
144
  "topicSeparator": " "