@oxygen-agent/cli 1.839.6 → 1.839.9

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 CHANGED
@@ -34,4 +34,4 @@ oxygen update
34
34
 
35
35
  For product documentation, visit https://oxygen-agent.com/docs. For support, visit https://oxygen-agent.com.
36
36
 
37
- Version: 1.839.6
37
+ Version: 1.839.9
package/dist/index.js CHANGED
@@ -8600,23 +8600,23 @@ fixed scan; watermark_cursor starts a later bounded replay. Consumers must retai
8600
8600
  }));
8601
8601
  }));
8602
8602
  program.addCommand(new Command("egress")
8603
- .description("Managed mailbox-egress IP pool: status, inventory, dedicated-IP add-on, and rotation.")
8603
+ .description("Fly-native email egress: status, shared/dedicated IP inventory, the dedicated-IP add-on, and rotation.")
8604
8604
  .addCommand(new Command("status")
8605
- .description("Show egress mode, this org's open mailbox->IP assignments, and IP health counts. Read-only, 0 credits.")
8605
+ .description("Show this workspace's actual Fly egress mode, active IP, health counts, and dedicated add-on. Read-only, 0 credits.")
8606
8606
  .option("--json", "Print a JSON envelope.")
8607
8607
  .action(async (options) => {
8608
8608
  await handleAsyncAction("egress status", options, () => requestOxygen("/api/cli/egress"));
8609
8609
  }))
8610
8610
  .addCommand(new Command("ips")
8611
- .description("List the egress IPs this org may send through (shared pool for this env + any dedicated IP). Read-only.")
8611
+ .description("List the shared Fly worker IP and this workspace's dedicated Fly IP history. Read-only, 0 credits.")
8612
8612
  .option("--json", "Print a JSON envelope.")
8613
8613
  .action(async (options) => {
8614
8614
  await handleAsyncAction("egress ips", options, () => requestOxygen("/api/cli/egress?view=ips"));
8615
8615
  }))
8616
8616
  .addCommand(new Command("dedicated")
8617
- .description("Dedicated sending-IP add-on (25,000 credits per 30-day period): preview the quote, order with `request --approved`, cancel with `cancel --approve`, or check the add-on status.")
8617
+ .description("Dedicated Fly egress add-on (25,000 credits per 30-day period): workspace tenant isolation and account safety, not a deliverability or inbox-placement lever. Preview the quote, order with `request --approved`, cancel with `cancel --approve`, or check status.")
8618
8618
  .addCommand(new Command("request")
8619
- .description("Preview the dedicated sending-IP add-on (25,000 credits per 30-day period, $25 face value). With --approved, ORDER it: OXYGEN provisions one minimal Fly send-drain app plus one static egress IP for the workspace, debits the first period immediately, and debits the next 30 days later — not on the 1st. After the guarded handoff, every current and future workspace send routes through that app automatically; the Google/Microsoft relay IP recipients see does not change. Without --approved nothing is ordered or charged. While the platform Fly account is unavailable, ordering fails closed and the preview says so.")
8619
+ .description("Preview the dedicated Fly egress add-on (25,000 credits per 30-day period, $25 face value). With --approved, ORDER it: OXYGEN provisions one minimal Fly send-drain app plus one static egress IP for the workspace, debits the first period immediately, and debits the next 30 days later — not on the 1st. After the guarded handoff, every current and future workspace send routes through that app automatically; the Google/Microsoft relay IP recipients see does not change. This is workspace tenant isolation and account safety, not a deliverability or inbox-placement lever. Without --approved nothing is ordered or charged. While the platform Fly account is unavailable, ordering fails closed and the preview says so.")
8620
8620
  // --approved (not --approve): the credit-spending approval flag,
8621
8621
  // which is also what derives spends_credits in the self-index.
8622
8622
  .option("--approved", "Execute the order (a real recurring credit charge). Omit for a no-side-effect preview.")
@@ -8638,7 +8638,7 @@ fixed scan; watermark_cursor starts a later bounded replay. Consumers must retai
8638
8638
  }));
8639
8639
  }))
8640
8640
  .addCommand(new Command("cancel")
8641
- .description("Cancel the dedicated sending-IP add-on. Approval-gated: without --approve it previews. Cancellation takes effect at the END of the 30-day period already paid for: the IP keeps sending until then, and only at period end does it retire, its mailboxes re-home to the shared pool, and credit billing stop. No refund, no early cutoff.")
8641
+ .description("Cancel the dedicated sending-IP add-on. Approval-gated: without --approve it previews. Cancellation takes effect at the END of the 30-day period already paid for: the IP keeps sending until then, and only at period end does it retire, the workspace returns to the shared Fly worker, and credit billing stops. No refund, no early cutoff.")
8642
8642
  .option("--approve", "Execute the cancellation. Omit for a no-side-effect preview.")
8643
8643
  .option("--json", "Print a JSON envelope.")
8644
8644
  .action(async (options) => {
@@ -23216,6 +23216,15 @@ catch (error) {
23216
23216
  cliArgs.slice(-2).join(" ") === "limits --json") {
23217
23217
  process.stderr.write(`Hint: --json belongs to the show subcommand. Run \`${program.name()} limits show --json\`.\n`);
23218
23218
  }
23219
+ if (error.code === "commander.excessArguments" &&
23220
+ cliArgs[0] === "skills" &&
23221
+ cliArgs[1] === "install") {
23222
+ const requestedSkill = cliArgs[2]?.trim() ?? "";
23223
+ const skillArgument = /^[a-z0-9][a-z0-9_-]*$/i.test(requestedSkill)
23224
+ ? requestedSkill
23225
+ : "<name>";
23226
+ process.stderr.write(`Hint: skill names use the --skill option. Did you mean \`${program.name()} skills install --skill ${skillArgument}\`?\n`);
23227
+ }
23219
23228
  process.exitCode = error.exitCode;
23220
23229
  }
23221
23230
  else {
@@ -1,4 +1,4 @@
1
- export declare const OXYGEN_VERSION = "1.839.6";
1
+ export declare const OXYGEN_VERSION = "1.839.9";
2
2
  export declare const OXYGEN_MINIMUM_CLI_VERSION = "1.181.0";
3
3
  export declare const MANAGED_INBOX_MINIMUM_CLI_VERSION = "1.326.2";
4
4
  export declare const SUPPORT_AGENT_REPLY_MINIMUM_CLI_VERSION = "1.747.0";
@@ -1,4 +1,4 @@
1
- export const OXYGEN_VERSION = "1.839.6";
1
+ export const OXYGEN_VERSION = "1.839.9";
2
2
  // The GLOBAL CLI compatibility floor: the oldest CLI allowed to call any
3
3
  // operational route. Raising it hard-rejects every older CLI from the entire
4
4
  // product, so it obeys one law, enforced by scripts/ci/cli-min-version-gate.mjs:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxygen-agent/cli",
3
- "version": "1.839.6",
3
+ "version": "1.839.9",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",