liminal 0.15.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.
Files changed (226) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Digest.ts +30 -0
  3. package/Envelope.ts +16 -0
  4. package/F/F.ts +1 -0
  5. package/{L.ts → L/L.ts} +9 -4
  6. package/L/append.ts +14 -0
  7. package/{assistant.ts → L/assistant.ts} +10 -9
  8. package/{assistantSchema.ts → L/assistantSchema.ts} +8 -7
  9. package/{assistantStream.ts → L/assistantStream.ts} +8 -11
  10. package/L/branch.ts +20 -0
  11. package/L/clear.ts +14 -0
  12. package/L/disable.ts +13 -0
  13. package/L/enable.ts +24 -0
  14. package/L/events.ts +11 -0
  15. package/L/json.ts +12 -0
  16. package/L/line.ts +22 -0
  17. package/{handle.ts → L/listen.ts} +6 -5
  18. package/L/messages.ts +10 -0
  19. package/L/prev.ts +4 -0
  20. package/L/provide.ts +10 -0
  21. package/L/self.ts +5 -0
  22. package/L/send.ts +56 -0
  23. package/L/system.ts +25 -0
  24. package/L/thread.ts +16 -0
  25. package/L/toolkit.ts +14 -0
  26. package/{user.test.ts → L/user.test.ts} +5 -2
  27. package/L/user.ts +32 -0
  28. package/LEvent.ts +23 -13
  29. package/Thread.ts +67 -0
  30. package/dist/Digest.d.ts +17 -0
  31. package/dist/Digest.js +7 -0
  32. package/dist/Digest.js.map +1 -0
  33. package/dist/Envelope.d.ts +13 -0
  34. package/dist/Envelope.js +2 -0
  35. package/dist/Envelope.js.map +1 -0
  36. package/dist/F/F.d.ts +1 -0
  37. package/dist/F/F.js +2 -0
  38. package/dist/F/F.js.map +1 -0
  39. package/dist/{L.d.ts → L/L.d.ts} +9 -4
  40. package/dist/{L.js → L/L.js} +9 -4
  41. package/dist/L/L.js.map +1 -0
  42. package/dist/{append.d.ts → L/append.d.ts} +3 -3
  43. package/dist/L/append.js +10 -0
  44. package/dist/L/append.js.map +1 -0
  45. package/dist/{assistant.d.ts → L/assistant.d.ts} +3 -3
  46. package/dist/{assistant.js → L/assistant.js} +8 -8
  47. package/dist/L/assistant.js.map +1 -0
  48. package/dist/{assistantSchema.d.ts → L/assistantSchema.d.ts} +4 -4
  49. package/dist/{assistantSchema.js → L/assistantSchema.js} +5 -5
  50. package/dist/L/assistantSchema.js.map +1 -0
  51. package/dist/{assistantStream.d.ts → L/assistantStream.d.ts} +3 -3
  52. package/dist/{assistantStream.js → L/assistantStream.js} +6 -6
  53. package/dist/L/assistantStream.js.map +1 -0
  54. package/dist/L/branch.d.ts +3 -0
  55. package/dist/L/branch.js +19 -0
  56. package/dist/L/branch.js.map +1 -0
  57. package/dist/{clear.d.ts → L/clear.d.ts} +3 -3
  58. package/dist/L/clear.js +12 -0
  59. package/dist/L/clear.js.map +1 -0
  60. package/dist/{disable.d.ts → L/disable.d.ts} +2 -2
  61. package/dist/L/disable.js +10 -0
  62. package/dist/L/disable.js.map +1 -0
  63. package/dist/{enable.d.ts → L/enable.d.ts} +2 -2
  64. package/dist/L/enable.js +13 -0
  65. package/dist/L/enable.js.map +1 -0
  66. package/dist/L/events.d.ts +5 -0
  67. package/dist/L/events.js +6 -0
  68. package/dist/L/events.js.map +1 -0
  69. package/dist/L/json.d.ts +5 -0
  70. package/dist/L/json.js +8 -0
  71. package/dist/L/json.js.map +1 -0
  72. package/dist/L/line.d.ts +5 -0
  73. package/dist/L/line.js +11 -0
  74. package/dist/L/line.js.map +1 -0
  75. package/dist/{handle.d.ts → L/listen.d.ts} +4 -4
  76. package/dist/{handle.js → L/listen.js} +4 -4
  77. package/dist/L/listen.js.map +1 -0
  78. package/dist/{messages.d.ts → L/messages.d.ts} +2 -2
  79. package/dist/L/messages.js +5 -0
  80. package/dist/L/messages.js.map +1 -0
  81. package/dist/L/prev.d.ts +5 -0
  82. package/dist/L/prev.js +5 -0
  83. package/dist/L/prev.js.map +1 -0
  84. package/dist/L/provide.d.ts +3 -0
  85. package/dist/L/provide.js +4 -0
  86. package/dist/L/provide.js.map +1 -0
  87. package/dist/L/self.d.ts +3 -0
  88. package/dist/L/self.js +4 -0
  89. package/dist/L/self.js.map +1 -0
  90. package/dist/L/send.d.ts +6 -0
  91. package/dist/L/send.js +34 -0
  92. package/dist/L/send.js.map +1 -0
  93. package/dist/L/system.d.ts +5 -0
  94. package/dist/L/system.js +14 -0
  95. package/dist/L/system.js.map +1 -0
  96. package/dist/L/thread.d.ts +3 -0
  97. package/dist/L/thread.js +15 -0
  98. package/dist/L/thread.js.map +1 -0
  99. package/dist/L/toolkit.d.ts +4 -0
  100. package/dist/L/toolkit.js +9 -0
  101. package/dist/L/toolkit.js.map +1 -0
  102. package/dist/L/user.d.ts +6 -0
  103. package/dist/{user.js → L/user.js} +3 -3
  104. package/dist/L/user.js.map +1 -0
  105. package/dist/L/user.test.js.map +1 -0
  106. package/dist/LEvent.d.ts +143 -15
  107. package/dist/LEvent.js +12 -9
  108. package/dist/LEvent.js.map +1 -1
  109. package/dist/Thread.d.ts +52 -0
  110. package/dist/Thread.js +32 -0
  111. package/dist/Thread.js.map +1 -0
  112. package/dist/index.d.ts +6 -3
  113. package/dist/index.js +6 -3
  114. package/dist/index.js.map +1 -1
  115. package/dist/patterns/Debate.d.ts +1 -0
  116. package/dist/patterns/Debate.js +3 -0
  117. package/dist/patterns/Debate.js.map +1 -0
  118. package/dist/patterns/Model.d.ts +6 -0
  119. package/dist/patterns/{coalesce_models.js → Model.js} +5 -6
  120. package/dist/patterns/Model.js.map +1 -0
  121. package/dist/patterns/Route.d.ts +3 -0
  122. package/dist/patterns/Route.js +14 -0
  123. package/dist/patterns/Route.js.map +1 -0
  124. package/dist/tsconfig.tsbuildinfo +1 -1
  125. package/dist/util/JsonValue.js.map +1 -1
  126. package/dist/util/NeverTool.d.ts +3 -0
  127. package/dist/util/NeverTool.js +3 -0
  128. package/dist/util/NeverTool.js.map +1 -0
  129. package/dist/util/Taggable.d.ts +5 -5
  130. package/dist/util/Taggable.js +10 -15
  131. package/dist/util/Taggable.js.map +1 -1
  132. package/dist/util/extract.d.ts +3 -0
  133. package/dist/util/extract.js +2 -0
  134. package/dist/util/extract.js.map +1 -0
  135. package/dist/util/messageCodec.d.ts +98 -0
  136. package/dist/util/messageCodec.js +5 -0
  137. package/dist/util/messageCodec.js.map +1 -0
  138. package/dist/util/{fixRaw.js → normalizeRaw.js} +1 -1
  139. package/dist/util/normalizeRaw.js.map +1 -0
  140. package/dist/util/prefix.d.ts +1 -0
  141. package/dist/util/prefix.js +2 -0
  142. package/dist/util/prefix.js.map +1 -0
  143. package/dist/util/raw.d.ts +6 -0
  144. package/dist/util/raw.js +5 -0
  145. package/dist/util/raw.js.map +1 -0
  146. package/index.ts +6 -3
  147. package/package.json +22 -9
  148. package/patterns/Debate.ts +2 -0
  149. package/patterns/{coalesce_models.ts → Model.ts} +6 -7
  150. package/patterns/{match_gist.ts → Route.ts} +11 -9
  151. package/util/JsonValue.ts +2 -2
  152. package/util/NeverTool.ts +10 -0
  153. package/util/Taggable.ts +27 -34
  154. package/util/extract.ts +7 -0
  155. package/util/messageCodec.ts +5 -0
  156. package/util/prefix.ts +1 -0
  157. package/util/raw.ts +27 -0
  158. package/LPretty.ts +0 -41
  159. package/Strand.ts +0 -49
  160. package/append.ts +0 -13
  161. package/branch.ts +0 -26
  162. package/clear.ts +0 -15
  163. package/disable.ts +0 -8
  164. package/dist/L.js.map +0 -1
  165. package/dist/LPretty.d.ts +0 -4
  166. package/dist/LPretty.js +0 -37
  167. package/dist/LPretty.js.map +0 -1
  168. package/dist/Strand.d.ts +0 -36
  169. package/dist/Strand.js +0 -18
  170. package/dist/Strand.js.map +0 -1
  171. package/dist/append.js +0 -10
  172. package/dist/append.js.map +0 -1
  173. package/dist/assistant.js.map +0 -1
  174. package/dist/assistantSchema.js.map +0 -1
  175. package/dist/assistantStream.js.map +0 -1
  176. package/dist/branch.d.ts +0 -4
  177. package/dist/branch.js +0 -18
  178. package/dist/branch.js.map +0 -1
  179. package/dist/clear.js +0 -14
  180. package/dist/clear.js.map +0 -1
  181. package/dist/disable.js +0 -7
  182. package/dist/disable.js.map +0 -1
  183. package/dist/enable.js +0 -6
  184. package/dist/enable.js.map +0 -1
  185. package/dist/events.d.ts +0 -5
  186. package/dist/events.js +0 -6
  187. package/dist/events.js.map +0 -1
  188. package/dist/handle.js.map +0 -1
  189. package/dist/messages.js +0 -5
  190. package/dist/messages.js.map +0 -1
  191. package/dist/patterns/coalesce_models.d.ts +0 -6
  192. package/dist/patterns/coalesce_models.js.map +0 -1
  193. package/dist/patterns/match_gist.d.ts +0 -3
  194. package/dist/patterns/match_gist.js +0 -16
  195. package/dist/patterns/match_gist.js.map +0 -1
  196. package/dist/sequence.d.ts +0 -2
  197. package/dist/sequence.js +0 -5
  198. package/dist/sequence.js.map +0 -1
  199. package/dist/strand_.d.ts +0 -4
  200. package/dist/strand_.js +0 -8
  201. package/dist/strand_.js.map +0 -1
  202. package/dist/system.d.ts +0 -5
  203. package/dist/system.js +0 -12
  204. package/dist/system.js.map +0 -1
  205. package/dist/user.d.ts +0 -4
  206. package/dist/user.js.map +0 -1
  207. package/dist/user.test.js.map +0 -1
  208. package/dist/userJson.d.ts +0 -6
  209. package/dist/userJson.js +0 -9
  210. package/dist/userJson.js.map +0 -1
  211. package/dist/util/Sequence.d.ts +0 -2
  212. package/dist/util/Sequence.js +0 -2
  213. package/dist/util/Sequence.js.map +0 -1
  214. package/dist/util/fixRaw.js.map +0 -1
  215. package/enable.ts +0 -15
  216. package/events.ts +0 -10
  217. package/messages.ts +0 -9
  218. package/sequence.ts +0 -9
  219. package/strand_.ts +0 -11
  220. package/system.ts +0 -12
  221. package/user.ts +0 -21
  222. package/userJson.ts +0 -14
  223. package/util/Sequence.ts +0 -11
  224. /package/dist/{user.test.d.ts → L/user.test.d.ts} +0 -0
  225. /package/dist/util/{fixRaw.d.ts → normalizeRaw.d.ts} +0 -0
  226. /package/util/{fixRaw.ts → normalizeRaw.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"JsonValue.js","sourceRoot":"","sources":["../../util/JsonValue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JsonValue.js","sourceRoot":"","sources":["../../util/JsonValue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import * as AiTool from "@effect/ai/AiTool";
2
+ import * as Schema from "effect/Schema";
3
+ export type NeverTool = AiTool.AiTool<string, AiTool.AnyStructSchema, Schema.Schema.Any, Schema.Schema.Any, never>;
@@ -0,0 +1,3 @@
1
+ import * as AiTool from "@effect/ai/AiTool";
2
+ import * as Schema from "effect/Schema";
3
+ //# sourceMappingURL=NeverTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NeverTool.js","sourceRoot":"","sources":["../../util/NeverTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
- export type Taggable<A, E, R> = <L extends Array<unknown>, E1 = never, R1 = never>(template?: TaggableArg0 | Effect.Effect<string | undefined, E1, R1>, ...substitutions: L) => Effect.Effect<A, ([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Error<ExtractEffect<L>>) | E | E1, ([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Context<ExtractEffect<L>>) | R | R1>;
3
- export type TaggableArg0 = TemplateStringsArray | string | undefined;
4
- type ExtractEffect<T extends Array<unknown>> = Extract<T[number], Effect.All.EffectAny>;
5
- export declare const normalize: <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)>;
6
- 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]>>;
@@ -1,18 +1,13 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { normalizeRaw } from "./fixRaw.js";
3
- export const normalize = 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_);
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);
17
12
  });
