@opengeni/sdk 0.44.3 → 0.46.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.
@@ -516,6 +516,119 @@ var OpenGeniClient = class {
516
516
  }
517
517
  return body;
518
518
  }
519
+ async createTranscriptionRecording(workspaceId, input) {
520
+ return transcriptionRecordingResponse(
521
+ await this.requestJson(
522
+ "POST",
523
+ `/v1/workspaces/${workspaceId}/transcription-recordings`,
524
+ { recordingId: input.recordingId, mimeType: input.mimeType },
525
+ {},
526
+ input.signal ? { signal: input.signal } : {}
527
+ )
528
+ );
529
+ }
530
+ async getTranscriptionRecording(workspaceId, recordingId, options = {}) {
531
+ return transcriptionRecordingResponse(
532
+ await this.requestJson(
533
+ "GET",
534
+ `/v1/workspaces/${workspaceId}/transcription-recordings/${recordingId}`,
535
+ void 0,
536
+ {},
537
+ options.signal ? { signal: options.signal } : {}
538
+ )
539
+ );
540
+ }
541
+ async listTranscriptionRecordings(workspaceId, options = {}) {
542
+ const body = await this.requestJson(
543
+ "GET",
544
+ `/v1/workspaces/${workspaceId}/transcription-recordings`,
545
+ void 0,
546
+ {},
547
+ options.signal ? { signal: options.signal } : {}
548
+ );
549
+ if (!isTranscriptionRecordingListResponse(body)) {
550
+ throw new OpenGeniApiError(502, "Invalid transcription recording list response.", {
551
+ code: "invalid_response"
552
+ });
553
+ }
554
+ return body;
555
+ }
556
+ async uploadTranscriptionRecordingChunk(workspaceId, recordingId, chunkNumber, input) {
557
+ const correlationId = crypto.randomUUID();
558
+ let response;
559
+ try {
560
+ response = await this.fetchImpl(
561
+ this.url(
562
+ `/v1/workspaces/${workspaceId}/transcription-recordings/${recordingId}/chunks/${chunkNumber}`
563
+ ),
564
+ {
565
+ method: "PUT",
566
+ headers: {
567
+ ...this.headers(correlationId),
568
+ Accept: "application/json",
569
+ "Content-Type": input.mimeType,
570
+ "x-opengeni-chunk-sha256": input.sha256,
571
+ "x-opengeni-chunk-start-milliseconds": String(input.startMilliseconds),
572
+ "x-opengeni-chunk-duration-milliseconds": String(input.durationMilliseconds)
573
+ },
574
+ body: input.audio instanceof Uint8Array ? Uint8Array.from(input.audio) : input.audio,
575
+ ...input.signal ? { signal: input.signal } : {}
576
+ }
577
+ );
578
+ } catch (error) {
579
+ if (input.signal?.aborted) throw error;
580
+ throw mutationTransportError(correlationId);
581
+ }
582
+ assertApiContractResponse(response);
583
+ if (!response.ok) throw await apiErrorFromResponse(response, { method: "PUT", correlationId });
584
+ await assertJsonResponse(response, { method: "PUT", correlationId });
585
+ const body = await response.json().catch(() => null);
586
+ if (!isUploadTranscriptionRecordingChunkResponse(body)) {
587
+ throw new OpenGeniApiError(response.status, "Invalid transcription chunk response.", {
588
+ code: "invalid_response",
589
+ mutation: true,
590
+ correlationId
591
+ });
592
+ }
593
+ return body;
594
+ }
595
+ async finalizeTranscriptionRecording(workspaceId, recordingId, input) {
596
+ return transcriptionRecordingResponse(
597
+ await this.requestJson(
598
+ "POST",
599
+ `/v1/workspaces/${workspaceId}/transcription-recordings/${recordingId}/finalize`,
600
+ {
601
+ chunkCount: input.chunkCount,
602
+ totalBytes: input.totalBytes,
603
+ totalDurationMilliseconds: input.totalDurationMilliseconds
604
+ },
605
+ {},
606
+ input.signal ? { signal: input.signal } : {}
607
+ )
608
+ );
609
+ }
610
+ async processNextTranscriptionRecordingSegment(workspaceId, recordingId, options = {}) {
611
+ return transcriptionRecordingResponse(
612
+ await this.requestJson(
613
+ "POST",
614
+ `/v1/workspaces/${workspaceId}/transcription-recordings/${recordingId}/process-next`,
615
+ {},
616
+ {},
617
+ options.signal ? { signal: options.signal } : {}
618
+ )
619
+ );
620
+ }
621
+ async discardTranscriptionRecording(workspaceId, recordingId, options = {}) {
622
+ return transcriptionRecordingResponse(
623
+ await this.requestJson(
624
+ "DELETE",
625
+ `/v1/workspaces/${workspaceId}/transcription-recordings/${recordingId}`,
626
+ void 0,
627
+ {},
628
+ options.signal ? { signal: options.signal } : {}
629
+ )
630
+ );
631
+ }
519
632
  async createSession(workspaceId, request) {
520
633
  return await this.requestJson(
521
634
  "POST",
@@ -2604,7 +2717,23 @@ var OpenGeniClient = class {
2604
2717
  `/v1/workspaces/${workspaceId}/codex/accounts/${accountId}/activate`
2605
2718
  );
2606
2719
  }
2607
- /** P3: enable/disable Codex auto-rotation and/or pick the strategy. Returns the effective settings. */
2720
+ /** Designate one owner-connected subscription for Apps only. */
2721
+ async designateCodexAppsAccount(workspaceId, accountId, expectedVersion) {
2722
+ return await this.requestJson(
2723
+ "POST",
2724
+ `/v1/workspaces/${workspaceId}/codex/apps`,
2725
+ { accountId, expectedVersion }
2726
+ );
2727
+ }
2728
+ /** Clear the Apps credential without changing any inference selection. */
2729
+ async clearCodexAppsAccount(workspaceId, expectedVersion) {
2730
+ return await this.requestJson(
2731
+ "DELETE",
2732
+ `/v1/workspaces/${workspaceId}/codex/apps`,
2733
+ { expectedVersion }
2734
+ );
2735
+ }
2736
+ /** Enable or disable Codex auto-rotation. Returns the effective settings. */
2608
2737
  async setCodexRotationSettings(workspaceId, patch) {
2609
2738
  return await this.requestJson(
2610
2739
  "PATCH",
@@ -2711,6 +2840,38 @@ function isTranscribeAudioResponse(value) {
2711
2840
  const record = value;
2712
2841
  return typeof record.text === "string" && Array.isArray(record.languages) && record.languages.every((language) => typeof language === "string");
2713
2842
  }
2843
+ function isUploadTranscriptionRecordingChunkResponse(value) {
2844
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
2845
+ const record = value;
2846
+ if (!isTranscriptionRecordingResponse({ recording: record.recording, segments: [] })) {
2847
+ return false;
2848
+ }
2849
+ if (!record.chunk || typeof record.chunk !== "object" || Array.isArray(record.chunk)) {
2850
+ return false;
2851
+ }
2852
+ const chunk = record.chunk;
2853
+ return typeof chunk.chunkNumber === "number" && typeof chunk.byteLength === "number" && typeof chunk.sha256 === "string" && typeof chunk.startMilliseconds === "number" && typeof chunk.durationMilliseconds === "number" && typeof chunk.deduplicated === "boolean";
2854
+ }
2855
+ function isTranscriptionRecordingResponse(value) {
2856
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
2857
+ const response = value;
2858
+ if (!response.recording || typeof response.recording !== "object" || Array.isArray(response.recording)) {
2859
+ return false;
2860
+ }
2861
+ const recording = response.recording;
2862
+ return typeof recording.id === "string" && typeof recording.workspaceId === "string" && typeof recording.mimeType === "string" && typeof recording.state === "string" && typeof recording.nextChunkNumber === "number" && typeof recording.chunkCount === "number" && typeof recording.totalBytes === "number" && typeof recording.totalDurationMilliseconds === "number" && typeof recording.segmentCount === "number" && typeof recording.completedSegmentCount === "number" && (recording.transcriptText === null || typeof recording.transcriptText === "string") && Array.isArray(recording.languages) && (recording.errorCode === null || typeof recording.errorCode === "string") && typeof recording.retryable === "boolean" && typeof recording.objectsCleaned === "boolean" && typeof recording.createdAt === "string" && typeof recording.updatedAt === "string" && typeof recording.expiresAt === "string" && (response.retryAfterMilliseconds === void 0 || typeof response.retryAfterMilliseconds === "number" && Number.isInteger(response.retryAfterMilliseconds) && response.retryAfterMilliseconds > 0 && response.retryAfterMilliseconds <= 6e4) && Array.isArray(response.segments);
2863
+ }
2864
+ function transcriptionRecordingResponse(value) {
2865
+ if (isTranscriptionRecordingResponse(value)) return value;
2866
+ throw new OpenGeniApiError(502, "Invalid transcription recording response.", {
2867
+ code: "invalid_response"
2868
+ });
2869
+ }
2870
+ function isTranscriptionRecordingListResponse(value) {
2871
+ if (!value || typeof value !== "object" || Array.isArray(value)) return false;
2872
+ const recordings = value.recordings;
2873
+ return Array.isArray(recordings) && recordings.length <= 50 && recordings.every((recording) => isTranscriptionRecordingResponse({ recording, segments: [] }));
2874
+ }
2714
2875
  function filenameForAudioMimeType(mimeType) {
2715
2876
  const bare = mimeType.trim().toLowerCase().split(";")[0] ?? "audio/webm";
2716
2877
  switch (bare) {
@@ -3078,4 +3239,4 @@ export {
3078
3239
  authorizeTranscriptionAdapter,
3079
3240
  createTranscriptionSessionRequest
3080
3241
  };
3081
- //# sourceMappingURL=chunk-UZNQOMWX.js.map
3242
+ //# sourceMappingURL=chunk-QKV5OCLJ.js.map