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

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 +92 -69
  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 +97 -74
  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,25 +13,19 @@ 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
30
  readonly streamRequest: <Type extends {
37
31
  readonly id?: string | undefined;
@@ -39,10 +33,7 @@ export interface Service {
39
33
  readonly data: string;
40
34
  }, DecodingServices>(schema: Schema.Decoder<Type, DecodingServices>) => (request: HttpClientRequest.HttpClientRequest) => Stream.Stream<Type, HttpClientError.HttpClientError | Schema.SchemaError | Sse.Retry, DecodingServices>;
41
35
  /**
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.
36
+ * Creates a message using the Anthropic Messages API and maps all errors to the unified `AiError` type.
46
37
  */
47
38
  readonly createMessage: (options: {
48
39
  readonly payload: typeof Generated.BetaCreateMessageParams.Encoded;
@@ -52,12 +43,12 @@ export interface Service {
52
43
  response: HttpClientResponse.HttpClientResponse
53
44
  ], AiError.AiError>;
54
45
  /**
55
- * Creates a streaming message using the Anthropic Messages API.
46
+ * Creates a streaming message using the Anthropic Messages API and maps all errors to the unified `AiError` type.
47
+ *
48
+ * **Details**
56
49
  *
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.
50
+ * The returned Effect yields the HTTP response and a stream of events as the model generates its response. The stream
51
+ * automatically terminates when a `message_stop` event is received.
61
52
  */
62
53
  readonly createMessageStream: (options: {
63
54
  readonly payload: Omit<typeof Generated.BetaCreateMessageParams.Encoded, "stream">;
@@ -68,8 +59,9 @@ export interface Service {
68
59
  ], AiError.AiError>;
69
60
  }
70
61
  /**
71
- * Represents an event received from the Anthropic Messages API during a
72
- * streaming request.
62
+ * Represents an event received from the Anthropic Messages API during a streaming request.
63
+ *
64
+ * **Details**
73
65
  *
74
66
  * Events include:
75
67
  * - `message_start`: Initial event containing message metadata
@@ -80,115 +72,146 @@ export interface Service {
80
72
  * - `content_block_stop`: End of a content block
81
73
  * - `error`: Error events with type and message
82
74
  *
83
- * @since 1.0.0
84
75
  * @category models
76
+ * @since 4.0.0
85
77
  */
86
78
  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>;
79
+ declare const AnthropicClient_base: Context.ServiceClass<AnthropicClient, "@effect/ai-anthropic/AnthropicClient", Service>;
88
80
  /**
89
- * Service identifier for the Anthropic client.
81
+ * Service tag for the Anthropic client.
82
+ *
83
+ * **When to use**
84
+ *
85
+ * Use when accessing or providing the Anthropic client service through Effect's
86
+ * context.
87
+ *
88
+ * @see {@link make} for constructing an Anthropic client effectfully
89
+ * @see {@link layer} for providing a client from explicit options
90
+ * @see {@link layerConfig} for providing a client from `Config`
90
91
  *
91
- * @since 1.0.0
92
- * @category service
92
+ * @category services
93
+ * @since 4.0.0
93
94
  */
94
95
  export declare class AnthropicClient extends AnthropicClient_base {
95
96
  }
96
97
  /**
97
- * Configuration options for creating an Anthropic client.
98
+ * Configuration for creating an Anthropic client.
98
99
  *
99
- * @since 1.0.0
100
- * @category models
100
+ * **When to use**
101
+ *
102
+ * Use when the Anthropic client settings are already available as values and
103
+ * should be passed directly to `make` or `layer`.
104
+ *
105
+ * **Details**
106
+ *
107
+ * These options configure the base Anthropic URL, the `x-api-key`
108
+ * authentication header, the `anthropic-version` header, and an optional
109
+ * transformation of the underlying `HttpClient`.
110
+ *
111
+ * @see {@link make} for constructing an Anthropic client from explicit options
112
+ * @see {@link layer} for providing an Anthropic client from explicit options
113
+ * @see {@link layerConfig} for loading Anthropic client settings from `Config`
114
+ *
115
+ * @category options
116
+ * @since 4.0.0
101
117
  */
102
118
  export type Options = {
103
119
  /**
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).
120
+ * The Anthropic API key for authentication. Requests are made without authentication when this is omitted, which is
121
+ * useful for proxied setups or testing.
108
122
  */
109
123
  readonly apiKey?: Redacted.Redacted<string> | undefined;
110
124
  /**
111
- * The base URL for the Anthropic API.
112
- *
113
- * Override this to use a proxy or a different API-compatible endpoint.
125
+ * The base URL for the Anthropic API. Override this to use a proxy or a different API-compatible endpoint.
114
126
  *
115
127
  * @default "https://api.anthropic.com"
116
128
  */
117
129
  readonly apiUrl?: string | undefined;
118
130
  /**
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.
131
+ * The Anthropic API version header value. This controls which version of the API to use.
123
132
  *
124
133
  * @default "2023-06-01"
125
134
  */
126
135
  readonly apiVersion?: string | undefined;
127
136
  /**
128
- * Optional transformer for the underlying HTTP client.
129
- *
130
- * Use this to add middleware, logging, or custom request/response handling.
137
+ * Optional transformer for the underlying HTTP client, such as middleware, logging, or custom request/response
138
+ * handling.
131
139
  */
132
140
  readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
133
141
  };
134
142
  /**
135
143
  * Creates an Anthropic client service with the given options.
136
144
  *
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`
145
+ * **When to use**
146
+ *
147
+ * Use when you have explicit configuration values and need an `Effect` that
148
+ * constructs the Anthropic client service, rather than providing it as a `Layer`.
149
+ *
150
+ * **Details**
142
151
  *
143
- * Requires an `HttpClient` in the context.
152
+ * The client handles API key authentication via the `x-api-key` header, API versioning via the `anthropic-version`
153
+ * header, error mapping to the unified `AiError` type, and request/response transformations via `AnthropicConfig`. It
154
+ * requires an `HttpClient` in the context.
155
+ *
156
+ * @see {@link layer} for providing the client as a `Layer` from explicit options
157
+ * @see {@link layerConfig} for providing the client as a `Layer` with `Config`-based settings
144
158
  *
145
- * @since 1.0.0
146
159
  * @category constructors
160
+ * @since 4.0.0
147
161
  */
148
162
  export declare const make: (options: Options) => Effect.Effect<Service, never, HttpClient.HttpClient>;
149
163
  /**
150
164
  * Creates a layer for the Anthropic client with the given options.
151
165
  *
152
- * @since 1.0.0
166
+ * **When to use**
167
+ *
168
+ * Use when you already have explicit `Options` values, such as an API key or
169
+ * custom API URL, and want to provide `AnthropicClient` as a `Layer`.
170
+ *
171
+ * @see {@link make} for constructing the client service effectfully
172
+ * @see {@link layerConfig} for loading client settings from `Config`
173
+ *
153
174
  * @category layers
175
+ * @since 4.0.0
154
176
  */
155
177
  export declare const layer: (options: Options) => Layer.Layer<AnthropicClient, never, HttpClient.HttpClient>;
156
178
  /**
157
179
  * Creates a layer for the Anthropic client, loading the requisite configuration
158
180
  * via Effect's `Config` module.
159
181
  *
160
- * @since 1.0.0
182
+ * **When to use**
183
+ *
184
+ * Use when you want to provide the Anthropic client as a `Layer` with
185
+ * configuration loaded from Effect's `Config` module, such as from environment
186
+ * variables or a secrets provider.
187
+ *
188
+ * @see {@link layer} for providing the client from explicit options instead of `Config`
189
+ * @see {@link make} for constructing the client service effectfully
190
+ *
161
191
  * @category layers
192
+ * @since 4.0.0
162
193
  */
163
194
  export declare const layerConfig: (options?: {
164
195
  /**
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).
196
+ * The Anthropic API key for authentication. Requests are made without authentication when this is omitted, which is
197
+ * useful for proxied setups or testing.
169
198
  */
170
- readonly apiKey?: Config.Config<Redacted.Redacted<string>> | undefined;
199
+ readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
171
200
  /**
172
- * The base URL for the Anthropic API.
173
- *
174
- * Override this to use a proxy or a different API-compatible endpoint.
201
+ * The base URL for the Anthropic API. Override this to use a proxy or a different API-compatible endpoint.
175
202
  *
176
203
  * @default "https://api.anthropic.com"
177
204
  */
178
205
  readonly apiUrl?: Config.Config<string> | undefined;
179
206
  /**
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.
207
+ * The Anthropic API version header value. This controls which version of the API to use.
184
208
  *
185
209
  * @default "2023-06-01"
186
210
  */
187
211
  readonly apiVersion?: Config.Config<string> | undefined;
188
212
  /**
189
- * Optional transformer for the underlying HTTP client.
190
- *
191
- * Use this to add middleware, logging, or custom request/response handling.
213
+ * Optional transformer for the underlying HTTP client, such as middleware, logging, or custom request/response
214
+ * handling.
192
215
  */
193
216
  readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
194
217
  }) => 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":"AASA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,OAAO,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAA;AAGnD,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAA;AAC5E,OAAO,KAAK,iBAAiB,MAAM,wCAAwC,CAAA;AAC3E,OAAO,KAAK,KAAK,kBAAkB,MAAM,yCAAyC,CAAA;AAElF,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAO3C;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,CAAA;IAE1C;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,CACtB,IAAI,SAAS;QACX,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACtB,EACD,gBAAgB,EAEhB,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,KAC3C,CAAC,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAClE,IAAI,EACJ,eAAe,CAAC,eAAe,GAAG,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,KAAK,EAChE,gBAAgB,CACjB,CAAA;IAED;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE;QAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,SAAS,CAAC,uBAAuB,CAAC,OAAO,CAAA;QAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,SAAS,CAAC,sBAAsB,CAAC,OAAO,GAAG,SAAS,CAAA;KAC9E,KAAK,MAAM,CAAC,MAAM,CACjB;QAAC,IAAI,EAAE,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI;QAAE,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB;KAAC,EAC1F,OAAO,CAAC,OAAO,CAChB,CAAA;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE;QACtC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,SAAS,CAAC,sBAAsB,CAAC,OAAO,GAAG,SAAS,CAAA;KAC9E,KAAK,MAAM,CAAC,MAAM,CACjB;QAAC,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC;KAAC,EAC7G,OAAO,CAAC,OAAO,CAChB,CAAA;CACF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,kBAAkB,GAC1B,OAAO,SAAS,CAAC,qBAAqB,CAAC,IAAI,GAC3C,OAAO,SAAS,CAAC,qBAAqB,CAAC,IAAI,GAC3C,OAAO,SAAS,CAAC,oBAAoB,CAAC,IAAI,GAC1C,OAAO,SAAS,CAAC,0BAA0B,CAAC,IAAI,GAChD,OAAO,SAAS,CAAC,0BAA0B,CAAC,IAAI,GAChD,OAAO,SAAS,CAAC,yBAAyB,CAAC,IAAI,GAC/C,OAAO,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAA;;AAM3C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAgB,SAAQ,oBAEpC;CAAG;AAMJ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEvD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAEpC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAExC;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CAClG,CAAA;AAUD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,IAAI,4EAwIhB,CAAA;AAMD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CACpD,CAAA;AAE9C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU;IACpC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAElF;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEvD;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CAClG,KAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAoBvE,CAAA"}
@@ -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":[]}