liminal 0.5.3 → 0.5.5

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 (114) hide show
  1. package/Agent.ts +13 -15
  2. package/CHANGELOG.md +15 -0
  3. package/Context.ts +44 -0
  4. package/EventBase.ts +26 -0
  5. package/Globals.ts +1 -1
  6. package/L/L.ts +0 -3
  7. package/L/_infer.ts +26 -22
  8. package/L/_message.ts +4 -7
  9. package/L/assistant.ts +2 -9
  10. package/L/branch.ts +20 -28
  11. package/L/emit.ts +9 -4
  12. package/L/fork.ts +18 -16
  13. package/L/model.ts +2 -2
  14. package/L/rune.ts +1 -2
  15. package/LEvent.ts +32 -19
  16. package/Rune.ts +1 -3
  17. package/dist/Agent.d.ts +2 -6
  18. package/dist/Agent.js +10 -10
  19. package/dist/Agent.js.map +1 -1
  20. package/dist/Context.d.ts +10 -0
  21. package/dist/Context.js +37 -0
  22. package/dist/Context.js.map +1 -0
  23. package/dist/EventBase.d.ts +10 -0
  24. package/dist/EventBase.js +20 -0
  25. package/dist/EventBase.js.map +1 -0
  26. package/dist/Globals.d.ts +0 -1
  27. package/dist/L/L.d.ts +0 -3
  28. package/dist/L/L.js +0 -3
  29. package/dist/L/L.js.map +1 -1
  30. package/dist/L/_infer.d.ts +2 -2
  31. package/dist/L/_infer.js +18 -16
  32. package/dist/L/_infer.js.map +1 -1
  33. package/dist/L/_message.js +4 -7
  34. package/dist/L/_message.js.map +1 -1
  35. package/dist/L/assistant.js +2 -7
  36. package/dist/L/assistant.js.map +1 -1
  37. package/dist/L/branch.js +20 -24
  38. package/dist/L/branch.js.map +1 -1
  39. package/dist/L/emit.js +9 -4
  40. package/dist/L/emit.js.map +1 -1
  41. package/dist/L/fork.d.ts +1 -7
  42. package/dist/L/fork.js +19 -10
  43. package/dist/L/fork.js.map +1 -1
  44. package/dist/L/model.js +2 -2
  45. package/dist/L/model.js.map +1 -1
  46. package/dist/L/rune.d.ts +1 -2
  47. package/dist/L/rune.js.map +1 -1
  48. package/dist/LEvent.d.ts +55 -18
  49. package/dist/LEvent.js +38 -0
  50. package/dist/LEvent.js.map +1 -1
  51. package/dist/Rune.d.ts +1 -2
  52. package/dist/Rune.js.map +1 -1
  53. package/dist/index.d.ts +2 -2
  54. package/dist/index.js +2 -2
  55. package/dist/index.js.map +1 -1
  56. package/dist/run.d.ts +4 -0
  57. package/dist/run.js +35 -0
  58. package/dist/run.js.map +1 -0
  59. package/dist/state/Fiber.d.ts +9 -0
  60. package/dist/state/Fiber.js +14 -0
  61. package/dist/state/Fiber.js.map +1 -0
  62. package/dist/state/Globals.d.ts +9 -0
  63. package/dist/state/Globals.js +10 -0
  64. package/dist/state/Globals.js.map +1 -0
  65. package/dist/state/MessageRegistry.d.ts +1 -1
  66. package/dist/state/MessageRegistry.js +3 -3
  67. package/dist/state/MessageRegistry.js.map +1 -1
  68. package/dist/state/ModelConfig.d.ts +1 -19
  69. package/dist/state/ModelConfig.js +13 -14
  70. package/dist/state/ModelConfig.js.map +1 -1
  71. package/dist/state/ModelRegistry.d.ts +1 -1
  72. package/dist/state/ModelRegistry.js +7 -5
  73. package/dist/state/ModelRegistry.js.map +1 -1
  74. package/dist/state/StateMap.d.ts +1 -7
  75. package/dist/state/StateMap.js +1 -9
  76. package/dist/state/StateMap.js.map +1 -1
  77. package/dist/tsconfig.tsbuildinfo +1 -1
  78. package/index.ts +2 -2
  79. package/package.json +3 -4
  80. package/run.ts +37 -0
  81. package/state/Fiber.ts +13 -0
  82. package/state/Globals.ts +12 -0
  83. package/state/MessageRegistry.ts +4 -4
  84. package/state/ModelConfig.ts +13 -15
  85. package/state/ModelRegistry.ts +10 -8
  86. package/state/StateMap.ts +0 -15
  87. package/Fiber.ts +0 -117
  88. package/L/all.ts +0 -11
  89. package/L/join.ts +0 -9
  90. package/L/self.ts +0 -13
  91. package/L/state.ts +0 -20
  92. package/dist/Fiber.d.ts +0 -38
  93. package/dist/Fiber.js +0 -79
  94. package/dist/Fiber.js.map +0 -1
  95. package/dist/L/all.d.ts +0 -7
  96. package/dist/L/all.js +0 -5
  97. package/dist/L/all.js.map +0 -1
  98. package/dist/L/join.d.ts +0 -5
  99. package/dist/L/join.js +0 -5
  100. package/dist/L/join.js.map +0 -1
  101. package/dist/L/self.d.ts +0 -6
  102. package/dist/L/self.js +0 -7
  103. package/dist/L/self.js.map +0 -1
  104. package/dist/L/state.d.ts +0 -7
  105. package/dist/L/state.js +0 -14
  106. package/dist/L/state.js.map +0 -1
  107. package/dist/state/Counter.d.ts +0 -6
  108. package/dist/state/Counter.js +0 -13
  109. package/dist/state/Counter.js.map +0 -1
  110. package/dist/state/DefaultStateMap.d.ts +0 -4
  111. package/dist/state/DefaultStateMap.js +0 -14
  112. package/dist/state/DefaultStateMap.js.map +0 -1
  113. package/state/Counter.ts +0 -11
  114. package/state/DefaultStateMap.ts +0 -14
