liminal 0.5.10 → 0.5.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/Context.ts +21 -24
  3. package/Fiber.ts +59 -52
  4. package/Handler.ts +2 -2
  5. package/L/L.ts +4 -3
  6. package/L/assistant.ts +6 -6
  7. package/L/catch.ts +15 -2
  8. package/L/emit.ts +3 -7
  9. package/L/{_infer.ts → infer.ts} +9 -6
  10. package/L/{_message.ts → message.ts} +3 -5
  11. package/L/model.ts +1 -3
  12. package/L/rune.ts +8 -26
  13. package/L/strand.ts +99 -0
  14. package/L/stream.ts +3 -5
  15. package/L/system.ts +2 -2
  16. package/L/user.ts +2 -2
  17. package/MessageRegistry.ts +4 -3
  18. package/ModelRegistry.ts +13 -8
  19. package/ToolRegistry.ts +8 -3
  20. package/dist/Context.d.ts +10 -10
  21. package/dist/Context.js +16 -19
  22. package/dist/Context.js.map +1 -1
  23. package/dist/Fiber.d.ts +19 -15
  24. package/dist/Fiber.js +34 -30
  25. package/dist/Fiber.js.map +1 -1
  26. package/dist/Handler.d.ts +2 -2
  27. package/dist/Handler.js +2 -2
  28. package/dist/Handler.js.map +1 -1
  29. package/dist/L/L.d.ts +4 -3
  30. package/dist/L/L.js +4 -3
  31. package/dist/L/L.js.map +1 -1
  32. package/dist/L/assistant.js +6 -6
  33. package/dist/L/assistant.js.map +1 -1
  34. package/dist/L/catch.js +12 -2
  35. package/dist/L/catch.js.map +1 -1
  36. package/dist/L/emit.js +3 -7
  37. package/dist/L/emit.js.map +1 -1
  38. package/dist/L/infer.d.ts +7 -0
  39. package/dist/L/{_infer.js → infer.js} +7 -7
  40. package/dist/L/infer.js.map +1 -0
  41. package/dist/L/message.d.ts +6 -0
  42. package/dist/L/{_message.js → message.js} +3 -5
  43. package/dist/L/message.js.map +1 -0
  44. package/dist/L/model.js +1 -3
  45. package/dist/L/model.js.map +1 -1
  46. package/dist/L/rune.d.ts +1 -6
  47. package/dist/L/rune.js +5 -15
  48. package/dist/L/rune.js.map +1 -1
  49. package/dist/L/strand.d.ts +26 -0
  50. package/dist/L/strand.js +69 -0
  51. package/dist/L/strand.js.map +1 -0
  52. package/dist/L/stream.js +3 -5
  53. package/dist/L/stream.js.map +1 -1
  54. package/dist/L/system.js +2 -2
  55. package/dist/L/system.js.map +1 -1
  56. package/dist/L/user.js +2 -2
  57. package/dist/L/user.js.map +1 -1
  58. package/dist/MessageRegistry.d.ts +2 -2
  59. package/dist/MessageRegistry.js +2 -2
  60. package/dist/MessageRegistry.js.map +1 -1
  61. package/dist/ModelRegistry.d.ts +3 -2
  62. package/dist/ModelRegistry.js +9 -8
  63. package/dist/ModelRegistry.js.map +1 -1
  64. package/dist/ToolRegistry.d.ts +3 -2
  65. package/dist/ToolRegistry.js +5 -2
  66. package/dist/ToolRegistry.js.map +1 -1
  67. package/dist/index.d.ts +0 -1
  68. package/dist/index.js +0 -1
  69. package/dist/index.js.map +1 -1
  70. package/dist/tsconfig.tsbuildinfo +1 -1
  71. package/index.ts +0 -1
  72. package/package.json +4 -4
  73. package/Agent.ts +0 -38
  74. package/L/branch.ts +0 -33
  75. package/dist/Agent.d.ts +0 -18
  76. package/dist/Agent.js +0 -20
  77. package/dist/Agent.js.map +0 -1
  78. package/dist/L/_infer.d.ts +0 -4
  79. package/dist/L/_infer.js.map +0 -1
  80. package/dist/L/_message.d.ts +0 -6
  81. package/dist/L/_message.js.map +0 -1
  82. package/dist/L/branch.d.ts +0 -11
  83. package/dist/L/branch.js +0 -24
  84. package/dist/L/branch.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ import { Fiber } from "../Fiber.ts";