18
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;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAe1C,MAAM,CAAC,MAAM,SAAS,GAMoD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAC,EAAE,EAAE,KAAK;IAC7G,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,CAC+B,CAAA;IAClC,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"}
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,2 @@
1
+ import * as Effect from "effect/Effect";
2
+ //# sourceMappingURL=extract.js.map
@@ -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,5 @@
1
+ import { Message } from "@effect/ai/AiInput";
2
+ import * as Schema from "effect/Schema";
3
+ export const decode = Schema.decode(Message);
4
+ export const encode = Schema.encode(Message);
5
+ //# sourceMappingURL=messageCodec.js.map
@@ -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"}
@@ -72,4 +72,4 @@ export const normalizeTemplateStrings = (template) => {
72
72
  }
73
73
  return { raw };
74
74
  };
75
- //# sourceMappingURL=fixRaw.js.map
75
+ //# sourceMappingURL=normalizeRaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeRaw.js","sourceRoot":"","sources":["../../util/normalizeRaw.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const prefix: <K extends string>(key: K) => `liminal/${K}`;
@@ -0,0 +1,2 @@
1
+ export const prefix = (key) => `liminal/${key}`;
2
+ //# sourceMappingURL=prefix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefix.js","sourceRoot":"","sources":["../../util/prefix.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,MAAM,GAAG,CAAmB,GAAM,EAAE,EAAE,CAAC,WAAW,GAAG,EAAW,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]>>;
@@ -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,4 +1,7 @@
1
- export * as L from "./L.ts"
1
+ export * from "./Digest.ts"
2
+ export * from "./Envelope.ts"
3
+ export * as F from "./F/F.ts"
4
+ export * as L from "./L/L.ts"
2
5
  export * from "./LEvent.ts"
