@effect/ai-anthropic 4.0.0-beta.8 → 4.0.0-beta.81

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 (41) hide show
  1. package/dist/AnthropicClient.d.ts +93 -74
  2. package/dist/AnthropicClient.d.ts.map +1 -1
  3. package/dist/AnthropicClient.js +51 -19
  4. package/dist/AnthropicClient.js.map +1 -1
  5. package/dist/AnthropicConfig.d.ts +55 -10
  6. package/dist/AnthropicConfig.d.ts.map +1 -1
  7. package/dist/AnthropicConfig.js +30 -7
  8. package/dist/AnthropicConfig.js.map +1 -1
  9. package/dist/AnthropicError.d.ts +136 -37
  10. package/dist/AnthropicError.d.ts.map +1 -1
  11. package/dist/AnthropicError.js +1 -1
  12. package/dist/AnthropicLanguageModel.d.ts +362 -52
  13. package/dist/AnthropicLanguageModel.d.ts.map +1 -1
  14. package/dist/AnthropicLanguageModel.js +88 -21
  15. package/dist/AnthropicLanguageModel.js.map +1 -1
  16. package/dist/AnthropicTelemetry.d.ts +43 -16
  17. package/dist/AnthropicTelemetry.d.ts.map +1 -1
  18. package/dist/AnthropicTelemetry.js +15 -9
  19. package/dist/AnthropicTelemetry.js.map +1 -1
  20. package/dist/AnthropicTool.d.ts +1223 -289
  21. package/dist/AnthropicTool.d.ts.map +1 -1
  22. package/dist/AnthropicTool.js +859 -201
  23. package/dist/AnthropicTool.js.map +1 -1
  24. package/dist/Generated.d.ts +1 -1
  25. package/dist/Generated.js +1 -1
  26. package/dist/index.d.ts +8 -29
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +8 -29
  29. package/dist/index.js.map +1 -1
  30. package/dist/internal/errors.js +7 -7
  31. package/dist/internal/errors.js.map +1 -1
  32. package/package.json +3 -3
  33. package/src/AnthropicClient.ts +114 -104
  34. package/src/AnthropicConfig.ts +56 -11
  35. package/src/AnthropicError.ts +138 -37
  36. package/src/AnthropicLanguageModel.ts +395 -43
  37. package/src/AnthropicTelemetry.ts +48 -22
  38. package/src/AnthropicTool.ts +1216 -282
  39. package/src/Generated.ts +1 -1
  40. package/src/index.ts +8 -29
  41. package/src/internal/errors.ts +9 -7
@@ -1,9 +1,9 @@
1
1
  import type * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Layer from "effect/Layer";
4
5
  import * as Redacted from "effect/Redacted";
5
6
  import * as Schema from "effect/Schema";
6
- import * as ServiceMap from "effect/ServiceMap";
7
7
  import * as Stream from "effect/Stream";
8
8
  import type * as AiError from "effect/unstable/ai/AiError";
9
9
  import * as Sse from "effect/unstable/encoding/Sse";
@@ -13,36 +13,23 @@ import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
13
13
  import type * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
14
14
  import * as Generated from "./Generated.ts";
15
15
  /**
16
- * The Anthropic client service interface.
16
+ * Represents the Anthropic client service with methods for the Messages API, including regular and streaming message
17
+ * creation.
17
18
  *
18
- * Provides methods for interacting with Anthropic's Messages API, including
19
- * both synchronous and streaming message creation.
20
- *
21
- * @since 1.0.0
22
19
  * @category models
20
+ * @since 4.0.0
23
21
  */