2
+ import { MessageRegistry } from "../MessageRegistry.ts";
3
+ import { ModelRegistry } from "../ModelRegistry.ts";
4
+ import { type Rune } from "../Rune.ts";
5
+ import type { Runic } from "../Runic.ts";
6
+ import { ToolRegistry } from "../ToolRegistry.ts";
7
+ export interface StrandConfig<T = any, E = any> {
8
+ handler?: ((this: Fiber<T>, event: E) => void) | undefined;
9
+ models?: ModelRegistry | undefined;
10
+ messages?: MessageRegistry | undefined;
11
+ tools?: ToolRegistry | undefined;
12
+ signal?: AbortSignal | undefined;
13
+ }
14
+ export interface strand<Y extends Rune, T> extends Iterable<Y, T>, PromiseLike<T> {
15
+ }
16
+ export declare function strand<X extends Runic>(runic: X, config?: StrandConfig<Runic.T<X>, Rune.E<Runic.Y<X>>>): strand<Runic.Y<X>, Runic.T<X>>;
17
+ export declare function strand<XA extends Array<Runic>>(runics: XA, config?: StrandConfig<{
18
+ [I in keyof XA]: Runic.T<XA[I]>;
19
+ }, Rune.E<Runic.Y<XA[number]>>>): strand<Runic.Y<XA[number]> | Rune<never>, {
20
+ [I in keyof XA]: Runic.T<XA[I]>;
21
+ }>;
22
+ export declare function strand<XR extends Record<keyof any, Runic>>(runics: XR, config?: StrandConfig<{
23
+ [K in keyof XR]: Runic.T<XR[K]>;
24
+ }, Rune.E<Runic.Y<XR[keyof XR]>>>): strand<Runic.Y<XR[keyof XR]> | Rune<never>, {
25
+ [K in keyof XR]: Runic.T<XR[K]>;
26
+ }>;
@@ -0,0 +1,69 @@
1
+ import { Context } from "../Context.js";
2
+ import { Fiber } from "../Fiber.js";
3
+ import { HandlerContext } from "../Handler.js";
4
+ import { MessageRegistry, MessageRegistryContext } from "../MessageRegistry.js";
5
+ import { ModelRegistry, ModelRegistryContext } from "../ModelRegistry.js";
6
+ import {} from "../Rune.js";
7
+ import { ToolRegistry, ToolRegistryContext } from "../ToolRegistry.js";
8
+ import { rune } from "./rune.js";
9
+ export function strand(value, config) {
10
+ return {
11
+ *[Symbol.iterator]() {
12
+ const parent = yield* Fiber;
13
+ if (Array.isArray(value)) {
14
+ const fibers = value.map((runic) => new Fiber(runic, {
15
+ parent,
16
+ context: makeContext(),
17
+ }));
18
+ return yield* rune(() => Promise.all(fibers.map((fiber) => fiber.resolution())), "strand");
19
+ }
20
+ else if (typeof value === "object") {
21
+ const fibers = Object.values(value).map((runic) => new Fiber(runic, {
22
+ parent,
23
+ context: makeContext(),
24
+ }));
25
+ return yield* rune(async () => {
26
+ const keys = Object.keys(value);
27
+ return await Promise
28
+ .all(fibers.map((fiber) => fiber.resolution()))
29
+ .then((resolved) => resolved.map((value, i) => [keys[i], value]))
30
+ .then(Object.fromEntries);
31
+ }, "strand");
32
+ }
33
+ const self = new Fiber(typeof value === "function" ? value() : value, {
34
+ parent,
35
+ context: makeContext(),
36
+ });
37
+ return yield* rune(() => self.resolution(), "strand");
38
+ },
39
+ then(onfulfilled, onrejected) {
40
+ return new Fiber(this, { context: makeContext() }).resolution().then(onfulfilled, onrejected);
41
+ },
42
+ };
43
+ function makeContext() {
44
+ let context = Context.get()?.fork();
45
+ if (!context) {
46
+ context = new Context([
47
+ [ModelRegistryContext, new ModelRegistry()],
48
+ [MessageRegistryContext, new MessageRegistry()],
49
+ [ToolRegistryContext, new ToolRegistry()],
50
+ ]);
51
+ }
52
+ if (config) {
53
+ if ("handler" in config) {
54
+ context.set(HandlerContext, config.handler);
55
+ }
56
+ if ("models" in config) {
57
+ context.set(ModelRegistryContext, config.models?.clone() ?? new ModelRegistry());
58
+ }
59
+ if ("messages" in config) {
60
+ context.set(MessageRegistryContext, config.messages?.clone() ?? new MessageRegistry());
61
+ }
62
+ if ("tools" in config) {
63
+ context.set(ToolRegistryContext, config.tools?.clone() ?? new ToolRegistry());
64
+ }
65
+ }
66
+ return context;
67
+ }
68
+ }
69
+ //# sourceMappingURL=strand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strand.js","sourceRoot":"","sources":["../../L/strand.ts"],"names":[],"mappings":"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"}
package/dist/L/stream.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { assert } from "liminal-util";
2
- import { Context } from "../Context.js";
3
2
  import { InferenceRequested } from "../LEvent.js";
