@effect-uai/core 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 (209) hide show
  1. package/README.md +1 -1
  2. package/dist/{AiError-CqmYjXyx.d.mts → AiError-csR8Bhxx.d.mts} +26 -4
  3. package/dist/{AiError-CqmYjXyx.d.mts.map → AiError-csR8Bhxx.d.mts.map} +1 -1
  4. package/dist/Audio-BfCTGnH3.d.mts +61 -0
  5. package/dist/Audio-BfCTGnH3.d.mts.map +1 -0
  6. package/dist/Image-DxyXqzAM.d.mts +61 -0
  7. package/dist/Image-DxyXqzAM.d.mts.map +1 -0
  8. package/dist/{Items-D1C2686t.d.mts → Items-Hg5AsYxl.d.mts} +132 -80
  9. package/dist/Items-Hg5AsYxl.d.mts.map +1 -0
  10. package/dist/Media-D_CpcM1Z.d.mts +57 -0
  11. package/dist/Media-D_CpcM1Z.d.mts.map +1 -0
  12. package/dist/{StructuredFormat-B5ueioNr.d.mts → StructuredFormat-Cl41C56K.d.mts} +5 -5
  13. package/dist/StructuredFormat-Cl41C56K.d.mts.map +1 -0
  14. package/dist/{Tool-5wxOCuOh.d.mts → Tool-B8B5qVEy.d.mts} +13 -13
  15. package/dist/Tool-B8B5qVEy.d.mts.map +1 -0
  16. package/dist/{Turn-Bi83du4I.d.mts → Turn-7geUcKsf.d.mts} +5 -11
  17. package/dist/Turn-7geUcKsf.d.mts.map +1 -0
  18. package/dist/{chunk-CfYAbeIz.mjs → chunk-uyGKjUfl.mjs} +2 -1
  19. package/dist/dist-DV5ISja1.mjs +13782 -0
  20. package/dist/dist-DV5ISja1.mjs.map +1 -0
  21. package/dist/domain/AiError.d.mts +2 -2
  22. package/dist/domain/AiError.mjs +19 -3
  23. package/dist/domain/AiError.mjs.map +1 -1
  24. package/dist/domain/Audio.d.mts +2 -0
  25. package/dist/domain/Audio.mjs +14 -0
  26. package/dist/domain/Audio.mjs.map +1 -0
  27. package/dist/domain/Image.d.mts +2 -0
  28. package/dist/domain/Image.mjs +58 -0
  29. package/dist/domain/Image.mjs.map +1 -0
  30. package/dist/domain/Items.d.mts +2 -2
  31. package/dist/domain/Items.mjs +19 -42
  32. package/dist/domain/Items.mjs.map +1 -1
  33. package/dist/domain/Media.d.mts +2 -0
  34. package/dist/domain/Media.mjs +14 -0
  35. package/dist/domain/Media.mjs.map +1 -0
  36. package/dist/domain/Music.d.mts +116 -0
  37. package/dist/domain/Music.d.mts.map +1 -0
  38. package/dist/domain/Music.mjs +29 -0
  39. package/dist/domain/Music.mjs.map +1 -0
  40. package/dist/domain/Transcript.d.mts +95 -0
  41. package/dist/domain/Transcript.d.mts.map +1 -0
  42. package/dist/domain/Transcript.mjs +22 -0
  43. package/dist/domain/Transcript.mjs.map +1 -0
  44. package/dist/domain/Turn.d.mts +1 -1
  45. package/dist/domain/Turn.mjs +1 -1
  46. package/dist/embedding-model/Embedding.d.mts +107 -0
  47. package/dist/embedding-model/Embedding.d.mts.map +1 -0
  48. package/dist/embedding-model/Embedding.mjs +18 -0
  49. package/dist/embedding-model/Embedding.mjs.map +1 -0
  50. package/dist/embedding-model/EmbeddingModel.d.mts +97 -0
  51. package/dist/embedding-model/EmbeddingModel.d.mts.map +1 -0
  52. package/dist/embedding-model/EmbeddingModel.mjs +17 -0
  53. package/dist/embedding-model/EmbeddingModel.mjs.map +1 -0
  54. package/dist/index.d.mts +21 -7
  55. package/dist/index.mjs +16 -2
  56. package/dist/language-model/LanguageModel.d.mts +12 -20
  57. package/dist/language-model/LanguageModel.d.mts.map +1 -1
  58. package/dist/language-model/LanguageModel.mjs +3 -20
  59. package/dist/language-model/LanguageModel.mjs.map +1 -1
  60. package/dist/loop/Loop.d.mts +31 -7
  61. package/dist/loop/Loop.d.mts.map +1 -1
  62. package/dist/loop/Loop.mjs +39 -6
  63. package/dist/loop/Loop.mjs.map +1 -1
  64. package/dist/loop/Loop.test.d.mts +1 -0
  65. package/dist/loop/Loop.test.mjs +411 -0
  66. package/dist/loop/Loop.test.mjs.map +1 -0
  67. package/dist/magic-string.es-BgIV5Mu3.mjs +1013 -0
  68. package/dist/magic-string.es-BgIV5Mu3.mjs.map +1 -0
  69. package/dist/math/Vector.d.mts +47 -0
  70. package/dist/math/Vector.d.mts.map +1 -0
  71. package/dist/math/Vector.mjs +117 -0
  72. package/dist/math/Vector.mjs.map +1 -0
  73. package/dist/music-generator/MusicGenerator.d.mts +77 -0
  74. package/dist/music-generator/MusicGenerator.d.mts.map +1 -0
  75. package/dist/music-generator/MusicGenerator.mjs +51 -0
  76. package/dist/music-generator/MusicGenerator.mjs.map +1 -0
  77. package/dist/music-generator/MusicGenerator.test.d.mts +1 -0
  78. package/dist/music-generator/MusicGenerator.test.mjs +154 -0
  79. package/dist/music-generator/MusicGenerator.test.mjs.map +1 -0
  80. package/dist/observability/Metrics.d.mts +2 -2
  81. package/dist/observability/Metrics.d.mts.map +1 -1
  82. package/dist/observability/Metrics.mjs +1 -1
  83. package/dist/observability/Metrics.mjs.map +1 -1
  84. package/dist/speech-synthesizer/SpeechSynthesizer.d.mts +96 -0
  85. package/dist/speech-synthesizer/SpeechSynthesizer.d.mts.map +1 -0
  86. package/dist/speech-synthesizer/SpeechSynthesizer.mjs +48 -0
  87. package/dist/speech-synthesizer/SpeechSynthesizer.mjs.map +1 -0
  88. package/dist/speech-synthesizer/SpeechSynthesizer.test.d.mts +1 -0
  89. package/dist/speech-synthesizer/SpeechSynthesizer.test.mjs +112 -0
  90. package/dist/speech-synthesizer/SpeechSynthesizer.test.mjs.map +1 -0
  91. package/dist/streaming/JSONL.d.mts +10 -3
  92. package/dist/streaming/JSONL.d.mts.map +1 -1
  93. package/dist/streaming/JSONL.mjs +13 -2
  94. package/dist/streaming/JSONL.mjs.map +1 -1
  95. package/dist/streaming/JSONL.test.d.mts +1 -0
  96. package/dist/streaming/JSONL.test.mjs +70 -0
  97. package/dist/streaming/JSONL.test.mjs.map +1 -0
  98. package/dist/streaming/Lines.mjs +1 -1
  99. package/dist/streaming/SSE.d.mts +2 -2
  100. package/dist/streaming/SSE.d.mts.map +1 -1
  101. package/dist/streaming/SSE.mjs +1 -1
  102. package/dist/streaming/SSE.mjs.map +1 -1
  103. package/dist/streaming/SSE.test.d.mts +1 -0
  104. package/dist/streaming/SSE.test.mjs +72 -0
  105. package/dist/streaming/SSE.test.mjs.map +1 -0
  106. package/dist/structured-format/StructuredFormat.d.mts +1 -1
  107. package/dist/structured-format/StructuredFormat.mjs +1 -1
  108. package/dist/structured-format/StructuredFormat.mjs.map +1 -1
  109. package/dist/testing/MockMusicGenerator.d.mts +39 -0
  110. package/dist/testing/MockMusicGenerator.d.mts.map +1 -0
  111. package/dist/testing/MockMusicGenerator.mjs +96 -0
  112. package/dist/testing/MockMusicGenerator.mjs.map +1 -0
  113. package/dist/testing/MockProvider.d.mts +6 -6
  114. package/dist/testing/MockProvider.d.mts.map +1 -1
  115. package/dist/testing/MockProvider.mjs.map +1 -1
  116. package/dist/testing/MockSpeechSynthesizer.d.mts +37 -0
  117. package/dist/testing/MockSpeechSynthesizer.d.mts.map +1 -0
  118. package/dist/testing/MockSpeechSynthesizer.mjs +95 -0
  119. package/dist/testing/MockSpeechSynthesizer.mjs.map +1 -0
  120. package/dist/testing/MockTranscriber.d.mts +37 -0
  121. package/dist/testing/MockTranscriber.d.mts.map +1 -0
  122. package/dist/testing/MockTranscriber.mjs +77 -0
  123. package/dist/testing/MockTranscriber.mjs.map +1 -0
  124. package/dist/tool/HistoryCheck.d.mts +6 -3
  125. package/dist/tool/HistoryCheck.d.mts.map +1 -1
  126. package/dist/tool/HistoryCheck.mjs +7 -1
  127. package/dist/tool/HistoryCheck.mjs.map +1 -1
  128. package/dist/tool/Outcome.d.mts +138 -2
  129. package/dist/tool/Outcome.d.mts.map +1 -0
  130. package/dist/tool/Outcome.mjs +32 -10
  131. package/dist/tool/Outcome.mjs.map +1 -1
  132. package/dist/tool/Resolvers.d.mts +11 -8
  133. package/dist/tool/Resolvers.d.mts.map +1 -1
  134. package/dist/tool/Resolvers.mjs +10 -1
  135. package/dist/tool/Resolvers.mjs.map +1 -1
  136. package/dist/tool/Resolvers.test.d.mts +1 -0
  137. package/dist/tool/Resolvers.test.mjs +317 -0
  138. package/dist/tool/Resolvers.test.mjs.map +1 -0
  139. package/dist/tool/Tool.d.mts +1 -1
  140. package/dist/tool/Tool.mjs +1 -1
  141. package/dist/tool/Tool.mjs.map +1 -1
  142. package/dist/tool/ToolEvent.d.mts +151 -2
  143. package/dist/tool/ToolEvent.d.mts.map +1 -0
  144. package/dist/tool/ToolEvent.mjs +30 -4
  145. package/dist/tool/ToolEvent.mjs.map +1 -1
  146. package/dist/tool/Toolkit.d.mts +19 -10
  147. package/dist/tool/Toolkit.d.mts.map +1 -1
  148. package/dist/tool/Toolkit.mjs +5 -5
  149. package/dist/tool/Toolkit.mjs.map +1 -1
  150. package/dist/tool/Toolkit.test.d.mts +1 -0
  151. package/dist/tool/Toolkit.test.mjs +113 -0
  152. package/dist/tool/Toolkit.test.mjs.map +1 -0
  153. package/dist/transcriber/Transcriber.d.mts +101 -0
  154. package/dist/transcriber/Transcriber.d.mts.map +1 -0
  155. package/dist/transcriber/Transcriber.mjs +49 -0
  156. package/dist/transcriber/Transcriber.mjs.map +1 -0
  157. package/dist/transcriber/Transcriber.test.d.mts +1 -0
  158. package/dist/transcriber/Transcriber.test.mjs +130 -0
  159. package/dist/transcriber/Transcriber.test.mjs.map +1 -0
  160. package/package.json +65 -13
  161. package/src/domain/AiError.ts +21 -0
  162. package/src/domain/Audio.ts +88 -0
  163. package/src/domain/Image.ts +75 -0
  164. package/src/domain/Items.ts +18 -47
  165. package/src/domain/Media.ts +61 -0
  166. package/src/domain/Music.ts +121 -0
  167. package/src/domain/Transcript.ts +83 -0
  168. package/src/embedding-model/Embedding.ts +117 -0
  169. package/src/embedding-model/EmbeddingModel.ts +107 -0
  170. package/src/index.ts +15 -1
  171. package/src/language-model/LanguageModel.ts +2 -22
  172. package/src/loop/Loop.test.ts +114 -2
  173. package/src/loop/Loop.ts +69 -5
  174. package/src/math/Vector.ts +138 -0
  175. package/src/music-generator/MusicGenerator.test.ts +170 -0
  176. package/src/music-generator/MusicGenerator.ts +123 -0
  177. package/src/observability/Metrics.ts +1 -1
  178. package/src/speech-synthesizer/SpeechSynthesizer.test.ts +141 -0
  179. package/src/speech-synthesizer/SpeechSynthesizer.ts +131 -0
  180. package/src/streaming/JSONL.ts +12 -0
  181. package/src/streaming/SSE.ts +1 -1
  182. package/src/structured-format/StructuredFormat.ts +2 -2
  183. package/src/testing/MockMusicGenerator.ts +170 -0
  184. package/src/testing/MockProvider.ts +2 -2
  185. package/src/testing/MockSpeechSynthesizer.ts +165 -0
  186. package/src/testing/MockTranscriber.ts +139 -0
  187. package/src/tool/HistoryCheck.ts +2 -5
  188. package/src/tool/Outcome.ts +36 -36
  189. package/src/tool/Resolvers.test.ts +11 -35
  190. package/src/tool/Resolvers.ts +5 -14
  191. package/src/tool/Tool.ts +9 -9
  192. package/src/tool/ToolEvent.ts +28 -24
  193. package/src/tool/Toolkit.test.ts +97 -2
  194. package/src/tool/Toolkit.ts +57 -33
  195. package/src/transcriber/Transcriber.test.ts +125 -0
  196. package/src/transcriber/Transcriber.ts +127 -0
  197. package/dist/Items-D1C2686t.d.mts.map +0 -1
  198. package/dist/Outcome-GiaNvt7i.d.mts +0 -32
  199. package/dist/Outcome-GiaNvt7i.d.mts.map +0 -1
  200. package/dist/StructuredFormat-B5ueioNr.d.mts.map +0 -1
  201. package/dist/Tool-5wxOCuOh.d.mts.map +0 -1
  202. package/dist/ToolEvent-wTMgb2GO.d.mts +0 -29
  203. package/dist/ToolEvent-wTMgb2GO.d.mts.map +0 -1
  204. package/dist/Turn-Bi83du4I.d.mts.map +0 -1
  205. package/dist/match/Match.d.mts +0 -16
  206. package/dist/match/Match.d.mts.map +0 -1
  207. package/dist/match/Match.mjs +0 -15
  208. package/dist/match/Match.mjs.map +0 -1
  209. package/src/match/Match.ts +0 -9
