liminal 0.5.7 → 0.5.9
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 +8 -5
- package/CHANGELOG.md +17 -0
- package/Context.ts +1 -10
- package/Fiber.ts +92 -25
- package/L/L.ts +1 -0
- package/L/_infer.ts +6 -8
- package/L/assistant.ts +2 -2
- package/L/branch.ts +13 -9
- package/L/catch.ts +23 -0
- package/L/emit.ts +1 -1
- package/L/rune.ts +24 -13
- package/LEvent.ts +1 -1
- package/Model.ts +10 -9
- package/ModelRegistry.ts +0 -8
- package/Rune.ts +4 -2
- package/Tool.ts +31 -0
- package/ToolRegistry.ts +5 -0
- package/dist/Agent.d.ts +5 -3
- package/dist/Agent.js +5 -3
- package/dist/Agent.js.map +1 -1
- package/dist/Context.d.ts +1 -2
- package/dist/Context.js +0 -8
- package/dist/Context.js.map +1 -1
- package/dist/Fiber.d.ts +25 -5
- package/dist/Fiber.js +69 -27
- package/dist/Fiber.js.map +1 -1
- package/dist/L/L.d.ts +1 -0
- package/dist/L/L.js +1 -0
- package/dist/L/L.js.map +1 -1
- package/dist/L/_infer.js +6 -7
- package/dist/L/_infer.js.map +1 -1
- package/dist/L/assistant.d.ts +1 -1
- package/dist/L/assistant.js +1 -1
- package/dist/L/assistant.js.map +1 -1
- package/dist/L/branch.js +13 -9
- package/dist/L/branch.js.map +1 -1
- package/dist/L/catch.d.ts +11 -0
- package/dist/L/catch.js +14 -0
- package/dist/L/catch.js.map +1 -0
- package/dist/L/emit.js +1 -1
- package/dist/L/emit.js.map +1 -1
- package/dist/L/rune.d.ts +5 -3
- package/dist/L/rune.js +11 -4
- package/dist/L/rune.js.map +1 -1
- package/dist/LEvent.js +1 -1
- package/dist/LEvent.js.map +1 -1
- package/dist/Model.d.ts +4 -2
- package/dist/Model.js +12 -7
- package/dist/Model.js.map +1 -1
- package/dist/ModelRegistry.d.ts +0 -1
- package/dist/ModelRegistry.js +0 -7
- package/dist/ModelRegistry.js.map +1 -1
- package/dist/Rune.d.ts +4 -2
- package/dist/Rune.js.map +1 -1
- package/dist/Tool.d.ts +9 -0
- package/dist/Tool.js +31 -0
- package/dist/Tool.js.map +1 -0
- package/dist/ToolRegistry.d.ts +5 -0
- package/dist/ToolRegistry.js +5 -0
- package/dist/ToolRegistry.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +2 -0
- package/package.json +3 -3
- package/cli/main.ts +0 -1
- package/dist/cli/main.d.ts +0 -1
- package/dist/cli/main.js +0 -3
- package/dist/cli/main.js.map +0 -1
package/dist/Fiber.js
CHANGED
|
@@ -1,41 +1,83 @@
|
|
|
1
1
|
import { attachCustomInspect } from "liminal-util";
|
|
2
2
|
import { Context } from "./Context.js";
|
|
3
3
|
import { Runic } from "./Runic.js";
|
|
4
|
-
let nextIndex = 0;
|
|
5
4
|
export class Fiber {
|
|
6
|
-
|
|
7
|
-
index = nextIndex++;
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
static nextIndex = 0;
|
|
6
|
+
index = Fiber.nextIndex++;
|
|
7
|
+
#runic;
|
|
8
|
+
#context = Context.ensure();
|
|
9
|
+
signal;
|
|
10
|
+
either;
|
|
11
|
+
abort;
|
|
12
|
+
status = { type: "untouched" };
|
|
10
13
|
constructor(runic, parent) {
|
|
11
|
-
this
|
|
14
|
+
this.#runic = runic;
|
|
12
15
|
if (parent) {
|
|
13
16
|
this.parent = parent;
|
|
14
17
|
}
|
|
18
|
+
const controller = new AbortController();
|
|
19
|
+
this.signal = controller.signal;
|
|
20
|
+
this.either = AbortSignal.any([
|
|
21
|
+
...this.parent?.signal ? [this.parent.signal] : [],
|
|
22
|
+
this.signal,
|
|
23
|
+
]);
|
|
24
|
+
this.abort = controller.abort.bind(controller);
|
|
15
25
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
fork(runic) {
|
|
27
|
+
return new Fiber(runic, this);
|
|
28
|
+
}
|
|
29
|
+
resolution() {
|
|
30
|
+
const { status, abort } = this;
|
|
31
|
+
switch (status.type) {
|
|
32
|
+
case "untouched": {
|
|
33
|
+
const { promise, resolve, reject } = Promise.withResolvers();
|
|
34
|
+
this.status = {
|
|
35
|
+
type: "pending",
|
|
36
|
+
self: this.signal,
|
|
37
|
+
promise,
|
|
38
|
+
};
|
|
39
|
+
const iterator = Runic.unwrap(this.#runic);
|
|
40
|
+
let nextArg;
|
|
41
|
+
this.#context.run(async () => {
|
|
42
|
+
try {
|
|
43
|
+
let current = await iterator.next();
|
|
44
|
+
while (!current.done) {
|
|
45
|
+
const rune = current.value;
|
|
46
|
+
nextArg = await rune(this);
|
|
47
|
+
current = await iterator.next(nextArg);
|
|
48
|
+
}
|
|
49
|
+
const { value } = current;
|
|
50
|
+
this.status = {
|
|
51
|
+
type: "resolved",
|
|
52
|
+
value,
|
|
53
|
+
};
|
|
54
|
+
abort();
|
|
55
|
+
resolve(value);
|
|
56
|
+
}
|
|
57
|
+
catch (exception) {
|
|
58
|
+
this.status = {
|
|
59
|
+
type: "rejected",
|
|
60
|
+
exception,
|
|
61
|
+
};
|
|
62
|
+
abort(exception);
|
|
63
|
+
reject(exception);
|
|
29
64
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
65
|
+
});
|
|
66
|
+
return promise;
|
|
67
|
+
}
|
|
68
|
+
case "pending": {
|
|
69
|
+
return status.promise;
|
|
70
|
+
}
|
|
71
|
+
case "resolved": {
|
|
72
|
+
return Promise.resolve(status.value);
|
|
73
|
+
}
|
|
74
|
+
case "rejected": {
|
|
75
|
+
return Promise.reject(status.exception);
|
|
76
|
+
}
|
|
77
|
+
case "aborted": {
|
|
78
|
+
return Promise.reject(status.reason);
|
|
79
|
+
}
|
|
37
80
|
}
|
|
38
|
-
return this.pending;
|
|
39
81
|
}
|
|
40
82
|
static {
|
|
41
83
|
attachCustomInspect(this, ({ index, parent }) => ({ index, ...parent && { parent } }));
|
package/dist/Fiber.js.map
CHANGED
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../Fiber.ts"],"names":[],"mappings":"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"}
|
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,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
|
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,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
package/dist/L/_infer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { assert } from "liminal-util";
|
|
2
|
-
import { Context
|
|
2
|
+
import { Context } from "../Context.js";
|
|
3
3
|
import { InferenceRequested, Inferred } from "../LEvent.js";
|
|
4
4
|
import { MessageRegistryContext } from "../MessageRegistry.js";
|
|
5
5
|
import { ModelRegistryContext } from "../ModelRegistry.js";
|
|
@@ -11,19 +11,18 @@ export function* _infer(schema) {
|
|
|
11
11
|
assert(modelRegistry);
|
|
12
12
|
const model = modelRegistry.peek();
|
|
13
13
|
assert(model);
|
|
14
|
-
const requestId =
|
|
14
|
+
const requestId = InferenceCounter.next();
|
|
15
15
|
yield* emit(new InferenceRequested(requestId, schema));
|
|
16
16
|
const messageRegistry = context.get(MessageRegistryContext);
|
|
17
17
|
assert(messageRegistry);
|
|
18
|
-
const inference = yield* rune(() => model.resolve(messageRegistry.messages, schema));
|
|
18
|
+
const inference = yield* rune(() => model.resolve(messageRegistry.messages, schema), "infer");
|
|
19
19
|
yield* emit(new Inferred(requestId, inference));
|
|
20
20
|
return inference;
|
|
21
21
|
}
|
|
22
|
-
class
|
|
23
|
-
count = 0;
|
|
24
|
-
next() {
|
|
22
|
+
class InferenceCounter {
|
|
23
|
+
static count = 0;
|
|
24
|
+
static next() {
|
|
25
25
|
return this.count++;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
const InferenceRequestCounterContext = ContextHandle();
|
|
29
28
|
//# 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,
|
|
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;AACvC,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,gBAAgB,CAAC,IAAI,EAAE,CAAA;IACzC,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,EAAE,OAAO,CAAC,CAAA;IAC7F,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,gBAAgB;IACpB,MAAM,CAAC,KAAK,GAAW,CAAC,CAAA;IACxB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC"}
|
package/dist/L/assistant.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ import { type LType } from "liminal-schema";
|
|
|
2
2
|
import type { LEvent } from "../LEvent.ts";
|
|
3
3
|
import type { Rune } from "../Rune.ts";
|
|
4
4
|
export interface assistant extends Iterable<Rune<LEvent>, string> {
|
|
5
|
-
<T>(
|
|
5
|
+
<T>(type: LType<T>): Generator<Rune<LEvent>, T>;
|
|
6
6
|
}
|
|
7
7
|
export declare const assistant: assistant;
|
package/dist/L/assistant.js
CHANGED
|
@@ -7,7 +7,7 @@ export const assistant = Object.assign(function* (type) {
|
|
|
7
7
|
const inference = yield* _infer(schema);
|
|
8
8
|
yield* _message("assistant", [{ part: inference }]);
|
|
9
9
|
const input = JSON.parse(inference);
|
|
10
|
-
return yield* rune(() => validate(type, input));
|
|
10
|
+
return yield* rune(() => validate(type, input), "validate_assistant_message");
|
|
11
11
|
}, {
|
|
12
12
|
*[Symbol.iterator]() {
|
|
13
13
|
const inference = yield* _infer();
|
package/dist/L/assistant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../L/assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC,MAAM,CAAC,MAAM,SAAS,GAAc,MAAM,CAAC,MAAM,CAC/C,QAAQ,CAAC,EAAI,IAAc;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../L/assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC,MAAM,CAAC,MAAM,SAAS,GAAc,MAAM,CAAC,MAAM,CAC/C,QAAQ,CAAC,EAAI,IAAc;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,4BAA4B,CAAC,CAAA;AAC/E,CAAC,EACD;IACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;QACjC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACnD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CACF,CAAA"}
|
package/dist/L/branch.js
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { Context } from "../Context.js";
|
|
2
|
-
import { Fiber } from "../Fiber.js";
|
|
3
2
|
import {} from "../Rune.js";
|
|
4
3
|
import { rune } from "./rune.js";
|
|
5
4
|
export function* branch(value) {
|
|
6
5
|
const context = Context.ensure();
|
|
7
|
-
const parent = yield* rune
|
|
6
|
+
const parent = yield* rune;
|
|
8
7
|
if (Array.isArray(value)) {
|
|
9
|
-
const fibers = value.map((runic) => context.clone().run(() =>
|
|
10
|
-
return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.
|
|
8
|
+
const fibers = value.map((runic) => context.clone().run(() => parent.fork(runic)));
|
|
9
|
+
return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.resolution())), "branch");
|
|
11
10
|
}
|
|
12
11
|
else if (typeof value === "object") {
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const fibers = Object.values(value).map((runic) => context.clone().run(() => parent.fork(runic)));
|
|
13
|
+
return yield* rune(async () => {
|
|
14
|
+
const keys = Object.keys(value);
|
|
15
|
+
return await Promise
|
|
16
|
+
.all(fibers.map((fiber) => fiber.resolution()))
|
|
17
|
+
.then((resolved) => resolved.map((value, i) => [keys[i], value]))
|
|
18
|
+
.then(Object.fromEntries);
|
|
19
|
+
}, "branch");
|
|
16
20
|
}
|
|
17
|
-
const fiber = context.clone().run(() =>
|
|
18
|
-
return yield* rune(() => fiber.
|
|
21
|
+
const fiber = context.clone().run(() => parent.fork(typeof value === "function" ? value() : value));
|
|
22
|
+
return yield* rune(() => fiber.resolution(), "branch");
|
|
19
23
|
}
|
|
20
24
|
//# 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,
|
|
1
|
+
{"version":3,"file":"branch.js","sourceRoot":"","sources":["../../L/branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,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,CAAA;IAC1B,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,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAClF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC5F,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACjG,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/B,OAAO,MAAM,OAAO;iBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;iBAC9C,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;iBAChE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;QAC7B,CAAC,EAAE,QAAQ,CAAC,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IACnG,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,CAAA;AACxD,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Rune } from "../Rune.ts";
|
|
2
|
+
import type { Runic } from "../Runic.ts";
|
|
3
|
+
export { catch_ as catch };
|
|
4
|
+
declare function catch_<Y extends Rune, T>(runic: Runic<Y, T>): Generator<Rune<Y>, CatchResult<T>>;
|
|
5
|
+
export type CatchResult<T> = {
|
|
6
|
+
resolved: T;
|
|
7
|
+
rejected?: never;
|
|
8
|
+
} | {
|
|
9
|
+
resolved?: never;
|
|
10
|
+
rejected: unknown;
|
|
11
|
+
};
|
package/dist/L/catch.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { rune } from "./rune.js";
|
|
2
|
+
export { catch_ as catch };
|
|
3
|
+
function* catch_(runic) {
|
|
4
|
+
return yield* rune(async (fiber) => {
|
|
5
|
+
try {
|
|
6
|
+
return { resolved: await fiber.fork(runic).resolution() };
|
|
7
|
+
}
|
|
8
|
+
catch (exception) {
|
|
9
|
+
return { rejected: exception };
|
|
10
|
+
}
|
|
11
|
+
}, "catch");
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(catch_, "name", { value: "catch" });
|
|
14
|
+
//# sourceMappingURL=catch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catch.js","sourceRoot":"","sources":["../../L/catch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA;AAC1B,QAAQ,CAAC,CAAC,MAAM,CAAoB,KAAkB;IACpD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,OAAO,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAA;QAC3D,CAAC;QAAC,OAAO,SAAkB,EAAE,CAAC;YAC5B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;QAChC,CAAC;IACH,CAAC,EAAE,OAAO,CAAC,CAAA;AACb,CAAC;AACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA"}
|
package/dist/L/emit.js
CHANGED
|
@@ -4,7 +4,7 @@ import { rune } from "./rune.js";
|
|
|
4
4
|
export function* emit(event) {
|
|
5
5
|
const context = Context.ensure();
|
|
6
6
|
const handler = context.get(HandlerContext);
|
|
7
|
-
const fiber = yield* rune
|
|
7
|
+
const fiber = yield* rune;
|
|
8
8
|
handler?.call(fiber, event);
|
|
9
9
|
}
|
|
10
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;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,
|
|
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,CAAA;IACzB,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC7B,CAAC"}
|
package/dist/L/rune.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Fiber } from "../Fiber.ts";
|
|
2
2
|
import { type Rune } from "../Rune.ts";
|
|
3
|
-
export interface rune
|
|
4
|
-
<
|
|
3
|
+
export interface rune extends Iterable<Rune<never>, Fiber> {
|
|
4
|
+
<R>(source: (fiber: Fiber) => R, debug?: string): Iterable<Rune<never>, Awaited<R>> & {
|
|
5
|
+
<E>(): Generator<Rune<E>, Awaited<R>>;
|
|
6
|
+
};
|
|
5
7
|
}
|
|
6
|
-
export declare
|
|
8
|
+
export declare const rune: rune;
|
package/dist/L/rune.js
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { Fiber } from "../Fiber.js";
|
|
2
2
|
import { RuneKey } from "../Rune.js";
|
|
3
|
-
export
|
|
3
|
+
export const rune = Object.assign(function (source, debug) {
|
|
4
4
|
return Object.assign(function* () {
|
|
5
|
-
return yield Object.assign(source, { [RuneKey]:
|
|
5
|
+
return yield Object.assign(source, { [RuneKey]: true, debug });
|
|
6
6
|
}, {
|
|
7
7
|
*[Symbol.iterator]() {
|
|
8
|
-
return yield Object.assign(source, { [RuneKey]:
|
|
8
|
+
return yield Object.assign(source, { [RuneKey]: true, debug });
|
|
9
9
|
},
|
|
10
10
|
});
|
|
11
|
-
}
|
|
11
|
+
}, {
|
|
12
|
+
*[Symbol.iterator]() {
|
|
13
|
+
return yield Object.assign((fiber) => fiber, {
|
|
14
|
+
[RuneKey]: true,
|
|
15
|
+
debug: "get_current_fiber",
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
});
|
|
12
19
|
//# sourceMappingURL=rune.js.map
|
package/dist/L/rune.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAO/C,MAAM,CAAC,MAAM,IAAI,GAAS,MAAM,CAAC,MAAM,CACrC,UAAY,MAA2B,EAAE,KAAc;IACrD,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC;QACP,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC,CAAA;IACzE,CAAC,EACD;QACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC,CAAA;QACzE,CAAC;KACF,CACF,CAAA;AACH,CAAC,EACD;IACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,EAAE;YAClD,CAAC,OAAO,CAAC,EAAE,IAAI;YACf,KAAK,EAAE,mBAAmB;SAClB,CAAC,CAAA;IACb,CAAC;CACF,CACF,CAAA"}
|
package/dist/LEvent.js
CHANGED
|
@@ -45,6 +45,6 @@ export class FiberResolved extends EventBase(LEventTag, "fiber_resolved") {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
export function isLEvent(value) {
|
|
48
|
-
return typeof value === "object" && value !== null &&
|
|
48
|
+
return typeof value === "object" && value !== null && "brand" in value && value.brand === LEventTag;
|
|
49
49
|
}
|
|
50
50
|
//# sourceMappingURL=LEvent.js.map
|
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;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,
|
|
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,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;AACrG,CAAC"}
|
package/dist/Model.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Schema } from "liminal-schema";
|
|
2
2
|
import type { Message } from "./Message.ts";
|
|
3
|
-
export
|
|
4
|
-
|
|
3
|
+
export declare class Model {
|
|
4
|
+
readonly vendor: string;
|
|
5
|
+
readonly resolve: (messages: Array<Message>, schema?: Schema) => Promise<string>;
|
|
6
|
+
constructor(vendor: string, resolve: (messages: Array<Message>, schema?: Schema) => Promise<string>);
|
|
5
7
|
}
|
package/dist/Model.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { attachCustomInspect } from "liminal-util";
|
|
2
|
+
export class Model {
|
|
3
|
+
vendor;
|
|
4
|
+
resolve;
|
|
5
|
+
constructor(vendor, resolve) {
|
|
6
|
+
this.vendor = vendor;
|
|
7
|
+
this.resolve = resolve;
|
|
8
|
+
}
|
|
9
|
+
static {
|
|
10
|
+
attachCustomInspect(this, ({ vendor }) => ({ vendor }));
|
|
11
|
+
}
|
|
12
|
+
}
|
|
8
13
|
//# sourceMappingURL=Model.js.map
|
package/dist/Model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../Model.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Model.js","sourceRoot":"","sources":["../Model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,OAAO,KAAK;IAEL;IACA;IAFX,YACW,MAAc,EACd,OAAuE;QADvE,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAgE;IAC/E,CAAC;IAEJ;QACE,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;IACzD,CAAC;CACF"}
|
package/dist/ModelRegistry.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ import type { Model } from "./Model.ts";
|
|
|
4
4
|
export declare class ModelRegistry {
|
|
5
5
|
head?: ModelRegistryNode | undefined;
|
|
6
6
|
tail?: ModelRegistryNode | undefined;
|
|
7
|
-
constructor(models?: Array<Model>);
|
|
8
7
|
peek(): Model | undefined;
|
|
9
8
|
register(value: Model): ModelRegistryNode;
|
|
10
9
|
remove(node: ModelRegistryNode): void;
|
package/dist/ModelRegistry.js
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import { ContextHandle } from "./Context.js";
|
|
2
2
|
/** An intrusive list for storing `Model`s. */
|
|
3
3
|
export class ModelRegistry {
|
|
4
|
-
constructor(models) {
|
|
5
|
-
if (models) {
|
|
6
|
-
for (const model of models) {
|
|
7
|
-
this.register(model);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
4
|
peek() {
|
|
12
5
|
return this.tail?.model;
|
|
13
6
|
}
|
|
@@ -1 +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,
|
|
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,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
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { Fiber } from "./Fiber.ts";
|
|
2
2
|
export interface Rune<out E = any> {
|
|
3
|
+
E: E;
|
|
3
4
|
(fiber: Fiber): any;
|
|
4
|
-
[RuneKey]:
|
|
5
|
+
[RuneKey]: true;
|
|
6
|
+
debug?: string;
|
|
5
7
|
}
|
|
6
8
|
export declare namespace Rune {
|
|
7
|
-
type E<X extends Rune> = X[
|
|
9
|
+
type E<X extends Rune> = X["E"];
|
|
8
10
|
}
|
|
9
11
|
export declare const RuneKey: unique symbol;
|
|
10
12
|
export type RuneKey = typeof RuneKey;
|
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":"AAaA,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAGhE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;AACxE,CAAC"}
|
package/dist/Tool.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type LType, type SchemaObject, type Value, type ValueObject } from "liminal-schema";
|
|
2
|
+
export declare class Tool {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly description: string;
|
|
5
|
+
readonly parameterSchema: SchemaObject;
|
|
6
|
+
readonly f: (arg: any) => Value | Promise<Value>;
|
|
7
|
+
static make<T extends ValueObject>(description: string, type: LType<T>, f: (arg: T) => Value | Promise<Value>): Promise<Tool>;
|
|
8
|
+
constructor(name: string, description: string, parameterSchema: SchemaObject, f: (arg: any) => Value | Promise<Value>);
|
|
9
|
+
}
|
package/dist/Tool.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { toJSONSchema, validate } from "liminal-schema";
|
|
2
|
+
import { subtle } from "node:crypto";
|
|
3
|
+
export class Tool {
|
|
4
|
+
name;
|
|
5
|
+
description;
|
|
6
|
+
parameterSchema;
|
|
7
|
+
f;
|
|
8
|
+
static async make(description, type, f) {
|
|
9
|
+
const encoder = new TextEncoder();
|
|
10
|
+
const schema = toJSONSchema(type);
|
|
11
|
+
const buffer = await subtle.digest("SHA-256", encoder.encode(description + "\n\n" + JSON.stringify(schema)));
|
|
12
|
+
const bytes = new Uint8Array(buffer);
|
|
13
|
+
let binary = "";
|
|
14
|
+
for (const b of bytes)
|
|
15
|
+
binary += String.fromCharCode(b);
|
|
16
|
+
const base64 = btoa(binary)
|
|
17
|
+
.replace(/\+/g, "-")
|
|
18
|
+
.replace(/\//g, "_")
|
|
19
|
+
.replace(/=+$/, "");
|
|
20
|
+
return new Tool(base64, description, schema, async (arg) => {
|
|
21
|
+
return await f(await validate(type, arg));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
constructor(name, description, parameterSchema, f) {
|
|
25
|
+
this.name = name;
|
|
26
|
+
this.description = description;
|
|
27
|
+
this.parameterSchema = parameterSchema;
|
|
28
|
+
this.f = f;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Tool.js.map
|
package/dist/Tool.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tool.js","sourceRoot":"","sources":["../Tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,YAAY,EAAE,QAAQ,EAAgC,MAAM,gBAAgB,CAAA;AACpH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,OAAO,IAAI;IAsBJ;IACA;IACA;IACA;IAxBX,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,WAAmB,EACnB,IAAc,EACd,CAAqC;QAErC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC5G,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;QACpC,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,MAAM,CAAC,IAAI,KAAK;YAAE,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;aACxB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACrB,OAAO,IAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACzD,OAAO,MAAM,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC,CAAA;QACpD,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,YACW,IAAY,EACZ,WAAmB,EACnB,eAA6B,EAC7B,CAAuC;QAHvC,SAAI,GAAJ,IAAI,CAAQ;QACZ,gBAAW,GAAX,WAAW,CAAQ;QACnB,oBAAe,GAAf,eAAe,CAAc;QAC7B,MAAC,GAAD,CAAC,CAAsC;IAC/C,CAAC;CACL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,MAAM,OAAO,YAAa,SAAQ,GAAS;CAAG;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAgC,aAAa,EAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA"}
|