effect 4.0.1 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1085) hide show
  1. package/ai-docs/package.json +2 -2
  2. package/ai-docs/tsconfig.json +2 -1
  3. package/dist/Array.d.ts +339 -0
  4. package/dist/Array.d.ts.map +1 -1
  5. package/dist/Array.js +143 -3
  6. package/dist/Array.js.map +1 -1
  7. package/dist/BigDecimal.d.ts +88 -0
  8. package/dist/BigDecimal.d.ts.map +1 -1
  9. package/dist/BigDecimal.js +44 -0
  10. package/dist/BigDecimal.js.map +1 -1
  11. package/dist/BigInt.d.ts +68 -0
  12. package/dist/BigInt.d.ts.map +1 -1
  13. package/dist/BigInt.js +36 -0
  14. package/dist/BigInt.js.map +1 -1
  15. package/dist/Boolean.d.ts +34 -0
  16. package/dist/Boolean.d.ts.map +1 -1
  17. package/dist/Boolean.js +18 -0
  18. package/dist/Boolean.js.map +1 -1
  19. package/dist/Brand.d.ts +9 -0
  20. package/dist/Brand.d.ts.map +1 -1
  21. package/dist/Brand.js +6 -0
  22. package/dist/Brand.js.map +1 -1
  23. package/dist/ByteSize.d.ts +86 -0
  24. package/dist/ByteSize.d.ts.map +1 -1
  25. package/dist/ByteSize.js +51 -0
  26. package/dist/ByteSize.js.map +1 -1
  27. package/dist/Cache.d.ts +38 -1
  28. package/dist/Cache.d.ts.map +1 -1
  29. package/dist/Cache.js +27 -7
  30. package/dist/Cache.js.map +1 -1
  31. package/dist/Cause.d.ts +82 -0
  32. package/dist/Cause.d.ts.map +1 -1
  33. package/dist/Cause.js +60 -0
  34. package/dist/Cause.js.map +1 -1
  35. package/dist/Channel.d.ts +327 -4
  36. package/dist/Channel.d.ts.map +1 -1
  37. package/dist/Channel.js +168 -8
  38. package/dist/Channel.js.map +1 -1
  39. package/dist/ChannelSchema.d.ts +11 -0
  40. package/dist/ChannelSchema.d.ts.map +1 -1
  41. package/dist/ChannelSchema.js +6 -0
  42. package/dist/ChannelSchema.js.map +1 -1
  43. package/dist/Chunk.d.ts +192 -0
  44. package/dist/Chunk.d.ts.map +1 -1
  45. package/dist/Chunk.js +78 -0
  46. package/dist/Chunk.js.map +1 -1
  47. package/dist/Clock.d.ts +7 -0
  48. package/dist/Clock.d.ts.map +1 -1
  49. package/dist/Clock.js +5 -0
  50. package/dist/Clock.js.map +1 -1
  51. package/dist/Combiner.d.ts +10 -0
  52. package/dist/Combiner.d.ts.map +1 -1
  53. package/dist/Combiner.js +8 -0
  54. package/dist/Combiner.js.map +1 -1
  55. package/dist/Config.d.ts +52 -12
  56. package/dist/Config.d.ts.map +1 -1
  57. package/dist/Config.js +55 -5
  58. package/dist/Config.js.map +1 -1
  59. package/dist/ConfigProvider.d.ts +28 -0
  60. package/dist/ConfigProvider.d.ts.map +1 -1
  61. package/dist/ConfigProvider.js +19 -0
  62. package/dist/ConfigProvider.js.map +1 -1
  63. package/dist/Console.d.ts +22 -0
  64. package/dist/Console.d.ts.map +1 -1
  65. package/dist/Console.js +20 -0
  66. package/dist/Console.js.map +1 -1
  67. package/dist/Context.d.ts +50 -0
  68. package/dist/Context.d.ts.map +1 -1
  69. package/dist/Context.js +24 -3
  70. package/dist/Context.js.map +1 -1
  71. package/dist/Cron.d.ts +16 -0
  72. package/dist/Cron.d.ts.map +1 -1
  73. package/dist/Cron.js +26 -1
  74. package/dist/Cron.js.map +1 -1
  75. package/dist/Crypto.d.ts +38 -5
  76. package/dist/Crypto.d.ts.map +1 -1
  77. package/dist/Crypto.js +11 -2
  78. package/dist/Crypto.js.map +1 -1
  79. package/dist/Data.d.ts +13 -0
  80. package/dist/Data.d.ts.map +1 -1
  81. package/dist/Data.js +5 -0
  82. package/dist/Data.js.map +1 -1
  83. package/dist/DateTime.d.ts +180 -6
  84. package/dist/DateTime.d.ts.map +1 -1
  85. package/dist/DateTime.js +98 -6
  86. package/dist/DateTime.js.map +1 -1
  87. package/dist/Deferred.d.ts +51 -0
  88. package/dist/Deferred.d.ts.map +1 -1
  89. package/dist/Deferred.js +22 -0
  90. package/dist/Deferred.js.map +1 -1
  91. package/dist/Differ.d.ts +2 -0
  92. package/dist/Differ.d.ts.map +1 -1
  93. package/dist/Differ.js +1 -0
  94. package/dist/Duration.d.ts +96 -6
  95. package/dist/Duration.d.ts.map +1 -1
  96. package/dist/Duration.js +80 -8
  97. package/dist/Duration.js.map +1 -1
  98. package/dist/Effect.d.ts +527 -0
  99. package/dist/Effect.d.ts.map +1 -1
  100. package/dist/Effect.js +240 -5
  101. package/dist/Effect.js.map +1 -1
  102. package/dist/Effectable.d.ts +4 -0
  103. package/dist/Effectable.d.ts.map +1 -1
  104. package/dist/Effectable.js +3 -0
  105. package/dist/Effectable.js.map +1 -1
  106. package/dist/Equal.d.ts +8 -0
  107. package/dist/Equal.d.ts.map +1 -1
  108. package/dist/Equal.js +9 -1
  109. package/dist/Equal.js.map +1 -1
  110. package/dist/Equivalence.d.ts +21 -0
  111. package/dist/Equivalence.d.ts.map +1 -1
  112. package/dist/Equivalence.js +16 -0
  113. package/dist/Equivalence.js.map +1 -1
  114. package/dist/ErrorReporter.d.ts +36 -0
  115. package/dist/ErrorReporter.d.ts.map +1 -1
  116. package/dist/ErrorReporter.js +11 -0
  117. package/dist/ErrorReporter.js.map +1 -1
  118. package/dist/ExecutionPlan.d.ts +49 -8
  119. package/dist/ExecutionPlan.d.ts.map +1 -1
  120. package/dist/ExecutionPlan.js +7 -0
  121. package/dist/ExecutionPlan.js.map +1 -1
  122. package/dist/Exit.d.ts +40 -0
  123. package/dist/Exit.d.ts.map +1 -1
  124. package/dist/Exit.js +27 -0
  125. package/dist/Exit.js.map +1 -1
  126. package/dist/Fiber.d.ts +20 -0
  127. package/dist/Fiber.d.ts.map +1 -1
  128. package/dist/Fiber.js +11 -0
  129. package/dist/Fiber.js.map +1 -1
  130. package/dist/FiberHandle.d.ts +21 -0
  131. package/dist/FiberHandle.d.ts.map +1 -1
  132. package/dist/FiberHandle.js +21 -4
  133. package/dist/FiberHandle.js.map +1 -1
  134. package/dist/FiberMap.d.ts +35 -0
  135. package/dist/FiberMap.d.ts.map +1 -1
  136. package/dist/FiberMap.js +19 -0
  137. package/dist/FiberMap.js.map +1 -1
  138. package/dist/FiberSet.d.ts +20 -0
  139. package/dist/FiberSet.d.ts.map +1 -1
  140. package/dist/FiberSet.js +14 -0
  141. package/dist/FiberSet.js.map +1 -1
  142. package/dist/FileSystem.d.ts +59 -2
  143. package/dist/FileSystem.d.ts.map +1 -1
  144. package/dist/FileSystem.js +8 -0
  145. package/dist/FileSystem.js.map +1 -1
  146. package/dist/Filter.d.ts +55 -0
  147. package/dist/Filter.d.ts.map +1 -1
  148. package/dist/Filter.js +28 -0
  149. package/dist/Filter.js.map +1 -1
  150. package/dist/Formatter.d.ts +3 -0
  151. package/dist/Formatter.d.ts.map +1 -1
  152. package/dist/Formatter.js +39 -1
  153. package/dist/Formatter.js.map +1 -1
  154. package/dist/Function.d.ts +30 -0
  155. package/dist/Function.d.ts.map +1 -1
  156. package/dist/Function.js +20 -0
  157. package/dist/Function.js.map +1 -1
  158. package/dist/Graph.d.ts +247 -12
  159. package/dist/Graph.d.ts.map +1 -1
  160. package/dist/Graph.js +149 -28
  161. package/dist/Graph.js.map +1 -1
  162. package/dist/HKT.d.ts +5 -0
  163. package/dist/HKT.d.ts.map +1 -1
  164. package/dist/Hash.d.ts +14 -0
  165. package/dist/Hash.d.ts.map +1 -1
  166. package/dist/Hash.js +12 -0
  167. package/dist/Hash.js.map +1 -1
  168. package/dist/HashMap.d.ts +91 -0
  169. package/dist/HashMap.d.ts.map +1 -1
  170. package/dist/HashMap.js +39 -0
  171. package/dist/HashMap.js.map +1 -1
  172. package/dist/HashRing.d.ts +17 -0
  173. package/dist/HashRing.d.ts.map +1 -1
  174. package/dist/HashRing.js +9 -0
  175. package/dist/HashRing.js.map +1 -1
  176. package/dist/HashSet.d.ts +49 -0
  177. package/dist/HashSet.d.ts.map +1 -1
  178. package/dist/HashSet.js +19 -0
  179. package/dist/HashSet.js.map +1 -1
  180. package/dist/Inspectable.d.ts +7 -0
  181. package/dist/Inspectable.d.ts.map +1 -1
  182. package/dist/Inspectable.js +6 -0
  183. package/dist/Inspectable.js.map +1 -1
  184. package/dist/Iterable.d.ts +127 -0
  185. package/dist/Iterable.d.ts.map +1 -1
  186. package/dist/Iterable.js +51 -0
  187. package/dist/Iterable.js.map +1 -1
  188. package/dist/JsonPatch.d.ts +4 -0
  189. package/dist/JsonPatch.d.ts.map +1 -1
  190. package/dist/JsonPatch.js +3 -0
  191. package/dist/JsonPatch.js.map +1 -1
  192. package/dist/JsonPointer.d.ts +5 -0
  193. package/dist/JsonPointer.d.ts.map +1 -1
  194. package/dist/JsonPointer.js +5 -0
  195. package/dist/JsonPointer.js.map +1 -1
  196. package/dist/JsonSchema.d.ts +16 -0
  197. package/dist/JsonSchema.d.ts.map +1 -1
  198. package/dist/JsonSchema.js +11 -0
  199. package/dist/JsonSchema.js.map +1 -1
  200. package/dist/Latch.d.ts +14 -0
  201. package/dist/Latch.d.ts.map +1 -1
  202. package/dist/Latch.js +10 -0
  203. package/dist/Latch.js.map +1 -1
  204. package/dist/Layer.d.ts +100 -0
  205. package/dist/Layer.d.ts.map +1 -1
  206. package/dist/Layer.js +45 -1
  207. package/dist/Layer.js.map +1 -1
  208. package/dist/LayerMap.d.ts +7 -0
  209. package/dist/LayerMap.d.ts.map +1 -1
  210. package/dist/LayerMap.js +4 -0
  211. package/dist/LayerMap.js.map +1 -1
  212. package/dist/LayerRef.d.ts +5 -0
  213. package/dist/LayerRef.d.ts.map +1 -1
  214. package/dist/LayerRef.js +3 -0
  215. package/dist/LayerRef.js.map +1 -1
  216. package/dist/LogLevel.d.ts +20 -0
  217. package/dist/LogLevel.d.ts.map +1 -1
  218. package/dist/LogLevel.js +9 -0
  219. package/dist/LogLevel.js.map +1 -1
  220. package/dist/Logger.d.ts +25 -0
  221. package/dist/Logger.d.ts.map +1 -1
  222. package/dist/Logger.js +30 -4
  223. package/dist/Logger.js.map +1 -1
  224. package/dist/ManagedRuntime.d.ts +5 -0
  225. package/dist/ManagedRuntime.d.ts.map +1 -1
  226. package/dist/ManagedRuntime.js +9 -1
  227. package/dist/ManagedRuntime.js.map +1 -1
  228. package/dist/Match.d.ts +51 -0
  229. package/dist/Match.d.ts.map +1 -1
  230. package/dist/Match.js +39 -0
  231. package/dist/Match.js.map +1 -1
  232. package/dist/Metric.d.ts +59 -0
  233. package/dist/Metric.d.ts.map +1 -1
  234. package/dist/Metric.js +31 -0
  235. package/dist/Metric.js.map +1 -1
  236. package/dist/MutableHashMap.d.ts +32 -0
  237. package/dist/MutableHashMap.d.ts.map +1 -1
  238. package/dist/MutableHashMap.js +16 -0
  239. package/dist/MutableHashMap.js.map +1 -1
  240. package/dist/MutableHashSet.d.ts +16 -0
  241. package/dist/MutableHashSet.d.ts.map +1 -1
  242. package/dist/MutableHashSet.js +10 -0
  243. package/dist/MutableHashSet.js.map +1 -1
  244. package/dist/MutableList.d.ts +20 -0
  245. package/dist/MutableList.d.ts.map +1 -1
  246. package/dist/MutableList.js +18 -0
  247. package/dist/MutableList.js.map +1 -1
  248. package/dist/MutableRef.d.ts +31 -0
  249. package/dist/MutableRef.d.ts.map +1 -1
  250. package/dist/MutableRef.js +17 -0
  251. package/dist/MutableRef.js.map +1 -1
  252. package/dist/Newtype.d.ts +9 -0
  253. package/dist/Newtype.d.ts.map +1 -1
  254. package/dist/Newtype.js +6 -0
  255. package/dist/Newtype.js.map +1 -1
  256. package/dist/NonEmptyIterable.d.ts +4 -0
  257. package/dist/NonEmptyIterable.d.ts.map +1 -1
  258. package/dist/NonEmptyIterable.js +2 -0
  259. package/dist/NonEmptyIterable.js.map +1 -1
  260. package/dist/Number.d.ts +61 -0
  261. package/dist/Number.d.ts.map +1 -1
  262. package/dist/Number.js +31 -0
  263. package/dist/Number.js.map +1 -1
  264. package/dist/Optic.d.ts +41 -0
  265. package/dist/Optic.d.ts.map +1 -1
  266. package/dist/Optic.js +20 -0
  267. package/dist/Optic.js.map +1 -1
  268. package/dist/Option.d.ts +134 -0
  269. package/dist/Option.d.ts.map +1 -1
  270. package/dist/Option.js +61 -0
  271. package/dist/Option.js.map +1 -1
  272. package/dist/Order.d.ts +29 -0
  273. package/dist/Order.d.ts.map +1 -1
  274. package/dist/Order.js +24 -0
  275. package/dist/Order.js.map +1 -1
  276. package/dist/Ordering.d.ts +7 -0
  277. package/dist/Ordering.d.ts.map +1 -1
  278. package/dist/Ordering.js +3 -0
  279. package/dist/Ordering.js.map +1 -1
  280. package/dist/PartitionedSemaphore.d.ts +24 -0
  281. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  282. package/dist/PartitionedSemaphore.js +47 -21
  283. package/dist/PartitionedSemaphore.js.map +1 -1
  284. package/dist/Path.d.ts +6 -0
  285. package/dist/Path.d.ts.map +1 -1
  286. package/dist/Path.js +4 -0
  287. package/dist/Path.js.map +1 -1
  288. package/dist/Pipeable.d.ts +7 -0
  289. package/dist/Pipeable.d.ts.map +1 -1
  290. package/dist/Pipeable.js +5 -0
  291. package/dist/Pipeable.js.map +1 -1
  292. package/dist/PlatformError.d.ts +8 -0
  293. package/dist/PlatformError.d.ts.map +1 -1
  294. package/dist/PlatformError.js +7 -0
  295. package/dist/PlatformError.js.map +1 -1
  296. package/dist/Pool.d.ts +19 -0
  297. package/dist/Pool.d.ts.map +1 -1
  298. package/dist/Pool.js +8 -1
  299. package/dist/Pool.js.map +1 -1
  300. package/dist/Predicate.d.ts +84 -0
  301. package/dist/Predicate.d.ts.map +1 -1
  302. package/dist/Predicate.js +48 -0
  303. package/dist/Predicate.js.map +1 -1
  304. package/dist/PrimaryKey.d.ts +5 -0
  305. package/dist/PrimaryKey.d.ts.map +1 -1
  306. package/dist/PrimaryKey.js +4 -0
  307. package/dist/PrimaryKey.js.map +1 -1
  308. package/dist/PubSub.d.ts +67 -5
  309. package/dist/PubSub.d.ts.map +1 -1
  310. package/dist/PubSub.js +60 -8
  311. package/dist/PubSub.js.map +1 -1
  312. package/dist/Pull.d.ts +20 -0
  313. package/dist/Pull.d.ts.map +1 -1
  314. package/dist/Pull.js +10 -0
  315. package/dist/Pull.js.map +1 -1
  316. package/dist/Queue.d.ts +60 -0
  317. package/dist/Queue.d.ts.map +1 -1
  318. package/dist/Queue.js +58 -8
  319. package/dist/Queue.js.map +1 -1
  320. package/dist/Random.d.ts +13 -0
  321. package/dist/Random.d.ts.map +1 -1
  322. package/dist/Random.js +9 -0
  323. package/dist/Random.js.map +1 -1
  324. package/dist/RcMap.d.ts +23 -0
  325. package/dist/RcMap.d.ts.map +1 -1
  326. package/dist/RcMap.js +8 -0
  327. package/dist/RcMap.js.map +1 -1
  328. package/dist/RcRef.d.ts +6 -0
  329. package/dist/RcRef.d.ts.map +1 -1
  330. package/dist/RcRef.js +3 -0
  331. package/dist/RcRef.js.map +1 -1
  332. package/dist/Record.d.ts +100 -0
  333. package/dist/Record.d.ts.map +1 -1
  334. package/dist/Record.js +43 -0
  335. package/dist/Record.js.map +1 -1
  336. package/dist/Redactable.d.ts +6 -0
  337. package/dist/Redactable.d.ts.map +1 -1
  338. package/dist/Redactable.js +4 -0
  339. package/dist/Redactable.js.map +1 -1
  340. package/dist/Redacted.d.ts +8 -0
  341. package/dist/Redacted.d.ts.map +1 -1
  342. package/dist/Redacted.js +6 -0
  343. package/dist/Redacted.js.map +1 -1
  344. package/dist/Reducer.d.ts +4 -0
  345. package/dist/Reducer.d.ts.map +1 -1
  346. package/dist/Reducer.js +3 -0
  347. package/dist/Reducer.js.map +1 -1
  348. package/dist/Ref.d.ts +20 -0
  349. package/dist/Ref.d.ts.map +1 -1
  350. package/dist/Ref.js +16 -0
  351. package/dist/Ref.js.map +1 -1
  352. package/dist/References.d.ts +21 -0
  353. package/dist/References.d.ts.map +1 -1
  354. package/dist/References.js +19 -0
  355. package/dist/References.js.map +1 -1
  356. package/dist/RegExp.d.ts +3 -0
  357. package/dist/RegExp.d.ts.map +1 -1
  358. package/dist/RegExp.js +4 -0
  359. package/dist/RegExp.js.map +1 -1
  360. package/dist/Request.d.ts +32 -0
  361. package/dist/Request.d.ts.map +1 -1
  362. package/dist/Request.js +12 -0
  363. package/dist/Request.js.map +1 -1
  364. package/dist/RequestResolver.d.ts +42 -0
  365. package/dist/RequestResolver.d.ts.map +1 -1
  366. package/dist/RequestResolver.js +27 -6
  367. package/dist/RequestResolver.js.map +1 -1
  368. package/dist/Resource.d.ts +6 -0
  369. package/dist/Resource.d.ts.map +1 -1
  370. package/dist/Resource.js +6 -0
  371. package/dist/Resource.js.map +1 -1
  372. package/dist/Result.d.ts +91 -0
  373. package/dist/Result.d.ts.map +1 -1
  374. package/dist/Result.js +41 -0
  375. package/dist/Result.js.map +1 -1
  376. package/dist/Runtime.d.ts +9 -0
  377. package/dist/Runtime.d.ts.map +1 -1
  378. package/dist/Runtime.js +7 -0
  379. package/dist/Runtime.js.map +1 -1
  380. package/dist/Schedule.d.ts +57 -0
  381. package/dist/Schedule.d.ts.map +1 -1
  382. package/dist/Schedule.js +32 -0
  383. package/dist/Schedule.js.map +1 -1
  384. package/dist/Scheduler.d.ts +7 -0
  385. package/dist/Scheduler.d.ts.map +1 -1
  386. package/dist/Scheduler.js +5 -0
  387. package/dist/Scheduler.js.map +1 -1
  388. package/dist/Schema.d.ts +969 -2
  389. package/dist/Schema.d.ts.map +1 -1
  390. package/dist/Schema.js +635 -5
  391. package/dist/Schema.js.map +1 -1
  392. package/dist/SchemaAST.d.ts +107 -0
  393. package/dist/SchemaAST.d.ts.map +1 -1
  394. package/dist/SchemaAST.js +81 -1
  395. package/dist/SchemaAST.js.map +1 -1
  396. package/dist/SchemaGetter.d.ts +69 -2
  397. package/dist/SchemaGetter.d.ts.map +1 -1
  398. package/dist/SchemaGetter.js +63 -4
  399. package/dist/SchemaGetter.js.map +1 -1
  400. package/dist/SchemaIssue.d.ts +33 -0
  401. package/dist/SchemaIssue.d.ts.map +1 -1
  402. package/dist/SchemaIssue.js +18 -0
  403. package/dist/SchemaIssue.js.map +1 -1
  404. package/dist/SchemaParser.d.ts +25 -0
  405. package/dist/SchemaParser.d.ts.map +1 -1
  406. package/dist/SchemaParser.js +26 -0
  407. package/dist/SchemaParser.js.map +1 -1
  408. package/dist/SchemaRepresentation.d.ts +147 -0
  409. package/dist/SchemaRepresentation.d.ts.map +1 -1
  410. package/dist/SchemaRepresentation.js +99 -0
  411. package/dist/SchemaRepresentation.js.map +1 -1
  412. package/dist/SchemaTransformation.d.ts +53 -0
  413. package/dist/SchemaTransformation.d.ts.map +1 -1
  414. package/dist/SchemaTransformation.js +46 -0
  415. package/dist/SchemaTransformation.js.map +1 -1
  416. package/dist/Scope.d.ts +19 -0
  417. package/dist/Scope.d.ts.map +1 -1
  418. package/dist/Scope.js +12 -0
  419. package/dist/Scope.js.map +1 -1
  420. package/dist/ScopedCache.d.ts +34 -0
  421. package/dist/ScopedCache.d.ts.map +1 -1
  422. package/dist/ScopedCache.js +26 -3
  423. package/dist/ScopedCache.js.map +1 -1
  424. package/dist/ScopedRef.d.ts +9 -0
  425. package/dist/ScopedRef.d.ts.map +1 -1
  426. package/dist/ScopedRef.js +6 -0
  427. package/dist/ScopedRef.js.map +1 -1
  428. package/dist/Semaphore.d.ts +26 -0
  429. package/dist/Semaphore.d.ts.map +1 -1
  430. package/dist/Semaphore.js +10 -0
  431. package/dist/Semaphore.js.map +1 -1
  432. package/dist/Sink.d.ts +125 -1
  433. package/dist/Sink.d.ts.map +1 -1
  434. package/dist/Sink.js +75 -1
  435. package/dist/Sink.js.map +1 -1
  436. package/dist/StandardSchema.d.ts +1 -0
  437. package/dist/StandardSchema.d.ts.map +1 -1
  438. package/dist/StandardSchema.js +1 -0
  439. package/dist/Stdio.d.ts +14 -1
  440. package/dist/Stdio.d.ts.map +1 -1
  441. package/dist/Stdio.js +6 -0
  442. package/dist/Stdio.js.map +1 -1
  443. package/dist/Stream.d.ts +569 -11
  444. package/dist/Stream.d.ts.map +1 -1
  445. package/dist/Stream.js +266 -18
  446. package/dist/Stream.js.map +1 -1
  447. package/dist/String.d.ts +87 -0
  448. package/dist/String.d.ts.map +1 -1
  449. package/dist/String.js +61 -0
  450. package/dist/String.js.map +1 -1
  451. package/dist/Struct.d.ts +46 -0
  452. package/dist/Struct.d.ts.map +1 -1
  453. package/dist/Struct.js +19 -0
  454. package/dist/Struct.js.map +1 -1
  455. package/dist/SubscriptionRef.d.ts +65 -0
  456. package/dist/SubscriptionRef.d.ts.map +1 -1
  457. package/dist/SubscriptionRef.js +25 -0
  458. package/dist/SubscriptionRef.js.map +1 -1
  459. package/dist/Symbol.d.ts +2 -0
  460. package/dist/Symbol.d.ts.map +1 -1
  461. package/dist/Symbol.js +2 -0
  462. package/dist/Symbol.js.map +1 -1
  463. package/dist/SynchronizedRef.d.ts +63 -0
  464. package/dist/SynchronizedRef.d.ts.map +1 -1
  465. package/dist/SynchronizedRef.js +24 -0
  466. package/dist/SynchronizedRef.js.map +1 -1
  467. package/dist/Take.d.ts +3 -0
  468. package/dist/Take.d.ts.map +1 -1
  469. package/dist/Take.js +1 -0
  470. package/dist/Take.js.map +1 -1
  471. package/dist/Terminal.d.ts +8 -0
  472. package/dist/Terminal.d.ts.map +1 -1
  473. package/dist/Terminal.js +4 -0
  474. package/dist/Terminal.js.map +1 -1
  475. package/dist/Tracer.d.ts +23 -0
  476. package/dist/Tracer.d.ts.map +1 -1
  477. package/dist/Tracer.js +12 -0
  478. package/dist/Tracer.js.map +1 -1
  479. package/dist/Trie.d.ts +68 -0
  480. package/dist/Trie.d.ts.map +1 -1
  481. package/dist/Trie.js +28 -0
  482. package/dist/Trie.js.map +1 -1
  483. package/dist/Tuple.d.ts +38 -0
  484. package/dist/Tuple.d.ts.map +1 -1
  485. package/dist/Tuple.js +18 -0
  486. package/dist/Tuple.js.map +1 -1
  487. package/dist/TxChunk.d.ts +52 -0
  488. package/dist/TxChunk.d.ts.map +1 -1
  489. package/dist/TxChunk.js +23 -0
  490. package/dist/TxChunk.js.map +1 -1
  491. package/dist/TxDeferred.d.ts +15 -0
  492. package/dist/TxDeferred.d.ts.map +1 -1
  493. package/dist/TxDeferred.js +8 -0
  494. package/dist/TxDeferred.js.map +1 -1
  495. package/dist/TxHashMap.d.ts +83 -0
  496. package/dist/TxHashMap.d.ts.map +1 -1
  497. package/dist/TxHashMap.js +52 -7
  498. package/dist/TxHashMap.js.map +1 -1
  499. package/dist/TxHashSet.d.ts +51 -0
  500. package/dist/TxHashSet.d.ts.map +1 -1
  501. package/dist/TxHashSet.js +29 -4
  502. package/dist/TxHashSet.js.map +1 -1
  503. package/dist/TxPriorityQueue.d.ts +30 -0
  504. package/dist/TxPriorityQueue.d.ts.map +1 -1
  505. package/dist/TxPriorityQueue.js +22 -1
  506. package/dist/TxPriorityQueue.js.map +1 -1
  507. package/dist/TxPubSub.d.ts +25 -0
  508. package/dist/TxPubSub.d.ts.map +1 -1
  509. package/dist/TxPubSub.js +19 -0
  510. package/dist/TxPubSub.js.map +1 -1
  511. package/dist/TxQueue.d.ts +51 -0
  512. package/dist/TxQueue.d.ts.map +1 -1
  513. package/dist/TxQueue.js +30 -0
  514. package/dist/TxQueue.js.map +1 -1
  515. package/dist/TxReentrantLock.d.ts +24 -0
  516. package/dist/TxReentrantLock.d.ts.map +1 -1
  517. package/dist/TxReentrantLock.js +32 -18
  518. package/dist/TxReentrantLock.js.map +1 -1
  519. package/dist/TxRef.d.ts +14 -0
  520. package/dist/TxRef.d.ts.map +1 -1
  521. package/dist/TxRef.js +7 -0
  522. package/dist/TxRef.js.map +1 -1
  523. package/dist/TxSemaphore.d.ts +25 -0
  524. package/dist/TxSemaphore.d.ts.map +1 -1
  525. package/dist/TxSemaphore.js +29 -13
  526. package/dist/TxSemaphore.js.map +1 -1
  527. package/dist/TxSubscriptionRef.d.ts +25 -0
  528. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  529. package/dist/TxSubscriptionRef.js +12 -0
  530. package/dist/TxSubscriptionRef.js.map +1 -1
  531. package/dist/Types.d.ts +36 -0
  532. package/dist/Types.d.ts.map +1 -1
  533. package/dist/Types.js +1 -0
  534. package/dist/UndefinedOr.d.ts +15 -0
  535. package/dist/UndefinedOr.d.ts.map +1 -1
  536. package/dist/UndefinedOr.js +9 -0
  537. package/dist/UndefinedOr.js.map +1 -1
  538. package/dist/Unify.d.ts +15 -0
  539. package/dist/Unify.d.ts.map +1 -1
  540. package/dist/Unify.js +2 -0
  541. package/dist/Unify.js.map +1 -1
  542. package/dist/Utils.d.ts +4 -0
  543. package/dist/Utils.d.ts.map +1 -1
  544. package/dist/Utils.js +1 -0
  545. package/dist/Utils.js.map +1 -1
  546. package/dist/Version.d.ts +26 -0
  547. package/dist/Version.d.ts.map +1 -0
  548. package/dist/Version.js +36 -0
  549. package/dist/Version.js.map +1 -0
  550. package/dist/ai/Chat.js +1 -1
  551. package/dist/ai/Chat.js.map +1 -1
  552. package/dist/ai/DecisionModel.d.ts +22 -0
  553. package/dist/ai/DecisionModel.d.ts.map +1 -1
  554. package/dist/ai/DecisionModel.js +22 -4
  555. package/dist/ai/DecisionModel.js.map +1 -1
  556. package/dist/ai/LanguageModel.d.ts.map +1 -1
  557. package/dist/ai/LanguageModel.js +14 -13
  558. package/dist/ai/LanguageModel.js.map +1 -1
  559. package/dist/ai/McpServer.d.ts +38 -11
  560. package/dist/ai/McpServer.d.ts.map +1 -1
  561. package/dist/ai/McpServer.js +276 -190
  562. package/dist/ai/McpServer.js.map +1 -1
  563. package/dist/ai/Telemetry.d.ts +49 -41
  564. package/dist/ai/Telemetry.d.ts.map +1 -1
  565. package/dist/ai/Telemetry.js +6 -8
  566. package/dist/ai/Telemetry.js.map +1 -1
  567. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +5 -0
  568. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  569. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  570. package/dist/ai/internal/mcpRuntime.js +80 -46
  571. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  572. package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
  573. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  574. package/dist/cli/CliOutput.d.ts +27 -0
  575. package/dist/cli/CliOutput.d.ts.map +1 -1
  576. package/dist/cli/CliOutput.js +33 -10
  577. package/dist/cli/CliOutput.js.map +1 -1
  578. package/dist/cli/Command.d.ts.map +1 -1
  579. package/dist/cli/Command.js +6 -3
  580. package/dist/cli/Command.js.map +1 -1
  581. package/dist/cli/Completions.d.ts +3 -3
  582. package/dist/cli/Completions.d.ts.map +1 -1
  583. package/dist/cli/Completions.js +8 -5
  584. package/dist/cli/Completions.js.map +1 -1
  585. package/dist/cli/GlobalFlag.d.ts +5 -4
  586. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  587. package/dist/cli/GlobalFlag.js +3 -3
  588. package/dist/cli/GlobalFlag.js.map +1 -1
  589. package/dist/cli/Prompt.d.ts +17 -1
  590. package/dist/cli/Prompt.d.ts.map +1 -1
  591. package/dist/cli/Prompt.js +119 -114
  592. package/dist/cli/Prompt.js.map +1 -1
  593. package/dist/cli/internal/ansi.d.ts +0 -1
  594. package/dist/cli/internal/ansi.d.ts.map +1 -1
  595. package/dist/cli/internal/ansi.js +20 -3
  596. package/dist/cli/internal/ansi.js.map +1 -1
  597. package/dist/cli/internal/completions/powershell.d.ts +2 -0
  598. package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
  599. package/dist/cli/internal/completions/powershell.js +273 -0
  600. package/dist/cli/internal/completions/powershell.js.map +1 -0
  601. package/dist/cli/internal/completions/zsh.js +3 -2
  602. package/dist/cli/internal/completions/zsh.js.map +1 -1
  603. package/dist/cli/internal/wizard.d.ts +3 -3
  604. package/dist/cli/internal/wizard.d.ts.map +1 -1
  605. package/dist/cli/internal/wizard.js +21 -18
  606. package/dist/cli/internal/wizard.js.map +1 -1
  607. package/dist/cluster/ClusterSchema.d.ts +28 -0
  608. package/dist/cluster/ClusterSchema.d.ts.map +1 -1
  609. package/dist/cluster/ClusterSchema.js +30 -0
  610. package/dist/cluster/ClusterSchema.js.map +1 -1
  611. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  612. package/dist/cluster/ClusterWorkflowEngine.js +10 -18
  613. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  614. package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
  615. package/dist/cluster/K8sHttpClient.js +5 -2
  616. package/dist/cluster/K8sHttpClient.js.map +1 -1
  617. package/dist/cluster/MessageStorage.d.ts +18 -3
  618. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  619. package/dist/cluster/MessageStorage.js +31 -11
  620. package/dist/cluster/MessageStorage.js.map +1 -1
  621. package/dist/cluster/Runners.d.ts.map +1 -1
  622. package/dist/cluster/Runners.js +8 -2
  623. package/dist/cluster/Runners.js.map +1 -1
  624. package/dist/cluster/Sharding.d.ts.map +1 -1
  625. package/dist/cluster/Sharding.js +181 -62
  626. package/dist/cluster/Sharding.js.map +1 -1
  627. package/dist/cluster/SqlMessageStorage.d.ts +59 -19
  628. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  629. package/dist/cluster/SqlMessageStorage.js +84 -55
  630. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  631. package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
  632. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  633. package/dist/cluster/SqlRunnerStorage.js +191 -113
  634. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  635. package/dist/cluster/internal/entityManager.js +104 -37
  636. package/dist/cluster/internal/entityManager.js.map +1 -1
  637. package/dist/encoding/Base64.d.ts +4 -0
  638. package/dist/encoding/Base64.d.ts.map +1 -1
  639. package/dist/encoding/Base64.js +4 -0
  640. package/dist/encoding/Base64.js.map +1 -1
  641. package/dist/encoding/Base64Url.d.ts +4 -0
  642. package/dist/encoding/Base64Url.d.ts.map +1 -1
  643. package/dist/encoding/Base64Url.js +4 -0
  644. package/dist/encoding/Base64Url.js.map +1 -1
  645. package/dist/encoding/EncodingError.d.ts +4 -0
  646. package/dist/encoding/EncodingError.d.ts.map +1 -1
  647. package/dist/encoding/EncodingError.js +4 -0
  648. package/dist/encoding/EncodingError.js.map +1 -1
  649. package/dist/encoding/Hex.d.ts +5 -0
  650. package/dist/encoding/Hex.d.ts.map +1 -1
  651. package/dist/encoding/Hex.js +5 -0
  652. package/dist/encoding/Hex.js.map +1 -1
  653. package/dist/encoding/Toml.js +2 -2
  654. package/dist/encoding/Toml.js.map +1 -1
  655. package/dist/encoding/Yaml.d.ts.map +1 -1
  656. package/dist/encoding/Yaml.js +6 -4
  657. package/dist/encoding/Yaml.js.map +1 -1
  658. package/dist/encoding/index.d.ts +4 -0
  659. package/dist/encoding/index.d.ts.map +1 -1
  660. package/dist/encoding/index.js +4 -0
  661. package/dist/encoding/index.js.map +1 -1
  662. package/dist/eventlog/SqlEventJournal.js +8 -4
  663. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  664. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
  665. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  666. package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
  667. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  668. package/dist/http/FindMyWay/internal/router.js +3 -6
  669. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  670. package/dist/http/Headers.d.ts +3 -1
  671. package/dist/http/Headers.d.ts.map +1 -1
  672. package/dist/http/Headers.js +4 -2
  673. package/dist/http/Headers.js.map +1 -1
  674. package/dist/http/HttpClient.d.ts +15 -0
  675. package/dist/http/HttpClient.d.ts.map +1 -1
  676. package/dist/http/HttpClient.js +79 -23
  677. package/dist/http/HttpClient.js.map +1 -1
  678. package/dist/http/HttpClientResponse.js +3 -1
  679. package/dist/http/HttpClientResponse.js.map +1 -1
  680. package/dist/http/HttpEffect.d.ts +3 -0
  681. package/dist/http/HttpEffect.d.ts.map +1 -1
  682. package/dist/http/HttpEffect.js +5 -2
  683. package/dist/http/HttpEffect.js.map +1 -1
  684. package/dist/http/HttpMiddleware.d.ts +17 -0
  685. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  686. package/dist/http/HttpMiddleware.js +56 -39
  687. package/dist/http/HttpMiddleware.js.map +1 -1
  688. package/dist/http/HttpServer.d.ts +1 -1
  689. package/dist/http/HttpServer.d.ts.map +1 -1
  690. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  691. package/dist/http/HttpTraceContext.js +4 -2
  692. package/dist/http/HttpTraceContext.js.map +1 -1
  693. package/dist/http/internal/tracing.d.ts +2 -0
  694. package/dist/http/internal/tracing.d.ts.map +1 -0
  695. package/dist/http/internal/tracing.js +37 -0
  696. package/dist/http/internal/tracing.js.map +1 -0
  697. package/dist/http-api/HttpApiBuilder.js +2 -1
  698. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  699. package/dist/http-api/HttpApiClient.d.ts +12 -3
  700. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  701. package/dist/http-api/HttpApiClient.js.map +1 -1
  702. package/dist/http-api/HttpApiError.d.ts +4 -3
  703. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  704. package/dist/http-api/HttpApiError.js +7 -4
  705. package/dist/http-api/HttpApiError.js.map +1 -1
  706. package/dist/http-api/HttpApiSecurity.d.ts +8 -8
  707. package/dist/http-api/HttpApiSecurity.js +8 -8
  708. package/dist/index.d.ts +155 -0
  709. package/dist/index.d.ts.map +1 -1
  710. package/dist/index.js +155 -0
  711. package/dist/index.js.map +1 -1
  712. package/dist/internal/arbitrary/array.js +3 -3
  713. package/dist/internal/arbitrary/array.js.map +1 -1
  714. package/dist/internal/arbitrary/model.js +26 -11
  715. package/dist/internal/arbitrary/model.js.map +1 -1
  716. package/dist/internal/arbitrary/runner.js +8 -8
  717. package/dist/internal/arbitrary/runner.js.map +1 -1
  718. package/dist/internal/arbitrary/schema.js +4 -5
  719. package/dist/internal/arbitrary/schema.js.map +1 -1
  720. package/dist/internal/effect.js +53 -46
  721. package/dist/internal/effect.js.map +1 -1
  722. package/dist/internal/schedule.js +7 -5
  723. package/dist/internal/schedule.js.map +1 -1
  724. package/dist/internal/schema/standardSchema.js +2 -2
  725. package/dist/internal/schema/standardSchema.js.map +1 -1
  726. package/dist/internal/version.d.ts +2 -0
  727. package/dist/internal/version.d.ts.map +1 -0
  728. package/dist/internal/version.js +3 -0
  729. package/dist/internal/version.js.map +1 -0
  730. package/dist/net/AddressResolver.d.ts +145 -0
  731. package/dist/net/AddressResolver.d.ts.map +1 -0
  732. package/dist/net/AddressResolver.js +114 -0
  733. package/dist/net/AddressResolver.js.map +1 -0
  734. package/dist/net/Dns.d.ts +596 -0
  735. package/dist/net/Dns.d.ts.map +1 -0
  736. package/dist/net/Dns.js +549 -0
  737. package/dist/net/Dns.js.map +1 -0
  738. package/dist/net/Host.d.ts +320 -0
  739. package/dist/net/Host.d.ts.map +1 -0
  740. package/dist/net/Host.js +342 -0
  741. package/dist/net/Host.js.map +1 -0
  742. package/dist/net/IpInterface.d.ts +76 -3
  743. package/dist/net/IpInterface.d.ts.map +1 -1
  744. package/dist/net/IpInterface.js +53 -4
  745. package/dist/net/IpInterface.js.map +1 -1
  746. package/dist/net/IpNetwork.d.ts +82 -8
  747. package/dist/net/IpNetwork.d.ts.map +1 -1
  748. package/dist/net/IpNetwork.js +60 -4
  749. package/dist/net/IpNetwork.js.map +1 -1
  750. package/dist/net/NetAddress.d.ts +388 -35
  751. package/dist/net/NetAddress.d.ts.map +1 -1
  752. package/dist/net/NetAddress.js +350 -34
  753. package/dist/net/NetAddress.js.map +1 -1
  754. package/dist/net/index.d.ts +15 -0
  755. package/dist/net/index.d.ts.map +1 -1
  756. package/dist/net/index.js +15 -0
  757. package/dist/net/index.js.map +1 -1
  758. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  759. package/dist/observability/OtlpExporter.js +5 -6
  760. package/dist/observability/OtlpExporter.js.map +1 -1
  761. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  762. package/dist/observability/OtlpLogger.js +23 -27
  763. package/dist/observability/OtlpLogger.js.map +1 -1
  764. package/dist/observability/OtlpMetrics.d.ts +5 -3
  765. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  766. package/dist/observability/OtlpMetrics.js +36 -115
  767. package/dist/observability/OtlpMetrics.js.map +1 -1
  768. package/dist/observability/OtlpResource.d.ts +4 -3
  769. package/dist/observability/OtlpResource.d.ts.map +1 -1
  770. package/dist/observability/OtlpResource.js +20 -23
  771. package/dist/observability/OtlpResource.js.map +1 -1
  772. package/dist/observability/OtlpTracer.d.ts +1 -0
  773. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  774. package/dist/observability/OtlpTracer.js +32 -36
  775. package/dist/observability/OtlpTracer.js.map +1 -1
  776. package/dist/observability/PrometheusMetrics.js +1 -0
  777. package/dist/observability/PrometheusMetrics.js.map +1 -1
  778. package/dist/observability/internal/otlpProtobuf.js +32 -1
  779. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  780. package/dist/persistence/PersistedQueue.d.ts +32 -3
  781. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  782. package/dist/persistence/PersistedQueue.js +75 -16
  783. package/dist/persistence/PersistedQueue.js.map +1 -1
  784. package/dist/reactivity/AsyncResult.d.ts +1 -1
  785. package/dist/reactivity/Atom.d.ts +5 -5
  786. package/dist/reactivity/Atom.d.ts.map +1 -1
  787. package/dist/reactivity/Atom.js +9 -5
  788. package/dist/reactivity/Atom.js.map +1 -1
  789. package/dist/reactivity/AtomHttpApi.d.ts +2 -2
  790. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  791. package/dist/reactivity/AtomRegistry.d.ts +8 -0
  792. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  793. package/dist/reactivity/AtomRegistry.js.map +1 -1
  794. package/dist/rpc/RpcClient.d.ts +41 -7
  795. package/dist/rpc/RpcClient.d.ts.map +1 -1
  796. package/dist/rpc/RpcClient.js +50 -25
  797. package/dist/rpc/RpcClient.js.map +1 -1
  798. package/dist/rpc/RpcServer.d.ts +6 -0
  799. package/dist/rpc/RpcServer.d.ts.map +1 -1
  800. package/dist/rpc/RpcServer.js +59 -40
  801. package/dist/rpc/RpcServer.js.map +1 -1
  802. package/dist/rpc/internal/tracing.d.ts +2 -0
  803. package/dist/rpc/internal/tracing.d.ts.map +1 -0
  804. package/dist/rpc/internal/tracing.js +18 -0
  805. package/dist/rpc/internal/tracing.js.map +1 -0
  806. package/dist/schema/SchemaCompiler/runtime.js +9 -1
  807. package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
  808. package/dist/socket/DatagramSocket.d.ts +456 -0
  809. package/dist/socket/DatagramSocket.d.ts.map +1 -0
  810. package/dist/socket/DatagramSocket.js +535 -0
  811. package/dist/socket/DatagramSocket.js.map +1 -0
  812. package/dist/socket/Socket.d.ts +14 -1
  813. package/dist/socket/Socket.d.ts.map +1 -1
  814. package/dist/socket/Socket.js +9 -1
  815. package/dist/socket/Socket.js.map +1 -1
  816. package/dist/socket/index.d.ts +5 -0
  817. package/dist/socket/index.d.ts.map +1 -1
  818. package/dist/socket/index.js +5 -0
  819. package/dist/socket/index.js.map +1 -1
  820. package/dist/sql/Migrator.d.ts.map +1 -1
  821. package/dist/sql/Migrator.js +7 -2
  822. package/dist/sql/Migrator.js.map +1 -1
  823. package/dist/sql/SqlClient.d.ts +7 -1
  824. package/dist/sql/SqlClient.d.ts.map +1 -1
  825. package/dist/sql/SqlClient.js +35 -10
  826. package/dist/sql/SqlClient.js.map +1 -1
  827. package/dist/sql/Statement.d.ts +21 -1
  828. package/dist/sql/Statement.d.ts.map +1 -1
  829. package/dist/sql/Statement.js +55 -7
  830. package/dist/sql/Statement.js.map +1 -1
  831. package/dist/testing/TestClock.d.ts +8 -0
  832. package/dist/testing/TestClock.d.ts.map +1 -1
  833. package/dist/testing/TestClock.js +7 -0
  834. package/dist/testing/TestClock.js.map +1 -1
  835. package/dist/testing/TestConsole.d.ts +7 -0
  836. package/dist/testing/TestConsole.d.ts.map +1 -1
  837. package/dist/testing/TestConsole.js +6 -0
  838. package/dist/testing/TestConsole.js.map +1 -1
  839. package/dist/testing/TestCrypto.d.ts +73 -0
  840. package/dist/testing/TestCrypto.d.ts.map +1 -0
  841. package/dist/testing/TestCrypto.js +87 -0
  842. package/dist/testing/TestCrypto.js.map +1 -0
  843. package/dist/testing/index.d.ts +8 -0
  844. package/dist/testing/index.d.ts.map +1 -1
  845. package/dist/testing/index.js +8 -0
  846. package/dist/testing/index.js.map +1 -1
  847. package/dist/workflow/DurableDeferred.d.ts +54 -0
  848. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  849. package/dist/workflow/DurableDeferred.js +78 -49
  850. package/dist/workflow/DurableDeferred.js.map +1 -1
  851. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  852. package/dist/workflow/WorkflowEngine.js +2 -1
  853. package/dist/workflow/WorkflowEngine.js.map +1 -1
  854. package/package.json +3 -3
  855. package/src/Array.ts +351 -3
  856. package/src/BigDecimal.ts +88 -0
  857. package/src/BigInt.ts +68 -0
  858. package/src/Boolean.ts +34 -0
  859. package/src/Brand.ts +10 -0
  860. package/src/ByteSize.ts +87 -0
  861. package/src/Cache.ts +50 -8
  862. package/src/Cause.ts +82 -0
  863. package/src/Channel.ts +368 -18
  864. package/src/ChannelSchema.ts +13 -0
  865. package/src/Chunk.ts +193 -0
  866. package/src/Clock.ts +7 -0
  867. package/src/Combiner.ts +10 -0
  868. package/src/Config.ts +82 -8
  869. package/src/ConfigProvider.ts +28 -0
  870. package/src/Console.ts +26 -0
  871. package/src/Context.ts +53 -3
  872. package/src/Cron.ts +32 -1
  873. package/src/Crypto.ts +48 -9
  874. package/src/Data.ts +13 -0
  875. package/src/DateTime.ts +180 -6
  876. package/src/Deferred.ts +51 -0
  877. package/src/Differ.ts +2 -0
  878. package/src/Duration.ts +126 -16
  879. package/src/Effect.ts +539 -5
  880. package/src/Effectable.ts +4 -0
  881. package/src/Equal.ts +12 -1
  882. package/src/Equivalence.ts +22 -0
  883. package/src/ErrorReporter.ts +36 -0
  884. package/src/ExecutionPlan.ts +58 -14
  885. package/src/Exit.ts +40 -0
  886. package/src/Fiber.ts +20 -0
  887. package/src/FiberHandle.ts +29 -4
  888. package/src/FiberMap.ts +38 -0
  889. package/src/FiberSet.ts +21 -0
  890. package/src/FileSystem.ts +64 -2
  891. package/src/Filter.ts +55 -0
  892. package/src/Formatter.ts +42 -1
  893. package/src/Function.ts +30 -0
  894. package/src/Graph.ts +317 -36
  895. package/src/HKT.ts +5 -0
  896. package/src/Hash.ts +15 -0
  897. package/src/HashMap.ts +91 -0
  898. package/src/HashRing.ts +18 -0
  899. package/src/HashSet.ts +53 -0
  900. package/src/Inspectable.ts +8 -0
  901. package/src/Iterable.ts +127 -0
  902. package/src/JsonPatch.ts +5 -0
  903. package/src/JsonPointer.ts +5 -0
  904. package/src/JsonSchema.ts +17 -0
  905. package/src/Latch.ts +14 -0
  906. package/src/Layer.ts +101 -1
  907. package/src/LayerMap.ts +7 -0
  908. package/src/LayerRef.ts +5 -0
  909. package/src/LogLevel.ts +20 -0
  910. package/src/Logger.ts +41 -5
  911. package/src/ManagedRuntime.ts +12 -1
  912. package/src/Match.ts +52 -0
  913. package/src/Metric.ts +69 -0
  914. package/src/MutableHashMap.ts +44 -0
  915. package/src/MutableHashSet.ts +17 -0
  916. package/src/MutableList.ts +21 -0
  917. package/src/MutableRef.ts +32 -0
  918. package/src/Newtype.ts +9 -0
  919. package/src/NonEmptyIterable.ts +4 -0
  920. package/src/Number.ts +61 -0
  921. package/src/Optic.ts +57 -0
  922. package/src/Option.ts +134 -0
  923. package/src/Order.ts +30 -0
  924. package/src/Ordering.ts +7 -0
  925. package/src/PartitionedSemaphore.ts +61 -22
  926. package/src/Path.ts +6 -0
  927. package/src/Pipeable.ts +7 -0
  928. package/src/PlatformError.ts +8 -0
  929. package/src/Pool.ts +20 -1
  930. package/src/Predicate.ts +85 -0
  931. package/src/PrimaryKey.ts +5 -0
  932. package/src/PubSub.ts +90 -9
  933. package/src/Pull.ts +20 -0
  934. package/src/Queue.ts +80 -10
  935. package/src/Random.ts +13 -0
  936. package/src/RcMap.ts +23 -0
  937. package/src/RcRef.ts +6 -0
  938. package/src/Record.ts +100 -0
  939. package/src/Redactable.ts +6 -0
  940. package/src/Redacted.ts +8 -0
  941. package/src/Reducer.ts +4 -0
  942. package/src/Ref.ts +42 -0
  943. package/src/References.ts +21 -0
  944. package/src/RegExp.ts +4 -0
  945. package/src/Request.ts +32 -0
  946. package/src/RequestResolver.ts +59 -10
  947. package/src/Resource.ts +7 -0
  948. package/src/Result.ts +93 -0
  949. package/src/Runtime.ts +10 -0
  950. package/src/Schedule.ts +61 -0
  951. package/src/Scheduler.ts +7 -0
  952. package/src/Schema.ts +1168 -9
  953. package/src/SchemaAST.ts +115 -1
  954. package/src/SchemaGetter.ts +80 -4
  955. package/src/SchemaIssue.ts +34 -0
  956. package/src/SchemaParser.ts +26 -0
  957. package/src/SchemaRepresentation.ts +148 -0
  958. package/src/SchemaTransformation.ts +53 -0
  959. package/src/Scope.ts +19 -0
  960. package/src/ScopedCache.ts +55 -3
  961. package/src/ScopedRef.ts +9 -0
  962. package/src/Semaphore.ts +26 -0
  963. package/src/Sink.ts +126 -2
  964. package/src/StandardSchema.ts +1 -0
  965. package/src/Stdio.ts +16 -2
  966. package/src/Stream.ts +633 -26
  967. package/src/String.ts +87 -0
  968. package/src/Struct.ts +46 -0
  969. package/src/SubscriptionRef.ts +65 -0
  970. package/src/Symbol.ts +2 -0
  971. package/src/SynchronizedRef.ts +63 -0
  972. package/src/Take.ts +3 -0
  973. package/src/Terminal.ts +8 -0
  974. package/src/Tracer.ts +23 -0
  975. package/src/Trie.ts +68 -0
  976. package/src/Tuple.ts +38 -0
  977. package/src/TxChunk.ts +52 -0
  978. package/src/TxDeferred.ts +15 -0
  979. package/src/TxHashMap.ts +97 -6
  980. package/src/TxHashSet.ts +83 -3
  981. package/src/TxPriorityQueue.ts +34 -2
  982. package/src/TxPubSub.ts +26 -0
  983. package/src/TxQueue.ts +51 -0
  984. package/src/TxReentrantLock.ts +53 -36
  985. package/src/TxRef.ts +14 -0
  986. package/src/TxSemaphore.ts +47 -31
  987. package/src/TxSubscriptionRef.ts +25 -0
  988. package/src/Types.ts +36 -0
  989. package/src/UndefinedOr.ts +15 -0
  990. package/src/Unify.ts +15 -0
  991. package/src/Utils.ts +4 -0
  992. package/src/Version.ts +38 -0
  993. package/src/ai/Chat.ts +1 -1
  994. package/src/ai/DecisionModel.ts +42 -1
  995. package/src/ai/LanguageModel.ts +16 -19
  996. package/src/ai/McpServer.ts +169 -58
  997. package/src/ai/Telemetry.ts +62 -58
  998. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
  999. package/src/ai/internal/mcpProtocol.ts +3 -0
  1000. package/src/ai/internal/mcpRuntime.ts +86 -43
  1001. package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
  1002. package/src/cli/CliOutput.ts +33 -16
  1003. package/src/cli/Command.ts +4 -3
  1004. package/src/cli/Completions.ts +9 -6
  1005. package/src/cli/GlobalFlag.ts +19 -11
  1006. package/src/cli/Prompt.ts +159 -149
  1007. package/src/cli/internal/ansi.ts +26 -3
  1008. package/src/cli/internal/completions/powershell.ts +322 -0
  1009. package/src/cli/internal/completions/zsh.ts +4 -2
  1010. package/src/cli/internal/wizard.ts +34 -26
  1011. package/src/cluster/ClusterSchema.ts +32 -0
  1012. package/src/cluster/ClusterWorkflowEngine.ts +13 -24
  1013. package/src/cluster/K8sHttpClient.ts +12 -2
  1014. package/src/cluster/MessageStorage.ts +45 -14
  1015. package/src/cluster/Runners.ts +8 -2
  1016. package/src/cluster/Sharding.ts +207 -49
  1017. package/src/cluster/SqlMessageStorage.ts +118 -84
  1018. package/src/cluster/SqlRunnerStorage.ts +224 -128
  1019. package/src/cluster/internal/entityManager.ts +151 -55
  1020. package/src/encoding/Base64.ts +4 -0
  1021. package/src/encoding/Base64Url.ts +4 -0
  1022. package/src/encoding/EncodingError.ts +5 -0
  1023. package/src/encoding/Hex.ts +5 -0
  1024. package/src/encoding/Toml.ts +2 -2
  1025. package/src/encoding/Yaml.ts +8 -4
  1026. package/src/encoding/index.ts +4 -0
  1027. package/src/eventlog/SqlEventJournal.ts +18 -4
  1028. package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
  1029. package/src/http/FindMyWay/internal/router.ts +4 -7
  1030. package/src/http/Headers.ts +8 -2
  1031. package/src/http/HttpClient.ts +100 -29
  1032. package/src/http/HttpClientResponse.ts +3 -1
  1033. package/src/http/HttpEffect.ts +11 -2
  1034. package/src/http/HttpMiddleware.ts +60 -45
  1035. package/src/http/HttpServer.ts +1 -1
  1036. package/src/http/HttpTraceContext.ts +8 -2
  1037. package/src/http/internal/tracing.ts +52 -0
  1038. package/src/http-api/HttpApiBuilder.ts +5 -1
  1039. package/src/http-api/HttpApiClient.ts +13 -4
  1040. package/src/http-api/HttpApiError.ts +8 -4
  1041. package/src/http-api/HttpApiSecurity.ts +8 -8
  1042. package/src/index.ts +156 -0
  1043. package/src/internal/arbitrary/array.ts +3 -3
  1044. package/src/internal/arbitrary/model.ts +37 -14
  1045. package/src/internal/arbitrary/runner.ts +7 -7
  1046. package/src/internal/arbitrary/schema.ts +4 -3
  1047. package/src/internal/effect.ts +62 -58
  1048. package/src/internal/schedule.ts +23 -17
  1049. package/src/internal/schema/standardSchema.ts +2 -2
  1050. package/src/internal/version.ts +2 -0
  1051. package/src/net/AddressResolver.ts +222 -0
  1052. package/src/net/Dns.ts +1035 -0
  1053. package/src/net/Host.ts +472 -0
  1054. package/src/net/IpInterface.ts +117 -7
  1055. package/src/net/IpNetwork.ts +116 -17
  1056. package/src/net/NetAddress.ts +611 -76
  1057. package/src/net/index.ts +18 -0
  1058. package/src/observability/OtlpExporter.ts +9 -6
  1059. package/src/observability/OtlpLogger.ts +20 -21
  1060. package/src/observability/OtlpMetrics.ts +46 -116
  1061. package/src/observability/OtlpResource.ts +18 -27
  1062. package/src/observability/OtlpTracer.ts +34 -40
  1063. package/src/observability/PrometheusMetrics.ts +1 -0
  1064. package/src/observability/internal/otlpProtobuf.ts +60 -0
  1065. package/src/persistence/PersistedQueue.ts +146 -53
  1066. package/src/reactivity/AsyncResult.ts +1 -1
  1067. package/src/reactivity/Atom.ts +10 -6
  1068. package/src/reactivity/AtomHttpApi.ts +2 -4
  1069. package/src/reactivity/AtomRegistry.ts +7 -0
  1070. package/src/rpc/RpcClient.ts +87 -41
  1071. package/src/rpc/RpcServer.ts +85 -48
  1072. package/src/rpc/internal/tracing.ts +22 -0
  1073. package/src/schema/SchemaCompiler/runtime.ts +4 -1
  1074. package/src/socket/DatagramSocket.ts +919 -0
  1075. package/src/socket/Socket.ts +22 -2
  1076. package/src/socket/index.ts +6 -0
  1077. package/src/sql/Migrator.ts +21 -5
  1078. package/src/sql/SqlClient.ts +43 -19
  1079. package/src/sql/Statement.ts +59 -7
  1080. package/src/testing/TestClock.ts +9 -0
  1081. package/src/testing/TestConsole.ts +8 -0
  1082. package/src/testing/TestCrypto.ts +94 -0
  1083. package/src/testing/index.ts +9 -0
  1084. package/src/workflow/DurableDeferred.ts +123 -48
  1085. package/src/workflow/WorkflowEngine.ts +2 -1
