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
@@ -1,52 +0,0 @@
1
- import type { JSONObject } from "../../util/JSONObject.ts"
2
- import { array } from "../array.ts"
3
- import { boolean } from "../boolean.ts"
4
- import { enum as enum_ } from "../enum.ts"
5
- import { integer } from "../integer.ts"
6
- import { number } from "../number.ts"
7
- import { type JSONObjectType, object } from "../object.ts"
8
- import { string } from "../string.ts"
9
- import type { Type } from "../Type.ts"
10
- import { union } from "../union.ts"
11
- import type { MetatypeDescriptor, MetatypeRootDescriptor } from "./MetatypeDescriptor.ts"
12
-
13
- export function fromMetatypeRootDescriptor(descriptor: MetatypeRootDescriptor): Type<JSONObject, JSONObjectType> {
14
- return fromMetatypeDescriptor(descriptor) as never
15
- }
16
-
17
- export function fromMetatypeDescriptor(descriptor: MetatypeDescriptor): Type {
18
- return make(descriptor)(descriptor.value.description)
19
- }
20
-
21
- function make(descriptor: MetatypeDescriptor): Type {
22
- switch (descriptor.type) {
23
- case "atom": {
24
- switch (descriptor.value.atomType) {
25
- case "boolean":
26
- return boolean
27
- case "integer":
28
- return integer
29
- case "number":
30
- return number
31
- case "string":
32
- return string
33
- }
34
- }
35
- case "array": {
36
- return array(fromMetatypeDescriptor(descriptor.value.items))
37
- }
38
- case "enum": {
39
- return enum_(...descriptor.value.variants)
40
- }
41
- case "record": {
42
- return object(Object.fromEntries(descriptor.value.fields.map(({
43
- key,
44
- value,
45
- description,
46
- }) => [key, fromMetatypeDescriptor(value)(description)])))
47
- }
48
- case "union": {
49
- return union(...descriptor.value.members.map(fromMetatypeDescriptor))
50
- }
51
- }
52
- }
package/types/Type.ts DELETED
@@ -1,47 +0,0 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec"
2
- import type { Action } from "../Action.ts"
3
- import type { InferenceRequested } from "../events/InferenceRequested.ts"
4
- import type { Inferred } from "../events/Inferred.ts"
5
- import type { Spec } from "../Spec.ts"
6
- import type { Falsy } from "../util/Falsy.ts"
7
- import type { JSONValue } from "../util/JSONValue.ts"
8
- import type { Taggable } from "../util/Taggable.ts"
9
- import type { JSONRootType } from "./JSONRootType.ts"
10
- import type { JSONType } from "./JSONType.ts"
11
- import type { JSONObjectType } from "./object.ts"
12
-
13
- export interface Type<T extends JSONValue = JSONValue, J extends JSONType = JSONType>
14
- extends Taggable<Array<string | Falsy>>, TypeMembers<T, J>
15
- {
16
- T: T
17
- J: J
18
-
19
- [Symbol.iterator]: J extends JSONObjectType ? () => Iterator<
20
- Action<
21
- "infer",
22
- Spec.Make<{
23
- Event: InferenceRequested | Inferred
24
- }>
25
- >,
26
- T
27
- >
28
- : never
29
- }
30
-
31
- export interface TypeMembers<T extends JSONValue, J extends JSONType> extends StandardSchemaV1<T> {
32
- [TypeKey]: true
33
- declaration: () => Type<T, J> | ((...args: any) => Type<T, J>)
34
- args?: Array<any>
35
- descriptions: Array<string>
36
- trace: string | undefined
37
- description(): string
38
- toJSON(): JSONRootType<J>
39
- assert(value: unknown): T
40
- }
41
-
42
- export type TypeKey = typeof TypeKey
43
- export const TypeKey = Symbol.for("Liminal/Type")
44
-
45
- export function isType(value: unknown): value is Type {
46
- return typeof value === "function" && TypeKey in value
47
- }
@@ -1,19 +0,0 @@
1
- import type { Type } from "./Type.js"
2
-
3
- export class TypeContext {
4
- root: Type
5
- ids: Map<Type, string>
6
- constructor(root: Type, ids: Map<Type, string> = new Map()) {
7
- this.root = root
8
- this.ids = ids
9
- }
10
-
11
- id(type: Type): string {
12
- let id = this.ids.get(type)
13
- if (id === undefined) {
14
- id = this.ids.size.toString()
15
- this.ids.set(type, id)
16
- }
17
- return id
18
- }
19
- }
package/types/TypeLike.ts DELETED
@@ -1,60 +0,0 @@
1
- import type { Falsy } from "../util/Falsy.ts"
2
- import type { JSONKey } from "../util/JSONKey.ts"
3
- import { const as const_, type JSONConstType } from "./const.ts"
4
- import { type JSONNullType, null as null_ } from "./null.ts"
5
- import { _object, type JSONObjectType } from "./object.ts"
6
- import { type JSONStringType, string } from "./string.ts"
7
- import { isType, type Type } from "./Type.ts"
8
-
9
- export type TypeLike = Type | TypeLikes | string | Falsy
10
- export type TypeLikes = TypeLikeArray | TypeLikeRecord
11
-
12
- export type TypeLikeArray = Array<TypeLike>
13
- export type TypeLikeRecord = {
14
- [key: JSONKey]: TypeLike
15
- }
16
-
17
- export type NormalizeTypeLikesT<F extends TypeLikes> =
18
- & {
19
- -readonly [K in keyof F as F extends TypeLikeArray ? K extends `${number}` ? K : never : K]: NormalizeTypeLikeT<
20
- Extract<F[K], TypeLike>
21
- >
22
- }
23
- & {}
24
-
25
- export type NormalizeTypeLikeT<V extends TypeLike> = V extends TypeLikes ? NormalizeTypeLikesT<V>
26
- : V extends string ? V
27
- : V extends Type<infer T> ? T
28
- : null
29
-
30
- export type NormalizeTypeLikesJ<F extends TypeLikes> =
31
- & {
32
- -readonly [K in keyof F as F extends TypeLikeArray ? K extends `${number}` ? K : never : K]: NormalizeTypeLikeJ<
33
- Extract<F[K], TypeLike>
34
- >
35
- }
36
- & {}
37
-
38
- export type NormalizeTypeLikeJ<V extends TypeLike> = V extends TypeLikes ? JSONObjectType<NormalizeTypeLikesJ<V>>
39
- : V extends string ? JSONConstType<JSONStringType, V>
40
- : V extends Type<any, infer J> ? J
41
- : JSONNullType
42
-
43
- export function normalizeTypeLikes(fields: TypeLikes): Type {
44
- return (Array.isArray(fields)
45
- ? _object(fields.map(normalizeTypeLike))
46
- : _object(Object.fromEntries(Object.entries(fields).map(([k, v]) => [k, normalizeTypeLike(v)]))))
47
- }
48
-
49
- export function normalizeTypeLike(value: TypeLike): Type {
50
- if (!value) {
51
- return null_
52
- }
53
- if (typeof value === "string") {
54
- return const_(string, value)
55
- }
56
- if (isType(value)) {
57
- return value
58
- }
59
- return normalizeTypeLikes(value)
60
- }
@@ -1,49 +0,0 @@
1
- import type { Type } from "./Type.ts"
2
- import { type IntrinsicTypes, typeName } from "./type_common.ts"
3
-
4
- export type VisitorArms<S, R> =
5
- & {
6
- hook?: (
7
- next: (state: S, type: Type) => R,
8
- state: S,
9
- type: Type,
10
- ) => R
11
- }
12
- & (
13
- | (
14
- & IntrinsicVisitorArms<S, R>
15
- & { fallback?: never }
16
- )
17
- | (
18
- & Partial<IntrinsicVisitorArms<S, R>>
19
- & { fallback: () => R }
20
- )
21
- )
22
-
23
- export type IntrinsicVisitorArms<S, R> = {
24
- [K in keyof IntrinsicTypes]: (
25
- state: S,
26
- ...args: IntrinsicTypes[K] extends Type ? [IntrinsicTypes[K]]
27
- : IntrinsicTypes[K] extends (...args: infer A) => infer T ? [T, ...A]
28
- : never
29
- ) => R
30
- }
31
-
32
- export type TypeVisitor<S, R> = (state: S, type: Type) => R
33
-
34
- export function TypeVisitor<S, R>(arms: VisitorArms<S, R>): (state: S, type: Type) => R {
35
- const { hook } = arms
36
- if (hook) {
37
- return (state, type) => hook(next, state, type)
38
- }
39
-
40
- return next
41
-
42
- function next(state: S, type: Type): R {
43
- return (arms[typeName(type)] as any ?? arms.fallback)(
44
- state,
45
- type,
46
- ...(type.args ?? []),
47
- )
48
- }
49
- }
package/types/array.ts DELETED
@@ -1,20 +0,0 @@
1
- import type { JSONType } from "./JSONType.ts"
2
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
3
- import { makeType } from "./makeType.ts"
4
- import type { Type } from "./Type.ts"
5
- import { normalizeTypeLike, type NormalizeTypeLikeJ, type NormalizeTypeLikeT, type TypeLike } from "./TypeLike.ts"
6
-
7
- export function array<const F extends TypeLike>(
8
- element: F,
9
- ): Type<Array<NormalizeTypeLikeT<F>>, JSONArrayType<NormalizeTypeLikeJ<F>>> {
10
- return _array(normalizeTypeLike(element)) as never
11
- }
12
-
13
- export function _array(element: Type): Type {
14
- return makeType(() => _array, [element])
15
- }
16
-
17
- export interface JSONArrayType<E extends JSONType = any> extends JSONTypeBase {
18
- type: "array"
19
- items: E
20
- }
package/types/boolean.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
2
- import { makeType } from "./makeType.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const boolean: Type<boolean, JSONBooleanType> = makeType(() => boolean)
6
-
7
- export interface JSONBooleanType extends JSONTypeBase {
8
- type: "boolean"
9
- }
package/types/const.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import type { ConstableType } from "./JSONType.ts"
3
- import { makeType } from "./makeType.ts"
4
- import type { Type } from "./Type.ts"
5
-
6
- function const_<T extends JSONValue, J extends ConstableType, const V extends T>(
7
- type: Type<T, J>,
8
- value: V,
9
- ): Type<V, JSONConstType<J, V>> {
10
- return makeType(() => const_<T, J, V>, [type, value])
11
- }
12
- Object.defineProperty(const_, "name", { value: "const" })
13
- export { const_ as const }
14
-
15
- export type JSONConstType<J extends ConstableType = any, V extends JSONValue = JSONValue> = J & {
16
- const: V
17
- }
package/types/enum.ts DELETED
@@ -1,14 +0,0 @@
1
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
2
- import { makeType } from "./makeType.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export { enum_ as enum }
6
- function enum_<A extends Array<string>>(...values: A): Type<A[number], JSONEnumType<A[number]>> {
7
- return makeType(() => enum_<A>, values)
8
- }
9
- Object.defineProperty(enum_, "name", { value: "enum" })
10
-
11
- export interface JSONEnumType<K extends string = string> extends JSONTypeBase {
12
- type: "string"
13
- enum: Array<K>
14
- }
@@ -1,8 +0,0 @@
1
- export { array } from "./array.ts"
2
- export { boolean, const, enum, integer, null, number, ref, string } from "./intrinsics.ts"
3
- export { MetatypeDescriptor, MetatypeRootDescriptor } from "./Metatype/MetatypeDescriptor.ts"
4
- export { object } from "./object.ts"
5
- export { option } from "./types_derived/option.ts"
6
- export { taggedUnion } from "./types_derived/taggedUnion.ts"
7
- export { wrapper } from "./types_derived/wrapper.ts"
8
- export { union } from "./union.ts"
package/types/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from "./factories.ts"
2
- export * from "./non_factories.ts"
package/types/integer.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
2
- import { makeType } from "./makeType.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const integer: Type<number, JSONIntegerType> = makeType(() => integer)
6
-
7
- export interface JSONIntegerType extends JSONTypeBase {
8
- type: "integer"
9
- }
@@ -1,11 +0,0 @@
1
- export { _array } from "./array.ts"
2
- export { boolean } from "./boolean.ts"
3
- export { const } from "./const.ts"
4
- export { enum } from "./enum.ts"
5
- export { integer } from "./integer.ts"
6
- export { null } from "./null.ts"
7
- export { number } from "./number.ts"
8
- export { _object } from "./object.ts"
9
- export { ref } from "./ref.ts"
10
- export { string } from "./string.ts"
11
- export { _union } from "./union.ts"
package/types/makeType.ts DELETED
@@ -1,72 +0,0 @@
1
- import type { StandardSchemaV1 } from "@standard-schema/spec"
2
- import { infer } from "../actions/infer.ts"
3
- import { LiminalAssertionError } from "../LiminalAssertionError.ts"
4
- import type { Falsy } from "../util/Falsy.ts"
5
- import { applyTemplateWithIndentation } from "../util/fixTemplateStrings.ts"
6
- import { isTemplateStringsArray } from "../util/isTemplateStringsArray.ts"
7
- import type { JSONObject } from "../util/JSONObject.ts"
8
- import { AssertDiagnostics, formatAssertDiagnostics } from "./AssertDiagnostics.ts"
9
- import type { JSONObjectType } from "./object.ts"
10
- import { toJSON } from "./toJSON.ts"
11
- import { type Type, TypeKey, type TypeMembers } from "./Type.ts"
12
-
13
- export function makeType<X extends Type>(
14
- declaration: () => X | ((...args: any) => X),
15
- args?: Array<unknown>,
16
- descriptions: Array<string> = [],
17
- ): X {
18
- const type = Object.assign(
19
- Type,
20
- {
21
- [TypeKey]: true,
22
- declaration,
23
- args,
24
- descriptions,
25
- trace: new Error().stack,
26
- description() {
27
- return descriptions.join("\n")
28
- },
29
- "~standard": {
30
- vendor: "liminal",
31
- version: 1,
32
- validate: (value) => {
33
- const diagnostics = AssertDiagnostics({}, type as never, value)
34
- if (diagnostics.length) {
35
- return {
36
- issues: diagnostics.map(({ path, error }): StandardSchemaV1.Issue => ({
37
- path,
38
- message: JSON.stringify(error),
39
- })),
40
- }
41
- }
42
- return { value: value as X["T"] }
43
- },
44
- },
45
- toJSON,
46
- assert: (value) => {
47
- const diagnostics = AssertDiagnostics({}, type as never, value)
48
- if (diagnostics.length) {
49
- throw new LiminalAssertionError(formatAssertDiagnostics(diagnostics))
50
- }
51
- return value as never
52
- },
53
- ...{
54
- *[Symbol.iterator](this: Type<JSONObject, JSONObjectType>) {
55
- return yield* infer(this)
56
- },
57
- },
58
- } satisfies TypeMembers<X["T"], X["J"]>,
59
- ) as never as X
60
- return type
61
-
62
- function Type(template: TemplateStringsArray, ...substitutions: Array<string>): X
63
- function Type(...values: Array<Falsy | string>): X
64
- function Type(e0: TemplateStringsArray | Falsy | string, ...eRest: Array<Falsy | string>): X {
65
- return makeType(declaration, args, [
66
- ...descriptions,
67
- ...isTemplateStringsArray(e0)
68
- ? [applyTemplateWithIndentation(e0, ...eRest)]
69
- : [e0, ...eRest].filter((v): v is string => !!v),
70
- ])
71
- }
72
- }
package/types/match.ts DELETED
@@ -1,13 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import { AssertDiagnostics } from "./AssertDiagnostics.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export function match(value: JSONValue, members: Array<Type>): Type | undefined {
6
- for (const member of members) {
7
- const diagnostics = AssertDiagnostics({}, member, value)
8
- if (!diagnostics.length) {
9
- return member
10
- }
11
- }
12
- return
13
- }
@@ -1,26 +0,0 @@
1
- export type { JSONArrayType } from "./array.ts"
2
- export type { JSONBooleanType } from "./boolean.ts"
3
- export type { JSONConstType } from "./const.ts"
4
- export type { JSONEnumType } from "./enum.ts"
5
- export type { JSONIntegerType } from "./integer.ts"
6
- export * from "./JSONRootType.ts"
7
- export * from "./JSONType.ts"
8
- export { match } from "./match.ts"
9
- export * from "./Metatype/fromMetatypeDescriptor.ts"
10
- export type { MetatypeDescriptor, MetatypeRootDescriptor } from "./Metatype/MetatypeDescriptor.ts"
11
- export type { JSONNullType } from "./null.ts"
12
- export type { JSONNumberType } from "./number.ts"
13
- export type {
14
- JSONObjectType,
15
- ObjectFields as _ObjectFields,
16
- RecordFields as _RecordFields,
17
- TupleFields as _TupleFields,
18
- } from "./object.ts"
19
- export type { JSONRefType } from "./ref.ts"
20
- export type { JSONStringType } from "./string.ts"
21
- export * from "./Type.ts"
22
- export * from "./TypeContext.ts"
23
- export * from "./TypeLike.ts"
24
- export type { TaggedUnionMembers } from "./types_derived/taggedUnion.ts"
25
- export * from "./TypeVisitor.ts"
26
- export type { JSONUnionType } from "./union.ts"
package/types/null.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
2
- import { makeType } from "./makeType.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- const null_: Type<null, JSONNullType> = makeType(() => null_)
6
- export { null_ as null }
7
-
8
- export interface JSONNullType extends JSONTypeBase {
9
- type: "null"
10
- }
package/types/number.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
2
- import { makeType } from "./makeType.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const number: Type<number, JSONNumberType> = makeType(() => number)
6
-
7
- export interface JSONNumberType extends JSONTypeBase {
8
- type: "number"
9
- }
package/types/object.ts DELETED
@@ -1,27 +0,0 @@
1
- import type { JSONKey } from "../util/JSONKey.ts"
2
- import type { JSONType } from "./JSONType.ts"
3
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
4
- import { makeType } from "./makeType.ts"
5
- import { type Type } from "./Type.ts"
6
- import { normalizeTypeLikes, type NormalizeTypeLikesJ, type NormalizeTypeLikesT, type TypeLikes } from "./TypeLike.ts"
7
-
8
- export function object<const F extends TypeLikes>(
9
- fields: F,
10
- ): Type<NormalizeTypeLikesT<F>, JSONObjectType<NormalizeTypeLikesJ<F>>> {
11
- return normalizeTypeLikes(fields) as never
12
- }
13
-
14
- export function _object(fields: ObjectFields): Type {
15
- return makeType(() => _object, [fields])
16
- }
17
-
18
- export interface JSONObjectType<F extends Record<JSONKey, JSONType> = any> extends JSONTypeBase {
19
- type: "object"
20
- properties: F
21
- required: Array<keyof F>
22
- additionalProperties: false
23
- }
24
-
25
- export type ObjectFields = TupleFields | RecordFields
26
- export type TupleFields = Array<Type>
27
- export type RecordFields = Record<JSONKey, Type>
package/types/ref.ts DELETED
@@ -1,12 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import type { ConstableType } from "./JSONType.ts"
3
- import { makeType } from "./makeType.ts"
4
- import type { Type } from "./Type.ts"
5
-
6
- export function ref<T extends JSONValue, J extends ConstableType>(getType: () => Type<T, J>): Type<T, JSONRefType> {
7
- return makeType(() => ref<T, J>, [getType])
8
- }
9
-
10
- export interface JSONRefType {
11
- $ref: string
12
- }
package/types/string.ts DELETED
@@ -1,9 +0,0 @@
1
- import type { JSONTypeBase } from "./JSONTypeBase.ts"
2
- import { makeType } from "./makeType.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export const string: Type<string, JSONStringType> = makeType(() => string)
6
-
7
- export interface JSONStringType extends JSONTypeBase {
8
- type: "string"
9
- }
package/types/toJSON.ts DELETED
@@ -1,111 +0,0 @@
1
- import type { JSONValue } from "../util/JSONValue.ts"
2
- import type { JSONArrayType } from "./array.ts"
3
- import type { JSONBooleanType } from "./boolean.ts"
4
- import { type JSONConstType } from "./const.ts"
5
- import type { JSONEnumType } from "./enum.ts"
6
- import type { JSONIntegerType } from "./integer.ts"
7
- import type { JSONRootType } from "./JSONRootType.ts"
8
- import { JSONSchema$schema } from "./JSONRootType.ts"
9
- import type { JSONRootableType, JSONType } from "./JSONType"
10
- import type { JSONNullType } from "./null.ts"
11
- import type { JSONNumberType } from "./number.ts"
12
- import { _object, type JSONObjectType } from "./object.ts"
13
- import { type JSONStringType } from "./string.ts"
14
- import { type Type } from "./Type.ts"
15
- import { PARENT_TYPE_NAMES, typeName } from "./type_common.ts"
16
- import { TypeContext } from "./TypeContext.ts"
17
- import { TypeVisitor } from "./TypeVisitor.ts"
18
- import type { JSONUnionType } from "./union.ts"
19
-
20
- export function toJSON<T extends JSONValue, J extends JSONRootableType>(this: Type<T, J>): JSONRootType<J> {
21
- const { $defs: { 0: root, ...$defs } } = new ToJSONState(this)
22
- return {
23
- $schema: JSONSchema$schema,
24
- ...root,
25
- $defs,
26
- } as never
27
- }
28
-
29
- class ToJSONState extends TypeContext {
30
- readonly $defs: Record<string, JSONType | undefined> = {}
31
- constructor(root: Type) {
32
- super(root)
33
- visit(this, root)
34
- }
35
- }
36
-
37
- const visit: TypeVisitor<ToJSONState, JSONType> = TypeVisitor({
38
- hook(next, state, type) {
39
- const which = typeName(type)
40
- if (PARENT_TYPE_NAMES[which]) {
41
- const id = state.id(type)
42
- if (!(id in state.$defs)) {
43
- state.$defs[id] = undefined
44
- state.$defs[id] = next(state, type)
45
- }
46
- return type === state.root ? { $ref: "$" } : { $ref: `#/$defs/${id}` }
47
- }
48
- if (which === "ref") {
49
- if (state.ids.has(type)) {
50
- const getType = type.args?.[0] as () => Type
51
- return { $ref: `#/$defs/${state.id(getType())}` }
52
- }
53
- state.id(type)
54
- return next(state, type)
55
- }
56
- return next(state, type)
57
- },
58
- null(): JSONNullType {
59
- return { type: "null" }
60
- },
61
- boolean(): JSONBooleanType {
62
- return { type: "boolean" }
63
- },
64
- integer(): JSONIntegerType {
65
- return { type: "integer" }
66
- },
67
- number(): JSONNumberType {
68
- return { type: "number" }
69
- },
70
- string(): JSONStringType {
71
- return { type: "string" }
72
- },
73
- const(state, _type, valueType, value): JSONConstType {
74
- return {
75
- ...visit(state, valueType),
76
- const: value,
77
- } as never
78
- },
79
- _array(state, _type, element): JSONArrayType {
80
- return {
81
- type: "array",
82
- items: visit(state, element),
83
- }
84
- },
85
- enum(_state, _type, ...values): JSONEnumType {
86
- return {
87
- type: "string",
88
- enum: values,
89
- }
90
- },
91
- _union(state, _type, ...members): JSONUnionType {
92
- return {
93
- anyOf: members.map((m) => visit(state, m)),
94
- }
95
- },
96
- _object(state, _type, fields): JSONObjectType {
97
- return {
98
- type: "object",
99
- properties: Object.fromEntries(
100
- Array.isArray(fields)
101
- ? fields.map((v, i) => [i, visit(state, v)])
102
- : Object.entries(fields).map(([k, v]) => [k, visit(state, v)]),
103
- ),
104
- required: Object.keys(fields),
105
- additionalProperties: false,
106
- }
107
- },
108
- ref(state, _type, getType) {
109
- return visit(state, getType())
110
- },
111
- })
@@ -1,21 +0,0 @@
1
- import { nullaryMemo } from "../util/nullaryMemo.ts"
2
- import * as I from "./intrinsics.ts"
3
- import type { Type } from "./Type.ts"
4
-
5
- export type IntrinsicTypes = typeof I
6
- export type IntrinsicTypeName = keyof IntrinsicTypes
7
- export type IntrinsicType = IntrinsicTypes[IntrinsicTypeName]
8
-
9
- export const getIntrinsicNameLookup = nullaryMemo(() =>
10
- new Map(Object.entries(I).map((entry) => entry.reverse() as [IntrinsicType, keyof IntrinsicTypes]))
11
- )
12
-
13
- export function typeName(type: Type): IntrinsicTypeName {
14
- return getIntrinsicNameLookup().get(type.declaration() as IntrinsicType)!
15
- }
16
-
17
- export const PARENT_TYPE_NAMES: { [K in IntrinsicTypeName]?: true } = {
18
- _object: true,
19
- _array: true,
20
- _union: true,
21
- }
@@ -1,10 +0,0 @@
1
- import { type JSONNullType, null as null_ } from "../null.ts"
2
- import type { Type } from "../Type.ts"
3
- import type { NormalizeTypeLikeJ, NormalizeTypeLikeT, TypeLike } from "../TypeLike.ts"
4
- import { _union, type JSONUnionType, union } from "../union.ts"
5
-
6
- export function option<const X extends TypeLike>(
7
- of: X,
8
- ): Type<null | NormalizeTypeLikeT<X>, JSONUnionType<JSONNullType | NormalizeTypeLikeJ<X>>> {
9
- return union(null_, of)
10
- }