liminal 0.16.0 → 0.17.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/Digest.ts +30 -0
- package/Envelope.ts +15 -47
- package/F/F.ts +1 -0
- package/L/L.ts +6 -7
- package/L/append.ts +4 -4
- package/L/assistant.ts +2 -2
- package/L/assistantSchema.ts +2 -2
- package/L/assistantStream.ts +2 -2
- package/L/branch.ts +4 -17
- package/L/clear.ts +4 -4
- package/L/disable.ts +2 -2
- package/L/enable.ts +2 -2
- package/L/events.ts +2 -2
- package/L/{userJson.ts → json.ts} +3 -5
- package/L/line.ts +22 -0
- package/L/{handle.ts → listen.ts} +2 -2
- package/L/messages.ts +2 -2
- package/L/prev.ts +4 -0
- package/L/provide.ts +10 -0
- package/L/{Self.ts → self.ts} +1 -1
- package/L/send.ts +56 -0
- package/L/system.ts +18 -7
- package/L/thread.ts +5 -17
- package/L/toolkit.ts +2 -2
- package/L/user.test.ts +4 -1
- package/L/user.ts +15 -5
- package/LEvent.ts +23 -13
- package/Thread.ts +19 -21
- package/dist/Digest.d.ts +17 -0
- package/dist/Digest.js +7 -0
- package/dist/Digest.js.map +1 -0
- package/dist/Envelope.d.ts +13 -15
- package/dist/Envelope.js +1 -29
- package/dist/Envelope.js.map +1 -1
- package/dist/F/F.d.ts +1 -0
- package/dist/F/F.js +2 -0
- package/dist/F/F.js.map +1 -0
- package/dist/L/L.d.ts +6 -7
- package/dist/L/L.js +6 -7
- package/dist/L/L.js.map +1 -1
- package/dist/L/append.js +4 -4
- package/dist/L/append.js.map +1 -1
- package/dist/L/assistant.js +2 -2
- package/dist/L/assistantSchema.js +2 -2
- package/dist/L/assistantStream.js +2 -2
- package/dist/L/branch.d.ts +1 -4
- package/dist/L/branch.js +4 -7
- package/dist/L/branch.js.map +1 -1
- package/dist/L/clear.js +4 -4
- package/dist/L/clear.js.map +1 -1
- package/dist/L/disable.js +2 -2
- package/dist/L/enable.js +2 -2
- package/dist/L/events.js +2 -2
- package/dist/L/{userJson.d.ts → json.d.ts} +1 -2
- package/dist/L/{userJson.js → json.js} +3 -4
- package/dist/L/json.js.map +1 -0
- package/dist/L/line.d.ts +5 -0
- package/dist/L/line.js +11 -0
- package/dist/L/line.js.map +1 -0
- package/dist/L/{handle.js → listen.js} +3 -3
- package/dist/L/{handle.js.map → listen.js.map} +1 -1
- package/dist/L/messages.js +2 -2
- package/dist/L/prev.d.ts +5 -0
- package/dist/L/prev.js +5 -0
- package/dist/L/prev.js.map +1 -0
- package/dist/L/provide.d.ts +3 -0
- package/dist/L/provide.js +4 -0
- package/dist/L/provide.js.map +1 -0
- package/dist/L/{Self.d.ts → self.d.ts} +1 -1
- package/dist/L/self.js +4 -0
- package/dist/L/self.js.map +1 -0
- package/dist/L/send.d.ts +6 -0
- package/dist/L/send.js +34 -0
- package/dist/L/send.js.map +1 -0
- package/dist/L/system.d.ts +3 -3
- package/dist/L/system.js +6 -4
- package/dist/L/system.js.map +1 -1
- package/dist/L/thread.d.ts +1 -4
- package/dist/L/thread.js +5 -7
- package/dist/L/thread.js.map +1 -1
- package/dist/L/toolkit.js +2 -2
- package/dist/L/user.d.ts +5 -3
- package/dist/L/user.js +3 -3
- package/dist/L/user.js.map +1 -1
- package/dist/L/user.test.js.map +1 -1
- package/dist/LEvent.d.ts +143 -15
- package/dist/LEvent.js +12 -9
- package/dist/LEvent.js.map +1 -1
- package/dist/Thread.d.ts +15 -18
- package/dist/Thread.js +7 -13
- package/dist/Thread.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/patterns/Route.js +2 -2
- package/dist/patterns/Route.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/util/Taggable.d.ts +5 -4
- package/dist/util/Taggable.js +11 -0
- package/dist/util/Taggable.js.map +1 -1
- package/dist/util/extract.d.ts +3 -0
- package/dist/util/extract.js +2 -0
- package/dist/util/extract.js.map +1 -0
- package/dist/util/messageCodec.d.ts +98 -0
- package/dist/util/messageCodec.js +5 -0
- package/dist/util/messageCodec.js.map +1 -0
- package/dist/util/raw.d.ts +6 -0
- package/dist/util/raw.js +5 -0
- package/dist/util/raw.js.map +1 -0
- package/index.ts +4 -2
- package/package.json +22 -10
- package/patterns/Route.ts +5 -1
- package/util/Taggable.ts +30 -11
- package/util/extract.ts +7 -0
- package/util/messageCodec.ts +5 -0
- package/util/raw.ts +27 -0
- package/L/fqn.ts +0 -9
- package/L/raw.ts +0 -30
- package/L/sequence.ts +0 -9
- package/L/to.ts +0 -4
- package/LPretty.ts +0 -41
- package/dist/L/Self.js +0 -4
- package/dist/L/Self.js.map +0 -1
- package/dist/L/fqn.d.ts +0 -3
- package/dist/L/fqn.js +0 -8
- package/dist/L/fqn.js.map +0 -1
- package/dist/L/raw.d.ts +0 -3
- package/dist/L/raw.js +0 -18
- package/dist/L/raw.js.map +0 -1
- package/dist/L/sequence.d.ts +0 -2
- package/dist/L/sequence.js +0 -5
- package/dist/L/sequence.js.map +0 -1
- package/dist/L/to.d.ts +0 -3
- package/dist/L/to.js +0 -3
- package/dist/L/to.js.map +0 -1
- package/dist/L/userJson.js.map +0 -1
- package/dist/LPretty.d.ts +0 -4
- package/dist/LPretty.js +0 -37
- package/dist/LPretty.js.map +0 -1
- package/dist/util/Sequencer.d.ts +0 -4
- package/dist/util/Sequencer.js +0 -2
- package/dist/util/Sequencer.js.map +0 -1
- package/util/Sequencer.ts +0 -13
- /package/dist/L/{handle.d.ts → listen.d.ts} +0 -0
package/dist/util/Taggable.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
type
|
|
5
|
-
export
|
|
2
|
+
import type { ExtractE, ExtractR } from "./extract.ts";
|
|
3
|
+
import { type TemplateStringsArrayLike } from "./raw.ts";
|
|
4
|
+
export type TaggableArg0 = TemplateStringsArrayLike | string | Effect.Effect<string, any, any>;
|
|
5
|
+
export type TaggableArgRest<E0 extends TaggableArg0> = E0 extends TemplateStringsArrayLike ? Array<unknown> : [];
|
|
6
|
+
export declare const normalize: <A0 extends TaggableArg0, ARest extends TaggableArgRest<A0>>(a0: A0, ...aRest: ARest) => Effect.Effect<string, ExtractE<A0 | ARest[number]>, ExtractR<A0 | ARest[number]>>;
|
package/dist/util/Taggable.js
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
|
+
import { YieldWrap } from "effect/Utils";
|
|
3
|
+
import { raw } from "./raw.js";
|
|
4
|
+
export const normalize = Effect.fnUntraced(function* (a0, ...aRest) {
|
|
5
|
+
if (Effect.isEffect(a0)) {
|
|
6
|
+
return yield* a0;
|
|
7
|
+
}
|
|
8
|
+
if (typeof a0 === "string") {
|
|
9
|
+
return a0;
|
|
10
|
+
}
|
|
11
|
+
return yield* raw(a0, ...aRest);
|
|
12
|
+
});
|
|
2
13
|
//# sourceMappingURL=Taggable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Taggable.js","sourceRoot":"","sources":["../../util/Taggable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"Taggable.js","sourceRoot":"","sources":["../../util/Taggable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,OAAO,EAAE,GAAG,EAAiC,MAAM,UAAU,CAAA;AAK7D,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAIlD,EAAM,EACN,GAAG,KAAY;IAYf,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC,CAAC,EAAE,CAAA;IAClB,CAAC;IACD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,CAAA;AACjC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
export type ExtractE<T> = [Extract<T, Effect.Effect<any, any, any>>] extends [never] ? never : Effect.Effect.Error<Extract<T, Effect.Effect<any, any, any>>>;
|
|
3
|
+
export type ExtractR<T> = [Extract<T, Effect.Effect<any, any, any>>] extends [never] ? never : Effect.Effect.Context<Extract<T, Effect.Effect<any, any, any>>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../util/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
export declare const decode: (i: {
|
|
2
|
+
readonly _tag: "UserMessage";
|
|
3
|
+
readonly parts: readonly ({
|
|
4
|
+
readonly _tag: "TextPart";
|
|
5
|
+
readonly text: string;
|
|
6
|
+
} | {
|
|
7
|
+
readonly _tag: "ImagePart";
|
|
8
|
+
readonly data: string;
|
|
9
|
+
readonly mediaType?: string | undefined;
|
|
10
|
+
} | {
|
|
11
|
+
readonly _tag: "ImageUrlPart";
|
|
12
|
+
readonly url: string;
|
|
13
|
+
} | {
|
|
14
|
+
readonly _tag: "FilePart";
|
|
15
|
+
readonly data: string;
|
|
16
|
+
readonly name?: string | undefined;
|
|
17
|
+
readonly mediaType?: string | undefined;
|
|
18
|
+
} | {
|
|
19
|
+
readonly _tag: "FileUrlPart";
|
|
20
|
+
readonly url: string;
|
|
21
|
+
})[];
|
|
22
|
+
readonly userName?: string | undefined;
|
|
23
|
+
} | {
|
|
24
|
+
readonly _tag: "AssistantMessage";
|
|
25
|
+
readonly parts: readonly ({
|
|
26
|
+
readonly _tag: "TextPart";
|
|
27
|
+
readonly text: string;
|
|
28
|
+
} | {
|
|
29
|
+
readonly _tag: "ReasoningPart";
|
|
30
|
+
readonly reasoningText: string;
|
|
31
|
+
readonly signature?: string | undefined;
|
|
32
|
+
} | {
|
|
33
|
+
readonly _tag: "RedactedReasoningPart";
|
|
34
|
+
readonly redactedText: string;
|
|
35
|
+
} | {
|
|
36
|
+
readonly _tag: "ToolCallPart";
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly id: string;
|
|
39
|
+
readonly params: unknown;
|
|
40
|
+
})[];
|
|
41
|
+
} | {
|
|
42
|
+
readonly _tag: "ToolMessage";
|
|
43
|
+
readonly parts: readonly {
|
|
44
|
+
readonly _tag: "ToolCallResultPart";
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly id: string;
|
|
47
|
+
readonly result: unknown;
|
|
48
|
+
}[];
|
|
49
|
+
}, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect<import("@effect/ai/AiInput").UserMessage | import("@effect/ai/AiInput").AssistantMessage | import("@effect/ai/AiInput").ToolMessage, import("effect/ParseResult").ParseError, never>;
|
|
50
|
+
export declare const encode: (a: import("@effect/ai/AiInput").UserMessage | import("@effect/ai/AiInput").AssistantMessage | import("@effect/ai/AiInput").ToolMessage, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect<{
|
|
51
|
+
readonly _tag: "UserMessage";
|
|
52
|
+
readonly parts: readonly ({
|
|
53
|
+
readonly _tag: "TextPart";
|
|
54
|
+
readonly text: string;
|
|
55
|
+
} | {
|
|
56
|
+
readonly _tag: "ImagePart";
|
|
57
|
+
readonly data: string;
|
|
58
|
+
readonly mediaType?: string | undefined;
|
|
59
|
+
} | {
|
|
60
|
+
readonly _tag: "ImageUrlPart";
|
|
61
|
+
readonly url: string;
|
|
62
|
+
} | {
|
|
63
|
+
readonly _tag: "FilePart";
|
|
64
|
+
readonly data: string;
|
|
65
|
+
readonly name?: string | undefined;
|
|
66
|
+
readonly mediaType?: string | undefined;
|
|
67
|
+
} | {
|
|
68
|
+
readonly _tag: "FileUrlPart";
|
|
69
|
+
readonly url: string;
|
|
70
|
+
})[];
|
|
71
|
+
readonly userName?: string | undefined;
|
|
72
|
+
} | {
|
|
73
|
+
readonly _tag: "AssistantMessage";
|
|
74
|
+
readonly parts: readonly ({
|
|
75
|
+
readonly _tag: "TextPart";
|
|
76
|
+
readonly text: string;
|
|
77
|
+
} | {
|
|
78
|
+
readonly _tag: "ReasoningPart";
|
|
79
|
+
readonly reasoningText: string;
|
|
80
|
+
readonly signature?: string | undefined;
|
|
81
|
+
} | {
|
|
82
|
+
readonly _tag: "RedactedReasoningPart";
|
|
83
|
+
readonly redactedText: string;
|
|
84
|
+
} | {
|
|
85
|
+
readonly _tag: "ToolCallPart";
|
|
86
|
+
readonly name: string;
|
|
87
|
+
readonly id: string;
|
|
88
|
+
readonly params: unknown;
|
|
89
|
+
})[];
|
|
90
|
+
} | {
|
|
91
|
+
readonly _tag: "ToolMessage";
|
|
92
|
+
readonly parts: readonly {
|
|
93
|
+
readonly _tag: "ToolCallResultPart";
|
|
94
|
+
readonly name: string;
|
|
95
|
+
readonly id: string;
|
|
96
|
+
readonly result: unknown;
|
|
97
|
+
}[];
|
|
98
|
+
}, import("effect/ParseResult").ParseError, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageCodec.js","sourceRoot":"","sources":["../../util/messageCodec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AAC5C,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
import type { ExtractE, ExtractR } from "./extract.ts";
|
|
3
|
+
export type TemplateStringsArrayLike = {
|
|
4
|
+
raw: readonly string[] | ArrayLike<string>;
|
|
5
|
+
};
|
|
6
|
+
export declare const raw: <Substitutions extends Array<unknown>>(template: TemplateStringsArrayLike, ...substitutions: Substitutions) => Effect.Effect<string, ExtractE<Substitutions[number]>, ExtractR<Substitutions[number]>>;
|
package/dist/util/raw.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
export const raw = Effect.fnUntraced(function* (template, ...substitutions) {
|
|
3
|
+
return String.raw(template, ...yield* Effect.all(substitutions.map((v) => Effect.isEffect(v) ? v : Effect.succeed(v))));
|
|
4
|
+
});
|
|
5
|
+
//# sourceMappingURL=raw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../util/raw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAQvC,MAAM,CAAC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC5C,QAAkC,EAClC,GAAG,aAA4B;IAQ/B,OAAO,MAAM,CAAC,GAAG,CACf,QAAQ,EACR,GAAG,KAAK,CAAC,CAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAIxF,CACH,CAAA;AACH,CAAC,CAAC,CAAA"}
|
package/index.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export * from "./Digest.ts"
|
|
1
2
|
export * from "./Envelope.ts"
|
|
2
|
-
export * as
|
|
3
|
+
export * as F from "./F/F.ts"
|
|
4
|
+
export * as L from "./L/L.ts"
|
|
3
5
|
export * from "./LEvent.ts"
|
|
4
|
-
export * as LPretty from "./LPretty.ts"
|
|
5
6
|
export * from "./Thread.ts"
|
|
7
|
+
export * as messageCodec from "./util/messageCodec.ts"
|
package/package.json
CHANGED
|
@@ -1,21 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "liminal",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/harrysolovay/liminal.git",
|
|
7
7
|
"directory": "liminal"
|
|
8
8
|
},
|
|
9
|
-
"peerDependencies": {
|
|
10
|
-
"@effect/ai": "^0.25.2",
|
|
11
|
-
"effect": "^3.17.7"
|
|
12
|
-
},
|
|
13
9
|
"exports": {
|
|
14
|
-
".":
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"bun": "./index.ts"
|
|
13
|
+
},
|
|
15
14
|
"./package.json": "./package.json",
|
|
16
|
-
"./patterns/Route":
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
"./patterns/Route": {
|
|
16
|
+
"import": "./dist/patterns/Route.js",
|
|
17
|
+
"bun": "./patterns/Route.ts"
|
|
18
|
+
},
|
|
19
|
+
"./patterns/Model": {
|
|
20
|
+
"import": "./dist/patterns/Model.js",
|
|
21
|
+
"bun": "./patterns/Model.ts"
|
|
22
|
+
},
|
|
23
|
+
"./patterns/Debate": {
|
|
24
|
+
"import": "./dist/patterns/Debate.js",
|
|
25
|
+
"bun": "./patterns/Debate.ts"
|
|
26
|
+
}
|
|
19
27
|
},
|
|
20
28
|
"description": "An Effect AI toolkit for conversation state management.",
|
|
21
29
|
"homepage": "https://liminal.land",
|
|
@@ -27,5 +35,9 @@
|
|
|
27
35
|
"provenance": true
|
|
28
36
|
},
|
|
29
37
|
"sideEffects": false,
|
|
30
|
-
"type": "module"
|
|
38
|
+
"type": "module",
|
|
39
|
+
"peerDependencies": {
|
|
40
|
+
"@effect/ai": "^0.25.2",
|
|
41
|
+
"effect": "^3.17.7"
|
|
42
|
+
}
|
|
31
43
|
}
|
package/patterns/Route.ts
CHANGED
|
@@ -9,13 +9,17 @@ export const byDescription: <R extends Record<string, Effect.All.EffectAny>>(rou
|
|
|
9
9
|
([R[keyof R]] extends [never] ? never : Effect.Effect.Context<R[keyof R]>) | Thread
|
|
10
10
|
> = Effect.fnUntraced(function*(routes) {
|
|
11
11
|
const descriptions = Object.keys(routes)
|
|
12
|
-
const description = yield* L.
|
|
12
|
+
const description = yield* L.line(
|
|
13
13
|
L.user`
|
|
14
14
|
Which of the following descriptions best matches the current conversation?
|
|
15
15
|
|
|
16
16
|
- ${descriptions.join("\n -")}
|
|
17
17
|
`,
|
|
18
18
|
L.assistantSchema(Schema.Literal(...descriptions)),
|
|
19
|
+
).pipe(
|
|
20
|
+
L.provide(
|
|
21
|
+
L.branch,
|
|
22
|
+
),
|
|
19
23
|
)
|
|
20
24
|
return yield* routes[description]!
|
|
21
25
|
})
|
package/util/Taggable.ts
CHANGED
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect"
|
|
2
|
+
import { YieldWrap } from "effect/Utils"
|
|
3
|
+
import type { ExtractE, ExtractR } from "./extract.ts"
|
|
4
|
+
import { raw, type TemplateStringsArrayLike } from "./raw.ts"
|
|
2
5
|
|
|
3
|
-
export type
|
|
4
|
-
|
|
5
|
-
...substitutions: L
|
|
6
|
-
) => Effect.Effect<
|
|
7
|
-
A,
|
|
8
|
-
([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Error<ExtractEffect<L>>) | E | E1,
|
|
9
|
-
([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Context<ExtractEffect<L>>) | R | R1
|
|
10
|
-
>
|
|
6
|
+
export type TaggableArg0 = TemplateStringsArrayLike | string | Effect.Effect<string, any, any>
|
|
7
|
+
export type TaggableArgRest<E0 extends TaggableArg0> = E0 extends TemplateStringsArrayLike ? Array<unknown> : []
|
|
11
8
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
export const normalize = Effect.fnUntraced(function*<
|
|
10
|
+
A0 extends TaggableArg0,
|
|
11
|
+
ARest extends TaggableArgRest<A0>,
|
|
12
|
+
>(
|
|
13
|
+
a0: A0,
|
|
14
|
+
...aRest: ARest
|
|
15
|
+
): Generator<
|
|
16
|
+
YieldWrap<
|
|
17
|
+
Effect.Effect<
|
|
18
|
+
string,
|
|
19
|
+
ExtractE<A0 | ARest[number]>,
|
|
20
|
+
ExtractR<A0 | ARest[number]>
|
|
21
|
+
>
|
|
22
|
+
>,
|
|
23
|
+
string,
|
|
24
|
+
never
|
|
25
|
+
> {
|
|
26
|
+
if (Effect.isEffect(a0)) {
|
|
27
|
+
return yield* a0
|
|
28
|
+
}
|
|
29
|
+
if (typeof a0 === "string") {
|
|
30
|
+
return a0
|
|
31
|
+
}
|
|
32
|
+
return yield* raw(a0, ...aRest)
|
|
33
|
+
})
|
package/util/extract.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect"
|
|
2
|
+
|
|
3
|
+
export type ExtractE<T> = [Extract<T, Effect.Effect<any, any, any>>] extends [never] ? never
|
|
4
|
+
: Effect.Effect.Error<Extract<T, Effect.Effect<any, any, any>>>
|
|
5
|
+
|
|
6
|
+
export type ExtractR<T> = [Extract<T, Effect.Effect<any, any, any>>] extends [never] ? never
|
|
7
|
+
: Effect.Effect.Context<Extract<T, Effect.Effect<any, any, any>>>
|
package/util/raw.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect"
|
|
2
|
+
import type { YieldWrap } from "effect/Utils"
|
|
3
|
+
import type { ExtractE, ExtractR } from "./extract.ts"
|
|
4
|
+
|
|
5
|
+
export type TemplateStringsArrayLike = {
|
|
6
|
+
raw: readonly string[] | ArrayLike<string>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const raw = Effect.fnUntraced(function*<Substitutions extends Array<unknown>>(
|
|
10
|
+
template: TemplateStringsArrayLike,
|
|
11
|
+
...substitutions: Substitutions
|
|
12
|
+
): Generator<
|
|
13
|
+
YieldWrap<
|
|
14
|
+
Effect.Effect<Array<string>, ExtractE<Substitutions[number]>, ExtractR<Substitutions[number]>>
|
|
15
|
+
>,
|
|
16
|
+
string,
|
|
17
|
+
never
|
|
18
|
+
> {
|
|
19
|
+
return String.raw(
|
|
20
|
+
template,
|
|
21
|
+
...yield* (Effect.all(substitutions.map((v) => Effect.isEffect(v) ? v : Effect.succeed(v))) as Effect.Effect<
|
|
22
|
+
Array<string>,
|
|
23
|
+
ExtractE<Substitutions[number]>,
|
|
24
|
+
ExtractR<Substitutions[number]>
|
|
25
|
+
>),
|
|
26
|
+
)
|
|
27
|
+
})
|
package/L/fqn.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect"
|
|
2
|
-
import * as Option from "effect/Option"
|
|
3
|
-
import { type Thread, ThreadFqn } from "../Thread.ts"
|
|
4
|
-
import { Self } from "./Self.ts"
|
|
5
|
-
|
|
6
|
-
export const fqn = (id: string): Effect.Effect<void, never, Thread> =>
|
|
7
|
-
Effect.map(Self, (thread) => {
|
|
8
|
-
thread.state.fqn = Option.some(ThreadFqn.make(id))
|
|
9
|
-
})
|
package/L/raw.ts
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect"
|
|
2
|
-
import { normalizeRaw } from "../util/normalizeRaw.ts"
|
|
3
|
-
import type { TaggableArg0 } from "../util/Taggable.ts"
|
|
4
|
-
|
|
5
|
-
export const raw: <
|
|
6
|
-
A0 extends TaggableArg0 | Effect.Effect<string | undefined, any, any>,
|
|
7
|
-
L extends Array<unknown>,
|
|
8
|
-
>(
|
|
9
|
-
a0: A0,
|
|
10
|
-
...aRest: L
|
|
11
|
-
) => Effect.Effect<
|
|
12
|
-
string | (undefined extends A0 ? undefined : never)
|
|
13
|
-
> = Effect.fnUntraced(function*(a0, ...aRest) {
|
|
14
|
-
const a0_: TaggableArg0 = Effect.isEffect(a0)
|
|
15
|
-
? yield* a0 as Effect.Effect<TaggableArg0>
|
|
16
|
-
: a0
|
|
17
|
-
if (!a0_) return undefined as never
|
|
18
|
-
const aRest_ = yield* Effect.all(
|
|
19
|
-
aRest.map((v) =>
|
|
20
|
-
Effect.isEffect(v)
|
|
21
|
-
? v
|
|
22
|
-
: Effect.succeed(v)
|
|
23
|
-
),
|
|
24
|
-
) as never as Effect.Effect<Array<unknown>>
|
|
25
|
-
return typeof a0_ === "string"
|
|
26
|
-
? aRest_.length === 0
|
|
27
|
-
? a0_
|
|
28
|
-
: [a0_, ...aRest_].join("")
|
|
29
|
-
: normalizeRaw(a0_, aRest_)
|
|
30
|
-
})
|
package/L/sequence.ts
DELETED
package/L/to.ts
DELETED
package/LPretty.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { Message } from "@effect/ai/AiInput"
|
|
2
|
-
import type { LEvent } from "./LEvent.ts"
|
|
3
|
-
|
|
4
|
-
const GRAY = "\x1b[90m"
|
|
5
|
-
const RESET = "\x1b[0m"
|
|
6
|
-
const BOLD = "\x1b[1m"
|
|
7
|
-
const GRAY_BG = "\x1b[47m"
|
|
8
|
-
|
|
9
|
-
export const event: (event: typeof LEvent["Type"]) => string = (event) => {
|
|
10
|
-
let text = `${GRAY}${event._tag}${RESET}`
|
|
11
|
-
switch (event._tag) {
|
|
12
|
-
case "MessagesAppended": {
|
|
13
|
-
text += event.messages.map(message).join("\n")
|
|
14
|
-
break
|
|
15
|
-
}
|
|
16
|
-
case "MessagesCleared": {
|
|
17
|
-
text += `\n${event.cleared.length} messages cleared.`
|
|
18
|
-
break
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return text
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export const message = ({ _tag, parts }: Message): string => {
|
|
25
|
-
let value = ""
|
|
26
|
-
for (const part of parts) {
|
|
27
|
-
value += `\n${BOLD}${_tag}\n${GRAY_BG}`
|
|
28
|
-
switch (part._tag) {
|
|
29
|
-
case "TextPart": {
|
|
30
|
-
value += `${part.text}`
|
|
31
|
-
break
|
|
32
|
-
}
|
|
33
|
-
default: {
|
|
34
|
-
value += `${JSON.stringify(part, null, 2)}`
|
|
35
|
-
break
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
value += RESET
|
|
39
|
-
}
|
|
40
|
-
return value
|
|
41
|
-
}
|
package/dist/L/Self.js
DELETED
package/dist/L/Self.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Self.js","sourceRoot":"","sources":["../../L/Self.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,MAAM,CAAC,MAAM,IAAI,GAAgC,OAAO,CAAC,UAAU,CAAS,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA"}
|
package/dist/L/fqn.d.ts
DELETED
package/dist/L/fqn.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import * as Option from "effect/Option";
|
|
3
|
-
import { ThreadFqn } from "../Thread.js";
|
|
4
|
-
import { Self } from "./Self.js";
|
|
5
|
-
export const fqn = (id) => Effect.map(Self, (thread) => {
|
|
6
|
-
thread.state.fqn = Option.some(ThreadFqn.make(id));
|
|
7
|
-
});
|
|
8
|
-
//# sourceMappingURL=fqn.js.map
|
package/dist/L/fqn.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fqn.js","sourceRoot":"","sources":["../../L/fqn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAe,SAAS,EAAE,MAAM,cAAc,CAAA;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAAU,EAAsC,EAAE,CACpE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;IAC1B,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AACpD,CAAC,CAAC,CAAA"}
|
package/dist/L/raw.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import type { TaggableArg0 } from "../util/Taggable.ts";
|
|
3
|
-
export declare const raw: <A0 extends TaggableArg0 | Effect.Effect<string | undefined, any, any>, L extends Array<unknown>>(a0: A0, ...aRest: L) => Effect.Effect<string | (undefined extends A0 ? undefined : never)>;
|
package/dist/L/raw.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect/Effect";
|
|
2
|
-
import { normalizeRaw } from "../util/normalizeRaw.js";
|
|
3
|
-
export const raw = Effect.fnUntraced(function* (a0, ...aRest) {
|
|
4
|
-
const a0_ = Effect.isEffect(a0)
|
|
5
|
-
? yield* a0
|
|
6
|
-
: a0;
|
|
7
|
-
if (!a0_)
|
|
8
|
-
return undefined;
|
|
9
|
-
const aRest_ = yield* Effect.all(aRest.map((v) => Effect.isEffect(v)
|
|
10
|
-
? v
|
|
11
|
-
: Effect.succeed(v)));
|
|
12
|
-
return typeof a0_ === "string"
|
|
13
|
-
? aRest_.length === 0
|
|
14
|
-
? a0_
|
|
15
|
-
: [a0_, ...aRest_].join("")
|
|
16
|
-
: normalizeRaw(a0_, aRest_);
|
|
17
|
-
});
|
|
18
|
-
//# sourceMappingURL=raw.js.map
|
package/dist/L/raw.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../L/raw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGtD,MAAM,CAAC,MAAM,GAAG,GAQZ,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,EAAE,EAAE,GAAG,KAAK;IAC1C,MAAM,GAAG,GAAiB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,EAAiC;QAC1C,CAAC,CAAC,EAAE,CAAA;IACN,IAAI,CAAC,GAAG;QAAE,OAAO,SAAkB,CAAA;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAC9B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACd,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CACtB,CACwC,CAAA;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ;QAC5B,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA"}
|
package/dist/L/sequence.d.ts
DELETED
package/dist/L/sequence.js
DELETED
package/dist/L/sequence.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../L/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,MAAM,CAAC,MAAM,QAAQ,GAAc,CAAC,GAAG,KAAK,EAAE,EAAE,CAC9C,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;IAChB,WAAW,EAAE,CAAC;CACf,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,GAAG,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAG,CAAU,CACnD,CAAA"}
|
package/dist/L/to.d.ts
DELETED
package/dist/L/to.js
DELETED
package/dist/L/to.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"to.js","sourceRoot":"","sources":["../../L/to.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAiB,EAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA"}
|
package/dist/L/userJson.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"userJson.js","sourceRoot":"","sources":["../../L/userJson.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,WAAW,EAAkB,MAAM,sBAAsB,CAAA;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,QAAQ,GAGqB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAE,MAAM;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACpF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAA,aAAa,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,UAAU,CAAA;AACxE,CAAC,CAAC,CAAA"}
|
package/dist/LPretty.d.ts
DELETED
package/dist/LPretty.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
const GRAY = "\x1b[90m";
|
|
2
|
-
const RESET = "\x1b[0m";
|
|
3
|
-
const BOLD = "\x1b[1m";
|
|
4
|
-
const GRAY_BG = "\x1b[47m";
|
|
5
|
-
export const event = (event) => {
|
|
6
|
-
let text = `${GRAY}${event._tag}${RESET}`;
|
|
7
|
-
switch (event._tag) {
|
|
8
|
-
case "MessagesAppended": {
|
|
9
|
-
text += event.messages.map(message).join("\n");
|
|
10
|
-
break;
|
|
11
|
-
}
|
|
12
|
-
case "MessagesCleared": {
|
|
13
|
-
text += `\n${event.cleared.length} messages cleared.`;
|
|
14
|
-
break;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return text;
|
|
18
|
-
};
|
|
19
|
-
export const message = ({ _tag, parts }) => {
|
|
20
|
-
let value = "";
|
|
21
|
-
for (const part of parts) {
|
|
22
|
-
value += `\n${BOLD}${_tag}\n${GRAY_BG}`;
|
|
23
|
-
switch (part._tag) {
|
|
24
|
-
case "TextPart": {
|
|
25
|
-
value += `${part.text}`;
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
default: {
|
|
29
|
-
value += `${JSON.stringify(part, null, 2)}`;
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
value += RESET;
|
|
34
|
-
}
|
|
35
|
-
return value;
|
|
36
|
-
};
|
|
37
|
-
//# sourceMappingURL=LPretty.js.map
|
package/dist/LPretty.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LPretty.js","sourceRoot":"","sources":["../LPretty.ts"],"names":[],"mappings":"AAGA,MAAM,IAAI,GAAG,UAAU,CAAA;AACvB,MAAM,KAAK,GAAG,SAAS,CAAA;AACvB,MAAM,IAAI,GAAG,SAAS,CAAA;AACtB,MAAM,OAAO,GAAG,UAAU,CAAA;AAE1B,MAAM,CAAC,MAAM,KAAK,GAA6C,CAAC,KAAK,EAAE,EAAE;IACvE,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAA;IACzC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAK;QACP,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO,CAAC,MAAM,oBAAoB,CAAA;YACrD,MAAK;QACP,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,EAAW,EAAU,EAAE;IAC1D,IAAI,KAAK,GAAG,EAAE,CAAA;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,OAAO,EAAE,CAAA;QACvC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,KAAK,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBACvB,MAAK;YACP,CAAC;YACD,OAAO,CAAC,CAAC,CAAC;gBACR,KAAK,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC3C,MAAK;YACP,CAAC;QACH,CAAC;QACD,KAAK,IAAI,KAAK,CAAA;IAChB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|
package/dist/util/Sequencer.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type * as Effect from "effect/Effect";
|
|
2
|
-
export interface Sequencer<Provides = never, Requires = never> {
|
|
3
|
-
<Arg extends Array<Effect.All.EffectAny>>(...steps: Arg): Effect.Effect<Arg extends [] ? void : Arg extends [...infer _0, infer L extends Effect.All.EffectAny] ? Effect.Effect.Success<L> : never, Effect.Effect.Error<Arg[number]>, Exclude<Effect.Effect.Context<Arg[number]>, Provides> | Requires>;
|
|
4
|
-
}
|
package/dist/util/Sequencer.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sequencer.js","sourceRoot":"","sources":["../../util/Sequencer.ts"],"names":[],"mappings":""}
|
package/util/Sequencer.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type * as Effect from "effect/Effect"
|
|
2
|
-
|
|
3
|
-
export interface Sequencer<Provides = never, Requires = never> {
|
|
4
|
-
<Arg extends Array<Effect.All.EffectAny>>(
|
|
5
|
-
...steps: Arg
|
|
6
|
-
): Effect.Effect<
|
|
7
|
-
Arg extends [] ? void
|
|
8
|
-
: Arg extends [...infer _0, infer L extends Effect.All.EffectAny] ? Effect.Effect.Success<L>
|
|
9
|
-
: never,
|
|
10
|
-
Effect.Effect.Error<Arg[number]>,
|
|
11
|
-
Exclude<Effect.Effect.Context<Arg[number]>, Provides> | Requires
|
|
12
|
-
>
|
|
13
|
-
}
|
|
File without changes
|