liminal 0.5.3 → 0.5.4

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.
Files changed (93) hide show
  1. package/Agent.ts +5 -5
  2. package/CHANGELOG.md +9 -0
  3. package/EventBase.ts +13 -0
  4. package/Fiber.ts +42 -92
  5. package/Globals.ts +1 -1
  6. package/L/L.ts +0 -1
  7. package/L/_infer.ts +27 -22
  8. package/L/_message.ts +5 -7
  9. package/L/assistant.ts +2 -9
  10. package/L/branch.ts +30 -24
  11. package/L/emit.ts +2 -3
  12. package/L/fork.ts +18 -16
  13. package/L/model.ts +3 -2
  14. package/L/rune.ts +2 -2
  15. package/L/self.ts +3 -3
  16. package/LEvent.ts +40 -17
  17. package/Rune.ts +2 -2
  18. package/dist/Agent.d.ts +1 -1
  19. package/dist/Agent.js +4 -5
  20. package/dist/Agent.js.map +1 -1
  21. package/dist/EventBase.d.ts +7 -0
  22. package/dist/EventBase.js +14 -0
  23. package/dist/EventBase.js.map +1 -0
  24. package/dist/Fiber.d.ts +8 -22
  25. package/dist/Fiber.js +32 -74
  26. package/dist/Fiber.js.map +1 -1
  27. package/dist/Globals.d.ts +0 -1
  28. package/dist/L/L.d.ts +0 -1
  29. package/dist/L/L.js +0 -1
  30. package/dist/L/L.js.map +1 -1
  31. package/dist/L/_infer.d.ts +2 -2
  32. package/dist/L/_infer.js +19 -16
  33. package/dist/L/_infer.js.map +1 -1
  34. package/dist/L/_message.js +5 -7
  35. package/dist/L/_message.js.map +1 -1
  36. package/dist/L/assistant.js +2 -7
  37. package/dist/L/assistant.js.map +1 -1
  38. package/dist/L/branch.js +31 -22
  39. package/dist/L/branch.js.map +1 -1
  40. package/dist/L/emit.js +2 -3
  41. package/dist/L/emit.js.map +1 -1
  42. package/dist/L/fork.d.ts +1 -7
  43. package/dist/L/fork.js +19 -10
  44. package/dist/L/fork.js.map +1 -1
  45. package/dist/L/model.js +3 -2
  46. package/dist/L/model.js.map +1 -1
  47. package/dist/L/rune.d.ts +2 -2
  48. package/dist/L/rune.js.map +1 -1
  49. package/dist/L/self.d.ts +2 -2
  50. package/dist/L/self.js +1 -1
  51. package/dist/L/self.js.map +1 -1
  52. package/dist/LEvent.d.ts +22 -19
  53. package/dist/LEvent.js +44 -0
  54. package/dist/LEvent.js.map +1 -1
  55. package/dist/Rune.d.ts +2 -2
  56. package/dist/index.d.ts +2 -0
  57. package/dist/index.js +2 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/run.d.ts +3 -0
  60. package/dist/run.js +35 -0
  61. package/dist/run.js.map +1 -0
  62. package/dist/state/Context.d.ts +8 -0
  63. package/dist/state/Context.js +17 -0
  64. package/dist/state/Context.js.map +1 -0
  65. package/dist/state/MessageRegistry.d.ts +1 -0
  66. package/dist/state/MessageRegistry.js +3 -0
  67. package/dist/state/MessageRegistry.js.map +1 -1
  68. package/dist/state/ModelRegistry.d.ts +1 -0
  69. package/dist/state/ModelRegistry.js +9 -0
  70. package/dist/state/ModelRegistry.js.map +1 -1
  71. package/dist/state/StateMap.d.ts +3 -2
  72. package/dist/state/StateMap.js +8 -0
  73. package/dist/state/StateMap.js.map +1 -1
  74. package/dist/tsconfig.tsbuildinfo +1 -1
  75. package/index.ts +2 -0
  76. package/package.json +3 -4
  77. package/run.ts +39 -0
  78. package/state/Context.ts +19 -0
  79. package/state/MessageRegistry.ts +4 -0
  80. package/state/ModelRegistry.ts +10 -0
  81. package/state/StateMap.ts +11 -2
  82. package/L/state.ts +0 -20
  83. package/dist/L/state.d.ts +0 -7
  84. package/dist/L/state.js +0 -14
  85. package/dist/L/state.js.map +0 -1
  86. package/dist/state/Counter.d.ts +0 -6
  87. package/dist/state/Counter.js +0 -13
  88. package/dist/state/Counter.js.map +0 -1
  89. package/dist/state/DefaultStateMap.d.ts +0 -4
  90. package/dist/state/DefaultStateMap.js +0 -14
  91. package/dist/state/DefaultStateMap.js.map +0 -1
  92. package/state/Counter.ts +0 -11
  93. package/state/DefaultStateMap.ts +0 -14
