@oxygen-agent/cli 1.1011.622 → 1.1011.626

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.1011.622
37
+ Version: 1.1011.626
@@ -135,7 +135,22 @@ path, options = {}) {
135
135
  finally {
136
136
  timeout.cancel();
137
137
  }
138
- const envelope = await readEnvelope(response);
138
+ const envelope = await readEnvelope(response).catch((error) => {
139
+ // A gateway answered instead of OXYGEN: the request may still be running or
140
+ // may have finished. Say so, with what is needed to check, instead of
141
+ // calling the gateway's page an invalid envelope.
142
+ if (!(error instanceof OxygenError) || ![502, 503, 504].includes(response.status))
143
+ throw error;
144
+ throw new OxygenError("invalid_response", `Oxygen API did not answer in time (HTTP ${response.status}); the outcome is unknown.`, {
145
+ details: {
146
+ status: response.status,
147
+ trace_id: response.headers.get("x-oxygen-trace-id") ?? traceId,
148
+ ...(idempotencyKey ? { idempotency_key: idempotencyKey } : {}),
149
+ ...(method === "GET" ? {} : { next_step: UNCONFIRMED_WRITE_NEXT_STEP }),
150
+ },
151
+ exitCode: 1,
152
+ });
153
+ });
139
154
  const compatibility = readEnvelopeCompatibility(envelope);
140
155
  const failed = !response.ok || !envelope.ok;
141
156
  try {
package/dist/index.js CHANGED
@@ -7227,7 +7227,7 @@ fixed scan; watermark_cursor starts a later bounded replay. Consumers must retai
7227
7227
  .alias("get")
7228
7228
  .description("Describe a workspace table and its columns. Add --stats for row count and per-column fill rates (0 credits). Next: `tools search --for-table <table>` lists what these columns can be enriched with and what each costs per row (0 credits).")
7229
7229
  .argument("<table>", "Table id or slug.")
7230
- .option("--include-archived", "Include archived columns.")
7230
+ .option("--include-archived", "Include archived columns, and read a table that is archived, scheduled for deletion or being purged.")
7231
7231
  .option("--stats", "Include stats.rowCount (also summary.rowCount) and per-column fill rates. Row count is exact; above 100 rows fill rates use a 100-row sample (stats.statsSampled). For whole-table fill rates on a bigger list use `tables preview <table> --summary-only` \u2014 exact up to 20,000 rows, 2,000-row sample above. 0 credits.")
7232
7232
  .option("--json", "Print a JSON envelope.")
7233
7233
  .action(async (table, options) => {
@@ -7295,9 +7295,9 @@ fixed scan; watermark_cursor starts a later bounded replay. Consumers must retai
7295
7295
  }));
7296
7296
  }))
7297
7297
  .addCommand(new Command("delete")
7298
- .description("Delete workspace tables: archives now and schedules the physical purge (default 14 days; restorable via `tables restore` until then). --now purges immediately and permanently — it previews and refuses without --yes.")
7298
+ .description("Delete workspace tables: archives now and schedules the physical purge (default 14 days; restorable via `tables restore` until then). --now purges immediately and permanently — it previews and refuses without --yes. A table with a large history answers `purging` and finishes in the background. Free — 0 Oxygen credits.")
7299
7299
  .argument("<tables...>", "Table ids or slugs.")
7300
- .option("--now", "Purge immediately instead of scheduling. Irreversible; single table only.")
7300
+ .option("--now", "Purge immediately instead of scheduling. Irreversible; single table only. A large table finishes in the background.")
7301
7301
  .option("--yes", "Approve the immediate purge previewed by --now.")
7302
7302
  .option("--purge-after <days>", "Days until the scheduled purge runs. Defaults to 14; 0 purges on the next background sweep (sweeps visit each workspace every few minutes).")
7303
7303
  .option("--reason <text>", "Recorded with the delete for the audit trail.")
@@ -11210,7 +11210,7 @@ Examples:
11210
11210
  program
11211
11211
  .command("limits")
11212
11212
  .description("Plan-tier limits, spend-safety defaults, per-channel sending limits, and storage capacity posture.")
11213
- .addHelpText("after", "\nRun `oxygen limits show --json` to see your current plan's API and webhook rates, Table and workspace storage headroom, and the next scheduled change. The $999 and $1,999 rows-per-Table increases remain held until capacity testing passes.\n")
11213
+ .addHelpText("after", "\nRun `oxygen limits show --json` to see your current plan's API and webhook rates, Table and workspace storage headroom, and the next scheduled change; `--section capacity` returns only storage, including which Table is full. The $999 and $1,999 rows-per-Table increases remain held until capacity testing passes.\n")
11214
11214
  .addCommand(addContractFlags(new Command("show")
11215
11215
  .description("Compare every plan size: price, monthly credits, volume bonus and price per 100 credits (`plan_bands`). Show your plan band and its limits beside every plan size's (API rate, webhook ingress, storage, import file size, columns per auto-run, signals feed, spend defaults incl. Agent and Copilot caps, fastest workflow schedule), the per-channel sending limits every plan shares (emails per mailbox, WhatsApp, LinkedIn, calls) and its workflow Code-step and run-attempt limits, plus Tables capacity usage naming the largest Table. Each plan size's storage says whether it is in force, scheduled to change on a date, or awaiting its rows-per-Table capacity test, with the values it moves to. `spend_safety_defaults.enterprise_agent_run_default` gives Enterprise the $1,999 band’s in-force Agent default with no contract override; `agent_run_approved_max_credits` is the maximum for an explicitly approved higher run. `spend_safety_defaults.applies_to` says what each spend default bounds: an unattended trigger delivery, a table auto-run batch, one Agent run, or the attended Copilot. `web_url` opens the same view in the web app (Settings → Plan limits), including any scheduled change. Read-only; spends no credits. Recovery: https://oxygen-agent.com/docs/safety/billing."), LIMITS_READ_QUERY_CONTRACT)
11216
11216
  .option("--json", "Print a JSON envelope.")
@@ -1 +1 @@
1
- export declare const OXYGEN_BUILD_VERSION = "1.1011.622";
1
+ export declare const OXYGEN_BUILD_VERSION = "1.1011.626";
@@ -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.622";
2
+ export const OXYGEN_BUILD_VERSION = "1.1011.626";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxygen-agent/cli",
3
- "version": "1.1011.622",
3
+ "version": "1.1011.626",
4
4
  "private": false,
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",