3
- export * as LPretty from "./LPretty.ts"
4
- export * from "./Strand.ts"
6
+ export * from "./Thread.ts"
7
+ export * as messageCodec from "./util/messageCodec.ts"
package/package.json CHANGED
@@ -1,20 +1,29 @@
1
1
  {
2
2
  "name": "liminal",
3
- "version": "0.15.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
- ".": "./index.ts",
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "bun": "./index.ts"
13
+ },
15
14
  "./package.json": "./package.json",
16
- "./patterns/coalesce_models": "./patterns/coalesce_models.ts",
17
- "./patterns/match_gist": "./patterns/match_gist.ts"
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
+ }
18
27
  },
19
28
  "description": "An Effect AI toolkit for conversation state management.",
20
29
  "homepage": "https://liminal.land",
@@ -26,5 +35,9 @@
26
35
  "provenance": true
27
36
  },
28
37
  "sideEffects": false,
29
- "type": "module"
38
+ "type": "module",
39
+ "peerDependencies": {
40
+ "@effect/ai": "^0.25.2",
41
+ "effect": "^3.17.7"
42
+ }
30
43
  }
@@ -0,0 +1,2 @@
1
+ // TODO: utilize `Entity` and `Relation`
2
+ export {}
@@ -2,29 +2,28 @@ import type { AiError } from "@effect/ai/AiError"
2
2
  import type { AiLanguageModel } from "@effect/ai/AiLanguageModel"
