@soat/cli 0.63.0 → 0.65.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 +105 -6
  2. package/package.json +3 -3
package/dist/index.mjs CHANGED
@@ -13,7 +13,7 @@ import * as os from "node:os";
13
13
  import { createHmac, timingSafeEqual } from "node:crypto";
14
14
 
15
15
  //#region package.json
16
- var version = "0.63.0";
16
+ var version = "0.65.0";
17
17
 
18
18
  //#endregion
19
19
  //#region src/cli-wrappers/wrappers/formations.ts
@@ -780,6 +780,12 @@ var routes = {
780
780
  "required": true,
781
781
  "type": "string",
782
782
  "in": "path"
783
+ }, {
784
+ "name": "tags",
785
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
786
+ "required": true,
787
+ "type": "object",
788
+ "in": "body-root"
783
789
  }]
784
790
  },
785
791
  "merge-actor-tags": {
@@ -798,6 +804,12 @@ var routes = {
798
804
  "required": true,
799
805
  "type": "string",
800
806
  "in": "path"
807
+ }, {
808
+ "name": "tags",
809
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
810
+ "required": true,
811
+ "type": "object",
812
+ "in": "body-root"
801
813
  }]
802
814
  },
803
815
  "list-agents": {
@@ -1364,7 +1376,7 @@ var routes = {
1364
1376
  "in": "path"
1365
1377
  }, {
1366
1378
  "name": "wait",
1367
- "description": "When omitted or `false` (default), the generation runs in the background and `202 Accepted` is returned immediately with a `generation_id` to poll. Pass `true` to block until the generation settles and receive the result. Mutually exclusive with `stream: true`. A `builtin` tool call always waits.",
1379
+ "description": "When omitted or `false` (default), the generation runs in the background and `202 Accepted` is returned immediately with a `generation_id` to poll. Pass `true` to block until the generation settles and receive the result. Mutually exclusive with `stream: true`. A tool call, `builtin` or MCP, always waits.",
1368
1380
  "required": false,
1369
1381
  "type": "boolean",
1370
1382
  "in": "query"
@@ -2762,7 +2774,7 @@ var routes = {
2762
2774
  "in": "path"
2763
2775
  }, {
2764
2776
  "name": "wait",
2765
- "description": "When omitted or `false` (default), the generation runs in the background and `202 Accepted` is returned immediately. Pass `true` to block until the generation settles and receive the result. A `builtin` tool call always waits.",
2777
+ "description": "When omitted or `false` (default), the generation runs in the background and `202 Accepted` is returned immediately. Pass `true` to block until the generation settles and receive the result. A tool call, `builtin` or MCP, always waits.",
2766
2778
  "required": false,
2767
2779
  "type": "boolean",
2768
2780
  "in": "query"
@@ -2850,6 +2862,12 @@ var routes = {
2850
2862
  "required": true,
2851
2863
  "type": "string",
2852
2864
  "in": "path"
2865
+ }, {
2866
+ "name": "tags",
2867
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
2868
+ "required": true,
2869
+ "type": "object",
2870
+ "in": "body-root"
2853
2871
  }]
2854
2872
  },
2855
2873
  "merge-conversation-tags": {
@@ -2868,6 +2886,12 @@ var routes = {
2868
2886
  "required": true,
2869
2887
  "type": "string",
2870
2888
  "in": "path"
2889
+ }, {
2890
+ "name": "tags",
2891
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
2892
+ "required": true,
2893
+ "type": "object",
2894
+ "in": "body-root"
2871
2895
  }]
2872
2896
  },
2873
2897
  "list-deciders": {
@@ -3170,7 +3194,7 @@ var routes = {
3170
3194
  "in": "body"
3171
3195
  }, {
3172
3196
  "name": "wait",
3173
- "description": "True evaluates before answering and returns the settled decision. False — the default — returns the `queued` decision at once.",
3197
+ "description": "True evaluates before answering and returns the settled decision. False — the default — returns the `queued` decision at once. A tool call, `builtin` or MCP, always waits.",
3174
3198
  "required": false,
3175
3199
  "type": "boolean",
3176
3200
  "in": "body"
@@ -3870,6 +3894,12 @@ var routes = {
3870
3894
  "required": true,
3871
3895
  "type": "string",
3872
3896
  "in": "path"
3897
+ }, {
3898
+ "name": "tags",
3899
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
3900
+ "required": true,
3901
+ "type": "object",
3902
+ "in": "body-root"
3873
3903
  }]
3874
3904
  },
