faces-cli 1.5.2 → 1.5.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.
@@ -7,6 +7,7 @@ export default class CompileDoc extends BaseCommand {
7
7
  file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
8
  perspective: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
9
  timeout: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
10
+ 'no-wait': import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
11
  'base-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
12
  token: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
13
  'api-key': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -16,6 +16,10 @@ export default class CompileDoc extends BaseCommand {
16
16
  default: 'first-person',
17
17
  }),
18
18
  timeout: Flags.integer({ description: 'Compile timeout in seconds (default: 600)', default: 600 }),
19
+ 'no-wait': Flags.boolean({
20
+ description: 'Create and trigger compilation, then return immediately without polling.',
21
+ default: false,
22
+ }),
19
23
  };
20
24
  static args = {
21
25
  face_id: Args.string({ description: 'Face alias', required: true }),
@@ -64,6 +68,13 @@ export default class CompileDoc extends BaseCommand {
64
68
  throw err;
65
69
  }
66
70
  const chunksTotal = makeResponse.chunks_total;
71
+ if (flags['no-wait']) {
72
+ if (!json) {
73
+ process.stderr.write(`Compilation started in background${chunksTotal ? ` (${chunksTotal} chunks)` : ''}.\n`);
74
+ process.stderr.write(`Poll with: faces compile:doc:get ${docId} --json\n`);
75
+ }
76
+ return makeResponse;
77
+ }
67
78
  if (!json)
68
79
  process.stderr.write(`Compiling${chunksTotal ? ` (${chunksTotal} chunks)` : ''}:\n`);
69
80
  // Step 3: Poll until synced
@@ -1453,10 +1453,16 @@
1453
1453
  "responses.js"
1454
1454
  ]
1455
1455
  },
