@effect/ai 0.14.1 → 0.16.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 (134) hide show
  1. package/AiEmbeddingModel/package.json +6 -0
  2. package/AiLanguageModel/package.json +6 -0
  3. package/AiTool/package.json +6 -0
  4. package/dist/cjs/AiChat.js +65 -86
  5. package/dist/cjs/AiChat.js.map +1 -1
  6. package/dist/cjs/{Embeddings.js → AiEmbeddingModel.js} +12 -12
  7. package/dist/cjs/AiEmbeddingModel.js.map +1 -0
  8. package/dist/cjs/AiError.js +8 -1
  9. package/dist/cjs/AiError.js.map +1 -1
  10. package/dist/cjs/AiInput.js +335 -248
  11. package/dist/cjs/AiInput.js.map +1 -1
  12. package/dist/cjs/AiLanguageModel.js +311 -0
  13. package/dist/cjs/AiLanguageModel.js.map +1 -0
  14. package/dist/cjs/AiModel.js +11 -5
  15. package/dist/cjs/AiModel.js.map +1 -1
  16. package/dist/cjs/AiPlan.js +10 -3
  17. package/dist/cjs/AiPlan.js.map +1 -1
  18. package/dist/cjs/AiResponse.js +481 -165
  19. package/dist/cjs/AiResponse.js.map +1 -1
  20. package/dist/cjs/AiTelemetry.js +10 -3
  21. package/dist/cjs/AiTelemetry.js.map +1 -1
  22. package/dist/cjs/AiTool.js +93 -0
  23. package/dist/cjs/AiTool.js.map +1 -0
  24. package/dist/cjs/AiToolkit.js +121 -98
  25. package/dist/cjs/AiToolkit.js.map +1 -1
  26. package/dist/cjs/Tokenizer.js +14 -16
  27. package/dist/cjs/Tokenizer.js.map +1 -1
  28. package/dist/cjs/index.js +7 -9
  29. package/dist/cjs/internal/aiPlan.js +6 -9
  30. package/dist/cjs/internal/aiPlan.js.map +1 -1
  31. package/dist/cjs/internal/common.js +22 -0
  32. package/dist/cjs/internal/common.js.map +1 -0
  33. package/dist/dts/AiChat.d.ts +58 -44
  34. package/dist/dts/AiChat.d.ts.map +1 -1
  35. package/dist/dts/{Embeddings.d.ts → AiEmbeddingModel.d.ts} +13 -14
  36. package/dist/dts/AiEmbeddingModel.d.ts.map +1 -0
  37. package/dist/dts/AiError.d.ts +4 -3
  38. package/dist/dts/AiError.d.ts.map +1 -1
  39. package/dist/dts/AiInput.d.ts +441 -146
  40. package/dist/dts/AiInput.d.ts.map +1 -1
  41. package/dist/dts/AiLanguageModel.d.ts +263 -0
  42. package/dist/dts/AiLanguageModel.d.ts.map +1 -0
  43. package/dist/dts/AiModel.d.ts +21 -20
  44. package/dist/dts/AiModel.d.ts.map +1 -1
  45. package/dist/dts/AiPlan.d.ts +90 -26
  46. package/dist/dts/AiPlan.d.ts.map +1 -1
  47. package/dist/dts/AiResponse.d.ts +711 -100
  48. package/dist/dts/AiResponse.d.ts.map +1 -1
  49. package/dist/dts/AiTelemetry.d.ts +175 -157
  50. package/dist/dts/AiTelemetry.d.ts.map +1 -1
  51. package/dist/dts/AiTool.d.ts +288 -0
  52. package/dist/dts/AiTool.d.ts.map +1 -0
  53. package/dist/dts/AiToolkit.d.ts +50 -111
  54. package/dist/dts/AiToolkit.d.ts.map +1 -1
  55. package/dist/dts/Tokenizer.d.ts +8 -6
  56. package/dist/dts/Tokenizer.d.ts.map +1 -1
  57. package/dist/dts/index.d.ts +8 -12
  58. package/dist/dts/index.d.ts.map +1 -1
  59. package/dist/dts/internal/common.d.ts +2 -0
  60. package/dist/dts/internal/common.d.ts.map +1 -0
  61. package/dist/esm/AiChat.js +62 -83
  62. package/dist/esm/AiChat.js.map +1 -1
  63. package/dist/esm/{Embeddings.js → AiEmbeddingModel.js} +10 -10
  64. package/dist/esm/AiEmbeddingModel.js.map +1 -0
  65. package/dist/esm/AiError.js +8 -1
  66. package/dist/esm/AiError.js.map +1 -1
  67. package/dist/esm/AiInput.js +316 -238
  68. package/dist/esm/AiInput.js.map +1 -1
  69. package/dist/esm/AiLanguageModel.js +300 -0
  70. package/dist/esm/AiLanguageModel.js.map +1 -0
  71. package/dist/esm/AiModel.js +11 -5
  72. package/dist/esm/AiModel.js.map +1 -1
  73. package/dist/esm/AiPlan.js +8 -2
  74. package/dist/esm/AiPlan.js.map +1 -1
  75. package/dist/esm/AiResponse.js +467 -162
  76. package/dist/esm/AiResponse.js.map +1 -1
  77. package/dist/esm/AiTelemetry.js +8 -2
  78. package/dist/esm/AiTelemetry.js.map +1 -1
  79. package/dist/esm/AiTool.js +82 -0
  80. package/dist/esm/AiTool.js.map +1 -0
  81. package/dist/esm/AiToolkit.js +118 -96
  82. package/dist/esm/AiToolkit.js.map +1 -1
  83. package/dist/esm/Tokenizer.js +14 -16
  84. package/dist/esm/Tokenizer.js.map +1 -1
  85. package/dist/esm/index.js +8 -12
  86. package/dist/esm/index.js.map +1 -1
  87. package/dist/esm/internal/aiPlan.js +4 -7
  88. package/dist/esm/internal/aiPlan.js.map +1 -1
  89. package/dist/esm/internal/common.js +14 -0
  90. package/dist/esm/internal/common.js.map +1 -0
  91. package/package.json +28 -36
  92. package/src/AiChat.ts +182 -207
  93. package/src/{Embeddings.ts → AiEmbeddingModel.ts} +19 -18
  94. package/src/AiError.ts +8 -1
  95. package/src/AiInput.ts +434 -313
  96. package/src/AiLanguageModel.ts +569 -0
  97. package/src/AiModel.ts +47 -29
  98. package/src/AiPlan.ts +102 -30
  99. package/src/AiResponse.ts +743 -187
  100. package/src/AiTelemetry.ts +214 -197
  101. package/src/AiTool.ts +496 -0
  102. package/src/AiToolkit.ts +200 -240
  103. package/src/Tokenizer.ts +18 -22
  104. package/src/index.ts +9 -14
  105. package/src/internal/aiPlan.ts +12 -14
  106. package/src/internal/common.ts +12 -0
  107. package/AiModels/package.json +0 -6
  108. package/AiRole/package.json +0 -6
  109. package/Completions/package.json +0 -6
  110. package/Embeddings/package.json +0 -6
  111. package/dist/cjs/AiModels.js +0 -54
  112. package/dist/cjs/AiModels.js.map +0 -1
  113. package/dist/cjs/AiRole.js +0 -106
  114. package/dist/cjs/AiRole.js.map +0 -1
  115. package/dist/cjs/Completions.js +0 -256
  116. package/dist/cjs/Completions.js.map +0 -1
  117. package/dist/cjs/Embeddings.js.map +0 -1
  118. package/dist/dts/AiModels.d.ts +0 -34
  119. package/dist/dts/AiModels.d.ts.map +0 -1
  120. package/dist/dts/AiRole.d.ts +0 -111
  121. package/dist/dts/AiRole.d.ts.map +0 -1
  122. package/dist/dts/Completions.d.ts +0 -128
  123. package/dist/dts/Completions.d.ts.map +0 -1
  124. package/dist/dts/Embeddings.d.ts.map +0 -1
  125. package/dist/esm/AiModels.js +0 -44
  126. package/dist/esm/AiModels.js.map +0 -1
  127. package/dist/esm/AiRole.js +0 -93
  128. package/dist/esm/AiRole.js.map +0 -1
  129. package/dist/esm/Completions.js +0 -245
  130. package/dist/esm/Completions.js.map +0 -1
  131. package/dist/esm/Embeddings.js.map +0 -1
  132. package/src/AiModels.ts +0 -77
  133. package/src/AiRole.ts +0 -122
  134. package/src/Completions.ts +0 -434