3875
3905
  "merge-document-tags": {
@@ -3888,6 +3918,12 @@ var routes = {
3888
3918
  "required": true,
3889
3919
  "type": "string",
3890
3920
  "in": "path"
3921
+ }, {
3922
+ "name": "tags",
3923
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
3924
+ "required": true,
3925
+ "type": "object",
3926
+ "in": "body-root"
3891
3927
  }]
3892
3928
  },
3893
3929
  "create-embeddings": {
@@ -5028,6 +5064,12 @@ var routes = {
5028
5064
  "required": true,
5029
5065
  "type": "string",
5030
5066
  "in": "path"
5067
+ }, {
5068
+ "name": "tags",
5069
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
5070
+ "required": true,
5071
+ "type": "object",
5072
+ "in": "body-root"
5031
5073
  }]
5032
5074
  },
5033
5075
  "merge-file-tags": {
@@ -5046,6 +5088,12 @@ var routes = {
5046
5088
  "required": true,
5047
5089
  "type": "string",
5048
5090
  "in": "path"
5091
+ }, {
5092
+ "name": "tags",
5093
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
5094
+ "required": true,
5095
+ "type": "object",
5096
+ "in": "body-root"
5049
5097
  }]
5050
5098
  },
5051
5099
  "validate-formation": {
@@ -6354,6 +6402,12 @@ var routes = {
6354
6402
  "required": true,
6355
6403
  "type": "string",
6356
6404
  "in": "path"
6405
+ }, {
6406
+ "name": "tags",
6407
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
6408
+ "required": true,
6409
+ "type": "object",
6410
+ "in": "body-root"
6357
6411
  }]
6358
6412
  },
6359
6413
  "merge-memory-tags": {
@@ -6372,6 +6426,12 @@ var routes = {
6372
6426
  "required": true,
6373
6427
  "type": "string",
6374
6428
  "in": "path"
6429
+ }, {
6430
+ "name": "tags",
6431
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
6432
+ "required": true,
6433
+ "type": "object",
6434
+ "in": "body-root"
6375
6435
  }]
6376
6436
  },
6377
6437
  "list-memory-rules": {
@@ -6888,6 +6948,12 @@ var routes = {
6888
6948
  "required": true,
6889
6949
  "type": "string",
6890
6950
  "in": "path"
6951
+ }, {
6952
+ "name": "tags",
6953
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
6954
+ "required": true,
6955
+ "type": "object",
6956
+ "in": "body-root"
6891
6957
  }]
6892
6958
  },
6893
6959
  "merge-memory-store-tags": {
@@ -6906,6 +6972,12 @@ var routes = {
6906
6972
  "required": true,
6907
6973
  "type": "string",
6908
6974
  "in": "path"
6975
+ }, {
6976
+ "name": "tags",
6977
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
6978
+ "required": true,
6979
+ "type": "object",
6980
+ "in": "body-root"
6909
6981
  }]
6910
6982
  },
6911
6983
  "list-metadata-schemas": {
@@ -8726,7 +8798,7 @@ var routes = {
8726
8798
  "in": "path"
8727
8799
  }, {
8728
8800
  "name": "wait",
8729
- "description": "When omitted or `false` (default), generation runs in the background and `202 Accepted` is returned immediately. Pass `true` to block until the generation settles and receive the result.",
8801
+ "description": "When omitted or `false` (default), generation runs in the background and `202 Accepted` is returned immediately. Pass `true` to block until the generation settles and receive the result. A tool call, `builtin` or MCP, always waits.",
8730
8802
  "required": false,
8731
8803
  "type": "boolean",
8732
8804
  "in": "query"
@@ -8886,6 +8958,12 @@ var routes = {
8886
8958
  "required": true,
8887
8959
  "type": "string",
8888
8960
  "in": "path"
8961
+ }, {
8962
+ "name": "tags",
8963
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
8964
+ "required": true,
8965
+ "type": "object",
8966
+ "in": "body-root"
8889
8967
  }]
8890
8968
  },
8891
8969
  "merge-session-tags": {
@@ -8904,6 +8982,12 @@ var routes = {
8904
8982
  "required": true,
8905
8983
  "type": "string",
8906
8984
  "in": "path"
8985
+ }, {
8986
+ "name": "tags",
8987
+ "description": "Key-value labels on a resource. A flat object of string values — an array, a nested object or a number is rejected with `400 VALIDATION_FAILED`, never coerced. Keys are opaque and stored verbatim, so `cost_center` and `costCenter` are two different tags. Matched by JSONB containment wherever tags are read: the `?tags=` filter, knowledge search, and the IAM `soat:ResourceTag/<key>` condition.\n\nKeys beginning `system.` are reserved: the platform writes them to record which conversation, actor, agent and role a row came from, and a write naming one is refused with `400 RESERVED_TAG_KEY`. They are read and filtered like any other tag.\n\nThe bag is bounded, because every pair reaches the IAM context of every access check on the resource: at most 50 keys, each key at most 128 characters and each value at most 256. A write past a bound — including a merge that would grow the stored bag past the key count — is `400 VALIDATION_FAILED` with `meta.limit` naming the bound it crossed. `system.*` keys are the platform's and do not count against the 50.",
8988
+ "required": true,
8989
+ "type": "object",
8990
+ "in": "body-root"
8907
8991
  }]
