faces-cli 1.6.6 → 1.6.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.
@@ -120,23 +120,10 @@
120
120
  "state.js"
121
121
  ]
122
122
  },
123
- "auth:connect": {
123
+ "billing:balance": {
124
124
  "aliases": [],
125
- "args": {
126
- "provider": {
127
- "description": "OAuth provider to connect",
128
- "name": "provider",
129
- "options": [
130
- "openai"
131
- ],
132
- "required": true
133
- }
134
- },
135
- "description": "Connect an OAuth provider account to Faces (e.g. ChatGPT Plus/Pro)",
136
- "examples": [
137
- "<%= config.bin %> auth connect openai",
138
- "<%= config.bin %> auth connect openai --manual"
139
- ],
125
+ "args": {},
126
+ "description": "Show credit balance and payment method status",
140
127
  "flags": {
141
128
  "json": {
142
129
  "description": "Format output as json.",
@@ -168,17 +155,11 @@
168
155
  "hasDynamicHelp": false,
169
156
  "multiple": false,
170
157
  "type": "option"
171
- },
172
- "manual": {
173
- "description": "Manual mode for headless environments: prints the authorize URL and prompts you to paste the callback URL after approving in any browser.",
174
- "name": "manual",
175
- "allowNo": false,
176
- "type": "boolean"
177
158
  }
178
159
  },
179
160
  "hasDynamicHelp": false,
180
161
  "hiddenAliases": [],
181
- "id": "auth:connect",
162
+ "id": "billing:balance",
182
163
  "pluginAlias": "faces-cli",
183
164
  "pluginName": "faces-cli",
184
165
  "pluginType": "core",
@@ -188,18 +169,14 @@
188
169
  "relativePath": [
189
170
  "dist",
190
171
  "commands",
191
- "auth",
192
- "connect.js"
172
+ "billing",
173
+ "balance.js"
193
174
  ]
194
175
  },
195
- "auth:connections": {
176
+ "billing:card-setup": {
196
177
  "aliases": [],
197
178
  "args": {},
198
- "description": "List connected OAuth provider accounts",
199
- "examples": [
200
- "<%= config.bin %> auth connections",
201
- "<%= config.bin %> auth connections --json"
202
- ],
179
+ "description": "Get a Stripe card setup URL to save a payment method",
203
180
  "flags": {
204
181
  "json": {
205
182
  "description": "Format output as json.",
@@ -235,7 +212,7 @@
235
212
  },
236
213
  "hasDynamicHelp": false,
237
214
  "hiddenAliases": [],
238
- "id": "auth:connections",
215
+ "id": "billing:card-setup",
239
216
  "pluginAlias": "faces-cli",
240
217
  "pluginName": "faces-cli",
241
218
  "pluginType": "core",
@@ -245,26 +222,14 @@
245
222
  "relativePath": [
246
223
  "dist",
247
224
  "commands",
248
- "auth",
249
- "connections.js"
225
+ "billing",
226
+ "card-setup.js"
250
227
  ]
251
228
  },
252
- "auth:disconnect": {
229
+ "billing:llm-costs": {
253
230
  "aliases": [],
254
- "args": {
255
- "provider": {
256
- "description": "OAuth provider to disconnect",
257
- "name": "provider",
258
- "options": [
259
- "openai"
260
- ],
261
- "required": true
262
- }
263
- },
264
- "description": "Disconnect a linked OAuth provider account",
265
- "examples": [
266
- "<%= config.bin %> auth disconnect openai"
267
- ],
231
+ "args": {},
232
+ "description": "List available LLMs and their per-token costs",
268
233
  "flags": {
269
234
  "json": {
270
235
  "description": "Format output as json.",
@@ -296,11 +261,18 @@
296
261
  "hasDynamicHelp": false,
297
262
  "multiple": false,
298
263
  "type": "option"
264
+ },
265
+ "provider": {
266
+ "description": "Filter by provider (e.g. openai, anthropic)",
267
+ "name": "provider",
268
+ "hasDynamicHelp": false,
269
+ "multiple": false,
270
+ "type": "option"
299
271
  }
300
272
  },
301
273
  "hasDynamicHelp": false,
302
274
  "hiddenAliases": [],
303
- "id": "auth:disconnect",
275
+ "id": "billing:llm-costs",
304
276
  "pluginAlias": "faces-cli",
305
277
  "pluginName": "faces-cli",
306
278
  "pluginType": "core",
@@ -310,14 +282,14 @@
310
282
  "relativePath": [
311
283
  "dist",
312
284
  "commands",
313
- "auth",
314
- "disconnect.js"
285
+ "billing",
286
+ "llm-costs.js"
315
287
  ]
316
288
  },
317
- "auth:login": {
289
+ "billing:quota": {
318
290
  "aliases": [],
319
291
  "args": {},
320
- "description": "Login and save JWT credentials",
292
+ "description": "Show compilation stats per face (deprecated — use compile:stats)",
321
293
  "flags": {
322
294
  "json": {
323
295
  "description": "Format output as json.",
@@ -349,27 +321,11 @@
349
321
  "hasDynamicHelp": false,
350
322
  "multiple": false,
351
323
  "type": "option"
352
- },
353
- "email": {
354
- "description": "Account email",
355
- "name": "email",
356
- "required": true,
357
- "hasDynamicHelp": false,
358
- "multiple": false,
359
- "type": "option"
360
- },
361
- "password": {
362
- "description": "Account password",
363
- "name": "password",
364
- "required": true,
365
- "hasDynamicHelp": false,
366
- "multiple": false,
367
- "type": "option"
368
324
  }
369
325
  },
370
326
  "hasDynamicHelp": false,
371
327
  "hiddenAliases": [],
372
- "id": "auth:login",
328
+ "id": "billing:quota",
373
329
  "pluginAlias": "faces-cli",
374
330
  "pluginName": "faces-cli",
375
331
  "pluginType": "core",
@@ -379,14 +335,14 @@
379
335
  "relativePath": [
380
336
  "dist",
381
337
  "commands",
382
- "auth",
383
- "login.js"
338
+ "billing",
339
+ "quota.js"
384
340
  ]
385
341
  },
386
- "auth:logout": {
342
+ "billing:subscription": {
387
343
  "aliases": [],
388
344
  "args": {},
389
- "description": "Clear saved credentials",
345
+ "description": "Show current plan, face count, and renewal date",
390
346
  "flags": {
391
347
  "json": {
392
348
  "description": "Format output as json.",
@@ -422,7 +378,7 @@
422
378
  },
423
379
  "hasDynamicHelp": false,
424
380
  "hiddenAliases": [],
425
- "id": "auth:logout",
381
+ "id": "billing:subscription",
426
382
  "pluginAlias": "faces-cli",
427
383
  "pluginName": "faces-cli",
428
384
  "pluginType": "core",
@@ -432,14 +388,14 @@
432
388
  "relativePath": [
433
389
  "dist",
434
390
  "commands",
435
- "auth",
436
- "logout.js"
391
+ "billing",
392
+ "subscription.js"
437
393
  ]
438
394
  },
439
- "auth:refresh": {
395
+ "billing:topup": {
440
396
  "aliases": [],
441
397
  "args": {},
442
- "description": "Exchange current JWT for a fresh one",
398
+ "description": "Top up credit balance using saved payment method",
443
399
  "flags": {
444
400
  "json": {
445
401
  "description": "Format output as json.",
@@ -471,11 +427,26 @@
471
427
  "hasDynamicHelp": false,
472
428
  "multiple": false,
473
429
  "type": "option"
430
+ },
431
+ "amount": {
432
+ "description": "Top-up amount in USD (min $1)",
433
+ "name": "amount",
434
+ "required": true,
435
+ "hasDynamicHelp": false,
436
+ "multiple": false,
437
+ "type": "option"
438
+ },
439
+ "payment-ref": {
440
+ "description": "Payment reference (admin/test path)",
441
+ "name": "payment-ref",
442
+ "hasDynamicHelp": false,
443
+ "multiple": false,
444
+ "type": "option"
474
445
  }
475
446
  },
476
447
  "hasDynamicHelp": false,
477
448
  "hiddenAliases": [],
478
- "id": "auth:refresh",
449
+ "id": "billing:topup",
479
450
  "pluginAlias": "faces-cli",
480
451
  "pluginName": "faces-cli",
481
452
  "pluginType": "core",
@@ -485,14 +456,14 @@
485
456
  "relativePath": [
486
457
  "dist",
487
458
  "commands",
488
- "auth",
489
- "refresh.js"
459
+ "billing",
460
+ "topup.js"
490
461
  ]
491
462
  },
492
- "auth:register": {
463
+ "billing:usage": {
493
464
  "aliases": [],
494
465
  "args": {},
495
- "description": "Create a new Faces account",
466
+ "description": "Aggregated usage analytics",
496
467
  "flags": {
497
468
  "json": {
498
469
  "description": "Format output as json.",
@@ -525,53 +496,37 @@
525
496
  "multiple": false,
526
497
  "type": "option"
527
498
  },
528
- "email": {
529
- "description": "Email address",
530
- "name": "email",
531
- "required": true,
532
- "hasDynamicHelp": false,
533
- "multiple": false,
534
- "type": "option"
535
- },
536
- "password": {
537
- "description": "Password",
538
- "name": "password",
539
- "required": true,
540
- "hasDynamicHelp": false,
541
- "multiple": false,
542
- "type": "option"
543
- },
544
- "username": {
545
- "description": "Username (lowercase, dashes, numbers)",
546
- "name": "username",
547
- "required": true,
499
+ "group-by": {
500
+ "description": "Group results",
501
+ "name": "group-by",
548
502
  "hasDynamicHelp": false,
549
503
  "multiple": false,
504
+ "options": [
505
+ "api_key",
506
+ "model",
507
+ "llm",
508
+ "date"
509
+ ],
550
510
  "type": "option"
551
511
  },
552
- "invite-key": {
553
- "description": "Invite key (if required)",
554
- "name": "invite-key",
512
+ "from": {
513
+ "description": "Start date (YYYY-MM-DD)",
514
+ "name": "from",
555
515
  "hasDynamicHelp": false,
556
516
  "multiple": false,
557
517
  "type": "option"
558
518
  },
559
- "plan": {
560
- "description": "Plan to subscribe to: \"free\" ($5 activation) or \"connect\" ($17/mo, no activation fee)",
561
- "name": "plan",
562
- "default": "free",
519
+ "to": {
520
+ "description": "End date (YYYY-MM-DD)",
521
+ "name": "to",
563
522
  "hasDynamicHelp": false,
564
523
  "multiple": false,
565
- "options": [
566
- "free",
567
- "connect"
568
- ],
569
524
  "type": "option"
570
525
  }
571
526
  },
572
527
  "hasDynamicHelp": false,
573
528
  "hiddenAliases": [],
574
- "id": "auth:register",
529
+ "id": "billing:usage",
575
530
  "pluginAlias": "faces-cli",
576
531
  "pluginName": "faces-cli",
577
532
  "pluginType": "core",
@@ -581,14 +536,27 @@
581
536
  "relativePath": [
582
537
  "dist",
583
538
  "commands",
584
- "auth",
585
- "register.js"
539
+ "billing",
540
+ "usage.js"
586
541
  ]
587
542
  },
588
- "auth:whoami": {
543
+ "auth:connect": {
589
544
  "aliases": [],
590
- "args": {},
591
- "description": "Print current user profile and auth diagnostic",
545
+ "args": {
546
+ "provider": {
547
+ "description": "OAuth provider to connect",
548
+ "name": "provider",
549
+ "options": [
550
+ "openai"
551
+ ],
552
+ "required": true
553
+ }
554
+ },
555
+ "description": "Connect an OAuth provider account to Faces (e.g. ChatGPT Plus/Pro)",
556
+ "examples": [
557
+ "<%= config.bin %> auth connect openai",
558
+ "<%= config.bin %> auth connect openai --manual"
559
+ ],
592
560
  "flags": {
593
561
  "json": {
594
562
  "description": "Format output as json.",
@@ -620,11 +588,17 @@
620
588
  "hasDynamicHelp": false,
621
589
  "multiple": false,
622
590
  "type": "option"
591
+ },
592
+ "manual": {
593
+ "description": "Manual mode for headless environments: prints the authorize URL and prompts you to paste the callback URL after approving in any browser.",
594
+ "name": "manual",
595
+ "allowNo": false,
596
+ "type": "boolean"
623
597
  }
624
598
  },
625
599
  "hasDynamicHelp": false,
626
600
  "hiddenAliases": [],
627
- "id": "auth:whoami",
601
+ "id": "auth:connect",
628
602
  "pluginAlias": "faces-cli",
629
603
  "pluginName": "faces-cli",
630
604
  "pluginType": "core",
@@ -635,13 +609,17 @@
635
609
  "dist",
636
610
  "commands",
637
611
  "auth",
638
- "whoami.js"
612
+ "connect.js"
639
613
  ]
640
614
  },
641
- "catalog:backup": {
615
+ "auth:connections": {
642
616
  "aliases": [],
643
617
  "args": {},
644
- "description": "Snapshot all faces, teams, and source material for migration",
618
+ "description": "List connected OAuth provider accounts",
619
+ "examples": [
620
+ "<%= config.bin %> auth connections",
621
+ "<%= config.bin %> auth connections --json"
622
+ ],
645
623
  "flags": {
646
624
  "json": {
647
625
  "description": "Format output as json.",
@@ -677,7 +655,7 @@
677
655
  },
678
656
  "hasDynamicHelp": false,
679
657
  "hiddenAliases": [],
680
- "id": "catalog:backup",
658
+ "id": "auth:connections",
681
659
  "pluginAlias": "faces-cli",
682
660
  "pluginName": "faces-cli",
683
661
  "pluginType": "core",
@@ -687,14 +665,26 @@
687
665
  "relativePath": [
688
666
  "dist",
689
667
  "commands",
690
- "catalog",
691
- "backup.js"
668
+ "auth",
669
+ "connections.js"
692
670
  ]
693
671
  },
694
- "catalog:doctor": {
672
+ "auth:disconnect": {
695
673
  "aliases": [],
696
- "args": {},
697
- "description": "Diagnose and repair the local face and team catalog",
674
+ "args": {
675
+ "provider": {
676
+ "description": "OAuth provider to disconnect",
677
+ "name": "provider",
678
+ "options": [
679
+ "openai"
680
+ ],
681
+ "required": true
682
+ }
683
+ },
684
+ "description": "Disconnect a linked OAuth provider account",
685
+ "examples": [
686
+ "<%= config.bin %> auth disconnect openai"
687
+ ],
698
688
  "flags": {
699
689
  "json": {
700
690
  "description": "Format output as json.",
@@ -726,23 +716,11 @@
726
716
  "hasDynamicHelp": false,
727
717
  "multiple": false,
728
718
  "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"
741
719
  }
742
720
  },
743
721
  "hasDynamicHelp": false,
744
722
  "hiddenAliases": [],
745
- "id": "catalog:doctor",
723
+ "id": "auth:disconnect",
746
724
  "pluginAlias": "faces-cli",
747
725
  "pluginName": "faces-cli",
748
726
  "pluginType": "core",
@@ -752,14 +730,14 @@
752
730
  "relativePath": [
753
731
  "dist",
754
732
  "commands",
755
- "catalog",
756
- "doctor.js"
733
+ "auth",
734
+ "disconnect.js"
757
735
  ]
758
736
  },
759
- "catalog:list": {
737
+ "auth:login": {
760
738
  "aliases": [],
761
739
  "args": {},
762
- "description": "List all faces in the local catalog",
740
+ "description": "Login and save JWT credentials",
763
741
  "flags": {
764
742
  "json": {
765
743
  "description": "Format output as json.",
@@ -791,11 +769,27 @@
791
769
  "hasDynamicHelp": false,
792
770
  "multiple": false,
793
771
  "type": "option"
772
+ },
773
+ "email": {
774
+ "description": "Account email",
775
+ "name": "email",
776
+ "required": true,
777
+ "hasDynamicHelp": false,
778
+ "multiple": false,
779
+ "type": "option"
780
+ },
781
+ "password": {
782
+ "description": "Account password",
783
+ "name": "password",
784
+ "required": true,
785
+ "hasDynamicHelp": false,
786
+ "multiple": false,
787
+ "type": "option"
794
788
  }
795
789
  },
796
790
  "hasDynamicHelp": false,
797
791
  "hiddenAliases": [],
798
- "id": "catalog:list",
792
+ "id": "auth:login",
799
793
  "pluginAlias": "faces-cli",
800
794
  "pluginName": "faces-cli",
801
795
  "pluginType": "core",
@@ -805,14 +799,14 @@
805
799
  "relativePath": [
806
800
  "dist",
807
801
  "commands",
808
- "catalog",
809
- "list.js"
802
+ "auth",
803
+ "login.js"
810
804
  ]
811
805
  },
812
- "catalog:manyfaced": {
806
+ "auth:logout": {
813
807
  "aliases": [],
814
808
  "args": {},
815
- "description": "Browse and install community manyfaced skills from github.com/facessh/manyfaced",
809
+ "description": "Clear saved credentials",
816
810
  "flags": {
817
811
  "json": {
818
812
  "description": "Format output as json.",
@@ -844,38 +838,11 @@
844
838
  "hasDynamicHelp": false,
845
839
  "multiple": false,
846
840
  "type": "option"
847
- },
848
- "skill": {
849
- "description": "Show details for a specific skill",
850
- "name": "skill",
851
- "hasDynamicHelp": false,
852
- "multiple": false,
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"
874
841
  }
875
842
  },
876
843
  "hasDynamicHelp": false,
877
844
  "hiddenAliases": [],
878
- "id": "catalog:manyfaced",
845
+ "id": "auth:logout",
879
846
  "pluginAlias": "faces-cli",
880
847
  "pluginName": "faces-cli",
881
848
  "pluginType": "core",
@@ -885,19 +852,14 @@
885
852
  "relativePath": [
886
853
  "dist",
887
854
  "commands",
888
- "catalog",
889
- "manyfaced.js"
855
+ "auth",
856
+ "logout.js"
890
857
  ]
891
858
  },
892
- "catalog:restore": {
859
+ "auth:refresh": {
893
860
  "aliases": [],
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",
861
+ "args": {},
862
+ "description": "Exchange current JWT for a fresh one",
901
863
  "flags": {
902
864
  "json": {
903
865
  "description": "Format output as json.",
@@ -929,17 +891,11 @@
929
891
  "hasDynamicHelp": false,
930
892
  "multiple": false,
931
893
  "type": "option"
932
- },
933
- "compile": {
934
- "description": "Run compile:all after restoring",
935
- "name": "compile",
936
- "allowNo": false,
937
- "type": "boolean"
938
894
  }
939
895
  },
940
896
  "hasDynamicHelp": false,
941
897
  "hiddenAliases": [],
942
- "id": "catalog:restore",
898
+ "id": "auth:refresh",
943
899
  "pluginAlias": "faces-cli",
944
900
  "pluginName": "faces-cli",
945
901
  "pluginType": "core",
@@ -949,14 +905,14 @@
949
905
  "relativePath": [
950
906
  "dist",
951
907
  "commands",
952
- "catalog",
953
- "restore.js"
908
+ "auth",
909
+ "refresh.js"
954
910
  ]
955
911
  },
956
- "billing:balance": {
912
+ "auth:register": {
957
913
  "aliases": [],
958
914
  "args": {},
959
- "description": "Show credit balance and payment method status",
915
+ "description": "Create a new Faces account",
960
916
  "flags": {
961
917
  "json": {
962
918
  "description": "Format output as json.",
@@ -988,64 +944,54 @@
988
944
  "hasDynamicHelp": false,
989
945
  "multiple": false,
990
946
  "type": "option"
991
- }
992
- },
993
- "hasDynamicHelp": false,
994
- "hiddenAliases": [],
995
- "id": "billing:balance",
996
- "pluginAlias": "faces-cli",
997
- "pluginName": "faces-cli",
998
- "pluginType": "core",
999
- "strict": true,
1000
- "enableJsonFlag": true,
1001
- "isESM": true,
1002
- "relativePath": [
1003
- "dist",
1004
- "commands",
1005
- "billing",
1006
- "balance.js"
1007
- ]
1008
- },
1009
- "billing:card-setup": {
1010
- "aliases": [],
1011
- "args": {},
1012
- "description": "Get a Stripe card setup URL to save a payment method",
1013
- "flags": {
1014
- "json": {
1015
- "description": "Format output as json.",
1016
- "helpGroup": "GLOBAL",
1017
- "name": "json",
1018
- "allowNo": false,
1019
- "type": "boolean"
1020
947
  },
1021
- "base-url": {
1022
- "description": "API base URL",
1023
- "env": "FACES_BASE_URL",
1024
- "name": "base-url",
948
+ "email": {
949
+ "description": "Email address",
950
+ "name": "email",
951
+ "required": true,
1025
952
  "hasDynamicHelp": false,
1026
953
  "multiple": false,
1027
954
  "type": "option"
1028
955
  },
1029
- "token": {
1030
- "description": "JWT bearer token",
1031
- "env": "FACES_TOKEN",
1032
- "name": "token",
956
+ "password": {
957
+ "description": "Password",
958
+ "name": "password",
959
+ "required": true,
1033
960
  "hasDynamicHelp": false,
1034
961
  "multiple": false,
1035
962
  "type": "option"
1036
963
  },
1037
- "api-key": {
1038
- "description": "API key",
1039
- "env": "FACES_API_KEY",
1040
- "name": "api-key",
964
+ "username": {
965
+ "description": "Username (lowercase, dashes, numbers)",
966
+ "name": "username",
967
+ "required": true,
968
+ "hasDynamicHelp": false,
969
+ "multiple": false,
970
+ "type": "option"
971
+ },
972
+ "invite-key": {
973
+ "description": "Invite key (if required)",
974
+ "name": "invite-key",
975
+ "hasDynamicHelp": false,
976
+ "multiple": false,
977
+ "type": "option"
978
+ },
979
+ "plan": {
980
+ "description": "Plan to subscribe to: \"free\" ($5 activation) or \"connect\" ($17/mo, no activation fee)",
981
+ "name": "plan",
982
+ "default": "free",
1041
983
  "hasDynamicHelp": false,
1042
984
  "multiple": false,
985
+ "options": [
986
+ "free",
987
+ "connect"
988
+ ],
1043
989
  "type": "option"
1044
990
  }
1045
991
  },
1046
992
  "hasDynamicHelp": false,
1047
993
  "hiddenAliases": [],
1048
- "id": "billing:card-setup",
994
+ "id": "auth:register",
1049
995
  "pluginAlias": "faces-cli",
1050
996
  "pluginName": "faces-cli",
1051
997
  "pluginType": "core",
@@ -1055,14 +1001,14 @@
1055
1001
  "relativePath": [
1056
1002
  "dist",
1057
1003
  "commands",
1058
- "billing",
1059
- "card-setup.js"
1004
+ "auth",
1005
+ "register.js"
1060
1006
  ]
1061
1007
  },
1062
- "billing:checkout": {
1008
+ "auth:whoami": {
1063
1009
  "aliases": [],
1064
1010
  "args": {},
1065
- "description": "Get a Stripe checkout URL to upgrade your subscription plan",
1011
+ "description": "Print current user profile and auth diagnostic",
1066
1012
  "flags": {
1067
1013
  "json": {
1068
1014
  "description": "Format output as json.",
@@ -1089,27 +1035,16 @@
1089
1035
  },
1090
1036
  "api-key": {
1091
1037
  "description": "API key",
1092
- "env": "FACES_API_KEY",
1093
- "name": "api-key",
1094
- "hasDynamicHelp": false,
1095
- "multiple": false,
1096
- "type": "option"
1097
- },
1098
- "plan": {
1099
- "description": "Plan to subscribe to",
1100
- "name": "plan",
1101
- "default": "connect",
1038
+ "env": "FACES_API_KEY",
1039
+ "name": "api-key",
1102
1040
  "hasDynamicHelp": false,
1103
1041
  "multiple": false,
1104
- "options": [
1105
- "connect"
1106
- ],
1107
1042
  "type": "option"
1108
1043
  }
1109
1044
  },
1110
1045
  "hasDynamicHelp": false,
1111
1046
  "hiddenAliases": [],
1112
- "id": "billing:checkout",
1047
+ "id": "auth:whoami",
1113
1048
  "pluginAlias": "faces-cli",
1114
1049
  "pluginName": "faces-cli",
1115
1050
  "pluginType": "core",
@@ -1119,14 +1054,14 @@
1119
1054
  "relativePath": [
1120
1055
  "dist",
1121
1056
  "commands",
1122
- "billing",
1123
- "checkout.js"
1057
+ "auth",
1058
+ "whoami.js"
1124
1059
  ]
1125
1060
  },
1126
- "billing:llm-costs": {
1061
+ "catalog:backup": {
1127
1062
  "aliases": [],
1128
1063
  "args": {},
1129
- "description": "List available LLMs and their per-token costs",
1064
+ "description": "Snapshot all faces, teams, and source material for migration",
1130
1065
  "flags": {
1131
1066
  "json": {
1132
1067
  "description": "Format output as json.",
@@ -1158,18 +1093,11 @@
1158
1093
  "hasDynamicHelp": false,
1159
1094
  "multiple": false,
1160
1095
  "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"
1168
1096
  }
1169
1097
  },
1170
1098
  "hasDynamicHelp": false,
1171
1099
  "hiddenAliases": [],
1172
- "id": "billing:llm-costs",
1100
+ "id": "catalog:backup",
1173
1101
  "pluginAlias": "faces-cli",
1174
1102
  "pluginName": "faces-cli",
1175
1103
  "pluginType": "core",
@@ -1179,14 +1107,14 @@
1179
1107
  "relativePath": [
1180
1108
  "dist",
1181
1109
  "commands",
1182
- "billing",
1183
- "llm-costs.js"
1110
+ "catalog",
1111
+ "backup.js"
1184
1112
  ]
1185
1113
  },
1186
- "billing:quota": {
1114
+ "catalog:doctor": {
1187
1115
  "aliases": [],
1188
1116
  "args": {},
1189
- "description": "Show compilation stats per face (deprecated use compile:stats)",
1117
+ "description": "Diagnose and repair the local face and team catalog",
1190
1118
  "flags": {
1191
1119
  "json": {
1192
1120
  "description": "Format output as json.",
@@ -1218,11 +1146,23 @@
1218
1146
  "hasDynamicHelp": false,
1219
1147
  "multiple": false,
1220
1148
  "type": "option"
1149
+ },
1150
+ "fix": {
1151
+ "description": "Rebuild missing or stale catalog entries from API",
1152
+ "name": "fix",
1153
+ "allowNo": false,
1154
+ "type": "boolean"
1155
+ },
1156
+ "generate": {
1157
+ "description": "Fix + generate missing descriptions via LLM",
1158
+ "name": "generate",
1159
+ "allowNo": false,
1160
+ "type": "boolean"
1221
1161
  }
1222
1162
  },
1223
1163
  "hasDynamicHelp": false,
1224
1164
  "hiddenAliases": [],
1225
- "id": "billing:quota",
1165
+ "id": "catalog:doctor",
1226
1166
  "pluginAlias": "faces-cli",
1227
1167
  "pluginName": "faces-cli",
1228
1168
  "pluginType": "core",
@@ -1232,14 +1172,14 @@
1232
1172
  "relativePath": [
1233
1173
  "dist",
1234
1174
  "commands",
1235
- "billing",
1236
- "quota.js"
1175
+ "catalog",
1176
+ "doctor.js"
1237
1177
  ]
1238
1178
  },
1239
- "billing:subscription": {
1179
+ "catalog:list": {
1240
1180
  "aliases": [],
1241
1181
  "args": {},
1242
- "description": "Show current plan, face count, and renewal date",
1182
+ "description": "List all faces in the local catalog",
1243
1183
  "flags": {
1244
1184
  "json": {
1245
1185
  "description": "Format output as json.",
@@ -1275,7 +1215,7 @@
1275
1215
  },
1276
1216
  "hasDynamicHelp": false,
1277
1217
  "hiddenAliases": [],
1278
- "id": "billing:subscription",
1218
+ "id": "catalog:list",
1279
1219
  "pluginAlias": "faces-cli",
1280
1220
  "pluginName": "faces-cli",
1281
1221
  "pluginType": "core",
@@ -1285,14 +1225,14 @@
1285
1225
  "relativePath": [
1286
1226
  "dist",
1287
1227
  "commands",
1288
- "billing",
1289
- "subscription.js"
1228
+ "catalog",
1229
+ "list.js"
1290
1230
  ]
1291
1231
  },
1292
- "billing:topup": {
1232
+ "catalog:manyfaced": {
1293
1233
  "aliases": [],
1294
1234
  "args": {},
1295
- "description": "Top up credit balance using saved payment method",
1235
+ "description": "Browse and install community manyfaced skills from github.com/facessh/manyfaced",
1296
1236
  "flags": {
1297
1237
  "json": {
1298
1238
  "description": "Format output as json.",
@@ -1325,25 +1265,37 @@
1325
1265
  "multiple": false,
1326
1266
  "type": "option"
1327
1267
  },
1328
- "amount": {
1329
- "description": "Top-up amount in USD (min $1)",
1330
- "name": "amount",
1331
- "required": true,
1268
+ "skill": {
1269
+ "description": "Show details for a specific skill",
1270
+ "name": "skill",
1332
1271
  "hasDynamicHelp": false,
1333
1272
  "multiple": false,
1334
1273
  "type": "option"
1335
1274
  },
1336
- "payment-ref": {
1337
- "description": "Payment reference (admin/test path)",
1338
- "name": "payment-ref",
1275
+ "install": {
1276
+ "description": "Install a skill by name",
1277
+ "name": "install",
1278
+ "hasDynamicHelp": false,
1279
+ "multiple": false,
1280
+ "type": "option"
1281
+ },
1282
+ "skills-dir": {
1283
+ "description": "Directory to install skills into (required for --install)",
1284
+ "name": "skills-dir",
1339
1285
  "hasDynamicHelp": false,
1340
1286
  "multiple": false,
1341
1287
  "type": "option"
1288
+ },
1289
+ "refresh": {
1290
+ "description": "Force refresh the skill index (ignore cache)",
1291
+ "name": "refresh",
1292
+ "allowNo": false,
1293
+ "type": "boolean"
1342
1294
  }
1343
1295
  },
1344
1296
  "hasDynamicHelp": false,
1345
1297
  "hiddenAliases": [],
1346
- "id": "billing:topup",
1298
+ "id": "catalog:manyfaced",
1347
1299
  "pluginAlias": "faces-cli",
1348
1300
  "pluginName": "faces-cli",
1349
1301
  "pluginType": "core",
@@ -1353,14 +1305,19 @@
1353
1305
  "relativePath": [
1354
1306
  "dist",
1355
1307
  "commands",
1356
- "billing",
1357
- "topup.js"
1308
+ "catalog",
1309
+ "manyfaced.js"
1358
1310
  ]
1359
1311
  },
1360
- "billing:usage": {
1312
+ "catalog:restore": {
1361
1313
  "aliases": [],
1362
- "args": {},
1363
- "description": "Aggregated usage analytics",
1314
+ "args": {
1315
+ "file": {
1316
+ "description": "Backup file path (default: most recent in ~/.faces/backups/)",
1317
+ "name": "file"
1318
+ }
1319
+ },
1320
+ "description": "Restore faces, teams, and source material from a backup snapshot",
1364
1321
  "flags": {
1365
1322
  "json": {
1366
1323
  "description": "Format output as json.",
@@ -1393,37 +1350,16 @@
1393
1350
  "multiple": false,
1394
1351
  "type": "option"
1395
1352
  },
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"
1353
+ "compile": {
1354
+ "description": "Run compile:all after restoring",
1355
+ "name": "compile",
1356
+ "allowNo": false,
1357
+ "type": "boolean"
1422
1358
  }
1423
1359
  },
1424
1360
  "hasDynamicHelp": false,
1425
1361
  "hiddenAliases": [],
1426
- "id": "billing:usage",
1362
+ "id": "catalog:restore",
1427
1363
  "pluginAlias": "faces-cli",
1428
1364
  "pluginName": "faces-cli",
1429
1365
  "pluginType": "core",
@@ -1433,8 +1369,8 @@
1433
1369
  "relativePath": [
1434
1370
  "dist",
1435
1371
  "commands",
1436
- "billing",
1437
- "usage.js"
1372
+ "catalog",
1373
+ "restore.js"
1438
1374
  ]
1439
1375
  },
1440
1376
  "chat:chat": {
@@ -3916,6 +3852,131 @@
3916
3852
  "update.js"
3917
3853
  ]
3918
3854
  },
3855
+ "billing:subscription:activate": {
3856
+ "aliases": [],
3857
+ "args": {},
3858
+ "description": "Activate or reactivate a subscription plan",
3859
+ "flags": {
3860
+ "json": {
3861
+ "description": "Format output as json.",
3862
+ "helpGroup": "GLOBAL",
3863
+ "name": "json",
3864
+ "allowNo": false,
3865
+ "type": "boolean"
3866
+ },
3867
+ "base-url": {
3868
+ "description": "API base URL",
3869
+ "env": "FACES_BASE_URL",
3870
+ "name": "base-url",
3871
+ "hasDynamicHelp": false,
3872
+ "multiple": false,
3873
+ "type": "option"
3874
+ },
3875
+ "token": {
3876
+ "description": "JWT bearer token",
3877
+ "env": "FACES_TOKEN",
3878
+ "name": "token",
3879
+ "hasDynamicHelp": false,
3880
+ "multiple": false,
3881
+ "type": "option"
3882
+ },
3883
+ "api-key": {
3884
+ "description": "API key",
3885
+ "env": "FACES_API_KEY",
3886
+ "name": "api-key",
3887
+ "hasDynamicHelp": false,
3888
+ "multiple": false,
3889
+ "type": "option"
3890
+ },
3891
+ "plan": {
3892
+ "description": "Plan to activate",
3893
+ "name": "plan",
3894
+ "default": "connect",
3895
+ "hasDynamicHelp": false,
3896
+ "multiple": false,
3897
+ "options": [
3898
+ "connect"
3899
+ ],
3900
+ "type": "option"
3901
+ }
3902
+ },
3903
+ "hasDynamicHelp": false,
3904
+ "hiddenAliases": [],
3905
+ "id": "billing:subscription:activate",
3906
+ "pluginAlias": "faces-cli",
3907
+ "pluginName": "faces-cli",
3908
+ "pluginType": "core",
3909
+ "strict": true,
3910
+ "enableJsonFlag": true,
3911
+ "isESM": true,
3912
+ "relativePath": [
3913
+ "dist",
3914
+ "commands",
3915
+ "billing",
3916
+ "subscription",
3917
+ "activate.js"
3918
+ ]
3919
+ },
3920
+ "billing:subscription:cancel": {
3921
+ "aliases": [],
3922
+ "args": {},
3923
+ "description": "Cancel your subscription (keeps access until period end)",
3924
+ "flags": {
3925
+ "json": {
3926
+ "description": "Format output as json.",
3927
+ "helpGroup": "GLOBAL",
3928
+ "name": "json",
3929
+ "allowNo": false,
3930
+ "type": "boolean"
3931
+ },
3932
+ "base-url": {
3933
+ "description": "API base URL",
3934
+ "env": "FACES_BASE_URL",
3935
+ "name": "base-url",
3936
+ "hasDynamicHelp": false,
3937
+ "multiple": false,
3938
+ "type": "option"
3939
+ },
3940
+ "token": {
3941
+ "description": "JWT bearer token",
3942
+ "env": "FACES_TOKEN",
3943
+ "name": "token",
3944
+ "hasDynamicHelp": false,
3945
+ "multiple": false,
3946
+ "type": "option"
3947
+ },
3948
+ "api-key": {
3949
+ "description": "API key",
3950
+ "env": "FACES_API_KEY",
3951
+ "name": "api-key",
3952
+ "hasDynamicHelp": false,
3953
+ "multiple": false,
3954
+ "type": "option"
3955
+ },
3956
+ "yes": {
3957
+ "description": "Skip confirmation",
3958
+ "name": "yes",
3959
+ "allowNo": false,
3960
+ "type": "boolean"
3961
+ }
3962
+ },
3963
+ "hasDynamicHelp": false,
3964
+ "hiddenAliases": [],
3965
+ "id": "billing:subscription:cancel",
3966
+ "pluginAlias": "faces-cli",
3967
+ "pluginName": "faces-cli",
3968
+ "pluginType": "core",
3969
+ "strict": true,
3970
+ "enableJsonFlag": true,
3971
+ "isESM": true,
3972
+ "relativePath": [
3973
+ "dist",
3974
+ "commands",
3975
+ "billing",
3976
+ "subscription",
3977
+ "cancel.js"
3978
+ ]
3979
+ },
3919
3980
  "compile:doc:create": {
3920
3981
  "aliases": [],
3921
3982
  "args": {
@@ -5833,5 +5894,5 @@
5833
5894
  ]
5834
5895
  }
5835
5896
  },
5836
- "version": "1.6.6"
5897
+ "version": "1.6.7"
5837
5898
  }