24
22
  export interface Service {
25
23
  /**
26
- * The underlying generated Anthropic client providing access to all API
27
- * endpoints.
24
+ * The underlying generated Anthropic client that exposes all API endpoints.
28
25
  */
29
26
  readonly client: Generated.AnthropicClient;
30
27
  /**
31
- * Low-level streaming request helper for custom SSE endpoints.
32
- *
33
- * Executes an HTTP request and decodes the Server-Sent Events response
34
- * using the provided schema.
28
+ * Executes a low-level streaming HTTP request and decodes the Server-Sent Events response using the provided schema.
35
29
  */
36
- readonly streamRequest: <Type extends {
37
- readonly id?: string | undefined;
38
- readonly event: string;
39
- readonly data: string;
40
- }, DecodingServices>(schema: Schema.Decoder<Type, DecodingServices>) => (request: HttpClientRequest.HttpClientRequest) => Stream.Stream<Type, HttpClientError.HttpClientError | Schema.SchemaError | Sse.Retry, DecodingServices>;
30
+ readonly streamRequest: <S extends Sse.EventCodec>(schema: S) => (request: HttpClientRequest.HttpClientRequest) => Stream.Stream<S["Type"], HttpClientError.HttpClientError | Schema.SchemaError | Sse.Retry, S["DecodingServices"]>;
41
31
  /**
42
- * Creates a message using the Anthropic Messages API.
43
- *
44
- * Sends a structured list of input messages and returns the model's
45
- * generated response. All errors are mapped to the unified `AiError` type.
32
+ * Creates a message using the Anthropic Messages API and maps all errors to the unified `AiError` type.
46
33
  */
47
34
  readonly createMessage: (options: {
48
35
  readonly payload: typeof Generated.BetaCreateMessageParams.Encoded;
@@ -52,12 +39,12 @@ export interface Service {
52
39
  response: HttpClientResponse.HttpClientResponse
53
40
  ], AiError.AiError>;
54
41
  /**
55
- * Creates a streaming message using the Anthropic Messages API.
42
+ * Creates a streaming message using the Anthropic Messages API and maps all errors to the unified `AiError` type.
43
+ *
44
+ * **Details**
56
45
  *
57
- * Returns an Effect that yields the HTTP response and a stream of events
58
- * as the model generates its response. The stream automatically terminates
59
- * when a `message_stop` event is received. All errors are mapped to the
60
- * unified `AiError` type.
46
+ * The returned Effect yields the HTTP response and a stream of events as the model generates its response. The stream
47
+ * automatically terminates when a `message_stop` event is received.
61
48
  */
62
49
  readonly createMessageStream: (options: {
63
50
  readonly payload: Omit<typeof Generated.BetaCreateMessageParams.Encoded, "stream">;
@@ -68,8 +55,9 @@ export interface Service {
68
55
  ], AiError.AiError>;
69
56
  }
70
57
  /**
71
- * Represents an event received from the Anthropic Messages API during a
72
- * streaming request.
58
+ * Represents an event received from the Anthropic Messages API during a streaming request.
59
+ *
60
+ * **Details**
73
61
  *
74
62
  * Events include:
75
63
  * - `message_start`: Initial event containing message metadata
@@ -80,115 +68,146 @@ export interface Service {
80
68
  * - `content_block_stop`: End of a content block
81
69
  * - `error`: Error events with type and message
82
70
  *
83
- * @since 1.0.0
84
71
  * @category models
72
+ * @since 4.0.0
85
73
  */
86
74
  export type MessageStreamEvent = typeof Generated.BetaMessageStartEvent.Type | typeof Generated.BetaMessageDeltaEvent.Type | typeof Generated.BetaMessageStopEvent.Type | typeof Generated.BetaContentBlockStartEvent.Type | typeof Generated.BetaContentBlockDeltaEvent.Type | typeof Generated.BetaContentBlockStopEvent.Type | typeof Generated.BetaErrorResponse.Type;
87
- declare const AnthropicClient_base: ServiceMap.ServiceClass<AnthropicClient, "@effect/ai-anthropic/AnthropicClient", Service>;
75
+ declare const AnthropicClient_base: Context.ServiceClass<AnthropicClient, "@effect/ai-anthropic/AnthropicClient", Service>;
88
76
  /**
89
- * Service identifier for the Anthropic client.
77
+ * Service tag for the Anthropic client.
78
+ *
79
+ * **When to use**
80
+ *
81
+ * Use when accessing or providing the Anthropic client service through Effect's
82
+ * context.
83
+ *
84
+ * @see {@link make} for constructing an Anthropic client effectfully
85
+ * @see {@link layer} for providing a client from explicit options
86
+ * @see {@link layerConfig} for providing a client from `Config`
90
87
  *
91
- * @since 1.0.0
92
- * @category service
88
+ * @category services
89
+ * @since 4.0.0
93
90
  */
94
91
  export declare class AnthropicClient extends AnthropicClient_base {
95
92
  }
96
93
  /**
97
- * Configuration options for creating an Anthropic client.
94
+ * Configuration for creating an Anthropic client.
98
95
  *
99
- * @since 1.0.0
100
- * @category models
96
+ * **When to use**
97
+ *
98
+ * Use when the Anthropic client settings are already available as values and
99
+ * should be passed directly to `make` or `layer`.
100
+ *
101
+ * **Details**
102
+ *
103
+ * These options configure the base Anthropic URL, the `x-api-key`
104
+ * authentication header, the `anthropic-version` header, and an optional
105
+ * transformation of the underlying `HttpClient`.
106
+ *
107
+ * @see {@link make} for constructing an Anthropic client from explicit options
108
+ * @see {@link layer} for providing an Anthropic client from explicit options
109
+ * @see {@link layerConfig} for loading Anthropic client settings from `Config`
110
+ *
111
+ * @category options
112
+ * @since 4.0.0
101
113
  */
102
114
  export type Options = {
103
115
  /**
104
- * The Anthropic API key for authentication.
105
- *
106
- * If not provided, requests will be made without authentication (useful for
107
- * proxied setups or testing).
116
+ * The Anthropic API key for authentication. Requests are made without authentication when this is omitted, which is
117
+ * useful for proxied setups or testing.
108
118
  */
109
119
  readonly apiKey?: Redacted.Redacted<string> | undefined;
110
120
  /**
111
- * The base URL for the Anthropic API.
112
- *
113
- * Override this to use a proxy or a different API-compatible endpoint.
121
+ * The base URL for the Anthropic API. Override this to use a proxy or a different API-compatible endpoint.
114
122
  *
115
123
  * @default "https://api.anthropic.com"
116
124
  */
117
125
  readonly apiUrl?: string | undefined;
118
126
  /**
119
- * The Anthropic API version header value.
120
- *
121
- * Controls which version of the API to use. See Anthropic's versioning
122
- * documentation for available versions and their features.
127
+ * The Anthropic API version header value. This controls which version of the API to use.
123
128
  *
124
129
  * @default "2023-06-01"
125
130
  */
126
131
  readonly apiVersion?: string | undefined;
127
132
  /**
128
- * Optional transformer for the underlying HTTP client.
129
- *
130
- * Use this to add middleware, logging, or custom request/response handling.
133
+ * Optional transformer for the underlying HTTP client, such as middleware, logging, or custom request/response
134
+ * handling.
131
135
  */
132
136
  readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
133
137
  };
134
138
  /**
135
139
  * Creates an Anthropic client service with the given options.
136
140
  *
137
- * The client automatically handles:
138
- * - API key authentication via the `x-api-key` header
139
- * - API versioning via the `anthropic-version` header
140
- * - Error mapping to the unified `AiError` type
141
- * - Request/response transformations via `AnthropicConfig`
141
+ * **When to use**
142
+ *
143
+ * Use when you have explicit configuration values and need an `Effect` that
144
+ * constructs the Anthropic client service, rather than providing it as a `Layer`.
145
+ *
146
+ * **Details**
142
147
  *
143
- * Requires an `HttpClient` in the context.
148
+ * The client handles API key authentication via the `x-api-key` header, API versioning via the `anthropic-version`
149
+ * header, error mapping to the unified `AiError` type, and request/response transformations via `AnthropicConfig`. It
150
+ * requires an `HttpClient` in the context.
151
+ *
152
+ * @see {@link layer} for providing the client as a `Layer` from explicit options
153
+ * @see {@link layerConfig} for providing the client as a `Layer` with `Config`-based settings
144
154
  *
145
- * @since 1.0.0
146
155
  * @category constructors
156
+ * @since 4.0.0
147
157
  */
148
158
  export declare const make: (options: Options) => Effect.Effect<Service, never, HttpClient.HttpClient>;
149
159
  /**
150
160
  * Creates a layer for the Anthropic client with the given options.
151
161
  *
152
- * @since 1.0.0
162
+ * **When to use**
163
+ *
164
+ * Use when you already have explicit `Options` values, such as an API key or
165
+ * custom API URL, and want to provide `AnthropicClient` as a `Layer`.
166
+ *
167
+ * @see {@link make} for constructing the client service effectfully
168
+ * @see {@link layerConfig} for loading client settings from `Config`
169
+ *
153
170
  * @category layers
171
+ * @since 4.0.0
154
172
  */
155
173
  export declare const layer: (options: Options) => Layer.Layer<AnthropicClient, never, HttpClient.HttpClient>;
156
174
  /**
157
175
  * Creates a layer for the Anthropic client, loading the requisite configuration
158
176
  * via Effect's `Config` module.
159
177
  *
160
- * @since 1.0.0
178
+ * **When to use**
179
+ *
180
+ * Use when you want to provide the Anthropic client as a `Layer` with
181
+ * configuration loaded from Effect's `Config` module, such as from environment
182
+ * variables or a secrets provider.
183
+ *
184
+ * @see {@link layer} for providing the client from explicit options instead of `Config`
185
+ * @see {@link make} for constructing the client service effectfully
186
+ *
161
187
  * @category layers
188
+ * @since 4.0.0
162
189
  */
163
190
  export declare const layerConfig: (options?: {
164
191
  /**
165
- * The Anthropic API key for authentication.
166
- *
167
- * If not provided, requests will be made without authentication (useful for
168
- * proxied setups or testing).
192
+ * The Anthropic API key for authentication. Requests are made without authentication when this is omitted, which is
193
+ * useful for proxied setups or testing.
169
194
  */
170
- readonly apiKey?: Config.Config<Redacted.Redacted<string>> | undefined;
195
+ readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
171
196
  /**
172
- * The base URL for the Anthropic API.
173
- *
174
- * Override this to use a proxy or a different API-compatible endpoint.
197
+ * The base URL for the Anthropic API. Override this to use a proxy or a different API-compatible endpoint.
175
198
  *
176
199
  * @default "https://api.anthropic.com"
177
200
  */
178
201
  readonly apiUrl?: Config.Config<string> | undefined;
179
202
  /**
180
- * The Anthropic API version header value.
181
- *
182
- * Controls which version of the API to use. See Anthropic's versioning
183
- * documentation for available versions and their features.
203
+ * The Anthropic API version header value. This controls which version of the API to use.
184
204
  *
185
205
  * @default "2023-06-01"
186
206
  */
187
207
  readonly apiVersion?: Config.Config<string> | undefined;
188
208
  /**
189
- * Optional transformer for the underlying HTTP client.
190
- *
191
- * Use this to add middleware, logging, or custom request/response handling.
209
+ * Optional transformer for the underlying HTTP client, such as middleware, logging, or custom request/response
210
+ * handling.
192
211
  */
193
212
  readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
194
213
  }) => Layer.Layer<AnthropicClient, Config.ConfigError, HttpClient.HttpClient>;
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicClient.d.ts","sourceRoot":"","sources":["../src/AnthropicClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnthropicClient.d.ts","sourceRoot":"","sources":["../src/AnthropicClient.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  /**
2
- * Anthropic Client module for interacting with Anthropic's API.
2
+ * The `AnthropicClient` module defines the low-level Effect service for
3
+ * Anthropic's Messages API. It builds a generated Anthropic HTTP client with
4
+ * authentication headers, API version headers, response decoding, and error
5
+ * mapping, then exposes helpers for regular and streaming message requests.
3
6
  *
4
- * Provides a type-safe, Effect-based client for Anthropic operations including
5
- * messages and streaming responses.
6
- *
7
- * @since 1.0.0
7
+ * @since 4.0.0
8
8
  */
9
9
  import * as Array from "effect/Array";
10
+ import * as Context from "effect/Context";
10
11
  import * as Effect from "effect/Effect";
11
12
  import { identity } from "effect/Function";
12
13
  import * as Layer from "effect/Layer";
13
14
  import * as Predicate from "effect/Predicate";
14
15
  import * as Redacted from "effect/Redacted";
15
16
  import * as Schema from "effect/Schema";
16
- import * as ServiceMap from "effect/ServiceMap";
17
17
  import * as Stream from "effect/Stream";
18
18
  import * as Sse from "effect/unstable/encoding/Sse";
19
19
  import * as Headers from "effect/unstable/http/Headers";
@@ -27,12 +27,21 @@ import * as Errors from "./internal/errors.js";
27
27
  // Service Identifier
28
28
  // =============================================================================
29
29
  /**
30
- * Service identifier for the Anthropic client.
30
+ * Service tag for the Anthropic client.
31
+ *
32
+ * **When to use**
33
+ *
34
+ * Use when accessing or providing the Anthropic client service through Effect's
35
+ * context.
36
+ *
37
+ * @see {@link make} for constructing an Anthropic client effectfully
38
+ * @see {@link layer} for providing a client from explicit options
39
+ * @see {@link layerConfig} for providing a client from `Config`
31
40
  *
32
- * @since 1.0.0
33
- * @category service
41
+ * @category services
42
+ * @since 4.0.0
34
43
  */
35
- export class AnthropicClient extends /*#__PURE__*/ServiceMap.Service()("@effect/ai-anthropic/AnthropicClient") {}
44
+ export class AnthropicClient extends /*#__PURE__*/Context.Service()("@effect/ai-anthropic/AnthropicClient") {}
36
45
  // =============================================================================
37
46
  // Constructor
38
47
  // =============================================================================
@@ -42,16 +51,22 @@ const RedactedAnthropicHeaders = {
42
51
  /**
43
52
  * Creates an Anthropic client service with the given options.
44
53
  *
45
- * The client automatically handles:
46
- * - API key authentication via the `x-api-key` header
47
- * - API versioning via the `anthropic-version` header
48
- * - Error mapping to the unified `AiError` type
49
- * - Request/response transformations via `AnthropicConfig`
54
+ * **When to use**
55
+ *
56
+ * Use when you have explicit configuration values and need an `Effect` that
57
+ * constructs the Anthropic client service, rather than providing it as a `Layer`.
58
+ *
59
+ * **Details**
60
+ *
61
+ * The client handles API key authentication via the `x-api-key` header, API versioning via the `anthropic-version`
62
+ * header, error mapping to the unified `AiError` type, and request/response transformations via `AnthropicConfig`. It
63
+ * requires an `HttpClient` in the context.
50
64
  *
51
- * Requires an `HttpClient` in the context.
65
+ * @see {@link layer} for providing the client as a `Layer` from explicit options
66
+ * @see {@link layerConfig} for providing the client as a `Layer` with `Config`-based settings
52
67
  *
53
- * @since 1.0.0
54
68
  * @category constructors
69
+ * @since 4.0.0
55
70
  */
56
71
  export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
57
72
  const baseClient = yield* HttpClient.HttpClient;
@@ -117,16 +132,33 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
117
132
  /**
118
133
  * Creates a layer for the Anthropic client with the given options.
119
134
  *
120
- * @since 1.0.0
135
+ * **When to use**
136
+ *
137
+ * Use when you already have explicit `Options` values, such as an API key or
138
+ * custom API URL, and want to provide `AnthropicClient` as a `Layer`.
139
+ *
140
+ * @see {@link make} for constructing the client service effectfully
141
+ * @see {@link layerConfig} for loading client settings from `Config`
142
+ *
121
143
  * @category layers
144
+ * @since 4.0.0
122
145
  */
123
146
  export const layer = options => Layer.effect(AnthropicClient, make(options));
124
147
  /**
125
148
  * Creates a layer for the Anthropic client, loading the requisite configuration
126
149
  * via Effect's `Config` module.
127
150
  *
128
- * @since 1.0.0
151
+ * **When to use**
152
+ *
153
+ * Use when you want to provide the Anthropic client as a `Layer` with
154
+ * configuration loaded from Effect's `Config` module, such as from environment
155
+ * variables or a secrets provider.
156
+ *
157
+ * @see {@link layer} for providing the client from explicit options instead of `Config`
158
+ * @see {@link make} for constructing the client service effectfully
159
+ *
129
160
  * @category layers
161
+ * @since 4.0.0
130
162
  */
131
163
  export const layerConfig = options => Layer.effect(AnthropicClient, Effect.gen(function* () {
132
164
  const apiKey = Predicate.isNotUndefined(options?.apiKey) ? yield* options.apiKey : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicClient.js","names":["Array","Effect","identity","Layer","Predicate","Redacted","Schema","ServiceMap","Stream","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","AnthropicConfig","Generated","Errors","AnthropicClient","Service","RedactedAnthropicHeaders","AnthropicApiKey","make","fnUntraced","options","baseClient","apiVersion","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","isNotUndefined","apiKey","setHeader","value","acceptJson","transformClient","client","config","getOrUndefined","httpClientOk","filterStatusOk","streamRequest","schema","execute","map","response","stream","unwrap","decodeText","pipeThroughChannel","decodeSchema","createMessage","betaMessagesPost","includeResponse","catchTags","BetaMessagesPost4XX","error","fail","mapClientError","HttpClientError","mapHttpClientError","SchemaError","mapSchemaError","PingEvent","Struct","type","Literal","MessageEvent","Union","BetaMessageStartEvent","BetaMessageDeltaEvent","BetaMessageStopEvent","BetaContentBlockStartEvent","BetaContentBlockDeltaEvent","BetaContentBlockStopEvent","BetaErrorResponse","buildMessageStream","decodeDataSchema","takeUntil","event","data","filter","Retry","die","fromEffect","createMessageStream","post","headers","fromInput","params","undefined","body","jsonUnsafe","payload","catchTag","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen"],"sources":["../src/AnthropicClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AnthropicClient.js","names":["Array","Context","Effect","identity","Layer","Predicate","Redacted","Schema","Stream","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","AnthropicConfig","Generated","Errors","AnthropicClient","Service","RedactedAnthropicHeaders","AnthropicApiKey","make","fnUntraced","options","baseClient","apiVersion","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","isNotUndefined","apiKey","setHeader","value","acceptJson","transformClient","client","config","getOrUndefined","httpClientOk","filterStatusOk","streamRequest","schema","execute","map","response","stream","unwrap","decodeText","pipeThroughChannel","decodeSchema","createMessage","betaMessagesPost","includeResponse","catchTags","BetaMessagesPost4XX","error","fail","mapClientError","HttpClientError","mapHttpClientError","SchemaError","mapSchemaError","PingEvent","Struct","type","Literal","MessageEvent","Union","BetaMessageStartEvent","BetaMessageDeltaEvent","BetaMessageStopEvent","BetaContentBlockStartEvent","BetaContentBlockDeltaEvent","BetaContentBlockStopEvent","BetaErrorResponse","buildMessageStream","decodeDataSchema","takeUntil","event","data","filter","Retry","die","fromEffect","createMessageStream","post","headers","fromInput","params","undefined","body","jsonUnsafe","payload","catchTag","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen"],"sources":["../src/AnthropicClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,45 +1,90 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `AnthropicConfig` module lets a workflow temporarily customize the HTTP
3
+ * client used by generated Anthropic requests. It is used by
4
+ * `AnthropicClient` when request helpers run, so code can add middleware,
5
+ * logging, or other client changes without rebuilding the client layer.
6
+ *
7
+ * @since 4.0.0
3
8
  */
9
+ import * as Context from "effect/Context";
4
10
  import * as Effect from "effect/Effect";
5
- import * as ServiceMap from "effect/ServiceMap";
6
11
  import type { HttpClient } from "effect/unstable/http/HttpClient";
7
- declare const AnthropicConfig_base: ServiceMap.ServiceClass<AnthropicConfig, "@effect/ai-anthropic/AnthropicConfig", AnthropicConfig.Service>;
12
+ declare const AnthropicConfig_base: Context.ServiceClass<AnthropicConfig, "@effect/ai-anthropic/AnthropicConfig", AnthropicConfig.Service>;
8
13
  /**
9
- * @since 1.0.0
14
+ * Service tag for Anthropic client configuration overrides, such as transformations applied to the generated HTTP client.
15
+ *
16
+ * **When to use**
17
+ *
18
+ * Use when you need to provide or read Anthropic client configuration through
19
+ * Effect's context from a layer or integration.
20
+ *
21
+ * @see {@link withClientTransform} for scoping an HTTP client transformation
22
+ *
10
23
  * @category services
24
+ * @since 4.0.0
11
25
  */
12
26
  export declare class AnthropicConfig extends AnthropicConfig_base {
13
27
  /**
14
- * @since 1.0.0
28
+ * Gets the configured Anthropic service from the current context when present.
29
+ *
30
+ * @since 4.0.0
15
31
  */
16
32
  static readonly getOrUndefined: Effect.Effect<typeof AnthropicConfig.Service | undefined>;
17
33
  }
18
34
  /**
19
- * @since 1.0.0
35
+ * Namespace containing types associated with the `AnthropicConfig` service.
36
+ *
37
+ * @since 4.0.0
20
38
  */
21
39
  export declare namespace AnthropicConfig {
22
40
  /**
23
- * @since 1.0.0
41
+ * Configuration provided through `AnthropicConfig`.
42
+ *
43
+ * **Details**
44
+ *
45
+ * Use `transformClient` to wrap or replace the `HttpClient` used by generated Anthropic API requests.
46
+ *
24
47
  * @category models
48
+ * @since 4.0.0
25
49
  */
26
50
  interface Service {
27
51
  readonly transformClient?: ((client: HttpClient) => HttpClient) | undefined;
28
52
  }
29
53
  }
30
54
  /**
31
- * @since 1.0.0
55
+ * Runs an effect with an `AnthropicConfig` override that transforms the underlying `HttpClient` used by generated Anthropic requests.
56
+ *
57
+ * **When to use**
58
+ *
59
+ * Use when you need to apply a temporary `HttpClient` transformation, such as adding middleware or logging, to a
60
+ * specific scope of an effectful program.
61
+ *
32
62
  * @category configuration
63
+ * @since 4.0.0
33
64
  */
34
65
  export declare const withClientTransform: {
35
66
  /**
36
- * @since 1.0.0
67
+ * Runs an effect with an `AnthropicConfig` override that transforms the underlying `HttpClient` used by generated Anthropic requests.
68
+ *
69
+ * **When to use**
70
+ *
71
+ * Use when you need to apply a temporary `HttpClient` transformation, such as adding middleware or logging, to a
72
+ * specific scope of an effectful program.
73
+ *
37
74
  * @category configuration
75
+ * @since 4.0.0
38
76
  */
39
77
  (transform: (client: HttpClient) => HttpClient): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
40
78
  /**
41
- * @since 1.0.0
79
+ * Runs an effect with an `AnthropicConfig` override that transforms the underlying `HttpClient` used by generated Anthropic requests.
80
+ *
81
+ * **When to use**
82
+ *
83
+ * Use when you need to apply a temporary `HttpClient` transformation, such as adding middleware or logging, to a
84
+ * specific scope of an effectful program.
85
+ *
42
86
  * @category configuration
87
+ * @since 4.0.0
43
88
  */
44
89
  <A, E, R>(self: Effect.Effect<A, E, R>, transform: (client: HttpClient) => HttpClient): Effect.Effect<A, E, R>;
45
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicConfig.d.ts","sourceRoot":"","sources":["../src/AnthropicConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;;AAEjE;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAGM;IACzC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC,CAGxF;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;KAC5E;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAChC;;;OAGG;IACH,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClH;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAQvB,CAAA"}
1
+ {"version":3,"file":"AnthropicConfig.d.ts","sourceRoot":"","sources":["../src/AnthropicConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;;AAEjE;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAgB,SAAQ,oBAGM;IACzC;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC,CAGxF;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC;;;;;;;;;OASG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;KAC5E;CACF;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAChC;;;;;;;;;;OAUG;IACH,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClH;;;;;;;;;;OAUG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAQvB,CAAA"}
@@ -1,22 +1,45 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * The `AnthropicConfig` module lets a workflow temporarily customize the HTTP
3
+ * client used by generated Anthropic requests. It is used by
4
+ * `AnthropicClient` when request helpers run, so code can add middleware,
5
+ * logging, or other client changes without rebuilding the client layer.
6
+ *
7
+ * @since 4.0.0
3
8
  */
9
+ import * as Context from "effect/Context";
4
10
  import * as Effect from "effect/Effect";
5
11
  import { dual } from "effect/Function";
6
- import * as ServiceMap from "effect/ServiceMap";
7
12
  /**
8
- * @since 1.0.0
13
+ * Service tag for Anthropic client configuration overrides, such as transformations applied to the generated HTTP client.
14
+ *
15
+ * **When to use**
16
+ *
17
+ * Use when you need to provide or read Anthropic client configuration through
18
+ * Effect's context from a layer or integration.
19
+ *
20
+ * @see {@link withClientTransform} for scoping an HTTP client transformation
21
+ *
9
22
  * @category services
23
+ * @since 4.0.0
10
24
  */
11
- export class AnthropicConfig extends /*#__PURE__*/ServiceMap.Service()("@effect/ai-anthropic/AnthropicConfig") {
25
+ export class AnthropicConfig extends /*#__PURE__*/Context.Service()("@effect/ai-anthropic/AnthropicConfig") {
12
26
  /**
13
- * @since 1.0.0
27
+ * Gets the configured Anthropic service from the current context when present.
28
+ *
29
+ * @since 4.0.0
14
30
  */
15
- static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.services(), services => services.mapUnsafe.get(AnthropicConfig.key));
31
+ static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.context(), services => services.mapUnsafe.get(AnthropicConfig.key));
16
32
  }
17
33
  /**
18
- * @since 1.0.0
34
+ * Runs an effect with an `AnthropicConfig` override that transforms the underlying `HttpClient` used by generated Anthropic requests.
35
+ *
36
+ * **When to use**
37
+ *
38
+ * Use when you need to apply a temporary `HttpClient` transformation, such as adding middleware or logging, to a
39
+ * specific scope of an effectful program.
40
+ *
19
41
  * @category configuration
42
+ * @since 4.0.0
20
43
  */
21
44
  export const withClientTransform = /*#__PURE__*/dual(2, (self, transformClient) => Effect.flatMap(AnthropicConfig.getOrUndefined, config => Effect.provideService(self, AnthropicConfig, {
22
45
  ...config,
@@ -1 +1 @@
1
- {"version":3,"file":"AnthropicConfig.js","names":["Effect","dual","ServiceMap","AnthropicConfig","Service","getOrUndefined","map","services","mapUnsafe","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../src/AnthropicConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAG/C;;;;AAIA,OAAM,MAAOC,eAAgB,sBAAQD,UAAU,CAACE,OAAO,EAGpD,CAAC,sCAAsC,CAAC;EACzC;;;EAGA,OAAgBC,cAAc,gBAA8DL,MAAM,CAACM,GAAG,cACpGN,MAAM,CAACO,QAAQ,EAAS,EACvBA,QAAQ,IAAKA,QAAQ,CAACC,SAAS,CAACC,GAAG,CAACN,eAAe,CAACO,GAAG,CAAC,CAC1D;;AAgBH;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAc5BV,IAAI,CAAC,CAAC,EAAE,CACVW,IAA4B,EAC5BC,eAAmD,KAEnDb,MAAM,CAACc,OAAO,CACZX,eAAe,CAACE,cAAc,EAC7BU,MAAM,IAAKf,MAAM,CAACgB,cAAc,CAACJ,IAAI,EAAET,eAAe,EAAE;EAAE,GAAGY,MAAM;EAAEF;AAAe,CAAE,CAAC,CACzF,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"AnthropicConfig.js","names":["Context","Effect","dual","AnthropicConfig","Service","getOrUndefined","map","context","services","mapUnsafe","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../src/AnthropicConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;AAQA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AAGtC;;;;;;;;;;;;;AAaA,OAAM,MAAOC,eAAgB,sBAAQH,OAAO,CAACI,OAAO,EAGjD,CAAC,sCAAsC,CAAC;EACzC;;;;;EAKA,OAAgBC,cAAc,gBAA8DJ,MAAM,CAACK,GAAG,cACpGL,MAAM,CAACM,OAAO,EAAS,EACtBC,QAAQ,IAAKA,QAAQ,CAACC,SAAS,CAACC,GAAG,CAACP,eAAe,CAACQ,GAAG,CAAC,CAC1D;;AAwBH;;;;;;;;;;;AAWA,OAAO,MAAMC,mBAAmB,gBA4B5BV,IAAI,CAAC,CAAC,EAAE,CACVW,IAA4B,EAC5BC,eAAmD,KAEnDb,MAAM,CAACc,OAAO,CACZZ,eAAe,CAACE,cAAc,EAC7BW,MAAM,IAAKf,MAAM,CAACgB,cAAc,CAACJ,IAAI,EAAEV,eAAe,EAAE;EAAE,GAAGa,MAAM;EAAEF;AAAe,CAAE,CAAC,CACzF,CAAC","ignoreList":[]}