8908
8992
  },
8909
8993
  "list-tasks": {
@@ -11437,6 +11521,10 @@ program.argument("[command]", "API command in kebab-case (e.g. list-actors)").ar
11437
11521
  const pathArgs = {};
11438
11522
  const queryArgs = {};
11439
11523
  const bodyArgs = {};
11524
+ const rootBodyFlag = route.flags.find(f => {
11525
+ return f.in === "body-root";
11526
+ });
11527
+ let rootBody;
11440
11528
  for (const [flagKey, val] of Object.entries(flags)) {
11441
11529
  if (flagKey === "profile" || flagKey === "id") continue;
11442
11530
  const canonical = toCanonical(flagKey);
@@ -11448,7 +11536,9 @@ program.argument("[command]", "API command in kebab-case (e.g. list-actors)").ar
11448
11536
  const queryParam = route.queryParams.find(p => {
11449
11537
  return toCanonical(p) === canonical;
11450
11538
  });
11451
- if (pathParam) pathArgs[pathParam] = parsedValue;else if (queryParam) queryArgs[queryParam] = parsedValue;else if (route.httpMethod === "get") queryArgs[kebabToSnake(flagKey)] = parsedValue;else bodyArgs[kebabToSnake(flagKey)] = parsedValue;
11539
+ if (pathParam) pathArgs[pathParam] = parsedValue;else if (rootBodyFlag && canonical === toCanonical(rootBodyFlag.name)) rootBody = {
11540
+ value: parsedValue
11541
+ };else if (queryParam) queryArgs[queryParam] = parsedValue;else if (route.httpMethod === "get") queryArgs[kebabToSnake(flagKey)] = parsedValue;else bodyArgs[kebabToSnake(flagKey)] = parsedValue;
11452
11542
  }
11453
11543
  const positionalArgs = extractPositionalArgs({
11454
11544
  cliArgs: rawArgs
@@ -11482,6 +11572,15 @@ program.argument("[command]", "API command in kebab-case (e.g. list-actors)").ar
11482
11572
  if (Object.keys(pathArgs).length) callOpts["path"] = pathArgs;
11483
11573
  if (Object.keys(queryArgs).length) callOpts["query"] = queryArgs;
11484
11574
  if (Object.keys(bodyArgs).length) callOpts["body"] = bodyArgs;
11575
+ if (rootBody) {
11576
+ if (Object.keys(bodyArgs).length) {
11577
+ console.error(`Unknown flag(s) ${Object.keys(bodyArgs).map(key => {
11578
+ return `--${toKebab(key)}`;
11579
+ }).join(", ")}: '${commandName}' sends its whole body in --${toKebab(rootBodyFlag?.name ?? "")}.`);
11580
+ process.exit(1);
11581
+ }
11582
+ callOpts["body"] = rootBody.value;
11583
+ }
11485
11584
  const result = await method(callOpts);
11486
11585
  if (result.error) {
11487
11586
  const status = result.response && "status" in result.response ? result.response.status : void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soat/cli",
3
- "version": "0.63.0",
3
+ "version": "0.65.0",
4
4
  "description": "CLI for SOAT — open-source infrastructure for production-ready AI agents.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -22,14 +22,14 @@
22
22
  "dependencies": {
23
23
  "@inquirer/input": "^5.1.6",
24
24
  "@inquirer/password": "^5.2.2",
25
- "@soat/sdk": "0.63.0",
25
+ "@soat/sdk": "0.65.0",
26
26
  "@ttoss/logger": "^0.8.20",
27
27
  "commander": "^15.0.0",
28
28
  "js-yaml": "^5.4.2"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@ttoss/config": "^1.38.0",
32
- "@ttoss/openapi-codegen": "^0.4.0",
32
+ "@ttoss/openapi-codegen": "^0.5.0",
33
33
  "@ttoss/test-utils": "^4.2.19",
34
34
  "@types/jest": "^30.0.0",
35
35
  "@types/node": "^26.5.1",