@naturali/cli 0.133.2 → 0.134.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 +55 -5
  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.133.2";
20
+ var version = "0.134.0";
21
21
  //#endregion
22
22
  //#region ../sdk/src/generated/core/bodySerializer.gen.ts
23
23
  const serializeFormDataPair = (data, key, value) => {
@@ -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.
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
3749
  * Requires the `admin` role in the project (an `owner` has it too).
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.
@@ -7258,7 +7259,7 @@ const routes = {
7258
7259
  },
7259
7260
  {
7260
7261
  "name": "knowledge_config",
7261
- "description": "Per-generation knowledge retrieval override. Array filters (memory_store_ids, document_ids, document_paths) are unioned with the agent's stored knowledge_config; `tags` pairs are merged with the override winning per key; scalar fields (min_score, limit) use the per-generation value when present.",
7262
+ "description": "Per-generation knowledge retrieval override. Array filters (memory_store_ids, document_ids, document_paths) are unioned with the agent's stored knowledge_config; `tags` pairs are merged with the override winning per key; scalar fields (min_score, rrf_k, recency_half_life_days, limit) use the per-generation value when present.",
7262
7263
  "required": false,
7263
7264
  "type": "object",
7264
7265
  "in": "body"
@@ -14810,7 +14811,7 @@ const routes = {
14810
14811
  },
14811
14812
  {
14812
14813
  "name": "tool_context",
14813
- "description": "Key-value pairs forwarded as `X-Naturali-Context-<key>` headers on every `http` and `mcp` tool call made by an agent node of this run — including the agents of any child run a `loop` or `sub_orchestration` node starts. The header name is `X-Naturali-Context-` plus the key verbatim; no character is re-cased.\n\nThe bag is stored on the run and re-read on every step, so it survives an `awaiting_input` pause, a `sleeping` wait, a background worker drive and a crash redrive. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY` and no run is created.\n\nThe reserved identity keys (`session_id`, `actor_id`, `actor_external_id`) are stripped at generation time — a caller cannot address them from here.",
14814
+ "description": "Key-value pairs forwarded as `X-Naturali-Context-<key>` headers on every `http` and `mcp` tool call made by an agent node of this run — including the agents of any child run a `loop` or `sub_orchestration` node starts. The header name is `X-Naturali-Context-` plus the key verbatim; no character is re-cased.\n\nThe bag is stored on the run and re-read on every step, so it survives an `awaiting_input` pause, a `sleeping` wait, a background worker drive and a crash redrive. It is **write-only**: a run is a record every principal who may read runs can read, and a credential in it is not theirs to see, so it is never returned on one. A key that is not a valid HTTP header name, or two keys that map to the same header, are rejected with `400 INVALID_TOOL_CONTEXT_KEY` and no run is created.\n\nThe reserved identity keys (`session_id`, `actor_id`, `actor_external_id`) are stripped at generation time — a caller cannot address them from here.",
14814
14815
  "required": false,
14815
14816
  "type": "object",
14816
14817
  "in": "body"
@@ -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). 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
  },
@@ -17578,6 +17607,13 @@ const routes = {
17578
17607
  "type": "object",
17579
17608
  "in": "body"
17580
17609
  },
17610
+ {
17611
+ "name": "tool_context",
17612
+ "description": "Caller context every firing forwards to the run it starts, so an agent whose tools authorize through `{{context:<key>}}` can be put on a schedule — a firing has no request to carry one. Each key is forwarded as one `X-Naturali-Context-<key>` header.\n\n**Write-only.** It is accepted here and never returned on a read, so the record cannot be used to recover a value.\n\nA value may be a `{{secret:...}}` reference, which keeps the credential in the [secret](/docs/modules/secrets) store and leaves only its name on the trigger; it is resolved at fire time, so rotating the secret changes the next firing without touching the trigger. A reference naming a secret that does not exist in this project is refused here rather than at fire time.\n",
17613
+ "required": false,
17614
+ "type": "object",
17615
+ "in": "body"
17616
+ },
17581
17617
  {
17582
17618
  "name": "cron",
17583
17619
  "description": "5-field cron expression (UTC). Required when type is schedule",
@@ -17699,6 +17735,13 @@ const routes = {
17699
17735
  "type": "object",
17700
17736
  "in": "body"
17701
17737
  },
17738
+ {
17739
+ "name": "tool_context",
17740
+ "description": "Replaces the stored bag; `null` clears it. Write-only and resolved at fire time — see `CreateTriggerRequest.tool_context`.\n",
17741
+ "required": false,
17742
+ "type": "object",
17743
+ "in": "body"
17744
+ },
17702
17745
  {
17703
17746
  "name": "cron",
17704
17747
  "description": "",
@@ -17784,6 +17827,13 @@ const routes = {
17784
17827
  "required": false,
17785
17828
  "type": "object",
17786
17829
  "in": "body"
17830
+ },
17831
+ {
17832
+ "name": "tool_context",
17833
+ "description": "Fire-time caller context, shallow-merged per key over the trigger's stored `tool_context`. A manual fire has a caller, so this is the one path that can supply a value without storing it.\n\nForwarded exactly as written: a `{{secret:...}}` reference is resolved only in the trigger's stored bag, never in one supplied here.\n",
17834
+ "required": false,
17835
+ "type": "object",
17836
+ "in": "body"
17787
17837
  }
17788
17838
  ]
17789
17839
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturali/cli",
3
- "version": "0.133.2",
3
+ "version": "0.134.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.133.2",
28
+ "@naturali/sdk": "0.134.0",
29
29
  "@ttoss/openapi-codegen": "^0.3.1",
30
30
  "@types/node": "^26.5.1",
31
31
  "tsdown": "^0.23.0",