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/L/user.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isTemplateStringsArray } from "liminal-util"
|
|
2
2
|
import type { LEvent } from "../LEvent.ts"
|
|
3
3
|
import type { Rune } from "../Rune.ts"
|
|
4
|
-
import {
|
|
4
|
+
import { message } from "./message.ts"
|
|
5
5
|
|
|
6
6
|
export interface user extends Generator<Rune<LEvent>, void> {}
|
|
7
7
|
|
|
@@ -9,5 +9,5 @@ export function user(template: TemplateStringsArray, ...substitutions: Array<str
|
|
|
9
9
|
export function user(value: string): user
|
|
10
10
|
export function user(e0: TemplateStringsArray | string, ...rest: Array<string>): user {
|
|
11
11
|
const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0
|
|
12
|
-
return
|
|
12
|
+
return message("user", [{ part }])
|
|
13
13
|
}
|
package/LEvent.ts
CHANGED
|
@@ -12,6 +12,12 @@ export type LEvent =
|
|
|
12
12
|
| MessageAppended
|
|
13
13
|
| ModelRegistered
|
|
14
14
|
|
|
15
|
+
export namespace LEvent {
|
|
16
|
+
export function is(value: unknown): value is LEvent {
|
|
17
|
+
return typeof value === "object" && value !== null && "brand" in value && value.brand === LEventTag
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
15
21
|
export const LEventTag: unique symbol = Symbol.for("liminal/LEvent")
|
|
16
22
|
export type LEventTag = typeof LEventTag
|
|
17
23
|
|
|
@@ -56,7 +62,8 @@ export class FiberResolved extends EventBase(LEventTag, "fiber_resolved") {
|
|
|
56
62
|
super()
|
|
57
63
|
}
|
|
58
64
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
export class FiberRejected extends EventBase(LEventTag, "fiber_rejected") {
|
|
66
|
+
constructor(readonly reason: any) {
|
|
67
|
+
super()
|
|
68
|
+
}
|
|
62
69
|
}
|
package/MessageRegistry.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "./Context.ts"
|
|
2
2
|
import type { Message } from "./Message.ts"
|
|
3
3
|
|
|
4
4
|
export class MessageRegistry {
|
|
@@ -16,6 +16,7 @@ export class MessageRegistry {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
export const MessageRegistryContext:
|
|
20
|
-
new MessageRegistry(
|
|
19
|
+
export const MessageRegistryContext: ContextPart<MessageRegistry> = ContextPart(
|
|
20
|
+
(parent) => parent?.clone() ?? new MessageRegistry(),
|
|
21
|
+
"message_registry",
|
|
21
22
|
)
|
package/Model.ts
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { SchemaObject } from "liminal-schema"
|
|
2
2
|
import { attachCustomInspect } from "liminal-util"
|
|
3
3
|
import type { Message } from "./Message.ts"
|
|
4
4
|
|
|
5
5
|
export class Model {
|
|
6
6
|
constructor(
|
|
7
7
|
readonly vendor: string,
|
|
8
|
-
readonly
|
|
8
|
+
readonly seal: (envelope: Envelope) => SealedEnvelope,
|
|
9
9
|
) {}
|
|
10
10
|
|
|
11
11
|
static {
|
|
12
12
|
attachCustomInspect(this, ({ vendor }) => ({ vendor }))
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
+
|
|
16
|
+
export interface Envelope {
|
|
17
|
+
messages: Array<Message>
|
|
18
|
+
schema?: SchemaObject | undefined
|
|
19
|
+
signal?: AbortSignal
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface SealedEnvelope {
|
|
23
|
+
resolve(): Promise<string>
|
|
24
|
+
stream(): ReadableStream<string>
|
|
25
|
+
}
|
package/ModelRegistry.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "./Context.ts"
|
|
2
2
|
import type { Model } from "./Model.ts"
|
|
3
3
|
|
|
4
4
|
/** An intrusive list for storing `Model`s. */
|
|
@@ -39,6 +39,14 @@ export class ModelRegistry {
|
|
|
39
39
|
}
|
|
40
40
|
node.prev = node.next = undefined
|
|
41
41
|
}
|
|
42
|
+
|
|
43
|
+
clone(): ModelRegistry {
|
|
44
|
+
const instance = new ModelRegistry()
|
|
45
|
+
for (let node = this.head; node; node = node.next) {
|
|
46
|
+
instance.register(node.model)
|
|
47
|
+
}
|
|
48
|
+
return instance
|
|
49
|
+
}
|
|
42
50
|
}
|
|
43
51
|
|
|
44
52
|
export interface ModelRegistryNode {
|
|
@@ -47,10 +55,7 @@ export interface ModelRegistryNode {
|
|
|
47
55
|
next?: ModelRegistryNode | undefined
|
|
48
56
|
}
|
|
49
57
|
|
|
50
|
-
export const ModelRegistryContext:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
return instance
|
|
56
|
-
})
|
|
58
|
+
export const ModelRegistryContext: ContextPart<ModelRegistry> = ContextPart(
|
|
59
|
+
(parent) => parent?.clone() ?? new ModelRegistry(),
|
|
60
|
+
"model_registry",
|
|
61
|
+
)
|
package/Tool.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
type LType,
|
|
3
|
+
Schema,
|
|
4
|
+
type SchemaObject,
|
|
5
|
+
toJSONSchema,
|
|
6
|
+
validate,
|
|
7
|
+
type Value,
|
|
8
|
+
type ValueObject,
|
|
9
|
+
} from "liminal-schema"
|
|
3
10
|
|
|
4
11
|
export class Tool {
|
|
5
12
|
static async make<T extends ValueObject>(
|
|
@@ -7,19 +14,15 @@ export class Tool {
|
|
|
7
14
|
type: LType<T>,
|
|
8
15
|
f: (arg: T) => Value | Promise<Value>,
|
|
9
16
|
) {
|
|
10
|
-
const encoder = new TextEncoder()
|
|
11
17
|
const schema = toJSONSchema(type)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return new Tool(base64, description, schema, async (arg) => {
|
|
21
|
-
return await f(await validate(type, arg) as never)
|
|
22
|
-
})
|
|
18
|
+
return new Tool(
|
|
19
|
+
await Schema.id(schema, description),
|
|
20
|
+
description,
|
|
21
|
+
schema,
|
|
22
|
+
async (arg) => {
|
|
23
|
+
return await f(await validate(type, arg) as never)
|
|
24
|
+
},
|
|
25
|
+
)
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
constructor(
|
package/ToolRegistry.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart } from "liminal"
|
|
2
2
|
import type { Tool } from "./Tool"
|
|
3
3
|
|
|
4
|
-
export class ToolRegistry extends Set<Tool> {
|
|
5
|
-
|
|
4
|
+
export class ToolRegistry extends Set<Tool> {
|
|
5
|
+
clone(): ToolRegistry {
|
|
6
|
+
return new ToolRegistry([...this])
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const ToolRegistryContext: ContextPart<ToolRegistry> = ContextPart(() => new ToolRegistry(), "tool_registry")
|
package/dist/Context.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export declare class Context extends Map<
|
|
2
|
-
static
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
run<R>(callback: () => R): R;
|
|
6
|
-
clone(overrides?: Iterable<[ContextHandle, unknown]>): Context;
|
|
1
|
+
export declare class Context extends Map<ContextPart, unknown> {
|
|
2
|
+
static get(): Context | undefined;
|
|
3
|
+
run<R>(f: () => R): R;
|
|
4
|
+
fork(): Context;
|
|
7
5
|
}
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
export interface ContextPart<V = any> {
|
|
7
|
+
fork(parent?: V): V;
|
|
8
|
+
get(): V | undefined;
|
|
9
|
+
debug?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function ContextPart<V>(fork: (parent?: V) => V, debug?: string): ContextPart<V>;
|
package/dist/Context.js
CHANGED
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
import { assert } from "liminal-util";
|
|
2
1
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
3
2
|
const storage = new AsyncLocalStorage();
|
|
4
3
|
export class Context extends Map {
|
|
5
|
-
static
|
|
6
|
-
|
|
7
|
-
assert(context);
|
|
8
|
-
return context;
|
|
9
|
-
}
|
|
10
|
-
get(context) {
|
|
11
|
-
return super.get(context);
|
|
12
|
-
}
|
|
13
|
-
set(context, value) {
|
|
14
|
-
super.set(context, value);
|
|
15
|
-
return this;
|
|
4
|
+
static get() {
|
|
5
|
+
return storage.getStore();
|
|
16
6
|
}
|
|
17
|
-
run(
|
|
18
|
-
return storage.run(this,
|
|
7
|
+
run(f) {
|
|
8
|
+
return storage.run(this, f);
|
|
19
9
|
}
|
|
20
|
-
|
|
21
|
-
const context = new Context(
|
|
10
|
+
fork() {
|
|
11
|
+
const context = new Context();
|
|
22
12
|
for (const [handle, value] of this.entries()) {
|
|
23
13
|
if (!context.has(handle)) {
|
|
24
|
-
context.set(handle, handle.
|
|
14
|
+
context.set(handle, handle.fork(value));
|
|
25
15
|
}
|
|
26
16
|
}
|
|
27
17
|
return context;
|
|
28
18
|
}
|
|
29
19
|
}
|
|
30
|
-
export function
|
|
31
|
-
|
|
20
|
+
export function ContextPart(fork, debug) {
|
|
21
|
+
const self = {
|
|
22
|
+
fork,
|
|
23
|
+
get() {
|
|
24
|
+
return Context.get()?.get(self);
|
|
25
|
+
},
|
|
26
|
+
...debug && { debug },
|
|
27
|
+
};
|
|
28
|
+
return self;
|
|
32
29
|
}
|
|
33
30
|
//# 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,
|
|
1
|
+
{"version":3,"file":"Context.js","sourceRoot":"","sources":["../Context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,MAAM,OAAO,GAAG,IAAI,iBAAiB,EAAW,CAAA;AAEhD,MAAM,OAAO,OAAQ,SAAQ,GAAyB;IACpD,MAAM,CAAC,GAAG;QACR,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC;IAED,GAAG,CAAI,CAAU;QACf,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI;QACF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;QAC7B,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,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;YACzC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF;AAQD,MAAM,UAAU,WAAW,CAAI,IAAuB,EAAE,KAAc;IACpE,MAAM,IAAI,GAAmB;QAC3B,IAAI;QACJ,GAAG;YACD,OAAO,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,IAAI,CAAU,CAAA;QAC1C,CAAC;QACD,GAAG,KAAK,IAAI,EAAE,KAAK,EAAE;KACtB,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/EventBase.d.ts
CHANGED
package/dist/EventBase.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { attachCustomInspect } from "liminal-util";
|
|
2
2
|
export function EventBase(brand, type) {
|
|
3
3
|
return class {
|
|
4
|
+
static is(value) {
|
|
5
|
+
return typeof value === "object" && value !== null
|
|
6
|
+
&& "brand" in value && value.brand === brand
|
|
7
|
+
&& "type" in value && value.type === type;
|
|
8
|
+
}
|
|
4
9
|
brand = brand;
|
|
5
10
|
type = type;
|
|
6
11
|
static {
|
package/dist/EventBase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;QACL,MAAM,CAAC,EAAE,CAAkC,KAAc;YACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;mBAC7C,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK;mBACzC,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAA;QAC7C,CAAC;QAEQ,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
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Context } from "./Context.ts";
|
|
2
|
+
import { type Rune } from "./Rune.ts";
|
|
2
3
|
import { Runic } from "./Runic.ts";
|
|
4
|
+
export interface FiberConfig {
|
|
5
|
+
parent?: Fiber;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
context: Context;
|
|
8
|
+
}
|
|
9
|
+
export declare class Fiber<T = any> {
|
|
10
|
+
#private;
|
|
11
|
+
static [Symbol.iterator](): Generator<Rune<never>, Fiber>;
|
|
12
|
+
static nextIndex: number;
|
|
13
|
+
readonly index: number;
|
|
14
|
+
readonly parent?: Fiber;
|
|
15
|
+
status: FiberStatus<T>;
|
|
16
|
+
controller: AbortController;
|
|
17
|
+
constructor(runic: Runic<Rune, T>, config: FiberConfig);
|
|
18
|
+
handle(event: any): void;
|
|
19
|
+
resolution(): Promise<T>;
|
|
20
|
+
}
|
|
3
21
|
export type FiberStatus<T> = {
|
|
4
22
|
type: "untouched";
|
|
5
23
|
} | {
|
|
@@ -16,17 +34,3 @@ export type FiberStatus<T> = {
|
|
|
16
34
|
type: "rejected";
|
|
17
35
|
exception: unknown;
|
|
18
36
|
};
|
|
19
|
-
export declare class Fiber<T = any> {
|
|
20
|
-
#private;
|
|
21
|
-
static nextIndex: number;
|
|
22
|
-
T: T;
|
|
23
|
-
readonly index: number;
|
|
24
|
-
readonly parent?: Fiber;
|
|
25
|
-
signal: AbortSignal;
|
|
26
|
-
either: AbortSignal;
|
|
27
|
-
abort: (reason?: any) => void;
|
|
28
|
-
status: FiberStatus<T>;
|
|
29
|
-
constructor(runic: Runic<Rune, T>, parent?: Fiber);
|
|
30
|
-
fork<T>(runic: Runic<Rune, T>): Fiber<T>;
|
|
31
|
-
resolution(this: Fiber<T>): Promise<T>;
|
|
32
|
-
}
|
package/dist/Fiber.js
CHANGED
|
@@ -1,41 +1,50 @@
|
|
|
1
1
|
import { attachCustomInspect } from "liminal-util";
|
|
2
2
|
import { Context } from "./Context.js";
|
|
3
|
+
import { HandlerContext } from "./Handler.js";
|
|
4
|
+
import { ToolRegistry, ToolRegistryContext } from "./index.js";
|
|
5
|
+
import { FiberCreated, FiberRejected, FiberResolved, FiberStarted } from "./LEvent.js";
|
|
6
|
+
import { MessageRegistry, MessageRegistryContext } from "./MessageRegistry.js";
|
|
7
|
+
import { ModelRegistry, ModelRegistryContext } from "./ModelRegistry.js";
|
|
8
|
+
import { RuneKey } from "./Rune.js";
|
|
3
9
|
import { Runic } from "./Runic.js";
|
|
4
10
|
export class Fiber {
|
|
11
|
+
static *[Symbol.iterator]() {
|
|
12
|
+
return yield Object.assign((fiber) => fiber, {
|
|
13
|
+
[RuneKey]: true,
|
|
14
|
+
debug: "current_fiber",
|
|
15
|
+
});
|
|
16
|
+
}
|
|
5
17
|
static nextIndex = 0;
|
|
6
18
|
index = Fiber.nextIndex++;
|
|
19
|
+
#context;
|
|
7
20
|
#runic;
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
either;
|
|
11
|
-
abort;
|
|
21
|
+
#handler = HandlerContext.get();
|
|
22
|
+
#configSignal;
|
|
12
23
|
status = { type: "untouched" };
|
|
13
|
-
|
|
24
|
+
controller = new AbortController();
|
|
25
|
+
constructor(runic, config) {
|
|
14
26
|
this.#runic = runic;
|
|
15
|
-
|
|
27
|
+
const { context, parent, signal } = config;
|
|
28
|
+
this.#context = context;
|
|
29
|
+
if (parent)
|
|
16
30
|
this.parent = parent;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
20
|
-
this.either = AbortSignal.any([
|
|
21
|
-
...this.parent?.signal ? [this.parent.signal] : [],
|
|
22
|
-
this.signal,
|
|
23
|
-
]);
|
|
24
|
-
this.abort = controller.abort.bind(controller);
|
|
31
|
+
if (signal)
|
|
32
|
+
this.#configSignal = signal;
|
|
33
|
+
this.handle(new FiberCreated());
|
|
25
34
|
}
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
handle(event) {
|
|
36
|
+
this.#handler?.call(this, event);
|
|
28
37
|
}
|
|
29
38
|
resolution() {
|
|
30
|
-
|
|
31
|
-
switch (status.type) {
|
|
39
|
+
switch (this.status.type) {
|
|
32
40
|
case "untouched": {
|
|
33
41
|
const { promise, resolve, reject } = Promise.withResolvers();
|
|
34
42
|
this.status = {
|
|
35
43
|
type: "pending",
|
|
36
|
-
self: this.signal,
|
|
44
|
+
self: this.controller.signal,
|
|
37
45
|
promise,
|
|
38
46
|
};
|
|
47
|
+
this.handle(new FiberStarted());
|
|
39
48
|
const iterator = Runic.unwrap(this.#runic);
|
|
40
49
|
let nextArg;
|
|
41
50
|
this.#context.run(async () => {
|
|
@@ -51,7 +60,8 @@ export class Fiber {
|
|
|
51
60
|
type: "resolved",
|
|
52
61
|
value,
|
|
53
62
|
};
|
|
54
|
-
|
|
63
|
+
this.handle(new FiberResolved(value));
|
|
64
|
+
this.controller.abort();
|
|
55
65
|
resolve(value);
|
|
56
66
|
}
|
|
57
67
|
catch (exception) {
|
|
@@ -59,23 +69,24 @@ export class Fiber {
|
|
|
59
69
|
type: "rejected",
|
|
60
70
|
exception,
|
|
61
71
|
};
|
|
62
|
-
|
|
72
|
+
this.handle(new FiberRejected(exception));
|
|
73
|
+
this.controller.abort();
|
|
63
74
|
reject(exception);
|
|
64
75
|
}
|
|
65
76
|
});
|
|
66
77
|
return promise;
|
|
67
78
|
}
|
|
68
79
|
case "pending": {
|
|
69
|
-
return status.promise;
|
|
80
|
+
return this.status.promise;
|
|
70
81
|
}
|
|
71
82
|
case "resolved": {
|
|
72
|
-
return Promise.resolve(status.value);
|
|
83
|
+
return Promise.resolve(this.status.value);
|
|
73
84
|
}
|
|
74
85
|
case "rejected": {
|
|
75
|
-
return Promise.reject(status.exception);
|
|
86
|
+
return Promise.reject(this.status.exception);
|
|
76
87
|
}
|
|
77
88
|
case "aborted": {
|
|
78
|
-
return Promise.reject(status.reason);
|
|
89
|
+
return Promise.reject(this.status.reason);
|
|
79
90
|
}
|
|
80
91
|
}
|
|
81
92
|
}
|
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;
|
|
1
|
+
{"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../Fiber.ts"],"names":[],"mappings":"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"}
|
package/dist/Handler.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextPart as ContextPart } from "./Context.ts";
|
|
2
2
|
import type { Fiber } from "./Fiber.ts";
|
|
3
3
|
export type Handler<E = any> = [(this: Fiber, event: E) => void][0];
|
|
4
|
-
export declare const HandlerContext:
|
|
4
|
+
export declare const HandlerContext: ContextPart<Handler | undefined>;
|
package/dist/Handler.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export const HandlerContext =
|
|
1
|
+
import { ContextPart as ContextPart } from "./Context.js";
|
|
2
|
+
export const HandlerContext = ContextPart((parent) => parent, "handler");
|
|
3
3
|
//# sourceMappingURL=Handler.js.map
|
package/dist/Handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Handler.js","sourceRoot":"","sources":["../Handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,WAAW,EAAE,MAAM,cAAc,CAAA;AAKzD,MAAM,CAAC,MAAM,cAAc,GAAqC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA"}
|
package/dist/L/L.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export * from "liminal-schema/factories";
|
|
2
|
-
export * from "./_infer.ts";
|
|
3
|
-
export * from "./_message.ts";
|
|
4
2
|
export * from "./assistant.ts";
|
|
5
|
-
export * from "./branch.ts";
|
|
6
3
|
export * from "./catch.ts";
|
|
7
4
|
export * from "./emit.ts";
|
|
5
|
+
export * from "./infer.ts";
|
|
6
|
+
export * from "./message.ts";
|
|
8
7
|
export * from "./model.ts";
|
|
8
|
+
export * from "./rune.ts";
|
|
9
|
+
export * from "./strand.ts";
|
|
10
|
+
export * from "./stream.ts";
|
|
9
11
|
export * from "./system.ts";
|
|
10
12
|
export * from "./user.ts";
|
package/dist/L/L.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
export * from "liminal-schema/factories";
|
|
2
|
-
export * from "./_infer.js";
|
|
3
|
-
export * from "./_message.js";
|
|
4
2
|
export * from "./assistant.js";
|
|
5
|
-
export * from "./branch.js";
|
|
6
3
|
export * from "./catch.js";
|
|
7
4
|
export * from "./emit.js";
|
|
5
|
+
export * from "./infer.js";
|
|
6
|
+
export * from "./message.js";
|
|
8
7
|
export * from "./model.js";
|
|
8
|
+
export * from "./rune.js";
|
|
9
|
+
export * from "./strand.js";
|
|
10
|
+
export * from "./stream.js";
|
|
9
11
|
export * from "./system.js";
|
|
10
12
|
export * from "./user.js";
|
|
11
13
|
//# sourceMappingURL=L.js.map
|
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,
|
|
1
|
+
{"version":3,"file":"L.js","sourceRoot":"","sources":["../../L/L.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_common.js","sourceRoot":"","sources":["../../L/_common.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,KAAK,GAAW,CAAC,CAAA;IACxB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC"}
|
package/dist/L/assistant.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { toJSONSchema, validate } from "liminal-schema";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { infer } from "./infer.js";
|
|
3
|
+
import { message } from "./message.js";
|
|
4
4
|
import { rune } from "./rune.js";
|
|
5
5
|
export const assistant = Object.assign(function* (type) {
|
|
6
6
|
const schema = toJSONSchema(type);
|
|
7
|
-
const inference = yield*
|
|
8
|
-
yield*
|
|
7
|
+
const inference = yield* infer(schema);
|
|
8
|
+
yield* message("assistant", [{ part: inference }]);
|
|
9
9
|
const input = JSON.parse(inference);
|
|
10
10
|
return yield* rune(() => validate(type, input), "validate_assistant_message");
|
|
11
11
|
}, {
|
|
12
12
|
*[Symbol.iterator]() {
|
|
13
|
-
const inference = yield*
|
|
14
|
-
yield*
|
|
13
|
+
const inference = yield* infer();
|
|
14
|
+
yield* message("assistant", [{ part: inference }]);
|
|
15
15
|
return inference;
|
|
16
16
|
},
|
|
17
17
|
});
|
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,
|
|
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,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,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,KAAK,CAAC,MAAM,CAAC,CAAA;IACtC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAClD,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,KAAK,EAAE,CAAA;QAChC,KAAK,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QAClD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CACF,CAAA"}
|
package/dist/L/catch.js
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
import { assert } from "liminal-util";
|
|
2
|
+
import { Context } from "../Context.js";
|
|
3
|
+
import { Fiber } from "../Fiber.js";
|
|
1
4
|
import { rune } from "./rune.js";
|
|
2
5
|
export { catch_ as catch };
|
|
3
6
|
function* catch_(runic) {
|
|
4
|
-
return yield* rune(async (
|
|
7
|
+
return yield* rune(async (parent) => {
|
|
5
8
|
try {
|
|
6
|
-
|
|
9
|
+
const context = Context.get();
|
|
10
|
+
assert(context);
|
|
11
|
+
return {
|
|
12
|
+
resolved: await context.fork().run(() => new Fiber(runic, {
|
|
13
|
+
context: context.fork(),
|
|
14
|
+
parent,
|
|
15
|
+
}).resolution()),
|
|
16
|
+
};
|
|
7
17
|
}
|
|
8
18
|
catch (exception) {
|
|
9
19
|
return { rejected: exception };
|
package/dist/L/catch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.js","sourceRoot":"","sources":["../../L/catch.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"catch.js","sourceRoot":"","sources":["../../L/catch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAA;AAE1B,QAAQ,CAAC,CAAC,MAAM,CAAoB,KAAkB;IACpD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YAC7B,MAAM,CAAC,OAAO,CAAC,CAAA;YACf,OAAO;gBACL,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CACtC,IAAI,KAAK,CAAC,KAAK,EAAE;oBACf,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;oBACvB,MAAM;iBACP,CAAC,CAAC,UAAU,EAAE,CAChB;aACF,CAAA;QACH,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
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HandlerContext } from "../Handler.js";
|
|
3
|
-
import { rune } from "./rune.js";
|
|
1
|
+
import { Fiber } from "../Fiber.js";
|
|
4
2
|
export function* emit(event) {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
const fiber = yield* rune;
|
|
8
|
-
handler?.call(fiber, event);
|
|
3
|
+
const self = yield* Fiber;
|
|
4
|
+
self.handle(event);
|
|
9
5
|
}
|
|
10
6
|
//# 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,
|
|
1
|
+
{"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAKnC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAU,KAAsB;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,KAAK,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AACpB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SchemaObject } from "liminal-schema";
|
|
2
|
+
import { type LEvent } from "../LEvent.ts";
|
|
3
|
+
import type { Rune } from "../Rune.ts";
|
|
4
|
+
export { infer_ as infer };
|
|
5
|
+
interface infer_ extends Generator<Rune<LEvent>, string> {
|
|
6
|
+
}
|
|
7
|
+
declare function infer_(schema?: SchemaObject): infer_;
|