liminal 0.5.17 → 0.6.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 (222) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/Context.ts +11 -47
  3. package/L.ts +4 -0
  4. package/LEvent.ts +20 -53
  5. package/_emit.ts +16 -0
  6. package/assistant.ts +53 -0
  7. package/dist/Context.d.ts +15 -30
  8. package/dist/Context.js +9 -22
  9. package/dist/Context.js.map +1 -1
  10. package/dist/L.d.ts +4 -0
  11. package/dist/L.js +5 -0
  12. package/dist/L.js.map +1 -0
  13. package/dist/LEvent.d.ts +29 -62
  14. package/dist/LEvent.js +14 -46
  15. package/dist/LEvent.js.map +1 -1
  16. package/dist/_emit.d.ts +2 -0
  17. package/dist/_emit.js +16 -0
  18. package/dist/_emit.js.map +1 -0
  19. package/dist/assistant.d.ts +8 -0
  20. package/dist/assistant.js +46 -0
  21. package/dist/assistant.js.map +1 -0
  22. package/dist/index.d.ts +2 -13
  23. package/dist/index.js +2 -13
  24. package/dist/index.js.map +1 -1
  25. package/dist/messages.d.ts +4 -0
  26. package/dist/messages.js +4 -0
  27. package/dist/messages.js.map +1 -0
  28. package/dist/set.d.ts +4 -0
  29. package/dist/set.js +9 -0
  30. package/dist/set.js.map +1 -0
  31. package/dist/strand.d.ts +16 -0
  32. package/dist/strand.js +16 -0
  33. package/dist/strand.js.map +1 -0
  34. package/dist/todo.test.js +3 -0
  35. package/dist/todo.test.js.map +1 -0
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/dist/user.d.ts +6 -0
  38. package/dist/user.js +18 -0
  39. package/dist/user.js.map +1 -0
  40. package/dist/util/JSONValue.d.ts +0 -3
  41. package/dist/util/JSONValue.js +1 -31
  42. package/dist/util/JSONValue.js.map +1 -1
  43. package/index.ts +2 -13
  44. package/messages.ts +5 -0
  45. package/package.json +4 -3
  46. package/set.ts +10 -0
  47. package/strand.ts +38 -0
  48. package/todo.test.ts +3 -0
  49. package/user.ts +24 -0
  50. package/util/JSONValue.ts +0 -30
  51. package/Adapter.ts +0 -27
  52. package/AdapterRegistry.ts +0 -78
  53. package/Config.ts +0 -13
  54. package/Definition.ts +0 -48
  55. package/EventBase.ts +0 -23
  56. package/Handler.ts +0 -4
  57. package/L/L.ts +0 -24
  58. package/L/all.ts +0 -39
  59. package/L/assistant.ts +0 -28
  60. package/L/catch.ts +0 -38
  61. package/L/continuation.ts +0 -14
  62. package/L/emit.ts +0 -16
  63. package/L/focus.ts +0 -17
  64. package/L/infer.ts +0 -34
  65. package/L/message.ts +0 -16
  66. package/L/reflect.ts +0 -13
  67. package/L/run.ts +0 -29
  68. package/L/schema/_schema_common.ts +0 -30
  69. package/L/schema/anyOf.ts +0 -10
  70. package/L/schema/array.ts +0 -13
  71. package/L/schema/boolean.ts +0 -8
  72. package/L/schema/const.ts +0 -18
  73. package/L/schema/enum.ts +0 -18
  74. package/L/schema/integer.ts +0 -6
  75. package/L/schema/null.ts +0 -8
  76. package/L/schema/number.ts +0 -8
  77. package/L/schema/object.ts +0 -21
  78. package/L/schema/string.ts +0 -11
  79. package/L/strand.ts +0 -22
  80. package/L/stream.ts +0 -16
  81. package/L/system.ts +0 -19
  82. package/L/user.ts +0 -19
  83. package/LiminalAssertionError.ts +0 -19
  84. package/Message.ts +0 -16
  85. package/Rune.test.ts +0 -5
  86. package/Rune.ts +0 -60
  87. package/Schema.ts +0 -185
  88. package/Strand.ts +0 -284
  89. package/Tool.ts +0 -26
  90. package/TypeAdapter.ts +0 -3
  91. package/dist/Adapter.d.ts +0 -18
  92. package/dist/Adapter.js +0 -13
  93. package/dist/Adapter.js.map +0 -1
  94. package/dist/AdapterRegistry.d.ts +0 -27
  95. package/dist/AdapterRegistry.js +0 -62
  96. package/dist/AdapterRegistry.js.map +0 -1
  97. package/dist/Config.d.ts +0 -12
  98. package/dist/Config.js +0 -2
  99. package/dist/Config.js.map +0 -1
  100. package/dist/Definition.d.ts +0 -24
  101. package/dist/Definition.js +0 -29
  102. package/dist/Definition.js.map +0 -1
  103. package/dist/EventBase.d.ts +0 -11
  104. package/dist/EventBase.js +0 -16
  105. package/dist/EventBase.js.map +0 -1
  106. package/dist/Handler.d.ts +0 -3
  107. package/dist/Handler.js +0 -2
  108. package/dist/Handler.js.map +0 -1
  109. package/dist/L/L.d.ts +0 -24
  110. package/dist/L/L.js +0 -25
  111. package/dist/L/L.js.map +0 -1
  112. package/dist/L/all.d.ts +0 -14
  113. package/dist/L/all.js +0 -20
  114. package/dist/L/all.js.map +0 -1
  115. package/dist/L/assistant.d.ts +0 -11
  116. package/dist/L/assistant.js +0 -15
  117. package/dist/L/assistant.js.map +0 -1
  118. package/dist/L/catch.d.ts +0 -16
  119. package/dist/L/catch.js +0 -25
  120. package/dist/L/catch.js.map +0 -1
  121. package/dist/L/continuation.d.ts +0 -4
  122. package/dist/L/continuation.js +0 -13
  123. package/dist/L/continuation.js.map +0 -1
  124. package/dist/L/emit.d.ts +0 -7
  125. package/dist/L/emit.js +0 -15
  126. package/dist/L/emit.js.map +0 -1
  127. package/dist/L/focus.d.ts +0 -8
  128. package/dist/L/focus.js +0 -14
  129. package/dist/L/focus.js.map +0 -1
  130. package/dist/L/infer.d.ts +0 -8
  131. package/dist/L/infer.js +0 -30
  132. package/dist/L/infer.js.map +0 -1
  133. package/dist/L/message.d.ts +0 -8
  134. package/dist/L/message.js +0 -14
  135. package/dist/L/message.js.map +0 -1
  136. package/dist/L/reflect.d.ts +0 -5
  137. package/dist/L/reflect.js +0 -11
  138. package/dist/L/reflect.js.map +0 -1
  139. package/dist/L/run.d.ts +0 -14
  140. package/dist/L/run.js +0 -16
  141. package/dist/L/run.js.map +0 -1
  142. package/dist/L/schema/_schema_common.d.ts +0 -6
  143. package/dist/L/schema/_schema_common.js +0 -20
  144. package/dist/L/schema/_schema_common.js.map +0 -1
  145. package/dist/L/schema/anyOf.d.ts +0 -5
  146. package/dist/L/schema/anyOf.js +0 -5
  147. package/dist/L/schema/anyOf.js.map +0 -1
  148. package/dist/L/schema/array.d.ts +0 -5
  149. package/dist/L/schema/array.js +0 -8
  150. package/dist/L/schema/array.js.map +0 -1
  151. package/dist/L/schema/boolean.d.ts +0 -6
  152. package/dist/L/schema/boolean.js +0 -4
  153. package/dist/L/schema/boolean.js.map +0 -1
  154. package/dist/L/schema/const.d.ts +0 -8
  155. package/dist/L/schema/const.js +0 -10
  156. package/dist/L/schema/const.js.map +0 -1
  157. package/dist/L/schema/enum.d.ts +0 -8
  158. package/dist/L/schema/enum.js +0 -10
  159. package/dist/L/schema/enum.js.map +0 -1
  160. package/dist/L/schema/integer.d.ts +0 -5
  161. package/dist/L/schema/integer.js +0 -3
  162. package/dist/L/schema/integer.js.map +0 -1
  163. package/dist/L/schema/null.d.ts +0 -6
  164. package/dist/L/schema/null.js +0 -4
  165. package/dist/L/schema/null.js.map +0 -1
  166. package/dist/L/schema/number.d.ts +0 -6
  167. package/dist/L/schema/number.js +0 -4
  168. package/dist/L/schema/number.js.map +0 -1
  169. package/dist/L/schema/object.d.ts +0 -9
  170. package/dist/L/schema/object.js +0 -12
  171. package/dist/L/schema/object.js.map +0 -1
  172. package/dist/L/schema/string.d.ts +0 -8
  173. package/dist/L/schema/string.js +0 -4
  174. package/dist/L/schema/string.js.map +0 -1
  175. package/dist/L/strand.d.ts +0 -9
  176. package/dist/L/strand.js +0 -16
  177. package/dist/L/strand.js.map +0 -1
  178. package/dist/L/stream.d.ts +0 -4
  179. package/dist/L/stream.js +0 -15
  180. package/dist/L/stream.js.map +0 -1
  181. package/dist/L/system.d.ts +0 -4
  182. package/dist/L/system.js +0 -9
  183. package/dist/L/system.js.map +0 -1
  184. package/dist/L/user.d.ts +0 -4
  185. package/dist/L/user.js +0 -9
  186. package/dist/L/user.js.map +0 -1
  187. package/dist/LiminalAssertionError.d.ts +0 -8
  188. package/dist/LiminalAssertionError.js +0 -20
  189. package/dist/LiminalAssertionError.js.map +0 -1
  190. package/dist/Message.d.ts +0 -14
  191. package/dist/Message.js +0 -2
  192. package/dist/Message.js.map +0 -1
  193. package/dist/Rune.d.ts +0 -46
  194. package/dist/Rune.js +0 -11
  195. package/dist/Rune.js.map +0 -1
  196. package/dist/Rune.test.js +0 -5
  197. package/dist/Rune.test.js.map +0 -1
  198. package/dist/Schema.d.ts +0 -46
  199. package/dist/Schema.js +0 -130
  200. package/dist/Schema.js.map +0 -1
  201. package/dist/Strand.d.ts +0 -81
  202. package/dist/Strand.js +0 -200
  203. package/dist/Strand.js.map +0 -1
  204. package/dist/Tool.d.ts +0 -10
  205. package/dist/Tool.js +0 -19
  206. package/dist/Tool.js.map +0 -1
  207. package/dist/TypeAdapter.d.ts +0 -1
  208. package/dist/TypeAdapter.js +0 -3
  209. package/dist/TypeAdapter.js.map +0 -1
  210. package/dist/errors.d.ts +0 -9
  211. package/dist/errors.js +0 -11
  212. package/dist/errors.js.map +0 -1
  213. package/dist/util/EnsureNarrow.d.ts +0 -1
  214. package/dist/util/EnsureNarrow.js +0 -2
  215. package/dist/util/EnsureNarrow.js.map +0 -1
  216. package/dist/util/attachCustomInspect.d.ts +0 -1
  217. package/dist/util/attachCustomInspect.js +0 -11
  218. package/dist/util/attachCustomInspect.js.map +0 -1
  219. package/errors.ts +0 -12
  220. package/util/EnsureNarrow.ts +0 -1
  221. package/util/attachCustomInspect.ts +0 -14
  222. /package/dist/{Rune.test.d.ts → todo.test.d.ts} +0 -0
