faces-cli 1.6.1 → 1.6.3

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 (58) hide show
  1. package/README.md +50 -17
  2. package/dist/catalog.d.ts +13 -1
  3. package/dist/catalog.js +78 -9
  4. package/dist/client.d.ts +4 -0
  5. package/dist/client.js +16 -0
  6. package/dist/commands/catalog/backup.js +64 -18
  7. package/dist/commands/catalog/doctor.js +72 -16
  8. package/dist/commands/catalog/restore.js +64 -11
  9. package/dist/commands/face/create.d.ts +1 -0
  10. package/dist/commands/face/create.js +27 -5
  11. package/dist/commands/face/get.d.ts +1 -0
  12. package/dist/commands/face/get.js +13 -9
  13. package/dist/commands/face/list.d.ts +3 -0
  14. package/dist/commands/face/list.js +21 -6
  15. package/dist/commands/face/tag/add.d.ts +14 -0
  16. package/dist/commands/face/tag/add.js +40 -0
  17. package/dist/commands/face/tag/all.d.ts +10 -0
  18. package/dist/commands/face/tag/all.js +31 -0
  19. package/dist/commands/face/tag/list.d.ts +13 -0
  20. package/dist/commands/face/tag/list.js +35 -0
  21. package/dist/commands/face/tag/remove.d.ts +14 -0
  22. package/dist/commands/face/tag/remove.js +40 -0
  23. package/dist/commands/face/tag/set.d.ts +14 -0
  24. package/dist/commands/face/tag/set.js +40 -0
  25. package/dist/commands/face/teams.d.ts +14 -0
  26. package/dist/commands/face/teams.js +29 -0
  27. package/dist/commands/face/update.d.ts +1 -0
  28. package/dist/commands/face/update.js +34 -11
  29. package/dist/commands/team/add.d.ts +14 -0
  30. package/dist/commands/team/add.js +68 -0
  31. package/dist/commands/team/create.d.ts +15 -0
  32. package/dist/commands/team/create.js +69 -0
  33. package/dist/commands/team/delete.d.ts +15 -0
  34. package/dist/commands/team/delete.js +44 -0
  35. package/dist/commands/team/get.d.ts +13 -0
  36. package/dist/commands/team/get.js +28 -0
  37. package/dist/commands/team/list.d.ts +10 -0
  38. package/dist/commands/team/list.js +40 -0
  39. package/dist/commands/team/members.d.ts +13 -0
  40. package/dist/commands/team/members.js +28 -0
  41. package/dist/commands/team/remove.d.ts +14 -0
  42. package/dist/commands/team/remove.js +56 -0
  43. package/dist/commands/team/tag/add.d.ts +14 -0
  44. package/dist/commands/team/tag/add.js +29 -0
  45. package/dist/commands/team/tag/list.d.ts +13 -0
  46. package/dist/commands/team/tag/list.js +35 -0
  47. package/dist/commands/team/tag/remove.d.ts +14 -0
  48. package/dist/commands/team/tag/remove.js +29 -0
  49. package/dist/commands/team/tag/set.d.ts +14 -0
  50. package/dist/commands/team/tag/set.js +29 -0
  51. package/dist/commands/team/update.d.ts +17 -0
  52. package/dist/commands/team/update.js +78 -0
  53. package/dist/team-catalog.d.ts +17 -0
  54. package/dist/team-catalog.js +104 -0
  55. package/dist/utils.d.ts +9 -2
  56. package/dist/utils.js +17 -2
  57. package/oclif.manifest.json +1537 -309
  58. package/package.json +1 -1
@@ -1125,7 +1125,7 @@
1125
1125
  "catalog:backup": {
1126
1126
  "aliases": [],
1127
1127
  "args": {},
1128
- "description": "Snapshot all faces and source material for migration",
1128
+ "description": "Snapshot all faces, teams, and source material for migration",
1129
1129
  "flags": {
1130
1130
  "json": {
1131
1131
  "description": "Format output as json.",
@@ -1178,7 +1178,7 @@
1178
1178
  "catalog:doctor": {
1179
1179
  "aliases": [],
1180
1180
  "args": {},
1181
- "description": "Diagnose and repair the local face catalog",
1181
+ "description": "Diagnose and repair the local face and team catalog",
1182
1182
  "flags": {
1183
1183
  "json": {
1184
1184
  "description": "Format output as json.",
@@ -1381,7 +1381,7 @@
1381
1381
  "name": "file"
1382
1382
  }
1383
1383
  },
1384
- "description": "Restore faces and source material from a backup snapshot",
1384
+ "description": "Restore faces, teams, and source material from a backup snapshot",
1385
1385
  "flags": {
1386
1386
  "json": {
1387
1387
  "description": "Format output as json.",
@@ -2291,12 +2291,19 @@
2291
2291
  "type": "option"
2292
2292
  },
2293
2293
  "description": {
2294
- "description": "Description for local catalog",
2294
+ "description": "Plain-text description / bio (max 1500 chars)",
2295
2295
  "name": "description",
2296
2296
  "hasDynamicHelp": false,
2297
2297
  "multiple": false,
2298
2298
  "type": "option"
2299
2299
  },
2300
+ "tag": {
2301
+ "description": "Tag label (repeatable, lowercase)",
2302
+ "name": "tag",
2303
+ "hasDynamicHelp": false,
2304
+ "multiple": true,
2305
+ "type": "option"
2306
+ },
2300
2307
  "default-model": {
2301
2308
  "description": "Default LLM for chat (e.g. gpt-4o-mini, claude-sonnet-4-6)",
2302
2309
  "name": "default-model",
@@ -2509,6 +2516,13 @@
2509
2516
  "hasDynamicHelp": false,
2510
2517
  "multiple": false,
2511
2518
  "type": "option"
2519
+ },
2520
+ "include": {
2521
+ "description": "Include extra fields: tags, teams (comma-separated)",
2522
+ "name": "include",
2523
+ "hasDynamicHelp": false,
2524
+ "multiple": false,
2525
+ "type": "option"
2512
2526
  }
2513
2527
  },
2514
2528
  "hasDynamicHelp": false,
@@ -2562,6 +2576,27 @@
2562
2576
  "hasDynamicHelp": false,
2563
2577
  "multiple": false,
2564
2578
  "type": "option"
2579
+ },
2580
+ "tag": {
2581
+ "description": "Filter by tag (repeatable, AND logic)",
2582
+ "name": "tag",
2583
+ "hasDynamicHelp": false,
2584
+ "multiple": true,
2585
+ "type": "option"
2586
+ },
2587
+ "team": {
2588
+ "description": "Filter by team ID (repeatable, OR logic)",
2589
+ "name": "team",
2590
+ "hasDynamicHelp": false,
2591
+ "multiple": true,
2592
+ "type": "option"
2593
+ },
2594
+ "include": {
2595
+ "description": "Include extra fields: tags, teams (comma-separated)",
2596
+ "name": "include",
2597
+ "hasDynamicHelp": false,
2598
+ "multiple": false,
2599
+ "type": "option"
2565
2600
  }
2566
2601
  },
2567
2602
  "hasDynamicHelp": false,
@@ -2726,6 +2761,73 @@
2726
2761
  "stats.js"
2727
2762
  ]
2728
2763
  },
2764
+ "face:teams": {
2765
+ "aliases": [],
2766
+ "args": {
2767
+ "alias": {
2768
+ "description": "Face alias",
2769
+ "name": "alias",
2770
+ "required": true
2771
+ }
2772
+ },
2773
+ "description": "Set a face's team memberships (replaces all)",
2774
+ "flags": {
2775
+ "json": {
2776
+ "description": "Format output as json.",
2777
+ "helpGroup": "GLOBAL",
2778
+ "name": "json",
2779
+ "allowNo": false,
2780
+ "type": "boolean"
2781
+ },
2782
+ "base-url": {
2783
+ "description": "API base URL",
2784
+ "env": "FACES_BASE_URL",
2785
+ "name": "base-url",
2786
+ "hasDynamicHelp": false,
2787
+ "multiple": false,
2788
+ "type": "option"
2789
+ },
2790
+ "token": {
2791
+ "description": "JWT bearer token",
2792
+ "env": "FACES_TOKEN",
2793
+ "name": "token",
2794
+ "hasDynamicHelp": false,
2795
+ "multiple": false,
2796
+ "type": "option"
2797
+ },
2798
+ "api-key": {
2799
+ "description": "API key",
2800
+ "env": "FACES_API_KEY",
2801
+ "name": "api-key",
2802
+ "hasDynamicHelp": false,
2803
+ "multiple": false,
2804
+ "type": "option"
2805
+ },
2806
+ "team": {
2807
+ "description": "Team ID (repeatable, replaces all memberships)",
2808
+ "name": "team",
2809
+ "required": true,
2810
+ "hasDynamicHelp": false,
2811
+ "multiple": true,
2812
+ "type": "option"
2813
+ }
2814
+ },
2815
+ "hasDynamicHelp": false,
2816
+ "hiddenAliases": [],
2817
+ "id": "face:teams",
2818
+ "pluginAlias": "faces-cli",
2819
+ "pluginName": "faces-cli",
2820
+ "pluginType": "core",
2821
+ "strict": true,
2822
+ "enableJsonFlag": true,
2823
+ "isESM": true,
2824
+ "relativePath": [
2825
+ "dist",
2826
+ "commands",
2827
+ "face",
2828
+ "teams.js"
2829
+ ]
2830
+ },
2729
2831
  "face:update": {
2730
2832
  "aliases": [],
2731
2833
  "args": {
@@ -2776,12 +2878,19 @@
2776
2878
  "type": "option"
2777
2879
  },
2778
2880
  "description": {
2779
- "description": "Description for local catalog",
2881
+ "description": "Plain-text description / bio (max 1500 chars)",
2780
2882
  "name": "description",
2781
2883
  "hasDynamicHelp": false,
2782
2884
  "multiple": false,
2783
2885
  "type": "option"
2784
2886
  },
2887
+ "tag": {
2888
+ "description": "Replace all tags (repeatable, lowercase)",
2889
+ "name": "tag",
2890
+ "hasDynamicHelp": false,
2891
+ "multiple": true,
2892
+ "type": "option"
2893
+ },
2785
2894
  "default-model": {
2786
2895
  "description": "Default LLM for chat (e.g. gpt-4o-mini, claude-sonnet-4-6)",
2787
2896
  "name": "default-model",
@@ -3211,16 +3320,16 @@
3211
3320
  "update.js"
3212
3321
  ]
3213
3322
  },
