liminal 0.5.2 → 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 (668) hide show
  1. package/Agent.ts +25 -7
  2. package/CHANGELOG.md +19 -0
  3. package/EventBase.ts +13 -0
  4. package/Fiber.ts +67 -0
  5. package/Globals.ts +10 -0
  6. package/Handler.ts +0 -0
  7. package/L/L.ts +12 -0
  8. package/L/_infer.ts +40 -0
  9. package/L/_message.ts +16 -0
  10. package/L/all.ts +11 -0
  11. package/L/assistant.ts +27 -0
  12. package/L/branch.ts +51 -0
  13. package/L/emit.ts +10 -0
  14. package/L/fork.ts +20 -0
  15. package/L/join.ts +9 -0
  16. package/L/model.ts +12 -0
  17. package/L/namespace.ts +11 -0
  18. package/L/rune.ts +19 -0
  19. package/L/self.ts +13 -0
  20. package/L/system.ts +13 -0
  21. package/L/user.ts +13 -0
  22. package/LEvent.ts +58 -0
  23. package/Message.ts +11 -90
  24. package/Model.ts +10 -23
  25. package/Rune.ts +17 -0
  26. package/Runic.ts +22 -0
  27. package/cli/main.ts +1 -24
  28. package/dist/Agent.d.ts +12 -7
  29. package/dist/Agent.js +14 -1
  30. package/dist/Agent.js.map +1 -1
  31. package/dist/EventBase.d.ts +7 -0
  32. package/dist/EventBase.js +14 -0
  33. package/dist/EventBase.js.map +1 -0
  34. package/dist/Fiber.d.ts +24 -0
  35. package/dist/Fiber.js +37 -0
  36. package/dist/Fiber.js.map +1 -0
  37. package/dist/Globals.d.ts +6 -0
  38. package/dist/Globals.js +2 -0
  39. package/dist/Globals.js.map +1 -0
  40. package/dist/Handler.js +2 -0
  41. package/dist/Handler.js.map +1 -0
  42. package/dist/L/L.d.ts +12 -0
  43. package/dist/L/L.js +13 -0
  44. package/dist/L/L.js.map +1 -0
  45. package/dist/L/_infer.d.ts +4 -0
  46. package/dist/L/_infer.js +32 -0
  47. package/dist/L/_infer.js.map +1 -0
  48. package/dist/L/_message.d.ts +6 -0
  49. package/dist/L/_message.js +12 -0
  50. package/dist/L/_message.js.map +1 -0
  51. package/dist/L/all.d.ts +7 -0
  52. package/dist/L/all.js +5 -0
  53. package/dist/L/all.js.map +1 -0
  54. package/dist/L/assistant.d.ts +7 -0
  55. package/dist/L/assistant.js +18 -0
  56. package/dist/L/assistant.js.map +1 -0
  57. package/dist/L/branch.d.ts +11 -0
  58. package/dist/L/branch.js +41 -0
  59. package/dist/L/branch.js.map +1 -0
  60. package/dist/L/emit.d.ts +5 -0
  61. package/dist/L/emit.js +6 -0
  62. package/dist/L/emit.js.map +1 -0
  63. package/dist/L/fork.js +20 -0
  64. package/dist/L/fork.js.map +1 -0
  65. package/dist/L/join.d.ts +5 -0
  66. package/dist/L/join.js +5 -0
  67. package/dist/L/join.js.map +1 -0
  68. package/dist/L/model.d.ts +5 -0
  69. package/dist/L/model.js +8 -0
  70. package/dist/L/model.js.map +1 -0
  71. package/dist/L/namespace.js +12 -0
  72. package/dist/L/namespace.js.map +1 -0
  73. package/dist/L/rune.d.ts +6 -0
  74. package/dist/L/rune.js +11 -0
  75. package/dist/L/rune.js.map +1 -0
  76. package/dist/L/self.d.ts +6 -0
  77. package/dist/L/self.js +7 -0
  78. package/dist/L/self.js.map +1 -0
  79. package/dist/L/system.d.ts +6 -0
  80. package/dist/L/system.js +7 -0
  81. package/dist/L/system.js.map +1 -0
  82. package/dist/L/user.d.ts +6 -0
  83. package/dist/L/user.js +7 -0
  84. package/dist/L/user.js.map +1 -0
  85. package/dist/LEvent.d.ts +31 -0
  86. package/dist/LEvent.js +49 -0
  87. package/dist/LEvent.js.map +1 -0
  88. package/dist/Message.d.ts +12 -81
  89. package/dist/Model.d.ts +4 -20
  90. package/dist/Model.js +6 -0
  91. package/dist/Model.js.map +1 -1
  92. package/dist/Rune.d.ts +11 -0
  93. package/dist/Rune.js +5 -0
  94. package/dist/Rune.js.map +1 -0
  95. package/dist/Runic.d.ts +9 -0
  96. package/dist/Runic.js +18 -0
  97. package/dist/Runic.js.map +1 -0
  98. package/dist/cli/main.d.ts +0 -1
  99. package/dist/cli/main.js +2 -19
  100. package/dist/cli/main.js.map +1 -1
  101. package/dist/index.d.ts +10 -38
  102. package/dist/index.js +10 -38
  103. package/dist/index.js.map +1 -1
  104. package/dist/run.d.ts +3 -0
  105. package/dist/run.js +35 -0
  106. package/dist/run.js.map +1 -0
  107. package/dist/state/Context.d.ts +8 -0
  108. package/dist/state/Context.js +17 -0
  109. package/dist/state/Context.js.map +1 -0
  110. package/dist/state/MessageRegistry.d.ts +8 -0
  111. package/dist/state/MessageRegistry.js +17 -0
  112. package/dist/state/MessageRegistry.js.map +1 -0
  113. package/dist/state/ModelConfig.d.ts +49 -0
  114. package/dist/state/ModelConfig.js +18 -0
  115. package/dist/state/ModelConfig.js.map +1 -0
  116. package/dist/state/ModelRegistry.d.ts +16 -0
  117. package/dist/state/ModelRegistry.js +52 -0
  118. package/dist/state/ModelRegistry.js.map +1 -0
  119. package/dist/state/StateMap.d.ts +8 -0
  120. package/dist/state/StateMap.js +18 -0
  121. package/dist/state/StateMap.js.map +1 -0
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/index.ts +10 -38
  124. package/package.json +6 -10
  125. package/run.ts +39 -0
  126. package/state/Context.ts +19 -0
  127. package/state/MessageRegistry.ts +21 -0
  128. package/state/ModelConfig.ts +49 -0
  129. package/state/ModelRegistry.ts +65 -0
  130. package/state/StateMap.ts +24 -0
  131. package/tsconfig.json +5 -1
  132. package/Action.ts +0 -29
  133. package/Exec.ts +0 -51
  134. package/L.ts +0 -24
  135. package/LiminalAssertionError.ts +0 -3
  136. package/LiminalConfig.ts +0 -7
  137. package/PathLike.ts +0 -17
  138. package/Scope.ts +0 -152
  139. package/Spec.ts +0 -29
  140. package/Tool.ts +0 -58
  141. package/_.ts +0 -11
  142. package/actions/abort.ts +0 -23
  143. package/actions/actions_common/updateModels.ts +0 -23
  144. package/actions/actions_derived/__snapshots__/declareModel.test.ts.snap +0 -89
  145. package/actions/actions_derived/clear.ts +0 -6
  146. package/actions/actions_derived/declareModel.test.ts +0 -36
  147. package/actions/actions_derived/declareModel.ts +0 -9
  148. package/actions/actions_derived/declareModel.type-test.ts +0 -70
  149. package/actions/actions_derived/messages.test.ts +0 -88
  150. package/actions/actions_derived/messages.ts +0 -18
  151. package/actions/actions_derived/metatype.ts +0 -9
  152. package/actions/actions_derived/readers_derived.ts +0 -15
  153. package/actions/appendMessage.ts +0 -54
  154. package/actions/await.ts +0 -13
  155. package/actions/branch.ts +0 -106
  156. package/actions/catch.ts +0 -42
  157. package/actions/declareArg.ts +0 -14
  158. package/actions/disableTool.ts +0 -26
  159. package/actions/embed.ts +0 -29
  160. package/actions/emit.ts +0 -21
  161. package/actions/enableTool.ts +0 -75
  162. package/actions/enableTool.type-test.ts +0 -118
  163. package/actions/infer.ts +0 -49
  164. package/actions/messages.ts +0 -62
  165. package/actions/pushModel.ts +0 -52
  166. package/actions/scope.ts +0 -13
  167. package/actions/section.ts +0 -105
  168. package/actions/throw.ts +0 -18
  169. package/cli/WriteHandler.ts +0 -35
  170. package/cli/cli_common.ts +0 -4
  171. package/cli/runExec.ts +0 -72
  172. package/dist/Action.d.ts +0 -15
  173. package/dist/Action.js +0 -13
  174. package/dist/Action.js.map +0 -1
  175. package/dist/Exec.d.ts +0 -25
  176. package/dist/Exec.js +0 -19
  177. package/dist/Exec.js.map +0 -1
  178. package/dist/L.d.ts +0 -23
  179. package/dist/L.js +0 -24
  180. package/dist/L.js.map +0 -1
  181. package/dist/LiminalAssertionError.d.ts +0 -3
  182. package/dist/LiminalAssertionError.js +0 -4
  183. package/dist/LiminalAssertionError.js.map +0 -1
  184. package/dist/LiminalConfig.d.ts +0 -6
  185. package/dist/LiminalConfig.js +0 -2
  186. package/dist/LiminalConfig.js.map +0 -1
  187. package/dist/PathLike.d.ts +0 -11
  188. package/dist/PathLike.js +0 -2
  189. package/dist/PathLike.js.map +0 -1
  190. package/dist/Scope.d.ts +0 -42
  191. package/dist/Scope.js +0 -93
  192. package/dist/Scope.js.map +0 -1
  193. package/dist/Spec.d.ts +0 -20
  194. package/dist/Spec.js +0 -2
  195. package/dist/Spec.js.map +0 -1
  196. package/dist/Tool.d.ts +0 -21
  197. package/dist/Tool.js +0 -32
  198. package/dist/Tool.js.map +0 -1
  199. package/dist/_.d.ts +0 -5
  200. package/dist/_.js +0 -7
  201. package/dist/_.js.map +0 -1
  202. package/dist/actions/abort.d.ts +0 -9
  203. package/dist/actions/abort.js +0 -15
  204. package/dist/actions/abort.js.map +0 -1
  205. package/dist/actions/actions_common/updateModels.d.ts +0 -3
  206. package/dist/actions/actions_common/updateModels.js +0 -17
  207. package/dist/actions/actions_common/updateModels.js.map +0 -1
  208. package/dist/actions/actions_derived/clear.d.ts +0 -8
  209. package/dist/actions/actions_derived/clear.js +0 -5
  210. package/dist/actions/actions_derived/clear.js.map +0 -1
  211. package/dist/actions/actions_derived/declareModel.d.ts +0 -5
  212. package/dist/actions/actions_derived/declareModel.js +0 -7
  213. package/dist/actions/actions_derived/declareModel.js.map +0 -1
  214. package/dist/actions/actions_derived/declareModel.test.js +0 -35
  215. package/dist/actions/actions_derived/declareModel.test.js.map +0 -1
  216. package/dist/actions/actions_derived/declareModel.type-test.js +0 -66
  217. package/dist/actions/actions_derived/declareModel.type-test.js.map +0 -1
  218. package/dist/actions/actions_derived/messages.d.ts +0 -6
  219. package/dist/actions/actions_derived/messages.js +0 -15
  220. package/dist/actions/actions_derived/messages.js.map +0 -1
  221. package/dist/actions/actions_derived/messages.test.js +0 -72
  222. package/dist/actions/actions_derived/messages.test.js.map +0 -1
  223. package/dist/actions/actions_derived/metatype.d.ts +0 -9
  224. package/dist/actions/actions_derived/metatype.js +0 -7
  225. package/dist/actions/actions_derived/metatype.js.map +0 -1
  226. package/dist/actions/actions_derived/readers_derived.d.ts +0 -6
  227. package/dist/actions/actions_derived/readers_derived.js +0 -14
  228. package/dist/actions/actions_derived/readers_derived.js.map +0 -1
  229. package/dist/actions/appendMessage.d.ts +0 -14
  230. package/dist/actions/appendMessage.js +0 -41
  231. package/dist/actions/appendMessage.js.map +0 -1
  232. package/dist/actions/await.d.ts +0 -5
  233. package/dist/actions/await.js +0 -10
  234. package/dist/actions/await.js.map +0 -1
  235. package/dist/actions/branch.d.ts +0 -39
  236. package/dist/actions/branch.js +0 -40
  237. package/dist/actions/branch.js.map +0 -1
  238. package/dist/actions/catch.d.ts +0 -10
  239. package/dist/actions/catch.js +0 -27
  240. package/dist/actions/catch.js.map +0 -1
  241. package/dist/actions/declareArg.d.ts +0 -8
  242. package/dist/actions/declareArg.js +0 -10
  243. package/dist/actions/declareArg.js.map +0 -1
  244. package/dist/actions/disableTool.d.ts +0 -10
  245. package/dist/actions/disableTool.js +0 -17
  246. package/dist/actions/disableTool.js.map +0 -1
  247. package/dist/actions/embed.d.ts +0 -9
  248. package/dist/actions/embed.js +0 -24
  249. package/dist/actions/embed.js.map +0 -1
  250. package/dist/actions/emit.d.ts +0 -9
  251. package/dist/actions/emit.js +0 -14
  252. package/dist/actions/emit.js.map +0 -1
  253. package/dist/actions/enableTool.d.ts +0 -20
  254. package/dist/actions/enableTool.js +0 -26
  255. package/dist/actions/enableTool.js.map +0 -1
  256. package/dist/actions/enableTool.type-test.d.ts +0 -1
  257. package/dist/actions/enableTool.type-test.js +0 -30
  258. package/dist/actions/enableTool.type-test.js.map +0 -1
  259. package/dist/actions/infer.d.ts +0 -15
  260. package/dist/actions/infer.js +0 -29
  261. package/dist/actions/infer.js.map +0 -1
  262. package/dist/actions/messages.d.ts +0 -24
  263. package/dist/actions/messages.js +0 -35
  264. package/dist/actions/messages.js.map +0 -1
  265. package/dist/actions/pushModel.d.ts +0 -15
  266. package/dist/actions/pushModel.js +0 -36
  267. package/dist/actions/pushModel.js.map +0 -1
  268. package/dist/actions/scope.d.ts +0 -7
  269. package/dist/actions/scope.js +0 -10
  270. package/dist/actions/scope.js.map +0 -1
  271. package/dist/actions/section.d.ts +0 -23
  272. package/dist/actions/section.js +0 -64
  273. package/dist/actions/section.js.map +0 -1
  274. package/dist/actions/throw.d.ts +0 -9
  275. package/dist/actions/throw.js +0 -13
  276. package/dist/actions/throw.js.map +0 -1
  277. package/dist/cli/WriteHandler.d.ts +0 -9
  278. package/dist/cli/WriteHandler.js +0 -24
  279. package/dist/cli/WriteHandler.js.map +0 -1
  280. package/dist/cli/cli_common.d.ts +0 -4
  281. package/dist/cli/cli_common.js +0 -2
  282. package/dist/cli/cli_common.js.map +0 -1
  283. package/dist/cli/runExec.d.ts +0 -2
  284. package/dist/cli/runExec.js +0 -74
  285. package/dist/cli/runExec.js.map +0 -1
  286. package/dist/events/Aborted.d.ts +0 -4
  287. package/dist/events/Aborted.js +0 -2
  288. package/dist/events/Aborted.js.map +0 -1
  289. package/dist/events/Embedded.d.ts +0 -5
  290. package/dist/events/Embedded.js +0 -2
  291. package/dist/events/Embedded.js.map +0 -1
  292. package/dist/events/EmbeddingRequested.d.ts +0 -4
  293. package/dist/events/EmbeddingRequested.js +0 -2
  294. package/dist/events/EmbeddingRequested.js.map +0 -1
  295. package/dist/events/Emitted.d.ts +0 -4
  296. package/dist/events/Emitted.js +0 -2
  297. package/dist/events/Emitted.js.map +0 -1
  298. package/dist/events/EventBase.d.ts +0 -3
  299. package/dist/events/EventBase.js +0 -2
  300. package/dist/events/EventBase.js.map +0 -1
  301. package/dist/events/EventHandler.d.ts +0 -2
  302. package/dist/events/EventHandler.js +0 -2
  303. package/dist/events/EventHandler.js.map +0 -1
  304. package/dist/events/EventResolved.d.ts +0 -19
  305. package/dist/events/EventResolved.js +0 -2
  306. package/dist/events/EventResolved.js.map +0 -1
  307. package/dist/events/Forked.d.ts +0 -3
  308. package/dist/events/Forked.js +0 -2
  309. package/dist/events/Forked.js.map +0 -1
  310. package/dist/events/InferenceRequested.d.ts +0 -3
  311. package/dist/events/InferenceRequested.js +0 -2
  312. package/dist/events/InferenceRequested.js.map +0 -1
  313. package/dist/events/Inferred.d.ts +0 -5
  314. package/dist/events/Inferred.js +0 -2
  315. package/dist/events/Inferred.js.map +0 -1
  316. package/dist/events/LEvent.d.ts +0 -20
  317. package/dist/events/LEvent.js +0 -2
  318. package/dist/events/LEvent.js.map +0 -1
  319. package/dist/events/MessageAppended.d.ts +0 -5
  320. package/dist/events/MessageAppended.js +0 -2
  321. package/dist/events/MessageAppended.js.map +0 -1
  322. package/dist/events/MessageRemoved.d.ts +0 -5
  323. package/dist/events/MessageRemoved.js +0 -2
  324. package/dist/events/MessageRemoved.js.map +0 -1
  325. package/dist/events/MessagesSet.d.ts +0 -5
  326. package/dist/events/MessagesSet.js +0 -2
  327. package/dist/events/MessagesSet.js.map +0 -1
  328. package/dist/events/ModelPushed.d.ts +0 -7
  329. package/dist/events/ModelPushed.js +0 -2
  330. package/dist/events/ModelPushed.js.map +0 -1
  331. package/dist/events/ModelRemoved.d.ts +0 -7
  332. package/dist/events/ModelRemoved.js +0 -2
  333. package/dist/events/ModelRemoved.js.map +0 -1
  334. package/dist/events/Returned.d.ts +0 -4
  335. package/dist/events/Returned.js +0 -2
  336. package/dist/events/Returned.js.map +0 -1
  337. package/dist/events/SectionCleared.d.ts +0 -5
  338. package/dist/events/SectionCleared.js +0 -2
  339. package/dist/events/SectionCleared.js.map +0 -1
  340. package/dist/events/Sectioned.d.ts +0 -5
  341. package/dist/events/Sectioned.js +0 -2
  342. package/dist/events/Sectioned.js.map +0 -1
  343. package/dist/events/Threw.d.ts +0 -4
  344. package/dist/events/Threw.js +0 -2
  345. package/dist/events/Threw.js.map +0 -1
  346. package/dist/events/ToolCalled.d.ts +0 -6
  347. package/dist/events/ToolCalled.js +0 -2
  348. package/dist/events/ToolCalled.js.map +0 -1
  349. package/dist/events/ToolDisabled.d.ts +0 -5
  350. package/dist/events/ToolDisabled.js +0 -2
  351. package/dist/events/ToolDisabled.js.map +0 -1
  352. package/dist/events/ToolEnabled.d.ts +0 -7
  353. package/dist/events/ToolEnabled.js +0 -2
  354. package/dist/events/ToolEnabled.js.map +0 -1
  355. package/dist/events/isScopeChildEvent.d.ts +0 -6
  356. package/dist/events/isScopeChildEvent.js +0 -9
  357. package/dist/events/isScopeChildEvent.js.map +0 -1
  358. package/dist/events/isScopeDescendantEvent.d.ts +0 -14
  359. package/dist/events/isScopeDescendantEvent.js +0 -12
  360. package/dist/events/isScopeDescendantEvent.js.map +0 -1
  361. package/dist/testing/AgentAssertions.d.ts +0 -9
  362. package/dist/testing/AgentAssertions.js +0 -6
  363. package/dist/testing/AgentAssertions.js.map +0 -1
  364. package/dist/testing/TestEmbeddingModel.d.ts +0 -6
  365. package/dist/testing/TestEmbeddingModel.js +0 -11
  366. package/dist/testing/TestEmbeddingModel.js.map +0 -1
  367. package/dist/testing/TestLanguageModel.d.ts +0 -8
  368. package/dist/testing/TestLanguageModel.js +0 -22
  369. package/dist/testing/TestLanguageModel.js.map +0 -1
  370. package/dist/testing/index.d.ts +0 -4
  371. package/dist/testing/index.js +0 -5
  372. package/dist/testing/index.js.map +0 -1
  373. package/dist/testing/takeFirstAction.d.ts +0 -3
  374. package/dist/testing/takeFirstAction.js +0 -6
  375. package/dist/testing/takeFirstAction.js.map +0 -1
  376. package/dist/types/AssertDiagnostics.d.ts +0 -18
  377. package/dist/types/AssertDiagnostics.js +0 -152
  378. package/dist/types/AssertDiagnostics.js.map +0 -1
  379. package/dist/types/JSONRootType.d.ts +0 -6
  380. package/dist/types/JSONRootType.js +0 -2
  381. package/dist/types/JSONRootType.js.map +0 -1
  382. package/dist/types/JSONType.d.ts +0 -16
  383. package/dist/types/JSONType.js +0 -2
  384. package/dist/types/JSONType.js.map +0 -1
  385. package/dist/types/JSONTypeBase.d.ts +0 -3
  386. package/dist/types/JSONTypeBase.js +0 -2
  387. package/dist/types/JSONTypeBase.js.map +0 -1
  388. package/dist/types/Metatype/MetatypeDescriptor.d.ts +0 -41
  389. package/dist/types/Metatype/MetatypeDescriptor.js +0 -38
  390. package/dist/types/Metatype/MetatypeDescriptor.js.map +0 -1
  391. package/dist/types/Metatype/fromMetatypeDescriptor.d.ts +0 -6
  392. package/dist/types/Metatype/fromMetatypeDescriptor.js +0 -43
  393. package/dist/types/Metatype/fromMetatypeDescriptor.js.map +0 -1
  394. package/dist/types/Type.d.ts +0 -31
  395. package/dist/types/Type.js +0 -5
  396. package/dist/types/Type.js.map +0 -1
  397. package/dist/types/TypeContext.d.ts +0 -7
  398. package/dist/types/TypeContext.js +0 -17
  399. package/dist/types/TypeContext.js.map +0 -1
  400. package/dist/types/TypeLike.d.ts +0 -23
  401. package/dist/types/TypeLike.js +0 -23
  402. package/dist/types/TypeLike.js.map +0 -1
  403. package/dist/types/TypeVisitor.d.ts +0 -14
  404. package/dist/types/TypeVisitor.js +0 -12
  405. package/dist/types/TypeVisitor.js.map +0 -1
  406. package/dist/types/array.d.ts +0 -10
  407. package/dist/types/array.js +0 -9
  408. package/dist/types/array.js.map +0 -1
  409. package/dist/types/boolean.d.ts +0 -6
  410. package/dist/types/boolean.js +0 -3
  411. package/dist/types/boolean.js.map +0 -1
  412. package/dist/types/const.d.ts +0 -8
  413. package/dist/types/const.js +0 -7
  414. package/dist/types/const.js.map +0 -1
  415. package/dist/types/enum.d.ts +0 -8
  416. package/dist/types/enum.js +0 -7
  417. package/dist/types/enum.js.map +0 -1
  418. package/dist/types/factories.d.ts +0 -8
  419. package/dist/types/factories.js +0 -9
  420. package/dist/types/factories.js.map +0 -1
  421. package/dist/types/index.d.ts +0 -2
  422. package/dist/types/index.js +0 -3
  423. package/dist/types/index.js.map +0 -1
  424. package/dist/types/integer.d.ts +0 -6
  425. package/dist/types/integer.js +0 -3
  426. package/dist/types/integer.js.map +0 -1
  427. package/dist/types/intrinsics.d.ts +0 -11
  428. package/dist/types/intrinsics.js +0 -12
  429. package/dist/types/intrinsics.js.map +0 -1
  430. package/dist/types/makeType.d.ts +0 -2
  431. package/dist/types/makeType.js +0 -58
  432. package/dist/types/makeType.js.map +0 -1
  433. package/dist/types/match.d.ts +0 -3
  434. package/dist/types/match.js +0 -11
  435. package/dist/types/match.js.map +0 -1
  436. package/dist/types/non_factories.d.ts +0 -21
  437. package/dist/types/non_factories.js +0 -9
  438. package/dist/types/non_factories.js.map +0 -1
  439. package/dist/types/null.d.ts +0 -7
  440. package/dist/types/null.js +0 -4
  441. package/dist/types/null.js.map +0 -1
  442. package/dist/types/number.d.ts +0 -6
  443. package/dist/types/number.js +0 -3
  444. package/dist/types/number.js.map +0 -1
  445. package/dist/types/object.d.ts +0 -16
  446. package/dist/types/object.js +0 -10
  447. package/dist/types/object.js.map +0 -1
  448. package/dist/types/ref.d.ts +0 -7
  449. package/dist/types/ref.js +0 -5
  450. package/dist/types/ref.js.map +0 -1
  451. package/dist/types/string.d.ts +0 -6
  452. package/dist/types/string.js +0 -3
  453. package/dist/types/string.js.map +0 -1
  454. package/dist/types/toJSON.d.ts +0 -5
  455. package/dist/types/toJSON.js +0 -97
  456. package/dist/types/toJSON.js.map +0 -1
  457. package/dist/types/type_common.d.ts +0 -10
  458. package/dist/types/type_common.js +0 -12
  459. package/dist/types/type_common.js.map +0 -1
  460. package/dist/types/types_derived/option.d.ts +0 -5
  461. package/dist/types/types_derived/option.js +0 -6
  462. package/dist/types/types_derived/option.js.map +0 -1
  463. package/dist/types/types_derived/taggedUnion.d.ts +0 -19
  464. package/dist/types/types_derived/taggedUnion.js +0 -8
  465. package/dist/types/types_derived/taggedUnion.js.map +0 -1
  466. package/dist/types/types_derived/wrapper.d.ts +0 -8
  467. package/dist/types/types_derived/wrapper.js +0 -5
  468. package/dist/types/types_derived/wrapper.js.map +0 -1
  469. package/dist/types/union.d.ts +0 -9
  470. package/dist/types/union.js +0 -9
  471. package/dist/types/union.js.map +0 -1
  472. package/dist/util/ArrayOfLength.d.ts +0 -1
  473. package/dist/util/ArrayOfLength.js +0 -2
  474. package/dist/util/ArrayOfLength.js.map +0 -1
  475. package/dist/util/DeferredOr.d.ts +0 -1
  476. package/dist/util/DeferredOr.js +0 -2
  477. package/dist/util/DeferredOr.js.map +0 -1
  478. package/dist/util/EnsureNarrow.d.ts +0 -2
  479. package/dist/util/EnsureNarrow.js +0 -2
  480. package/dist/util/EnsureNarrow.js.map +0 -1
  481. package/dist/util/EnsureRecord.d.ts +0 -2
  482. package/dist/util/EnsureRecord.js +0 -2
  483. package/dist/util/EnsureRecord.js.map +0 -1
  484. package/dist/util/Expand.d.ts +0 -3
  485. package/dist/util/Expand.js +0 -2
  486. package/dist/util/Expand.js.map +0 -1
  487. package/dist/util/Falsy.d.ts +0 -1
  488. package/dist/util/Falsy.js +0 -2
  489. package/dist/util/Falsy.js.map +0 -1
  490. package/dist/util/FromEntries.d.ts +0 -3
  491. package/dist/util/FromEntries.js +0 -2
  492. package/dist/util/FromEntries.js.map +0 -1
  493. package/dist/util/IteratorLike.d.ts +0 -1
  494. package/dist/util/IteratorLike.js +0 -2
  495. package/dist/util/IteratorLike.js.map +0 -1
  496. package/dist/util/JSONEntry.d.ts +0 -2
  497. package/dist/util/JSONEntry.js +0 -2
  498. package/dist/util/JSONEntry.js.map +0 -1
  499. package/dist/util/JSONKey.d.ts +0 -1
  500. package/dist/util/JSONKey.js +0 -2
  501. package/dist/util/JSONKey.js.map +0 -1
  502. package/dist/util/JSONObject.d.ts +0 -5
  503. package/dist/util/JSONObject.js +0 -2
  504. package/dist/util/JSONObject.js.map +0 -1
  505. package/dist/util/JSONSchemaMemo.d.ts +0 -2
  506. package/dist/util/JSONSchemaMemo.js +0 -13
  507. package/dist/util/JSONSchemaMemo.js.map +0 -1
  508. package/dist/util/JSONValue.d.ts +0 -2
  509. package/dist/util/JSONValue.js +0 -2
  510. package/dist/util/JSONValue.js.map +0 -1
  511. package/dist/util/PromiseOr.d.ts +0 -1
  512. package/dist/util/PromiseOr.js +0 -2
  513. package/dist/util/PromiseOr.js.map +0 -1
  514. package/dist/util/Result.d.ts +0 -7
  515. package/dist/util/Result.js +0 -2
  516. package/dist/util/Result.js.map +0 -1
  517. package/dist/util/Taggable.d.ts +0 -9
  518. package/dist/util/Taggable.js +0 -8
  519. package/dist/util/Taggable.js.map +0 -1
  520. package/dist/util/TupleToRecord.d.ts +0 -5
  521. package/dist/util/TupleToRecord.js +0 -2
  522. package/dist/util/TupleToRecord.js.map +0 -1
  523. package/dist/util/assert.d.ts +0 -1
  524. package/dist/util/assert.js +0 -7
  525. package/dist/util/assert.js.map +0 -1
  526. package/dist/util/dedent.d.ts +0 -1
  527. package/dist/util/dedent.js +0 -5
  528. package/dist/util/dedent.js.map +0 -1
  529. package/dist/util/fixTemplateStrings.d.ts +0 -11
  530. package/dist/util/fixTemplateStrings.js +0 -83
  531. package/dist/util/fixTemplateStrings.js.map +0 -1
  532. package/dist/util/fixTemplateStrings.test.d.ts +0 -1
  533. package/dist/util/fixTemplateStrings.test.js +0 -221
  534. package/dist/util/fixTemplateStrings.test.js.map +0 -1
  535. package/dist/util/isAsyncIterator.d.ts +0 -1
  536. package/dist/util/isAsyncIterator.js +0 -7
  537. package/dist/util/isAsyncIterator.js.map +0 -1
  538. package/dist/util/isIterator.d.ts +0 -1
  539. package/dist/util/isIterator.js +0 -7
  540. package/dist/util/isIterator.js.map +0 -1
  541. package/dist/util/isJSONValue.d.ts +0 -2
  542. package/dist/util/isJSONValue.js +0 -16
  543. package/dist/util/isJSONValue.js.map +0 -1
  544. package/dist/util/isPropertyKey.d.ts +0 -1
  545. package/dist/util/isPropertyKey.js +0 -4
  546. package/dist/util/isPropertyKey.js.map +0 -1
  547. package/dist/util/isTemplateStringsArray.d.ts +0 -1
  548. package/dist/util/isTemplateStringsArray.js +0 -4
  549. package/dist/util/isTemplateStringsArray.js.map +0 -1
  550. package/dist/util/jsonEquals.d.ts +0 -2
  551. package/dist/util/jsonEquals.js +0 -33
  552. package/dist/util/jsonEquals.js.map +0 -1
  553. package/dist/util/nullaryMemo.d.ts +0 -1
  554. package/dist/util/nullaryMemo.js +0 -12
  555. package/dist/util/nullaryMemo.js.map +0 -1
  556. package/dist/util/peekLast.d.ts +0 -1
  557. package/dist/util/peekLast.js +0 -4
  558. package/dist/util/peekLast.js.map +0 -1
  559. package/dist/util/unimplemented.d.ts +0 -1
  560. package/dist/util/unimplemented.js +0 -5
  561. package/dist/util/unimplemented.js.map +0 -1
  562. package/dist/util/unreachable.d.ts +0 -1
  563. package/dist/util/unreachable.js +0 -5
  564. package/dist/util/unreachable.js.map +0 -1
  565. package/dist/util/unwrapDeferred.d.ts +0 -2
  566. package/dist/util/unwrapDeferred.js +0 -4
  567. package/dist/util/unwrapDeferred.js.map +0 -1
  568. package/dist/util/util.d.ts +0 -10
  569. package/dist/util/util.js +0 -11
  570. package/dist/util/util.js.map +0 -1
  571. package/events/Aborted.ts +0 -5
  572. package/events/Embedded.ts +0 -6
  573. package/events/EmbeddingRequested.ts +0 -5
  574. package/events/Emitted.ts +0 -5
  575. package/events/EventBase.ts +0 -3
  576. package/events/EventHandler.ts +0 -3
  577. package/events/EventResolved.ts +0 -30
  578. package/events/Forked.ts +0 -3
  579. package/events/InferenceRequested.ts +0 -3
  580. package/events/Inferred.ts +0 -6
  581. package/events/LEvent.ts +0 -40
  582. package/events/MessageAppended.ts +0 -6
  583. package/events/MessageRemoved.ts +0 -6
  584. package/events/MessagesSet.ts +0 -6
  585. package/events/ModelPushed.ts +0 -10
  586. package/events/ModelRemoved.ts +0 -10
  587. package/events/Returned.ts +0 -5
  588. package/events/SectionCleared.ts +0 -6
  589. package/events/Sectioned.ts +0 -6
  590. package/events/Threw.ts +0 -5
  591. package/events/ToolCalled.ts +0 -7
  592. package/events/ToolDisabled.ts +0 -6
  593. package/events/ToolEnabled.ts +0 -8
  594. package/events/isScopeChildEvent.ts +0 -15
  595. package/events/isScopeDescendantEvent.ts +0 -30
  596. package/testing/AgentAssertions.ts +0 -17
  597. package/testing/TestEmbeddingModel.ts +0 -19
  598. package/testing/TestLanguageModel.ts +0 -33
  599. package/testing/index.ts +0 -4
  600. package/testing/takeFirstAction.ts +0 -8
  601. package/types/AssertDiagnostics.ts +0 -183
  602. package/types/JSONRootType.ts +0 -8
  603. package/types/JSONType.ts +0 -27
  604. package/types/JSONTypeBase.ts +0 -3
  605. package/types/Metatype/MetatypeDescriptor.ts +0 -80
  606. package/types/Metatype/fromMetatypeDescriptor.ts +0 -52
  607. package/types/Type.ts +0 -47
  608. package/types/TypeContext.ts +0 -19
  609. package/types/TypeLike.ts +0 -60
  610. package/types/TypeVisitor.ts +0 -49
  611. package/types/array.ts +0 -20
  612. package/types/boolean.ts +0 -9
  613. package/types/const.ts +0 -17
  614. package/types/enum.ts +0 -14
  615. package/types/factories.ts +0 -8
  616. package/types/index.ts +0 -2
  617. package/types/integer.ts +0 -9
  618. package/types/intrinsics.ts +0 -11
  619. package/types/makeType.ts +0 -72
  620. package/types/match.ts +0 -13
  621. package/types/non_factories.ts +0 -26
  622. package/types/null.ts +0 -10
  623. package/types/number.ts +0 -9
  624. package/types/object.ts +0 -27
  625. package/types/ref.ts +0 -12
  626. package/types/string.ts +0 -9
  627. package/types/toJSON.ts +0 -111
  628. package/types/type_common.ts +0 -21
  629. package/types/types_derived/option.ts +0 -10
  630. package/types/types_derived/taggedUnion.ts +0 -30
  631. package/types/types_derived/wrapper.ts +0 -10
  632. package/types/union.ts +0 -19
  633. package/util/ArrayOfLength.ts +0 -5
  634. package/util/DeferredOr.ts +0 -1
  635. package/util/EnsureNarrow.ts +0 -5
  636. package/util/EnsureRecord.ts +0 -3
  637. package/util/Expand.ts +0 -1
  638. package/util/Falsy.ts +0 -1
  639. package/util/FromEntries.ts +0 -3
  640. package/util/IteratorLike.ts +0 -1
  641. package/util/JSONEntry.ts +0 -3
  642. package/util/JSONKey.ts +0 -1
  643. package/util/JSONObject.ts +0 -6
  644. package/util/JSONSchemaMemo.ts +0 -15
  645. package/util/JSONValue.ts +0 -3
  646. package/util/PromiseOr.ts +0 -1
  647. package/util/Result.ts +0 -7
  648. package/util/Taggable.ts +0 -18
  649. package/util/TupleToRecord.ts +0 -5
  650. package/util/assert.ts +0 -7
  651. package/util/dedent.ts +0 -5
  652. package/util/fixTemplateStrings.test.ts +0 -250
  653. package/util/fixTemplateStrings.ts +0 -99
  654. package/util/isAsyncIterator.ts +0 -6
  655. package/util/isIterator.ts +0 -6
  656. package/util/isJSONValue.ts +0 -20
  657. package/util/isPropertyKey.ts +0 -3
  658. package/util/isTemplateStringsArray.ts +0 -3
  659. package/util/jsonEquals.ts +0 -41
  660. package/util/nullaryMemo.ts +0 -11
  661. package/util/peekLast.ts +0 -3
  662. package/util/unimplemented.ts +0 -5
  663. package/util/unreachable.ts +0 -5
  664. package/util/unwrapDeferred.ts +0 -5
  665. package/util/util.ts +0 -10
  666. /package/dist/{actions/actions_derived/declareModel.test.d.ts → Handler.d.ts} +0 -0
  667. /package/dist/{actions/actions_derived/declareModel.type-test.d.ts → L/fork.d.ts} +0 -0
  668. /package/dist/{actions/actions_derived/messages.test.d.ts → L/namespace.d.ts} +0 -0
