@effect/ai 0.10.4 → 0.10.6
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.
|
@@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.withFallback = exports.fromModel = exports.concatSteps = exports.TypeId = exports.PlanPrototype = void 0;
|
|
7
|
-
var Cause = _interopRequireWildcard(require("effect/Cause"));
|
|
8
7
|
var Context = _interopRequireWildcard(require("effect/Context"));
|
|
9
8
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
9
|
var _Effectable = require("effect/Effectable");
|
|
11
|
-
var
|
|
10
|
+
var Either = _interopRequireWildcard(require("effect/Either"));
|
|
12
11
|
var _Function = require("effect/Function");
|
|
13
12
|
var Option = _interopRequireWildcard(require("effect/Option"));
|
|
14
13
|
var _Pipeable = require("effect/Pipeable");
|
|
@@ -38,20 +37,22 @@ const makePlan = steps => {
|
|
|
38
37
|
};
|
|
39
38
|
const buildPlan = plan => Effect.map(Effect.context(), context => {
|
|
40
39
|
const models = Context.get(context, _AiModels.AiModels);
|
|
41
|
-
return
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
return {
|
|
41
|
+
provide: Effect.fnUntraced(function* (effect) {
|
|
42
|
+
let result = undefined;
|
|
43
|
+
for (const step of plan.steps) {
|
|
44
|
+
if (result !== undefined && Either.isLeft(result) && Option.isSome(step.check)) {
|
|
45
|
+
const check = step.check.value(result.left);
|
|
46
|
+
const isFatalError = !(Effect.isEffect(check) ? yield* check : check);
|
|
47
|
+
if (isFatalError) break;
|
|
48
|
+
}
|
|
49
|
+
const retryOptions = getRetryOptions(step);
|
|
50
|
+
result = yield* Effect.scopedWith(scope => models.build(step.model, context).pipe(Scope.extend(scope), Effect.flatMap(context => effect.pipe(Option.isSome(retryOptions) ? Effect.retry(retryOptions.value) : _Function.identity, Effect.provide(context))), Effect.either));
|
|
51
|
+
if (Either.isRight(result)) break;
|
|
48
52
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
return yield* exit;
|
|
54
|
-
});
|
|
53
|
+
return yield* result;
|
|
54
|
+
})
|
|
55
|
+
};
|
|
55
56
|
});
|
|
56
57
|
const getRetryOptions = step => {
|
|
57
58
|
if (Option.isNone(step.schedule) && Option.isNone(step.check)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiPlan.js","names":["
|
|
1
|
+
{"version":3,"file":"aiPlan.js","names":["Context","_interopRequireWildcard","require","Effect","_Effectable","Either","_Function","Option","_Pipeable","Predicate","Schedule","Scope","_AiModels","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","PlanPrototype","CommitPrototype","commit","buildPlan","pipe","pipeArguments","arguments","makePlan","steps","self","create","plan","map","context","models","AiModels","provide","fnUntraced","effect","result","undefined","step","isLeft","isSome","check","value","left","isFatalError","isEffect","retryOptions","getRetryOptions","scopedWith","scope","build","model","extend","flatMap","retry","identity","either","isRight","isNone","schedule","none","some","getOrUndefined","while","fromModel","options","fromNullable","resolveSchedule","withFallback","dual","isUndefined","attempts","forever","isNotUndefined","intersect","recurs","concatSteps","other"],"sources":["../../../src/internal/aiPlan.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import * as Cause from "effect/Cause";
|
|
2
1
|
import * as Context from "effect/Context";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
4
3
|
import { CommitPrototype } from "effect/Effectable";
|
|
5
|
-
import * as
|
|
4
|
+
import * as Either from "effect/Either";
|
|
6
5
|
import { dual, identity } from "effect/Function";
|
|
7
6
|
import * as Option from "effect/Option";
|
|
8
7
|
import { pipeArguments } from "effect/Pipeable";
|
|
@@ -30,20 +29,22 @@ const makePlan = steps => {
|
|
|
30
29
|
};
|
|
31
30
|
const buildPlan = plan => Effect.map(Effect.context(), context => {
|
|
32
31
|
const models = Context.get(context, AiModels);
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
return {
|
|
33
|
+
provide: Effect.fnUntraced(function* (effect) {
|
|
34
|
+
let result = undefined;
|
|
35
|
+
for (const step of plan.steps) {
|
|
36
|
+
if (result !== undefined && Either.isLeft(result) && Option.isSome(step.check)) {
|
|
37
|
+
const check = step.check.value(result.left);
|
|
38
|
+
const isFatalError = !(Effect.isEffect(check) ? yield* check : check);
|
|
39
|
+
if (isFatalError) break;
|
|
40
|
+
}
|
|
41
|
+
const retryOptions = getRetryOptions(step);
|
|
42
|
+
result = yield* Effect.scopedWith(scope => models.build(step.model, context).pipe(Scope.extend(scope), Effect.flatMap(context => effect.pipe(Option.isSome(retryOptions) ? Effect.retry(retryOptions.value) : identity, Effect.provide(context))), Effect.either));
|
|
43
|
+
if (Either.isRight(result)) break;
|
|
40
44
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
return yield* exit;
|
|
46
|
-
});
|
|
45
|
+
return yield* result;
|
|
46
|
+
})
|
|
47
|
+
};
|
|
47
48
|
});
|
|
48
49
|
const getRetryOptions = step => {
|
|
49
50
|
if (Option.isNone(step.schedule) && Option.isNone(step.check)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiPlan.js","names":["
|
|
1
|
+
{"version":3,"file":"aiPlan.js","names":["Context","Effect","CommitPrototype","Either","dual","identity","Option","pipeArguments","Predicate","Schedule","Scope","AiModels","TypeId","Symbol","for","PlanPrototype","commit","buildPlan","pipe","arguments","makePlan","steps","self","Object","create","plan","map","context","models","get","provide","fnUntraced","effect","result","undefined","step","isLeft","isSome","check","value","left","isFatalError","isEffect","retryOptions","getRetryOptions","scopedWith","scope","build","model","extend","flatMap","retry","either","isRight","isNone","schedule","none","some","getOrUndefined","while","fromModel","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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/ai",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.6",
|
|
4
4
|
"description": "Effect modules for working with AI apis",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"dependencies": {},
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@effect/experimental": "^0.41.
|
|
15
|
-
"effect": "^
|
|
16
|
-
"
|
|
14
|
+
"@effect/experimental": "^0.41.6",
|
|
15
|
+
"@effect/platform": "^0.77.6",
|
|
16
|
+
"effect": "^3.13.6"
|
|
17
17
|
},
|
|
18
18
|
"publishConfig": {
|
|
19
19
|
"provenance": true
|
package/src/internal/aiPlan.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import * as Cause from "effect/Cause"
|
|
2
1
|
import * as Context from "effect/Context"
|
|
3
2
|
import * as Effect from "effect/Effect"
|
|
4
3
|
import { CommitPrototype } from "effect/Effectable"
|
|
5
|
-
import * as
|
|
4
|
+
import * as Either from "effect/Either"
|
|
6
5
|
import { dual, identity } from "effect/Function"
|
|
7
6
|
import * as Option from "effect/Option"
|
|
8
7
|
import { pipeArguments } from "effect/Pipeable"
|
|
@@ -39,39 +38,41 @@ const makePlan = <
|
|
|
39
38
|
const buildPlan = <Error, Provides, Requires>(
|
|
40
39
|
plan: AiPlan.AiPlan<Error, Provides, Requires>
|
|
41
40
|
): Effect.Effect<
|
|
42
|
-
|
|
41
|
+
AiPlan.AiPlan.Provider<Provides>,
|
|
43
42
|
never,
|
|
44
43
|
Requires | AiModels
|
|
45
44
|
> =>
|
|
46
45
|
Effect.map(Effect.context<AiModels | Requires>(), (context) => {
|
|
47
46
|
const models = Context.get(context, AiModels)
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
47
|
+
return {
|
|
48
|
+
provide: Effect.fnUntraced(function*<A, E, R>(effect: Effect.Effect<A, E, R>) {
|
|
49
|
+
let result: Either.Either<A, E> | undefined = undefined
|
|
50
|
+
for (const step of plan.steps) {
|
|
51
|
+
if (result !== undefined && Either.isLeft(result) && Option.isSome(step.check)) {
|
|
52
|
+
const check = step.check.value(result.left as any)
|
|
53
|
+
const isFatalError = !(Effect.isEffect(check) ? yield* check : check)
|
|
54
|
+
if (isFatalError) break
|
|
55
|
+
}
|
|
56
|
+
const retryOptions = getRetryOptions(step)
|
|
57
|
+
result = yield* Effect.scopedWith((scope) =>
|
|
58
|
+
models.build(step.model, context).pipe(
|
|
59
|
+
Scope.extend(scope),
|
|
60
|
+
Effect.flatMap((context) =>
|
|
61
|
+
effect.pipe(
|
|
62
|
+
Option.isSome(retryOptions)
|
|
63
|
+
? Effect.retry(retryOptions.value)
|
|
64
|
+
: identity,
|
|
65
|
+
Effect.provide(context)
|
|
66
|
+
)
|
|
67
|
+
),
|
|
68
|
+
Effect.either
|
|
69
|
+
)
|
|
69
70
|
)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
71
|
+
if (Either.isRight(result)) break
|
|
72
|
+
}
|
|
73
|
+
return yield* result!
|
|
74
|
+
})
|
|
75
|
+
}
|
|
75
76
|
})
|
|
76
77
|
|
|
77
78
|
const getRetryOptions = <Error, Provides, Requires>(
|