@@ -13,8 +13,9 @@
13
13
  */
14
14
  import type { NonEmptyReadonlyArray } from "../Array.ts"
15
15
  import * as Cause from "../Cause.ts"
16
+ import * as Clock from "../Clock.ts"
16
17
  import * as Context from "../Context.ts"
17
- import type * as Duration from "../Duration.ts"
18
+ import * as Duration from "../Duration.ts"
18
19
  import * as Effect from "../Effect.ts"
19
20
  import * as Exit from "../Exit.ts"
20
21
  import * as Fiber from "../Fiber.ts"
@@ -42,6 +43,7 @@ import type { Span } from "../Tracer.ts"
42
43
  import * as Transferable from "../workers/Transferable.ts"
43
44
  import * as Worker from "../workers/Worker.ts"
44
45
  import type { WorkerError } from "../workers/WorkerError.ts"
46
+ import * as RpcTracing from "./internal/tracing.ts"
45
47
  import * as Rpc from "./Rpc.ts"
46
48
  import { RpcClientDefect, RpcClientError } from "./RpcClientError.ts"
47
49
  import type * as RpcGroup from "./RpcGroup.ts"
@@ -267,7 +269,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
267
269
  readonly flatten?: Flatten | undefined
268
270
  }
269
271
  ) {
270
- const spanPrefix = options?.spanPrefix ?? "RpcClient"
272
+ const spanPrefix = options.spanPrefix
271
273
  const supportsAck = options?.supportsAck ?? true
272
274
  const disableTracing = options?.disableTracing ?? false
273
275
  const generateRequestId = options?.generateRequestId ?? (() => requestIdCounter++ as RequestId)
@@ -335,8 +337,8 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
335
337
  opts?.discard ?? false
336
338
  )