package/index.ts CHANGED
@@ -1,41 +1,13 @@
1
- export * from "./Action.ts"
2
- export * from "./actions/appendMessage.ts"
1
+ export * as _util from "liminal-util"
3
2
  export * from "./Agent.ts"
4
- export * from "./events/Aborted.ts"
5
- export * from "./events/Embedded.ts"
6
- export * from "./events/EmbeddingRequested.ts"
7
- export * from "./events/Emitted.ts"
8
- export * from "./events/EventBase.ts"
9
- export * from "./events/EventHandler.ts"
10
- export * from "./events/EventResolved.ts"
11
- export * from "./events/EventResolved.ts"
12
- export * from "./events/EventResolved.ts"
13
- export * from "./events/InferenceRequested.ts"
14
- export * from "./events/Inferred.ts"
15
- export * from "./events/isScopeChildEvent.ts"
16
- export * from "./events/isScopeDescendantEvent.ts"
17
- export * from "./events/LEvent.ts"
18
- export * from "./events/MessageAppended.ts"
19
- export * from "./events/MessageRemoved.ts"
20
- export * from "./events/MessagesSet.ts"
21
- export * from "./events/ModelPushed.ts"
22
- export * from "./events/ModelRemoved.ts"
23
- export * from "./events/Returned.ts"
24
- export * from "./events/Threw.ts"
25
- export * from "./events/ToolCalled.ts"
26
- export * from "./events/ToolDisabled.ts"
27
- export * from "./events/ToolEnabled.ts"
28
- export * from "./Exec.ts"
29
- export * as L from "./L.ts"
30
- export * from "./LiminalAssertionError.ts"
31
- export * from "./LiminalConfig.ts"
3
+ export * from "./EventBase.ts"
4
+ export * from "./Fiber.ts"
5
+ export * as L from "./L/L.ts"
6
+ export * from "./LEvent.ts"
32
7
  export * from "./Message.ts"
