liminal 0.14.0 → 0.15.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/CHANGELOG.md +7 -0
- package/Strand.ts +11 -6
- package/assistant.ts +1 -1
- package/assistantStream.ts +1 -1
- package/disable.ts +2 -3
- package/dist/Strand.d.ts +10 -5
- package/dist/Strand.js.map +1 -1
- package/dist/assistant.js +1 -1
- package/dist/assistant.js.map +1 -1
- package/dist/assistantStream.js +1 -1
- package/dist/assistantStream.js.map +1 -1
- package/dist/disable.d.ts +1 -2
- package/dist/disable.js +2 -2
- package/dist/disable.js.map +1 -1
- package/dist/enable.d.ts +3 -3
- package/dist/enable.js +0 -1
- package/dist/enable.js.map +1 -1
- package/dist/patterns/coalesce_models.d.ts +6 -0
- package/dist/patterns/coalesce_models.js +15 -0
- package/dist/patterns/coalesce_models.js.map +1 -0
- package/dist/patterns/{matchGist.js → match_gist.js} +1 -1
- package/dist/patterns/match_gist.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/enable.ts +10 -6
- package/package.json +3 -2
- package/patterns/coalesce_models.ts +30 -0
- package/dist/patterns/index.d.ts +0 -1
- package/dist/patterns/index.js +0 -2
- package/dist/patterns/index.js.map +0 -1
- package/dist/patterns/matchGist.js.map +0 -1
- package/patterns/index.ts +0 -1
- /package/dist/patterns/{matchGist.d.ts → match_gist.d.ts} +0 -0
- /package/patterns/{matchGist.ts → match_gist.ts} +0 -0
package/CHANGELOG.md
CHANGED
package/Strand.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { Message } from "@effect/ai/AiInput"
|
|
2
|
-
import type * as
|
|
2
|
+
import type * as AiTool from "@effect/ai/AiTool"
|
|
3
3
|
import * as Context from "effect/Context"
|
|
4
4
|
import * as Effect from "effect/Effect"
|
|
5
5
|
import * as Layer from "effect/Layer"
|
|
6
6
|
import * as Option from "effect/Option"
|
|
7
7
|
import * as PubSub from "effect/PubSub"
|
|
8
|
+
import type { Schema } from "effect/Schema"
|
|
8
9
|
import type { LEvent } from "./LEvent.ts"
|
|
9
10
|
|
|
10
11
|
export declare namespace Strand {
|
|
@@ -18,17 +19,21 @@ export declare namespace Strand {
|
|
|
18
19
|
/** The list of messages that the model uses to infer the next message. */
|
|
19
20
|
messages: Array<Message>
|
|
20
21
|
/** The tools available to the model. */
|
|
21
|
-
tools: Set<
|
|
22
|
+
tools: Set<AiTool.AiTool<string, AiTool.AnyStructSchema, Schema.Any, Schema.Any, never>>
|
|
22
23
|
}
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
/** A context tag that denotes the boundary of a conversation isolate. */
|
|
26
27
|
export class Strand extends Context.Tag("liminal/Strand")<Strand, Strand.Service>() {
|
|
27
|
-
static layer: (init?: {
|
|
28
|
+
static layer: <T extends AiTool.Any = never>(init?: {
|
|
28
29
|
system?: string | undefined
|
|
29
30
|
messages?: Array<Message> | undefined
|
|
30
|
-
tools?: Set<
|
|
31
|
-
}) => Layer.Layer<
|
|
31
|
+
tools?: Set<T> | undefined
|
|
32
|
+
}) => Layer.Layer<
|
|
33
|
+
Strand,
|
|
34
|
+
[T] extends [AiTool.Any] ? AiTool.Failure<T> : never,
|
|
35
|
+
[T] extends [AiTool.Any] ? AiTool.Context<T> : never
|
|
36
|
+
> = ({ system, messages, tools } = {}) =>
|
|
32
37
|
Layer.effect(
|
|
33
38
|
Strand,
|
|
34
39
|
Effect.gen(function*() {
|
|
@@ -37,7 +42,7 @@ export class Strand extends Context.Tag("liminal/Strand")<Strand, Strand.Service
|
|
|
37
42
|
events: yield* PubSub.unbounded<LEvent>(),
|
|
38
43
|
system: Option.fromNullable(system),
|
|
39
44
|
messages: [...messages ?? []],
|
|
40
|
-
tools: new Set(tools ?? []),
|
|
45
|
+
tools: new Set(tools as never ?? []),
|
|
41
46
|
})
|
|
42
47
|
}),
|
|
43
48
|
)
|
package/assistant.ts
CHANGED
|
@@ -14,7 +14,7 @@ export const assistant: Effect.Effect<string, AiError, AiLanguageModel | Strand>
|
|
|
14
14
|
let { text, results } = yield* model.generateText({
|
|
15
15
|
system: Option.getOrUndefined(system),
|
|
16
16
|
prompt: messages,
|
|
17
|
-
toolkit: AiToolkit.
|
|
17
|
+
toolkit: AiToolkit.make(...tools) as never,
|
|
18
18
|
})
|
|
19
19
|
// TODO: this shouldn't be necessary. Bug in Effect AI?
|
|
20
20
|
if (!text.trim()) {
|
package/assistantStream.ts
CHANGED
package/disable.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import * as AiTool from "@effect/ai/AiTool"
|
|
2
|
-
import type { AiToolkit } from "@effect/ai/AiToolkit"
|
|
3
2
|
import * as Effect from "effect/Effect"
|
|
4
3
|
import { Strand } from "./Strand"
|
|
5
4
|
|
|
6
|
-
export const disable: (
|
|
5
|
+
export const disable: (tool: AiTool.Any) => Effect.Effect<void, never, Strand> = (tool) =>
|
|
7
6
|
Effect.map(Strand, ({ tools }) => {
|
|
8
|
-
tools.delete(
|
|
7
|
+
tools.delete(tool as never)
|
|
9
8
|
})
|
package/dist/Strand.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { Message } from "@effect/ai/AiInput";
|
|
2
|
-
import type * as
|
|
2
|
+
import type * as AiTool from "@effect/ai/AiTool";
|
|
3
3
|
import * as Context from "effect/Context";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
5
5
|
import * as Option from "effect/Option";
|
|
6
6
|
import * as PubSub from "effect/PubSub";
|
|
7
|
+
import type { Schema } from "effect/Schema";
|
|
7
8
|
import type { LEvent } from "./LEvent.ts";
|
|
8
9
|
export declare namespace Strand {
|
|
9
10
|
interface Service {
|
|
@@ -16,16 +17,20 @@ export declare namespace Strand {
|
|
|
16
17
|
/** The list of messages that the model uses to infer the next message. */
|
|
17
18
|
messages: Array<Message>;
|
|
18
19
|
/** The tools available to the model. */
|
|
19
|
-
tools: Set<
|
|
20
|
+
tools: Set<AiTool.AiTool<string, AiTool.AnyStructSchema, Schema.Any, Schema.Any, never>>;
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
declare const Strand_base: Context.TagClass<Strand, "liminal/Strand", Strand.Service>;
|
|
23
24
|
/** A context tag that denotes the boundary of a conversation isolate. */
|
|
24
25
|
export declare class Strand extends Strand_base {
|
|
25
|
-
static layer: (init?: {
|
|
26
|
+
static layer: <T extends AiTool.Any = never>(init?: {
|
|
26
27
|
system?: string | undefined;
|
|
27
28
|
messages?: Array<Message> | undefined;
|
|
28
|
-
tools?: Set<
|
|
29
|
-
}) => Layer.Layer<Strand
|
|
29
|
+
tools?: Set<T> | undefined;
|
|
30
|
+
}) => Layer.Layer<Strand, [
|
|
31
|
+
T
|
|
32
|
+
] extends [AiTool.Any] ? AiTool.Failure<T> : never, [
|
|
33
|
+
T
|
|
34
|
+
] extends [AiTool.Any] ? AiTool.Context<T> : never>;
|
|
30
35
|
}
|
|
31
36
|
export {};
|
package/dist/Strand.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Strand.js","sourceRoot":"","sources":["../Strand.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Strand.js","sourceRoot":"","sources":["../Strand.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAmBvC,yEAAyE;AACzE,MAAM,OAAO,MAAO,SAAQ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAA0B;IACjF,MAAM,CAAC,KAAK,GAQR,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CACvC,KAAK,CAAC,MAAM,CACV,MAAM,EACN,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,OAAO,MAAM,CAAC,EAAE,CAAC;YACf,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;YAC3C,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAU;YACzC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC;YACnC,QAAQ,EAAE,CAAC,GAAG,QAAQ,IAAI,EAAE,CAAC;YAC7B,KAAK,EAAE,IAAI,GAAG,CAAC,KAAc,IAAI,EAAE,CAAC;SACrC,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA"}
|
package/dist/assistant.js
CHANGED
|
@@ -12,7 +12,7 @@ export const assistant = Effect.gen(function* () {
|
|
|
12
12
|
let { text, results } = yield* model.generateText({
|
|
13
13
|
system: Option.getOrUndefined(system),
|
|
14
14
|
prompt: messages,
|
|
15
|
-
toolkit: AiToolkit.
|
|
15
|
+
toolkit: AiToolkit.make(...tools),
|
|
16
16
|
});
|
|
17
17
|
// TODO: this shouldn't be necessary. Bug in Effect AI?
|
|
18
18
|
if (!text.trim()) {
|
package/dist/assistant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant.js","sourceRoot":"","sources":["../assistant.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,SAAS,GAA6D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrG,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;IACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;IACjD,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"assistant.js","sourceRoot":"","sources":["../assistant.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,oEAAoE;AACpE,MAAM,CAAC,MAAM,SAAS,GAA6D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrG,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;IACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;IACjD,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAU;KAC3C,CAAC,CAAA;IACF,uDAAuD;IACvD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,MAAyB,CAAA;IACjE,CAAC;IACD,KAAK,CAAC,CAAC,MAAM,CACX,IAAI,gBAAgB,CAAC;QACnB,KAAK,EAAE,CAAC,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;KAChC,CAAC,CACH,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAC,CAAA"}
|
package/dist/assistantStream.js
CHANGED
|
@@ -11,7 +11,7 @@ export const assistantStream = Stream.unwrap(Effect.gen(function* () {
|
|
|
11
11
|
return model.streamText({
|
|
12
12
|
system: Option.getOrUndefined(system),
|
|
13
13
|
prompt: messages,
|
|
14
|
-
toolkit: AiToolkit.
|
|
14
|
+
toolkit: AiToolkit.make(...tools),
|
|
15
15
|
});
|
|
16
16
|
}));
|
|
17
17
|
//# sourceMappingURL=assistantStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistantStream.js","sourceRoot":"","sources":["../assistantStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAIxB,MAAM,CAAC,MAAM,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;IACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;IACjD,OAAO,KAAK,CAAC,UAAU,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"assistantStream.js","sourceRoot":"","sources":["../assistantStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAE5D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,iGAAiG;AACjG,MAAM,CAAC,MAAM,eAAe,GAIxB,MAAM,CAAC,MAAM,CACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAe,CAAA;IACpC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,MAAM,CAAA;IACjD,OAAO,KAAK,CAAC,UAAU,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;QACrC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KAClC,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}
|
package/dist/disable.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as AiTool from "@effect/ai/AiTool";
|
|
2
|
-
import type { AiToolkit } from "@effect/ai/AiToolkit";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
4
3
|
import { Strand } from "./Strand";
|
|
5
|
-
export declare const disable: (
|
|
4
|
+
export declare const disable: (tool: AiTool.Any) => Effect.Effect<void, never, Strand>;
|
package/dist/disable.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as AiTool from "@effect/ai/AiTool";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import { Strand } from "./Strand";
|
|
4
|
-
export const disable = (
|
|
5
|
-
tools.delete(
|
|
4
|
+
export const disable = (tool) => Effect.map(Strand, ({ tools }) => {
|
|
5
|
+
tools.delete(tool);
|
|
6
6
|
});
|
|
7
7
|
//# sourceMappingURL=disable.js.map
|
package/dist/disable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../disable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../disable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,CAAC,MAAM,OAAO,GAA6D,CAAC,IAAI,EAAE,EAAE,CACxF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/B,KAAK,CAAC,MAAM,CAAC,IAAa,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
|
package/dist/enable.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { AiToolkit } from "@effect/ai/AiToolkit";
|
|
1
|
+
import type { AiTool, AnyStructSchema, Handler } from "@effect/ai/AiTool";
|
|
3
2
|
import * as Effect from "effect/Effect";
|
|
3
|
+
import type { Schema } from "effect/Schema";
|
|
4
4
|
import { Strand } from "./Strand.ts";
|
|
5
|
-
export declare const enable: <
|
|
5
|
+
export declare const enable: <K extends string, E extends Schema.All, R>(toolkit: AiTool<K, AnyStructSchema, Schema.Any, E, R>) => Effect.Effect<void, E, Handler<K> | Strand | R>;
|
package/dist/enable.js
CHANGED
package/dist/enable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../enable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../enable.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,MAAM,GAMoC,CAAC,OAAO,EAAE,EAAE,CACjE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/B,KAAK,CAAC,GAAG,CAAC,OAAgB,CAAC,CAAA;AAC7B,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AiError } from "@effect/ai/AiError";
|
|
2
|
+
import type { AiLanguageModel } from "@effect/ai/AiLanguageModel";
|
|
3
|
+
import type { AiModel } from "@effect/ai/AiModel";
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import type { Strand } from "../Strand.ts";
|
|
6
|
+
export declare const coalesceModels: <E, R, M extends Array<AiModel<any, any>>>(effect: Effect.Effect<any, E, R>, models: M) => Effect.Effect<string, AiError | E, Strand | AiLanguageModel | ([M[number]] extends [AiModel<any, infer R>] ? R : never)>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { assistant } from "../assistant.js";
|
|
3
|
+
import { user } from "../user.js";
|
|
4
|
+
export const coalesceModels = Effect.fn(function* (effect, models) {
|
|
5
|
+
const all = yield* Effect.all(models.map((model) => effect.pipe(Effect.provide(model))));
|
|
6
|
+
yield* user `
|
|
7
|
+
Coalesce the following items into a single item:
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
${all.map((item) => JSON.stringify(item, null, 2)).join("\n\n---")}
|
|
12
|
+
`;
|
|
13
|
+
return yield* assistant;
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=coalesce_models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coalesce_models.js","sourceRoot":"","sources":["../../patterns/coalesce_models.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,MAAM,CAAC,MAAM,cAAc,GAOvB,MAAM,CAAC,EAAE,CACX,QAAQ,CAAC,EAAC,MAAM,EAAE,MAAM;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAEtF,CAAA;IACD,KAAK,CAAC,CAAC,IAAI,CAAA;;;;;QAKP,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;KACnE,CAAA;IACD,OAAO,KAAK,CAAC,CAAC,SAAS,CAAA;AACzB,CAAC,CACF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"match_gist.js","sourceRoot":"","sources":["../../patterns/match_gist.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,MAAM,CAAC,MAAM,SAAS,GAIlB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,MAAM;IACpC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,CAC/B,IAAI,CAAA;;;UAGE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;KAC9B,EACD,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC,CACjD,CAAA;IACD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,WAAW,CAAE,CAAA;AACpC,CAAC,CAAC,CAAA"}
|