3
3
  import type { AiModel } from "@effect/ai/AiModel"
4
4
  import * as Effect from "effect/Effect"
5
- import { assistant } from "../assistant.ts"
6
- import type { Strand } from "../Strand.ts"
7
- import { user } from "../user.ts"
5
+ import * as L from "../L/L.ts"
6
+ import type { Thread } from "../Thread.ts"
8
7
 
9
- export const coalesceModels: <E, R, M extends Array<AiModel<any, any>>>(
8
+ export const coalesce: <E, R, M extends Array<AiModel<any, any>>>(
10
9
  effect: Effect.Effect<any, E, R>,
11
10
  models: M,
12
11
  ) => Effect.Effect<
13
12
  string,
14
13
  AiError | E,
15
- Strand | AiLanguageModel | ([M[number]] extends [AiModel<any, infer R>] ? R : never)
14
+ Thread | AiLanguageModel | ([M[number]] extends [AiModel<any, infer R>] ? R : never)
16
15
  > = Effect.fn(
17
16
  function*(effect, models) {
18
17
  const all = yield* Effect.all(models.map((model) => effect.pipe(Effect.provide(model)))) as Effect.Effect<
19
18
  Array<unknown>
20
19
  >
21
- yield* user`
20
+ yield* L.user`
22
21
  Coalesce the following items into a single item:
23
22
 
24
23
  ---
25
24
 
26
25
  ${all.map((item) => JSON.stringify(item, null, 2)).join("\n\n---")}
27
26
  `
28
- return yield* assistant
27
+ return yield* L.assistant
29
28
  },
30
29
  )
@@ -1,23 +1,25 @@
1
1
  import * as Effect from "effect/Effect"
2
2
  import * as Schema from "effect/Schema"
3
- import { assistantSchema } from "../assistantSchema.ts"
4
- import { branch } from "../branch.ts"
5
- import { Strand } from "../Strand.ts"
6
- import { user } from "../user.ts"
3
+ import * as L from "../L/L.ts"
4
+ import { Thread } from "../Thread.ts"
7
5
 
8
- export const matchGist: <R extends Record<string, Effect.All.EffectAny>>(routes: R) => Effect.Effect<
6
+ export const byDescription: <R extends Record<string, Effect.All.EffectAny>>(routes: R) => Effect.Effect<
9
7
  Effect.Effect.Success<R[keyof R]>,
10
8
  ([R[keyof R]] extends [never] ? never : Effect.Effect.Error<R[keyof R]>),
11
- ([R[keyof R]] extends [never] ? never : Effect.Effect.Context<R[keyof R]>) | Strand
9
+ ([R[keyof R]] extends [never] ? never : Effect.Effect.Context<R[keyof R]>) | Thread
12
10
  > = Effect.fnUntraced(function*(routes) {
13
11
  const descriptions = Object.keys(routes)
14
- const description = yield* branch(
15
- user`
12
+ const description = yield* L.line(
13
+ L.user`
16
14
  Which of the following descriptions best matches the current conversation?
17
15
 
18
16
  - ${descriptions.join("\n -")}
19
17
  `,
20
- assistantSchema(Schema.Literal(...descriptions)),
18
+ L.assistantSchema(Schema.Literal(...descriptions)),
19
+ ).pipe(
20
+ L.provide(
21
+ L.branch,
22
+ ),
21
23
  )
22
24
  return yield* routes[description]!
23
25
  })
package/util/JsonValue.ts CHANGED
@@ -42,10 +42,10 @@ class EncodeJsoncContext {
42
42
  })
