liminal 0.5.17 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/Context.ts +8 -47
- package/L.ts +4 -0
- package/assistant.ts +52 -0
- package/dist/Context.d.ts +13 -30
- package/dist/Context.js +9 -22
- package/dist/Context.js.map +1 -1
- package/dist/L.d.ts +4 -0
- package/dist/L.js +5 -0
- package/dist/L.js.map +1 -0
- package/dist/assistant.d.ts +9 -0
- package/dist/assistant.js +44 -0
- package/dist/assistant.js.map +1 -0
- package/dist/index.d.ts +2 -14
- package/dist/index.js +2 -14
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts +4 -0
- package/dist/messages.js +5 -0
- package/dist/messages.js.map +1 -0
- package/dist/set.d.ts +3 -0
- package/dist/set.js +11 -0
- package/dist/set.js.map +1 -0
- package/dist/strand.d.ts +15 -0
- package/dist/strand.js +19 -0
- package/dist/strand.js.map +1 -0
- package/dist/todo.test.js +3 -0
- package/dist/todo.test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/user.d.ts +6 -0
- package/dist/user.js +16 -0
- package/dist/user.js.map +1 -0
- package/dist/util/JSONValue.d.ts +0 -3
- package/dist/util/JSONValue.js +1 -31
- package/dist/util/JSONValue.js.map +1 -1
- package/index.ts +2 -14
- package/messages.ts +6 -0
- package/package.json +4 -3
- package/set.ts +11 -0
- package/strand.ts +38 -0
- package/todo.test.ts +3 -0
- package/user.ts +22 -0
- package/util/JSONValue.ts +0 -30
- package/Adapter.ts +0 -27
- package/AdapterRegistry.ts +0 -78
- package/Config.ts +0 -13
- package/Definition.ts +0 -48
- package/EventBase.ts +0 -23
- package/Handler.ts +0 -4
- package/L/L.ts +0 -24
- package/L/all.ts +0 -39
- package/L/assistant.ts +0 -28
- package/L/catch.ts +0 -38
- package/L/continuation.ts +0 -14
- package/L/emit.ts +0 -16
- package/L/focus.ts +0 -17
- package/L/infer.ts +0 -34
- package/L/message.ts +0 -16
- package/L/reflect.ts +0 -13
- package/L/run.ts +0 -29
- package/L/schema/_schema_common.ts +0 -30
- package/L/schema/anyOf.ts +0 -10
- package/L/schema/array.ts +0 -13
- package/L/schema/boolean.ts +0 -8
- package/L/schema/const.ts +0 -18
- package/L/schema/enum.ts +0 -18
- package/L/schema/integer.ts +0 -6
- package/L/schema/null.ts +0 -8
- package/L/schema/number.ts +0 -8
- package/L/schema/object.ts +0 -21
- package/L/schema/string.ts +0 -11
- package/L/strand.ts +0 -22
- package/L/stream.ts +0 -16
- package/L/system.ts +0 -19
- package/L/user.ts +0 -19
- package/LEvent.ts +0 -61
- package/LiminalAssertionError.ts +0 -19
- package/Message.ts +0 -16
- package/Rune.test.ts +0 -5
- package/Rune.ts +0 -60
- package/Schema.ts +0 -185
- package/Strand.ts +0 -284
- package/Tool.ts +0 -26
- package/TypeAdapter.ts +0 -3
- package/dist/Adapter.d.ts +0 -18
- package/dist/Adapter.js +0 -13
- package/dist/Adapter.js.map +0 -1
- package/dist/AdapterRegistry.d.ts +0 -27
- package/dist/AdapterRegistry.js +0 -62
- package/dist/AdapterRegistry.js.map +0 -1
- package/dist/Config.d.ts +0 -12
- package/dist/Config.js +0 -2
- package/dist/Config.js.map +0 -1
- package/dist/Definition.d.ts +0 -24
- package/dist/Definition.js +0 -29
- package/dist/Definition.js.map +0 -1
- package/dist/EventBase.d.ts +0 -11
- package/dist/EventBase.js +0 -16
- package/dist/EventBase.js.map +0 -1
- package/dist/Handler.d.ts +0 -3
- package/dist/Handler.js +0 -2
- package/dist/Handler.js.map +0 -1
- package/dist/L/L.d.ts +0 -24
- package/dist/L/L.js +0 -25
- package/dist/L/L.js.map +0 -1
- package/dist/L/all.d.ts +0 -14
- package/dist/L/all.js +0 -20
- package/dist/L/all.js.map +0 -1
- package/dist/L/assistant.d.ts +0 -11
- package/dist/L/assistant.js +0 -15
- package/dist/L/assistant.js.map +0 -1
- package/dist/L/catch.d.ts +0 -16
- package/dist/L/catch.js +0 -25
- package/dist/L/catch.js.map +0 -1
- package/dist/L/continuation.d.ts +0 -4
- package/dist/L/continuation.js +0 -13
- package/dist/L/continuation.js.map +0 -1
- package/dist/L/emit.d.ts +0 -7
- package/dist/L/emit.js +0 -15
- package/dist/L/emit.js.map +0 -1
- package/dist/L/focus.d.ts +0 -8
- package/dist/L/focus.js +0 -14
- package/dist/L/focus.js.map +0 -1
- package/dist/L/infer.d.ts +0 -8
- package/dist/L/infer.js +0 -30
- package/dist/L/infer.js.map +0 -1
- package/dist/L/message.d.ts +0 -8
- package/dist/L/message.js +0 -14
- package/dist/L/message.js.map +0 -1
- package/dist/L/reflect.d.ts +0 -5
- package/dist/L/reflect.js +0 -11
- package/dist/L/reflect.js.map +0 -1
- package/dist/L/run.d.ts +0 -14
- package/dist/L/run.js +0 -16
- package/dist/L/run.js.map +0 -1
- package/dist/L/schema/_schema_common.d.ts +0 -6
- package/dist/L/schema/_schema_common.js +0 -20
- package/dist/L/schema/_schema_common.js.map +0 -1
- package/dist/L/schema/anyOf.d.ts +0 -5
- package/dist/L/schema/anyOf.js +0 -5
- package/dist/L/schema/anyOf.js.map +0 -1
- package/dist/L/schema/array.d.ts +0 -5
- package/dist/L/schema/array.js +0 -8
- package/dist/L/schema/array.js.map +0 -1
- package/dist/L/schema/boolean.d.ts +0 -6
- package/dist/L/schema/boolean.js +0 -4
- package/dist/L/schema/boolean.js.map +0 -1
- package/dist/L/schema/const.d.ts +0 -8
- package/dist/L/schema/const.js +0 -10
- package/dist/L/schema/const.js.map +0 -1
- package/dist/L/schema/enum.d.ts +0 -8
- package/dist/L/schema/enum.js +0 -10
- package/dist/L/schema/enum.js.map +0 -1
- package/dist/L/schema/integer.d.ts +0 -5
- package/dist/L/schema/integer.js +0 -3
- package/dist/L/schema/integer.js.map +0 -1
- package/dist/L/schema/null.d.ts +0 -6
- package/dist/L/schema/null.js +0 -4
- package/dist/L/schema/null.js.map +0 -1
- package/dist/L/schema/number.d.ts +0 -6
- package/dist/L/schema/number.js +0 -4
- package/dist/L/schema/number.js.map +0 -1
- package/dist/L/schema/object.d.ts +0 -9
- package/dist/L/schema/object.js +0 -12
- package/dist/L/schema/object.js.map +0 -1
- package/dist/L/schema/string.d.ts +0 -8
- package/dist/L/schema/string.js +0 -4
- package/dist/L/schema/string.js.map +0 -1
- package/dist/L/strand.d.ts +0 -9
- package/dist/L/strand.js +0 -16
- package/dist/L/strand.js.map +0 -1
- package/dist/L/stream.d.ts +0 -4
- package/dist/L/stream.js +0 -15
- package/dist/L/stream.js.map +0 -1
- package/dist/L/system.d.ts +0 -4
- package/dist/L/system.js +0 -9
- package/dist/L/system.js.map +0 -1
- package/dist/L/user.d.ts +0 -4
- package/dist/L/user.js +0 -9
- package/dist/L/user.js.map +0 -1
- package/dist/LEvent.d.ts +0 -68
- package/dist/LEvent.js +0 -50
- package/dist/LEvent.js.map +0 -1
- package/dist/LiminalAssertionError.d.ts +0 -8
- package/dist/LiminalAssertionError.js +0 -20
- package/dist/LiminalAssertionError.js.map +0 -1
- package/dist/Message.d.ts +0 -14
- package/dist/Message.js +0 -2
- package/dist/Message.js.map +0 -1
- package/dist/Rune.d.ts +0 -46
- package/dist/Rune.js +0 -11
- package/dist/Rune.js.map +0 -1
- package/dist/Rune.test.js +0 -5
- package/dist/Rune.test.js.map +0 -1
- package/dist/Schema.d.ts +0 -46
- package/dist/Schema.js +0 -130
- package/dist/Schema.js.map +0 -1
- package/dist/Strand.d.ts +0 -81
- package/dist/Strand.js +0 -200
- package/dist/Strand.js.map +0 -1
- package/dist/Tool.d.ts +0 -10
- package/dist/Tool.js +0 -19
- package/dist/Tool.js.map +0 -1
- package/dist/TypeAdapter.d.ts +0 -1
- package/dist/TypeAdapter.js +0 -3
- package/dist/TypeAdapter.js.map +0 -1
- package/dist/errors.d.ts +0 -9
- package/dist/errors.js +0 -11
- package/dist/errors.js.map +0 -1
- package/dist/util/EnsureNarrow.d.ts +0 -1
- package/dist/util/EnsureNarrow.js +0 -2
- package/dist/util/EnsureNarrow.js.map +0 -1
- package/dist/util/attachCustomInspect.d.ts +0 -1
- package/dist/util/attachCustomInspect.js +0 -11
- package/dist/util/attachCustomInspect.js.map +0 -1
- package/errors.ts +0 -12
- package/util/EnsureNarrow.ts +0 -1
- package/util/attachCustomInspect.ts +0 -14
- /package/dist/{Rune.test.d.ts → todo.test.d.ts} +0 -0
package/dist/L/system.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { fixTemplateStrings } from "../util/fixTemplateStrings.js";
|
|
2
|
-
import { isTemplateStringsArray } from "../util/isTemplateStringsArray.js";
|
|
3
|
-
import { message } from "./message.js";
|
|
4
|
-
export function system(e0, ...rest) {
|
|
5
|
-
return message("system", [{
|
|
6
|
-
part: isTemplateStringsArray(e0) ? String.raw(fixTemplateStrings(e0), ...rest) : e0,
|
|
7
|
-
}]);
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=system.js.map
|
package/dist/L/system.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAOtC,MAAM,UAAU,MAAM,CACpB,EAAiC,EACjC,GAAG,IAA4B;IAE/B,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SACpF,CAAC,CAAC,CAAA;AACL,CAAC"}
|
package/dist/L/user.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { LEvent } from "../LEvent.ts";
|
|
2
|
-
import type { Rune } from "../Rune.ts";
|
|
3
|
-
export declare function user(template: TemplateStringsArray, ...substitutions: Array<number | string>): Generator<Rune<LEvent>, void>;
|
|
4
|
-
export declare function user(value: string): Generator<Rune<LEvent>, void>;
|
package/dist/L/user.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { fixTemplateStrings } from "../util/fixTemplateStrings.js";
|
|
2
|
-
import { isTemplateStringsArray } from "../util/isTemplateStringsArray.js";
|
|
3
|
-
import { message } from "./message.js";
|
|
4
|
-
export function user(e0, ...rest) {
|
|
5
|
-
return message("user", [{
|
|
6
|
-
part: isTemplateStringsArray(e0) ? String.raw(fixTemplateStrings(e0), ...rest) : e0,
|
|
7
|
-
}]);
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=user.js.map
|
package/dist/L/user.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAOtC,MAAM,UAAU,IAAI,CAClB,EAAiC,EACjC,GAAG,IAA4B;IAE/B,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,IAAI,EAAE,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SACpF,CAAC,CAAC,CAAA;AACL,CAAC"}
|
package/dist/LEvent.d.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import type { Adapter } from "./Adapter.ts";
|
|
2
|
-
import type { Message } from "./Message.ts";
|
|
3
|
-
import type { Schema } from "./Schema.ts";
|
|
4
|
-
import type { StrandStatus } from "./Strand.ts";
|
|
5
|
-
export type LEvent = AdapterFocused | InferenceRequested | Inferred | MessageAppended | StrandStatusChanged;
|
|
6
|
-
export declare namespace LEvent {
|
|
7
|
-
function is(value: unknown): value is LEvent;
|
|
8
|
-
}
|
|
9
|
-
export declare const LEventTag: unique symbol;
|
|
10
|
-
export type LEventTag = typeof LEventTag;
|
|
11
|
-
declare const AdapterFocused_base: {
|
|
12
|
-
new (): {
|
|
13
|
-
readonly brand: typeof LEventTag;
|
|
14
|
-
readonly type: "adapter_focused";
|
|
15
|
-
};
|
|
16
|
-
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
17
|
-
};
|
|
18
|
-
export declare class AdapterFocused extends AdapterFocused_base {
|
|
19
|
-
readonly adapter: Adapter;
|
|
20
|
-
constructor(adapter: Adapter);
|
|
21
|
-
}
|
|
22
|
-
declare const InferenceRequested_base: {
|
|
23
|
-
new (): {
|
|
24
|
-
readonly brand: typeof LEventTag;
|
|
25
|
-
readonly type: "inference_requested";
|
|
26
|
-
};
|
|
27
|
-
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
28
|
-
};
|
|
29
|
-
export declare class InferenceRequested extends InferenceRequested_base {
|
|
30
|
-
readonly requestId: string;
|
|
31
|
-
schema?: Schema;
|
|
32
|
-
constructor(requestId: string, schema?: Schema | undefined);
|
|
33
|
-
}
|
|
34
|
-
declare const Inferred_base: {
|
|
35
|
-
new (): {
|
|
36
|
-
readonly brand: typeof LEventTag;
|
|
37
|
-
readonly type: "inferred";
|
|
38
|
-
};
|
|
39
|
-
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
40
|
-
};
|
|
41
|
-
export declare class Inferred extends Inferred_base {
|
|
42
|
-
readonly requestId: string;
|
|
43
|
-
readonly inference: string;
|
|
44
|
-
constructor(requestId: string, inference: string);
|
|
45
|
-
}
|
|
46
|
-
declare const MessageAppended_base: {
|
|
47
|
-
new (): {
|
|
48
|
-
readonly brand: typeof LEventTag;
|
|
49
|
-
readonly type: "message_appended";
|
|
50
|
-
};
|
|
51
|
-
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
52
|
-
};
|
|
53
|
-
export declare class MessageAppended extends MessageAppended_base {
|
|
54
|
-
readonly message: Message;
|
|
55
|
-
constructor(message: Message);
|
|
56
|
-
}
|
|
57
|
-
declare const StrandStatusChanged_base: {
|
|
58
|
-
new (): {
|
|
59
|
-
readonly brand: typeof LEventTag;
|
|
60
|
-
readonly type: "strand_status_changed";
|
|
61
|
-
};
|
|
62
|
-
is<T>(this: new (...args: any) => T, value: unknown): value is T;
|
|
63
|
-
};
|
|
64
|
-
export declare class StrandStatusChanged extends StrandStatusChanged_base {
|
|
65
|
-
readonly status: StrandStatus;
|
|
66
|
-
constructor(status: StrandStatus);
|
|
67
|
-
}
|
|
68
|
-
export {};
|
package/dist/LEvent.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
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 = {}));
|
|
9
|
-
export const LEventTag = Symbol.for("liminal/LEvent");
|
|
10
|
-
export class AdapterFocused extends EventBase(LEventTag, "adapter_focused") {
|
|
11
|
-
adapter;
|
|
12
|
-
constructor(adapter) {
|
|
13
|
-
super();
|
|
14
|
-
this.adapter = adapter;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export class InferenceRequested extends EventBase(LEventTag, "inference_requested") {
|
|
18
|
-
requestId;
|
|
19
|
-
constructor(requestId, schema) {
|
|
20
|
-
super();
|
|
21
|
-
this.requestId = requestId;
|
|
22
|
-
if (schema) {
|
|
23
|
-
this.schema = schema;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
export class Inferred extends EventBase(LEventTag, "inferred") {
|
|
28
|
-
requestId;
|
|
29
|
-
inference;
|
|
30
|
-
constructor(requestId, inference) {
|
|
31
|
-
super();
|
|
32
|
-
this.requestId = requestId;
|
|
33
|
-
this.inference = inference;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export class MessageAppended extends EventBase(LEventTag, "message_appended") {
|
|
37
|
-
message;
|
|
38
|
-
constructor(message) {
|
|
39
|
-
super();
|
|
40
|
-
this.message = message;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
export class StrandStatusChanged extends EventBase(LEventTag, "strand_status_changed") {
|
|
44
|
-
status;
|
|
45
|
-
constructor(status) {
|
|
46
|
-
super();
|
|
47
|
-
this.status = status;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=LEvent.js.map
|
package/dist/LEvent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAY1C,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,cAAe,SAAQ,SAAS,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACpD;IAArB,YAAqB,OAAgB;QACnC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAS;IAErC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAGtE;IADX,YACW,SAAiB,EAC1B,MAA2B;QAE3B,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,mBAAoB,SAAQ,SAAS,CAAC,SAAS,EAAE,uBAAuB,CAAC;IAC/D;IAArB,YAAqB,MAAoB;QACvC,KAAK,EAAE,CAAA;QADY,WAAM,GAAN,MAAM,CAAc;IAEzC,CAAC;CACF"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare class LiminalAssertionError extends Error {
|
|
2
|
-
readonly name = "LiminalAssertionError";
|
|
3
|
-
}
|
|
4
|
-
export declare namespace LiminalAssertionError {
|
|
5
|
-
function assert(expr: unknown, msg?: string): asserts expr;
|
|
6
|
-
function unimplemented(): never;
|
|
7
|
-
function unreachable(): never;
|
|
8
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export class LiminalAssertionError extends Error {
|
|
2
|
-
name = "LiminalAssertionError";
|
|
3
|
-
}
|
|
4
|
-
(function (LiminalAssertionError) {
|
|
5
|
-
function assert(expr, msg = "") {
|
|
6
|
-
if (!expr) {
|
|
7
|
-
throw new LiminalAssertionError(msg);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
LiminalAssertionError.assert = assert;
|
|
11
|
-
function unimplemented() {
|
|
12
|
-
throw new LiminalAssertionError();
|
|
13
|
-
}
|
|
14
|
-
LiminalAssertionError.unimplemented = unimplemented;
|
|
15
|
-
function unreachable() {
|
|
16
|
-
throw new LiminalAssertionError();
|
|
17
|
-
}
|
|
18
|
-
LiminalAssertionError.unreachable = unreachable;
|
|
19
|
-
})(LiminalAssertionError || (LiminalAssertionError = {}));
|
|
20
|
-
//# sourceMappingURL=LiminalAssertionError.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiminalAssertionError.js","sourceRoot":"","sources":["../LiminalAssertionError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC5B,IAAI,GAAG,uBAAuB,CAAA;CACjD;AAED,WAAiB,qBAAqB;IACpC,SAAgB,MAAM,CAAC,IAAa,EAAE,GAAG,GAAG,EAAE;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAJe,4BAAM,SAIrB,CAAA;IAED,SAAgB,aAAa;QAC3B,MAAM,IAAI,qBAAqB,EAAE,CAAA;IACnC,CAAC;IAFe,mCAAa,gBAE5B,CAAA;IAED,SAAgB,WAAW;QACzB,MAAM,IAAI,qBAAqB,EAAE,CAAA;IACnC,CAAC;IAFe,iCAAW,cAE1B,CAAA;AACH,CAAC,EAdgB,qBAAqB,KAArB,qBAAqB,QAcrC"}
|
package/dist/Message.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export interface Message {
|
|
2
|
-
readonly role: MessageRole;
|
|
3
|
-
readonly parts: Array<Content>;
|
|
4
|
-
}
|
|
5
|
-
export type MessageRole = "system" | "user" | "assistant";
|
|
6
|
-
export type Content = {
|
|
7
|
-
readonly part: string;
|
|
8
|
-
readonly alt?: never;
|
|
9
|
-
readonly mime?: never;
|
|
10
|
-
} | {
|
|
11
|
-
readonly part: URL;
|
|
12
|
-
readonly alt: string;
|
|
13
|
-
readonly mime?: string;
|
|
14
|
-
};
|
package/dist/Message.js
DELETED
package/dist/Message.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"","sources":["../Message.ts"],"names":[],"mappings":""}
|
package/dist/Rune.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import type { Context } from "./Context.ts";
|
|
2
|
-
import type { Definition } from "./Definition.ts";
|
|
3
|
-
/**
|
|
4
|
-
* `Rune` represents a computational unit within a Strand execution.
|
|
5
|
-
* It is a specialized protocol for expressing different kinds of operations
|
|
6
|
-
* that can be yielded from generator functions to control message state
|
|
7
|
-
* and concurrency within the Liminal runtime.
|
|
8
|
-
* @template E The event type this Rune can handle
|
|
9
|
-
*/
|
|
10
|
-
export interface Rune<E> {
|
|
11
|
-
[RuneKey]: true;
|
|
12
|
-
instruction: RuneInstruction<E>;
|
|
13
|
-
}
|
|
14
|
-
export type RuneInstruction<E> = RuneInstruction.Continue | RuneInstruction.Emit<E> | RuneInstruction.Reflect | RuneInstruction.CreateChild;
|
|
15
|
-
export declare namespace RuneInstruction {
|
|
16
|
-
/** Tells the runtime to call this function and and pass the result to the next iteration. */
|
|
17
|
-
interface Continue {
|
|
18
|
-
kind: "continue";
|
|
19
|
-
debug: string;
|
|
20
|
-
f: () => any;
|
|
21
|
-
}
|
|
22
|
-
/** Dispatch an event to the registered handler. */
|
|
23
|
-
interface Emit<E> {
|
|
24
|
-
kind: "emit";
|
|
25
|
-
event: E;
|
|
26
|
-
}
|
|
27
|
-
/** Tells the runtime to provide a reference to the current strand */
|
|
28
|
-
interface Reflect {
|
|
29
|
-
kind: "reflect";
|
|
30
|
-
}
|
|
31
|
-
/** Creates a nested execution context with its own definition. */
|
|
32
|
-
interface CreateChild {
|
|
33
|
-
kind: "create_child";
|
|
34
|
-
definition: Definition;
|
|
35
|
-
context?: Context | undefined;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export declare namespace Rune {
|
|
39
|
-
/** Extract the event type from a Rune type. */
|
|
40
|
-
type E<X extends Rune<any>> = X extends Rune<infer E> ? E : never;
|
|
41
|
-
/** Type guard to check if a value is a Rune. */
|
|
42
|
-
function is(value: unknown): value is Rune<any>;
|
|
43
|
-
}
|
|
44
|
-
/** Symbol used to identify Rune objects. */
|
|
45
|
-
export declare const RuneKey: unique symbol;
|
|
46
|
-
export type RuneKey = typeof RuneKey;
|
package/dist/Rune.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export var Rune;
|
|
2
|
-
(function (Rune) {
|
|
3
|
-
/** Type guard to check if a value is a Rune. */
|
|
4
|
-
function is(value) {
|
|
5
|
-
return typeof value === "object" && value !== null && RuneKey in value;
|
|
6
|
-
}
|
|
7
|
-
Rune.is = is;
|
|
8
|
-
})(Rune || (Rune = {}));
|
|
9
|
-
/** Symbol used to identify Rune objects. */
|
|
10
|
-
export const RuneKey = Symbol.for("liminal/RuneKey");
|
|
11
|
-
//# sourceMappingURL=Rune.js.map
|
package/dist/Rune.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Rune.js","sourceRoot":"","sources":["../Rune.ts"],"names":[],"mappings":"AA+CA,MAAM,KAAW,IAAI,CAQpB;AARD,WAAiB,IAAI;IAInB,gDAAgD;IAChD,SAAgB,EAAE,CAAC,KAAc;QAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;IACxE,CAAC;IAFe,OAAE,KAEjB,CAAA;AACH,CAAC,EARgB,IAAI,KAAJ,IAAI,QAQpB;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA"}
|
package/dist/Rune.test.js
DELETED
package/dist/Rune.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Rune.test.js","sourceRoot":"","sources":["../Rune.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAErC,IAAI,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACjC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,CAAC,CAAC,CAAA"}
|
package/dist/Schema.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
export type Schema<T = any> = SchemaType<T> | SchemaAnyOf<T>;
|
|
2
|
-
export type SchemaType<T = any> = SchemaNull<T> | SchemaBoolean<T> | SchemaInteger<T> | SchemaNumber<T> | SchemaString<T> | SchemaArray<T> | SchemaObject<T>;
|
|
3
|
-
export interface SchemaNull<T = any> extends SchemaTypeBase<"null", T> {
|
|
4
|
-
}
|
|
5
|
-
export interface SchemaBoolean<T = any> extends SchemaTypeBase<"boolean", T> {
|
|
6
|
-
}
|
|
7
|
-
export interface SchemaInteger<T = any> extends SchemaTypeBase<"integer", T> {
|
|
8
|
-
}
|
|
9
|
-
export interface SchemaNumber<T = any> extends SchemaTypeBase<"number", T> {
|
|
10
|
-
}
|
|
11
|
-
export interface SchemaString<T = any> extends SchemaTypeBase<"string", T> {
|
|
12
|
-
enum?: Array<string>;
|
|
13
|
-
const?: string;
|
|
14
|
-
}
|
|
15
|
-
export interface SchemaArray<T = any> extends SchemaTypeBase<"array", T> {
|
|
16
|
-
items: Schema;
|
|
17
|
-
}
|
|
18
|
-
export interface SchemaObject<T = any> extends SchemaTypeBase<"object", T> {
|
|
19
|
-
properties: Record<string, Schema>;
|
|
20
|
-
required: Array<string>;
|
|
21
|
-
additionalProperties: false;
|
|
22
|
-
}
|
|
23
|
-
interface SchemaTypeBase<K extends SchemaTypeName, T> extends SchemaBase<T> {
|
|
24
|
-
type: K;
|
|
25
|
-
anyOf?: never;
|
|
26
|
-
}
|
|
27
|
-
export type SchemaTypeName = "null" | "boolean" | "integer" | "number" | "string" | "array" | "object";
|
|
28
|
-
export interface SchemaAnyOf<T = any> extends SchemaBase<T> {
|
|
29
|
-
type?: never;
|
|
30
|
-
anyOf: Array<Schema>;
|
|
31
|
-
}
|
|
32
|
-
export interface SchemaBase<T> {
|
|
33
|
-
T: T;
|
|
34
|
-
description?: string;
|
|
35
|
-
}
|
|
36
|
-
export declare namespace Schema {
|
|
37
|
-
function compile<T>(key: WeakKey, { schema: schema_, validate, }: {
|
|
38
|
-
schema(): unknown;
|
|
39
|
-
validate(value: unknown): T;
|
|
40
|
-
}): Schema<any>;
|
|
41
|
-
function validateValue<T>(schema: Schema<T>, value: unknown): T;
|
|
42
|
-
function id(schema: Schema, description?: string): Promise<string>;
|
|
43
|
-
function wrap(schema: Schema): SchemaObject;
|
|
44
|
-
function validate(value: unknown): Schema;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
package/dist/Schema.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { subtle } from "node:crypto";
|
|
2
|
-
import { LiminalAssertionError as LE } from "./LiminalAssertionError.js";
|
|
3
|
-
export var Schema;
|
|
4
|
-
(function (Schema) {
|
|
5
|
-
const ids = new WeakMap();
|
|
6
|
-
const schemas = new WeakMap();
|
|
7
|
-
const validators = new WeakMap();
|
|
8
|
-
function compile(key, { schema: schema_, validate, }) {
|
|
9
|
-
let schema = schemas.get(key);
|
|
10
|
-
if (!schema) {
|
|
11
|
-
schema = Schema.validate(schema_());
|
|
12
|
-
schemas.set(key, schema);
|
|
13
|
-
}
|
|
14
|
-
validators.set(schema, validate);
|
|
15
|
-
return schema;
|
|
16
|
-
}
|
|
17
|
-
Schema.compile = compile;
|
|
18
|
-
function validateValue(schema, value) {
|
|
19
|
-
const validator = validators.get(schema);
|
|
20
|
-
LE.assert(validator);
|
|
21
|
-
return validator(value);
|
|
22
|
-
}
|
|
23
|
-
Schema.validateValue = validateValue;
|
|
24
|
-
async function id(schema, description) {
|
|
25
|
-
description = description ?? "";
|
|
26
|
-
if (!ids.has(schema)) {
|
|
27
|
-
ids.set(schema, {});
|
|
28
|
-
}
|
|
29
|
-
const schemaIds = ids.get(schema);
|
|
30
|
-
let id = schemaIds[description];
|
|
31
|
-
if (!id) {
|
|
32
|
-
const content = `${description}_${JSON.stringify(schema)}`;
|
|
33
|
-
const bytes = new Uint8Array(await subtle.digest("SHA-256", new TextEncoder().encode(content)));
|
|
34
|
-
let binary = "";
|
|
35
|
-
for (const b of bytes)
|
|
36
|
-
binary += String.fromCharCode(b);
|
|
37
|
-
id = btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
|
|
38
|
-
schemaIds[description] = id;
|
|
39
|
-
}
|
|
40
|
-
return id;
|
|
41
|
-
}
|
|
42
|
-
Schema.id = id;
|
|
43
|
-
function wrap(schema) {
|
|
44
|
-
return {
|
|
45
|
-
type: "object",
|
|
46
|
-
properties: { value: schema },
|
|
47
|
-
additionalProperties: false,
|
|
48
|
-
required: ["value"],
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
Schema.wrap = wrap;
|
|
52
|
-
function validate(value) {
|
|
53
|
-
LE.assert(typeof value === "object");
|
|
54
|
-
LE.assert(value !== null);
|
|
55
|
-
if ("anyOf" in value) {
|
|
56
|
-
LE.assert(Array.isArray(value.anyOf));
|
|
57
|
-
return {
|
|
58
|
-
anyOf: value.anyOf.map(validate),
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
if ("enum" in value) {
|
|
63
|
-
LE.assert(Array.isArray(value.enum));
|
|
64
|
-
LE.assert(!("const" in value));
|
|
65
|
-
value.enum.forEach((v) => LE.assert(typeof v === "string"));
|
|
66
|
-
return {
|
|
67
|
-
type: "string",
|
|
68
|
-
enum: value.enum,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
else if ("const" in value) {
|
|
72
|
-
LE.assert(typeof value.const === "string");
|
|
73
|
-
return {
|
|
74
|
-
type: "string",
|
|
75
|
-
const: value.const,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
else if ("type" in value) {
|
|
79
|
-
LE.assert("type" in value);
|
|
80
|
-
LE.assert(typeof value.type === "string");
|
|
81
|
-
LE.assert(SCHEMA_TYPE_NAMES[value.type]);
|
|
82
|
-
switch (value.type) {
|
|
83
|
-
case "null":
|
|
84
|
-
case "boolean":
|
|
85
|
-
case "integer":
|
|
86
|
-
case "number": {
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
case "string": {
|
|
90
|
-
if ("const" in value) {
|
|
91
|
-
LE.assert(typeof value.const === "string");
|
|
92
|
-
}
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
case "array": {
|
|
96
|
-
LE.assert("items" in value);
|
|
97
|
-
return {
|
|
98
|
-
type: "array",
|
|
99
|
-
items: validate(value.items),
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
case "object": {
|
|
103
|
-
LE.assert("properties" in value);
|
|
104
|
-
LE.assert(typeof value.properties === "object");
|
|
105
|
-
const { properties } = value;
|
|
106
|
-
LE.assert(properties !== null);
|
|
107
|
-
return {
|
|
108
|
-
type: "object",
|
|
109
|
-
properties: Object.fromEntries(Object.entries(properties).map(([key, value]) => [key, validate(value)])),
|
|
110
|
-
required: Object.keys(properties),
|
|
111
|
-
additionalProperties: false,
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return value;
|
|
118
|
-
}
|
|
119
|
-
Schema.validate = validate;
|
|
120
|
-
})(Schema || (Schema = {}));
|
|
121
|
-
const SCHEMA_TYPE_NAMES = {
|
|
122
|
-
null: true,
|
|
123
|
-
boolean: true,
|
|
124
|
-
integer: true,
|
|
125
|
-
number: true,
|
|
126
|
-
string: true,
|
|
127
|
-
array: true,
|
|
128
|
-
object: true,
|
|
129
|
-
};
|
|
130
|
-
//# sourceMappingURL=Schema.js.map
|
package/dist/Schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Schema.js","sourceRoot":"","sources":["../Schema.ts"],"names":[],"mappings":"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"}
|
package/dist/Strand.d.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { Context } from "./Context.ts";
|
|
2
|
-
import { Definition } from "./Definition.ts";
|
|
3
|
-
import type { Rune } from "./Rune.ts";
|
|
4
|
-
/** Configuration options for creating a new Strand. */
|
|
5
|
-
export interface StrandConfig {
|
|
6
|
-
/** Optional parent strand that this strand will be a child of */
|
|
7
|
-
parent?: Strand | undefined;
|
|
8
|
-
/** Optional context for the strand execution */
|
|
9
|
-
context?: Context | undefined;
|
|
10
|
-
/** Optional abort signal that can be used to cancel strand execution */
|
|
11
|
-
signal?: AbortSignal | undefined;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* A "Strand" is the core unit of execution in Liminal.
|
|
15
|
-
*
|
|
16
|
-
* It represents a suspendable computation that can yield Runes to control conversation state.
|
|
17
|
-
* Strands implement both the Iterable and PromiseLike interfaces to enable both
|
|
18
|
-
* running (via awaiting) and joining to parent strands (via yielding).
|
|
19
|
-
*
|
|
20
|
-
* Strands maintain their own state and can be hierarchically organized with parent-child
|
|
21
|
-
* relationships. Child strands are bound to their parents, ensuring consistent
|
|
22
|
-
* cancellation behavior.
|
|
23
|
-
*
|
|
24
|
-
* @template Y The type of Runes this Strand can yield.
|
|
25
|
-
* @template T The result type of the Strand.
|
|
26
|
-
*/
|
|
27
|
-
export declare class Strand<Y extends Rune<any> = Rune<any>, T = any> implements Iterable<Y, T>, PromiseLike<T> {
|
|
28
|
-
#private;
|
|
29
|
-
T: T;
|
|
30
|
-
Y: Y;
|
|
31
|
-
/** Signal that can be used to detect when this strand is aborted. */
|
|
32
|
-
readonly signal: AbortSignal;
|
|
33
|
-
/** Current status of the strand (untouched, pending, resolved, rejected) */
|
|
34
|
-
status: StrandStatus<T>;
|
|
35
|
-
/** Unique identifier for this strand. */
|
|
36
|
-
readonly index: number;
|
|
37
|
-
/** Nesting depth in the strand hierarchy. */
|
|
38
|
-
readonly depth: number;
|
|
39
|
-
/** The parent strand or undefined. */
|
|
40
|
-
readonly parent?: Strand;
|
|
41
|
-
/** The conversation state with which the strand operates. */
|
|
42
|
-
readonly context: Context;
|
|
43
|
-
constructor(definition: Definition<Y, T>, config: StrandConfig);
|
|
44
|
-
then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): PromiseLike<TResult1 | TResult2>;
|
|
45
|
-
[Symbol.iterator](): Generator<Y, T>;
|
|
46
|
-
}
|
|
47
|
-
export type StrandStatus<T = any> = StrandStatus.Untouched | StrandStatus.Pending<T> | StrandStatus.Resolved<T> | StrandStatus.Rejected;
|
|
48
|
-
export declare namespace StrandStatus {
|
|
49
|
-
interface Untouched {
|
|
50
|
-
type: "untouched";
|
|
51
|
-
}
|
|
52
|
-
interface Pending<T> {
|
|
53
|
-
type: "pending";
|
|
54
|
-
promise: Promise<T>;
|
|
55
|
-
resolve: (value: T) => void;
|
|
56
|
-
reject: (reason?: unknown) => void;
|
|
57
|
-
}
|
|
58
|
-
interface Resolved<T> {
|
|
59
|
-
type: "resolved";
|
|
60
|
-
value: T;
|
|
61
|
-
}
|
|
62
|
-
type Rejected = Rejected.ConfigSignalAborted | Rejected.ParentAborted | Rejected.ContinuationExceptionThrown | Rejected.HandlerExceptionThrown;
|
|
63
|
-
namespace Rejected {
|
|
64
|
-
interface ConfigSignalAborted {
|
|
65
|
-
type: "config_signal_aborted";
|
|
66
|
-
reason: unknown;
|
|
67
|
-
}
|
|
68
|
-
interface ParentAborted {
|
|
69
|
-
type: "parent_aborted";
|
|
70
|
-
reason: unknown;
|
|
71
|
-
}
|
|
72
|
-
interface ContinuationExceptionThrown {
|
|
73
|
-
type: "continuation_exception_thrown";
|
|
74
|
-
exception: unknown;
|
|
75
|
-
}
|
|
76
|
-
interface HandlerExceptionThrown {
|
|
77
|
-
type: "handler_exception_thrown";
|
|
78
|
-
exception: unknown;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|