@@ -0,0 +1,125 @@
1
+ import { Effect, Stream } from "effect"
2
+ import { describe, expect, expectTypeOf, it } from "vitest"
3
+ import type * as AiError from "../domain/AiError.js"
4
+ import type { TranscriptEvent, TranscriptResult } from "../domain/Transcript.js"
5
+ import * as MockTranscriber from "../testing/MockTranscriber.js"
6
+ import * as Transcriber from "./Transcriber.js"
7
+
8
+ describe("Transcriber.transcribe", () => {
9
+ it("returns the scripted TranscriptResult", async () => {
10
+ const mock = MockTranscriber.layer({
11
+ transcripts: [{ text: "hello world", durationSeconds: 1.23 }],
12
+ })
13
+ const program = Transcriber.transcribe({
14
+ audio: { _tag: "bytes", bytes: new Uint8Array([0]), mimeType: "audio/wav" },
15
+ model: "mock-stt",
16
+ })
17
+ const result = await Effect.runPromise(program.pipe(Effect.provide(mock.layer)))
18
+ expect(result.text).toBe("hello world")
19
+ expect(result.durationSeconds).toBe(1.23)
20
+ })
21
+
22
+ it("records each transcribe call", async () => {
23
+ const mock = MockTranscriber.layer({
24
+ transcripts: [{ text: "a" }, { text: "b" }],
25
+ })
26
+ const program = Effect.gen(function* () {
27
+ yield* Transcriber.transcribe({
28
+ audio: { _tag: "bytes", bytes: new Uint8Array([1]), mimeType: "audio/wav" },
29
+ model: "m1",
30
+ })
31
+ yield* Transcriber.transcribe({
32
+ audio: { _tag: "bytes", bytes: new Uint8Array([2]), mimeType: "audio/wav" },
33
+ model: "m2",
34
+ })
35
+ return yield* mock.recorder
36
+ })
37
+ const rec = await Effect.runPromise(program.pipe(Effect.provide(mock.layer)))
38
+ expect(rec.transcribeCalls.map((c) => c.model)).toEqual(["m1", "m2"])
39
+ })
40
+ })
41
+
42
+ describe("Transcriber capability marker (compile-time)", () => {
43
+ const sttReq: Transcriber.CommonStreamTranscribeRequest = {
44
+ model: "mock-stt",
45
+ inputFormat: { container: "raw", encoding: "pcm_s16le", sampleRate: 16000 },
46
+ }
47
+
48
+ it("requires `SttStreaming` on the R channel of streamTranscriptionFrom", () => {
49
+ const audio: Stream.Stream<Uint8Array> = Stream.fromIterable([new Uint8Array([0])])
50
+ const events = audio.pipe(Transcriber.streamTranscriptionFrom(sttReq))
51
+ expectTypeOf(events).toEqualTypeOf<
52
+ Stream.Stream<
53
+ TranscriptEvent,
54
+ AiError.AiError,
55
+ Transcriber.Transcriber | Transcriber.SttStreaming
56
+ >
57
+ >()
58
+ })
59
+
60
+ it("does NOT require `SttStreaming` for sync `transcribe`", () => {
61
+ const eff = Transcriber.transcribe({
62
+ audio: { _tag: "bytes", bytes: new Uint8Array([0]), mimeType: "audio/wav" },
63
+ model: "m",
64
+ })
65
+ expectTypeOf(eff).toEqualTypeOf<
66
+ Effect.Effect<TranscriptResult, AiError.AiError, Transcriber.Transcriber>
67
+ >()
68
+ })
69
+
70
+ it("a sync-only layer leaves `SttStreaming` unsatisfied in R", () => {
71
+ const syncOnly = MockTranscriber.layerSyncOnly({})
72
+ const audio: Stream.Stream<Uint8Array> = Stream.fromIterable([new Uint8Array([0])])
73
+ const events = audio.pipe(Transcriber.streamTranscriptionFrom(sttReq))
74
+ const program = Stream.runDrain(events).pipe(Effect.provide(syncOnly.layer))
75
+ // `Transcriber` is provided by syncOnly.layer; `SttStreaming` is not.
76
+ expectTypeOf(program).toEqualTypeOf<
77
+ Effect.Effect<void, AiError.AiError, Transcriber.SttStreaming>
78
+ >()
79
+ })
80
+
81
+ it("a full layer (with marker) clears R to never", () => {
82
+ const fullMock = MockTranscriber.layer({ streams: [[]] })
83
+ const audio: Stream.Stream<Uint8Array> = Stream.fromIterable([new Uint8Array([0])])
84
+ const events = audio.pipe(Transcriber.streamTranscriptionFrom(sttReq))
85
+ const program = Stream.runDrain(events).pipe(Effect.provide(fullMock.layer))
86
+ expectTypeOf(program).toEqualTypeOf<Effect.Effect<void, AiError.AiError, never>>()
87
+ })
88
+ })
89
+
90
+ describe("Transcriber.streamTranscriptionFrom", () => {
91
+ const sttReq: Transcriber.CommonStreamTranscribeRequest = {
92
+ model: "mock-stt",
93
+ inputFormat: { container: "raw", encoding: "pcm_s16le", sampleRate: 16000 },
94
+ }
95
+
96
+ it("emits scripted events after draining the input audio stream", async () => {
97
+ const mock = MockTranscriber.layer({
98
+ streams: [
99
+ [
100
+ { _tag: "partial", text: "hello" },
101
+ { _tag: "final", text: "hello world" },
102
+ ],
103
+ ],
104
+ })
105
+ const audio = Stream.fromIterable([new Uint8Array([0, 1, 2]), new Uint8Array([3, 4, 5])])
106
+ const events = audio.pipe(Transcriber.streamTranscriptionFrom(sttReq))
107
+ const collected = await Effect.runPromise(
108
+ Stream.runCollect(events).pipe(Effect.provide(mock.layer)),
109
+ )
110
+ expect(collected).toEqual([
111
+ { _tag: "partial", text: "hello" },
112
+ { _tag: "final", text: "hello world" },
113
+ ])
114
+ })
115
+
116
+ it("works data-first (direct call) as well as pipeable (data-last)", async () => {
117
+ const mock = MockTranscriber.layer({
118
+ streams: [[{ _tag: "final", text: "x" }]],
119
+ })
120
+ const audio = Stream.fromIterable([new Uint8Array([0])])
121
+ const events = Transcriber.streamTranscriptionFrom(audio, sttReq)
122
+ const out = await Effect.runPromise(Stream.runCollect(events).pipe(Effect.provide(mock.layer)))
123
+ expect(out).toEqual([{ _tag: "final", text: "x" }])
124
+ })
125
+ })
@@ -0,0 +1,127 @@
1
+ import { Context, Effect, Function, Stream } from "effect"
2
+ import * as AiError from "../domain/AiError.js"
3
+ import type { AudioFormat, AudioSource } from "../domain/Audio.js"
4
+ import type { TranscriptEvent, TranscriptResult } from "../domain/Transcript.js"
5
+
6
+ /**
7
+ * Cross-provider sync transcription request. Provider-specific
8
+ * extensions (Deepgram `keyterm[]`, ElevenLabs `diarize`, Google
9
+ * `adaptation`, …) live on each provider's typed request which extends
10
+ * this and narrows `model`.
11
+ */
12
+ export type CommonTranscribeRequest = {
13
+ readonly audio: AudioSource
14
+ /** Model identifier. Each provider narrows to its typed literal union. */
15
+ readonly model: string
16
+ /** ISO-639-1 / BCP-47. Omit for autodetection (where supported). */
17
+ readonly language?: string
18
+ /**
19
+ * Vocab biasing. Single-string covers OpenAI/Whisper-style prompts;
20
+ * `terms[]` covers Deepgram `keyterm`, Google adaptation phrases, AWS
21
+ * `vocabularyName`. Providers ignore what they don't support.
22
+ */
23
+ readonly prompt?: string | { readonly terms: ReadonlyArray<string> }
24
+ readonly diarization?: boolean
25
+ readonly wordTimestamps?: boolean
26
+ }
27
+
28
+ /**
29
+ * Streaming-transcription request. `inputFormat` declares what the
30
+ * bytes in the input stream will look like — providers reject
31
+ * mismatches at stream startup with `AiError.InvalidRequest`.
32
+ */
33
+ export type CommonStreamTranscribeRequest = Omit<CommonTranscribeRequest, "audio"> & {
34
+ readonly inputFormat: AudioFormat
35
+ readonly interimResults?: boolean
36
+ readonly vadEvents?: boolean
37
+ }
38
+
39
+ export type TranscriberService = {
40
+ /**
41
+ * One-shot transcription. Universal — AWS Transcribe (which has no
42
+ * native sync endpoint) emulates this by draining a streaming session
43
+ * internally.
44
+ */
45
+ readonly transcribe: (
46
+ request: CommonTranscribeRequest,
47
+ ) => Effect.Effect<TranscriptResult, AiError.AiError>
48
+ /**
49
+ * Live transcription as a Stream transformer. Consumes audio bytes
50
+ * from `audioIn`; emits `TranscriptEvent`s as they arrive. The
51
+ * underlying WS / gRPC connection is acquired on first pull and
52
+ * released when the output stream is finalized (success, failure, or
53
+ * interruption) via `Stream.scoped` — no explicit Scope handling at
54
+ * the call site.
55
+ *
56
+ * Gated by the `SttStreaming` capability marker on the top-level
57
+ * helper — providers without streaming-STT support don't ship the
58
+ * marker, so calls fail at `Effect.provide` with a type error.
59
+ */
60
+ readonly streamTranscriptionFrom: <E, R>(
61
+ audioIn: Stream.Stream<Uint8Array, E, R>,
62
+ request: CommonStreamTranscribeRequest,
63
+ ) => Stream.Stream<TranscriptEvent, AiError.AiError | E, R>
64
+ }
65
+
66
+ export class Transcriber extends Context.Service<Transcriber, TranscriberService>()(
67
+ "@betalyra/effect-uai/Transcriber",
68
+ ) {}
69
+
70
+ /**
71
+ * Capability marker — provided by provider layers whose
72
+ * `streamTranscriptionFrom` is wired up at the wire level. Azure does
73
+ * not ship it (streaming-STT is SDK-internal). Calling
74
+ * `streamTranscriptionFrom` while only Azure's Layer is in scope fails
75
+ * at `Effect.provide` with a type error, not at runtime.
76
+ *
77
+ * Phantom — the value is `void`; providers register with
78
+ * `Layer.succeed(SttStreaming, undefined)`.
79
+ */
80
+ export class SttStreaming extends Context.Service<SttStreaming, void>()(
81
+ "@betalyra/effect-uai/capability/SttStreaming",
82
+ ) {}
83
+
84
+ /** One-shot transcription. */
85
+ export const transcribe = (
86
+ request: CommonTranscribeRequest,
87
+ ): Effect.Effect<TranscriptResult, AiError.AiError, Transcriber> =>
88
+ Effect.flatMap(Transcriber.asEffect(), (t) => t.transcribe(request))
89
+
90
+ /**
91
+ * Live transcription. Dual-arity: pipeable (data-last) and direct
92
+ * (data-first). Requires `SttStreaming` in R — providers without
93
+ * streaming support are a type error at provide time.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * // Pipeable — composes with other Stream operators
98
+ * mic.frames.pipe(
99
+ * Transcriber.streamTranscriptionFrom(req),
100
+ * Stream.filter((e) => e._tag === "final"),
101
+ * )
102
+ *
103
+ * // Direct
104
+ * Transcriber.streamTranscriptionFrom(mic.frames, req)
105
+ * ```
106
+ */
107
+ export const streamTranscriptionFrom: {
108
+ (
109
+ request: CommonStreamTranscribeRequest,
110
+ ): <E, R>(
111
+ audioIn: Stream.Stream<Uint8Array, E, R>,
112
+ ) => Stream.Stream<TranscriptEvent, AiError.AiError | E, R | Transcriber | SttStreaming>
113
+ <E, R>(
114
+ audioIn: Stream.Stream<Uint8Array, E, R>,
115
+ request: CommonStreamTranscribeRequest,
116
+ ): Stream.Stream<TranscriptEvent, AiError.AiError | E, R | Transcriber | SttStreaming>
117
+ } = Function.dual(
118
+ 2,
119
+ <E, R>(audioIn: Stream.Stream<Uint8Array, E, R>, request: CommonStreamTranscribeRequest) =>
120
+ Stream.unwrap(
121
+ Effect.gen(function* () {
122
+ const t = yield* Transcriber.asEffect()
123
+ yield* SttStreaming.asEffect()
124
+ return t.streamTranscriptionFrom(audioIn, request)
125
+ }),
126
+ ),
127
+ )
@@ -1 +0,0 @@
1
- {"version":3,"file":"Items-D1C2686t.d.mts","names":[],"sources":["../src/domain/Items.ts"],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- import { o as FunctionCall, s as FunctionCallOutput } from "./Items-D1C2686t.mjs";
2
-
3
- //#region src/tool/Outcome.d.ts
4
- type ToolResult = {
5
- readonly _tag: "Value";
6
- readonly call_id: string;
7
- readonly tool: string;
8
- readonly value: unknown;
9
- } | {
10
- readonly _tag: "Failure";
11
- readonly call_id: string;
12
- readonly tool: string;
13
- readonly kind: string;
14
- readonly reason?: string;
15
- };
16
- declare const isValue: (r: ToolResult) => r is Extract<ToolResult, {
17
- _tag: "Value";
18
- }>;
19
- declare const isFailure: (r: ToolResult) => r is Extract<ToolResult, {
20
- _tag: "Failure";
21
- }>;
22
- declare const rejected: (call: FunctionCall, kind: string, reason?: string) => ToolResult;
23
- /** Explicit user/policy rejection. */
24
- declare const denied: (call: FunctionCall, reason?: string) => ToolResult;
25
- /** Implicit non-answer (follow-up, inactivity, abort). */
26
- declare const cancelled: (call: FunctionCall, reason?: string) => ToolResult;
27
- /** Tool's own execution failed (parse error, schema, runtime crash). */
28
- declare const executionError: (call: FunctionCall, reason: string) => ToolResult;
29
- declare const toFunctionCallOutput: (r: ToolResult) => FunctionCallOutput;
30
- //#endregion
31
- export { isFailure as a, toFunctionCallOutput as c, executionError as i, cancelled as n, isValue as o, denied as r, rejected as s, ToolResult as t };
32
- //# sourceMappingURL=Outcome-GiaNvt7i.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Outcome-GiaNvt7i.d.mts","names":[],"sources":["../src/tool/Outcome.ts"],"mappings":";;;KAqBY,UAAA;EAAA,SAEG,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA;EAAA,SACA,MAAA;AAAA;AAAA,cAGF,OAAA,GAAW,CAAA,EAAG,UAAA,KAAa,CAAA,IAAK,OAAA,CAAQ,UAAA;EAAc,IAAA;AAAA;AAAA,cAGtD,SAAA,GAAa,CAAA,EAAG,UAAA,KAAa,CAAA,IAAK,OAAA,CAAQ,UAAA;EAAc,IAAA;AAAA;AAAA,cAOxD,QAAA,GACX,IAAA,EAAM,YAAA,EACN,IAAA,UACA,MAAA,cACC,UAAA;;cASU,MAAA,GAAU,IAAA,EAAM,YAAA,EAAc,MAAA,cAAkB,UAAA;;cAIhD,SAAA,GAAa,IAAA,EAAM,YAAA,EAAc,MAAA,cAAkB,UAAA;;cAInD,cAAA,GAAkB,IAAA,EAAM,YAAA,EAAc,MAAA,aAAiB,UAAA;AAAA,cAOvD,oBAAA,GAAwB,CAAA,EAAG,UAAA,KAAa,kBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"StructuredFormat-B5ueioNr.d.mts","names":[],"sources":["../src/structured-format/StructuredFormat.ts"],"mappings":";;;;;;;;;;;;;;;KAaY,gBAAA,qBAAqC,gBAAA,UAA0B,MAAA,IACzE,oBAAA,UAA8B,MAAA;;;;;;UAOf,gBAAA;EAAA,SACN,IAAA;EAAA,SACA,WAAA;EAAA,SACA,MAAA,EAAQ,gBAAA,CAAiB,CAAA;EAXxB;;;;EAAA,SAgBD,MAAA;AAAA;;UAIM,WAAA;EAAA,SACN,IAAA,EAAM,aAAA;EAAA,SACN,OAAA;AAAA;AAAA,cACV,0BAAA;;;;;AAfD;;cAyBa,qBAAA,SAA8B,0BAAA;EAAA,SAChC,GAAA;EAAA,SACA,MAAA,EAAQ,aAAA,CAAc,WAAA;AAAA;AAAA,cAC5B,mBAAA;;;;;;AAhBL;cAsBa,cAAA,SAAuB,mBAAA;EAAA,SACzB,GAAA;EAAA,SACA,KAAA;AAAA;;;;AArBV;;cAiCY,gBAAA,aAA8B,MAAA,CAAO,KAAA,wBAChD,MAAA,EAAQ,CAAA,EACR,OAAA;EAAA,SACW,IAAA;EAAA,SACA,WAAA;EAAA,SACA,MAAA;AAAA,MAEV,gBAAA,CAAiB,CAAA;;;;;;cAyCP,MAAA,MACP,MAAA,EAAQ,gBAAA,CAAiB,CAAA,OAC5B,GAAA,cAAe,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,qBAAA;;;;;;cAoBtB,SAAA,MACP,MAAA,EAAQ,gBAAA,CAAiB,CAAA,OAC5B,GAAA,aAAc,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,cAAA,GAAiB,qBAAA;;;;;cAatC,eAAA,MACP,MAAA,EAAQ,gBAAA,CAAiB,CAAA,aAE3B,IAAA,EAAM,MAAA,CAAO,MAAA,SAAe,CAAA,EAAG,CAAA,MAC9B,MAAA,CAAO,MAAA,CAAO,CAAA,EAAG,CAAA,GAAI,cAAA,GAAiB,qBAAA,EAAuB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tool-5wxOCuOh.d.mts","names":[],"sources":["../src/tool/Tool.ts"],"mappings":";;;;;;;;;cAE0E,cAAA;;;;;;cAG7D,SAAA,SAAkB,cAAA;;;;;;;;;;KAmBnB,eAAA,oBAAmC,gBAAA,UAA0B,KAAA,IACvE,oBAAA,UAA8B,KAAA;;;AAvB0C;;;cA8B7D,gBAAA,aAA8B,MAAA,CAAO,KAAA,wBAChD,MAAA,EAAQ,CAAA,KACP,CAAA,GAAI,eAAA,CAAgB,CAAA;AAAA,UAIN,IAAA;EAAA,SACN,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;EAAA,SAC7B,GAAA,GAAM,KAAA,EAAO,KAAA,KAAU,MAAA,CAAO,MAAA,CAAO,MAAA,WAAiB,CAAA;;;;;;;WAOtD,MAAA;AAAA;;;;;;UAQM,cAAA;EAAA,SACN,IAAA;EAAA,SACA,WAAA;EAAA,SACA,WAAA,EAAa,MAAA;EAAA,SACb,MAAA;AAAA;AAAA,cAGE,IAAA,kDACX,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA,MAC/B,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,UAWZ,aAAA;EAAA,SACN,KAAA;EAAA,SACA,IAAA,EAAM,IAAA;EAAA,SACN,WAAA;EAAA,SACA,WAAA,EAAa,eAAA,CAAgB,KAAA;EAAA,SAC7B,GAAA,GAAM,KAAA,EAAO,KAAA,KAAU,MAAA,CAAO,MAAA,CAAO,KAAA,WAAgB,CAAA;EAAA,SACrD,QAAA,GAAW,MAAA,EAAQ,aAAA,CAAc,KAAA,MAAW,MAAA;EAAA,SAC5C,MAAA;AAAA;AAAA,cAGE,SAAA,yDACX,IAAA,EAAM,IAAA,CAAK,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA,gBACpD,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,KAAA,EAAO,MAAA,EAAQ,CAAA;AAAA,KAEjC,gBAAA,GAAmB,aAAA;AAAA,KACnB,YAAA,GAAe,IAAA;AAAA,KACf,WAAA,GAAc,gBAAA,GAAmB,YAAA;AAAA,cAEhC,eAAA,GAAmB,CAAA,EAAG,WAAA,KAAc,CAAA,IAAK,gBAAA;;;;;;cAQzC,aAAA,GACX,KAAA,EAAO,aAAA,CAAc,WAAA,MACpB,aAAA,CAAc,cAAA;;;;;;cAkBJ,OAAA,0CACX,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,CAAA,GAChC,IAAA,EAAM,YAAA,KACL,MAAA,CAAO,MAAA,CAAO,kBAAA,EAAoB,SAAA,EAAW,CAAA"}
@@ -1,29 +0,0 @@
1
- import { t as ToolResult } from "./Outcome-GiaNvt7i.mjs";
2
-
3
- //#region src/tool/ToolEvent.d.ts
4
- type ToolEvent = {
5
- readonly _tag: "ApprovalRequested";
6
- readonly call_id: string;
7
- readonly tool: string;
8
- readonly arguments: string;
9
- } | {
10
- readonly _tag: "Intermediate";
11
- readonly call_id: string;
12
- readonly tool: string;
13
- readonly data: unknown;
14
- } | {
15
- readonly _tag: "Output";
16
- readonly result: ToolResult;
17
- };
18
- declare const isApprovalRequested: (e: ToolEvent) => e is Extract<ToolEvent, {
19
- _tag: "ApprovalRequested";
20
- }>;
21
- declare const isIntermediate: (e: ToolEvent) => e is Extract<ToolEvent, {
22
- _tag: "Intermediate";
23
- }>;
24
- declare const isOutput: (e: ToolEvent) => e is Extract<ToolEvent, {
25
- _tag: "Output";
26
- }>;
27
- //#endregion
28
- export { isOutput as i, isApprovalRequested as n, isIntermediate as r, ToolEvent as t };
29
- //# sourceMappingURL=ToolEvent-wTMgb2GO.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolEvent-wTMgb2GO.d.mts","names":[],"sources":["../src/tool/ToolEvent.ts"],"mappings":";;;KAYY,SAAA;EAAA,SAEG,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,OAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAAyB,MAAA,EAAQ,UAAA;AAAA;AAAA,cAEnC,mBAAA,GACX,CAAA,EAAG,SAAA,KACF,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA;AAAA,cAEhB,cAAA,GACX,CAAA,EAAG,SAAA,KACF,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA;AAAA,cAEhB,QAAA,GAAY,CAAA,EAAG,SAAA,KAAY,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Turn-Bi83du4I.d.mts","names":[],"sources":["../src/domain/Turn.ts"],"mappings":";;;;;;;;;;;;;;;cAmBa,IAAA,EAAI,MAAA,CAAA,MAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAKL,IAAA,UAAc,IAAA,CAAK,IAAA;;;;;;;KAQnB,SAAA;EAAA,SACG,IAAA;EAAA,SAA6B,IAAA;AAAA;EAAA,SAE7B,IAAA;EAAA,SACA,IAAA;;;;;;;;WAQA,IAAA;AAAA;;;;;;;;;WASA,IAAA;EAAA,SAAgC,IAAA;AAAA;EAAA,SAChC,IAAA;EAAA,SAAkC,OAAA;EAAA,SAA0B,IAAA;AAAA;EAAA,SAC5D,IAAA;EAAA,SAAuC,OAAA;EAAA,SAA0B,KAAA;AAAA;;;;;;;;;;WASjE,IAAA;EAAA,SAA+B,KAAA,EAAO,KAAA;AAAA;EAAA,SACtC,IAAA;EAAA,SAAgC,IAAA,EAAM,IAAA;AAAA;;;;;;;KAQzC,gBAAA,GAAmB,SAAA,GAAY,kBAAA;AAAA,cAE9B,cAAA,GAAkB,CAAA,EAAG,SAAA,KAAY,CAAA,IAAK,OAAA,CAAQ,SAAA;EAAa,IAAA;AAAA;AAAA,cAG3D,aAAA,GAAiB,IAAA,EAAM,IAAA,KAAO,aAAA,CAAc,YAAA;AAAA,cAG5C,UAAA,GAAc,IAAA,EAAM,IAAA,KAAO,aAAA,CAAc,SAAA;AAAA,cAGzC,iBAAA,GAAqB,IAAA,EAAM,IAAA,KAAO,aAAA,CAAc,OAAA;;;;;;cAQhD,UAAA;EAAA,SAAmC,OAAA,EAAS,aAAA,CAAc,IAAA;AAAA,GACrE,KAAA,EAAO,CAAA,EACP,IAAA,EAAM,IAAA,EACN,KAAA,GAAO,aAAA,CAAc,IAAA,MACpB,CAAA;;;;;;cAcU,UAAA,SACX,IAAA,EAAM,MAAA,CAAO,MAAA,CAAO,SAAA,EAAW,CAAA,EAAG,CAAA,MACjC,MAAA,CAAO,MAAA,SAAe,CAAA,EAAG,CAAA;AAAA,cAKzB,oBAAA;;;;;;;;cAWU,eAAA,SAAwB,oBAAA;EAAA,SAC1B,IAAA,EAAM,IAAA;AAAA;;;;;;;;;;;cAyBJ,YAAA,MACX,IAAA,EAAM,IAAA,EACN,MAAA,EAAQ,gBAAA,CAAkC,CAAA,MACzC,MAAA,CAAO,MAAA,CACR,CAAA,EACA,eAAA,GAAkB,cAAA,GAAkC,qBAAA"}
@@ -1,16 +0,0 @@
1
- import { Match } from "effect";
2
-
3
- //#region src/match/Match.d.ts
4
- declare namespace Match_d_exports {
5
- export { matchType };
6
- }
7
- /**
8
- * Dispatch on the `type` discriminator of a tagged union. Equivalent to
9
- * `Match.discriminator("type")`, exposed as a named helper because the
10
- * `type` field is the framework's convention for `Item`, `TurnEvent`,
11
- * `ContentBlock`, and most provider wire types.
12
- */
13
- declare const matchType: <R, P extends Match.Types.Tags<"type", R> & string, Ret, Fn extends (_: Extract<R, Record<"type", P>>) => Ret>(...pattern: [first: P, ...values: P[], f: Fn]) => <I, F, A, Pr>(self: Match.Matcher<I, F, R, A, Pr, Ret>) => Match.Matcher<I, Match.Types.AddWithout<F, Extract<R, Record<"type", P>>>, Match.Types.ApplyFilters<I, Match.Types.AddWithout<F, Extract<R, Record<"type", P>>>>, A | ReturnType<Fn>, Pr, Ret>;
14
- //#endregion
15
- export { matchType, Match_d_exports as t };
16
- //# sourceMappingURL=Match.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Match.d.mts","names":[],"sources":["../../src/match/Match.ts"],"mappings":";;;;;;;;;;AAQA;;cAAa,SAAA,gBAAS,KAAA,CAAA,KAAA,CAAA,IAAA,SAAA,CAAA,6BAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,MAAA,SAAA,CAAA,OAAA,GAAA,KAAA,OAAA,GAAA,KAAA,EAAA,CAAA,KAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,oBAAA,IAAA,EAAA,KAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,GAAA,MAAA,KAAA,CAAA,OAAA,CAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,MAAA,SAAA,CAAA,KAAA,KAAA,CAAA,KAAA,CAAA,YAAA,CAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,MAAA,SAAA,CAAA,MAAA,CAAA,GAAA,UAAA,CAAA,EAAA,GAAA,EAAA,EAAA,GAAA"}
@@ -1,15 +0,0 @@
1
- import { t as __exportAll } from "../chunk-CfYAbeIz.mjs";
2
- import { Match } from "effect";
3
- //#region src/match/Match.ts
4
- var Match_exports = /* @__PURE__ */ __exportAll({ matchType: () => matchType });
5
- /**
6
- * Dispatch on the `type` discriminator of a tagged union. Equivalent to
7
- * `Match.discriminator("type")`, exposed as a named helper because the
8
- * `type` field is the framework's convention for `Item`, `TurnEvent`,
9
- * `ContentBlock`, and most provider wire types.
10
- */
11
- const matchType = Match.discriminator("type");
12
- //#endregion
13
- export { matchType, Match_exports as t };
14
-
15
- //# sourceMappingURL=Match.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Match.mjs","names":[],"sources":["../../src/match/Match.ts"],"sourcesContent":["import { Match } from \"effect\"\n\n/**\n * Dispatch on the `type` discriminator of a tagged union. Equivalent to\n * `Match.discriminator(\"type\")`, exposed as a named helper because the\n * `type` field is the framework's convention for `Item`, `TurnEvent`,\n * `ContentBlock`, and most provider wire types.\n */\nexport const matchType = Match.discriminator(\"type\")\n"],"mappings":";;;;;;;;;;AAQA,MAAa,YAAY,MAAM,cAAc,OAAO"}
@@ -1,9 +0,0 @@
1
- import { Match } from "effect"
2
-
3
- /**
4
- * Dispatch on the `type` discriminator of a tagged union. Equivalent to
5
- * `Match.discriminator("type")`, exposed as a named helper because the
6
- * `type` field is the framework's convention for `Item`, `TurnEvent`,
7
- * `ContentBlock`, and most provider wire types.
8
- */
9
- export const matchType = Match.discriminator("type")