liminal 0.5.5 → 0.5.7
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/Agent.ts +18 -9
- package/CHANGELOG.md +14 -0
- package/Context.ts +36 -28
- package/EventBase.ts +2 -11
- package/Fiber.ts +46 -0
- package/Handler.ts +6 -0
- package/L/L.ts +0 -1
- package/L/_infer.ts +14 -20
- package/L/_message.ts +5 -2
- package/L/branch.ts +10 -18
- package/L/emit.ts +6 -8
- package/L/model.ts +10 -4
- package/L/rune.ts +2 -1
- package/LEvent.ts +15 -1
- package/MessageRegistry.ts +21 -0
- package/{state/ModelRegistry.ts → ModelRegistry.ts} +19 -12
- package/Rune.ts +3 -1
- package/Runic.ts +11 -3
- package/dist/Agent.d.ts +11 -3
- package/dist/Agent.js +10 -8
- package/dist/Agent.js.map +1 -1
- package/dist/Context.d.ts +11 -9
- package/dist/Context.js +29 -25
- package/dist/Context.js.map +1 -1
- package/dist/EventBase.js +2 -11
- package/dist/EventBase.js.map +1 -1
- package/dist/Fiber.d.ts +12 -0
- package/dist/Fiber.js +44 -0
- package/dist/Fiber.js.map +1 -0
- package/dist/Handler.d.ts +4 -1
- package/dist/Handler.js +2 -1
- package/dist/Handler.js.map +1 -1
- package/dist/L/L.d.ts +0 -1
- package/dist/L/L.js +0 -1
- package/dist/L/L.js.map +1 -1
- package/dist/L/_infer.js +15 -17
- package/dist/L/_infer.js.map +1 -1
- package/dist/L/_message.js +5 -2
- package/dist/L/_message.js.map +1 -1
- package/dist/L/branch.js +10 -18
- package/dist/L/branch.js.map +1 -1
- package/dist/L/emit.js +6 -8
- package/dist/L/emit.js.map +1 -1
- package/dist/L/model.d.ts +2 -1
- package/dist/L/model.js +9 -3
- package/dist/L/model.js.map +1 -1
- package/dist/L/rune.d.ts +2 -1
- package/dist/L/rune.js +1 -0
- package/dist/L/rune.js.map +1 -1
- package/dist/LEvent.d.ts +12 -1
- package/dist/LEvent.js +7 -0
- package/dist/LEvent.js.map +1 -1
- package/dist/MessageRegistry.d.ts +9 -0
- package/dist/MessageRegistry.js +15 -0
- package/dist/MessageRegistry.js.map +1 -0
- package/dist/{state/ModelRegistry.d.ts → ModelRegistry.d.ts} +4 -2
- package/dist/{state/ModelRegistry.js → ModelRegistry.js} +12 -6
- package/dist/ModelRegistry.js.map +1 -0
- package/dist/Rune.d.ts +2 -1
- package/dist/Rune.js.map +1 -1
- package/dist/Runic.d.ts +3 -3
- package/dist/Runic.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +4 -3
- package/package.json +2 -2
- package/Globals.ts +0 -10
- package/L/fork.ts +0 -20
- package/L/namespace.ts +0 -11
- package/dist/Globals.d.ts +0 -6
- package/dist/Globals.js +0 -2
- package/dist/Globals.js.map +0 -1
- package/dist/L/fork.d.ts +0 -1
- package/dist/L/fork.js +0 -20
- package/dist/L/fork.js.map +0 -1
- package/dist/L/namespace.d.ts +0 -1
- package/dist/L/namespace.js +0 -12
- package/dist/L/namespace.js.map +0 -1
- package/dist/run.d.ts +0 -4
- package/dist/run.js +0 -35
- package/dist/run.js.map +0 -1
- package/dist/state/Fiber.d.ts +0 -9
- package/dist/state/Fiber.js +0 -14
- package/dist/state/Fiber.js.map +0 -1
- package/dist/state/Globals.d.ts +0 -9
- package/dist/state/Globals.js +0 -10
- package/dist/state/Globals.js.map +0 -1
- package/dist/state/MessageRegistry.d.ts +0 -7
- package/dist/state/MessageRegistry.js +0 -14
- package/dist/state/MessageRegistry.js.map +0 -1
- package/dist/state/ModelConfig.d.ts +0 -31
- package/dist/state/ModelConfig.js +0 -17
- package/dist/state/ModelConfig.js.map +0 -1
- package/dist/state/ModelRegistry.js.map +0 -1
- package/dist/state/StateMap.d.ts +0 -1
- package/dist/state/StateMap.js +0 -2
- package/dist/state/StateMap.js.map +0 -1
- package/run.ts +0 -37
- package/state/Fiber.ts +0 -13
- package/state/Globals.ts +0 -12
- package/state/MessageRegistry.ts +0 -17
- package/state/ModelConfig.ts +0 -47
- package/state/StateMap.ts +0 -0
package/dist/Context.js
CHANGED
|
@@ -1,37 +1,41 @@
|
|
|
1
1
|
import { assert } from "liminal-util";
|
|
2
2
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
|
+
const storage = new AsyncLocalStorage();
|
|
3
4
|
export class Context extends Map {
|
|
4
|
-
static
|
|
5
|
-
|
|
6
|
-
const instance = new Context();
|
|
7
|
-
if (context) {
|
|
8
|
-
for (const [key, value] of context.entries()) {
|
|
9
|
-
instance.set(key, key(value));
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
return instance;
|
|
13
|
-
}
|
|
14
|
-
static unwrap() {
|
|
15
|
-
const context = this.storage.getStore();
|
|
5
|
+
static ensure() {
|
|
6
|
+
const context = storage.getStore();
|
|
16
7
|
assert(context);
|
|
17
8
|
return context;
|
|
18
9
|
}
|
|
19
|
-
|
|
20
|
-
return
|
|
21
|
-
}
|
|
22
|
-
static getAssert(factory) {
|
|
23
|
-
const value = this.get(factory);
|
|
24
|
-
assert(value);
|
|
25
|
-
return value;
|
|
10
|
+
get(context) {
|
|
11
|
+
return super.get(context);
|
|
26
12
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (!instance) {
|
|
31
|
-
instance = factory();
|
|
32
|
-
context.set(factory, instance);
|
|
13
|
+
getOrInit(context, init) {
|
|
14
|
+
if (this.has(context)) {
|
|
15
|
+
return this.get(context);
|
|
33
16
|
}
|
|
17
|
+
const instance = init();
|
|
18
|
+
this.set(context, instance);
|
|
34
19
|
return instance;
|
|
35
20
|
}
|
|
21
|
+
set(context, value) {
|
|
22
|
+
super.set(context, value);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
run(callback) {
|
|
26
|
+
return storage.run(this, callback);
|
|
27
|
+
}
|
|
28
|
+
clone(overrides) {
|
|
29
|
+
const context = new Context(overrides);
|
|
30
|
+
for (const [handle, value] of this.entries()) {
|
|
31
|
+
if (!context.has(handle)) {
|
|
32
|
+
context.set(handle, handle.clone?.(value) ?? value);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return context;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function ContextHandle(clone) {
|
|
39
|
+
return { clone };
|
|
36
40
|
}
|
|
37
41
|
//# sourceMappingURL=Context.js.map
|
package/dist/Context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAW,CAAA;AAEhD,MAAM,OAAO,OAAQ,SAAQ,GAA2B;IACtD,MAAM,CAAC,MAAM;QACX,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;QAClC,MAAM,CAAC,OAAO,CAAC,CAAA;QACf,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,GAAG,CAAI,OAAyB;QAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAU,CAAA;IACpC,CAAC;IAED,SAAS,CAAI,OAAyB,EAAE,IAAa;QACnD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAM,CAAA;QAC/B,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC3B,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,GAAG,CAAI,OAAyB,EAAE,KAAQ;QACxC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,GAAG,CAAI,QAAiB;QACtB,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAA8C;QAClD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAA;QACtC,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA;YACrD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAMD,MAAM,UAAU,aAAa,CAAI,KAAuB;IACtD,OAAO,EAAE,KAAK,EAAE,CAAA;AAClB,CAAC"}
|
package/dist/EventBase.js
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { attachCustomInspect } from "liminal-util";
|
|
2
2
|
export function EventBase(brand, type) {
|
|
3
3
|
return class {
|
|
4
4
|
brand = brand;
|
|
5
5
|
type = type;
|
|
6
|
-
// Allows us to circumvent a false positive ts error related to private symbols.
|
|
7
|
-
// https://github.com/microsoft/TypeScript/issues/58496
|
|
8
6
|
static {
|
|
9
|
-
|
|
10
|
-
[inspect.custom]: {
|
|
11
|
-
value(depth, options) {
|
|
12
|
-
const { brand: _0, type: _1, ...rest } = this;
|
|
13
|
-
return `${this.constructor.name} ` + inspect(rest, { ...options, depth });
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
});
|
|
7
|
+
attachCustomInspect(this, ({ brand: _0, type: _1, ...rest }) => rest);
|
|
17
8
|
}
|
|
18
9
|
};
|
|
19
10
|
}
|
package/dist/EventBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventBase.js","sourceRoot":"","sources":["../EventBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EventBase.js","sourceRoot":"","sources":["../EventBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAOlD,MAAM,UAAU,SAAS,CAAqC,KAAQ,EAAE,IAAO;IAC7E,OAAO;QACI,KAAK,GAAG,KAAK,CAAA;QACb,IAAI,GAAG,IAAI,CAAA;QAEpB;YACE,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAA;QACvE,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/dist/Fiber.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Context } from "./Context.ts";
|
|
2
|
+
import type { Rune } from "./Rune.ts";
|
|
3
|
+
import { Runic } from "./Runic.ts";
|
|
4
|
+
export declare class Fiber<T = any> {
|
|
5
|
+
readonly runic: Runic<Rune, T>;
|
|
6
|
+
readonly index: number;
|
|
7
|
+
readonly parent?: Fiber;
|
|
8
|
+
context: Context;
|
|
9
|
+
pending: Promise<T> | undefined;
|
|
10
|
+
constructor(runic: Runic<Rune, T>, parent?: Fiber);
|
|
11
|
+
resolve(this: Fiber<T>): Promise<T>;
|
|
12
|
+
}
|
package/dist/Fiber.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { attachCustomInspect } from "liminal-util";
|
|
2
|
+
import { Context } from "./Context.js";
|
|
3
|
+
import { Runic } from "./Runic.js";
|
|
4
|
+
let nextIndex = 0;
|
|
5
|
+
export class Fiber {
|
|
6
|
+
runic;
|
|
7
|
+
index = nextIndex++;
|
|
8
|
+
context = Context.ensure();
|
|
9
|
+
pending;
|
|
10
|
+
constructor(runic, parent) {
|
|
11
|
+
this.runic = runic;
|
|
12
|
+
if (parent) {
|
|
13
|
+
this.parent = parent;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
resolve() {
|
|
17
|
+
if (!this.pending) {
|
|
18
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
19
|
+
this.pending = promise;
|
|
20
|
+
const iterator = Runic.unwrap(this.runic);
|
|
21
|
+
let nextArg;
|
|
22
|
+
this.context.run(async () => {
|
|
23
|
+
try {
|
|
24
|
+
let current = await iterator.next();
|
|
25
|
+
while (!current.done) {
|
|
26
|
+
const rune = current.value;
|
|
27
|
+
nextArg = await rune(this);
|
|
28
|
+
current = await iterator.next(nextArg);
|
|
29
|
+
}
|
|
30
|
+
const { value } = current;
|
|
31
|
+
resolve(value);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
reject(error);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return this.pending;
|
|
39
|
+
}
|
|
40
|
+
static {
|
|
41
|
+
attachCustomInspect(this, ({ index, parent }) => ({ index, ...parent && { parent } }));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=Fiber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../Fiber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,IAAI,SAAS,GAAG,CAAC,CAAA;AAEjB,MAAM,OAAO,KAAK;IAKK;IAJZ,KAAK,GAAG,SAAS,EAAE,CAAA;IAE5B,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAC1B,OAAO,CAAwB;IAC/B,YAAqB,KAAqB,EAAE,MAAc;QAArC,UAAK,GAAL,KAAK,CAAgB;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAK,CAAA;YAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;YACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzC,IAAI,OAAgB,CAAA;YACpB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC1B,IAAI,CAAC;oBACH,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACnC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;wBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;wBAC1B,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;wBAC1B,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;oBACxC,CAAC;oBACD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;oBACzB,OAAO,CAAC,KAAK,CAAC,CAAA;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAA;gBACf,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;QACE,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;IACxF,CAAC;CACF"}
|
package/dist/Handler.d.ts
CHANGED
package/dist/Handler.js
CHANGED
package/dist/Handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../Handler.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAK5C,MAAM,CAAC,MAAM,cAAc,GAAuC,aAAa,EAAE,CAAA"}
|
package/dist/L/L.d.ts
CHANGED
package/dist/L/L.js
CHANGED
package/dist/L/L.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"L.js","sourceRoot":"","sources":["../../L/L.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,
|
|
1
|
+
{"version":3,"file":"L.js","sourceRoot":"","sources":["../../L/L.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
package/dist/L/_infer.js
CHANGED
|
@@ -1,31 +1,29 @@
|
|
|
1
1
|
import { assert } from "liminal-util";
|
|
2
|
-
import { Context } from "../Context.js";
|
|
2
|
+
import { Context, ContextHandle } from "../Context.js";
|
|
3
3
|
import { InferenceRequested, Inferred } from "../LEvent.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { MessageRegistryContext } from "../MessageRegistry.js";
|
|
5
|
+
import { ModelRegistryContext } from "../ModelRegistry.js";
|
|
6
6
|
import { emit } from "./emit.js";
|
|
7
7
|
import { rune } from "./rune.js";
|
|
8
8
|
export function* _infer(schema) {
|
|
9
|
-
const
|
|
9
|
+
const context = Context.ensure();
|
|
10
|
+
const modelRegistry = context.get(ModelRegistryContext);
|
|
11
|
+
assert(modelRegistry);
|
|
10
12
|
const model = modelRegistry.peek();
|
|
11
13
|
assert(model);
|
|
12
|
-
const
|
|
13
|
-
const counter = Context.getOrInit(InferenceRequestCounter);
|
|
14
|
-
const requestId = counter.next();
|
|
14
|
+
const requestId = context.getOrInit(InferenceRequestCounterContext, () => new InferenceRequestCounter()).next();
|
|
15
15
|
yield* emit(new InferenceRequested(requestId, schema));
|
|
16
|
+
const messageRegistry = context.get(MessageRegistryContext);
|
|
17
|
+
assert(messageRegistry);
|
|
16
18
|
const inference = yield* rune(() => model.resolve(messageRegistry.messages, schema));
|
|
17
19
|
yield* emit(new Inferred(requestId, inference));
|
|
18
20
|
return inference;
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
},
|
|
26
|
-
clone() {
|
|
27
|
-
return InferenceRequestCounter(this);
|
|
28
|
-
},
|
|
29
|
-
};
|
|
22
|
+
class InferenceRequestCounter {
|
|
23
|
+
count = 0;
|
|
24
|
+
next() {
|
|
25
|
+
return this.count++;
|
|
26
|
+
}
|
|
30
27
|
}
|
|
28
|
+
const InferenceRequestCounterContext = ContextHandle();
|
|
31
29
|
//# sourceMappingURL=_infer.js.map
|
package/dist/L/_infer.js.map
CHANGED
|
@@ -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,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"_infer.js","sourceRoot":"","sources":["../../L/_infer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACtD,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,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAqB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IACvD,MAAM,CAAC,aAAa,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,8BAA8B,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC/G,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAC3D,MAAM,CAAC,eAAe,CAAC,CAAA;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IACpF,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,uBAAuB;IAC3B,KAAK,GAAW,CAAC,CAAA;IACjB,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC;CACF;AAED,MAAM,8BAA8B,GAA2C,aAAa,EAAE,CAAA"}
|
package/dist/L/_message.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { assert } from "liminal-util";
|
|
1
2
|
import { Context } from "../Context.js";
|
|
2
3
|
import { MessageAppended } from "../LEvent.js";
|
|
3
|
-
import {
|
|
4
|
+
import { MessageRegistryContext } from "../MessageRegistry.js";
|
|
4
5
|
import { emit } from "./emit.js";
|
|
5
6
|
export function* _message(role, content) {
|
|
6
|
-
const
|
|
7
|
+
const context = Context.ensure();
|
|
8
|
+
const messageRegistry = context.get(MessageRegistryContext);
|
|
9
|
+
assert(messageRegistry);
|
|
7
10
|
const message = { role, content };
|
|
8
11
|
yield* emit(new MessageAppended(message));
|
|
9
12
|
messageRegistry.append(message);
|
package/dist/L/_message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_message.js","sourceRoot":"","sources":["../../L/_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"_message.js","sourceRoot":"","sources":["../../L/_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,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,QAAQ,CAAC,IAAiB,EAAE,OAA2B;IACtE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IAC3D,MAAM,CAAC,eAAe,CAAC,CAAA;IACvB,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"}
|
package/dist/L/branch.js
CHANGED
|
@@ -1,28 +1,20 @@
|
|
|
1
1
|
import { Context } from "../Context.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Fiber } from "../Fiber.js";
|
|
3
3
|
import {} from "../Rune.js";
|
|
4
|
-
import { Fiber } from "../state/Fiber.js";
|
|
5
4
|
import { rune } from "./rune.js";
|
|
6
5
|
export function* branch(value) {
|
|
7
|
-
const
|
|
6
|
+
const context = Context.ensure();
|
|
7
|
+
const parent = yield* rune((fiber) => fiber);
|
|
8
8
|
if (Array.isArray(value)) {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
context.set(Fiber.make, new Fiber(parent));
|
|
12
|
-
return () => run(runic, context);
|
|
13
|
-
});
|
|
14
|
-
return yield* rune(() => Promise.all(runners.map((runner) => runner())));
|
|
9
|
+
const fibers = value.map((runic) => context.clone().run(() => new Fiber(runic, parent)));
|
|
10
|
+
return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.resolve())));
|
|
15
11
|
}
|
|
16
12
|
else if (typeof value === "object") {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return async () => [key, await run(runic, context)];
|
|
21
|
-
});
|
|
22
|
-
return yield* rune(() => Promise.all(runners.map((runner) => runner())).then(Object.fromEntries));
|
|
13
|
+
const entries = Object.entries(value);
|
|
14
|
+
const fibers = entries.map(([_key, runic]) => context.clone().run(() => new Fiber(runic, parent)));
|
|
15
|
+
return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.resolve())).then(Object.fromEntries));
|
|
23
16
|
}
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
return yield* rune(() => run(typeof value === "function" ? value() : value, context));
|
|
17
|
+
const fiber = context.clone().run(() => new Fiber(typeof value === "function" ? value() : value, parent));
|
|
18
|
+
return yield* rune(() => fiber.resolve());
|
|
27
19
|
}
|
|
28
20
|
//# sourceMappingURL=branch.js.map
|
package/dist/L/branch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../L/branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../L/branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAa,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAWhC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,KAAsD;IAC5E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACxF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IAC/E,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACrC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QAClG,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IACxG,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;IACzG,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;AAC3C,CAAC"}
|
package/dist/L/emit.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { Context } from "../Context.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { HandlerContext } from "../Handler.js";
|
|
3
|
+
import { rune } from "./rune.js";
|
|
4
4
|
export function* emit(event) {
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
timestamp: Date.now(),
|
|
10
|
-
});
|
|
5
|
+
const context = Context.ensure();
|
|
6
|
+
const handler = context.get(HandlerContext);
|
|
7
|
+
const fiber = yield* rune((fiber) => fiber);
|
|
8
|
+
handler?.call(fiber, event);
|
|
11
9
|
}
|
|
12
10
|
//# sourceMappingURL=emit.js.map
|
package/dist/L/emit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAU,KAAsB;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IAC3C,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC"}
|
package/dist/L/model.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ModelRegistered } from "../LEvent.ts";
|
|
1
2
|
import type { Model } from "../Model.ts";
|
|
2
3
|
import type { Rune } from "../Rune.ts";
|
|
3
|
-
export interface model extends Generator<Rune<
|
|
4
|
+
export interface model extends Generator<Rune<ModelRegistered>, void> {
|
|
4
5
|
}
|
|
5
6
|
export declare function model(model: Model): model;
|
package/dist/L/model.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
import { assert } from "liminal-util";
|
|
1
2
|
import { Context } from "../Context.js";
|
|
2
|
-
import {
|
|
3
|
+
import { ModelRegistered } from "../LEvent.js";
|
|
4
|
+
import { ModelRegistryContext } from "../ModelRegistry.js";
|
|
5
|
+
import { emit } from "./emit.js";
|
|
3
6
|
export function* model(model) {
|
|
4
|
-
const
|
|
5
|
-
|
|
7
|
+
const context = Context.ensure();
|
|
8
|
+
const registry = context.get(ModelRegistryContext);
|
|
9
|
+
assert(registry);
|
|
10
|
+
registry.register(model);
|
|
11
|
+
yield* emit(new ModelRegistered(model));
|
|
6
12
|
}
|
|
7
13
|
//# sourceMappingURL=model.js.map
|
package/dist/L/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,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,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;IAClD,MAAM,CAAC,QAAQ,CAAC,CAAA;IAChB,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACxB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;AACzC,CAAC"}
|
package/dist/L/rune.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { Fiber } from "../Fiber.ts";
|
|
1
2
|
import { type Rune } from "../Rune.ts";
|
|
2
3
|
export interface rune<T> extends Iterable<Rune<never>, T> {
|
|
3
4
|
<E>(): Generator<Rune<E>, T>;
|
|
4
5
|
}
|
|
5
|
-
export declare function rune<R>(source: () => R): rune<Awaited<R>>;
|
|
6
|
+
export declare function rune<R>(source: (fiber: Fiber) => R): rune<Awaited<R>>;
|
package/dist/L/rune.js
CHANGED
package/dist/L/rune.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rune.js","sourceRoot":"","sources":["../../L/rune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAM/C,MAAM,UAAU,IAAI,CAAI,
|
|
1
|
+
{"version":3,"file":"rune.js","sourceRoot":"","sources":["../../L/rune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAM/C,MAAM,UAAU,IAAI,CAAI,MAA2B;IACjD,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC;QACP,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAW,EAAE,CAAC,CAAA;IAChE,CAAC,EACD;QACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAW,EAAE,CAAC,CAAA;QAChE,CAAC;KACF,CACF,CAAA;AACH,CAAC"}
|
package/dist/LEvent.d.ts
CHANGED
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import type { SchemaObject } from "liminal-schema";
|
|
2
2
|
import type { Message } from "./Message.ts";
|
|
3
|
-
|
|
3
|
+
import type { Model } from "./Model.ts";
|
|
4
|
+
export type LEvent = FiberCreated | FiberResolved | FiberStarted | InferenceRequested | Inferred | MessageAppended | ModelRegistered;
|
|
4
5
|
export declare const LEventTag: unique symbol;
|
|
5
6
|
export type LEventTag = typeof LEventTag;
|
|
7
|
+
declare const ModelRegistered_base: {
|
|
8
|
+
new (): {
|
|
9
|
+
readonly brand: typeof LEventTag;
|
|
10
|
+
readonly type: "model_registered";
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare class ModelRegistered extends ModelRegistered_base {
|
|
14
|
+
readonly model: Model;
|
|
15
|
+
constructor(model: Model);
|
|
16
|
+
}
|
|
6
17
|
declare const InferenceRequested_base: {
|
|
7
18
|
new (): {
|
|
8
19
|
readonly brand: typeof LEventTag;
|
package/dist/LEvent.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { EventBase } from "./EventBase.js";
|
|
2
2
|
export const LEventTag = Symbol.for("liminal/LEvent");
|
|
3
|
+
export class ModelRegistered extends EventBase(LEventTag, "model_registered") {
|
|
4
|
+
model;
|
|
5
|
+
constructor(model) {
|
|
6
|
+
super();
|
|
7
|
+
this.model = model;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
3
10
|
export class InferenceRequested extends EventBase(LEventTag, "inference_requested") {
|
|
4
11
|
requestId;
|
|
5
12
|
constructor(requestId, schema) {
|
package/dist/LEvent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa1C,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAGpE,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,KAAY;QAC/B,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAO;IAEjC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAGtE;IADX,YACW,SAAiB,EAC1B,MAAiC;QAEjC,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QAI1B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAEjD;IACA;IAFX,YACW,SAAiB,EACjB,SAAiB;QAE1B,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAQ;IAG5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,OAAgB;QACnC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAS;IAErC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;CAAG;AAC1E,MAAM,OAAO,YAAa,SAAQ,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;CAAG;AAC1E,MAAM,OAAO,aAAc,SAAQ,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAClD;IAArB,YAAqB,KAAU;QAC7B,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAK;IAE/B,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAA;AAC1E,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ContextHandle } from "./Context.ts";
|
|
2
|
+
import type { Message } from "./Message.ts";
|
|
3
|
+
export declare class MessageRegistry {
|
|
4
|
+
messages: Array<Message>;
|
|
5
|
+
constructor(messages?: Array<Message>);
|
|
6
|
+
append(message: Message): void;
|
|
7
|
+
clone(): MessageRegistry;
|
|
8
|
+
}
|
|
9
|
+
export declare const MessageRegistryContext: ContextHandle<MessageRegistry>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ContextHandle } from "./Context.js";
|
|
2
|
+
export class MessageRegistry {
|
|
3
|
+
messages;
|
|
4
|
+
constructor(messages) {
|
|
5
|
+
this.messages = messages ?? [];
|
|
6
|
+
}
|
|
7
|
+
append(message) {
|
|
8
|
+
this.messages.push(message);
|
|
9
|
+
}
|
|
10
|
+
clone() {
|
|
11
|
+
return new MessageRegistry([...this.messages]);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export const MessageRegistryContext = ContextHandle(({ messages }) => new MessageRegistry([...messages]));
|
|
15
|
+
//# sourceMappingURL=MessageRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageRegistry.js","sourceRoot":"","sources":["../MessageRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,OAAO,eAAe;IAC1B,QAAQ,CAAgB;IACxB,YAAY,QAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,OAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAmC,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACnG,IAAI,eAAe,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CACnC,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ContextHandle } from "./Context.ts";
|
|
2
|
+
import type { Model } from "./Model.ts";
|
|
2
3
|
/** An intrusive list for storing `Model`s. */
|
|
3
4
|
export declare class ModelRegistry {
|
|
4
|
-
static make(modelRegistry?: ModelRegistry): ModelRegistry;
|
|
5
5
|
head?: ModelRegistryNode | undefined;
|
|
6
6
|
tail?: ModelRegistryNode | undefined;
|
|
7
|
+
constructor(models?: Array<Model>);
|
|
7
8
|
peek(): Model | undefined;
|
|
8
9
|
register(value: Model): ModelRegistryNode;
|
|
9
10
|
remove(node: ModelRegistryNode): void;
|
|
@@ -13,3 +14,4 @@ export interface ModelRegistryNode {
|
|
|
13
14
|
model: Model;
|
|
14
15
|
next?: ModelRegistryNode | undefined;
|
|
15
16
|
}
|
|
17
|
+
export declare const ModelRegistryContext: ContextHandle<ModelRegistry>;
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
+
import { ContextHandle } from "./Context.js";
|
|
1
2
|
/** An intrusive list for storing `Model`s. */
|
|
2
3
|
export class ModelRegistry {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
instance.register(node.model);
|
|
4
|
+
constructor(models) {
|
|
5
|
+
if (models) {
|
|
6
|
+
for (const model of models) {
|
|
7
|
+
this.register(model);
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
return instance;
|
|
11
10
|
}
|
|
12
11
|
peek() {
|
|
13
12
|
return this.tail?.model;
|
|
@@ -42,4 +41,11 @@ export class ModelRegistry {
|
|
|
42
41
|
node.prev = node.next = undefined;
|
|
43
42
|
}
|
|
44
43
|
}
|
|
44
|
+
export const ModelRegistryContext = ContextHandle(({ head }) => {
|
|
45
|
+
const instance = new ModelRegistry();
|
|
46
|
+
for (let node = head; node; node = node.next) {
|
|
47
|
+
instance.register(node.model);
|
|
48
|
+
}
|
|
49
|
+
return instance;
|
|
50
|
+
});
|
|
45
51
|
//# sourceMappingURL=ModelRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IAIxB,YAAY,MAAqB;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,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;CACF;AAQD,MAAM,CAAC,MAAM,oBAAoB,GAAiC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3F,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;IACpC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
package/dist/Rune.d.ts
CHANGED
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":"AAWA,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAGhE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;AACxE,CAAC"}
|
package/dist/Runic.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Rune } from "./Rune.ts";
|
|
2
2
|
export type RuneIterator<Y extends Rune = Rune, T = any> = Iterator<Y, T> | AsyncIterator<Y, T>;
|
|
3
|
-
export type RuneIterable<Y extends Rune, T> = Iterable<Y, T> | AsyncIterable<Y, T>;
|
|
3
|
+
export type RuneIterable<Y extends Rune = Rune, T = any> = Iterable<Y, T> | AsyncIterable<Y, T>;
|
|
4
4
|
export type Runic<Y extends Rune = Rune, T = any> = RuneIterable<Y, T> | (() => RuneIterable<Y, T>);
|
|
5
5
|
export declare namespace Runic {
|
|
6
|
-
type Y<
|
|
7
|
-
type T<
|
|
6
|
+
type Y<X extends Runic> = X extends RuneIterable<infer Y> ? Y : X extends () => RuneIterable<infer Y> ? Y : X extends RuneIterator<infer Y> ? Y : never;
|
|
7
|
+
type T<X extends Runic> = X extends RuneIterable<Rune, infer T> ? T : X extends () => RuneIterable<Rune, infer T> ? T : X extends RuneIterator<Rune, infer T> ? T : never;
|
|
8
8
|
function unwrap<Y extends Rune, T>(runic: Runic<Y, T>): RuneIterator<Y, T>;
|
|
9
9
|
}
|
package/dist/Runic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runic.js","sourceRoot":"","sources":["../Runic.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Runic.js","sourceRoot":"","sources":["../Runic.ts"],"names":[],"mappings":"AAMA,MAAM,KAAW,KAAK,CAuBrB;AAvBD,WAAiB,KAAK;IAWpB,SAAgB,MAAM,CAAoB,KAAkB;QAC1D,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QACjC,CAAC;aAAM,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;QACtC,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;QACxB,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QACpC,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;IACzC,CAAC;IAXe,YAAM,SAWrB,CAAA;AACH,CAAC,EAvBgB,KAAK,KAAL,KAAK,QAuBrB"}
|