liminal 0.13.0 → 0.14.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 +6 -0
- package/Strand.ts +1 -1
- package/assistant.ts +5 -1
- package/disable.ts +5 -1
- package/dist/Strand.d.ts +1 -1
- package/dist/assistant.js +5 -1
- package/dist/assistant.js.map +1 -1
- package/dist/disable.d.ts +2 -1
- package/dist/disable.js +4 -0
- package/dist/disable.js.map +1 -1
- package/dist/enable.d.ts +2 -2
- package/dist/enable.js +4 -0
- package/dist/enable.js.map +1 -1
- package/dist/patterns/index.d.ts +1 -0
- package/dist/patterns/index.js +2 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/matchGist.d.ts +3 -0
- package/dist/patterns/matchGist.js +16 -0
- package/dist/patterns/matchGist.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/util/Sequence.d.ts +2 -2
- package/dist/util/Taggable.d.ts +3 -3
- package/dist/util/Taggable.js +9 -15
- package/dist/util/Taggable.js.map +1 -1
- package/dist/util/fixRaw.d.ts +3 -3
- package/dist/util/fixRaw.js +3 -3
- package/dist/util/fixRaw.js.map +1 -1
- package/enable.ts +6 -3
- package/package.json +18 -17
- package/patterns/index.ts +1 -0
- package/patterns/matchGist.ts +23 -0
- package/util/Sequence.ts +8 -6
- package/util/Taggable.ts +14 -26
- package/util/fixRaw.ts +4 -4
package/CHANGELOG.md
CHANGED
package/Strand.ts
CHANGED
|
@@ -27,7 +27,7 @@ export class Strand extends Context.Tag("liminal/Strand")<Strand, Strand.Service
|
|
|
27
27
|
static layer: (init?: {
|
|
28
28
|
system?: string | undefined
|
|
29
29
|
messages?: Array<Message> | undefined
|
|
30
|
-
tools?: Set<AiToolkit.Any>
|
|
30
|
+
tools?: Set<AiToolkit.Any> | undefined
|
|
31
31
|
}) => Layer.Layer<Strand> = ({ system, messages, tools } = {}) =>
|
|
32
32
|
Layer.effect(
|
|
33
33
|
Strand,
|
package/assistant.ts
CHANGED
|
@@ -11,11 +11,15 @@ import { Strand } from "./Strand.ts"
|
|
|
11
11
|
export const assistant: Effect.Effect<string, AiError, AiLanguageModel | Strand> = Effect.gen(function*() {
|
|
12
12
|
const model = yield* AiLanguageModel
|
|
13
13
|
const { system, messages, tools } = yield* Strand
|
|
14
|
-
|
|
14
|
+
let { text, results } = yield* model.generateText({
|
|
15
15
|
system: Option.getOrUndefined(system),
|
|
16
16
|
prompt: messages,
|
|
17
17
|
toolkit: AiToolkit.merge(...tools) as never,
|
|
18
18
|
})
|
|
19
|
+
// TODO: this shouldn't be necessary. Bug in Effect AI?
|
|
20
|
+
if (!text.trim()) {
|
|
21
|
+
text = results.values().next().value?.result as never as string
|
|
22
|
+
}
|
|
19
23
|
yield* append(
|
|
20
24
|
new AssistantMessage({
|
|
21
25
|
parts: [new TextPart({ text })],
|
package/disable.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import * as AiTool from "@effect/ai/AiTool"
|
|
2
2
|
import type { AiToolkit } from "@effect/ai/AiToolkit"
|
|
3
3
|
import * as Effect from "effect/Effect"
|
|
4
|
+
import { Strand } from "./Strand"
|
|
4
5
|
|
|
5
|
-
export
|
|
6
|
+
export const disable: (toolkit: AiToolkit<AiTool.Any>) => Effect.Effect<void, never, Strand> = (toolkit) =>
|
|
7
|
+
Effect.map(Strand, ({ tools }) => {
|
|
8
|
+
tools.delete(toolkit)
|
|
9
|
+
})
|
package/dist/Strand.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare class Strand extends Strand_base {
|
|
|
25
25
|
static layer: (init?: {
|
|
26
26
|
system?: string | undefined;
|
|
27
27
|
messages?: Array<Message> | undefined;
|
|
28
|
-
tools?: Set<AiToolkit.Any
|
|
28
|
+
tools?: Set<AiToolkit.Any> | undefined;
|
|
29
29
|
}) => Layer.Layer<Strand>;
|
|
30
30
|
}
|
|
31
31
|
export {};
|
package/dist/assistant.js
CHANGED
|
@@ -9,11 +9,15 @@ import { Strand } from "./Strand.js";
|
|
|
9
9
|
export const assistant = Effect.gen(function* () {
|
|
10
10
|
const model = yield* AiLanguageModel;
|
|
11
11
|
const { system, messages, tools } = yield* Strand;
|
|
12
|
-
|
|
12
|
+
let { text, results } = yield* model.generateText({
|
|
13
13
|
system: Option.getOrUndefined(system),
|
|
14
14
|
prompt: messages,
|
|
15
15
|
toolkit: AiToolkit.merge(...tools),
|
|
16
16
|
});
|
|
17
|
+
// TODO: this shouldn't be necessary. Bug in Effect AI?
|
|
18
|
+
if (!text.trim()) {
|
|
19
|
+
text = results.values().next().value?.result;
|
|
20
|
+
}
|
|
17
21
|
yield* append(new AssistantMessage({
|
|
18
22
|
parts: [new TextPart({ text })],
|
|
19
23
|
}));
|
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,
|
|
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,KAAK,CAAC,GAAG,KAAK,CAAU;KAC5C,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/disable.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as AiTool from "@effect/ai/AiTool";
|
|
2
2
|
import type { AiToolkit } from "@effect/ai/AiToolkit";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
|
-
|
|
4
|
+
import { Strand } from "./Strand";
|
|
5
|
+
export declare const disable: (toolkit: AiToolkit<AiTool.Any>) => Effect.Effect<void, never, Strand>;
|
package/dist/disable.js
CHANGED
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;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"disable.js","sourceRoot":"","sources":["../disable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,CAAC,MAAM,OAAO,GAA2E,CAAC,OAAO,EAAE,EAAE,CACzG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA"}
|
package/dist/enable.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as AiTool from "@effect/ai/AiTool";
|
|
2
2
|
import type { AiToolkit } from "@effect/ai/AiToolkit";
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
|
-
import
|
|
5
|
-
export declare const enable: <Tools extends AiTool.Any>(toolkit: AiToolkit<Tools>) => Effect.Effect<
|
|
4
|
+
import { Strand } from "./Strand.ts";
|
|
5
|
+
export declare const enable: <Tools extends AiTool.Any>(toolkit: AiToolkit<Tools>) => Effect.Effect<void, never, AiTool.Handler<Tools["name"]> | Strand>;
|
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":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"enable.js","sourceRoot":"","sources":["../enable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAE3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,CAAC,MAAM,MAAM,GAEuD,CAAC,OAAO,EAAE,EAAE,CACpF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/B,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACpB,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./matchGist.ts";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../patterns/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import { Strand } from "../Strand.ts";
|
|
3
|
+
export declare const matchGist: <R extends Record<string, Effect.All.EffectAny>>(routes: R) => Effect.Effect<Effect.Effect.Success<R[keyof R]>, ([R[keyof R]] extends [never] ? never : Effect.Effect.Error<R[keyof R]>), ([R[keyof R]] extends [never] ? never : Effect.Effect.Context<R[keyof R]>) | Strand>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { assistantSchema } from "../assistantSchema.js";
|
|
4
|
+
import { branch } from "../branch.js";
|
|
5
|
+
import { Strand } from "../Strand.js";
|
|
6
|
+
import { user } from "../user.js";
|
|
7
|
+
export const matchGist = Effect.fnUntraced(function* (routes) {
|
|
8
|
+
const descriptions = Object.keys(routes);
|
|
9
|
+
const description = yield* branch(user `
|
|
10
|
+
Which of the following descriptions best matches the current conversation?
|
|
11
|
+
|
|
12
|
+
- ${descriptions.join("\n -")}
|
|
13
|
+
`, assistantSchema(Schema.Literal(...descriptions)));
|
|
14
|
+
return yield* routes[description];
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=matchGist.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"matchGist.js","sourceRoot":"","sources":["../../patterns/matchGist.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"}
|