liminal 0.5.13 → 0.5.15

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 (134) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Context.ts +21 -4
  3. package/Definition.ts +16 -0
  4. package/L/L.ts +10 -1
  5. package/L/all.ts +4 -0
  6. package/L/assistant.ts +5 -3
  7. package/L/catch.ts +4 -0
  8. package/L/continuation.ts +3 -2
  9. package/L/emit.ts +6 -2
  10. package/L/infer.ts +16 -10
  11. package/L/message.ts +7 -3
  12. package/L/model.ts +4 -0
  13. package/L/reflect.ts +2 -1
  14. package/L/run.ts +2 -1
  15. package/L/schema/_schema_common.ts +29 -0
  16. package/L/schema/anyOf.ts +10 -0
  17. package/L/schema/array.ts +13 -0
  18. package/L/schema/boolean.ts +8 -0
  19. package/L/schema/const.ts +18 -0
  20. package/L/schema/enum.ts +18 -0
  21. package/L/schema/integer.ts +6 -0
  22. package/L/schema/null.ts +8 -0
  23. package/L/schema/number.ts +8 -0
  24. package/L/schema/object.ts +21 -0
  25. package/L/schema/string.ts +11 -0
  26. package/L/strand.ts +6 -2
  27. package/L/stream.ts +2 -1
  28. package/Message.ts +3 -2
  29. package/Model.ts +4 -4
  30. package/ModelRegistry.ts +16 -3
  31. package/Rune.ts +36 -7
  32. package/Schema.ts +4 -4
  33. package/Strand.ts +37 -6
  34. package/dist/Context.d.ts +19 -0
  35. package/dist/Context.js +7 -2
  36. package/dist/Context.js.map +1 -1
  37. package/dist/Definition.d.ts +14 -0
  38. package/dist/Definition.js +11 -0
  39. package/dist/Definition.js.map +1 -1
  40. package/dist/L/L.d.ts +10 -1
  41. package/dist/L/L.js +10 -1
  42. package/dist/L/L.js.map +1 -1
  43. package/dist/L/all.d.ts +4 -0
  44. package/dist/L/all.js.map +1 -1
  45. package/dist/L/assistant.d.ts +4 -0
  46. package/dist/L/assistant.js +1 -3
  47. package/dist/L/assistant.js.map +1 -1
  48. package/dist/L/catch.d.ts +4 -0
  49. package/dist/L/catch.js +4 -0
  50. package/dist/L/catch.js.map +1 -1
  51. package/dist/L/continuation.d.ts +1 -0
  52. package/dist/L/continuation.js +3 -2
  53. package/dist/L/continuation.js.map +1 -1
  54. package/dist/L/emit.d.ts +4 -0
  55. package/dist/L/emit.js +6 -2
  56. package/dist/L/emit.js.map +1 -1
  57. package/dist/L/infer.d.ts +4 -0
  58. package/dist/L/infer.js +11 -7
  59. package/dist/L/infer.js.map +1 -1
  60. package/dist/L/message.d.ts +6 -2
  61. package/dist/L/message.js +5 -1
  62. package/dist/L/message.js.map +1 -1
  63. package/dist/L/model.d.ts +4 -0
  64. package/dist/L/model.js +4 -0
  65. package/dist/L/model.js.map +1 -1
  66. package/dist/L/reflect.d.ts +1 -0
  67. package/dist/L/reflect.js +2 -1
  68. package/dist/L/reflect.js.map +1 -1
  69. package/dist/L/run.d.ts +2 -1
  70. package/dist/L/run.js.map +1 -1
  71. package/dist/L/schema/_schema_common.d.ts +6 -0
  72. package/dist/L/schema/_schema_common.js +19 -0
  73. package/dist/L/schema/_schema_common.js.map +1 -0
  74. package/dist/L/schema/anyOf.d.ts +5 -0
  75. package/dist/L/schema/anyOf.js +5 -0
  76. package/dist/L/schema/anyOf.js.map +1 -0
  77. package/dist/L/schema/array.d.ts +5 -0
  78. package/dist/L/schema/array.js +8 -0
  79. package/dist/L/schema/array.js.map +1 -0
  80. package/dist/L/schema/boolean.d.ts +6 -0
  81. package/dist/L/schema/boolean.js +4 -0
  82. package/dist/L/schema/boolean.js.map +1 -0
  83. package/dist/L/schema/const.d.ts +8 -0
  84. package/dist/L/schema/const.js +10 -0
  85. package/dist/L/schema/const.js.map +1 -0
  86. package/dist/L/schema/enum.d.ts +8 -0
  87. package/dist/L/schema/enum.js +10 -0
  88. package/dist/L/schema/enum.js.map +1 -0
  89. package/dist/L/schema/integer.d.ts +5 -0
  90. package/dist/L/schema/integer.js +3 -0
  91. package/dist/L/schema/integer.js.map +1 -0
  92. package/dist/L/schema/null.d.ts +6 -0
  93. package/dist/L/schema/null.js +4 -0
  94. package/dist/L/schema/null.js.map +1 -0
  95. package/dist/L/schema/number.d.ts +6 -0
  96. package/dist/L/schema/number.js +4 -0
  97. package/dist/L/schema/number.js.map +1 -0
  98. package/dist/L/schema/object.d.ts +9 -0
  99. package/dist/L/schema/object.js +12 -0
  100. package/dist/L/schema/object.js.map +1 -0
  101. package/dist/L/schema/string.d.ts +8 -0
  102. package/dist/L/schema/string.js +4 -0
  103. package/dist/L/schema/string.js.map +1 -0
  104. package/dist/L/strand.d.ts +4 -0
  105. package/dist/L/strand.js +6 -2
  106. package/dist/L/strand.js.map +1 -1
  107. package/dist/L/stream.d.ts +1 -0
  108. package/dist/L/stream.js +2 -1
  109. package/dist/L/stream.js.map +1 -1
  110. package/dist/Message.d.ts +3 -2
  111. package/dist/Model.d.ts +4 -4
  112. package/dist/Model.js +4 -4
  113. package/dist/ModelRegistry.d.ts +11 -1
  114. package/dist/ModelRegistry.js +16 -3
  115. package/dist/ModelRegistry.js.map +1 -1
  116. package/dist/Rune.d.ts +29 -8
  117. package/dist/Rune.js +2 -0
  118. package/dist/Rune.js.map +1 -1
  119. package/dist/Schema.d.ts +2 -2
  120. package/dist/Schema.js +2 -2
  121. package/dist/Schema.js.map +1 -1
  122. package/dist/Strand.d.ts +24 -0
  123. package/dist/Strand.js +27 -4
  124. package/dist/Strand.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/dist/util/JSONValue.d.ts +1 -1
  127. package/dist/util/JSONValue.js +21 -9
  128. package/dist/util/JSONValue.js.map +1 -1
  129. package/package.json +1 -1
  130. package/util/JSONValue.ts +23 -8
  131. package/L/context.ts +0 -12
  132. package/dist/L/context.d.ts +0 -2
  133. package/dist/L/context.js +0 -12
  134. package/dist/L/context.js.map +0 -1