337
339
  return disableTracing ? onRequest(undefined) : Effect.useSpan(
338
- `${spanPrefix}.${rpc._tag}`,
339
- { attributes: options.spanAttributes },
340
+ RpcTracing.spanName(spanPrefix, rpc._tag),
341
+ { kind: "client", attributes: RpcTracing.spanAttributes(rpc._tag, options.spanAttributes) },
340
342
  onRequest
341
343
  )
342
344
  }
@@ -447,9 +449,10 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
447
449
  return yield* Effect.interrupt
448
450
  }
449
451
 
450
- const span = disableTracing ? undefined : yield* Effect.makeSpanScoped(`${spanPrefix}.${rpc._tag}`, {
451
- attributes: options.spanAttributes
452
- })
452
+ const span = disableTracing ? undefined : yield* Effect.makeSpanScoped(
453
+ RpcTracing.spanName(spanPrefix, rpc._tag),
454
+ { kind: "client", attributes: RpcTracing.spanAttributes(rpc._tag, options.spanAttributes) }
455
+ )
453
456
  const fiber = Fiber.getCurrent()!
454
457
  const id = generateRequestId()
455
458
 
@@ -1046,20 +1049,36 @@ export const layerProtocolHttp = (options: {
1046
1049
  * `RpcSerialization`, connection hooks, ping timeouts, and the configured retry
1047
1050
  * policy.
1048
1051
  *
1052
+ * **Details**
1053
+ *
1054
+ * `pingInterval` defaults to 5 seconds. `pingTimeout` defaults to the interval
1055
+ * and measures time since the last decoded server frame, not the last pong.
1056
+ * The timeout is checked on each ping tick; any decoded frame counts as liveness.
1057
+ *
1049
1058
  * @stability unstable
1050
1059
  * @category protocols
1051
1060
  * @since 4.0.0
1052
1061
  */
1053
1062
  export const makeProtocolSocket = (options?: {
1063
+ readonly pingInterval?: Duration.Input | undefined
1064
+ readonly pingTimeout?: Duration.Input | undefined
1054
1065
  readonly retryTransientErrors?: boolean | undefined
1055
1066
  readonly retryPolicy?: Schedule.Schedule<any, Socket.SocketError> | undefined
1056
1067
  /**
1057
1068
  * Runs for each retried `SocketOpenError` when `retryTransientErrors` is enabled.
1058
- * A missed pong fails in-flight calls and is not reported through this hook.
1059
- * The returned `Effect<void>` cannot fail with a typed error or require
1060
- * services; defects are logged and ignored so retries can continue.
1069
+ * A ping timeout fails in-flight calls and is reported through `onPingTimeout`
1070
+ * instead. The returned `Effect<void>` cannot fail with a typed error or
1071
+ * require services; defects are logged and ignored so retries can continue.
1061
1072
  */
1062
1073
  readonly onTransientError?: ((error: RpcClientError) => Effect.Effect<void>) | undefined
1074
+ /**
1075
+ * Runs when an open connection is dropped because no server frame arrived
1076
+ * within `pingTimeout`, before `ConnectionHooks.onDisconnect` and before
1077
+ * in-flight calls fail with a `SocketReadError`. Defects are logged and ignored.
1078
+ *
1079
+ * @since 4.0.3
1080
+ */
1081
+ readonly onPingTimeout?: Effect.Effect<void> | undefined
1063
1082
  }): Effect.Effect<
1064
1083
  Protocol["Service"],
1065
1084
  never,
@@ -1075,10 +1094,12 @@ export const makeProtocolSocket = (options?: {
1075
1094
 
1076
1095
  let parser = serialization.makeUnsafe()
1077
1096
 
1078
- // `parser` is replaced on every connect, and a stateful serialization
1079
- // encodes against the connection it is writing to, so the ping is encoded
1080
- // when it is sent rather than once up front.
1081
- const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing)!)))
1097
+ // Encode each ping with the current connection's parser.
1098
+ const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing)!)), options)
1099
+ const onPingTimeout = Effect.ignoreCause(options?.onPingTimeout ?? Effect.void, {
1100
+ log: true,
1101
+ message: "RpcClient onPingTimeout hook failed"
1102
+ })
1082
1103
  let currentError: RpcClientError | undefined
