@effect/ai 0.17.0 → 0.18.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.
- package/dist/cjs/AiModel.js +17 -29
- package/dist/cjs/AiModel.js.map +1 -1
- package/dist/cjs/index.js +1 -3
- package/dist/dts/AiModel.d.ts +3 -40
- package/dist/dts/AiModel.d.ts.map +1 -1
- package/dist/dts/index.d.ts +0 -4
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/AiModel.js +16 -28
- package/dist/esm/AiModel.js.map +1 -1
- package/dist/esm/index.js +0 -4
- package/dist/esm/index.js.map +1 -1
- package/package.json +4 -12
- package/src/AiModel.ts +21 -77
- package/src/index.ts +0 -5
- package/AiPlan/package.json +0 -6
- package/dist/cjs/AiPlan.js +0 -36
- package/dist/cjs/AiPlan.js.map +0 -1
- package/dist/cjs/internal/aiPlan.js +0 -88
- package/dist/cjs/internal/aiPlan.js.map +0 -1
- package/dist/dts/AiPlan.d.ts +0 -190
- package/dist/dts/AiPlan.d.ts.map +0 -1
- package/dist/dts/internal/aiPlan.d.ts +0 -2
- package/dist/dts/internal/aiPlan.d.ts.map +0 -1
- package/dist/esm/AiPlan.js +0 -28
- package/dist/esm/AiPlan.js.map +0 -1
- package/dist/esm/internal/aiPlan.js +0 -80
- package/dist/esm/internal/aiPlan.js.map +0 -1
- package/src/AiPlan.ts +0 -224
- package/src/internal/aiPlan.ts +0 -162
package/dist/dts/AiPlan.d.ts
DELETED
|
@@ -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
|
package/dist/dts/AiPlan.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AiPlan.d.ts","sourceRoot":"","sources":["../../src/AiPlan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aiPlan.d.ts","sourceRoot":"","sources":["../../../src/internal/aiPlan.ts"],"names":[],"mappings":""}
|
package/dist/esm/AiPlan.js
DELETED
|
@@ -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
|
package/dist/esm/AiPlan.js.map
DELETED
|
@@ -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
|