IdGenerator
Provides identifier generation for AI features.
The IdGenerator service exposes one operation, generateId, which returns a string inside Effect. AI modules use it for values such as tool call ids and generated response item ids. This module includes the service tag, service interface, default generator, configurable custom generator, and layer for providing the service.
Constructors
defaultIdGenerator
Signature
declare const defaultIdGenerator: Service;Creates a custom ID generator service with the specified options.
Details
Validates the configuration to ensure the separator is not part of the alphabet, which would cause ambiguity in parsing generated IDs.
Signature
declare const make: (...args: [MakeOptions]) => Effect<
{
generateId: (...args: []) => Effect<string, never, never>;
},
IllegalArgumentError,
never
>;Layers
Creates a Layer that provides the IdGenerator service with custom configuration.
When to use
Use when you need to provide ID generation capabilities from validated configuration.
Signature
declare function layer(options: MakeOptions): Layer<IdGenerator, IllegalArgumentError>;Models
The service interface for ID generation.
Details
Defines the contract that all ID generator implementations must fulfill. The service provides a single method for generating unique identifiers in an effectful context.
Signature
interface Service {
readonly generateId: () => Effect<string>;
}Options
MakeOptions interface
Configuration options for creating custom ID generators.
Signature
interface MakeOptions {
readonly alphabet: string;
readonly prefix?: string;
readonly separator: string;
readonly size: number;
}Services
IdGenerator
Service tag for AI identifier generation services.
When to use
Use to access or provide the service that creates identifiers for AI tool calls and related generated values.
Details
This tag is used to provide and access ID generation functionality throughout the application. It follows Effect's standard service pattern for type-safe dependency injection.
Signature
declare class IdGenerator extends Shape<"@effect/ai/IdGenerator", Service, this> {
constructor(_: never);
}
Default ID generator service implementation.
Details
Uses the standard configuration with "id" prefix and generates IDs in the format "id_XXXXXXXXXXXXXXXX" where X represents random alphanumeric characters.