name: effect-facet-unstable-ai-response
description: Guidance for facet effect/unstable/ai/Response focused on APIs like makePart, ProviderMetadata, and isPart. Load after effect-skill-router when this facet is the primary owner.
Effect Facet unstable/ai/Response
Owned scope
- Owns only
effect/unstable/ai/Response.
- Parent module:
effect/unstable/ai.
- Source anchor:
packages/effect/src/unstable/ai/Response.ts.
What it is for
- The
Response module provides data structures to represent responses from large language models.
API quick reference
makePart
ProviderMetadata
isPart
Part
Usage
AnyPart
AllParts
BasePart
FilePart
TextPart
ErrorPart
FinishPart
StreamPart
PartEncoded
TextEndPart
FinishReason
toolCallPart
ToolCallPart
- Full API list:
references/api-reference.md
How to use it
- Start with constructor-style APIs to build values/services before composing operations.
- Use schema/codec APIs to validate inputs at boundaries before business logic.
- Assume unstable APIs can evolve quickly; isolate usage behind thin local adapters.
Starter example
import { Response } from "effect/unstable/ai";
// Create a simple text response part
const textResponse = Response.makePart("text", {
text: "The weather is sunny today!",
});
// Create a tool call response part
const toolCallResponse = Response.makePart("tool-call", {
id: "call_123",
name: "get_weather",
params: { city: "San Francisco" },
providerExecuted: false,
});
Common pitfalls
- Unstable module contracts may change; avoid coupling core app logic directly to experimental details.
- Prefer explicit, typed combinators over ad-hoc casting or unchecked assumptions.
Not covered here
- Sibling facets under the same parent are out of scope:
effect-facet-unstable-ai-aierror (effect/unstable/ai/AiError)
effect-facet-unstable-ai-anthropicstructuredoutput (effect/unstable/ai/AnthropicStructuredOutput)
effect-facet-unstable-ai-chat (effect/unstable/ai/Chat)
effect-facet-unstable-ai-idgenerator (effect/unstable/ai/IdGenerator)
effect-facet-unstable-ai-languagemodel (effect/unstable/ai/LanguageModel)
effect-facet-unstable-ai-mcpschema (effect/unstable/ai/McpSchema)
effect-facet-unstable-ai-mcpserver (effect/unstable/ai/McpServer)
effect-facet-unstable-ai-model (effect/unstable/ai/Model)
effect-facet-unstable-ai-openaistructuredoutput (effect/unstable/ai/OpenAiStructuredOutput)
effect-facet-unstable-ai-prompt (effect/unstable/ai/Prompt)
effect-facet-unstable-ai-telemetry (effect/unstable/ai/Telemetry)
effect-facet-unstable-ai-tokenizer (effect/unstable/ai/Tokenizer)
effect-facet-unstable-ai-tool (effect/unstable/ai/Tool)
effect-facet-unstable-ai-toolkit (effect/unstable/ai/Toolkit)
- Parent module ownership belongs to
effect-module-unstable-ai.
Escalate to
effect-module-unstable-ai for parent module-wide workflows.
effect-skill-router for cross-module routing and ownership checks.
Reference anchors
- Facet source:
packages/effect/src/unstable/ai/Response.ts
- Parent tests:
packages/effect/test/unstable/ai/AiError.test.ts
- Parent tests:
packages/effect/test/unstable/ai/Chat.test.ts
- Parent tests:
packages/effect/test/unstable/ai/LanguageModel.test.ts
- Parent tests:
packages/effect/test/unstable/ai/Prompt.test.ts
- Parent tests:
packages/effect/test/unstable/ai/Tool.test.ts
- Parent tests:
packages/effect/test/unstable/ai/AnthropicStructuredOutput.test.ts
- API details:
references/api-reference.md
- Usage notes:
references/usage-reference.md
- Ownership mapping:
references/owner.md