effect 4.0.0-beta.4 → 4.0.0-beta.40

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 (1222) hide show
  1. package/dist/Array.d.ts +213 -385
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +149 -102
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +46 -45
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +35 -38
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +39 -32
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +32 -29
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Brand.d.ts +1 -1
  14. package/dist/Brand.d.ts.map +1 -1
  15. package/dist/Brand.js +1 -1
  16. package/dist/Brand.js.map +1 -1
  17. package/dist/Cache.d.ts +2 -2
  18. package/dist/Cache.d.ts.map +1 -1
  19. package/dist/Cache.js +6 -5
  20. package/dist/Cache.js.map +1 -1
  21. package/dist/Cause.d.ts +33 -2
  22. package/dist/Cause.d.ts.map +1 -1
  23. package/dist/Cause.js +19 -0
  24. package/dist/Cause.js.map +1 -1
  25. package/dist/Channel.d.ts +130 -35
  26. package/dist/Channel.d.ts.map +1 -1
  27. package/dist/Channel.js +96 -45
  28. package/dist/Channel.js.map +1 -1
  29. package/dist/Chunk.d.ts +112 -304
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +56 -88
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Combiner.d.ts +280 -13
  34. package/dist/Combiner.d.ts.map +1 -1
  35. package/dist/Combiner.js +198 -7
  36. package/dist/Combiner.js.map +1 -1
  37. package/dist/Config.d.ts +169 -9
  38. package/dist/Config.d.ts.map +1 -1
  39. package/dist/Config.js +69 -11
  40. package/dist/Config.js.map +1 -1
  41. package/dist/ConfigProvider.d.ts +1 -1
  42. package/dist/Cron.d.ts +11 -7
  43. package/dist/Cron.d.ts.map +1 -1
  44. package/dist/Cron.js +120 -63
  45. package/dist/Cron.js.map +1 -1
  46. package/dist/Data.d.ts +535 -366
  47. package/dist/Data.d.ts.map +1 -1
  48. package/dist/Data.js +132 -79
  49. package/dist/Data.js.map +1 -1
  50. package/dist/DateTime.d.ts +72 -253
  51. package/dist/DateTime.d.ts.map +1 -1
  52. package/dist/DateTime.js +15 -60
  53. package/dist/DateTime.js.map +1 -1
  54. package/dist/Deferred.d.ts +7 -5
  55. package/dist/Deferred.d.ts.map +1 -1
  56. package/dist/Deferred.js +7 -5
  57. package/dist/Deferred.js.map +1 -1
  58. package/dist/Duration.d.ts +62 -32
  59. package/dist/Duration.d.ts.map +1 -1
  60. package/dist/Duration.js +108 -78
  61. package/dist/Duration.js.map +1 -1
  62. package/dist/Effect.d.ts +1224 -951
  63. package/dist/Effect.d.ts.map +1 -1
  64. package/dist/Effect.js +398 -338
  65. package/dist/Effect.js.map +1 -1
  66. package/dist/Encoding.d.ts +194 -0
  67. package/dist/Encoding.d.ts.map +1 -0
  68. package/dist/Encoding.js +352 -0
  69. package/dist/Encoding.js.map +1 -0
  70. package/dist/Equal.d.ts +276 -109
  71. package/dist/Equal.d.ts.map +1 -1
  72. package/dist/Equal.js +124 -48
  73. package/dist/Equal.js.map +1 -1
  74. package/dist/Equivalence.d.ts +60 -3
  75. package/dist/Equivalence.d.ts.map +1 -1
  76. package/dist/Equivalence.js +70 -13
  77. package/dist/Equivalence.js.map +1 -1
  78. package/dist/ErrorReporter.d.ts +374 -0
  79. package/dist/ErrorReporter.d.ts.map +1 -0
  80. package/dist/ErrorReporter.js +245 -0
  81. package/dist/ErrorReporter.js.map +1 -0
  82. package/dist/Exit.d.ts +24 -12
  83. package/dist/Exit.d.ts.map +1 -1
  84. package/dist/Exit.js +8 -4
  85. package/dist/Exit.js.map +1 -1
  86. package/dist/Fiber.d.ts +5 -3
  87. package/dist/Fiber.d.ts.map +1 -1
  88. package/dist/Fiber.js.map +1 -1
  89. package/dist/FiberHandle.d.ts +9 -8
  90. package/dist/FiberHandle.d.ts.map +1 -1
  91. package/dist/FiberHandle.js +8 -7
  92. package/dist/FiberHandle.js.map +1 -1
  93. package/dist/FiberMap.d.ts +20 -19
  94. package/dist/FiberMap.d.ts.map +1 -1
  95. package/dist/FiberMap.js +6 -6
  96. package/dist/FiberMap.js.map +1 -1
  97. package/dist/FileSystem.d.ts +18 -17
  98. package/dist/FileSystem.d.ts.map +1 -1
  99. package/dist/FileSystem.js +17 -13
  100. package/dist/FileSystem.js.map +1 -1
  101. package/dist/Filter.d.ts +34 -38
  102. package/dist/Filter.d.ts.map +1 -1
  103. package/dist/Filter.js +15 -13
  104. package/dist/Filter.js.map +1 -1
  105. package/dist/Formatter.d.ts +131 -47
  106. package/dist/Formatter.d.ts.map +1 -1
  107. package/dist/Formatter.js +229 -51
  108. package/dist/Formatter.js.map +1 -1
  109. package/dist/Function.d.ts +1 -9
  110. package/dist/Function.d.ts.map +1 -1
  111. package/dist/Function.js +2 -10
  112. package/dist/Function.js.map +1 -1
  113. package/dist/Graph.d.ts +65 -65
  114. package/dist/Graph.d.ts.map +1 -1
  115. package/dist/Graph.js +60 -62
  116. package/dist/Graph.js.map +1 -1
  117. package/dist/HashMap.d.ts +26 -19
  118. package/dist/HashMap.d.ts.map +1 -1
  119. package/dist/HashMap.js +7 -5
  120. package/dist/HashMap.js.map +1 -1
  121. package/dist/Iterable.d.ts +50 -50
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +106 -34
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/JsonSchema.d.ts +299 -10
  126. package/dist/JsonSchema.d.ts.map +1 -1
  127. package/dist/JsonSchema.js +323 -4
  128. package/dist/JsonSchema.js.map +1 -1
  129. package/dist/Latch.d.ts +175 -0
  130. package/dist/Latch.d.ts.map +1 -0
  131. package/dist/Latch.js +130 -0
  132. package/dist/Latch.js.map +1 -0
  133. package/dist/Layer.d.ts +306 -129
  134. package/dist/Layer.d.ts.map +1 -1
  135. package/dist/Layer.js +92 -47
  136. package/dist/Layer.js.map +1 -1
  137. package/dist/LayerMap.d.ts +9 -8
  138. package/dist/LayerMap.d.ts.map +1 -1
  139. package/dist/LayerMap.js +3 -3
  140. package/dist/LayerMap.js.map +1 -1
  141. package/dist/LogLevel.d.ts +32 -0
  142. package/dist/LogLevel.d.ts.map +1 -1
  143. package/dist/LogLevel.js +28 -100
  144. package/dist/LogLevel.js.map +1 -1
  145. package/dist/Logger.d.ts +29 -95
  146. package/dist/Logger.d.ts.map +1 -1
  147. package/dist/Logger.js +2 -3
  148. package/dist/Logger.js.map +1 -1
  149. package/dist/ManagedRuntime.d.ts +2 -2
  150. package/dist/ManagedRuntime.js +2 -2
  151. package/dist/Metric.d.ts +4 -6
  152. package/dist/Metric.d.ts.map +1 -1
  153. package/dist/Metric.js +3 -5
  154. package/dist/Metric.js.map +1 -1
  155. package/dist/MutableHashMap.d.ts +7 -0
  156. package/dist/MutableHashMap.d.ts.map +1 -1
  157. package/dist/MutableHashMap.js +8 -0
  158. package/dist/MutableHashMap.js.map +1 -1
  159. package/dist/MutableHashSet.d.ts +7 -0
  160. package/dist/MutableHashSet.d.ts.map +1 -1
  161. package/dist/MutableHashSet.js +8 -0
  162. package/dist/MutableHashSet.js.map +1 -1
  163. package/dist/Newtype.d.ts +291 -0
  164. package/dist/Newtype.d.ts.map +1 -0
  165. package/dist/Newtype.js +161 -0
  166. package/dist/Newtype.js.map +1 -0
  167. package/dist/Number.d.ts +74 -18
  168. package/dist/Number.d.ts.map +1 -1
  169. package/dist/Number.js +34 -15
  170. package/dist/Number.js.map +1 -1
  171. package/dist/Optic.d.ts +947 -18
  172. package/dist/Optic.d.ts.map +1 -1
  173. package/dist/Optic.js +454 -5
  174. package/dist/Optic.js.map +1 -1
  175. package/dist/Option.d.ts +25 -16
  176. package/dist/Option.d.ts.map +1 -1
  177. package/dist/Option.js +15 -9
  178. package/dist/Option.js.map +1 -1
  179. package/dist/Order.d.ts +6 -1
  180. package/dist/Order.d.ts.map +1 -1
  181. package/dist/Order.js +19 -14
  182. package/dist/Order.js.map +1 -1
  183. package/dist/PartitionedSemaphore.d.ts +146 -15
  184. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  185. package/dist/PartitionedSemaphore.js +174 -61
  186. package/dist/PartitionedSemaphore.js.map +1 -1
  187. package/dist/Pipeable.d.ts +17 -0
  188. package/dist/Pipeable.d.ts.map +1 -1
  189. package/dist/Pipeable.js +19 -1
  190. package/dist/Pipeable.js.map +1 -1
  191. package/dist/PlatformError.d.ts +10 -9
  192. package/dist/PlatformError.d.ts.map +1 -1
  193. package/dist/PlatformError.js +2 -2
  194. package/dist/PlatformError.js.map +1 -1
  195. package/dist/Pool.d.ts +6 -4
  196. package/dist/Pool.d.ts.map +1 -1
  197. package/dist/Pool.js +7 -5
  198. package/dist/Pool.js.map +1 -1
  199. package/dist/PubSub.d.ts +8 -6
  200. package/dist/PubSub.d.ts.map +1 -1
  201. package/dist/PubSub.js +18 -10
  202. package/dist/PubSub.js.map +1 -1
  203. package/dist/Pull.d.ts.map +1 -1
  204. package/dist/Pull.js +1 -1
  205. package/dist/Pull.js.map +1 -1
  206. package/dist/Queue.d.ts +9 -6
  207. package/dist/Queue.d.ts.map +1 -1
  208. package/dist/Queue.js +7 -5
  209. package/dist/Queue.js.map +1 -1
  210. package/dist/Random.d.ts +35 -1
  211. package/dist/Random.d.ts.map +1 -1
  212. package/dist/Random.js +46 -12
  213. package/dist/Random.js.map +1 -1
  214. package/dist/RcMap.d.ts +2 -2
  215. package/dist/RcMap.d.ts.map +1 -1
  216. package/dist/RcMap.js +1 -1
  217. package/dist/RcMap.js.map +1 -1
  218. package/dist/RcRef.d.ts +1 -1
  219. package/dist/RcRef.d.ts.map +1 -1
  220. package/dist/Record.d.ts +63 -160
  221. package/dist/Record.d.ts.map +1 -1
  222. package/dist/Record.js +37 -56
  223. package/dist/Record.js.map +1 -1
  224. package/dist/Reducer.d.ts +166 -7
  225. package/dist/Reducer.d.ts.map +1 -1
  226. package/dist/Reducer.js +135 -1
  227. package/dist/Reducer.js.map +1 -1
  228. package/dist/References.d.ts +242 -226
  229. package/dist/References.d.ts.map +1 -1
  230. package/dist/References.js +240 -247
  231. package/dist/References.js.map +1 -1
  232. package/dist/Request.d.ts +1 -1
  233. package/dist/Request.d.ts.map +1 -1
  234. package/dist/Request.js +2 -1
  235. package/dist/Request.js.map +1 -1
  236. package/dist/RequestResolver.d.ts +25 -45
  237. package/dist/RequestResolver.d.ts.map +1 -1
  238. package/dist/RequestResolver.js +10 -30
  239. package/dist/RequestResolver.js.map +1 -1
  240. package/dist/Resource.d.ts.map +1 -1
  241. package/dist/Resource.js +2 -1
  242. package/dist/Resource.js.map +1 -1
  243. package/dist/Result.d.ts +1 -1
  244. package/dist/Result.d.ts.map +1 -1
  245. package/dist/Result.js +1 -2
  246. package/dist/Result.js.map +1 -1
  247. package/dist/Runtime.d.ts +66 -0
  248. package/dist/Runtime.d.ts.map +1 -1
  249. package/dist/Runtime.js +79 -6
  250. package/dist/Runtime.js.map +1 -1
  251. package/dist/Schedule.d.ts +174 -291
  252. package/dist/Schedule.d.ts.map +1 -1
  253. package/dist/Schedule.js +160 -134
  254. package/dist/Schedule.js.map +1 -1
  255. package/dist/Scheduler.d.ts +34 -123
  256. package/dist/Scheduler.d.ts.map +1 -1
  257. package/dist/Scheduler.js +31 -123
  258. package/dist/Scheduler.js.map +1 -1
  259. package/dist/Schema.d.ts +2722 -247
  260. package/dist/Schema.d.ts.map +1 -1
  261. package/dist/Schema.js +1947 -224
  262. package/dist/Schema.js.map +1 -1
  263. package/dist/SchemaAST.d.ts +7 -2
  264. package/dist/SchemaAST.d.ts.map +1 -1
  265. package/dist/SchemaAST.js +131 -25
  266. package/dist/SchemaAST.js.map +1 -1
  267. package/dist/SchemaGetter.d.ts +5 -5
  268. package/dist/SchemaGetter.d.ts.map +1 -1
  269. package/dist/SchemaGetter.js +18 -18
  270. package/dist/SchemaGetter.js.map +1 -1
  271. package/dist/SchemaParser.d.ts +44 -54
  272. package/dist/SchemaParser.d.ts.map +1 -1
  273. package/dist/SchemaParser.js +55 -2
  274. package/dist/SchemaParser.js.map +1 -1
  275. package/dist/SchemaRepresentation.d.ts +46 -45
  276. package/dist/SchemaRepresentation.d.ts.map +1 -1
  277. package/dist/SchemaRepresentation.js +49 -24
  278. package/dist/SchemaRepresentation.js.map +1 -1
  279. package/dist/SchemaTransformation.d.ts +107 -3
  280. package/dist/SchemaTransformation.d.ts.map +1 -1
  281. package/dist/SchemaTransformation.js +173 -13
  282. package/dist/SchemaTransformation.js.map +1 -1
  283. package/dist/ScopedCache.d.ts +2 -2
  284. package/dist/ScopedCache.d.ts.map +1 -1
  285. package/dist/ScopedCache.js +1 -1
  286. package/dist/ScopedCache.js.map +1 -1
  287. package/dist/Semaphore.d.ts +307 -0
  288. package/dist/Semaphore.d.ts.map +1 -0
  289. package/dist/Semaphore.js +222 -0
  290. package/dist/Semaphore.js.map +1 -0
  291. package/dist/ServiceMap.d.ts +67 -31
  292. package/dist/ServiceMap.d.ts.map +1 -1
  293. package/dist/ServiceMap.js +39 -24
  294. package/dist/ServiceMap.js.map +1 -1
  295. package/dist/Sink.d.ts +18 -15
  296. package/dist/Sink.d.ts.map +1 -1
  297. package/dist/Sink.js +53 -6
  298. package/dist/Sink.js.map +1 -1
  299. package/dist/Stdio.d.ts +16 -4
  300. package/dist/Stdio.d.ts.map +1 -1
  301. package/dist/Stdio.js +18 -0
  302. package/dist/Stdio.js.map +1 -1
  303. package/dist/Stream.d.ts +284 -431
  304. package/dist/Stream.d.ts.map +1 -1
  305. package/dist/Stream.js +189 -88
  306. package/dist/Stream.js.map +1 -1
  307. package/dist/String.d.ts +114 -47
  308. package/dist/String.d.ts.map +1 -1
  309. package/dist/String.js +29 -47
  310. package/dist/String.js.map +1 -1
  311. package/dist/Struct.d.ts +23 -7
  312. package/dist/Struct.d.ts.map +1 -1
  313. package/dist/Struct.js +22 -0
  314. package/dist/Struct.js.map +1 -1
  315. package/dist/SubscriptionRef.d.ts +3 -3
  316. package/dist/SubscriptionRef.d.ts.map +1 -1
  317. package/dist/SubscriptionRef.js +85 -117
  318. package/dist/SubscriptionRef.js.map +1 -1
  319. package/dist/SynchronizedRef.d.ts +2 -1
  320. package/dist/SynchronizedRef.d.ts.map +1 -1
  321. package/dist/SynchronizedRef.js +2 -1
  322. package/dist/SynchronizedRef.js.map +1 -1
  323. package/dist/Terminal.d.ts +2 -1
  324. package/dist/Terminal.d.ts.map +1 -1
  325. package/dist/Terminal.js.map +1 -1
  326. package/dist/Tracer.d.ts +5 -4
  327. package/dist/Tracer.d.ts.map +1 -1
  328. package/dist/Tracer.js +2 -1
  329. package/dist/Tracer.js.map +1 -1
  330. package/dist/Trie.d.ts +44 -31
  331. package/dist/Trie.d.ts.map +1 -1
  332. package/dist/Trie.js +13 -9
  333. package/dist/Trie.js.map +1 -1
  334. package/dist/TxChunk.d.ts +37 -37
  335. package/dist/TxChunk.d.ts.map +1 -1
  336. package/dist/TxChunk.js +3 -3
  337. package/dist/TxChunk.js.map +1 -1
  338. package/dist/TxDeferred.d.ts +328 -0
  339. package/dist/TxDeferred.d.ts.map +1 -0
  340. package/dist/TxDeferred.js +197 -0
  341. package/dist/TxDeferred.js.map +1 -0
  342. package/dist/TxHashMap.d.ts +159 -140
  343. package/dist/TxHashMap.d.ts.map +1 -1
  344. package/dist/TxHashMap.js +51 -44
  345. package/dist/TxHashMap.js.map +1 -1
  346. package/dist/TxHashSet.d.ts +36 -36
  347. package/dist/TxHashSet.d.ts.map +1 -1
  348. package/dist/TxHashSet.js +16 -15
  349. package/dist/TxHashSet.js.map +1 -1
  350. package/dist/TxPriorityQueue.d.ts +609 -0
  351. package/dist/TxPriorityQueue.d.ts.map +1 -0
  352. package/dist/TxPriorityQueue.js +416 -0
  353. package/dist/TxPriorityQueue.js.map +1 -0
  354. package/dist/TxPubSub.d.ts +585 -0
  355. package/dist/TxPubSub.d.ts.map +1 -0
  356. package/dist/TxPubSub.js +521 -0
  357. package/dist/TxPubSub.js.map +1 -0
  358. package/dist/TxQueue.d.ts +32 -32
  359. package/dist/TxQueue.d.ts.map +1 -1
  360. package/dist/TxQueue.js +26 -26
  361. package/dist/TxQueue.js.map +1 -1
  362. package/dist/TxReentrantLock.d.ts +523 -0
  363. package/dist/TxReentrantLock.d.ts.map +1 -0
  364. package/dist/TxReentrantLock.js +504 -0
  365. package/dist/TxReentrantLock.js.map +1 -0
  366. package/dist/TxRef.d.ts +34 -34
  367. package/dist/TxRef.d.ts.map +1 -1
  368. package/dist/TxRef.js +21 -14
  369. package/dist/TxRef.js.map +1 -1
  370. package/dist/TxSemaphore.d.ts +170 -10
  371. package/dist/TxSemaphore.d.ts.map +1 -1
  372. package/dist/TxSemaphore.js +23 -8
  373. package/dist/TxSemaphore.js.map +1 -1
  374. package/dist/TxSubscriptionRef.d.ts +508 -0
  375. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  376. package/dist/TxSubscriptionRef.js +293 -0
  377. package/dist/TxSubscriptionRef.js.map +1 -0
  378. package/dist/Types.d.ts +80 -23
  379. package/dist/Types.d.ts.map +1 -1
  380. package/dist/Utils.d.ts +137 -65
  381. package/dist/Utils.d.ts.map +1 -1
  382. package/dist/Utils.js +38 -66
  383. package/dist/Utils.js.map +1 -1
  384. package/dist/index.d.ts +804 -53
  385. package/dist/index.d.ts.map +1 -1
  386. package/dist/index.js +804 -53
  387. package/dist/index.js.map +1 -1
  388. package/dist/internal/core.js +11 -3
  389. package/dist/internal/core.js.map +1 -1
  390. package/dist/internal/dateTime.js +77 -71
  391. package/dist/internal/dateTime.js.map +1 -1
  392. package/dist/internal/effect.js +281 -201
  393. package/dist/internal/effect.js.map +1 -1
  394. package/dist/internal/hashMap.js +7 -5
  395. package/dist/internal/hashMap.js.map +1 -1
  396. package/dist/internal/option.js +6 -0
  397. package/dist/internal/option.js.map +1 -1
  398. package/dist/internal/random.d.ts +2 -0
  399. package/dist/internal/random.d.ts.map +1 -0
  400. package/dist/internal/random.js +13 -0
  401. package/dist/internal/random.js.map +1 -0
  402. package/dist/internal/rcRef.js +3 -2
  403. package/dist/internal/rcRef.js.map +1 -1
  404. package/dist/internal/references.d.ts +2 -0
  405. package/dist/internal/references.d.ts.map +1 -0
  406. package/dist/internal/references.js +51 -0
  407. package/dist/internal/references.js.map +1 -0
  408. package/dist/internal/request.js +2 -2
  409. package/dist/internal/request.js.map +1 -1
  410. package/dist/internal/schema/annotations.js +2 -0
  411. package/dist/internal/schema/annotations.js.map +1 -1
  412. package/dist/internal/schema/representation.js +47 -106
  413. package/dist/internal/schema/representation.js.map +1 -1
  414. package/dist/internal/schema/schema.js +1 -0
  415. package/dist/internal/schema/schema.js.map +1 -1
  416. package/dist/internal/schema/to-codec.js +7 -10
  417. package/dist/internal/schema/to-codec.js.map +1 -1
  418. package/dist/internal/trie.js +8 -7
  419. package/dist/internal/trie.js.map +1 -1
  420. package/dist/testing/TestClock.d.ts +8 -7
  421. package/dist/testing/TestClock.d.ts.map +1 -1
  422. package/dist/testing/TestClock.js +6 -4
  423. package/dist/testing/TestClock.js.map +1 -1
  424. package/dist/testing/TestSchema.d.ts +266 -32
  425. package/dist/testing/TestSchema.d.ts.map +1 -1
  426. package/dist/testing/TestSchema.js +296 -23
  427. package/dist/testing/TestSchema.js.map +1 -1
  428. package/dist/testing/index.d.ts +64 -1
  429. package/dist/testing/index.d.ts.map +1 -1
  430. package/dist/testing/index.js +64 -1
  431. package/dist/testing/index.js.map +1 -1
  432. package/dist/unstable/ai/AiError.d.ts +136 -54
  433. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  434. package/dist/unstable/ai/AiError.js +28 -23
  435. package/dist/unstable/ai/AiError.js.map +1 -1
  436. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  437. package/dist/unstable/ai/AnthropicStructuredOutput.js +4 -0
  438. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  439. package/dist/unstable/ai/Chat.d.ts +7 -8
  440. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  441. package/dist/unstable/ai/Chat.js +38 -44
  442. package/dist/unstable/ai/Chat.js.map +1 -1
  443. package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
  444. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
  445. package/dist/unstable/ai/EmbeddingModel.js +127 -0
  446. package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
  447. package/dist/unstable/ai/LanguageModel.d.ts +53 -45
  448. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  449. package/dist/unstable/ai/LanguageModel.js +265 -143
  450. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  451. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  452. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  453. package/dist/unstable/ai/McpSchema.js +57 -12
  454. package/dist/unstable/ai/McpSchema.js.map +1 -1
  455. package/dist/unstable/ai/McpServer.d.ts +66 -13
  456. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  457. package/dist/unstable/ai/McpServer.js +193 -51
  458. package/dist/unstable/ai/McpServer.js.map +1 -1
  459. package/dist/unstable/ai/Model.d.ts +25 -7
  460. package/dist/unstable/ai/Model.d.ts.map +1 -1
  461. package/dist/unstable/ai/Model.js +22 -6
  462. package/dist/unstable/ai/Model.js.map +1 -1
  463. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  464. package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
  465. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  466. package/dist/unstable/ai/Prompt.d.ts +20 -20
  467. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  468. package/dist/unstable/ai/Response.d.ts +26 -26
  469. package/dist/unstable/ai/Response.d.ts.map +1 -1
  470. package/dist/unstable/ai/Response.js +1 -1
  471. package/dist/unstable/ai/Response.js.map +1 -1
  472. package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
  473. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
  474. package/dist/unstable/ai/ResponseIdTracker.js +68 -0
  475. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
  476. package/dist/unstable/ai/Tool.d.ts +34 -4
  477. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  478. package/dist/unstable/ai/Tool.js +28 -10
  479. package/dist/unstable/ai/Tool.js.map +1 -1
  480. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  481. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  482. package/dist/unstable/ai/Toolkit.js +4 -11
  483. package/dist/unstable/ai/Toolkit.js.map +1 -1
  484. package/dist/unstable/ai/index.d.ts +22 -1
  485. package/dist/unstable/ai/index.d.ts.map +1 -1
  486. package/dist/unstable/ai/index.js +22 -1
  487. package/dist/unstable/ai/index.js.map +1 -1
  488. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  489. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  490. package/dist/unstable/cli/Argument.d.ts +2 -4
  491. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  492. package/dist/unstable/cli/Argument.js +1 -3
  493. package/dist/unstable/cli/Argument.js.map +1 -1
  494. package/dist/unstable/cli/CliError.d.ts +27 -60
  495. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  496. package/dist/unstable/cli/CliError.js +25 -57
  497. package/dist/unstable/cli/CliError.js.map +1 -1
  498. package/dist/unstable/cli/CliOutput.d.ts +3 -2
  499. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  500. package/dist/unstable/cli/CliOutput.js +65 -10
  501. package/dist/unstable/cli/CliOutput.js.map +1 -1
  502. package/dist/unstable/cli/Command.d.ts +371 -58
  503. package/dist/unstable/cli/Command.d.ts.map +1 -1
  504. package/dist/unstable/cli/Command.js +328 -67
  505. package/dist/unstable/cli/Command.js.map +1 -1
  506. package/dist/unstable/cli/Completions.d.ts +16 -0
  507. package/dist/unstable/cli/Completions.d.ts.map +1 -0
  508. package/dist/unstable/cli/Completions.js +23 -0
  509. package/dist/unstable/cli/Completions.js.map +1 -0
  510. package/dist/unstable/cli/Flag.d.ts +2 -2
  511. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  512. package/dist/unstable/cli/Flag.js +1 -1
  513. package/dist/unstable/cli/Flag.js.map +1 -1
  514. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  515. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  516. package/dist/unstable/cli/GlobalFlag.js +118 -0
  517. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  518. package/dist/unstable/cli/HelpDoc.d.ts +81 -11
  519. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  520. package/dist/unstable/cli/Param.d.ts +4 -4
  521. package/dist/unstable/cli/Param.d.ts.map +1 -1
  522. package/dist/unstable/cli/Param.js +7 -7
  523. package/dist/unstable/cli/Param.js.map +1 -1
  524. package/dist/unstable/cli/Primitive.d.ts +2 -2
  525. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  526. package/dist/unstable/cli/Primitive.js +1 -1
  527. package/dist/unstable/cli/Primitive.js.map +1 -1
  528. package/dist/unstable/cli/Prompt.js +258 -84
  529. package/dist/unstable/cli/Prompt.js.map +1 -1
  530. package/dist/unstable/cli/index.d.ts +8 -0
  531. package/dist/unstable/cli/index.d.ts.map +1 -1
  532. package/dist/unstable/cli/index.js +8 -0
  533. package/dist/unstable/cli/index.js.map +1 -1
  534. package/dist/unstable/cli/internal/command.d.ts +40 -14
  535. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  536. package/dist/unstable/cli/internal/command.js +72 -46
  537. package/dist/unstable/cli/internal/command.js.map +1 -1
  538. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
  539. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  540. package/dist/unstable/cli/internal/config.js +42 -0
  541. package/dist/unstable/cli/internal/config.js.map +1 -1
  542. package/dist/unstable/cli/internal/help.d.ts +33 -0
  543. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  544. package/dist/unstable/cli/internal/help.js +125 -0
  545. package/dist/unstable/cli/internal/help.js.map +1 -0
  546. package/dist/unstable/cli/internal/parser.js +61 -43
  547. package/dist/unstable/cli/internal/parser.js.map +1 -1
  548. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  549. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  550. package/dist/unstable/cluster/ClusterCron.js +1 -1
  551. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  552. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
  553. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  554. package/dist/unstable/cluster/ClusterWorkflowEngine.js +29 -26
  555. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  556. package/dist/unstable/cluster/DeliverAt.js +1 -1
  557. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  558. package/dist/unstable/cluster/Entity.d.ts +10 -8
  559. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  560. package/dist/unstable/cluster/Entity.js +7 -7
  561. package/dist/unstable/cluster/Entity.js.map +1 -1
  562. package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
  563. package/dist/unstable/cluster/EntityAddress.js +1 -1
  564. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  565. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  566. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  567. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  568. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  569. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  570. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  571. package/dist/unstable/cluster/Message.d.ts +14 -13
  572. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  573. package/dist/unstable/cluster/Message.js +3 -2
  574. package/dist/unstable/cluster/Message.js.map +1 -1
  575. package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
  576. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  577. package/dist/unstable/cluster/MessageStorage.js +14 -13
  578. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  579. package/dist/unstable/cluster/Reply.d.ts +8 -7
  580. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  581. package/dist/unstable/cluster/Reply.js +4 -3
  582. package/dist/unstable/cluster/Reply.js.map +1 -1
  583. package/dist/unstable/cluster/Runner.d.ts +1 -1
  584. package/dist/unstable/cluster/Runner.d.ts.map +1 -1
  585. package/dist/unstable/cluster/Runner.js +1 -1
  586. package/dist/unstable/cluster/Runner.js.map +1 -1
  587. package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
  588. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  589. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  590. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  591. package/dist/unstable/cluster/RunnerServer.js +9 -8
  592. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  593. package/dist/unstable/cluster/Runners.d.ts +2 -1
  594. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  595. package/dist/unstable/cluster/Runners.js +11 -9
  596. package/dist/unstable/cluster/Runners.js.map +1 -1
  597. package/dist/unstable/cluster/ShardId.js +3 -3
  598. package/dist/unstable/cluster/ShardId.js.map +1 -1
  599. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  600. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  601. package/dist/unstable/cluster/Sharding.js +28 -20
  602. package/dist/unstable/cluster/Sharding.js.map +1 -1
  603. package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
  604. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  605. package/dist/unstable/cluster/ShardingConfig.js +24 -24
  606. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  607. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  608. package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
  609. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  610. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  611. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  612. package/dist/unstable/cluster/internal/entityManager.js +14 -14
  613. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  614. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  615. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  616. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  617. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  618. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  619. package/dist/unstable/devtools/DevToolsClient.js +4 -3
  620. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  621. package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
  622. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  623. package/dist/unstable/devtools/DevToolsSchema.js +9 -2
  624. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  625. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  626. package/dist/unstable/encoding/Ndjson.d.ts +9 -9
  627. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  628. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  629. package/dist/unstable/encoding/Sse.d.ts +4 -4
  630. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  631. package/dist/unstable/encoding/Sse.js +1 -1
  632. package/dist/unstable/encoding/Sse.js.map +1 -1
  633. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  634. package/dist/unstable/eventlog/EventJournal.js +2 -2
  635. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  636. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  637. package/dist/unstable/eventlog/EventLog.js +3 -2
  638. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  639. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  640. package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
  641. package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
  642. package/dist/unstable/http/Cookies.d.ts +52 -7
  643. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  644. package/dist/unstable/http/Cookies.js +27 -6
  645. package/dist/unstable/http/Cookies.js.map +1 -1
  646. package/dist/unstable/http/Etag.d.ts.map +1 -1
  647. package/dist/unstable/http/Etag.js +5 -1
  648. package/dist/unstable/http/Etag.js.map +1 -1
  649. package/dist/unstable/http/Headers.d.ts +19 -2
  650. package/dist/unstable/http/Headers.d.ts.map +1 -1
  651. package/dist/unstable/http/Headers.js +40 -11
  652. package/dist/unstable/http/Headers.js.map +1 -1
  653. package/dist/unstable/http/HttpBody.d.ts +1 -1
  654. package/dist/unstable/http/HttpClient.d.ts +117 -15
  655. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  656. package/dist/unstable/http/HttpClient.js +191 -13
  657. package/dist/unstable/http/HttpClient.js.map +1 -1
  658. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  659. package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
  660. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  661. package/dist/unstable/http/HttpClientRequest.js +131 -21
  662. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  663. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  664. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  665. package/dist/unstable/http/HttpClientResponse.js +6 -1
  666. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  667. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  668. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  669. package/dist/unstable/http/HttpEffect.js +46 -54
  670. package/dist/unstable/http/HttpEffect.js.map +1 -1
  671. package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
  672. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  673. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  674. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  675. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  676. package/dist/unstable/http/HttpMethod.js +3 -3
  677. package/dist/unstable/http/HttpMethod.js.map +1 -1
  678. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  679. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  680. package/dist/unstable/http/HttpMiddleware.js +24 -32
  681. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  682. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  683. package/dist/unstable/http/HttpPlatform.js +3 -2
  684. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  685. package/dist/unstable/http/HttpRouter.d.ts +2 -1
  686. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  687. package/dist/unstable/http/HttpRouter.js +7 -7
  688. package/dist/unstable/http/HttpRouter.js.map +1 -1
  689. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  690. package/dist/unstable/http/HttpServer.js +2 -2
  691. package/dist/unstable/http/HttpServer.js.map +1 -1
  692. package/dist/unstable/http/HttpServerError.d.ts +22 -34
  693. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  694. package/dist/unstable/http/HttpServerError.js +39 -45
  695. package/dist/unstable/http/HttpServerError.js.map +1 -1
  696. package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
  697. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  698. package/dist/unstable/http/HttpServerRequest.js +301 -7
  699. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  700. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  701. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  702. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  703. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  704. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  705. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  706. package/dist/unstable/http/HttpServerResponse.js +236 -1
  707. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  708. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  709. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  710. package/dist/unstable/http/HttpStaticServer.js +353 -0
  711. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  712. package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
  713. package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
  714. package/dist/unstable/http/HttpTraceContext.js +27 -15
  715. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  716. package/dist/unstable/http/Multipart.d.ts +3 -3
  717. package/dist/unstable/http/Url.d.ts +604 -0
  718. package/dist/unstable/http/Url.d.ts.map +1 -0
  719. package/dist/unstable/http/Url.js +256 -0
  720. package/dist/unstable/http/Url.js.map +1 -0
  721. package/dist/unstable/http/UrlParams.d.ts +19 -10
  722. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  723. package/dist/unstable/http/UrlParams.js +6 -7
  724. package/dist/unstable/http/UrlParams.js.map +1 -1
  725. package/dist/unstable/http/index.d.ts +8 -0
  726. package/dist/unstable/http/index.d.ts.map +1 -1
  727. package/dist/unstable/http/index.js +8 -0
  728. package/dist/unstable/http/index.js.map +1 -1
  729. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  730. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  731. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  732. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  733. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  734. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  735. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  736. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  737. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  738. package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
  739. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  740. package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
  741. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  742. package/dist/unstable/httpapi/HttpApiClient.js +78 -10
  743. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  744. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
  745. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  746. package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
  747. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  748. package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
  749. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  750. package/dist/unstable/httpapi/HttpApiError.js +125 -32
  751. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  752. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  753. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  754. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  755. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
  756. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  757. package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
  758. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  759. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  760. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  761. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  762. package/dist/unstable/httpapi/HttpApiSchema.d.ts +5 -0
  763. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  764. package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
  765. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  766. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  767. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  768. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  769. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  770. package/dist/unstable/httpapi/OpenApi.js +34 -26
  771. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  772. package/dist/unstable/observability/Otlp.d.ts +12 -12
  773. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  774. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  775. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  776. package/dist/unstable/observability/OtlpExporter.js +3 -3
  777. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  778. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  779. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  780. package/dist/unstable/observability/OtlpLogger.js +7 -4
  781. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  782. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  783. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  784. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  785. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  786. package/dist/unstable/observability/OtlpTracer.js +7 -3
  787. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  788. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  789. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  790. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  791. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  792. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  793. package/dist/unstable/persistence/Persistable.js +1 -1
  794. package/dist/unstable/persistence/Persistable.js.map +1 -1
  795. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  796. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  797. package/dist/unstable/persistence/PersistedCache.js +2 -1
  798. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  799. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  800. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  801. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  802. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  803. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  804. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  805. package/dist/unstable/persistence/Persistence.js +2 -2
  806. package/dist/unstable/persistence/Persistence.js.map +1 -1
  807. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  808. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  809. package/dist/unstable/persistence/RateLimiter.js +1 -1
  810. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  811. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  812. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  813. package/dist/unstable/process/ChildProcess.js +1 -65
  814. package/dist/unstable/process/ChildProcess.js.map +1 -1
  815. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  816. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  817. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  818. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  819. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  820. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  821. package/dist/unstable/reactivity/Atom.js +108 -25
  822. package/dist/unstable/reactivity/Atom.js.map +1 -1
  823. package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
  824. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  825. package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
  826. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  827. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  828. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  829. package/dist/unstable/reactivity/AtomRegistry.js +54 -11
  830. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  831. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  832. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  833. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  834. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  835. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  836. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  837. package/dist/unstable/reactivity/Hydration.js +76 -0
  838. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  839. package/dist/unstable/reactivity/index.d.ts +4 -0
  840. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  841. package/dist/unstable/reactivity/index.js +4 -0
  842. package/dist/unstable/reactivity/index.js.map +1 -1
  843. package/dist/unstable/rpc/Rpc.d.ts +5 -5
  844. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  845. package/dist/unstable/rpc/Rpc.js +4 -3
  846. package/dist/unstable/rpc/Rpc.js.map +1 -1
  847. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  848. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  849. package/dist/unstable/rpc/RpcClient.js +10 -17
  850. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  851. package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
  852. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  853. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  854. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  855. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  856. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  857. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  858. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  859. package/dist/unstable/rpc/RpcSchema.js +17 -2
  860. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  861. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  862. package/dist/unstable/rpc/RpcSerialization.js +39 -11
  863. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  864. package/dist/unstable/rpc/RpcServer.d.ts +6 -10
  865. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  866. package/dist/unstable/rpc/RpcServer.js +20 -19
  867. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  868. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  869. package/dist/unstable/rpc/Utils.js +3 -2
  870. package/dist/unstable/rpc/Utils.js.map +1 -1
  871. package/dist/unstable/schema/Model.d.ts +22 -1
  872. package/dist/unstable/schema/Model.d.ts.map +1 -1
  873. package/dist/unstable/schema/Model.js +15 -0
  874. package/dist/unstable/schema/Model.js.map +1 -1
  875. package/dist/unstable/schema/VariantSchema.d.ts +6 -6
  876. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  877. package/dist/unstable/schema/VariantSchema.js +6 -6
  878. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  879. package/dist/unstable/socket/Socket.d.ts +6 -5
  880. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  881. package/dist/unstable/socket/Socket.js +12 -9
  882. package/dist/unstable/socket/Socket.js.map +1 -1
  883. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  884. package/dist/unstable/sql/Migrator.d.ts +1 -1
  885. package/dist/unstable/sql/Migrator.d.ts.map +1 -1
  886. package/dist/unstable/sql/Migrator.js +2 -2
  887. package/dist/unstable/sql/Migrator.js.map +1 -1
  888. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  889. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  890. package/dist/unstable/sql/SqlClient.js +1 -1
  891. package/dist/unstable/sql/SqlClient.js.map +1 -1
  892. package/dist/unstable/sql/SqlError.d.ts +237 -17
  893. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  894. package/dist/unstable/sql/SqlError.js +260 -4
  895. package/dist/unstable/sql/SqlError.js.map +1 -1
  896. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  897. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  898. package/dist/unstable/sql/SqlModel.js +3 -3
  899. package/dist/unstable/sql/SqlModel.js.map +1 -1
  900. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  901. package/dist/unstable/sql/SqlResolver.js +17 -8
  902. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  903. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  904. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  905. package/dist/unstable/sql/SqlSchema.js +17 -7
  906. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  907. package/dist/unstable/sql/Statement.js +0 -1
  908. package/dist/unstable/sql/Statement.js.map +1 -1
  909. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  910. package/dist/unstable/workers/Worker.js +2 -1
  911. package/dist/unstable/workers/Worker.js.map +1 -1
  912. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  913. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  914. package/dist/unstable/workflow/DurableClock.js +3 -3
  915. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  916. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  917. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  918. package/dist/unstable/workflow/Workflow.d.ts +5 -4
  919. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  920. package/dist/unstable/workflow/Workflow.js +1 -1
  921. package/dist/unstable/workflow/Workflow.js.map +1 -1
  922. package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
  923. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  924. package/dist/unstable/workflow/WorkflowEngine.js +153 -12
  925. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  926. package/package.json +2 -2
  927. package/src/Array.ts +304 -447
  928. package/src/BigDecimal.ts +63 -66
  929. package/src/BigInt.ts +49 -41
  930. package/src/Brand.ts +1 -1
  931. package/src/Cache.ts +9 -8
  932. package/src/Cause.ts +37 -2
  933. package/src/Channel.ts +582 -154
  934. package/src/Chunk.ts +149 -331
  935. package/src/Combiner.ts +280 -13
  936. package/src/Config.ts +195 -25
  937. package/src/Cron.ts +155 -63
  938. package/src/Data.ts +539 -376
  939. package/src/DateTime.ts +75 -256
  940. package/src/Deferred.ts +8 -6
  941. package/src/Duration.ts +122 -66
  942. package/src/Effect.ts +1483 -1157
  943. package/src/Encoding.ts +879 -0
  944. package/src/Equal.ts +278 -111
  945. package/src/Equivalence.ts +114 -52
  946. package/src/ErrorReporter.ts +458 -0
  947. package/src/Exit.ts +24 -12
  948. package/src/Fiber.ts +12 -3
  949. package/src/FiberHandle.ts +10 -9
  950. package/src/FiberMap.ts +22 -22
  951. package/src/FileSystem.ts +34 -31
  952. package/src/Filter.ts +52 -63
  953. package/src/Formatter.ts +253 -51
  954. package/src/Function.ts +2 -10
  955. package/src/Graph.ts +131 -117
  956. package/src/HashMap.ts +26 -19
  957. package/src/Iterable.ts +117 -63
  958. package/src/JsonSchema.ts +383 -10
  959. package/src/Latch.ts +194 -0
  960. package/src/Layer.ts +393 -159
  961. package/src/LayerMap.ts +11 -9
  962. package/src/LogLevel.ts +37 -0
  963. package/src/Logger.ts +33 -100
  964. package/src/ManagedRuntime.ts +2 -2
  965. package/src/Metric.ts +6 -8
  966. package/src/MutableHashMap.ts +9 -0
  967. package/src/MutableHashSet.ts +9 -0
  968. package/src/Newtype.ts +308 -0
  969. package/src/Number.ts +85 -26
  970. package/src/Optic.ts +948 -19
  971. package/src/Option.ts +34 -24
  972. package/src/Order.ts +39 -32
  973. package/src/PartitionedSemaphore.ts +288 -56
  974. package/src/Pipeable.ts +32 -1
  975. package/src/PlatformError.ts +5 -5
  976. package/src/Pool.ts +13 -11
  977. package/src/PubSub.ts +30 -20
  978. package/src/Pull.ts +1 -1
  979. package/src/Queue.ts +11 -9
  980. package/src/Random.ts +51 -14
  981. package/src/RcMap.ts +5 -5
  982. package/src/RcRef.ts +1 -1
  983. package/src/Record.ts +94 -199
  984. package/src/Reducer.ts +166 -7
  985. package/src/References.ts +283 -287
  986. package/src/Request.ts +3 -2
  987. package/src/RequestResolver.ts +29 -49
  988. package/src/Resource.ts +2 -1
  989. package/src/Result.ts +2 -4
  990. package/src/Runtime.ts +102 -6
  991. package/src/Schedule.ts +458 -449
  992. package/src/Scheduler.ts +49 -126
  993. package/src/Schema.ts +3298 -392
  994. package/src/SchemaAST.ts +172 -33
  995. package/src/SchemaGetter.ts +19 -21
  996. package/src/SchemaParser.ts +92 -27
  997. package/src/SchemaRepresentation.ts +51 -26
  998. package/src/SchemaTransformation.ts +198 -13
  999. package/src/ScopedCache.ts +3 -3
  1000. package/src/Semaphore.ts +444 -0
  1001. package/src/ServiceMap.ts +133 -71
  1002. package/src/Sink.ts +83 -28
  1003. package/src/Stdio.ts +27 -4
  1004. package/src/Stream.ts +687 -617
  1005. package/src/String.ts +122 -69
  1006. package/src/Struct.ts +33 -7
  1007. package/src/SubscriptionRef.ts +101 -120
  1008. package/src/SynchronizedRef.ts +3 -2
  1009. package/src/Terminal.ts +2 -1
  1010. package/src/Tracer.ts +6 -5
  1011. package/src/Trie.ts +44 -31
  1012. package/src/TxChunk.ts +72 -53
  1013. package/src/TxDeferred.ts +394 -0
  1014. package/src/TxHashMap.ts +409 -343
  1015. package/src/TxHashSet.ts +113 -118
  1016. package/src/TxPriorityQueue.ts +766 -0
  1017. package/src/TxPubSub.ts +789 -0
  1018. package/src/TxQueue.ts +241 -251
  1019. package/src/TxReentrantLock.ts +753 -0
  1020. package/src/TxRef.ts +50 -38
  1021. package/src/TxSemaphore.ts +217 -44
  1022. package/src/TxSubscriptionRef.ts +639 -0
  1023. package/src/Types.ts +73 -19
  1024. package/src/Utils.ts +137 -111
  1025. package/src/index.ts +814 -54
  1026. package/src/internal/core.ts +12 -5
  1027. package/src/internal/dateTime.ts +91 -96
  1028. package/src/internal/effect.ts +841 -432
  1029. package/src/internal/hashMap.ts +12 -10
  1030. package/src/internal/option.ts +7 -0
  1031. package/src/internal/random.ts +20 -0
  1032. package/src/internal/rcRef.ts +4 -3
  1033. package/src/internal/references.ts +72 -0
  1034. package/src/internal/request.ts +2 -2
  1035. package/src/internal/schema/annotations.ts +2 -0
  1036. package/src/internal/schema/representation.ts +45 -94
  1037. package/src/internal/schema/schema.ts +1 -0
  1038. package/src/internal/schema/to-codec.ts +7 -17
  1039. package/src/internal/trie.ts +21 -15
  1040. package/src/testing/TestClock.ts +13 -11
  1041. package/src/testing/TestSchema.ts +332 -35
  1042. package/src/testing/index.ts +64 -1
  1043. package/src/unstable/ai/AiError.ts +111 -54
  1044. package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
  1045. package/src/unstable/ai/Chat.ts +62 -74
  1046. package/src/unstable/ai/EmbeddingModel.ts +209 -0
  1047. package/src/unstable/ai/LanguageModel.ts +544 -230
  1048. package/src/unstable/ai/McpSchema.ts +73 -13
  1049. package/src/unstable/ai/McpServer.ts +271 -61
  1050. package/src/unstable/ai/Model.ts +40 -9
  1051. package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
  1052. package/src/unstable/ai/Prompt.ts +37 -37
  1053. package/src/unstable/ai/Response.ts +25 -25
  1054. package/src/unstable/ai/ResponseIdTracker.ts +97 -0
  1055. package/src/unstable/ai/Tool.ts +42 -16
  1056. package/src/unstable/ai/Toolkit.ts +5 -14
  1057. package/src/unstable/ai/index.ts +24 -1
  1058. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  1059. package/src/unstable/cli/Argument.ts +2 -4
  1060. package/src/unstable/cli/CliError.ts +47 -59
  1061. package/src/unstable/cli/CliOutput.ts +85 -13
  1062. package/src/unstable/cli/Command.ts +801 -192
  1063. package/src/unstable/cli/Completions.ts +36 -0
  1064. package/src/unstable/cli/Flag.ts +2 -2
  1065. package/src/unstable/cli/GlobalFlag.ts +242 -0
  1066. package/src/unstable/cli/HelpDoc.ts +91 -11
  1067. package/src/unstable/cli/Param.ts +15 -11
  1068. package/src/unstable/cli/Primitive.ts +2 -2
  1069. package/src/unstable/cli/Prompt.ts +262 -100
  1070. package/src/unstable/cli/index.ts +10 -0
  1071. package/src/unstable/cli/internal/command.ts +109 -63
  1072. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
  1073. package/src/unstable/cli/internal/config.ts +49 -0
  1074. package/src/unstable/cli/internal/help.ts +171 -0
  1075. package/src/unstable/cli/internal/parser.ts +71 -63
  1076. package/src/unstable/cluster/ClusterCron.ts +2 -2
  1077. package/src/unstable/cluster/ClusterWorkflowEngine.ts +40 -34
  1078. package/src/unstable/cluster/DeliverAt.ts +1 -1
  1079. package/src/unstable/cluster/Entity.ts +24 -22
  1080. package/src/unstable/cluster/EntityAddress.ts +1 -1
  1081. package/src/unstable/cluster/EntityResource.ts +4 -4
  1082. package/src/unstable/cluster/Envelope.ts +1 -1
  1083. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  1084. package/src/unstable/cluster/Message.ts +6 -5
  1085. package/src/unstable/cluster/MessageStorage.ts +29 -30
  1086. package/src/unstable/cluster/Reply.ts +7 -4
  1087. package/src/unstable/cluster/Runner.ts +1 -1
  1088. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  1089. package/src/unstable/cluster/RunnerServer.ts +10 -13
  1090. package/src/unstable/cluster/Runners.ts +14 -12
  1091. package/src/unstable/cluster/ShardId.ts +2 -2
  1092. package/src/unstable/cluster/Sharding.ts +36 -27
  1093. package/src/unstable/cluster/ShardingConfig.ts +36 -37
  1094. package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
  1095. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  1096. package/src/unstable/cluster/internal/entityManager.ts +36 -29
  1097. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  1098. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  1099. package/src/unstable/devtools/DevToolsClient.ts +23 -18
  1100. package/src/unstable/devtools/DevToolsSchema.ts +16 -3
  1101. package/src/unstable/encoding/Ndjson.ts +17 -17
  1102. package/src/unstable/encoding/Sse.ts +3 -5
  1103. package/src/unstable/eventlog/EventJournal.ts +2 -2
  1104. package/src/unstable/eventlog/EventLog.ts +3 -2
  1105. package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
  1106. package/src/unstable/http/Cookies.ts +94 -11
  1107. package/src/unstable/http/Etag.ts +5 -3
  1108. package/src/unstable/http/Headers.ts +68 -18
  1109. package/src/unstable/http/HttpClient.ts +376 -34
  1110. package/src/unstable/http/HttpClientRequest.ts +151 -39
  1111. package/src/unstable/http/HttpClientResponse.ts +12 -6
  1112. package/src/unstable/http/HttpEffect.ts +54 -68
  1113. package/src/unstable/http/HttpIncomingMessage.ts +3 -2
  1114. package/src/unstable/http/HttpMethod.ts +16 -4
  1115. package/src/unstable/http/HttpMiddleware.ts +25 -39
  1116. package/src/unstable/http/HttpPlatform.ts +3 -2
  1117. package/src/unstable/http/HttpRouter.ts +9 -9
  1118. package/src/unstable/http/HttpServer.ts +3 -9
  1119. package/src/unstable/http/HttpServerError.ts +45 -47
  1120. package/src/unstable/http/HttpServerRequest.ts +407 -16
  1121. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  1122. package/src/unstable/http/HttpServerResponse.ts +345 -7
  1123. package/src/unstable/http/HttpStaticServer.ts +456 -0
  1124. package/src/unstable/http/HttpTraceContext.ts +31 -17
  1125. package/src/unstable/http/Multipart.ts +2 -2
  1126. package/src/unstable/http/Url.ts +650 -0
  1127. package/src/unstable/http/UrlParams.ts +31 -19
  1128. package/src/unstable/http/index.ts +10 -0
  1129. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1130. package/src/unstable/httpapi/HttpApi.ts +6 -6
  1131. package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
  1132. package/src/unstable/httpapi/HttpApiClient.ts +180 -28
  1133. package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
  1134. package/src/unstable/httpapi/HttpApiError.ts +108 -30
  1135. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  1136. package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
  1137. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  1138. package/src/unstable/httpapi/HttpApiSchema.ts +20 -2
  1139. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  1140. package/src/unstable/httpapi/OpenApi.ts +43 -29
  1141. package/src/unstable/observability/Otlp.ts +12 -12
  1142. package/src/unstable/observability/OtlpExporter.ts +8 -5
  1143. package/src/unstable/observability/OtlpLogger.ts +13 -9
  1144. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  1145. package/src/unstable/observability/OtlpTracer.ts +12 -8
  1146. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  1147. package/src/unstable/persistence/Persistable.ts +3 -3
  1148. package/src/unstable/persistence/PersistedCache.ts +20 -9
  1149. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  1150. package/src/unstable/persistence/Persistence.ts +3 -3
  1151. package/src/unstable/persistence/RateLimiter.ts +4 -4
  1152. package/src/unstable/process/ChildProcess.ts +6 -208
  1153. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  1154. package/src/unstable/reactivity/Atom.ts +212 -54
  1155. package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
  1156. package/src/unstable/reactivity/AtomRegistry.ts +66 -12
  1157. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  1158. package/src/unstable/reactivity/Hydration.ts +112 -0
  1159. package/src/unstable/reactivity/index.ts +5 -0
  1160. package/src/unstable/rpc/Rpc.ts +11 -12
  1161. package/src/unstable/rpc/RpcClient.ts +22 -63
  1162. package/src/unstable/rpc/RpcGroup.ts +7 -7
  1163. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  1164. package/src/unstable/rpc/RpcSchema.ts +23 -5
  1165. package/src/unstable/rpc/RpcSerialization.ts +49 -11
  1166. package/src/unstable/rpc/RpcServer.ts +31 -35
  1167. package/src/unstable/rpc/Utils.ts +3 -2
  1168. package/src/unstable/schema/Model.ts +31 -0
  1169. package/src/unstable/schema/VariantSchema.ts +10 -10
  1170. package/src/unstable/socket/Socket.ts +31 -27
  1171. package/src/unstable/sql/Migrator.ts +7 -5
  1172. package/src/unstable/sql/SqlClient.ts +6 -4
  1173. package/src/unstable/sql/SqlError.ts +365 -11
  1174. package/src/unstable/sql/SqlModel.ts +5 -5
  1175. package/src/unstable/sql/SqlResolver.ts +17 -7
  1176. package/src/unstable/sql/SqlSchema.ts +42 -26
  1177. package/src/unstable/sql/Statement.ts +0 -1
  1178. package/src/unstable/workers/Worker.ts +2 -1
  1179. package/src/unstable/workflow/DurableClock.ts +8 -8
  1180. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  1181. package/src/unstable/workflow/Workflow.ts +7 -3
  1182. package/src/unstable/workflow/WorkflowEngine.ts +211 -19
  1183. package/dist/NullOr.d.ts +0 -149
  1184. package/dist/NullOr.d.ts.map +0 -1
  1185. package/dist/NullOr.js +0 -152
  1186. package/dist/NullOr.js.map +0 -1
  1187. package/dist/encoding/Base64.d.ts +0 -67
  1188. package/dist/encoding/Base64.d.ts.map +0 -1
  1189. package/dist/encoding/Base64.js +0 -146
  1190. package/dist/encoding/Base64.js.map +0 -1
  1191. package/dist/encoding/Base64Url.d.ts +0 -60
  1192. package/dist/encoding/Base64Url.d.ts.map +0 -1
  1193. package/dist/encoding/Base64Url.js +0 -89
  1194. package/dist/encoding/Base64Url.js.map +0 -1
  1195. package/dist/encoding/EncodingError.d.ts +0 -31
  1196. package/dist/encoding/EncodingError.d.ts.map +0 -1
  1197. package/dist/encoding/EncodingError.js +0 -22
  1198. package/dist/encoding/EncodingError.js.map +0 -1
  1199. package/dist/encoding/Hex.d.ts +0 -61
  1200. package/dist/encoding/Hex.d.ts.map +0 -1
  1201. package/dist/encoding/Hex.js +0 -115
  1202. package/dist/encoding/Hex.js.map +0 -1
  1203. package/dist/encoding/index.d.ts +0 -26
  1204. package/dist/encoding/index.d.ts.map +0 -1
  1205. package/dist/encoding/index.js +0 -27
  1206. package/dist/encoding/index.js.map +0 -1
  1207. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  1208. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  1209. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  1210. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  1211. package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
  1212. package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
  1213. package/dist/unstable/cli/internal/completions/Completions.js +0 -23
  1214. package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
  1215. package/src/NullOr.ts +0 -204
  1216. package/src/encoding/Base64.ts +0 -366
  1217. package/src/encoding/Base64Url.ts +0 -104
  1218. package/src/encoding/EncodingError.ts +0 -35
  1219. package/src/encoding/Hex.ts +0 -390
  1220. package/src/encoding/index.ts +0 -31
  1221. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
  1222. package/src/unstable/cli/internal/completions/Completions.ts +0 -31
