faces-cli 1.6.4 → 1.6.6

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.
@@ -1,24 +1,12 @@
1
1
  import { BaseCommand } from '../../base.js';
2
- import { FacesAPIError } from '../../client.js';
3
2
  export default class BillingQuota extends BaseCommand {
4
- static description = 'Show compile token quota and per-face stats';
3
+ static description = 'Show compilation stats per face (deprecated — use compile:stats)';
5
4
  static flags = {
6
5
  ...BaseCommand.baseFlags,
7
6
  };
8
7
  async run() {
9
- const { flags } = await this.parse(BillingQuota);
10
- const client = this.makeClient(flags);
11
- let data;
12
- try {
13
- data = await client.get('/v1/billing/compile-quota');
14
- }
15
- catch (err) {
16
- if (err instanceof FacesAPIError)
17
- this.error(`Error (${err.statusCode}): ${err.message}`);
18
- throw err;
19
- }
20
- if (!this.jsonEnabled())
21
- this.printHuman(data);
22
- return data;
8
+ process.stderr.write('Note: billing:quota is deprecated. Use compile:stats instead.\n');
9
+ await this.config.runCommand('compile:stats', this.argv);
10
+ return {};
23
11
  }
24
12
  }
@@ -0,0 +1,10 @@
1
+ import { BaseCommand } from '../../base.js';
2
+ export default class CompileStats extends BaseCommand {
3
+ static description: string;
4
+ static flags: {
5
+ 'base-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
6
+ token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ 'api-key': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ };
9
+ run(): Promise<unknown>;
10
+ }
@@ -0,0 +1,34 @@
1
+ import { BaseCommand } from '../../base.js';
2
+ import { FacesAPIError } from '../../client.js';
3
+ export default class CompileStats extends BaseCommand {
4
+ static description = 'Show compilation stats per face';
5
+ static flags = {
6
+ ...BaseCommand.baseFlags,
7
+ };
8
+ async run() {
9
+ const { flags } = await this.parse(CompileStats);
10
+ const client = this.makeClient(flags);
11
+ let data;
12
+ try {
13
+ data = await client.get('/v1/billing/compile-quota');
14
+ }
15
+ catch (err) {
16
+ if (err instanceof FacesAPIError)
17
+ this.error(`Error (${err.statusCode}): ${err.message}`);
18
+ throw err;
19
+ }
20
+ // Rename face_id → alias in the faces array
21
+ const resp = data;
22
+ if (Array.isArray(resp.faces)) {
23
+ for (const f of resp.faces) {
24
+ if (f.face_id !== undefined) {
25
+ f.alias = f.face_id;
26
+ delete f.face_id;
27
+ }
28
+ }
29
+ }
30
+ if (!this.jsonEnabled())
31
+ this.printHuman(data);
32
+ return data;
33
+ }
34
+ }
@@ -67,25 +67,28 @@ export default class FaceUpdate extends BaseCommand {
67
67
  }
68
68
  }
69
69
  // Replace tags if provided
70
- let currentTags;
71
70
  if (hasTags) {
72
71
  try {
73
- const tagResp = await client.put(`/v1/iam/${args.face_id}/tags`, { body: { tags: flags.tag } });
74
- currentTags = tagResp.tags ?? flags.tag;
72
+ await client.put(`/v1/iam/${args.face_id}/tags`, { body: { tags: flags.tag } });
75
73
  }
76
74
  catch (err) {
77
75
  if (err instanceof FacesAPIError)
78
76
  this.warn(`Tags failed (${err.statusCode}): ${err.message}`);
79
77
  }
80
78
  }
79
+ // Always fetch current tags so the catalog stays in sync
80
+ let currentTags = [];
81
+ try {
82
+ const tagResp = await client.get(`/v1/iam/${args.face_id}/tags`);
83
+ currentTags = tagResp.tags ?? [];
84
+ }
85
+ catch { /* proceed without tags */ }
81
86
  const face = data;
82
87
  if (Array.isArray(face.warnings) && face.warnings.length > 0) {
83
88
  for (const w of face.warnings)
84
89
  this.warn(w);
85
90
  }
