@anthropic-ai/foundry-sdk 0.2.4 → 0.3.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.3.1 (2026-06-09)
4
+
5
+ Full Changelog: [foundry-sdk-v0.3.0...foundry-sdk-v0.3.1](https://github.com/anthropics/anthropic-sdk-typescript/compare/foundry-sdk-v0.3.0...foundry-sdk-v0.3.1)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **client:** 3p middleware ordering ([#53](https://github.com/anthropics/anthropic-sdk-typescript/issues/53)) ([2a4c339](https://github.com/anthropics/anthropic-sdk-typescript/commit/2a4c339e6887aa2e8e1278c7b22d3732cf64a76c))
10
+
11
+ ## 0.3.0 (2026-06-05)
12
+
13
+ Full Changelog: [foundry-sdk-v0.2.4...foundry-sdk-v0.3.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/foundry-sdk-v0.2.4...foundry-sdk-v0.3.0)
14
+
15
+ ### Features
16
+
17
+ * **api:** mark Claude Opus 4.1 as deprecated ([4ee46f2](https://github.com/anthropics/anthropic-sdk-typescript/commit/4ee46f24cb2a5388027d7efb0b44fcb210ae8b50))
18
+ * **client:** add support for middleware ([9b01120](https://github.com/anthropics/anthropic-sdk-typescript/commit/9b011207965540211cefb19d44d758b7942aedab))
19
+
3
20
  ## 0.2.4 (2026-05-29)
4
21
 
5
22
  Full Changelog: [foundry-sdk-v0.2.3...foundry-sdk-v0.2.4](https://github.com/anthropics/anthropic-sdk-typescript/compare/foundry-sdk-v0.2.3...foundry-sdk-v0.2.4)
@@ -0,0 +1,2 @@
1
+ export * from '@anthropic-ai/sdk/core/middleware';
2
+ //# sourceMappingURL=middleware.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.mts","sourceRoot":"","sources":["../src/core/middleware.ts"],"names":[],"mappings":"cAAc,mCAAmC"}
@@ -0,0 +1,2 @@
1
+ export * from '@anthropic-ai/sdk/core/middleware';
2
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/core/middleware.ts"],"names":[],"mappings":"cAAc,mCAAmC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("@anthropic-ai/sdk/core/middleware"), exports);
18
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/core/middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD"}
@@ -0,0 +1,2 @@
1
+ export * from '@anthropic-ai/sdk/core/middleware';
2
+ //# sourceMappingURL=middleware.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.mjs","sourceRoot":"","sources":["../src/core/middleware.ts"],"names":[],"mappings":"cAAc,mCAAmC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.mts","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"OAEO,KAAK,EAAE,mBAAmB,EAAE;OAE5B,EAAE,KAAK,aAAa,EAAE;OAEtB,KAAK,EAAE,YAAY,EAAE;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAqD3B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IACzB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GACrD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,CAAC,CAAC;AAEN,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAS9E"}
1
+ {"version":3,"file":"parse.d.mts","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"OAEO,KAAK,EAAE,mBAAmB,EAAE;OAE5B,EAAE,KAAK,aAAa,EAAE;OAEtB,KAAK,EAAE,YAAY,EAAE;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAiD3B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IACzB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GACrD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,CAAC,CAAC;AAEN,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAS9E"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"OAEO,KAAK,EAAE,mBAAmB,EAAE;OAE5B,EAAE,KAAK,aAAa,EAAE;OAEtB,KAAK,EAAE,YAAY,EAAE;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAqD3B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IACzB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GACrD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,CAAC,CAAC;AAEN,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAS9E"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"OAEO,KAAK,EAAE,mBAAmB,EAAE;OAE5B,EAAE,KAAK,aAAa,EAAE;OAEtB,KAAK,EAAE,YAAY,EAAE;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,UAAU,EAAE,eAAe,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAiD3B;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IACzB,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,GACrD,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnE,CAAC,CAAC;AAEN,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAS9E"}
package/internal/parse.js CHANGED
@@ -12,9 +12,6 @@ async function defaultParseResponse(client, props) {
12
12
  (0, log_1.loggerFor)(client).debug('response', response.status, response.url, response.headers, response.body);
13
13
  // Note: there is an invariant here that isn't represented in the type system
14
14
  // that if you set `stream: true` the response type must also be `Stream<T>`
15
- if (props.options.__streamClass) {
16
- return props.options.__streamClass.fromSSEResponse(response, props.controller);
17
- }
18
15
  return streaming_1.Stream.fromSSEResponse(response, props.controller);
19
16
  }
20
17
  // fetch refuses to read the body when the status code is 204.
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":";AAAA,sFAAsF;;AAiBtF,oDAoDC;AAOD,oCASC;AAlFD,oDAA2C;AAE3C,wCAA8D;AAYvD,KAAK,UAAU,oBAAoB,CACxC,MAAqB,EACrB,KAAuB;IAEvB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,IAAA,eAAS,EAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEpG,6EAA6E;YAC7E,4EAA4E;YAE5E,OAAO,kBAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAQ,CAAC;QACnE,CAAC;QAED,8DAA8D;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAS,CAAC;QACnB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACnC,OAAO,QAAwB,CAAC;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC7D,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;gBAC1B,8CAA8C;gBAC9C,OAAO,SAAc,CAAC;YACxB,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC,IAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAoB,CAAC;IAC9B,CAAC,CAAC,EAAE,CAAC;IACL,IAAA,eAAS,EAAC,MAAM,CAAC,CAAC,KAAK,CACrB,IAAI,YAAY,mBAAmB,EACnC,IAAA,0BAAoB,EAAC;QACnB,mBAAmB;QACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,SAAgB,YAAY,CAAI,KAAQ,EAAE,QAAkB;IAC1D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAyB,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;QACjD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzC,UAAU,EAAE,KAAK;KAClB,CAAqB,CAAC;AACzB,CAAC"}
@@ -8,9 +8,6 @@ export async function defaultParseResponse(client, props) {
8
8
  loggerFor(client).debug('response', response.status, response.url, response.headers, response.body);
9
9
  // Note: there is an invariant here that isn't represented in the type system
10
10
  // that if you set `stream: true` the response type must also be `Stream<T>`
11
- if (props.options.__streamClass) {
12
- return props.options.__streamClass.fromSSEResponse(response, props.controller);
13
- }
14
11
  return Stream.fromSSEResponse(response, props.controller);
15
12
  }
16
13
  // fetch refuses to read the body when the status code is 204.
@@ -1 +1 @@
1
- {"version":3,"file":"parse.mjs","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.mjs","sourceRoot":"","sources":["../src/internal/parse.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAG/E,EAAE,MAAM,EAAE;OAEV,EAAE,oBAAoB,EAAE,SAAS,EAAE;AAY1C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAqB,EACrB,KAAuB;IAEvB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAC7B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEpG,6EAA6E;YAC7E,4EAA4E;YAE5E,OAAO,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAQ,CAAC;QACnE,CAAC;QAED,8DAA8D;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAS,CAAC;QACnB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACnC,OAAO,QAAwB,CAAC;QAClC,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC7D,IAAI,aAAa,KAAK,GAAG,EAAE,CAAC;gBAC1B,8CAA8C;gBAC9C,OAAO,SAAc,CAAC;YACxB,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO,YAAY,CAAC,IAAS,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,IAAoB,CAAC;IAC9B,CAAC,CAAC,EAAE,CAAC;IACL,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CACrB,IAAI,YAAY,mBAAmB,EACnC,oBAAoB,CAAC;QACnB,mBAAmB;QACnB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,MAAM,UAAU,YAAY,CAAI,KAAQ,EAAE,QAAkB;IAC1D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,KAAyB,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;QACjD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QACzC,UAAU,EAAE,KAAK;KAClB,CAAqB,CAAC;AACzB,CAAC"}
@@ -1,13 +1,48 @@
1
1
  import { NullableHeaders } from "./headers.mjs";
2
2
  import type { BodyInit } from "./builtin-types.mjs";
3
3
  import { Stream } from "../core/streaming.mjs";
4
+ import type { Middleware } from "../core/middleware.mjs";
4
5
  import type { HTTPMethod, MergedRequestInit } from "./types.mjs";
5
6
  import { type HeadersLike } from "./headers.mjs";
6
7
  export type FinalRequestOptions = RequestOptions & {
7
8
  method: HTTPMethod;
8
9
  path: string;
9
10
  };
10
- export type RequestOptions = {
11
+ /**
12
+ * Tracks which fallback a sequence of requests is pinned to.
13
+ *
14
+ * Create one (`new BetaFallbackState()`) and pass it via the `fallbackState`
15
+ * request option on every request that should share the pin — the turns of one
16
+ * conversation, or any wider scope the stickiness should apply to;
17
+ * `betaRefusalFallbackMiddleware` mutates it in place when a model refuses.
18
+ */
19
+ export declare class BetaFallbackState {
20
+ /**
21
+ * Index into the fallback chain the requests are pinned to.
22
+ *
23
+ * `undefined` (or -1) targets the original request params; the middleware
24
+ * sets it to the index of the fallback that accepted the request.
25
+ */
26
+ index?: number;
27
+ }
28
+ /**
29
+ * Options for an individual API request.
30
+ *
31
+ * Declared as an interface so it can be extended via declaration merging, e.g.
32
+ * to thread custom per-request context through to {@link Middleware}:
33
+ *
34
+ * ```ts
35
+ * declare module '@anthropic-ai/sdk/internal/request-options' {
36
+ * interface RequestOptions {
37
+ * myContext?: string;
38
+ * }
39
+ * }
40
+ * ```
41
+ *
42
+ * The SDK ignores properties it doesn't know about; they are visible to
43
+ * middleware on `ctx.options`.
44
+ */
45
+ export interface RequestOptions {
11
46
  /**
12
47
  * The HTTP method for the request (e.g., 'get', 'post', 'put', 'delete').
13
48
  */
@@ -54,6 +89,21 @@ export type RequestOptions = {
54
89
  * An AbortSignal that can be used to cancel the request.
55
90
  */
56
91
  signal?: AbortSignal | undefined | null;
92
+ /**
93
+ * Additional {@link Middleware} to wrap this request's HTTP attempts.
94
+ *
95
+ * These run after any client-level middleware (but still outside any backend
96
+ * adaptation) and apply to every attempt of this request, including retries.
97
+ */
98
+ middleware?: ReadonlyArray<Middleware> | undefined;
99
+ /**
100
+ * Sticky state for `betaRefusalFallbackMiddleware`.
101
+ *
102
+ * The middleware records which fallback it settled on, so requests sharing
103
+ * the state skip models that already refused. Pass the same object across
104
+ * whatever scope the pin should apply to — typically a conversation.
105
+ */
106
+ fallbackState?: BetaFallbackState;
57
107
  /**
58
108
  * A unique key for this request to enable idempotency.
59
109
  */
@@ -64,7 +114,7 @@ export type RequestOptions = {
64
114
  defaultBaseURL?: string | undefined;
65
115
  __binaryResponse?: boolean | undefined;
66
116
  __streamClass?: typeof Stream;
67
- };
117
+ }
68
118
  export type EncodedContent = {
69
119
  bodyHeaders: HeadersLike;
70
120
  body: BodyInit;
@@ -1 +1 @@
1
- {"version":3,"file":"request-options.d.mts","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":"OAEO,EAAE,eAAe,EAAE;OAEnB,KAAK,EAAE,QAAQ,EAAE;OACjB,EAAE,MAAM,EAAE;OACV,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE;OACtC,EAAE,KAAK,WAAW,EAAE;AAE3B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAAK,cAAc,CAAC;AAEtG,eAAO,MAAM,eAAe,EAAE,cAO7B,CAAC"}
1
+ {"version":3,"file":"request-options.d.mts","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":"OAEO,EAAE,eAAe,EAAE;OAEnB,KAAK,EAAE,QAAQ,EAAE;OACjB,EAAE,MAAM,EAAE;OACV,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE;OACtC,EAAE,KAAK,WAAW,EAAE;AAE3B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAExC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAElC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAAK,cAAc,CAAC;AAEtG,eAAO,MAAM,eAAe,EAAE,cAO7B,CAAC"}
@@ -1,13 +1,48 @@
1
1
  import { NullableHeaders } from "./headers.js";
2
2
  import type { BodyInit } from "./builtin-types.js";
3
3
  import { Stream } from "../core/streaming.js";
4
+ import type { Middleware } from "../core/middleware.js";
4
5
  import type { HTTPMethod, MergedRequestInit } from "./types.js";
5
6
  import { type HeadersLike } from "./headers.js";
6
7
  export type FinalRequestOptions = RequestOptions & {
7
8
  method: HTTPMethod;
8
9
  path: string;
9
10
  };
10
- export type RequestOptions = {
11
+ /**
12
+ * Tracks which fallback a sequence of requests is pinned to.
13
+ *
14
+ * Create one (`new BetaFallbackState()`) and pass it via the `fallbackState`
15
+ * request option on every request that should share the pin — the turns of one
16
+ * conversation, or any wider scope the stickiness should apply to;
17
+ * `betaRefusalFallbackMiddleware` mutates it in place when a model refuses.
18
+ */
19
+ export declare class BetaFallbackState {
20
+ /**
21
+ * Index into the fallback chain the requests are pinned to.
22
+ *
23
+ * `undefined` (or -1) targets the original request params; the middleware
24
+ * sets it to the index of the fallback that accepted the request.
25
+ */
26
+ index?: number;
27
+ }
28
+ /**
29
+ * Options for an individual API request.
30
+ *
31
+ * Declared as an interface so it can be extended via declaration merging, e.g.
32
+ * to thread custom per-request context through to {@link Middleware}:
33
+ *
34
+ * ```ts
35
+ * declare module '@anthropic-ai/sdk/internal/request-options' {
36
+ * interface RequestOptions {
37
+ * myContext?: string;
38
+ * }
39
+ * }
40
+ * ```
41
+ *
42
+ * The SDK ignores properties it doesn't know about; they are visible to
43
+ * middleware on `ctx.options`.
44
+ */
45
+ export interface RequestOptions {
11
46
  /**
12
47
  * The HTTP method for the request (e.g., 'get', 'post', 'put', 'delete').
13
48
  */
@@ -54,6 +89,21 @@ export type RequestOptions = {
54
89
  * An AbortSignal that can be used to cancel the request.
55
90
  */
56
91
  signal?: AbortSignal | undefined | null;
92
+ /**
93
+ * Additional {@link Middleware} to wrap this request's HTTP attempts.
94
+ *
95
+ * These run after any client-level middleware (but still outside any backend
96
+ * adaptation) and apply to every attempt of this request, including retries.
97
+ */
98
+ middleware?: ReadonlyArray<Middleware> | undefined;
99
+ /**
100
+ * Sticky state for `betaRefusalFallbackMiddleware`.
101
+ *
102
+ * The middleware records which fallback it settled on, so requests sharing
103
+ * the state skip models that already refused. Pass the same object across
104
+ * whatever scope the pin should apply to — typically a conversation.
105
+ */
106
+ fallbackState?: BetaFallbackState;
57
107
  /**
58
108
  * A unique key for this request to enable idempotency.
59
109
  */
@@ -64,7 +114,7 @@ export type RequestOptions = {
64
114
  defaultBaseURL?: string | undefined;
65
115
  __binaryResponse?: boolean | undefined;
66
116
  __streamClass?: typeof Stream;
67
- };
117
+ }
68
118
  export type EncodedContent = {
69
119
  bodyHeaders: HeadersLike;
70
120
  body: BodyInit;
@@ -1 +1 @@
1
- {"version":3,"file":"request-options.d.ts","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":"OAEO,EAAE,eAAe,EAAE;OAEnB,KAAK,EAAE,QAAQ,EAAE;OACjB,EAAE,MAAM,EAAE;OACV,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE;OACtC,EAAE,KAAK,WAAW,EAAE;AAE3B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAAK,cAAc,CAAC;AAEtG,eAAO,MAAM,eAAe,EAAE,cAO7B,CAAC"}
1
+ {"version":3,"file":"request-options.d.ts","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":"OAEO,EAAE,eAAe,EAAE;OAEnB,KAAK,EAAE,QAAQ,EAAE;OACjB,EAAE,MAAM,EAAE;OACV,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE;OACtC,EAAE,KAAK,WAAW,EAAE;AAE3B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF;;;;;;;GAOG;AACH,qBAAa,iBAAiB;IAC5B;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE7B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,CAAC;IAExC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;IAEnD;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAElC;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvC,aAAa,CAAC,EAAE,OAAO,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,KAAK,cAAc,CAAC;AAEtG,eAAO,MAAM,eAAe,EAAE,cAO7B,CAAC"}
@@ -1,7 +1,18 @@
1
1
  "use strict";
2
2
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.FallbackEncoder = void 0;
4
+ exports.FallbackEncoder = exports.BetaFallbackState = void 0;
5
+ /**
6
+ * Tracks which fallback a sequence of requests is pinned to.
7
+ *
8
+ * Create one (`new BetaFallbackState()`) and pass it via the `fallbackState`
9
+ * request option on every request that should share the pin — the turns of one
10
+ * conversation, or any wider scope the stickiness should apply to;
11
+ * `betaRefusalFallbackMiddleware` mutates it in place when a model refuses.
12
+ */
13
+ class BetaFallbackState {
14
+ }
15
+ exports.BetaFallbackState = BetaFallbackState;
5
16
  const FallbackEncoder = ({ headers, body }) => {
6
17
  return {
7
18
  bodyHeaders: {
@@ -1 +1 @@
1
- {"version":3,"file":"request-options.js","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAqF/E,MAAM,eAAe,GAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IACnE,OAAO;QACL,WAAW,EAAE;YACX,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
1
+ {"version":3,"file":"request-options.js","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAYtF;;;;;;;GAOG;AACH,MAAa,iBAAiB;CAQ7B;AARD,8CAQC;AA8GM,MAAM,eAAe,GAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IACnE,OAAO;QACL,WAAW,EAAE;YACX,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,eAAe,mBAO1B"}
@@ -1,4 +1,14 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ /**
3
+ * Tracks which fallback a sequence of requests is pinned to.
4
+ *
5
+ * Create one (`new BetaFallbackState()`) and pass it via the `fallbackState`
6
+ * request option on every request that should share the pin — the turns of one
7
+ * conversation, or any wider scope the stickiness should apply to;
8
+ * `betaRefusalFallbackMiddleware` mutates it in place when a model refuses.
9
+ */
10
+ export class BetaFallbackState {
11
+ }
2
12
  export const FallbackEncoder = ({ headers, body }) => {
3
13
  return {
4
14
  bodyHeaders: {
@@ -1 +1 @@
1
- {"version":3,"file":"request-options.mjs","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAqFtF,MAAM,CAAC,MAAM,eAAe,GAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IACnE,OAAO;QACL,WAAW,EAAE;YACX,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"request-options.mjs","sourceRoot":"","sources":["../src/internal/request-options.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAYtF;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAiB;CAQ7B;AA8GD,MAAM,CAAC,MAAM,eAAe,GAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IACnE,OAAO;QACL,WAAW,EAAE;YACX,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC;AACJ,CAAC,CAAC"}
@@ -8,8 +8,18 @@ export type Logger = {
8
8
  debug: LogFn;
9
9
  };
10
10
  export type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';
11
- export declare const parseLogLevel: (maybeLevel: string | undefined, sourceName: string, client: BaseAnthropic) => LogLevel | undefined;
11
+ export declare const defaultLogLevel: LogLevel;
12
+ export declare const parseLogLevel: (maybeLevel: string | undefined, sourceName: string, logger: Logger) => LogLevel | undefined;
12
13
  export declare function loggerFor(client: BaseAnthropic): Logger;
14
+ /**
15
+ * A logger matching the client defaults — `console`, filtered to
16
+ * `ANTHROPIC_LOG` or {@link defaultLogLevel} — for contexts with no client to
17
+ * read the configured `logger`/`logLevel` from.
18
+ *
19
+ * Cached per `ANTHROPIC_LOG` value so an invalid value warns once, like a
20
+ * client construction does, rather than on every request.
21
+ */
22
+ export declare function defaultLogger(): Logger;
13
23
  export declare const formatRequestDetails: (details: {
14
24
  options?: RequestOptions | undefined;
15
25
  headers?: Headers | Record<string, string> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.mts","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"OAGO,EAAE,KAAK,aAAa,EAAE;OACtB,EAAE,cAAc,EAAE;AAEzB,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAC3D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAUnE,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,GAAG,SAAS,EAC9B,YAAY,MAAM,EAClB,QAAQ,aAAa,KACpB,QAAQ,GAAG,SAab,CAAC;AAsBF,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsBvD;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS;IAC5C,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;cAVW,cAAc,GAAG,SAAS;cAC1B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;0BAChC,MAAM,GAAG,SAAS;cAC9B,MAAM,GAAG,SAAS;UACtB,MAAM,GAAG,SAAS;aACf,MAAM,GAAG,SAAS;aAClB,MAAM,GAAG,SAAS;iBACd,MAAM,GAAG,SAAS;cACrB,OAAO;WACV,OAAO;CA+Bf,CAAC"}
1
+ {"version":3,"file":"log.d.mts","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"OAIO,EAAE,KAAK,aAAa,EAAE;OACtB,EAAE,cAAc,EAAE;AAEzB,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAC3D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,eAAO,MAAM,eAAe,EAAE,QAAiB,CAAC;AAUhD,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,GAAG,SAAS,EAC9B,YAAY,MAAM,EAClB,QAAQ,MAAM,KACb,QAAQ,GAAG,SAab,CAAC;AAwCF,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAOvD;AAKD;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS;IAC5C,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;cAVW,cAAc,GAAG,SAAS;cAC1B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;0BAChC,MAAM,GAAG,SAAS;cAC9B,MAAM,GAAG,SAAS;UACtB,MAAM,GAAG,SAAS;aACf,MAAM,GAAG,SAAS;aAClB,MAAM,GAAG,SAAS;iBACd,MAAM,GAAG,SAAS;cACrB,OAAO;WACV,OAAO;CA+Bf,CAAC"}
@@ -8,8 +8,18 @@ export type Logger = {
8
8
  debug: LogFn;
9
9
  };
10
10
  export type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';
11
- export declare const parseLogLevel: (maybeLevel: string | undefined, sourceName: string, client: BaseAnthropic) => LogLevel | undefined;
11
+ export declare const defaultLogLevel: LogLevel;
12
+ export declare const parseLogLevel: (maybeLevel: string | undefined, sourceName: string, logger: Logger) => LogLevel | undefined;
12
13
  export declare function loggerFor(client: BaseAnthropic): Logger;
14
+ /**
15
+ * A logger matching the client defaults — `console`, filtered to
16
+ * `ANTHROPIC_LOG` or {@link defaultLogLevel} — for contexts with no client to
17
+ * read the configured `logger`/`logLevel` from.
18
+ *
19
+ * Cached per `ANTHROPIC_LOG` value so an invalid value warns once, like a
20
+ * client construction does, rather than on every request.
21
+ */
22
+ export declare function defaultLogger(): Logger;
13
23
  export declare const formatRequestDetails: (details: {
14
24
  options?: RequestOptions | undefined;
15
25
  headers?: Headers | Record<string, string> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"OAGO,EAAE,KAAK,aAAa,EAAE;OACtB,EAAE,cAAc,EAAE;AAEzB,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAC3D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAUnE,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,GAAG,SAAS,EAC9B,YAAY,MAAM,EAClB,QAAQ,aAAa,KACpB,QAAQ,GAAG,SAab,CAAC;AAsBF,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAsBvD;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS;IAC5C,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;cAVW,cAAc,GAAG,SAAS;cAC1B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;0BAChC,MAAM,GAAG,SAAS;cAC9B,MAAM,GAAG,SAAS;UACtB,MAAM,GAAG,SAAS;aACf,MAAM,GAAG,SAAS;aAClB,MAAM,GAAG,SAAS;iBACd,MAAM,GAAG,SAAS;cACrB,OAAO;WACV,OAAO;CA+Bf,CAAC"}
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"OAIO,EAAE,KAAK,aAAa,EAAE;OACtB,EAAE,cAAc,EAAE;AAEzB,KAAK,KAAK,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAC3D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,eAAO,MAAM,eAAe,EAAE,QAAiB,CAAC;AAUhD,eAAO,MAAM,aAAa,GACxB,YAAY,MAAM,GAAG,SAAS,EAC9B,YAAY,MAAM,EAClB,QAAQ,MAAM,KACb,QAAQ,GAAG,SAab,CAAC;AAwCF,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAOvD;AAKD;;;;;;;GAOG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAWtC;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS;IAC5C,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACvD,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;cAVW,cAAc,GAAG,SAAS;cAC1B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;0BAChC,MAAM,GAAG,SAAS;cAC9B,MAAM,GAAG,SAAS;UACtB,MAAM,GAAG,SAAS;aACf,MAAM,GAAG,SAAS;aAClB,MAAM,GAAG,SAAS;iBACd,MAAM,GAAG,SAAS;cACrB,OAAO;WACV,OAAO;CA+Bf,CAAC"}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.formatRequestDetails = exports.parseLogLevel = void 0;
4
+ exports.formatRequestDetails = exports.parseLogLevel = exports.defaultLogLevel = void 0;
5
5
  exports.loggerFor = loggerFor;
6
+ exports.defaultLogger = defaultLogger;
6
7
  const values_1 = require("./values.js");
8
+ const env_1 = require("./env.js");
9
+ exports.defaultLogLevel = 'warn';
7
10
  const levelNumbers = {
8
11
  off: 0,
9
12
  error: 200,
@@ -11,14 +14,14 @@ const levelNumbers = {
11
14
  info: 400,
12
15
  debug: 500,
13
16
  };
14
- const parseLogLevel = (maybeLevel, sourceName, client) => {
17
+ const parseLogLevel = (maybeLevel, sourceName, logger) => {
15
18
  if (!maybeLevel) {
16
19
  return undefined;
17
20
  }
18
21
  if ((0, values_1.hasOwn)(levelNumbers, maybeLevel)) {
19
22
  return maybeLevel;
20
23
  }
21
- loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);
24
+ logger.warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);
22
25
  return undefined;
23
26
  };
24
27
  exports.parseLogLevel = parseLogLevel;
@@ -39,12 +42,7 @@ const noopLogger = {
39
42
  debug: noop,
40
43
  };
41
44
  let cachedLoggers = /* @__PURE__ */ new WeakMap();
42
- function loggerFor(client) {
43
- const logger = client.logger;
44
- const logLevel = client.logLevel ?? 'off';
45
- if (!logger) {
46
- return noopLogger;
47
- }
45
+ function filterLogger(logger, logLevel) {
48
46
  const cachedLogger = cachedLoggers.get(logger);
49
47
  if (cachedLogger && cachedLogger[0] === logLevel) {
50
48
  return cachedLogger[1];
@@ -58,6 +56,33 @@ function loggerFor(client) {
58
56
  cachedLoggers.set(logger, [logLevel, levelLogger]);
59
57
  return levelLogger;
60
58
  }
59
+ function loggerFor(client) {
60
+ const logger = client.logger;
61
+ const logLevel = client.logLevel ?? 'off';
62
+ if (!logger) {
63
+ return noopLogger;
64
+ }
65
+ return filterLogger(logger, logLevel);
66
+ }
67
+ let lastEnvLevel;
68
+ let cachedDefaultLogger;
69
+ /**
70
+ * A logger matching the client defaults — `console`, filtered to
71
+ * `ANTHROPIC_LOG` or {@link defaultLogLevel} — for contexts with no client to
72
+ * read the configured `logger`/`logLevel` from.
73
+ *
74
+ * Cached per `ANTHROPIC_LOG` value so an invalid value warns once, like a
75
+ * client construction does, rather than on every request.
76
+ */
77
+ function defaultLogger() {
78
+ const envLevel = (0, env_1.readEnv)('ANTHROPIC_LOG');
79
+ if (!cachedDefaultLogger || envLevel !== lastEnvLevel) {
80
+ lastEnvLevel = envLevel;
81
+ cachedDefaultLogger = filterLogger(console, (0, exports.parseLogLevel)(envLevel, "process.env['ANTHROPIC_LOG']", filterLogger(console, exports.defaultLogLevel)) ??
82
+ exports.defaultLogLevel);
83
+ }
84
+ return cachedDefaultLogger;
85
+ }
61
86
  const formatRequestDetails = (details) => {
62
87
  if (details.options) {
63
88
  details.options = { ...details.options };
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { hasOwn } from "./values.mjs";
3
+ import { readEnv } from "./env.mjs";
4
+ export const defaultLogLevel = 'warn';
3
5
  const levelNumbers = {
4
6
  off: 0,
5
7
  error: 200,
@@ -7,14 +9,14 @@ const levelNumbers = {
7
9
  info: 400,
8
10
  debug: 500,
9
11
  };
10
- export const parseLogLevel = (maybeLevel, sourceName, client) => {
12
+ export const parseLogLevel = (maybeLevel, sourceName, logger) => {
11
13
  if (!maybeLevel) {
12
14
  return undefined;
13
15
  }
14
16
  if (hasOwn(levelNumbers, maybeLevel)) {
15
17
  return maybeLevel;
16
18
  }
17
- loggerFor(client).warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);
19
+ logger.warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);
18
20
  return undefined;
19
21
  };
20
22
  function noop() { }
@@ -34,12 +36,7 @@ const noopLogger = {
34
36
  debug: noop,
35
37
  };
36
38
  let cachedLoggers = /* @__PURE__ */ new WeakMap();
37
- export function loggerFor(client) {
38
- const logger = client.logger;
39
- const logLevel = client.logLevel ?? 'off';
40
- if (!logger) {
41
- return noopLogger;
42
- }
39
+ function filterLogger(logger, logLevel) {
43
40
  const cachedLogger = cachedLoggers.get(logger);
44
41
  if (cachedLogger && cachedLogger[0] === logLevel) {
45
42
  return cachedLogger[1];
@@ -53,6 +50,33 @@ export function loggerFor(client) {
53
50
  cachedLoggers.set(logger, [logLevel, levelLogger]);
54
51
  return levelLogger;
55
52
  }
53
+ export function loggerFor(client) {
54
+ const logger = client.logger;
55
+ const logLevel = client.logLevel ?? 'off';
56
+ if (!logger) {
57
+ return noopLogger;
58
+ }
59
+ return filterLogger(logger, logLevel);
60
+ }
61
+ let lastEnvLevel;
62
+ let cachedDefaultLogger;
63
+ /**
64
+ * A logger matching the client defaults — `console`, filtered to
65
+ * `ANTHROPIC_LOG` or {@link defaultLogLevel} — for contexts with no client to
66
+ * read the configured `logger`/`logLevel` from.
67
+ *
68
+ * Cached per `ANTHROPIC_LOG` value so an invalid value warns once, like a
69
+ * client construction does, rather than on every request.
70
+ */
71
+ export function defaultLogger() {
72
+ const envLevel = readEnv('ANTHROPIC_LOG');
73
+ if (!cachedDefaultLogger || envLevel !== lastEnvLevel) {
74
+ lastEnvLevel = envLevel;
75
+ cachedDefaultLogger = filterLogger(console, parseLogLevel(envLevel, "process.env['ANTHROPIC_LOG']", filterLogger(console, defaultLogLevel)) ??
76
+ defaultLogLevel);
77
+ }
78
+ return cachedDefaultLogger;
79
+ }
56
80
  export const formatRequestDetails = (details) => {
57
81
  if (details.options) {
58
82
  details.options = { ...details.options };
@@ -1 +1 @@
1
- {"version":3,"file":"log.mjs","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log.mjs","sourceRoot":"","sources":["../../src/internal/utils/log.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthropic-ai/foundry-sdk",
3
- "version": "0.2.4",
3
+ "version": "0.3.1",
4
4
  "description": "The official TypeScript library for the Anthropic Foundry API",
5
5
  "author": "Anthropic <support@anthropic.com>",
6
6
  "types": "./index.d.ts",
@@ -0,0 +1 @@
1
+ export * from '@anthropic-ai/sdk/core/middleware';
@@ -27,10 +27,6 @@ export async function defaultParseResponse<T>(
27
27
  // Note: there is an invariant here that isn't represented in the type system
28
28
  // that if you set `stream: true` the response type must also be `Stream<T>`
29
29
 
30
- if (props.options.__streamClass) {
31
- return props.options.__streamClass.fromSSEResponse(response, props.controller) as any;
32
- }
33
-
34
30
  return Stream.fromSSEResponse(response, props.controller) as any;
35
31
  }
36
32
 
@@ -4,12 +4,48 @@ import { NullableHeaders } from './headers';
4
4
 
5
5
  import type { BodyInit } from './builtin-types';
6
6
  import { Stream } from '../core/streaming';
7
+ import type { Middleware } from '../core/middleware';
7
8
  import type { HTTPMethod, MergedRequestInit } from './types';
8
9
  import { type HeadersLike } from './headers';
9
10
 
10
11
  export type FinalRequestOptions = RequestOptions & { method: HTTPMethod; path: string };
11
12
 
12
- export type RequestOptions = {
13
+ /**
14
+ * Tracks which fallback a sequence of requests is pinned to.
15
+ *
16
+ * Create one (`new BetaFallbackState()`) and pass it via the `fallbackState`
17
+ * request option on every request that should share the pin — the turns of one
18
+ * conversation, or any wider scope the stickiness should apply to;
19
+ * `betaRefusalFallbackMiddleware` mutates it in place when a model refuses.
20
+ */
21
+ export class BetaFallbackState {
22
+ /**
23
+ * Index into the fallback chain the requests are pinned to.
24
+ *
25
+ * `undefined` (or -1) targets the original request params; the middleware
26
+ * sets it to the index of the fallback that accepted the request.
27
+ */
28
+ index?: number;
29
+ }
30
+
31
+ /**
32
+ * Options for an individual API request.
33
+ *
34
+ * Declared as an interface so it can be extended via declaration merging, e.g.
35
+ * to thread custom per-request context through to {@link Middleware}:
36
+ *
37
+ * ```ts
38
+ * declare module '@anthropic-ai/sdk/internal/request-options' {
39
+ * interface RequestOptions {
40
+ * myContext?: string;
41
+ * }
42
+ * }
43
+ * ```
44
+ *
45
+ * The SDK ignores properties it doesn't know about; they are visible to
46
+ * middleware on `ctx.options`.
47
+ */
48
+ export interface RequestOptions {
13
49
  /**
14
50
  * The HTTP method for the request (e.g., 'get', 'post', 'put', 'delete').
15
51
  */
@@ -66,6 +102,23 @@ export type RequestOptions = {
66
102
  */
67
103
  signal?: AbortSignal | undefined | null;
68
104
 
105
+ /**
106
+ * Additional {@link Middleware} to wrap this request's HTTP attempts.
107
+ *
108
+ * These run after any client-level middleware (but still outside any backend
109
+ * adaptation) and apply to every attempt of this request, including retries.
110
+ */
111
+ middleware?: ReadonlyArray<Middleware> | undefined;
112
+
113
+ /**
114
+ * Sticky state for `betaRefusalFallbackMiddleware`.
115
+ *
116
+ * The middleware records which fallback it settled on, so requests sharing
117
+ * the state skip models that already refused. Pass the same object across
118
+ * whatever scope the pin should apply to — typically a conversation.
119
+ */
120
+ fallbackState?: BetaFallbackState;
121
+
69
122
  /**
70
123
  * A unique key for this request to enable idempotency.
71
124
  */
@@ -78,7 +131,7 @@ export type RequestOptions = {
78
131
 
79
132
  __binaryResponse?: boolean | undefined;
80
133
  __streamClass?: typeof Stream;
81
- };
134
+ }
82
135
 
83
136
  export type EncodedContent = { bodyHeaders: HeadersLike; body: BodyInit };
84
137
  export type RequestEncoder = (request: { headers: NullableHeaders; body: unknown }) => EncodedContent;
@@ -1,6 +1,7 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { hasOwn } from './values';
4
+ import { readEnv } from './env';
4
5
  import { type BaseAnthropic } from '../../client';
5
6
  import { RequestOptions } from '../request-options';
6
7
 
@@ -13,6 +14,8 @@ export type Logger = {
13
14
  };
14
15
  export type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';
15
16
 
17
+ export const defaultLogLevel: LogLevel = 'warn';
18
+
16
19
  const levelNumbers = {
17
20
  off: 0,
18
21
  error: 200,
@@ -24,7 +27,7 @@ const levelNumbers = {
24
27
  export const parseLogLevel = (
25
28
  maybeLevel: string | undefined,
26
29
  sourceName: string,
27
- client: BaseAnthropic,
30
+ logger: Logger,
28
31
  ): LogLevel | undefined => {
29
32
  if (!maybeLevel) {
30
33
  return undefined;
@@ -32,7 +35,7 @@ export const parseLogLevel = (
32
35
  if (hasOwn(levelNumbers, maybeLevel)) {
33
36
  return maybeLevel;
34
37
  }
35
- loggerFor(client).warn(
38
+ logger.warn(
36
39
  `${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(
37
40
  Object.keys(levelNumbers),
38
41
  )}`,
@@ -60,13 +63,7 @@ const noopLogger = {
60
63
 
61
64
  let cachedLoggers = /* @__PURE__ */ new WeakMap<Logger, [LogLevel, Logger]>();
62
65
 
63
- export function loggerFor(client: BaseAnthropic): Logger {
64
- const logger = client.logger;
65
- const logLevel = client.logLevel ?? 'off';
66
- if (!logger) {
67
- return noopLogger;
68
- }
69
-
66
+ function filterLogger(logger: Logger, logLevel: LogLevel): Logger {
70
67
  const cachedLogger = cachedLoggers.get(logger);
71
68
  if (cachedLogger && cachedLogger[0] === logLevel) {
72
69
  return cachedLogger[1];
@@ -84,6 +81,39 @@ export function loggerFor(client: BaseAnthropic): Logger {
84
81
  return levelLogger;
85
82
  }
86
83
 
84
+ export function loggerFor(client: BaseAnthropic): Logger {
85
+ const logger = client.logger;
86
+ const logLevel = client.logLevel ?? 'off';
87
+ if (!logger) {
88
+ return noopLogger;
89
+ }
90
+ return filterLogger(logger, logLevel);
91
+ }
92
+
93
+ let lastEnvLevel: string | undefined;
94
+ let cachedDefaultLogger: Logger | undefined;
95
+
96
+ /**
97
+ * A logger matching the client defaults — `console`, filtered to
98
+ * `ANTHROPIC_LOG` or {@link defaultLogLevel} — for contexts with no client to
99
+ * read the configured `logger`/`logLevel` from.
100
+ *
101
+ * Cached per `ANTHROPIC_LOG` value so an invalid value warns once, like a
102
+ * client construction does, rather than on every request.
103
+ */
104
+ export function defaultLogger(): Logger {
105
+ const envLevel = readEnv('ANTHROPIC_LOG');
106
+ if (!cachedDefaultLogger || envLevel !== lastEnvLevel) {
107
+ lastEnvLevel = envLevel;
108
+ cachedDefaultLogger = filterLogger(
109
+ console,
110
+ parseLogLevel(envLevel, "process.env['ANTHROPIC_LOG']", filterLogger(console, defaultLogLevel)) ??
111
+ defaultLogLevel,
112
+ );
113
+ }
114
+ return cachedDefaultLogger;
115
+ }
116
+
87
117
  export const formatRequestDetails = (details: {
88
118
  options?: RequestOptions | undefined;
89
119
  headers?: Headers | Record<string, string> | undefined;