@@ -710,7 +710,7 @@ export const date = (options: DateOptions): Prompt<Date> => {
710
710
  typed: "",
711
711
  cursor: initialCursorPosition,
712
712
  value: opts.initial,
713
- error: undefined
713
+ error: Option.none()
714
714
  }
715
715
  return custom(initialState, {
716
716
  render: handleDateRender(opts),
@@ -727,7 +727,7 @@ export const file = (options: FileOptions = {}): Prompt<string> => {
727
727
  const opts: FileOptionsReq = {
728
728
  type: options.type ?? "file",
729
729
  message: options.message ?? `Choose a file`,
730
- startingPath: options.startingPath,
730
+ startingPath: Option.fromUndefinedOr(options.startingPath),
731
731
  maxPerPage: options.maxPerPage ?? 10,
732
732
  filter: options.filter ?? (() => Effect.succeed(true))
733
733
  }
@@ -736,10 +736,10 @@ export const file = (options: FileOptions = {}): Prompt<string> => {
736
736
  never,
737
737
  Environment
738
738
  > = Effect.gen(function*() {
739
- const currentPath = yield* resolveCurrentPath(undefined, opts)
739
+ const currentPath = yield* resolveCurrentPath(Option.none(), opts)
740
740
  const files = yield* getFileList(currentPath, opts)
741
741
  const confirm = Confirm.Hide()
742
- return { cursor: 0, files, path: undefined, confirm }
742
+ return { cursor: 0, files, allFiles: files, query: "", path: Option.none(), confirm }
743
743
  })
744
744
  return custom(initialState, {
745
745
  render: handleFileRender(opts),
@@ -799,7 +799,7 @@ export const float = (options: FloatOptions): Prompt<number> => {
799
799
  const initialState: NumberState = {
800
800
  cursor: 0,
801
801
  value: "",
802
- error: undefined
802
+ error: Option.none()
803
803
  }
804
804
  return custom(initialState, {
805
805
  render: handleRenderFloat(opts),
@@ -839,7 +839,7 @@ export const integer = (options: IntegerOptions): Prompt<number> => {
839
839
  const initialState: NumberState = {
840
840
  cursor: 0,
841
841
  value: "",
842
- error: undefined
842
+ error: Option.none()
843
843
  }
844
844
  return custom(initialState, {
845
845
  render: handleRenderInteger(opts),
@@ -1009,7 +1009,7 @@ export const multiSelect = <const A>(
1009
1009
  initialSelected.add(i)
1010
1010
  }
1011
1011
  }
1012
- const initialState: MultiSelectState = { index: 0, selectedIndices: initialSelected, error: undefined }
1012
+ const initialState: MultiSelectState = { index: 0, selectedIndices: initialSelected, error: Option.none() }
1013
1013
  return custom(initialState, {
1014
1014
  render: handleMultiSelectRender(opts),
1015
1015
  process: handleMultiSelectProcess(opts),
@@ -1289,7 +1289,7 @@ const TRUE_VALUE_REGEXP = /^y|t$/
1289
1289
  const FALSE_VALUE_REGEXP = /^n|f$/
1290
1290
 
1291
1291
  const handleConfirmProcess = (input: Terminal.UserInput, defaultValue: boolean) => {
1292
- const value = input.input ?? ""
1292
+ const value = Option.getOrElse(input.input, () => "")
1293
1293
  if (input.key.name === "enter" || input.key.name === "return") {
1294
1294
  return Effect.succeed(Action.Submit({ value: defaultValue }))
1295
1295
  }
@@ -1309,7 +1309,7 @@ interface DateState {
1309
1309
  readonly cursor: number
1310
1310
  readonly value: globalThis.Date
1311
1311
  readonly dateParts: ReadonlyArray<DatePart>
1312
- readonly error: string | undefined
1312
+ readonly error: Option.Option<string>
1313
1313
  }
1314
1314
 
1315
1315
  const handleDateClear = (options: DateOptionsReq) => {
@@ -1320,8 +1320,8 @@ const handleDateClear = (options: DateOptionsReq) => {
1320
1320
  const resetCurrentLine = Ansi.eraseLine + Ansi.cursorLeft
1321
1321
  const parts = Arr.reduce(state.dateParts, "", (doc, part) => doc + part.toString())
1322
1322
  const promptText = renderDateOutput("?", figures.pointerSmall, parts, options, { plain: true })
1323
- const errorText = state.error !== undefined
1324
- ? Arr.match(state.error.split(NEWLINE_REGEXP), {
1323
+ const errorText = Option.isSome(state.error)
1324
+ ? Arr.match(state.error.value.split(NEWLINE_REGEXP), {
1325
1325
  onEmpty: () => "",
1326
1326
  onNonEmpty: (errorLines) => `${figures.pointerSmall} ${errorLines.join("\n")}`
1327
1327
  })
@@ -1332,8 +1332,8 @@ const handleDateClear = (options: DateOptionsReq) => {
1332
1332
  }
1333
1333
 
1334
1334
  const renderDateError = (state: DateState, pointer: string): string => {
1335
- if (state.error !== undefined) {
1336
- const errorLines = state.error.split(NEWLINE_REGEXP)
1335
+ if (Option.isSome(state.error)) {
1336
+ const errorLines = state.error.value.split(NEWLINE_REGEXP)
1337
1337
  if (Arr.isReadonlyArrayNonEmpty(errorLines)) {
1338
1338
  const prefix = Ansi.annotate(pointer, Ansi.red) + " "
1339
1339
  const lines = Arr.map(errorLines, (str) => annotateErrorLine(str))
@@ -1401,12 +1401,12 @@ const processDown = (state: DateState) => {
1401
1401
 
1402
1402
  const processDateCursorLeft = (state: DateState) => {
1403
1403
  const previous = state.dateParts[state.cursor].previousPart()
1404
- if (previous !== undefined) {
1404
+ if (Option.isSome(previous)) {
1405
1405
  return Action.NextFrame({
1406
1406
  state: {
1407
1407
  ...state,
1408
1408
  typed: "",
1409
- cursor: state.dateParts.indexOf(previous)
1409
+ cursor: state.dateParts.indexOf(previous.value)
1410
1410
  }
1411
1411
  })
1412
1412
  }
@@ -1415,12 +1415,12 @@ const processDateCursorLeft = (state: DateState) => {
1415
1415
 
1416
1416
  const processDateCursorRight = (state: DateState) => {
1417
1417
  const next = state.dateParts[state.cursor].nextPart()
1418
- if (next !== undefined) {
1418
+ if (Option.isSome(next)) {
1419
1419
  return Action.NextFrame({
1420
1420
  state: {
1421
1421
  ...state,
1422
1422
  typed: "",
1423
- cursor: state.dateParts.indexOf(next)
1423
+ cursor: state.dateParts.indexOf(next.value)
1424
1424
  }
1425
1425
  })
1426
1426
  }
@@ -1429,9 +1429,10 @@ const processDateCursorRight = (state: DateState) => {
1429
1429
 
1430
1430
  const processDateNext = (state: DateState) => {
1431
1431
  const next = state.dateParts[state.cursor].nextPart()
1432
- const cursor = next !== undefined
1433
- ? state.dateParts.indexOf(next)
1434
- : state.dateParts.findIndex((part) => !part.isToken())
1432
+ const cursor = Option.match(next, {
1433
+ onNone: () => state.dateParts.findIndex((part) => !part.isToken()),
1434
+ onSome: (next) => state.dateParts.indexOf(next)
1435
+ })
1435
1436
  return Action.NextFrame({
1436
1437
  state: { ...state, cursor }
1437
1438
  })
@@ -1505,14 +1506,14 @@ const handleDateProcess = (options: DateOptionsReq) => {
1505
1506
  Action.NextFrame({
1506
1507
  state: {
1507
1508
  ...state,
1508
- error
1509
+ error: Option.some(error)
1509
1510
  }
1510
1511
  }),
1511
1512
  onSuccess: (value) => Action.Submit({ value })
1512
1513
  })
1513
1514
  }
1514
1515
  default: {
1515
- return Effect.succeed(defaultDateProcessor(input.input ?? "", state))
1516
+ return Effect.succeed(defaultDateProcessor(Option.getOrElse(input.input, () => ""), state))
1516
1517
  }
1517
1518
  }
1518
1519
  }
@@ -1609,23 +1610,20 @@ abstract class DatePart {
1609
1610
  /**
1610
1611
  * Retrieves the next date part in the list of parts.
1611
1612
  */
1612
- nextPart(): DatePart | undefined {
1613
- const currentPartIndex = Arr.findFirstIndex(this.parts, (part) => part === this) ?? 0
1614
- return Option.getOrUndefined(
1615
- Arr.findFirst(this.parts.slice(currentPartIndex + 1), (part) => !part.isToken())
1616
- )
1613
+ nextPart(): Option.Option<DatePart> {
1614
+ const currentPartIndex = Option.getOrElse(Arr.findFirstIndex(this.parts, (part) => part === this), () => 0)
1615
+ return Arr.findFirst(this.parts.slice(currentPartIndex + 1), (part) => !part.isToken())
1617
1616
  }
1618
1617
 
1619
1618
  /**
1620
1619
  * Retrieves the previous date part in the list of parts.
1621
1620
  */
1622
- previousPart(): DatePart | undefined {
1621
+ previousPart(): Option.Option<DatePart> {
1623
1622
  const currentPartIndex = Arr.findFirstIndex(this.parts, (part) => part === this)
1624
- if (currentPartIndex !== undefined) {
1625
- return Option.getOrUndefined(
1626
- Arr.findLast(this.parts.slice(0, currentPartIndex), (part) => !part.isToken())
1627
- )
1623
+ if (Option.isSome(currentPartIndex)) {
1624
+ return Arr.findLast(this.parts.slice(0, currentPartIndex.value), (part) => !part.isToken())
1628
1625
  }
1626
+ return Option.none()
1629
1627
  }
1630
1628
 
1631
1629
  toString() {
@@ -1851,17 +1849,22 @@ class Meridiem extends DatePart {
1851
1849
  }
1852
1850
 
1853
1851
  interface FileOptionsReq extends Required<Omit<FileOptions, "startingPath">> {
1854
- readonly startingPath: string | undefined
1852
+ readonly startingPath: Option.Option<string>
1855
1853
  }
1856
1854
 
1857
1855
  interface FileState {
1858
1856
  readonly cursor: number
1859
1857
  readonly files: ReadonlyArray<string>
1860
- readonly path: string | undefined
1858
+ readonly allFiles: ReadonlyArray<string>
1859
+ readonly query: string
1860
+ readonly path: Option.Option<string>
1861
1861
  readonly confirm: Confirm
1862
1862
  }
1863
1863
 
1864
1864
  const CONFIRM_MESSAGE = "The selected directory contains files. Would you like to traverse the selected directory?"
1865
+ const FILE_FILTER_LABEL = "filter"
1866
+ const FILE_FILTER_PLACEHOLDER = "type to filter"
1867
+ const FILE_EMPTY_MESSAGE = "No matches"
1865
1868
  type Confirm = Data.TaggedEnum<{
1866
1869
  readonly Show: {}
1867
1870
  readonly Hide: {}
@@ -1871,14 +1874,14 @@ const Confirm = Data.taggedEnum<Confirm>()
1871
1874
  const showConfirmation = Confirm.$is("Show")
1872
1875
 
1873
1876
  const resolveCurrentPath = (
1874
- path: string | undefined,
1877
+ path: Option.Option<string>,
1875
1878
  options: FileOptionsReq
1876
1879
  ): Effect.Effect<string, never, FileSystem.FileSystem> => {
1877
- if (path !== undefined) {
1878
- return Effect.succeed(path)
1880
+ if (Option.isSome(path)) {
1881
+ return Effect.succeed(path.value)
1879
1882
  }
1880
- const startingPath = options.startingPath
1881
- if (startingPath !== undefined) {
1883
+ if (Option.isSome(options.startingPath)) {
1884
+ const startingPath = options.startingPath.value
1882
1885
  return Effect.flatMap(FileSystem.FileSystem.asEffect(), (fs) =>
1883
1886
  // Ensure the user provided starting path exists
1884
1887
  Effect.orDie(fs.exists(startingPath)).pipe(
@@ -1916,6 +1919,40 @@ const getFileList = Effect.fnUntraced(function*(directory: string, options: File
1916
1919
  }, { concurrency: files.length })
1917
1920
  })
1918
1921
 
1922
+ const filterFiles = (files: ReadonlyArray<string>, query: string) => {
1923
+ if (query.length === 0) {
1924
+ return files
1925
+ }
1926
+ const normalizedQuery = query.toLowerCase()
1927
+ const filtered: Array<string> = []
1928
+ for (let index = 0; index < files.length; index++) {
1929
+ if (files[index].toLowerCase().includes(normalizedQuery)) {
1930
+ filtered.push(files[index])
1931
+ }
1932
+ }
1933
+ return filtered
1934
+ }
1935
+
1936
+ const updateFileState = (
1937
+ state: FileState,
1938
+ query: string,
1939
+ allFiles: ReadonlyArray<string> = state.allFiles
1940
+ ): FileState => {
1941
+ const files = filterFiles(allFiles, query)
1942
+ if (files.length === 0) {
1943
+ return { ...state, query, allFiles, files, cursor: 0 }
1944
+ }
1945
+ const selected = state.files[state.cursor]
1946
+ const cursor = selected === undefined ? 0 : files.indexOf(selected)
1947
+ return {
1948
+ ...state,
1949
+ query,
1950
+ allFiles,
1951
+ files,
1952
+ cursor: cursor === -1 ? 0 : cursor
1953
+ }
1954
+ }
1955
+
1919
1956
  const handleFileClear = (options: FileOptionsReq) => {
1920
1957
  return Effect.fnUntraced(function*(state: FileState, _: Action<FileState, string>) {
1921
1958
  const terminal = yield* Terminal.Terminal
@@ -1924,12 +1961,14 @@ const handleFileClear = (options: FileOptionsReq) => {
1924
1961
  const figures = yield* platformFigures
1925
1962
  const currentPath = yield* resolveCurrentPath(state.path, options)
1926
1963
  const selectedPath = state.files[state.cursor]
1927
- const resolvedPath = path.resolve(currentPath, selectedPath)
1964
+ const resolvedPath = selectedPath === undefined ? currentPath : path.resolve(currentPath, selectedPath)
1928
1965
  const resolvedPathText = `${figures.pointerSmall} ${resolvedPath}`
1929
1966
  const isConfirming = showConfirmation(state.confirm)
1930
1967
  const promptText = isConfirming
1931
1968
  ? renderPrompt("(Y/n)", CONFIRM_MESSAGE, "?", figures.pointerSmall, { plain: true })
1932
- : renderPrompt("", options.message, figures.tick, figures.ellipsis, { plain: true })
1969
+ : renderPrompt(renderFileFilter(state, { plain: true }), options.message, figures.tick, figures.ellipsis, {
1970
+ plain: true
1971
+ })
1933
1972
  const filesText = isConfirming
1934
1973
  ? ""
1935
1974
  : renderFiles(state, state.files, figures, options, { plain: true })
@@ -1997,6 +2036,17 @@ const renderFileName = (file: string, isSelected: boolean, renderOptions?: Rende
1997
2036
  : file
1998
2037
  }
1999
2038
 
2039
+ const renderFileFilter = (state: FileState, renderOptions?: RenderOptions | undefined) => {
2040
+ const filterValue = state.query.length === 0
2041
+ ? renderOptions?.plain === true
2042
+ ? FILE_FILTER_PLACEHOLDER
2043
+ : Ansi.annotate(FILE_FILTER_PLACEHOLDER, Ansi.blackBright)
2044
+ : renderOptions?.plain === true
2045
+ ? state.query
2046
+ : Ansi.annotate(state.query, Ansi.combine(Ansi.underlined, Ansi.cyanBright))
2047
+ return `[${FILE_FILTER_LABEL}: ${filterValue}]`
2048
+ }
2049
+
2000
2050
  const renderFiles = (
2001
2051
  state: FileState,
2002
2052
  files: ReadonlyArray<string>,
@@ -2005,6 +2055,11 @@ const renderFiles = (
2005
2055
  renderOptions?: RenderOptions | undefined
2006
2056
  ) => {
2007
2057
  const length = files.length
2058
+ if (length === 0) {
2059
+ return renderOptions?.plain === true
2060
+ ? FILE_EMPTY_MESSAGE
2061
+ : Ansi.annotate(FILE_EMPTY_MESSAGE, Ansi.blackBright)
2062
+ }
2008
2063
  const toDisplay = entriesToDisplay(state.cursor, length, options.maxPerPage)
2009
2064
  const documents: Array<string> = []
2010
2065
  for (let index = toDisplay.startIndex; index < toDisplay.endIndex; index++) {
@@ -2021,7 +2076,7 @@ const renderFileNextFrame = Effect.fnUntraced(function*(state: FileState, option
2021
2076
  const figures = yield* platformFigures
2022
2077
  const currentPath = yield* resolveCurrentPath(state.path, options)
2023
2078
  const selectedPath = state.files[state.cursor]
2024
- const resolvedPath = path.resolve(currentPath, selectedPath)
2079
+ const resolvedPath = selectedPath === undefined ? currentPath : path.resolve(currentPath, selectedPath)
2025
2080
  const resolvedPathMsg = Ansi.annotate(figures.pointerSmall + " " + resolvedPath, Ansi.blackBright)
2026
2081
 
2027
2082
  if (showConfirmation(state.confirm)) {
@@ -2033,33 +2088,36 @@ const renderFileNextFrame = Effect.fnUntraced(function*(state: FileState, option
2033
2088
  }
2034
2089
  const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green)
2035
2090
  const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright)
2036
- const promptMsg = renderPrompt("", options.message, leadingSymbol, trailingSymbol)
2091
+ const promptMsg = renderPrompt(renderFileFilter(state), options.message, leadingSymbol, trailingSymbol)
2037
2092
  const files = renderFiles(state, state.files, figures, options)
2038
2093
  return Ansi.cursorHide + promptMsg + "\n" + resolvedPathMsg + "\n" + files
2039
2094
  })
2040
2095
 
2041
- const renderFileSubmission = Effect.fnUntraced(function*(value: string, options: FileOptionsReq) {
2096
+ const renderFileSubmission = Effect.fnUntraced(function*(state: FileState, value: string, options: FileOptionsReq) {
2042
2097
  const figures = yield* platformFigures
2043
2098
  const leadingSymbol = Ansi.annotate(figures.tick, Ansi.green)
2044
2099
  const trailingSymbol = Ansi.annotate(figures.ellipsis, Ansi.blackBright)
2045
- const promptMsg = renderPrompt("", options.message, leadingSymbol, trailingSymbol)
2100
+ const promptMsg = renderPrompt(renderFileFilter(state), options.message, leadingSymbol, trailingSymbol)
2046
2101
  return promptMsg + " " + Ansi.annotate(value, Ansi.white) + "\n"
2047
2102
  })
2048
2103
 
2049
2104
  const handleFileRender = (options: FileOptionsReq) => {
2050
2105
  return (
2051
- _: FileState,
2106
+ state: FileState,
2052
2107
  action: Action<FileState, string>
2053
2108
  ): Effect.Effect<string, never, Path.Path | FileSystem.FileSystem> => {
2054
2109
  return Action.$match(action, {
2055
2110
  Beep: () => Effect.succeed(renderBeep),
2056
2111
  NextFrame: ({ state }) => renderFileNextFrame(state, options),
2057
- Submit: ({ value }) => renderFileSubmission(value, options)
2112
+ Submit: ({ value }) => renderFileSubmission(state, value, options)
2058
2113
  })
2059
2114
  }
2060
2115
  }
2061
2116
 
2062
2117
  const processFileCursorUp = (state: FileState) => {
2118
+ if (state.files.length === 0) {
2119
+ return Effect.succeed(Action.Beep())
2120
+ }
2063
2121
  const cursor = state.cursor - 1
2064
2122
  return Effect.succeed(Action.NextFrame({
2065
2123
  state: { ...state, cursor: cursor < 0 ? state.files.length - 1 : cursor }
@@ -2067,12 +2125,36 @@ const processFileCursorUp = (state: FileState) => {
2067
2125
  }
2068
2126
 
2069
2127
  const processFileCursorDown = (state: FileState) => {
2128
+ if (state.files.length === 0) {
2129
+ return Effect.succeed(Action.Beep())
2130
+ }
2070
2131
  return Effect.succeed(Action.NextFrame({
2071
2132
  state: { ...state, cursor: (state.cursor + 1) % state.files.length }
2072
2133
  }))
2073
2134
  }
2074
2135
 
2136
+ const processFileBackspace = (state: FileState) => {
2137
+ if (state.query.length === 0) {
2138
+ return Effect.succeed(Action.Beep())
2139
+ }
2140
+ const query = state.query.slice(0, state.query.length - 1)
2141
+ return Effect.succeed(Action.NextFrame({ state: updateFileState(state, query) }))
2142
+ }
2143
+
2144
+ const processFileClear = (state: FileState) => Effect.succeed(Action.NextFrame({ state: updateFileState(state, "") }))
2145
+
2146
+ const processFileInput = (input: string, state: FileState) => {
2147
+ if (input.length === 0) {
2148
+ return Effect.succeed(Action.Beep())
2149
+ }
2150
+ const query = state.query + input
2151
+ return Effect.succeed(Action.NextFrame({ state: updateFileState(state, query) }))
2152
+ }
2153
+
2075
2154
  const processSelection = Effect.fnUntraced(function*(state: FileState, options: FileOptionsReq) {
2155
+ if (state.files.length === 0) {
2156
+ return Action.Beep()
2157
+ }
2076
2158
  const fs = yield* FileSystem.FileSystem
2077
2159
  const path = yield* Path.Path
2078
2160
  const currentPath = yield* resolveCurrentPath(state.path, options)
@@ -2099,7 +2181,9 @@ const processSelection = Effect.fnUntraced(function*(state: FileState, options:
2099
2181
  state: {
2100
2182
  cursor: 0,
2101
2183
  files,
2102
- path: resolvedPath,
2184
+ allFiles: files,
2185
+ query: "",
2186
+ path: Option.some(resolvedPath),
2103
2187
  confirm: Confirm.Hide()
2104
2188
  }
2105
2189
  })
@@ -2109,6 +2193,15 @@ const processSelection = Effect.fnUntraced(function*(state: FileState, options:
2109
2193
 
2110
2194
  const handleFileProcess = (options: FileOptionsReq) => {
2111
2195
  return Effect.fnUntraced(function*(input: Terminal.UserInput, state: FileState) {
2196
+ if (input.key.ctrl) {
2197
+ if (input.key.name === "u") {
2198
+ if (showConfirmation(state.confirm)) {
2199
+ return Action.Beep()
2200
+ }
2201
+ return yield* processFileClear(state)
2202
+ }
2203
+ return Action.Beep()
2204
+ }
2112
2205
  switch (input.key.name) {
2113
2206
  case "k":
2114
2207
  case "up": {
@@ -2119,6 +2212,12 @@ const handleFileProcess = (options: FileOptionsReq) => {
2119
2212
  case "tab": {
2120
2213
  return yield* processFileCursorDown(state)
2121
2214
  }
2215
+ case "backspace": {
2216
+ if (showConfirmation(state.confirm)) {
2217
+ return Action.Beep()
2218
+ }
2219
+ return yield* processFileBackspace(state)
2220
+ }
2122
2221
  case "enter":
2123
2222
  case "return": {
2124
2223
  return yield* processSelection(state, options)
@@ -2135,12 +2234,14 @@ const handleFileProcess = (options: FileOptionsReq) => {
2135
2234
  state: {
2136
2235
  cursor: 0,
2137
2236
  files,
2138
- path: resolvedPath,
2237
+ allFiles: files,
2238
+ query: "",
2239
+ path: Option.some(resolvedPath),
2139
2240
  confirm: Confirm.Hide()
2140
2241
  }
2141
2242
  })
2142
2243
  }
2143
- return Action.Beep()
2244
+ return yield* processFileInput(Option.getOrElse(input.input, () => ""), state)
2144
2245
  }
2145
2246
  case "n":
2146
2247
  case "f": {
@@ -2151,10 +2252,13 @@ const handleFileProcess = (options: FileOptionsReq) => {
2151
2252
  const resolvedPath = path.resolve(currentPath, selectedPath)
2152
2253
  return Action.Submit({ value: resolvedPath })
2153
2254
  }
2154
- return Action.Beep()
2255
+ return yield* processFileInput(Option.getOrElse(input.input, () => ""), state)
2155
2256
  }
2156
2257
  default: {
2157
- return Action.Beep()
2258
+ if (showConfirmation(state.confirm)) {
2259
+ return Action.Beep()
2260
+ }
2261
+ return yield* processFileInput(Option.getOrElse(input.input, () => ""), state)
2158
2262
  }
2159
2263
  }
2160
2264
  })
@@ -2166,7 +2270,7 @@ interface MultiSelectOptionsReq extends MultiSelectOptions {}
2166
2270
  type MultiSelectState = {
2167
2271
  index: number
2168
2272
  selectedIndices: Set<number>
2169
- error: string | undefined
2273
+ error: Option.Option<string>
2170
2274
  }
2171
2275
 
2172
2276
  const renderMultiSelectError = (
@@ -2174,8 +2278,8 @@ const renderMultiSelectError = (
2174
2278
  pointer: string,
2175
2279
  renderOptions?: RenderOptions | undefined
2176
2280
  ): string => {
2177
- if (state.error !== undefined) {
2178
- return Arr.match(state.error.split(NEWLINE_REGEXP), {
2281
+ if (Option.isSome(state.error)) {
2282
+ return Arr.match(state.error.value.split(NEWLINE_REGEXP), {
2179
2283
  onEmpty: () => "",
2180
2284
  onNonEmpty: (errorLines) => {
2181
2285
  if (renderOptions?.plain === true) {
@@ -2347,12 +2451,12 @@ const handleMultiSelectProcess = <A>(options: SelectOptionsReq<A> & MultiSelectO
2347
2451
  switch (input.key.name) {
2348
2452
  case "k":
2349
2453
  case "up": {
2350
- return processMultiSelectCursorUp({ ...state, error: undefined }, totalChoices)
2454
+ return processMultiSelectCursorUp({ ...state, error: Option.none() }, totalChoices)
2351
2455
  }
2352
2456
  case "j":
2353
2457
  case "down":
2354
2458
  case "tab": {
2355
- return processMultiSelectCursorDown({ ...state, error: undefined }, totalChoices)
2459
+ return processMultiSelectCursorDown({ ...state, error: Option.none() }, totalChoices)
2356
2460
  }
2357
2461
  case "space": {
2358
2462
  return processSpace(state, options)
@@ -2362,12 +2466,12 @@ const handleMultiSelectProcess = <A>(options: SelectOptionsReq<A> & MultiSelectO
2362
2466
  const selectedCount = state.selectedIndices.size
2363
2467
  if (options.min !== undefined && selectedCount < options.min) {
2364
2468
  return Effect.succeed(
2365
- Action.NextFrame({ state: { ...state, error: `At least ${options.min} are required` } })
2469
+ Action.NextFrame({ state: { ...state, error: Option.some(`At least ${options.min} are required`) } })
2366
2470
  )
2367
2471
  }
2368
2472
  if (options.max !== undefined && selectedCount > options.max) {
2369
2473
  return Effect.succeed(
2370
- Action.NextFrame({ state: { ...state, error: `At most ${options.max} choices are allowed` } })
2474
+ Action.NextFrame({ state: { ...state, error: Option.some(`At most ${options.max} choices are allowed`) } })
2371
2475
  )
2372
2476
  }
2373
2477
  const selectedValues = Array.from(state.selectedIndices).sort(EffectNumber.Order).map((index) =>
@@ -2398,7 +2502,7 @@ interface FloatOptionsReq extends Required<FloatOptions> {}
2398
2502
  interface NumberState {
2399
2503
  readonly cursor: number
2400
2504
  readonly value: string
2401
- readonly error: string | undefined
2505
+ readonly error: Option.Option<string>
2402
2506
  }
2403
2507
 
2404
2508
  const handleNumberClear = (options: IntegerOptionsReq) => {
@@ -2423,7 +2527,7 @@ const renderNumberInput = (
2423
2527
  if (submitted || renderOptions?.plain === true) {
2424
2528
  return value
2425
2529
  }
2426
- const annotation = state.error !== undefined ?
2530
+ const annotation = Option.isSome(state.error) ?
2427
2531
  Ansi.red :
2428
2532
  Ansi.combine(Ansi.underlined, Ansi.cyanBright)
2429
2533
  return Ansi.annotate(value, annotation)
@@ -2434,8 +2538,8 @@ const renderNumberError = (
2434
2538
  pointer: string,
2435
2539
  renderOptions?: RenderOptions | undefined
2436
2540
  ) => {
2437
- if (state.error !== undefined) {
2438
- return Arr.match(state.error.split(NEWLINE_REGEXP), {
2541
+ if (Option.isSome(state.error)) {
2542
+ return Arr.match(state.error.value.split(NEWLINE_REGEXP), {
2439
2543
  onEmpty: () => "",
2440
2544
  onNonEmpty: (errorLines) => {
2441
2545
  if (renderOptions?.plain === true) {
@@ -2485,14 +2589,19 @@ const processNumberBackspace = (state: NumberState) => {
2485
2589
  }
2486
2590
  const value = state.value.slice(0, state.value.length - 1)
2487
2591
  return Effect.succeed(Action.NextFrame({
2488
- state: { ...state, value, error: undefined }
2592
+ state: { ...state, value, error: Option.none() }
2489
2593
  }))
2490
2594
  }
2491
2595
 
2596
+ const processNumberClear = (state: NumberState) =>
2597
+ Effect.succeed(Action.NextFrame({
2598
+ state: { ...state, cursor: 0, value: "", error: Option.none() }
2599
+ }))
2600
+
2492
2601
  const defaultIntProcessor = (input: string, state: NumberState) => {
2493
2602
  if (state.value.length === 0 && input === "-") {
2494
2603
  return Effect.succeed(Action.NextFrame({
2495
- state: { ...state, value: "-", error: undefined }
2604
+ state: { ...state, value: "-", error: Option.none() }
2496
2605
  }))
2497
2606
  }
2498
2607
 
@@ -2501,7 +2610,7 @@ const defaultIntProcessor = (input: string, state: NumberState) => {
2501
2610
  return Effect.succeed(Action.Beep())
2502
2611
  } else {
2503
2612
  return Effect.succeed(Action.NextFrame({
2504
- state: { ...state, value: `${parsed}`, error: undefined }
2613
+ state: { ...state, value: `${parsed}`, error: Option.none() }
2505
2614
  }))
2506
2615
  }
2507
2616
  }
@@ -2512,7 +2621,7 @@ const defaultFloatProcessor = (input: string, state: NumberState) => {
2512
2621
  }
2513
2622
  if (state.value.length === 0 && input === "-") {
2514
2623
  return Effect.succeed(Action.NextFrame({
2515
- state: { ...state, value: "-", error: undefined }
2624
+ state: { ...state, value: "-", error: Option.none() }
2516
2625
  }))
2517
2626
  }
2518
2627
 
@@ -2524,7 +2633,7 @@ const defaultFloatProcessor = (input: string, state: NumberState) => {
2524
2633
  state: {
2525
2634
  ...state,
2526
2635
  value: input === "." ? `${parsed}.` : `${parsed}`,
2527
- error: undefined
2636
+ error: Option.none()
2528
2637
  }
2529
2638
  }))
2530
2639
  }
@@ -2542,6 +2651,9 @@ const handleRenderInteger = (options: IntegerOptionsReq) => {
2542
2651
 
2543
2652
  const handleProcessInteger = (options: IntegerOptionsReq) => {
2544
2653
  return (input: Terminal.UserInput, state: NumberState) => {
2654
+ if (input.key.ctrl && input.key.name === "u") {
2655
+ return processNumberClear(state)
2656
+ }
2545
2657
  switch (input.key.name) {
2546
2658
  case "backspace": {
2547
2659
  return processNumberBackspace(state)
@@ -2554,7 +2666,7 @@ const handleProcessInteger = (options: IntegerOptionsReq) => {
2554
2666
  value: state.value === "" || state.value === "-"
2555
2667
  ? `${options.incrementBy}`
2556
2668
  : `${Number.parseInt(state.value) + options.incrementBy}`,
2557
- error: undefined
2669
+ error: Option.none()
2558
2670
  }
2559
2671
  }))
2560
2672
  }
@@ -2566,7 +2678,7 @@ const handleProcessInteger = (options: IntegerOptionsReq) => {
2566
2678
  value: state.value === "" || state.value === "-"
2567
2679
  ? `-${options.decrementBy}`
2568
2680
  : `${Number.parseInt(state.value) - options.decrementBy}`,
2569
- error: undefined
2681
+ error: Option.none()
2570
2682
  }
2571
2683
  }))
2572
2684
  }
@@ -2577,7 +2689,7 @@ const handleProcessInteger = (options: IntegerOptionsReq) => {
2577
2689
  return Effect.succeed(Action.NextFrame({
2578
2690
  state: {
2579
2691
  ...state,
2580
- error: "Must provide an integer value"
2692
+ error: Option.some("Must provide an integer value")
2581
2693
  }
2582
2694
  }))
2583
2695
  } else {
@@ -2586,7 +2698,7 @@ const handleProcessInteger = (options: IntegerOptionsReq) => {
2586
2698
  Action.NextFrame({
2587
2699
  state: {
2588
2700
  ...state,
2589
- error
2701
+ error: Option.some(error)
2590
2702
  }
2591
2703
  }),
2592
2704
  onSuccess: (value) => Action.Submit({ value })
@@ -2594,7 +2706,7 @@ const handleProcessInteger = (options: IntegerOptionsReq) => {
2594
2706
  }
2595
2707
  }
2596
2708
  default: {
2597
- return defaultIntProcessor(input.input ?? "", state)
2709
+ return defaultIntProcessor(Option.getOrElse(input.input, () => ""), state)
2598
2710
  }
2599
2711
  }
2600
2712
  }
@@ -2612,6 +2724,9 @@ const handleRenderFloat = (options: FloatOptionsReq) => {
2612
2724
 
2613
2725
  const handleProcessFloat = (options: FloatOptionsReq) => {
2614
2726
  return (input: Terminal.UserInput, state: NumberState) => {
2727
+ if (input.key.ctrl && input.key.name === "u") {
2728
+ return processNumberClear(state)
2729
+ }
2615
2730
  switch (input.key.name) {
2616
2731
  case "backspace": {
2617
2732
  return processNumberBackspace(state)
@@ -2624,7 +2739,7 @@ const handleProcessFloat = (options: FloatOptionsReq) => {
2624
2739
  value: state.value === "" || state.value === "-"
2625
2740
  ? `${options.incrementBy}`
2626
2741
  : `${Number.parseFloat(state.value) + options.incrementBy}`,
2627
- error: undefined
2742
+ error: Option.none()
2628
2743
  }
2629
2744
  }))
2630
2745
  }
@@ -2636,7 +2751,7 @@ const handleProcessFloat = (options: FloatOptionsReq) => {
2636
2751
  value: state.value === "" || state.value === "-"
2637
2752
  ? `-${options.decrementBy}`
2638
2753
  : `${Number.parseFloat(state.value) - options.decrementBy}`,
2639
- error: undefined
2754
+ error: Option.none()
2640
2755
  }
2641
2756
  }))
2642
2757
  }
@@ -2647,7 +2762,7 @@ const handleProcessFloat = (options: FloatOptionsReq) => {
2647
2762
  return Effect.succeed(Action.NextFrame({
2648
2763
  state: {
2649
2764
  ...state,
2650
- error: "Must provide a floating point value"
2765
+ error: Option.some("Must provide a floating point value")
2651
2766
  }
2652
2767
  }))
2653
2768
  } else {
@@ -2659,7 +2774,7 @@ const handleProcessFloat = (options: FloatOptionsReq) => {
2659
2774
  Action.NextFrame({
2660
2775
  state: {
2661
2776
  ...state,
2662
- error
2777
+ error: Option.some(error)
2663
2778
  }
2664
2779
  }),
2665
2780
  onSuccess: (value) => Action.Submit({ value })
@@ -2668,7 +2783,7 @@ const handleProcessFloat = (options: FloatOptionsReq) => {
2668
2783
  }
2669
2784
  }
2670
2785
  default: {
2671
- return defaultFloatProcessor(input.input ?? "", state)
2786
+ return defaultFloatProcessor(Option.getOrElse(input.input, () => ""), state)
2672
2787
  }
2673
2788
  }
2674
2789
  }
@@ -2712,7 +2827,7 @@ const updateAutoCompleteState = <A>(
2712
2827
  }
2713
2828
 
2714
2829
  const autoCompleteCursor = (state: AutoCompleteState) =>
2715
- Arr.findFirstIndex(state.filtered, (index) => index === state.index) ?? 0
2830
+ Option.getOrElse(Arr.findFirstIndex(state.filtered, (index) => index === state.index), () => 0)
2716
2831
 
2717
2832
  const renderSelectOutput = <A>(
2718
2833
  leadingSymbol: string,
@@ -2962,6 +3077,9 @@ const processAutoCompleteBackspace = <A>(state: AutoCompleteState, options: Auto
2962
3077
  return Effect.succeed(Action.NextFrame({ state: updateAutoCompleteState(state, options, query) }))
2963
3078
  }
2964
3079
 
3080
+ const processAutoCompleteClear = <A>(state: AutoCompleteState, options: AutoCompleteOptionsReq<A>) =>
3081
+ Effect.succeed(Action.NextFrame({ state: updateAutoCompleteState(state, options, "") }))
3082
+
2965
3083
  const processAutoCompleteInput = <A>(input: string, state: AutoCompleteState, options: AutoCompleteOptionsReq<A>) => {
2966
3084
  if (input.length === 0) {
2967
3085
  return Effect.succeed(Action.Beep())
@@ -3045,6 +3163,12 @@ const handleSelectProcess = <A>(options: SelectOptionsReq<A>) => {
3045
3163
 
3046
3164
  const handleAutoCompleteProcess = <A>(options: AutoCompleteOptionsReq<A>) => {
3047
3165
  return (input: Terminal.UserInput, state: AutoCompleteState) => {
3166
+ if (input.key.ctrl) {
3167
+ if (input.key.name === "u") {
3168
+ return processAutoCompleteClear(state, options)
3169
+ }
3170
+ return Effect.succeed(Action.Beep())
3171
+ }
3048
3172
  switch (input.key.name) {
3049
3173
  case "k":
3050
3174
  case "up": {
@@ -3072,7 +3196,7 @@ const handleAutoCompleteProcess = <A>(options: AutoCompleteOptionsReq<A>) => {
3072
3196
  return Effect.succeed(Action.Submit({ value: selected.value }))
3073
3197
  }
3074
3198
  default: {
3075
- return processAutoCompleteInput(input.input ?? "", state, options)
3199
+ return processAutoCompleteInput(Option.getOrElse(input.input, () => ""), state, options)
3076
3200
  }
3077
3201
  }
3078
3202
  }
@@ -3088,11 +3212,7 @@ interface TextOptionsReq extends Required<TextOptions> {
3088
3212
  interface TextState {
3089
3213
  readonly cursor: number
3090
3214
  readonly value: string
3091
- readonly error: string | undefined
3092
- }
3093
-
3094
- const getValue = (state: TextState, options: TextOptionsReq): string => {
3095
- return state.value.length > 0 ? state.value : options.default
3215
+ readonly error: Option.Option<string>
3096
3216
  }
3097
3217
 
3098
3218
  const renderClearScreen = Effect.fnUntraced(function*(state: TextState, options: TextOptionsReq) {
@@ -3115,7 +3235,7 @@ const renderTextInput = (
3115
3235
  submitted: boolean,
3116
3236
  renderOptions?: RenderOptions | undefined
3117
3237
  ) => {
3118
- const text = getValue(nextState, options)
3238
+ const text = nextState.value
3119
3239
  if (renderOptions?.plain === true) {
3120
3240
  switch (options.type) {
3121
3241
  case "hidden": {
@@ -3130,7 +3250,7 @@ const renderTextInput = (
3130
3250
  }
3131
3251
  }
3132
3252
 
3133
- const annotation = nextState.error !== undefined ?
3253
+ const annotation = Option.isSome(nextState.error) ?
3134
3254
  Ansi.red
3135
3255
  : submitted ?
3136
3256
  Ansi.white
@@ -3156,8 +3276,8 @@ const renderTextError = (
3156
3276
  pointer: string,
3157
3277
  renderOptions?: RenderOptions | undefined
3158
3278
  ): string => {
3159
- if (nextState.error !== undefined) {
3160
- return Arr.match(nextState.error.split(NEWLINE_REGEXP), {
3279
+ if (Option.isSome(nextState.error)) {
3280
+ return Arr.match(nextState.error.value.split(NEWLINE_REGEXP), {
3161
3281
  onEmpty: () => "",
3162
3282
  onNonEmpty: (errorLines) => {
3163
3283
  if (renderOptions?.plain === true) {
@@ -3212,11 +3332,18 @@ const processTextBackspace = (state: TextState) => {
3212
3332
  const value = `${beforeCursor}${afterCursor}`
3213
3333
  return Effect.succeed(
3214
3334
  Action.NextFrame({
3215
- state: { ...state, cursor, value, error: undefined }
3335
+ state: { ...state, cursor, value, error: Option.none() }
3216
3336
  })
3217
3337
  )
3218
3338
  }
3219
3339
 
3340
+ const processTextClear = (state: TextState) =>
3341
+ Effect.succeed(
3342
+ Action.NextFrame({
3343
+ state: { ...state, cursor: 0, value: "", error: Option.none() }
3344
+ })
3345
+ )
3346
+
3220
3347
  const processTextCursorLeft = (state: TextState) => {
3221
3348
  if (state.cursor <= 0) {
3222
3349
  return Effect.succeed(Action.Beep())
@@ -3224,7 +3351,7 @@ const processTextCursorLeft = (state: TextState) => {
3224
3351
  const cursor = state.cursor - 1
3225
3352
  return Effect.succeed(
3226
3353
  Action.NextFrame({
3227
- state: { ...state, cursor, error: undefined }
3354
+ state: { ...state, cursor, error: Option.none() }
3228
3355
  })
3229
3356
  )
3230
3357
  }
@@ -3236,20 +3363,33 @@ const processTextCursorRight = (state: TextState) => {
3236
3363
  const cursor = Math.min(state.cursor + 1, state.value.length)
3237
3364
  return Effect.succeed(
3238
3365
  Action.NextFrame({
3239
- state: { ...state, cursor, error: undefined }
3366
+ state: { ...state, cursor, error: Option.none() }
3240
3367
  })
3241
3368
  )
3242
3369
  }
3243
3370
 
3371
+ const processTextCursorStart = (state: TextState) =>
3372
+ Effect.succeed(
3373
+ Action.NextFrame({
3374
+ state: { ...state, cursor: 0, error: Option.none() }
3375
+ })
3376
+ )
3377
+
3378
+ const processTextCursorEnd = (state: TextState) =>
3379
+ Effect.succeed(
3380
+ Action.NextFrame({
3381
+ state: { ...state, cursor: state.value.length, error: Option.none() }
3382
+ })
3383
+ )
3384
+
3244
3385
  const processTab = (state: TextState, options: TextOptionsReq) => {
3245
3386
  if (state.value === options.default) {
3246
3387
  return Effect.succeed(Action.Beep())
3247
3388
  }
3248
- const value = getValue(state, options)
3249
- const cursor = value.length
3389
+ const value = state.value.length === 0 ? options.default : state.value
3250
3390
  return Effect.succeed(
3251
3391
  Action.NextFrame({
3252
- state: { ...state, value, cursor, error: undefined }
3392
+ state: { ...state, value, cursor: value.length, error: Option.none() }
3253
3393
  })
3254
3394
  )
3255
3395
  }
@@ -3261,7 +3401,7 @@ const defaultTextProcessor = (input: string, state: TextState) => {
3261
3401
  const cursor = state.cursor + input.length
3262
3402
  return Effect.succeed(
3263
3403
  Action.NextFrame({
3264
- state: { ...state, cursor, value, error: undefined }
3404
+ state: { ...state, cursor, value, error: Option.none() }
3265
3405
  })
3266
3406
  )
3267
3407
  }
@@ -3278,6 +3418,22 @@ const handleTextRender = (options: TextOptionsReq) => {
3278
3418
 
3279
3419
  const handleTextProcess = (options: TextOptionsReq) => {
3280
3420
  return (input: Terminal.UserInput, state: TextState) => {
3421
+ if (input.key.ctrl) {
3422
+ switch (input.key.name) {
3423
+ case "u": {
3424
+ return processTextClear(state)
3425
+ }
3426
+ case "a": {
3427
+ return processTextCursorStart(state)
3428
+ }
3429
+ case "e": {
3430
+ return processTextCursorEnd(state)
3431
+ }
3432
+ default: {
3433
+ return Effect.succeed(Action.Beep())
3434
+ }
3435
+ }
3436
+ }
3281
3437
  switch (input.key.name) {
3282
3438
  case "backspace": {
3283
3439
  return processTextBackspace(state)
@@ -3288,13 +3444,19 @@ const handleTextProcess = (options: TextOptionsReq) => {
3288
3444
  case "right": {
3289
3445
  return processTextCursorRight(state)
3290
3446
  }
3447
+ case "home": {
3448
+ return processTextCursorStart(state)
3449
+ }
3450
+ case "end": {
3451
+ return processTextCursorEnd(state)
3452
+ }
3291
3453
  case "enter":
3292
3454
  case "return": {
3293
- const value = getValue(state, options)
3455
+ const value = state.value
3294
3456
  return Effect.match(options.validate(value), {
3295
3457
  onFailure: (error) =>
3296
3458
  Action.NextFrame({
3297
- state: { ...state, value, error }
3459
+ state: { ...state, value, error: Option.some(error) }
3298
3460
  }),
3299
3461
  onSuccess: (value) => Action.Submit({ value })
3300
3462
  })
@@ -3303,7 +3465,7 @@ const handleTextProcess = (options: TextOptionsReq) => {
3303
3465
  return processTab(state, options)
3304
3466
  }
3305
3467
  default: {
3306
- return defaultTextProcessor(input.input ?? "", state)
3468
+ return defaultTextProcessor(Option.getOrElse(input.input, () => ""), state)
3307
3469
  }
3308
3470
  }
3309
3471
  }
@@ -3329,7 +3491,7 @@ const basePrompt = (
3329
3491
  const initialState: TextState = {
3330
3492
  cursor: opts.default.length,
3331
3493
  value: opts.default,
3332
- error: undefined
3494
+ error: Option.none()
3333
3495
  }
3334
3496
  return custom(initialState, {
3335
3497
  render: handleTextRender(opts),