4
3
  import { MessageRegistryContext } from "../MessageRegistry.js";
5
4
  import { ModelRegistryContext } from "../ModelRegistry.js";
@@ -9,19 +8,18 @@ import { emit } from "./emit.js";
9
8
  import { rune } from "./rune.js";
10
9
  export const stream = {
11
10
  *[Symbol.iterator]() {
12
- const context = Context.ensure();
13
- const modelRegistry = context.get(ModelRegistryContext);
11
+ const modelRegistry = ModelRegistryContext.get();
14
12
  assert(modelRegistry);
15
13
  const model = modelRegistry.peek();
16
14
  assert(model);
17
15
  const requestId = RequestCounter.next();
18
16
  yield* emit(new InferenceRequested(requestId));
19
- const messageRegistry = context.get(MessageRegistryContext);
17
+ const messageRegistry = MessageRegistryContext.get();
20
18
  assert(messageRegistry);
21
19
  return yield* rune((fiber) => model
22
20
  .seal({
23
21
  messages: messageRegistry.messages,
24
- signal: fiber.signal,
22
+ signal: fiber.controller.signal,
25
23
  })
26
24
  .stream(), "stream");
27
25
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../L/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAe,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAa,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;QAChC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;QACvD,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;QACvC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAC3D,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK;aACF,IAAI,CAAC;YACJ,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;aACD,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC1B,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../L/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,kBAAkB,EAAe,MAAM,cAAc,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAa,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIhC,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,EAAE,CAAA;QAChD,MAAM,CAAC,aAAa,CAAC,CAAA;QACrB,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAA;QAClC,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAA;QACvC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9C,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAA;QACpD,MAAM,CAAC,eAAe,CAAC,CAAA;QACvB,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK;aACF,IAAI,CAAC;YACJ,QAAQ,EAAE,eAAe,CAAC,QAAQ;YAClC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,MAAM;SAChC,CAAC;aACD,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;IAC1B,CAAC;CACF,CAAA"}
package/dist/L/system.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { isTemplateStringsArray } from "liminal-util";
2
- import { _message } from "./_message.js";
2
+ import { message } from "./message.js";
3
3
  export function system(e0, ...rest) {
4
4
  const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
5
- return _message("system", [{ part }]);
5
+ return message("system", [{ part }]);
6
6
  }
7
7
  //# sourceMappingURL=system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMxC,MAAM,UAAU,MAAM,CAAC,EAAiC,EAAE,GAAG,IAAmB;IAC9E,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACvC,CAAC"}
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../L/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,MAAM,UAAU,MAAM,CAAC,EAAiC,EAAE,GAAG,IAAmB;IAC9E,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACtC,CAAC"}
package/dist/L/user.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { isTemplateStringsArray } from "liminal-util";
2
- import { _message } from "./_message.js";
2
+ import { message } from "./message.js";
3
3
  export function user(e0, ...rest) {
4
4
  const part = isTemplateStringsArray(e0) ? String.raw(e0, ...rest) : e0;
5
- return _message("user", [{ part }]);
5
+ return message("user", [{ part }]);
6
6
  }
7
7
  //# sourceMappingURL=user.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAMxC,MAAM,UAAU,IAAI,CAAC,EAAiC,EAAE,GAAG,IAAmB;IAC5E,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACrC,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../../L/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAGrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAMtC,MAAM,UAAU,IAAI,CAAC,EAAiC,EAAE,GAAG,IAAmB;IAC5E,MAAM,IAAI,GAAG,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;AACpC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ContextHandle } from "./Context.ts";
1
+ import { ContextPart } from "./Context.ts";
2
2
  import type { Message } from "./Message.ts";
3
3
  export declare class MessageRegistry {
4
4
  messages: Array<Message>;
@@ -6,4 +6,4 @@ export declare class MessageRegistry {
6
6
  append(message: Message): void;
7
7
  clone(): MessageRegistry;
8
8
  }
9
- export declare const MessageRegistryContext: ContextHandle<MessageRegistry>;
9
+ export declare const MessageRegistryContext: ContextPart<MessageRegistry>;
@@ -1,4 +1,4 @@
1
- import { ContextHandle } from "./Context.js";
1
+ import { ContextPart } from "./Context.js";
2
2
  export class MessageRegistry {
3
3
  messages;
4
4
  constructor(messages) {
@@ -11,5 +11,5 @@ export class MessageRegistry {
11
11
  return new MessageRegistry([...this.messages]);
12
12
  }
13
13
  }
14
- export const MessageRegistryContext = ContextHandle(({ messages }) => new MessageRegistry([...messages]));
14
+ export const MessageRegistryContext = ContextPart((parent) => parent?.clone() ?? new MessageRegistry(), "message_registry");
15
15
  //# sourceMappingURL=MessageRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageRegistry.js","sourceRoot":"","sources":["../MessageRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,OAAO,eAAe;IAC1B,QAAQ,CAAgB;IACxB,YAAY,QAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,OAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAmC,aAAa,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CACnG,IAAI,eAAe,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CACnC,CAAA"}
1
+ {"version":3,"file":"MessageRegistry.js","sourceRoot":"","sources":["../MessageRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,MAAM,OAAO,eAAe;IAC1B,QAAQ,CAAgB;IACxB,YAAY,QAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,MAAM,CAAC,OAAgB;QACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC7B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;CACF;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAiC,WAAW,CAC7E,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,eAAe,EAAE,EACpD,kBAAkB,CACnB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ContextHandle } from "./Context.ts";
1
+ import { ContextPart } from "./Context.ts";
2
2
  import type { Model } from "./Model.ts";
3
3
  /** An intrusive list for storing `Model`s. */
4
4
  export declare class ModelRegistry {
@@ -7,10 +7,11 @@ export declare class ModelRegistry {
7
7
  peek(): Model | undefined;
8
8
  register(value: Model): ModelRegistryNode;
9
9
  remove(node: ModelRegistryNode): void;
10
+ clone(): ModelRegistry;
10
11
  }
11
12
  export interface ModelRegistryNode {
12
13
  prev: ModelRegistryNode | undefined;
13
14
  model: Model;
14
15
  next?: ModelRegistryNode | undefined;
15
16
  }
16
- export declare const ModelRegistryContext: ContextHandle<ModelRegistry>;
17
+ export declare const ModelRegistryContext: ContextPart<ModelRegistry>;
@@ -1,4 +1,4 @@
1
- import { ContextHandle } from "./Context.js";
1
+ import { ContextPart } from "./Context.js";
2
2
  /** An intrusive list for storing `Model`s. */
3
3
  export class ModelRegistry {
4
4
  peek() {
@@ -33,12 +33,13 @@ export class ModelRegistry {
33
33
  }
34
34
  node.prev = node.next = undefined;
35
35
  }
36
- }
37
- export const ModelRegistryContext = ContextHandle(({ head }) => {
38
- const instance = new ModelRegistry();
39
- for (let node = head; node; node = node.next) {
40
- instance.register(node.model);
36
+ clone() {
37
+ const instance = new ModelRegistry();
38
+ for (let node = this.head; node; node = node.next) {
39
+ instance.register(node.model);
40
+ }
41
+ return instance;
41
42
  }
42
- return instance;
43
- });
43
+ }
44
+ export const ModelRegistryContext = ContextPart((parent) => parent?.clone() ?? new ModelRegistry(), "model_registry");
44
45
  //# sourceMappingURL=ModelRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IAIxB,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACnC,CAAC;CACF;AAQD,MAAM,CAAC,MAAM,oBAAoB,GAAiC,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3F,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;IACpC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"ModelRegistry.js","sourceRoot":"","sources":["../ModelRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,8CAA8C;AAC9C,MAAM,OAAO,aAAa;IAIxB,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,CAAA;IACzB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,MAAM,IAAI,GAAsB;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,KAAK;SACb,CAAA;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAuB;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QACvB,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;IACnC,CAAC;IAED,KAAK;QACH,MAAM,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;QACpC,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAClD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAQD,MAAM,CAAC,MAAM,oBAAoB,GAA+B,WAAW,CACzE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,aAAa,EAAE,EAClD,gBAAgB,CACjB,CAAA"}
@@ -1,5 +1,6 @@
1
- import { ContextHandle } from "liminal";
1
+ import { ContextPart } from "liminal";
2
2
  import type { Tool } from "./Tool";
3
3
  export declare class ToolRegistry extends Set<Tool> {
4
+ clone(): ToolRegistry;
4
5
  }
5
- export declare const ToolRegistryContext: ContextHandle<ToolRegistry>;
6
+ export declare const ToolRegistryContext: ContextPart<ToolRegistry>;
@@ -1,5 +1,8 @@
1
- import { ContextHandle } from "liminal";
1
+ import { ContextPart } from "liminal";
2
2
  export class ToolRegistry extends Set {
3
+ clone() {
4
+ return new ToolRegistry([...this]);
5
+ }
3
6
  }
4
- export const ToolRegistryContext = ContextHandle();
7
+ export const ToolRegistryContext = ContextPart(() => new ToolRegistry(), "tool_registry");
5
8
  //# sourceMappingURL=ToolRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,MAAM,OAAO,YAAa,SAAQ,GAAS;CAAG;AAC9C,MAAM,CAAC,MAAM,mBAAmB,GAAgC,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../ToolRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAGrC,MAAM,OAAO,YAAa,SAAQ,GAAS;IACzC,KAAK;QACH,OAAO,IAAI,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACpC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA8B,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,eAAe,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./Agent.ts";
2
1
  export * from "./Context.ts";
3
2
  export * from "./EventBase.ts";
4
3
  export * from "./Fiber.ts";
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./Agent.js";
2
1
  export * from "./Context.js";
3
2
  export * from "./EventBase.js";
4
3
  export * from "./Fiber.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,mBAAmB,CAAA"}