3214
- "compile:doc:create": {
3323
+ "team:add": {
3215
3324
  "aliases": [],
3216
3325
  "args": {
3217
- "face_id": {
3218
- "description": "Face alias",
3219
- "name": "face_id",
3326
+ "team_id": {
3327
+ "description": "Team ID",
3328
+ "name": "team_id",
3220
3329
  "required": true
3221
3330
  }
3222
3331
  },
3223
- "description": "Submit a document to a face",
3332
+ "description": "Add face(s) to a team",
3224
3333
  "flags": {
3225
3334
  "json": {
3226
3335
  "description": "Format output as json.",
@@ -3253,43 +3362,107 @@
3253
3362
  "multiple": false,
3254
3363
  "type": "option"
3255
3364
  },
3256
- "label": {
3257
- "description": "Document label/title",
3258
- "name": "label",
3365
+ "face": {
3366
+ "description": "Face alias to add (repeatable)",
3367
+ "name": "face",
3368
+ "required": true,
3369
+ "hasDynamicHelp": false,
3370
+ "multiple": true,
3371
+ "type": "option"
3372
+ }
3373
+ },
3374
+ "hasDynamicHelp": false,
3375
+ "hiddenAliases": [],
3376
+ "id": "team:add",
3377
+ "pluginAlias": "faces-cli",
3378
+ "pluginName": "faces-cli",
3379
+ "pluginType": "core",
3380
+ "strict": true,
3381
+ "enableJsonFlag": true,
3382
+ "isESM": true,
3383
+ "relativePath": [
3384
+ "dist",
3385
+ "commands",
3386
+ "team",
3387
+ "add.js"
3388
+ ]
3389
+ },
3390
+ "team:create": {
3391
+ "aliases": [],
3392
+ "args": {},
3393
+ "description": "Create a new team",
3394
+ "flags": {
3395
+ "json": {
3396
+ "description": "Format output as json.",
3397
+ "helpGroup": "GLOBAL",
3398
+ "name": "json",
3399
+ "allowNo": false,
3400
+ "type": "boolean"
3401
+ },
3402
+ "base-url": {
3403
+ "description": "API base URL",
3404
+ "env": "FACES_BASE_URL",
3405
+ "name": "base-url",
3259
3406
  "hasDynamicHelp": false,
3260
3407
  "multiple": false,
3261
3408
  "type": "option"
3262
3409
  },
3263
- "content": {
3264
- "description": "Inline text content",
3265
- "name": "content",
3410
+ "token": {
3411
+ "description": "JWT bearer token",
3412
+ "env": "FACES_TOKEN",
3413
+ "name": "token",
3266
3414
  "hasDynamicHelp": false,
3267
3415
  "multiple": false,
3268
3416
  "type": "option"
3269
3417
  },
3270
- "file": {
3271
- "description": "Read content from file",
3272
- "name": "file",
3418
+ "api-key": {
3419
+ "description": "API key",
3420
+ "env": "FACES_API_KEY",
3421
+ "name": "api-key",
3273
3422
  "hasDynamicHelp": false,
3274
3423
  "multiple": false,
3275
3424
  "type": "option"
3276
3425
  },
3277
- "perspective": {
3278
- "description": "Perspective (first-person or third-person)",
3279
- "name": "perspective",
3280
- "default": "first-person",
3426
+ "name": {
3427
+ "description": "Team name",
3428
+ "name": "name",
3429
+ "required": true,
3281
3430
  "hasDynamicHelp": false,
3282
3431
  "multiple": false,
3283
- "options": [
3284
- "first-person",
3285
- "third-person"
3286
- ],
3432
+ "type": "option"
3433
+ },
3434
+ "description": {
3435
+ "description": "Plain-text team description (max 1500 chars)",
3436
+ "name": "description",
3437
+ "hasDynamicHelp": false,
3438
+ "multiple": false,
3439
+ "type": "option"
3440
+ },
3441
+ "protocol": {
3442
+ "description": "Protocol content (mermaid diagram or markdown, max 1000 words)",
3443
+ "name": "protocol",
3444
+ "hasDynamicHelp": false,
3445
+ "multiple": false,
3446
+ "type": "option"
3447
+ },
3448
+ "protocol-file": {
3449
+ "description": "Read protocol from file",
3450
+ "name": "protocol-file",
3451
+ "hasDynamicHelp": false,
3452
+ "multiple": false,
3453
+ "type": "option"
3454
+ },
3455
+ "tag": {
3456
+ "description": "Tag label (repeatable, lowercase)",
3457
+ "name": "tag",
3458
+ "hasDynamicHelp": false,
3459
+ "multiple": true,
3287
3460
  "type": "option"
3288
3461
  }
3289
3462
  },
3290
3463
  "hasDynamicHelp": false,
3291
3464
  "hiddenAliases": [],
3292
- "id": "compile:doc:create",
3465
+ "id": "team:create",
3293
3466
  "pluginAlias": "faces-cli",
3294
3467
  "pluginName": "faces-cli",
3295
3468
  "pluginType": "core",
@@ -3299,21 +3472,20 @@
3299
3472
  "relativePath": [
3300
3473
  "dist",
3301
3474
  "commands",
3302
- "compile",
3303
- "doc",
3475
+ "team",
3304
3476
  "create.js"
3305
3477
  ]
3306
3478
  },
3307
- "compile:doc:delete": {
3479
+ "team:delete": {
3308
3480
  "aliases": [],
3309
3481
  "args": {
3310
- "doc_id": {
3311
- "description": "Document ID",
3312
- "name": "doc_id",
3482
+ "team_id": {
3483
+ "description": "Team ID",
3484
+ "name": "team_id",
3313
3485
  "required": true
3314
3486
  }
3315
3487
  },
3316
- "description": "Delete a document",
3488
+ "description": "Delete a team",
3317
3489
  "flags": {
3318
3490
  "json": {
3319
3491
  "description": "Format output as json.",
@@ -3345,11 +3517,17 @@
3345
3517
  "hasDynamicHelp": false,
3346
3518
  "multiple": false,
3347
3519
  "type": "option"
3520
+ },
3521
+ "yes": {
3522
+ "description": "Skip confirmation",
3523
+ "name": "yes",
3524
+ "allowNo": false,
3525
+ "type": "boolean"
3348
3526
  }
3349
3527
  },
3350
3528
  "hasDynamicHelp": false,
3351
3529
  "hiddenAliases": [],
3352
- "id": "compile:doc:delete",
3530
+ "id": "team:delete",
3353
3531
  "pluginAlias": "faces-cli",
3354
3532
  "pluginName": "faces-cli",
3355
3533
  "pluginType": "core",
@@ -3359,21 +3537,20 @@
3359
3537
  "relativePath": [
3360
3538
  "dist",
3361
3539
  "commands",
3362
- "compile",
3363
- "doc",
3540
+ "team",
3364
3541
  "delete.js"
3365
3542
  ]
3366
3543
  },
3367
- "compile:doc:edit": {
3544
+ "team:get": {
3368
3545
  "aliases": [],
3369
3546
  "args": {
3370
- "doc_id": {
3371
- "description": "Document ID",
3372
- "name": "doc_id",
3547
+ "team_id": {
3548
+ "description": "Team ID",
3549
+ "name": "team_id",
3373
3550
  "required": true
3374
3551
  }
3375
3552
  },
3376
- "description": "Edit a document (label, content, or perspective)",
3553
+ "description": "Get a team by ID",
3377
3554
  "flags": {
3378
3555
  "json": {
3379
3556
  "description": "Format output as json.",
@@ -3405,43 +3582,11 @@
3405
3582
  "hasDynamicHelp": false,
3406
3583
  "multiple": false,
3407
3584
  "type": "option"
3408
- },
3409
- "label": {
3410
- "description": "New label/title",
3411
- "name": "label",
3412
- "hasDynamicHelp": false,
3413
- "multiple": false,
3414
- "type": "option"
3415
- },
3416
- "content": {
3417
- "description": "New inline text content",
3418
- "name": "content",
3419
- "hasDynamicHelp": false,
3420
- "multiple": false,
3421
- "type": "option"
3422
- },
3423
- "file": {
3424
- "description": "Read new content from file",
3425
- "name": "file",
3426
- "hasDynamicHelp": false,
3427
- "multiple": false,
3428
- "type": "option"
3429
- },
3430
- "perspective": {
3431
- "description": "Perspective (first-person or third-person)",
3432
- "name": "perspective",
3433
- "hasDynamicHelp": false,
3434
- "multiple": false,
3435
- "options": [
3436
- "first-person",
3437
- "third-person"
3438
- ],
3439
- "type": "option"
3440
3585
  }
3441
3586
  },
3442
3587
  "hasDynamicHelp": false,
3443
3588
  "hiddenAliases": [],
3444
- "id": "compile:doc:edit",
3589
+ "id": "team:get",
3445
3590
  "pluginAlias": "faces-cli",
3446
3591
  "pluginName": "faces-cli",
3447
3592
  "pluginType": "core",
@@ -3451,21 +3596,14 @@
3451
3596
  "relativePath": [
3452
3597
  "dist",
3453
3598
  "commands",
3454
- "compile",
3455
- "doc",
3456
- "edit.js"
3599
+ "team",
3600
+ "get.js"
3457
3601
  ]
3458
3602
  },
3459
- "compile:doc:get": {
3603
+ "team:list": {
3460
3604
  "aliases": [],
3461
- "args": {
3462
- "doc_id": {
3463
- "description": "Document ID",
3464
- "name": "doc_id",
3465
- "required": true
3466
- }
3467
- },
3468
- "description": "Get a document by ID",
3605
+ "args": {},
3606
+ "description": "List your teams",
3469
3607
  "flags": {
3470
3608
  "json": {
3471
3609
  "description": "Format output as json.",
@@ -3501,7 +3639,7 @@
3501
3639
  },
3502
3640
  "hasDynamicHelp": false,
3503
3641
  "hiddenAliases": [],
3504
- "id": "compile:doc:get",
3642
+ "id": "team:list",
3505
3643
  "pluginAlias": "faces-cli",
3506
3644
  "pluginName": "faces-cli",
3507
3645
  "pluginType": "core",
@@ -3511,21 +3649,20 @@
3511
3649
  "relativePath": [
3512
3650
  "dist",
3513
3651
  "commands",
3514
- "compile",
3515
- "doc",
3516
- "get.js"
3652
+ "team",
3653
+ "list.js"
3517
3654
  ]
3518
3655
  },
3519
- "compile:doc": {
3656
+ "team:members": {
3520
3657
  "aliases": [],
3521
3658
  "args": {
3522
- "face_id": {
3523
- "description": "Face alias",
3524
- "name": "face_id",
3659
+ "team_id": {
3660
+ "description": "Team ID",
3661
+ "name": "team_id",
3525
3662
  "required": true
3526
3663
  }
3527
3664
  },
3528
- "description": "Compile a document into a face (create → make in one step)",
3665
+ "description": "List members of a team",
3529
3666
  "flags": {
3530
3667
  "json": {
3531
3668
  "description": "Format output as json.",
@@ -3557,13 +3694,223 @@
3557
3694
  "hasDynamicHelp": false,
3558
3695
  "multiple": false,
3559
3696
  "type": "option"
3560
- },
3561
- "label": {
3562
- "description": "Document label/title",
3563
- "name": "label",
3564
- "hasDynamicHelp": false,
3565
- "multiple": false,
3566
- "type": "option"
3697
+ }
3698
+ },
3699
+ "hasDynamicHelp": false,
3700
+ "hiddenAliases": [],
3701
+ "id": "team:members",
3702
+ "pluginAlias": "faces-cli",
3703
+ "pluginName": "faces-cli",
3704
+ "pluginType": "core",
3705
+ "strict": true,
3706
+ "enableJsonFlag": true,
3707
+ "isESM": true,
3708
+ "relativePath": [
3709
+ "dist",
3710
+ "commands",
3711
+ "team",
3712
+ "members.js"
3713
+ ]
3714
+ },
3715
+ "team:remove": {
3716
+ "aliases": [],
3717
+ "args": {
3718
+ "team_id": {
3719
+ "description": "Team ID",
3720
+ "name": "team_id",
3721
+ "required": true
3722
+ },
3723
+ "alias": {
3724
+ "description": "Face alias to remove",
3725
+ "name": "alias",
3726
+ "required": true
3727
+ }
3728
+ },
3729
+ "description": "Remove a face from a team",
3730
+ "flags": {
3731
+ "json": {
3732
+ "description": "Format output as json.",
3733
+ "helpGroup": "GLOBAL",
3734
+ "name": "json",
3735
+ "allowNo": false,
3736
+ "type": "boolean"
3737
+ },
3738
+ "base-url": {
3739
+ "description": "API base URL",
3740
+ "env": "FACES_BASE_URL",
3741
+ "name": "base-url",
3742
+ "hasDynamicHelp": false,
3743
+ "multiple": false,
3744
+ "type": "option"
3745
+ },
3746
+ "token": {
3747
+ "description": "JWT bearer token",
3748
+ "env": "FACES_TOKEN",
3749
+ "name": "token",
3750
+ "hasDynamicHelp": false,
3751
+ "multiple": false,
3752
+ "type": "option"
3753
+ },
3754
+ "api-key": {
3755
+ "description": "API key",
3756
+ "env": "FACES_API_KEY",
3757
+ "name": "api-key",
3758
+ "hasDynamicHelp": false,
3759
+ "multiple": false,
3760
+ "type": "option"
3761
+ }
3762
+ },
3763
+ "hasDynamicHelp": false,
3764
+ "hiddenAliases": [],
3765
+ "id": "team:remove",
3766
+ "pluginAlias": "faces-cli",
3767
+ "pluginName": "faces-cli",
3768
+ "pluginType": "core",
3769
+ "strict": true,
3770
+ "enableJsonFlag": true,
3771
+ "isESM": true,
3772
+ "relativePath": [
3773
+ "dist",
3774
+ "commands",
3775
+ "team",
3776
+ "remove.js"
3777
+ ]
3778
+ },
3779
+ "team:update": {
3780
+ "aliases": [],
3781
+ "args": {
3782
+ "team_id": {
3783
+ "description": "Team ID",
3784
+ "name": "team_id",
3785
+ "required": true
3786
+ }
3787
+ },
3788
+ "description": "Update a team",
3789
+ "flags": {
3790
+ "json": {
3791
+ "description": "Format output as json.",
3792
+ "helpGroup": "GLOBAL",
3793
+ "name": "json",
3794
+ "allowNo": false,
3795
+ "type": "boolean"
3796
+ },
3797
+ "base-url": {
3798
+ "description": "API base URL",
3799
+ "env": "FACES_BASE_URL",
3800
+ "name": "base-url",
3801
+ "hasDynamicHelp": false,
3802
+ "multiple": false,
3803
+ "type": "option"
3804
+ },
3805
+ "token": {
3806
+ "description": "JWT bearer token",
3807
+ "env": "FACES_TOKEN",
3808
+ "name": "token",
3809
+ "hasDynamicHelp": false,
3810
+ "multiple": false,
3811
+ "type": "option"
3812
+ },
3813
+ "api-key": {
3814
+ "description": "API key",
3815
+ "env": "FACES_API_KEY",
3816
+ "name": "api-key",
3817
+ "hasDynamicHelp": false,
3818
+ "multiple": false,
3819
+ "type": "option"
3820
+ },
3821
+ "name": {
3822
+ "description": "New team name",
3823
+ "name": "name",
3824
+ "hasDynamicHelp": false,
3825
+ "multiple": false,
3826
+ "type": "option"
3827
+ },
3828
+ "description": {
3829
+ "description": "New description (max 1500 chars)",
3830
+ "name": "description",
3831
+ "hasDynamicHelp": false,
3832
+ "multiple": false,
3833
+ "type": "option"
3834
+ },
3835
+ "protocol": {
3836
+ "description": "New protocol content",
3837
+ "name": "protocol",
3838
+ "hasDynamicHelp": false,
3839
+ "multiple": false,
3840
+ "type": "option"
3841
+ },
3842
+ "protocol-file": {
3843
+ "description": "Read protocol from file",
3844
+ "name": "protocol-file",
3845
+ "hasDynamicHelp": false,
3846
+ "multiple": false,
3847
+ "type": "option"
3848
+ }
3849
+ },
3850
+ "hasDynamicHelp": false,
3851
+ "hiddenAliases": [],
3852
+ "id": "team:update",
3853
+ "pluginAlias": "faces-cli",
3854
+ "pluginName": "faces-cli",
3855
+ "pluginType": "core",
3856
+ "strict": true,
3857
+ "enableJsonFlag": true,
3858
+ "isESM": true,
3859
+ "relativePath": [
3860
+ "dist",
3861
+ "commands",
3862
+ "team",
3863
+ "update.js"
3864
+ ]
3865
+ },
3866
+ "compile:doc:create": {
3867
+ "aliases": [],
3868
+ "args": {
3869
+ "face_id": {
3870
+ "description": "Face alias",
3871
+ "name": "face_id",
3872
+ "required": true
3873
+ }
3874
+ },
3875
+ "description": "Submit a document to a face",
3876
+ "flags": {
3877
+ "json": {
3878
+ "description": "Format output as json.",
3879
+ "helpGroup": "GLOBAL",
3880
+ "name": "json",
3881
+ "allowNo": false,
3882
+ "type": "boolean"
3883
+ },
3884
+ "base-url": {
3885
+ "description": "API base URL",
3886
+ "env": "FACES_BASE_URL",
3887
+ "name": "base-url",
3888
+ "hasDynamicHelp": false,
3889
+ "multiple": false,
3890
+ "type": "option"
3891
+ },
3892
+ "token": {
3893
+ "description": "JWT bearer token",
3894
+ "env": "FACES_TOKEN",
3895
+ "name": "token",
3896
+ "hasDynamicHelp": false,
3897
+ "multiple": false,
3898
+ "type": "option"
3899
+ },
3900
+ "api-key": {
3901
+ "description": "API key",
3902
+ "env": "FACES_API_KEY",
3903
+ "name": "api-key",
3904
+ "hasDynamicHelp": false,
3905
+ "multiple": false,
3906
+ "type": "option"
3907
+ },
3908
+ "label": {
3909
+ "description": "Document label/title",
3910
+ "name": "label",
3911
+ "hasDynamicHelp": false,
3912
+ "multiple": false,
3913
+ "type": "option"
3567
3914
  },
3568
3915
  "content": {
3569
3916
  "description": "Inline text content",
@@ -3580,7 +3927,7 @@
3580
3927
  "type": "option"
3581
3928
  },
3582
3929
  "perspective": {
3583
- "description": "Perspective",
3930
+ "description": "Perspective (first-person or third-person)",
3584
3931
  "name": "perspective",
3585
3932
  "default": "first-person",
3586
3933
  "hasDynamicHelp": false,
@@ -3590,25 +3937,11 @@
3590
3937
  "third-person"
3591
3938
  ],
3592
3939
  "type": "option"
3593
- },
3594
- "timeout": {
3595
- "description": "Compile timeout in seconds (default: 600)",
3596
- "name": "timeout",
3597
- "default": 600,
3598
- "hasDynamicHelp": false,
3599
- "multiple": false,
3600
- "type": "option"
3601
- },
3602
- "no-wait": {
3603
- "description": "Create and trigger compilation, then return immediately without polling.",
3604
- "name": "no-wait",
3605
- "allowNo": false,
3606
- "type": "boolean"
3607
3940
  }
3608
3941
  },
3609
3942
  "hasDynamicHelp": false,
3610
3943
  "hiddenAliases": [],
3611
- "id": "compile:doc",
3944
+ "id": "compile:doc:create",
3612
3945
  "pluginAlias": "faces-cli",
3613
3946
  "pluginName": "faces-cli",
3614
3947
  "pluginType": "core",
@@ -3620,19 +3953,19 @@
3620
3953
  "commands",
3621
3954
  "compile",
3622
3955
  "doc",
3623
- "index.js"
3956
+ "create.js"
3624
3957
  ]
3625
3958
  },
3626
- "compile:doc:list": {
3959
+ "compile:doc:delete": {
3627
3960
  "aliases": [],
3628
3961
  "args": {
3629
- "face_id": {
3630
- "description": "Face alias",
3631
- "name": "face_id",
3962
+ "doc_id": {
3963
+ "description": "Document ID",
3964
+ "name": "doc_id",
3632
3965
  "required": true
3633
3966
  }
3634
3967
  },
3635
- "description": "List documents for a face",
3968
+ "description": "Delete a document",
3636
3969
  "flags": {
3637
3970
  "json": {
3638
3971
  "description": "Format output as json.",
@@ -3668,7 +4001,7 @@
3668
4001
  },
3669
4002
  "hasDynamicHelp": false,
3670
4003
  "hiddenAliases": [],
3671
- "id": "compile:doc:list",
4004
+ "id": "compile:doc:delete",
3672
4005
  "pluginAlias": "faces-cli",
3673
4006
  "pluginName": "faces-cli",
3674
4007
  "pluginType": "core",
@@ -3680,19 +4013,945 @@
3680
4013
  "commands",
3681
4014
  "compile",
3682
4015
  "doc",
3683
- "list.js"
4016
+ "delete.js"
4017
+ ]
4018
+ },
4019
+ "compile:doc:edit": {
4020
+ "aliases": [],
4021
+ "args": {
4022
+ "doc_id": {
4023
+ "description": "Document ID",
4024
+ "name": "doc_id",
4025
+ "required": true
4026
+ }
4027
+ },
4028
+ "description": "Edit a document (label, content, or perspective)",
4029
+ "flags": {
4030
+ "json": {
4031
+ "description": "Format output as json.",
4032
+ "helpGroup": "GLOBAL",
4033
+ "name": "json",
4034
+ "allowNo": false,
4035
+ "type": "boolean"
4036
+ },
4037
+ "base-url": {
4038
+ "description": "API base URL",
4039
+ "env": "FACES_BASE_URL",
4040
+ "name": "base-url",
4041
+ "hasDynamicHelp": false,
4042
+ "multiple": false,
4043
+ "type": "option"
4044
+ },
4045
+ "token": {
4046
+ "description": "JWT bearer token",
4047
+ "env": "FACES_TOKEN",
4048
+ "name": "token",
4049
+ "hasDynamicHelp": false,
4050
+ "multiple": false,
4051
+ "type": "option"
4052
+ },
4053
+ "api-key": {
4054
+ "description": "API key",
4055
+ "env": "FACES_API_KEY",
4056
+ "name": "api-key",
4057
+ "hasDynamicHelp": false,
4058
+ "multiple": false,
4059
+ "type": "option"
4060
+ },
4061
+ "label": {
4062
+ "description": "New label/title",
4063
+ "name": "label",
4064
+ "hasDynamicHelp": false,
4065
+ "multiple": false,
4066
+ "type": "option"
4067
+ },
4068
+ "content": {
4069
+ "description": "New inline text content",
4070
+ "name": "content",
4071
+ "hasDynamicHelp": false,
4072
+ "multiple": false,
4073
+ "type": "option"
4074
+ },
4075
+ "file": {
4076
+ "description": "Read new content from file",
4077
+ "name": "file",
4078
+ "hasDynamicHelp": false,
4079
+ "multiple": false,
4080
+ "type": "option"
4081
+ },
4082
+ "perspective": {
4083
+ "description": "Perspective (first-person or third-person)",
4084
+ "name": "perspective",
4085
+ "hasDynamicHelp": false,
4086
+ "multiple": false,
4087
+ "options": [
4088
+ "first-person",
4089
+ "third-person"
4090
+ ],
4091
+ "type": "option"
4092
+ }
4093
+ },
4094
+ "hasDynamicHelp": false,
4095
+ "hiddenAliases": [],
4096
+ "id": "compile:doc:edit",
4097
+ "pluginAlias": "faces-cli",
4098
+ "pluginName": "faces-cli",
4099
+ "pluginType": "core",
4100
+ "strict": true,
4101
+ "enableJsonFlag": true,
4102
+ "isESM": true,
4103
+ "relativePath": [
4104
+ "dist",
4105
+ "commands",
4106
+ "compile",
4107
+ "doc",
4108
+ "edit.js"
4109
+ ]
4110
+ },
4111
+ "compile:doc:get": {
4112
+ "aliases": [],
4113
+ "args": {
4114
+ "doc_id": {
4115
+ "description": "Document ID",
4116
+ "name": "doc_id",
4117
+ "required": true
4118
+ }
4119
+ },
4120
+ "description": "Get a document by ID",
4121
+ "flags": {
4122
+ "json": {
4123
+ "description": "Format output as json.",
4124
+ "helpGroup": "GLOBAL",
4125
+ "name": "json",
4126
+ "allowNo": false,
4127
+ "type": "boolean"
4128
+ },
4129
+ "base-url": {
4130
+ "description": "API base URL",
4131
+ "env": "FACES_BASE_URL",
4132
+ "name": "base-url",
4133
+ "hasDynamicHelp": false,
4134
+ "multiple": false,
4135
+ "type": "option"
4136
+ },
4137
+ "token": {
4138
+ "description": "JWT bearer token",
4139
+ "env": "FACES_TOKEN",
4140
+ "name": "token",
4141
+ "hasDynamicHelp": false,
4142
+ "multiple": false,
4143
+ "type": "option"
4144
+ },
4145
+ "api-key": {
4146
+ "description": "API key",
4147
+ "env": "FACES_API_KEY",
4148
+ "name": "api-key",
4149
+ "hasDynamicHelp": false,
4150
+ "multiple": false,
4151
+ "type": "option"
4152
+ }
4153
+ },
4154
+ "hasDynamicHelp": false,
4155
+ "hiddenAliases": [],
4156
+ "id": "compile:doc:get",
4157
+ "pluginAlias": "faces-cli",
4158
+ "pluginName": "faces-cli",
4159
+ "pluginType": "core",
4160
+ "strict": true,
4161
+ "enableJsonFlag": true,
4162
+ "isESM": true,
4163
+ "relativePath": [
4164
+ "dist",
4165
+ "commands",
4166
+ "compile",
4167
+ "doc",
4168
+ "get.js"
4169
+ ]
4170
+ },
4171
+ "compile:doc": {
4172
+ "aliases": [],
4173
+ "args": {
4174
+ "face_id": {
4175
+ "description": "Face alias",
4176
+ "name": "face_id",
4177
+ "required": true
4178
+ }
4179
+ },
4180
+ "description": "Compile a document into a face (create → make in one step)",
4181
+ "flags": {
4182
+ "json": {
4183
+ "description": "Format output as json.",
4184
+ "helpGroup": "GLOBAL",
4185
+ "name": "json",
4186
+ "allowNo": false,
4187
+ "type": "boolean"
4188
+ },
4189
+ "base-url": {
4190
+ "description": "API base URL",
4191
+ "env": "FACES_BASE_URL",
4192
+ "name": "base-url",
4193
+ "hasDynamicHelp": false,
4194
+ "multiple": false,
4195
+ "type": "option"
4196
+ },
4197
+ "token": {
4198
+ "description": "JWT bearer token",
4199
+ "env": "FACES_TOKEN",
4200
+ "name": "token",
4201
+ "hasDynamicHelp": false,
4202
+ "multiple": false,
4203
+ "type": "option"
4204
+ },
4205
+ "api-key": {
4206
+ "description": "API key",
4207
+ "env": "FACES_API_KEY",
4208
+ "name": "api-key",
4209
+ "hasDynamicHelp": false,
4210
+ "multiple": false,
4211
+ "type": "option"
4212
+ },
4213
+ "label": {
4214
+ "description": "Document label/title",
4215
+ "name": "label",
4216
+ "hasDynamicHelp": false,
4217
+ "multiple": false,
4218
+ "type": "option"
4219
+ },
4220
+ "content": {
4221
+ "description": "Inline text content",
4222
+ "name": "content",
4223
+ "hasDynamicHelp": false,
4224
+ "multiple": false,
4225
+ "type": "option"
4226
+ },
4227
+ "file": {
4228
+ "description": "Read content from file",
4229
+ "name": "file",
4230
+ "hasDynamicHelp": false,
4231
+ "multiple": false,
4232
+ "type": "option"
4233
+ },
4234
+ "perspective": {
4235
+ "description": "Perspective",
4236
+ "name": "perspective",
4237
+ "default": "first-person",
4238
+ "hasDynamicHelp": false,
4239
+ "multiple": false,
4240
+ "options": [
4241
+ "first-person",
4242
+ "third-person"
4243
+ ],
4244
+ "type": "option"
4245
+ },
4246
+ "timeout": {
4247
+ "description": "Compile timeout in seconds (default: 600)",
4248
+ "name": "timeout",
4249
+ "default": 600,
4250
+ "hasDynamicHelp": false,
4251
+ "multiple": false,
4252
+ "type": "option"
4253
+ },
4254
+ "no-wait": {
4255
+ "description": "Create and trigger compilation, then return immediately without polling.",
4256
+ "name": "no-wait",
4257
+ "allowNo": false,
4258
+ "type": "boolean"
4259
+ }
4260
+ },
4261
+ "hasDynamicHelp": false,
4262
+ "hiddenAliases": [],
4263
+ "id": "compile:doc",
4264
+ "pluginAlias": "faces-cli",
4265
+ "pluginName": "faces-cli",
4266
+ "pluginType": "core",
4267
+ "strict": true,
4268
+ "enableJsonFlag": true,
4269
+ "isESM": true,
4270
+ "relativePath": [
4271
+ "dist",
4272
+ "commands",
4273
+ "compile",
4274
+ "doc",
4275
+ "index.js"
4276
+ ]
4277
+ },
4278
+ "compile:doc:list": {
4279
+ "aliases": [],
4280
+ "args": {
4281
+ "face_id": {
4282
+ "description": "Face alias",
4283
+ "name": "face_id",
4284
+ "required": true
4285
+ }
4286
+ },
4287
+ "description": "List documents for a face",
4288
+ "flags": {
4289
+ "json": {
4290
+ "description": "Format output as json.",
4291
+ "helpGroup": "GLOBAL",
4292
+ "name": "json",
4293
+ "allowNo": false,
4294
+ "type": "boolean"
4295
+ },
4296
+ "base-url": {
4297
+ "description": "API base URL",
4298
+ "env": "FACES_BASE_URL",
4299
+ "name": "base-url",
4300
+ "hasDynamicHelp": false,
4301
+ "multiple": false,
4302
+ "type": "option"
4303
+ },
4304
+ "token": {
4305
+ "description": "JWT bearer token",
4306
+ "env": "FACES_TOKEN",
4307
+ "name": "token",
4308
+ "hasDynamicHelp": false,
4309
+ "multiple": false,
4310
+ "type": "option"
4311
+ },
4312
+ "api-key": {
4313
+ "description": "API key",
4314
+ "env": "FACES_API_KEY",
4315
+ "name": "api-key",
4316
+ "hasDynamicHelp": false,
4317
+ "multiple": false,
4318
+ "type": "option"
4319
+ }
4320
+ },
4321
+ "hasDynamicHelp": false,
4322
+ "hiddenAliases": [],
4323
+ "id": "compile:doc:list",
4324
+ "pluginAlias": "faces-cli",
4325
+ "pluginName": "faces-cli",
4326
+ "pluginType": "core",
4327
+ "strict": true,
4328
+ "enableJsonFlag": true,
4329
+ "isESM": true,
4330
+ "relativePath": [
4331
+ "dist",
4332
+ "commands",
4333
+ "compile",
4334
+ "doc",
4335
+ "list.js"
4336
+ ]
4337
+ },
4338
+ "compile:doc:make": {
4339
+ "aliases": [],
4340
+ "args": {
4341
+ "doc_id": {
4342
+ "description": "Document ID",
4343
+ "name": "doc_id",
4344
+ "required": true
4345
+ }
4346
+ },
4347
+ "description": "Compile an existing document (prepare + sync in one step)",
4348
+ "flags": {
4349
+ "json": {
4350
+ "description": "Format output as json.",
4351
+ "helpGroup": "GLOBAL",
4352
+ "name": "json",
4353
+ "allowNo": false,
4354
+ "type": "boolean"
4355
+ },
4356
+ "base-url": {
4357
+ "description": "API base URL",
4358
+ "env": "FACES_BASE_URL",
4359
+ "name": "base-url",
4360
+ "hasDynamicHelp": false,
4361
+ "multiple": false,
4362
+ "type": "option"
4363
+ },
4364
+ "token": {
4365
+ "description": "JWT bearer token",
4366
+ "env": "FACES_TOKEN",
4367
+ "name": "token",
4368
+ "hasDynamicHelp": false,
4369
+ "multiple": false,
4370
+ "type": "option"
4371
+ },
4372
+ "api-key": {
4373
+ "description": "API key",
4374
+ "env": "FACES_API_KEY",
4375
+ "name": "api-key",
4376
+ "hasDynamicHelp": false,
4377
+ "multiple": false,
4378
+ "type": "option"
4379
+ },
4380
+ "timeout": {
4381
+ "description": "Compile timeout in seconds (default: 600)",
4382
+ "name": "timeout",
4383
+ "default": 600,
4384
+ "hasDynamicHelp": false,
4385
+ "multiple": false,
4386
+ "type": "option"
4387
+ },
4388
+ "no-wait": {
4389
+ "description": "Return immediately after triggering compilation. Prints the document ID for manual polling.",
4390
+ "name": "no-wait",
4391
+ "allowNo": false,
4392
+ "type": "boolean"
4393
+ }
4394
+ },
4395
+ "hasDynamicHelp": false,
4396
+ "hiddenAliases": [],
4397
+ "id": "compile:doc:make",
4398
+ "pluginAlias": "faces-cli",
4399
+ "pluginName": "faces-cli",
4400
+ "pluginType": "core",
4401
+ "strict": true,
4402
+ "enableJsonFlag": true,
4403
+ "isESM": true,
4404
+ "relativePath": [
4405
+ "dist",
4406
+ "commands",
4407
+ "compile",
4408
+ "doc",
4409
+ "make.js"
4410
+ ]
4411
+ },
4412
+ "compile:doc:pause": {
4413
+ "aliases": [],
4414
+ "args": {
4415
+ "doc_id": {
4416
+ "description": "Document ID",
4417
+ "name": "doc_id",
4418
+ "required": true
4419
+ }
4420
+ },
4421
+ "description": "Pause a running document compilation (preserves progress, resume with make)",
4422
+ "flags": {
4423
+ "json": {
4424
+ "description": "Format output as json.",
4425
+ "helpGroup": "GLOBAL",
4426
+ "name": "json",
4427
+ "allowNo": false,
4428
+ "type": "boolean"
4429
+ },
4430
+ "base-url": {
4431
+ "description": "API base URL",
4432
+ "env": "FACES_BASE_URL",
4433
+ "name": "base-url",
4434
+ "hasDynamicHelp": false,
4435
+ "multiple": false,
4436
+ "type": "option"
4437
+ },
4438
+ "token": {
4439
+ "description": "JWT bearer token",
4440
+ "env": "FACES_TOKEN",
4441
+ "name": "token",
4442
+ "hasDynamicHelp": false,
4443
+ "multiple": false,
4444
+ "type": "option"
4445
+ },
4446
+ "api-key": {
4447
+ "description": "API key",
4448
+ "env": "FACES_API_KEY",
4449
+ "name": "api-key",
4450
+ "hasDynamicHelp": false,
4451
+ "multiple": false,
4452
+ "type": "option"
4453
+ }
4454
+ },
4455
+ "hasDynamicHelp": false,
4456
+ "hiddenAliases": [],
4457
+ "id": "compile:doc:pause",
4458
+ "pluginAlias": "faces-cli",
4459
+ "pluginName": "faces-cli",
4460
+ "pluginType": "core",
4461
+ "strict": true,
4462
+ "enableJsonFlag": true,
4463
+ "isESM": true,
4464
+ "relativePath": [
4465
+ "dist",
4466
+ "commands",
4467
+ "compile",
4468
+ "doc",
4469
+ "pause.js"
4470
+ ]
4471
+ },
4472
+ "compile:doc:reset": {
4473
+ "aliases": [],
4474
+ "args": {
4475
+ "doc_id": {
4476
+ "description": "Document ID",
4477
+ "name": "doc_id",
4478
+ "required": true
4479
+ }
4480
+ },
4481
+ "description": "Reset document compilation progress (wipe extraction, keep content)",
4482
+ "flags": {
4483
+ "json": {
4484
+ "description": "Format output as json.",
4485
+ "helpGroup": "GLOBAL",
4486
+ "name": "json",
4487
+ "allowNo": false,
4488
+ "type": "boolean"
4489
+ },
4490
+ "base-url": {
4491
+ "description": "API base URL",
4492
+ "env": "FACES_BASE_URL",
4493
+ "name": "base-url",
4494
+ "hasDynamicHelp": false,
4495
+ "multiple": false,
4496
+ "type": "option"
4497
+ },
4498
+ "token": {
4499
+ "description": "JWT bearer token",
4500
+ "env": "FACES_TOKEN",
4501
+ "name": "token",
4502
+ "hasDynamicHelp": false,
4503
+ "multiple": false,
4504
+ "type": "option"
4505
+ },
4506
+ "api-key": {
4507
+ "description": "API key",
4508
+ "env": "FACES_API_KEY",
4509
+ "name": "api-key",
4510
+ "hasDynamicHelp": false,
4511
+ "multiple": false,
4512
+ "type": "option"
4513
+ },
4514
+ "yes": {
4515
+ "description": "Skip confirmation",
4516
+ "name": "yes",
4517
+ "allowNo": false,
4518
+ "type": "boolean"
4519
+ }
4520
+ },
4521
+ "hasDynamicHelp": false,
4522
+ "hiddenAliases": [],
4523
+ "id": "compile:doc:reset",
4524
+ "pluginAlias": "faces-cli",
4525
+ "pluginName": "faces-cli",
4526
+ "pluginType": "core",
4527
+ "strict": true,
4528
+ "enableJsonFlag": true,
4529
+ "isESM": true,
4530
+ "relativePath": [
4531
+ "dist",
4532
+ "commands",
4533
+ "compile",
4534
+ "doc",
4535
+ "reset.js"
4536
+ ]
4537
+ },
4538
+ "compile:thread:create": {
4539
+ "aliases": [],
4540
+ "args": {
4541
+ "face_id": {
4542
+ "description": "Face alias",
4543
+ "name": "face_id",
4544
+ "required": true
4545
+ }
4546
+ },
4547
+ "description": "Start a new thread for a face",
4548
+ "flags": {
4549
+ "json": {
4550
+ "description": "Format output as json.",
4551
+ "helpGroup": "GLOBAL",
4552
+ "name": "json",
4553
+ "allowNo": false,
4554
+ "type": "boolean"
4555
+ },
4556
+ "base-url": {
4557
+ "description": "API base URL",
4558
+ "env": "FACES_BASE_URL",
4559
+ "name": "base-url",
4560
+ "hasDynamicHelp": false,
4561
+ "multiple": false,
4562
+ "type": "option"
4563
+ },
4564
+ "token": {
4565
+ "description": "JWT bearer token",
4566
+ "env": "FACES_TOKEN",
4567
+ "name": "token",
4568
+ "hasDynamicHelp": false,
4569
+ "multiple": false,
4570
+ "type": "option"
4571
+ },
4572
+ "api-key": {
4573
+ "description": "API key",
4574
+ "env": "FACES_API_KEY",
4575
+ "name": "api-key",
4576
+ "hasDynamicHelp": false,
4577
+ "multiple": false,
4578
+ "type": "option"
4579
+ },
4580
+ "label": {
4581
+ "description": "Thread label",
4582
+ "name": "label",
4583
+ "hasDynamicHelp": false,
4584
+ "multiple": false,
4585
+ "type": "option"
4586
+ },
4587
+ "oauth-only": {
4588
+ "description": "Prevent fallback to paid system key (use OAuth only)",
4589
+ "name": "oauth-only",
4590
+ "allowNo": false,
4591
+ "type": "boolean"
4592
+ }
4593
+ },
4594
+ "hasDynamicHelp": false,
4595
+ "hiddenAliases": [],
4596
+ "id": "compile:thread:create",
4597
+ "pluginAlias": "faces-cli",
4598
+ "pluginName": "faces-cli",
4599
+ "pluginType": "core",
4600
+ "strict": true,
4601
+ "enableJsonFlag": true,
4602
+ "isESM": true,
4603
+ "relativePath": [
4604
+ "dist",
4605
+ "commands",
4606
+ "compile",
4607
+ "thread",
4608
+ "create.js"
4609
+ ]
4610
+ },
4611
+ "compile:thread:delete": {
4612
+ "aliases": [],
4613
+ "args": {
4614
+ "thread_id": {
4615
+ "description": "Thread ID",
4616
+ "name": "thread_id",
4617
+ "required": true
4618
+ }
4619
+ },
4620
+ "description": "Delete a thread",
4621
+ "flags": {
4622
+ "json": {
4623
+ "description": "Format output as json.",
4624
+ "helpGroup": "GLOBAL",
4625
+ "name": "json",
4626
+ "allowNo": false,
4627
+ "type": "boolean"
4628
+ },
4629
+ "base-url": {
4630
+ "description": "API base URL",
4631
+ "env": "FACES_BASE_URL",
4632
+ "name": "base-url",
4633
+ "hasDynamicHelp": false,
4634
+ "multiple": false,
4635
+ "type": "option"
4636
+ },
4637
+ "token": {
4638
+ "description": "JWT bearer token",
4639
+ "env": "FACES_TOKEN",
4640
+ "name": "token",
4641
+ "hasDynamicHelp": false,
4642
+ "multiple": false,
4643
+ "type": "option"
4644
+ },
4645
+ "api-key": {
4646
+ "description": "API key",
4647
+ "env": "FACES_API_KEY",
4648
+ "name": "api-key",
4649
+ "hasDynamicHelp": false,
4650
+ "multiple": false,
4651
+ "type": "option"
4652
+ },
4653
+ "yes": {
4654
+ "description": "Skip confirmation",
4655
+ "name": "yes",
4656
+ "allowNo": false,
4657
+ "type": "boolean"
4658
+ }
4659
+ },
4660
+ "hasDynamicHelp": false,
4661
+ "hiddenAliases": [],
4662
+ "id": "compile:thread:delete",
4663
+ "pluginAlias": "faces-cli",
4664
+ "pluginName": "faces-cli",
4665
+ "pluginType": "core",
4666
+ "strict": true,
4667
+ "enableJsonFlag": true,
4668
+ "isESM": true,
4669
+ "relativePath": [
4670
+ "dist",
4671
+ "commands",
4672
+ "compile",
4673
+ "thread",
4674
+ "delete.js"
4675
+ ]
4676
+ },
4677
+ "compile:thread:edit": {
4678
+ "aliases": [],
4679
+ "args": {
4680
+ "thread_id": {
4681
+ "description": "Thread ID",
4682
+ "name": "thread_id",
4683
+ "required": true
4684
+ }
4685
+ },
4686
+ "description": "Edit a thread (label and/or reassign face speaker)",
4687
+ "flags": {
4688
+ "json": {
4689
+ "description": "Format output as json.",
4690
+ "helpGroup": "GLOBAL",
4691
+ "name": "json",
4692
+ "allowNo": false,
4693
+ "type": "boolean"
4694
+ },
4695
+ "base-url": {
4696
+ "description": "API base URL",
4697
+ "env": "FACES_BASE_URL",
4698
+ "name": "base-url",
4699
+ "hasDynamicHelp": false,
4700
+ "multiple": false,
4701
+ "type": "option"
4702
+ },
4703
+ "token": {
4704
+ "description": "JWT bearer token",
4705
+ "env": "FACES_TOKEN",
4706
+ "name": "token",
4707
+ "hasDynamicHelp": false,
4708
+ "multiple": false,
4709
+ "type": "option"
4710
+ },
4711
+ "api-key": {
4712
+ "description": "API key",
4713
+ "env": "FACES_API_KEY",
4714
+ "name": "api-key",
4715
+ "hasDynamicHelp": false,
4716
+ "multiple": false,
4717
+ "type": "option"
4718
+ },
4719
+ "label": {
4720
+ "description": "New thread label",
4721
+ "name": "label",
4722
+ "hasDynamicHelp": false,
4723
+ "multiple": false,
4724
+ "type": "option"
4725
+ },
4726
+ "face-speaker": {
4727
+ "description": "Reassign face speaker: set this speaker to role=user, all others to role=assistant",
4728
+ "name": "face-speaker",
4729
+ "hasDynamicHelp": false,
4730
+ "multiple": false,
4731
+ "type": "option"
4732
+ }
4733
+ },
4734
+ "hasDynamicHelp": false,
4735
+ "hiddenAliases": [],
4736
+ "id": "compile:thread:edit",
4737
+ "pluginAlias": "faces-cli",
4738
+ "pluginName": "faces-cli",
4739
+ "pluginType": "core",
4740
+ "strict": true,
4741
+ "enableJsonFlag": true,
4742
+ "isESM": true,
4743
+ "relativePath": [
4744
+ "dist",
4745
+ "commands",
4746
+ "compile",
4747
+ "thread",
4748
+ "edit.js"
4749
+ ]
4750
+ },
4751
+ "compile:thread:get": {
4752
+ "aliases": [],
4753
+ "args": {
4754
+ "thread_id": {
4755
+ "description": "Thread ID",
4756
+ "name": "thread_id",
4757
+ "required": true
4758
+ }
4759
+ },
4760
+ "description": "Get a thread by ID",
4761
+ "flags": {
4762
+ "json": {
4763
+ "description": "Format output as json.",
4764
+ "helpGroup": "GLOBAL",
4765
+ "name": "json",
4766
+ "allowNo": false,
4767
+ "type": "boolean"
4768
+ },
4769
+ "base-url": {
4770
+ "description": "API base URL",
4771
+ "env": "FACES_BASE_URL",
4772
+ "name": "base-url",
4773
+ "hasDynamicHelp": false,
4774
+ "multiple": false,
4775
+ "type": "option"
4776
+ },
4777
+ "token": {
4778
+ "description": "JWT bearer token",
4779
+ "env": "FACES_TOKEN",
4780
+ "name": "token",
4781
+ "hasDynamicHelp": false,
4782
+ "multiple": false,
4783
+ "type": "option"
4784
+ },
4785
+ "api-key": {
4786
+ "description": "API key",
4787
+ "env": "FACES_API_KEY",
4788
+ "name": "api-key",
4789
+ "hasDynamicHelp": false,
4790
+ "multiple": false,
4791
+ "type": "option"
4792
+ }
4793
+ },
4794
+ "hasDynamicHelp": false,
4795
+ "hiddenAliases": [],
4796
+ "id": "compile:thread:get",
4797
+ "pluginAlias": "faces-cli",
4798
+ "pluginName": "faces-cli",
4799
+ "pluginType": "core",
4800
+ "strict": true,
4801
+ "enableJsonFlag": true,
4802
+ "isESM": true,
4803
+ "relativePath": [
4804
+ "dist",
4805
+ "commands",
4806
+ "compile",
4807
+ "thread",
4808
+ "get.js"
4809
+ ]
4810
+ },
4811
+ "compile:thread:list": {
4812
+ "aliases": [],
4813
+ "args": {
4814
+ "face_id": {
4815
+ "description": "Face alias",
4816
+ "name": "face_id",
4817
+ "required": true
4818
+ }
4819
+ },
4820
+ "description": "List threads for a face",
4821
+ "flags": {
4822
+ "json": {
4823
+ "description": "Format output as json.",
4824
+ "helpGroup": "GLOBAL",
4825
+ "name": "json",
4826
+ "allowNo": false,
4827
+ "type": "boolean"
4828
+ },
4829
+ "base-url": {
4830
+ "description": "API base URL",
4831
+ "env": "FACES_BASE_URL",
4832
+ "name": "base-url",
4833
+ "hasDynamicHelp": false,
4834
+ "multiple": false,
4835
+ "type": "option"
4836
+ },
4837
+ "token": {
4838
+ "description": "JWT bearer token",
4839
+ "env": "FACES_TOKEN",
4840
+ "name": "token",
4841
+ "hasDynamicHelp": false,
4842
+ "multiple": false,
4843
+ "type": "option"
4844
+ },
4845
+ "api-key": {
4846
+ "description": "API key",
4847
+ "env": "FACES_API_KEY",
4848
+ "name": "api-key",
4849
+ "hasDynamicHelp": false,
4850
+ "multiple": false,
4851
+ "type": "option"
4852
+ }
4853
+ },
4854
+ "hasDynamicHelp": false,
4855
+ "hiddenAliases": [],
4856
+ "id": "compile:thread:list",
4857
+ "pluginAlias": "faces-cli",
4858
+ "pluginName": "faces-cli",
4859
+ "pluginType": "core",
4860
+ "strict": true,
4861
+ "enableJsonFlag": true,
4862
+ "isESM": true,
4863
+ "relativePath": [
4864
+ "dist",
4865
+ "commands",
4866
+ "compile",
4867
+ "thread",
4868
+ "list.js"
4869
+ ]
4870
+ },
4871
+ "compile:thread:make": {
4872
+ "aliases": [],
4873
+ "args": {
4874
+ "thread_id": {
4875
+ "description": "Thread ID",
4876
+ "name": "thread_id",
4877
+ "required": true
4878
+ }
4879
+ },
4880
+ "description": "Compile an existing thread (prepare + sync in one step)",
4881
+ "flags": {
4882
+ "json": {
4883
+ "description": "Format output as json.",
4884
+ "helpGroup": "GLOBAL",
4885
+ "name": "json",
4886
+ "allowNo": false,
4887
+ "type": "boolean"
4888
+ },
4889
+ "base-url": {
4890
+ "description": "API base URL",
4891
+ "env": "FACES_BASE_URL",
4892
+ "name": "base-url",
4893
+ "hasDynamicHelp": false,
4894
+ "multiple": false,
4895
+ "type": "option"
4896
+ },
4897
+ "token": {
4898
+ "description": "JWT bearer token",
4899
+ "env": "FACES_TOKEN",
4900
+ "name": "token",
4901
+ "hasDynamicHelp": false,
4902
+ "multiple": false,
4903
+ "type": "option"
4904
+ },
4905
+ "api-key": {
4906
+ "description": "API key",
4907
+ "env": "FACES_API_KEY",
4908
+ "name": "api-key",
4909
+ "hasDynamicHelp": false,
4910
+ "multiple": false,
4911
+ "type": "option"
4912
+ },
4913
+ "timeout": {
4914
+ "description": "Compile timeout in seconds (default: 600)",
4915
+ "name": "timeout",
4916
+ "default": 600,
4917
+ "hasDynamicHelp": false,
4918
+ "multiple": false,
4919
+ "type": "option"
4920
+ },
4921
+ "no-wait": {
4922
+ "description": "Return immediately after triggering compilation. Prints the thread ID for manual polling.",
4923
+ "name": "no-wait",
4924
+ "allowNo": false,
4925
+ "type": "boolean"
4926
+ }
4927
+ },
4928
+ "hasDynamicHelp": false,
4929
+ "hiddenAliases": [],
4930
+ "id": "compile:thread:make",
4931
+ "pluginAlias": "faces-cli",
4932
+ "pluginName": "faces-cli",
4933
+ "pluginType": "core",
4934
+ "strict": true,
4935
+ "enableJsonFlag": true,
4936
+ "isESM": true,
4937
+ "relativePath": [
4938
+ "dist",
4939
+ "commands",
4940
+ "compile",
4941
+ "thread",
4942
+ "make.js"
3684
4943
  ]
3685
4944
  },
3686
- "compile:doc:make": {
4945
+ "compile:thread:message": {
3687
4946
  "aliases": [],
3688
4947
  "args": {
3689
- "doc_id": {
3690
- "description": "Document ID",
3691
- "name": "doc_id",
4948
+ "thread_id": {
4949
+ "description": "Thread ID",
4950
+ "name": "thread_id",
3692
4951
  "required": true
3693
4952
  }
3694
4953
  },
3695
- "description": "Compile an existing document (prepare + sync in one step)",
4954
+ "description": "Send a user message to a thread",
3696
4955
  "flags": {
3697
4956
  "json": {
3698
4957
  "description": "Format output as json.",
@@ -3725,24 +4984,25 @@
3725
4984
  "multiple": false,
3726
4985
  "type": "option"
3727
4986
  },
3728
- "timeout": {
3729
- "description": "Compile timeout in seconds (default: 600)",
3730
- "name": "timeout",
3731
- "default": 600,
4987
+ "message": {
4988
+ "char": "m",
4989
+ "description": "User message to append",
4990
+ "name": "message",
4991
+ "required": true,
3732
4992
  "hasDynamicHelp": false,
3733
4993
  "multiple": false,
3734
4994
  "type": "option"
3735
4995
  },
3736
- "no-wait": {
3737
- "description": "Return immediately after triggering compilation. Prints the document ID for manual polling.",
3738
- "name": "no-wait",
4996
+ "oauth-only": {
4997
+ "description": "Prevent fallback to paid system key (use OAuth only)",
4998
+ "name": "oauth-only",
3739
4999
  "allowNo": false,
3740
5000
  "type": "boolean"
3741
5001
  }
3742
5002
  },
3743
5003
  "hasDynamicHelp": false,
3744
5004
  "hiddenAliases": [],
3745
- "id": "compile:doc:make",
5005
+ "id": "compile:thread:message",
3746
5006
  "pluginAlias": "faces-cli",
3747
5007
  "pluginName": "faces-cli",
3748
5008
  "pluginType": "core",
@@ -3753,20 +5013,20 @@
3753
5013
  "dist",
3754
5014
  "commands",
3755
5015
  "compile",
3756
- "doc",
3757
- "make.js"
5016
+ "thread",
5017
+ "message.js"
3758
5018
  ]
3759
5019
  },
3760
- "compile:doc:pause": {
5020
+ "compile:thread:pause": {
3761
5021
  "aliases": [],
3762
5022
  "args": {
3763
- "doc_id": {
3764
- "description": "Document ID",
3765
- "name": "doc_id",
5023
+ "thread_id": {
5024
+ "description": "Thread ID",
5025
+ "name": "thread_id",
3766
5026
  "required": true
3767
5027
  }
3768
5028
  },
3769
- "description": "Pause a running document compilation (preserves progress, resume with make)",
5029
+ "description": "Pause a running thread compilation (preserves progress, resume with make)",
3770
5030
  "flags": {
3771
5031
  "json": {
3772
5032
  "description": "Format output as json.",
@@ -3802,7 +5062,7 @@
3802
5062
  },
3803
5063
  "hasDynamicHelp": false,
3804
5064
  "hiddenAliases": [],
3805
- "id": "compile:doc:pause",
5065
+ "id": "compile:thread:pause",
3806
5066
  "pluginAlias": "faces-cli",
3807
5067
  "pluginName": "faces-cli",
3808
5068
  "pluginType": "core",
@@ -3813,20 +5073,20 @@
3813
5073
  "dist",
3814
5074
  "commands",
3815
5075
  "compile",
3816
- "doc",
5076
+ "thread",
3817
5077
  "pause.js"
3818
5078
  ]
3819
5079
  },
3820
- "compile:doc:reset": {
5080
+ "compile:thread:reset": {
3821
5081
  "aliases": [],
3822
5082
  "args": {
3823
- "doc_id": {
3824
- "description": "Document ID",
3825
- "name": "doc_id",
5083
+ "thread_id": {
5084
+ "description": "Thread ID",
5085
+ "name": "thread_id",
3826
5086
  "required": true
3827
5087
  }
3828
5088
  },
3829
- "description": "Reset document compilation progress (wipe extraction, keep content)",
5089
+ "description": "Reset thread compilation progress (wipe extraction, keep source messages)",
3830
5090
  "flags": {
3831
5091
  "json": {
3832
5092
  "description": "Format output as json.",
@@ -3868,7 +5128,7 @@
3868
5128
  },
3869
5129
  "hasDynamicHelp": false,
3870
5130
  "hiddenAliases": [],
3871
- "id": "compile:doc:reset",
5131
+ "id": "compile:thread:reset",
3872
5132
  "pluginAlias": "faces-cli",
3873
5133
  "pluginName": "faces-cli",
3874
5134
  "pluginType": "core",
@@ -3879,20 +5139,20 @@
3879
5139
  "dist",
3880
5140
  "commands",
3881
5141
  "compile",
3882
- "doc",
5142
+ "thread",
3883
5143
  "reset.js"
3884
5144
  ]
3885
5145
  },
3886
- "compile:thread:create": {
5146
+ "compile:thread:sync": {
3887
5147
  "aliases": [],
3888
5148
  "args": {
3889
- "face_id": {
3890
- "description": "Face alias",
3891
- "name": "face_id",
5149
+ "thread_id": {
5150
+ "description": "Thread ID",
5151
+ "name": "thread_id",
3892
5152
  "required": true
3893
5153
  }
3894
5154
  },
3895
- "description": "Start a new thread for a face",
5155
+ "description": "Archive and sync a thread into a face",
3896
5156
  "flags": {
3897
5157
  "json": {
3898
5158
  "description": "Format output as json.",
@@ -3924,24 +5184,11 @@
3924
5184
  "hasDynamicHelp": false,
3925
5185
  "multiple": false,
3926
5186
  "type": "option"
3927
- },
3928
- "label": {
3929
- "description": "Thread label",
3930
- "name": "label",
3931
- "hasDynamicHelp": false,
3932
- "multiple": false,
3933
- "type": "option"
3934
- },
3935
- "oauth-only": {
3936
- "description": "Prevent fallback to paid system key (use OAuth only)",
3937
- "name": "oauth-only",
3938
- "allowNo": false,
3939
- "type": "boolean"
3940
5187
  }
3941
5188
  },
3942
5189
  "hasDynamicHelp": false,
3943
5190
  "hiddenAliases": [],
3944
- "id": "compile:thread:create",
5191
+ "id": "compile:thread:sync",
3945
5192
  "pluginAlias": "faces-cli",
3946
5193
  "pluginName": "faces-cli",
3947
5194
  "pluginType": "core",
@@ -3953,19 +5200,19 @@
3953
5200
  "commands",
3954
5201
  "compile",
3955
5202
  "thread",
3956
- "create.js"
5203
+ "sync.js"
3957
5204
  ]
3958
5205
  },
3959
- "compile:thread:delete": {
5206
+ "face:tag:add": {
3960
5207
  "aliases": [],
3961
5208
  "args": {
3962
- "thread_id": {
3963
- "description": "Thread ID",
3964
- "name": "thread_id",
5209
+ "alias": {
5210
+ "description": "Face alias",
5211
+ "name": "alias",
3965
5212
  "required": true
3966
5213
  }
3967
5214
  },
3968
- "description": "Delete a thread",
5215
+ "description": "Add tags to a face (appends, idempotent)",
3969
5216
  "flags": {
3970
5217
  "json": {
3971
5218
  "description": "Format output as json.",
@@ -3998,16 +5245,18 @@
3998
5245
  "multiple": false,
3999
5246
  "type": "option"
4000
5247
  },
4001
- "yes": {
4002
- "description": "Skip confirmation",
4003
- "name": "yes",
4004
- "allowNo": false,
4005
- "type": "boolean"
5248
+ "tag": {
5249
+ "description": "Tag to add (repeatable)",
5250
+ "name": "tag",
5251
+ "required": true,
5252
+ "hasDynamicHelp": false,
5253
+ "multiple": true,
5254
+ "type": "option"
4006
5255
  }
4007
5256
  },
4008
5257
  "hasDynamicHelp": false,
4009
5258
  "hiddenAliases": [],
4010
- "id": "compile:thread:delete",
5259
+ "id": "face:tag:add",
4011
5260
  "pluginAlias": "faces-cli",
4012
5261
  "pluginName": "faces-cli",
4013
5262
  "pluginType": "core",
@@ -4017,21 +5266,15 @@
4017
5266
  "relativePath": [
4018
5267
  "dist",
4019
5268
  "commands",
4020
- "compile",
4021
- "thread",
4022
- "delete.js"
5269
+ "face",
5270
+ "tag",
5271
+ "add.js"
4023
5272
  ]
4024
5273
  },
4025
- "compile:thread:edit": {
5274
+ "face:tag:all": {
4026
5275
  "aliases": [],
4027
- "args": {
4028
- "thread_id": {
4029
- "description": "Thread ID",
4030
- "name": "thread_id",
4031
- "required": true
4032
- }
4033
- },
4034
- "description": "Edit a thread (label and/or reassign face speaker)",
5276
+ "args": {},
5277
+ "description": "List all tags across all your faces",
4035
5278
  "flags": {
4036
5279
  "json": {
4037
5280
  "description": "Format output as json.",
@@ -4063,25 +5306,11 @@
4063
5306
  "hasDynamicHelp": false,
4064
5307
  "multiple": false,
4065
5308
  "type": "option"
4066
- },
4067
- "label": {
4068
- "description": "New thread label",
4069
- "name": "label",
4070
- "hasDynamicHelp": false,
4071
- "multiple": false,
4072
- "type": "option"
4073
- },
4074
- "face-speaker": {
4075
- "description": "Reassign face speaker: set this speaker to role=user, all others to role=assistant",
4076
- "name": "face-speaker",
4077
- "hasDynamicHelp": false,
4078
- "multiple": false,
4079
- "type": "option"
4080
5309
  }
4081
5310
  },
4082
5311
  "hasDynamicHelp": false,
4083
5312
  "hiddenAliases": [],
4084
- "id": "compile:thread:edit",
5313
+ "id": "face:tag:all",
4085
5314
  "pluginAlias": "faces-cli",
4086
5315
  "pluginName": "faces-cli",
4087
5316
  "pluginType": "core",
@@ -4091,21 +5320,21 @@
4091
5320
  "relativePath": [
4092
5321
  "dist",
4093
5322
  "commands",
4094
- "compile",
4095
- "thread",
4096
- "edit.js"
5323
+ "face",
5324
+ "tag",
5325
+ "all.js"
4097
5326
  ]
4098
5327
  },
4099
- "compile:thread:get": {
5328
+ "face:tag:list": {
4100
5329
  "aliases": [],
4101
5330
  "args": {
4102
- "thread_id": {
4103
- "description": "Thread ID",
4104
- "name": "thread_id",
5331
+ "alias": {
5332
+ "description": "Face alias",
5333
+ "name": "alias",
4105
5334
  "required": true
4106
5335
  }
4107
5336
  },
4108
- "description": "Get a thread by ID",
5337
+ "description": "List tags on a face",
4109
5338
  "flags": {
4110
5339
  "json": {
4111
5340
  "description": "Format output as json.",
@@ -4141,7 +5370,7 @@
4141
5370
  },
4142
5371
  "hasDynamicHelp": false,
4143
5372
  "hiddenAliases": [],
4144
- "id": "compile:thread:get",
5373
+ "id": "face:tag:list",
4145
5374
  "pluginAlias": "faces-cli",
4146
5375
  "pluginName": "faces-cli",
4147
5376
  "pluginType": "core",
@@ -4151,21 +5380,26 @@
4151
5380
  "relativePath": [
4152
5381
  "dist",
4153
5382
  "commands",
4154
- "compile",
4155
- "thread",
4156
- "get.js"
5383
+ "face",
5384
+ "tag",
5385
+ "list.js"
4157
5386
  ]
4158
5387
  },
4159
- "compile:thread:list": {
5388
+ "face:tag:remove": {
4160
5389
  "aliases": [],
4161
5390
  "args": {
4162
- "face_id": {
5391
+ "alias": {
4163
5392
  "description": "Face alias",
4164
- "name": "face_id",
5393
+ "name": "alias",
5394
+ "required": true
5395
+ },
5396
+ "tag": {
5397
+ "description": "Tag to remove",
5398
+ "name": "tag",
4165
5399
  "required": true
4166
5400
  }
4167
5401
  },
4168
- "description": "List threads for a face",
5402
+ "description": "Remove a tag from a face",
4169
5403
  "flags": {
4170
5404
  "json": {
4171
5405
  "description": "Format output as json.",
@@ -4201,7 +5435,7 @@
4201
5435
  },
4202
5436
  "hasDynamicHelp": false,
4203
5437
  "hiddenAliases": [],
4204
- "id": "compile:thread:list",
5438
+ "id": "face:tag:remove",
4205
5439
  "pluginAlias": "faces-cli",
4206
5440
  "pluginName": "faces-cli",
4207
5441
  "pluginType": "core",
@@ -4211,21 +5445,21 @@
4211
5445
  "relativePath": [
4212
5446
  "dist",
4213
5447
  "commands",
4214
- "compile",
4215
- "thread",
4216
- "list.js"
5448
+ "face",
5449
+ "tag",
5450
+ "remove.js"
4217
5451
  ]
4218
5452
  },
4219
- "compile:thread:make": {
5453
+ "face:tag:set": {
4220
5454
  "aliases": [],
4221
5455
  "args": {
4222
- "thread_id": {
4223
- "description": "Thread ID",
4224
- "name": "thread_id",
5456
+ "alias": {
5457
+ "description": "Face alias",
5458
+ "name": "alias",
4225
5459
  "required": true
4226
5460
  }
4227
5461
  },
4228
- "description": "Compile an existing thread (prepare + sync in one step)",
5462
+ "description": "Replace all tags on a face",
4229
5463
  "flags": {
4230
5464
  "json": {
4231
5465
  "description": "Format output as json.",
@@ -4258,24 +5492,18 @@
4258
5492
  "multiple": false,
4259
5493
  "type": "option"
4260
5494
  },
4261
- "timeout": {
4262
- "description": "Compile timeout in seconds (default: 600)",
4263
- "name": "timeout",
4264
- "default": 600,
5495
+ "tag": {
5496
+ "description": "Tag to set (repeatable, replaces all)",
5497
+ "name": "tag",
5498
+ "required": true,
4265
5499
  "hasDynamicHelp": false,
4266
- "multiple": false,
5500
+ "multiple": true,
4267
5501
  "type": "option"
4268
- },
4269
- "no-wait": {
4270
- "description": "Return immediately after triggering compilation. Prints the thread ID for manual polling.",
4271
- "name": "no-wait",
4272
- "allowNo": false,
4273
- "type": "boolean"
4274
5502
  }
4275
5503
  },
4276
5504
  "hasDynamicHelp": false,
4277
5505
  "hiddenAliases": [],
4278
- "id": "compile:thread:make",
5506
+ "id": "face:tag:set",
4279
5507
  "pluginAlias": "faces-cli",
4280
5508
  "pluginName": "faces-cli",
4281
5509
  "pluginType": "core",
@@ -4285,21 +5513,21 @@
4285
5513
  "relativePath": [
4286
5514
  "dist",
4287
5515
  "commands",
4288
- "compile",
4289
- "thread",
4290
- "make.js"
5516
+ "face",
5517
+ "tag",
5518
+ "set.js"
4291
5519
  ]
4292
5520
  },
4293
- "compile:thread:message": {
5521
+ "team:tag:add": {
4294
5522
  "aliases": [],
4295
5523
  "args": {
4296
- "thread_id": {
4297
- "description": "Thread ID",
4298
- "name": "thread_id",
5524
+ "team_id": {
5525
+ "description": "Team ID",
5526
+ "name": "team_id",
4299
5527
  "required": true
4300
5528
  }
4301
5529
  },
4302
- "description": "Send a user message to a thread",
5530
+ "description": "Add tags to a team (appends, idempotent)",
4303
5531
  "flags": {
4304
5532
  "json": {
4305
5533
  "description": "Format output as json.",
@@ -4332,25 +5560,18 @@
4332
5560
  "multiple": false,
4333
5561
  "type": "option"
4334
5562
  },
4335
- "message": {
4336
- "char": "m",
4337
- "description": "User message to append",
4338
- "name": "message",
5563
+ "tag": {
5564
+ "description": "Tag to add (repeatable)",
5565
+ "name": "tag",
4339
5566
  "required": true,
4340
5567
  "hasDynamicHelp": false,
4341
- "multiple": false,
5568
+ "multiple": true,
4342
5569
  "type": "option"
4343
- },
4344
- "oauth-only": {
4345
- "description": "Prevent fallback to paid system key (use OAuth only)",
4346
- "name": "oauth-only",
4347
- "allowNo": false,
4348
- "type": "boolean"
4349
5570
  }
4350
5571
  },
4351
5572
  "hasDynamicHelp": false,
4352
5573
  "hiddenAliases": [],
4353
- "id": "compile:thread:message",
5574
+ "id": "team:tag:add",
4354
5575
  "pluginAlias": "faces-cli",
4355
5576
  "pluginName": "faces-cli",
4356
5577
  "pluginType": "core",
@@ -4360,21 +5581,21 @@
4360
5581
  "relativePath": [
4361
5582
  "dist",
4362
5583
  "commands",
4363
- "compile",
4364
- "thread",
4365
- "message.js"
5584
+ "team",
5585
+ "tag",
5586
+ "add.js"
4366
5587
  ]
4367
5588
  },
4368
- "compile:thread:pause": {
5589
+ "team:tag:list": {
4369
5590
  "aliases": [],
4370
5591
  "args": {
4371
- "thread_id": {
4372
- "description": "Thread ID",
4373
- "name": "thread_id",
5592
+ "team_id": {
5593
+ "description": "Team ID",
5594
+ "name": "team_id",
4374
5595
  "required": true
4375
5596
  }
4376
5597
  },
4377
- "description": "Pause a running thread compilation (preserves progress, resume with make)",
5598
+ "description": "List tags on a team",
4378
5599
  "flags": {
4379
5600
  "json": {
4380
5601
  "description": "Format output as json.",
@@ -4410,7 +5631,7 @@
4410
5631
  },
4411
5632
  "hasDynamicHelp": false,
4412
5633
  "hiddenAliases": [],
4413
- "id": "compile:thread:pause",
5634
+ "id": "team:tag:list",
4414
5635
  "pluginAlias": "faces-cli",
4415
5636
  "pluginName": "faces-cli",
4416
5637
  "pluginType": "core",
@@ -4420,21 +5641,26 @@
4420
5641
  "relativePath": [
4421
5642
  "dist",
4422
5643
  "commands",
4423
- "compile",
4424
- "thread",
4425
- "pause.js"
5644
+ "team",
5645
+ "tag",
5646
+ "list.js"
4426
5647
  ]
4427
5648
  },
4428
- "compile:thread:reset": {
5649
+ "team:tag:remove": {
4429
5650
  "aliases": [],
4430
5651
  "args": {
4431
- "thread_id": {
4432
- "description": "Thread ID",
4433
- "name": "thread_id",
5652
+ "team_id": {
5653
+ "description": "Team ID",
5654
+ "name": "team_id",
5655
+ "required": true
5656
+ },
5657
+ "tag": {
5658
+ "description": "Tag to remove",
5659
+ "name": "tag",
4434
5660
  "required": true
4435
5661
  }
4436
5662
  },
4437
- "description": "Reset thread compilation progress (wipe extraction, keep source messages)",
5663
+ "description": "Remove a tag from a team",
4438
5664
  "flags": {
4439
5665
  "json": {
4440
5666
  "description": "Format output as json.",
@@ -4466,17 +5692,11 @@
4466
5692
  "hasDynamicHelp": false,
4467
5693
  "multiple": false,
4468
5694
  "type": "option"
4469
- },
4470
- "yes": {
4471
- "description": "Skip confirmation",
4472
- "name": "yes",
4473
- "allowNo": false,
4474
- "type": "boolean"
4475
5695
  }
4476
5696
  },
4477
5697
  "hasDynamicHelp": false,
4478
5698
  "hiddenAliases": [],
4479
- "id": "compile:thread:reset",
5699
+ "id": "team:tag:remove",
4480
5700
  "pluginAlias": "faces-cli",
4481
5701
  "pluginName": "faces-cli",
4482
5702
  "pluginType": "core",
@@ -4486,21 +5706,21 @@
4486
5706
  "relativePath": [
4487
5707
  "dist",
4488
5708
  "commands",
4489
- "compile",
4490
- "thread",
4491
- "reset.js"
5709
+ "team",
5710
+ "tag",
5711
+ "remove.js"
4492
5712
  ]
4493
5713
  },
4494
- "compile:thread:sync": {
5714
+ "team:tag:set": {
4495
5715
  "aliases": [],
4496
5716
  "args": {
4497
- "thread_id": {
4498
- "description": "Thread ID",
4499
- "name": "thread_id",
5717
+ "team_id": {
5718
+ "description": "Team ID",
5719
+ "name": "team_id",
4500
5720
  "required": true
4501
5721
  }
4502
5722
  },
4503
- "description": "Archive and sync a thread into a face",
5723
+ "description": "Replace all tags on a team",
4504
5724
  "flags": {
4505
5725
  "json": {
4506
5726
  "description": "Format output as json.",
@@ -4532,11 +5752,19 @@
4532
5752
  "hasDynamicHelp": false,
4533
5753
  "multiple": false,
4534
5754
  "type": "option"
5755
+ },
5756
+ "tag": {
5757
+ "description": "Tag to set (repeatable, replaces all)",
5758
+ "name": "tag",
5759
+ "required": true,
5760
+ "hasDynamicHelp": false,
5761
+ "multiple": true,
5762
+ "type": "option"
4535
5763
  }
4536
5764
  },
4537
5765
  "hasDynamicHelp": false,
4538
5766
  "hiddenAliases": [],
4539
- "id": "compile:thread:sync",
5767
+ "id": "team:tag:set",
4540
5768
  "pluginAlias": "faces-cli",
4541
5769
  "pluginName": "faces-cli",
4542
5770
  "pluginType": "core",
@@ -4546,11 +5774,11 @@
4546
5774
  "relativePath": [
4547
5775
  "dist",
4548
5776
  "commands",
4549
- "compile",
4550
- "thread",
4551
- "sync.js"
5777
+ "team",
5778
+ "tag",
5779
+ "set.js"
4552
5780
  ]
4553
5781
  }
4554
5782
  },
4555
- "version": "1.6.1"
5783
+ "version": "1.6.3"
4556
5784
  }