@corti/sdk 1.0.0-rc → 1.0.0-rc-8

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 (98) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/BaseClient.js +2 -2
  3. package/dist/cjs/api/resources/codes/client/Client.d.ts +1 -1
  4. package/dist/cjs/api/resources/codes/client/Client.js +1 -1
  5. package/dist/cjs/api/resources/stream/client/Socket.d.ts +1 -1
  6. package/dist/cjs/api/resources/transcribe/client/Socket.d.ts +1 -1
  7. package/dist/cjs/api/types/CommonCodingSystemEnum.d.ts +5 -0
  8. package/dist/cjs/api/types/CommonCodingSystemEnum.js +5 -0
  9. package/dist/cjs/api/types/StreamConfigStatusMessageType.d.ts +0 -1
  10. package/dist/cjs/api/types/StreamConfigStatusMessageType.js +0 -1
  11. package/dist/cjs/api/types/StreamDeltaUsageMessage.d.ts +5 -0
  12. package/dist/cjs/api/types/StreamDeltaUsageMessage.js +3 -0
  13. package/dist/cjs/api/types/TranscribeConfigStatusMessageType.d.ts +2 -0
  14. package/dist/cjs/api/types/TranscribeConfigStatusMessageType.js +2 -0
  15. package/dist/cjs/api/types/TranscribeDeltaUsageMessage.d.ts +5 -0
  16. package/dist/cjs/api/types/TranscribeDeltaUsageMessage.js +3 -0
  17. package/dist/cjs/api/types/index.d.ts +2 -0
  18. package/dist/cjs/api/types/index.js +2 -0
  19. package/dist/cjs/custom/CortiClient.d.ts +25 -69
  20. package/dist/cjs/custom/CortiClient.js +69 -0
  21. package/dist/cjs/custom/agents/CustomAgents.d.ts +20 -0
  22. package/dist/cjs/custom/agents/CustomAgents.js +73 -0
  23. package/dist/cjs/custom/auth/CortiAuth.d.ts +27 -0
  24. package/dist/cjs/custom/auth/CortiAuth.js +10 -4
  25. package/dist/cjs/custom/stream/CustomStream.js +5 -3
  26. package/dist/cjs/custom/transcribe/CustomTranscribe.js +6 -2
  27. package/dist/cjs/custom/utils/encodeHeadersAsWsProtocols.js +2 -11
  28. package/dist/cjs/custom/utils/sdkHeaderNames.d.ts +1 -0
  29. package/dist/cjs/custom/utils/sdkHeaderNames.js +12 -0
  30. package/dist/cjs/custom/utils/stripFernNormalizedHeaders.d.ts +5 -0
  31. package/dist/cjs/custom/utils/stripFernNormalizedHeaders.js +27 -0
  32. package/dist/cjs/serialization/resources/stream/client/socket/StreamSocketResponse.d.ts +3 -2
  33. package/dist/cjs/serialization/resources/stream/client/socket/StreamSocketResponse.js +2 -0
  34. package/dist/cjs/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.d.ts +3 -2
  35. package/dist/cjs/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.js +2 -0
  36. package/dist/cjs/serialization/types/CommonCodingSystemEnum.d.ts +1 -1
  37. package/dist/cjs/serialization/types/CommonCodingSystemEnum.js +5 -0
  38. package/dist/cjs/serialization/types/StreamConfigStatusMessageType.d.ts +1 -1
  39. package/dist/cjs/serialization/types/StreamConfigStatusMessageType.js +0 -1
  40. package/dist/cjs/serialization/types/StreamDeltaUsageMessage.d.ts +10 -0
  41. package/dist/cjs/serialization/types/StreamDeltaUsageMessage.js +42 -0
  42. package/dist/cjs/serialization/types/TranscribeConfigStatusMessageType.d.ts +1 -1
  43. package/dist/cjs/serialization/types/TranscribeConfigStatusMessageType.js +7 -1
  44. package/dist/cjs/serialization/types/TranscribeDeltaUsageMessage.d.ts +10 -0
  45. package/dist/cjs/serialization/types/TranscribeDeltaUsageMessage.js +42 -0
  46. package/dist/cjs/serialization/types/index.d.ts +2 -0
  47. package/dist/cjs/serialization/types/index.js +2 -0
  48. package/dist/cjs/version.d.ts +1 -1
  49. package/dist/cjs/version.js +1 -1
  50. package/dist/esm/BaseClient.mjs +2 -2
  51. package/dist/esm/api/resources/codes/client/Client.d.mts +1 -1
  52. package/dist/esm/api/resources/codes/client/Client.mjs +1 -1
  53. package/dist/esm/api/resources/stream/client/Socket.d.mts +1 -1
  54. package/dist/esm/api/resources/transcribe/client/Socket.d.mts +1 -1
  55. package/dist/esm/api/types/CommonCodingSystemEnum.d.mts +5 -0
  56. package/dist/esm/api/types/CommonCodingSystemEnum.mjs +5 -0
  57. package/dist/esm/api/types/StreamConfigStatusMessageType.d.mts +0 -1
  58. package/dist/esm/api/types/StreamConfigStatusMessageType.mjs +0 -1
  59. package/dist/esm/api/types/StreamDeltaUsageMessage.d.mts +5 -0
  60. package/dist/esm/api/types/StreamDeltaUsageMessage.mjs +2 -0
  61. package/dist/esm/api/types/TranscribeConfigStatusMessageType.d.mts +2 -0
  62. package/dist/esm/api/types/TranscribeConfigStatusMessageType.mjs +2 -0
  63. package/dist/esm/api/types/TranscribeDeltaUsageMessage.d.mts +5 -0
  64. package/dist/esm/api/types/TranscribeDeltaUsageMessage.mjs +2 -0
  65. package/dist/esm/api/types/index.d.mts +2 -0
  66. package/dist/esm/api/types/index.mjs +2 -0
  67. package/dist/esm/custom/CortiClient.d.mts +25 -69
  68. package/dist/esm/custom/CortiClient.mjs +36 -0
  69. package/dist/esm/custom/agents/CustomAgents.d.mts +20 -0
  70. package/dist/esm/custom/agents/CustomAgents.mjs +36 -0
  71. package/dist/esm/custom/auth/CortiAuth.d.mts +27 -0
  72. package/dist/esm/custom/auth/CortiAuth.mjs +10 -4
  73. package/dist/esm/custom/stream/CustomStream.mjs +5 -3
  74. package/dist/esm/custom/transcribe/CustomTranscribe.mjs +6 -2
  75. package/dist/esm/custom/utils/encodeHeadersAsWsProtocols.mjs +1 -10
  76. package/dist/esm/custom/utils/sdkHeaderNames.d.mts +1 -0
  77. package/dist/esm/custom/utils/sdkHeaderNames.mjs +9 -0
  78. package/dist/esm/custom/utils/stripFernNormalizedHeaders.d.mts +5 -0
  79. package/dist/esm/custom/utils/stripFernNormalizedHeaders.mjs +24 -0
  80. package/dist/esm/serialization/resources/stream/client/socket/StreamSocketResponse.d.mts +3 -2
  81. package/dist/esm/serialization/resources/stream/client/socket/StreamSocketResponse.mjs +2 -0
  82. package/dist/esm/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.d.mts +3 -2
  83. package/dist/esm/serialization/resources/transcribe/client/socket/TranscribeSocketResponse.mjs +2 -0
  84. package/dist/esm/serialization/types/CommonCodingSystemEnum.d.mts +1 -1
  85. package/dist/esm/serialization/types/CommonCodingSystemEnum.mjs +5 -0
  86. package/dist/esm/serialization/types/StreamConfigStatusMessageType.d.mts +1 -1
  87. package/dist/esm/serialization/types/StreamConfigStatusMessageType.mjs +0 -1
  88. package/dist/esm/serialization/types/StreamDeltaUsageMessage.d.mts +10 -0
  89. package/dist/esm/serialization/types/StreamDeltaUsageMessage.mjs +6 -0
  90. package/dist/esm/serialization/types/TranscribeConfigStatusMessageType.d.mts +1 -1
  91. package/dist/esm/serialization/types/TranscribeConfigStatusMessageType.mjs +7 -1
  92. package/dist/esm/serialization/types/TranscribeDeltaUsageMessage.d.mts +10 -0
  93. package/dist/esm/serialization/types/TranscribeDeltaUsageMessage.mjs +6 -0
  94. package/dist/esm/serialization/types/index.d.mts +2 -0
  95. package/dist/esm/serialization/types/index.mjs +2 -0
  96. package/dist/esm/version.d.mts +1 -1
  97. package/dist/esm/version.mjs +1 -1
  98. package/package.json +1 -1
