@oxygen-agent/cli 1.1011.600 → 1.1011.622
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 +1 -1
- package/dist/command-manifest.js +7 -0
- package/dist/index.js +5 -5
- package/node_modules/@oxygen/shared/dist/capability-discovery.js +4 -1
- package/node_modules/@oxygen/shared/dist/pricing-sheet.d.ts +0 -11
- package/node_modules/@oxygen/shared/dist/pricing-sheet.js +0 -11
- package/node_modules/@oxygen/shared/dist/version.generated.d.ts +1 -1
- package/node_modules/@oxygen/shared/dist/version.generated.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/command-manifest.js
CHANGED
|
@@ -147,6 +147,10 @@ const ZERO_CREDIT_APPROVAL_COMMANDS = new Set([
|
|
|
147
147
|
// Both previews without --approved; approval cancels or archives, never charges.
|
|
148
148
|
"domains delete",
|
|
149
149
|
"mailboxes delete",
|
|
150
|
+
// Consent setup creates links without an execution debit; sync controls and
|
|
151
|
+
// progress are covered by the existing monthly mailbox commitment.
|
|
152
|
+
"mailboxes connect-oauth",
|
|
153
|
+
"mailboxes sync",
|
|
150
154
|
// Previews without --approved; with it, removes a program no creator ever
|
|
151
155
|
// joined. No provider call, no credits.
|
|
152
156
|
"ugc programs delete",
|
|
@@ -201,6 +205,9 @@ const PREVIEW_BY_DEFAULT_COMMANDS = new Set([
|
|
|
201
205
|
"mailboxes emailguard auto-enroll",
|
|
202
206
|
"domains delete",
|
|
203
207
|
"mailboxes delete",
|
|
208
|
+
"mailboxes connect-oauth",
|
|
209
|
+
// No action reads progress; an action previews until --approved.
|
|
210
|
+
"mailboxes sync",
|
|
204
211
|
"sequences recover-capacity",
|
|
205
212
|
"support admin done",
|
|
206
213
|
"support admin reply",
|
package/dist/index.js
CHANGED
|
@@ -17750,7 +17750,7 @@ Examples:
|
|
|
17750
17750
|
});
|
|
17751
17751
|
})));
|
|
17752
17752
|
program.addCommand(new Command("mailboxes")
|
|
17753
|
-
.description("
|
|
17753
|
+
.description("Connect customer-owned Gmail/Microsoft 365 inboxes with `oxygen mailboxes connect-oauth --vendor composio` for mail history in Unibox and business activity in CRM; read and control progress with `oxygen mailboxes sync`. Also operate the native email sending pool: register/refresh Google/Microsoft mailboxes (including Microsoft SMTP transport and secure local credential-file transfer), pause, disable or delete inboxes, connect EmailGuard monitoring, and inspect/control OXYGEN Warm-up. Fresh managed InboxKit Google/Microsoft/Azure orders activate exact-scope warm-up automatically after provisioning under their approved default-on add-on. Google reuses the managed credential just in time; Microsoft/Azure uses native export. Standalone warm-up plans and credit caps are for BYOK/imported mailboxes, managed opt-outs, or later separate enrollment. OXYGEN Warm-up never owns campaign dispatch. Every inbox here always belongs to a sender profile (the person it sends as) — list, create, and attach those with `oxygen senders profiles`. Safe import preflight: run `oxygen mailboxes compatibility --catalog-only --json`, then `oxygen mailboxes import --file <path> --validate-only --json` (add the credential source flags shown by import help when the file contains credentials).")
|
|
17754
17754
|
.addCommand(new Command("list")
|
|
17755
17755
|
.description("List the org's sending mailboxes with provider, status, warmup state, source (managed = bought through Oxygen, byok = bring-your-own), worker-owned connectionRepair and warmupRepair state, and a pool overview (including counts by source). Read each mailbox's warmupTruth for warm-up (state, last_send, pause, dispatch, next_action with the exact command); warmupState is only the stored rail token and reads `error` for a provider-paused seat. mode=automatic means OXYGEN owns the next bounded retry — do not ask for browser consent or disable/re-enable an existing warm-up seat. To see only Google/Microsoft mailboxes that still need OAuth connection, including attempt budgets and manual remedies, use `oxygen mailboxes oauth-health --json`. Read the fleet from `summary` — `summary.by_warmup`, `by_status`, `by_provider`, `by_auth_mode`, `by_transport`, and `by_source` already aggregate every mailbox, so you never need to iterate the `mailboxes` array to count them. `summary.warmup` adds the normalized pool counts — by_truth_state, by_next_action, enrolled, stalled (enrolled with a measured zero warm-up sends), and needs_action — and `--warmup <states>`, `--next-action <codes>`, and `--stalled` narrow the list to exactly those mailboxes, so \"which of my inboxes are not sending\" is one command rather than a local transform over every row. Without `--json` this prints a readable pool: the counts, then every mailbox that owes an action with its cause and the exact command to run.")
|
|
17756
17756
|
.option("--status <status>", "Filter by status: active, paused, disabled, or provisioning (ordered, still being set up).")
|
|
@@ -18112,7 +18112,7 @@ Examples:
|
|
|
18112
18112
|
});
|
|
18113
18113
|
}))
|
|
18114
18114
|
.addCommand(new Command("sync")
|
|
18115
|
-
.description("Read or control full Inbox, Sent and archive import for Gmail or Microsoft 365. History sync and CRM analysis are included in the mailbox’s 100-credit monthly connection. Spam, trash and drafts are excluded. Disconnect keeps
|
|
18115
|
+
.description("Read or control full Inbox, Sent and archive import for Gmail or Microsoft 365. History sync and CRM analysis are included in the mailbox’s 100-credit monthly connection. Spam, trash and drafts are excluded. Without --action, this is a free progress read; controls preview until --approved. Disconnect keeps mail and CRM records, stops sync/sends and future mailbox commitment renewals, with no current-period refund. Paid seats and add-ons retain their own billing contracts.")
|
|
18116
18116
|
.argument("<mailbox>", "Mailbox ID or exact email address.")
|
|
18117
18117
|
.option("--action <action>", "start, pause, resume or disconnect; omit to read progress.")
|
|
18118
18118
|
.option("--approved", "Apply the reviewed control; default is preview.")
|
|
@@ -18124,9 +18124,9 @@ Examples:
|
|
|
18124
18124
|
: requestOxygen(`/api/cli/mailboxes/sync?${new URLSearchParams({ mailbox }).toString()}`));
|
|
18125
18125
|
}))
|
|
18126
18126
|
.addCommand(new Command("connect-oauth")
|
|
18127
|
-
.description("Connect Gmail/Microsoft 365 with --vendor composio to import all mail into Unibox and business activity into CRM. Each connected own mailbox costs 100 credits/month including history, sync and analysis;
|
|
18127
|
+
.description("Connect Gmail/Microsoft 365 with --vendor composio to import all mail into Unibox and business activity into CRM. Each connected own mailbox costs 100 credits/month including history, sync and analysis; previews cost 0, with no extra execution fee. Managed OAuth requires provider rollout readiness and exact registered addresses, max 10. Use mailboxes sync for progress and pause/resume/disconnect. Composio uses individual owner consent only. Native --vendor oxygen retains its existing polling; full history/CRM requires managed reconnection. Quote any mailbox count with billing estimate --mailboxes <n> --json. Warm-up retains its existing eligibility and pricing. Preview by default; pass --approved only after reviewing exact candidates. --vendor oxygen requires an exact address list and never discovers a domain directory. For --vendor oxygen only, Microsoft supports --authorization-mode tenant (one administrator approval, up to 500 exact selected addresses, recommended for dedicated sending tenants) or individual (one account sign-in per mailbox, max 10 per run, recommended for ordinary company/personal mailboxes). For Microsoft's built-in roles, tenant mode requires a Global Administrator or Privileged Role Administrator because it requests the Microsoft Graph application Mail.Send and Mail.Read permissions; Application Administrator and Cloud Application Administrator cannot consent to Microsoft Graph application roles. Microsoft's application grant is tenant-wide at the provider; OXYGEN—not Microsoft—enforces the selected-address boundary at verification and send time unless the tenant separately configures Exchange Application RBAC. For non-managed Microsoft mailboxes, native-send approval does not authorize OXYGEN Warm-up: every mailbox still needs its own `mailboxes warmup microsoft` Outlook consent before standalone enrollment. Connecting authorization does not change whether a mailbox is active or disabled. Google uses individual OAuth. Source tokens, passwords, authenticator seeds, and one-time codes never transfer. Managed authorization paths remain available through their vendor options.")
|
|
18128
18128
|
.addHelpText("after", "\nDocs: https://oxygen-agent.com/docs/providers/mailboxes\n")
|
|
18129
|
-
.option("--provider <provider>", "Mailbox provider
|
|
18129
|
+
.option("--provider <provider>", "Mailbox provider: google or microsoft.")
|
|
18130
18130
|
.option("--vendor <vendor>", "Authorization path: composio for customer-owned Gmail/Microsoft 365 with managed consent, history and CRM; oxygen for native/tenant consent; zapmail (default) or inboxkit for provisioned inboxes.")
|
|
18131
18131
|
.option("--mailboxes <list>", "Comma-separated exact mailbox addresses. Required for vendor=composio (max 10) or vendor=oxygen (tenant mode max 500; individual mode max 10).")
|
|
18132
18132
|
.option("--authorization-mode <mode>", "vendor=oxygen only: auto, tenant, or individual. Tenant is Microsoft-only and never scans the directory.")
|
|
@@ -18135,7 +18135,7 @@ Examples:
|
|
|
18135
18135
|
.option("--connection <id>", "Zapmail connection id. Defaults to the org's active Zapmail connection.")
|
|
18136
18136
|
.option("--status <id>", "Poll a previously started Zapmail, InboxKit, or OXYGEN direct-consent run.")
|
|
18137
18137
|
.option("--dry-run", "Preview the requested mailbox/domain scope and external writes without changing vendor or ledger state. This is the default for starts; a successful preview can still have zero eligible mailboxes, so check InboxKit candidates with oauth-health before approval.")
|
|
18138
|
-
.option("--approved", "Start the reviewed authorization run.
|
|
18138
|
+
.option("--approved", "Start the reviewed authorization run. Composio creates an individual consent link for each owner, who must open it and approve access with Google or Microsoft. Native vendor=oxygen records expiring browser steps for the selected owner or tenant administrator. Starting a run does not grant mail access.")
|
|
18139
18139
|
.option("--json", "Print a JSON envelope.")
|
|
18140
18140
|
.action(async (options) => {
|
|
18141
18141
|
await handleAsyncAction("mailboxes connect-oauth", options, () => {
|
|
@@ -478,7 +478,7 @@ export const OXYGEN_CAPABILITY_ROUTES = [
|
|
|
478
478
|
primitive: null,
|
|
479
479
|
owns: "Sending domains, managed/BYOK mailboxes, customer Gmail/Microsoft 365 connections, mail history controls, warmup, deliverability, egress IPs, and infrastructure health.",
|
|
480
480
|
notFor: "Writing campaign copy or sending outside a Sequence/Message owner.",
|
|
481
|
-
execution: "Inspect or provision hosted sending infrastructure with explicit recurring-cost and external-write approval. Connect existing Gmail or Microsoft 365/Exchange Online mailboxes using mailboxes connect-oauth --vendor composio where enabled; 100 credits/month includes mail history and CRM analysis. Read
|
|
481
|
+
execution: "Inspect or provision hosted sending infrastructure with explicit recurring-cost and external-write approval. Connect existing Gmail or Microsoft 365/Exchange Online mailboxes using mailboxes connect-oauth --vendor composio where enabled; 100 credits/month per mailbox includes mail history and CRM analysis. Read progress with oxygen_mailboxes_sync_status (CLI: mailboxes sync without --action); control it with oxygen_mailboxes_sync. Read oxygen-email-infra for history coverage and CRM rules.",
|
|
482
482
|
posture: "mixed",
|
|
483
483
|
gatewayTools: ["oxygen_mailboxes_list", "oxygen_mailboxes_connect_oauth", "oxygen_mailboxes_sync_status", "oxygen_mailboxes_sync", "oxygen_domains_list", "oxygen_mailboxes_health"],
|
|
484
484
|
gatewayCommands: ["mailboxes list", "mailboxes connect-oauth", "mailboxes sync", "domains list", "mailboxes health"],
|
|
@@ -2011,12 +2011,15 @@ function recommendationsFor(card, query) {
|
|
|
2011
2011
|
"oxygen_mailboxes_compatibility",
|
|
2012
2012
|
"oxygen_mailboxes_import",
|
|
2013
2013
|
"oxygen_mailboxes_connect_oauth",
|
|
2014
|
+
"oxygen_mailboxes_sync_status",
|
|
2015
|
+
"oxygen_mailboxes_sync",
|
|
2014
2016
|
"oxygen_mailboxes_oauth_health",
|
|
2015
2017
|
],
|
|
2016
2018
|
commands: [
|
|
2017
2019
|
"mailboxes compatibility",
|
|
2018
2020
|
"mailboxes import",
|
|
2019
2021
|
"mailboxes connect-oauth",
|
|
2022
|
+
"mailboxes sync",
|
|
2020
2023
|
"mailboxes oauth-health",
|
|
2021
2024
|
],
|
|
2022
2025
|
};
|
|
@@ -294,16 +294,5 @@ export declare const ENRICHMENT_CREDITS: {
|
|
|
294
294
|
readonly page_scrape: 1.6;
|
|
295
295
|
readonly linkedin_profile_scrape: 1;
|
|
296
296
|
};
|
|
297
|
-
/**
|
|
298
|
-
* What the default work-email column spends per email it finds, measured, not
|
|
299
|
-
* the single-finder list price above. 23,400 production `find_email` rows across
|
|
300
|
-
* 10 tenants (2026-08-11 to 2026-09-11) spent 2.6 credits per found email in
|
|
301
|
-
* today's units: the cheap first lane (Blitz at 1.5 credits, plus 0.225 to
|
|
302
|
-
* verify) finds most of them, and a lane that misses bills nothing. Rounded up
|
|
303
|
-
* to 3, so a plan's "about N work emails" stays below what was measured.
|
|
304
|
-
* Source and method: `.agents/skills/oxygen-enrichment-waterfall` § find_email
|
|
305
|
-
* in production.
|
|
306
|
-
*/
|
|
307
|
-
export declare const WORK_EMAIL_CREDITS_PER_FOUND_MEASURED = 3;
|
|
308
297
|
/** Editable calculator default: blended credits per fully-enriched row. */
|
|
309
298
|
export declare const ENRICHMENT_CREDITS_PER_ROW_TYPICAL = 10;
|
|
@@ -274,16 +274,5 @@ export const ENRICHMENT_CREDITS = {
|
|
|
274
274
|
page_scrape: 1.6, // Firecrawl, 5x of $0.0032 (repricing 2026-09, S44)
|
|
275
275
|
linkedin_profile_scrape: 1, // Managed profile credit at $0.002 COGS, exactly 5x
|
|
276
276
|
};
|
|
277
|
-
/**
|
|
278
|
-
* What the default work-email column spends per email it finds, measured, not
|
|
279
|
-
* the single-finder list price above. 23,400 production `find_email` rows across
|
|
280
|
-
* 10 tenants (2026-08-11 to 2026-09-11) spent 2.6 credits per found email in
|
|
281
|
-
* today's units: the cheap first lane (Blitz at 1.5 credits, plus 0.225 to
|
|
282
|
-
* verify) finds most of them, and a lane that misses bills nothing. Rounded up
|
|
283
|
-
* to 3, so a plan's "about N work emails" stays below what was measured.
|
|
284
|
-
* Source and method: `.agents/skills/oxygen-enrichment-waterfall` § find_email
|
|
285
|
-
* in production.
|
|
286
|
-
*/
|
|
287
|
-
export const WORK_EMAIL_CREDITS_PER_FOUND_MEASURED = 3;
|
|
288
277
|
/** Editable calculator default: blended credits per fully-enriched row. */
|
|
289
278
|
export const ENRICHMENT_CREDITS_PER_ROW_TYPICAL = SNAPSHOT_ENRICHMENT_CREDITS_PER_ROW_TYPICAL;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const OXYGEN_BUILD_VERSION = "1.1011.
|
|
1
|
+
export declare const OXYGEN_BUILD_VERSION = "1.1011.622";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// GENERATED by scripts/ci/version-stamp.mjs from VERSION + git history. Do not edit; do not commit.
|
|
2
|
-
export const OXYGEN_BUILD_VERSION = "1.1011.
|
|
2
|
+
export const OXYGEN_BUILD_VERSION = "1.1011.622";
|