@naturali/cli 0.203.0 → 0.204.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.
Files changed (2) hide show
  1. package/dist/index.mjs +50 -25
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -17,7 +17,7 @@ var __exportAll = (all, no_symbols) => {
17
17
  };
18
18
  //#endregion
19
19
  //#region package.json
20
- var version = "0.203.0";
20
+ var version = "0.204.0";
21
21
  //#endregion
22
22
  //#region ../sdk/src/generated/core/bodySerializer.gen.ts
23
23
  const serializeFormDataPair = (data, key, value) => {
@@ -1857,7 +1857,7 @@ var Assistant = class {
1857
1857
  /**
1858
1858
  * Read a conversation
1859
1859
  *
1860
- * The newest 100 messages of one conversation, oldest first.
1860
+ * A page of one conversation, oldest first. `offset` and `total` count every stored message, tool-only turns included, which this list leaves out — so a page can hold fewer than `limit`, and the list ends when `offset + limit` reaches `total`. The newest page is at `offset = total - limit`.
1861
1861
  *
1862
1862
  */
1863
1863
  static listAssistantSessionMessages(options) {
@@ -5958,7 +5958,7 @@ var Users = class {
5958
5958
  *
5959
5959
  * The plan the account is on, how long its projects may keep content, how much indexed storage it is holding, and the credit it has left — the figures the platform already enforces against, readable by the account they are enforced against.
5960
5960
  *
5961
- * A managed-model generation is refused with `402 insufficient_credit` while `credit_balance_usd` is negative, and a feature or a resource count outside the plan is refused with `403`, as is a retention window wider than `retention_days` or an ingest past `storage_limit_gb`. Every refusal names what is missing; this is where the numbers behind them are read.
5961
+ * A managed-model generation is refused with `402 insufficient_credit` while `credit_balance_usd` is negative, and a feature or a resource count outside the plan is refused with `403`, as is a retention window wider than `retention_days` or an ingest past `storage.limit`. Every refusal names what is missing; this is where the numbers behind them are read.
5962
5962
  *
5963
5963
  * Every figure here is a local read, which is what keeps this route cheap enough to poll — unlike `GET /v1/users/me/usage`, which asks the meter once per project.
5964
5964
  *
@@ -7192,6 +7192,15 @@ const buildCallOptions = (args) => {
7192
7192
  * renamed operation fails a test instead of silently disarming this.
7193
7193
  */
7194
7194
  const OUTCOME_IN_BODY = /* @__PURE__ */ new Set(["createFormation", "updateFormation"]);
7195
+ /** `CODE: message` from a formation's `StoredError`, when it carries either. */
7196
+ const storedErrorReason = (error) => {
7197
+ if (typeof error !== "object" || error === null) return void 0;
7198
+ const { code, message } = error;
7199
+ const parts = [code, message].filter((part) => {
7200
+ return typeof part === "string" && part.length > 0;
7201
+ });
7202
+ return parts.length > 0 ? parts.join(": ") : void 0;
7203
+ };
7195
7204
  /**
7196
7205
  * The stderr line for a `2xx` body that reports its own failure, or `undefined`
7197
7206
  * when there is nothing to report.
@@ -7202,7 +7211,7 @@ const bodyReportedFailure = (args) => {
7202
7211
  if (typeof data !== "object" || data === null) return void 0;
7203
7212
  const body = data;
7204
7213
  if (body["status"] !== "failed") return void 0;
7205
- return `Deploy failed: ${typeof body["error"] === "string" && body["error"].length > 0 ? body["error"] : "no reason given"}`;
7214
+ return `Deploy failed: ${storedErrorReason(body["error"]) ?? "no reason given"}`;
7206
7215
  };
7207
7216
  /**
7208
7217
  * Runs one generated command: parses its flags, resolves credentials, calls the
@@ -10180,7 +10189,7 @@ const routes = {
10180
10189
  moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
10181
10190
  httpMethod: "get",
10182
10191
  pathParams: [],
10183
- queryParams: ["limit", "cursor"],
10192
+ queryParams: ["limit", "offset"],
10184
10193
  headerParams: [],
10185
10194
  cookieParams: [],
10186
10195
  flags: [{
@@ -10190,10 +10199,10 @@ const routes = {
10190
10199
  "type": "integer",
10191
10200
  "in": "query"
10192
10201
  }, {
10193
- "name": "cursor",
10194
- "description": "Opaque pagination cursor from a previous response's next_cursor.",
10202
+ "name": "offset",
10203
+ "description": "Results to skip. Negative or not an integer it is `400`.",
10195
10204
  "required": false,
10196
- "type": "string",
10205
+ "type": "integer",
10197
10206
  "in": "query"
10198
10207
  }]
10199
10208
  },
@@ -10254,20 +10263,36 @@ const routes = {
10254
10263
  "list-assistant-session-messages": {
10255
10264
  serviceClass: "Assistant",
10256
10265
  operationId: "listAssistantSessionMessages",
10257
- description: "The newest 100 messages of one conversation, oldest first.",
10266
+ description: "A page of one conversation, oldest first. `offset` and `total` count every stored message, tool-only turns included, which this list leaves out — so a page can hold fewer than `limit`, and the list ends when `offset + limit` reaches `total`. The newest page is at `offset = total - limit`.",
10258
10267
  moduleDocsUrl: "https://naturali.ai/docs/modules/assistant",
10259
10268
  httpMethod: "get",
10260
10269
  pathParams: ["session_id"],
10261
- queryParams: [],
10270
+ queryParams: ["limit", "offset"],
10262
10271
  headerParams: [],
10263
10272
  cookieParams: [],
10264
- flags: [{
10265
- "name": "session_id",
10266
- "description": "Assistant session ID, as listed.",
10267
- "required": true,
10268
- "type": "string",
10269
- "in": "path"
10270
- }]
10273
+ flags: [
10274
+ {
10275
+ "name": "session_id",
10276
+ "description": "Assistant session ID, as listed.",
10277
+ "required": true,
10278
+ "type": "string",
10279
+ "in": "path"
10280
+ },
10281
+ {
10282
+ "name": "limit",
10283
+ "description": "Results per page, 1 to 100 (default 50). Above 100 it is clamped; below 1 or not an integer it is `400`.",
10284
+ "required": false,
10285
+ "type": "integer",
10286
+ "in": "query"
10287
+ },
10288
+ {
10289
+ "name": "offset",
10290
+ "description": "Results to skip. Negative or not an integer it is `400`.",
10291
+ "required": false,
10292
+ "type": "integer",
10293
+ "in": "query"
10294
+ }
10295
+ ]
10271
10296
  },
10272
10297
  "send-assistant-session-message": {
10273
10298
  serviceClass: "Assistant",
@@ -10286,7 +10311,7 @@ const routes = {
10286
10311
  "type": "string",
10287
10312
  "in": "path"
10288
10313
  }, {
10289
- "name": "text",
10314
+ "name": "content",
10290
10315
  "description": "",
10291
10316
  "required": true,
10292
10317
  "type": "string",
@@ -11063,7 +11088,7 @@ const routes = {
11063
11088
  },
11064
11089
  {
11065
11090
  "name": "default",
11066
- "description": "`action` is required; `agent_id` is required when it is `agent`, `text` when it is `message`. `repeat` is only valid alongside `action: message`.\n",
11091
+ "description": "",
11067
11092
  "required": true,
11068
11093
  "type": "object",
11069
11094
  "in": "body"
@@ -11240,7 +11265,7 @@ const routes = {
11240
11265
  },
11241
11266
  {
11242
11267
  "name": "default",
11243
- "description": "`action` is required; `agent_id` is required when it is `agent`, `text` when it is `message`. `repeat` is only valid alongside `action: message`.\n",
11268
+ "description": "",
11244
11269
  "required": false,
11245
11270
  "type": "object",
11246
11271
  "in": "body"
@@ -11365,7 +11390,7 @@ const routes = {
11365
11390
  },
11366
11391
  {
11367
11392
  "name": "identifier",
11368
- "description": "Filter to one address by its bare, channel-native identifier (a phone number on WhatsApp; a Discord user id, or `thread:<id>` for a guild thread) — the same value the channel itself reports, not the prefixed form the `identifier` field above returns. At most one row matches.\n",
11393
+ "description": "Filter to one address by the identifier conversations carry (`discord:dm:<user_id>`, `discord:thread:<guild_id>:<channel_id>`, `whatsapp:dm:<phone>`), in this channel's kind; any other form is `400`. At most one row matches.\n",
11369
11394
  "required": false,
11370
11395
  "type": "string",
11371
11396
  "in": "query"
@@ -11399,7 +11424,7 @@ const routes = {
11399
11424
  },
11400
11425
  {
11401
11426
  "name": "identifier",
11402
- "description": "The bare, channel-native identifier (a phone number, a Discord user id).",
11427
+ "description": "The address identifier, in this channel's kind (`whatsapp:dm:<phone>`, `discord:dm:<user_id>`); any other form is `400`.",
11403
11428
  "required": true,
11404
11429
  "type": "string",
11405
11430
  "in": "body"
@@ -23376,7 +23401,7 @@ const routes = {
23376
23401
  "get-current-user-billing": {
23377
23402
  serviceClass: "Users",
23378
23403
  operationId: "getCurrentUserBilling",
23379
- description: "The plan the account is on, how long its projects may keep content, how much indexed storage it is holding, and the credit it has left — the figures the platform already enforces against, readable by the account they are enforced against. A managed-model generation is refused with `402 insufficient_credit` while `credit_balance_usd` is negative, and a feature or a resource count outside the plan is refused with `403`, as is a retention window wider than `retention_days` or an ingest past `storage_limit_gb`. Every refusal names what is missing; this is where the numbers behind them are read. Every figure here is a local read, which is what keeps this route cheap enough to poll — unlike `GET /v1/users/me/usage`, which asks the meter once per project. Answers for the caller's own account only, and always the account the credential resolves to — an API key answers for the user that minted it. The plan gating a *project* is that project's billing owner's, so a member of someone else's project reads their own rung here, not that project's.",
23404
+ description: "The plan the account is on, how long its projects may keep content, how much indexed storage it is holding, and the credit it has left — the figures the platform already enforces against, readable by the account they are enforced against. A managed-model generation is refused with `402 insufficient_credit` while `credit_balance_usd` is negative, and a feature or a resource count outside the plan is refused with `403`, as is a retention window wider than `retention_days` or an ingest past `storage.limit`. Every refusal names what is missing; this is where the numbers behind them are read. Every figure here is a local read, which is what keeps this route cheap enough to poll — unlike `GET /v1/users/me/usage`, which asks the meter once per project. Answers for the caller's own account only, and always the account the credential resolves to — an API key answers for the user that minted it. The plan gating a *project* is that project's billing owner's, so a member of someone else's project reads their own rung here, not that project's.",
23380
23405
  moduleDocsUrl: "https://naturali.ai/docs/modules/users",
23381
23406
  httpMethod: "get",
23382
23407
  pathParams: [],
@@ -23902,7 +23927,7 @@ const routes = {
23902
23927
  "cursor",
23903
23928
  "webhook_id",
23904
23929
  "status",
23905
- "event_type"
23930
+ "type"
23906
23931
  ],
23907
23932
  headerParams: [],
23908
23933
  cookieParams: [],
@@ -23943,7 +23968,7 @@ const routes = {
23943
23968
  "in": "query"
23944
23969
  },
23945
23970
  {
23946
- "name": "event_type",
23971
+ "name": "type",
23947
23972
  "description": "Only deliveries of this event type.",
23948
23973
  "required": false,
23949
23974
  "type": "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturali/cli",
3
- "version": "0.203.0",
3
+ "version": "0.204.0",
4
4
  "description": "Command-line interface for the naturali.ai API, generated from its OpenAPI specs",
5
5
  "keywords": [
6
6
  "naturali",
@@ -31,7 +31,7 @@
31
31
  "yaml": "^2.9.1"
32
32
  },
33
33
  "devDependencies": {
34
- "@naturali/sdk": "0.203.0",
34
+ "@naturali/sdk": "0.204.0",
35
35
  "@ttoss/openapi-codegen": "^0.5.0",
36
36
  "@types/node": "^26.5.1",
37
37
  "tsdown": "^0.23.0",