packages/ai/src/effect.ts
Rama dev · réplica de lectura del repositorio original.
import { Decision } from "./decision.js"
import { Embedding } from "./embedding.js"
import { Image } from "./image.js"
import { LLM } from "./llm.js"
import { Speech } from "./speech.js"
import { Transcription } from "./transcription.js"
import { Video } from "./video.js"
/** The Effect API: the same shape as `ai` from `@opencode/ai`, returning `Effect` and `Stream`. */
export const ai = {
request: LLM.request,
generate: LLM.generate,
stream: LLM.stream,
loop: LLM.loop,
collect: LLM.collect,
compact: LLM.compact,
canCompact: LLM.canCompact,
image: Image,
decision: Decision,
embedding: Embedding,
/** Experimental: may change without compatibility guarantees. */
experimental: {
speech: Speech,
transcription: Transcription,
video: Video,
},
} as const
export { AIClient } from "./ai-client.js"
export { LLMClient } from "./route/client.js"
export { ImageClient } from "./image-client.js"
export { Auth } from "./route/auth.js"
export { ProviderPackage } from "./provider-package.js"
export type { LLMClientService } from "./route/client.js"
export { DecisionClient } from "./decision-client.js"
export { DecisionRoute } from "./route/decision.js"
export { EmbeddingClient } from "./embedding-client.js"
export { EmbeddingRoute } from "./route/embedding.js"
export { Generation } from "./generation.js"
export { ToolFailure, emptyInputJsonSchema, toDefinitions, tool } from "./tool.js"
export { ToolRuntime } from "./tool-runtime.js"
export type { ToolSettlement } from "./tool-runtime.js"
export * from "./public.js"