@soat/cli 0.15.5 → 0.15.7

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 +59 -14
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import { load } from "js-yaml";
13
13
  import * as os from "node:os";
14
14
 
15
15
  //#region package.json
16
- var version = "0.15.5";
16
+ var version = "0.15.7";
17
17
 
18
18
  //#endregion
19
19
  //#region src/cli-wrappers/wrappers/formations.ts
@@ -630,15 +630,21 @@ var routes = {
630
630
  "required": false,
631
631
  "type": "string",
632
632
  "in": "body"
633
+ }, {
634
+ "name": "tool_bindings",
635
+ "description": "Tools to attach, one binding object per tool — the canonical attachment field. Cannot be combined with the deprecated `tool_ids`/`tools` shorthands (400). See [Tool Bindings](/docs/modules/agents#tool-bindings).",
636
+ "required": false,
637
+ "type": "array",
638
+ "in": "body"
633
639
  }, {
634
640
  "name": "tool_ids",
635
- "description": "",
641
+ "description": "Deprecated shorthand — each entry becomes a bare `{ \"tool_id\": … }` binding. Use `tool_bindings` instead.",
636
642
  "required": false,
637
643
  "type": "array",
638
644
  "in": "body"
639
645
  }, {
640
646
  "name": "tools",
641
- "description": "Ephemeral tool definitions available only to this agent's generations no separate Tool resource is created (any `project_id` on an entry is ignored), so they never appear in `GET /tools` and cannot be targeted by `active_tool_ids`/ `step_rules` (which reference `tool_ids`). Cannot be of type `pipeline`; nest a persisted pipeline tool via `tool_ids` instead. Use `tool_ids` to reference existing tools and `tools` for ones scoped to just this agent.",
647
+ "description": "Deprecated shorthand each entry becomes a bare `{ \"tool\": … }` binding (an ephemeral definition: no separate Tool resource is created, any `project_id` on an entry is ignored, entries never appear in `GET /tools`, cannot be targeted by `active_tool_ids`/`step_rules`, and cannot be of type `pipeline`). Use `tool_bindings` instead.",
642
648
  "required": false,
643
649
  "type": "array",
644
650
  "in": "body"
@@ -762,15 +768,21 @@ var routes = {
762
768
  "required": false,
763
769
  "type": "string",
764
770
  "in": "body"
771
+ }, {
772
+ "name": "tool_bindings",
773
+ "description": "Tools attached to the agent — the canonical attachment field. Replaces the whole binding list; set to `null` to clear. Cannot be combined with the deprecated `tool_ids`/`tools` shorthands (400). See [Tool Bindings](/docs/modules/agents#tool-bindings).",
774
+ "required": false,
775
+ "type": "array",
776
+ "in": "body"
765
777
  }, {
766
778
  "name": "tool_ids",
767
- "description": "",
779
+ "description": "Deprecated shorthand — replaces only the reference (`tool_id`) bindings, rewriting them bare (any `approval_policy` on them is dropped). Use `tool_bindings` instead.",
768
780
  "required": false,
769
781
  "type": "array",
770
782
  "in": "body"
771
783
  }, {
772
784
  "name": "tools",
773
- "description": "Ephemeral tool definitions available only to this agent's generations no separate Tool resource is created (any `project_id` on an entry is ignored), so they never appear in `GET /tools` and cannot be targeted by `active_tool_ids`/ `step_rules` (which reference `tool_ids`). Cannot be of type `pipeline`; nest a persisted pipeline tool via `tool_ids` instead. Replaces the agent's entire `tools` array; set to `null` to clear.",
785
+ "description": "Deprecated shorthand replaces only the inline (`tool`) bindings (ephemeral definitions: no separate Tool resource is created, any `project_id` on an entry is ignored, entries never appear in `GET /tools`, cannot be targeted by `active_tool_ids`/`step_rules`, and cannot be of type `pipeline`). Set to `null` to clear the inline bindings. Use `tool_bindings` instead.",
774
786
  "required": false,
775
787
  "type": "array",
776
788
  "in": "body"
@@ -879,15 +891,21 @@ var routes = {
879
891
  "required": false,
880
892
  "type": "string",
881
893
  "in": "body"
894
+ }, {
895
+ "name": "tool_bindings",
896
+ "description": "Tools attached to the agent — the canonical attachment field. Replaces the whole binding list; set to `null` to clear. Cannot be combined with the deprecated `tool_ids`/`tools` shorthands (400). See [Tool Bindings](/docs/modules/agents#tool-bindings).",
897
+ "required": false,
898
+ "type": "array",
899
+ "in": "body"
882
900
  }, {
883
901
  "name": "tool_ids",
884
- "description": "",
902
+ "description": "Deprecated shorthand — replaces only the reference (`tool_id`) bindings, rewriting them bare (any `approval_policy` on them is dropped). Use `tool_bindings` instead.",
885
903
  "required": false,
886
904
  "type": "array",
887
905
  "in": "body"
888
906
  }, {
889
907
  "name": "tools",
890
- "description": "Ephemeral tool definitions available only to this agent's generations no separate Tool resource is created (any `project_id` on an entry is ignored), so they never appear in `GET /tools` and cannot be targeted by `active_tool_ids`/ `step_rules` (which reference `tool_ids`). Cannot be of type `pipeline`; nest a persisted pipeline tool via `tool_ids` instead. Replaces the agent's entire `tools` array; set to `null` to clear.",
908
+ "description": "Deprecated shorthand replaces only the inline (`tool`) bindings (ephemeral definitions: no separate Tool resource is created, any `project_id` on an entry is ignored, entries never appear in `GET /tools`, cannot be targeted by `active_tool_ids`/`step_rules`, and cannot be of type `pipeline`). Set to `null` to clear the inline bindings. Use `tool_bindings` instead.",
891
909
  "required": false,
892
910
  "type": "array",
893
911
  "in": "body"
@@ -1041,6 +1059,12 @@ var routes = {
1041
1059
  "required": false,
1042
1060
  "type": "string",
1043
1061
  "in": "body"
1062
+ }, {
1063
+ "name": "metadata",
1064
+ "description": "Caller-supplied key/value metadata attached to the generation record for per-run audit attribution (e.g. the knowledge-corpus version that produced this action). Round-trips when the generation is fetched via the generations API. Reserved server-owned keys (`action_id`, `trigger_id`, `run_id`, `node_id`, `extraction`, and internal recovery state) cannot be set here and are rejected with 400.",
1065
+ "required": false,
1066
+ "type": "object",
1067
+ "in": "body"
1044
1068
  }, {
1045
1069
  "name": "extract",
1046
1070
  "description": "Per-turn override of the agent's `knowledge_config.extraction` default. Omit to follow the agent's stored config. Set `false` to suppress automatic memory extraction for this turn (e.g. an operational or tool-listing turn that would only add noise to a curated memory). Set `true` to force extraction on for this turn even when the agent does not enable it by default, provided the agent has a `write_memory_id`. Has no effect on streaming or `requires_action` turns, which never extract.",
@@ -1289,7 +1313,7 @@ var routes = {
1289
1313
  "create-api-key": {
1290
1314
  serviceClass: "APIKeys",
1291
1315
  operationId: "createApiKey",
1292
- description: "Creates a new API key for the authenticated user. - `project_id` is required: every key is scoped to exactly one project. - If `policy_ids` is provided, the key's effective permissions are the intersection of the user's policies and the key's policies. - Otherwise the key inherits the user's permissions, confined to the key's project.",
1316
+ description: "Creates a new API key for the authenticated user. - `project_id` is optional. When set, the key is scoped to that single project. When omitted or null, the key is **unscoped** and spans every project its owner can reach. - If `policy_ids` is provided, the key's effective permissions are the intersection of the user's policies and the key's policies. - Otherwise the key inherits the user's permissions (confined to the key's project when scoped).",
1293
1317
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
1294
1318
  pathParams: [],
1295
1319
  queryParams: [],
@@ -1301,8 +1325,8 @@ var routes = {
1301
1325
  "in": "body"
1302
1326
  }, {
1303
1327
  "name": "project_id",
1304
- "description": "Project ID this key is scoped to. Required keys cannot span projects.",
1305
- "required": true,
1328
+ "description": "Optional project ID to scope the key to. Omit or set null to create an unscoped key that spans projects.",
1329
+ "required": false,
1306
1330
  "type": "string",
1307
1331
  "in": "body"
1308
1332
  }, {
@@ -1331,7 +1355,7 @@ var routes = {
1331
1355
  "update-api-key": {
1332
1356
  serviceClass: "APIKeys",
1333
1357
  operationId: "updateApiKey",
1334
- description: "Updates an API key's name, project scope, or policies. The project scope can be changed to another project but never cleared. Only the owner or an admin can update it.",
1358
+ description: "Updates an API key's name, project scope, or policies. The project scope can be changed to another project, set (scoping a previously unscoped key), or cleared with null (unscoping the key). Only the owner or an admin can update it.",
1335
1359
  moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/api-keys",
1336
1360
  pathParams: ["api_key_id"],
1337
1361
  queryParams: [],
@@ -1349,7 +1373,7 @@ var routes = {
1349
1373
  "in": "body"
1350
1374
  }, {
1351
1375
  "name": "project_id",
1352
- "description": "Re-scope the key to a different project. Cannot be null keys are always project-scoped.",
1376
+ "description": "Re-scope the key to a different project, or set null to clear the scope (unscoped key). Omit to leave the scope unchanged.",
1353
1377
  "required": false,
1354
1378
  "type": "string",
1355
1379
  "in": "body"
@@ -2981,7 +3005,7 @@ var routes = {
2981
3005
  "in": "body"
2982
3006
  }, {
2983
3007
  "name": "metadata",
2984
- "description": "",
3008
+ "description": "Static annotations stored on the formation record. This field is NOT a substitution site: `sub`/`param`/`ref` expressions are rejected with 400 (`FORMATION_INVALID_METADATA`). For deploy-time substitution use the template's top-level `metadata` block, which is resolved into `resolved_metadata`.\n",
2985
3009
  "required": false,
2986
3010
  "type": "object",
2987
3011
  "in": "body"
@@ -3029,7 +3053,7 @@ var routes = {
3029
3053
  "in": "body"
3030
3054
  }, {
3031
3055
  "name": "metadata",
3032
- "description": "",
3056
+ "description": "Static annotations stored on the formation record. This field is NOT a substitution site: `sub`/`param`/`ref` expressions are rejected with 400 (`FORMATION_INVALID_METADATA`). For deploy-time substitution use the template's top-level `metadata` block, which is resolved into `resolved_metadata`.\n",
3033
3057
  "required": false,
3034
3058
  "type": "object",
3035
3059
  "in": "body"
@@ -3125,6 +3149,27 @@ var routes = {
3125
3149
  "in": "path"
3126
3150
  }]
3127
3151
  },
3152
+ "update-generation": {
3153
+ serviceClass: "Generations",
3154
+ operationId: "updateGeneration",
3155
+ description: "Attaches caller-supplied key/value metadata to a generation record for per-run audit attribution (e.g. recording which knowledge-corpus version produced an AI action). The provided keys are shallow-merged over the existing metadata, so repeated patches accumulate and system-owned keys are preserved. Reserved keys (`action_id`, `trigger_id`, `run_id`, `node_id`, `extraction`, and internal recovery state) cannot be set and are rejected with 400.",
3156
+ moduleDocsUrl: "https://soat.ttoss.dev/docs/modules/generations",
3157
+ pathParams: ["generation_id"],
3158
+ queryParams: [],
3159
+ flags: [{
3160
+ "name": "generation_id",
3161
+ "description": "Public ID of the generation",
3162
+ "required": true,
3163
+ "type": "string",
3164
+ "in": "path"
3165
+ }, {
3166
+ "name": "metadata",
3167
+ "description": "Caller-supplied key/value metadata to shallow-merge into the generation record. Reserved server-owned keys (`action_id`, `trigger_id`, `run_id`, `node_id`, `extraction`, and internal recovery state) are rejected with 400.\n",
3168
+ "required": true,
3169
+ "type": "object",
3170
+ "in": "body"
3171
+ }]
3172
+ },
3128
3173
  "list-ingestion-rules": {
3129
3174
  serviceClass: "IngestionRules",
3130
3175
  operationId: "listIngestionRules",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soat/cli",
3
- "version": "0.15.5",
3
+ "version": "0.15.7",
4
4
  "type": "module",
5
5
  "dependencies": {
6
6
  "@inquirer/input": "^5.1.2",
@@ -8,7 +8,7 @@
8
8
  "@ttoss/logger": "^0.8.19",
9
9
  "commander": "^15.0.0",
10
10
  "js-yaml": "^5.2.1",
11
- "@soat/sdk": "0.15.5"
11
+ "@soat/sdk": "0.15.7"
12
12
  },
13
13
  "devDependencies": {
14
14
  "@ttoss/config": "^1.37.17",