@@ -0,0 +1,14 @@
1
+ import { inspect } from "node:util";
2
+ export class EventBase {
3
+ brand;
4
+ type;
5
+ constructor(brand, type) {
6
+ this.brand = brand;
7
+ this.type = type;
8
+ }
9
+ [inspect.custom](depth, options) {
10
+ const { brand: _0, type: _1, ...rest } = this;
11
+ return `${this.constructor.name} ` + inspect(rest, { ...options, depth });
12
+ }
13
+ }
14
+ //# sourceMappingURL=EventBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventBase.js","sourceRoot":"","sources":["../EventBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAuB,MAAM,WAAW,CAAA;AAExD,MAAM,OAAgB,SAAS;IAElB;IACA;IAFX,YACW,KAAQ,EACR,IAAO;QADP,UAAK,GAAL,KAAK,CAAG;QACR,SAAI,GAAJ,IAAI,CAAG;IACf,CAAC;IAEJ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAa,EAAE,OAAuB;QACrD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAA;QAC7C,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3E,CAAC;CACF"}
package/dist/Fiber.d.ts CHANGED
@@ -1,38 +1,24 @@
1
1
  import type { Globals } from "./Globals.ts";
2
2
  import type { Rune } from "./Rune.ts";
3
3
  import { Runic } from "./Runic.ts";
4
- import { StateMap } from "./state/StateMap.ts";
4
+ import type { StateMap } from "./state/StateMap.ts";
5
5
  export interface Fiber<out T = any> {
6
6
  T: T;
7
+ runic: Runic<Rune, T>;
8
+ globals: Globals;
7
9
  parent: Fiber<any> | undefined;
8
- status: FiberStatus<T>;
9
10
  fiberId: number;
10
- state: StateMap;
11
- globals: Globals;
12
- run(this: this): Promise<T>;
13
11
  handler<E>(event: E): void;
12
+ run(): Promise<T>;
14
13
  }
15
- export type FiberStatus<T> = {
16
- type: "untouched";
17
- } | {
18
- type: "pending";
19
- promise: Promise<T>;
20
- } | {
21
- type: "resolved";
22
- value: T;
23
- } | {
24
- type: "rejected";
25
- reason?: unknown;
26
- };
27
14
  export interface FiberInfo {
28
15
  fiber: number;
29
16
  timestamp: number;
30
17
  }
