@effect/ai 0.17.0 → 0.18.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.
@@ -1,190 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { NonEmptyReadonlyArray } from "effect/Array";
5
- import type * as Effect from "effect/Effect";
6
- import type * as Option from "effect/Option";
7
- import type { Pipeable } from "effect/Pipeable";
8
- import type * as Schedule from "effect/Schedule";
9
- import type * as Types from "effect/Types";
10
- import type * as Unify from "effect/Unify";
11
- import type * as AiModel from "./AiModel.js";
12
- /**
13
- * @since 1.0.0
14
- * @category Type Ids
15
- */
16
- export declare const TypeId: unique symbol;
17
- /**
18
- * @since 1.0.0
19
- * @category Type Ids
20
- */
21
- export type TypeId = typeof TypeId;
22
- /**
23
- * @since 1.0.0
24
- * @category Models
25
- */
26
- export interface AiPlan<in Error, in out Provides, in out Requires> extends Pipeable, Builder<Provides, Requires> {
27
- readonly [TypeId]: TypeId;
28
- readonly [Unify.typeSymbol]?: unknown;
29
- readonly [Unify.unifySymbol]?: AiPlanUnify<this>;
30
- readonly [Unify.ignoreSymbol]?: AiPlanUnifyIgnore;
31
- readonly steps: NonEmptyReadonlyArray<Step<Error, Provides, Requires>>;
32
- }
33
- /**
34
- * @since 1.0.0
35
- * @category Models
36
- */
37
- export interface AiPlanUnify<A extends {
38
- [Unify.typeSymbol]?: any;
39
- }> extends Effect.EffectUnify<A> {
40
- AiPlan?: () => Extract<A[Unify.typeSymbol], AiPlan<any, any, any>>;
41
- }
42
- /**
43
- * @since 1.0.0
44
- * @category Models
45
- */
46
- export interface AiPlanUnifyIgnore extends Effect.EffectUnifyIgnore {
47
- Effect?: true;
48
- }
49
- /**
50
- * @since 1.0.0
51
- * @category Models
52
- */
53
- export type Builder<Provides, Requires> = Effect.Effect<Provider<Provides>, never, Requires>;
54
- /**
55
- * @since 1.0.0
56
- * @category Models
57
- */
58
- export interface Provider<Provides> {
59
- readonly use: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Provides>>;
60
- }
61
- /**
62
- * @since 1.0.0
63
- * @category Models
64
- */
65
- export interface Step<Error, Provides, Requires> {
66
- readonly model: AiModel.AiModel<Provides, Requires>;
67
- readonly check: Option.Option<(error: Error) => boolean | Effect.Effect<boolean>>;
68
- readonly schedule: Option.Option<Schedule.Schedule<any, Error, Requires>>;
69
- }
70
- /**
71
- * @since 1.0.0
72
- */
73
- export declare namespace Make {
74
- /**
75
- * @since 1.0.0
76
- * @category Models
77
- */
78
- type Base = {
79
- readonly model: AiModel.AiModel<any, any>;
80
- readonly attempts?: number | undefined;
81
- readonly while?: ((error: any) => boolean | Effect.Effect<boolean, never, any>) | undefined;
82
- readonly schedule?: Schedule.Schedule<any, any, any> | undefined;
83
- };
84
- /**
85
- * @since 1.0.0
86
- * @category Models
87
- */
88
- type EW<Plan extends Base> = Plan extends {
89
- readonly while: (error: infer X) => any;
90
- } ? X : never;
91
- /**
92
- * @since 1.0.0
93
- * @category Models
94
- */
95
- type ES<Plan extends Base> = Plan extends {
96
- readonly schedule: Schedule.Schedule<any, infer X, any>;
97
- } ? X : never;
98
- /**
99
- * @since 1.0.0
100
- * @category Models
101
- */
102
- type Provides<Plan extends Base> = Plan extends {
103
- readonly model: AiModel.AiModel<infer X, any>;
104
- } ? X : never;
105
- /**
106
- * @since 1.0.0
107
- * @category Models
108
- */
109
- type Requires<Plan extends Base> = Plan extends {
110
- readonly model: AiModel.AiModel<any, infer X>;
111
- } ? X : never;
112
- /**
113
- * @since 1.0.0
114
- * @category Models
115
- */
116
- type RW<Plan extends Base> = Plan extends {
117
- readonly while: (error: any) => Effect.Effect<any, any, infer X>;
118
- } ? X : never;
119
- /**
120
- * @since 1.0.0
121
- * @category Models
122
- */
123
- type RS<Plan extends Base> = Plan extends {
124
- readonly schedule: Schedule.Schedule<any, any, infer X>;
125
- } ? X : never;
126
- /**
127
- * @since 1.0.0
128
- * @category Models
129
- */
130
- type MakePlan<Plan extends Base> = AiPlan<EW<Plan> & ES<Plan>, Provides<Plan>, RW<Plan> | RS<Plan> | Requires<Plan>> extends infer X ? X : never;
131
- /**
132
- * @since 1.0.0
133
- * @category Models
134
- */
135
- type MergePlan<Plans extends ReadonlyArray<Base>> = AiPlan<Types.UnionToIntersection<{
136
- [K in keyof Plans]: MakePlan<Plans[K]> extends AiPlan<infer X, any, any> ? X : never;
137
- }[number]>, {
138
- [K in keyof Plans]: MakePlan<Plans[K]> extends AiPlan<any, infer X, any> ? X : never;
139
- }[number], {
140
- [K in keyof Plans]: MakePlan<Plans[K]> extends AiPlan<any, any, infer X> ? X : never;
141
- }[number]> extends infer K ? K : never;
142
- }
143
- /**
144
- * @since 1.0.0
145
- * @category constructors
146
- */
147
- export declare const make: <Plans extends readonly [Make.Base, ...ReadonlyArray<Make.Base>]>(...plans: Plans) => Make.MergePlan<Plans>;
148
- /**
149
- * @since 1.0.0
150
- * @category error handling
151
- */
152
- export declare const withFallback: {
153
- /**
154
- * @since 1.0.0
155
- * @category error handling
156
- */
157
- <Provides, Provides2 extends Provides, Requires2, Out, EW, ES, RW = never, RS = never>(options: {
158
- readonly model: AiModel.AiModel<Provides2, Requires2>;
159
- readonly attempts?: number | undefined;
160
- readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined;
161
- readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined;
162
- }): <E, Requires>(self: AiPlan<E, Provides, Requires>) => AiPlan<E & EW & ES, Provides & Provides2, Requires | Requires2 | RW | RS>;
163
- /**
164
- * @since 1.0.0
165
- * @category error handling
166
- */
167
- <E, Provides, Requires, Provides2 extends Provides, Requires2, Out, EW, ES, RW = never, RS = never>(self: AiPlan<E, Provides, Requires>, options: {
168
- readonly model: AiModel.AiModel<Provides2, Requires2>;
169
- readonly attempts?: number | undefined;
170
- readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined;
171
- readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined;
172
- }): AiPlan<E & EW & ES, Provides & Provides2, Requires | Requires2 | RW | RS>;
173
- };
174
- /**
175
- * @since 1.0.0
176
- * @category combination
177
- */
178
- export declare const concatSteps: {
179
- /**
180
- * @since 1.0.0
181
- * @category combination
182
- */
183
- <Error2, Provides2, Requires2>(other: AiPlan<Error2, Provides2, Requires2>): <Error, Provides, Requires>(self: AiPlan<Error, Provides, Requires>) => AiPlan<Error & Error2, Provides & Provides2, Requires | Requires2>;
184
- /**
185
- * @since 1.0.0
186
- * @category combination
187
- */
188
- <Error, Provides, Requires, Error2, Provides2, Requires2>(self: AiPlan<Error, Provides, Requires>, other: AiPlan<Error2, Provides2, Requires2>): AiPlan<Error & Error2, Provides & Provides2, Requires | Requires2>;
189
- };
190
- //# sourceMappingURL=AiPlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiPlan.d.ts","sourceRoot":"","sources":["../../src/AiPlan.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=aiPlan.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiPlan.d.ts","sourceRoot":"","sources":["../../../src/internal/aiPlan.ts"],"names":[],"mappings":""}
@@ -1,28 +0,0 @@
1
- import * as Internal from "./internal/aiPlan.js";
2
- /**
3
- * @since 1.0.0
4
- * @category Type Ids
5
- */
6
- export const TypeId = Internal.TypeId;
7
- /**
8
- * @since 1.0.0
9
- * @category constructors
10
- */
11
- export const make = function () {
12
- let plan = Internal.make(arguments[0]);
13
- for (let i = 1; i < arguments.length; i++) {
14
- plan = withFallback(plan, arguments[i]);
15
- }
16
- return plan;
17
- };
18
- /**
19
- * @since 1.0.0
20
- * @category error handling
21
- */
22
- export const withFallback = Internal.withFallback;
23
- /**
24
- * @since 1.0.0
25
- * @category combination
26
- */
27
- export const concatSteps = Internal.concatSteps;
28
- //# sourceMappingURL=AiPlan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AiPlan.js","names":["Internal","TypeId","make","plan","arguments","i","length","withFallback","concatSteps"],"sources":["../../src/AiPlan.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AA0IpD;;;;AAIA,OAAO,MAAMC,IAAI,GAEa,SAAAA,CAAA;EAC5B,IAAIC,IAAI,GAAGH,QAAQ,CAACE,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,CAAC;EACtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,SAAS,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACzCF,IAAI,GAAGI,YAAY,CAACJ,IAAI,EAAEC,SAAS,CAACC,CAAC,CAAC,CAAC;EACzC;EACA,OAAOF,IAAI;AACb,CAAS;AAET;;;;AAIA,OAAO,MAAMI,YAAY,GA4BrBP,QAAQ,CAACO,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,WAAW,GAgBpBR,QAAQ,CAACQ,WAAW","ignoreList":[]}
@@ -1,80 +0,0 @@
1
- import * as Effect from "effect/Effect";
2
- import { CommitPrototype } from "effect/Effectable";
3
- import * as Either from "effect/Either";
4
- import { dual, identity } from "effect/Function";
5
- import * as Option from "effect/Option";
6
- import { pipeArguments } from "effect/Pipeable";
7
- import * as Predicate from "effect/Predicate";
8
- import * as Schedule from "effect/Schedule";
9
- import * as Scope from "effect/Scope";
10
- /** @internal */
11
- export const TypeId = /*#__PURE__*/Symbol.for("@effect/ai/AiPlan");
12
- /** @internal */
13
- export const PlanPrototype = {
14
- ...CommitPrototype,
15
- [TypeId]: TypeId,
16
- commit() {
17
- return buildPlan(this);
18
- },
19
- pipe() {
20
- return pipeArguments(this, arguments);
21
- }
22
- };
23
- const makePlan = steps => {
24
- const self = Object.create(PlanPrototype);
25
- self.steps = steps;
26
- return self;
27
- };
28
- const buildPlan = plan => Effect.map(Effect.context(), context => {
29
- return {
30
- use: Effect.fnUntraced(function* (effect) {
31
- let result = undefined;
32
- for (const step of plan.steps) {
33
- if (result !== undefined && Either.isLeft(result) && Option.isSome(step.check)) {
34
- const check = step.check.value(result.left);
35
- const isFatalError = !(Effect.isEffect(check) ? yield* check : check);
36
- if (isFatalError) break;
37
- }
38
- const retryOptions = getRetryOptions(step);
39
- result = yield* Effect.scopedWith(scope => step.model.buildContext.pipe(Scope.extend(scope), Effect.flatMap(context => effect.pipe(Option.isSome(retryOptions) ? Effect.retry(retryOptions.value) : identity, Effect.provide(context))), Effect.provide(context), Effect.either));
40
- if (Either.isRight(result)) break;
41
- }
42
- return yield* result;
43
- })
44
- };
45
- });
46
- const getRetryOptions = step => {
47
- if (Option.isNone(step.schedule) && Option.isNone(step.check)) {
48
- return Option.none();
49
- }
50
- return Option.some({
51
- schedule: Option.getOrUndefined(step.schedule),
52
- while: Option.getOrUndefined(step.check)
53
- });
54
- };
55
- /** @internal */
56
- export const make = options => makePlan([{
57
- model: options.model,
58
- check: Option.fromNullable(options?.while),
59
- schedule: resolveSchedule(options ?? {})
60
- }]);
61
- /** @internal */
62
- export const withFallback = /*#__PURE__*/dual(2, (self, options) => makePlan([...self.steps, {
63
- model: options.model,
64
- check: Option.fromNullable(options.while),
65
- schedule: resolveSchedule(options)
66
- }]));
67
- const resolveSchedule = options => {
68
- if (Predicate.isUndefined(options.attempts) && Predicate.isUndefined(options.schedule)) return Option.none();
69
- let schedule = options.schedule ?? Schedule.forever;
70
- if (Predicate.isNotUndefined(options.attempts)) {
71
- // In an `AiPlan`, the `attempts` represents the total number of times to
72
- // attempt the call, not the number of retries, thus we subtract one from
73
- // the total number of recurrences
74
- schedule = Schedule.intersect(schedule, Schedule.recurs(options.attempts - 1));
75
- }
76
- return Option.some(schedule);
77
- };
78
- /** @internal */
79
- export const concatSteps = /*#__PURE__*/dual(2, (self, other) => makePlan([...self.steps, ...other.steps]));
80
- //# sourceMappingURL=aiPlan.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aiPlan.js","names":["Effect","CommitPrototype","Either","dual","identity","Option","pipeArguments","Predicate","Schedule","Scope","TypeId","Symbol","for","PlanPrototype","commit","buildPlan","pipe","arguments","makePlan","steps","self","Object","create","plan","map","context","use","fnUntraced","effect","result","undefined","step","isLeft","isSome","check","value","left","isFatalError","isEffect","retryOptions","getRetryOptions","scopedWith","scope","model","buildContext","extend","flatMap","retry","provide","either","isRight","isNone","schedule","none","some","getOrUndefined","while","make","options","fromNullable","resolveSchedule","withFallback","isUndefined","attempts","forever","isNotUndefined","intersect","recurs","concatSteps","other"],"sources":["../../../src/internal/aiPlan.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/src/AiPlan.ts DELETED
@@ -1,224 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { NonEmptyReadonlyArray } from "effect/Array"
5
- import type * as Effect from "effect/Effect"
6
- import type * as Option from "effect/Option"
7
- import type { Pipeable } from "effect/Pipeable"
8
- import type * as Schedule from "effect/Schedule"
9
- import type * as Types from "effect/Types"
10
- import type * as Unify from "effect/Unify"
11
- import type * as AiModel from "./AiModel.js"
12
- import * as Internal from "./internal/aiPlan.js"
13
-
14
- /**
15
- * @since 1.0.0
16
- * @category Type Ids
17
- */
18
- export const TypeId: unique symbol = Internal.TypeId
19
-
20
- /**
21
- * @since 1.0.0
22
- * @category Type Ids
23
- */
24
- export type TypeId = typeof TypeId
25
-
26
- /**
27
- * @since 1.0.0
28
- * @category Models
29
- */
30
- export interface AiPlan<in Error, in out Provides, in out Requires> extends Pipeable, Builder<Provides, Requires> {
31
- readonly [TypeId]: TypeId
32
- readonly [Unify.typeSymbol]?: unknown
33
- readonly [Unify.unifySymbol]?: AiPlanUnify<this>
34
- readonly [Unify.ignoreSymbol]?: AiPlanUnifyIgnore
35
- readonly steps: NonEmptyReadonlyArray<Step<Error, Provides, Requires>>
36
- }
37
-
38
- /**
39
- * @since 1.0.0
40
- * @category Models
41
- */
42
- export interface AiPlanUnify<A extends { [Unify.typeSymbol]?: any }> extends Effect.EffectUnify<A> {
43
- AiPlan?: () => Extract<A[Unify.typeSymbol], AiPlan<any, any, any>>
44
- }
45
-
46
- /**
47
- * @since 1.0.0
48
- * @category Models
49
- */
50
- export interface AiPlanUnifyIgnore extends Effect.EffectUnifyIgnore {
51
- Effect?: true
52
- }
53
-
54
- /**
55
- * @since 1.0.0
56
- * @category Models
57
- */
58
- export type Builder<Provides, Requires> = Effect.Effect<Provider<Provides>, never, Requires>
59
-
60
- /**
61
- * @since 1.0.0
62
- * @category Models
63
- */
64
- export interface Provider<Provides> {
65
- readonly use: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Provides>>
66
- }
67
-
68
- /**
69
- * @since 1.0.0
70
- * @category Models
71
- */
72
- export interface Step<Error, Provides, Requires> {
73
- readonly model: AiModel.AiModel<Provides, Requires>
74
- readonly check: Option.Option<(error: Error) => boolean | Effect.Effect<boolean>>
75
- readonly schedule: Option.Option<Schedule.Schedule<any, Error, Requires>>
76
- }
77
-
78
- /**
79
- * @since 1.0.0
80
- */
81
- export declare namespace Make {
82
- /**
83
- * @since 1.0.0
84
- * @category Models
85
- */
86
- export type Base = {
87
- readonly model: AiModel.AiModel<any, any>
88
- readonly attempts?: number | undefined
89
- readonly while?: ((error: any) => boolean | Effect.Effect<boolean, never, any>) | undefined
90
- readonly schedule?: Schedule.Schedule<any, any, any> | undefined
91
- }
92
-
93
- /**
94
- * @since 1.0.0
95
- * @category Models
96
- */
97
- export type EW<Plan extends Base> = Plan extends { readonly while: (error: infer X) => any } ? X : never
98
-
99
- /**
100
- * @since 1.0.0
101
- * @category Models
102
- */
103
- export type ES<Plan extends Base> = Plan extends { readonly schedule: Schedule.Schedule<any, infer X, any> } ? X
104
- : never
105
-
106
- /**
107
- * @since 1.0.0
108
- * @category Models
109
- */
110
- export type Provides<Plan extends Base> = Plan extends { readonly model: AiModel.AiModel<infer X, any> } ? X : never
111
-
112
- /**
113
- * @since 1.0.0
114
- * @category Models
115
- */
116
- export type Requires<Plan extends Base> = Plan extends { readonly model: AiModel.AiModel<any, infer X> } ? X : never
117
-
118
- /**
119
- * @since 1.0.0
120
- * @category Models
121
- */
122
- export type RW<Plan extends Base> = Plan extends
123
- { readonly while: (error: any) => Effect.Effect<any, any, infer X> } ? X
124
- : never
125
-
126
- /**
127
- * @since 1.0.0
128
- * @category Models
129
- */
130
- export type RS<Plan extends Base> = Plan extends { readonly schedule: Schedule.Schedule<any, any, infer X> } ? X
131
- : never
132
-
133
- /**
134
- * @since 1.0.0
135
- * @category Models
136
- */
137
- export type MakePlan<Plan extends Base> = AiPlan<
138
- EW<Plan> & ES<Plan>,
139
- Provides<Plan>,
140
- RW<Plan> | RS<Plan> | Requires<Plan>
141
- > extends infer X ? X : never
142
-
143
- /**
144
- * @since 1.0.0
145
- * @category Models
146
- */
147
- export type MergePlan<Plans extends ReadonlyArray<Base>> = AiPlan<
148
- Types.UnionToIntersection<
149
- { [K in keyof Plans]: MakePlan<Plans[K]> extends AiPlan<infer X, any, any> ? X : never }[number]
150
- >,
151
- { [K in keyof Plans]: MakePlan<Plans[K]> extends AiPlan<any, infer X, any> ? X : never }[number],
152
- { [K in keyof Plans]: MakePlan<Plans[K]> extends AiPlan<any, any, infer X> ? X : never }[number]
153
- > extends infer K ? K : never
154
- }
155
-
156
- /**
157
- * @since 1.0.0
158
- * @category constructors
159
- */
160
- export const make: <Plans extends readonly [Make.Base, ...ReadonlyArray<Make.Base>]>(
161
- ...plans: Plans
162
- ) => Make.MergePlan<Plans> = (function() {
163
- let plan = Internal.make(arguments[0])
164
- for (let i = 1; i < arguments.length; i++) {
165
- plan = withFallback(plan, arguments[i])
166
- }
167
- return plan
168
- }) as any
169
-
170
- /**
171
- * @since 1.0.0
172
- * @category error handling
173
- */
174
- export const withFallback: {
175
- /**
176
- * @since 1.0.0
177
- * @category error handling
178
- */
179
- <Provides, Provides2 extends Provides, Requires2, Out, EW, ES, RW = never, RS = never>(
180
- options: {
181
- readonly model: AiModel.AiModel<Provides2, Requires2>
182
- readonly attempts?: number | undefined
183
- readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined
184
- readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined
185
- }
186
- ): <E, Requires>(
187
- self: AiPlan<E, Provides, Requires>
188
- ) => AiPlan<E & EW & ES, Provides & Provides2, Requires | Requires2 | RW | RS>
189
- /**
190
- * @since 1.0.0
191
- * @category error handling
192
- */
193
- <E, Provides, Requires, Provides2 extends Provides, Requires2, Out, EW, ES, RW = never, RS = never>(
194
- self: AiPlan<E, Provides, Requires>,
195
- options: {
196
- readonly model: AiModel.AiModel<Provides2, Requires2>
197
- readonly attempts?: number | undefined
198
- readonly while?: ((error: EW) => boolean | Effect.Effect<boolean, never, RW>) | undefined
199
- readonly schedule?: Schedule.Schedule<Out, ES, RS> | undefined
200
- }
201
- ): AiPlan<E & EW & ES, Provides & Provides2, Requires | Requires2 | RW | RS>
202
- } = Internal.withFallback
203
-
204
- /**
205
- * @since 1.0.0
206
- * @category combination
207
- */
208
- export const concatSteps: {
209
- /**
210
- * @since 1.0.0
211
- * @category combination
212
- */
213
- <Error2, Provides2, Requires2>(other: AiPlan<Error2, Provides2, Requires2>): <Error, Provides, Requires>(
214
- self: AiPlan<Error, Provides, Requires>
215
- ) => AiPlan<Error & Error2, Provides & Provides2, Requires | Requires2>
216
- /**
217
- * @since 1.0.0
218
- * @category combination
219
- */
220
- <Error, Provides, Requires, Error2, Provides2, Requires2>(
221
- self: AiPlan<Error, Provides, Requires>,
222
- other: AiPlan<Error2, Provides2, Requires2>
223
- ): AiPlan<Error & Error2, Provides & Provides2, Requires | Requires2>
224
- } = Internal.concatSteps