liminal 0.5.12 → 0.5.14

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 (225) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Config.ts +13 -0
  3. package/Context.ts +23 -49
  4. package/Definition.ts +32 -0
  5. package/EventBase.ts +1 -1
  6. package/Handler.ts +3 -5
  7. package/L/L.ts +15 -2
  8. package/L/all.ts +35 -0
  9. package/L/assistant.ts +4 -7
  10. package/L/catch.ts +16 -13
  11. package/L/context.ts +12 -0
  12. package/L/continuation.ts +13 -0
  13. package/L/emit.ts +10 -8
  14. package/L/infer.ts +22 -25
  15. package/L/message.ts +7 -9
  16. package/L/model.ts +6 -6
  17. package/L/reflect.ts +12 -0
  18. package/L/run.ts +29 -0
  19. package/L/schema/_schema_common.ts +29 -0
  20. package/L/schema/anyOf.ts +10 -0
  21. package/L/schema/array.ts +13 -0
  22. package/L/schema/boolean.ts +8 -0
  23. package/L/schema/const.ts +18 -0
  24. package/L/schema/enum.ts +18 -0
  25. package/L/schema/integer.ts +6 -0
  26. package/L/schema/null.ts +8 -0
  27. package/L/schema/number.ts +8 -0
  28. package/L/schema/object.ts +21 -0
  29. package/L/schema/string.ts +11 -0
  30. package/L/strand.ts +14 -71
  31. package/L/stream.ts +11 -24
  32. package/L/system.ts +13 -8
  33. package/L/user.ts +13 -8
  34. package/LEvent.ts +9 -17
  35. package/LiminalAssertionError.ts +19 -0
  36. package/Message.ts +3 -2
  37. package/Model.ts +5 -3
  38. package/ModelRegistry.ts +1 -7
  39. package/Rune.test.ts +5 -0
  40. package/Rune.ts +24 -12
  41. package/Schema.ts +185 -0
  42. package/Strand.ts +253 -0
  43. package/Tool.ts +8 -16
  44. package/TypeAdapter.ts +3 -0
  45. package/dist/Config.d.ts +12 -0
  46. package/dist/Config.js +2 -0
  47. package/dist/Config.js.map +1 -0
  48. package/dist/Context.d.ts +11 -12
  49. package/dist/Context.js +15 -42
  50. package/dist/Context.js.map +1 -1
  51. package/dist/Definition.d.ts +10 -0
  52. package/dist/Definition.js +18 -0
  53. package/dist/Definition.js.map +1 -0
  54. package/dist/EventBase.js +1 -1
  55. package/dist/EventBase.js.map +1 -1
  56. package/dist/Handler.d.ts +3 -4
  57. package/dist/Handler.js +1 -2
  58. package/dist/Handler.js.map +1 -1
  59. package/dist/L/L.d.ts +15 -2
  60. package/dist/L/L.js +15 -2
  61. package/dist/L/L.js.map +1 -1
  62. package/dist/L/all.d.ts +10 -0
  63. package/dist/L/all.js +20 -0
  64. package/dist/L/all.js.map +1 -0
  65. package/dist/L/assistant.d.ts +2 -2
  66. package/dist/L/assistant.js +3 -6
  67. package/dist/L/assistant.js.map +1 -1
  68. package/dist/L/catch.d.ts +3 -2
  69. package/dist/L/catch.js +12 -12
  70. package/dist/L/catch.js.map +1 -1
  71. package/dist/L/context.d.ts +2 -0
  72. package/dist/L/context.js +12 -0
  73. package/dist/L/context.js.map +1 -0
  74. package/dist/L/continuation.d.ts +3 -0
  75. package/dist/L/continuation.js +12 -0
  76. package/dist/L/continuation.js.map +1 -0
  77. package/dist/L/emit.d.ts +3 -5
  78. package/dist/L/emit.js +8 -3
  79. package/dist/L/emit.js.map +1 -1
  80. package/dist/L/infer.d.ts +2 -5
  81. package/dist/L/infer.js +21 -20
  82. package/dist/L/infer.js.map +1 -1
  83. package/dist/L/message.d.ts +3 -5
  84. package/dist/L/message.js +5 -5
  85. package/dist/L/message.js.map +1 -1
  86. package/dist/L/model.d.ts +2 -4
  87. package/dist/L/model.js +4 -3
  88. package/dist/L/model.js.map +1 -1
  89. package/dist/L/reflect.d.ts +4 -0
  90. package/dist/L/reflect.js +10 -0
  91. package/dist/L/reflect.js.map +1 -0
  92. package/dist/L/run.d.ts +15 -0
  93. package/dist/L/run.js +16 -0
  94. package/dist/L/run.js.map +1 -0
  95. package/dist/L/schema/_schema_common.d.ts +6 -0
  96. package/dist/L/schema/_schema_common.js +19 -0
  97. package/dist/L/schema/_schema_common.js.map +1 -0
  98. package/dist/L/schema/anyOf.d.ts +5 -0
  99. package/dist/L/schema/anyOf.js +5 -0
  100. package/dist/L/schema/anyOf.js.map +1 -0
  101. package/dist/L/schema/array.d.ts +5 -0
  102. package/dist/L/schema/array.js +8 -0
  103. package/dist/L/schema/array.js.map +1 -0
  104. package/dist/L/schema/boolean.d.ts +6 -0
  105. package/dist/L/schema/boolean.js +4 -0
  106. package/dist/L/schema/boolean.js.map +1 -0
  107. package/dist/L/schema/const.d.ts +8 -0
  108. package/dist/L/schema/const.js +10 -0
  109. package/dist/L/schema/const.js.map +1 -0
  110. package/dist/L/schema/enum.d.ts +8 -0
  111. package/dist/L/schema/enum.js +10 -0
  112. package/dist/L/schema/enum.js.map +1 -0
  113. package/dist/L/schema/integer.d.ts +5 -0
  114. package/dist/L/schema/integer.js +3 -0
  115. package/dist/L/schema/integer.js.map +1 -0
  116. package/dist/L/schema/null.d.ts +6 -0
  117. package/dist/L/schema/null.js +4 -0
  118. package/dist/L/schema/null.js.map +1 -0
  119. package/dist/L/schema/number.d.ts +6 -0
  120. package/dist/L/schema/number.js +4 -0
  121. package/dist/L/schema/number.js.map +1 -0
  122. package/dist/L/schema/object.d.ts +9 -0
  123. package/dist/L/schema/object.js +12 -0
  124. package/dist/L/schema/object.js.map +1 -0
  125. package/dist/L/schema/string.d.ts +8 -0
  126. package/dist/L/schema/string.js +4 -0
  127. package/dist/L/schema/string.js.map +1 -0
  128. package/dist/L/strand.d.ts +4 -15
  129. package/dist/L/strand.js +8 -53
  130. package/dist/L/strand.js.map +1 -1
  131. package/dist/L/stream.d.ts +2 -4
  132. package/dist/L/stream.js +8 -19
  133. package/dist/L/stream.js.map +1 -1
  134. package/dist/L/system.d.ts +2 -4
  135. package/dist/L/system.js +4 -3
  136. package/dist/L/system.js.map +1 -1
  137. package/dist/L/user.d.ts +2 -4
  138. package/dist/L/user.js +4 -3
  139. package/dist/L/user.js.map +1 -1
  140. package/dist/LEvent.d.ts +13 -41
  141. package/dist/LEvent.js +4 -15
  142. package/dist/LEvent.js.map +1 -1
  143. package/dist/LiminalAssertionError.d.ts +8 -0
  144. package/dist/LiminalAssertionError.js +20 -0
  145. package/dist/LiminalAssertionError.js.map +1 -0
  146. package/dist/Message.d.ts +3 -2
  147. package/dist/Model.d.ts +4 -2
  148. package/dist/Model.js +1 -1
  149. package/dist/Model.js.map +1 -1
  150. package/dist/ModelRegistry.d.ts +0 -2
  151. package/dist/ModelRegistry.js +0 -2
  152. package/dist/ModelRegistry.js.map +1 -1
  153. package/dist/Rune.d.ts +19 -7
  154. package/dist/Rune.js +8 -4
  155. package/dist/Rune.js.map +1 -1
  156. package/dist/Rune.test.d.ts +1 -0
  157. package/dist/Rune.test.js +5 -0
  158. package/dist/Rune.test.js.map +1 -0
  159. package/dist/Schema.d.ts +46 -0
  160. package/dist/Schema.js +130 -0
  161. package/dist/Schema.js.map +1 -0
  162. package/dist/Strand.d.ts +57 -0
  163. package/dist/Strand.js +177 -0
  164. package/dist/Strand.js.map +1 -0
  165. package/dist/Tool.d.ts +6 -5
  166. package/dist/Tool.js +3 -4
  167. package/dist/Tool.js.map +1 -1
  168. package/dist/TypeAdapter.d.ts +1 -0
  169. package/dist/TypeAdapter.js +3 -0
  170. package/dist/TypeAdapter.js.map +1 -0
  171. package/dist/errors.d.ts +9 -0
  172. package/dist/errors.js +11 -0
  173. package/dist/errors.js.map +1 -0
  174. package/dist/index.d.ts +6 -5
  175. package/dist/index.js +6 -5
  176. package/dist/index.js.map +1 -1
  177. package/dist/tsconfig.tsbuildinfo +1 -1
  178. package/dist/util/EnsureNarrow.d.ts +1 -0
  179. package/dist/util/EnsureNarrow.js +2 -0
  180. package/dist/util/EnsureNarrow.js.map +1 -0
  181. package/dist/util/JSONValue.d.ts +8 -0
  182. package/dist/util/JSONValue.js +20 -0
  183. package/dist/util/JSONValue.js.map +1 -0
  184. package/dist/util/attachCustomInspect.d.ts +1 -0
  185. package/dist/util/attachCustomInspect.js +11 -0
  186. package/dist/util/attachCustomInspect.js.map +1 -0
  187. package/dist/util/isTemplateStringsArray.d.ts +1 -0
  188. package/dist/util/isTemplateStringsArray.js +4 -0
  189. package/dist/util/isTemplateStringsArray.js.map +1 -0
  190. package/errors.ts +12 -0
  191. package/index.ts +6 -5
  192. package/package.json +3 -10
  193. package/tsconfig.json +1 -5
  194. package/util/EnsureNarrow.ts +1 -0
  195. package/util/JSONValue.ts +20 -0
  196. package/util/attachCustomInspect.ts +14 -0
  197. package/util/isTemplateStringsArray.ts +3 -0
  198. package/Fiber.ts +0 -123
  199. package/L/_common.ts +0 -6
  200. package/L/rune.ts +0 -12
  201. package/MessageRegistry.ts +0 -22
  202. package/Runic.ts +0 -30
  203. package/StrandConfig.ts +0 -12
  204. package/ToolRegistry.ts +0 -10
  205. package/dist/Fiber.d.ts +0 -35
  206. package/dist/Fiber.js +0 -95
  207. package/dist/Fiber.js.map +0 -1
  208. package/dist/L/_common.d.ts +0 -4
  209. package/dist/L/_common.js +0 -7
  210. package/dist/L/_common.js.map +0 -1
  211. package/dist/L/rune.d.ts +0 -3
  212. package/dist/L/rune.js +0 -9
  213. package/dist/L/rune.js.map +0 -1
  214. package/dist/MessageRegistry.d.ts +0 -9
  215. package/dist/MessageRegistry.js +0 -15
  216. package/dist/MessageRegistry.js.map +0 -1
  217. package/dist/Runic.d.ts +0 -9
  218. package/dist/Runic.js +0 -18
  219. package/dist/Runic.js.map +0 -1
  220. package/dist/StrandConfig.d.ts +0 -11
  221. package/dist/StrandConfig.js +0 -2
  222. package/dist/StrandConfig.js.map +0 -1
  223. package/dist/ToolRegistry.d.ts +0 -6
  224. package/dist/ToolRegistry.js +0 -8
  225. package/dist/ToolRegistry.js.map +0 -1
