liminal 0.5.2 → 0.5.3

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 (669) hide show
  1. package/Agent.ts +25 -7
  2. package/CHANGELOG.md +10 -0
  3. package/Fiber.ts +117 -0
  4. package/Globals.ts +10 -0
  5. package/Handler.ts +0 -0
  6. package/L/L.ts +13 -0
  7. package/L/_infer.ts +35 -0
  8. package/L/_message.ts +18 -0
  9. package/L/all.ts +11 -0
  10. package/L/assistant.ts +34 -0
  11. package/L/branch.ts +45 -0
  12. package/L/emit.ts +11 -0
  13. package/L/fork.ts +18 -0
  14. package/L/join.ts +9 -0
  15. package/L/model.ts +11 -0
  16. package/L/namespace.ts +11 -0
  17. package/L/rune.ts +19 -0
  18. package/L/self.ts +13 -0
  19. package/L/state.ts +20 -0
  20. package/L/system.ts +13 -0
  21. package/L/user.ts +13 -0
  22. package/LEvent.ts +35 -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 +15 -1
  30. package/dist/Agent.js.map +1 -1
  31. package/dist/Fiber.d.ts +38 -0
  32. package/dist/Fiber.js +79 -0
  33. package/dist/Fiber.js.map +1 -0
  34. package/dist/Globals.d.ts +7 -0
  35. package/dist/Globals.js +2 -0
  36. package/dist/Globals.js.map +1 -0
  37. package/dist/Handler.js +2 -0
  38. package/dist/Handler.js.map +1 -0
  39. package/dist/L/L.d.ts +13 -0
  40. package/dist/L/L.js +14 -0
  41. package/dist/L/L.js.map +1 -0
  42. package/dist/L/_infer.d.ts +4 -0
  43. package/dist/L/_infer.js +29 -0
  44. package/dist/L/_infer.js.map +1 -0
  45. package/dist/L/_message.d.ts +6 -0
  46. package/dist/L/_message.js +14 -0
  47. package/dist/L/_message.js.map +1 -0
  48. package/dist/L/all.d.ts +7 -0
  49. package/dist/L/all.js +5 -0
  50. package/dist/L/all.js.map +1 -0
  51. package/dist/L/assistant.d.ts +7 -0
  52. package/dist/L/assistant.js +23 -0
  53. package/dist/L/assistant.js.map +1 -0
  54. package/dist/L/branch.d.ts +11 -0
  55. package/dist/L/branch.js +32 -0
  56. package/dist/L/branch.js.map +1 -0
  57. package/dist/L/emit.d.ts +5 -0
  58. package/dist/L/emit.js +7 -0
  59. package/dist/L/emit.js.map +1 -0
  60. package/dist/L/fork.d.ts +7 -0
  61. package/dist/L/fork.js +11 -0
  62. package/dist/L/fork.js.map +1 -0
  63. package/dist/L/join.d.ts +5 -0
  64. package/dist/L/join.js +5 -0
  65. package/dist/L/join.js.map +1 -0
  66. package/dist/L/model.d.ts +5 -0
  67. package/dist/L/model.js +7 -0
  68. package/dist/L/model.js.map +1 -0
  69. package/dist/L/namespace.js +12 -0
  70. package/dist/L/namespace.js.map +1 -0
  71. package/dist/L/rune.d.ts +6 -0
  72. package/dist/L/rune.js +11 -0
  73. package/dist/L/rune.js.map +1 -0
  74. package/dist/L/self.d.ts +6 -0
  75. package/dist/L/self.js +7 -0
  76. package/dist/L/self.js.map +1 -0
  77. package/dist/L/state.d.ts +7 -0
  78. package/dist/L/state.js +14 -0
  79. package/dist/L/state.js.map +1 -0
  80. package/dist/L/system.d.ts +6 -0
  81. package/dist/L/system.js +7 -0
  82. package/dist/L/system.js.map +1 -0
  83. package/dist/L/user.d.ts +6 -0
  84. package/dist/L/user.js +7 -0
  85. package/dist/L/user.js.map +1 -0
  86. package/dist/LEvent.d.ts +28 -0
  87. package/dist/LEvent.js +5 -0
  88. package/dist/LEvent.js.map +1 -0
  89. package/dist/Message.d.ts +12 -81
  90. package/dist/Model.d.ts +4 -20
  91. package/dist/Model.js +6 -0
  92. package/dist/Model.js.map +1 -1
  93. package/dist/Rune.d.ts +11 -0
  94. package/dist/Rune.js +5 -0
  95. package/dist/Rune.js.map +1 -0
  96. package/dist/Runic.d.ts +9 -0
  97. package/dist/Runic.js +18 -0
  98. package/dist/Runic.js.map +1 -0
  99. package/dist/cli/main.d.ts +0 -1
  100. package/dist/cli/main.js +2 -19
  101. package/dist/cli/main.js.map +1 -1
  102. package/dist/index.d.ts +9 -39
  103. package/dist/index.js +9 -39
  104. package/dist/index.js.map +1 -1
  105. package/dist/state/Counter.d.ts +6 -0
  106. package/dist/state/Counter.js +13 -0
  107. package/dist/state/Counter.js.map +1 -0
  108. package/dist/state/DefaultStateMap.d.ts +4 -0
  109. package/dist/state/DefaultStateMap.js +14 -0
  110. package/dist/state/DefaultStateMap.js.map +1 -0
  111. package/dist/state/MessageRegistry.d.ts +7 -0
  112. package/dist/state/MessageRegistry.js +14 -0
  113. package/dist/state/MessageRegistry.js.map +1 -0
  114. package/dist/state/ModelConfig.d.ts +49 -0
  115. package/dist/state/ModelConfig.js +18 -0
  116. package/dist/state/ModelConfig.js.map +1 -0
  117. package/dist/state/ModelRegistry.d.ts +15 -0
  118. package/dist/state/ModelRegistry.js +43 -0
  119. package/dist/state/ModelRegistry.js.map +1 -0
  120. package/dist/state/StateMap.d.ts +7 -0
  121. package/dist/state/StateMap.js +10 -0
  122. package/dist/state/StateMap.js.map +1 -0
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/index.ts +9 -39
  125. package/package.json +6 -9
  126. package/state/Counter.ts +11 -0
  127. package/state/DefaultStateMap.ts +14 -0
  128. package/state/MessageRegistry.ts +17 -0
  129. package/state/ModelConfig.ts +49 -0
  130. package/state/ModelRegistry.ts +55 -0
  131. package/state/StateMap.ts +15 -0
  132. package/tsconfig.json +5 -1
  133. package/Action.ts +0 -29
  134. package/Exec.ts +0 -51
  135. package/L.ts +0 -24
  136. package/LiminalAssertionError.ts +0 -3
  137. package/LiminalConfig.ts +0 -7
  138. package/PathLike.ts +0 -17
  139. package/Scope.ts +0 -152
  140. package/Spec.ts +0 -29
  141. package/Tool.ts +0 -58
  142. package/_.ts +0 -11
  143. package/actions/abort.ts +0 -23
  144. package/actions/actions_common/updateModels.ts +0 -23
  145. package/actions/actions_derived/__snapshots__/declareModel.test.ts.snap +0 -89
  146. package/actions/actions_derived/clear.ts +0 -6
  147. package/actions/actions_derived/declareModel.test.ts +0 -36
  148. package/actions/actions_derived/declareModel.ts +0 -9
  149. package/actions/actions_derived/declareModel.type-test.ts +0 -70
  150. package/actions/actions_derived/messages.test.ts +0 -88
  151. package/actions/actions_derived/messages.ts +0 -18
  152. package/actions/actions_derived/metatype.ts +0 -9
  153. package/actions/actions_derived/readers_derived.ts +0 -15
  154. package/actions/appendMessage.ts +0 -54
  155. package/actions/await.ts +0 -13
  156. package/actions/branch.ts +0 -106
  157. package/actions/catch.ts +0 -42
  158. package/actions/declareArg.ts +0 -14
  159. package/actions/disableTool.ts +0 -26
  160. package/actions/embed.ts +0 -29
  161. package/actions/emit.ts +0 -21
  162. package/actions/enableTool.ts +0 -75
  163. package/actions/enableTool.type-test.ts +0 -118
  164. package/actions/infer.ts +0 -49
  165. package/actions/messages.ts +0 -62
  166. package/actions/pushModel.ts +0 -52
  167. package/actions/scope.ts +0 -13
  168. package/actions/section.ts +0 -105
  169. package/actions/throw.ts +0 -18
  170. package/cli/WriteHandler.ts +0 -35
  171. package/cli/cli_common.ts +0 -4
  172. package/cli/runExec.ts +0 -72
  173. package/dist/Action.d.ts +0 -15
  174. package/dist/Action.js +0 -13
  175. package/dist/Action.js.map +0 -1
  176. package/dist/Exec.d.ts +0 -25
  177. package/dist/Exec.js +0 -19
  178. package/dist/Exec.js.map +0 -1
  179. package/dist/L.d.ts +0 -23
  180. package/dist/L.js +0 -24
  181. package/dist/L.js.map +0 -1
  182. package/dist/LiminalAssertionError.d.ts +0 -3
  183. package/dist/LiminalAssertionError.js +0 -4
  184. package/dist/LiminalAssertionError.js.map +0 -1
  185. package/dist/LiminalConfig.d.ts +0 -6
  186. package/dist/LiminalConfig.js +0 -2
  187. package/dist/LiminalConfig.js.map +0 -1
  188. package/dist/PathLike.d.ts +0 -11
  189. package/dist/PathLike.js +0 -2
  190. package/dist/PathLike.js.map +0 -1
  191. package/dist/Scope.d.ts +0 -42
  192. package/dist/Scope.js +0 -93
  193. package/dist/Scope.js.map +0 -1
  194. package/dist/Spec.d.ts +0 -20
  195. package/dist/Spec.js +0 -2
  196. package/dist/Spec.js.map +0 -1
  197. package/dist/Tool.d.ts +0 -21
  198. package/dist/Tool.js +0 -32
  199. package/dist/Tool.js.map +0 -1
  200. package/dist/_.d.ts +0 -5
  201. package/dist/_.js +0 -7
  202. package/dist/_.js.map +0 -1
  203. package/dist/actions/abort.d.ts +0 -9
  204. package/dist/actions/abort.js +0 -15
  205. package/dist/actions/abort.js.map +0 -1
  206. package/dist/actions/actions_common/updateModels.d.ts +0 -3
  207. package/dist/actions/actions_common/updateModels.js +0 -17
  208. package/dist/actions/actions_common/updateModels.js.map +0 -1
  209. package/dist/actions/actions_derived/clear.d.ts +0 -8
  210. package/dist/actions/actions_derived/clear.js +0 -5
  211. package/dist/actions/actions_derived/clear.js.map +0 -1
  212. package/dist/actions/actions_derived/declareModel.d.ts +0 -5
  213. package/dist/actions/actions_derived/declareModel.js +0 -7
  214. package/dist/actions/actions_derived/declareModel.js.map +0 -1
  215. package/dist/actions/actions_derived/declareModel.test.js +0 -35
  216. package/dist/actions/actions_derived/declareModel.test.js.map +0 -1
  217. package/dist/actions/actions_derived/declareModel.type-test.js +0 -66
  218. package/dist/actions/actions_derived/declareModel.type-test.js.map +0 -1
  219. package/dist/actions/actions_derived/messages.d.ts +0 -6
  220. package/dist/actions/actions_derived/messages.js +0 -15
  221. package/dist/actions/actions_derived/messages.js.map +0 -1
  222. package/dist/actions/actions_derived/messages.test.d.ts +0 -1
  223. package/dist/actions/actions_derived/messages.test.js +0 -72
  224. package/dist/actions/actions_derived/messages.test.js.map +0 -1
  225. package/dist/actions/actions_derived/metatype.d.ts +0 -9
  226. package/dist/actions/actions_derived/metatype.js +0 -7
  227. package/dist/actions/actions_derived/metatype.js.map +0 -1
  228. package/dist/actions/actions_derived/readers_derived.d.ts +0 -6
  229. package/dist/actions/actions_derived/readers_derived.js +0 -14
  230. package/dist/actions/actions_derived/readers_derived.js.map +0 -1
  231. package/dist/actions/appendMessage.d.ts +0 -14
  232. package/dist/actions/appendMessage.js +0 -41
  233. package/dist/actions/appendMessage.js.map +0 -1
  234. package/dist/actions/await.d.ts +0 -5
  235. package/dist/actions/await.js +0 -10
  236. package/dist/actions/await.js.map +0 -1
  237. package/dist/actions/branch.d.ts +0 -39
  238. package/dist/actions/branch.js +0 -40
  239. package/dist/actions/branch.js.map +0 -1
  240. package/dist/actions/catch.d.ts +0 -10
  241. package/dist/actions/catch.js +0 -27
  242. package/dist/actions/catch.js.map +0 -1
  243. package/dist/actions/declareArg.d.ts +0 -8
  244. package/dist/actions/declareArg.js +0 -10
  245. package/dist/actions/declareArg.js.map +0 -1
  246. package/dist/actions/disableTool.d.ts +0 -10
  247. package/dist/actions/disableTool.js +0 -17
  248. package/dist/actions/disableTool.js.map +0 -1
  249. package/dist/actions/embed.d.ts +0 -9
  250. package/dist/actions/embed.js +0 -24
  251. package/dist/actions/embed.js.map +0 -1
  252. package/dist/actions/emit.d.ts +0 -9
  253. package/dist/actions/emit.js +0 -14
  254. package/dist/actions/emit.js.map +0 -1
  255. package/dist/actions/enableTool.d.ts +0 -20
  256. package/dist/actions/enableTool.js +0 -26
  257. package/dist/actions/enableTool.js.map +0 -1
  258. package/dist/actions/enableTool.type-test.d.ts +0 -1
  259. package/dist/actions/enableTool.type-test.js +0 -30
  260. package/dist/actions/enableTool.type-test.js.map +0 -1
  261. package/dist/actions/infer.d.ts +0 -15
  262. package/dist/actions/infer.js +0 -29
  263. package/dist/actions/infer.js.map +0 -1
  264. package/dist/actions/messages.d.ts +0 -24
  265. package/dist/actions/messages.js +0 -35
  266. package/dist/actions/messages.js.map +0 -1
  267. package/dist/actions/pushModel.d.ts +0 -15
  268. package/dist/actions/pushModel.js +0 -36
  269. package/dist/actions/pushModel.js.map +0 -1
  270. package/dist/actions/scope.d.ts +0 -7
  271. package/dist/actions/scope.js +0 -10
  272. package/dist/actions/scope.js.map +0 -1
  273. package/dist/actions/section.d.ts +0 -23
  274. package/dist/actions/section.js +0 -64
  275. package/dist/actions/section.js.map +0 -1
  276. package/dist/actions/throw.d.ts +0 -9
  277. package/dist/actions/throw.js +0 -13
  278. package/dist/actions/throw.js.map +0 -1
  279. package/dist/cli/WriteHandler.d.ts +0 -9
  280. package/dist/cli/WriteHandler.js +0 -24
  281. package/dist/cli/WriteHandler.js.map +0 -1
  282. package/dist/cli/cli_common.d.ts +0 -4
  283. package/dist/cli/cli_common.js +0 -2
  284. package/dist/cli/cli_common.js.map +0 -1
  285. package/dist/cli/runExec.d.ts +0 -2
  286. package/dist/cli/runExec.js +0 -74
  287. package/dist/cli/runExec.js.map +0 -1
  288. package/dist/events/Aborted.d.ts +0 -4
  289. package/dist/events/Aborted.js +0 -2
  290. package/dist/events/Aborted.js.map +0 -1
  291. package/dist/events/Embedded.d.ts +0 -5
  292. package/dist/events/Embedded.js +0 -2
  293. package/dist/events/Embedded.js.map +0 -1
  294. package/dist/events/EmbeddingRequested.d.ts +0 -4
  295. package/dist/events/EmbeddingRequested.js +0 -2
  296. package/dist/events/EmbeddingRequested.js.map +0 -1
  297. package/dist/events/Emitted.d.ts +0 -4
  298. package/dist/events/Emitted.js +0 -2
  299. package/dist/events/Emitted.js.map +0 -1
  300. package/dist/events/EventBase.d.ts +0 -3
  301. package/dist/events/EventBase.js +0 -2
  302. package/dist/events/EventBase.js.map +0 -1
  303. package/dist/events/EventHandler.d.ts +0 -2
  304. package/dist/events/EventHandler.js +0 -2
  305. package/dist/events/EventHandler.js.map +0 -1
  306. package/dist/events/EventResolved.d.ts +0 -19
  307. package/dist/events/EventResolved.js +0 -2
  308. package/dist/events/EventResolved.js.map +0 -1
  309. package/dist/events/Forked.d.ts +0 -3
  310. package/dist/events/Forked.js +0 -2
  311. package/dist/events/Forked.js.map +0 -1
  312. package/dist/events/InferenceRequested.d.ts +0 -3
  313. package/dist/events/InferenceRequested.js +0 -2
  314. package/dist/events/InferenceRequested.js.map +0 -1
  315. package/dist/events/Inferred.d.ts +0 -5
  316. package/dist/events/Inferred.js +0 -2
  317. package/dist/events/Inferred.js.map +0 -1
  318. package/dist/events/LEvent.d.ts +0 -20
  319. package/dist/events/LEvent.js +0 -2
  320. package/dist/events/LEvent.js.map +0 -1
  321. package/dist/events/MessageAppended.d.ts +0 -5
  322. package/dist/events/MessageAppended.js +0 -2
  323. package/dist/events/MessageAppended.js.map +0 -1
  324. package/dist/events/MessageRemoved.d.ts +0 -5
  325. package/dist/events/MessageRemoved.js +0 -2
  326. package/dist/events/MessageRemoved.js.map +0 -1
  327. package/dist/events/MessagesSet.d.ts +0 -5
  328. package/dist/events/MessagesSet.js +0 -2
  329. package/dist/events/MessagesSet.js.map +0 -1
  330. package/dist/events/ModelPushed.d.ts +0 -7
  331. package/dist/events/ModelPushed.js +0 -2
  332. package/dist/events/ModelPushed.js.map +0 -1
  333. package/dist/events/ModelRemoved.d.ts +0 -7
  334. package/dist/events/ModelRemoved.js +0 -2
  335. package/dist/events/ModelRemoved.js.map +0 -1
  336. package/dist/events/Returned.d.ts +0 -4
  337. package/dist/events/Returned.js +0 -2
  338. package/dist/events/Returned.js.map +0 -1
  339. package/dist/events/SectionCleared.d.ts +0 -5
  340. package/dist/events/SectionCleared.js +0 -2
  341. package/dist/events/SectionCleared.js.map +0 -1
  342. package/dist/events/Sectioned.d.ts +0 -5
  343. package/dist/events/Sectioned.js +0 -2
  344. package/dist/events/Sectioned.js.map +0 -1
  345. package/dist/events/Threw.d.ts +0 -4
  346. package/dist/events/Threw.js +0 -2
  347. package/dist/events/Threw.js.map +0 -1
  348. package/dist/events/ToolCalled.d.ts +0 -6
  349. package/dist/events/ToolCalled.js +0 -2
  350. package/dist/events/ToolCalled.js.map +0 -1
  351. package/dist/events/ToolDisabled.d.ts +0 -5
  352. package/dist/events/ToolDisabled.js +0 -2
  353. package/dist/events/ToolDisabled.js.map +0 -1
  354. package/dist/events/ToolEnabled.d.ts +0 -7
  355. package/dist/events/ToolEnabled.js +0 -2
  356. package/dist/events/ToolEnabled.js.map +0 -1
  357. package/dist/events/isScopeChildEvent.d.ts +0 -6
  358. package/dist/events/isScopeChildEvent.js +0 -9
  359. package/dist/events/isScopeChildEvent.js.map +0 -1
  360. package/dist/events/isScopeDescendantEvent.d.ts +0 -14
  361. package/dist/events/isScopeDescendantEvent.js +0 -12
  362. package/dist/events/isScopeDescendantEvent.js.map +0 -1
  363. package/dist/testing/AgentAssertions.d.ts +0 -9
  364. package/dist/testing/AgentAssertions.js +0 -6
  365. package/dist/testing/AgentAssertions.js.map +0 -1
  366. package/dist/testing/TestEmbeddingModel.d.ts +0 -6
  367. package/dist/testing/TestEmbeddingModel.js +0 -11
  368. package/dist/testing/TestEmbeddingModel.js.map +0 -1
  369. package/dist/testing/TestLanguageModel.d.ts +0 -8
  370. package/dist/testing/TestLanguageModel.js +0 -22
  371. package/dist/testing/TestLanguageModel.js.map +0 -1
  372. package/dist/testing/index.d.ts +0 -4
  373. package/dist/testing/index.js +0 -5
  374. package/dist/testing/index.js.map +0 -1
  375. package/dist/testing/takeFirstAction.d.ts +0 -3
  376. package/dist/testing/takeFirstAction.js +0 -6
  377. package/dist/testing/takeFirstAction.js.map +0 -1
  378. package/dist/types/AssertDiagnostics.d.ts +0 -18
  379. package/dist/types/AssertDiagnostics.js +0 -152
  380. package/dist/types/AssertDiagnostics.js.map +0 -1
  381. package/dist/types/JSONRootType.d.ts +0 -6
  382. package/dist/types/JSONRootType.js +0 -2
  383. package/dist/types/JSONRootType.js.map +0 -1
  384. package/dist/types/JSONType.d.ts +0 -16
  385. package/dist/types/JSONType.js +0 -2
  386. package/dist/types/JSONType.js.map +0 -1
  387. package/dist/types/JSONTypeBase.d.ts +0 -3
  388. package/dist/types/JSONTypeBase.js +0 -2
  389. package/dist/types/JSONTypeBase.js.map +0 -1
  390. package/dist/types/Metatype/MetatypeDescriptor.d.ts +0 -41
  391. package/dist/types/Metatype/MetatypeDescriptor.js +0 -38
  392. package/dist/types/Metatype/MetatypeDescriptor.js.map +0 -1
  393. package/dist/types/Metatype/fromMetatypeDescriptor.d.ts +0 -6
  394. package/dist/types/Metatype/fromMetatypeDescriptor.js +0 -43
  395. package/dist/types/Metatype/fromMetatypeDescriptor.js.map +0 -1
  396. package/dist/types/Type.d.ts +0 -31
  397. package/dist/types/Type.js +0 -5
  398. package/dist/types/Type.js.map +0 -1
  399. package/dist/types/TypeContext.d.ts +0 -7
  400. package/dist/types/TypeContext.js +0 -17
  401. package/dist/types/TypeContext.js.map +0 -1
  402. package/dist/types/TypeLike.d.ts +0 -23
  403. package/dist/types/TypeLike.js +0 -23
  404. package/dist/types/TypeLike.js.map +0 -1
  405. package/dist/types/TypeVisitor.d.ts +0 -14
  406. package/dist/types/TypeVisitor.js +0 -12
  407. package/dist/types/TypeVisitor.js.map +0 -1
  408. package/dist/types/array.d.ts +0 -10
  409. package/dist/types/array.js +0 -9
  410. package/dist/types/array.js.map +0 -1
  411. package/dist/types/boolean.d.ts +0 -6
  412. package/dist/types/boolean.js +0 -3
  413. package/dist/types/boolean.js.map +0 -1
  414. package/dist/types/const.d.ts +0 -8
  415. package/dist/types/const.js +0 -7
  416. package/dist/types/const.js.map +0 -1
  417. package/dist/types/enum.d.ts +0 -8
  418. package/dist/types/enum.js +0 -7
  419. package/dist/types/enum.js.map +0 -1
  420. package/dist/types/factories.d.ts +0 -8
  421. package/dist/types/factories.js +0 -9
  422. package/dist/types/factories.js.map +0 -1
  423. package/dist/types/index.d.ts +0 -2
  424. package/dist/types/index.js +0 -3
  425. package/dist/types/index.js.map +0 -1
  426. package/dist/types/integer.d.ts +0 -6
  427. package/dist/types/integer.js +0 -3
  428. package/dist/types/integer.js.map +0 -1
  429. package/dist/types/intrinsics.d.ts +0 -11
  430. package/dist/types/intrinsics.js +0 -12
  431. package/dist/types/intrinsics.js.map +0 -1
  432. package/dist/types/makeType.d.ts +0 -2
  433. package/dist/types/makeType.js +0 -58
  434. package/dist/types/makeType.js.map +0 -1
  435. package/dist/types/match.d.ts +0 -3
  436. package/dist/types/match.js +0 -11
  437. package/dist/types/match.js.map +0 -1
  438. package/dist/types/non_factories.d.ts +0 -21
  439. package/dist/types/non_factories.js +0 -9
  440. package/dist/types/non_factories.js.map +0 -1
  441. package/dist/types/null.d.ts +0 -7
  442. package/dist/types/null.js +0 -4
  443. package/dist/types/null.js.map +0 -1
  444. package/dist/types/number.d.ts +0 -6
  445. package/dist/types/number.js +0 -3
  446. package/dist/types/number.js.map +0 -1
  447. package/dist/types/object.d.ts +0 -16
  448. package/dist/types/object.js +0 -10
  449. package/dist/types/object.js.map +0 -1
  450. package/dist/types/ref.d.ts +0 -7
  451. package/dist/types/ref.js +0 -5
  452. package/dist/types/ref.js.map +0 -1
  453. package/dist/types/string.d.ts +0 -6
  454. package/dist/types/string.js +0 -3
  455. package/dist/types/string.js.map +0 -1
  456. package/dist/types/toJSON.d.ts +0 -5
  457. package/dist/types/toJSON.js +0 -97
  458. package/dist/types/toJSON.js.map +0 -1
  459. package/dist/types/type_common.d.ts +0 -10
  460. package/dist/types/type_common.js +0 -12
  461. package/dist/types/type_common.js.map +0 -1
  462. package/dist/types/types_derived/option.d.ts +0 -5
  463. package/dist/types/types_derived/option.js +0 -6
  464. package/dist/types/types_derived/option.js.map +0 -1
  465. package/dist/types/types_derived/taggedUnion.d.ts +0 -19
  466. package/dist/types/types_derived/taggedUnion.js +0 -8
  467. package/dist/types/types_derived/taggedUnion.js.map +0 -1
  468. package/dist/types/types_derived/wrapper.d.ts +0 -8
  469. package/dist/types/types_derived/wrapper.js +0 -5
  470. package/dist/types/types_derived/wrapper.js.map +0 -1
  471. package/dist/types/union.d.ts +0 -9
  472. package/dist/types/union.js +0 -9
  473. package/dist/types/union.js.map +0 -1
  474. package/dist/util/ArrayOfLength.d.ts +0 -1
  475. package/dist/util/ArrayOfLength.js +0 -2
  476. package/dist/util/ArrayOfLength.js.map +0 -1
  477. package/dist/util/DeferredOr.d.ts +0 -1
  478. package/dist/util/DeferredOr.js +0 -2
  479. package/dist/util/DeferredOr.js.map +0 -1
  480. package/dist/util/EnsureNarrow.d.ts +0 -2
  481. package/dist/util/EnsureNarrow.js +0 -2
  482. package/dist/util/EnsureNarrow.js.map +0 -1
  483. package/dist/util/EnsureRecord.d.ts +0 -2
  484. package/dist/util/EnsureRecord.js +0 -2
  485. package/dist/util/EnsureRecord.js.map +0 -1
  486. package/dist/util/Expand.d.ts +0 -3
  487. package/dist/util/Expand.js +0 -2
  488. package/dist/util/Expand.js.map +0 -1
  489. package/dist/util/Falsy.d.ts +0 -1
  490. package/dist/util/Falsy.js +0 -2
  491. package/dist/util/Falsy.js.map +0 -1
  492. package/dist/util/FromEntries.d.ts +0 -3
  493. package/dist/util/FromEntries.js +0 -2
  494. package/dist/util/FromEntries.js.map +0 -1
  495. package/dist/util/IteratorLike.d.ts +0 -1
  496. package/dist/util/IteratorLike.js +0 -2
  497. package/dist/util/IteratorLike.js.map +0 -1
  498. package/dist/util/JSONEntry.d.ts +0 -2
  499. package/dist/util/JSONEntry.js +0 -2
  500. package/dist/util/JSONEntry.js.map +0 -1
  501. package/dist/util/JSONKey.d.ts +0 -1
  502. package/dist/util/JSONKey.js +0 -2
  503. package/dist/util/JSONKey.js.map +0 -1
  504. package/dist/util/JSONObject.d.ts +0 -5
  505. package/dist/util/JSONObject.js +0 -2
  506. package/dist/util/JSONObject.js.map +0 -1
  507. package/dist/util/JSONSchemaMemo.d.ts +0 -2
  508. package/dist/util/JSONSchemaMemo.js +0 -13
  509. package/dist/util/JSONSchemaMemo.js.map +0 -1
  510. package/dist/util/JSONValue.d.ts +0 -2
  511. package/dist/util/JSONValue.js +0 -2
  512. package/dist/util/JSONValue.js.map +0 -1
  513. package/dist/util/PromiseOr.d.ts +0 -1
  514. package/dist/util/PromiseOr.js +0 -2
  515. package/dist/util/PromiseOr.js.map +0 -1
  516. package/dist/util/Result.d.ts +0 -7
  517. package/dist/util/Result.js +0 -2
  518. package/dist/util/Result.js.map +0 -1
  519. package/dist/util/Taggable.d.ts +0 -9
  520. package/dist/util/Taggable.js +0 -8
  521. package/dist/util/Taggable.js.map +0 -1
  522. package/dist/util/TupleToRecord.d.ts +0 -5
  523. package/dist/util/TupleToRecord.js +0 -2
  524. package/dist/util/TupleToRecord.js.map +0 -1
  525. package/dist/util/assert.d.ts +0 -1
  526. package/dist/util/assert.js +0 -7
  527. package/dist/util/assert.js.map +0 -1
  528. package/dist/util/dedent.d.ts +0 -1
  529. package/dist/util/dedent.js +0 -5
  530. package/dist/util/dedent.js.map +0 -1
  531. package/dist/util/fixTemplateStrings.d.ts +0 -11
  532. package/dist/util/fixTemplateStrings.js +0 -83
  533. package/dist/util/fixTemplateStrings.js.map +0 -1
  534. package/dist/util/fixTemplateStrings.test.d.ts +0 -1
  535. package/dist/util/fixTemplateStrings.test.js +0 -221
  536. package/dist/util/fixTemplateStrings.test.js.map +0 -1
  537. package/dist/util/isAsyncIterator.d.ts +0 -1
  538. package/dist/util/isAsyncIterator.js +0 -7
  539. package/dist/util/isAsyncIterator.js.map +0 -1
  540. package/dist/util/isIterator.d.ts +0 -1
  541. package/dist/util/isIterator.js +0 -7
  542. package/dist/util/isIterator.js.map +0 -1
  543. package/dist/util/isJSONValue.d.ts +0 -2
  544. package/dist/util/isJSONValue.js +0 -16
  545. package/dist/util/isJSONValue.js.map +0 -1
  546. package/dist/util/isPropertyKey.d.ts +0 -1
  547. package/dist/util/isPropertyKey.js +0 -4
  548. package/dist/util/isPropertyKey.js.map +0 -1
  549. package/dist/util/isTemplateStringsArray.d.ts +0 -1
  550. package/dist/util/isTemplateStringsArray.js +0 -4
  551. package/dist/util/isTemplateStringsArray.js.map +0 -1
  552. package/dist/util/jsonEquals.d.ts +0 -2
  553. package/dist/util/jsonEquals.js +0 -33
  554. package/dist/util/jsonEquals.js.map +0 -1
  555. package/dist/util/nullaryMemo.d.ts +0 -1
  556. package/dist/util/nullaryMemo.js +0 -12
  557. package/dist/util/nullaryMemo.js.map +0 -1
  558. package/dist/util/peekLast.d.ts +0 -1
  559. package/dist/util/peekLast.js +0 -4
  560. package/dist/util/peekLast.js.map +0 -1
  561. package/dist/util/unimplemented.d.ts +0 -1
  562. package/dist/util/unimplemented.js +0 -5
  563. package/dist/util/unimplemented.js.map +0 -1
  564. package/dist/util/unreachable.d.ts +0 -1
  565. package/dist/util/unreachable.js +0 -5
  566. package/dist/util/unreachable.js.map +0 -1
  567. package/dist/util/unwrapDeferred.d.ts +0 -2
  568. package/dist/util/unwrapDeferred.js +0 -4
  569. package/dist/util/unwrapDeferred.js.map +0 -1
  570. package/dist/util/util.d.ts +0 -10
  571. package/dist/util/util.js +0 -11
  572. package/dist/util/util.js.map +0 -1
  573. package/events/Aborted.ts +0 -5
  574. package/events/Embedded.ts +0 -6
  575. package/events/EmbeddingRequested.ts +0 -5
  576. package/events/Emitted.ts +0 -5
  577. package/events/EventBase.ts +0 -3
  578. package/events/EventHandler.ts +0 -3
  579. package/events/EventResolved.ts +0 -30
  580. package/events/Forked.ts +0 -3
  581. package/events/InferenceRequested.ts +0 -3
  582. package/events/Inferred.ts +0 -6
  583. package/events/LEvent.ts +0 -40
  584. package/events/MessageAppended.ts +0 -6
  585. package/events/MessageRemoved.ts +0 -6
  586. package/events/MessagesSet.ts +0 -6
  587. package/events/ModelPushed.ts +0 -10
  588. package/events/ModelRemoved.ts +0 -10
  589. package/events/Returned.ts +0 -5
  590. package/events/SectionCleared.ts +0 -6
  591. package/events/Sectioned.ts +0 -6
  592. package/events/Threw.ts +0 -5
  593. package/events/ToolCalled.ts +0 -7
  594. package/events/ToolDisabled.ts +0 -6
  595. package/events/ToolEnabled.ts +0 -8
  596. package/events/isScopeChildEvent.ts +0 -15
  597. package/events/isScopeDescendantEvent.ts +0 -30
  598. package/testing/AgentAssertions.ts +0 -17
  599. package/testing/TestEmbeddingModel.ts +0 -19
  600. package/testing/TestLanguageModel.ts +0 -33
  601. package/testing/index.ts +0 -4
  602. package/testing/takeFirstAction.ts +0 -8
  603. package/types/AssertDiagnostics.ts +0 -183
  604. package/types/JSONRootType.ts +0 -8
  605. package/types/JSONType.ts +0 -27
  606. package/types/JSONTypeBase.ts +0 -3
  607. package/types/Metatype/MetatypeDescriptor.ts +0 -80
  608. package/types/Metatype/fromMetatypeDescriptor.ts +0 -52
  609. package/types/Type.ts +0 -47
  610. package/types/TypeContext.ts +0 -19
  611. package/types/TypeLike.ts +0 -60
  612. package/types/TypeVisitor.ts +0 -49
  613. package/types/array.ts +0 -20
  614. package/types/boolean.ts +0 -9
  615. package/types/const.ts +0 -17
  616. package/types/enum.ts +0 -14
  617. package/types/factories.ts +0 -8
  618. package/types/index.ts +0 -2
  619. package/types/integer.ts +0 -9
  620. package/types/intrinsics.ts +0 -11
  621. package/types/makeType.ts +0 -72
  622. package/types/match.ts +0 -13
  623. package/types/non_factories.ts +0 -26
  624. package/types/null.ts +0 -10
  625. package/types/number.ts +0 -9
  626. package/types/object.ts +0 -27
  627. package/types/ref.ts +0 -12
  628. package/types/string.ts +0 -9
  629. package/types/toJSON.ts +0 -111
  630. package/types/type_common.ts +0 -21
  631. package/types/types_derived/option.ts +0 -10
  632. package/types/types_derived/taggedUnion.ts +0 -30
  633. package/types/types_derived/wrapper.ts +0 -10
  634. package/types/union.ts +0 -19
  635. package/util/ArrayOfLength.ts +0 -5
  636. package/util/DeferredOr.ts +0 -1
  637. package/util/EnsureNarrow.ts +0 -5
  638. package/util/EnsureRecord.ts +0 -3
  639. package/util/Expand.ts +0 -1
  640. package/util/Falsy.ts +0 -1
  641. package/util/FromEntries.ts +0 -3
  642. package/util/IteratorLike.ts +0 -1
  643. package/util/JSONEntry.ts +0 -3
  644. package/util/JSONKey.ts +0 -1
  645. package/util/JSONObject.ts +0 -6
  646. package/util/JSONSchemaMemo.ts +0 -15
  647. package/util/JSONValue.ts +0 -3
  648. package/util/PromiseOr.ts +0 -1
  649. package/util/Result.ts +0 -7
  650. package/util/Taggable.ts +0 -18
  651. package/util/TupleToRecord.ts +0 -5
  652. package/util/assert.ts +0 -7
  653. package/util/dedent.ts +0 -5
  654. package/util/fixTemplateStrings.test.ts +0 -250
  655. package/util/fixTemplateStrings.ts +0 -99
  656. package/util/isAsyncIterator.ts +0 -6
  657. package/util/isIterator.ts +0 -6
  658. package/util/isJSONValue.ts +0 -20
  659. package/util/isPropertyKey.ts +0 -3
  660. package/util/isTemplateStringsArray.ts +0 -3
  661. package/util/jsonEquals.ts +0 -41
  662. package/util/nullaryMemo.ts +0 -11
  663. package/util/peekLast.ts +0 -3
  664. package/util/unimplemented.ts +0 -5
  665. package/util/unreachable.ts +0 -5
  666. package/util/unwrapDeferred.ts +0 -5
  667. package/util/util.ts +0 -10
  668. /package/dist/{actions/actions_derived/declareModel.test.d.ts → Handler.d.ts} +0 -0
  669. /package/dist/{actions/actions_derived/declareModel.type-test.d.ts → L/namespace.d.ts} +0 -0