@@ -1,111 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Option from "effect/Option";
5
- import * as Schema from "effect/Schema";
6
- /**
7
- * @since 1.0.0
8
- * @category type ids
9
- */
10
- export declare const TypeId: unique symbol;
11
- /**
12
- * @since 1.0.0
13
- * @category type ids
14
- */
15
- export type TypeId = typeof TypeId;
16
- /**
17
- * @since 1.0.0
18
- * @category models
19
- */
20
- export type AiRole = User | UserWithName | Model;
21
- declare const User_base: Schema.TaggedClass<User, "User", {
22
- readonly _tag: Schema.tag<"User">;
23
- }>;
24
- /**
25
- * @since 1.0.0
26
- * @category models
27
- */
28
- export declare class User extends User_base {
29
- /**
30
- * @since 1.0.0
31
- */
32
- readonly [TypeId]: TypeId;
33
- /**
34
- * @since 1.0.0
35
- */
36
- readonly kind: "user";
37
- /**
38
- * @since 1.0.0
39
- */
40
- readonly nameOption: Option.Option<string>;
41
- }
42
- /**
43
- * @since 1.0.0
44
- * @category constructors
45
- */
46
- export declare const user: AiRole;
47
- declare const UserWithName_base: Schema.TaggedClass<UserWithName, "UserWithName", {
48
- readonly _tag: Schema.tag<"UserWithName">;
49
- } & {
50
- name: typeof Schema.String;
51
- }>;
52
- /**
53
- * @since 1.0.0
54
- * @category models
55
- */
56
- export declare class UserWithName extends UserWithName_base {
57
- /**
58
- * @since 1.0.0
59
- */
60
- readonly [TypeId]: TypeId;
61
- /**
62
- * @since 1.0.0
63
- */
64
- readonly kind: "user";
65
- /**
66
- * @since 1.0.0
67
- */
68
- get nameOption(): Option.Option<string>;
69
- }
70
- /**
71
- * @since 1.0.0
72
- * @category constructors
73
- */
74
- export declare const userWithName: (name: string) => AiRole;
75
- declare const Model_base: Schema.TaggedClass<Model, "Model", {
76
- readonly _tag: Schema.tag<"Model">;
77
- }>;
78
- /**
79
- * @since 1.0.0
80
- * @category models
81
- */
82
- export declare class Model extends Model_base {
83
- /**
84
- * @since 1.0.0
85
- */
86
- readonly [TypeId]: TypeId;
87
- /**
88
- * @since 1.0.0
89
- */
90
- readonly kind: "model";
91
- /**
92
- * @since 1.0.0
93
- */
94
- readonly nameOption: Option.Option<string>;
95
- }
96
- /**
97
- * @since 1.0.0
98
- * @category constructors
99
- */
100
- export declare const model: AiRole;
101
- /**
102
- * @since 1.0.0
103
- * @category roles
104
- */
105
- export declare const AiRole: Schema.Union<[
106
- typeof User,
107
- typeof UserWithName,
108
- typeof Model
109
- ]>;
110
- export {};
111
- //# sourceMappingURL=AiRole.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiRole.d.ts","sourceRoot":"","sources":["../../src/AiRole.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAwC,CAAA;AAEpE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,KAAK,CAAA;;;;AAEhD;;;GAGG;AACH,qBAAa,IAAK,SAAQ,SAA8D;IACtF;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAS;IAE/B;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAgB;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAmB,CAAA;;;;;;AAEtC;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAEhC;IACA;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAS;IAE/B;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAEtC;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAiE,CAAA;;;;AAE7G;;;GAGG;AACH,qBAAa,KAAM,SAAQ,UAAiE;IAC1F;;OAEG;IACH,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAS;IAElC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAG,OAAO,CAAS;IAEhC;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAgB;CAC3D;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,MAAoB,CAAA;AAExC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;IAChC,OAAO,IAAI;IACX,OAAO,YAAY;IACnB,OAAO,KAAK;CACb,CAIA,CAAA"}
@@ -1,128 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Chunk from "effect/Chunk";
5
- import * as Context from "effect/Context";
6
- import * as Effect from "effect/Effect";
7
- import * as JsonSchema from "effect/JSONSchema";
8
- import * as Option from "effect/Option";
9
- import * as Schema from "effect/Schema";
10
- import * as Stream from "effect/Stream";
11
- import type { Span } from "effect/Tracer";
12
- import type { Concurrency } from "effect/Types";
13
- import { AiError } from "./AiError.js";
14
- import type { Message } from "./AiInput.js";
15
- import * as AiInput from "./AiInput.js";
16
- import type { AiResponse } from "./AiResponse.js";
17
- import { WithResolved } from "./AiResponse.js";
18
- import type * as AiToolkit from "./AiToolkit.js";
19
- declare const Completions_base: Context.TagClass<Completions, "@effect/ai/Completions", Completions.Service>;
20
- /**
21
- * @since 1.0.0
22
- * @category tags
23
- */
24
- export declare class Completions extends Completions_base {
25
- }
26
- /**
27
- * @since 1.0.0
28
- * @category models
29
- */
30
- export declare namespace Completions {
31
- /**
32
- * @since 1.0.0
33
- * @category models
34
- */
35
- type StructuredSchema<A, I, R> = TaggedSchema<A, I, R> | IdentifiedSchema<A, I, R>;
36
- /**
37
- * @since 1.0.0
38
- * @category models
39
- */
40
- interface TaggedSchema<A, I, R> extends Schema.Schema<A, I, R> {
41
- readonly _tag: string;
42
- }
43
- /**
44
- * @since 1.0.0
45
- * @category models
46
- */
47
- interface IdentifiedSchema<A, I, R> extends Schema.Schema<A, I, R> {
48
- readonly identifier: string;
49
- }
50
- /**
51
- * @since 1.0.0
52
- * @category models
53
- */
54
- interface Service {
55
- readonly create: (input: AiInput.Input) => Effect.Effect<AiResponse, AiError>;
56
- readonly stream: (input: AiInput.Input) => Stream.Stream<AiResponse, AiError>;
57
- readonly structured: {
58
- <A, I, R>(options: {
59
- readonly input: AiInput.Input;
60
- readonly schema: StructuredSchema<A, I, R>;
61
- }): Effect.Effect<WithResolved<A>, AiError, R>;
62
- <A, I, R>(options: {
63
- readonly input: AiInput.Input;
64
- readonly schema: Schema.Schema<A, I, R>;
65
- readonly toolCallId: string;
66
- }): Effect.Effect<WithResolved<A>, AiError, R>;
67
- };
68
- readonly toolkit: <Tools extends AiToolkit.Tool.AnySchema>(options: {
69
- readonly input: AiInput.Input;
70
- readonly tools: AiToolkit.Handlers<Tools>;
71
- readonly required?: Tools["_tag"] | boolean | undefined;
72
- readonly concurrency?: Concurrency | undefined;
73
- }) => Effect.Effect<WithResolved<AiToolkit.Tool.Success<Tools>>, AiError | AiToolkit.Tool.Failure<Tools>, AiToolkit.Tool.Context<Tools>>;
74
- readonly toolkitStream: <Tools extends AiToolkit.Tool.AnySchema>(options: {
75
- readonly input: AiInput.Input;
76
- readonly tools: AiToolkit.Handlers<Tools>;
77
- readonly required?: Tools["_tag"] | boolean | undefined;
78
- readonly concurrency?: Concurrency | undefined;
79
- }) => Stream.Stream<WithResolved<AiToolkit.Tool.Success<Tools>>, AiError | AiToolkit.Tool.Failure<Tools>, AiToolkit.Tool.Context<Tools>>;
80
- }
81
- }
82
- /**
83
- * @since 1.0.0
84
- * @category models
85
- */
86
- export interface CompletionOptions {
87
- readonly system: Option.Option<string>;
88
- readonly input: Chunk.NonEmptyChunk<Message>;
89
- readonly tools: Array<{
90
- readonly name: string;
91
- readonly description: string;
92
- readonly parameters: JsonSchema.JsonSchema7;
93
- readonly structured: boolean;
94
- }>;
95
- readonly required: boolean | string;
96
- }
97
- /**
98
- * @since 1.0.0
99
- * @category constructors
100
- */
101
- export declare const make: (options: {
102
- readonly create: (options: {
103
- readonly system: Option.Option<string>;
104
- readonly input: Chunk.NonEmptyChunk<Message>;
105
- readonly tools: Array<{
106
- readonly name: string;
107
- readonly description: string;
108
- readonly parameters: JsonSchema.JsonSchema7;
109
- readonly structured: boolean;
110
- }>;
111
- readonly required: boolean | string;
112
- readonly span: Span;
113
- }) => Effect.Effect<AiResponse, AiError>;
114
- readonly stream: (options: {
115
- readonly system: Option.Option<string>;
116
- readonly input: Chunk.NonEmptyChunk<Message>;
117
- readonly tools: Array<{
118
- readonly name: string;
119
- readonly description: string;
120
- readonly parameters: JsonSchema.JsonSchema7;
121
- readonly structured: boolean;
122
- }>;
123
- readonly required: boolean | string;
124
- readonly span: Span;
125
- }) => Stream.Stream<AiResponse, AiError>;
126
- }) => Effect.Effect<Completions.Service>;
127
- export {};
128
- //# sourceMappingURL=Completions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Completions.d.ts","sourceRoot":"","sources":["../../src/Completions.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Embeddings.d.ts","sourceRoot":"","sources":["../../src/Embeddings.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAMvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;;AAEtC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAG7B;CAAG;AAEN;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,UAAU,CAAC;IAClC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;KACzE;IAED;;;OAGG;IACH,UAAiB,MAAM;QACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;QACtB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KACnC;CACF;AA8BD;;;GAGG;AACH,eAAO,MAAM,IAAI,YAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IACtG,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;QACzB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,aAAa,CAAA;KAC5C,CAAA;CACF,oDA0BG,CAAA;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,YAAa;IACtC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;IACtG,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAA;IACvC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B,2EAiBG,CAAA"}
@@ -1,44 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Context from "effect/Context";
5
- import * as Effect from "effect/Effect";
6
- import * as Equal from "effect/Equal";
7
- import * as Hash from "effect/Hash";
8
- import * as Layer from "effect/Layer";
9
- import * as RcMap from "effect/RcMap";
10
- /**
11
- * @since 1.0.0
12
- * @category tags
13
- */
14
- export class AiModels extends /*#__PURE__*/Context.Tag("@effect/ai/AiModels")() {}
15
- class AiModelsKey {
16
- model;
17
- service;
18
- constructor(model, service) {
19
- this.model = model;
20
- this.service = service;
21
- }
22
- [Equal.symbol](that) {
23
- return this.service === that.service && this.model.cacheKey === that.model.cacheKey;
24
- }
25
- [Hash.symbol]() {
26
- return Hash.combine(Hash.hash(this.service))(Hash.hash(this.model.cacheKey));
27
- }
28
- }
29
- const make = /*#__PURE__*/Effect.gen(function* () {
30
- const services = yield* RcMap.make({
31
- idleTimeToLive: "1 minute",
32
- lookup: key => Effect.provideService(key.model.provides, key.model.requires, key.service)
33
- });
34
- const build = (model, context) => Effect.map(RcMap.get(services, new AiModelsKey(model, Context.get(context, model.requires))), context => model.updateContext(context));
35
- return {
36
- build
37
- };
38
- });
39
- /**
40
- * @since 1.0.0
41
- * @category layers
42
- */
43
- export const layer = /*#__PURE__*/Layer.scoped(AiModels, make);
44
- //# sourceMappingURL=AiModels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiModels.js","names":["Context","Effect","Equal","Hash","Layer","RcMap","AiModels","Tag","AiModelsKey","model","service","constructor","symbol","that","cacheKey","combine","hash","make","gen","services","idleTimeToLive","lookup","key","provideService","provides","requires","build","context","map","get","updateContext","layer","scoped"],"sources":["../../src/AiModels.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAIrC;;;;AAIA,OAAM,MAAOC,QAAS,sBAAQN,OAAO,CAACO,GAAG,CAAC,qBAAqB,CAAC,EAG7D;AAkBH,MAAMC,WAAW;EAEJC,KAAA;EACAC,OAAA;EAFXC,YACWF,KAAwB,EACxBC,OAAgB;IADhB,KAAAD,KAAK,GAALA,KAAK;IACL,KAAAC,OAAO,GAAPA,OAAO;EACf;EAEH,CAACR,KAAK,CAACU,MAAM,EAAEC,IAAiB;IAC9B,OAAO,IAAI,CAACH,OAAO,KAAKG,IAAI,CAACH,OAAO,IAAI,IAAI,CAACD,KAAK,CAACK,QAAQ,KAAKD,IAAI,CAACJ,KAAK,CAACK,QAAQ;EACrF;EACA,CAACX,IAAI,CAACS,MAAM,IAAC;IACX,OAAOT,IAAI,CAACY,OAAO,CAACZ,IAAI,CAACa,IAAI,CAAC,IAAI,CAACN,OAAO,CAAC,CAAC,CAACP,IAAI,CAACa,IAAI,CAAC,IAAI,CAACP,KAAK,CAACK,QAAQ,CAAC,CAAC;EAC9E;;AAGF,MAAMG,IAAI,gBAAGhB,MAAM,CAACiB,GAAG,CAAC,aAAS;EAC/B,MAAMC,QAAQ,GAAG,OAAOd,KAAK,CAACY,IAAI,CAAC;IACjCG,cAAc,EAAE,UAAU;IAC1BC,MAAM,EAAGC,GAAgB,IAAKrB,MAAM,CAACsB,cAAc,CAACD,GAAG,CAACb,KAAK,CAACe,QAAQ,EAAEF,GAAG,CAACb,KAAK,CAACgB,QAAQ,EAAEH,GAAG,CAACZ,OAAO;GACxG,CAAC;EAEF,MAAMgB,KAAK,GAAGA,CACZjB,KAAkC,EAClCkB,OAAkC,KAElC1B,MAAM,CAAC2B,GAAG,CACRvB,KAAK,CAACwB,GAAG,CACPV,QAAQ,EACR,IAAIX,WAAW,CAACC,KAAK,EAAET,OAAO,CAAC6B,GAAG,CAACF,OAAO,EAAElB,KAAK,CAACgB,QAAe,CAAC,CAAC,CACpE,EACAE,OAAO,IAAKlB,KAAK,CAACqB,aAAa,CAACH,OAAO,CAAC,CAC1C;EAEH,OAAO;IAAED;EAAK,CAAW;AAC3B,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMK,KAAK,gBAA0B3B,KAAK,CAAC4B,MAAM,CAAC1B,QAAQ,EAAEW,IAAI,CAAC","ignoreList":[]}
@@ -1,93 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Option from "effect/Option";
5
- import * as Schema from "effect/Schema";
6
- /**
7
- * @since 1.0.0
8
- * @category type ids
9
- */
10
- export const TypeId = /*#__PURE__*/Symbol.for("@effect/ai/AiRole");
11
- /**
12
- * @since 1.0.0
13
- * @category models
14
- */
15
- export class User extends /*#__PURE__*/Schema.TaggedClass("@effect/ai/AiRole/User")("User", {}) {
16
- /**
17
- * @since 1.0.0
18
- */
19
- [TypeId] = TypeId;
20
- /**
21
- * @since 1.0.0
22
- */
23
- kind = "user";
24
- /**
25
- * @since 1.0.0
26
- */
27
- nameOption = /*#__PURE__*/Option.none();
28
- }
29
- /**
30
- * @since 1.0.0
31
- * @category constructors
32
- */
33
- export const user = /*#__PURE__*/new User();
34
- /**
35
- * @since 1.0.0
36
- * @category models
37
- */
38
- export class UserWithName extends /*#__PURE__*/Schema.TaggedClass("@effect/ai/AiRole/UserWithName")("UserWithName", {
39
- name: Schema.String
40
- }) {
41
- /**
42
- * @since 1.0.0
43
- */
44
- [TypeId] = TypeId;
45
- /**
46
- * @since 1.0.0
47
- */
48
- kind = "user";
49
- /**
50
- * @since 1.0.0
51
- */
52
- get nameOption() {
53
- return Option.some(this.name);
54
- }
55
- }
56
- /**
57
- * @since 1.0.0
58
- * @category constructors
59
- */
60
- export const userWithName = name => new UserWithName({
61
- name
62
- }, {
63
- disableValidation: true
64
- });
65
- /**
66
- * @since 1.0.0
67
- * @category models
68
- */
69
- export class Model extends /*#__PURE__*/Schema.TaggedClass("@effect/ai/AiRole/Model")("Model", {}) {
70
- /**
71
- * @since 1.0.0
72
- */
73
- [TypeId] = TypeId;
74
- /**
75
- * @since 1.0.0
76
- */
77
- kind = "model";
78
- /**
79
- * @since 1.0.0
80
- */
81
- nameOption = /*#__PURE__*/Option.none();
82
- }
83
- /**
84
- * @since 1.0.0
85
- * @category constructors
86
- */
87
- export const model = /*#__PURE__*/new Model();
88
- /**
89
- * @since 1.0.0
90
- * @category roles
91
- */
92
- export const AiRole = /*#__PURE__*/Schema.Union(User, UserWithName, Model);
93
- //# sourceMappingURL=AiRole.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiRole.js","names":["Option","Schema","TypeId","Symbol","for","User","TaggedClass","kind","nameOption","none","user","UserWithName","name","String","some","userWithName","disableValidation","Model","model","AiRole","Union"],"sources":["../../src/AiRole.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAcpE;;;;AAIA,OAAM,MAAOC,IAAK,sBAAQJ,MAAM,CAACK,WAAW,CAAO,wBAAwB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;EACtF;;;EAGS,CAACJ,MAAM,IAAYA,MAAM;EAElC;;;EAGSK,IAAI,GAAG,MAAe;EAE/B;;;EAGSC,UAAU,gBAA0BR,MAAM,CAACS,IAAI,EAAE;;AAG5D;;;;AAIA,OAAO,MAAMC,IAAI,gBAAW,IAAIL,IAAI,EAAE;AAEtC;;;;AAIA,OAAM,MAAOM,YAAa,sBAAQV,MAAM,CAACK,WAAW,CAAe,gCAAgC,CAAC,CAAC,cAAc,EAAE;EACnHM,IAAI,EAAEX,MAAM,CAACY;CACd,CAAC;EACA;;;EAGS,CAACX,MAAM,IAAYA,MAAM;EAElC;;;EAGSK,IAAI,GAAG,MAAe;EAE/B;;;EAGA,IAAIC,UAAUA,CAAA;IACZ,OAAOR,MAAM,CAACc,IAAI,CAAC,IAAI,CAACF,IAAI,CAAC;EAC/B;;AAGF;;;;AAIA,OAAO,MAAMG,YAAY,GAAIH,IAAY,IAAa,IAAID,YAAY,CAAC;EAAEC;AAAI,CAAE,EAAE;EAAEI,iBAAiB,EAAE;AAAI,CAAE,CAAC;AAE7G;;;;AAIA,OAAM,MAAOC,KAAM,sBAAQhB,MAAM,CAACK,WAAW,CAAQ,yBAAyB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;EAC1F;;;EAGS,CAACJ,MAAM,IAAYA,MAAM;EAElC;;;EAGSK,IAAI,GAAG,OAAgB;EAEhC;;;EAGSC,UAAU,gBAA0BR,MAAM,CAACS,IAAI,EAAE;;AAG5D;;;;AAIA,OAAO,MAAMS,KAAK,gBAAW,IAAID,KAAK,EAAE;AAExC;;;;AAIA,OAAO,MAAME,MAAM,gBAIdlB,MAAM,CAACmB,KAAK,CACff,IAAI,EACJM,YAAY,EACZM,KAAK,CACN","ignoreList":[]}
@@ -1,245 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Chunk from "effect/Chunk";
5
- import * as Context from "effect/Context";
6
- import * as Effect from "effect/Effect";
7
- import * as HashMap from "effect/HashMap";
8
- import * as JsonSchema from "effect/JSONSchema";
9
- import * as Option from "effect/Option";
10
- import * as Predicate from "effect/Predicate";
11
- import * as Schema from "effect/Schema";
12
- import * as AST from "effect/SchemaAST";
13
- import * as Stream from "effect/Stream";
14
- import { AiError } from "./AiError.js";
15
- import * as AiInput from "./AiInput.js";
16
- import { WithResolved } from "./AiResponse.js";
17
- /**
18
- * @since 1.0.0
19
- * @category tags
20
- */
21
- export class Completions extends /*#__PURE__*/Context.Tag("@effect/ai/Completions")() {}
22
- const constEmptyMap = /*#__PURE__*/new Map();
23
- /**
24
- * @since 1.0.0
25
- * @category constructors
26
- */
27
- export const make = options => Effect.map(Effect.serviceOption(AiInput.SystemInstruction), parentSystem => {
28
- return Completions.of({
29
- create(input) {
30
- return Effect.useSpan("Completions.create", {
31
- captureStackTrace: false
32
- }, span => Effect.serviceOption(AiInput.SystemInstruction).pipe(Effect.flatMap(system => options.create({
33
- input: AiInput.make(input),
34
- system: Option.orElse(system, () => parentSystem),
35
- tools: [],
36
- required: false,
37
- span
38
- }))));
39
- },
40
- stream(input_) {
41
- const input = AiInput.make(input_);
42
- return Effect.makeSpanScoped("Completions.stream", {
43
- captureStackTrace: false
44
- }).pipe(Effect.zip(Effect.serviceOption(AiInput.SystemInstruction)), Effect.map(([span, system]) => options.stream({
45
- input: input,
46
- system: Option.orElse(system, () => parentSystem),
47
- tools: [],
48
- required: false,
49
- span
50
- })), Stream.unwrapScoped);
51
- },
52
- structured(opts) {
53
- const input = AiInput.make(opts.input);
54
- const decode = Schema.decodeUnknown(opts.schema);
55
- const toolId = "toolCallId" in opts ? opts.toolCallId : "_tag" in opts.schema ? opts.schema._tag : opts.schema.identifier;
56
- return Effect.useSpan("Completions.structured", {
57
- attributes: {
58
- toolId
59
- },
60
- captureStackTrace: false
61
- }, span => Effect.serviceOption(AiInput.SystemInstruction).pipe(Effect.flatMap(system => options.create({
62
- input: input,
63
- system: Option.orElse(system, () => parentSystem),
64
- tools: [convertTool(toolId, opts.schema, true)],
65
- required: true,
66
- span
67
- })), Effect.flatMap(response => Chunk.findFirst(response.parts, part => part._tag === "ToolCall" && part.name === toolId).pipe(Option.match({
68
- onNone: () => Effect.fail(new AiError({
69
- module: "Completions",
70
- method: "structured",
71
- description: `Tool call '${toolId}' not found in response`
72
- })),
73
- onSome: toolCall => Effect.matchEffect(decode(toolCall.params), {
74
- onFailure: cause => new AiError({
75
- module: "Completions",
76
- method: "structured",
77
- description: `Failed to decode tool call '${toolId}' parameters`,
78
- cause
79
- }),
80
- onSuccess: resolved => Effect.succeed(new WithResolved({
81
- response,
82
- resolved: new Map([[toolCall.id, resolved]]),
83
- encoded: new Map([[toolCall.id, toolCall.params]])
84
- }))
85
- })
86
- })))));
87
- },
88
- toolkit({
89
- concurrency,
90
- input: inputInput,
91
- required = false,
92
- tools
93
- }) {
94
- const input = AiInput.make(inputInput);
95
- const toolArr = [];
96
- for (const [, tool] of tools.toolkit.tools) {
97
- toolArr.push(convertTool(tool._tag, tool));
98
- }
99
- return Effect.useSpan("Completions.toolkit", {
100
- attributes: {
101
- concurrency,
102
- required
103
- },
104
- captureStackTrace: false
105
- }, span => Effect.serviceOption(AiInput.SystemInstruction).pipe(Effect.flatMap(system => options.create({
106
- input: input,
107
- system: Option.orElse(system, () => parentSystem),
108
- tools: toolArr,
109
- required: required,
110
- span
111
- })), Effect.flatMap(response => resolveParts({
112
- response,
113
- tools,
114
- concurrency,
115
- method: "toolkit"
116
- }))));
117
- },
118
- toolkitStream({
119
- concurrency,
120
- input,
121
- required = false,
122
- tools
123
- }) {
124
- const toolArr = [];
125
- for (const [, tool] of tools.toolkit.tools) {
126
- toolArr.push(convertTool(tool._tag, tool));
127
- }
128
- return Effect.makeSpanScoped("Completions.stream", {
129
- captureStackTrace: false,
130
- attributes: {
131
- required,
132
- concurrency
133
- }
134
- }).pipe(Effect.zip(Effect.serviceOption(AiInput.SystemInstruction)), Effect.map(([span, system]) => options.stream({
135
- input: AiInput.make(input),
136
- system: Option.orElse(system, () => parentSystem),
137
- tools: toolArr,
138
- required: required,
139
- span
140
- })), Stream.unwrapScoped, Stream.mapEffect(chunk => resolveParts({
141
- response: chunk,
142
- tools,
143
- concurrency,
144
- method: "toolkitStream"
145
- }), {
146
- concurrency: "unbounded"
147
- }));
148
- }
149
- });
150
- });
151
- const convertTool = (name, schema, structured = false) => ({
152
- name,
153
- description: getDescription(schema.ast),
154
- parameters: makeJsonSchema(AST.omit(schema.ast, ["_tag"])),
155
- structured
156
- });
157
- const makeJsonSchema = ast => {
158
- const $defs = {};
159
- const schema = JsonSchema.fromAST(ast, {
160
- definitions: $defs,
161
- topLevelReferenceStrategy: "skip"
162
- });
163
- if (Object.keys($defs).length === 0) return schema;
164
- schema.$defs = $defs;
165
- return schema;
166
- };
167
- const getDescription = ast => {
168
- const annotations = ast._tag === "Transformation" ? {
169
- ...ast.to.annotations,
170
- ...ast.annotations
171
- } : ast.annotations;
172
- return AST.DescriptionAnnotationId in annotations ? annotations[AST.DescriptionAnnotationId] : "";
173
- };
174
- const resolveParts = options => {
175
- const toolNames = [];
176
- const toolParts = Chunk.filter(options.response.parts, part => {
177
- if (part._tag === "ToolCall") {
178
- toolNames.push(part.name);
179
- return true;
180
- }
181
- return false;
182
- });
183
- if (Chunk.isEmpty(toolParts)) {
184
- return Effect.succeed(new WithResolved({
185
- response: options.response,
186
- resolved: constEmptyMap,
187
- encoded: constEmptyMap
188
- }));
189
- }
190
- const resolved = new Map();
191
- const encoded = new Map();
192
- return Effect.annotateCurrentSpan("toolCalls", toolNames).pipe(Effect.zipRight(Effect.forEach(toolParts, part => {
193
- const tool = HashMap.unsafeGet(options.tools.toolkit.tools, part.name);
194
- const handler = HashMap.unsafeGet(options.tools.handlers, part.name);
195
- const decodeParams = Schema.decodeUnknown(tool);
196
- const encodeSuccess = Schema.encode(tool.success);
197
- return decodeParams(injectTag(part.params, part.name)).pipe(Effect.mapError(cause => new AiError({
198
- module: "Completions",
199
- method: options.method,
200
- description: `Failed to decode tool call '${part.name}' parameters`,
201
- cause
202
- })), Effect.flatMap(handler), Effect.tap(value => {
203
- return encodeSuccess(value).pipe(Effect.mapError(cause => new AiError({
204
- module: "Completions",
205
- method: options.method,
206
- description: `Failed to encode tool call '${part.name}' result`,
207
- cause
208
- })), Effect.map(encodedValue => {
209
- resolved.set(part.id, value);
210
- encoded.set(part.id, encodedValue);
211
- }));
212
- }));
213
- }, {
214
- concurrency: options.concurrency,
215
- discard: true
216
- })), Effect.as(new WithResolved({
217
- response: options.response,
218
- resolved,
219
- encoded
220
- })));
221
- };
222
- /**
223
- * Certain providers (i.e. Anthropic) do not do a great job returning the
224
- * `_tag` enum with the parameters for a tool call. This method ensures that
225
- * the `_tag` is injected into the tool call parameters to avoid issues when
226
- * decoding.
227
- */
228
- function injectTag(params, tag) {
229
- // If for some reason we do not receive an object back for the tool call
230
- // input parameters, just return them unchanged
231
- if (!Predicate.isObject(params)) {
232
- return params;
233
- }
234
- // If the tool's `_tag` is already present in input parameters, return them
235
- // unchanged
236
- if (Predicate.hasProperty(params, "_tag")) {
237
- return params;
238
- }
239
- // Otherwise inject the tool's `_tag` into the input parameters
240
- return {
241
- ...params,
242
- _tag: tag
243
- };
244
- }
245
- //# sourceMappingURL=Completions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Completions.js","names":["Chunk","Context","Effect","HashMap","JsonSchema","Option","Predicate","Schema","AST","Stream","AiError","AiInput","WithResolved","Completions","Tag","constEmptyMap","Map","make","options","map","serviceOption","SystemInstruction","parentSystem","of","create","input","useSpan","captureStackTrace","span","pipe","flatMap","system","orElse","tools","required","stream","input_","makeSpanScoped","zip","unwrapScoped","structured","opts","decode","decodeUnknown","schema","toolId","toolCallId","_tag","identifier","attributes","convertTool","response","findFirst","parts","part","name","match","onNone","fail","module","method","description","onSome","toolCall","matchEffect","params","onFailure","cause","onSuccess","resolved","succeed","id","encoded","toolkit","concurrency","inputInput","toolArr","tool","push","resolveParts","toolkitStream","mapEffect","chunk","getDescription","ast","parameters","makeJsonSchema","omit","$defs","fromAST","definitions","topLevelReferenceStrategy","Object","keys","length","annotations","to","DescriptionAnnotationId","toolNames","toolParts","filter","isEmpty","annotateCurrentSpan","zipRight","forEach","unsafeGet","handler","handlers","decodeParams","encodeSuccess","encode","success","injectTag","mapError","tap","value","encodedValue","set","discard","as","tag","isObject","hasProperty"],"sources":["../../src/Completions.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}