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.
- package/CHANGELOG.md +12 -0
- package/Context.ts +21 -4
- package/Definition.ts +16 -0
- package/L/L.ts +10 -1
- package/L/all.ts +4 -0
- package/L/assistant.ts +5 -3
- package/L/catch.ts +4 -0
- package/L/continuation.ts +3 -2
- package/L/emit.ts +6 -2
- package/L/infer.ts +16 -10
- package/L/message.ts +7 -3
- package/L/model.ts +4 -0
- package/L/reflect.ts +2 -1
- package/L/run.ts +2 -1
- package/L/schema/_schema_common.ts +29 -0
- package/L/schema/anyOf.ts +10 -0
- package/L/schema/array.ts +13 -0
- package/L/schema/boolean.ts +8 -0
- package/L/schema/const.ts +18 -0
- package/L/schema/enum.ts +18 -0
- package/L/schema/integer.ts +6 -0
- package/L/schema/null.ts +8 -0
- package/L/schema/number.ts +8 -0
- package/L/schema/object.ts +21 -0
- package/L/schema/string.ts +11 -0
- package/L/strand.ts +6 -2
- package/L/stream.ts +2 -1
- package/Message.ts +3 -2
- package/Model.ts +4 -4
- package/ModelRegistry.ts +16 -3
- package/Rune.ts +36 -7
- package/Schema.ts +4 -4
- package/Strand.ts +37 -6
- package/dist/Context.d.ts +19 -0
- package/dist/Context.js +7 -2
- package/dist/Context.js.map +1 -1
- package/dist/Definition.d.ts +14 -0
- package/dist/Definition.js +11 -0
- package/dist/Definition.js.map +1 -1
- package/dist/L/L.d.ts +10 -1
- package/dist/L/L.js +10 -1
- package/dist/L/L.js.map +1 -1
- package/dist/L/all.d.ts +4 -0
- package/dist/L/all.js.map +1 -1
- package/dist/L/assistant.d.ts +4 -0
- package/dist/L/assistant.js +1 -3
- package/dist/L/assistant.js.map +1 -1
- package/dist/L/catch.d.ts +4 -0
- package/dist/L/catch.js +4 -0
- package/dist/L/catch.js.map +1 -1
- package/dist/L/continuation.d.ts +1 -0
- package/dist/L/continuation.js +3 -2
- package/dist/L/continuation.js.map +1 -1
- package/dist/L/emit.d.ts +4 -0
- package/dist/L/emit.js +6 -2
- package/dist/L/emit.js.map +1 -1
- package/dist/L/infer.d.ts +4 -0
- package/dist/L/infer.js +11 -7
- package/dist/L/infer.js.map +1 -1
- package/dist/L/message.d.ts +6 -2
- package/dist/L/message.js +5 -1
- package/dist/L/message.js.map +1 -1
- package/dist/L/model.d.ts +4 -0
- package/dist/L/model.js +4 -0
- package/dist/L/model.js.map +1 -1
- package/dist/L/reflect.d.ts +1 -0
- package/dist/L/reflect.js +2 -1
- package/dist/L/reflect.js.map +1 -1
- package/dist/L/run.d.ts +2 -1
- package/dist/L/run.js.map +1 -1
- package/dist/L/schema/_schema_common.d.ts +6 -0
- package/dist/L/schema/_schema_common.js +19 -0
- package/dist/L/schema/_schema_common.js.map +1 -0
- package/dist/L/schema/anyOf.d.ts +5 -0
- package/dist/L/schema/anyOf.js +5 -0
- package/dist/L/schema/anyOf.js.map +1 -0
- package/dist/L/schema/array.d.ts +5 -0
- package/dist/L/schema/array.js +8 -0
- package/dist/L/schema/array.js.map +1 -0
- package/dist/L/schema/boolean.d.ts +6 -0
- package/dist/L/schema/boolean.js +4 -0
- package/dist/L/schema/boolean.js.map +1 -0
- package/dist/L/schema/const.d.ts +8 -0
- package/dist/L/schema/const.js +10 -0
- package/dist/L/schema/const.js.map +1 -0
- package/dist/L/schema/enum.d.ts +8 -0
- package/dist/L/schema/enum.js +10 -0
- package/dist/L/schema/enum.js.map +1 -0
- package/dist/L/schema/integer.d.ts +5 -0
- package/dist/L/schema/integer.js +3 -0
- package/dist/L/schema/integer.js.map +1 -0
- package/dist/L/schema/null.d.ts +6 -0
- package/dist/L/schema/null.js +4 -0
- package/dist/L/schema/null.js.map +1 -0
- package/dist/L/schema/number.d.ts +6 -0
- package/dist/L/schema/number.js +4 -0
- package/dist/L/schema/number.js.map +1 -0
- package/dist/L/schema/object.d.ts +9 -0
- package/dist/L/schema/object.js +12 -0
- package/dist/L/schema/object.js.map +1 -0
- package/dist/L/schema/string.d.ts +8 -0
- package/dist/L/schema/string.js +4 -0
- package/dist/L/schema/string.js.map +1 -0
- package/dist/L/strand.d.ts +4 -0
- package/dist/L/strand.js +6 -2
- package/dist/L/strand.js.map +1 -1
- package/dist/L/stream.d.ts +1 -0
- package/dist/L/stream.js +2 -1
- package/dist/L/stream.js.map +1 -1
- package/dist/Message.d.ts +3 -2
- package/dist/Model.d.ts +4 -4
- package/dist/Model.js +4 -4
- package/dist/ModelRegistry.d.ts +11 -1
- package/dist/ModelRegistry.js +16 -3
- package/dist/ModelRegistry.js.map +1 -1
- package/dist/Rune.d.ts +29 -8
- package/dist/Rune.js +2 -0
- package/dist/Rune.js.map +1 -1
- package/dist/Schema.d.ts +2 -2
- package/dist/Schema.js +2 -2
- package/dist/Schema.js.map +1 -1
- package/dist/Strand.d.ts +24 -0
- package/dist/Strand.js +27 -4
- package/dist/Strand.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/util/JSONValue.d.ts +1 -1
- package/dist/util/JSONValue.js +21 -9
- package/dist/util/JSONValue.js.map +1 -1
- package/package.json +1 -1
- package/util/JSONValue.ts +23 -8
- package/L/context.ts +0 -12
- package/dist/L/context.d.ts +0 -2
- package/dist/L/context.js +0 -12
- 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
|
-
|
|
7
|
+
instruction: { kind: "reflect" },
|
|
7
8
|
};
|
|
8
9
|
},
|
|
9
10
|
};
|
package/dist/L/reflect.js.map
CHANGED
|
@@ -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,
|
|
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;
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|
package/dist/L/strand.d.ts
CHANGED
|
@@ -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
|
-
|
|
6
|
-
kind: "
|
|
9
|
+
instruction: {
|
|
10
|
+
kind: "create_child",
|
|
7
11
|
definition,
|
|
8
12
|
context,
|
|
9
13
|
},
|
package/dist/L/strand.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/L/stream.d.ts
CHANGED
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",
|
|
14
|
+
return yield* continuation("stream", model.seal({ messages, signal }).stream);
|
|
14
15
|
},
|
|
15
16
|
};
|
|
16
17
|
//# sourceMappingURL=stream.js.map
|
package/dist/L/stream.js.map
CHANGED
|
@@ -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,
|
|
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
|
|
3
|
+
readonly parts: Array<Content>;
|
|
4
4
|
}
|
|
5
5
|
export type MessageRole = "system" | "user" | "assistant";
|
|
6
|
-
export type
|
|
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
|
|
5
|
+
readonly client: string;
|
|
6
6
|
readonly seal: (envelope: Envelope) => SealedEnvelope;
|
|
7
|
-
constructor(
|
|
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()
|
|
17
|
-
stream()
|
|
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
|
-
|
|
3
|
+
client;
|
|
4
4
|
seal;
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
5
|
+
constructor(client, seal) {
|
|
6
|
+
this.client = client;
|
|
7
7
|
this.seal = seal;
|
|
8
8
|
}
|
|
9
9
|
static {
|
|
10
|
-
attachCustomInspect(this, ({
|
|
10
|
+
attachCustomInspect(this, ({ client }) => ({ client }));
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=Model.js.map
|
package/dist/ModelRegistry.d.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import type { Model } from "./Model.ts";
|
|
2
|
-
/**
|
|
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 {
|
package/dist/ModelRegistry.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
/**
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":"
|
|
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):
|
|
39
|
+
validate(value: unknown): T;
|
|
40
40
|
}): Schema<any>;
|
|
41
|
-
function validateValue<T>(schema: Schema<T>, value: unknown):
|
|
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
|
-
|
|
18
|
+
function validateValue(schema, value) {
|
|
19
19
|
const validator = validators.get(schema);
|
|
20
20
|
LE.assert(validator);
|
|
21
|
-
return
|
|
21
|
+
return validator(value);
|
|
22
22
|
}
|
|
23
23
|
Schema.validateValue = validateValue;
|
|
24
24
|
async function id(schema, description) {
|
package/dist/Schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../Schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,qBAAqB,IAAI,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAqDxE,MAAM,KAAW,MAAM,CAwHtB;AAxHD,WAAiB,MAAM;IACrB,MAAM,GAAG,GAAG,IAAI,OAAO,EAAkC,CAAA;IACzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAmB,CAAA;IAC9C,MAAM,UAAU,GAAG,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../Schema.ts"],"names":[],"mappings":"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"}
|