package/README.md CHANGED
@@ -29,7 +29,7 @@ The Corti JavaScript library provides convenient access to the Corti APIs from J
29
29
 
30
30
  ## Documentation
31
31
 
32
- - [Documentation](https://docs.corti.ai/)
32
+ - [Documentation](https://docs.corti.ai/sdk/js)
33
33
  - [API Reference](https://docs.corti.ai/api-reference)
34
34
  - [Console](https://console.corti.app/) — get your credentials here
35
35
  - [Examples](https://github.com/corticph/corti-examples)
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
43
43
  const headers = (0, headers_js_1.mergeHeaders)({
44
44
  "X-Fern-Language": "JavaScript",
45
45
  "X-Fern-SDK-Name": "@corti/sdk",
46
- "X-Fern-SDK-Version": "1.0.0-rc",
47
- "User-Agent": "@corti/sdk/1.0.0-rc",
46
+ "X-Fern-SDK-Version": "1.0.0-rc-8",
47
+ "User-Agent": "@corti/sdk/1.0.0-rc-8",
48
48
  "X-Fern-Runtime": core.RUNTIME.type,
49
49
  "X-Fern-Runtime-Version": core.RUNTIME.version,
50
50
  "Tenant-Name": options === null || options === void 0 ? void 0 : options.tenantName,
@@ -11,7 +11,7 @@ export declare class CodesClient {
11
11
  protected readonly _options: NormalizedClientOptionsWithAuth<CodesClient.Options>;
12
12
  constructor(options: CodesClient.Options);
13
13
  /**
14
- * Predict medical codes from provided context.<br/><Note>This is a stateless endpoint, designed to predict ICD-10-CM, ICD-10-PCS, ICD-10-UK and CPT codes based on input text string or documentId.<br/><br/>More than one code system may be defined in a single request.<br/><br/>Code prediction requests have two possible values for context:<br/>- `text`: One set of code prediction results will be returned based on all input text defined.<br/>- `documentId`: Code prediction will be based on that defined document only.<br/><br/>The response includes two sets of results:<br/>- `Codes`: Codes predicted by the model.<br/>- `Candidates`: Lower-confidence codes the model considered potentially relevant but excluded from the predicted set.<br/><br/>All predicted code results are based on input context defined in the request only (not other external data or assets associated with an interaction).</Note>
14
+ * Predict medical codes from provided context.<br/><Note>This is a stateless endpoint, designed to predict ICD-10-CM, ICD-10-PCS, ICD-10-UK, CIM-10-FR, ICD-10-GM, OPCS-4 and CPT codes based on input text string or documentId.<br/><br/>More than one code system may be defined in a single request.<br/><br/>Code prediction requests have two possible values for context:<br/>- `text`: One set of code prediction results will be returned based on all input text defined.<br/>- `documentId`: Code prediction will be based on that defined document only.<br/><br/>The response includes two sets of results:<br/>- `Codes`: Codes predicted by the model.<br/>- `Candidates`: Lower-confidence codes the model considered potentially relevant but excluded from the predicted set.<br/><br/>All predicted code results are based on input context defined in the request only (not other external data or assets associated with an interaction).</Note>
15
15
  *
16
16
  * @param {Corti.CodesGeneralPredictRequest} request
17
17
  * @param {CodesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -56,7 +56,7 @@ class CodesClient {
56
56
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
57
57
  }
58
58
  /**
59
- * Predict medical codes from provided context.<br/><Note>This is a stateless endpoint, designed to predict ICD-10-CM, ICD-10-PCS, ICD-10-UK and CPT codes based on input text string or documentId.<br/><br/>More than one code system may be defined in a single request.<br/><br/>Code prediction requests have two possible values for context:<br/>- `text`: One set of code prediction results will be returned based on all input text defined.<br/>- `documentId`: Code prediction will be based on that defined document only.<br/><br/>The response includes two sets of results:<br/>- `Codes`: Codes predicted by the model.<br/>- `Candidates`: Lower-confidence codes the model considered potentially relevant but excluded from the predicted set.<br/><br/>All predicted code results are based on input context defined in the request only (not other external data or assets associated with an interaction).</Note>
59
+ * Predict medical codes from provided context.<br/><Note>This is a stateless endpoint, designed to predict ICD-10-CM, ICD-10-PCS, ICD-10-UK, CIM-10-FR, ICD-10-GM, OPCS-4 and CPT codes based on input text string or documentId.<br/><br/>More than one code system may be defined in a single request.<br/><br/>Code prediction requests have two possible values for context:<br/>- `text`: One set of code prediction results will be returned based on all input text defined.<br/>- `documentId`: Code prediction will be based on that defined document only.<br/><br/>The response includes two sets of results:<br/>- `Codes`: Codes predicted by the model.<br/>- `Candidates`: Lower-confidence codes the model considered potentially relevant but excluded from the predicted set.<br/><br/>All predicted code results are based on input context defined in the request only (not other external data or assets associated with an interaction).</Note>
60
60
  *
61
61
  * @param {Corti.CodesGeneralPredictRequest} request
62
62
  * @param {CodesClient.RequestOptions} requestOptions - Request-specific configuration.
@@ -4,7 +4,7 @@ export declare namespace StreamSocket {
4
4
  interface Args {
5
5
  socket: core.ReconnectingWebSocket;
6
6
  }
7
- type Response = Corti.StreamTranscriptMessage | Corti.StreamFactsMessage | Corti.StreamFlushedMessage | Corti.StreamEndedMessage | Corti.StreamUsageMessage | Corti.StreamErrorMessage | Corti.StreamConfigStatusMessage;
7
+ type Response = Corti.StreamTranscriptMessage | Corti.StreamFactsMessage | Corti.StreamFlushedMessage | Corti.StreamDeltaUsageMessage | Corti.StreamEndedMessage | Corti.StreamUsageMessage | Corti.StreamErrorMessage | Corti.StreamConfigStatusMessage;
8
8
  type EventHandlers = {
9
9
  open?: () => void;
10
10
  message?: (message: Response) => void;
@@ -4,7 +4,7 @@ export declare namespace TranscribeSocket {
4
4
  interface Args {
5
5
  socket: core.ReconnectingWebSocket;
6
6
  }
7
- type Response = Corti.TranscribeUsageMessage | Corti.TranscribeFlushedMessage | Corti.TranscribeEndedMessage | Corti.TranscribeErrorMessage | Corti.TranscribeTranscriptMessage | Corti.TranscribeCommandMessage | Corti.TranscribeConfigStatusMessage;
7
+ type Response = Corti.TranscribeUsageMessage | Corti.TranscribeFlushedMessage | Corti.TranscribeDeltaUsageMessage | Corti.TranscribeEndedMessage | Corti.TranscribeErrorMessage | Corti.TranscribeTranscriptMessage | Corti.TranscribeCommandMessage | Corti.TranscribeConfigStatusMessage;
8
8
  type EventHandlers = {
9
9
  open?: () => void;
10
10
  message?: (message: Response) => void;
@@ -7,5 +7,10 @@ export declare const CommonCodingSystemEnum: {
7
7
  readonly Icd10IntOutpatient: "icd10int-outpatient";
8
8
  readonly Icd10UkInpatient: "icd10uk-inpatient";
9
9
  readonly Icd10UkOutpatient: "icd10uk-outpatient";
10
+ readonly Cim10FrInpatient: "cim10fr-inpatient";
11
+ readonly Cim10FrOutpatient: "cim10fr-outpatient";
12
+ readonly Icd10GmInpatient: "icd10gm-inpatient";
13
+ readonly Icd10GmOutpatient: "icd10gm-outpatient";
14
+ readonly Opcs4: "opcs4";
10
15
  };
11
16
  export type CommonCodingSystemEnum = (typeof CommonCodingSystemEnum)[keyof typeof CommonCodingSystemEnum];
@@ -11,4 +11,9 @@ exports.CommonCodingSystemEnum = {
11
11
  Icd10IntOutpatient: "icd10int-outpatient",
12
12
  Icd10UkInpatient: "icd10uk-inpatient",
13
13
  Icd10UkOutpatient: "icd10uk-outpatient",
14
+ Cim10FrInpatient: "cim10fr-inpatient",
15
+ Cim10FrOutpatient: "cim10fr-outpatient",
16
+ Icd10GmInpatient: "icd10gm-inpatient",
17
+ Icd10GmOutpatient: "icd10gm-outpatient",
18
+ Opcs4: "opcs4",
14
19
  };
@@ -5,6 +5,5 @@ export declare const StreamConfigStatusMessageType: {
5
5
  readonly ConfigMissing: "CONFIG_MISSING";
6
6
  readonly ConfigNotProvided: "CONFIG_NOT_PROVIDED";
7
7
  readonly ConfigAlreadyReceived: "CONFIG_ALREADY_RECEIVED";
8
- readonly ConfigTimeout: "CONFIG_TIMEOUT";
9
8
  };
10
9
  export type StreamConfigStatusMessageType = (typeof StreamConfigStatusMessageType)[keyof typeof StreamConfigStatusMessageType];
@@ -9,5 +9,4 @@ exports.StreamConfigStatusMessageType = {
9
9
  ConfigMissing: "CONFIG_MISSING",
10
10
  ConfigNotProvided: "CONFIG_NOT_PROVIDED",
11
11
  ConfigAlreadyReceived: "CONFIG_ALREADY_RECEIVED",
12
- ConfigTimeout: "CONFIG_TIMEOUT",
13
12
  };
@@ -0,0 +1,5 @@
1
+ export interface StreamDeltaUsageMessage {
2
+ type: "delta_usage";
3
+ /** Approximate credits consumed since recording started. */
4
+ credits: number;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -3,5 +3,7 @@ export declare const TranscribeConfigStatusMessageType: {
3
3
  readonly ConfigAccepted: "CONFIG_ACCEPTED";
4
4
  readonly ConfigDenied: "CONFIG_DENIED";
5
5
  readonly ConfigTimeout: "CONFIG_TIMEOUT";
6
+ readonly ConfigAlreadyReceived: "CONFIG_ALREADY_RECEIVED";
7
+ readonly ConfigMissing: "CONFIG_MISSING";
6
8
  };
7
9
  export type TranscribeConfigStatusMessageType = (typeof TranscribeConfigStatusMessageType)[keyof typeof TranscribeConfigStatusMessageType];
@@ -7,4 +7,6 @@ exports.TranscribeConfigStatusMessageType = {
7
7
  ConfigAccepted: "CONFIG_ACCEPTED",
8
8
  ConfigDenied: "CONFIG_DENIED",
9
9
  ConfigTimeout: "CONFIG_TIMEOUT",
10
+ ConfigAlreadyReceived: "CONFIG_ALREADY_RECEIVED",
11
+ ConfigMissing: "CONFIG_MISSING",
10
12
  };
@@ -0,0 +1,5 @@
1
+ export interface TranscribeDeltaUsageMessage {
2
+ type: "delta_usage";
3
+ /** Approximate credits consumed since recording started. */
4
+ credits: number;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -136,6 +136,7 @@ export * from "./StreamConfigStatusMessage.js";
136
136
  export * from "./StreamConfigStatusMessageType.js";
137
137
  export * from "./StreamConfigTranscription.js";
138
138
  export * from "./StreamConfigXCortiRetentionPolicy.js";
139
+ export * from "./StreamDeltaUsageMessage.js";
139
140
  export * from "./StreamEndedMessage.js";
140
141
  export * from "./StreamEndMessage.js";
141
142
  export * from "./StreamErrorDetail.js";
@@ -168,6 +169,7 @@ export * from "./TranscribeConfig.js";
168
169
  export * from "./TranscribeConfigMessage.js";
169
170
  export * from "./TranscribeConfigStatusMessage.js";
170
171
  export * from "./TranscribeConfigStatusMessageType.js";
172
+ export * from "./TranscribeDeltaUsageMessage.js";
171
173
  export * from "./TranscribeEndedMessage.js";
172
174
  export * from "./TranscribeEndMessage.js";
173
175
  export * from "./TranscribeErrorMessage.js";
@@ -152,6 +152,7 @@ __exportStar(require("./StreamConfigStatusMessage.js"), exports);
152
152
  __exportStar(require("./StreamConfigStatusMessageType.js"), exports);
153
153
  __exportStar(require("./StreamConfigTranscription.js"), exports);
154
154
  __exportStar(require("./StreamConfigXCortiRetentionPolicy.js"), exports);
155
+ __exportStar(require("./StreamDeltaUsageMessage.js"), exports);
155
156
  __exportStar(require("./StreamEndedMessage.js"), exports);
156
157
  __exportStar(require("./StreamEndMessage.js"), exports);
157
158
  __exportStar(require("./StreamErrorDetail.js"), exports);
@@ -184,6 +185,7 @@ __exportStar(require("./TranscribeConfig.js"), exports);
184
185
  __exportStar(require("./TranscribeConfigMessage.js"), exports);
185
186
  __exportStar(require("./TranscribeConfigStatusMessage.js"), exports);
186
187
  __exportStar(require("./TranscribeConfigStatusMessageType.js"), exports);
188
+ __exportStar(require("./TranscribeDeltaUsageMessage.js"), exports);
187
189
  __exportStar(require("./TranscribeEndedMessage.js"), exports);
188
190
  __exportStar(require("./TranscribeEndMessage.js"), exports);
189
191
  __exportStar(require("./TranscribeErrorMessage.js"), exports);
@@ -1,25 +1,10 @@
1
- import type { OAuthAuthProvider } from "../auth/OAuthAuthProvider.js";
2
1
  import { CortiClient as BaseCortiClient } from "../Client.js";
3
2
  import type * as environments from "../environments.js";
3
+ import { CustomAgents } from "./agents/CustomAgents.js";
4
4
  import { CortiAuth } from "./auth/CortiAuth.js";
5
5
  import { CustomStream } from "./stream/CustomStream.js";
6
6
  import { CustomTranscribe } from "./transcribe/CustomTranscribe.js";
7
7
  import { type Environment } from "./utils/environment.js";
8
- type TokenDerivableAuth = {
9
- accessToken: string;
10
- refreshAccessToken?: OAuthAuthProvider.RefreshAccessTokenFunction;
11
- expiresIn?: number;
12
- refreshToken?: string;
13
- refreshExpiresIn?: number;
14
- clientId?: string;
15
- } | {
16
- refreshAccessToken: OAuthAuthProvider.RefreshAccessTokenFunction;
17
- accessToken?: string;
18
- expiresIn?: number;
19
- refreshToken?: string;
20
- refreshExpiresIn?: number;
21
- clientId?: string;
22
- };
23
8
  type OptionsBase = Omit<BaseCortiClient.Options, "clientId" | "clientSecret" | "token" | "environment" | "tenantName" | "baseUrl"> & {
24
9
  withCredentials?: boolean;
25
10
  /**
@@ -30,71 +15,23 @@ type OptionsBase = Omit<BaseCortiClient.Options, "clientId" | "clientSecret" | "
30
15
  encodeHeadersAsWsProtocols?: boolean;
31
16
  };
32
17
  export declare namespace CortiClient {
33
- type Auth = {
34
- clientId: string;
35
- clientSecret: string;
36
- } | {
37
- accessToken: string;
38
- refreshAccessToken?: OAuthAuthProvider.RefreshAccessTokenFunction;
39
- expiresIn?: number;
40
- refreshToken?: string;
41
- refreshExpiresIn?: number;
42
- clientId?: string;
43
- } | {
44
- clientId: string;
45
- username: string;
46
- password: string;
47
- } | {
48
- clientId: string;
49
- clientSecret: string;
50
- code: string;
51
- redirectUri: string;
52
- } | {
53
- clientId: string;
54
- code: string;
55
- redirectUri: string;
56
- codeVerifier?: string;
57
- } | {
58
- refreshAccessToken: OAuthAuthProvider.RefreshAccessTokenFunction;
59
- accessToken?: string;
60
- expiresIn?: number;
61
- refreshToken?: string;
62
- refreshExpiresIn?: number;
63
- clientId?: string;
64
- };
18
+ type Auth = CortiAuth.AuthServer | CortiAuth.AuthTokenDerivable;
65
19
  type Options = (OptionsBase & {
66
- auth: {
67
- clientId: string;
68
- clientSecret: string;
69
- } | {
70
- clientId: string;
71
- username: string;
72
- password: string;
73
- } | {
74
- clientId: string;
75
- clientSecret: string;
76
- code: string;
77
- redirectUri: string;
78
- } | {
79
- clientId: string;
80
- code: string;
81
- redirectUri: string;
82
- codeVerifier?: string;
83
- };
20
+ auth: CortiAuth.AuthServer;
84
21
  tenantName: string;
85
22
  environment: Environment;
86
23
  }) | (OptionsBase & {
87
- auth: TokenDerivableAuth;
24
+ auth: CortiAuth.AuthTokenDerivable;
88
25
  tenantName?: string;
89
26
  environment?: Environment;
90
27
  }) | (OptionsBase & {
91
28
  baseUrl: string;
92
- auth?: CortiClient.Auth;
29
+ auth?: Auth;
93
30
  tenantName?: string;
94
31
  environment?: Environment;
95
32
  }) | (OptionsBase & {
96
33
  environment: environments.CortiEnvironmentUrls;
97
- auth?: CortiClient.Auth;
34
+ auth?: Auth;
98
35
  tenantName?: string;
99
36
  });
100
37
  interface RequestOptions extends BaseCortiClient.RequestOptions {
@@ -104,10 +41,29 @@ export declare class CortiClient extends BaseCortiClient {
104
41
  protected _auth: CortiAuth | undefined;
105
42
  protected _stream: CustomStream | undefined;
106
43
  protected _transcribe: CustomTranscribe | undefined;
44
+ protected _agents: CustomAgents | undefined;
107
45
  private readonly _encodeHeadersAsWsProtocols;
108
46
  constructor(options: CortiClient.Options);
109
47
  get auth(): CortiAuth;
110
48
  get stream(): CustomStream;
111
49
  get transcribe(): CustomTranscribe;
50
+ get agents(): CustomAgents;
51
+ /**
52
+ * Retrieves authentication headers for API requests.
53
+ *
54
+ * This method returns a Headers object containing the Authorization header with a valid
55
+ * bearer token and the Tenant-Name header. The token is automatically refreshed if needed.
56
+ *
57
+ * @returns A Promise that resolves to a Headers object with Authorization and Tenant-Name headers
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const client = new CortiClient({ ... });
62
+ * const headers = await client.getAuthHeaders();
63
+ * console.log(headers.get("Authorization")); // "Bearer ..."
64
+ * console.log(headers.get("Tenant-Name")); // "your-tenant"
65
+ * ```
66
+ */
67
+ getAuthHeaders: () => Promise<Headers>;
112
68
  }
113
69
  export {};
@@ -1,7 +1,51 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
2
44
  Object.defineProperty(exports, "__esModule", { value: true });
3
45
  exports.CortiClient = void 0;
4
46
  const Client_js_1 = require("../Client.js");
47
+ const core = __importStar(require("../core/index.js"));
48
+ const CustomAgents_js_1 = require("./agents/CustomAgents.js");
5
49
  const CortiAuth_js_1 = require("./auth/CortiAuth.js");
6
50
  const CustomStream_js_1 = require("./stream/CustomStream.js");
7
51
  const CustomTranscribe_js_1 = require("./transcribe/CustomTranscribe.js");
@@ -15,6 +59,27 @@ class CortiClient extends Client_js_1.CortiClient {
15
59
  const ctx = (0, resolveClientOptions_js_1.resolveClientOptions)(options);
16
60
  const restOptions = Object.assign(Object.assign(Object.assign({}, opts), { tenantName: ctx.tenantName, environment: (0, environment_js_1.getEnvironment)(ctx.environment) }), (ctx.initialTokenResponse != null ? { initialTokenResponse: ctx.initialTokenResponse } : {}));
17
61
  super((0, authToBaseOptions_js_1.authToBaseOptions)(opts.auth, restOptions));
62
+ /**
63
+ * Retrieves authentication headers for API requests.
64
+ *
65
+ * This method returns a Headers object containing the Authorization header with a valid
66
+ * bearer token and the Tenant-Name header. The token is automatically refreshed if needed.
67
+ *
68
+ * @returns A Promise that resolves to a Headers object with Authorization and Tenant-Name headers
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * const client = new CortiClient({ ... });
73
+ * const headers = await client.getAuthHeaders();
74
+ * console.log(headers.get("Authorization")); // "Bearer ..."
75
+ * console.log(headers.get("Tenant-Name")); // "your-tenant"
76
+ * ```
77
+ */
78
+ this.getAuthHeaders = () => __awaiter(this, void 0, void 0, function* () {
79
+ var _a;
80
+ const req = yield this._options.authProvider.getAuthRequest();
81
+ return new Headers(Object.assign(Object.assign({}, ((_a = req.headers) !== null && _a !== void 0 ? _a : {})), { "Tenant-Name": yield core.Supplier.get(this._options.tenantName) }));
82
+ });
18
83
  (0, withCredentialsConfig_js_1.setDefaultWithCredentials)(options.withCredentials);
19
84
  this._encodeHeadersAsWsProtocols = options.encodeHeadersAsWsProtocols;
20
85
  }
@@ -30,5 +95,9 @@ class CortiClient extends Client_js_1.CortiClient {
30
95
  var _a;
31
96
  return ((_a = this._transcribe) !== null && _a !== void 0 ? _a : (this._transcribe = new CustomTranscribe_js_1.CustomTranscribe(Object.assign(Object.assign({}, this._options), { encodeHeadersAsWsProtocols: this._encodeHeadersAsWsProtocols }))));
32
97
  }
98
+ get agents() {
99
+ var _a;
100
+ return ((_a = this._agents) !== null && _a !== void 0 ? _a : (this._agents = new CustomAgents_js_1.CustomAgents(this._options)));
101
+ }
33
102
  }
34
103
  exports.CortiClient = CortiClient;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * This file is the custom implementation of the Agents client (src/api/resources/agents/client/Client.ts)
3
+ *
4
+ * It extends the auto-generated Agents class and adds custom helper methods.
5
+ *
6
+ * All the patches marked with `// Patch: ...` comments.
7
+ */
8
+ import { AgentsClient } from "../../api/resources/agents/client/Client.js";
9
+ export declare class CustomAgents extends AgentsClient {
10
+ /**
11
+ * Returns the URL for the agent card JSON file.
12
+ *
13
+ * @param {string} agentId - The ID of the agent
14
+ * @returns {Promise<URL>} A Promise that resolves to the URL for the agent card
15
+ *
16
+ * @example
17
+ * const url = await client.agents.getAgentCardUrl("agent-123");
18
+ */
19
+ getCardUrl: (agentId: string) => Promise<URL>;
20
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /**
3
+ * This file is the custom implementation of the Agents client (src/api/resources/agents/client/Client.ts)
4
+ *
5
+ * It extends the auto-generated Agents class and adds custom helper methods.
6
+ *
7
+ * All the patches marked with `// Patch: ...` comments.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
43
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
44
+ return new (P || (P = Promise))(function (resolve, reject) {
45
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
46
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
47
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
48
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
49
+ });
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.CustomAgents = void 0;
53
+ const Client_js_1 = require("../../api/resources/agents/client/Client.js");
54
+ const core = __importStar(require("../../core/index.js"));
55
+ class CustomAgents extends Client_js_1.AgentsClient {
56
+ constructor() {
57
+ super(...arguments);
58
+ /**
59
+ * Returns the URL for the agent card JSON file.
60
+ *
61
+ * @param {string} agentId - The ID of the agent
62
+ * @returns {Promise<URL>} A Promise that resolves to the URL for the agent card
63
+ *
64
+ * @example
65
+ * const url = await client.agents.getAgentCardUrl("agent-123");
66
+ */
67
+ this.getCardUrl = (agentId) => __awaiter(this, void 0, void 0, function* () {
68
+ const encodedAgentId = encodeURIComponent(agentId);
69
+ return new URL(`/agents/${encodedAgentId}/agent-card.json`, (yield core.Supplier.get(this._options.environment)).agents);
70
+ });
71
+ }
72
+ }
73
+ exports.CustomAgents = CustomAgents;
@@ -45,6 +45,32 @@ export declare namespace CortiAuth {
45
45
  codeVerifier?: string;
46
46
  scopes?: string[];
47
47
  }
48
+ /**
49
+ * Auth shapes used by `CortiClient` when passing `auth: ...`.
50
+ */
51
+ type AuthClientCredentials = {
52
+ clientId: string;
53
+ clientSecret: string;
54
+ };
55
+ type AuthRopc = Omit<GetRopcFlowTokenRequest, "scopes">;
56
+ type AuthCode = Omit<GetCodeFlowTokenRequest, "scopes">;
57
+ type AuthPkce = Omit<GetPkceFlowTokenRequest, "scopes">;
58
+ type AuthTokenDerivable = {
59
+ accessToken: string;
60
+ refreshAccessToken?: OAuthAuthProvider.RefreshAccessTokenFunction;
61
+ expiresIn?: number;
62
+ refreshToken?: string;
63
+ refreshExpiresIn?: number;
64
+ clientId?: string;
65
+ } | {
66
+ refreshAccessToken: OAuthAuthProvider.RefreshAccessTokenFunction;
67
+ accessToken?: string;
68
+ expiresIn?: number;
69
+ refreshToken?: string;
70
+ refreshExpiresIn?: number;
71
+ clientId?: string;
72
+ };
73
+ type AuthServer = AuthClientCredentials | AuthRopc | AuthCode | AuthPkce;
48
74
  /** Parameters for authorizeURL — builds the Keycloak authorization endpoint URL. */
49
75
  interface AuthorizationCodeClient {
50
76
  clientId: string;
@@ -61,6 +87,7 @@ export declare namespace CortiAuth {
61
87
  }
62
88
  }
63
89
  export declare class CortiAuth extends AuthClient {
90
+ private readonly _tenantName;
64
91
  /** No-op auth provider so super.token() does not trigger OAuth refresh. When auth is omitted, a dummy token is passed so the base constructor does not throw. */
65
92
  constructor(options: CortiAuth.Options);
66
93
  /**
@@ -61,13 +61,19 @@ const buildTokenRequestBody_js_1 = require("../utils/buildTokenRequestBody.js");
61
61
  const environment_js_1 = require("../utils/environment.js");
62
62
  const localStorageHelpers_js_1 = require("../utils/localStorageHelpers.js");
63
63
  const pkceHelpers_js_1 = require("../utils/pkceHelpers.js");
64
+ const stripFernNormalizedHeaders_js_1 = require("../utils/stripFernNormalizedHeaders.js");
64
65
  class CortiAuth extends Client_js_1.AuthClient {
65
66
  /** No-op auth provider so super.token() does not trigger OAuth refresh. When auth is omitted, a dummy token is passed so the base constructor does not throw. */
66
67
  constructor(options) {
67
68
  var _a;
68
- const { environment } = options, rest = __rest(options, ["environment"]);
69
- super(Object.assign(Object.assign({}, rest), { environment: (0, environment_js_1.getEnvironment)(environment), token: (_a = options.token) !== null && _a !== void 0 ? _a : (() => "") }));
69
+ const { environment, tenantName } = options, rest = __rest(options, ["environment", "tenantName"]);
70
+ super(Object.assign(Object.assign({}, rest), {
71
+ // @ts-expect-error it suppose to be required, but we need to filter out header without rewriting too much
72
+ tenantName: null, environment: (0, environment_js_1.getEnvironment)(environment), token: (_a = options.token) !== null && _a !== void 0 ? _a : (() => "") }));
73
+ this._tenantName = tenantName;
70
74
  this._options.authProvider = new core.NoOpAuthProvider();
75
+ /** Stripping Fern headers to bypass CORS on authentication requests */
76
+ this._options.headers = (0, stripFernNormalizedHeaders_js_1.stripFernNormalizedHeaders)(this._options.headers);
71
77
  }
72
78
  /**
73
79
  * Exchange credentials for a short-lived access token using the tenant token endpoint (client_credentials).
@@ -92,7 +98,7 @@ class CortiAuth extends Client_js_1.AuthClient {
92
98
  _getTokenWithTenant(request, requestOptions) {
93
99
  return __awaiter(this, void 0, void 0, function* () {
94
100
  const authRequest = (0, buildTokenRequestBody_js_1.buildTokenRequestBody)(request);
95
- const tenantName = yield core.Supplier.get(this._options.tenantName);
101
+ const tenantName = yield core.Supplier.get(this._tenantName);
96
102
  return this.token(tenantName, authRequest, requestOptions).withRawResponse();
97
103
  });
98
104
  }
@@ -168,7 +174,7 @@ class CortiAuth extends Client_js_1.AuthClient {
168
174
  authorizeURL(_a, options_1) {
169
175
  return __awaiter(this, arguments, void 0, function* ({ clientId, redirectUri, codeChallenge, scopes }, options) {
170
176
  const envUrls = yield core.Supplier.get(this._options.environment);
171
- const tenantName = yield core.Supplier.get(this._options.tenantName);
177
+ const tenantName = yield core.Supplier.get(this._tenantName);
172
178
  const authUrl = new URL(core.url.join(envUrls.login, tenantName, "protocol/openid-connect/auth"));
173
179
  authUrl.searchParams.set("response_type", "code");
174
180
  const allScopes = ["openid", "profile", ...(scopes !== null && scopes !== void 0 ? scopes : [])];
@@ -64,7 +64,6 @@ const parseStreamResponseType_js_1 = require("./parseStreamResponseType.js");
64
64
  const STREAM_CONFIG_REJECTION_TYPES = [
65
65
  Corti.StreamConfigStatusMessageType.ConfigDenied,
66
66
  Corti.StreamConfigStatusMessageType.ConfigMissing,
67
- Corti.StreamConfigStatusMessageType.ConfigTimeout,
68
67
  Corti.StreamConfigStatusMessageType.ConfigNotProvided,
69
68
  ];
70
69
  class CustomStream extends Client_js_1.StreamClient {
@@ -134,7 +133,9 @@ class CustomStream extends Client_js_1.StreamClient {
134
133
  });
135
134
  socket.socket.addEventListener("message", (event) => {
136
135
  const type = (0, parseStreamResponseType_js_1.parseStreamResponseType)(event.data);
137
- if (type == null || type === Corti.StreamConfigStatusMessageType.ConfigAccepted) {
136
+ if (type == null ||
137
+ type === Corti.StreamConfigStatusMessageType.ConfigAccepted ||
138
+ type === Corti.StreamConfigStatusMessageType.ConfigAlreadyReceived) {
138
139
  return;
139
140
  }
140
141
  if (STREAM_CONFIG_REJECTION_TYPES.includes(type) || type === "error") {
@@ -162,7 +163,8 @@ class CustomStream extends Client_js_1.StreamClient {
162
163
  const type = (0, parseStreamResponseType_js_1.parseStreamResponseType)(event.data);
163
164
  if (type == null)
164
165
  return;
165
- if (type === Corti.StreamConfigStatusMessageType.ConfigAccepted) {
166
+ if (type === Corti.StreamConfigStatusMessageType.ConfigAccepted ||
167
+ type === Corti.StreamConfigStatusMessageType.ConfigAlreadyReceived) {
166
168
  cleanup();
167
169
  resolve();
168
170
  }
@@ -64,6 +64,7 @@ const parseTranscribeResponseType_js_1 = require("./parseTranscribeResponseType.
64
64
  const TRANSCRIBE_CONFIG_REJECTION_TYPES = [
65
65
  Corti.TranscribeConfigStatusMessageType.ConfigDenied,
66
66
  Corti.TranscribeConfigStatusMessageType.ConfigTimeout,
67
+ Corti.TranscribeConfigStatusMessageType.ConfigMissing,
67
68
  ];
68
69
  class CustomTranscribe extends Client_js_1.TranscribeClient {
69
70
  constructor(options) {
@@ -132,7 +133,9 @@ class CustomTranscribe extends Client_js_1.TranscribeClient {
132
133
  });
133
134
  socket.socket.addEventListener("message", (event) => {
134
135
  const type = (0, parseTranscribeResponseType_js_1.parseTranscribeResponseType)(event.data);
135
- if (type == null || type === Corti.TranscribeConfigStatusMessageType.ConfigAccepted) {
136
+ if (type == null ||
137
+ type === Corti.TranscribeConfigStatusMessageType.ConfigAccepted ||
138
+ type === Corti.TranscribeConfigStatusMessageType.ConfigAlreadyReceived) {
136
139
  return;
137
140
  }
138
141
  if (TRANSCRIBE_CONFIG_REJECTION_TYPES.includes(type) || type === "error") {
@@ -160,7 +163,8 @@ class CustomTranscribe extends Client_js_1.TranscribeClient {
160
163
  const type = (0, parseTranscribeResponseType_js_1.parseTranscribeResponseType)(event.data);
161
164
  if (type == null)
162
165
  return;
163
- if (type === Corti.TranscribeConfigStatusMessageType.ConfigAccepted) {
166
+ if (type === Corti.TranscribeConfigStatusMessageType.ConfigAccepted ||
167
+ type === Corti.TranscribeConfigStatusMessageType.ConfigAlreadyReceived) {
164
168
  cleanup();
165
169
  resolve();
166
170
  }