33
8
  export * from "./Model.ts"
34
- export * from "./Scope.ts"
35
- export * from "./Spec.ts"
36
- export * from "./Tool.ts"
37
- export * from "./types/non_factories.ts"
38
- export * from "./util/JSONKey.ts"
39
- export * from "./util/JSONObject.ts"
40
- export * from "./util/JSONValue.ts"
41
- export * as _util from "./util/util.ts"
9
+ export * from "./Rune.ts"
10
+ export * from "./Runic.ts"
11
+ export * from "./state/MessageRegistry.ts"
12
+ export * from "./state/ModelRegistry.ts"
13
+ export * from "./state/StateMap.ts"
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.5.2",
6
+ "version": "0.5.4",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {
9
9
  "type": "git",
@@ -11,21 +11,17 @@
11
11
  "directory": "liminal"
12
12
  },
13
13
  "type": "module",
14
- "description": "Liminal is a model-agnostic library for conversation state management.",
14
+ "description": "Primitives for composing model-agnostic agents using TypeScript generator functions.",
15
15
  "bin": {
16
16
  "liminal": "./dist/cli/main.js"
17
17
  },
18
18
  "exports": {
19
- ".": "./dist/index.js",
20
- "./testing": "./dist/testing/index.js",
21
- "./types": "./dist/types/index.js"
19
+ ".": "./dist/index.js"
22
20
  },