package/dist/L/L.d.ts CHANGED
@@ -5,9 +5,6 @@ export * from "./assistant.ts";
5
5
  export * from "./branch.ts";
6
6
  export * from "./emit.ts";
7
7
  export * from "./fork.ts";
8
- export * from "./join.ts";
9
8
  export * from "./model.ts";
10
- export * from "./self.ts";
11
- export * from "./state.ts";
12
9
  export * from "./system.ts";
13
10
  export * from "./user.ts";
package/dist/L/L.js CHANGED
@@ -5,10 +5,7 @@ export * from "./assistant.js";
5
5
  export * from "./branch.js";
6
6
  export * from "./emit.js";
7
7
  export * from "./fork.js";
8
- export * from "./join.js";
9
8
  export * from "./model.js";
10
- export * from "./self.js";
11
- export * from "./state.js";
12
9
  export * from "./system.js";
13
10
  export * from "./user.js";
14
11
  //# 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,YAAY,CAAA;AAC1B,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,31 @@
1
1
  import { assert } from "liminal-util";
2
- import { LEventTag } from "../LEvent.js";
3
- import { Counter } from "../state/Counter.js";
2
+ import { Context } from "../Context.js";
3
+ import { InferenceRequested, Inferred } from "../LEvent.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 modelRegistry = Context.getOrInit(ModelRegistry.make);
11
10
  const model = modelRegistry.peek();
12
11
  assert(model);
12
+ const messageRegistry = Context.getOrInit(MessageRegistry.make);
13
+ const counter = Context.getOrInit(InferenceRequestCounter);
13
14
  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
- });
15
+ yield* emit(new InferenceRequested(requestId, schema));
16
+ const inference = yield* rune(() => model.resolve(messageRegistry.messages, schema));
17
+ yield* emit(new Inferred(requestId, inference));
25
18
  return inference;
26
19
  }
