liminal 0.5.12 → 0.5.14

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 (225) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/Config.ts +13 -0
  3. package/Context.ts +23 -49
  4. package/Definition.ts +32 -0
  5. package/EventBase.ts +1 -1
  6. package/Handler.ts +3 -5
  7. package/L/L.ts +15 -2
  8. package/L/all.ts +35 -0
  9. package/L/assistant.ts +4 -7
  10. package/L/catch.ts +16 -13
  11. package/L/context.ts +12 -0
  12. package/L/continuation.ts +13 -0
  13. package/L/emit.ts +10 -8
  14. package/L/infer.ts +22 -25
  15. package/L/message.ts +7 -9
  16. package/L/model.ts +6 -6
  17. package/L/reflect.ts +12 -0
  18. package/L/run.ts +29 -0
  19. package/L/schema/_schema_common.ts +29 -0
  20. package/L/schema/anyOf.ts +10 -0
  21. package/L/schema/array.ts +13 -0
  22. package/L/schema/boolean.ts +8 -0
  23. package/L/schema/const.ts +18 -0
  24. package/L/schema/enum.ts +18 -0
  25. package/L/schema/integer.ts +6 -0
  26. package/L/schema/null.ts +8 -0
  27. package/L/schema/number.ts +8 -0
  28. package/L/schema/object.ts +21 -0
  29. package/L/schema/string.ts +11 -0
  30. package/L/strand.ts +14 -71
  31. package/L/stream.ts +11 -24
  32. package/L/system.ts +13 -8
  33. package/L/user.ts +13 -8
  34. package/LEvent.ts +9 -17
  35. package/LiminalAssertionError.ts +19 -0
  36. package/Message.ts +3 -2
  37. package/Model.ts +5 -3
  38. package/ModelRegistry.ts +1 -7
  39. package/Rune.test.ts +5 -0
  40. package/Rune.ts +24 -12
  41. package/Schema.ts +185 -0
  42. package/Strand.ts +253 -0
  43. package/Tool.ts +8 -16
  44. package/TypeAdapter.ts +3 -0
  45. package/dist/Config.d.ts +12 -0
  46. package/dist/Config.js +2 -0
  47. package/dist/Config.js.map +1 -0
  48. package/dist/Context.d.ts +11 -12
  49. package/dist/Context.js +15 -42
  50. package/dist/Context.js.map +1 -1
  51. package/dist/Definition.d.ts +10 -0
  52. package/dist/Definition.js +18 -0
  53. package/dist/Definition.js.map +1 -0
  54. package/dist/EventBase.js +1 -1
  55. package/dist/EventBase.js.map +1 -1
  56. package/dist/Handler.d.ts +3 -4
  57. package/dist/Handler.js +1 -2
  58. package/dist/Handler.js.map +1 -1
  59. package/dist/L/L.d.ts +15 -2
  60. package/dist/L/L.js +15 -2
  61. package/dist/L/L.js.map +1 -1
  62. package/dist/L/all.d.ts +10 -0
  63. package/dist/L/all.js +20 -0
  64. package/dist/L/all.js.map +1 -0
  65. package/dist/L/assistant.d.ts +2 -2
  66. package/dist/L/assistant.js +3 -6
  67. package/dist/L/assistant.js.map +1 -1
  68. package/dist/L/catch.d.ts +3 -2
  69. package/dist/L/catch.js +12 -12
  70. package/dist/L/catch.js.map +1 -1
  71. package/dist/L/context.d.ts +2 -0
  72. package/dist/L/context.js +12 -0
  73. package/dist/L/context.js.map +1 -0
  74. package/dist/L/continuation.d.ts +3 -0
  75. package/dist/L/continuation.js +12 -0
  76. package/dist/L/continuation.js.map +1 -0
  77. package/dist/L/emit.d.ts +3 -5
  78. package/dist/L/emit.js +8 -3
  79. package/dist/L/emit.js.map +1 -1
  80. package/dist/L/infer.d.ts +2 -5
  81. package/dist/L/infer.js +21 -20
  82. package/dist/L/infer.js.map +1 -1
  83. package/dist/L/message.d.ts +3 -5
  84. package/dist/L/message.js +5 -5
  85. package/dist/L/message.js.map +1 -1
  86. package/dist/L/model.d.ts +2 -4
  87. package/dist/L/model.js +4 -3
  88. package/dist/L/model.js.map +1 -1
  89. package/dist/L/reflect.d.ts +4 -0
  90. package/dist/L/reflect.js +10 -0
  91. package/dist/L/reflect.js.map +1 -0
  92. package/dist/L/run.d.ts +15 -0
  93. package/dist/L/run.js +16 -0
  94. package/dist/L/run.js.map +1 -0
  95. package/dist/L/schema/_schema_common.d.ts +6 -0
  96. package/dist/L/schema/_schema_common.js +19 -0
  97. package/dist/L/schema/_schema_common.js.map +1 -0
  98. package/dist/L/schema/anyOf.d.ts +5 -0
  99. package/dist/L/schema/anyOf.js +5 -0
  100. package/dist/L/schema/anyOf.js.map +1 -0
  101. package/dist/L/schema/array.d.ts +5 -0
  102. package/dist/L/schema/array.js +8 -0
  103. package/dist/L/schema/array.js.map +1 -0
  104. package/dist/L/schema/boolean.d.ts +6 -0
  105. package/dist/L/schema/boolean.js +4 -0
  106. package/dist/L/schema/boolean.js.map +1 -0
  107. package/dist/L/schema/const.d.ts +8 -0
  108. package/dist/L/schema/const.js +10 -0
  109. package/dist/L/schema/const.js.map +1 -0
  110. package/dist/L/schema/enum.d.ts +8 -0
  111. package/dist/L/schema/enum.js +10 -0
  112. package/dist/L/schema/enum.js.map +1 -0
  113. package/dist/L/schema/integer.d.ts +5 -0
  114. package/dist/L/schema/integer.js +3 -0
  115. package/dist/L/schema/integer.js.map +1 -0
  116. package/dist/L/schema/null.d.ts +6 -0
  117. package/dist/L/schema/null.js +4 -0
  118. package/dist/L/schema/null.js.map +1 -0
  119. package/dist/L/schema/number.d.ts +6 -0
  120. package/dist/L/schema/number.js +4 -0
  121. package/dist/L/schema/number.js.map +1 -0
  122. package/dist/L/schema/object.d.ts +9 -0
  123. package/dist/L/schema/object.js +12 -0
  124. package/dist/L/schema/object.js.map +1 -0
  125. package/dist/L/schema/string.d.ts +8 -0
  126. package/dist/L/schema/string.js +4 -0
  127. package/dist/L/schema/string.js.map +1 -0
  128. package/dist/L/strand.d.ts +4 -15
  129. package/dist/L/strand.js +8 -53
  130. package/dist/L/strand.js.map +1 -1
  131. package/dist/L/stream.d.ts +2 -4
  132. package/dist/L/stream.js +8 -19
  133. package/dist/L/stream.js.map +1 -1
  134. package/dist/L/system.d.ts +2 -4
  135. package/dist/L/system.js +4 -3
  136. package/dist/L/system.js.map +1 -1
  137. package/dist/L/user.d.ts +2 -4
  138. package/dist/L/user.js +4 -3
  139. package/dist/L/user.js.map +1 -1
  140. package/dist/LEvent.d.ts +13 -41
  141. package/dist/LEvent.js +4 -15
  142. package/dist/LEvent.js.map +1 -1
  143. package/dist/LiminalAssertionError.d.ts +8 -0
  144. package/dist/LiminalAssertionError.js +20 -0
  145. package/dist/LiminalAssertionError.js.map +1 -0
  146. package/dist/Message.d.ts +3 -2
  147. package/dist/Model.d.ts +4 -2
  148. package/dist/Model.js +1 -1
  149. package/dist/Model.js.map +1 -1
  150. package/dist/ModelRegistry.d.ts +0 -2
  151. package/dist/ModelRegistry.js +0 -2
  152. package/dist/ModelRegistry.js.map +1 -1
  153. package/dist/Rune.d.ts +19 -7
  154. package/dist/Rune.js +8 -4
  155. package/dist/Rune.js.map +1 -1
  156. package/dist/Rune.test.d.ts +1 -0
  157. package/dist/Rune.test.js +5 -0
  158. package/dist/Rune.test.js.map +1 -0
  159. package/dist/Schema.d.ts +46 -0
  160. package/dist/Schema.js +130 -0
  161. package/dist/Schema.js.map +1 -0
  162. package/dist/Strand.d.ts +57 -0
  163. package/dist/Strand.js +177 -0
  164. package/dist/Strand.js.map +1 -0
  165. package/dist/Tool.d.ts +6 -5
  166. package/dist/Tool.js +3 -4
  167. package/dist/Tool.js.map +1 -1
  168. package/dist/TypeAdapter.d.ts +1 -0
  169. package/dist/TypeAdapter.js +3 -0
  170. package/dist/TypeAdapter.js.map +1 -0
  171. package/dist/errors.d.ts +9 -0
  172. package/dist/errors.js +11 -0
  173. package/dist/errors.js.map +1 -0
  174. package/dist/index.d.ts +6 -5
  175. package/dist/index.js +6 -5
  176. package/dist/index.js.map +1 -1
  177. package/dist/tsconfig.tsbuildinfo +1 -1
  178. package/dist/util/EnsureNarrow.d.ts +1 -0
  179. package/dist/util/EnsureNarrow.js +2 -0
  180. package/dist/util/EnsureNarrow.js.map +1 -0
  181. package/dist/util/JSONValue.d.ts +8 -0
  182. package/dist/util/JSONValue.js +20 -0
  183. package/dist/util/JSONValue.js.map +1 -0
  184. package/dist/util/attachCustomInspect.d.ts +1 -0
  185. package/dist/util/attachCustomInspect.js +11 -0
  186. package/dist/util/attachCustomInspect.js.map +1 -0
  187. package/dist/util/isTemplateStringsArray.d.ts +1 -0
  188. package/dist/util/isTemplateStringsArray.js +4 -0
  189. package/dist/util/isTemplateStringsArray.js.map +1 -0
  190. package/errors.ts +12 -0
  191. package/index.ts +6 -5
  192. package/package.json +3 -10
  193. package/tsconfig.json +1 -5
  194. package/util/EnsureNarrow.ts +1 -0
  195. package/util/JSONValue.ts +20 -0
  196. package/util/attachCustomInspect.ts +14 -0
  197. package/util/isTemplateStringsArray.ts +3 -0
  198. package/Fiber.ts +0 -123
  199. package/L/_common.ts +0 -6
  200. package/L/rune.ts +0 -12
  201. package/MessageRegistry.ts +0 -22
  202. package/Runic.ts +0 -30
  203. package/StrandConfig.ts +0 -12
  204. package/ToolRegistry.ts +0 -10
  205. package/dist/Fiber.d.ts +0 -35
  206. package/dist/Fiber.js +0 -95
  207. package/dist/Fiber.js.map +0 -1
  208. package/dist/L/_common.d.ts +0 -4
  209. package/dist/L/_common.js +0 -7
  210. package/dist/L/_common.js.map +0 -1
  211. package/dist/L/rune.d.ts +0 -3
  212. package/dist/L/rune.js +0 -9
  213. package/dist/L/rune.js.map +0 -1
  214. package/dist/MessageRegistry.d.ts +0 -9
  215. package/dist/MessageRegistry.js +0 -15
  216. package/dist/MessageRegistry.js.map +0 -1
  217. package/dist/Runic.d.ts +0 -9
  218. package/dist/Runic.js +0 -18
  219. package/dist/Runic.js.map +0 -1
  220. package/dist/StrandConfig.d.ts +0 -11
  221. package/dist/StrandConfig.js +0 -2
  222. package/dist/StrandConfig.js.map +0 -1
  223. package/dist/ToolRegistry.d.ts +0 -6
  224. package/dist/ToolRegistry.js +0 -8
  225. package/dist/ToolRegistry.js.map +0 -1