23
21
  "dependencies": {
24
- "standard-json-schema": "^0.1.1"
25
- },
26
- "peerDependencies": {
27
- "@standard-schema/spec": "^1.0.0",
28
- "conditional-type-checks": "^1.0.6"
22
+ "conditional-type-checks": "^1.0.6",
23
+ "liminal-schema": "^0.0.2",
24
+ "liminal-util": "^0.0.2"
29
25
  },
30
26
  "peerDependenciesMeta": {
31
27
  "conditional-type-checks": {
package/run.ts ADDED
@@ -0,0 +1,39 @@
1
+ import type { FiberConfig } from "./Fiber.ts"
2
+ import { Runic } from "./Runic.ts"
3
+ import { context } from "./state/Context.ts"
4
+
5
+ export async function run<X extends Runic>(
6
+ runic: X,
7
+ config: FiberConfig<Runic.T<X>>,
8
+ ): Promise<Runic.T<X>> {
9
+ const { promise, resolve, reject } = Promise.withResolvers<Runic.T<X>>()
10
+ if (config.signal) {
11
+ if (config.signal.aborted) {
12
+ reject(config.signal.reason)
13
+ return await promise
14
+ } else {
15
+ config.signal.addEventListener("abort", () => {
16
+ reject(config.signal?.reason)
17
+ })
18
+ }
19
+ }
20
+ queueMicrotask(() =>
21
+ context.fork(async () => {
22
+ const iterator = Runic.unwrap(runic)
23
+ let nextArg: any
24
+ try {
25
+ let current = await iterator.next(config)
26
+ while (!current.done) {
27
+ const rune = current.value
28
+ nextArg = await rune(config)
29
+ current = await iterator.next(nextArg)
30
+ }
31
+ const { value } = current
32
+ resolve(value)
33
+ } catch (reason: unknown) {
34
+ reject(reason)
35
+ }
36
+ })
37
+ )
38
+ return await promise
39
+ }
@@ -0,0 +1,19 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks"
2
+ import { StateMap } from "./StateMap"
3
+
4
+ class Context extends AsyncLocalStorage<StateMap> {
5
+ get(): StateMap {
6
+ let state = this.getStore()
7
+ if (!state) {
8
+ state = new StateMap()
9
+ this.enterWith(state)
10
+ }
11
+ return state
12
+ }
13
+
14
+ fork<T>(f: () => Promise<T>): Promise<T> {
15
+ return this.run(this.get(), f)
16
+ }
17
+ }
18
+
19
+ export const context = new Context()
@@ -0,0 +1,21 @@
1
+ import type { Message } from "../Message.ts"
2
+
3
+ // TODO: marks and tags
4
+ export class MessageRegistry {
5
+ static make(messageRegistry?: MessageRegistry) {
6
+ return new MessageRegistry(messageRegistry?.messages ? [...messageRegistry?.messages] : undefined)
7
+ }
8
+
9
+ messages: Array<Message>
10
+ constructor(messages: Iterable<Message> = []) {
11
+ this.messages = Array.from(messages)
12
+ }
13
+
14
+ clone() {
15
+ return new MessageRegistry([...this.messages])
16
+ }
17
+
18
+ append(message: Message) {
19
+ this.messages.push(message)
20
+ }
21
+ }
@@ -0,0 +1,49 @@
1
+ export class ModelConfig {
2
+ static from(config: Partial<ModelConfig>) {
3
+ return Object.assign(new ModelConfig(), config)
4
+ }
5
+
6
+ /** Seed used for deterministic sampling. */
7
+ declare seed?: number
8
+ /** Logit bias modifies the likelihood of specific tokens appearing. */
9
+ declare logitBias?: Record<string, number>
10
+ /** Sampling configuration. */
11
+ declare sampling?: SamplerConfig
12
+
13
+ /** Creates a copy of the configuration. */
14
+ clone() {
15
+ return Object.assign(new ModelConfig(), {
16
+ ...this,
17
+ logitBias: { ...this.logitBias },
18
+ sampling: {
19
+ ...this.sampling,
20
+ stopSequences: [...(this.sampling?.stopSequences ?? [])],
21
+ penalty: { ...this.sampling?.penalty },
22
+ },
23
+ })
24
+ }
25
+ }
26
+
27
+ export interface SamplerConfig {
28
+ /** The maximum number of tokens to generate. */
29
+ maxTokens?: number
30
+ /** Temperature controls randomness in generation (0.0-2.0). */
31
+ temperature?: number
32
+ /** Cumulative probability cutoff for nucleus sampling (0.0-1.0). */
33
+ topP?: number
34
+ /** The number of tokens to consider in top-k sampling. */
35
+ topk?: number
36
+ /** Stop sequences is the list of sequences to stop generation. */
37
+ stopSequences?: Array<string>
38
+ /** Penalty configuration. */
39
+ penalty?: PenaltyConfig
40
+ }
41
+
42
+ export interface PenaltyConfig {
43
+ /** Presence penalty adjusts the likelihood of token repetition (-2.0 to 2.0). */
44
+ presence?: number
45
+ /** Frequency penalty penalizes tokens based on their frequency (-2.0 to 2.0). */
46
+ frequency?: number
47
+ /** Repetition penalty range defines how many tokens back repetition penalties apply. */
48
+ repetitionRange?: number
49
+ }
@@ -0,0 +1,65 @@
1
+ import type { Model } from "../Model.ts"
2
+
3
+ /** An intrusive list for storing `Model`s. */
4
+ export class ModelRegistry {
5
+ static make(modelRegistry?: ModelRegistry) {
6
+ const instance = new ModelRegistry()
7
+ if (modelRegistry) {
8
+ for (let node = modelRegistry.head; node; node = node.next) {
9
+ instance.register(node.model)
10
+ }
11
+ }
12
+ return instance
13
+ }
14
+
15
+ declare head?: ModelRegistryNode | undefined
16
+ declare tail?: ModelRegistryNode | undefined
17
+
18
+ clone(): ModelRegistry {
19
+ const clone = new ModelRegistry()
20
+ for (let node = this?.head; node; node = node.next) {
21
+ clone.register(node.model)
22
+ }
23
+ return clone
24
+ }
25
+
26
+ peek(): Model | undefined {
27
+ return this.tail?.model
28
+ }
29
+
30
+ register(value: Model): ModelRegistryNode {
31
+ const node: ModelRegistryNode = {
32
+ prev: this.tail,
33
+ model: value,
34
+ }
35
+ if (this.tail) {
36
+ this.tail.next = node
37
+ } else {
38
+ this.head = node
39
+ }
40
+ this.tail = node
41
+ return node
42
+ }
43
+
44
+ remove(node: ModelRegistryNode): void {
45
+ if (node.prev) {
46
+ node.prev.next = node.next
47
+ }
48
+ if (node.next) {
49
+ node.next.prev = node.prev
50
+ }
51
+ if (node === this.head) {
52
+ this.head = node.next
53
+ }
54
+ if (node === this.tail) {
55
+ this.tail = node.prev
56
+ }
57
+ node.prev = node.next = undefined
58
+ }
59
+ }
60
+
61
+ export interface ModelRegistryNode {
62
+ prev: ModelRegistryNode | undefined
63
+ model: Model
64
+ next?: ModelRegistryNode | undefined
65
+ }
@@ -0,0 +1,24 @@
1
+ export class StateMap extends Map<StateFactory, Cloneable> {
2
+ clone(): StateMap {
3
+ const clone = new StateMap()
4
+ for (const [key, value] of this.entries()) {
5
+ clone.set(key, value.clone())
6
+ }
7
+ return clone
8
+ }
9
+
10
+ getOrInit<T extends Cloneable>(factory: StateFactory<T>): T {
11
+ let instance = this.get(factory)
12
+ if (!instance) {
13
+ instance = factory()
14
+ this.set(factory, instance)
15
+ }
16
+ return instance as never
17
+ }
18
+ }
19
+
20
+ export type StateFactory<T = any> = (instance?: T) => T
21
+
22
+ export interface Cloneable {
23
+ clone(): this
24
+ }
package/tsconfig.json CHANGED
@@ -4,5 +4,9 @@
4
4
  "noEmit": false,
5
5
  "outDir": "dist"
6
6
  },
7
- "include": ["."]
7
+ "include": ["."],
8
+ "references": [
9
+ { "path": "../liminal-schema" },
10
+ { "path": "../liminal-util" }
11
+ ]
8
12
  }
