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/catch.js CHANGED
@@ -1,21 +1,21 @@
1
- import { assert } from "liminal-util";
2
- import { Context } from "../Context.js";
3
- import { Fiber } from "../Fiber.js";
4
- import { rune } from "./rune.js";
1
+ import { Strand } from "../Strand.js";
2
+ import { continuation } from "./continuation.js";
3
+ import { reflect } from "./reflect.js";
5
4
  export { catch_ as catch };
6
- function* catch_(runic) {
7
- return yield* rune(async (parent) => {
5
+ function* catch_(definition) {
6
+ const parent = yield* reflect;
7
+ return yield* continuation("catch", async () => {
8
8
  try {
9
- const context = Context.get();
10
- assert(context);
11
- return {
12
- resolved: await context.fork().run(() => new Fiber(runic, { parent }).resolution()),
13
- };
9
+ const resolved = await new Strand(definition, {
10
+ parent,
11
+ context: parent.context.clone(),
12
+ }).then();
13
+ return { resolved };
14
14
  }
15
15
  catch (exception) {
16
16
  return { rejected: exception };
17
17
  }
18
- }, "catch");
18
+ });
19
19
  }
20
20
  Object.defineProperty(catch_, "name", { value: "catch" });
21
21
  //# sourceMappingURL=catch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"catch.js","sourceRoot":"","sources":["../../L/catch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA;AAE1B,QAAQ,CAAC,CAAC,MAAM,CAAoB,KAAkB;IACpD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YAC7B,MAAM,CAAC,OAAO,CAAC,CAAA;YACf,OAAO;gBACL,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;aACpF,CAAA;QACH,CAAC;QAAC,OAAO,SAAkB,EAAE,CAAC;YAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;QAChC,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"catch.js","sourceRoot":"","sources":["../../L/catch.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA;AAE1B,QAAQ,CAAC,CAAC,MAAM,CACd,UAA4B;IAE5B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA;IAC7B,OAAO,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;gBAC5C,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;aAChC,CAAC,CAAC,IAAI,EAAE,CAAA;YACT,OAAO,EAAE,QAAQ,EAAE,CAAA;QACrB,CAAC;QAAC,OAAO,SAAkB,EAAE,CAAC;YAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;QAChC,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { Context } from "../Context.ts";
2
+ export declare function context(partial: Partial<Omit<Context, "clone">>): Generator<import("../Rune.ts").Rune<import("../LEvent.ts").LEvent>, Context, any>;
@@ -0,0 +1,12 @@
1
+ import { Context } from "../Context.js";
2
+ import { reflect } from "./reflect.js";
3
+ export function* context(partial) {
4
+ const { context } = yield* reflect;
5
+ return Context({
6
+ handler: partial.handler ?? context.handler,
7
+ messages: partial.messages ?? context.messages,
8
+ models: partial.models ?? context.models,
9
+ tools: partial.tools ?? context.tools,
10
+ });
11
+ }
12
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../L/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,OAAwC;IAC/D,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA;IAClC,OAAO,OAAO,CAAC;QACb,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;QAC3C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM;QACxC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK;KACtC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LEvent } from "../LEvent.ts";
2
+ import { Rune } from "../Rune.ts";
3
+ export declare function continuation<R>(debug: string, f: () => R): Generator<Rune<LEvent>, Awaited<R>>;
@@ -0,0 +1,12 @@
1
+ import { Rune, RuneKey } from "../Rune.js";
2
+ export function* continuation(debug, f) {
3
+ return yield {
4
+ [RuneKey]: true,
5
+ value: {
6
+ kind: "continuation",
7
+ debug,
8
+ f,
9
+ },
10
+ };
11
+ }
12
+ //# sourceMappingURL=continuation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation.js","sourceRoot":"","sources":["../../L/continuation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAE1C,MAAM,SAAS,CAAC,CAAC,YAAY,CAAI,KAAa,EAAE,CAAU;IACxD,OAAO,MAAM;QACX,CAAC,OAAO,CAAC,EAAE,IAAI;QACf,KAAK,EAAE;YACL,IAAI,EAAE,cAAc;YACpB,KAAK;YACL,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
package/dist/L/emit.d.ts CHANGED
@@ -1,5 +1,3 @@
1
- import type { EnsureNarrow } from "liminal-util";
2
- import type { Rune } from "../Rune.ts";
3
- export interface emit<E> extends Generator<Rune<E>, void> {
4
- }
5
- export declare function emit<const E>(event: EnsureNarrow<E>): emit<E>;
1
+ import { Rune } from "../Rune.ts";
2
+ import type { EnsureNarrow } from "../util/EnsureNarrow.ts";
3
+ export declare function emit<E>(event: EnsureNarrow<E>): Generator<Rune<E>, void>;
package/dist/L/emit.js CHANGED
@@ -1,6 +1,11 @@
1
- import { Fiber } from "../Fiber.js";
1
+ import { Rune, RuneKey } from "../Rune.js";
2
2
  export function* emit(event) {
3
- const self = yield* Fiber;
4
- self.handle(event);
3
+ return yield {
4
+ [RuneKey]: true,
5
+ value: {
6
+ kind: "event",
7
+ event,
8
+ },
9
+ };
5
10
  }