1456
- "config:clear": {
1456
+ "compile:import": {
1457
1457
  "aliases": [],
1458
- "args": {},
1459
- "description": "Delete all saved credentials and config",
1458
+ "args": {
1459
+ "face_id": {
1460
+ "description": "Face alias",
1461
+ "name": "face_id",
1462
+ "required": true
1463
+ }
1464
+ },
1465
+ "description": "Import a YouTube video into a face via server-side download and transcription",
1460
1466
  "flags": {
1461
1467
  "json": {
1462
1468
  "description": "Format output as json.",
@@ -1489,16 +1495,55 @@
1489
1495
  "multiple": false,
1490
1496
  "type": "option"
1491
1497
  },
1492
- "yes": {
1493
- "description": "Skip confirmation",
1494
- "name": "yes",
1498
+ "url": {
1499
+ "description": "YouTube URL (youtube.com/watch?v=... or youtu.be/...)",
1500
+ "name": "url",
1501
+ "required": true,
1502
+ "hasDynamicHelp": false,
1503
+ "multiple": false,
1504
+ "type": "option"
1505
+ },
1506
+ "type": {
1507
+ "description": "\"document\" for solo talks, lectures, monologues; \"thread\" for interviews or multi-speaker conversations",
1508
+ "name": "type",
1509
+ "default": "document",
1510
+ "hasDynamicHelp": false,
1511
+ "multiple": false,
1512
+ "options": [
1513
+ "document",
1514
+ "thread"
1515
+ ],
1516
+ "type": "option"
1517
+ },
1518
+ "perspective": {
1519
+ "description": "\"first-person\" if the face is the speaker; \"third-person\" if the video is about the face",
1520
+ "name": "perspective",
1521
+ "default": "third-person",
1522
+ "hasDynamicHelp": false,
1523
+ "multiple": false,
1524
+ "options": [
1525
+ "first-person",
1526
+ "third-person"
1527
+ ],
1528
+ "type": "option"
1529
+ },
1530
+ "face-speaker": {
1531
+ "description": "For --type thread: AssemblyAI speaker label (e.g. \"A\") that corresponds to the face. Defaults to first detected speaker.",
1532
+ "name": "face-speaker",
1533
+ "hasDynamicHelp": false,
1534
+ "multiple": false,
1535
+ "type": "option"
1536
+ },
1537
+ "no-wait": {
1538
+ "description": "Return immediately after import starts (do not poll for transcription). Prints the ID for manual polling.",
1539
+ "name": "no-wait",
1495
1540
  "allowNo": false,
1496
1541
  "type": "boolean"
1497
1542
  }
1498
1543
  },
1499
1544
  "hasDynamicHelp": false,
1500
1545
  "hiddenAliases": [],
1501
- "id": "config:clear",
1546
+ "id": "compile:import",
1502
1547
  "pluginAlias": "faces-cli",
1503
1548
  "pluginName": "faces-cli",
1504
1549
  "pluginType": "core",
@@ -1508,25 +1553,20 @@
1508
1553
  "relativePath": [
1509
1554
  "dist",
1510
1555
  "commands",
1511
- "config",
1512
- "clear.js"
1556
+ "compile",
1557
+ "import.js"
1513
1558
  ]
1514
1559
  },
1515
- "config:set": {
1560
+ "compile:upload": {
1516
1561
  "aliases": [],
1517
1562
  "args": {
1518
- "key": {
1519
- "description": "Config key",
1520
- "name": "key",
1521
- "required": true
1522
- },
1523
- "value": {
1524
- "description": "Config value",
1525
- "name": "value",
1563
+ "alias": {
1564
+ "description": "Face alias",
1565
+ "name": "alias",
1526
1566
  "required": true
1527
1567
  }
1528
1568
  },
1529
- "description": "Set a config value (e.g. base_url, api_key, token)",
1569
+ "description": "Upload a file (text/PDF/audio/video) to compile into a face",
1530
1570
  "flags": {
1531
1571
  "json": {
1532
1572
  "description": "Format output as json.",
@@ -1558,11 +1598,56 @@
1558
1598
  "hasDynamicHelp": false,
1559
1599
  "multiple": false,
1560
1600
  "type": "option"
1601
+ },
1602
+ "file": {
1603
+ "description": "File to upload",
1604
+ "name": "file",
1605
+ "required": true,
1606
+ "hasDynamicHelp": false,
1607
+ "multiple": false,
1608
+ "type": "option"
1609
+ },
1610
+ "kind": {
1611
+ "description": "Upload kind: document or thread",
1612
+ "name": "kind",
1613
+ "default": "document",
1614
+ "hasDynamicHelp": false,
1615
+ "multiple": false,
1616
+ "options": [
1617
+ "document",
1618
+ "thread"
1619
+ ],
1620
+ "type": "option"
1621
+ },
1622
+ "perspective": {
1623
+ "description": "Perspective (document only)",
1624
+ "name": "perspective",
1625
+ "default": "third-person",
1626
+ "hasDynamicHelp": false,
1627
+ "multiple": false,
1628
+ "options": [
1629
+ "first-person",
1630
+ "third-person"
1631
+ ],
1632
+ "type": "option"
1633
+ },
1634
+ "face-speaker": {
1635
+ "description": "Speaker name to map to the face (thread only). If omitted, auto-detected from face name.",
1636
+ "name": "face-speaker",
1637
+ "hasDynamicHelp": false,
1638
+ "multiple": false,
1639
+ "type": "option"
1640
+ },
1641
+ "no-wait": {
1642
+ "description": "Return immediately after upload (do not poll for transcription). Prints the ID for manual polling.",
1643
+ "name": "no-wait",
1644
+ "allowNo": false,
1645
+ "type": "boolean"
1561
1646
  }
1562
1647
  },
1563
1648
  "hasDynamicHelp": false,
1564
1649
  "hiddenAliases": [],
1565
- "id": "config:set",
1650
+ "id": "compile:upload",
1566
1651
  "pluginAlias": "faces-cli",
1567
1652
  "pluginName": "faces-cli",
1568
1653
  "pluginType": "core",
@@ -1572,14 +1657,14 @@
1572
1657
  "relativePath": [
1573
1658
  "dist",
1574
1659
  "commands",
1575
- "config",
1576
- "set.js"
1660
+ "compile",
1661
+ "upload.js"
1577
1662
  ]
1578
1663
  },
1579
- "config:show": {
1664
+ "config:clear": {
1580
1665
  "aliases": [],
1581
1666
  "args": {},
1582
- "description": "Print current config (credentials are masked)",
1667
+ "description": "Delete all saved credentials and config",
1583
1668
  "flags": {
1584
1669
  "json": {
1585
1670
  "description": "Format output as json.",
@@ -1611,11 +1696,17 @@
1611
1696
  "hasDynamicHelp": false,
1612
1697
  "multiple": false,
1613
1698
  "type": "option"
1699
+ },
1700
+ "yes": {
1701
+ "description": "Skip confirmation",
1702
+ "name": "yes",
1703
+ "allowNo": false,
1704
+ "type": "boolean"
1614
1705
  }
1615
1706
  },
1616
1707
  "hasDynamicHelp": false,
1617
1708
  "hiddenAliases": [],
1618
- "id": "config:show",
1709
+ "id": "config:clear",
1619
1710
  "pluginAlias": "faces-cli",
1620
1711
  "pluginName": "faces-cli",
1621
1712
  "pluginType": "core",
@@ -1626,19 +1717,24 @@
1626
1717
  "dist",
1627
1718
  "commands",
1628
1719
  "config",
1629
- "show.js"
1720
+ "clear.js"
1630
1721
  ]
1631
1722
  },
1632
- "compile:import": {
1723
+ "config:set": {
1633
1724
  "aliases": [],
1634
1725
  "args": {
1635
- "face_id": {
1636
- "description": "Face alias",
1637
- "name": "face_id",
1726
+ "key": {
1727
+ "description": "Config key",
1728
+ "name": "key",
1729
+ "required": true
1730
+ },
1731
+ "value": {
1732
+ "description": "Config value",
1733
+ "name": "value",
1638
1734
  "required": true
1639
1735
  }
1640
1736
  },
1641
- "description": "Import a YouTube video into a face via server-side download and transcription",
1737
+ "description": "Set a config value (e.g. base_url, api_key, token)",
1642
1738
  "flags": {
1643
1739
  "json": {
1644
1740
  "description": "Format output as json.",
@@ -1670,56 +1766,11 @@
1670
1766
  "hasDynamicHelp": false,
1671
1767
  "multiple": false,
1672
1768
  "type": "option"
1673
- },
1674
- "url": {
1675
- "description": "YouTube URL (youtube.com/watch?v=... or youtu.be/...)",
1676
- "name": "url",
1677
- "required": true,
1678
- "hasDynamicHelp": false,
1679
- "multiple": false,
1680
- "type": "option"
1681
- },
1682
- "type": {
1683
- "description": "\"document\" for solo talks, lectures, monologues; \"thread\" for interviews or multi-speaker conversations",
1684
- "name": "type",
1685
- "default": "document",
1686
- "hasDynamicHelp": false,
1687
- "multiple": false,
1688
- "options": [
1689
- "document",
1690
- "thread"
1691
- ],
1692
- "type": "option"
1693
- },
1694
- "perspective": {
1695
- "description": "\"first-person\" if the face is the speaker; \"third-person\" if the video is about the face",
1696
- "name": "perspective",
1697
- "default": "third-person",
1698
- "hasDynamicHelp": false,
1699
- "multiple": false,
1700
- "options": [
1701
- "first-person",
1702
- "third-person"
1703
- ],
1704
- "type": "option"
1705
- },
1706
- "face-speaker": {
1707
- "description": "For --type thread: AssemblyAI speaker label (e.g. \"A\") that corresponds to the face. Defaults to first detected speaker.",
1708
- "name": "face-speaker",
1709
- "hasDynamicHelp": false,
1710
- "multiple": false,
1711
- "type": "option"
1712
- },
1713
- "no-wait": {
1714
- "description": "Return immediately after import starts (do not poll for transcription). Prints the ID for manual polling.",
1715
- "name": "no-wait",
1716
- "allowNo": false,
1717
- "type": "boolean"
1718
1769
  }
1719
1770
  },
1720
1771
  "hasDynamicHelp": false,
1721
1772
  "hiddenAliases": [],
1722
- "id": "compile:import",
1773
+ "id": "config:set",
1723
1774
  "pluginAlias": "faces-cli",
1724
1775
  "pluginName": "faces-cli",
1725
1776
  "pluginType": "core",
@@ -1729,20 +1780,14 @@
1729
1780
  "relativePath": [
1730
1781
  "dist",
1731
1782
  "commands",
1732
- "compile",
1733
- "import.js"
1783
+ "config",
1784
+ "set.js"
1734
1785
  ]
1735
1786
  },
1736
- "compile:upload": {
1787
+ "config:show": {
1737
1788
  "aliases": [],
1738
- "args": {
1739
- "alias": {
1740
- "description": "Face alias",
1741
- "name": "alias",
1742
- "required": true
1743
- }
1744
- },
1745
- "description": "Upload a file (text/PDF/audio/video) to compile into a face",
1789
+ "args": {},
1790
+ "description": "Print current config (credentials are masked)",
1746
1791
  "flags": {
1747
1792
  "json": {
1748
1793
  "description": "Format output as json.",
@@ -1773,57 +1818,12 @@
1773
1818
  "name": "api-key",
1774
1819
  "hasDynamicHelp": false,
1775
1820
  "multiple": false,
1776
- "type": "option"
1777
- },
1778
- "file": {
1779
- "description": "File to upload",
1780
- "name": "file",
1781
- "required": true,
1782
- "hasDynamicHelp": false,
1783
- "multiple": false,
1784
- "type": "option"
1785
- },
1786
- "kind": {
1787
- "description": "Upload kind: document or thread",
1788
- "name": "kind",
1789
- "default": "document",
1790
- "hasDynamicHelp": false,
1791
- "multiple": false,
1792
- "options": [
1793
- "document",
1794
- "thread"
1795
- ],
1796
- "type": "option"
1797
- },
1798
- "perspective": {
1799
- "description": "Perspective (document only)",
1800
- "name": "perspective",
1801
- "default": "third-person",
1802
- "hasDynamicHelp": false,
1803
- "multiple": false,
1804
- "options": [
1805
- "first-person",
1806
- "third-person"
1807
- ],
1808
- "type": "option"
1809
- },
1810
- "face-speaker": {
1811
- "description": "Speaker name to map to the face (thread only). If omitted, auto-detected from face name.",
1812
- "name": "face-speaker",
1813
- "hasDynamicHelp": false,
1814
- "multiple": false,
1815
- "type": "option"
1816
- },
1817
- "no-wait": {
1818
- "description": "Return immediately after upload (do not poll for transcription). Prints the ID for manual polling.",
1819
- "name": "no-wait",
1820
- "allowNo": false,
1821
- "type": "boolean"
1821
+ "type": "option"
1822
1822
  }
1823
1823
  },
1824
1824
  "hasDynamicHelp": false,
1825
1825
  "hiddenAliases": [],
1826
- "id": "compile:upload",
1826
+ "id": "config:show",
1827
1827
  "pluginAlias": "faces-cli",
1828
1828
  "pluginName": "faces-cli",
1829
1829
  "pluginType": "core",
@@ -1833,8 +1833,8 @@
1833
1833
  "relativePath": [
1834
1834
  "dist",
1835
1835
  "commands",
1836
- "compile",
1837
- "upload.js"
1836
+ "config",
1837
+ "show.js"
1838
1838
  ]
1839
1839
  },
1840
1840
  "face:create": {
@@ -2810,7 +2810,7 @@
2810
2810
  "update.js"
2811
2811
  ]
2812
2812
  },
2813
- "compile:doc:create": {
2813
+ "compile:thread:create": {
2814
2814
  "aliases": [],
2815
2815
  "args": {
2816
2816
  "face_id": {
@@ -2819,7 +2819,7 @@
2819
2819
  "required": true
2820
2820
  }
2821
2821
  },
2822
- "description": "Submit a document to a face",
2822
+ "description": "Start a new thread for a face",
2823
2823
  "flags": {
2824
2824
  "json": {
2825
2825
  "description": "Format output as json.",
@@ -2853,42 +2853,16 @@
2853
2853
  "type": "option"
2854
2854
  },
2855
2855
  "label": {
2856
- "description": "Document label/title",
2856
+ "description": "Thread label",
2857
2857
  "name": "label",
2858
2858
  "hasDynamicHelp": false,
2859
2859
  "multiple": false,
2860
2860
  "type": "option"
2861
- },
2862
- "content": {
2863
- "description": "Inline text content",
2864
- "name": "content",
2865
- "hasDynamicHelp": false,
2866
- "multiple": false,
2867
- "type": "option"
2868
- },
2869
- "file": {
2870
- "description": "Read content from file",
2871
- "name": "file",
2872
- "hasDynamicHelp": false,
2873
- "multiple": false,
2874
- "type": "option"
2875
- },
2876
- "perspective": {
2877
- "description": "Perspective (first-person or third-person)",
2878
- "name": "perspective",
2879
- "default": "first-person",
2880
- "hasDynamicHelp": false,
2881
- "multiple": false,
2882
- "options": [
2883
- "first-person",
2884
- "third-person"
2885
- ],
2886
- "type": "option"
2887
2861
  }
2888
2862
  },
2889
2863
  "hasDynamicHelp": false,
2890
2864
  "hiddenAliases": [],
2891
- "id": "compile:doc:create",
2865
+ "id": "compile:thread:create",
2892
2866
  "pluginAlias": "faces-cli",
2893
2867
  "pluginName": "faces-cli",
2894
2868
  "pluginType": "core",
@@ -2899,20 +2873,20 @@
2899
2873
  "dist",
2900
2874
  "commands",
2901
2875
  "compile",
2902
- "doc",
2876
+ "thread",
2903
2877
  "create.js"
2904
2878
  ]
2905
2879
  },
2906
- "compile:doc:delete": {
2880
+ "compile:thread:delete": {
2907
2881
  "aliases": [],
2908
2882
  "args": {
2909
- "doc_id": {
2910
- "description": "Document ID",
2911
- "name": "doc_id",
2883
+ "thread_id": {
2884
+ "description": "Thread ID",
2885
+ "name": "thread_id",
2912
2886
  "required": true
2913
2887
  }
2914
2888
  },
2915
- "description": "Delete a document",
2889
+ "description": "Delete a thread",
2916
2890
  "flags": {
2917
2891
  "json": {
2918
2892
  "description": "Format output as json.",
@@ -2944,11 +2918,17 @@
2944
2918
  "hasDynamicHelp": false,
2945
2919
  "multiple": false,
2946
2920
  "type": "option"
2921
+ },
2922
+ "yes": {
2923
+ "description": "Skip confirmation",
2924
+ "name": "yes",
2925
+ "allowNo": false,
2926
+ "type": "boolean"
2947
2927
  }
2948
2928
  },
2949
2929
  "hasDynamicHelp": false,
2950
2930
  "hiddenAliases": [],
2951
- "id": "compile:doc:delete",
2931
+ "id": "compile:thread:delete",
2952
2932
  "pluginAlias": "faces-cli",
2953
2933
  "pluginName": "faces-cli",
2954
2934
  "pluginType": "core",
@@ -2959,20 +2939,20 @@
2959
2939
  "dist",
2960
2940
  "commands",
2961
2941
  "compile",
2962
- "doc",
2942
+ "thread",
2963
2943
  "delete.js"
2964
2944
  ]
2965
2945
  },
2966
- "compile:doc:edit": {
2946
+ "compile:thread:edit": {
2967
2947
  "aliases": [],
2968
2948
  "args": {
2969
- "doc_id": {
2970
- "description": "Document ID",
2971
- "name": "doc_id",
2949
+ "thread_id": {
2950
+ "description": "Thread ID",
2951
+ "name": "thread_id",
2972
2952
  "required": true
2973
2953
  }
2974
2954
  },
2975
- "description": "Edit a document (label, content, or perspective)",
2955
+ "description": "Edit a thread (label and/or reassign face speaker)",
2976
2956
  "flags": {
2977
2957
  "json": {
2978
2958
  "description": "Format output as json.",
@@ -3006,41 +2986,23 @@
3006
2986
  "type": "option"
3007
2987
  },
3008
2988
  "label": {
3009
- "description": "New label/title",
2989
+ "description": "New thread label",
3010
2990
  "name": "label",
3011
2991
  "hasDynamicHelp": false,
3012
2992
  "multiple": false,
3013
2993
  "type": "option"
3014
2994
  },
3015
- "content": {
3016
- "description": "New inline text content",
3017
- "name": "content",
3018
- "hasDynamicHelp": false,
3019
- "multiple": false,
3020
- "type": "option"
3021
- },
3022
- "file": {
3023
- "description": "Read new content from file",
3024
- "name": "file",
3025
- "hasDynamicHelp": false,
3026
- "multiple": false,
3027
- "type": "option"
3028
- },
3029
- "perspective": {
3030
- "description": "Perspective (first-person or third-person)",
3031
- "name": "perspective",
2995
+ "face-speaker": {
2996
+ "description": "Reassign face speaker: set this speaker to role=user, all others to role=assistant",
2997
+ "name": "face-speaker",
3032
2998
  "hasDynamicHelp": false,
3033
2999
  "multiple": false,
3034
- "options": [
3035
- "first-person",
3036
- "third-person"
3037
- ],
3038
3000
  "type": "option"
3039
3001
  }
3040
3002
  },
3041
3003
  "hasDynamicHelp": false,
3042
3004
  "hiddenAliases": [],
3043
- "id": "compile:doc:edit",
3005
+ "id": "compile:thread:edit",
3044
3006
  "pluginAlias": "faces-cli",
3045
3007
  "pluginName": "faces-cli",
3046
3008
  "pluginType": "core",
@@ -3051,20 +3013,20 @@
3051
3013
  "dist",
3052
3014
  "commands",
3053
3015
  "compile",
3054
- "doc",
3016
+ "thread",
3055
3017
  "edit.js"
3056
3018
  ]
3057
3019
  },
3058
- "compile:doc:get": {
3020
+ "compile:thread:get": {
3059
3021
  "aliases": [],
3060
3022
  "args": {
3061
- "doc_id": {
3062
- "description": "Document ID",
3063
- "name": "doc_id",
3023
+ "thread_id": {
3024
+ "description": "Thread ID",
3025
+ "name": "thread_id",
3064
3026
  "required": true
3065
3027
  }
3066
3028
  },
3067
- "description": "Get a document by ID",
3029
+ "description": "Get a thread by ID",
3068
3030
  "flags": {
3069
3031
  "json": {
3070
3032
  "description": "Format output as json.",
@@ -3100,7 +3062,7 @@
3100
3062
  },
3101
3063
  "hasDynamicHelp": false,
3102
3064
  "hiddenAliases": [],
3103
- "id": "compile:doc:get",
3065
+ "id": "compile:thread:get",
3104
3066
  "pluginAlias": "faces-cli",
3105
3067
  "pluginName": "faces-cli",
3106
3068
  "pluginType": "core",
@@ -3111,11 +3073,11 @@
3111
3073
  "dist",
3112
3074
  "commands",
3113
3075
  "compile",
3114
- "doc",
3076
+ "thread",
3115
3077
  "get.js"
3116
3078
  ]
3117
3079
  },
3118
- "compile:doc": {
3080
+ "compile:thread:list": {
3119
3081
  "aliases": [],
3120
3082
  "args": {
3121
3083
  "face_id": {
@@ -3124,7 +3086,7 @@
3124
3086
  "required": true
3125
3087
  }
3126
3088
  },
3127
- "description": "Compile a document into a face (create → make in one step)",
3089
+ "description": "List threads for a face",
3128
3090
  "flags": {
3129
3091
  "json": {
3130
3092
  "description": "Format output as json.",
@@ -3156,38 +3118,65 @@
3156
3118
  "hasDynamicHelp": false,
3157
3119
  "multiple": false,
3158
3120
  "type": "option"
3121
+ }
3122
+ },
3123
+ "hasDynamicHelp": false,
3124
+ "hiddenAliases": [],
3125
+ "id": "compile:thread:list",
3126
+ "pluginAlias": "faces-cli",
3127
+ "pluginName": "faces-cli",
3128
+ "pluginType": "core",
3129
+ "strict": true,
3130
+ "enableJsonFlag": true,
3131
+ "isESM": true,
3132
+ "relativePath": [
3133
+ "dist",
3134
+ "commands",
3135
+ "compile",
3136
+ "thread",
3137
+ "list.js"
3138
+ ]
3139
+ },
3140
+ "compile:thread:make": {
3141
+ "aliases": [],
3142
+ "args": {
3143
+ "thread_id": {
3144
+ "description": "Thread ID",
3145
+ "name": "thread_id",
3146
+ "required": true
3147
+ }
3148
+ },
3149
+ "description": "Compile an existing thread (prepare + sync in one step)",
3150
+ "flags": {
3151
+ "json": {
3152
+ "description": "Format output as json.",
3153
+ "helpGroup": "GLOBAL",
3154
+ "name": "json",
3155
+ "allowNo": false,
3156
+ "type": "boolean"
3159
3157
  },
3160
- "label": {
3161
- "description": "Document label/title",
3162
- "name": "label",
3163
- "hasDynamicHelp": false,
3164
- "multiple": false,
3165
- "type": "option"
3166
- },
3167
- "content": {
3168
- "description": "Inline text content",
3169
- "name": "content",
3158
+ "base-url": {
3159
+ "description": "API base URL",
3160
+ "env": "FACES_BASE_URL",
3161
+ "name": "base-url",
3170
3162
  "hasDynamicHelp": false,
3171
3163
  "multiple": false,
3172
3164
  "type": "option"
3173
3165
  },
3174
- "file": {
3175
- "description": "Read content from file",
3176
- "name": "file",
3166
+ "token": {
3167
+ "description": "JWT bearer token",
3168
+ "env": "FACES_TOKEN",
3169
+ "name": "token",
3177
3170
  "hasDynamicHelp": false,
3178
3171
  "multiple": false,
3179
3172
  "type": "option"
3180
3173
  },
3181
- "perspective": {
3182
- "description": "Perspective",
3183
- "name": "perspective",
3184
- "default": "first-person",
3174
+ "api-key": {
3175
+ "description": "API key",
3176
+ "env": "FACES_API_KEY",
3177
+ "name": "api-key",
3185
3178
  "hasDynamicHelp": false,
3186
3179
  "multiple": false,
3187
- "options": [
3188
- "first-person",
3189
- "third-person"
3190
- ],
3191
3180
  "type": "option"
3192
3181
  },
3193
3182
  "timeout": {
@@ -3197,11 +3186,17 @@
3197
3186
  "hasDynamicHelp": false,
3198
3187
  "multiple": false,
3199
3188
  "type": "option"
3189
+ },
3190
+ "no-wait": {
3191
+ "description": "Return immediately after triggering compilation. Prints the thread ID for manual polling.",
3192
+ "name": "no-wait",
3193
+ "allowNo": false,
3194
+ "type": "boolean"
3200
3195
  }
3201
3196
  },
3202
3197
  "hasDynamicHelp": false,
3203
3198
  "hiddenAliases": [],
3204
- "id": "compile:doc",
3199
+ "id": "compile:thread:make",
3205
3200
  "pluginAlias": "faces-cli",
3206
3201
  "pluginName": "faces-cli",
3207
3202
  "pluginType": "core",
@@ -3212,20 +3207,20 @@
3212
3207
  "dist",
3213
3208
  "commands",
3214
3209
  "compile",
3215
- "doc",
3216
- "index.js"
3210
+ "thread",
3211
+ "make.js"
3217
3212
  ]
3218
3213
  },
3219
- "compile:doc:list": {
3214
+ "compile:thread:message": {
3220
3215
  "aliases": [],
3221
3216
  "args": {
3222
- "face_id": {
3223
- "description": "Face alias",
3224
- "name": "face_id",
3217
+ "thread_id": {
3218
+ "description": "Thread ID",
3219
+ "name": "thread_id",
3225
3220
  "required": true
3226
3221
  }
3227
3222
  },
3228
- "description": "List documents for a face",
3223
+ "description": "Send a user message to a thread",
3229
3224
  "flags": {
3230
3225
  "json": {
3231
3226
  "description": "Format output as json.",
@@ -3257,11 +3252,20 @@
3257
3252
  "hasDynamicHelp": false,
3258
3253
  "multiple": false,
3259
3254
  "type": "option"
3255
+ },
3256
+ "message": {
3257
+ "char": "m",
3258
+ "description": "User message to append",
3259
+ "name": "message",
3260
+ "required": true,
3261
+ "hasDynamicHelp": false,
3262
+ "multiple": false,
3263
+ "type": "option"
3260
3264
  }
3261
3265
  },
3262
3266
  "hasDynamicHelp": false,
3263
3267
  "hiddenAliases": [],
3264
- "id": "compile:doc:list",
3268
+ "id": "compile:thread:message",
3265
3269
  "pluginAlias": "faces-cli",
3266
3270
  "pluginName": "faces-cli",
3267
3271
  "pluginType": "core",
@@ -3272,20 +3276,20 @@
3272
3276
  "dist",
3273
3277
  "commands",
3274
3278
  "compile",
3275
- "doc",
3276
- "list.js"
3279
+ "thread",
3280
+ "message.js"
3277
3281
  ]
3278
3282
  },
3279
- "compile:doc:make": {
3283
+ "compile:thread:sync": {
3280
3284
  "aliases": [],
3281
3285
  "args": {
3282
- "doc_id": {
3283
- "description": "Document ID",
3284
- "name": "doc_id",
3286
+ "thread_id": {
3287
+ "description": "Thread ID",
3288
+ "name": "thread_id",
3285
3289
  "required": true
3286
3290
  }
3287
3291
  },
3288
- "description": "Compile an existing document (prepare + sync in one step)",
3292
+ "description": "Archive and sync a thread into a face",
3289
3293
  "flags": {
3290
3294
  "json": {
3291
3295
  "description": "Format output as json.",
@@ -3312,30 +3316,16 @@
3312
3316
  },
3313
3317
  "api-key": {
3314
3318
  "description": "API key",
3315
- "env": "FACES_API_KEY",
3316
- "name": "api-key",
3317
- "hasDynamicHelp": false,
3318
- "multiple": false,
3319
- "type": "option"
3320
- },
3321
- "timeout": {
3322
- "description": "Compile timeout in seconds (default: 600)",
3323
- "name": "timeout",
3324
- "default": 600,
3325
- "hasDynamicHelp": false,
3326
- "multiple": false,
3327
- "type": "option"
3328
- },
3329
- "no-wait": {
3330
- "description": "Return immediately after triggering compilation. Prints the document ID for manual polling.",
3331
- "name": "no-wait",
3332
- "allowNo": false,
3333
- "type": "boolean"
3319
+ "env": "FACES_API_KEY",
3320
+ "name": "api-key",
3321
+ "hasDynamicHelp": false,
3322
+ "multiple": false,
3323
+ "type": "option"
3334
3324
  }
3335
3325
  },
3336
3326
  "hasDynamicHelp": false,
3337
3327
  "hiddenAliases": [],
3338
- "id": "compile:doc:make",
3328
+ "id": "compile:thread:sync",
3339
3329
  "pluginAlias": "faces-cli",
3340
3330
  "pluginName": "faces-cli",
3341
3331
  "pluginType": "core",
@@ -3346,11 +3336,11 @@
3346
3336
  "dist",
3347
3337
  "commands",
3348
3338
  "compile",
3349
- "doc",
3350
- "make.js"
3339
+ "thread",
3340
+ "sync.js"
3351
3341
  ]
3352
3342
  },
3353
- "compile:thread:create": {
3343
+ "compile:doc:create": {
3354
3344
  "aliases": [],
3355
3345
  "args": {
3356
3346
  "face_id": {
@@ -3359,7 +3349,7 @@
3359
3349
  "required": true
3360
3350
  }
3361
3351
  },
3362
- "description": "Start a new thread for a face",
3352
+ "description": "Submit a document to a face",
3363
3353
  "flags": {
3364
3354
  "json": {
3365
3355
  "description": "Format output as json.",
@@ -3393,16 +3383,42 @@
3393
3383
  "type": "option"
3394
3384
  },
3395
3385
  "label": {
3396
- "description": "Thread label",
3386
+ "description": "Document label/title",
3397
3387
  "name": "label",
3398
3388
  "hasDynamicHelp": false,
3399
3389
  "multiple": false,
3400
3390
  "type": "option"
3391
+ },
3392
+ "content": {
3393
+ "description": "Inline text content",
3394
+ "name": "content",
3395
+ "hasDynamicHelp": false,
3396
+ "multiple": false,
3397
+ "type": "option"
3398
+ },
3399
+ "file": {
3400
+ "description": "Read content from file",
3401
+ "name": "file",
3402
+ "hasDynamicHelp": false,
3403
+ "multiple": false,
3404
+ "type": "option"
3405
+ },
3406
+ "perspective": {
3407
+ "description": "Perspective (first-person or third-person)",
3408
+ "name": "perspective",
3409
+ "default": "first-person",
3410
+ "hasDynamicHelp": false,
3411
+ "multiple": false,
3412
+ "options": [
3413
+ "first-person",
3414
+ "third-person"
3415
+ ],
3416
+ "type": "option"
3401
3417
  }
3402
3418
  },
3403
3419
  "hasDynamicHelp": false,
3404
3420
  "hiddenAliases": [],
3405
- "id": "compile:thread:create",
3421
+ "id": "compile:doc:create",
3406
3422
  "pluginAlias": "faces-cli",
3407
3423
  "pluginName": "faces-cli",
3408
3424
  "pluginType": "core",
@@ -3413,20 +3429,20 @@
3413
3429
  "dist",
3414
3430
  "commands",
3415
3431
  "compile",
3416
- "thread",
3432
+ "doc",
3417
3433
  "create.js"
3418
3434
  ]
3419
3435
  },
3420
- "compile:thread:delete": {
3436
+ "compile:doc:delete": {
3421
3437
  "aliases": [],
3422
3438
  "args": {
3423
- "thread_id": {
3424
- "description": "Thread ID",
3425
- "name": "thread_id",
3439
+ "doc_id": {
3440
+ "description": "Document ID",
3441
+ "name": "doc_id",
3426
3442
  "required": true
3427
3443
  }
3428
3444
  },
3429
- "description": "Delete a thread",
3445
+ "description": "Delete a document",
3430
3446
  "flags": {
3431
3447
  "json": {
3432
3448
  "description": "Format output as json.",
@@ -3458,17 +3474,11 @@
3458
3474
  "hasDynamicHelp": false,
3459
3475
  "multiple": false,
3460
3476
  "type": "option"
3461
- },
3462
- "yes": {
3463
- "description": "Skip confirmation",
3464
- "name": "yes",
3465
- "allowNo": false,
3466
- "type": "boolean"
3467
3477
  }
3468
3478
  },
3469
3479
  "hasDynamicHelp": false,
3470
3480
  "hiddenAliases": [],
3471
- "id": "compile:thread:delete",
3481
+ "id": "compile:doc:delete",
3472
3482
  "pluginAlias": "faces-cli",
3473
3483
  "pluginName": "faces-cli",
3474
3484
  "pluginType": "core",
@@ -3479,20 +3489,20 @@
3479
3489
  "dist",
3480
3490
  "commands",
3481
3491
  "compile",
3482
- "thread",
3492
+ "doc",
3483
3493
  "delete.js"
3484
3494
  ]
3485
3495
  },
3486
- "compile:thread:edit": {
3496
+ "compile:doc:edit": {
3487
3497
  "aliases": [],
3488
3498
  "args": {
3489
- "thread_id": {
3490
- "description": "Thread ID",
3491
- "name": "thread_id",
3499
+ "doc_id": {
3500
+ "description": "Document ID",
3501
+ "name": "doc_id",
3492
3502
  "required": true
3493
3503
  }
3494
3504
  },
3495
- "description": "Edit a thread (label and/or reassign face speaker)",
3505
+ "description": "Edit a document (label, content, or perspective)",
3496
3506
  "flags": {
3497
3507
  "json": {
3498
3508
  "description": "Format output as json.",
@@ -3526,23 +3536,41 @@
3526
3536
  "type": "option"
3527
3537
  },
3528
3538
  "label": {
3529
- "description": "New thread label",
3539
+ "description": "New label/title",
3530
3540
  "name": "label",
3531
3541
  "hasDynamicHelp": false,
3532
3542
  "multiple": false,
3533
3543
  "type": "option"
3534
3544
  },
3535
- "face-speaker": {
3536
- "description": "Reassign face speaker: set this speaker to role=user, all others to role=assistant",
3537
- "name": "face-speaker",
3545
+ "content": {
3546
+ "description": "New inline text content",
3547
+ "name": "content",
3548
+ "hasDynamicHelp": false,
3549
+ "multiple": false,
3550
+ "type": "option"
3551
+ },
3552
+ "file": {
3553
+ "description": "Read new content from file",
3554
+ "name": "file",
3555
+ "hasDynamicHelp": false,
3556
+ "multiple": false,
3557
+ "type": "option"
3558
+ },
3559
+ "perspective": {
3560
+ "description": "Perspective (first-person or third-person)",
3561
+ "name": "perspective",
3538
3562
  "hasDynamicHelp": false,
3539
3563
  "multiple": false,
3564
+ "options": [
3565
+ "first-person",
3566
+ "third-person"
3567
+ ],
3540
3568
  "type": "option"
3541
3569
  }
3542
3570
  },
3543
3571
  "hasDynamicHelp": false,
3544
3572
  "hiddenAliases": [],
3545
- "id": "compile:thread:edit",
3573
+ "id": "compile:doc:edit",
3546
3574
  "pluginAlias": "faces-cli",
3547
3575
  "pluginName": "faces-cli",
3548
3576
  "pluginType": "core",
@@ -3553,20 +3581,20 @@
3553
3581
  "dist",
3554
3582
  "commands",
3555
3583
  "compile",
3556
- "thread",
3584
+ "doc",
3557
3585
  "edit.js"
3558
3586
  ]
3559
3587
  },
3560
- "compile:thread:get": {
3588
+ "compile:doc:get": {
3561
3589
  "aliases": [],
3562
3590
  "args": {
3563
- "thread_id": {
3564
- "description": "Thread ID",
3565
- "name": "thread_id",
3591
+ "doc_id": {
3592
+ "description": "Document ID",
3593
+ "name": "doc_id",
3566
3594
  "required": true
3567
3595
  }
3568
3596
  },
3569
- "description": "Get a thread by ID",
3597
+ "description": "Get a document by ID",
3570
3598
  "flags": {
3571
3599
  "json": {
3572
3600
  "description": "Format output as json.",
@@ -3602,7 +3630,7 @@
3602
3630
  },
3603
3631
  "hasDynamicHelp": false,
3604
3632
  "hiddenAliases": [],
3605
- "id": "compile:thread:get",
3633
+ "id": "compile:doc:get",
3606
3634
  "pluginAlias": "faces-cli",
3607
3635
  "pluginName": "faces-cli",
3608
3636
  "pluginType": "core",
@@ -3613,11 +3641,11 @@
3613
3641
  "dist",
3614
3642
  "commands",
3615
3643
  "compile",
3616
- "thread",
3644
+ "doc",
3617
3645
  "get.js"
3618
3646
  ]
3619
3647
  },
3620
- "compile:thread:list": {
3648
+ "compile:doc": {
3621
3649
  "aliases": [],
3622
3650
  "args": {
3623
3651
  "face_id": {
@@ -3626,7 +3654,7 @@
3626
3654
  "required": true
3627
3655
  }
3628
3656
  },
3629
- "description": "List threads for a face",
3657
+ "description": "Compile a document into a face (create → make in one step)",
3630
3658
  "flags": {
3631
3659
  "json": {
3632
3660
  "description": "Format output as json.",
@@ -3658,65 +3686,38 @@
3658
3686
  "hasDynamicHelp": false,
3659
3687
  "multiple": false,
3660
3688
  "type": "option"
3661
- }
3662
- },
3663
- "hasDynamicHelp": false,
3664
- "hiddenAliases": [],
3665
- "id": "compile:thread:list",
3666
- "pluginAlias": "faces-cli",
3667
- "pluginName": "faces-cli",
3668
- "pluginType": "core",
3669
- "strict": true,
3670
- "enableJsonFlag": true,
3671
- "isESM": true,
3672
- "relativePath": [
3673
- "dist",
3674
- "commands",
3675
- "compile",
3676
- "thread",
3677
- "list.js"
3678
- ]
3679
- },
3680
- "compile:thread:make": {
3681
- "aliases": [],
3682
- "args": {
3683
- "thread_id": {
3684
- "description": "Thread ID",
3685
- "name": "thread_id",
3686
- "required": true
3687
- }
3688
- },
3689
- "description": "Compile an existing thread (prepare + sync in one step)",
3690
- "flags": {
3691
- "json": {
3692
- "description": "Format output as json.",
3693
- "helpGroup": "GLOBAL",
3694
- "name": "json",
3695
- "allowNo": false,
3696
- "type": "boolean"
3697
3689
  },
3698
- "base-url": {
3699
- "description": "API base URL",
3700
- "env": "FACES_BASE_URL",
3701
- "name": "base-url",
3690
+ "label": {
3691
+ "description": "Document label/title",
3692
+ "name": "label",
3702
3693
  "hasDynamicHelp": false,
3703
3694
  "multiple": false,
3704
3695
  "type": "option"
3705
3696
  },
3706
- "token": {
3707
- "description": "JWT bearer token",
3708
- "env": "FACES_TOKEN",
3709
- "name": "token",
3697
+ "content": {
3698
+ "description": "Inline text content",
3699
+ "name": "content",
3710
3700
  "hasDynamicHelp": false,
3711
3701
  "multiple": false,
3712
3702
  "type": "option"
3713
3703
  },
3714
- "api-key": {
3715
- "description": "API key",
3716
- "env": "FACES_API_KEY",
3717
- "name": "api-key",
3704
+ "file": {
3705
+ "description": "Read content from file",
3706
+ "name": "file",
3707
+ "hasDynamicHelp": false,
3708
+ "multiple": false,
3709
+ "type": "option"
3710
+ },
3711
+ "perspective": {
3712
+ "description": "Perspective",
3713
+ "name": "perspective",
3714
+ "default": "first-person",
3718
3715
  "hasDynamicHelp": false,
3719
3716
  "multiple": false,
3717
+ "options": [
3718
+ "first-person",
3719
+ "third-person"
3720
+ ],
3720
3721
  "type": "option"
3721
3722
  },
3722
3723
  "timeout": {
@@ -3728,7 +3729,7 @@
3728
3729
  "type": "option"
3729
3730
  },
3730
3731
  "no-wait": {
3731
- "description": "Return immediately after triggering compilation. Prints the thread ID for manual polling.",
3732
+ "description": "Create and trigger compilation, then return immediately without polling.",
3732
3733
  "name": "no-wait",
3733
3734
  "allowNo": false,
3734
3735
  "type": "boolean"
@@ -3736,7 +3737,7 @@
3736
3737
  },
3737
3738
  "hasDynamicHelp": false,
3738
3739
  "hiddenAliases": [],
3739
- "id": "compile:thread:make",
3740
+ "id": "compile:doc",
3740
3741
  "pluginAlias": "faces-cli",
3741
3742
  "pluginName": "faces-cli",
3742
3743
  "pluginType": "core",
@@ -3747,20 +3748,20 @@
3747
3748
  "dist",
3748
3749
  "commands",
3749
3750
  "compile",
3750
- "thread",
3751
- "make.js"
3751
+ "doc",
3752
+ "index.js"
3752
3753
  ]
3753
3754
  },
3754
- "compile:thread:message": {
3755
+ "compile:doc:list": {
3755
3756
  "aliases": [],
3756
3757
  "args": {
3757
- "thread_id": {
3758
- "description": "Thread ID",
3759
- "name": "thread_id",
3758
+ "face_id": {
3759
+ "description": "Face alias",
3760
+ "name": "face_id",
3760
3761
  "required": true
3761
3762
  }
3762
3763
  },
3763
- "description": "Send a user message to a thread",
3764
+ "description": "List documents for a face",
3764
3765
  "flags": {
3765
3766
  "json": {
3766
3767
  "description": "Format output as json.",
@@ -3792,20 +3793,11 @@
3792
3793
  "hasDynamicHelp": false,
3793
3794
  "multiple": false,
3794
3795
  "type": "option"
3795
- },
3796
- "message": {
3797
- "char": "m",
3798
- "description": "User message to append",
3799
- "name": "message",
3800
- "required": true,
3801
- "hasDynamicHelp": false,
3802
- "multiple": false,
3803
- "type": "option"
3804
3796
  }
3805
3797
  },
3806
3798
  "hasDynamicHelp": false,
3807
3799
  "hiddenAliases": [],
3808
- "id": "compile:thread:message",
3800
+ "id": "compile:doc:list",
3809
3801
  "pluginAlias": "faces-cli",
3810
3802
  "pluginName": "faces-cli",
3811
3803
  "pluginType": "core",
@@ -3816,20 +3808,20 @@
3816
3808
  "dist",
3817
3809
  "commands",
3818
3810
  "compile",
3819
- "thread",
3820
- "message.js"
3811
+ "doc",
3812
+ "list.js"
3821
3813
  ]
3822
3814
  },
3823
- "compile:thread:sync": {
3815
+ "compile:doc:make": {
3824
3816
  "aliases": [],
3825
3817
  "args": {
3826
- "thread_id": {
3827
- "description": "Thread ID",
3828
- "name": "thread_id",
3818
+ "doc_id": {
3819
+ "description": "Document ID",
3820
+ "name": "doc_id",
3829
3821
  "required": true
3830
3822
  }
3831
3823
  },
3832
- "description": "Archive and sync a thread into a face",
3824
+ "description": "Compile an existing document (prepare + sync in one step)",
3833
3825
  "flags": {
3834
3826
  "json": {
3835
3827
  "description": "Format output as json.",
@@ -3861,11 +3853,25 @@
3861
3853
  "hasDynamicHelp": false,
3862
3854
  "multiple": false,
3863
3855
  "type": "option"
3856
+ },
3857
+ "timeout": {
3858
+ "description": "Compile timeout in seconds (default: 600)",
3859
+ "name": "timeout",
3860
+ "default": 600,
3861
+ "hasDynamicHelp": false,
3862
+ "multiple": false,
3863
+ "type": "option"
3864
+ },
3865
+ "no-wait": {
3866
+ "description": "Return immediately after triggering compilation. Prints the document ID for manual polling.",
3867
+ "name": "no-wait",
3868
+ "allowNo": false,
3869
+ "type": "boolean"
3864
3870
  }
3865
3871
  },
3866
3872
  "hasDynamicHelp": false,
3867
3873
  "hiddenAliases": [],
3868
- "id": "compile:thread:sync",
3874
+ "id": "compile:doc:make",
3869
3875
  "pluginAlias": "faces-cli",
3870
3876
  "pluginName": "faces-cli",
3871
3877
  "pluginType": "core",
@@ -3876,10 +3882,10 @@
3876
3882
  "dist",
3877
3883
  "commands",
3878
3884
  "compile",
3879
- "thread",
3880
- "sync.js"
3885
+ "doc",
3886
+ "make.js"
3881
3887
  ]
3882
3888
  }
3883
3889
  },
3884
- "version": "1.5.2"
3890
+ "version": "1.5.3"
3885
3891
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "faces-cli",
3
- "version": "1.5.2",
3
+ "version": "1.5.3",
4
4
  "description": "CLI for the Faces AI platform",
5
5
  "type": "module",
6
6
  "author": "sybileak <sybileak@proton.me>",