package/Action.ts DELETED
@@ -1,29 +0,0 @@
1
- import type { Scope } from "./Scope.ts"
2
- import type { Spec } from "./Spec.ts"
3
- import type { PromiseOr } from "./util/PromiseOr.ts"
4
-
5
- export interface Action<K extends string = string, S extends Spec = Spec> {
6
- "": S
7
- type: K
8
- [ActionKey]: true
9
- trace: string
10
- reducer(this: this, scope: Scope): PromiseOr<Scope>
11
- }
12
-
13
- export type ActionReducer<K extends string, S extends Spec> = (this: Action<K, S>, scope: Scope) => PromiseOr<Scope>
14
-
15
- export function Action<K extends string, S extends Spec>(type: K, reducer: ActionReducer<K, S>): Action<K, S> {
16
- return ({
17
- type,
18
- [ActionKey]: true,
19
- trace: new Error().stack!,
20
- reducer,
21
- } satisfies Omit<Action<K, S>, "">) as never
22
- }
23
-
24
- export type ActionKey = typeof ActionKey
25
- export const ActionKey = Symbol("Liminal/Action")
26
-
27
- export function isAction(value: unknown): value is Action {
28
- return typeof value === "object" && value !== null && ActionKey in value
29
- }
package/Exec.ts DELETED
@@ -1,51 +0,0 @@
1
- import type { Action } from "./Action.ts"
2
- import type { Agent } from "./Agent.ts"
3
- import type { EventHandler } from "./events/EventHandler.ts"
4
- import type { EventResolved, ExtractEventResolved } from "./events/EventResolved.ts"
5
- import type { LanguageModel } from "./Model.ts"
6
- import { RootScope, type Scope } from "./Scope.ts"
7
- import type { FromEntries } from "./util/FromEntries.ts"
8
- import type { JSONKey } from "./util/JSONKey.ts"
9
-
10
- export interface ExecConfig {
11
- default: LanguageModel
12
- args?: Record<JSONKey, any>
13
- signal?: AbortSignal
14
- handler?: EventHandler
15
- }
16
-
17
- export type ExtractExecConfig<Y extends Action> =
18
- & {
19
- default: LanguageModel
20
- signal?: AbortSignal
21
- handler?: EventHandler<Extract<ExtractEventResolved<Y[""]> & {}, EventResolved>>
22
- }
23
- & (
24
- [Y[""]["Entry"]] extends [never] ? {
25
- args?: undefined
26
- }
27
- : {
28
- args: FromEntries<Y[""]["Entry"]>
29
- }
30
- )
31
-
32
- export async function exec<Y extends Action, T>(
33
- createAgent: () => Agent<Y, T>,
34
- config: ExtractExecConfig<Y>,
35
- ): Promise<T> {
36
- let scope: Scope = RootScope(config as never)
37
- scope = await scope.reduce(createAgent())
38
- const { signal: { aborted, reason } } = scope.controller
39
- if (aborted) {
40
- scope.event({
41
- type: "aborted",
42
- reason,
43
- })
44
- throw reason
45
- }
46
- scope.event({
47
- type: "returned",
48
- value: scope.value,
49
- })
50
- return scope.value
51
- }
package/L.ts DELETED
@@ -1,24 +0,0 @@
1
- export * from "./_.ts"
2
- export * from "./actions/abort.ts"
3
- export * from "./actions/actions_derived/clear.ts"
4
- export * from "./actions/actions_derived/declareModel.ts"
5
- export * from "./actions/actions_derived/messages.ts"
6
- export * from "./actions/actions_derived/readers_derived.ts"
7
- export * from "./actions/appendMessage.ts"
8
- export * from "./actions/await.ts"
9
- export * from "./actions/branch.ts"
10
- export * from "./actions/catch.ts"
11
- export * from "./actions/declareArg.ts"
12
- export * from "./actions/disableTool.ts"
13
- export * from "./actions/embed.ts"
14
- export * from "./actions/emit.ts"
15
- export * from "./actions/enableTool.ts"
16
- export * from "./actions/infer.ts"
17
- export * from "./actions/messages.ts"
18
- export * from "./actions/pushModel.ts"
19
- export * from "./actions/scope.ts"
20
- export * from "./actions/section.ts"
21
- export * from "./actions/throw.ts"
22
- export * from "./types/factories.ts"
23
-
24
- export * from "./actions/actions_derived/metatype.ts"
@@ -1,3 +0,0 @@
1
- export class LiminalAssertionError extends Error {
2
- override readonly name = "LiminalAssertionError"
3
- }
package/LiminalConfig.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { ExecConfig } from "./Exec.ts"
2
-
3
- export interface LiminalConfig extends ExecConfig {
4
- agents?: string
5
- silent?: boolean
6
- write?: boolean | string
7
- }
package/PathLike.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { _ } from "./_.ts"
2
- import type { JSONKey } from "./util/JSONKey.ts"
3
-
4
- export type Path = Array<JSONKey>
5
- export declare namespace Path {
6
- export type FromPathLike<P extends PathLike> = P extends [infer E0 extends KeyLike, ...infer ERest extends PathLike]
7
- ? [E0 extends JSONKey ? E0 : JSONKey, ...FromPathLike<ERest>]
8
- : []
9
- }
10
-
11
- export type KeyLike = JSONKey | _
12
- export type PathLike = Array<KeyLike>
13
- export declare namespace PathLike {
14
- export type FromPath<P extends Path> = P extends [infer E0, ...infer ERest extends Path]
15
- ? [E0 | _, ...FromPath<ERest>]
16
- : []
17
- }
package/Scope.ts DELETED
@@ -1,152 +0,0 @@
1
- import type { Action } from "./Action.ts"
2
- import type { Agent } from "./Agent.ts"
3
- import type { EventHandler } from "./events/EventHandler.ts"
4
- import type { LEvent } from "./events/LEvent.ts"
5
- import type { ExecConfig } from "./Exec.ts"
6
- import type { Message } from "./Message.ts"
7
- import type { EmbeddingModel, LanguageModel } from "./Model.ts"
8
- import type { Tool } from "./Tool.ts"
9
- import type { JSONKey } from "./util/JSONKey.ts"
10
-
11
- export type Scope = RootScope | ChildScope
12
-
13
- export interface RootScope extends ScopeBase<RootScopeType> {}
14
- export interface ChildScope extends ScopeBase<ChildScopeType> {
15
- readonly parent: Scope
16
- }
17
-
18
- export type RootScopeType = "root"
19
- export type ChildScopeType = "catch" | "tool" | "branch" | "branch_arm" | "set_messages" | "run_section"
20
- export type ScopeType = RootScopeType | ChildScopeType
21
-
22
- export interface ScopeBase<Type extends ScopeType> {
23
- readonly type: Type
24
- readonly path: Array<JSONKey>
25
- readonly args?: Record<JSONKey, any>
26
- readonly controller: AbortController
27
- readonly messages: Set<Message>
28
- readonly tools: Set<Tool>
29
- readonly nextArg?: any
30
- readonly value: any
31
- readonly thrown?: any
32
- readonly languageModels: Set<LanguageModel>
33
- readonly embeddingModels: Set<EmbeddingModel>
34
- readonly handler?: EventHandler
35
- readonly childForkCounts: Record<JSONKey, number>
36
- readonly index: number
37
- readonly sections: Set<Section>
38
-
39
- reduce(agent: Agent): Promise<Scope>
40
- fork(
41
- source: ChildScopeType,
42
- subpath: Array<JSONKey>,
43
- overrides?: Partial<ChildScope>,
44
- ): Scope
45
- event(event: LEvent): void
46
- }
47
-
48
- export interface Section {
49
- sectionKey: JSONKey
50
- messages: Set<Message>
51
- }
52
-
53
- export function RootScope({
54
- signal,
55
- args,
56
- handler,
57
- default: defaultLanguageModel,
58
- }: ExecConfig): RootScope {
59
- const controller = new AbortController()
60
- signal?.addEventListener("abort", () => {
61
- controller.abort()
62
- })
63
- return {
64
- type: "root",
65
- args,
66
- controller,
67
- messages: new Set(),
68
- tools: new Set(),
69
- value: undefined,
70
- path: [],
71
- languageModels: new Set([defaultLanguageModel]),
72
- embeddingModels: new Set(),
73
- childForkCounts: {},
74
- sections: new Set(),
75
- index: 0,
76
- reduce,
77
- fork,
78
- handler,
79
- event,
80
- }
81
- }
82
-
83
- async function reduce(this: Scope, agent: Agent): Promise<Scope> {
84
- const { signal } = this.controller
85
- let scope = { ...this }
86
- if (signal.aborted) return scope
87
- let value: unknown
88
- try {
89
- let current = await agent.next()
90
- while (!current.done) {
91
- const { value } = current
92
- if (signal.aborted) return scope
93
- scope = await (value as Action).reducer(scope)
94
- if (signal.aborted) return scope
95
- current = await agent.next(scope.nextArg)
96
- }
97
- value = current.value
98
- } catch (thrown: unknown) {
99
- scope.controller.abort(thrown)
100
- }
101
- return {
102
- ...scope,
103
- value,
104
- nextArg: undefined,
105
- }
106
- }
107
-
108
- function fork(
109
- this: Scope,
110
- type: ChildScopeType,
111
- subpath: Array<JSONKey>,
112
- overrides?: Partial<ChildScope>,
113
- ): ChildScope {
114
- const subpathStr = subpath.join(" ")
115
- let index = this.childForkCounts[subpathStr]
116
- if (typeof index === "number") {
117
- this.childForkCounts[subpathStr]! += 1
118
- } else {
119
- index = 0
120
- this.childForkCounts[subpathStr] = 1
121
- }
122
- const f: ChildScope = {
123
- type,
124
- controller: this.controller,
125
- args: this.args,
126
- messages: new Set(this.messages),
127
- tools: new Set(),
128
- languageModels: new Set(this.languageModels),
129
- embeddingModels: new Set(this.embeddingModels),
130
- childForkCounts: {},
131
- handler: this.handler,
132
- path: [...this.path, ...subpath],
133
- parent: this,
134
- value: undefined,
135
- index,
136
- sections: new Set(this.sections),
137
- reduce,
138
- fork,
139
- event,
140
- ...overrides ?? {},
141
- }
142
- f.event({ type: "forked" })
143
- return f
144
- }
145
-
146
- function event(this: ChildScope, event: LEvent): void {
147
- this.handler?.({
148
- scope: this.path,
149
- index: this.index,
150
- ...event,
151
- })
152
- }
package/Spec.ts DELETED
@@ -1,29 +0,0 @@
1
- import type { LEvent } from "./events/LEvent.ts"
2
- import type { Expand } from "./util/Expand.ts"
3
- import type { JSONEntry } from "./util/JSONEntry.ts"
4
- import type { JSONKey } from "./util/JSONKey.ts"
5
-
6
- export interface Spec<
7
- Key extends JSONKey = JSONKey,
8
- Event extends LEvent = LEvent,
9
- Spec_ extends Spec = any,
10
- Entry_ extends JSONEntry = JSONEntry,
11
- Throw = any,
12
- Value = any,
13
- > {
14
- Event: Event
15
- Child: [Key, Spec_]
16
- Entry: Entry_
17
- Throw: Throw
18
- Value: Value
19
- }
20
-
21
- export declare namespace Spec {
22
- export type Make<P extends Partial<Spec>> = Expand<{
23
- Event: [unknown] extends [P["Event"]] ? never : P["Event"]
24
- Child: [unknown] extends [P["Child"]] ? never : P["Child"]
25
- Throw: [unknown] extends [P["Throw"]] ? never : P["Throw"]
26
- Entry: [unknown] extends [P["Entry"]] ? never : P["Entry"]
27
- Value: [unknown] extends [P["Value"]] ? never : P["Value"]
28
- }>
29
- }