27
- class InferenceRequestCounter extends Counter {
20
+ function InferenceRequestCounter(instance) {
21
+ return {
22
+ count: instance?.count ?? 0,
23
+ next() {
24
+ return this.count++;
25
+ },
26
+ clone() {
27
+ return InferenceRequestCounter(this);
28
+ },
29
+ };
28
30
  }
29
31
  //# 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,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAe,MAAM,cAAc,CAAA;AAExE,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,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;IAClC,MAAM,CAAC,KAAK,CAAC,CAAA;IACb,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;IAC1D,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,11 @@
1
- import { LEventTag } from "../LEvent.js";
1
+ import { Context } from "../Context.js";
2
+ import { MessageAppended } from "../LEvent.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 messageRegistry = Context.getOrInit(MessageRegistry.make);
7
7
  const message = { role, content };
8
- yield* emit({
9
- [LEventTag]: "message_appended",
10
- message,
11
- });
8
+ yield* emit(new MessageAppended(message));
12
9
  messageRegistry.append(message);
13
10
  }
14
11
  //# 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,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAe,eAAe,EAAE,MAAM,cAAc,CAAA;AAG3D,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,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;IAC/D,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,28 @@
1
- import { Fiber } from "../Fiber.js";
1
+ import { Context } from "../Context.js";
2
+ import { run } from "../run.js";
2
3
  import {} from "../Rune.js";
3
- import { all } from "./all.js";
4
- import { fork } from "./fork.js";
5
- import { join } from "./join.js";
6
- import { self } from "./self.js";
4
+ import { Fiber } from "../state/Fiber.js";
5
+ import { rune } from "./rune.js";
7
6
  export function* branch(value) {
8
- const parent = yield* self;
9
- const { globals, state } = parent;
7
+ const parent = Context.get(Fiber.make);
10
8
  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));
9
+ const runners = value.map((runic) => {
10
+ const context = Context.make(Context.unwrap());
11
+ context.set(Fiber.make, new Fiber(parent));
12
+ return () => run(runic, context);
13
+ });
14
+ return yield* rune(() => Promise.all(runners.map((runner) => runner())));
18
15
  }
19
16
  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]]));
17
+ const runners = Object.entries(value).map(([key, runic]) => {
18
+ const context = Context.make(Context.unwrap());
19
+ context.set(Fiber.make, new Fiber(parent));
20
+ return async () => [key, await run(runic, context)];
21
+ });
22
+ return yield* rune(() => Promise.all(runners.map((runner) => runner())).then(Object.fromEntries));
28
23
  }
29
- const fiber = yield* fork(typeof value === "function" ? value() : value, state.clone());
30
- return yield* join(fiber);
24
+ const context = Context.make(Context.unwrap());
25
+ context.set(Fiber.make, new Fiber(parent));
26
+ return yield* rune(() => run(typeof value === "function" ? value() : value, context));
31
27
  }
32
28
  //# 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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAa,MAAM,YAAY,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAWhC,MAAM,SAAS,CAAC,CAAC,MAAM,CAAC,KAAsD;IAC5E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1C,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAClC,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,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;YAC1C,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;QACrD,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,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1C,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,OAAO,CAAC,CAAC,CAAA;AACvF,CAAC"}
package/dist/L/emit.js CHANGED
@@ -1,7 +1,12 @@
1
- import { rune } from "./rune.js";
1
+ import { Context } from "../Context.js";
2
+ import { Fiber } from "../state/Fiber.js";
3
+ import { Globals } from "../state/Globals.js";
2
4
  export function* emit(event) {
3
- yield* rune((fiber) => {
4
- fiber.handler(event);
5
- })();
5
+ const globals = Context.getAssert(Globals.make);
6
+ const fiber = Context.getAssert(Fiber.make);
7
+ globals.handler?.(event, {
8
+ fiber: fiber.index,
9
+ timestamp: Date.now(),
10
+ });
6
11
  }
7
12
  //# 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,eAAe,CAAA;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAI7C,MAAM,SAAS,CAAC,CAAC,IAAI,CAAU,KAAsB;IACnD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3C,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE;QACvB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAA;AACJ,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,7 @@
1
+ import { Context } from "../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 modelRegistry = Context.getOrInit(ModelRegistry.make);
5
5
  modelRegistry.register(model);
6
6
  }
7
7
  //# 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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvC,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAIzD,MAAM,SAAS,CAAC,CAAC,KAAK,CAAC,KAAY;IACjC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAC3D,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC/B,CAAC"}
package/dist/L/rune.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { Fiber } from "../Fiber.ts";
2
1
  import { type Rune } from "../Rune.ts";
