@naturali/cli 0.133.3 → 0.135.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.
- package/dist/index.mjs +39 -10
- 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.
|
|
20
|
+
var version = "0.135.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
|
|
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
|
*/
|
|
@@ -3745,8 +3745,9 @@ var Projects = class {
|
|
|
3745
3745
|
/**
|
|
3746
3746
|
* Update a project
|
|
3747
3747
|
*
|
|
3748
|
-
* Rename or archive a project, and/or change its content-retention settings (`trace_content_retention_days`, `trace_content_mode`). Archiving is reversible; resources are retained.
|
|
3749
|
-
* Requires the `admin` role in the project (an `owner` has it too).
|
|
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). These are the terms every member works under, which is why setting them sits above the role that works under them.
|
|
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.
|
|
3750
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.
|
|
3751
3752
|
*
|
|
3752
3753
|
* 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.
|
|
@@ -3765,7 +3766,7 @@ var Projects = class {
|
|
|
3765
3766
|
/**
|
|
3766
3767
|
* List project members
|
|
3767
3768
|
*
|
|
3768
|
-
* Lists who may act in the project, and with what role. Readable by every member,
|
|
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.
|
|
3769
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.
|
|
3770
3771
|
*
|
|
3771
3772
|
*/
|
|
@@ -3802,7 +3803,7 @@ var Projects = class {
|
|
|
3802
3803
|
*
|
|
3803
3804
|
* Removes a member, or leaves the project yourself.
|
|
3804
3805
|
*
|
|
3805
|
-
* **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
|
|
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`.
|
|
3806
3807
|
*
|
|
3807
3808
|
* The owner's own row is refused: a project with no owner is unreachable, and the row names who pays.
|
|
3808
3809
|
*
|
|
@@ -7869,7 +7870,7 @@ const routes = {
|
|
|
7869
7870
|
"create-api-key": {
|
|
7870
7871
|
serviceClass: "APIKeys",
|
|
7871
7872
|
operationId: "createApiKey",
|
|
7872
|
-
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
|
|
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.",
|
|
7873
7874
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/api-keys",
|
|
7874
7875
|
httpMethod: "post",
|
|
7875
7876
|
pathParams: [],
|
|
@@ -15054,7 +15055,7 @@ const routes = {
|
|
|
15054
15055
|
"update-project": {
|
|
15055
15056
|
serviceClass: "Projects",
|
|
15056
15057
|
operationId: "updateProject",
|
|
15057
|
-
description: "Rename or archive a project, and/or change its content-retention settings (`trace_content_retention_days`, `trace_content_mode`). Archiving is reversible; resources are retained. Requires the `admin` role in the project (an `owner` has it too). 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.",
|
|
15058
15059
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
|
|
15059
15060
|
httpMethod: "patch",
|
|
15060
15061
|
pathParams: ["project_id"],
|
|
@@ -15096,6 +15097,34 @@ const routes = {
|
|
|
15096
15097
|
"required": false,
|
|
15097
15098
|
"type": "string",
|
|
15098
15099
|
"in": "body"
|
|
15100
|
+
},
|
|
15101
|
+
{
|
|
15102
|
+
"name": "max_concurrent_runs",
|
|
15103
|
+
"description": "Orchestration runs driven at once. Send `null` to lift the limit. Omitting the field leaves it unchanged.\n",
|
|
15104
|
+
"required": false,
|
|
15105
|
+
"type": "integer",
|
|
15106
|
+
"in": "body"
|
|
15107
|
+
},
|
|
15108
|
+
{
|
|
15109
|
+
"name": "max_chain_generations",
|
|
15110
|
+
"description": "Generations one continuation chain may hold. Send `null` to drop back to the platform-wide ceiling. Omitting the field leaves it unchanged.\n",
|
|
15111
|
+
"required": false,
|
|
15112
|
+
"type": "integer",
|
|
15113
|
+
"in": "body"
|
|
15114
|
+
},
|
|
15115
|
+
{
|
|
15116
|
+
"name": "max_orchestration_run_depth",
|
|
15117
|
+
"description": "Nesting levels a run tree may reach. Send `null` to drop back to the platform-wide bound. Omitting the field leaves it unchanged.\n",
|
|
15118
|
+
"required": false,
|
|
15119
|
+
"type": "integer",
|
|
15120
|
+
"in": "body"
|
|
15121
|
+
},
|
|
15122
|
+
{
|
|
15123
|
+
"name": "require_priced_model",
|
|
15124
|
+
"description": "Refuse a generation whose model carries no price, before the provider is called. Uncapped by plan — it only ever narrows what the project may spend.\n",
|
|
15125
|
+
"required": false,
|
|
15126
|
+
"type": "boolean",
|
|
15127
|
+
"in": "body"
|
|
15099
15128
|
}
|
|
15100
15129
|
]
|
|
15101
15130
|
},
|
|
@@ -15126,7 +15155,7 @@ const routes = {
|
|
|
15126
15155
|
"list-project-members": {
|
|
15127
15156
|
serviceClass: "Projects",
|
|
15128
15157
|
operationId: "listProjectMembers",
|
|
15129
|
-
description: "Lists who may act in the project, and with what role. Readable by every member,
|
|
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.",
|
|
15130
15159
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
|
|
15131
15160
|
httpMethod: "get",
|
|
15132
15161
|
pathParams: ["project_id"],
|
|
@@ -15212,7 +15241,7 @@ const routes = {
|
|
|
15212
15241
|
"remove-project-member": {
|
|
15213
15242
|
serviceClass: "Projects",
|
|
15214
15243
|
operationId: "removeProjectMember",
|
|
15215
|
-
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
|
|
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.",
|
|
15216
15245
|
moduleDocsUrl: "https://docs.naturali.ai/docs/modules/projects",
|
|
15217
15246
|
httpMethod: "delete",
|
|
15218
15247
|
pathParams: ["project_id", "member_id"],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@naturali/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.135.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.
|
|
28
|
+
"@naturali/sdk": "0.135.0",
|
|
29
29
|
"@ttoss/openapi-codegen": "^0.3.1",
|
|
30
30
|
"@types/node": "^26.5.1",
|
|
31
31
|
"tsdown": "^0.23.0",
|