@naturali/cli 0.134.0 → 0.136.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 +15 -15
  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.134.0";
20
+ var version = "0.136.0";
21
21
  //#endregion
22
22
  //#region ../sdk/src/generated/core/bodySerializer.gen.ts
23
23
  const serializeFormDataPair = (data, key, value) => {
@@ -1492,7 +1492,7 @@ var ApiKeys = class {
1492
1492
  * Create an API key
1493
1493
  *
1494
1494
  * Creates an API key. When `project_id` is set the key is scoped to that project (the default and recommended stance); omit it for an account-scoped key. `capabilities` narrows what the key may do; when omitted the key inherits the creator's capabilities. The raw `key` (nat_sk_…) is returned only in this response.
1495
- * A project-scoped key requires the `admin` role in that project: the key is a standing credential for everything the project can do, so handing one out is an administrative act rather than something a read-only `member` can do for themselves. An account-scoped key requires a credential that is not itself confined to one project.
1495
+ * A project-scoped key requires membership of that project. The key carries no role of its own — every request it makes resolves its holder's membership again — so it can never reach past what its minter already had. An account-scoped key requires a credential that is not itself confined to one project.
1496
1496
  * A connected app cannot create keys at all: a grant is revocable and a key is not, so a key minted under a grant would still work after the app was disconnected. Reading and revoking keys stay available.
1497
1497
  *
1498
1498
  */
@@ -3746,7 +3746,7 @@ var Projects = class {
3746
3746
  * Update a project
3747
3747
  *
3748
3748
  * Rename or archive a project, and/or change its content-retention settings (`trace_content_retention_days`, `trace_content_mode`), its execution ceilings (`max_concurrent_runs`, `max_chain_generations`, `max_orchestration_run_depth`) and its priced-model gate (`require_priced_model`). Archiving is reversible; resources are retained.
3749
- * Requires the `admin` role in the project (an `owner` has it too).
3749
+ * Requires the `admin` role in the project (an `owner` has it too). These are the terms every member works under, which is why setting them sits above the role that works under them.
3750
3750
  * The ceilings and the priced-model gate are uncapped by plan: each one only ever narrows what the project may spend, so setting one takes on a restriction rather than claiming an entitlement. On the three ceilings `null` clears the project's own bound and omission leaves it alone — they are different instructions.
3751
3751
  * The two retention controls answer different questions. The window bounds how long content *stays* — a daily sweep purges anything past it, leaving auditable skeletons behind. `trace_content_mode: none` means content is never *written*, which is the stronger guarantee: it cannot be missed by a sweep or survive in a backup.
3752
3752
  *
@@ -3766,7 +3766,7 @@ var Projects = class {
3766
3766
  /**
3767
3767
  * List project members
3768
3768
  *
3769
- * Lists who may act in the project, and with what role. Readable by every member, including a read-only `member`: who else is in the project is not a privileged fact, and hiding it makes "why can that person see my agents?" unanswerable.
3769
+ * Lists who may act in the project, and with what role. Readable by every member, whatever their role: who else is in the project is not a privileged fact, and hiding it makes "why can that person see my agents?" unanswerable.
3770
3770
  * Somebody invited who has never signed in is listed too, with status `pending` — the invitation is already a grant, so hiding it until they arrive would hide access that exists.
3771
3771
  *
3772
3772
  */
@@ -3803,7 +3803,7 @@ var Projects = class {
3803
3803
  *
3804
3804
  * Removes a member, or leaves the project yourself.
3805
3805
  *
3806
- * **Anyone may remove themselves**, whatever their role: a colleague who no longer wants access should not have to ask for it, and leaving takes nothing from anybody else. Removing *somebody else* needs authority — an `owner` may remove anyone, an `admin` may remove a read-only `member` and not another `admin`.
3806
+ * **Anyone may remove themselves**, whatever their role: a colleague who no longer wants access should not have to ask for it, and leaving takes nothing from anybody else. Removing *somebody else* needs authority — an `owner` may remove anyone, an `admin` may remove a `member` and not another `admin`.
3807
3807
  *
3808
3808
  * The owner's own row is refused: a project with no owner is unreachable, and the row names who pays.
3809
3809
  *
@@ -6189,7 +6189,7 @@ const routes = {
6189
6189
  },
6190
6190
  {
6191
6191
  "name": "action",
6192
- "description": "",
6192
+ "description": "What an inbound message becomes.\n\n`agent` is a dialogue: the identity behind the message gets a session, and every later message on it continues the same one. `oneshot` runs the agent once and keeps nothing — no address, no actor, no session, no conversation — so each message is answered on its own. Choose it for work that is filed rather than discussed; choose `agent` when the answer depends on what came before.\n\n`message` delivers fixed text without running an agent, and `silence` answers nothing.\n",
6193
6193
  "required": true,
6194
6194
  "type": "string",
6195
6195
  "in": "body"
@@ -6224,7 +6224,7 @@ const routes = {
6224
6224
  },
6225
6225
  {
6226
6226
  "name": "config",
6227
- "description": "",
6227
+ "description": "Conversation config bag — media handling, persona overrides, the Discord allowlist, and how a `oneshot` answers.\n\n`discord.reply` picks the delivery: `react` (the default) adds `discord.reaction` — `\\u2705` unless named — to the message that triggered the run, `mention` answers beside it addressing whoever asked, `thread` opens a thread and answers inside it, and `none` delivers nothing at all. A run that fails delivers nothing in every mode, so a reaction always means the work was done; there is no failure marker.\n\nRead only for `oneshot`. A conversational `agent` in a guild *is* its thread — that is what its session is keyed on — so it always opens one.\n",
6228
6228
  "required": false,
6229
6229
  "type": "object",
6230
6230
  "in": "body"
@@ -7870,7 +7870,7 @@ const routes = {
7870
7870
  "create-api-key": {
7871
7871
  serviceClass: "APIKeys",
7872
7872
  operationId: "createApiKey",
7873
- description: "Creates an API key. When `project_id` is set the key is scoped to that project (the default and recommended stance); omit it for an account-scoped key. `capabilities` narrows what the key may do; when omitted the key inherits the creator's capabilities. The raw `key` (nat_sk_…) is returned only in this response. A project-scoped key requires the `admin` role in that project: the key is a standing credential for everything the project can do, so handing one out is an administrative act rather than something a read-only `member` can do for themselves. An account-scoped key requires a credential that is not itself confined to one project. A connected app cannot create keys at all: a grant is revocable and a key is not, so a key minted under a grant would still work after the app was disconnected. Reading and revoking keys stay available.",
7873
+ description: "Creates an API key. When `project_id` is set the key is scoped to that project (the default and recommended stance); omit it for an account-scoped key. `capabilities` narrows what the key may do; when omitted the key inherits the creator's capabilities. The raw `key` (nat_sk_…) is returned only in this response. A project-scoped key requires membership of that project. The key carries no role of its own — every request it makes resolves its holder's membership again — so it can never reach past what its minter already had. An account-scoped key requires a credential that is not itself confined to one project. A connected app cannot create keys at all: a grant is revocable and a key is not, so a key minted under a grant would still work after the app was disconnected. Reading and revoking keys stay available.",
7874
7874
  moduleDocsUrl: "https://docs.naturali.ai/docs/modules/api-keys",
7875
7875
  httpMethod: "post",
7876
7876
  pathParams: [],
@@ -8713,7 +8713,7 @@ const routes = {
8713
8713
  },
8714
8714
  {
8715
8715
  "name": "action",
8716
- "description": "",
8716
+ "description": "What an inbound message becomes.\n\n`agent` is a dialogue: the identity behind the message gets a session, and every later message on it continues the same one. `oneshot` runs the agent once and keeps nothing — no address, no actor, no session, no conversation — so each message is answered on its own. Choose it for work that is filed rather than discussed; choose `agent` when the answer depends on what came before.\n\n`message` delivers fixed text without running an agent, and `silence` answers nothing.\n",
8717
8717
  "required": true,
8718
8718
  "type": "string",
8719
8719
  "in": "body"
@@ -8748,7 +8748,7 @@ const routes = {
8748
8748
  },
8749
8749
  {
8750
8750
  "name": "config",
8751
- "description": "",
8751
+ "description": "Conversation config bag — media handling, persona overrides, the Discord allowlist, and how a `oneshot` answers.\n\n`discord.reply` picks the delivery: `react` (the default) adds `discord.reaction` — `\\u2705` unless named — to the message that triggered the run, `mention` answers beside it addressing whoever asked, `thread` opens a thread and answers inside it, and `none` delivers nothing at all. A run that fails delivers nothing in every mode, so a reaction always means the work was done; there is no failure marker.\n\nRead only for `oneshot`. A conversational `agent` in a guild *is* its thread — that is what its session is keyed on — so it always opens one.\n",
8752
8752
  "required": false,
8753
8753
  "type": "object",
8754
8754
  "in": "body"
@@ -8859,7 +8859,7 @@ const routes = {
8859
8859
  },
8860
8860
  {
8861
8861
  "name": "action",
8862
- "description": "",
8862
+ "description": "What an inbound message becomes.\n\n`agent` is a dialogue: the identity behind the message gets a session, and every later message on it continues the same one. `oneshot` runs the agent once and keeps nothing — no address, no actor, no session, no conversation — so each message is answered on its own. Choose it for work that is filed rather than discussed; choose `agent` when the answer depends on what came before.\n\n`message` delivers fixed text without running an agent, and `silence` answers nothing.\n",
8863
8863
  "required": true,
8864
8864
  "type": "string",
8865
8865
  "in": "body"
@@ -8894,7 +8894,7 @@ const routes = {
8894
8894
  },
8895
8895
  {
8896
8896
  "name": "config",
8897
- "description": "",
8897
+ "description": "Conversation config bag — media handling, persona overrides, the Discord allowlist, and how a `oneshot` answers.\n\n`discord.reply` picks the delivery: `react` (the default) adds `discord.reaction` — `\\u2705` unless named — to the message that triggered the run, `mention` answers beside it addressing whoever asked, `thread` opens a thread and answers inside it, and `none` delivers nothing at all. A run that fails delivers nothing in every mode, so a reaction always means the work was done; there is no failure marker.\n\nRead only for `oneshot`. A conversational `agent` in a guild *is* its thread — that is what its session is keyed on — so it always opens one.\n",
8898
8898
  "required": false,
8899
8899
  "type": "object",
8900
8900
  "in": "body"
@@ -15055,7 +15055,7 @@ const routes = {
15055
15055
  "update-project": {
15056
15056
  serviceClass: "Projects",
15057
15057
  operationId: "updateProject",
15058
- description: "Rename or archive a project, and/or change its content-retention settings (`trace_content_retention_days`, `trace_content_mode`), its execution ceilings (`max_concurrent_runs`, `max_chain_generations`, `max_orchestration_run_depth`) and its priced-model gate (`require_priced_model`). Archiving is reversible; resources are retained. Requires the `admin` role in the project (an `owner` has it too). The ceilings and the priced-model gate are uncapped by plan: each one only ever narrows what the project may spend, so setting one takes on a restriction rather than claiming an entitlement. On the three ceilings `null` clears the project's own bound and omission leaves it alone — they are different instructions. The two retention controls answer different questions. The window bounds how long content *stays* — a daily sweep purges anything past it, leaving auditable skeletons behind. `trace_content_mode: none` means content is never *written*, which is the stronger guarantee: it cannot be missed by a sweep or survive in a backup. Your plan sets the longest window you may keep content for. A wider one — `null` included, which keeps content indefinitely — responds `403` with `plan_limit_reached`, whose `details` carry the `plan` and the `limit` in days. Anything shorter is always allowed. Moving to a plan with a shorter window takes effect at the end of the billing cycle, and content already stored is then purged by age like everything else.",
15058
+ description: "Rename or archive a project, and/or change its content-retention settings (`trace_content_retention_days`, `trace_content_mode`), its execution ceilings (`max_concurrent_runs`, `max_chain_generations`, `max_orchestration_run_depth`) and its priced-model gate (`require_priced_model`). Archiving is reversible; resources are retained. Requires the `admin` role in the project (an `owner` has it too). These are the terms every member works under, which is why setting them sits above the role that works under them. The ceilings and the priced-model gate are uncapped by plan: each one only ever narrows what the project may spend, so setting one takes on a restriction rather than claiming an entitlement. On the three ceilings `null` clears the project's own bound and omission leaves it alone — they are different instructions. The two retention controls answer different questions. The window bounds how long content *stays* — a daily sweep purges anything past it, leaving auditable skeletons behind. `trace_content_mode: none` means content is never *written*, which is the stronger guarantee: it cannot be missed by a sweep or survive in a backup. Your plan sets the longest window you may keep content for. A wider one — `null` included, which keeps content indefinitely — responds `403` with `plan_limit_reached`, whose `details` carry the `plan` and the `limit` in days. Anything shorter is always allowed. Moving to a plan with a shorter window takes effect at the end of the billing cycle, and content already stored is then purged by age like everything else.",
15059
15059
  moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
15060
15060
  httpMethod: "patch",
15061
15061
  pathParams: ["project_id"],
@@ -15155,7 +15155,7 @@ const routes = {
15155
15155
  "list-project-members": {
15156
15156
  serviceClass: "Projects",
15157
15157
  operationId: "listProjectMembers",
15158
- description: "Lists who may act in the project, and with what role. Readable by every member, including a read-only `member`: who else is in the project is not a privileged fact, and hiding it makes \"why can that person see my agents?\" unanswerable. Somebody invited who has never signed in is listed too, with status `pending` — the invitation is already a grant, so hiding it until they arrive would hide access that exists.",
15158
+ description: "Lists who may act in the project, and with what role. Readable by every member, whatever their role: who else is in the project is not a privileged fact, and hiding it makes \"why can that person see my agents?\" unanswerable. Somebody invited who has never signed in is listed too, with status `pending` — the invitation is already a grant, so hiding it until they arrive would hide access that exists.",
15159
15159
  moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
15160
15160
  httpMethod: "get",
15161
15161
  pathParams: ["project_id"],
@@ -15241,7 +15241,7 @@ const routes = {
15241
15241
  "remove-project-member": {
15242
15242
  serviceClass: "Projects",
15243
15243
  operationId: "removeProjectMember",
15244
- description: "Removes a member, or leaves the project yourself. **Anyone may remove themselves**, whatever their role: a colleague who no longer wants access should not have to ask for it, and leaving takes nothing from anybody else. Removing *somebody else* needs authority — an `owner` may remove anyone, an `admin` may remove a read-only `member` and not another `admin`. The owner's own row is refused: a project with no owner is unreachable, and the row names who pays.",
15244
+ description: "Removes a member, or leaves the project yourself. **Anyone may remove themselves**, whatever their role: a colleague who no longer wants access should not have to ask for it, and leaving takes nothing from anybody else. Removing *somebody else* needs authority — an `owner` may remove anyone, an `admin` may remove a `member` and not another `admin`. The owner's own row is refused: a project with no owner is unreachable, and the row names who pays.",
15245
15245
  moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
15246
15246
  httpMethod: "delete",
15247
15247
  pathParams: ["project_id", "member_id"],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturali/cli",
3
- "version": "0.134.0",
3
+ "version": "0.136.0",
4
4
  "description": "Command-line interface for the naturali.ai API, generated from its OpenAPI specs",
5
5
  "type": "module",
6
6
  "bin": {
@@ -25,7 +25,7 @@
25
25
  "yaml": "^2.9.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@naturali/sdk": "0.134.0",
28
+ "@naturali/sdk": "0.136.0",
29
29
  "@ttoss/openapi-codegen": "^0.3.1",
30
30
  "@types/node": "^26.5.1",
31
31
  "tsdown": "^0.23.0",