1083
1104
 
1084
1105
  const broadcast = (response: FromServerEncoded) =>
@@ -1095,15 +1116,13 @@ export const makeProtocolSocket = (options?: {
1095
1116
  try {
1096
1117
  const responses = parser.decode(data) as Array<FromServerEncoded>
1097
1118
  if (responses.length === 0) return Effect.void
1119
+ pinger.onFrame()
1098
1120
  let i = 0
1099
1121
  return Effect.whileLoop({
1100
1122
  while: () => i < responses.length,
1101
1123
  body: () => {
1102
1124
  const response = responses[i++]
1103
- if (response._tag === "Pong") {
1104
- pinger.onPong()
1105
- return Effect.void
1106
- }
1125
+ if (response._tag === "Pong") return Effect.void
1107
1126
  if (Object.hasOwn(response, "requestId")) {
1108
1127
  const requestId = (response as FromServerEncoded & { readonly requestId: string | number }).requestId
1109
1128
  const clientId = requestClientMap.get(requestId)
@@ -1134,9 +1153,11 @@ export const makeProtocolSocket = (options?: {
1134
1153
  yield* Effect.suspend(() => {
1135
1154
  parser = serialization.makeUnsafe()
1136
1155
  pinger.reset()
1156
+ let connected = false
1137
1157
  return Effect.gen(function*() {
1138
1158
  const { pull } = yield* socket.reader
1139
1159
  currentError = undefined
1160
+ connected = true
1140
1161
  if (Option.isSome(hooks)) {
1141
1162
  yield* hooks.value.onConnect
1142
1163
  }
@@ -1148,17 +1169,19 @@ export const makeProtocolSocket = (options?: {
1148
1169
  }
1149
1170
  }).pipe(
1150
1171
  Effect.scoped,
1151
- Effect.raceFirst(Effect.flatMap(
1152
- pinger.timeout,
1153
- () =>
1154
- Effect.fail(
1155
- new Socket.SocketError({
1156
- reason: new Socket.SocketReadError({
1157
- cause: new Error("ping timeout")
1158
- })
1172
+ // The read loop never succeeds, so the race only succeeds on a ping
1173
+ // timeout, after the socket has been cleaned up.
1174
+ Effect.raceFirst(pinger.timeout),
1175
+ Effect.andThen(() => connected ? onPingTimeout : Effect.void),
1176
+ Effect.andThen(() =>
1177
+ Effect.fail(
1178
+ new Socket.SocketError({
1179
+ reason: new Socket.SocketReadError({
1180
+ cause: new Error("ping timeout")
1159
1181
  })
1160
- )
1161
- ))
1182
+ })
1183
+ )
1184
+ )
1162
1185
  )
1163
1186
  }).pipe(
1164
1187
  Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity,
@@ -1218,47 +1241,70 @@ const defaultRetryPolicy = Schedule.min([
1218
1241
  Schedule.spaced(5000)
1219
1242
  ])
1220
1243
 
1221
- const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>) {
1222
- let recievedPong = true
1244
+ const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>, options?: {
1245
+ readonly pingInterval?: Duration.Input | undefined
1246
+ readonly pingTimeout?: Duration.Input | undefined
1247
+ }) {
1248
+ const clock = yield* Clock.Clock
1249
+ const interval = options?.pingInterval ?? "5 seconds"
1250
+ const timeoutMillis = Duration.toMillis(options?.pingTimeout ?? interval)
1251
+ let lastSeen = clock.currentTimeMillisUnsafe()
1223
1252
  const latch = Latch.makeUnsafe()
1253
+ const onFrame = () => {
1254
+ lastSeen = clock.currentTimeMillisUnsafe()
1255
+ }
1224
1256
  const reset = () => {
1225
- recievedPong = true
1257
+ onFrame()
1226
1258
  latch.closeUnsafe()
1227
1259
  }
1228
- const onPong = () => {
1229
- recievedPong = true
1230
- }
1231
1260
  yield* Effect.suspend((): Effect.Effect<void, E, R> => {
1232
- if (!recievedPong) return latch.open
1233
- recievedPong = false
1261
+ if (clock.currentTimeMillisUnsafe() - lastSeen > timeoutMillis) return latch.open
1234
1262
  return writePing
1235
1263
  }).pipe(
1236
- Effect.delay("5 seconds"),
1264
+ Effect.delay(interval),
1237
1265
  Effect.ignore,
1238
1266
  Effect.forever,
1239
1267
  Effect.interruptible,
1240
1268
  Effect.forkScoped
1241
1269
  )
1242
- return { timeout: latch.await, reset, onPong } as const
1270
+ return { timeout: latch.await, reset, onFrame } as const
1243
1271
  })
1244
1272
 
1245
1273
  /**
1246
1274
  * Provides a client `Protocol` backed by the current `Socket` and
1247
1275
  * `RpcSerialization` services.
1248
1276
  *
1277
+ * **Details**
1278
+ *
1279
+ * `pingInterval` defaults to 5 seconds. `pingTimeout` defaults to the interval
1280
+ * and measures time since the last decoded server frame, not the last pong.
1281
+ * The timeout is checked on each ping tick; any decoded frame counts as liveness.
1282
+ * `retryPolicy` configures retries after socket errors.
1283
+ *
1249
1284
  * @stability unstable
1250
1285
  * @category layers
1251
1286
  * @since 4.0.0
1252
1287
  */
1253
1288
  export const layerProtocolSocket = (options?: {
1289
+ readonly pingInterval?: Duration.Input | undefined
1290
+ readonly pingTimeout?: Duration.Input | undefined
1254
1291
  readonly retryTransientErrors?: boolean | undefined
1292
+ readonly retryPolicy?: Schedule.Schedule<any, Socket.SocketError> | undefined
1255
1293
  /**
1256
1294
  * Runs for each retried `SocketOpenError` when `retryTransientErrors` is enabled.
1257
- * A missed pong fails in-flight calls and is not reported through this hook.
1258
- * The returned `Effect<void>` cannot fail with a typed error or require
1259
- * services; defects are logged and ignored so retries can continue.
1295
+ * A ping timeout fails in-flight calls and is reported through `onPingTimeout`
1296
+ * instead. The returned `Effect<void>` cannot fail with a typed error or
1297
+ * require services; defects are logged and ignored so retries can continue.
1260
1298
  */
1261
1299
  readonly onTransientError?: ((error: RpcClientError) => Effect.Effect<void>) | undefined
1300
+ /**
1301
+ * Runs when an open connection is dropped because no server frame arrived
1302
+ * within `pingTimeout`, before `ConnectionHooks.onDisconnect` and before
1303
+ * in-flight calls fail with a `SocketReadError`. Defects are logged and ignored.
1304
+ *
1305
+ * @since 4.0.3
1306
+ */
1307
+ readonly onPingTimeout?: Effect.Effect<void> | undefined
1262
1308
  }): Layer.Layer<
1263
1309
  Protocol,
1264
1310
  never,
@@ -44,6 +44,7 @@ import type * as Types from "../Types.ts"
44
44
  import * as Transferable from "../workers/Transferable.ts"
45
45
  import type { WorkerError } from "../workers/WorkerError.ts"
46
46
  import * as WorkerRunner from "../workers/WorkerRunner.ts"
47
+ import * as RpcTracing from "./internal/tracing.ts"
47
48
  import * as Rpc from "./Rpc.ts"
48
49
  import type * as RpcGroup from "./RpcGroup.ts"
49
50
  import type {
@@ -81,6 +82,12 @@ export interface RpcServer<A extends Rpc.Any> {
81
82
  * handlers for a group and sending decoded server responses through
82
83
  * `onFromServer`.
83
84
  *
85
+ * **Details**
86
+ *
87
+ * If writing a stream `Chunk` fails with anything other than an interruption,
88
+ * the request fails with that cause. `onFromServer` is assumed to have already
89
+ * answered the client and reported it, so nothing else is sent or reported.
90
+ *
84
91
  * @stability unstable
85
92
  * @category constructors
86
93
  * @since 4.0.0
@@ -117,7 +124,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
117
124
  const enableTracing = options.disableTracing !== true
118
125
  const enableSpanPropagation = options.disableSpanPropagation !== true
119
126
  const supportsAck = options.disableClientAcks !== true
120
- const spanPrefix = options.spanPrefix ?? "RpcServer"
127
+ const spanPrefix = options.spanPrefix
121
128
  const concurrency = options.concurrency ?? "unbounded"
122
129
  const disableFatalDefects = options.disableFatalDefects ?? false
123
130
  const services = yield* Effect.context<Rpc.ToHandler<Rpcs> | Scope.Scope>()
@@ -187,7 +194,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
187
194
  clients.set(clientId, client)
188
195
  } else if (
189
196
  client.ended &&
190
- (message._tag !== "Interrupt" || !client.fibers.has(message.requestId))
197
+ ((message._tag !== "Interrupt" && message._tag !== "Ack") || !client.fibers.has(message.requestId))
191
198
  ) {
192
199
  return Effect.interrupt
193
200
  }
@@ -198,7 +205,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
198
205
  }
199
206
  case "Ack": {
200
207
  const latch = client.latches?.get(message.requestId)
201
- return latch ? latch.open : Effect.void
208
+ return latch ? Effect.asVoid(latch.open) : Effect.void
202
209
  }
203
210
  case "Interrupt": {
204
211
  const fiber = client.fibers.get(message.requestId)
@@ -278,13 +285,23 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
278
285
  const isUninterruptible = isWrapper && result.uninterruptible
279
286
  // unwrap the fork data type
280
287
  const streamOrEffect = isWrapper ? result.value : result
288
+ // set when a chunk could not be written; the writer has already responded
289
+ let writeFailure: Cause.Cause<never> | undefined
281
290
  const handler = isStream
282
- ? (streamEffect(client, request, streamOrEffect) as Effect.Effect<{} | Deferred.Deferred<any, any>>)
291
+ ? (streamEffect(client, request, streamOrEffect, (cause) => {
292
+ writeFailure = cause
293
+ }) as Effect.Effect<{} | Deferred.Deferred<any, any>>)
283
294
  : (streamOrEffect as Effect.Effect<{} | Deferred.Deferred<any, any>>)
284
295
 
285
- const withMiddleware = rpc.middlewares.size > 0
286
- ? applyMiddleware(services, handler, metadata)
287
- : handler
296
+ const withMiddleware = rpc.middlewares.size === 0
297
+ ? handler
298
+ : isStream
299
+ // middleware may rewrite or swallow a chunk write failure, so restore it
300
+ ? Effect.flatMap(
301
+ Effect.exit(applyMiddleware(services, handler, metadata)),
302
+ (exit) => writeFailure ? Effect.failCause(writeFailure) : exit
303
+ )
304
+ : applyMiddleware(services, handler, metadata)
288
305
  let responded = false
289
306
  const scope = Scope.makeUnsafe()
290
307
  let deferred: Deferred.Deferred<unknown, unknown> | undefined = undefined
@@ -303,6 +320,9 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
303
320
  exit: exit as any
304
321
  })
305
322
  }
323
+ } else if (writeFailure) {
324
+ // onFromServer has already answered the client and reported the failure
325
+ return Scope.closeUnsafe(scope, exit) ?? Effect.void
306
326
  } else if (
307
327
  !disableFatalDefects &&
308
328
  Cause.hasDies(exit.cause) &&
@@ -331,9 +351,10 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
331
351
  requestFiber.context,
332
352
  Tracer.ParentSpan
333
353
  )
334
- effect = Effect.withSpan(effect, `${spanPrefix}.${request.tag}`, {
354
+ effect = Effect.withSpan(effect, RpcTracing.spanName(spanPrefix, request.tag), {
335
355
  captureStackTrace: false,
336
- attributes: options.spanAttributes,
356
+ kind: "server",
357
+ attributes: RpcTracing.spanAttributes(request.tag, options.spanAttributes),
337
358
  parent: enableSpanPropagation && request.spanId
338
359
  ? Tracer.externalSpan({
339
360
  traceId: request.traceId!,
@@ -359,11 +380,14 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
359
380
  )
360
381
  const fiber = trackFiber(
361
382
  runFork(
362
- effect,
383
+ // Register before the handler runs to catch synchronous cancellation.
384
+ Effect.withFiber((fiber) => {
385
+ client.fibers.set(request.id, fiber)
386
+ return effect
387
+ }),
363
388
  isUninterruptible ? { uninterruptible: true } : undefined
364
389
  )
365
390
  )
366
- client.fibers.set(request.id, fiber)
367
391
  fiber.addObserver(function onExit(exit: Exit.Exit<any, any>): void {
368
392
  if (deferred) {
369
393
  const fiber = trackFiber(runFork(Effect.onExit(Deferred.await(deferred), (exit) =>
@@ -404,8 +428,17 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
404
428
  request: Request<Rpcs>,
405
429
  stream:
406
430
  | Stream.Stream<any, any>
407
- | Effect.Effect<Queue.Dequeue<any, any>, any, Scope.Scope>
431
+ | Effect.Effect<Queue.Dequeue<any, any>, any, Scope.Scope>,
432
+ onWriteFailure: (cause: Cause.Cause<never>) => void
408
433
  ) => {
434
+ const writeChunk = (values: NonEmptyReadonlyArray<any>) =>
435
+ Effect.onError(
436
+ options.onFromServer({ _tag: "Chunk", clientId: client.id, requestId: request.id, values }),
437
+ (cause) => {
438
+ if (!Cause.hasInterruptsOnly(cause)) onWriteFailure(cause)
439
+ return Effect.void
440
+ }
441
+ )
409
442
  let latch: Latch.Latch | undefined
410
443
  if (supportsAck) {
411
444
  client.latches ??= new Map()
@@ -422,12 +455,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
422
455
  while: constTrue,
423
456
  body: constant(
424
457
  Effect.flatMap(Queue.takeAll(queue), (values) => {
425
- const write = options.onFromServer({
426
- _tag: "Chunk",
427
- clientId: client.id,
428
- requestId: request.id,
429
- values
430
- })
458
+ const write = writeChunk(values)
431
459
  if (!latch) return write
432
460
  latch.closeUnsafe()
433
461
  return Effect.flatMap(write, () => latch.await)
@@ -441,12 +469,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
441
469
  )
442
470
  }
443
471
  return Stream.runForEachArray(stream, (values) => {
444
- const write = options.onFromServer({
445
- _tag: "Chunk",
446
- clientId: client.id,
447
- requestId: request.id,
448
- values
449
- })
472
+ const write = writeChunk(values)
450
473
  if (!latch) return write
451
474
  latch.closeUnsafe()
452
475
  return Effect.andThen(write, latch.await)
@@ -564,6 +587,10 @@ export const make: <Rpcs extends Rpc.Any>(
564
587
  supportsTransferables
565
588
  } = yield* Protocol
566
589
  const encodeDefectUnsafe = Schema.encodeSync(codecFor(Schema.Defect()))
590
+ // Unknown tags have no RPC schema, so use a defect-only exit schema.
591
+ const encodeUnknownRequestExit: Schemas["encodeExit"] = Schema.encodeUnknownEffect(
592
+ codecFor(Schema.Exit(Schema.Never, Schema.Never, Schema.Defect()))
593
+ ) as any
567
594
  const services = yield* Effect.context<Rpc.ToHandler<Rpcs> | Rpc.Middleware<Rpcs>>()
568
595
  const scope = yield* Scope.make()
569
596
 
@@ -624,12 +651,12 @@ export const make: <Rpcs extends Rpc.Any>(
624
651
  )
625
652
 
626
653
  type Schemas = {
654
+ readonly tag: string
627
655
  readonly decode: (u: unknown) => Effect.Effect<Rpc.Payload<Rpcs>, Schema.SchemaError>
628
656
  readonly encodeChunk: (
629
657
  u: NonEmptyReadonlyArray<unknown>
630
658
  ) => Effect.Effect<NonEmptyReadonlyArray<unknown>, Schema.SchemaError>
631
659
  readonly encodeExit: (u: unknown) => Effect.Effect<ResponseExitEncoded["exit"], Schema.SchemaError>
632
- readonly encodeDefect: (u: unknown) => Effect.Effect<unknown, Schema.SchemaError>
633
660
  readonly context: Context.Context<never>
634
661
  readonly collector?: Transferable.Collector["Service"] | undefined
635
662
  }
@@ -641,6 +668,7 @@ export const make: <Rpcs extends Rpc.Any>(
641
668
  const entry = Context.getOrUndefinedUnsafe(services, rpc.key) as Rpc.Handler<Rpcs["_tag"]>
642
669
  const streamSchemas = RpcSchema.getStreamSchemas(rpc.successSchema)
643
670
  schemas = {
671
+ tag: rpc._tag,
644
672
  decode: Schema.decodeUnknownEffect(codecFor(rpc.payloadSchema)) as any,
645
673
  encodeChunk: Schema.encodeUnknownEffect(
646
674
  codecFor(
@@ -648,7 +676,6 @@ export const make: <Rpcs extends Rpc.Any>(
648
676
  )
649
677
  ) as any,
650
678
  encodeExit: Schema.encodeUnknownEffect(codecFor(Rpc.exitSchema(rpc as any))) as any,
651
- encodeDefect: Schema.encodeUnknownEffect(codecFor(rpc.defectSchema)) as any,
652
679
  context: entry.context
653
680
  }
654
681
  schemasCache.set(rpc, schemas)
@@ -679,23 +706,38 @@ export const make: <Rpcs extends Rpc.Any>(
679
706
  tag: "Chunk" | "Exit"
680
707
  ) => {
681
708
  const collector = schemas.collector
709
+ let encodeFailed = false
682
710
  // The schema encoders evaluate eagerly, so an encode that needs no
683
711
  // services is already a resolved success and can skip the effect wrappers.
684
712
  const write = Exit.isExit(effect) && Exit.isSuccess(effect)
685
713
  ? send(client.id, responseEnvelope(requestId, tag, effect.value), collector && collector.clearUnsafe())
686
714
  : Effect.flatMap(
687
- Effect.provideContext(
688
- collector ? Effect.provideService(effect, Transferable.Collector, collector) : effect,
689
- schemas.context
715
+ Effect.catch(
716
+ Effect.provideContext(
717
+ collector ? Effect.provideService(effect, Transferable.Collector, collector) : effect,
718
+ schemas.context
719
+ ),
720
+ (error) =>
721
+ Effect.withFiber((fiber) => {
722
+ const defect = Cause.die(
723
+ `Failed to encode response for RPC "${schemas.tag}": ${SchemaIssue.defaultFormatter(error.issue)}`
724
+ )
725
+ reportCauseUnsafe(fiber, defect)
726
+ encodeFailed = true
727
+ return Effect.failCause(defect)
728
+ })
690
729
  ),
691
730
  (value) => send(client.id, responseEnvelope(requestId, tag, value), collector && collector.clearUnsafe())
692
731
  )
693
732
  return Effect.catchCause(write, (cause) => {
694
733
  client.schemas.delete(requestId)
695
- const defect = Cause.squash(Cause.map(cause, (e) => SchemaIssue.defaultFormatter(e.issue)))
734
+ // An encode failure ends the request with the defect, so the request
735
+ // span records it. Other failures stop the request as a cancellation.
696
736
  return Effect.andThen(
697
- sendRequestDefect(client, requestId, schemas.encodeDefect, defect),
698
- server.write(client.id, { _tag: "Interrupt", requestId, interruptors: [] })
737
+ sendRequestDefect(client, requestId, schemas.encodeExit, Cause.squash(cause)),
738
+ encodeFailed
739
+ ? Effect.failCause(cause)
740
+ : server.write(client.id, { _tag: "Interrupt", requestId, interruptors: [] })
699
741
  )
700
742
  })
701
743
  }
@@ -703,22 +745,14 @@ export const make: <Rpcs extends Rpc.Any>(
703
745
  const sendRequestDefect = (
704
746
  client: Client,
705
747
  requestId: RequestId,
706
- encodeDefect: (u: unknown) => Effect.Effect<unknown, Schema.SchemaError>,
748
+ encodeExit: Schemas["encodeExit"],
707
749
  defect: unknown
708
750
  ) =>
709
751
  Effect.catchCause(
710
- Effect.flatMap(encodeDefect(defect), (encodedDefect) =>
711
- send(client.id, {
712
- _tag: "Exit",
713
- requestId,
714
- exit: {
715
- _tag: "Failure",
716
- cause: [{
717
- _tag: "Die",
718
- defect: encodedDefect
719
- }]
720
- }
721
- })),
752
+ Effect.flatMap(
753
+ encodeExit(Exit.die(defect)),
754
+ (exit) => send(client.id, responseEnvelope(requestId, "Exit", exit))
755
+ ),
722
756
  (cause) => sendDefect(client, Cause.squash(cause))
723
757
  )
724
758
 
@@ -784,7 +818,7 @@ export const make: <Rpcs extends Rpc.Any>(
784
818
  }
785
819
  const rpc = group.requests.get(tag)
786
820
  if (!rpc) {
787
- return sendRequestDefect(client, requestId, (defect) => Effect.succeed(defect), `Unknown request tag: ${tag}`)
821
+ return sendRequestDefect(client, requestId, encodeUnknownRequestExit, `Unknown request tag: ${tag}`)
788
822
  }
789
823
  const schemas = getSchemas(rpc as any)
790
824
  const decoded = schemas.decode(request.payload)
@@ -798,7 +832,7 @@ export const make: <Rpcs extends Rpc.Any>(
798
832
  Effect.provideContext(decoded, schemas.context),
799
833
  {
800
834
  onFailure: (error) =>
801
- sendRequestDefect(client, requestId, schemas.encodeDefect, SchemaIssue.defaultFormatter(error.issue)),
835
+ sendRequestDefect(client, requestId, schemas.encodeExit, SchemaIssue.defaultFormatter(error.issue)),
802
836
  onSuccess: (payload) => writeDecodedRequest(client, requestId, schemas, request, payload)
803
837
  }
804
838
  )
@@ -1181,7 +1215,10 @@ export const makeProtocolWithHttpEffect: (
1181
1215
  })
1182
1216
  }
1183
1217
 
1184
- const initialChunk = yield* Queue.takeAll(queue) as any as Effect.Effect<NonEmptyReadonlyArray<Uint8Array>>
1218
+ const initialChunk = yield* Pull.catchDone(
1219
+ Queue.takeAll(queue as Queue.Dequeue<Uint8Array, Cause.Done>),
1220
+ () => Effect.succeed([])
1221
+ )
1185
1222
  if (queue.state._tag === "Done") {
1186
1223
  return HttpServerResponse.uint8Array(mergeUint8Arrays(initialChunk), {
1187
1224
  contentType: serialization.contentType
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Names the span after the RPC method, or `${spanPrefix}.${tag}` when a prefix
3
+ * is configured.
4
+ *
5
+ * @internal
6
+ */
7
+ export const spanName = (spanPrefix: string | undefined, tag: string): string =>
8
+ spanPrefix === undefined ? tag : `${spanPrefix}.${tag}`
9
+
10
+ /**
11
+ * Default RPC span attributes, overridden by user `spanAttributes`.
12
+ *
13
+ * @internal
14
+ */
15
+ export const spanAttributes = (
16
+ tag: string,
17
+ attributes: Record<string, unknown> | undefined
18
+ ): Record<string, unknown> => ({
19
+ "rpc.system.name": "effect_rpc",
20
+ "rpc.method": tag,
21
+ ...attributes
22
+ })
@@ -65,12 +65,15 @@ const makeObjectBase = (
65
65
  const runFallback: SchemaIssueParser = (input, options) =>
66
66
  (fallback ??= ast.getParser(compile, compileField))(input, options)
67
67
  const resume = (
68
- state: ObjectParserState,
68
+ snapshot: ObjectParserState,
69
69
  index: number,
70
70
  pending: Effect.Effect<unknown, SchemaIssue.Issue, any>
71
71
  ): Effect.Effect<unknown, SchemaIssue.Issue, any> => {
72
72
  const property = properties![index]
73
73
  return Effect.flatMap(Effect.exit(pending), (exit) => {
74
+ // Each execution gets its own output; `issues` is still undefined here
75
+ // because `errors: "all"` is routed to the fallback before suspending.
76
+ const state: ObjectParserState = { ...snapshot, out: { ...snapshot.out } }
74
77
  const terminal = SchemaAST.stepProperty(state, property, exit)
75
78
  if (terminal) return terminal
76
79
  const done = () => InternalParser.succeed(state.out)