6
11
  //# sourceMappingURL=emit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAKnC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAU,KAAsB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAG1C,MAAM,SAAS,CAAC,CAAC,IAAI,CAAI,KAAsB;IAC7C,OAAO,MAAM;QACX,CAAC,OAAO,CAAC,EAAE,IAAI;QACf,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,KAAK;SACN;KACF,CAAA;AACH,CAAC"}
package/dist/L/infer.d.ts CHANGED
@@ -1,7 +1,4 @@
1
- import type { SchemaObject } from "liminal-schema";
2
1
  import { type LEvent } from "../LEvent.ts";
3
2
  import type { Rune } from "../Rune.ts";
4
- export { infer_ as infer };
5
- interface infer_ extends Generator<Rune<LEvent>, string> {
6
- }
7
- declare function infer_(schema?: SchemaObject): infer_;
3
+ import { Schema } from "../Schema.ts";
4
+ export declare function infer(schema?: Schema): Generator<Rune<LEvent>, string>;
package/dist/L/infer.js CHANGED
@@ -1,27 +1,28 @@
1
- import { assert } from "liminal-util";
2
1
  import { InferenceRequested, Inferred } from "../LEvent.js";
3
- import { MessageRegistryContext } from "../MessageRegistry.js";
4
- import { ModelRegistryContext } from "../ModelRegistry.js";
5
- import { RequestCounter } from "./_common.js";
2
+ import { LiminalAssertionError } from "../LiminalAssertionError.js";
3
+ import { Schema } from "../Schema.js";
4
+ import { continuation } from "./continuation.js";
6
5
  import { emit } from "./emit.js";