package/dist/L/reflect.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { Rune, RuneKey } from "../Rune.js";
2
+ /** Returns the current strand instance, providing access to context and parent information. */
2
3
  export const reflect = {
3
4
  *[Symbol.iterator]() {
4
5
  return yield {
5
6
  [RuneKey]: true,
6
- value: { kind: "reflect" },
7
+ instruction: { kind: "reflect" },
7
8
  };
8
9
  },
9
10
  };
@@ -1 +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"}
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../../L/reflect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAG1C,+FAA+F;AAC/F,MAAM,CAAC,MAAM,OAAO,GAAmC;IACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,MAAM;YACX,CAAC,OAAO,CAAC,EAAE,IAAI;YACf,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;SACjC,CAAA;IACH,CAAC;CACF,CAAA"}
package/dist/L/run.d.ts CHANGED
@@ -5,6 +5,7 @@ import { ModelRegistry } from "../ModelRegistry.ts";
5
5
  import type { Rune } from "../Rune.ts";
6
6
  import { Strand } from "../Strand.ts";
7
7
  import type { Tool } from "../Tool.ts";
8
+ /** Configuration options for running a definition. */
8
9
  export interface RunConfig<Y extends Rune<any>> {
9
10
  handler?: Handler<Y> | undefined;
10
11
  models?: ModelRegistry | undefined;
@@ -12,4 +13,4 @@ export interface RunConfig<Y extends Rune<any>> {
12
13
  tools?: Set<Tool> | undefined;
13
14
  signal?: AbortSignal | undefined;
14
15
  }
15
- export declare function run<Y extends Rune<any>, T>(definition: Definition<Y, T>, config?: RunConfig<Y>): Strand;
16
+ export declare function run<Y extends Rune<any>, T>(definition: Definition<Y, T>, config?: RunConfig<Y>): Strand<Y, T>;
package/dist/L/run.js.map CHANGED
@@ -1 +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"}
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;AAYrC,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"}
@@ -2,4 +2,8 @@ import type { Context } from "../Context.ts";
2
2
  import type { Definition } from "../Definition.ts";
3
3
  import type { LEvent } from "../LEvent.ts";
4
4
  import { type Rune } from "../Rune.ts";
5
+ /**
6
+ * Creates a child strand that executes a definition.
7
+ * Optionally specify the context. Otherwise the current context is inherited.
8
+ */
5
9
  export declare function strand<Y extends Rune<any>, T>(definition: Definition<Y, T>, context?: Context): Generator<Rune<LEvent>, T>;
package/dist/L/strand.js CHANGED
@@ -1,9 +1,13 @@
1
1
  import { RuneKey } from "../Rune.js";
2
+ /**
3
+ * Creates a child strand that executes a definition.
4
+ * Optionally specify the context. Otherwise the current context is inherited.
5
+ */
2
6
  export function* strand(definition, context) {
3
7
  return yield {
4
8
  [RuneKey]: true,
5
- value: {
6
- kind: "child",
9
+ instruction: {
10
+ kind: "create_child",
7
11
  definition,
8
12
  context,
9
13
  },
@@ -1 +1 @@
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
+ {"version":3,"file":"strand.js","sourceRoot":"","sources":["../../L/strand.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAE/C;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,MAAM,CACrB,UAA4B,EAC5B,OAAiB;IAEjB,OAAO,MAAM;QACX,CAAC,OAAO,CAAC,EAAE,IAAI;QACf,WAAW,EAAE;YACX,IAAI,EAAE,cAAc;YACpB,UAAU;YACV,OAAO;SACR;KACF,CAAA;AACH,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { type LEvent } from "../LEvent.ts";
2
2
  import type { Rune } from "../Rune.ts";
3
+ /** Creates a readable stream of content from the current model. */
3
4
  export declare const stream: Iterable<Rune<LEvent>, ReadableStream<string>>;
package/dist/L/stream.js CHANGED
@@ -3,6 +3,7 @@ import { LiminalAssertionError } from "../LiminalAssertionError.js";
3
3
  import { continuation } from "./continuation.js";
4
4
  import { emit } from "./emit.js";
5
5
  import { reflect } from "./reflect.js";
6
+ /** Creates a readable stream of content from the current model. */
6
7
  export const stream = {
7
8
  *[Symbol.iterator]() {
8
9
  const { context: { models, messages }, signal } = yield* reflect;
@@ -10,7 +11,7 @@ export const stream = {
10
11
  LiminalAssertionError.assert(model);
11
12
  const requestId = crypto.randomUUID();
12
13
  yield* emit(new InferenceRequested(requestId));
13
- return yield* continuation("stream", () => model.seal({ messages, signal }).stream());
14
+ return yield* continuation("stream", model.seal({ messages, signal }).stream);
14
15
  },
15
16
  };
16
17
  //# sourceMappingURL=stream.js.map
@@ -1 +1 @@
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
+ {"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,mEAAmE;AACnE,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,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IAC/E,CAAC;CACF,CAAA"}
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
@@ -2,9 +2,9 @@ import type { Message } from "./Message.ts";
2
2
  import type { SchemaObject } from "./Schema.ts";
3
3
  import type { Tool } from "./Tool.ts";
4
4
  export declare class Model {
5
- readonly vendor: string;
5
+ readonly client: string;
6
6
  readonly seal: (envelope: Envelope) => SealedEnvelope;
7
- constructor(vendor: string, seal: (envelope: Envelope) => SealedEnvelope);
7
+ constructor(client: string, seal: (envelope: Envelope) => SealedEnvelope);
8
8
  }
9
9
  export interface Envelope {
10
10
  messages: Array<Message>;
@@ -13,6 +13,6 @@ export interface Envelope {
13
13
  tools?: Set<Tool> | undefined;
14
14
  }
15
15
  export interface SealedEnvelope {
16
- resolve(): Promise<string>;
17
- stream(): ReadableStream<string>;
16
+ resolve: () => Promise<string>;
17
+ stream: () => ReadableStream<string>;
18
18
  }
package/dist/Model.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { attachCustomInspect } from "./util/attachCustomInspect.js";
2
2
  export class Model {
3
- vendor;
3
+ client;
4
4
  seal;
5
- constructor(vendor, seal) {
6
- this.vendor = vendor;
5
+ constructor(client, seal) {
6
+ this.client = client;
7
7
  this.seal = seal;
8
8
  }
9
9
  static {
10
- attachCustomInspect(this, ({ vendor }) => ({ vendor }));
10
+ attachCustomInspect(this, ({ client }) => ({ client }));
11
11
  }
12
12
  }
13
13
  //# sourceMappingURL=Model.js.map
@@ -1,11 +1,21 @@
1
1
  import type { Model } from "./Model.ts";
2
- /** An intrusive list for storing `Model`s. */
2
+ /**
3
+ * An intrusive doubly-linked list for storing `Model`s.
4
+ * Provides efficient insertion, removal, and lookups.
5
+ */
3
6
  export declare class ModelRegistry {
4
7
  head?: ModelRegistryNode | undefined;
5
8
  tail?: ModelRegistryNode | undefined;
9
+ /** Returns the most recently registered model */
6
10
  peek(): Model | undefined;
11
+ /**
12
+ * Registers a new model and returns the created node
13
+ * @param value The model to register
14
+ */
7
15
  register(value: Model): ModelRegistryNode;
16
+ /** Remove a model from the registry. */
8
17
  remove(node: ModelRegistryNode): void;
18
+ /** Creates a deep copy of this registry. */
9
19
  clone(): ModelRegistry;
10
20
  }
11
21
  export interface ModelRegistryNode {
@@ -1,8 +1,16 @@
1
- /** An intrusive list for storing `Model`s. */
1
+ /**
2
+ * An intrusive doubly-linked list for storing `Model`s.
3
+ * Provides efficient insertion, removal, and lookups.
4
+ */
2
5
  export class ModelRegistry {
6
+ /** Returns the most recently registered model */
3
7
  peek() {
4
8
  return this.tail?.model;
5
9
  }
10
+ /**
11
+ * Registers a new model and returns the created node
12
+ * @param value The model to register
13
+ */
6
14
  register(value) {
7
15
  const node = {
8
16
  prev: this.tail,
@@ -17,6 +25,7 @@ export class ModelRegistry {
17
25
  this.tail = node;
18
26
  return node;
19
27
  }
28
+ /** Remove a model from the registry. */
20
29
  remove(node) {
21
30
  if (node.prev) {
22
31
  node.prev.next = node.next;
@@ -30,12 +39,16 @@ export class ModelRegistry {
30
39
  if (node === this.tail) {
31
40
  this.tail = node.prev;
32
41
  }
33
- node.prev = node.next = undefined;
42
+ node.prev = undefined;
43
+ delete node.next;
34
44
  }
45
+ /** Creates a deep copy of this registry. */
35
46
  clone() {
36
47
  const instance = new ModelRegistry();
37
48
  for (let node = this.head; node; node = node.next) {
38
- instance.register(node.model);
49
+ if (node.model) {
50
+ instance.register(node.model);
51
+ }
39
52
  }
40
53
  return instance;
41
54
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,aAAa;IAIxB,iDAAiD;IACjD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED;;;OAGG;IACH,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,wCAAwC;IACxC,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,SAAS,CAAA;QACrB,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,4CAA4C;IAC5C,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,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
package/dist/Rune.d.ts CHANGED
@@ -1,25 +1,46 @@
1
1
  import type { Context } from "./Context.ts";
2
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
+ */
3
10
  export interface Rune<E> {
4
11
  [RuneKey]: true;
5
- value: {
6
- kind: "continuation";
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";
7
19
  debug: string;
8
20
  f: () => any;
9
- } | {
10
- kind: "event";
21
+ }
22
+ /** Dispatch an event to the registered handler. */
23
+ interface Emit<E> {
24
+ kind: "emit";
11
25
  event: E;
12
- } | {
26
+ }
27
+ /** Tells the runtime to provide a reference to the current strand */
28
+ interface Reflect {
13
29
  kind: "reflect";
14
- } | {
15
- kind: "child";
30
+ }
31
+ /** Creates a nested execution context with its own definition. */
32
+ interface CreateChild {
33
+ kind: "create_child";
16
34
  definition: Definition;
17
35
  context?: Context | undefined;
18
- };
36
+ }
19
37
  }
20
38
  export declare namespace Rune {
39
+ /** Extract the event type from a Rune type. */
21
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. */
22
42
  function is(value: unknown): value is Rune<any>;
23
43
  }
44
+ /** Symbol used to identify Rune objects. */
24
45
  export declare const RuneKey: unique symbol;
25
46
  export type RuneKey = typeof RuneKey;
package/dist/Rune.js CHANGED
@@ -1,9 +1,11 @@
1
1
  export var Rune;
2
2
  (function (Rune) {
3
+ /** Type guard to check if a value is a Rune. */
3
4
  function is(value) {
4
5
  return typeof value === "object" && value !== null && RuneKey in value;
5
6
  }
6
7
  Rune.is = is;
7
8
  })(Rune || (Rune = {}));
9
+ /** Symbol used to identify Rune objects. */
8
10
  export const RuneKey = Symbol.for("liminal/RuneKey");
9
11
  //# sourceMappingURL=Rune.js.map
package/dist/Rune.js.map CHANGED
@@ -1 +1 @@
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"}
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/Schema.d.ts CHANGED
@@ -36,9 +36,9 @@ export interface SchemaBase<T> {
36
36
  export declare namespace Schema {
37
37
  function compile<T>(key: WeakKey, { schema: schema_, validate, }: {
38
38
  schema(): unknown;
39
- validate(value: unknown): Promise<T>;
39
+ validate(value: unknown): T;
40
40
  }): Schema<any>;
41
- function validateValue<T>(schema: Schema<T>, value: unknown): Promise<T>;
41
+ function validateValue<T>(schema: Schema<T>, value: unknown): T;
42
42
  function id(schema: Schema, description?: string): Promise<string>;
43
43
  function wrap(schema: Schema): SchemaObject;
44
44
  function validate(value: unknown): Schema;
package/dist/Schema.js CHANGED
@@ -15,10 +15,10 @@ export var Schema;
15
15
  return schema;
16
16
  }
17
17
  Schema.compile = compile;
18
- async function validateValue(schema, value) {
18
+ function validateValue(schema, value) {
19
19
  const validator = validators.get(schema);
20
20
  LE.assert(validator);
21
- return await validator(value);
21
+ return validator(value);
22
22
  }
23
23
  Schema.validateValue = validateValue;
24
24
  async function id(schema, description) {
@@ -1 +1 @@
1
- {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../Schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Schema.js","sourceRoot":"","sources":["../Schema.ts"],"names":[],"mappings":"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"}