31
- export interface FiberConfig<T> {
32
- parent?: Fiber<any>;
18
+ export interface FiberConfig<T = any> {
19
+ T: T;
20
+ signal?: AbortSignal | undefined;
33
21
  globals: Globals;
34
- runic: Runic<Rune, T>;
35
22
  state?: StateMap | undefined;
36
- signal?: AbortSignal | undefined;
37
23
  }
38
- export declare function Fiber<T>(config: FiberConfig<T>): Fiber<T>;
24
+ export declare function handler<E>(fiberConfig: FiberConfig, event: E): void;
package/dist/Fiber.js CHANGED
@@ -1,79 +1,37 @@
1
- import { LEventTag } from "./LEvent.js";
1
+ import { assert } from "liminal-util";
2
+ import { FiberCreated, FiberResolved, FiberStarted } from "./LEvent.js";
2
3
  import { Runic } from "./Runic.js";
3
- import { DefaultStateMap } from "./state/DefaultStateMap.js";
4
- import { StateMap } from "./state/StateMap.js";
5
4
  let nextFiberId = 0;
6
- export function Fiber(config) {
7
- const fiber = {
8
- state: config.state ?? new DefaultStateMap(),
9
- globals: config.globals,
10
- parent: config.parent,
11
- status: { type: "untouched" },
12
- fiberId: nextFiberId++,
13
- run,
14
- handler,
15
- };
16
- fiber.handler({
17
- [LEventTag]: "fiber_created",
5
+ export function handler(fiberConfig, event) {
6
+ fiberConfig.globals.handler(event, {
7
+ // fiber: fiberConfig.fiberId,
8
+ timestamp: Date.now(),
18
9
  });
19
- return fiber;
20
- function handler(event) {
21
- config.globals.handler(event, {
22
- fiber: this.fiberId,
23
- timestamp: Date.now(),
24
- });
25
- }
26
- async function run() {
27
- if (this.status.type === "pending") {
28
- return await this.status.promise;
29
- }
30
- else if (this.status.type === "resolved") {
31
- return this.status.value;
32
- }
33
- else if (this.status.type === "rejected") {
34
- throw this.status.reason;
35
- }
36
- this.handler({
37
- [LEventTag]: "fiber_started",
38
- });
39
- const { promise, resolve, reject } = Promise.withResolvers();
40
- if (config.signal) {
41
- if (config.signal.aborted) {
42
- reject(config.signal.reason);
43
- return await promise;
44
- }
45
- else {
46
- config.signal.addEventListener("abort", () => {
47
- reject(config.signal?.reason);
48
- });
49
- }
50
- }
51
- this.status = {
52
- type: "pending",
53
- promise,
54
- };
55
- queueMicrotask(async () => {
56
- const iterator = Runic.unwrap(config.runic);
57
- let nextArg;
58
- try {
59
- let current = await iterator.next(nextArg);
60
- while (!current.done) {
61
- const rune = current.value;
62
- const nextArg = await rune(this);
63
- current = await iterator.next(nextArg);
64
- }
65
- const { value } = current;
66
- this.handler({
67
- [LEventTag]: "fiber_resolved",
68
- value,
69
- });
70
- resolve(value);
71
- }
72
- catch (reason) {
73
- reject(reason);
74
- }
75
- });
76
- return await promise;
77
- }
78
10
  }
11
+ // export interface FiberConfig<T> {
12
+ // parent?: Fiber<any>
13
+ // globals: Globals
14
+ // runic: Runic<Rune, T>
15
+ // signal?: AbortSignal | undefined
16
+ // }
17
+ // export function Fiber<T>(config: FiberConfig<T>): Fiber<T> {
18
+ // const fiber = {
19
+ // runic: config.runic,
20
+ // globals: config.globals,
21
+ // parent: config.parent,
22
+ // fiberId: nextFiberId++,
23
+ // handler,
24
+ // run,
25
+ // } satisfies Omit<Fiber<T>, "T"> as Fiber<T>
26
+ // fiber.handler(new FiberCreated())
27
+ // return fiber
28
+ // async function run(this: Fiber<T>): Promise<T> {
29
+ // fiber.handler(new FiberStarted())
30
+ // const iterator = Runic.unwrap(this.runic)
31
+ // const result = await iterator.next()
32
+ // assert(result.done)
33
+ // fiber.handler(new FiberResolved(result.value))
34
+ // return result.value
35
+ // }
36
+ // }
79
37
  //# sourceMappingURL=Fiber.js.map
package/dist/Fiber.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../Fiber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../Fiber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEvE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAkBlC,IAAI,WAAW,GAAG,CAAC,CAAA;AASnB,MAAM,UAAU,OAAO,CAAI,WAAwB,EAAE,KAAQ;IAC3D,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;QACjC,8BAA8B;QAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;AACJ,CAAC;AAED,oCAAoC;AACpC,wBAAwB;AACxB,qBAAqB;AACrB,0BAA0B;AAC1B,qCAAqC;AACrC,IAAI;AAEJ,+DAA+D;AAC/D,oBAAoB;AACpB,2BAA2B;AAC3B,+BAA+B;AAC/B,6BAA6B;AAC7B,8BAA8B;AAC9B,eAAe;AACf,WAAW;AACX,gDAAgD;AAEhD,sCAAsC;AACtC,iBAAiB;AAEjB,qDAAqD;AACrD,wCAAwC;AACxC,gDAAgD;AAChD,2CAA2C;AAC3C,0BAA0B;AAC1B,qDAAqD;AACrD,0BAA0B;AAC1B,MAAM;AACN,IAAI"}
package/dist/Globals.d.ts CHANGED
@@ -2,6 +2,5 @@ export interface Globals {
2
2
  handler<E = any>(event: E, info: EventInfo): void;
3
3
  }
4
4
  export interface EventInfo {
5
- fiber: number;
6
5
  timestamp: number;
7
6
  }
package/dist/L/L.d.ts CHANGED
@@ -8,6 +8,5 @@ export * from "./fork.ts";
8
8
  export * from "./join.ts";
9
9
  export * from "./model.ts";
10
10
  export * from "./self.ts";
11
- export * from "./state.ts";
12
11
  export * from "./system.ts";
13
12
  export * from "./user.ts";
package/dist/L/L.js CHANGED
@@ -8,7 +8,6 @@ export * from "./fork.js";
8
8
  export * from "./join.js";
9
9
  export * from "./model.js";
10
10
  export * from "./self.js";
11
- export * from "./state.js";
12
11
  export * from "./system.js";
13
12
  export * from "./user.js";
14
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,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
1
+ {"version":3,"file":"L.js","sourceRoot":"","sources":["../../L/L.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA;AACxC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { SchemaRoot } from "liminal-schema";
1
+ import type { SchemaObject } from "liminal-schema";
2
2
  import { type LEvent } from "../LEvent.ts";
3
3
  import type { Rune } from "../Rune.ts";
4
- export declare function _infer(schema?: SchemaRoot): Generator<Rune<LEvent>, string>;
4
+ export declare function _infer(schema?: SchemaObject): Generator<Rune<LEvent>, string>;
package/dist/L/_infer.js CHANGED
@@ -1,29 +1,32 @@
1
1
  import { assert } from "liminal-util";
2
- import { LEventTag } from "../LEvent.js";
3
- import { Counter } from "../state/Counter.js";
2
+ import { InferenceRequested, Inferred } from "../LEvent.js";
3
+ import { context } from "../state/Context.js";
4
4
  import { MessageRegistry } from "../state/MessageRegistry.js";
5
5
  import { ModelRegistry } from "../state/ModelRegistry.js";
6
6
  import { emit } from "./emit.js";
7
7
  import { rune } from "./rune.js";
8
- import { state } from "./state.js";
9
8
  export function* _infer(schema) {
10
- const [modelRegistry, { messages }, counter] = yield* state(ModelRegistry, MessageRegistry, InferenceRequestCounter);
9
+ const state = context.get();
10
+ const modelRegistry = state.getOrInit(ModelRegistry.make);
11
11
  const model = modelRegistry.peek();
12
+ const messageRegistry = state.getOrInit(MessageRegistry.make);
13
+ const counter = state.getOrInit(InferenceRequestCounter);
12
14
  assert(model);
13
15
  const requestId = counter.next();
14
- yield* emit({
15
- [LEventTag]: "inference_requested",
16
- ...schema && { schema },
17
- requestId,
18
- });
19
- const inference = yield* rune(() => model.resolve(messages, schema));
20
- yield* emit({
21
- [LEventTag]: "inferred",
22
- inference,
23
- requestId,
24
- });
16
+ yield* emit(new InferenceRequested(requestId, schema));
17
+ const inference = yield* rune(() => model.resolve(messageRegistry.messages, schema));
18
+ yield* emit(new Inferred(requestId, inference));
25
19
  return inference;
26
20
  }
27
- class InferenceRequestCounter extends Counter {
21
+ function InferenceRequestCounter(instance) {
22
+ return {
23
+ count: instance?.count ?? 0,
24
+ next() {
25
+ return this.count++;
26
+ },
27
+ clone() {
28
+ return InferenceRequestCounter(this);
29
+ },
30
+ };
28
31
  }
29
32
  //# sourceMappingURL=_infer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_infer.js","sourceRoot":"","sources":["../../L/_infer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAuD,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7F,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAmB;IACzC,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CACzD,aAAa,EACb,eAAe,EACf,uBAAuB,CACxB,CAAA;IACD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAChC,KAAK,CAAC,CAAC,IAAI,CAAqB;QAC9B,CAAC,SAAS,CAAC,EAAE,qBAAqB;QAClC,GAAG,MAAM,IAAI,EAAE,MAAM,EAAE;QACvB,SAAS;KACV,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IACpE,KAAK,CAAC,CAAC,IAAI,CAAW;QACpB,CAAC,SAAS,CAAC,EAAE,UAAU;QACvB,SAAS;QACT,SAAS;KACV,CAAC,CAAA;IACF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,uBAAwB,SAAQ,OAAO;CAAG"}
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;AAExE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,MAAqB;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;IACxD,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,CAAA;IAChC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAA;IACpF,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAC/C,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IACjD,OAAO;QACL,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;QAC3B,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;QACrB,CAAC;QACD,KAAK;YACH,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAA;QACtC,CAAC;KACF,CAAA;AACH,CAAC"}
@@ -1,14 +1,12 @@
1
- import { LEventTag } from "../LEvent.js";
1
+ import { MessageAppended } from "../LEvent.js";
2
+ import { context } from "../state/Context.js";
2
3
  import { MessageRegistry } from "../state/MessageRegistry.js";
3
4
  import { emit } from "./emit.js";
4
- import { state } from "./state.js";
5
5
  export function* _message(role, content) {
6
- const [messageRegistry] = yield* state(MessageRegistry);
6
+ const state = context.get();
7
+ const messageRegistry = state.getOrInit(MessageRegistry.make);
7
8
  const message = { role, content };
8
- yield* emit({
9
- [LEventTag]: "message_appended",
10
- message,
11
- });
9
+ yield* emit(new MessageAppended(message));
12
10
  messageRegistry.append(message);
13
11
  }
14
12
  //# sourceMappingURL=_message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_message.js","sourceRoot":"","sources":["../../L/_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,SAAS,EAAwB,MAAM,cAAc,CAAA;AAG3E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIlC,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAiB,EAAE,OAA2B;IACtE,MAAM,CAAC,eAAe,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IACvD,MAAM,OAAO,GAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;IAC1C,KAAK,CAAC,CAAC,IAAI,CAAkB;QAC3B,CAAC,SAAS,CAAC,EAAE,kBAAkB;QAC/B,OAAO;KACR,CAAC,CAAA;IACF,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"_message.js","sourceRoot":"","sources":["../../L/_message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAA;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAiB,EAAE,OAA2B;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC7D,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"}
@@ -1,5 +1,4 @@
1
- import { toJSONSchema } from "liminal-schema";
2
- import { LiminalAssertionError } from "liminal-util";
1
+ import { toJSONSchema, validate } from "liminal-schema";
3
2
  import { _infer } from "./_infer.js";
4
3
  import { _message } from "./_message.js";
5
4
  import { rune } from "./rune.js";
@@ -8,11 +7,7 @@ export const assistant = Object.assign(function* (type) {
8
7
  const inference = yield* _infer(schema);
9
8
  yield* _message("assistant", [{ part: inference }]);
10
9
  const input = JSON.parse(inference);
11
- const result = yield* rune(() => type["~standard"].validate(input));
12
- if (result.issues) {
13
- throw new LiminalAssertionError(JSON.stringify(result.issues, null, 2));
14
- }
15
- return result.value;
10
+ return yield* rune(() => validate(type, input));
16
11
  }, {
17
12
  *[Symbol.iterator]() {
18
13
  const inference = yield* _infer();
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../L/assistant.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC,MAAM,CAAC,MAAM,SAAS,GAAc,MAAM,CAAC,MAAM,CAC/C,QAAQ,CAAC,EAAI,IAAc;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAE,IAA8C,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9G,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAA;AACrB,CAAC,EACD;IACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;QACjC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACnD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CACF,CAAA"}
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../L/assistant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC,MAAM,CAAC,MAAM,SAAS,GAAc,MAAM,CAAC,MAAM,CAC/C,QAAQ,CAAC,EAAI,IAAc;IACzB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACvC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AACjD,CAAC,EACD;IACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,CAAA;QACjC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;QACnD,OAAO,SAAS,CAAA;IAClB,CAAC;CACF,CACF,CAAA"}
package/dist/L/branch.js CHANGED
@@ -1,32 +1,41 @@
1
- import { Fiber } from "../Fiber.js";
1
+ import { run } from "../run.js";
2
2
  import {} from "../Rune.js";
3
- import { all } from "./all.js";
4
- import { fork } from "./fork.js";
5
- import { join } from "./join.js";
3
+ import { context } from "../state/Context.js";
4
+ import { rune } from "./rune.js";
6
5
  import { self } from "./self.js";
7
6
  export function* branch(value) {
8
7
  const parent = yield* self;
9
- const { globals, state } = parent;
8
+ const { globals } = parent;
10
9
  if (Array.isArray(value)) {
11
- const fibers = value.map((runic) => Fiber({
12
- globals,
13
- parent,
14
- runic,
15
- state: state.clone(),
16
- }));
17
- return yield* join(yield* all(...fibers));
10
+ const runners = value.map((runic) => {
11
+ const state = context.get();
12
+ const fiberConfig = {
13
+ T: null,
14
+ globals,
15
+ state,
16
+ };
17
+ return () => run(runic, fiberConfig);
18
+ });
19
+ return yield* rune(() => Promise.all(runners.map((runner) => runner())));
18
20
  }
19
21
  else if (typeof value === "object") {
20
- const fibers = Object.values(value).map((runic) => Fiber({
21
- globals,
22
- parent,
23
- runic,
24
- state: state.clone(),
25
- }));
26
- const resolved = yield* join(yield* all(...fibers));
27
- return Object.fromEntries(Object.keys(value).map((key, i) => [key, resolved[i]]));
22
+ const runners = Object.entries(value).map(([key, runic]) => {
23
+ const state = context.get();
24
+ const fiberConfig = {
25
+ T: null,
26
+ globals,
27
+ state,
28
+ };
29
+ return async () => [key, await run(runic, fiberConfig)];
30
+ });
31
+ return yield* rune(() => Promise.all(runners.map((runner) => runner())).then(Object.fromEntries));
28
32
  }
29
- const fiber = yield* fork(typeof value === "function" ? value() : value, state.clone());
30
- return yield* join(fiber);
33
+ const state = context.get();
34
+ const fiberConfig = {
35
+ T: null,
36
+ globals,
37
+ state,
38
+ };
39
+ return yield* rune(() => run(typeof value === "function" ? value() : value, fiberConfig));
31
40
  }
32
41
  //# sourceMappingURL=branch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../L/branch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAa,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAWhC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,KAAsD;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAA;IAC1B,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,MAAM,CAAA;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,KAAK,CAAC;YACJ,OAAO;YACP,MAAM;YACN,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SACrB,CAAC,CACH,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;IAC3C,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,KAAK,CAAC;YACJ,OAAO;YACP,MAAM;YACN,KAAK;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;SACrB,CAAC,CACH,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAA;QACnD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnF,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAA;IACvF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"branch.js","sourceRoot":"","sources":["../../L/branch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAa,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAWhC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,KAAsD;IAC5E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAI,CAAA;IAC1B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YAC3B,MAAM,WAAW,GAAgB;gBAC/B,CAAC,EAAE,IAAK;gBACR,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;YAC3B,MAAM,WAAW,GAAgB;gBAC/B,CAAC,EAAE,IAAK;gBACR,OAAO;gBACP,KAAK;aACN,CAAA;YACD,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IACnG,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,WAAW,GAAgB;QAC/B,CAAC,EAAE,IAAK;QACR,OAAO;QACP,KAAK;KACN,CAAA;IACD,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAA;AAC3F,CAAC"}
package/dist/L/emit.js CHANGED
@@ -1,7 +1,6 @@
1
+ import { handler } from "../Fiber.js";
1
2
  import { rune } from "./rune.js";
2
3
  export function* emit(event) {
3
- yield* rune((fiber) => {
4
- fiber.handler(event);
5
- })();
4
+ yield* rune((fiberConfig) => handler(fiberConfig, event))();
6
5
  }
7
6
  //# sourceMappingURL=emit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAU,KAAsB;IACnD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAC,EAAK,CAAA;AACT,CAAC"}
1
+ {"version":3,"file":"emit.js","sourceRoot":"","sources":["../../L/emit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAErC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAU,KAAsB;IACnD,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,EAAK,CAAA;AAChE,CAAC"}
package/dist/L/fork.d.ts CHANGED
@@ -1,7 +1 @@
1
- import { Fiber } from "../Fiber.ts";
2
- import type { Rune } from "../Rune.ts";
3
- import type { Runic } from "../Runic.ts";
4
- import type { StateMap } from "../state/StateMap.ts";
5
- export interface fork<Y extends Rune, T> extends Generator<Rune<never> | Y, Fiber<T>> {
6
- }
7
- export declare function fork<Y extends Rune, T>(runic: Runic<Y, T>, state?: StateMap): fork<Y, T>;
1
+ export {};
package/dist/L/fork.js CHANGED
@@ -1,11 +1,20 @@
1
- import { Fiber } from "../Fiber.js";
2
- import { rune } from "./rune.js";
3
- export function* fork(runic, state) {
4
- return yield* rune((parent) => Fiber({
5
- globals: parent.globals,
6
- parent,
7
- runic,
8
- state: state?.clone(),
9
- }));
10
- }
1
+ // import type { FiberConfig } from "../Fiber.ts"
2
+ // import type { Rune } from "../Rune.ts"
3
+ // import type { Runic } from "../Runic.ts"
4
+ // import { runic as runic_ } from "./runic.ts"
5
+ // import { self } from "./self.ts"
6
+ export {};
7
+ // export interface fork<Y extends Rune, T> extends Generator<Rune<any> | Y, FiberConfig<T>> {}
8
+ // export function* fork<Y extends Rune, T>(runic: Runic<Y, T>): fork<Y, T> {
9
+ // const parent = yield* self
10
+ // const { globals, state, signal } = parent
11
+ // const controller = new AbortController()
12
+ // const fiberConfig: FiberConfig = {
13
+ // T: null!,
14
+ // globals,
15
+ // signal: controller.signal,
16
+ // state: state?.clone(),
17
+ // }
18
+ // return (yield* runic_(runic, fiberConfig)) as never
19
+ // }
11
20
  //# sourceMappingURL=fork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../L/fork.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAInC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,SAAS,CAAC,CAAC,IAAI,CAAoB,KAAkB,EAAE,KAAgB;IAC3E,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5B,KAAK,CAAC;QACJ,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM;QACN,KAAK;QACL,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;KACtB,CAAC,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../L/fork.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,yCAAyC;AACzC,2CAA2C;AAC3C,+CAA+C;AAC/C,mCAAmC;;AAEnC,+FAA+F;AAE/F,6EAA6E;AAC7E,+BAA+B;AAC/B,8CAA8C;AAC9C,6CAA6C;AAC7C,uCAAuC;AACvC,gBAAgB;AAChB,eAAe;AACf,iCAAiC;AACjC,6BAA6B;AAC7B,MAAM;AACN,wDAAwD;AACxD,IAAI"}
package/dist/L/model.js CHANGED
@@ -1,7 +1,8 @@
1
+ import { context } from "../state/Context.js";
1
2
  import { ModelRegistry } from "../state/ModelRegistry.js";
2
- import { state } from "./state.js";
3
3
  export function* model(model) {
4
- const [modelRegistry] = yield* state(ModelRegistry);
4
+ const state = context.get();
5
+ const modelRegistry = state.getOrInit(ModelRegistry.make);
5
6
  modelRegistry.register(model);
6
7
  }
7
8
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIlC,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,KAAY;IACjC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IACnD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../L/model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAIzD,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,KAAY;IACjC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IACzD,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC"}
package/dist/L/rune.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { Fiber } from "../Fiber.ts";
1
+ import type { FiberConfig } from "../Fiber.ts";
2
2
  import { type Rune } from "../Rune.ts";
3
3
  export interface rune<T> extends Iterable<Rune<never>, T> {
4
4
  <E>(): Generator<Rune<E>, T>;
5
5
  }
6
- export declare function rune<R>(source: (fiber: Fiber) => R): rune<Awaited<R>>;
6
+ export declare function rune<R>(source: (fiberConfig: FiberConfig) => R): rune<Awaited<R>>;
@@ -1 +1 @@
1
- {"version":3,"file":"rune.js","sourceRoot":"","sources":["../../L/rune.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAM/C,MAAM,UAAU,IAAI,CAAI,MAA2B;IACjD,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC;QACP,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAW,EAAE,CAAC,CAAA;IAChE,CAAC,EACD;QACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAW,EAAE,CAAC,CAAA;QAChE,CAAC;KACF,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"rune.js","sourceRoot":"","sources":["../../L/rune.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAM/C,MAAM,UAAU,IAAI,CAAI,MAAuC;IAC7D,OAAO,MAAM,CAAC,MAAM,CAClB,QAAQ,CAAC;QACP,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAW,EAAE,CAAC,CAAA;IAChE,CAAC,EACD;QACE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChB,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAW,EAAE,CAAC,CAAA;QAChE,CAAC;KACF,CACF,CAAA;AACH,CAAC"}
package/dist/L/self.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import type { Fiber } from "../Fiber.ts";
1
+ import type { FiberConfig } from "../Fiber.ts";
2
2
  import type { Rune } from "../Rune.ts";
3
3
  export interface self {
4
- [Symbol.iterator](): Generator<Rune<never>, Fiber>;
4
+ [Symbol.iterator](): Generator<Rune<never>, FiberConfig>;
5
5
  }
6
6
  export declare const self: self;
package/dist/L/self.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { rune } from "./rune.js";
2
2
  export const self = {
3
3
  *[Symbol.iterator]() {
4
- return yield* rune((fiber) => fiber);
4
+ return yield* rune((fiberConfig) => fiberConfig);
5
5
  },
6
6
  };
7
7
  //# sourceMappingURL=self.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"self.js","sourceRoot":"","sources":["../../L/self.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;IACtC,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"self.js","sourceRoot":"","sources":["../../L/self.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAMhC,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;IAClD,CAAC;CACF,CAAA"}
package/dist/LEvent.d.ts CHANGED
@@ -1,28 +1,31 @@
1
- import type { SchemaRoot } from "liminal-schema";
1
+ import type { SchemaObject } from "liminal-schema";
2
+ import { EventBase } from "./EventBase.ts";
2
3
  import type { Message } from "./Message.ts";
3
4
  export type LEvent = InferenceRequested | Inferred | MessageAppended | FiberCreated | FiberStarted | FiberResolved;
4
- export interface InferenceRequested extends LEventBase<"inference_requested"> {
5
- requestId: number;
6
- schema?: SchemaRoot;
7
- }
8
- export interface Inferred extends LEventBase<"inferred"> {
9
- requestId: number;
10
- inference: string;
5
+ export declare const LEventTag: unique symbol;
6
+ export type LEventTag = typeof LEventTag;
7
+ export declare class InferenceRequested extends EventBase<LEventTag, "inference_requested"> {
8
+ readonly requestId: number;
9
+ schema?: SchemaObject;
10
+ constructor(requestId: number, schema?: SchemaObject | undefined);
11
11
  }
12
- export interface MessageAppended extends LEventBase<"message_appended"> {
13
- message: Message;
12
+ export declare class Inferred extends EventBase<LEventTag, "inferred"> {
13
+ readonly requestId: number;
14
+ readonly inference: string;
15
+ constructor(requestId: number, inference: string);
14
16
  }
15
- export interface FiberCreated extends LEventBase<"fiber_created"> {
17
+ export declare class MessageAppended extends EventBase<LEventTag, "message_appended"> {
18
+ readonly message: Message;
19
+ constructor(message: Message);
16
20
  }
17
- export interface FiberStarted extends LEventBase<"fiber_started"> {
21
+ export declare class FiberCreated extends EventBase<LEventTag, "fiber_created"> {
22
+ constructor();
18
23
  }
19
- export interface FiberResolved extends LEventBase<"fiber_resolved"> {
20
- value: any;
24
+ export declare class FiberStarted extends EventBase<LEventTag, "fiber_started"> {
25
+ constructor();
21
26
  }
22
- interface LEventBase<K extends string> {
23
- [LEventTag]: K;
27
+ export declare class FiberResolved extends EventBase<LEventTag, "fiber_resolved"> {
28
+ readonly value: any;
29
+ constructor(value: any);
24
30
  }
25
- export declare const LEventTag: unique symbol;
26
- export type LEventTag = typeof LEventTag;
27
31
  export declare function isLEvent(value: unknown): value is LEvent;
28
- export {};