liminal 0.5.9 → 0.5.11
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 +18 -0
- package/Context.ts +21 -24
- package/EventBase.ts +6 -0
- package/Fiber.ts +60 -47
- package/Handler.ts +2 -2
- package/L/L.ts +5 -3
- package/L/_common.ts +6 -0
- package/L/assistant.ts +6 -6
- package/L/catch.ts +15 -2
- package/L/emit.ts +3 -7
- package/L/{_infer.ts → infer.ts} +18 -14
- package/L/{_message.ts → message.ts} +3 -5
- package/L/model.ts +1 -3
- package/L/rune.ts +8 -26
- package/L/strand.ts +99 -0
- package/L/stream.ts +30 -0
- package/L/system.ts +2 -2
- package/L/user.ts +2 -2
- package/LEvent.ts +10 -3
- package/MessageRegistry.ts +4 -3
- package/Model.ts +13 -2
- package/ModelRegistry.ts +13 -8
- package/Tool.ts +17 -14
- package/ToolRegistry.ts +8 -3
- package/dist/Context.d.ts +10 -10
- package/dist/Context.js +16 -19
- package/dist/Context.js.map +1 -1
- package/dist/EventBase.d.ts +1 -0
- package/dist/EventBase.js +5 -0
- package/dist/EventBase.js.map +1 -1
- package/dist/Fiber.d.ts +19 -15
- package/dist/Fiber.js +36 -25
- package/dist/Fiber.js.map +1 -1
- package/dist/Handler.d.ts +2 -2
- package/dist/Handler.js +2 -2
- package/dist/Handler.js.map +1 -1
- package/dist/L/L.d.ts +5 -3
- package/dist/L/L.js +5 -3
- package/dist/L/L.js.map +1 -1
- package/dist/L/_common.d.ts +4 -0
- package/dist/L/_common.js +7 -0
- package/dist/L/_common.js.map +1 -0
- package/dist/L/assistant.js +6 -6
- package/dist/L/assistant.js.map +1 -1
- package/dist/L/catch.js +12 -2
- package/dist/L/catch.js.map +1 -1
- package/dist/L/emit.js +3 -7
- package/dist/L/emit.js.map +1 -1
- package/dist/L/infer.d.ts +7 -0
- package/dist/L/infer.js +29 -0
- package/dist/L/infer.js.map +1 -0
- package/dist/L/message.d.ts +6 -0
- package/dist/L/{_message.js → message.js} +3 -5
- package/dist/L/message.js.map +1 -0
- package/dist/L/model.js +1 -3
- package/dist/L/model.js.map +1 -1
- package/dist/L/rune.d.ts +1 -6
- package/dist/L/rune.js +5 -15
- package/dist/L/rune.js.map +1 -1
- package/dist/L/strand.d.ts +26 -0
- package/dist/L/strand.js +69 -0
- package/dist/L/strand.js.map +1 -0
- package/dist/L/stream.d.ts +5 -0
- package/dist/L/stream.js +27 -0
- package/dist/L/stream.js.map +1 -0
- package/dist/L/system.js +2 -2
- package/dist/L/system.js.map +1 -1
- package/dist/L/user.js +2 -2
- package/dist/L/user.js.map +1 -1
- package/dist/LEvent.d.ts +21 -1
- package/dist/LEvent.js +13 -2
- package/dist/LEvent.js.map +1 -1
- package/dist/MessageRegistry.d.ts +2 -2
- package/dist/MessageRegistry.js +2 -2
- package/dist/MessageRegistry.js.map +1 -1
- package/dist/Model.d.ts +12 -3
- package/dist/Model.js +3 -3
- package/dist/Model.js.map +1 -1
- package/dist/ModelRegistry.d.ts +3 -2
- package/dist/ModelRegistry.js +9 -8
- package/dist/ModelRegistry.js.map +1 -1
- package/dist/Tool.js +2 -13
- package/dist/Tool.js.map +1 -1
- package/dist/ToolRegistry.d.ts +3 -2
- package/dist/ToolRegistry.js +5 -2
- package/dist/ToolRegistry.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +0 -1
- package/package.json +4 -4
- package/Agent.ts +0 -38
- package/L/branch.ts +0 -33
- package/dist/Agent.d.ts +0 -18
- package/dist/Agent.js +0 -20
- package/dist/Agent.js.map +0 -1
- package/dist/L/_infer.d.ts +0 -4
- package/dist/L/_infer.js +0 -28
- package/dist/L/_infer.js.map +0 -1
- package/dist/L/_message.d.ts +0 -6
- package/dist/L/_message.js.map +0 -1
- package/dist/L/branch.d.ts +0 -11
- package/dist/L/branch.js +0 -24
- package/dist/L/branch.js.map +0 -1
package/dist/L/infer.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { assert } from "liminal-util";
|
|
2
|
+
import { InferenceRequested, Inferred } from "../LEvent.js";
|
|
3
|
+
import { MessageRegistryContext } from "../MessageRegistry.js";
|
|
4
|
+
import { ModelRegistryContext } from "../ModelRegistry.js";
|
|
5
|
+
import { RequestCounter } from "./_common.js";
|
|
6
|
+
import { emit } from "./emit.js";
|
|
7
|
+
import { rune } from "./rune.js";
|
|
8
|
+
export { infer_ as infer };
|
|
9
|
+
function* infer_(schema) {
|
|
10
|
+
const modelRegistry = ModelRegistryContext.get();
|
|
11
|
+
assert(modelRegistry);
|
|
12
|
+
const model = modelRegistry.peek();
|
|
13
|
+
assert(model);
|
|
14
|
+
const requestId = RequestCounter.next();
|
|
15
|
+
yield* emit(new InferenceRequested(requestId, schema));
|
|
16
|
+
const messageRegistry = MessageRegistryContext.get();
|
|
17
|
+
assert(messageRegistry);
|
|
18
|
+
const inference = yield* rune((fiber) => model
|
|
19
|
+
.seal({
|
|
20
|
+
messages: messageRegistry.messages,
|
|
21
|
+
schema,
|
|
22
|
+
signal: fiber.controller.signal,
|
|
23
|
+
})
|
|
24
|
+
.resolve(), "infer");
|
|
25
|
+
yield* emit(new Inferred(requestId, inference));
|
|
26
|
+
return inference;
|
|
27
|
+
}
|
|
28
|
+
Object.defineProperty(infer_, "name", { value: "infer" });
|
|
29
|
+
//# sourceMappingURL=infer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infer.js","sourceRoot":"","sources":["../../L/infer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAe,MAAM,cAAc,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA;AAI1B,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAqB;IACpC,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAA;IAChD,MAAM,CAAC,aAAa,CAAC,CAAA;IACrB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;IACvC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;IACpD,MAAM,CAAC,eAAe,CAAC,CAAA;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,KAAK;SACF,IAAI,CAAC;QACJ,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,MAAM;QACN,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;KAChC,CAAC;SACD,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;IACxB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AACD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type LEvent } from "../LEvent.ts";
|
|
2
|
+
import type { ContentPart, MessageRole } from "../Message.ts";
|
|
3
|
+
import type { Rune } from "../Rune.ts";
|
|
4
|
+
export interface message extends Generator<Rune<LEvent>, void> {
|
|
5
|
+
}
|
|
6
|
+
export declare function message(role: MessageRole, content: Array<ContentPart>): message;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { assert } from "liminal-util";
|
|
2
|
-
import { Context } from "../Context.js";
|
|
3
2
|
import { MessageAppended } from "../LEvent.js";
|
|
4
3
|
import { MessageRegistryContext } from "../MessageRegistry.js";
|
|
5
4
|
import { emit } from "./emit.js";
|
|
6
|
-
export function*
|
|
7
|
-
const
|
|
8
|
-
const messageRegistry = context.get(MessageRegistryContext);
|
|
5
|
+
export function* message(role, content) {
|
|
6
|
+
const messageRegistry = MessageRegistryContext.get();
|
|
9
7
|
assert(messageRegistry);
|
|
10
8
|
const message = { role, content };
|
|
11
9
|
yield* emit(new MessageAppended(message));
|
|
12
10
|
messageRegistry.append(message);
|
|
13
11
|
}
|
|
14
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../L/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,IAAiB,EAAE,OAA2B;IACrE,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;IACpD,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/model.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { assert } from "liminal-util";
|
|
2
|
-
import { Context } from "../Context.js";
|
|
3
2
|
import { ModelRegistered } from "../LEvent.js";
|
|
4
3
|
import { ModelRegistryContext } from "../ModelRegistry.js";
|
|
5
4
|
import { emit } from "./emit.js";
|
|
6
5
|
export function* model(model) {
|
|
7
|
-
const
|
|
8
|
-
const registry = context.get(ModelRegistryContext);
|
|
6
|
+
const registry = ModelRegistryContext.get();
|
|
9
7
|
assert(registry);
|
|
10
8
|
registry.register(model);
|
|
11
9
|
yield* emit(new ModelRegistered(model));
|
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,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,KAAY;IACjC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAA;IAC3C,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,8 +1,3 @@
|
|
|
1
1
|
import { Fiber } from "../Fiber.ts";
|
|
2
2
|
import { type Rune } from "../Rune.ts";
|
|
3
|
-
export
|
|
4
|
-
<R>(source: (fiber: Fiber) => R, debug?: string): Iterable<Rune<never>, Awaited<R>> & {
|
|
5
|
-
<E>(): Generator<Rune<E>, Awaited<R>>;
|
|
6
|
-
};
|
|
7
|
-
}
|
|
8
|
-
export declare const rune: rune;
|
|
3
|
+
export declare function rune<R>(source: (fiber: Fiber) => R, debug?: string): Generator<Rune<never>, Awaited<R>>;
|
package/dist/L/rune.js
CHANGED
|
@@ -1,19 +1,9 @@
|
|
|
1
1
|
import { Fiber } from "../Fiber.js";
|
|
2
2
|
import { RuneKey } from "../Rune.js";
|
|
3
|
-
export
|
|
4
|
-
return Object.assign(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*[Symbol.iterator]() {
|
|
8
|
-
return yield Object.assign(source, { [RuneKey]: true, debug });
|
|
9
|
-
},
|
|
3
|
+
export function* rune(source, debug) {
|
|
4
|
+
return yield Object.assign(source, {
|
|
5
|
+
[RuneKey]: true,
|
|
6
|
+
debug,
|
|
10
7
|
});
|
|
11
|
-
}
|
|
12
|
-
*[Symbol.iterator]() {
|
|
13
|
-
return yield Object.assign((fiber) => fiber, {
|
|
14
|
-
[RuneKey]: true,
|
|
15
|
-
debug: "get_current_fiber",
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
});
|
|
8
|
+
}
|
|
19
9
|
//# 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;AAE/C,MAAM,SAAS,CAAC,CAAC,IAAI,CACnB,MAA2B,EAC3B,KAAc;IAEd,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACjC,CAAC,OAAO,CAAC,EAAE,IAAI;QACf,KAAK;KACN,CAAU,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Fiber } from "../Fiber.ts";
|
|
2
|
+
import { MessageRegistry } from "../MessageRegistry.ts";
|
|
3
|
+
import { ModelRegistry } from "../ModelRegistry.ts";
|
|
4
|
+
import { type Rune } from "../Rune.ts";
|
|
5
|
+
import type { Runic } from "../Runic.ts";
|
|
6
|
+
import { ToolRegistry } from "../ToolRegistry.ts";
|
|
7
|
+
export interface StrandConfig<T = any, E = any> {
|
|
8
|
+
handler?: ((this: Fiber<T>, event: E) => void) | undefined;
|
|
9
|
+
models?: ModelRegistry | undefined;
|
|
10
|
+
messages?: MessageRegistry | undefined;
|
|
11
|
+
tools?: ToolRegistry | undefined;
|
|
12
|
+
signal?: AbortSignal | undefined;
|
|
13
|
+
}
|
|
14
|
+
export interface strand<Y extends Rune, T> extends Iterable<Y, T>, PromiseLike<T> {
|
|
15
|
+
}
|
|
16
|
+
export declare function strand<X extends Runic>(runic: X, config?: StrandConfig<Runic.T<X>, Rune.E<Runic.Y<X>>>): strand<Runic.Y<X>, Runic.T<X>>;
|
|
17
|
+
export declare function strand<XA extends Array<Runic>>(runics: XA, config?: StrandConfig<{
|
|
18
|
+
[I in keyof XA]: Runic.T<XA[I]>;
|
|
19
|
+
}, Rune.E<Runic.Y<XA[number]>>>): strand<Runic.Y<XA[number]> | Rune<never>, {
|
|
20
|
+
[I in keyof XA]: Runic.T<XA[I]>;
|
|
21
|
+
}>;
|
|
22
|
+
export declare function strand<XR extends Record<keyof any, Runic>>(runics: XR, config?: StrandConfig<{
|
|
23
|
+
[K in keyof XR]: Runic.T<XR[K]>;
|
|
24
|
+
}, Rune.E<Runic.Y<XR[keyof XR]>>>): strand<Runic.Y<XR[keyof XR]> | Rune<never>, {
|
|
25
|
+
[K in keyof XR]: Runic.T<XR[K]>;
|
|
26
|
+
}>;
|
package/dist/L/strand.js
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Context } from "../Context.js";
|
|
2
|
+
import { Fiber } from "../Fiber.js";
|
|
3
|
+
import { HandlerContext } from "../Handler.js";
|
|
4
|
+
import { MessageRegistry, MessageRegistryContext } from "../MessageRegistry.js";
|
|
5
|
+
import { ModelRegistry, ModelRegistryContext } from "../ModelRegistry.js";
|
|
6
|
+
import {} from "../Rune.js";
|
|
7
|
+
import { ToolRegistry, ToolRegistryContext } from "../ToolRegistry.js";
|
|
8
|
+
import { rune } from "./rune.js";
|
|
9
|
+
export function strand(value, config) {
|
|
10
|
+
return {
|
|
11
|
+
*[Symbol.iterator]() {
|
|
12
|
+
const parent = yield* Fiber;
|
|
13
|
+
if (Array.isArray(value)) {
|
|
14
|
+
const fibers = value.map((runic) => new Fiber(runic, {
|
|
15
|
+
parent,
|
|
16
|
+
context: makeContext(),
|
|
17
|
+
}));
|
|
18
|
+
return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.resolution())), "strand");
|
|
19
|
+
}
|
|
20
|
+
else if (typeof value === "object") {
|
|
21
|
+
const fibers = Object.values(value).map((runic) => new Fiber(runic, {
|
|
22
|
+
parent,
|
|
23
|
+
context: makeContext(),
|
|
24
|
+
}));
|
|
25
|
+
return yield* rune(async () => {
|
|
26
|
+
const keys = Object.keys(value);
|
|
27
|
+
return await Promise
|
|
28
|
+
.all(fibers.map((fiber) => fiber.resolution()))
|
|
29
|
+
.then((resolved) => resolved.map((value, i) => [keys[i], value]))
|
|
30
|
+
.then(Object.fromEntries);
|
|
31
|
+
}, "strand");
|
|
32
|
+
}
|
|
33
|
+
const self = new Fiber(typeof value === "function" ? value() : value, {
|
|
34
|
+
parent,
|
|
35
|
+
context: makeContext(),
|
|
36
|
+
});
|
|
37
|
+
return yield* rune(() => self.resolution(), "strand");
|
|
38
|
+
},
|
|
39
|
+
then(onfulfilled, onrejected) {
|
|
40
|
+
return new Fiber(this, { context: makeContext() }).resolution().then(onfulfilled, onrejected);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
function makeContext() {
|
|
44
|
+
let context = Context.get()?.fork();
|
|
45
|
+
if (!context) {
|
|
46
|
+
context = new Context([
|
|
47
|
+
[ModelRegistryContext, new ModelRegistry()],
|
|
48
|
+
[MessageRegistryContext, new MessageRegistry()],
|
|
49
|
+
[ToolRegistryContext, new ToolRegistry()],
|
|
50
|
+
]);
|
|
51
|
+
}
|
|
52
|
+
if (config) {
|
|
53
|
+
if ("handler" in config) {
|
|
54
|
+
context.set(HandlerContext, config.handler);
|
|
55
|
+
}
|
|
56
|
+
if ("models" in config) {
|
|
57
|
+
context.set(ModelRegistryContext, config.models?.clone() ?? new ModelRegistry());
|
|
58
|
+
}
|
|
59
|
+
if ("messages" in config) {
|
|
60
|
+
context.set(MessageRegistryContext, config.messages?.clone() ?? new MessageRegistry());
|
|
61
|
+
}
|
|
62
|
+
if ("tools" in config) {
|
|
63
|
+
context.set(ToolRegistryContext, config.tools?.clone() ?? new ToolRegistry());
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return context;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=strand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strand.js","sourceRoot":"","sources":["../../L/strand.ts"],"names":[],"mappings":"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"}
|
package/dist/L/stream.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { assert } from "liminal-util";
|
|
2
|
+
import { InferenceRequested } from "../LEvent.js";
|
|
3
|
+
import { MessageRegistryContext } from "../MessageRegistry.js";
|
|
4
|
+
import { ModelRegistryContext } from "../ModelRegistry.js";
|
|
5
|
+
import {} from "../Rune.js";
|
|
6
|
+
import { RequestCounter } from "./_common.js";
|
|
7
|
+
import { emit } from "./emit.js";
|
|
8
|
+
import { rune } from "./rune.js";
|
|
9
|
+
export const stream = {
|
|
10
|
+
*[Symbol.iterator]() {
|
|
11
|
+
const modelRegistry = ModelRegistryContext.get();
|
|
12
|
+
assert(modelRegistry);
|
|
13
|
+
const model = modelRegistry.peek();
|
|
14
|
+
assert(model);
|
|
15
|
+
const requestId = RequestCounter.next();
|
|
16
|
+
yield* emit(new InferenceRequested(requestId));
|
|
17
|
+
const messageRegistry = MessageRegistryContext.get();
|
|
18
|
+
assert(messageRegistry);
|
|
19
|
+
return yield* rune((fiber) => model
|
|
20
|
+
.seal({
|
|
21
|
+
messages: messageRegistry.messages,
|
|
22
|
+
signal: fiber.controller.signal,
|
|
23
|
+
})
|
|
24
|
+
.stream(), "stream");
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../../L/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAe,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAa,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAA;QAChD,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;QACvC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;QACpD,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK;aACF,IAAI,CAAC;YACJ,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;SAChC,CAAC;aACD,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC1B,CAAC;CACF,CAAA"}
|
package/dist/L/system.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isTemplateStringsArray } from "liminal-util";
|
|
2
|
-
import {
|
|
2
|
+
import { message } from "./message.js";
|
|
3
3
|
export function system(e0, ...rest) {
|
|
4
4
|
const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
|
|
5
|
-
return
|
|
5
|
+
return message("system", [{ part }]);
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=system.js.map
|
package/dist/L/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,MAAM,UAAU,MAAM,CAAC,EAAiC,EAAE,GAAG,IAAmB;IAC9E,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACtC,CAAC"}
|
package/dist/L/user.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isTemplateStringsArray } from "liminal-util";
|
|
2
|
-
import {
|
|
2
|
+
import { message } from "./message.js";
|
|
3
3
|
export function user(e0, ...rest) {
|
|
4
4
|
const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
|
|
5
|
-
return
|
|
5
|
+
return message("user", [{ part }]);
|
|
6
6
|
}
|
|
7
7
|
//# sourceMappingURL=user.js.map
|
package/dist/L/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,MAAM,UAAU,IAAI,CAAC,EAAiC,EAAE,GAAG,IAAmB;IAC5E,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACpC,CAAC"}
|
package/dist/LEvent.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import type { SchemaObject } from "liminal-schema";
|
|
|
2
2
|
import type { Message } from "./Message.ts";
|
|
3
3
|
import type { Model } from "./Model.ts";
|
|
4
4
|
export type LEvent = FiberCreated | FiberResolved | FiberStarted | InferenceRequested | Inferred | MessageAppended | ModelRegistered;
|
|
5
|
+
export declare namespace LEvent {
|
|
6
|
+
function is(value: unknown): value is LEvent;
|
|
7
|
+
}
|
|
5
8
|
export declare const LEventTag: unique symbol;
|
|
6
9
|
export type LEventTag = typeof LEventTag;
|
|
7
10
|
declare const ModelRegistered_base: {
|
|
@@ -9,6 +12,7 @@ declare const ModelRegistered_base: {
|
|
|
9
12
|
readonly brand: typeof LEventTag;
|
|
10
13
|
readonly type: "model_registered";
|
|
11
14
|
};
|
|
15
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
12
16
|
};
|
|
13
17
|
export declare class ModelRegistered extends ModelRegistered_base {
|
|
14
18
|
readonly model: Model;
|
|
@@ -19,6 +23,7 @@ declare const InferenceRequested_base: {
|
|
|
19
23
|
readonly brand: typeof LEventTag;
|
|
20
24
|
readonly type: "inference_requested";
|
|
21
25
|
};
|
|
26
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
22
27
|
};
|
|
23
28
|
export declare class InferenceRequested extends InferenceRequested_base {
|
|
24
29
|
readonly requestId: number;
|
|
@@ -30,6 +35,7 @@ declare const Inferred_base: {
|
|
|
30
35
|
readonly brand: typeof LEventTag;
|
|
31
36
|
readonly type: "inferred";
|
|
32
37
|
};
|
|
38
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
33
39
|
};
|
|
34
40
|
export declare class Inferred extends Inferred_base {
|
|
35
41
|
readonly requestId: number;
|
|
@@ -41,6 +47,7 @@ declare const MessageAppended_base: {
|
|
|
41
47
|
readonly brand: typeof LEventTag;
|
|
42
48
|
readonly type: "message_appended";
|
|
43
49
|
};
|
|
50
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
44
51
|
};
|
|
45
52
|
export declare class MessageAppended extends MessageAppended_base {
|
|
46
53
|
readonly message: Message;
|
|
@@ -51,6 +58,7 @@ declare const FiberCreated_base: {
|
|
|
51
58
|
readonly brand: typeof LEventTag;
|
|
52
59
|
readonly type: "fiber_created";
|
|
53
60
|
};
|
|
61
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
54
62
|
};
|
|
55
63
|
export declare class FiberCreated extends FiberCreated_base {
|
|
56
64
|
}
|
|
@@ -59,6 +67,7 @@ declare const FiberStarted_base: {
|
|
|
59
67
|
readonly brand: typeof LEventTag;
|
|
60
68
|
readonly type: "fiber_started";
|
|
61
69
|
};
|
|
70
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
62
71
|
};
|
|
63
72
|
export declare class FiberStarted extends FiberStarted_base {
|
|
64
73
|
}
|
|
@@ -67,10 +76,21 @@ declare const FiberResolved_base: {
|
|
|
67
76
|
readonly brand: typeof LEventTag;
|
|
68
77
|
readonly type: "fiber_resolved";
|
|
69
78
|
};
|
|
79
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
70
80
|
};
|
|
71
81
|
export declare class FiberResolved extends FiberResolved_base {
|
|
72
82
|
readonly value: any;
|
|
73
83
|
constructor(value: any);
|
|
74
84
|
}
|
|
75
|
-
|
|
85
|
+
declare const FiberRejected_base: {
|
|
86
|
+
new (): {
|
|
87
|
+
readonly brand: typeof LEventTag;
|
|
88
|
+
readonly type: "fiber_rejected";
|
|
89
|
+
};
|
|
90
|
+
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
91
|
+
};
|
|
92
|
+
export declare class FiberRejected extends FiberRejected_base {
|
|
93
|
+
readonly reason: any;
|
|
94
|
+
constructor(reason: any);
|
|
95
|
+
}
|
|
76
96
|
export {};
|
package/dist/LEvent.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { EventBase } from "./EventBase.js";
|
|
2
|
+
export var LEvent;
|
|
3
|
+
(function (LEvent) {
|
|
4
|
+
function is(value) {
|
|
5
|
+
return typeof value === "object" && value !== null && "brand" in value && value.brand === LEventTag;
|
|
6
|
+
}
|
|
7
|
+
LEvent.is = is;
|
|
8
|
+
})(LEvent || (LEvent = {}));
|
|
2
9
|
export const LEventTag = Symbol.for("liminal/LEvent");
|
|
3
10
|
export class ModelRegistered extends EventBase(LEventTag, "model_registered") {
|
|
4
11
|
model;
|
|
@@ -44,7 +51,11 @@ export class FiberResolved extends EventBase(LEventTag, "fiber_resolved") {
|
|
|
44
51
|
this.value = value;
|
|
45
52
|
}
|
|
46
53
|
}
|
|
47
|
-
export
|
|
48
|
-
|
|
54
|
+
export class FiberRejected extends EventBase(LEventTag, "fiber_rejected") {
|
|
55
|
+
reason;
|
|
56
|
+
constructor(reason) {
|
|
57
|
+
super();
|
|
58
|
+
this.reason = reason;
|
|
59
|
+
}
|
|
49
60
|
}
|
|
50
61
|
//# 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;
|
|
1
|
+
{"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAa1C,MAAM,KAAW,MAAM,CAItB;AAJD,WAAiB,MAAM;IACrB,SAAgB,EAAE,CAAC,KAAc;QAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAA;IACrG,CAAC;IAFe,SAAE,KAEjB,CAAA;AACH,CAAC,EAJgB,MAAM,KAAN,MAAM,QAItB;AAED,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;AACD,MAAM,OAAO,aAAc,SAAQ,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAClD;IAArB,YAAqB,MAAW;QAC9B,KAAK,EAAE,CAAA;QADY,WAAM,GAAN,MAAM,CAAK;IAEhC,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "./Context.ts";
|
|
2
2
|
import type { Message } from "./Message.ts";
|
|
3
3
|
export declare class MessageRegistry {
|
|
4
4
|
messages: Array<Message>;
|
|
@@ -6,4 +6,4 @@ export declare class MessageRegistry {
|
|
|
6
6
|
append(message: Message): void;
|
|
7
7
|
clone(): MessageRegistry;
|
|
8
8
|
}
|
|
9
|
-
export declare const MessageRegistryContext:
|
|
9
|
+
export declare const MessageRegistryContext: ContextPart<MessageRegistry>;
|
package/dist/MessageRegistry.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "./Context.js";
|
|
2
2
|
export class MessageRegistry {
|
|
3
3
|
messages;
|
|
4
4
|
constructor(messages) {
|
|
@@ -11,5 +11,5 @@ export class MessageRegistry {
|
|
|
11
11
|
return new MessageRegistry([...this.messages]);
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
export const MessageRegistryContext =
|
|
14
|
+
export const MessageRegistryContext = ContextPart((parent) => parent?.clone() ?? new MessageRegistry(), "message_registry");
|
|
15
15
|
//# sourceMappingURL=MessageRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageRegistry.js","sourceRoot":"","sources":["../MessageRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"MessageRegistry.js","sourceRoot":"","sources":["../MessageRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,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,GAAiC,WAAW,CAC7E,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,EACpD,kBAAkB,CACnB,CAAA"}
|
package/dist/Model.d.ts
CHANGED
|
@@ -1,7 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SchemaObject } from "liminal-schema";
|
|
2
2
|
import type { Message } from "./Message.ts";
|
|
3
3
|
export declare class Model {
|
|
4
4
|
readonly vendor: string;
|
|
5
|
-
readonly
|
|
6
|
-
constructor(vendor: string,
|
|
5
|
+
readonly seal: (envelope: Envelope) => SealedEnvelope;
|
|
6
|
+
constructor(vendor: string, seal: (envelope: Envelope) => SealedEnvelope);
|
|
7
|
+
}
|
|
8
|
+
export interface Envelope {
|
|
9
|
+
messages: Array<Message>;
|
|
10
|
+
schema?: SchemaObject | undefined;
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
}
|
|
13
|
+
export interface SealedEnvelope {
|
|
14
|
+
resolve(): Promise<string>;
|
|
15
|
+
stream(): ReadableStream<string>;
|
|
7
16
|
}
|
package/dist/Model.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { attachCustomInspect } from "liminal-util";
|
|
2
2
|
export class Model {
|
|
3
3
|
vendor;
|
|
4
|
-
|
|
5
|
-
constructor(vendor,
|
|
4
|
+
seal;
|
|
5
|
+
constructor(vendor, seal) {
|
|
6
6
|
this.vendor = vendor;
|
|
7
|
-
this.
|
|
7
|
+
this.seal = seal;
|
|
8
8
|
}
|
|
9
9
|
static {
|
|
10
10
|
attachCustomInspect(this, ({ vendor }) => ({ vendor }));
|
package/dist/Model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,IAA4C;QAD5C,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAwC;IACpD,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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "./Context.ts";
|
|
2
2
|
import type { Model } from "./Model.ts";
|
|
3
3
|
/** An intrusive list for storing `Model`s. */
|
|
4
4
|
export declare class ModelRegistry {
|
|
@@ -7,10 +7,11 @@ export declare class ModelRegistry {
|
|
|
7
7
|
peek(): Model | undefined;
|
|
8
8
|
register(value: Model): ModelRegistryNode;
|
|
9
9
|
remove(node: ModelRegistryNode): void;
|
|
10
|
+
clone(): ModelRegistry;
|
|
10
11
|
}
|
|
11
12
|
export interface ModelRegistryNode {
|
|
12
13
|
prev: ModelRegistryNode | undefined;
|
|
13
14
|
model: Model;
|
|
14
15
|
next?: ModelRegistryNode | undefined;
|
|
15
16
|
}
|
|
16
|
-
export declare const ModelRegistryContext:
|
|
17
|
+
export declare const ModelRegistryContext: ContextPart<ModelRegistry>;
|
package/dist/ModelRegistry.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "./Context.js";
|
|
2
2
|
/** An intrusive list for storing `Model`s. */
|
|
3
3
|
export class ModelRegistry {
|
|
4
4
|
peek() {
|
|
@@ -33,12 +33,13 @@ export class ModelRegistry {
|
|
|
33
33
|
}
|
|
34
34
|
node.prev = node.next = undefined;
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
36
|
+
clone() {
|
|
37
|
+
const instance = new ModelRegistry();
|
|
38
|
+
for (let node = this.head; node; node = node.next) {
|
|
39
|
+
instance.register(node.model);
|
|
40
|
+
}
|
|
41
|
+
return instance;
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
}
|
|
44
|
+
export const ModelRegistryContext = ContextPart((parent) => parent?.clone() ?? new ModelRegistry(), "model_registry");
|
|
44
45
|
//# sourceMappingURL=ModelRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IAIxB,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;QACpC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAQD,MAAM,CAAC,MAAM,oBAAoB,GAA+B,WAAW,CACzE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,aAAa,EAAE,EAClD,gBAAgB,CACjB,CAAA"}
|
package/dist/Tool.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
|
-
import { toJSONSchema, validate } from "liminal-schema";
|
|
2
|
-
import { subtle } from "node:crypto";
|
|
1
|
+
import { Schema, toJSONSchema, validate, } from "liminal-schema";
|
|
3
2
|
export class Tool {
|
|
4
3
|
name;
|
|
5
4
|
description;
|
|
6
5
|
parameterSchema;
|
|
7
6
|
f;
|
|
8
7
|
static async make(description, type, f) {
|
|
9
|
-
const encoder = new TextEncoder();
|
|
10
8
|
const schema = toJSONSchema(type);
|
|
11
|
-
|
|
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) => {
|
|
9
|
+
return new Tool(await Schema.id(schema, description), description, schema, async (arg) => {
|
|
21
10
|
return await f(await validate(type, arg));
|
|
22
11
|
});
|
|
23
12
|
}
|
package/dist/Tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tool.js","sourceRoot":"","sources":["../Tool.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Tool.js","sourceRoot":"","sources":["../Tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAEN,YAAY,EACZ,QAAQ,GAGT,MAAM,gBAAgB,CAAA;AAEvB,MAAM,OAAO,IAAI;IAkBJ;IACA;IACA;IACA;IApBX,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,WAAmB,EACnB,IAAc,EACd,CAAqC;QAErC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QACjC,OAAO,IAAI,IAAI,CACb,MAAM,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,WAAW,EACX,MAAM,EACN,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,OAAO,MAAM,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAU,CAAC,CAAA;QACpD,CAAC,CACF,CAAA;IACH,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"}
|
package/dist/ToolRegistry.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "liminal";
|
|
2
2
|
import type { Tool } from "./Tool";
|
|
3
3
|
export declare class ToolRegistry extends Set<Tool> {
|
|
4
|
+
clone(): ToolRegistry;
|
|
4
5
|
}
|
|
5
|
-
export declare const ToolRegistryContext:
|
|
6
|
+
export declare const ToolRegistryContext: ContextPart<ToolRegistry>;
|
package/dist/ToolRegistry.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "liminal";
|
|
2
2
|
export class ToolRegistry extends Set {
|
|
3
|
+
clone() {
|
|
4
|
+
return new ToolRegistry([...this]);
|
|
5
|
+
}
|
|
3
6
|
}
|
|
4
|
-
export const ToolRegistryContext =
|
|
7
|
+
export const ToolRegistryContext = ContextPart(() => new ToolRegistry(), "tool_registry");
|
|
5
8
|
//# sourceMappingURL=ToolRegistry.js.map
|
package/dist/ToolRegistry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,MAAM,OAAO,YAAa,SAAQ,GAAS;IACzC,KAAK;QACH,OAAO,IAAI,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA8B,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,eAAe,CAAC,CAAA"}
|