package/Fiber.ts DELETED
@@ -1,123 +0,0 @@
1
- import { attachCustomInspect } from "liminal-util"
2
- import { Context } from "./Context.ts"
3
- import { type Handler, HandlerContext } from "./Handler.ts"
4
- import { FiberCreated, FiberRejected, FiberResolved, FiberStarted } from "./LEvent.ts"
5
- import { type Rune, RuneKey } from "./Rune.ts"
6
- import { Runic } from "./Runic.ts"
7
-
8
- export interface FiberConfig {
9
- parent?: Fiber
10
- signal?: AbortSignal
11
- }
12
-
13
- export class Fiber<T = any> {
14
- static *[Symbol.iterator](): Generator<Rune<never>, Fiber> {
15
- return yield Object.assign((fiber: Fiber) => fiber, {
16
- [RuneKey]: true,
17
- debug: "current_fiber",
18
- } as never)
19
- }
20
-
21
- static nextIndex: number = 0
22
- readonly index: number = Fiber.nextIndex++
23
- readonly depth: number
24
-
25
- readonly #context: Context = Context.get() ?? new Context()
26
- readonly #runic: Runic<Rune, T>
27
- readonly #handler: Handler | undefined = HandlerContext.get()
28
- readonly #configSignal?: AbortSignal
29
-
30
- declare readonly parent?: Fiber
31
-
32
- status: FiberStatus<T> = { type: "untouched" }
33
- controller: AbortController = new AbortController()
34
-
35
- constructor(runic: Runic<Rune, T>, config?: FiberConfig) {
36
- this.depth = (config?.parent?.depth ?? -2) + 1
37
- this.#runic = runic
38
- const { parent, signal } = config ?? {}
39
- if (parent) this.parent = parent
40
- if (signal) this.#configSignal = signal
41
- this.handle(new FiberCreated())
42
- }
43
-
44
- handle(event: any) {
45
- this.#handler?.call(this, event)
46
- }
47
-
48
- resolution(): Promise<T> {
49
- switch (this.status.type) {
50
- case "untouched": {
51
- const { promise, resolve, reject } = Promise.withResolvers<T>()
52
- this.status = {
53
- type: "pending",
54
- self: this.controller.signal,
55
- promise,
56
- }
57
- this.handle(new FiberStarted())
58
- const iterator = Runic.unwrap(this.#runic)
59
- let nextArg: unknown
60
- this.#context.run(async () => {
61
- try {
62
- let current = await iterator.next()
63
- while (!current.done) {
64
- const rune = current.value
65
- nextArg = await rune(this)
66
- current = await iterator.next(nextArg)
67
- }
68
- const { value } = current
69
- this.status = {
70
- type: "resolved",
71
- value,
72
- }
73
- this.handle(new FiberResolved(value))
74
- this.controller.abort()
75
- resolve(value)
76
- } catch (exception) {
77
- this.status = {
78
- type: "rejected",
79
- exception,
80
- }
81
- this.handle(new FiberRejected(exception))
82
- this.controller.abort()
83
- reject(exception)
84
- }
85
- })
86
- return promise
87
- }
88
- case "pending": {
89
- return this.status.promise
90
- }
91
- case "resolved": {
92
- return Promise.resolve(this.status.value)
93
- }
94
- case "rejected": {
95
- return Promise.reject(this.status.exception)
96
- }
97
- case "aborted": {
98
- return Promise.reject(this.status.reason)
99
- }
100
- }
101
- }
102
-
103
- static {
104
- attachCustomInspect(this, ({ index, parent }) => ({ index, ...parent && { parent } }))
105
- }
106
- }
107
-
108
- export type FiberStatus<T> = {
109
- type: "untouched"
110
- } | {
111
- type: "pending"
112
- self: AbortSignal
113
- promise: Promise<T>
114
- } | {
115
- type: "aborted"
116
- reason: unknown
117
- } | {
118
- type: "resolved"
119
- value: T
120
- } | {
121
- type: "rejected"
122
- exception: unknown
123
- }
package/L/_common.ts DELETED
@@ -1,6 +0,0 @@
1
- export class RequestCounter {
2
- static count: number = 0
3
- static next(): number {
4
- return this.count++
5
- }
6
- }
package/L/rune.ts DELETED
@@ -1,12 +0,0 @@
1
- import { Fiber } from "../Fiber.ts"
2
- import { type Rune, RuneKey } from "../Rune.ts"
3
-
4
- export function* rune<R>(
5
- source: (fiber: Fiber) => R,
6
- debug?: string,
7
- ): Generator<Rune<never>, Awaited<R>> {
8
- return yield Object.assign(source, {
9
- [RuneKey]: true,
10
- debug,
11
- }) as never
12
- }
@@ -1,22 +0,0 @@
1
- import { ContextPart } from "./Context.ts"
2
- import type { Message } from "./Message.ts"
3
-
4
- export class MessageRegistry {
5
- messages: Array<Message>
6
- constructor(messages?: Array<Message>) {
7
- this.messages = messages ?? []
8
- }
9
-
10
- append(message: Message): void {
11
- this.messages.push(message)
12
- }
13
-
14
- clone(): MessageRegistry {
15
- return new MessageRegistry([...this.messages])
16
- }
17
- }
18
-
19
- export const MessageRegistryContext: ContextPart<MessageRegistry> = ContextPart(
20
- (parent) => parent?.clone() ?? new MessageRegistry(),
21
- "message_registry",
22
- )
package/Runic.ts DELETED
@@ -1,30 +0,0 @@
1
- import type { Rune } from "./Rune.ts"
2
-
3
- export type RuneIterator<Y extends Rune = Rune, T = any> = Iterator<Y, T> | AsyncIterator<Y, T>
4
- export type RuneIterable<Y extends Rune = Rune, T = any> = Iterable<Y, T> | AsyncIterable<Y, T>
5
- export type Runic<Y extends Rune = Rune, T = any> = RuneIterable<Y, T> | (() => RuneIterable<Y, T>)
6
-
7
- export namespace Runic {
8
- export type Y<X extends Runic> = X extends RuneIterable<infer Y> ? Y
9
- : X extends () => RuneIterable<infer Y> ? Y
10
- : X extends RuneIterator<infer Y> ? Y
11
- : never
12
-
13
- export type T<X extends Runic> = X extends RuneIterable<Rune, infer T> ? T
14
- : X extends () => RuneIterable<Rune, infer T> ? T
15
- : X extends RuneIterator<Rune, infer T> ? T
16
- : never
17
-
18
- export function unwrap<Y extends Rune, T>(runic: Runic<Y, T>): RuneIterator<Y, T> {
19
- if (Symbol.iterator in runic) {
20
- return runic[Symbol.iterator]()
21
- } else if (Symbol.asyncIterator in runic) {
22
- return runic[Symbol.asyncIterator]()
23
- }
24
- const iterable = runic()
25
- if (Symbol.iterator in iterable) {
26
- return iterable[Symbol.iterator]()
27
- }
28
- return iterable[Symbol.asyncIterator]()
29
- }
30
- }
package/StrandConfig.ts DELETED
@@ -1,12 +0,0 @@
1
- import type { Fiber } from "./Fiber.ts"
2
- import type { MessageRegistry } from "./MessageRegistry.ts"
3
- import type { ModelRegistry } from "./ModelRegistry.ts"
4
- import type { ToolRegistry } from "./ToolRegistry.ts"
5
-
6
- export interface StrandConfig<T = any, E = any> {
7
- handler?: ((this: Fiber<T>, event: E) => void) | undefined
8
- models?: ModelRegistry | undefined
9
- messages?: MessageRegistry | undefined
10
- tools?: ToolRegistry | undefined
11
- signal?: AbortSignal | undefined
12
- }
package/ToolRegistry.ts DELETED
@@ -1,10 +0,0 @@
1
- import { ContextPart } from "liminal"
2
- import type { Tool } from "./Tool"
3
-
4
- export class ToolRegistry extends Set<Tool> {
5
- clone(): ToolRegistry {
6
- return new ToolRegistry([...this])
7
- }
8
- }
9
-
10
- export const ToolRegistryContext: ContextPart<ToolRegistry> = ContextPart(() => new ToolRegistry(), "tool_registry")
package/dist/Fiber.d.ts DELETED
@@ -1,35 +0,0 @@
1
- import { type Rune } from "./Rune.ts";
2
- import { Runic } from "./Runic.ts";
3
- export interface FiberConfig {
4
- parent?: Fiber;
5
- signal?: AbortSignal;
6
- }
7
- export declare class Fiber<T = any> {
8
- #private;
9
- static [Symbol.iterator](): Generator<Rune<never>, Fiber>;
10
- static nextIndex: number;
11
- readonly index: number;
12
- readonly depth: number;
13
- readonly parent?: Fiber;
14
- status: FiberStatus<T>;
15
- controller: AbortController;
16
- constructor(runic: Runic<Rune, T>, config?: FiberConfig);
17
- handle(event: any): void;
18
- resolution(): Promise<T>;
19
- }
20
- export type FiberStatus<T> = {
21
- type: "untouched";
22
- } | {
23
- type: "pending";
24
- self: AbortSignal;
25
- promise: Promise<T>;
26
- } | {
27
- type: "aborted";
28
- reason: unknown;
29
- } | {
30
- type: "resolved";
31
- value: T;
32
- } | {
33
- type: "rejected";
34
- exception: unknown;
35
- };
package/dist/Fiber.js DELETED
@@ -1,95 +0,0 @@
1
- import { attachCustomInspect } from "liminal-util";
2
- import { Context } from "./Context.js";
3
- import { HandlerContext } from "./Handler.js";
4
- import { FiberCreated, FiberRejected, FiberResolved, FiberStarted } from "./LEvent.js";
5
- import { RuneKey } from "./Rune.js";
6
- import { Runic } from "./Runic.js";
7
- export class Fiber {
8
- static *[Symbol.iterator]() {
9
- return yield Object.assign((fiber) => fiber, {
10
- [RuneKey]: true,
11
- debug: "current_fiber",
12
- });
13
- }
14
- static nextIndex = 0;
15
- index = Fiber.nextIndex++;
16
- depth;
17
- #context = Context.get() ?? new Context();
18
- #runic;
19
- #handler = HandlerContext.get();
20
- #configSignal;
21
- status = { type: "untouched" };
22
- controller = new AbortController();
23
- constructor(runic, config) {
24
- this.depth = (config?.parent?.depth ?? -2) + 1;
25
- this.#runic = runic;
26
- const { parent, signal } = config ?? {};
27
- if (parent)
28
- this.parent = parent;
29
- if (signal)
30
- this.#configSignal = signal;
31
- this.handle(new FiberCreated());
32
- }
33
- handle(event) {
34
- this.#handler?.call(this, event);
35
- }
36
- resolution() {
37
- switch (this.status.type) {
38
- case "untouched": {
39
- const { promise, resolve, reject } = Promise.withResolvers();
40
- this.status = {
41
- type: "pending",
42
- self: this.controller.signal,
43
- promise,
44
- };
45
- this.handle(new FiberStarted());
46
- const iterator = Runic.unwrap(this.#runic);
47
- let nextArg;
48
- this.#context.run(async () => {
49
- try {
50
- let current = await iterator.next();
51
- while (!current.done) {
52
- const rune = current.value;
53
- nextArg = await rune(this);
54
- current = await iterator.next(nextArg);
55
- }
56
- const { value } = current;
57
- this.status = {
58
- type: "resolved",
59
- value,
60
- };
61
- this.handle(new FiberResolved(value));
62
- this.controller.abort();
63
- resolve(value);
64
- }
65
- catch (exception) {
66
- this.status = {
67
- type: "rejected",
68
- exception,
69
- };
70
- this.handle(new FiberRejected(exception));
71
- this.controller.abort();
72
- reject(exception);
73
- }
74
- });
75
- return promise;
76
- }
77
- case "pending": {
78
- return this.status.promise;
79
- }
80
- case "resolved": {
81
- return Promise.resolve(this.status.value);
82
- }
83
- case "rejected": {
84
- return Promise.reject(this.status.exception);
85
- }
86
- case "aborted": {
87
- return Promise.reject(this.status.reason);
88
- }
89
- }
90
- }
91
- static {
92
- attachCustomInspect(this, ({ index, parent }) => ({ index, ...parent && { parent } }));
93
- }
94
- }
95
- //# sourceMappingURL=Fiber.js.map
package/dist/Fiber.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Fiber.js","sourceRoot":"","sources":["../Fiber.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export declare class RequestCounter {
2
- static count: number;
3
- static next(): number;
4
- }
package/dist/L/_common.js DELETED
@@ -1,7 +0,0 @@
1
- export class RequestCounter {
2
- static count = 0;
3
- static next() {
4
- return this.count++;
5
- }
6
- }
7
- //# sourceMappingURL=_common.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_common.js","sourceRoot":"","sources":["../../L/_common.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,cAAc;IACzB,MAAM,CAAC,KAAK,GAAW,CAAC,CAAA;IACxB,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,EAAE,CAAA;IACrB,CAAC"}
package/dist/L/rune.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import { Fiber } from "../Fiber.ts";
2
- import { type Rune } from "../Rune.ts";
3
- export declare function rune<R>(source: (fiber: Fiber) => R, debug?: string): Generator<Rune<never>, Awaited<R>>;
package/dist/L/rune.js DELETED
@@ -1,9 +0,0 @@
1
- import { Fiber } from "../Fiber.js";
2
- import { RuneKey } from "../Rune.js";
3
- export function* rune(source, debug) {
4
- return yield Object.assign(source, {
5
- [RuneKey]: true,
6
- debug,
7
- });
8
- }
9
- //# sourceMappingURL=rune.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rune.js","sourceRoot":"","sources":["../../L/rune.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAa,OAAO,EAAE,MAAM,YAAY,CAAA;AAE/C,MAAM,SAAS,CAAC,CAAC,IAAI,CACnB,MAA2B,EAC3B,KAAc;IAEd,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QACjC,CAAC,OAAO,CAAC,EAAE,IAAI;QACf,KAAK;KACN,CAAU,CAAA;AACb,CAAC"}
@@ -1,9 +0,0 @@
1
- import { ContextPart } from "./Context.ts";
2
- import type { Message } from "./Message.ts";
3
- export declare class MessageRegistry {
4
- messages: Array<Message>;
5
- constructor(messages?: Array<Message>);
6
- append(message: Message): void;
7
- clone(): MessageRegistry;
8
- }
9
- export declare const MessageRegistryContext: ContextPart<MessageRegistry>;
@@ -1,15 +0,0 @@
1
- import { ContextPart } from "./Context.js";
2
- export class MessageRegistry {
3
- messages;
4
- constructor(messages) {
5
- this.messages = messages ?? [];
6
- }
7
- append(message) {
8
- this.messages.push(message);
9
- }
10
- clone() {
11
- return new MessageRegistry([...this.messages]);
12
- }
13
- }
14
- export const MessageRegistryContext = ContextPart((parent) => parent?.clone() ?? new MessageRegistry(), "message_registry");
15
- //# sourceMappingURL=MessageRegistry.js.map
@@ -1 +0,0 @@
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"}
package/dist/Runic.d.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { Rune } from "./Rune.ts";
2
- export type RuneIterator<Y extends Rune = Rune, T = any> = Iterator<Y, T> | AsyncIterator<Y, T>;
3
- export type RuneIterable<Y extends Rune = Rune, T = any> = Iterable<Y, T> | AsyncIterable<Y, T>;
4
- export type Runic<Y extends Rune = Rune, T = any> = RuneIterable<Y, T> | (() => RuneIterable<Y, T>);
5
- export declare namespace Runic {
6
- type Y<X extends Runic> = X extends RuneIterable<infer Y> ? Y : X extends () => RuneIterable<infer Y> ? Y : X extends RuneIterator<infer Y> ? Y : never;
7
- type T<X extends Runic> = X extends RuneIterable<Rune, infer T> ? T : X extends () => RuneIterable<Rune, infer T> ? T : X extends RuneIterator<Rune, infer T> ? T : never;
8
- function unwrap<Y extends Rune, T>(runic: Runic<Y, T>): RuneIterator<Y, T>;
9
- }
package/dist/Runic.js DELETED
@@ -1,18 +0,0 @@
1
- export var Runic;
2
- (function (Runic) {
3
- function unwrap(runic) {
4
- if (Symbol.iterator in runic) {
5
- return runic[Symbol.iterator]();
6
- }
7
- else if (Symbol.asyncIterator in runic) {
8
- return runic[Symbol.asyncIterator]();
9
- }
10
- const iterable = runic();
11
- if (Symbol.iterator in iterable) {
12
- return iterable[Symbol.iterator]();
13
- }
14
- return iterable[Symbol.asyncIterator]();
15
- }
16
- Runic.unwrap = unwrap;
17
- })(Runic || (Runic = {}));
18
- //# sourceMappingURL=Runic.js.map
package/dist/Runic.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Runic.js","sourceRoot":"","sources":["../Runic.ts"],"names":[],"mappings":"AAMA,MAAM,KAAW,KAAK,CAuBrB;AAvBD,WAAiB,KAAK;IAWpB,SAAgB,MAAM,CAAoB,KAAkB;QAC1D,IAAI,MAAM,CAAC,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QACjC,CAAC;aAAM,IAAI,MAAM,CAAC,aAAa,IAAI,KAAK,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;QACtC,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAA;QACxB,IAAI,MAAM,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAA;QACpC,CAAC;QACD,OAAO,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;IACzC,CAAC;IAXe,YAAM,SAWrB,CAAA;AACH,CAAC,EAvBgB,KAAK,KAAL,KAAK,QAuBrB"}
@@ -1,11 +0,0 @@
1
- import type { Fiber } from "./Fiber.ts";
2
- import type { MessageRegistry } from "./MessageRegistry.ts";
3
- import type { ModelRegistry } from "./ModelRegistry.ts";
4
- import type { ToolRegistry } from "./ToolRegistry.ts";
5
- export interface StrandConfig<T = any, E = any> {
6
- handler?: ((this: Fiber<T>, event: E) => void) | undefined;
7
- models?: ModelRegistry | undefined;
8
- messages?: MessageRegistry | undefined;
9
- tools?: ToolRegistry | undefined;
10
- signal?: AbortSignal | undefined;
11
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=StrandConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StrandConfig.js","sourceRoot":"","sources":["../StrandConfig.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import { ContextPart } from "liminal";
2
- import type { Tool } from "./Tool";
3
- export declare class ToolRegistry extends Set<Tool> {
4
- clone(): ToolRegistry;
5
- }
6
- export declare const ToolRegistryContext: ContextPart<ToolRegistry>;
@@ -1,8 +0,0 @@
1
- import { ContextPart } from "liminal";
2
- export class ToolRegistry extends Set {
3
- clone() {
4
- return new ToolRegistry([...this]);
5
- }
6
- }
7
- export const ToolRegistryContext = ContextPart(() => new ToolRegistry(), "tool_registry");
8
- //# sourceMappingURL=ToolRegistry.js.map
@@ -1 +0,0 @@
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"}