86
- // Add tags to response if we set them
87
- if (currentTags)
88
- face.tags = currentTags;
91
+ face.tags = currentTags;
89
92
  // Rename basic_facts → attributes
90
93
  renameFaceFields(face);
91
94
  // Write to local catalog
@@ -638,10 +638,10 @@
638
638
  "whoami.js"
639
639
  ]
640
640
  },
641
- "billing:balance": {
641
+ "catalog:backup": {
642
642
  "aliases": [],
643
643
  "args": {},
644
- "description": "Show credit balance and payment method status",
644
+ "description": "Snapshot all faces, teams, and source material for migration",
645
645
  "flags": {
646
646
  "json": {
647
647
  "description": "Format output as json.",
@@ -677,7 +677,7 @@
677
677
  },
678
678
  "hasDynamicHelp": false,
679
679
  "hiddenAliases": [],
680
- "id": "billing:balance",
680
+ "id": "catalog:backup",
681
681
  "pluginAlias": "faces-cli",
682
682
  "pluginName": "faces-cli",
683
683
  "pluginType": "core",
@@ -687,14 +687,14 @@
687
687
  "relativePath": [
688
688
  "dist",
689
689
  "commands",
690
- "billing",
691
- "balance.js"
690
+ "catalog",
691
+ "backup.js"
692
692
  ]
693
693
  },
694
- "billing:card-setup": {
694
+ "catalog:doctor": {
695
695
  "aliases": [],
696
696
  "args": {},
697
- "description": "Get a Stripe card setup URL to save a payment method",
697
+ "description": "Diagnose and repair the local face and team catalog",
698
698
  "flags": {
699
699
  "json": {
700
700
  "description": "Format output as json.",
@@ -726,11 +726,23 @@
726
726
  "hasDynamicHelp": false,
727
727
  "multiple": false,
728
728
  "type": "option"
729
+ },
730
+ "fix": {
731
+ "description": "Rebuild missing or stale catalog entries from API",
732
+ "name": "fix",
733
+ "allowNo": false,
734
+ "type": "boolean"
735
+ },
736
+ "generate": {
737
+ "description": "Fix + generate missing descriptions via LLM",
738
+ "name": "generate",
739
+ "allowNo": false,
740
+ "type": "boolean"
729
741
  }
730
742
  },
731
743
  "hasDynamicHelp": false,
732
744
  "hiddenAliases": [],
733
- "id": "billing:card-setup",
745
+ "id": "catalog:doctor",
734
746
  "pluginAlias": "faces-cli",
735
747
  "pluginName": "faces-cli",
736
748
  "pluginType": "core",
@@ -740,14 +752,14 @@
740
752
  "relativePath": [
741
753
  "dist",
742
754
  "commands",
743
- "billing",
744
- "card-setup.js"
755
+ "catalog",
756
+ "doctor.js"
745
757
  ]
746
758
  },
747
- "billing:checkout": {
759
+ "catalog:list": {
748
760
  "aliases": [],
749
761
  "args": {},
750
- "description": "Get a Stripe checkout URL to upgrade your subscription plan",
762
+ "description": "List all faces in the local catalog",
751
763
  "flags": {
752
764
  "json": {
753
765
  "description": "Format output as json.",
@@ -779,22 +791,11 @@
779
791
  "hasDynamicHelp": false,
780
792
  "multiple": false,
781
793
  "type": "option"
782
- },
783
- "plan": {
784
- "description": "Plan to subscribe to",
785
- "name": "plan",
786
- "default": "connect",
787
- "hasDynamicHelp": false,
788
- "multiple": false,
789
- "options": [
790
- "connect"
791
- ],
792
- "type": "option"
793
794
  }
794
795
  },
795
796
  "hasDynamicHelp": false,
796
797
  "hiddenAliases": [],
797
- "id": "billing:checkout",
798
+ "id": "catalog:list",
798
799
  "pluginAlias": "faces-cli",
799
800
  "pluginName": "faces-cli",
800
801
  "pluginType": "core",
@@ -804,14 +805,14 @@
804
805
  "relativePath": [
805
806
  "dist",
806
807
  "commands",
807
- "billing",
808
- "checkout.js"
808
+ "catalog",
809
+ "list.js"
809
810
  ]
810
811
  },
811
- "billing:llm-costs": {
812
+ "catalog:manyfaced": {
812
813
  "aliases": [],
813
814
  "args": {},
814
- "description": "List available LLMs and their per-token costs",
815
+ "description": "Browse and install community manyfaced skills from github.com/facessh/manyfaced",
815
816
  "flags": {
816
817
  "json": {
817
818
  "description": "Format output as json.",
@@ -844,17 +845,37 @@
844
845
  "multiple": false,
845
846
  "type": "option"
846
847
  },
847
- "provider": {
848
- "description": "Filter by provider (e.g. openai, anthropic)",
849
- "name": "provider",
848
+ "skill": {
849
+ "description": "Show details for a specific skill",
850
+ "name": "skill",
850
851
  "hasDynamicHelp": false,
851
852
  "multiple": false,
852
853
  "type": "option"
854
+ },
855
+ "install": {
856
+ "description": "Install a skill by name",
857
+ "name": "install",
858
+ "hasDynamicHelp": false,
859
+ "multiple": false,
860
+ "type": "option"
861
+ },
862
+ "skills-dir": {
863
+ "description": "Directory to install skills into (required for --install)",
864
+ "name": "skills-dir",
865
+ "hasDynamicHelp": false,
866
+ "multiple": false,
867
+ "type": "option"
868
+ },
869
+ "refresh": {
870
+ "description": "Force refresh the skill index (ignore cache)",
871
+ "name": "refresh",
872
+ "allowNo": false,
873
+ "type": "boolean"
853
874
  }
854
875
  },
855
876
  "hasDynamicHelp": false,
856
877
  "hiddenAliases": [],
857
- "id": "billing:llm-costs",
878
+ "id": "catalog:manyfaced",
858
879
  "pluginAlias": "faces-cli",
859
880
  "pluginName": "faces-cli",
860
881
  "pluginType": "core",
@@ -864,14 +885,19 @@
864
885
  "relativePath": [
865
886
  "dist",
866
887
  "commands",
867
- "billing",
868
- "llm-costs.js"
888
+ "catalog",
889
+ "manyfaced.js"
869
890
  ]
870
891
  },
871
- "billing:quota": {
892
+ "catalog:restore": {
872
893
  "aliases": [],
873
- "args": {},
874
- "description": "Show compile token quota and per-face stats",
894
+ "args": {
895
+ "file": {
896
+ "description": "Backup file path (default: most recent in ~/.faces/backups/)",
897
+ "name": "file"
898
+ }
899
+ },
900
+ "description": "Restore faces, teams, and source material from a backup snapshot",
875
901
  "flags": {
876
902
  "json": {
877
903
  "description": "Format output as json.",
@@ -903,11 +929,17 @@
903
929
  "hasDynamicHelp": false,
904
930
  "multiple": false,
905
931
  "type": "option"
932
+ },
933
+ "compile": {
934
+ "description": "Run compile:all after restoring",
935
+ "name": "compile",
936
+ "allowNo": false,
937
+ "type": "boolean"
906
938
  }
907
939
  },
908
940
  "hasDynamicHelp": false,
909
941
  "hiddenAliases": [],
910
- "id": "billing:quota",
942
+ "id": "catalog:restore",
911
943
  "pluginAlias": "faces-cli",
912
944
  "pluginName": "faces-cli",
913
945
  "pluginType": "core",
@@ -917,14 +949,14 @@
917
949
  "relativePath": [
918
950
  "dist",
919
951
  "commands",
920
- "billing",
921
- "quota.js"
952
+ "catalog",
953
+ "restore.js"
922
954
  ]
923
955
  },
924
- "billing:subscription": {
956
+ "billing:balance": {
925
957
  "aliases": [],
926
958
  "args": {},
927
- "description": "Show current plan, face count, and renewal date",
959
+ "description": "Show credit balance and payment method status",
928
960
  "flags": {
929
961
  "json": {
930
962
  "description": "Format output as json.",
@@ -960,7 +992,7 @@
960
992
  },
961
993
  "hasDynamicHelp": false,
962
994
  "hiddenAliases": [],
963
- "id": "billing:subscription",
995
+ "id": "billing:balance",
964
996
  "pluginAlias": "faces-cli",
965
997
  "pluginName": "faces-cli",
966
998
  "pluginType": "core",
@@ -971,13 +1003,13 @@
971
1003
  "dist",
972
1004
  "commands",
973
1005
  "billing",
974
- "subscription.js"
1006
+ "balance.js"
975
1007
  ]
976
1008
  },
977
- "billing:topup": {
1009
+ "billing:card-setup": {
978
1010
  "aliases": [],
979
1011
  "args": {},
980
- "description": "Top up credit balance using saved payment method",
1012
+ "description": "Get a Stripe card setup URL to save a payment method",
981
1013
  "flags": {
982
1014
  "json": {
983
1015
  "description": "Format output as json.",
@@ -1009,26 +1041,11 @@
1009
1041
  "hasDynamicHelp": false,
1010
1042
  "multiple": false,
1011
1043
  "type": "option"
1012
- },
1013
- "amount": {
1014
- "description": "Top-up amount in USD (min $1)",
1015
- "name": "amount",
1016
- "required": true,
1017
- "hasDynamicHelp": false,
1018
- "multiple": false,
1019
- "type": "option"
1020
- },
1021
- "payment-ref": {
1022
- "description": "Payment reference (admin/test path)",
1023
- "name": "payment-ref",
1024
- "hasDynamicHelp": false,
1025
- "multiple": false,
1026
- "type": "option"
1027
1044
  }
1028
1045
  },
1029
1046
  "hasDynamicHelp": false,
1030
1047
  "hiddenAliases": [],
1031
- "id": "billing:topup",
1048
+ "id": "billing:card-setup",
1032
1049
  "pluginAlias": "faces-cli",
1033
1050
  "pluginName": "faces-cli",
1034
1051
  "pluginType": "core",
@@ -1039,13 +1056,13 @@
1039
1056
  "dist",
1040
1057
  "commands",
1041
1058
  "billing",
1042
- "topup.js"
1059
+ "card-setup.js"
1043
1060
  ]
1044
1061
  },
1045
- "billing:usage": {
1062
+ "billing:checkout": {
1046
1063
  "aliases": [],
1047
1064
  "args": {},
1048
- "description": "Aggregated usage analytics",
1065
+ "description": "Get a Stripe checkout URL to upgrade your subscription plan",
1049
1066
  "flags": {
1050
1067
  "json": {
1051
1068
  "description": "Format output as json.",
@@ -1078,37 +1095,21 @@
1078
1095
  "multiple": false,
1079
1096
  "type": "option"
1080
1097
  },
1081
- "group-by": {
1082
- "description": "Group results",
1083
- "name": "group-by",
1098
+ "plan": {
1099
+ "description": "Plan to subscribe to",
1100
+ "name": "plan",
1101
+ "default": "connect",
1084
1102
  "hasDynamicHelp": false,
1085
1103
  "multiple": false,
1086
1104
  "options": [
1087
- "api_key",
1088
- "model",
1089
- "llm",
1090
- "date"
1105
+ "connect"
1091
1106
  ],
1092
1107
  "type": "option"
1093
- },
1094
- "from": {
1095
- "description": "Start date (YYYY-MM-DD)",
1096
- "name": "from",
1097
- "hasDynamicHelp": false,
1098
- "multiple": false,
1099
- "type": "option"
1100
- },
1101
- "to": {
1102
- "description": "End date (YYYY-MM-DD)",
1103
- "name": "to",
1104
- "hasDynamicHelp": false,
1105
- "multiple": false,
1106
- "type": "option"
1107
1108
  }
1108
1109
  },
1109
1110
  "hasDynamicHelp": false,
1110
1111
  "hiddenAliases": [],
1111
- "id": "billing:usage",
1112
+ "id": "billing:checkout",
1112
1113
  "pluginAlias": "faces-cli",
1113
1114
  "pluginName": "faces-cli",
1114
1115
  "pluginType": "core",
@@ -1119,13 +1120,13 @@
1119
1120
  "dist",
1120
1121
  "commands",
1121
1122
  "billing",
1122
- "usage.js"
1123
+ "checkout.js"
1123
1124
  ]
1124
1125
  },
1125
- "catalog:backup": {
1126
+ "billing:llm-costs": {
1126
1127
  "aliases": [],
1127
1128
  "args": {},
1128
- "description": "Snapshot all faces, teams, and source material for migration",
1129
+ "description": "List available LLMs and their per-token costs",
1129
1130
  "flags": {
1130
1131
  "json": {
1131
1132
  "description": "Format output as json.",
@@ -1157,11 +1158,18 @@
1157
1158
  "hasDynamicHelp": false,
1158
1159
  "multiple": false,
1159
1160
  "type": "option"
1161
+ },
1162
+ "provider": {
1163
+ "description": "Filter by provider (e.g. openai, anthropic)",
1164
+ "name": "provider",
1165
+ "hasDynamicHelp": false,
1166
+ "multiple": false,
1167
+ "type": "option"
1160
1168
  }
1161
1169
  },
1162
1170
  "hasDynamicHelp": false,
1163
1171
  "hiddenAliases": [],
1164
- "id": "catalog:backup",
1172
+ "id": "billing:llm-costs",
1165
1173
  "pluginAlias": "faces-cli",
1166
1174
  "pluginName": "faces-cli",
1167
1175
  "pluginType": "core",
@@ -1171,14 +1179,14 @@
1171
1179
  "relativePath": [
1172
1180
  "dist",
1173
1181
  "commands",
1174
- "catalog",
1175
- "backup.js"
1182
+ "billing",
1183
+ "llm-costs.js"
1176
1184
  ]
1177
1185
  },
1178
- "catalog:doctor": {
1186
+ "billing:quota": {
1179
1187
  "aliases": [],
1180
1188
  "args": {},
1181
- "description": "Diagnose and repair the local face and team catalog",
1189
+ "description": "Show compilation stats per face (deprecated use compile:stats)",
1182
1190
  "flags": {
1183
1191
  "json": {
1184
1192
  "description": "Format output as json.",
@@ -1210,23 +1218,11 @@
1210
1218
  "hasDynamicHelp": false,
1211
1219
  "multiple": false,
1212
1220
  "type": "option"
1213
- },
1214
- "fix": {
1215
- "description": "Rebuild missing or stale catalog entries from API",
1216
- "name": "fix",
1217
- "allowNo": false,
1218
- "type": "boolean"
1219
- },
1220
- "generate": {
1221
- "description": "Fix + generate missing descriptions via LLM",
1222
- "name": "generate",
1223
- "allowNo": false,
1224
- "type": "boolean"
1225
1221
  }
1226
1222
  },
1227
1223
  "hasDynamicHelp": false,
1228
1224
  "hiddenAliases": [],
1229
- "id": "catalog:doctor",
1225
+ "id": "billing:quota",
1230
1226
  "pluginAlias": "faces-cli",
1231
1227
  "pluginName": "faces-cli",
1232
1228
  "pluginType": "core",
@@ -1236,14 +1232,14 @@
1236
1232
  "relativePath": [
1237
1233
  "dist",
1238
1234
  "commands",
1239
- "catalog",
1240
- "doctor.js"
1235
+ "billing",
1236
+ "quota.js"
1241
1237
  ]
1242
1238
  },
1243
- "catalog:list": {
1239
+ "billing:subscription": {
1244
1240
  "aliases": [],
1245
1241
  "args": {},
1246
- "description": "List all faces in the local catalog",
1242
+ "description": "Show current plan, face count, and renewal date",
1247
1243
  "flags": {
1248
1244
  "json": {
1249
1245
  "description": "Format output as json.",
@@ -1279,7 +1275,7 @@
1279
1275
  },
1280
1276
  "hasDynamicHelp": false,
1281
1277
  "hiddenAliases": [],
1282
- "id": "catalog:list",
1278
+ "id": "billing:subscription",
1283
1279
  "pluginAlias": "faces-cli",
1284
1280
  "pluginName": "faces-cli",
1285
1281
  "pluginType": "core",
@@ -1289,14 +1285,14 @@
1289
1285
  "relativePath": [
1290
1286
  "dist",
1291
1287
  "commands",
1292
- "catalog",
1293
- "list.js"
1288
+ "billing",
1289
+ "subscription.js"
1294
1290
  ]
1295
1291
  },
1296
- "catalog:manyfaced": {
1292
+ "billing:topup": {
1297
1293
  "aliases": [],
1298
1294
  "args": {},
1299
- "description": "Browse and install community manyfaced skills from github.com/facessh/manyfaced",
1295
+ "description": "Top up credit balance using saved payment method",
1300
1296
  "flags": {
1301
1297
  "json": {
1302
1298
  "description": "Format output as json.",
@@ -1329,37 +1325,25 @@
1329
1325
  "multiple": false,
1330
1326
  "type": "option"
1331
1327
  },
1332
- "skill": {
1333
- "description": "Show details for a specific skill",
1334
- "name": "skill",
1335
- "hasDynamicHelp": false,
1336
- "multiple": false,
1337
- "type": "option"
1338
- },
1339
- "install": {
1340
- "description": "Install a skill by name",
1341
- "name": "install",
1328
+ "amount": {
1329
+ "description": "Top-up amount in USD (min $1)",
1330
+ "name": "amount",
1331
+ "required": true,
1342
1332
  "hasDynamicHelp": false,
1343
1333
  "multiple": false,
1344
1334
  "type": "option"
1345
1335
  },
1346
- "skills-dir": {
1347
- "description": "Directory to install skills into (required for --install)",
1348
- "name": "skills-dir",
1336
+ "payment-ref": {
1337
+ "description": "Payment reference (admin/test path)",
1338
+ "name": "payment-ref",
1349
1339
  "hasDynamicHelp": false,
1350
1340
  "multiple": false,
1351
1341
  "type": "option"
1352
- },
1353
- "refresh": {
1354
- "description": "Force refresh the skill index (ignore cache)",
1355
- "name": "refresh",
1356
- "allowNo": false,
1357
- "type": "boolean"
1358
1342
  }
1359
1343
  },
1360
1344
  "hasDynamicHelp": false,
1361
1345
  "hiddenAliases": [],
1362
- "id": "catalog:manyfaced",
1346
+ "id": "billing:topup",
1363
1347
  "pluginAlias": "faces-cli",
1364
1348
  "pluginName": "faces-cli",
1365
1349
  "pluginType": "core",
@@ -1369,19 +1353,14 @@
1369
1353
  "relativePath": [
1370
1354
  "dist",
1371
1355
  "commands",
1372
- "catalog",
1373
- "manyfaced.js"
1356
+ "billing",
1357
+ "topup.js"
1374
1358
  ]
1375
1359
  },
1376
- "catalog:restore": {
1360
+ "billing:usage": {
1377
1361
  "aliases": [],
1378
- "args": {
1379
- "file": {
1380
- "description": "Backup file path (default: most recent in ~/.faces/backups/)",
1381
- "name": "file"
1382
- }
1383
- },
1384
- "description": "Restore faces, teams, and source material from a backup snapshot",
1362
+ "args": {},
1363
+ "description": "Aggregated usage analytics",
1385
1364
  "flags": {
1386
1365
  "json": {
1387
1366
  "description": "Format output as json.",
@@ -1414,16 +1393,37 @@
1414
1393
  "multiple": false,
1415
1394
  "type": "option"
1416
1395
  },
1417
- "compile": {
1418
- "description": "Run compile:all after restoring",
1419
- "name": "compile",
1420
- "allowNo": false,
1421
- "type": "boolean"
1396
+ "group-by": {
1397
+ "description": "Group results",
1398
+ "name": "group-by",
1399
+ "hasDynamicHelp": false,
1400
+ "multiple": false,
1401
+ "options": [
1402
+ "api_key",
1403
+ "model",
1404
+ "llm",
1405
+ "date"
1406
+ ],
1407
+ "type": "option"
1408
+ },
1409
+ "from": {
1410
+ "description": "Start date (YYYY-MM-DD)",
1411
+ "name": "from",
1412
+ "hasDynamicHelp": false,
1413
+ "multiple": false,
1414
+ "type": "option"
1415
+ },
1416
+ "to": {
1417
+ "description": "End date (YYYY-MM-DD)",
1418
+ "name": "to",
1419
+ "hasDynamicHelp": false,
1420
+ "multiple": false,
1421
+ "type": "option"
1422
1422
  }
1423
1423
  },
1424
1424
  "hasDynamicHelp": false,
1425
1425
  "hiddenAliases": [],
1426
- "id": "catalog:restore",
1426
+ "id": "billing:usage",
1427
1427
  "pluginAlias": "faces-cli",
1428
1428
  "pluginName": "faces-cli",
1429
1429
  "pluginType": "core",
@@ -1433,8 +1433,8 @@
1433
1433
  "relativePath": [
1434
1434
  "dist",
1435
1435
  "commands",
1436
- "catalog",
1437
- "restore.js"
1436
+ "billing",
1437
+ "usage.js"
1438
1438
  ]
1439
1439
  },
1440
1440
  "chat:chat": {
@@ -1905,6 +1905,59 @@
1905
1905
  "import.js"
1906
1906
  ]
1907
1907
  },
1908
+ "compile:stats": {
1909
+ "aliases": [],
1910
+ "args": {},
1911
+ "description": "Show compilation stats per face",
1912
+ "flags": {
1913
+ "json": {
1914
+ "description": "Format output as json.",
1915
+ "helpGroup": "GLOBAL",
1916
+ "name": "json",
1917
+ "allowNo": false,
1918
+ "type": "boolean"
1919
+ },
1920
+ "base-url": {
1921
+ "description": "API base URL",
1922
+ "env": "FACES_BASE_URL",
1923
+ "name": "base-url",
1924
+ "hasDynamicHelp": false,
1925
+ "multiple": false,
1926
+ "type": "option"
1927
+ },
1928
+ "token": {
1929
+ "description": "JWT bearer token",
1930
+ "env": "FACES_TOKEN",
1931
+ "name": "token",
1932
+ "hasDynamicHelp": false,
1933
+ "multiple": false,
1934
+ "type": "option"
1935
+ },
1936
+ "api-key": {
1937
+ "description": "API key",
1938
+ "env": "FACES_API_KEY",
1939
+ "name": "api-key",
1940
+ "hasDynamicHelp": false,
1941
+ "multiple": false,
1942
+ "type": "option"
1943
+ }
1944
+ },
1945
+ "hasDynamicHelp": false,
1946
+ "hiddenAliases": [],
1947
+ "id": "compile:stats",
1948
+ "pluginAlias": "faces-cli",
1949
+ "pluginName": "faces-cli",
1950
+ "pluginType": "core",
1951
+ "strict": true,
1952
+ "enableJsonFlag": true,
1953
+ "isESM": true,
1954
+ "relativePath": [
1955
+ "dist",
1956
+ "commands",
1957
+ "compile",
1958
+ "stats.js"
1959
+ ]
1960
+ },
1908
1961
  "compile:upload": {
1909
1962
  "aliases": [],
1910
1963
  "args": {
@@ -5780,5 +5833,5 @@
5780
5833
  ]
5781
5834
  }
5782
5835
  },
5783
- "version": "1.6.4"
5836
+ "version": "1.6.6"
5784
5837
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faces-cli",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "description": "CLI for the Faces AI platform",
5
5
  "type": "module",
6
6
  "author": "sybileak <sybileak@proton.me>",