43
43
  }
44
44
 
45
- const encodeAst: (
45
+ const encodeAst = (
46
46
  ast: SchemaAST.AST,
47
47
  refinement?: SchemaAST.Refinement,
48
- ) => (value: unknown, ctx: EncodeJsoncContext) => Effect.Effect<string> = (ast, refinement) => {
48
+ ): (value: unknown, ctx: EncodeJsoncContext) => Effect.Effect<string> => {
49
49
  switch (ast._tag) {
50
50
  case "TypeLiteral": {
51
51
  return Effect.fnUntraced(function*(value, ctx) {
@@ -0,0 +1,10 @@
1
+ import * as AiTool from "@effect/ai/AiTool"
2
+ import * as Schema from "effect/Schema"
3
+
4
+ export type NeverTool = AiTool.AiTool<
5
+ string,
6
+ AiTool.AnyStructSchema,
7
+ Schema.Schema.Any,
8
+ Schema.Schema.Any,
9
+ never
10
+ >
package/util/Taggable.ts CHANGED
@@ -1,40 +1,33 @@
1
1
  import * as Effect from "effect/Effect"
2
- import { normalizeRaw } from "./fixRaw.ts"
2
+ import { YieldWrap } from "effect/Utils"
3
+ import type { ExtractE, ExtractR } from "./extract.ts"
4
+ import { raw, type TemplateStringsArrayLike } from "./raw.ts"
3
5
 
4
- export type Taggable<A, E, R> = <L extends Array<unknown>, E1 = never, R1 = never>(
5
- template?: TaggableArg0 | Effect.Effect<string | undefined, E1, R1>,
6
- ...substitutions: L
7
- ) => Effect.Effect<
8
- A,
9
- ([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Error<ExtractEffect<L>>) | E | E1,
10
- ([ExtractEffect<L>] extends [never] ? never : Effect.Effect.Context<ExtractEffect<L>>) | R | R1
11
- >
6
+ export type TaggableArg0 = TemplateStringsArrayLike | string | Effect.Effect<string, any, any>
7
+ export type TaggableArgRest<E0 extends TaggableArg0> = E0 extends TemplateStringsArrayLike ? Array<unknown> : []
12
8
 
13
- export type TaggableArg0 = TemplateStringsArray | string | undefined
14
-
15
- type ExtractEffect<T extends Array<unknown>> = Extract<T[number], Effect.All.EffectAny>
16
-
17
- export const normalize: <
18
- A0 extends TaggableArg0 | Effect.Effect<string | undefined, any, any>,
19
- L extends Array<unknown>,
9
+ export const normalize = Effect.fnUntraced(function*<
10
+ A0 extends TaggableArg0,
11
+ ARest extends TaggableArgRest<A0>,
20
12
  >(
21
13
  a0: A0,
22
- aRest: L,
23
- ) => Effect.Effect<string | (undefined extends A0 ? undefined : never)> = Effect.fnUntraced(function*(a0, aRest) {
24
- const a0_: TaggableArg0 = Effect.isEffect(a0)
25
- ? yield* a0 as Effect.Effect<TaggableArg0>
26
- : a0
27
- if (!a0_) return undefined as never
28
- const aRest_ = yield* Effect.all(
29
- aRest.map((v) =>
30
- Effect.isEffect(v)
31
- ? v
32
- : Effect.succeed(v)
33
- ),
34
- ) as Effect.Effect<Array<unknown>>
35
- return typeof a0_ === "string"
36
- ? aRest_.length === 0
37
- ? a0_
38
- : [a0_, ...aRest_].join("")
39
- : normalizeRaw(a0_, aRest_)
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)
40
33
  })
@@ -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>>>
@@ -0,0 +1,5 @@
1
+ import { Message } from "@effect/ai/AiInput"
2
+ import * as Schema from "effect/Schema"
3
+
4
+ export const decode = Schema.decode(Message)
5
+ export const encode = Schema.encode(Message)
package/util/prefix.ts ADDED
@@ -0,0 +1 @@
1
+ export const prefix = <K extends string>(key: K) => `liminal/${key}` as const
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/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/Strand.ts DELETED
@@ -1,49 +0,0 @@
1
- import type { Message } from "@effect/ai/AiInput"
2
- import type * as AiTool from "@effect/ai/AiTool"
3
- import * as Context from "effect/Context"
4
- import * as Effect from "effect/Effect"
5
- import * as Layer from "effect/Layer"
6
- import * as Option from "effect/Option"
7
- import * as PubSub from "effect/PubSub"
8
- import type { Schema } from "effect/Schema"
9
- import type { LEvent } from "./LEvent.ts"
10
-
11
- export declare namespace Strand {
12
- export interface Service {
13
- /** The parent strand. */
14
- readonly parent: Option.Option<Service>
15
- /** The pubsub with which the current strand's events are emitted. */
16
- readonly events: PubSub.PubSub<LEvent>
17
- /** The current system prompt to be passed along to the model. */
18
- system: Option.Option<string>
19
- /** The list of messages that the model uses to infer the next message. */
20
- messages: Array<Message>
21
- /** The tools available to the model. */
22
- tools: Set<AiTool.AiTool<string, AiTool.AnyStructSchema, Schema.Any, Schema.Any, never>>
23
- }
24
- }
25
-
26
- /** A context tag that denotes the boundary of a conversation isolate. */
27
- export class Strand extends Context.Tag("liminal/Strand")<Strand, Strand.Service>() {
28
- static layer: <T extends AiTool.Any = never>(init?: {
29
- system?: string | undefined
30
- messages?: Array<Message> | undefined
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 } = {}) =>
37
- Layer.effect(
38
- Strand,
39
- Effect.gen(function*() {
40
- return Strand.of({
41
- parent: yield* Effect.serviceOption(Strand),
42
- events: yield* PubSub.unbounded<LEvent>(),
43
- system: Option.fromNullable(system),
44
- messages: [...messages ?? []],
45
- tools: new Set(tools as never ?? []),
46
- })
47
- }),
48
- )
49
- }