package/index.ts CHANGED
@@ -1,41 +1,11 @@
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"
32
- export * from "./Message.ts"
3
+ export * from "./Fiber.ts"
4
+ export * as L from "./L/L.ts"
5
+ export * from "./LEvent.ts"
33
6
  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"
7
+ export * from "./Rune.ts"
8
+ export * from "./Runic.ts"
9
+ export * from "./state/MessageRegistry.ts"
10
+ export * from "./state/ModelRegistry.ts"
11
+ 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.3",
7
7
  "license": "Apache-2.0",
8
8
  "repository": {
9
9
  "type": "git",
@@ -11,21 +11,18 @@
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
22
  "@standard-schema/spec": "^1.0.0",
28
- "conditional-type-checks": "^1.0.6"
23
+ "conditional-type-checks": "^1.0.6",
24
+ "liminal-schema": "^0.0.1",
25
+ "liminal-util": "^0.0.1"
29
26
  },
30
27
  "peerDependenciesMeta": {
31
28
  "conditional-type-checks": {
@@ -0,0 +1,11 @@
1
+ export class Counter {
2
+ constructor(public count: number = 0) {}
3
+
4
+ next() {
5
+ return this.count++
6
+ }
7
+
8
+ clone() {
9
+ return new Counter(this.count)
10
+ }
11
+ }
@@ -0,0 +1,14 @@
1
+ import { MessageRegistry } from "./MessageRegistry.ts"
2
+ import { ModelConfig } from "./ModelConfig.ts"
3
+ import { ModelRegistry } from "./ModelRegistry.ts"
4
+ import { StateMap } from "./StateMap.ts"
5
+
6
+ export class DefaultStateMap extends StateMap {
7
+ constructor() {
8
+ super([
9
+ [ModelRegistry, new ModelRegistry()],
10
+ [MessageRegistry, new MessageRegistry()],
11
+ [ModelConfig, new ModelConfig()],
12
+ ])
13
+ }
14
+ }
@@ -0,0 +1,17 @@
1
+ import type { Message } from "../Message.ts"
2
+
3
+ // TODO: marks and tags
4
+ export class MessageRegistry {
5
+ messages: Array<Message>
6
+ constructor(messages: Iterable<Message> = []) {
7
+ this.messages = Array.from(messages)
8
+ }
9
+
10
+ clone() {
11
+ return new MessageRegistry([...this.messages])
12
+ }
13
+
14
+ append(message: Message) {
15
+ this.messages.push(message)
16
+ }
17
+ }
@@ -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,55 @@
1
+ import type { Model } from "../Model.ts"
2
+
3
+ /** An intrusive list for storing `Model`s. */
4
+ export class ModelRegistry {
5
+ declare head?: ModelRegistryNode | undefined
6
+ declare tail?: ModelRegistryNode | undefined
7
+
8
+ clone(): ModelRegistry {
9
+ const clone = new ModelRegistry()
10
+ for (let node = this?.head; node; node = node.next) {
11
+ clone.register(node.model)
12
+ }
13
+ return clone
14
+ }
15
+
16
+ peek(): Model | undefined {
17
+ return this.tail?.model
18
+ }
19
+
20
+ register(value: Model): ModelRegistryNode {
21
+ const node: ModelRegistryNode = {
22
+ prev: this.tail,
23
+ model: value,
24
+ }
25
+ if (this.tail) {
26
+ this.tail.next = node
27
+ } else {
28
+ this.head = node
29
+ }
30
+ this.tail = node
31
+ return node
32
+ }
33
+
34
+ remove(node: ModelRegistryNode): void {
35
+ if (node.prev) {
36
+ node.prev.next = node.next
37
+ }
38
+ if (node.next) {
39
+ node.next.prev = node.prev
40
+ }
41
+ if (node === this.head) {
42
+ this.head = node.next
43
+ }
44
+ if (node === this.tail) {
45
+ this.tail = node.prev
46
+ }
47
+ node.prev = node.next = undefined
48
+ }
49
+ }
50
+
51
+ export interface ModelRegistryNode {
52
+ prev: ModelRegistryNode | undefined
53
+ model: Model
54
+ next?: ModelRegistryNode | undefined
55
+ }
@@ -0,0 +1,15 @@
1
+ export class StateMap extends Map<StateConstructor<Cloneable>, 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
+
11
+ export type StateConstructor<T extends Cloneable = Cloneable> = new() => T
12
+
13
+ export interface Cloneable {
14
+ clone(): this
15
+ }
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
- }
package/Tool.ts DELETED
@@ -1,58 +0,0 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec"
2
- import type { Action } from "./Action.ts"
3
- import type { Agent } from "./Agent.ts"
4
- import type { Scope } from "./Scope.ts"
5
- import { assert } from "./util/assert.ts"
6
- import { isJSONValue } from "./util/isJSONValue.ts"
7
- import type { JSONKey } from "./util/JSONKey.ts"
8
- import type { JSONObject } from "./util/JSONObject.ts"
9
- import type { JSONValue } from "./util/JSONValue.ts"
10
- import type { PromiseOr } from "./util/PromiseOr.ts"
11
-
12
- export interface ToolConfig<K extends JSONKey = JSONKey> {
13
- toolKey: K
14
- description: string
15
- params: StandardSchemaV1<JSONObject, any>
16
- implementation: ToolImplementation
17
- }
18
-
19
- export interface Tool<K extends JSONKey = JSONKey> extends ToolConfig<K> {
20
- executor: (scope: Scope) => ToolExecutor
21
- }
22
-
23
- export function Tool<K extends JSONKey>(config: ToolConfig<K>): Tool<K> {
24
- return {
25
- ...config,
26
- executor,
27
- }
28
- }
29
-
30
- export type ToolImplementation = (params: any) => Agent<Action, ToolResult> | PromiseOr<ToolResult>
31
-
32
- export type ToolExecutor = (args: any) => Promise<JSONValue>
33
-
34
- export type ToolResult = JSONValue | void
35
-
36
- function executor(this: Tool, scope: Scope): ToolExecutor {
37
- return async (args) => {
38
- scope.event({
39
- type: "tool_called",
40
- args,
41
- tool: this.toolKey,
42
- })
43
- const parsed = await this.params["~standard"].validate(args)
44
- assert(!parsed.issues)
45
- const { value: transformed } = parsed
46
- const initial = await this.implementation(transformed)
47
- if (isJSONValue(initial)) {
48
- return { value: initial }
49
- }
50
- const fork = scope.fork("tool", [this.toolKey])
51
- const { value } = await fork.reduce(initial as Agent)
52
- fork.event({
53
- type: "returned",
54
- value,
55
- })
56
- return { value }
57
- }
58
- }
package/_.ts DELETED
@@ -1,11 +0,0 @@
1
- export interface _ {
2
- type: "_"
3
- }
4
-
5
- export const _: _ = {
6
- type: "_",
7
- }
8
-
9
- export function is_(value: unknown): value is _ {
10
- return typeof value === "object" && value !== null && "type" in value && value.type === "_"
11
- }
package/actions/abort.ts DELETED
@@ -1,23 +0,0 @@
1
- import { Action } from "../Action.ts"
2
- import type { Aborted } from "../events/Aborted.ts"
3
- import type { Spec } from "../Spec.ts"
4
- import type { EnsureNarrow } from "../util/EnsureNarrow.ts"
5
-
6
- export interface abort<V> extends Action<"abort", Spec.Make<{ Event: Aborted<V> }>> {}
7
-
8
- export function* abort<V>(reason: V, ...[_error]: EnsureNarrow<V>): Generator<
9
- abort<V>,
10
- never
11
- > {
12
- return (yield (Action("abort", (scope) => {
13
- scope.event({
14
- type: "aborted",
15
- reason,
16
- })
17
- scope.controller.abort(reason)
18
- return {
19
- ...scope,
20
- nextArg: undefined,
21
- }
22
- }))) as never
23
- }