7
- import { rune } from "./rune.js";
8
- export { infer_ as infer };
9
- function* infer_(schema) {
10
- const modelRegistry = ModelRegistryContext.getOrInit();
11
- const model = modelRegistry.peek();
12
- assert(model);
13
- const requestId = RequestCounter.next();
6
+ import { reflect } from "./reflect.js";
7
+ export function* infer(schema) {
8
+ const { context: { models, messages }, signal } = yield* reflect;
9
+ const model = models.peek();
10
+ LiminalAssertionError.assert(model);
11
+ const requestId = crypto.randomUUID();
14
12
  yield* emit(new InferenceRequested(requestId, schema));
15
- const messageRegistry = MessageRegistryContext.getOrInit();
16
- const inference = yield* rune((fiber) => model
17
- .seal({
18
- messages: messageRegistry.messages,
19
- schema,
20
- signal: fiber.controller.signal,
21
- })
22
- .resolve(), "infer");
13
+ let inference = yield* continuation("infer", () => model.seal({
14
+ messages,
15
+ ...schema && {
16
+ schema: schema.type === "object"
17
+ ? schema
18
+ : Schema.wrap(schema),
19
+ },
20
+ signal,
21
+ }).resolve());
22
+ if (schema?.type && schema.type !== "object") {
23
+ inference = JSON.stringify(JSON.parse(inference).value);
24
+ }
23
25
  yield* emit(new Inferred(requestId, inference));
24
26
  return inference;
25
27
  }
26
- Object.defineProperty(infer_, "name", { value: "infer" });
27
28
  //# sourceMappingURL=infer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"infer.js","sourceRoot":"","sources":["../../L/infer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAe,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA;AAI1B,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAqB;IACpC,MAAM,aAAa,GAAG,oBAAoB,CAAC,SAAS,EAAE,CAAA;IACtD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;IACvC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,EAAE,CAAA;IAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,KAAK;SACF,IAAI,CAAC;QACJ,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,MAAM;QACN,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;KAChC,CAAC;SACD,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IACxB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"infer.js","sourceRoot":"","sources":["../../L/infer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAe,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,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,SAAS,CAAC,CAAC,KAAK,CAAC,MAAe;IACpC,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;IAC3B,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IACrC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,CAChD,KAAK,CAAC,IAAI,CAAC;QACT,QAAQ;QACR,GAAG,MAAM,IAAI;YACX,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAC9B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACxB;QACD,MAAM;KACP,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IACf,IAAI,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7C,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;IACD,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC"}
@@ -1,6 +1,4 @@
1
- import { type LEvent } from "../LEvent.ts";
2
- import type { ContentPart, MessageRole } from "../Message.ts";
1
+ import { LEvent } from "../LEvent.ts";
2
+ import type { Content, MessageRole } from "../Message.ts";
3
3
  import type { Rune } from "../Rune.ts";
4
- export interface message extends Generator<Rune<LEvent>, void> {
5
- }
6
- export declare function message(role: MessageRole, content: Array<ContentPart>): message;
4
+ export declare function message(role: MessageRole, content: Array<Content>): Generator<Rune<LEvent>, void>;
package/dist/L/message.js CHANGED
@@ -1,10 +1,10 @@
1
- import { MessageAppended } from "../LEvent.js";
2
- import { MessageRegistryContext } from "../MessageRegistry.js";
1
+ import { LEvent, MessageAppended } from "../LEvent.js";
3
2
  import { emit } from "./emit.js";
3
+ import { reflect } from "./reflect.js";
4
4
  export function* message(role, content) {
5
- const messageRegistry = MessageRegistryContext.getOrInit();
6
- const message = { role, content };
5
+ const { context: { messages } } = yield* reflect;
6
+ const message = { role, parts: content };
7
7
  yield* emit(new MessageAppended(message));
8
- messageRegistry.append(message);
8
+ messages.push(message);
9
9
  }
10
10
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../L/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,IAAiB,EAAE,OAA2B;IACrE,MAAM,eAAe,GAAG,sBAAsB,CAAC,SAAS,EAAE,CAAA;IAC1D,MAAM,OAAO,GAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAC1C,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../L/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,IAAiB,EAAE,OAAuB;IACjE,MAAM,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA;IAChD,MAAM,OAAO,GAAY,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;IACjD,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IACzC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC"}
package/dist/L/model.d.ts CHANGED
@@ -1,6 +1,4 @@
1
- import { ModelRegistered } from "../LEvent.ts";
1
+ import type { LEvent } from "../LEvent.ts";
2
2
  import type { Model } from "../Model.ts";
3
3
  import type { Rune } from "../Rune.ts";
4
- export interface model extends Generator<Rune<ModelRegistered>, void> {
5
- }
6
- export declare function model(model: Model): model;
4
+ export declare function model(model: Model): Generator<Rune<LEvent>, Model>;
package/dist/L/model.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { ModelRegistered } from "../LEvent.js";
2
- import { ModelRegistryContext } from "../ModelRegistry.js";
3
2
  import { emit } from "./emit.js";
3
+ import { reflect } from "./reflect.js";
4
4
  export function* model(model) {
5
- const registry = ModelRegistryContext.getOrInit();
6
- registry.register(model);
5
+ const { context: { models } } = yield* reflect;
6
+ models.register(model);
7
7
  yield* emit(new ModelRegistered(model));
8
+ return model;
8
9
  }
9
10
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,KAAY;IACjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,CAAA;IACjD,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAG9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,KAAY;IACjC,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,OAAO,CAAA;IAC9C,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACtB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IACvC,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { LEvent } from "../LEvent.ts";
2
+ import { Rune } from "../Rune.ts";
3
+ import type { Strand } from "../Strand.ts";
4
+ export declare const reflect: Iterable<Rune<LEvent>, Strand>;
@@ -0,0 +1,10 @@
1
+ import { Rune, RuneKey } from "../Rune.js";
2
+ export const reflect = {
3
+ *[Symbol.iterator]() {
4
+ return yield {
5
+ [RuneKey]: true,
6
+ value: { kind: "reflect" },
7
+ };
8
+ },
9
+ };
10
+ //# sourceMappingURL=reflect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../L/reflect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAG1C,MAAM,CAAC,MAAM,OAAO,GAAmC;IACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,MAAM;YACX,CAAC,OAAO,CAAC,EAAE,IAAI;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SAC3B,CAAA;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { Definition } from "../Definition.ts";
2
+ import type { Handler } from "../Handler.ts";
3
+ import type { Message } from "../Message.ts";
4
+ import { ModelRegistry } from "../ModelRegistry.ts";
5
+ import type { Rune } from "../Rune.ts";
6
+ import { Strand } from "../Strand.ts";
7
+ import type { Tool } from "../Tool.ts";
8
+ export interface RunConfig<Y extends Rune<any>> {
9
+ handler?: Handler<Y> | undefined;
10
+ models?: ModelRegistry | undefined;
11
+ messages?: Array<Message> | undefined;
12
+ tools?: Set<Tool> | undefined;
13
+ signal?: AbortSignal | undefined;
14
+ }
15
+ export declare function run<Y extends Rune<any>, T>(definition: Definition<Y, T>, config?: RunConfig<Y>): Strand<Y, T>;
package/dist/L/run.js ADDED
@@ -0,0 +1,16 @@
1
+ import { Context } from "../Context.js";
2
+ import { ModelRegistry } from "../ModelRegistry.js";
3
+ import { Strand } from "../Strand.js";
4
+ export function run(definition, config) {
5
+ const context = Context({
6
+ handler: config?.handler,
7
+ models: config?.models ?? new ModelRegistry(),
8
+ messages: config?.messages ?? [],
9
+ tools: config?.tools ?? new Set(),
10
+ });
11
+ return new Strand(definition, {
12
+ signal: config?.signal,
13
+ ...config && { context },
14
+ });
15
+ }
16
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../L/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAWrC,MAAM,UAAU,GAAG,CAAyB,UAA4B,EAAE,MAAqB;IAC7F,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,OAAO;QACxB,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,aAAa,EAAE;QAC7C,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,EAAE;QAChC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE;KAClC,CAAC,CAAA;IACF,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE;QAC5B,MAAM,EAAE,MAAM,EAAE,MAAM;QACtB,GAAG,MAAM,IAAI,EAAE,OAAO,EAAE;KACzB,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { Schema } from "../../Schema.ts";
2
+ export declare function make<S extends Schema>(schema: Omit<S, "T">, description?: string): S & TypeBase;
3
+ export interface TypeBase {
4
+ (template: TemplateStringsArray, ...substitutions: Array<string>): this;
5
+ (...values: Array<string>): this;
6
+ }
@@ -0,0 +1,19 @@
1
+ import { isTemplateStringsArray } from "../../util/isTemplateStringsArray.js";
2
+ export function make(schema, description) {
3
+ const schema_ = {
4
+ ...schema,
5
+ ...description && { description },
6
+ };
7
+ const Type = Object.assign(function describe(e0, ...rest) {
8
+ const junction = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
9
+ return make(schema_, description ? `${description}${junction ? `\n\n${junction}` : ""}` : junction);
10
+ }, schema_);
11
+ Object.defineProperty(Type, "toJSON", {
12
+ value() {
13
+ return schema_;
14
+ },
15
+ enumerable: false,
16
+ });
17
+ return Type;
18
+ }
19
+ //# sourceMappingURL=_schema_common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_schema_common.js","sourceRoot":"","sources":["../../../L/schema/_schema_common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAA;AAE7E,MAAM,UAAU,IAAI,CAAmB,MAAoB,EAAE,WAAoB;IAC/E,MAAM,OAAO,GAAG;QACd,GAAG,MAAM;QACT,GAAG,WAAW,IAAI,EAAE,WAAW,EAAE;KAClC,CAAA;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,QAAQ,CAAC,EAAkC,EAAE,GAAG,IAAmB;QACrG,MAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1E,OAAO,IAAI,CACT,OAAO,EACP,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAC9E,CAAA;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;IACX,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;QACpC,KAAK;YACH,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,UAAU,EAAE,KAAK;KAClB,CAAC,CAAA;IACF,OAAO,IAAa,CAAA;AACtB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Schema, SchemaAnyOf } from "../../Schema.ts";
2
+ export interface anyOf<XA extends Array<Schema> = Array<Schema>> extends SchemaAnyOf<XA[number]["T"]> {
3
+ anyOf: XA;
4
+ }
5
+ export declare function anyOf<XA extends Array<Schema>>(anyOf: XA): anyOf<XA>;
@@ -0,0 +1,5 @@
1
+ import { make } from "./_schema_common.js";
2
+ export function anyOf(anyOf) {
3
+ return make({ anyOf });
4
+ }
5
+ //# sourceMappingURL=anyOf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anyOf.js","sourceRoot":"","sources":["../../../L/schema/anyOf.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM1C,MAAM,UAAU,KAAK,CAA2B,KAAS;IACvD,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;AACxB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Schema, SchemaArray } from "../../Schema.ts";
2
+ export interface LArray<X extends Schema = Schema> extends SchemaArray<Array<X["T"]>> {
3
+ items: X;
4
+ }
5
+ export declare function array<X extends Schema>(items: X): LArray<X>;
@@ -0,0 +1,8 @@
1
+ import { make } from "./_schema_common.js";
2
+ export function array(items) {
3
+ return make({
4
+ type: "array",
5
+ items,
6
+ });
7
+ }
8
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../../L/schema/array.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAM1C,MAAM,UAAU,KAAK,CAAmB,KAAQ;IAC9C,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,OAAO;QACb,KAAK;KACN,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaBoolean } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ interface boolean_ extends SchemaBoolean<boolean>, TypeBase {
4
+ }
5
+ declare const boolean_: boolean_;
6
+ export { boolean_ as boolean };
@@ -0,0 +1,4 @@
1
+ import { make } from "./_schema_common.js";
2
+ const boolean_ = make({ type: "boolean" });
3
+ export { boolean_ as boolean };
4
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boolean.js","sourceRoot":"","sources":["../../../L/schema/boolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAIzD,MAAM,QAAQ,GAAa,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAEpD,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { SchemaString } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ interface const_<K extends string> extends SchemaString<K>, TypeBase {
4
+ enum?: never;
5
+ const: K;
6
+ }
7
+ declare function const_<K extends string>(value: K): const_<K>;
8
+ export { const_ as const };
@@ -0,0 +1,10 @@
1
+ import { make } from "./_schema_common.js";
2
+ function const_(value) {
3
+ return make({
4
+ type: "string",
5
+ const: value,
6
+ });
7
+ }
8
+ Object.defineProperty(const_, "name", { value: "const" });
9
+ export { const_ as const };
10
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../../../L/schema/const.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAOzD,SAAS,MAAM,CAAmB,KAAQ;IACxC,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,KAAK;KACb,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;AAEzD,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { SchemaString } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ interface enum_<V extends Array<string> = Array<string>> extends SchemaString<V[number]>, TypeBase {
4
+ enum: V;
5
+ const?: never;
6
+ }
7
+ declare function enum_<const V extends Array<string>>(...values: V): enum_<V>;
8
+ export { enum_ as enum };
@@ -0,0 +1,10 @@
1
+ import { make } from "./_schema_common.js";
2
+ function enum_(...values) {
3
+ return make({
4
+ type: "string",
5
+ enum: values,
6
+ });
7
+ }
8
+ Object.defineProperty(enum_, "name", { value: "enum" });
9
+ export { enum_ as enum };
10
+ //# sourceMappingURL=enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enum.js","sourceRoot":"","sources":["../../../L/schema/enum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAOzD,SAAS,KAAK,CAAgC,GAAG,MAAS;IACxD,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;KACb,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAEvD,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { SchemaInteger } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ export interface integer extends SchemaInteger<number>, TypeBase {
4
+ }
5
+ export declare const integer: integer;
@@ -0,0 +1,3 @@
1
+ import { make } from "./_schema_common.js";
2
+ export const integer = make({ type: "integer" });
3
+ //# sourceMappingURL=integer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integer.js","sourceRoot":"","sources":["../../../L/schema/integer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAIzD,MAAM,CAAC,MAAM,OAAO,GAAY,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaNull } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ export interface null_ extends SchemaNull<null>, TypeBase {
4
+ }
5
+ declare const null_: null_;
6
+ export { null_ as null };
@@ -0,0 +1,4 @@
1
+ import { make } from "./_schema_common.js";
2
+ const null_ = make({ type: "null" });
3
+ export { null_ as null };
4
+ //# sourceMappingURL=null.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"null.js","sourceRoot":"","sources":["../../../L/schema/null.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAIzD,MAAM,KAAK,GAAU,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;AAE3C,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { SchemaNumber } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ interface number_ extends SchemaNumber<number>, TypeBase {
4
+ }
5
+ declare const number_: number_;
6
+ export { number_ as number };
@@ -0,0 +1,4 @@
1
+ import { make } from "./_schema_common.js";
2
+ const number_ = make({ type: "number" });
3
+ export { number_ as number };
4
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.js","sourceRoot":"","sources":["../../../L/schema/number.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAIzD,MAAM,OAAO,GAAY,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAEjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { Schema, SchemaObject } from "../../Schema.ts";
2
+ interface object_<F extends Record<string, Schema> = Record<string, Schema>> extends SchemaObject<{
3
+ [K in keyof F]: F[K]["T"];
4
+ }> {
5
+ properties: F;
6
+ required: Array<Extract<keyof F, string>>;
7
+ }
8
+ declare function object_<XR extends Record<string, Schema>>(properties: XR): object_<XR>;
9
+ export { object_ as object };
@@ -0,0 +1,12 @@
1
+ import { make } from "./_schema_common.js";
2
+ function object_(properties) {
3
+ return make({
4
+ type: "object",
5
+ properties,
6
+ additionalProperties: false,
7
+ required: Object.keys(properties),
8
+ });
9
+ }
10
+ Object.defineProperty(object_, "name", { value: "object" });
11
+ export { object_ as object };
12
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../L/schema/object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAS1C,SAAS,OAAO,CAAoC,UAAc;IAChE,OAAO,IAAI,CAAC;QACV,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAU;KAC3C,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { SchemaString } from "../../Schema.ts";
2
+ import { type TypeBase } from "./_schema_common.ts";
3
+ interface string_ extends SchemaString<string>, TypeBase {
4
+ enum?: never;
5
+ const?: never;
6
+ }
7
+ declare const string_: string_;
8
+ export { string_ as string };
@@ -0,0 +1,4 @@
1
+ import { make } from "./_schema_common.js";
2
+ const string_ = make({ type: "string" });
3
+ export { string_ as string };
4
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../../L/schema/string.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAiB,MAAM,qBAAqB,CAAA;AAOzD,MAAM,OAAO,GAAY,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAEjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,CAAA"}
@@ -1,16 +1,5 @@
1
+ import type { Context } from "../Context.ts";
2
+ import type { Definition } from "../Definition.ts";
3
+ import type { LEvent } from "../LEvent.ts";
1
4
  import { type Rune } from "../Rune.ts";