package/dist/L/system.js DELETED
@@ -1,9 +0,0 @@
1
- import { fixTemplateStrings } from "../util/fixTemplateStrings.js";
2
- import { isTemplateStringsArray } from "../util/isTemplateStringsArray.js";
3
- import { message } from "./message.js";
4
- export function system(e0, ...rest) {
5
- return message("system", [{
6
- part: isTemplateStringsArray(e0) ? String.raw(fixTemplateStrings(e0), ...rest) : e0,
7
- }]);
8
- }
9
- //# sourceMappingURL=system.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAOtC,MAAM,UAAU,MAAM,CACpB,EAAiC,EACjC,GAAG,IAA4B;IAE/B,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SACpF,CAAC,CAAC,CAAA;AACL,CAAC"}
package/dist/L/user.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { LEvent } from "../LEvent.ts";
2
- import type { Rune } from "../Rune.ts";
3
- export declare function user(template: TemplateStringsArray, ...substitutions: Array<number | string>): Generator<Rune<LEvent>, void>;
4
- export declare function user(value: string): Generator<Rune<LEvent>, void>;
package/dist/L/user.js DELETED
@@ -1,9 +0,0 @@
1
- import { fixTemplateStrings } from "../util/fixTemplateStrings.js";
2
- import { isTemplateStringsArray } from "../util/isTemplateStringsArray.js";
3
- import { message } from "./message.js";
4
- export function user(e0, ...rest) {
5
- return message("user", [{
6
- part: isTemplateStringsArray(e0) ? String.raw(fixTemplateStrings(e0), ...rest) : e0,
7
- }]);
8
- }
9
- //# sourceMappingURL=user.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAOtC,MAAM,UAAU,IAAI,CAClB,EAAiC,EACjC,GAAG,IAA4B;IAE/B,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SACpF,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -1,8 +0,0 @@
1
- export declare class LiminalAssertionError extends Error {
2
- readonly name = "LiminalAssertionError";
3
- }
4
- export declare namespace LiminalAssertionError {
5
- function assert(expr: unknown, msg?: string): asserts expr;
6
- function unimplemented(): never;
7
- function unreachable(): never;
8
- }
@@ -1,20 +0,0 @@
1
- export class LiminalAssertionError extends Error {
2
- name = "LiminalAssertionError";
3
- }
4
- (function (LiminalAssertionError) {
5
- function assert(expr, msg = "") {
6
- if (!expr) {
7
- throw new LiminalAssertionError(msg);
8
- }
9
- }
10
- LiminalAssertionError.assert = assert;
11
- function unimplemented() {
12
- throw new LiminalAssertionError();
13
- }
14
- LiminalAssertionError.unimplemented = unimplemented;
15
- function unreachable() {
16
- throw new LiminalAssertionError();
17
- }
18
- LiminalAssertionError.unreachable = unreachable;
19
- })(LiminalAssertionError || (LiminalAssertionError = {}));
20
- //# sourceMappingURL=LiminalAssertionError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LiminalAssertionError.js","sourceRoot":"","sources":["../LiminalAssertionError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC5B,IAAI,GAAG,uBAAuB,CAAA;CACjD;AAED,WAAiB,qBAAqB;IACpC,SAAgB,MAAM,CAAC,IAAa,EAAE,GAAG,GAAG,EAAE;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAJe,4BAAM,SAIrB,CAAA;IAED,SAAgB,aAAa;QAC3B,MAAM,IAAI,qBAAqB,EAAE,CAAA;IACnC,CAAC;IAFe,mCAAa,gBAE5B,CAAA;IAED,SAAgB,WAAW;QACzB,MAAM,IAAI,qBAAqB,EAAE,CAAA;IACnC,CAAC;IAFe,iCAAW,cAE1B,CAAA;AACH,CAAC,EAdgB,qBAAqB,KAArB,qBAAqB,QAcrC"}
package/dist/Message.d.ts DELETED
@@ -1,14 +0,0 @@
1
- export interface Message {
2
- readonly role: MessageRole;
3
- readonly parts: Array<Content>;
4
- }
5
- export type MessageRole = "system" | "user" | "assistant";
6
- export type Content = {
7
- readonly part: string;
8
- readonly alt?: never;
9
- readonly mime?: never;
10
- } | {
11
- readonly part: URL;
12
- readonly alt: string;
13
- readonly mime?: string;
14
- };
package/dist/Message.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Message.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Message.js","sourceRoot":"","sources":["../Message.ts"],"names":[],"mappings":""}
package/dist/Rune.d.ts DELETED
@@ -1,46 +0,0 @@
1
- import type { Context } from "./Context.ts";
2
- import type { Definition } from "./Definition.ts";
3
- /**
4
- * `Rune` represents a computational unit within a Strand execution.
5
- * It is a specialized protocol for expressing different kinds of operations
6
- * that can be yielded from generator functions to control message state
7
- * and concurrency within the Liminal runtime.
8
- * @template E The event type this Rune can handle
9
- */
10
- export interface Rune<E> {
11
- [RuneKey]: true;
12
- instruction: RuneInstruction<E>;
13
- }
14
- export type RuneInstruction<E> = RuneInstruction.Continue | RuneInstruction.Emit<E> | RuneInstruction.Reflect | RuneInstruction.CreateChild;
15
- export declare namespace RuneInstruction {
16
- /** Tells the runtime to call this function and and pass the result to the next iteration. */
17
- interface Continue {
18
- kind: "continue";
19
- debug: string;
20
- f: () => any;
21
- }
22
- /** Dispatch an event to the registered handler. */
23
- interface Emit<E> {
24
- kind: "emit";
25
- event: E;
26
- }
27
- /** Tells the runtime to provide a reference to the current strand */
28
- interface Reflect {
29
- kind: "reflect";
30
- }
31
- /** Creates a nested execution context with its own definition. */
32
- interface CreateChild {
33
- kind: "create_child";
34
- definition: Definition;
35
- context?: Context | undefined;
36
- }
37
- }
38
- export declare namespace Rune {
39
- /** Extract the event type from a Rune type. */
40
- type E<X extends Rune<any>> = X extends Rune<infer E> ? E : never;
41
- /** Type guard to check if a value is a Rune. */
42
- function is(value: unknown): value is Rune<any>;
43
- }
44
- /** Symbol used to identify Rune objects. */
45
- export declare const RuneKey: unique symbol;
46
- export type RuneKey = typeof RuneKey;
package/dist/Rune.js DELETED
@@ -1,11 +0,0 @@
1
- export var Rune;
2
- (function (Rune) {
3
- /** Type guard to check if a value is a Rune. */
4
- function is(value) {
5
- return typeof value === "object" && value !== null && RuneKey in value;
6
- }
7
- Rune.is = is;
8
- })(Rune || (Rune = {}));
9
- /** Symbol used to identify Rune objects. */
10
- export const RuneKey = Symbol.for("liminal/RuneKey");
11
- //# sourceMappingURL=Rune.js.map
package/dist/Rune.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Rune.js","sourceRoot":"","sources":["../Rune.ts"],"names":[],"mappings":"AA+CA,MAAM,KAAW,IAAI,CAQpB;AARD,WAAiB,IAAI;IAInB,gDAAgD;IAChD,SAAgB,EAAE,CAAC,KAAc;QAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;IACxE,CAAC;IAFe,OAAE,KAEjB,CAAA;AACH,CAAC,EARgB,IAAI,KAAJ,IAAI,QAQpB;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA"}
package/dist/Rune.test.js DELETED
@@ -1,5 +0,0 @@
1
- import { expect, test } from "vitest";
2
- test("adds 1 + 2 to equal 3", () => {
3
- expect(1 + 2).toBe(3);
4
- });
5
- //# sourceMappingURL=Rune.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Rune.test.js","sourceRoot":"","sources":["../Rune.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACjC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA"}
package/dist/Schema.d.ts DELETED
@@ -1,46 +0,0 @@
1
- export type Schema<T = any> = SchemaType<T> | SchemaAnyOf<T>;
2
- export type SchemaType<T = any> = SchemaNull<T> | SchemaBoolean<T> | SchemaInteger<T> | SchemaNumber<T> | SchemaString<T> | SchemaArray<T> | SchemaObject<T>;
3
- export interface SchemaNull<T = any> extends SchemaTypeBase<"null", T> {
4
- }
5
- export interface SchemaBoolean<T = any> extends SchemaTypeBase<"boolean", T> {
6
- }
7
- export interface SchemaInteger<T = any> extends SchemaTypeBase<"integer", T> {
8
- }
9
- export interface SchemaNumber<T = any> extends SchemaTypeBase<"number", T> {
10
- }
11
- export interface SchemaString<T = any> extends SchemaTypeBase<"string", T> {
12
- enum?: Array<string>;
13
- const?: string;
14
- }
15
- export interface SchemaArray<T = any> extends SchemaTypeBase<"array", T> {
16
- items: Schema;
17
- }
18
- export interface SchemaObject<T = any> extends SchemaTypeBase<"object", T> {
19
- properties: Record<string, Schema>;
20
- required: Array<string>;
21
- additionalProperties: false;
22
- }
23
- interface SchemaTypeBase<K extends SchemaTypeName, T> extends SchemaBase<T> {
24
- type: K;
25
- anyOf?: never;
26
- }
27
- export type SchemaTypeName = "null" | "boolean" | "integer" | "number" | "string" | "array" | "object";
28
- export interface SchemaAnyOf<T = any> extends SchemaBase<T> {
29
- type?: never;
30
- anyOf: Array<Schema>;
31
- }
32
- export interface SchemaBase<T> {
33
- T: T;
34
- description?: string;
35
- }
36
- export declare namespace Schema {
37
- function compile<T>(key: WeakKey, { schema: schema_, validate, }: {
38
- schema(): unknown;
39
- validate(value: unknown): T;
40
- }): Schema<any>;
41
- function validateValue<T>(schema: Schema<T>, value: unknown): T;
42
- function id(schema: Schema, description?: string): Promise<string>;
43
- function wrap(schema: Schema): SchemaObject;
44
- function validate(value: unknown): Schema;
45
- }
46
- export {};
package/dist/Schema.js DELETED
@@ -1,130 +0,0 @@
1
- import { subtle } from "node:crypto";
2
- import { LiminalAssertionError as LE } from "./LiminalAssertionError.js";
3
- export var Schema;
4
- (function (Schema) {
5
- const ids = new WeakMap();
6
- const schemas = new WeakMap();
7
- const validators = new WeakMap();
8
- function compile(key, { schema: schema_, validate, }) {
9
- let schema = schemas.get(key);
10
- if (!schema) {
11
- schema = Schema.validate(schema_());
12
- schemas.set(key, schema);
13
- }
14
- validators.set(schema, validate);
15
- return schema;
16
- }
17
- Schema.compile = compile;
18
- function validateValue(schema, value) {
19
- const validator = validators.get(schema);
20
- LE.assert(validator);
21
- return validator(value);
22
- }
23
- Schema.validateValue = validateValue;
24
- async function id(schema, description) {
25
- description = description ?? "";
26
- if (!ids.has(schema)) {
27
- ids.set(schema, {});
28
- }
29
- const schemaIds = ids.get(schema);
30
- let id = schemaIds[description];
31
- if (!id) {
32
- const content = `${description}_${JSON.stringify(schema)}`;
33
- const bytes = new Uint8Array(await subtle.digest("SHA-256", new TextEncoder().encode(content)));
34
- let binary = "";
35
- for (const b of bytes)
36
- binary += String.fromCharCode(b);
37
- id = btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
38
- schemaIds[description] = id;
39
- }
40
- return id;
41
- }
42
- Schema.id = id;
43
- function wrap(schema) {
44
- return {
45
- type: "object",
46
- properties: { value: schema },
47
- additionalProperties: false,
48
- required: ["value"],
49
- };
50
- }
51
- Schema.wrap = wrap;
52
- function validate(value) {
53
- LE.assert(typeof value === "object");
54
- LE.assert(value !== null);
55
- if ("anyOf" in value) {
56
- LE.assert(Array.isArray(value.anyOf));
57
- return {
58
- anyOf: value.anyOf.map(validate),
59
- };
60
- }
61
- else {
62
- if ("enum" in value) {
63
- LE.assert(Array.isArray(value.enum));
64
- LE.assert(!("const" in value));
65
- value.enum.forEach((v) => LE.assert(typeof v === "string"));
66
- return {
67
- type: "string",
68
- enum: value.enum,
69
- };
70
- }
71
- else if ("const" in value) {
72
- LE.assert(typeof value.const === "string");
73
- return {
74
- type: "string",
75
- const: value.const,
76
- };
77
- }
78
- else if ("type" in value) {
79
- LE.assert("type" in value);
80
- LE.assert(typeof value.type === "string");
81
- LE.assert(SCHEMA_TYPE_NAMES[value.type]);
82
- switch (value.type) {
83
- case "null":
84
- case "boolean":
85
- case "integer":
86
- case "number": {
87
- break;
88
- }
89
- case "string": {
90
- if ("const" in value) {
91
- LE.assert(typeof value.const === "string");
92
- }
93
- break;
94
- }
95
- case "array": {
96
- LE.assert("items" in value);
97
- return {
98
- type: "array",
99
- items: validate(value.items),
100
- };
101
- }
102
- case "object": {
103
- LE.assert("properties" in value);
104
- LE.assert(typeof value.properties === "object");
105
- const { properties } = value;
106
- LE.assert(properties !== null);
107
- return {
108
- type: "object",
109
- properties: Object.fromEntries(Object.entries(properties).map(([key, value]) => [key, validate(value)])),
110
- required: Object.keys(properties),
111
- additionalProperties: false,
112
- };
113
- }
114
- }
115
- }
116
- }
117
- return value;
118
- }
119
- Schema.validate = validate;
120
- })(Schema || (Schema = {}));
121
- const SCHEMA_TYPE_NAMES = {
122
- null: true,
123
- boolean: true,
124
- integer: true,
125
- number: true,
126
- string: true,
127
- array: true,
128
- object: true,
129
- };
130
- //# sourceMappingURL=Schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../Schema.ts"],"names":[],"mappings":"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"}
package/dist/Strand.d.ts DELETED
@@ -1,81 +0,0 @@
1
- import { Context } from "./Context.ts";
2
- import { Definition } from "./Definition.ts";
3
- import type { Rune } from "./Rune.ts";
4
- /** Configuration options for creating a new Strand. */
5
- export interface StrandConfig {
6
- /** Optional parent strand that this strand will be a child of */
7
- parent?: Strand | undefined;
8
- /** Optional context for the strand execution */
9
- context?: Context | undefined;
10
- /** Optional abort signal that can be used to cancel strand execution */
11
- signal?: AbortSignal | undefined;
12
- }
13
- /**
14
- * A "Strand" is the core unit of execution in Liminal.
15
- *
16
- * It represents a suspendable computation that can yield Runes to control conversation state.
17
- * Strands implement both the Iterable and PromiseLike interfaces to enable both
18
- * running (via awaiting) and joining to parent strands (via yielding).
19
- *
20
- * Strands maintain their own state and can be hierarchically organized with parent-child
21
- * relationships. Child strands are bound to their parents, ensuring consistent
22
- * cancellation behavior.
23
- *
24
- * @template Y The type of Runes this Strand can yield.
25
- * @template T The result type of the Strand.
26
- */
27
- export declare class Strand<Y extends Rune<any> = Rune<any>, T = any> implements Iterable<Y, T>, PromiseLike<T> {
28
- #private;
29
- T: T;
30
- Y: Y;
31
- /** Signal that can be used to detect when this strand is aborted. */
32
- readonly signal: AbortSignal;
33
- /** Current status of the strand (untouched, pending, resolved, rejected) */
34
- status: StrandStatus<T>;
35
- /** Unique identifier for this strand. */
36
- readonly index: number;
37
- /** Nesting depth in the strand hierarchy. */
38
- readonly depth: number;
39
- /** The parent strand or undefined. */
40
- readonly parent?: Strand;
41
- /** The conversation state with which the strand operates. */
42
- readonly context: Context;
43
- constructor(definition: Definition<Y, T>, config: StrandConfig);
44
- then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
45
- [Symbol.iterator](): Generator<Y, T>;
46
- }
47
- export type StrandStatus<T = any> = StrandStatus.Untouched | StrandStatus.Pending<T> | StrandStatus.Resolved<T> | StrandStatus.Rejected;
48
- export declare namespace StrandStatus {
49
- interface Untouched {
50
- type: "untouched";
51
- }
52
- interface Pending<T> {
53
- type: "pending";
54
- promise: Promise<T>;
55
- resolve: (value: T) => void;
56
- reject: (reason?: unknown) => void;
57
- }
58
- interface Resolved<T> {
59
- type: "resolved";
60
- value: T;
61
- }
62
- type Rejected = Rejected.ConfigSignalAborted | Rejected.ParentAborted | Rejected.ContinuationExceptionThrown | Rejected.HandlerExceptionThrown;
63
- namespace Rejected {
64
- interface ConfigSignalAborted {
65
- type: "config_signal_aborted";
66
- reason: unknown;
67
- }
68
- interface ParentAborted {
69
- type: "parent_aborted";
70
- reason: unknown;
71
- }
72
- interface ContinuationExceptionThrown {
73
- type: "continuation_exception_thrown";
74
- exception: unknown;
75
- }
76
- interface HandlerExceptionThrown {
77
- type: "handler_exception_thrown";
78
- exception: unknown;
79
- }
80
- }
81
- }
package/dist/Strand.js DELETED
@@ -1,200 +0,0 @@
1
- import { Context } from "./Context.js";
2
- import { Definition } from "./Definition.js";
3
- import { StrandRejectedError } from "./errors.js";
4
- import { continuation } from "./L/continuation.js";
5
- import { StrandStatusChanged } from "./LEvent.js";
6
- import { attachCustomInspect } from "./util/attachCustomInspect.js";
7
- let nextIndex = 0;
8
- /**
9
- * A "Strand" is the core unit of execution in Liminal.
10
- *
11
- * It represents a suspendable computation that can yield Runes to control conversation state.
12
- * Strands implement both the Iterable and PromiseLike interfaces to enable both
13
- * running (via awaiting) and joining to parent strands (via yielding).
14
- *
15
- * Strands maintain their own state and can be hierarchically organized with parent-child
16
- * relationships. Child strands are bound to their parents, ensuring consistent
17
- * cancellation behavior.
18
- *
19
- * @template Y The type of Runes this Strand can yield.
20
- * @template T The result type of the Strand.
21
- */
22
- export class Strand {
23
- /** Controls abort signal propagation. */
24
- #controller = new AbortController();
25
- /** Signal that can be used to detect when this strand is aborted. */
26
- signal = this.#controller.signal;
27
- /** Optional event handler function. */
28
- #handle;
29
- /** The definition (usually via generator function) that powers this strand. */
30
- #definition;
31
- /** Current status of the strand (untouched, pending, resolved, rejected) */
32
- status = { type: "untouched" };
33
- /** Unique identifier for this strand. */
34
- index = nextIndex++;
35
- /** Nesting depth in the strand hierarchy. */
36
- depth;
37
- /** The conversation state with which the strand operates. */
38
- context;
39
- constructor(definition, config) {
40
- this.#definition = definition;
41
- this.depth = (config?.parent?.depth ?? -1) + 1;
42
- const { parent, context, signal: configSignal } = config ?? {};
43
- if (parent) {
44
- this.parent = parent;
45
- this.#attachSignal(parent.signal, () => ({
46
- type: "parent_aborted",
47
- reason: parent.signal.reason,
48
- }));
49
- }
50
- if (configSignal) {
51
- this.#attachSignal(configSignal, () => ({
52
- type: "config_signal_aborted",
53
- reason: configSignal.reason,
54
- }));
55
- }
56
- if (context) {
57
- this.context = context;
58
- const { handler } = context;
59
- if (handler) {
60
- this.#handle = (function (event) {
61
- try {
62
- handler.call(this, event);
63
- }
64
- catch (exception) {
65
- this.#setTerminalStatus({
66
- type: "handler_exception_thrown",
67
- exception,
68
- });
69
- }
70
- }).bind(this);
71
- this.#handle(new StrandStatusChanged(this.status));
72
- }
73
- }
74
- else {
75
- this.context = Context();
76
- }
77
- }
78
- #setStatus(status) {
79
- this.status = status;
80
- this.#handle?.(new StrandStatusChanged(this.status));
81
- }
82
- #setTerminalStatus = (status) => {
83
- this.#setStatus(status);
84
- this.#controller.abort(this.status);
85
- };
86
- #attachSignal(signal, getStatus) {
87
- const f = () => {
88
- this.#setTerminalStatus(getStatus());
89
- };
90
- if (signal.aborted) {
91
- return f();
92
- }
93
- signal.addEventListener("abort", f, { once: true });
94
- this.#controller.signal.addEventListener("abort", () => {
95
- signal.removeEventListener("abort", f);
96
- }, { once: true });
97
- }
98
- then(onfulfilled, onrejected) {
99
- if (this.status.type !== "untouched") {
100
- return this.#replay(this.status).then(onfulfilled, onrejected);
101
- }
102
- let resolve = undefined;
103
- let reject = undefined;
104
- const promise = new Promise((resolve_, reject_) => {
105
- resolve = resolve_;
106
- reject = reject_;
107
- });
108
- this.status = {
109
- type: "pending",
110
- promise,
111
- resolve,
112
- reject,
113
- };
114
- this.#handle?.(new StrandStatusChanged(this.status));
115
- const iterator = Definition.unwrap(this.#definition);
116
- let nextArg;
117
- queueMicrotask(async () => {
118
- try {
119
- let current = await iterator.next();
120
- while (!current.done) {
121
- const rune = current.value;
122
- const { instruction: value } = rune;
123
- switch (value.kind) {
124
- case "reflect": {
125
- nextArg = this;
126
- break;
127
- }
128
- case "continue": {
129
- nextArg = await value.f();
130
- break;
131
- }
132
- case "emit": {
133
- this.#handle?.(value.event);
134
- nextArg = undefined;
135
- break;
136
- }
137
- case "create_child": {
138
- nextArg = await new Strand(value.definition, {
139
- parent: this,
140
- context: value.context ?? this.context.clone(),
141
- }).then();
142
- break;
143
- }
144
- }
145
- switch (this.status.type) {
146
- case "config_signal_aborted":
147
- case "parent_aborted":
148
- case "continuation_exception_thrown":
149
- case "handler_exception_thrown": {
150
- try {
151
- await iterator.return?.(undefined);
152
- }
153
- catch (exception) { }
154
- return Promise.reject(new StrandRejectedError(this.status));
155
- }
156
- }
157
- current = await iterator.next(nextArg);
158
- }
159
- const { value } = current;
160
- this.#setTerminalStatus({
161
- type: "resolved",
162
- value,
163
- });
164
- resolve(value);
165
- }
166
- catch (exception) {
167
- this.#setTerminalStatus({
168
- type: "continuation_exception_thrown",
169
- exception,
170
- });
171
- reject(exception);
172
- }
173
- });
174
- return promise.then(onfulfilled, onrejected);
175
- }
176
- *[Symbol.iterator]() {
177
- return yield* continuation("run_strand", () => this.then());
178
- }
179
- #replay(status) {
180
- switch (status.type) {
181
- case "config_signal_aborted":
182
- case "parent_aborted":
183
- case "continuation_exception_thrown":
184
- // case "model_error":
185
- case "handler_exception_thrown": {
186
- return Promise.reject(new StrandRejectedError(status));
187
- }
188
- case "resolved": {
189
- return Promise.resolve(status.value);
190
- }
191
- case "pending": {
192
- return status.promise;
193
- }
194
- }
195
- }
196
- static {
197
- attachCustomInspect(this, ({ index, parent }) => ({ index, ...parent && { parent } }));
198
- }
199
- }
200
- //# sourceMappingURL=Strand.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Strand.js","sourceRoot":"","sources":["../Strand.ts"],"names":[],"mappings":"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"}
package/dist/Tool.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import { Schema } from "./Schema.ts";
2
- import type { JSONValue } from "./util/JSONValue.ts";
3
- export declare class Tool {
4
- readonly name: string;
5
- readonly description: string;
6
- readonly parameterSchema: Schema;
7
- readonly f: (arg: any) => JSONValue | Promise<JSONValue>;
8
- static make<T extends JSONValue>(description: string, schema: Schema<T>, f: (arg: T) => JSONValue | Promise<JSONValue>): Promise<Tool>;
9
- constructor(name: string, description: string, parameterSchema: Schema, f: (arg: any) => JSONValue | Promise<JSONValue>);
10
- }