@effect/ai-anthropic 0.16.2 → 0.17.0

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 (48) hide show
  1. package/AnthropicTool/package.json +6 -0
  2. package/dist/cjs/AnthropicClient.js +286 -191
  3. package/dist/cjs/AnthropicClient.js.map +1 -1
  4. package/dist/cjs/AnthropicLanguageModel.js +1026 -311
  5. package/dist/cjs/AnthropicLanguageModel.js.map +1 -1
  6. package/dist/cjs/AnthropicTokenizer.js +8 -6
  7. package/dist/cjs/AnthropicTokenizer.js.map +1 -1
  8. package/dist/cjs/AnthropicTool.js +461 -0
  9. package/dist/cjs/AnthropicTool.js.map +1 -0
  10. package/dist/cjs/Generated.js +3507 -1230
  11. package/dist/cjs/Generated.js.map +1 -1
  12. package/dist/cjs/index.js +3 -1
  13. package/dist/cjs/internal/utilities.js +13 -3
  14. package/dist/cjs/internal/utilities.js.map +1 -1
  15. package/dist/dts/AnthropicClient.d.ts +673 -17
  16. package/dist/dts/AnthropicClient.d.ts.map +1 -1
  17. package/dist/dts/AnthropicLanguageModel.d.ts +217 -26
  18. package/dist/dts/AnthropicLanguageModel.d.ts.map +1 -1
  19. package/dist/dts/AnthropicTokenizer.d.ts +1 -1
  20. package/dist/dts/AnthropicTokenizer.d.ts.map +1 -1
  21. package/dist/dts/AnthropicTool.d.ts +523 -0
  22. package/dist/dts/AnthropicTool.d.ts.map +1 -0
  23. package/dist/dts/Generated.d.ts +7863 -3496
  24. package/dist/dts/Generated.d.ts.map +1 -1
  25. package/dist/dts/index.d.ts +4 -0
  26. package/dist/dts/index.d.ts.map +1 -1
  27. package/dist/esm/AnthropicClient.js +269 -189
  28. package/dist/esm/AnthropicClient.js.map +1 -1
  29. package/dist/esm/AnthropicLanguageModel.js +1022 -306
  30. package/dist/esm/AnthropicLanguageModel.js.map +1 -1
  31. package/dist/esm/AnthropicTokenizer.js +8 -6
  32. package/dist/esm/AnthropicTokenizer.js.map +1 -1
  33. package/dist/esm/AnthropicTool.js +452 -0
  34. package/dist/esm/AnthropicTool.js.map +1 -0
  35. package/dist/esm/Generated.js +3492 -1063
  36. package/dist/esm/Generated.js.map +1 -1
  37. package/dist/esm/index.js +4 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/internal/utilities.js +12 -2
  40. package/dist/esm/internal/utilities.js.map +1 -1
  41. package/package.json +11 -3
  42. package/src/AnthropicClient.ts +713 -370
  43. package/src/AnthropicLanguageModel.ts +1404 -345
  44. package/src/AnthropicTokenizer.ts +14 -23
  45. package/src/AnthropicTool.ts +553 -0
  46. package/src/Generated.ts +4165 -1681
  47. package/src/index.ts +5 -0
  48. package/src/internal/utilities.ts +18 -4
package/src/index.ts CHANGED
@@ -18,6 +18,11 @@ export * as AnthropicLanguageModel from "./AnthropicLanguageModel.js"
18
18
  */
19
19
  export * as AnthropicTokenizer from "./AnthropicTokenizer.js"
20
20
 
21
+ /**
22
+ * @since 1.0.0
23
+ */
24
+ export * as AnthropicTool from "./AnthropicTool.js"
25
+
21
26
  /**
22
27
  * @since 1.0.0
23
28
  */
@@ -1,18 +1,32 @@
1
- import type * as AiResponse from "@effect/ai/AiResponse"
1
+ import type * as Response from "@effect/ai/Response"
2
2
  import * as Predicate from "effect/Predicate"
3
3
 
4
+ /** @internal */
5
+ export const ProviderOptionsKey = "@effect/ai-anthropic/AnthropicLanguageModel/ProviderOptions"
6
+
4
7
  /** @internal */
5
8
  export const ProviderMetadataKey = "@effect/ai-anthropic/AnthropicLanguageModel/ProviderMetadata"
6
9
 
7
- const finishReasonMap: Record<string, AiResponse.FinishReason> = {
10
+ const finishReasonMap: Record<string, Response.FinishReason> = {
8
11
  end_turn: "stop",
9
12
  max_tokens: "length",
13
+ pause_turn: "pause",
14
+ refusal: "content-filter",
10
15
  stop_sequence: "stop",
11
16
  tool_use: "tool-calls"
12
17
  }
13
18
 
14
19
  /** @internal */
15
- export const resolveFinishReason = (finishReason: string): AiResponse.FinishReason => {
20
+ export const resolveFinishReason = (
21
+ finishReason: string,
22
+ isJsonResponse: boolean = false
23
+ ): Response.FinishReason => {
16
24
  const reason = finishReasonMap[finishReason]
17
- return Predicate.isUndefined(reason) ? "unknown" : reason
25
+ if (Predicate.isUndefined(reason)) {
26
+ return "unknown"
27
+ }
28
+ if (isJsonResponse && reason === "tool-calls") {
29
+ return "stop"
30
+ }
31
+ return reason
18
32
  }