primcli 3.0.0-preview.12 → 3.0.0-preview.13
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 +2 -1
- package/dist/{api-command-CNCsVNk0.js → api-command-D5Tj9C-K.js} +1229 -101
- package/dist/{machine-session-DkXYR62a.js → machine-session-BMr-zPLx.js} +4 -4
- package/dist/{notify-session-WKFsaFt3.js → notify-session-cIUz_kxR.js} +2 -2
- package/dist/oclif/auto-signal-worker.js +3 -3
- package/dist/oclif/auto-signals.js +1 -1
- package/dist/oclif/index.js +802 -119
- package/dist/oclif/receiver-heal.js +2 -2
- package/dist/{repeats-Dj_o6c-X-wjmw2Jbx.js → repeats-Dj_o6c-X-ykfsraq6.js} +54 -4
- package/dist/{scoped-chat-B1Fi6_qM.js → scoped-chat-DVSsLSRw.js} +1 -1
- package/dist/{signal-command-BdJVZXGl.js → signal-command-gpH2AhIi.js} +4 -4
- package/man/primitive.1 +3 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { N as agentProfileDirectory, P as agentProfileName, R as loadConnectedAgentProfile, j as AGENT_PROFILE_ENV } from "../cli-config-Ms_0vNjq.js";
|
|
2
2
|
import { a as backgroundListenStatus, i as backgroundListenRestartable, s as claimBackgroundListenRestart, t as BACKGROUND_LISTEN_RELAUNCH_ENV } from "../listen-background-DyBYca28.js";
|
|
3
|
-
import { d as SESSION_UUID, t as notificationScope } from "../notify-session-
|
|
4
|
-
import { Lt as detectAgentRuntime } from "../api-command-
|
|
3
|
+
import { d as SESSION_UUID, t as notificationScope } from "../notify-session-cIUz_kxR.js";
|
|
4
|
+
import { Lt as detectAgentRuntime } from "../api-command-D5Tj9C-K.js";
|
|
5
5
|
import { d as readMailJson } from "../shared-mail-files-BAQSGxxz.js";
|
|
6
6
|
import { join } from "node:path";
|
|
7
7
|
import { spawn } from "node:child_process";
|
|
@@ -182,6 +182,7 @@ var sdk_gen_exports = /* @__PURE__ */ __exportAll({
|
|
|
182
182
|
getWakeSchedule: () => getWakeSchedule,
|
|
183
183
|
getWebhookDeliveryStats: () => getWebhookDeliveryStats,
|
|
184
184
|
getWebhookSecret: () => getWebhookSecret,
|
|
185
|
+
importGoogleMailMessage: () => importGoogleMailMessage,
|
|
185
186
|
installTemplate: () => installTemplate,
|
|
186
187
|
inviteAgentConnection: () => inviteAgentConnection,
|
|
187
188
|
inviteOrganizationMember: () => inviteOrganizationMember,
|
|
@@ -213,6 +214,7 @@ var sdk_gen_exports = /* @__PURE__ */ __exportAll({
|
|
|
213
214
|
listEmailRuleShareEmails: () => listEmailRuleShareEmails,
|
|
214
215
|
listEmailRuleShares: () => listEmailRuleShares,
|
|
215
216
|
listEmailRuleVersions: () => listEmailRuleVersions,
|
|
217
|
+
listEmailRuleVersionsCoveringMe: () => listEmailRuleVersionsCoveringMe,
|
|
216
218
|
listEmailRules: () => listEmailRules,
|
|
217
219
|
listEmailRulesCoveringMe: () => listEmailRulesCoveringMe,
|
|
218
220
|
listEmails: () => listEmails,
|
|
@@ -268,6 +270,7 @@ var sdk_gen_exports = /* @__PURE__ */ __exportAll({
|
|
|
268
270
|
putContact: () => putContact,
|
|
269
271
|
putContactPolicy: () => putContactPolicy,
|
|
270
272
|
reaffirmFunctionRuntimeKey: () => reaffirmFunctionRuntimeKey,
|
|
273
|
+
reconcileGoogleMailImport: () => reconcileGoogleMailImport,
|
|
271
274
|
redeemCreditCode: () => redeemCreditCode,
|
|
272
275
|
redeployFunction: () => redeployFunction,
|
|
273
276
|
releaseSentEmail: () => releaseSentEmail,
|
|
@@ -3635,7 +3638,7 @@ const getEmailRuleVocabulary = (options) => (options?.client ?? client).get({
|
|
|
3635
3638
|
/**
|
|
3636
3639
|
* Compile a rule description
|
|
3637
3640
|
*
|
|
3638
|
-
* Turns a plain-English description of which received emails to match into a rule tree over the column contract, with an explanation of what it matches, the assumptions made, and warnings for what the columns cannot express. Where the columns fall short it adds up to five yes/no questions, asked only after the conditions match; they read the subject, the new text and attachment file names, never attachment contents. Nothing is saved. For a rule with no questions, breadth counts, read only, how much of
|
|
3641
|
+
* Turns a plain-English description of which received emails to match into a rule tree over the column contract, with an explanation of what it matches, the assumptions made, and warnings for what the columns cannot express. Where the columns fall short it adds up to five yes/no questions, asked only after the conditions match; they read the subject, the new text and attachment file names, never attachment contents. Nothing is saved. For a rule with no questions, breadth counts, read only, how much of the recent classified mail in evaluation_scope (by default your own mailboxes) its conditions match; for a grant rule with questions, conditions_breadth counts its conditions alone. include_sql returns the SQL it renders to. kind do_not_share compiles for recall. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token).
|
|
3639
3642
|
*/
|
|
3640
3643
|
const compileEmailRule = (options) => (options.client ?? client).post({
|
|
3641
3644
|
security: [{
|
|
@@ -3686,7 +3689,7 @@ const generateLookAlikes = (options) => (options.client ?? client).post({
|
|
|
3686
3689
|
/**
|
|
3687
3690
|
* Test a rule against a made-up email
|
|
3688
3691
|
*
|
|
3689
|
-
* Reports what a rule would decide for an email you describe (sender, recipients, subject, plain text, attachment types; optionally automated, from a mailing list, and a spam score), classified and decided as received mail would be. A rule reading a spam score you gave none for decides on none (unset_columns). Nothing is stored. Test an unsaved tree or a saved rule by rule_id. The answer includes what the classifier read. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token).
|
|
3692
|
+
* Reports what a rule would decide for an email you describe (sender, recipients, subject, plain text, attachment types and file names; optionally automated, from a mailing list, and a spam score), classified and decided as received mail would be. A rule reading a spam score you gave none for decides on none (unset_columns). Nothing is stored. Test an unsaved tree or a saved rule by rule_id. The answer includes what the classifier read. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token).
|
|
3690
3693
|
*/
|
|
3691
3694
|
const testEmailRuleOnSample = (options) => (options.client ?? client).post({
|
|
3692
3695
|
security: [{
|
|
@@ -3733,7 +3736,7 @@ const createEmailRule = (options) => (options.client ?? client).post({
|
|
|
3733
3736
|
/**
|
|
3734
3737
|
* Delete a rule
|
|
3735
3738
|
*
|
|
3736
|
-
* Deletes a rule with its versions, its decisions and the access it granted. A share of it ends (end_reason rule_deleted), and the member who shared can still list what it handed over. The answer lists the shares it ended (ended_shares) and the unrevoked keys that still list it, which now read nothing through it (keys, other_keys; left out when they could not be read). The author or a reader of all the organization's mail may delete it; while it is shared, only the author or someone who manages members from the dashboard. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token).
|
|
3739
|
+
* Deletes a rule with its versions, its decisions and the access it granted. A share of it ends (end_reason rule_deleted), and the member who shared can still list what it handed over. The answer lists the shares it ended (ended_shares), says whom with (share_notice), and lists the unrevoked keys that still list it, which now read nothing through it (keys, other_keys; left out when they could not be read). The author or a reader of all the organization's mail may delete it; while it is shared, only the author or someone who manages members from the dashboard. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token).
|
|
3737
3740
|
*/
|
|
3738
3741
|
const deleteEmailRule = (options) => (options.client ?? client).delete({
|
|
3739
3742
|
security: [{
|
|
@@ -4063,9 +4066,22 @@ const listEmailRuleDecisionsOnMyMail = (options) => (options.client ?? client).g
|
|
|
4063
4066
|
...options
|
|
4064
4067
|
});
|
|
4065
4068
|
/**
|
|
4069
|
+
* Read versions of a rule over your mail
|
|
4070
|
+
*
|
|
4071
|
+
* The versions of a rule that covers one of your own mailboxes now that applied to your mail: its current version and each earlier one that decided on mail at your own mailboxes, so a decision can be read in the words of the version that made it. Each has what the covering view shows of a version: its wording, tree, explanation and assumptions. A version that did neither is not listed. Without versions, newest first, a page at a time (meta.cursor); with versions, only those named that are listed, oldest first. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token). Only on your own dashboard session or the Primitive CLI.
|
|
4072
|
+
*/
|
|
4073
|
+
const listEmailRuleVersionsCoveringMe = (options) => (options.client ?? client).get({
|
|
4074
|
+
security: [{
|
|
4075
|
+
scheme: "bearer",
|
|
4076
|
+
type: "http"
|
|
4077
|
+
}],
|
|
4078
|
+
url: "/email-rules/covering-me/{id}/versions",
|
|
4079
|
+
...options
|
|
4080
|
+
});
|
|
4081
|
+
/**
|
|
4066
4082
|
* List objections
|
|
4067
4083
|
*
|
|
4068
|
-
* Objections you made
|
|
4084
|
+
* Objections you made and objections to rules you wrote (by default), only one of the two, or every objection you can see, newest first. An objection is seen by the member who made it, the rule's author and the organization's owners and admins. It stays pending until the rule's author accepts it, turning the rule off, or declines it, or the member who made it withdraws it, which clears its message. It never changes after that. Needs mail:read, the email rules feature, and a member's own full-access credential (no API key, agent key or narrowed token). Only on your own dashboard session or the Primitive CLI.
|
|
4069
4085
|
*/
|
|
4070
4086
|
const listEmailRuleObjections = (options) => (options?.client ?? client).get({
|
|
4071
4087
|
security: [{
|
|
@@ -4192,6 +4208,40 @@ const claimVanityInboxName = (options) => (options.client ?? client).post({
|
|
|
4192
4208
|
}
|
|
4193
4209
|
});
|
|
4194
4210
|
/**
|
|
4211
|
+
* Import one historical Google Workspace message
|
|
4212
|
+
*
|
|
4213
|
+
* Requires the organization email_import entitlement, granted by staff. Only the configured current owner, using a full personal session or verified first-party CLI, may import into the configured primary mailbox. Primitive verifies the transient provider token and fetches RAW content itself. No raw uploads or client provenance are accepted. Sent, draft, spam and trash messages are skipped. Historical mail appears in normal history without live delivery effects. An indeterminate response requires retrying the same provider ID. User provider credentials are never stored or queued.
|
|
4214
|
+
*/
|
|
4215
|
+
const importGoogleMailMessage = (options) => (options.client ?? client).post({
|
|
4216
|
+
security: [{
|
|
4217
|
+
scheme: "bearer",
|
|
4218
|
+
type: "http"
|
|
4219
|
+
}],
|
|
4220
|
+
url: "/mail-imports/google/messages",
|
|
4221
|
+
...options,
|
|
4222
|
+
headers: {
|
|
4223
|
+
...options.body !== void 0 && { "Content-Type": "application/json" },
|
|
4224
|
+
...options.headers
|
|
4225
|
+
}
|
|
4226
|
+
});
|
|
4227
|
+
/**
|
|
4228
|
+
* Reconcile scoped historical import attempts
|
|
4229
|
+
*
|
|
4230
|
+
* The same configured owner may recover expired attempts after the email_import entitlement is revoked. Recovery does not require that entitlement. Selects only server-owned manifests for the configured mailbox/account/policy. No provider token, object keys, prefixes or email IDs are accepted. Unsettled uploads remain unresolved and charged; this operation does not promise automatic cleanup after a process dies.
|
|
4231
|
+
*/
|
|
4232
|
+
const reconcileGoogleMailImport = (options) => (options.client ?? client).post({
|
|
4233
|
+
security: [{
|
|
4234
|
+
scheme: "bearer",
|
|
4235
|
+
type: "http"
|
|
4236
|
+
}],
|
|
4237
|
+
url: "/mail-imports/google/reconcile",
|
|
4238
|
+
...options,
|
|
4239
|
+
headers: {
|
|
4240
|
+
...options.body !== void 0 && { "Content-Type": "application/json" },
|
|
4241
|
+
...options.headers
|
|
4242
|
+
}
|
|
4243
|
+
});
|
|
4244
|
+
/**
|
|
4195
4245
|
* Send a read, working or typing signal about an email
|
|
4196
4246
|
*
|
|
4197
4247
|
* Builds and sends the standard signal email about this received email: one `interaction.json` part (read/1, working/1 or typing/1 naming the email's Message-ID) plus only the fixed fallback text, threaded to it. It goes only to the email's authenticated sender, never to Reply-To or other recipients. Receivers see it as `fyi: true`, and the sender sees it as `peer_signal_on_my_last` (typing is not reported there). Refused (422) for a signal, interaction or other structured email, for an unauthenticated sender, and while the email is still being processed. Each call is a new signal with fresh ids; a read retried with the same Idempotency-Key rebuilds the identical message and dedupes.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Q as isTrustedSender, b as retryTransient, c as classifySignalContent } from "./repeats-Dj_o6c-X-
|
|
1
|
+
import { Q as isTrustedSender, b as retryTransient, c as classifySignalContent } from "./repeats-Dj_o6c-X-ykfsraq6.js";
|
|
2
2
|
// src/oclif/presence-provenance.ts
|
|
3
3
|
function readPresenceProjection(detail) {
|
|
4
4
|
if (!detail || typeof detail !== "object") return null;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { On as listSentEmails, Ut as getEmail, Yn as sendEmail, _ as describeApiFailure, h as sendPreparedSignal, p as prepareSignalEmail, yt as createEndpoint } from "./repeats-Dj_o6c-X-
|
|
2
|
-
import { Dt as successfulSendOutcome, dt as classifySendError, j as bareAddress, s as extractErrorPayload } from "./api-command-
|
|
1
|
+
import { On as listSentEmails, Ut as getEmail, Yn as sendEmail, _ as describeApiFailure, h as sendPreparedSignal, p as prepareSignalEmail, yt as createEndpoint } from "./repeats-Dj_o6c-X-ykfsraq6.js";
|
|
2
|
+
import { Dt as successfulSendOutcome, dt as classifySendError, j as bareAddress, s as extractErrorPayload } from "./api-command-D5Tj9C-K.js";
|
|
3
3
|
import { recordSentSignal } from "./oclif/auto-signals.js";
|
|
4
4
|
import { _ as acquireListenLock, c as mailTime, d as readMailJson, f as removeMailFile, h as writeMailJson, i as mailId, l as privateMailDirectory, m as withMailLock, n as invalidSharedMail, o as mailObject, p as syncMailDirectory, r as mailAddress, s as mailString, t as SharedMailStateError, v as compareListenProcessIdentity, x as listenProcessIdentity, y as listenIdentity } from "./shared-mail-files-BAQSGxxz.js";
|
|
5
|
-
import { i as readApiBeforeDeadline, n as isPlainChatReply, o as scopedChatSenderTrust } from "./scoped-chat-
|
|
5
|
+
import { i as readApiBeforeDeadline, n as isPlainChatReply, o as scopedChatSenderTrust } from "./scoped-chat-DVSsLSRw.js";
|
|
6
6
|
import { n as tryOwnSharedMail, r as waitForSharedMailChange, t as readSharedMailOwner } from "./shared-mail-watch-BAPMsFNv.js";
|
|
7
7
|
import { Errors } from "@oclif/core";
|
|
8
8
|
import { opendirSync } from "node:fs";
|
|
9
9
|
import { createHash, randomUUID, scryptSync } from "node:crypto";
|
|
10
10
|
import { dirname, join } from "node:path";
|
|
11
11
|
import { setTimeout as setTimeout$1 } from "node:timers/promises";
|
|
12
|
-
// ../sdk-node/dist/api-
|
|
12
|
+
// ../sdk-node/dist/api-C54bhvOz.js
|
|
13
13
|
const jsonBodySerializer = { bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value) };
|
|
14
14
|
function createSseClient({ onRequest, onSseError, onSseEvent, responseTransformer, responseValidator, sseDefaultRetryDelay, sseMaxRetryAttempts, sseMaxRetryDelay, sseSleepFn, url, ...options }) {
|
|
15
15
|
let lastEventId;
|
package/man/primitive.1
CHANGED
|
@@ -43,8 +43,9 @@ line then; add
|
|
|
43
43
|
.B --envelope
|
|
44
44
|
to get the full response envelope, with the pagination cursor in
|
|
45
45
|
.B meta.cursor
|
|
46
|
-
and
|
|
47
|
-
.BR summary
|
|
46
|
+
and, in
|
|
47
|
+
.BR summary ,
|
|
48
|
+
empty-result hints and what a list's default filters left out.
|
|
48
49
|
.B primitive listen
|
|
49
50
|
streams JSONL and is not covered by this rule.
|
|
50
51
|
.SH LOCAL WEBHOOK EVENTS
|