3
2
  export interface rune<T> extends Iterable<Rune<never>, T> {
4
3
  <E>(): Generator<Rune<E>, T>;
5
4
  }
6
- export declare function rune<R>(source: (fiber: Fiber) => R): rune<Awaited<R>>;
5
+ export declare function rune<R>(source: () => 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":"AAAA,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAM/C,MAAM,UAAU,IAAI,CAAI,MAAe;IACrC,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/LEvent.d.ts CHANGED
@@ -1,28 +1,65 @@
1
- import type { SchemaRoot } from "liminal-schema";
1
+ import type { SchemaObject } from "liminal-schema";
2
2
  import type { Message } from "./Message.ts";
3
3
  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;
4
+ export declare const LEventTag: unique symbol;
5
+ export type LEventTag = typeof LEventTag;
6
+ declare const InferenceRequested_base: {
7
+ new (): {
8
+ readonly brand: typeof LEventTag;
9
+ readonly type: "inference_requested";
10
+ };
11
+ };
12
+ export declare class InferenceRequested extends InferenceRequested_base {
13
+ readonly requestId: number;
14
+ schema?: SchemaObject;
15
+ constructor(requestId: number, schema?: SchemaObject | undefined);
11
16
  }
12
- export interface MessageAppended extends LEventBase<"message_appended"> {
13
- message: Message;
17
+ declare const Inferred_base: {
18
+ new (): {
19
+ readonly brand: typeof LEventTag;
20
+ readonly type: "inferred";
21
+ };
22
+ };
23
+ export declare class Inferred extends Inferred_base {
24
+ readonly requestId: number;
25
+ readonly inference: string;
26
+ constructor(requestId: number, inference: string);
14
27
  }
15
- export interface FiberCreated extends LEventBase<"fiber_created"> {
28
+ declare const MessageAppended_base: {
29
+ new (): {
30
+ readonly brand: typeof LEventTag;
31
+ readonly type: "message_appended";
32
+ };
33
+ };
34
+ export declare class MessageAppended extends MessageAppended_base {
35
+ readonly message: Message;
36
+ constructor(message: Message);
16
37
  }
17
- export interface FiberStarted extends LEventBase<"fiber_started"> {
38
+ declare const FiberCreated_base: {
39
+ new (): {
40
+ readonly brand: typeof LEventTag;
41
+ readonly type: "fiber_created";
42
+ };
43
+ };
44
+ export declare class FiberCreated extends FiberCreated_base {
18
45
  }
19
- export interface FiberResolved extends LEventBase<"fiber_resolved"> {
20
- value: any;
46
+ declare const FiberStarted_base: {
47
+ new (): {
48
+ readonly brand: typeof LEventTag;
49
+ readonly type: "fiber_started";
50
+ };
51
+ };
52
+ export declare class FiberStarted extends FiberStarted_base {
21
53
  }
22
- interface LEventBase<K extends string> {
23
- [LEventTag]: K;
54
+ declare const FiberResolved_base: {
55
+ new (): {
56
+ readonly brand: typeof LEventTag;
57
+ readonly type: "fiber_resolved";
58
+ };
59
+ };
60
+ export declare class FiberResolved extends FiberResolved_base {
61
+ readonly value: any;
62
+ constructor(value: any);
24
63
  }
25
- export declare const LEventTag: unique symbol;
26
- export type LEventTag = typeof LEventTag;
27
64
  export declare function isLEvent(value: unknown): value is LEvent;
28
65
  export {};
package/dist/LEvent.js CHANGED
@@ -1,4 +1,42 @@
1
+ import { EventBase } from "./EventBase.js";
1
2
  export const LEventTag = Symbol.for("liminal/LEvent");
3
+ export class InferenceRequested extends EventBase(LEventTag, "inference_requested") {
4
+ requestId;
5
+ constructor(requestId, schema) {
6
+ super();
7
+ this.requestId = requestId;
8
+ if (schema) {
9
+ this.schema = schema;
10
+ }
11
+ }
12
+ }
13
+ export class Inferred extends EventBase(LEventTag, "inferred") {
14
+ requestId;
15
+ inference;
16
+ constructor(requestId, inference) {
17
+ super();
18
+ this.requestId = requestId;
19
+ this.inference = inference;
20
+ }
21
+ }
22
+ export class MessageAppended extends EventBase(LEventTag, "message_appended") {
23
+ message;
24
+ constructor(message) {
25
+ super();
26
+ this.message = message;
27
+ }
28
+ }
29
+ export class FiberCreated extends EventBase(LEventTag, "fiber_created") {
30
+ }
31
+ export class FiberStarted extends EventBase(LEventTag, "fiber_started") {
32
+ }
33
+ export class FiberResolved extends EventBase(LEventTag, "fiber_resolved") {
34
+ value;
35
+ constructor(value) {
36
+ super();
37
+ this.value = value;
38
+ }
39
+ }
2
40
  export function isLEvent(value) {
3
41
  return typeof value === "object" && value !== null && LEventTag in value;
4
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AA6BA,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAGpE,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAA;AAC1E,CAAC"}
1
+ {"version":3,"file":"LEvent.js","sourceRoot":"","sources":["../LEvent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAK1C,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAGpE,MAAM,OAAO,kBAAmB,SAAQ,SAAS,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAGtE;IADX,YACW,SAAiB,EAC1B,MAAiC;QAEjC,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QAI1B,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACtB,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,QAAS,SAAQ,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAEjD;IACA;IAFX,YACW,SAAiB,EACjB,SAAiB;QAE1B,KAAK,EAAE,CAAA;QAHE,cAAS,GAAT,SAAS,CAAQ;QACjB,cAAS,GAAT,SAAS,CAAQ;IAG5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,SAAS,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACtD;IAArB,YAAqB,OAAgB;QACnC,KAAK,EAAE,CAAA;QADY,YAAO,GAAP,OAAO,CAAS;IAErC,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;CAAG;AAC1E,MAAM,OAAO,YAAa,SAAQ,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;CAAG;AAC1E,MAAM,OAAO,aAAc,SAAQ,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC;IAClD;IAArB,YAAqB,KAAU;QAC7B,KAAK,EAAE,CAAA;QADY,UAAK,GAAL,KAAK,CAAK;IAE/B,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,SAAS,IAAI,KAAK,CAAA;AAC1E,CAAC"}
package/dist/Rune.d.ts CHANGED
@@ -1,6 +1,5 @@
1
- import type { Fiber } from "./Fiber.ts";
2
1
  export interface Rune<out E = any> {
3
- (fiber: Fiber): any;
2
+ (): any;
4
3
  [RuneKey]: E;
5
4
  }
6
5
  export declare namespace Rune {
package/dist/Rune.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Rune.js","sourceRoot":"","sources":["../Rune.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAGhE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;AACxE,CAAC"}
1
+ {"version":3,"file":"Rune.js","sourceRoot":"","sources":["../Rune.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,OAAO,GAAkB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;AAGhE,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,CAAA;AACxE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export * as _util from "liminal-util";
2
1
  export * from "./Agent.ts";
3
- export * from "./Fiber.ts";
2
+ export * from "./EventBase.ts";
4
3
  export * as L from "./L/L.ts";
5
4
  export * from "./LEvent.ts";
5
+ export * from "./Message.ts";
6
6
  export * from "./Model.ts";
7
7
  export * from "./Rune.ts";
8
8
  export * from "./Runic.ts";
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- export * as _util from "liminal-util";
2
1
  export * from "./Agent.js";
3
- export * from "./Fiber.js";
2
+ export * from "./EventBase.js";
4
3
  export * as L from "./L/L.js";
5
4
  export * from "./LEvent.js";
5
+ export * from "./Message.js";
6
6
  export * from "./Model.js";
7
7
  export * from "./Rune.js";
8
8
  export * from "./Runic.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA"}
package/dist/run.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { Context } from "./Context.ts";
2
+ import type { Rune } from "./Rune.ts";
3
+ import { Runic } from "./Runic.ts";
4
+ export declare function run<T>(runic: Runic<Rune, T>, context?: Context): Promise<T>;
package/dist/run.js ADDED
@@ -0,0 +1,35 @@
1
+ import { Context } from "./Context.js";
2
+ import { Runic } from "./Runic.js";
3
+ import { Fiber } from "./state/Fiber.js";
4
+ export function run(runic, context) {
5
+ const { promise, resolve, reject } = Promise.withResolvers();
6
+ const { signal } = Context.getAssert(Fiber.make);
7
+ if (signal.aborted) {
8
+ reject(signal.reason);
9
+ return promise;
10
+ }
11
+ else {
12
+ signal.addEventListener("abort", () => {
13
+ reject(signal?.reason);
14
+ });
15
+ }
16
+ queueMicrotask(() => Context.storage.run(context ?? Context.unwrap(), async () => {
17
+ const iterator = Runic.unwrap(runic);
18
+ let nextArg;
19
+ try {
20
+ let current = await iterator.next();
21
+ while (!current.done) {
22
+ const rune = current.value;
23
+ nextArg = await rune();
24
+ current = await iterator.next(nextArg);
25
+ }
26
+ const { value } = current;
27
+ resolve(value);
28
+ }
29
+ catch (reason) {
30
+ reject(reason);
31
+ }
32
+ }));
33
+ return promise;
34
+ }
35
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,MAAM,UAAU,GAAG,CAAI,KAAqB,EAAE,OAAiB;IAC7D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAK,CAAA;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrB,OAAO,OAAO,CAAA;IAChB,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;YACpC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,cAAc,CAAC,GAAG,EAAE,CAClB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QACpC,IAAI,OAAY,CAAA;QAChB,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACnC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;gBAC1B,OAAO,GAAG,MAAM,IAAI,EAAE,CAAA;gBACtB,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;YACzB,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;QAAC,OAAO,MAAe,EAAE,CAAC;YACzB,MAAM,CAAC,MAAM,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare class Fiber {
2
+ readonly parent?: Fiber | undefined;
3
+ static fiberCount: number;
4
+ static make(): Fiber;
5
+ readonly index: number;
6
+ readonly controller: AbortController;
7
+ readonly signal: AbortSignal;
8
+ constructor(parent?: Fiber | undefined);
9
+ }
@@ -0,0 +1,14 @@
1
+ export class Fiber {
2
+ parent;
3
+ static fiberCount = 0;
4
+ static make() {
5
+ return new Fiber();
6
+ }
7
+ index = Fiber.fiberCount++;
8
+ controller = new AbortController();
9
+ signal = this.controller.signal;
10
+ constructor(parent) {
11
+ this.parent = parent;
12
+ }
13
+ }
14
+ //# sourceMappingURL=Fiber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../../state/Fiber.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,KAAK;IAWK;IAVrB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAA;IAErB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,KAAK,EAAE,CAAA;IACpB,CAAC;IAEQ,KAAK,GAAW,KAAK,CAAC,UAAU,EAAE,CAAA;IAClC,UAAU,GAAoB,IAAI,eAAe,EAAE,CAAA;IACnD,MAAM,GAAgB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAA;IAErD,YAAqB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare class Globals<E = any> {
2
+ readonly handler?: ((event: E, fiberInfo: FiberInfo) => void) | undefined;
3
+ static make(globals?: Globals): Globals;
4
+ constructor(handler?: ((event: E, fiberInfo: FiberInfo) => void) | undefined);
5
+ }
6
+ export interface FiberInfo {
7
+ fiber: number;
8
+ timestamp: number;
9
+ }
@@ -0,0 +1,10 @@
1
+ export class Globals {
2
+ handler;
3
+ static make(globals) {
4
+ return new Globals(globals?.handler ?? (() => { }));
5
+ }
6
+ constructor(handler) {
7
+ this.handler = handler;
8
+ }
9
+ }
10
+ //# sourceMappingURL=Globals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Globals.js","sourceRoot":"","sources":["../../state/Globals.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,OAAO;IAKG;IAJrB,MAAM,CAAC,IAAI,CAAC,OAAiB;QAC3B,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,YAAqB,OAAkD;QAAlD,YAAO,GAAP,OAAO,CAA2C;IAAG,CAAC;CAC5E"}
@@ -1,7 +1,7 @@
1
1
  import type { Message } from "../Message.ts";
2
2
  export declare class MessageRegistry {
3
+ static make(messageRegistry?: MessageRegistry): MessageRegistry;
3
4
  messages: Array<Message>;
4
5
  constructor(messages?: Iterable<Message>);
5
- clone(): MessageRegistry;
6
6
  append(message: Message): void;
7
7
  }