@simonpeacocks/peacockery-voice-client 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/schema.d.ts +602 -2
  2. package/package.json +1 -1
package/dist/schema.d.ts CHANGED
@@ -738,6 +738,154 @@ export interface paths {
738
738
  patch?: never;
739
739
  trace?: never;
740
740
  };
741
+ "/v1/analyses": {
742
+ parameters: {
743
+ query?: never;
744
+ header?: never;
745
+ path?: never;
746
+ cookie?: never;
747
+ };
748
+ get?: never;
749
+ put?: never;
750
+ /** Transcribe, align with MFA, and attribute speakers to an owned recording */
751
+ post: {
752
+ parameters: {
753
+ query?: never;
754
+ header?: {
755
+ "idempotency-key"?: string;
756
+ };
757
+ path?: never;
758
+ cookie?: never;
759
+ };
760
+ requestBody: {
761
+ content: {
762
+ "application/json": components["schemas"]["AnalysisRequest"];
763
+ };
764
+ };
765
+ responses: {
766
+ /** @description Existing idempotent analysis */
767
+ 200: {
768
+ headers: {
769
+ [name: string]: unknown;
770
+ };
771
+ content: {
772
+ "application/json": components["schemas"]["JobView"];
773
+ };
774
+ };
775
+ /** @description Queued analysis; poll GET /v1/jobs/{job_id} */
776
+ 202: {
777
+ headers: {
778
+ [name: string]: unknown;
779
+ };
780
+ content: {
781
+ "application/json": components["schemas"]["JobView"];
782
+ };
783
+ };
784
+ /** @description Invalid input or unsupported language */
785
+ 400: {
786
+ headers: {
787
+ [name: string]: unknown;
788
+ };
789
+ content: {
790
+ "application/json": components["schemas"]["ErrorResponse"];
791
+ };
792
+ };
793
+ /** @description Unauthorized */
794
+ 401: {
795
+ headers: {
796
+ [name: string]: unknown;
797
+ };
798
+ content: {
799
+ "application/json": components["schemas"]["ErrorResponse"];
800
+ };
801
+ };
802
+ /** @description Owned upload or session unavailable */
803
+ 404: {
804
+ headers: {
805
+ [name: string]: unknown;
806
+ };
807
+ content: {
808
+ "application/json": components["schemas"]["ErrorResponse"];
809
+ };
810
+ };
811
+ /** @description Idempotency conflict */
812
+ 409: {
813
+ headers: {
814
+ [name: string]: unknown;
815
+ };
816
+ content: {
817
+ "application/json": components["schemas"]["ErrorResponse"];
818
+ };
819
+ };
820
+ };
821
+ };
822
+ delete?: never;
823
+ options?: never;
824
+ head?: never;
825
+ patch?: never;
826
+ trace?: never;
827
+ };
828
+ "/v1/analyses/capabilities": {
829
+ parameters: {
830
+ query?: never;
831
+ header?: never;
832
+ path?: never;
833
+ cookie?: never;
834
+ };
835
+ /** Discover supported analysis inputs and stages */
836
+ get: {
837
+ parameters: {
838
+ query?: never;
839
+ header?: never;
840
+ path?: never;
841
+ cookie?: never;
842
+ };
843
+ requestBody?: never;
844
+ responses: {
845
+ /** @description Deployed analysis contract */
846
+ 200: {
847
+ headers: {
848
+ [name: string]: unknown;
849
+ };
850
+ content: {
851
+ "application/json": {
852
+ /** @enum {string} */
853
+ alignment: "mfa";
854
+ /** @enum {string} */
855
+ diarization: "nemotron-3";
856
+ languages: ("en" | "zh")[];
857
+ /** @enum {number} */
858
+ max_duration_seconds: 900;
859
+ /** @enum {number} */
860
+ max_upload_bytes: 268435456;
861
+ /** @enum {string} */
862
+ speaker_identity: "anonymous_recording_local";
863
+ /** @enum {boolean} */
864
+ supplied_transcript: true;
865
+ /** @enum {string} */
866
+ transcription: "cohere-transcribe";
867
+ };
868
+ };
869
+ };
870
+ /** @description Unauthorized */
871
+ 401: {
872
+ headers: {
873
+ [name: string]: unknown;
874
+ };
875
+ content: {
876
+ "application/json": components["schemas"]["ErrorResponse"];
877
+ };
878
+ };
879
+ };
880
+ };
881
+ put?: never;
882
+ post?: never;
883
+ delete?: never;
884
+ options?: never;
885
+ head?: never;
886
+ patch?: never;
887
+ trace?: never;
888
+ };
741
889
  "/v1/app-installations/attestations": {
742
890
  parameters: {
743
891
  query?: never;
@@ -1288,6 +1436,93 @@ export interface paths {
1288
1436
  patch?: never;
1289
1437
  trace?: never;
1290
1438
  };
1439
+ "/v1/diarizations": {
1440
+ parameters: {
1441
+ query?: never;
1442
+ header?: never;
1443
+ path?: never;
1444
+ cookie?: never;
1445
+ };
1446
+ get?: never;
1447
+ put?: never;
1448
+ /** Create a standalone speaker-track job */
1449
+ post: {
1450
+ parameters: {
1451
+ query?: never;
1452
+ header?: {
1453
+ "idempotency-key"?: string;
1454
+ };
1455
+ path?: never;
1456
+ cookie?: never;
1457
+ };
1458
+ requestBody: {
1459
+ content: {
1460
+ "application/json": components["schemas"]["DiarizationRequest"];
1461
+ };
1462
+ };
1463
+ responses: {
1464
+ /** @description Existing idempotent job */
1465
+ 200: {
1466
+ headers: {
1467
+ [name: string]: unknown;
1468
+ };
1469
+ content: {
1470
+ "application/json": components["schemas"]["JobView"];
1471
+ };
1472
+ };
1473
+ /** @description Queued diarization */
1474
+ 202: {
1475
+ headers: {
1476
+ [name: string]: unknown;
1477
+ };
1478
+ content: {
1479
+ "application/json": components["schemas"]["JobView"];
1480
+ };
1481
+ };
1482
+ /** @description Invalid request */
1483
+ 400: {
1484
+ headers: {
1485
+ [name: string]: unknown;
1486
+ };
1487
+ content: {
1488
+ "application/json": components["schemas"]["ErrorResponse"];
1489
+ };
1490
+ };
1491
+ /** @description Unauthorized */
1492
+ 401: {
1493
+ headers: {
1494
+ [name: string]: unknown;
1495
+ };
1496
+ content: {
1497
+ "application/json": components["schemas"]["ErrorResponse"];
1498
+ };
1499
+ };
1500
+ /** @description Owned input or linked transcript unavailable */
1501
+ 404: {
1502
+ headers: {
1503
+ [name: string]: unknown;
1504
+ };
1505
+ content: {
1506
+ "application/json": components["schemas"]["ErrorResponse"];
1507
+ };
1508
+ };
1509
+ /** @description Idempotency conflict */
1510
+ 409: {
1511
+ headers: {
1512
+ [name: string]: unknown;
1513
+ };
1514
+ content: {
1515
+ "application/json": components["schemas"]["ErrorResponse"];
1516
+ };
1517
+ };
1518
+ };
1519
+ };
1520
+ delete?: never;
1521
+ options?: never;
1522
+ head?: never;
1523
+ patch?: never;
1524
+ trace?: never;
1525
+ };
1291
1526
  "/v1/jobs/{job_id}": {
1292
1527
  parameters: {
1293
1528
  query?: never;
@@ -1344,6 +1579,124 @@ export interface paths {
1344
1579
  patch?: never;
1345
1580
  trace?: never;
1346
1581
  };
1582
+ "/v1/jobs/{job_id}/speaker-labels": {
1583
+ parameters: {
1584
+ query?: never;
1585
+ header?: never;
1586
+ path?: never;
1587
+ cookie?: never;
1588
+ };
1589
+ /** Read the editable speaker-name overlay */
1590
+ get: {
1591
+ parameters: {
1592
+ query?: never;
1593
+ header?: never;
1594
+ path: {
1595
+ job_id: string;
1596
+ };
1597
+ cookie?: never;
1598
+ };
1599
+ requestBody?: never;
1600
+ responses: {
1601
+ /** @description User-supplied labels, keyed by recording-local speaker ID */
1602
+ 200: {
1603
+ headers: {
1604
+ [name: string]: unknown;
1605
+ };
1606
+ content: {
1607
+ "application/json": components["schemas"]["SpeakerLabels"];
1608
+ };
1609
+ };
1610
+ /** @description Unknown speaker or incomplete analysis */
1611
+ 400: {
1612
+ headers: {
1613
+ [name: string]: unknown;
1614
+ };
1615
+ content: {
1616
+ "application/json": components["schemas"]["ErrorResponse"];
1617
+ };
1618
+ };
1619
+ /** @description Unauthorized */
1620
+ 401: {
1621
+ headers: {
1622
+ [name: string]: unknown;
1623
+ };
1624
+ content: {
1625
+ "application/json": components["schemas"]["ErrorResponse"];
1626
+ };
1627
+ };
1628
+ /** @description Owned analysis unavailable */
1629
+ 404: {
1630
+ headers: {
1631
+ [name: string]: unknown;
1632
+ };
1633
+ content: {
1634
+ "application/json": components["schemas"]["ErrorResponse"];
1635
+ };
1636
+ };
1637
+ };
1638
+ };
1639
+ /** Replace confirmed speaker names; preserve the immutable analysis */
1640
+ put: {
1641
+ parameters: {
1642
+ query?: never;
1643
+ header?: never;
1644
+ path: {
1645
+ job_id: string;
1646
+ };
1647
+ cookie?: never;
1648
+ };
1649
+ requestBody: {
1650
+ content: {
1651
+ "application/json": components["schemas"]["SpeakerLabels"];
1652
+ };
1653
+ };
1654
+ responses: {
1655
+ /** @description User-supplied labels, keyed by recording-local speaker ID */
1656
+ 200: {
1657
+ headers: {
1658
+ [name: string]: unknown;
1659
+ };
1660
+ content: {
1661
+ "application/json": components["schemas"]["SpeakerLabels"];
1662
+ };
1663
+ };
1664
+ /** @description Unknown speaker or incomplete analysis */
1665
+ 400: {
1666
+ headers: {
1667
+ [name: string]: unknown;
1668
+ };
1669
+ content: {
1670
+ "application/json": components["schemas"]["ErrorResponse"];
1671
+ };
1672
+ };
1673
+ /** @description Unauthorized */
1674
+ 401: {
1675
+ headers: {
1676
+ [name: string]: unknown;
1677
+ };
1678
+ content: {
1679
+ "application/json": components["schemas"]["ErrorResponse"];
1680
+ };
1681
+ };
1682
+ /** @description Owned analysis unavailable */
1683
+ 404: {
1684
+ headers: {
1685
+ [name: string]: unknown;
1686
+ };
1687
+ content: {
1688
+ "application/json": components["schemas"]["ErrorResponse"];
1689
+ };
1690
+ };
1691
+ };
1692
+ };
1693
+ post?: never;
1694
+ delete?: never;
1695
+ options?: never;
1696
+ head?: never;
1697
+ patch?: never;
1698
+ trace?: never;
1699
+ };
1347
1700
  "/v1/models": {
1348
1701
  parameters: {
1349
1702
  query?: never;
@@ -1549,6 +1902,122 @@ export interface paths {
1549
1902
  patch?: never;
1550
1903
  trace?: never;
1551
1904
  };
1905
+ "/v1/realtime/sessions/{session_id}/analyses": {
1906
+ parameters: {
1907
+ query?: never;
1908
+ header?: never;
1909
+ path?: never;
1910
+ cookie?: never;
1911
+ };
1912
+ /** List post-session analyses of uploaded recordings */
1913
+ get: {
1914
+ parameters: {
1915
+ query?: never;
1916
+ header?: never;
1917
+ path: {
1918
+ session_id: string;
1919
+ };
1920
+ cookie?: never;
1921
+ };
1922
+ requestBody?: never;
1923
+ responses: {
1924
+ /** @description Latest 100 linked analyses */
1925
+ 200: {
1926
+ headers: {
1927
+ [name: string]: unknown;
1928
+ };
1929
+ content: {
1930
+ "application/json": {
1931
+ jobs: components["schemas"]["JobView"][];
1932
+ };
1933
+ };
1934
+ };
1935
+ /** @description Unauthorized */
1936
+ 401: {
1937
+ headers: {
1938
+ [name: string]: unknown;
1939
+ };
1940
+ content: {
1941
+ "application/json": components["schemas"]["ErrorResponse"];
1942
+ };
1943
+ };
1944
+ /** @description Owned session unavailable */
1945
+ 404: {
1946
+ headers: {
1947
+ [name: string]: unknown;
1948
+ };
1949
+ content: {
1950
+ "application/json": components["schemas"]["ErrorResponse"];
1951
+ };
1952
+ };
1953
+ };
1954
+ };
1955
+ put?: never;
1956
+ post?: never;
1957
+ delete?: never;
1958
+ options?: never;
1959
+ head?: never;
1960
+ patch?: never;
1961
+ trace?: never;
1962
+ };
1963
+ "/v1/realtime/sessions/{session_id}/diarizations": {
1964
+ parameters: {
1965
+ query?: never;
1966
+ header?: never;
1967
+ path?: never;
1968
+ cookie?: never;
1969
+ };
1970
+ /** List speaker-track jobs linked to an owned realtime session */
1971
+ get: {
1972
+ parameters: {
1973
+ query?: never;
1974
+ header?: never;
1975
+ path: {
1976
+ session_id: string;
1977
+ };
1978
+ cookie?: never;
1979
+ };
1980
+ requestBody?: never;
1981
+ responses: {
1982
+ /** @description Linked jobs with separate speaker artifacts */
1983
+ 200: {
1984
+ headers: {
1985
+ [name: string]: unknown;
1986
+ };
1987
+ content: {
1988
+ "application/json": {
1989
+ jobs: components["schemas"]["JobView"][];
1990
+ };
1991
+ };
1992
+ };
1993
+ /** @description Unauthorized */
1994
+ 401: {
1995
+ headers: {
1996
+ [name: string]: unknown;
1997
+ };
1998
+ content: {
1999
+ "application/json": components["schemas"]["ErrorResponse"];
2000
+ };
2001
+ };
2002
+ /** @description Session unavailable */
2003
+ 404: {
2004
+ headers: {
2005
+ [name: string]: unknown;
2006
+ };
2007
+ content: {
2008
+ "application/json": components["schemas"]["ErrorResponse"];
2009
+ };
2010
+ };
2011
+ };
2012
+ };
2013
+ put?: never;
2014
+ post?: never;
2015
+ delete?: never;
2016
+ options?: never;
2017
+ head?: never;
2018
+ patch?: never;
2019
+ trace?: never;
2020
+ };
1552
2021
  "/v1/text": {
1553
2022
  parameters: {
1554
2023
  query?: never;
@@ -2080,10 +2549,10 @@ export interface components {
2080
2549
  error_details: components["schemas"]["ProviderFailureDiagnostic"];
2081
2550
  job_id: string;
2082
2551
  /** @enum {string} */
2083
- kind: "transcription";
2552
+ kind: "transcription" | "diarization" | "analysis";
2084
2553
  progress: number;
2085
2554
  queued_at: string | null;
2086
- result: components["schemas"]["TranscriptionArtifact"] | null;
2555
+ result: components["schemas"]["TranscriptionArtifact"] | components["schemas"]["DiarizationArtifact"] | components["schemas"]["AnalysisArtifact"] | null;
2087
2556
  started_at: string | null;
2088
2557
  /** @enum {string} */
2089
2558
  status: "pending" | "queued" | "running" | "succeeded" | "failed";
@@ -2247,6 +2716,116 @@ export interface components {
2247
2716
  message: string;
2248
2717
  }[];
2249
2718
  };
2719
+ DiarizationArtifact: {
2720
+ /** @enum {string} */
2721
+ artifact_type: "speaker_tracks";
2722
+ /** @enum {string} */
2723
+ attribution: "separate_timeline_requires_alignment";
2724
+ duration_seconds: number;
2725
+ input: {
2726
+ key: string;
2727
+ r2_etag: string;
2728
+ r2_version: string;
2729
+ sha256: string;
2730
+ size_bytes: number;
2731
+ };
2732
+ processing_seconds: number;
2733
+ provenance: {
2734
+ completed_at: string;
2735
+ device: string;
2736
+ job_id: string;
2737
+ /** @enum {string} */
2738
+ model: "nvidia/Nemotron-3-Diarization";
2739
+ model_revision: string;
2740
+ /** @enum {string} */
2741
+ provider: "gmk";
2742
+ provider_job_id: string;
2743
+ /** @enum {string} */
2744
+ revision_source: "deployment_manifest";
2745
+ runtime: string;
2746
+ /** @enum {string} */
2747
+ speaker_origin: "model_activity";
2748
+ };
2749
+ /** @enum {number} */
2750
+ schema_version: 1;
2751
+ segmentation: {
2752
+ /** @enum {number} */
2753
+ minimum_duration_seconds: 0;
2754
+ /** @enum {number} */
2755
+ offset: 0.5;
2756
+ /** @enum {number} */
2757
+ onset: 0.5;
2758
+ /** @enum {number} */
2759
+ padding_seconds: 0;
2760
+ /** @enum {string} */
2761
+ preset: "neutral-0.5";
2762
+ };
2763
+ /** @enum {string} */
2764
+ speaker_identity: "anonymous_recording_local";
2765
+ tracks: {
2766
+ end_seconds: number;
2767
+ speaker: string;
2768
+ start_seconds: number;
2769
+ }[];
2770
+ };
2771
+ AnalysisArtifact: {
2772
+ alignment: {
2773
+ audio_sha256: string;
2774
+ duration_seconds: number;
2775
+ /** @enum {string} */
2776
+ model: "english_mfa" | "mandarin_mfa";
2777
+ model_revision: string;
2778
+ processing_seconds: number;
2779
+ rejected_intervals: number;
2780
+ runtime: string;
2781
+ /** @enum {boolean} */
2782
+ speaker_adaptation: false;
2783
+ transcript_sha256: string;
2784
+ unknown_tokens: number;
2785
+ };
2786
+ /** @enum {string} */
2787
+ artifact_type: "aligned_transcript";
2788
+ diarization: components["schemas"]["DiarizationArtifact"];
2789
+ /** @enum {string} */
2790
+ language: "en" | "zh";
2791
+ /** @enum {number} */
2792
+ schema_version: 1;
2793
+ speakers: {
2794
+ default_label: string;
2795
+ id: string;
2796
+ }[];
2797
+ text: string;
2798
+ /** @enum {string} */
2799
+ text_source: "cohere" | "provided";
2800
+ transcription_job_id: string | null;
2801
+ turns: {
2802
+ end_seconds: number;
2803
+ speaker: string | null;
2804
+ /** @enum {string} */
2805
+ speaker_status: "assigned" | "ambiguous" | "uncovered";
2806
+ start_seconds: number;
2807
+ text: string;
2808
+ word_end_index: number;
2809
+ word_start_index: number;
2810
+ }[];
2811
+ warnings: string[];
2812
+ /** @enum {string} */
2813
+ word_text_semantics: "normalized_tokens_original_text_preserved";
2814
+ words: {
2815
+ end_seconds: number;
2816
+ start_seconds: number;
2817
+ text: string;
2818
+ speaker: string | null;
2819
+ speaker_candidates: {
2820
+ coverage: number;
2821
+ speaker: string;
2822
+ }[];
2823
+ /** @enum {string} */
2824
+ speaker_status: "assigned" | "ambiguous" | "uncovered";
2825
+ /** @enum {string} */
2826
+ timing_source: "mfa";
2827
+ }[];
2828
+ };
2250
2829
  TranscriptionRequest: {
2251
2830
  asr_model: string;
2252
2831
  diarize?: boolean;
@@ -2263,6 +2842,27 @@ export interface components {
2263
2842
  */
2264
2843
  sync?: boolean;
2265
2844
  };
2845
+ DiarizationRequest: {
2846
+ input_key: string;
2847
+ session_id?: string;
2848
+ transcription_job_id?: string;
2849
+ };
2850
+ AnalysisRequest: {
2851
+ /** @description Completed owned upload: at most 256 MiB and 900 seconds of audio */
2852
+ input_key: string;
2853
+ /**
2854
+ * @description Language-specific MFA bundle; use homogeneous-language recordings
2855
+ * @enum {string}
2856
+ */
2857
+ language: "en" | "zh";
2858
+ session_id?: string;
2859
+ transcript?: string;
2860
+ };
2861
+ SpeakerLabels: {
2862
+ labels: {
2863
+ [key: string]: string;
2864
+ };
2865
+ };
2266
2866
  TextResponse: {
2267
2867
  cache: components["schemas"]["TextCacheStatuses"];
2268
2868
  context: components["schemas"]["TextExecutionContext"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simonpeacocks/peacockery-voice-client",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Generated TypeScript client for the Peacockery Voice API",
5
5
  "repository": {
6
6
  "type": "git",