@naturali/cli 0.156.1 → 0.157.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 +373 -207
  2. package/package.json +3 -3
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.156.1";
20
+ var version = "0.157.0";
21
21
  //#endregion
22
22
  //#region ../sdk/src/generated/core/bodySerializer.gen.ts
23
23
  const serializeFormDataPair = (data, key, value) => {
@@ -5790,19 +5790,19 @@ const renderCommandHelp = (args) => {
5790
5790
  for (const group of [
5791
5791
  {
5792
5792
  label: "Path flags",
5793
- in: "path"
5793
+ in: ["path"]
5794
5794
  },
5795
5795
  {
5796
5796
  label: "Query flags",
5797
- in: "query"
5797
+ in: ["query"]
5798
5798
  },
5799
5799
  {
5800
5800
  label: "Body flags",
5801
- in: "body"
5801
+ in: ["body", "body-root"]
5802
5802
  }
5803
5803
  ]) {
5804
5804
  const flags = route.flags.filter((flag) => {
5805
- return flag.in === group.in;
5805
+ return group.in.includes(flag.in);
5806
5806
  });
5807
5807
  if (flags.length === 0) continue;
5808
5808
  lines.push(`${group.label}:`);
@@ -5950,6 +5950,11 @@ const resolveFlagValue = (args) => {
5950
5950
  };
5951
5951
  //#endregion
5952
5952
  //#region src/routeCall.ts
5953
+ const findRootBodyFlag = (route) => {
5954
+ return route.flags.find((flag) => {
5955
+ return flag.in === "body-root";
5956
+ });
5957
+ };
5953
5958
  const placeFlags = (args) => {
5954
5959
  const { route, parsedFlags, call } = args;
5955
5960
  const fileErrors = [];
@@ -5967,6 +5972,7 @@ const placeFlags = (args) => {
5967
5972
  }
5968
5973
  return resolved.fromFile ? resolved.value : coerce(resolved.value);
5969
5974
  };
5975
+ const rootBodyFlag = findRootBodyFlag(route);
5970
5976
  const typeByCanonical = new Map(route.flags.map((flag) => {
5971
5977
  return [toCanonical(flag.name), flag.type];
5972
5978
  }));
@@ -5991,6 +5997,10 @@ const placeFlags = (args) => {
5991
5997
  call.path[pathParam] = value;
5992
5998
  continue;
5993
5999
  }
6000
+ if (rootBodyFlag && canonical === toCanonical(rootBodyFlag.name)) {
6001
+ call.rootBody = { value };
6002
+ continue;
6003
+ }
5994
6004
  const queryParam = route.queryParams.find((param) => {
5995
6005
  return toCanonical(param) === canonical;
5996
6006
  });
@@ -6042,6 +6052,13 @@ const buildRouteCall = (args) => {
6042
6052
  kind: "file_errors",
6043
6053
  fileErrors
6044
6054
  };
6055
+ const rootBodyFlag = findRootBodyFlag(route);
6056
+ if (rootBodyFlag && call.rootBody && Object.keys(call.body).length > 0) return {
6057
+ ok: false,
6058
+ kind: "body_root_conflict",
6059
+ rootFlag: toKebab(rootBodyFlag.name),
6060
+ bodyFlags: Object.keys(call.body).map(toKebab)
6061
+ };
6045
6062
  applyProjectIdEnvDefault({
6046
6063
  route,
6047
6064
  call
@@ -6133,13 +6150,26 @@ const resolveServiceMethod = (route) => {
6133
6150
  }
6134
6151
  return method;
6135
6152
  };
6153
+ /** The stderr message for a call that could not be built. */
6154
+ const describeBuildFailure = (args) => {
6155
+ const { commandName, failure } = args;
6156
+ if (failure.kind === "file_errors") return failure.fileErrors.join("\n");
6157
+ if (failure.kind === "body_root_conflict") return `${failure.bodyFlags.map((flag) => {
6158
+ return `--${flag}`;
6159
+ }).join(", ")}: '${commandName}' sends its whole body in --${failure.rootFlag}.`;
6160
+ const flagsHint = failure.missingPathParams.map((param) => {
6161
+ return `--${param.replace(/_/g, "-")} <value>`;
6162
+ }).join(", ");
6163
+ return `Missing required path parameter(s): ${failure.missingPathParams.join(", ")}.\nProvide with ${flagsHint}.`;
6164
+ };
6136
6165
  /** Builds the SDK call options from a resolved route call, omitting empty parts. */
6137
6166
  const buildCallOptions = (args) => {
6138
6167
  const { client, call } = args;
6139
6168
  const callOptions = { client };
6140
6169
  if (Object.keys(call.path).length) callOptions["path"] = call.path;
6141
6170
  if (Object.keys(call.query).length) callOptions["query"] = call.query;
6142
- if (Object.keys(call.body).length) callOptions["body"] = call.body;
6171
+ if (call.rootBody) callOptions["body"] = call.rootBody.value;
6172
+ else if (Object.keys(call.body).length) callOptions["body"] = call.body;
6143
6173
  return callOptions;
6144
6174
  };
6145
6175
  /**
@@ -6196,15 +6226,11 @@ const dispatchCommand = async (args) => {
6196
6226
  route,
6197
6227
  parsedFlags
6198
6228
  });
6199
- if (!built.ok && built.kind === "file_errors") {
6200
- console.error(built.fileErrors.join("\n"));
6201
- process.exit(1);
6202
- }
6203
6229
  if (!built.ok) {
6204
- const flagsHint = built.missingPathParams.map((param) => {
6205
- return `--${param.replace(/_/g, "-")} <value>`;
6206
- }).join(", ");
6207
- console.error(`Missing required path parameter(s): ${built.missingPathParams.join(", ")}.\nProvide with ${flagsHint}.`);
6230
+ console.error(describeBuildFailure({
6231
+ commandName,
6232
+ failure: built
6233
+ }));
6208
6234
  process.exit(1);
6209
6235
  }
6210
6236
  const result = await resolveServiceMethod(route)(buildCallOptions({
@@ -6660,19 +6686,29 @@ const routes = {
6660
6686
  queryParams: [],
6661
6687
  headerParams: [],
6662
6688
  cookieParams: [],
6663
- flags: [{
6664
- "name": "project_id",
6665
- "description": "Project public ID (proj_ prefix).",
6666
- "required": true,
6667
- "type": "string",
6668
- "in": "path"
6669
- }, {
6670
- "name": "actor_id",
6671
- "description": "Actor ID",
6672
- "required": true,
6673
- "type": "string",
6674
- "in": "path"
6675
- }]
6689
+ flags: [
6690
+ {
6691
+ "name": "project_id",
6692
+ "description": "Project public ID (proj_ prefix).",
6693
+ "required": true,
6694
+ "type": "string",
6695
+ "in": "path"
6696
+ },
6697
+ {
6698
+ "name": "actor_id",
6699
+ "description": "Actor ID",
6700
+ "required": true,
6701
+ "type": "string",
6702
+ "in": "path"
6703
+ },
6704
+ {
6705
+ "name": "tags",
6706
+ "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 and knowledge search.\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.",
6707
+ "required": true,
6708
+ "type": "object",
6709
+ "in": "body-root"
6710
+ }
6711
+ ]
6676
6712
  },
6677
6713
  "merge-actor-tags": {
6678
6714
  serviceClass: "Actors",
@@ -6684,19 +6720,29 @@ const routes = {
6684
6720
  queryParams: [],
6685
6721
  headerParams: [],
6686
6722
  cookieParams: [],
6687
- flags: [{
6688
- "name": "project_id",
6689
- "description": "Project public ID (proj_ prefix).",
6690
- "required": true,
6691
- "type": "string",
6692
- "in": "path"
6693
- }, {
6694
- "name": "actor_id",
6695
- "description": "Actor ID",
6696
- "required": true,
6697
- "type": "string",
6698
- "in": "path"
6699
- }]
6723
+ flags: [
6724
+ {
6725
+ "name": "project_id",
6726
+ "description": "Project public ID (proj_ prefix).",
6727
+ "required": true,
6728
+ "type": "string",
6729
+ "in": "path"
6730
+ },
6731
+ {
6732
+ "name": "actor_id",
6733
+ "description": "Actor ID",
6734
+ "required": true,
6735
+ "type": "string",
6736
+ "in": "path"
6737
+ },
6738
+ {
6739
+ "name": "tags",
6740
+ "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 and knowledge search.\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.",
6741
+ "required": true,
6742
+ "type": "object",
6743
+ "in": "body-root"
6744
+ }
6745
+ ]
6700
6746
  },
6701
6747
  "list-addresses": {
6702
6748
  serviceClass: "Channels",
@@ -6806,7 +6852,7 @@ const routes = {
6806
6852
  "name": "repeat",
6807
6853
  "description": "",
6808
6854
  "required": false,
6809
- "type": "string",
6855
+ "type": "unknown",
6810
6856
  "in": "body"
6811
6857
  },
6812
6858
  {
@@ -7260,7 +7306,7 @@ const routes = {
7260
7306
  "name": "tool_choice",
7261
7307
  "description": "Tool choice strategy. Accepts a string (`\"auto\"`, `\"required\"`) or an object (`{ \"type\": \"tool\", \"tool_name\": \"my_tool\" }`). A forcing value (`\"required\"` or the object form) forbids a final assistant message on every step of every turn, including a resumed or continued one, so it requires a `has_tool_call` entry in `stop_conditions` — otherwise the write is refused with `FORCED_TOOL_CHOICE_CANNOT_STOP`.",
7262
7308
  "required": false,
7263
- "type": "string",
7309
+ "type": "unknown",
7264
7310
  "in": "body"
7265
7311
  },
7266
7312
  {
@@ -7472,7 +7518,7 @@ const routes = {
7472
7518
  "name": "tool_choice",
7473
7519
  "description": "Tool choice strategy. Accepts a string (`\"auto\"`, `\"required\"`) or an object (`{ \"type\": \"tool\", \"tool_name\": \"my_tool\" }`). A forcing value (`\"required\"` or the object form) forbids a final assistant message on every step of every turn, including a resumed or continued one, so it requires a `has_tool_call` entry in `stop_conditions` — otherwise the write is refused with `FORCED_TOOL_CHOICE_CANNOT_STOP`.",
7474
7520
  "required": false,
7475
- "type": "string",
7521
+ "type": "unknown",
7476
7522
  "in": "body"
7477
7523
  },
7478
7524
  {
@@ -7667,7 +7713,7 @@ const routes = {
7667
7713
  "name": "tool_choice",
7668
7714
  "description": "Tool choice strategy. Accepts a string (`\"auto\"`, `\"required\"`) or an object (`{ \"type\": \"tool\", \"tool_name\": \"my_tool\" }`). A forcing value (`\"required\"` or the object form) forbids a final assistant message on every step of every turn, including a resumed or continued one, so it requires a `has_tool_call` entry in `stop_conditions` — otherwise the write is refused with `FORCED_TOOL_CHOICE_CANNOT_STOP`.",
7669
7715
  "required": false,
7670
- "type": "string",
7716
+ "type": "unknown",
7671
7717
  "in": "body"
7672
7718
  },
7673
7719
  {
@@ -9399,7 +9445,7 @@ const routes = {
9399
9445
  "name": "repeat",
9400
9446
  "description": "",
9401
9447
  "required": false,
9402
- "type": "string",
9448
+ "type": "unknown",
9403
9449
  "in": "body"
9404
9450
  },
9405
9451
  {
@@ -9545,7 +9591,7 @@ const routes = {
9545
9591
  "name": "repeat",
9546
9592
  "description": "",
9547
9593
  "required": false,
9548
- "type": "string",
9594
+ "type": "unknown",
9549
9595
  "in": "body"
9550
9596
  },
9551
9597
  {
@@ -10537,19 +10583,29 @@ const routes = {
10537
10583
  queryParams: [],
10538
10584
  headerParams: [],
10539
10585
  cookieParams: [],
10540
- flags: [{
10541
- "name": "project_id",
10542
- "description": "Project public ID (proj_ prefix).",
10543
- "required": true,
10544
- "type": "string",
10545
- "in": "path"
10546
- }, {
10547
- "name": "conversation_id",
10548
- "description": "Conversation ID",
10549
- "required": true,
10550
- "type": "string",
10551
- "in": "path"
10552
- }]
10586
+ flags: [
10587
+ {
10588
+ "name": "project_id",
10589
+ "description": "Project public ID (proj_ prefix).",
10590
+ "required": true,
10591
+ "type": "string",
10592
+ "in": "path"
10593
+ },
10594
+ {
10595
+ "name": "conversation_id",
10596
+ "description": "Conversation ID",
10597
+ "required": true,
10598
+ "type": "string",
10599
+ "in": "path"
10600
+ },
10601
+ {
10602
+ "name": "tags",
10603
+ "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 and knowledge search.\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.",
10604
+ "required": true,
10605
+ "type": "object",
10606
+ "in": "body-root"
10607
+ }
10608
+ ]
10553
10609
  },
10554
10610
  "merge-conversation-tags": {
10555
10611
  serviceClass: "Conversations",
@@ -10561,19 +10617,29 @@ const routes = {
10561
10617
  queryParams: [],
10562
10618
  headerParams: [],
10563
10619
  cookieParams: [],
10564
- flags: [{
10565
- "name": "project_id",
10566
- "description": "Project public ID (proj_ prefix).",
10567
- "required": true,
10568
- "type": "string",
10569
- "in": "path"
10570
- }, {
10571
- "name": "conversation_id",
10572
- "description": "Conversation ID",
10573
- "required": true,
10574
- "type": "string",
10575
- "in": "path"
10576
- }]
10620
+ flags: [
10621
+ {
10622
+ "name": "project_id",
10623
+ "description": "Project public ID (proj_ prefix).",
10624
+ "required": true,
10625
+ "type": "string",
10626
+ "in": "path"
10627
+ },
10628
+ {
10629
+ "name": "conversation_id",
10630
+ "description": "Conversation ID",
10631
+ "required": true,
10632
+ "type": "string",
10633
+ "in": "path"
10634
+ },
10635
+ {
10636
+ "name": "tags",
10637
+ "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 and knowledge search.\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.",
10638
+ "required": true,
10639
+ "type": "object",
10640
+ "in": "body-root"
10641
+ }
10642
+ ]
10577
10643
  },
10578
10644
  "list-deciders": {
10579
10645
  serviceClass: "Deciders",
@@ -10955,7 +11021,7 @@ const routes = {
10955
11021
  "name": "state",
10956
11022
  "description": "What is judged: any JSON value. A string reaches the agent verbatim; anything else is serialized as JSON. Not stored.",
10957
11023
  "required": true,
10958
- "type": "string",
11024
+ "type": "unknown",
10959
11025
  "in": "body"
10960
11026
  },
10961
11027
  {
@@ -11816,19 +11882,29 @@ const routes = {
11816
11882
  queryParams: [],
11817
11883
  headerParams: [],
11818
11884
  cookieParams: [],
11819
- flags: [{
11820
- "name": "project_id",
11821
- "description": "Project public ID (proj_ prefix).",
11822
- "required": true,
11823
- "type": "string",
11824
- "in": "path"
11825
- }, {
11826
- "name": "document_id",
11827
- "description": "Document ID",
11828
- "required": true,
11829
- "type": "string",
11830
- "in": "path"
11831
- }]
11885
+ flags: [
11886
+ {
11887
+ "name": "project_id",
11888
+ "description": "Project public ID (proj_ prefix).",
11889
+ "required": true,
11890
+ "type": "string",
11891
+ "in": "path"
11892
+ },
11893
+ {
11894
+ "name": "document_id",
11895
+ "description": "Document ID",
11896
+ "required": true,
11897
+ "type": "string",
11898
+ "in": "path"
11899
+ },
11900
+ {
11901
+ "name": "tags",
11902
+ "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 and knowledge search.\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.",
11903
+ "required": true,
11904
+ "type": "object",
11905
+ "in": "body-root"
11906
+ }
11907
+ ]
11832
11908
  },
11833
11909
  "merge-document-tags": {
11834
11910
  serviceClass: "Documents",
@@ -11840,19 +11916,29 @@ const routes = {
11840
11916
  queryParams: [],
11841
11917
  headerParams: [],
11842
11918
  cookieParams: [],
11843
- flags: [{
11844
- "name": "project_id",
11845
- "description": "Project public ID (proj_ prefix).",
11846
- "required": true,
11847
- "type": "string",
11848
- "in": "path"
11849
- }, {
11850
- "name": "document_id",
11851
- "description": "Document ID",
11852
- "required": true,
11853
- "type": "string",
11854
- "in": "path"
11855
- }]
11919
+ flags: [
11920
+ {
11921
+ "name": "project_id",
11922
+ "description": "Project public ID (proj_ prefix).",
11923
+ "required": true,
11924
+ "type": "string",
11925
+ "in": "path"
11926
+ },
11927
+ {
11928
+ "name": "document_id",
11929
+ "description": "Document ID",
11930
+ "required": true,
11931
+ "type": "string",
11932
+ "in": "path"
11933
+ },
11934
+ {
11935
+ "name": "tags",
11936
+ "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 and knowledge search.\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.",
11937
+ "required": true,
11938
+ "type": "object",
11939
+ "in": "body-root"
11940
+ }
11941
+ ]
11856
11942
  },
11857
11943
  "create-embeddings": {
11858
11944
  serviceClass: "Embeddings",
@@ -13231,19 +13317,29 @@ const routes = {
13231
13317
  queryParams: [],
13232
13318
  headerParams: [],
13233
13319
  cookieParams: [],
13234
- flags: [{
13235
- "name": "project_id",
13236
- "description": "Project public ID (proj_ prefix).",
13237
- "required": true,
13238
- "type": "string",
13239
- "in": "path"
13240
- }, {
13241
- "name": "file_id",
13242
- "description": "File ID",
13243
- "required": true,
13244
- "type": "string",
13245
- "in": "path"
13246
- }]
13320
+ flags: [
13321
+ {
13322
+ "name": "project_id",
13323
+ "description": "Project public ID (proj_ prefix).",
13324
+ "required": true,
13325
+ "type": "string",
13326
+ "in": "path"
13327
+ },
13328
+ {
13329
+ "name": "file_id",
13330
+ "description": "File ID",
13331
+ "required": true,
13332
+ "type": "string",
13333
+ "in": "path"
13334
+ },
13335
+ {
13336
+ "name": "tags",
13337
+ "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 and knowledge search.\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.",
13338
+ "required": true,
13339
+ "type": "object",
13340
+ "in": "body-root"
13341
+ }
13342
+ ]
13247
13343
  },
13248
13344
  "merge-file-tags": {
13249
13345
  serviceClass: "Files",
@@ -13255,19 +13351,29 @@ const routes = {
13255
13351
  queryParams: [],
13256
13352
  headerParams: [],
13257
13353
  cookieParams: [],
13258
- flags: [{
13259
- "name": "project_id",
13260
- "description": "Project public ID (proj_ prefix).",
13261
- "required": true,
13262
- "type": "string",
13263
- "in": "path"
13264
- }, {
13265
- "name": "file_id",
13266
- "description": "File ID",
13267
- "required": true,
13268
- "type": "string",
13269
- "in": "path"
13270
- }]
13354
+ flags: [
13355
+ {
13356
+ "name": "project_id",
13357
+ "description": "Project public ID (proj_ prefix).",
13358
+ "required": true,
13359
+ "type": "string",
13360
+ "in": "path"
13361
+ },
13362
+ {
13363
+ "name": "file_id",
13364
+ "description": "File ID",
13365
+ "required": true,
13366
+ "type": "string",
13367
+ "in": "path"
13368
+ },
13369
+ {
13370
+ "name": "tags",
13371
+ "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 and knowledge search.\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.",
13372
+ "required": true,
13373
+ "type": "object",
13374
+ "in": "body-root"
13375
+ }
13376
+ ]
13271
13377
  },
13272
13378
  "validate-formation": {
13273
13379
  serviceClass: "Formations",
@@ -13291,7 +13397,7 @@ const routes = {
13291
13397
  "name": "template",
13292
13398
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
13293
13399
  "required": false,
13294
- "type": "string",
13400
+ "type": "unknown",
13295
13401
  "in": "body"
13296
13402
  },
13297
13403
  {
@@ -13332,7 +13438,7 @@ const routes = {
13332
13438
  "name": "template",
13333
13439
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
13334
13440
  "required": true,
13335
- "type": "string",
13441
+ "type": "unknown",
13336
13442
  "in": "body"
13337
13443
  },
13338
13444
  {
@@ -13407,7 +13513,7 @@ const routes = {
13407
13513
  "name": "template",
13408
13514
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
13409
13515
  "required": true,
13410
- "type": "string",
13516
+ "type": "unknown",
13411
13517
  "in": "body"
13412
13518
  },
13413
13519
  {
@@ -13479,7 +13585,7 @@ const routes = {
13479
13585
  "name": "template",
13480
13586
  "description": "A formation template supplied as either a JSON object or a YAML/JSON string. When a string is provided the server parses it with a YAML parser (JSON is valid YAML) before processing.\n",
13481
13587
  "required": false,
13482
- "type": "string",
13588
+ "type": "unknown",
13483
13589
  "in": "body"
13484
13590
  },
13485
13591
  {
@@ -14934,19 +15040,29 @@ const routes = {
14934
15040
  queryParams: [],
14935
15041
  headerParams: [],
14936
15042
  cookieParams: [],
14937
- flags: [{
14938
- "name": "project_id",
14939
- "description": "Project public ID (proj_ prefix).",
14940
- "required": true,
14941
- "type": "string",
14942
- "in": "path"
14943
- }, {
14944
- "name": "memory_id",
14945
- "description": "Memory ID",
14946
- "required": true,
14947
- "type": "string",
14948
- "in": "path"
14949
- }]
15043
+ flags: [
15044
+ {
15045
+ "name": "project_id",
15046
+ "description": "Project public ID (proj_ prefix).",
15047
+ "required": true,
15048
+ "type": "string",
15049
+ "in": "path"
15050
+ },
15051
+ {
15052
+ "name": "memory_id",
15053
+ "description": "Memory ID",
15054
+ "required": true,
15055
+ "type": "string",
15056
+ "in": "path"
15057
+ },
15058
+ {
15059
+ "name": "tags",
15060
+ "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 and knowledge search.\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.",
15061
+ "required": true,
15062
+ "type": "object",
15063
+ "in": "body-root"
15064
+ }
15065
+ ]
14950
15066
  },
14951
15067
  "merge-memory-tags": {
14952
15068
  serviceClass: "Memories",
@@ -14958,19 +15074,29 @@ const routes = {
14958
15074
  queryParams: [],
14959
15075
  headerParams: [],
14960
15076
  cookieParams: [],
14961
- flags: [{
14962
- "name": "project_id",
14963
- "description": "Project public ID (proj_ prefix).",
14964
- "required": true,
14965
- "type": "string",
14966
- "in": "path"
14967
- }, {
14968
- "name": "memory_id",
14969
- "description": "Memory ID",
14970
- "required": true,
14971
- "type": "string",
14972
- "in": "path"
14973
- }]
15077
+ flags: [
15078
+ {
15079
+ "name": "project_id",
15080
+ "description": "Project public ID (proj_ prefix).",
15081
+ "required": true,
15082
+ "type": "string",
15083
+ "in": "path"
15084
+ },
15085
+ {
15086
+ "name": "memory_id",
15087
+ "description": "Memory ID",
15088
+ "required": true,
15089
+ "type": "string",
15090
+ "in": "path"
15091
+ },
15092
+ {
15093
+ "name": "tags",
15094
+ "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 and knowledge search.\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.",
15095
+ "required": true,
15096
+ "type": "object",
15097
+ "in": "body-root"
15098
+ }
15099
+ ]
14974
15100
  },
14975
15101
  "list-memory-rules": {
14976
15102
  serviceClass: "MemoryRules",
@@ -15620,19 +15746,29 @@ const routes = {
15620
15746
  queryParams: [],
15621
15747
  headerParams: [],
15622
15748
  cookieParams: [],
15623
- flags: [{
15624
- "name": "project_id",
15625
- "description": "Project public ID (proj_ prefix).",
15626
- "required": true,
15627
- "type": "string",
15628
- "in": "path"
15629
- }, {
15630
- "name": "memory_store_id",
15631
- "description": "Memory store ID",
15632
- "required": true,
15633
- "type": "string",
15634
- "in": "path"
15635
- }]
15749
+ flags: [
15750
+ {
15751
+ "name": "project_id",
15752
+ "description": "Project public ID (proj_ prefix).",
15753
+ "required": true,
15754
+ "type": "string",
15755
+ "in": "path"
15756
+ },
15757
+ {
15758
+ "name": "memory_store_id",
15759
+ "description": "Memory store ID",
15760
+ "required": true,
15761
+ "type": "string",
15762
+ "in": "path"
15763
+ },
15764
+ {
15765
+ "name": "tags",
15766
+ "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 and knowledge search.\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.",
15767
+ "required": true,
15768
+ "type": "object",
15769
+ "in": "body-root"
15770
+ }
15771
+ ]
15636
15772
  },
15637
15773
  "merge-memory-store-tags": {
15638
15774
  serviceClass: "MemoryStores",
@@ -15644,19 +15780,29 @@ const routes = {
15644
15780
  queryParams: [],
15645
15781
  headerParams: [],
15646
15782
  cookieParams: [],
15647
- flags: [{
15648
- "name": "project_id",
15649
- "description": "Project public ID (proj_ prefix).",
15650
- "required": true,
15651
- "type": "string",
15652
- "in": "path"
15653
- }, {
15654
- "name": "memory_store_id",
15655
- "description": "Memory store ID",
15656
- "required": true,
15657
- "type": "string",
15658
- "in": "path"
15659
- }]
15783
+ flags: [
15784
+ {
15785
+ "name": "project_id",
15786
+ "description": "Project public ID (proj_ prefix).",
15787
+ "required": true,
15788
+ "type": "string",
15789
+ "in": "path"
15790
+ },
15791
+ {
15792
+ "name": "memory_store_id",
15793
+ "description": "Memory store ID",
15794
+ "required": true,
15795
+ "type": "string",
15796
+ "in": "path"
15797
+ },
15798
+ {
15799
+ "name": "tags",
15800
+ "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 and knowledge search.\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.",
15801
+ "required": true,
15802
+ "type": "object",
15803
+ "in": "body-root"
15804
+ }
15805
+ ]
15660
15806
  },
15661
15807
  "list-metadata-schemas": {
15662
15808
  serviceClass: "MetadataSchemas",
@@ -18512,19 +18658,29 @@ const routes = {
18512
18658
  queryParams: [],
18513
18659
  headerParams: [],
18514
18660
  cookieParams: [],
18515
- flags: [{
18516
- "name": "project_id",
18517
- "description": "Project public ID (proj_ prefix).",
18518
- "required": true,
18519
- "type": "string",
18520
- "in": "path"
18521
- }, {
18522
- "name": "session_id",
18523
- "description": "Session public ID",
18524
- "required": true,
18525
- "type": "string",
18526
- "in": "path"
18527
- }]
18661
+ flags: [
18662
+ {
18663
+ "name": "project_id",
18664
+ "description": "Project public ID (proj_ prefix).",
18665
+ "required": true,
18666
+ "type": "string",
18667
+ "in": "path"
18668
+ },
18669
+ {
18670
+ "name": "session_id",
18671
+ "description": "Session public ID",
18672
+ "required": true,
18673
+ "type": "string",
18674
+ "in": "path"
18675
+ },
18676
+ {
18677
+ "name": "tags",
18678
+ "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 and knowledge search.\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.",
18679
+ "required": true,
18680
+ "type": "object",
18681
+ "in": "body-root"
18682
+ }
18683
+ ]
18528
18684
  },
18529
18685
  "merge-session-tags": {
18530
18686
  serviceClass: "Sessions",
@@ -18536,19 +18692,29 @@ const routes = {
18536
18692
  queryParams: [],
18537
18693
  headerParams: [],
18538
18694
  cookieParams: [],
18539
- flags: [{
18540
- "name": "project_id",
18541
- "description": "Project public ID (proj_ prefix).",
18542
- "required": true,
18543
- "type": "string",
18544
- "in": "path"
18545
- }, {
18546
- "name": "session_id",
18547
- "description": "Session public ID",
18548
- "required": true,
18549
- "type": "string",
18550
- "in": "path"
18551
- }]
18695
+ flags: [
18696
+ {
18697
+ "name": "project_id",
18698
+ "description": "Project public ID (proj_ prefix).",
18699
+ "required": true,
18700
+ "type": "string",
18701
+ "in": "path"
18702
+ },
18703
+ {
18704
+ "name": "session_id",
18705
+ "description": "Session public ID",
18706
+ "required": true,
18707
+ "type": "string",
18708
+ "in": "path"
18709
+ },
18710
+ {
18711
+ "name": "tags",
18712
+ "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 and knowledge search.\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.",
18713
+ "required": true,
18714
+ "type": "object",
18715
+ "in": "body-root"
18716
+ }
18717
+ ]
18552
18718
  },
18553
18719
  "list-tasks": {
18554
18720
  serviceClass: "Tasks",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturali/cli",
3
- "version": "0.156.1",
3
+ "version": "0.157.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,8 +25,8 @@
25
25
  "yaml": "^2.9.1"
26
26
  },
27
27
  "devDependencies": {
28
- "@naturali/sdk": "0.156.1",
29
- "@ttoss/openapi-codegen": "^0.3.1",
28
+ "@naturali/sdk": "0.157.0",
29
+ "@ttoss/openapi-codegen": "^0.5.0",
30
30
  "@types/node": "^26.5.1",
31
31
  "tsdown": "^0.23.0",
32
32
  "tsx": "^4.23.13",