2
- import { Runic } from "../Runic.ts";
3
- import type { StrandConfig } from "../StrandConfig.ts";
4
- export interface strand<Y extends Rune, T> extends Iterable<Y, T>, PromiseLike<T> {
5
- }
6
- export declare function strand<X extends Runic>(runic: X, config?: StrandConfig<Runic.T<X>, Rune.E<Runic.Y<X>>>): strand<Runic.Y<X>, Runic.T<X>>;
7
- export declare function strand<XA extends Array<Runic>>(runics: XA, config?: StrandConfig<{
8
- [I in keyof XA]: Runic.T<XA[I]>;
9
- }, Rune.E<Runic.Y<XA[number]>>>): strand<Runic.Y<XA[number]> | Rune<never>, {
10
- [I in keyof XA]: Runic.T<XA[I]>;
11
- }>;
12
- export declare function strand<XR extends Record<keyof any, Runic>>(runics: XR, config?: StrandConfig<{
13
- [K in keyof XR]: Runic.T<XR[K]>;
14
- }, Rune.E<Runic.Y<XR[keyof XR]>>>): strand<Runic.Y<XR[keyof XR]> | Rune<never>, {
15
- [K in keyof XR]: Runic.T<XR[K]>;
16
- }>;
5
+ export declare function strand<Y extends Rune<any>, T>(definition: Definition<Y, T>, context?: Context): Generator<Rune<LEvent>, T>;