package/dist/L/strand.js CHANGED
@@ -1,57 +1,12 @@
1
- import { assert, isIterableLike } from "liminal-util";
2
- import { Context } from "../Context.js";
3
- import { Fiber } from "../Fiber.js";
4
- import { HandlerContext } from "../Handler.js";
5
- import { MessageRegistry, MessageRegistryContext } from "../MessageRegistry.js";
6
- import { ModelRegistry, ModelRegistryContext } from "../ModelRegistry.js";
7
- import {} from "../Rune.js";
8
- import { Runic } from "../Runic.js";
9
- import { ToolRegistry, ToolRegistryContext } from "../ToolRegistry.js";
10
- import { rune } from "./rune.js";
11
- export function strand(value, config) {
12
- return {
13
- *[Symbol.iterator]() {
14
- const parent = yield* Fiber;
15
- if (Array.isArray(value)) {
16
- const fibers = value.map((runic) => context().run(() => new Fiber(runic, { parent })));
17
- return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.resolution())), "strand");
18
- }
19
- else if (typeof value === "object" && !isIterableLike(value)) {
20
- const fibers = Object.values(value).map((runic) => context().run(() => new Fiber(runic, { parent })));
21
- return yield* rune(() => {
22
- const keys = Object.keys(value);
23
- return Promise
24
- .all(fibers.map((fiber) => fiber.resolution()))
25
- .then((resolved) => resolved.map((value, i) => [keys[i], value]))
26
- .then(Object.fromEntries);
27
- }, "strand");
28
- }
29
- const fiber = context().run(() => new Fiber(value, { parent }));
30
- return yield* rune(() => fiber.resolution(), "strand");
31
- },
32
- then(onfulfilled, onrejected) {
33
- return new Fiber(this).resolution().then(onfulfilled, onrejected);
1
+ import { RuneKey } from "../Rune.js";
2
+ export function* strand(definition, context) {
3
+ return yield {
4
+ [RuneKey]: true,
5
+ value: {
6
+ kind: "child",
7
+ definition,
8
+ context,
34
9
  },
35
10
  };
36
- function context() {
37
- const current = Context.get();
38
- assert(current);
39
- const context = current.fork();
40
- if (config) {
41
- if ("handler" in config) {
42
- context.set(HandlerContext, config.handler);
43
- }
44
- if ("models" in config) {
45
- context.set(ModelRegistryContext, config.models?.clone() ?? new ModelRegistry());
46
- }
47
- if ("messages" in config) {
48
- context.set(MessageRegistryContext, config.messages?.clone() ?? new MessageRegistry());
49
- }
50
- if ("tools" in config) {
51
- context.set(ToolRegistryContext, config.tools?.clone() ?? new ToolRegistry());
52
- }
53
- }
54
- return context;
55
- }
56
11
  }
57
12
  //# sourceMappingURL=strand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"strand.js","sourceRoot":"","sources":["../../L/strand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strand.js","sourceRoot":"","sources":["../../L/strand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,SAAS,CAAC,CAAC,MAAM,CACrB,UAA4B,EAC5B,OAAiB;IAEjB,OAAO,MAAM;QACX,CAAC,OAAO,CAAC,EAAE,IAAI;QACf,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,UAAU;YACV,OAAO;SACR;KACF,CAAA;AACH,CAAC"}
@@ -1,5 +1,3 @@
1
1
  import { type LEvent } from "../LEvent.ts";
2
- import { type Rune } from "../Rune.ts";
3
- export interface stream extends Iterable<Rune<LEvent>, ReadableStream<string>> {
4
- }
5
- export declare const stream: stream;
2
+ import type { Rune } from "../Rune.ts";
3
+ export declare const stream: Iterable<Rune<LEvent>, ReadableStream<string>>;
package/dist/L/stream.js CHANGED
@@ -1,27 +1,16 @@
1
- import { assert } from "liminal-util";
2
1
  import { InferenceRequested } from "../LEvent.js";
3
- import { MessageRegistryContext } from "../MessageRegistry.js";
4
- import { ModelRegistryContext } from "../ModelRegistry.js";
5
- import {} from "../Rune.js";
6
- import { RequestCounter } from "./_common.js";
2
+ import { LiminalAssertionError } from "../LiminalAssertionError.js";
3
+ import { continuation } from "./continuation.js";
7
4
  import { emit } from "./emit.js";
8
- import { rune } from "./rune.js";
5
+ import { reflect } from "./reflect.js";
9
6
  export const stream = {
10
7
  *[Symbol.iterator]() {
11
- const modelRegistry = ModelRegistryContext.get();
12
- assert(modelRegistry);
13
- const model = modelRegistry.peek();
14
- assert(model);
15
- const requestId = RequestCounter.next();
8
+ const { context: { models, messages }, signal } = yield* reflect;
9
+ const model = models.peek();
10
+ LiminalAssertionError.assert(model);
11
+ const requestId = crypto.randomUUID();
16
12
  yield* emit(new InferenceRequested(requestId));
17
- const messageRegistry = MessageRegistryContext.get();
18
- assert(messageRegistry);
19
- return yield* rune((fiber) => model
20
- .seal({
21
- messages: messageRegistry.messages,
22
- signal: fiber.controller.signal,
23
- })
24
- .stream(), "stream");
13
+ return yield* continuation("stream", () => model.seal({ messages, signal }).stream());
25
14
  },
26
15
  };
27
16
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../L/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAe,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAa,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAA;QAChD,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;QACvC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;QACpD,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK;aACF,IAAI,CAAC;YACJ,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;SAChC,CAAC;aACD,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC1B,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../L/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,MAAM,GAAmD;IACpE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QAC3B,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QACrC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IACvF,CAAC;CACF,CAAA"}
@@ -1,6 +1,4 @@
1
1
  import type { LEvent } from "../LEvent.ts";
2
2
  import type { Rune } from "../Rune.ts";
3
- export interface system extends Generator<Rune<LEvent>, void> {
4
- }
5
- export declare function system(template: TemplateStringsArray, ...substitutions: Array<number | string>): system;
6
- export declare function system(value: string): system;
3
+ export declare function system(template: TemplateStringsArray, ...substitutions: Array<number | string>): Generator<Rune<LEvent>, void>;
4
+ export declare function system(value: string): Generator<Rune<LEvent>, void>;
package/dist/L/system.js CHANGED
@@ -1,7 +1,8 @@
1
- import { isTemplateStringsArray } from "liminal-util";
1
+ import { isTemplateStringsArray } from "../util/isTemplateStringsArray.js";
2
2
  import { message } from "./message.js";
3
3
  export function system(e0, ...rest) {
4
- const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
5
- return message("system", [{ part }]);
4
+ return message("system", [{
5
+ part: isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0,
6
+ }]);
6
7
  }
7
8
  //# sourceMappingURL=system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,MAAM,UAAU,MAAM,CAAC,EAAiC,EAAE,GAAG,IAA4B;IACvF,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACtC,CAAC"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAEA,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,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SAChE,CAAC,CAAC,CAAA;AACL,CAAC"}
package/dist/L/user.d.ts CHANGED
@@ -1,6 +1,4 @@
1
1
  import type { LEvent } from "../LEvent.ts";
2
2
  import type { Rune } from "../Rune.ts";
3
- export interface user extends Generator<Rune<LEvent>, void> {
4
- }
5
- export declare function user(template: TemplateStringsArray, ...substitutions: Array<number | string>): user;
6
- export declare function user(value: string): user;
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 CHANGED
@@ -1,7 +1,8 @@
1
- import { isTemplateStringsArray } from "liminal-util";
1
+ import { isTemplateStringsArray } from "../util/isTemplateStringsArray.js";
2
2
  import { message } from "./message.js";
3
3
  export function user(e0, ...rest) {
4
- const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
5
- return message("user", [{ part }]);
4
+ return message("user", [{
5
+ part: isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0,
6
+ }]);
6
7
  }
7
8
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,MAAM,UAAU,IAAI,CAAC,EAAiC,EAAE,GAAG,IAA4B;IACrF,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACpC,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAEA,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,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SAChE,CAAC,CAAC,CAAA;AACL,CAAC"}
package/dist/LEvent.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import type { SchemaObject } from "liminal-schema";
2
1
  import type { Message } from "./Message.ts";
3
2
  import type { Model } from "./Model.ts";
4
- export type LEvent = FiberCreated | FiberResolved | FiberStarted | InferenceRequested | Inferred | MessageAppended | ModelRegistered;
3
+ import type { Schema } from "./Schema.ts";
4
+ import type { StrandStatus } from "./Strand.ts";
5
+ export type LEvent = StrandStatusChanged | InferenceRequested | Inferred | MessageAppended | ModelRegistered;
5
6
  export declare namespace LEvent {
6
7
  function is(value: unknown): value is LEvent;
7
8
  }
@@ -26,9 +27,9 @@ declare const InferenceRequested_base: {
26
27
  is<T>(this: new (...args: any) => T, value: unknown): value is T;
27
28
  };
28
29
  export declare class InferenceRequested extends InferenceRequested_base {
29
- readonly requestId: number;
30
- schema?: SchemaObject;
31
- constructor(requestId: number, schema?: SchemaObject | undefined);
30
+ readonly requestId: string;
31
+ schema?: Schema;
32
+ constructor(requestId: string, schema?: Schema | undefined);
32
33
  }
33
34
  declare const Inferred_base: {
34
35
  new (): {
@@ -38,9 +39,9 @@ declare const Inferred_base: {
38
39
  is<T>(this: new (...args: any) => T, value: unknown): value is T;
39
40
  };
40
41
  export declare class Inferred extends Inferred_base {
41
- readonly requestId: number;
42
+ readonly requestId: string;
42
43
  readonly inference: string;
43
- constructor(requestId: number, inference: string);
44
+ constructor(requestId: string, inference: string);
44
45
  }
45
46
  declare const MessageAppended_base: {
46
47
  new (): {
@@ -53,44 +54,15 @@ export declare class MessageAppended extends MessageAppended_base {
53
54
  readonly message: Message;
54
55
  constructor(message: Message);
55
56
  }
56
- declare const FiberCreated_base: {
57
+ declare const StrandStatusChanged_base: {
57
58
  new (): {
58
59
  readonly brand: typeof LEventTag;
59
- readonly type: "fiber_created";
60
+ readonly type: "strand_status_changed";
60
61
  };
61
62
  is<T>(this: new (...args: any) => T, value: unknown): value is T;
62
63
  };
63
- export declare class FiberCreated extends FiberCreated_base {
64
- }
65
- declare const FiberStarted_base: {
66
- new (): {
67
- readonly brand: typeof LEventTag;
68
- readonly type: "fiber_started";
69
- };
70
- is<T>(this: new (...args: any) => T, value: unknown): value is T;
71
- };
72
- export declare class FiberStarted extends FiberStarted_base {
73
- }
74
- declare const FiberResolved_base: {
75
- new (): {
76
- readonly brand: typeof LEventTag;
77
- readonly type: "fiber_resolved";
78
- };
79
- is<T>(this: new (...args: any) => T, value: unknown): value is T;
80
- };
81
- export declare class FiberResolved extends FiberResolved_base {
82
- readonly value: any;
83
- constructor(value: any);
84
- }
85
- declare const FiberRejected_base: {
86
- new (): {
87
- readonly brand: typeof LEventTag;
88
- readonly type: "fiber_rejected";
89
- };
90
- is<T>(this: new (...args: any) => T, value: unknown): value is T;
91
- };
92
- export declare class FiberRejected extends FiberRejected_base {
93
- readonly reason: any;
94
- constructor(reason: any);
64
+ export declare class StrandStatusChanged extends StrandStatusChanged_base {
65
+ readonly status: StrandStatus;
66
+ constructor(status: StrandStatus);
95
67
  }
96
68
  export {};
package/dist/LEvent.js CHANGED
@@ -40,22 +40,11 @@ export class MessageAppended extends EventBase(LEventTag, "message_appended") {
40
40
  this.message = message;
41
41
  }
42
42
  }
43
- export class FiberCreated extends EventBase(LEventTag, "fiber_created") {
44
- }
45
- export class FiberStarted extends EventBase(LEventTag, "fiber_started") {
46
- }
47
- export class FiberResolved extends EventBase(LEventTag, "fiber_resolved") {
48
- value;
49
- constructor(value) {
50
- super();
51
- this.value = value;
52
- }
53
- }
54
- export class FiberRejected extends EventBase(LEventTag, "fiber_rejected") {
55
- reason;
56
- constructor(reason) {
43
+ export class StrandStatusChanged extends EventBase(LEventTag, "strand_status_changed") {
44
+ status;
45
+ constructor(status) {
57
46
  super();
58
- this.reason = reason;
47
+ this.status = status;
59
48
  }
60
49
  }
61
50
  //# sourceMappingURL=LEvent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa1C,MAAM,KAAW,MAAM,CAItB;AAJD,WAAiB,MAAM;IACrB,SAAgB,EAAE,CAAC,KAAc;QAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;IACrG,CAAC;IAFe,SAAE,KAEjB,CAAA;AACH,CAAC,EAJgB,MAAM,KAAN,MAAM,QAItB;AAED,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAGpE,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,KAAY;QAC/B,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAO;IAEjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAGtE;IADX,YACW,SAAiB,EAC1B,MAAiC;QAEjC,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QAI1B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAEjD;IACA;IAFX,YACW,SAAiB,EACjB,SAAiB;QAE1B,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAQ;IAG5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,OAAgB;QACnC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAS;IAErC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;CAAG;AAC1E,MAAM,OAAO,YAAa,SAAQ,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;CAAG;AAC1E,MAAM,OAAO,aAAc,SAAQ,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAClD;IAArB,YAAqB,KAAU;QAC7B,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAK;IAE/B,CAAC;CACF;AACD,MAAM,OAAO,aAAc,SAAQ,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAClD;IAArB,YAAqB,MAAW;QAC9B,KAAK,EAAE,CAAA;QADY,WAAM,GAAN,MAAM,CAAK;IAEhC,CAAC;CACF"}
1
+ {"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa1C,MAAM,KAAW,MAAM,CAItB;AAJD,WAAiB,MAAM;IACrB,SAAgB,EAAE,CAAC,KAAc;QAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;IACrG,CAAC;IAFe,SAAE,KAEjB,CAAA;AACH,CAAC,EAJgB,MAAM,KAAN,MAAM,QAItB;AAED,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAGpE,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,KAAY;QAC/B,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAO;IAEjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAGtE;IADX,YACW,SAAiB,EAC1B,MAA2B;QAE3B,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QAI1B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAEjD;IACA;IAFX,YACW,SAAiB,EACjB,SAAiB;QAE1B,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAQ;IAG5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,OAAgB;QACnC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAS;IAErC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,SAAS,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC/D;IAArB,YAAqB,MAAoB;QACvC,KAAK,EAAE,CAAA;QADY,WAAM,GAAN,MAAM,CAAc;IAEzC,CAAC;CACF"}
@@ -0,0 +1,8 @@
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
+ }
@@ -0,0 +1,20 @@
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
@@ -0,0 +1 @@
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 CHANGED
@@ -1,11 +1,12 @@
1
1
  export interface Message {
2
2
  readonly role: MessageRole;
3
- readonly content: Array<ContentPart>;
3
+ readonly parts: Array<Content>;
4
4
  }
5
5
  export type MessageRole = "system" | "user" | "assistant";
6
- export type ContentPart = {
6
+ export type Content = {
7
7
  readonly part: string;
8
8
  readonly alt?: never;
9
+ readonly mime?: never;
9
10
  } | {
10
11
  readonly part: URL;
11
12
  readonly alt: string;
package/dist/Model.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import type { SchemaObject } from "liminal-schema";
2
1
  import type { Message } from "./Message.ts";
2
+ import type { SchemaObject } from "./Schema.ts";
3
+ import type { Tool } from "./Tool.ts";
3
4
  export declare class Model {
4
5
  readonly vendor: string;
5
6
  readonly seal: (envelope: Envelope) => SealedEnvelope;
@@ -8,7 +9,8 @@ export declare class Model {
8
9
  export interface Envelope {
9
10
  messages: Array<Message>;
10
11
  schema?: SchemaObject | undefined;
11
- signal?: AbortSignal;
12
+ signal: AbortSignal;
13
+ tools?: Set<Tool> | undefined;
12
14
  }
13
15
  export interface SealedEnvelope {
14
16
  resolve(): Promise<string>;
package/dist/Model.js CHANGED
@@ -1,4 +1,4 @@
1
- import { attachCustomInspect } from "liminal-util";
1
+ import { attachCustomInspect } from "./util/attachCustomInspect.js";
2
2
  export class Model {
3
3
  vendor;
4
4
  seal;
package/dist/Model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Model.js","sourceRoot":"","sources":["../Model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,OAAO,KAAK;IAEL;IACA;IAFX,YACW,MAAc,EACd,IAA4C;QAD5C,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAwC;IACpD,CAAC;IAEJ;QACE,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;CACF"}
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../Model.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AAEnE,MAAM,OAAO,KAAK;IAEL;IACA;IAFX,YACW,MAAc,EACd,IAA4C;QAD5C,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAwC;IACpD,CAAC;IAEJ;QACE,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;CACF"}
@@ -1,4 +1,3 @@
1
- import { ContextPart } from "./Context.ts";
2
1
  import type { Model } from "./Model.ts";
3
2
  /** An intrusive list for storing `Model`s. */
4
3
  export declare class ModelRegistry {
@@ -14,4 +13,3 @@ export interface ModelRegistryNode {
14
13
  model: Model;
15
14
  next?: ModelRegistryNode | undefined;
16
15
  }
17
- export declare const ModelRegistryContext: ContextPart<ModelRegistry>;
@@ -1,4 +1,3 @@
1
- import { ContextPart } from "./Context.js";
2
1
  /** An intrusive list for storing `Model`s. */
3
2
  export class ModelRegistry {
4
3
  peek() {
@@ -41,5 +40,4 @@ export class ModelRegistry {
41
40
  return instance;
42
41
  }
43
42
  }
44
- export const ModelRegistryContext = ContextPart((parent) => parent?.clone() ?? new ModelRegistry(), "model_registry");
45
43
  //# sourceMappingURL=ModelRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IAIxB,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;QACpC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAQD,MAAM,CAAC,MAAM,oBAAoB,GAA+B,WAAW,CACzE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,aAAa,EAAE,EAClD,gBAAgB,CACjB,CAAA"}
1
+ {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAEA,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IAIxB,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;QACpC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
package/dist/Rune.d.ts CHANGED
@@ -1,13 +1,25 @@
1
- import type { Fiber } from "./Fiber.ts";
2
- export interface Rune<out E = any> {
3
- E: E;
4
- (fiber: Fiber): any;
1
+ import type { Context } from "./Context.ts";
2
+ import type { Definition } from "./Definition.ts";
3
+ export interface Rune<E> {
5
4
  [RuneKey]: true;
6
- debug?: string;
5
+ value: {
6
+ kind: "continuation";
7
+ debug: string;
8
+ f: () => any;
9
+ } | {
10
+ kind: "event";
11
+ event: E;
12
+ } | {
13
+ kind: "reflect";
14
+ } | {
15
+ kind: "child";
16
+ definition: Definition;
17
+ context?: Context | undefined;
18
+ };
7
19
  }
8
20
  export declare namespace Rune {
9
- type E<X extends Rune> = X["E"];
21
+ type E<X extends Rune<any>> = X extends Rune<infer E> ? E : never;
22
+ function is(value: unknown): value is Rune<any>;
10
23
  }
11
24
  export declare const RuneKey: unique symbol;
12
25
  export type RuneKey = typeof RuneKey;
13
- export declare function isRune(value: unknown): value is Rune;
package/dist/Rune.js CHANGED
@@ -1,5 +1,9 @@
1
- export const RuneKey = Symbol.for("liminal/Rune");
2
- export function isRune(value) {
3
- return typeof value === "object" && value !== null && RuneKey in value;
4
- }
1
+ export var Rune;
2
+ (function (Rune) {
3
+ function is(value) {
4
+ return typeof value === "object" && value !== null && RuneKey in value;
5
+ }
6
+ Rune.is = is;
7
+ })(Rune || (Rune = {}));
8
+ export const RuneKey = Symbol.for("liminal/RuneKey");
5
9
  //# sourceMappingURL=Rune.js.map
package/dist/Rune.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Rune.js","sourceRoot":"","sources":["../Rune.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAGhE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;AACxE,CAAC"}
1
+ {"version":3,"file":"Rune.js","sourceRoot":"","sources":["../Rune.ts"],"names":[],"mappings":"AAqBA,MAAM,KAAW,IAAI,CAMpB;AAND,WAAiB,IAAI;IAGnB,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,EANgB,IAAI,KAAJ,IAAI,QAMpB;AAED,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,46 @@
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 {};