@opencode/ai 0.0.0-dev-21801 → 0.0.0-dev-21803
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.
- package/README.md +45 -37
- package/dist/effect.d.ts +39 -0
- package/dist/effect.js +28 -0
- package/dist/effort-updates.d.ts +2 -2
- package/dist/image-client.d.ts +4 -4
- package/dist/index.d.ts +1030 -39
- package/dist/index.js +106 -28
- package/dist/protocols/alibaba-responses.d.ts +3 -3
- package/dist/protocols/openai-compatible-chat.d.ts +1 -1
- package/dist/protocols/openai-compatible-responses.d.ts +5 -5
- package/dist/protocols/utils/image-sizing.d.ts +1 -1
- package/dist/speech-client.d.ts +4 -4
- package/dist/transcription-client.d.ts +4 -4
- package/dist/video-client.d.ts +4 -4
- package/package.json +6 -6
- package/dist/promise.d.ts +0 -1030
- package/dist/promise.js +0 -106
package/README.md
CHANGED
|
@@ -2,9 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
Schema-first APIs for text, images, video, speech, and transcription, built with Effect.
|
|
4
4
|
|
|
5
|
+
`@opencode/ai` is the Promise API: one managed runtime behind the LLM and media methods, plus asset helpers. `ai.file`
|
|
6
|
+
and `ai.write` load `node:fs/promises` on first use, so no Effect `FileSystem` is needed:
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { AI } from "@opencode/ai"
|
|
10
|
+
import { OpenAI } from "@opencode/ai/providers"
|
|
11
|
+
|
|
12
|
+
const openai = OpenAI.configure({ apiKey: process.env.OPENAI_API_KEY })
|
|
13
|
+
|
|
14
|
+
const ai = AI.make()
|
|
15
|
+
const input = { model: openai.responses("gpt-4o-mini"), prompt: "Say hello." }
|
|
16
|
+
const response = await ai.llm.generate(input)
|
|
17
|
+
console.log(response.text)
|
|
18
|
+
const generated = await ai.image.generate({ model: openai.image("gpt-image-2"), prompt: "A lighthouse" })
|
|
19
|
+
await ai.write(generated.image, "./lighthouse.png") // also ai.file(path), ai.bytes(asset), ai.base64(asset), ai.materialize(asset)
|
|
20
|
+
for await (const event of ai.llm.stream(ai.llm.request(input))) {
|
|
21
|
+
// LLMEvent
|
|
22
|
+
}
|
|
23
|
+
await ai.dispose()
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The Effect API lives at `@opencode/ai/effect`. Its methods return `Effect` or `Stream`:
|
|
27
|
+
|
|
5
28
|
```ts
|
|
6
29
|
import { Effect } from "effect"
|
|
7
|
-
import { AIClient, LLM } from "@opencode/ai"
|
|
30
|
+
import { AIClient, LLM } from "@opencode/ai/effect"
|
|
8
31
|
import { OpenAI } from "@opencode/ai/providers"
|
|
9
32
|
|
|
10
33
|
const openai = OpenAI.configure({ apiKey: process.env.OPENAI_API_KEY })
|
|
@@ -64,7 +87,7 @@ provider's image route from the model and returns `Media.Asset`s with lazily dec
|
|
|
64
87
|
|
|
65
88
|
```ts
|
|
66
89
|
import { NodeFileSystem } from "@effect/platform-node"
|
|
67
|
-
import { Image, Media } from "@opencode/ai"
|
|
90
|
+
import { Image, Media } from "@opencode/ai/effect"
|
|
68
91
|
|
|
69
92
|
const image = Effect.gen(function* () {
|
|
70
93
|
const response = yield* Image.generate({
|
|
@@ -96,30 +119,13 @@ const logged = RequestExecutor.middleware((request, next) =>
|
|
|
96
119
|
const everything = AIClient.layerWith(logged) // or AI.make({ layer: logged })
|
|
97
120
|
```
|
|
98
121
|
|
|
99
|
-
Prefer promises? `@opencode/ai/promise` exposes the same LLM and media APIs over one managed runtime, plus asset
|
|
100
|
-
helpers; `ai.file` and `ai.write` load `node:fs/promises` on first use, so no Effect `FileSystem` is needed:
|
|
101
|
-
|
|
102
|
-
```ts
|
|
103
|
-
import { AI } from "@opencode/ai/promise"
|
|
104
|
-
|
|
105
|
-
const ai = AI.make()
|
|
106
|
-
const input = { model: openai.responses("gpt-4o-mini"), prompt: "Say hello." }
|
|
107
|
-
const text = await ai.llm.generate(input)
|
|
108
|
-
const generated = await ai.image.generate({ model: openai.image("gpt-image-2"), prompt: "A lighthouse" })
|
|
109
|
-
await ai.write(generated.image, "./lighthouse.png") // also ai.file(path), ai.bytes(asset), ai.base64(asset), ai.materialize(asset)
|
|
110
|
-
for await (const event of ai.llm.stream(ai.llm.request(input))) {
|
|
111
|
-
// LLMEvent
|
|
112
|
-
}
|
|
113
|
-
await ai.dispose()
|
|
114
|
-
```
|
|
115
|
-
|
|
116
122
|
## Venice AI
|
|
117
123
|
|
|
118
124
|
`Venice` provides native Chat Completions with streaming tools and reasoning. `model` and `chat`
|
|
119
125
|
select the same API; credentials default to `VENICE_API_KEY`.
|
|
120
126
|
|
|
121
127
|
```ts
|
|
122
|
-
import { LLM } from "@opencode/ai"
|
|
128
|
+
import { LLM } from "@opencode/ai/effect"
|
|
123
129
|
import { Venice } from "@opencode/ai/providers"
|
|
124
130
|
import { Effect } from "effect"
|
|
125
131
|
|
|
@@ -155,7 +161,7 @@ values, or a `score` on ordered levels, each with the probability of every optio
|
|
|
155
161
|
|
|
156
162
|
```ts
|
|
157
163
|
import { Effect } from "effect"
|
|
158
|
-
import { Decision, DecisionClient, Media } from "@opencode/ai"
|
|
164
|
+
import { Decision, DecisionClient, Media } from "@opencode/ai/effect"
|
|
159
165
|
import { OpenAI } from "@opencode/ai/providers"
|
|
160
166
|
|
|
161
167
|
const program = Decision.generate({
|
|
@@ -223,7 +229,7 @@ Chat Completions (`.model` or `.chat`), Anthropic-compatible Messages (`.message
|
|
|
223
229
|
Responses (`.responses`). These routes use HTTP/SSE.
|
|
224
230
|
|
|
225
231
|
```ts
|
|
226
|
-
import { LLM } from "@opencode/ai"
|
|
232
|
+
import { LLM } from "@opencode/ai/effect"
|
|
227
233
|
import { Alibaba } from "@opencode/ai/providers"
|
|
228
234
|
|
|
229
235
|
const alibaba = Alibaba.configure({
|
|
@@ -302,7 +308,7 @@ pass through. Results are URLs that Model Studio keeps for 24 hours. A complete
|
|
|
302
308
|
the existing `.image(...)` selector provides image generation.
|
|
303
309
|
|
|
304
310
|
```ts
|
|
305
|
-
import { LLM } from "@opencode/ai"
|
|
311
|
+
import { LLM } from "@opencode/ai/effect"
|
|
306
312
|
import { ZAI, ZAICodingPlan } from "@opencode/ai/providers"
|
|
307
313
|
|
|
308
314
|
const zai = ZAI.configure({ apiKey: process.env.ZAI_API_KEY })
|
|
@@ -368,7 +374,7 @@ Package entrypoints are `@opencode/ai/providers/zai`, `zai/chat`, `zai-coding-pl
|
|
|
368
374
|
Moonshot defaults to Chat Completions, with Messages and Responses selectors for Kimi K3:
|
|
369
375
|
|
|
370
376
|
```ts
|
|
371
|
-
import { LLM } from "@opencode/ai"
|
|
377
|
+
import { LLM } from "@opencode/ai/effect"
|
|
372
378
|
import { Moonshot } from "@opencode/ai/providers"
|
|
373
379
|
|
|
374
380
|
const moonshot = Moonshot.configure({ apiKey: process.env.MOONSHOT_API_KEY })
|
|
@@ -430,7 +436,7 @@ MiniMax defaults to its Messages API and reads `MINIMAX_API_KEY` when `apiKey` i
|
|
|
430
436
|
|
|
431
437
|
```ts
|
|
432
438
|
import { Effect } from "effect"
|
|
433
|
-
import { AIClient, LLM } from "@opencode/ai"
|
|
439
|
+
import { AIClient, LLM } from "@opencode/ai/effect"
|
|
434
440
|
import { MiniMax } from "@opencode/ai/providers"
|
|
435
441
|
|
|
436
442
|
const minimax = MiniMax.configure({ apiKey: process.env.MINIMAX_API_KEY })
|
|
@@ -507,7 +513,7 @@ citations or separate result blocks. Retain `response.message` for either API's
|
|
|
507
513
|
Use `Image.generate` for one-off generation or editing:
|
|
508
514
|
|
|
509
515
|
```ts
|
|
510
|
-
import { Image, Media } from "@opencode/ai"
|
|
516
|
+
import { Image, Media } from "@opencode/ai/effect"
|
|
511
517
|
|
|
512
518
|
const generation = Image.generate({
|
|
513
519
|
model: meta.image("muse-image-1.0"),
|
|
@@ -543,7 +549,7 @@ selected model. `aspect` is a ratio such as `"16:9"`; `resolution` is a size tie
|
|
|
543
549
|
at that ratio, `"2K"` about 2048×2048). Exact sizes, seeds, masks, and output formats are provider options:
|
|
544
550
|
|
|
545
551
|
```ts
|
|
546
|
-
import { Image, Media } from "@opencode/ai"
|
|
552
|
+
import { Image, Media } from "@opencode/ai/effect"
|
|
547
553
|
import { OpenAI } from "@opencode/ai/providers"
|
|
548
554
|
|
|
549
555
|
const openai = OpenAI.configure({ apiKey: process.env.OPENAI_API_KEY })
|
|
@@ -729,7 +735,7 @@ and emits `image-partial` events before each final `image`; `Image.generate` kee
|
|
|
729
735
|
|
|
730
736
|
```ts
|
|
731
737
|
import { Stream } from "effect"
|
|
732
|
-
import { ImageEvent } from "@opencode/ai"
|
|
738
|
+
import { ImageEvent } from "@opencode/ai/effect"
|
|
733
739
|
|
|
734
740
|
const previews = Image.stream({
|
|
735
741
|
model: openai.image("gpt-image-2"),
|
|
@@ -813,7 +819,7 @@ Common fields (`frames`, `references`, `video`, `durationSeconds`, `aspect`, `re
|
|
|
813
819
|
under `providerOptions`, inferred from the selected model.
|
|
814
820
|
|
|
815
821
|
```ts
|
|
816
|
-
import { Video } from "@opencode/ai"
|
|
822
|
+
import { Video } from "@opencode/ai/effect"
|
|
817
823
|
import { Google, Runway } from "@opencode/ai/providers"
|
|
818
824
|
|
|
819
825
|
const google = Google.configure({ apiKey: process.env.GOOGLE_GENERATIVE_AI_API_KEY })
|
|
@@ -885,7 +891,7 @@ aborting rejects the Promise or throws from the `for await` loop with `signal.re
|
|
|
885
891
|
unless `abort(reason)` passed one), while `break` stops a stream without throwing.
|
|
886
892
|
|
|
887
893
|
```ts
|
|
888
|
-
import { ai } from "@opencode/ai
|
|
894
|
+
import { ai } from "@opencode/ai"
|
|
889
895
|
|
|
890
896
|
const generation = await ai.video.start({ model, prompt })
|
|
891
897
|
for await (const event of generation.events({ poll: { interval: 10_000 } })) console.log(event.type)
|
|
@@ -902,7 +908,7 @@ selectors on the `OpenAI`, `Google` (Gemini TTS), `ElevenLabs`, `Cartesia`, and
|
|
|
902
908
|
before any network call; provider-native controls live under `providerOptions`, inferred from the selected model.
|
|
903
909
|
|
|
904
910
|
```ts
|
|
905
|
-
import { Media, Speech, SpeechClient, SpeechEvent } from "@opencode/ai"
|
|
911
|
+
import { Media, Speech, SpeechClient, SpeechEvent } from "@opencode/ai/effect"
|
|
906
912
|
import { ElevenLabs, OpenAI } from "@opencode/ai/providers"
|
|
907
913
|
|
|
908
914
|
const openai = OpenAI.configure({ apiKey: process.env.OPENAI_API_KEY })
|
|
@@ -967,7 +973,7 @@ Provider notes:
|
|
|
967
973
|
The promise client mirrors the Effect API; `ai.speech.stream` is an `AsyncIterable`.
|
|
968
974
|
|
|
969
975
|
```ts
|
|
970
|
-
import { ai } from "@opencode/ai
|
|
976
|
+
import { ai } from "@opencode/ai"
|
|
971
977
|
|
|
972
978
|
const response = await ai.speech.generate({ model, text: "Hello from OpenCode.", voice: "coral" })
|
|
973
979
|
await ai.write(response.audio, "hello.mp3")
|
|
@@ -989,7 +995,7 @@ any network call; a route may return more than asked.
|
|
|
989
995
|
|
|
990
996
|
```ts
|
|
991
997
|
import { Console, Effect, Stream } from "effect"
|
|
992
|
-
import { Media, Transcription, TranscriptionEvent } from "@opencode/ai"
|
|
998
|
+
import { Media, Transcription, TranscriptionEvent } from "@opencode/ai/effect"
|
|
993
999
|
import { AssemblyAI, Deepgram, OpenAI } from "@opencode/ai/providers"
|
|
994
1000
|
|
|
995
1001
|
const openai = OpenAI.configure({ apiKey: process.env.OPENAI_API_KEY })
|
|
@@ -1050,6 +1056,8 @@ const transcript = await generation.await({ poll: { interval: 3_000 } })
|
|
|
1050
1056
|
|
|
1051
1057
|
## Public API
|
|
1052
1058
|
|
|
1059
|
+
Everything below is exported from `@opencode/ai/effect` unless noted.
|
|
1060
|
+
|
|
1053
1061
|
- **`LLM.request({...})`** — build a provider-neutral `LLMRequest`. Accepts ergonomic inputs (`system: string`, `prompt: string`) that normalize into the canonical Schema classes.
|
|
1054
1062
|
- **`LLM.generate` / `LLM.stream`** — run direct input or an `LLMRequest` through `LLMClient` for one-import use.
|
|
1055
1063
|
- **`Message.user(...)` / `Message.assistant(...)` / `Message.tool(...)`** — message constructors from the canonical schema model.
|
|
@@ -1063,7 +1071,7 @@ const transcript = await generation.await({ poll: { interval: 3_000 } })
|
|
|
1063
1071
|
- **`Speech.request` / `Speech.generate` / `Speech.stream`** — text-to-speech through a provider-neutral request; `SpeechClient` is its Effect service and layer.
|
|
1064
1072
|
- **`Transcription.request` / `generate` / `stream` / `start` / `resume`** — speech-to-text over inline, streaming, and queued routes; `TranscriptionClient` is its Effect service and layer.
|
|
1065
1073
|
- **`AIClient.layer` / `AIClient.layerWith(executor)`** — every modality client plus the request executor in one layer.
|
|
1066
|
-
- **`@opencode/ai
|
|
1074
|
+
- **`@opencode/ai`** (Promise root) — `AI.make({ layer? })` and a default `ai` client exposing `llm`, `image`, `video`, `speech`, and `transcription` as Promise / `AsyncIterable` APIs, plus `file`, `write`, `bytes`, `base64`, and `materialize` for assets.
|
|
1067
1075
|
|
|
1068
1076
|
## Testing
|
|
1069
1077
|
|
|
@@ -1188,7 +1196,7 @@ Enable OpenAI compaction with typed provider options:
|
|
|
1188
1196
|
|
|
1189
1197
|
```ts
|
|
1190
1198
|
import { Effect } from "effect"
|
|
1191
|
-
import { LLM, LLMClient, LLMRequest, Message } from "@opencode/ai"
|
|
1199
|
+
import { LLM, LLMClient, LLMRequest, Message } from "@opencode/ai/effect"
|
|
1192
1200
|
import { OpenAI } from "@opencode/ai/providers"
|
|
1193
1201
|
|
|
1194
1202
|
const request = LLM.request({
|
|
@@ -1211,7 +1219,7 @@ const continued = Effect.gen(function* () {
|
|
|
1211
1219
|
A compaction part has `provider` and exactly one representation: `encrypted` for Responses, or `text` for Anthropic. Responses also preserves the optional checkpoint `id`. These fields survive message serialization without becoming visible assistant text. Sending a checkpoint to another provider or an incompatible API fails rather than silently losing context.
|
|
1212
1220
|
|
|
1213
1221
|
```ts
|
|
1214
|
-
import { CompactionPart, ProviderID } from "@opencode/ai"
|
|
1222
|
+
import { CompactionPart, ProviderID } from "@opencode/ai/effect"
|
|
1215
1223
|
|
|
1216
1224
|
CompactionPart.make({ provider: ProviderID.make("openai"), id: "cmp_123", encrypted: "..." })
|
|
1217
1225
|
CompactionPart.make({ provider: ProviderID.make("anthropic"), text: "Summary of the conversation..." })
|
|
@@ -1431,7 +1439,7 @@ Compose a route with `Route.make({ protocol, endpoint, auth, framing, ... })`. T
|
|
|
1431
1439
|
|
|
1432
1440
|
## Effect
|
|
1433
1441
|
|
|
1434
|
-
This package is built on Effect. Public methods return `Effect` or `Stream`; provide `AIClient.layer` (or `AIClient.layerWith(executor)`) for every modality, then import the provider/protocol modules for the routes you use. The example at `example/tutorial.ts` is a runnable walkthrough.
|
|
1442
|
+
This package is built on Effect. Public methods in `@opencode/ai/effect` return `Effect` or `Stream`; provide `AIClient.layer` (or `AIClient.layerWith(executor)`) for every modality, then import the provider/protocol modules for the routes you use. The example at `example/tutorial.ts` is a runnable walkthrough.
|
|
1435
1443
|
|
|
1436
1444
|
## See also
|
|
1437
1445
|
|
package/dist/effect.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export { AIClient } from "./ai-client.js";
|
|
2
|
+
export { LLMClient } from "./route/client.js";
|
|
3
|
+
export { ImageClient } from "./image-client.js";
|
|
4
|
+
export { Auth } from "./route/auth.js";
|
|
5
|
+
export { Provider } from "./provider.js";
|
|
6
|
+
export { ProviderPackage } from "./provider-package.js";
|
|
7
|
+
export { isContextOverflow, isContextOverflowFailure, isRetryable } from "./provider-error.js";
|
|
8
|
+
export type { RouteLanguageModelInput, RouteRoutedLanguageModelInput, Interface as LLMClientShape, LLMClientService, } from "./route/client.js";
|
|
9
|
+
export * from "./schema/index.js";
|
|
10
|
+
export { ImageAspectRatio, ImageEvent, ImageModel, ImageModelSchema, ImageRequest, ImageResponse } from "./image.js";
|
|
11
|
+
export type { ImageModelOptions, ImageOptions, ImageRequestFor, ImageRequestInput, ImageResolution, ImageRoute, } from "./image.js";
|
|
12
|
+
export { Image } from "./image.js";
|
|
13
|
+
export { VideoClient } from "./video-client.js";
|
|
14
|
+
export { VideoAspectRatio, VideoEvent, VideoFrames, VideoModel, VideoModelSchema, VideoRequest, VideoResponse, } from "./video.js";
|
|
15
|
+
export type { VideoModelOptions, VideoOptions, VideoRequestFor, VideoRequestInput, VideoResolution, VideoRoute, } from "./video.js";
|
|
16
|
+
export { Video } from "./video.js";
|
|
17
|
+
export { SpeechClient } from "./speech-client.js";
|
|
18
|
+
export { SpeechEvent, SpeechModel, SpeechModelSchema, SpeechRequest, SpeechResponse, SpeechTimestamp, SpeechVoice, } from "./speech.js";
|
|
19
|
+
export type { SpeechFormat, SpeechModelOptions, SpeechOptions, SpeechRequestFor, SpeechRequestInput, SpeechRoute, } from "./speech.js";
|
|
20
|
+
export { Speech } from "./speech.js";
|
|
21
|
+
export { TranscriptionClient } from "./transcription-client.js";
|
|
22
|
+
export { TranscriptionEvent, TranscriptionModel, TranscriptionModelSchema, TranscriptionRequest, TranscriptionResponse, TranscriptionSegment, TranscriptionTimestamps, TranscriptionWord, } from "./transcription.js";
|
|
23
|
+
export type { TranscriptionModelOptions, TranscriptionOptions, TranscriptionRequestFor, TranscriptionRequestInput, TranscriptionRoute, } from "./transcription.js";
|
|
24
|
+
export { Transcription } from "./transcription.js";
|
|
25
|
+
export { DecisionClient } from "./decision-client.js";
|
|
26
|
+
export { ChoiceAnswer, ChoiceQuestion, ChoiceValue, DecisionAnswer, DecisionJsonPart, DecisionMediaPart, DecisionModel, DecisionModelCompatibility, DecisionModelSchema, DecisionPart, DecisionQuestion, DecisionRequest, DecisionResponse, DecisionTextPart, ErrorAnswer, PredicateAnswer, PredicateQuestion, ScoreAnswer, ScoreQuestion, } from "./decision.js";
|
|
27
|
+
export type { AnswerFor, AnswersFor, DecisionInput, DecisionModelOptions, DecisionOptions, DecisionQuestions, DecisionRequestFor, DecisionRequestInput, DecisionResponseFor, DecisionModelRoute, } from "./decision.js";
|
|
28
|
+
export { Decision } from "./decision.js";
|
|
29
|
+
export { DecisionRoute } from "./route/decision.js";
|
|
30
|
+
export { Media } from "./media.js";
|
|
31
|
+
export { Generation } from "./generation.js";
|
|
32
|
+
export type { AwaitOptions as GenerationAwaitOptions, Event as GenerationEvent, Poll, Route as GenerationRoute, Snapshot as GenerationSnapshot, Status as GenerationStatus, } from "./generation.js";
|
|
33
|
+
export { Tool, ToolFailure, toDefinitions } from "./tool.js";
|
|
34
|
+
export { ToolRuntime } from "./tool-runtime.js";
|
|
35
|
+
export type { DispatchResult as ToolDispatchResult, ToolSettlement } from "./tool-runtime.js";
|
|
36
|
+
export type { AnyExecutableTool, AnyTool, ExecutableTool, ExecutableTools, Definition as ToolShape, ToolExecute, ToolExecuteContext, ToolModelOutputInput, Tools, ToolSchema, ToolToModelOutput, } from "./tool.js";
|
|
37
|
+
export * as LLM from "./llm.js";
|
|
38
|
+
export type { Definition as ProviderDefinition, LanguageModelFactory as ProviderLanguageModelFactory, LanguageModelOptions as ProviderLanguageModelOptions, } from "./provider.js";
|
|
39
|
+
export type { Definition as ProviderPackageDefinition, Settings as ProviderPackageSettings, } from "./provider-package.js";
|
package/dist/effect.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export { AIClient } from "./ai-client.js";
|
|
2
|
+
export { LLMClient } from "./route/client.js";
|
|
3
|
+
export { ImageClient } from "./image-client.js";
|
|
4
|
+
export { Auth } from "./route/auth.js";
|
|
5
|
+
export { Provider } from "./provider.js";
|
|
6
|
+
export { ProviderPackage } from "./provider-package.js";
|
|
7
|
+
export { isContextOverflow, isContextOverflowFailure, isRetryable } from "./provider-error.js";
|
|
8
|
+
export * from "./schema/index.js";
|
|
9
|
+
export { ImageAspectRatio, ImageEvent, ImageModel, ImageModelSchema, ImageRequest, ImageResponse } from "./image.js";
|
|
10
|
+
export { Image } from "./image.js";
|
|
11
|
+
export { VideoClient } from "./video-client.js";
|
|
12
|
+
export { VideoAspectRatio, VideoEvent, VideoFrames, VideoModel, VideoModelSchema, VideoRequest, VideoResponse, } from "./video.js";
|
|
13
|
+
export { Video } from "./video.js";
|
|
14
|
+
export { SpeechClient } from "./speech-client.js";
|
|
15
|
+
export { SpeechEvent, SpeechModel, SpeechModelSchema, SpeechRequest, SpeechResponse, SpeechTimestamp, SpeechVoice, } from "./speech.js";
|
|
16
|
+
export { Speech } from "./speech.js";
|
|
17
|
+
export { TranscriptionClient } from "./transcription-client.js";
|
|
18
|
+
export { TranscriptionEvent, TranscriptionModel, TranscriptionModelSchema, TranscriptionRequest, TranscriptionResponse, TranscriptionSegment, TranscriptionTimestamps, TranscriptionWord, } from "./transcription.js";
|
|
19
|
+
export { Transcription } from "./transcription.js";
|
|
20
|
+
export { DecisionClient } from "./decision-client.js";
|
|
21
|
+
export { ChoiceAnswer, ChoiceQuestion, ChoiceValue, DecisionAnswer, DecisionJsonPart, DecisionMediaPart, DecisionModel, DecisionModelCompatibility, DecisionModelSchema, DecisionPart, DecisionQuestion, DecisionRequest, DecisionResponse, DecisionTextPart, ErrorAnswer, PredicateAnswer, PredicateQuestion, ScoreAnswer, ScoreQuestion, } from "./decision.js";
|
|
22
|
+
export { Decision } from "./decision.js";
|
|
23
|
+
export { DecisionRoute } from "./route/decision.js";
|
|
24
|
+
export { Media } from "./media.js";
|
|
25
|
+
export { Generation } from "./generation.js";
|
|
26
|
+
export { Tool, ToolFailure, toDefinitions } from "./tool.js";
|
|
27
|
+
export { ToolRuntime } from "./tool-runtime.js";
|
|
28
|
+
export * as LLM from "./llm.js";
|
package/dist/effort-updates.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { LLMRequest, type EffortPart, type Message } from "./schema/messages.js";
|
|
2
2
|
export declare const effortUpdate: (message: Message) => EffortPart | undefined;
|
|
3
|
-
export declare const stripEffortUpdates: (request: LLMRequest) => LLMRequest<import("./
|
|
3
|
+
export declare const stripEffortUpdates: (request: LLMRequest) => LLMRequest<import("./effect.js").LanguageModel<{
|
|
4
4
|
readonly [x: string]: unknown;
|
|
5
5
|
}, import("./route.js").CompactionOperations | undefined>>;
|
|
6
6
|
export declare const applyEffortUpdates: (request: LLMRequest) => LLMRequest;
|
|
7
7
|
export declare const resolveEffortUpdates: (request: LLMRequest, current: string | undefined) => {
|
|
8
|
-
request: LLMRequest<import("./
|
|
8
|
+
request: LLMRequest<import("./effect.js").LanguageModel<{
|
|
9
9
|
readonly [x: string]: unknown;
|
|
10
10
|
}, import("./route.js").CompactionOperations | undefined>>;
|
|
11
11
|
effort: string | undefined;
|
package/dist/image-client.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const Service: typeof ImageClientService;
|
|
|
9
9
|
export type Service = ImageClientService;
|
|
10
10
|
export declare const ImageClient: {
|
|
11
11
|
readonly layer: import("effect/Layer").Layer<ImageClientService, never, import("./route/executor-service.js").RequestExecutorService>;
|
|
12
|
-
readonly generate: (request: ImageRequestFor, options?: import("./generation.js").AwaitOptions) => import("effect/Effect").Effect<ImageResponse, import("./
|
|
12
|
+
readonly generate: (request: ImageRequestFor, options?: import("./generation.js").AwaitOptions) => import("effect/Effect").Effect<ImageResponse, import("./effect.js").AIError, ImageClientService>;
|
|
13
13
|
readonly stream: (request: ImageRequestFor, options?: import("./generation.js").AwaitOptions) => import("effect/Stream").Stream<{
|
|
14
14
|
readonly type: "image-partial";
|
|
15
15
|
readonly index: number;
|
|
@@ -55,11 +55,11 @@ export declare const ImageClient: {
|
|
|
55
55
|
readonly [x: string]: unknown;
|
|
56
56
|
};
|
|
57
57
|
} | undefined;
|
|
58
|
-
} | import("./generation.js").Observation, import("./
|
|
59
|
-
readonly start: (request: ImageRequestFor) => import("effect/Effect").Effect<import("./generation.js").Generation<ImageResponse>, import("./
|
|
58
|
+
} | import("./generation.js").Observation, import("./effect.js").AIError, ImageClientService>;
|
|
59
|
+
readonly start: (request: ImageRequestFor) => import("effect/Effect").Effect<import("./generation.js").Generation<ImageResponse>, import("./effect.js").AIError, ImageClientService>;
|
|
60
60
|
readonly resume: (model: import("./image.js").ImageModel<{
|
|
61
61
|
readonly [x: string]: unknown;
|
|
62
|
-
}>, token: unknown) => import("effect/Effect").Effect<import("./generation.js").Generation<ImageResponse>, import("./
|
|
62
|
+
}>, token: unknown) => import("effect/Effect").Effect<import("./generation.js").Generation<ImageResponse>, import("./effect.js").AIError, ImageClientService>;
|
|
63
63
|
readonly Service: typeof ImageClientService;
|
|
64
64
|
};
|
|
65
65
|
export {};
|