effect 4.0.0-beta.43 → 4.0.0-beta.44

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 (837) hide show
  1. package/dist/Cache.d.ts +12 -43
  2. package/dist/Cache.d.ts.map +1 -1
  3. package/dist/Cache.js +15 -42
  4. package/dist/Cache.js.map +1 -1
  5. package/dist/Cause.d.ts +21 -21
  6. package/dist/Cause.d.ts.map +1 -1
  7. package/dist/Cause.js +89 -10
  8. package/dist/Cause.js.map +1 -1
  9. package/dist/Channel.d.ts +42 -19
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +86 -46
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Clock.d.ts +2 -2
  14. package/dist/Clock.d.ts.map +1 -1
  15. package/dist/Clock.js.map +1 -1
  16. package/dist/Config.d.ts +2 -2
  17. package/dist/ConfigProvider.d.ts +5 -5
  18. package/dist/ConfigProvider.d.ts.map +1 -1
  19. package/dist/ConfigProvider.js +5 -5
  20. package/dist/ConfigProvider.js.map +1 -1
  21. package/dist/Console.d.ts +2 -2
  22. package/dist/Console.d.ts.map +1 -1
  23. package/dist/Console.js.map +1 -1
  24. package/dist/Context.d.ts +1150 -0
  25. package/dist/Context.d.ts.map +1 -0
  26. package/dist/{ServiceMap.js → Context.js} +139 -139
  27. package/dist/Context.js.map +1 -0
  28. package/dist/DateTime.d.ts +2 -2
  29. package/dist/DateTime.d.ts.map +1 -1
  30. package/dist/DateTime.js +2 -2
  31. package/dist/DateTime.js.map +1 -1
  32. package/dist/Effect.d.ts +177 -177
  33. package/dist/Effect.d.ts.map +1 -1
  34. package/dist/Effect.js +81 -81
  35. package/dist/Effect.js.map +1 -1
  36. package/dist/ErrorReporter.d.ts +3 -3
  37. package/dist/ErrorReporter.d.ts.map +1 -1
  38. package/dist/ErrorReporter.js +1 -1
  39. package/dist/ErrorReporter.js.map +1 -1
  40. package/dist/ExecutionPlan.d.ts +6 -6
  41. package/dist/ExecutionPlan.d.ts.map +1 -1
  42. package/dist/ExecutionPlan.js +4 -4
  43. package/dist/ExecutionPlan.js.map +1 -1
  44. package/dist/Fiber.d.ts +7 -7
  45. package/dist/Fiber.d.ts.map +1 -1
  46. package/dist/Fiber.js.map +1 -1
  47. package/dist/FiberHandle.d.ts +2 -2
  48. package/dist/FiberHandle.d.ts.map +1 -1
  49. package/dist/FiberHandle.js +4 -4
  50. package/dist/FiberHandle.js.map +1 -1
  51. package/dist/FiberMap.d.ts +2 -2
  52. package/dist/FiberMap.d.ts.map +1 -1
  53. package/dist/FiberMap.js +4 -4
  54. package/dist/FiberMap.js.map +1 -1
  55. package/dist/FiberSet.d.ts +2 -2
  56. package/dist/FiberSet.d.ts.map +1 -1
  57. package/dist/FiberSet.js +4 -4
  58. package/dist/FiberSet.js.map +1 -1
  59. package/dist/FileSystem.d.ts +3 -3
  60. package/dist/FileSystem.d.ts.map +1 -1
  61. package/dist/FileSystem.js +3 -3
  62. package/dist/FileSystem.js.map +1 -1
  63. package/dist/Layer.d.ts +286 -268
  64. package/dist/Layer.d.ts.map +1 -1
  65. package/dist/Layer.js +133 -134
  66. package/dist/Layer.js.map +1 -1
  67. package/dist/LayerMap.d.ts +18 -18
  68. package/dist/LayerMap.d.ts.map +1 -1
  69. package/dist/LayerMap.js +18 -15
  70. package/dist/LayerMap.js.map +1 -1
  71. package/dist/Logger.d.ts +3 -3
  72. package/dist/Logger.d.ts.map +1 -1
  73. package/dist/Logger.js.map +1 -1
  74. package/dist/ManagedRuntime.d.ts +6 -6
  75. package/dist/ManagedRuntime.d.ts.map +1 -1
  76. package/dist/ManagedRuntime.js +18 -21
  77. package/dist/ManagedRuntime.js.map +1 -1
  78. package/dist/Metric.d.ts +19 -19
  79. package/dist/Metric.d.ts.map +1 -1
  80. package/dist/Metric.js +21 -21
  81. package/dist/Metric.js.map +1 -1
  82. package/dist/Path.d.ts +2 -2
  83. package/dist/Path.d.ts.map +1 -1
  84. package/dist/Path.js +2 -2
  85. package/dist/Path.js.map +1 -1
  86. package/dist/Pool.d.ts.map +1 -1
  87. package/dist/Pool.js +4 -4
  88. package/dist/Pool.js.map +1 -1
  89. package/dist/PubSub.d.ts.map +1 -1
  90. package/dist/PubSub.js +3 -3
  91. package/dist/PubSub.js.map +1 -1
  92. package/dist/Random.d.ts +2 -2
  93. package/dist/Random.d.ts.map +1 -1
  94. package/dist/Random.js +0 -23
  95. package/dist/Random.js.map +1 -1
  96. package/dist/RcMap.d.ts +2 -2
  97. package/dist/RcMap.d.ts.map +1 -1
  98. package/dist/RcMap.js +12 -12
  99. package/dist/RcMap.js.map +1 -1
  100. package/dist/Redactable.d.ts +139 -62
  101. package/dist/Redactable.d.ts.map +1 -1
  102. package/dist/Redactable.js +59 -55
  103. package/dist/Redactable.js.map +1 -1
  104. package/dist/References.d.ts +26 -14
  105. package/dist/References.d.ts.map +1 -1
  106. package/dist/References.js +0 -12
  107. package/dist/References.js.map +1 -1
  108. package/dist/Request.d.ts +5 -5
  109. package/dist/Request.d.ts.map +1 -1
  110. package/dist/Request.js.map +1 -1
  111. package/dist/RequestResolver.d.ts.map +1 -1
  112. package/dist/RequestResolver.js +6 -7
  113. package/dist/RequestResolver.js.map +1 -1
  114. package/dist/Resource.d.ts +0 -3
  115. package/dist/Resource.d.ts.map +1 -1
  116. package/dist/Resource.js +3 -3
  117. package/dist/Resource.js.map +1 -1
  118. package/dist/Schedule.d.ts +2 -2
  119. package/dist/Schedule.d.ts.map +1 -1
  120. package/dist/Schedule.js +2 -2
  121. package/dist/Schedule.js.map +1 -1
  122. package/dist/Scheduler.d.ts +4 -4
  123. package/dist/Scheduler.d.ts.map +1 -1
  124. package/dist/Scheduler.js +7 -4
  125. package/dist/Scheduler.js.map +1 -1
  126. package/dist/Schema.d.ts +531 -214
  127. package/dist/Schema.d.ts.map +1 -1
  128. package/dist/Schema.js +304 -103
  129. package/dist/Schema.js.map +1 -1
  130. package/dist/SchemaAST.d.ts.map +1 -1
  131. package/dist/SchemaAST.js +5 -15
  132. package/dist/SchemaAST.js.map +1 -1
  133. package/dist/SchemaGetter.d.ts +49 -5
  134. package/dist/SchemaGetter.d.ts.map +1 -1
  135. package/dist/SchemaGetter.js +64 -5
  136. package/dist/SchemaGetter.js.map +1 -1
  137. package/dist/SchemaTransformation.d.ts +145 -0
  138. package/dist/SchemaTransformation.d.ts.map +1 -1
  139. package/dist/SchemaTransformation.js +146 -0
  140. package/dist/SchemaTransformation.js.map +1 -1
  141. package/dist/Scope.d.ts +2 -2
  142. package/dist/Scope.d.ts.map +1 -1
  143. package/dist/Scope.js.map +1 -1
  144. package/dist/ScopedCache.d.ts.map +1 -1
  145. package/dist/ScopedCache.js +4 -4
  146. package/dist/ScopedCache.js.map +1 -1
  147. package/dist/Sink.d.ts +6 -6
  148. package/dist/Sink.d.ts.map +1 -1
  149. package/dist/Sink.js +1 -1
  150. package/dist/Sink.js.map +1 -1
  151. package/dist/Stdio.d.ts +2 -2
  152. package/dist/Stdio.d.ts.map +1 -1
  153. package/dist/Stdio.js +2 -2
  154. package/dist/Stdio.js.map +1 -1
  155. package/dist/Stream.d.ts +187 -117
  156. package/dist/Stream.d.ts.map +1 -1
  157. package/dist/Stream.js +133 -57
  158. package/dist/Stream.js.map +1 -1
  159. package/dist/Terminal.d.ts +3 -3
  160. package/dist/Terminal.d.ts.map +1 -1
  161. package/dist/Terminal.js +2 -2
  162. package/dist/Terminal.js.map +1 -1
  163. package/dist/Tracer.d.ts +16 -16
  164. package/dist/Tracer.d.ts.map +1 -1
  165. package/dist/Tracer.js +11 -8
  166. package/dist/Tracer.js.map +1 -1
  167. package/dist/Unify.d.ts +8 -2
  168. package/dist/Unify.d.ts.map +1 -1
  169. package/dist/Unify.js.map +1 -1
  170. package/dist/index.d.ts +81 -15
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +81 -15
  173. package/dist/index.js.map +1 -1
  174. package/dist/internal/core.js.map +1 -1
  175. package/dist/internal/effect.js +74 -74
  176. package/dist/internal/effect.js.map +1 -1
  177. package/dist/internal/layer.js +3 -3
  178. package/dist/internal/layer.js.map +1 -1
  179. package/dist/internal/random.js +2 -2
  180. package/dist/internal/random.js.map +1 -1
  181. package/dist/internal/rcRef.js +9 -9
  182. package/dist/internal/rcRef.js.map +1 -1
  183. package/dist/internal/references.js +13 -13
  184. package/dist/internal/references.js.map +1 -1
  185. package/dist/internal/request.js +6 -6
  186. package/dist/internal/request.js.map +1 -1
  187. package/dist/internal/schedule.js +1 -1
  188. package/dist/internal/schedule.js.map +1 -1
  189. package/dist/internal/schema/representation.js +11 -1
  190. package/dist/internal/schema/representation.js.map +1 -1
  191. package/dist/internal/schema/schema.d.ts +10 -1
  192. package/dist/internal/schema/schema.d.ts.map +1 -1
  193. package/dist/internal/schema/schema.js +21 -1
  194. package/dist/internal/schema/schema.js.map +1 -1
  195. package/dist/testing/TestSchema.d.ts +3 -3
  196. package/dist/testing/TestSchema.d.ts.map +1 -1
  197. package/dist/testing/TestSchema.js.map +1 -1
  198. package/dist/unstable/ai/AiError.d.ts +19 -19
  199. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  200. package/dist/unstable/ai/AiError.js +2 -1
  201. package/dist/unstable/ai/AiError.js.map +1 -1
  202. package/dist/unstable/ai/Chat.d.ts +4 -4
  203. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  204. package/dist/unstable/ai/Chat.js +3 -3
  205. package/dist/unstable/ai/Chat.js.map +1 -1
  206. package/dist/unstable/ai/EmbeddingModel.d.ts +6 -6
  207. package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
  208. package/dist/unstable/ai/EmbeddingModel.js +3 -3
  209. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  210. package/dist/unstable/ai/IdGenerator.d.ts +2 -2
  211. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  212. package/dist/unstable/ai/IdGenerator.js +2 -2
  213. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  214. package/dist/unstable/ai/LanguageModel.d.ts +2 -2
  215. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  216. package/dist/unstable/ai/LanguageModel.js +2 -2
  217. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  218. package/dist/unstable/ai/McpSchema.d.ts +54 -54
  219. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  220. package/dist/unstable/ai/McpSchema.js +15 -8
  221. package/dist/unstable/ai/McpSchema.js.map +1 -1
  222. package/dist/unstable/ai/McpServer.d.ts +22 -22
  223. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  224. package/dist/unstable/ai/McpServer.js +25 -25
  225. package/dist/unstable/ai/McpServer.js.map +1 -1
  226. package/dist/unstable/ai/Model.d.ts +3 -3
  227. package/dist/unstable/ai/Model.d.ts.map +1 -1
  228. package/dist/unstable/ai/Model.js +5 -5
  229. package/dist/unstable/ai/Model.js.map +1 -1
  230. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  231. package/dist/unstable/ai/Prompt.js +6 -9
  232. package/dist/unstable/ai/Prompt.js.map +1 -1
  233. package/dist/unstable/ai/Response.d.ts +1 -1
  234. package/dist/unstable/ai/Response.d.ts.map +1 -1
  235. package/dist/unstable/ai/Response.js +6 -7
  236. package/dist/unstable/ai/Response.js.map +1 -1
  237. package/dist/unstable/ai/ResponseIdTracker.d.ts +2 -2
  238. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  239. package/dist/unstable/ai/ResponseIdTracker.js +2 -2
  240. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  241. package/dist/unstable/ai/Telemetry.d.ts +35 -2
  242. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  243. package/dist/unstable/ai/Telemetry.js +2 -2
  244. package/dist/unstable/ai/Telemetry.js.map +1 -1
  245. package/dist/unstable/ai/Tokenizer.d.ts +2 -2
  246. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  247. package/dist/unstable/ai/Tokenizer.js +2 -2
  248. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  249. package/dist/unstable/ai/Tool.d.ts +16 -16
  250. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  251. package/dist/unstable/ai/Tool.js +41 -13
  252. package/dist/unstable/ai/Tool.js.map +1 -1
  253. package/dist/unstable/ai/Toolkit.d.ts +3 -3
  254. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  255. package/dist/unstable/ai/Toolkit.js +10 -10
  256. package/dist/unstable/ai/Toolkit.js.map +1 -1
  257. package/dist/unstable/cli/Argument.d.ts +2 -3
  258. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  259. package/dist/unstable/cli/Argument.js.map +1 -1
  260. package/dist/unstable/cli/CliError.d.ts +29 -8
  261. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  262. package/dist/unstable/cli/CliError.js +8 -1
  263. package/dist/unstable/cli/CliError.js.map +1 -1
  264. package/dist/unstable/cli/CliOutput.d.ts +2 -2
  265. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  266. package/dist/unstable/cli/CliOutput.js +2 -2
  267. package/dist/unstable/cli/CliOutput.js.map +1 -1
  268. package/dist/unstable/cli/Command.d.ts +14 -14
  269. package/dist/unstable/cli/Command.d.ts.map +1 -1
  270. package/dist/unstable/cli/Command.js +11 -10
  271. package/dist/unstable/cli/Command.js.map +1 -1
  272. package/dist/unstable/cli/Flag.d.ts +2 -3
  273. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  274. package/dist/unstable/cli/Flag.js.map +1 -1
  275. package/dist/unstable/cli/GlobalFlag.d.ts +2 -2
  276. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  277. package/dist/unstable/cli/GlobalFlag.js +2 -2
  278. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  279. package/dist/unstable/cli/HelpDoc.d.ts +8 -8
  280. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  281. package/dist/unstable/cli/Param.d.ts +30 -2
  282. package/dist/unstable/cli/Param.d.ts.map +1 -1
  283. package/dist/unstable/cli/Param.js +17 -7
  284. package/dist/unstable/cli/Param.js.map +1 -1
  285. package/dist/unstable/cli/Prompt.js +8 -2
  286. package/dist/unstable/cli/Prompt.js.map +1 -1
  287. package/dist/unstable/cli/internal/command.d.ts +5 -5
  288. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  289. package/dist/unstable/cli/internal/command.js +3 -3
  290. package/dist/unstable/cli/internal/command.js.map +1 -1
  291. package/dist/unstable/cli/internal/parser.js +94 -15
  292. package/dist/unstable/cli/internal/parser.js.map +1 -1
  293. package/dist/unstable/cluster/ClusterError.d.ts +7 -7
  294. package/dist/unstable/cluster/ClusterSchema.d.ts +12 -9
  295. package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
  296. package/dist/unstable/cluster/ClusterSchema.js +9 -9
  297. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  298. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  299. package/dist/unstable/cluster/ClusterWorkflowEngine.js +13 -14
  300. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  301. package/dist/unstable/cluster/Entity.d.ts +8 -8
  302. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  303. package/dist/unstable/cluster/Entity.js +12 -12
  304. package/dist/unstable/cluster/Entity.js.map +1 -1
  305. package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
  306. package/dist/unstable/cluster/EntityProxy.js +3 -3
  307. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  308. package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
  309. package/dist/unstable/cluster/EntityProxyServer.js +4 -4
  310. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  311. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  312. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  313. package/dist/unstable/cluster/EntityResource.js +2 -2
  314. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  315. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  316. package/dist/unstable/cluster/HttpRunner.js +2 -2
  317. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  318. package/dist/unstable/cluster/K8sHttpClient.d.ts +4 -4
  319. package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
  320. package/dist/unstable/cluster/K8sHttpClient.js +2 -2
  321. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  322. package/dist/unstable/cluster/Message.d.ts +7 -4
  323. package/dist/unstable/cluster/Message.d.ts.map +1 -1
  324. package/dist/unstable/cluster/Message.js +5 -5
  325. package/dist/unstable/cluster/Message.js.map +1 -1
  326. package/dist/unstable/cluster/MessageStorage.d.ts +14 -14
  327. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  328. package/dist/unstable/cluster/MessageStorage.js +8 -8
  329. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  330. package/dist/unstable/cluster/Reply.d.ts +2 -2
  331. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  332. package/dist/unstable/cluster/Reply.js +5 -5
  333. package/dist/unstable/cluster/Reply.js.map +1 -1
  334. package/dist/unstable/cluster/Runner.d.ts +1 -1
  335. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  336. package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
  337. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  338. package/dist/unstable/cluster/RunnerHealth.js +2 -2
  339. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  340. package/dist/unstable/cluster/RunnerServer.js +1 -1
  341. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  342. package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
  343. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  344. package/dist/unstable/cluster/RunnerStorage.js +3 -3
  345. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  346. package/dist/unstable/cluster/Runners.d.ts +3 -3
  347. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  348. package/dist/unstable/cluster/Runners.js +7 -7
  349. package/dist/unstable/cluster/Runners.js.map +1 -1
  350. package/dist/unstable/cluster/ShardId.d.ts +35 -49
  351. package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
  352. package/dist/unstable/cluster/ShardId.js +65 -67
  353. package/dist/unstable/cluster/ShardId.js.map +1 -1
  354. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  355. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  356. package/dist/unstable/cluster/Sharding.js +21 -21
  357. package/dist/unstable/cluster/Sharding.js.map +1 -1
  358. package/dist/unstable/cluster/ShardingConfig.d.ts +2 -2
  359. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  360. package/dist/unstable/cluster/ShardingConfig.js +5 -5
  361. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  362. package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
  363. package/dist/unstable/cluster/Snowflake.d.ts +2 -2
  364. package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
  365. package/dist/unstable/cluster/Snowflake.js +2 -2
  366. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  367. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  368. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  369. package/dist/unstable/cluster/internal/entityManager.js +15 -14
  370. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  371. package/dist/unstable/cluster/internal/entityReaper.js +2 -2
  372. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  373. package/dist/unstable/cluster/internal/resourceMap.js +3 -3
  374. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  375. package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
  376. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  377. package/dist/unstable/devtools/DevToolsClient.js +5 -5
  378. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  379. package/dist/unstable/eventlog/EventJournal.d.ts +4 -4
  380. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  381. package/dist/unstable/eventlog/EventJournal.js +2 -2
  382. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  383. package/dist/unstable/eventlog/EventLog.d.ts +5 -5
  384. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  385. package/dist/unstable/eventlog/EventLog.js +18 -18
  386. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  387. package/dist/unstable/eventlog/EventLogEncryption.d.ts +2 -2
  388. package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
  389. package/dist/unstable/eventlog/EventLogEncryption.js +2 -2
  390. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  391. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -12
  392. package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
  393. package/dist/unstable/eventlog/EventLogRemote.js +2 -2
  394. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  395. package/dist/unstable/eventlog/EventLogServer.d.ts +3 -3
  396. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  397. package/dist/unstable/eventlog/EventLogServer.js +2 -2
  398. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  399. package/dist/unstable/http/Etag.d.ts +2 -2
  400. package/dist/unstable/http/Etag.d.ts.map +1 -1
  401. package/dist/unstable/http/Etag.js +2 -2
  402. package/dist/unstable/http/Etag.js.map +1 -1
  403. package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
  404. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  405. package/dist/unstable/http/FetchHttpClient.js +5 -5
  406. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  407. package/dist/unstable/http/Headers.d.ts +5 -2
  408. package/dist/unstable/http/Headers.d.ts.map +1 -1
  409. package/dist/unstable/http/Headers.js +3 -3
  410. package/dist/unstable/http/Headers.js.map +1 -1
  411. package/dist/unstable/http/HttpClient.d.ts +8 -6
  412. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  413. package/dist/unstable/http/HttpClient.js +6 -6
  414. package/dist/unstable/http/HttpClient.js.map +1 -1
  415. package/dist/unstable/http/HttpClientError.d.ts +1 -1
  416. package/dist/unstable/http/HttpClientRequest.d.ts +2 -2
  417. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  418. package/dist/unstable/http/HttpClientRequest.js +4 -4
  419. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  420. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  421. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  422. package/dist/unstable/http/HttpEffect.js +24 -24
  423. package/dist/unstable/http/HttpEffect.js.map +1 -1
  424. package/dist/unstable/http/HttpIncomingMessage.d.ts +2 -2
  425. package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
  426. package/dist/unstable/http/HttpIncomingMessage.js +2 -2
  427. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  428. package/dist/unstable/http/HttpMiddleware.d.ts +3 -3
  429. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  430. package/dist/unstable/http/HttpMiddleware.js +26 -14
  431. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  432. package/dist/unstable/http/HttpPlatform.d.ts +2 -2
  433. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  434. package/dist/unstable/http/HttpPlatform.js +2 -2
  435. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  436. package/dist/unstable/http/HttpRouter.d.ts +7 -7
  437. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  438. package/dist/unstable/http/HttpRouter.js +29 -29
  439. package/dist/unstable/http/HttpRouter.js.map +1 -1
  440. package/dist/unstable/http/HttpServer.d.ts +2 -2
  441. package/dist/unstable/http/HttpServer.d.ts.map +1 -1
  442. package/dist/unstable/http/HttpServer.js +2 -2
  443. package/dist/unstable/http/HttpServer.js.map +1 -1
  444. package/dist/unstable/http/HttpServerError.d.ts +3 -3
  445. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  446. package/dist/unstable/http/HttpServerError.js +3 -3
  447. package/dist/unstable/http/HttpServerError.js.map +1 -1
  448. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  449. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  450. package/dist/unstable/http/HttpServerRequest.js +6 -6
  451. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  452. package/dist/unstable/http/HttpServerResponse.d.ts +2 -2
  453. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  454. package/dist/unstable/http/HttpServerResponse.js +6 -6
  455. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  456. package/dist/unstable/http/Multipart.d.ts +6 -6
  457. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  458. package/dist/unstable/http/Multipart.js +7 -7
  459. package/dist/unstable/http/Multipart.js.map +1 -1
  460. package/dist/unstable/httpapi/HttpApi.d.ts +9 -9
  461. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  462. package/dist/unstable/httpapi/HttpApi.js +8 -8
  463. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  464. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +0 -3
  465. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  466. package/dist/unstable/httpapi/HttpApiBuilder.js +20 -20
  467. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  468. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  469. package/dist/unstable/httpapi/HttpApiClient.js +1 -1
  470. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  471. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -7
  472. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  473. package/dist/unstable/httpapi/HttpApiEndpoint.js +4 -4
  474. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  475. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  476. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  477. package/dist/unstable/httpapi/HttpApiGroup.d.ts +8 -8
  478. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  479. package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
  480. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  481. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +6 -6
  482. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  483. package/dist/unstable/httpapi/HttpApiMiddleware.js +5 -5
  484. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  485. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
  486. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  487. package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
  488. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  489. package/dist/unstable/httpapi/OpenApi.d.ts +15 -15
  490. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  491. package/dist/unstable/httpapi/OpenApi.js +23 -23
  492. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  493. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  494. package/dist/unstable/observability/OtlpExporter.js +5 -5
  495. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  496. package/dist/unstable/observability/OtlpMetrics.js +1 -1
  497. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  498. package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
  499. package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
  500. package/dist/unstable/observability/OtlpSerialization.js +2 -2
  501. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  502. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  503. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  504. package/dist/unstable/observability/PrometheusMetrics.d.ts +3 -3
  505. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  506. package/dist/unstable/observability/PrometheusMetrics.js +4 -33
  507. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  508. package/dist/unstable/persistence/KeyValueStore.d.ts +23 -2
  509. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  510. package/dist/unstable/persistence/KeyValueStore.js +144 -2
  511. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  512. package/dist/unstable/persistence/PersistedCache.d.ts +1 -2
  513. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  514. package/dist/unstable/persistence/PersistedCache.js +10 -11
  515. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  516. package/dist/unstable/persistence/PersistedQueue.d.ts +4 -4
  517. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  518. package/dist/unstable/persistence/PersistedQueue.js +3 -3
  519. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  520. package/dist/unstable/persistence/Persistence.d.ts +4 -4
  521. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  522. package/dist/unstable/persistence/Persistence.js +3 -3
  523. package/dist/unstable/persistence/Persistence.js.map +1 -1
  524. package/dist/unstable/persistence/RateLimiter.d.ts +6 -6
  525. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  526. package/dist/unstable/persistence/RateLimiter.js +3 -3
  527. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  528. package/dist/unstable/persistence/Redis.d.ts +3 -3
  529. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  530. package/dist/unstable/persistence/Redis.js +2 -2
  531. package/dist/unstable/persistence/Redis.js.map +1 -1
  532. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -2
  533. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  534. package/dist/unstable/process/ChildProcessSpawner.js +2 -2
  535. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  536. package/dist/unstable/reactivity/Atom.d.ts +36 -36
  537. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  538. package/dist/unstable/reactivity/Atom.js +9 -9
  539. package/dist/unstable/reactivity/Atom.js.map +1 -1
  540. package/dist/unstable/reactivity/AtomHttpApi.d.ts +3 -3
  541. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  542. package/dist/unstable/reactivity/AtomHttpApi.js +2 -2
  543. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  544. package/dist/unstable/reactivity/AtomRegistry.d.ts +2 -2
  545. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  546. package/dist/unstable/reactivity/AtomRegistry.js +3 -3
  547. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  548. package/dist/unstable/reactivity/AtomRpc.d.ts +3 -3
  549. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  550. package/dist/unstable/reactivity/AtomRpc.js +2 -2
  551. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  552. package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
  553. package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
  554. package/dist/unstable/reactivity/Reactivity.js +6 -6
  555. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  556. package/dist/unstable/rpc/Rpc.d.ts +11 -11
  557. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  558. package/dist/unstable/rpc/Rpc.js +4 -4
  559. package/dist/unstable/rpc/Rpc.js.map +1 -1
  560. package/dist/unstable/rpc/RpcClient.d.ts +18 -8
  561. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  562. package/dist/unstable/rpc/RpcClient.js +27 -18
  563. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  564. package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
  565. package/dist/unstable/rpc/RpcGroup.d.ts +7 -7
  566. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  567. package/dist/unstable/rpc/RpcGroup.js +20 -20
  568. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  569. package/dist/unstable/rpc/RpcMiddleware.d.ts +6 -6
  570. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  571. package/dist/unstable/rpc/RpcMiddleware.js +5 -5
  572. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  573. package/dist/unstable/rpc/RpcSchema.d.ts +3 -3
  574. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  575. package/dist/unstable/rpc/RpcSchema.js +3 -3
  576. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  577. package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
  578. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  579. package/dist/unstable/rpc/RpcSerialization.js +2 -2
  580. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  581. package/dist/unstable/rpc/RpcServer.d.ts +2 -2
  582. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  583. package/dist/unstable/rpc/RpcServer.js +18 -18
  584. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  585. package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
  586. package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
  587. package/dist/unstable/rpc/RpcWorker.js +4 -4
  588. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  589. package/dist/unstable/rpc/Utils.d.ts +0 -3
  590. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  591. package/dist/unstable/rpc/Utils.js +2 -5
  592. package/dist/unstable/rpc/Utils.js.map +1 -1
  593. package/dist/unstable/socket/Socket.d.ts +10 -10
  594. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  595. package/dist/unstable/socket/Socket.js +9 -9
  596. package/dist/unstable/socket/Socket.js.map +1 -1
  597. package/dist/unstable/socket/SocketServer.d.ts +5 -2
  598. package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
  599. package/dist/unstable/socket/SocketServer.js +2 -2
  600. package/dist/unstable/socket/SocketServer.js.map +1 -1
  601. package/dist/unstable/sql/SqlClient.d.ts +5 -5
  602. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  603. package/dist/unstable/sql/SqlClient.js +7 -7
  604. package/dist/unstable/sql/SqlClient.js.map +1 -1
  605. package/dist/unstable/sql/SqlConnection.d.ts +2 -2
  606. package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
  607. package/dist/unstable/sql/SqlConnection.js +5 -2
  608. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  609. package/dist/unstable/sql/SqlError.d.ts +12 -12
  610. package/dist/unstable/sql/SqlModel.d.ts +8 -9
  611. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  612. package/dist/unstable/sql/SqlModel.js +9 -35
  613. package/dist/unstable/sql/SqlModel.js.map +1 -1
  614. package/dist/unstable/sql/SqlResolver.js +11 -11
  615. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  616. package/dist/unstable/sql/Statement.d.ts +2 -2
  617. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  618. package/dist/unstable/sql/Statement.js +2 -2
  619. package/dist/unstable/sql/Statement.js.map +1 -1
  620. package/dist/unstable/workers/Transferable.d.ts +2 -2
  621. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  622. package/dist/unstable/workers/Transferable.js +6 -6
  623. package/dist/unstable/workers/Transferable.js.map +1 -1
  624. package/dist/unstable/workers/Worker.d.ts +3 -3
  625. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  626. package/dist/unstable/workers/Worker.js +6 -3
  627. package/dist/unstable/workers/Worker.js.map +1 -1
  628. package/dist/unstable/workers/WorkerError.d.ts +5 -5
  629. package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
  630. package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
  631. package/dist/unstable/workers/WorkerRunner.js +5 -2
  632. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  633. package/dist/unstable/workflow/Activity.d.ts +7 -7
  634. package/dist/unstable/workflow/Activity.d.ts.map +1 -1
  635. package/dist/unstable/workflow/Activity.js +7 -7
  636. package/dist/unstable/workflow/Activity.js.map +1 -1
  637. package/dist/unstable/workflow/DurableClock.d.ts +0 -3
  638. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  639. package/dist/unstable/workflow/DurableClock.js +3 -3
  640. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  641. package/dist/unstable/workflow/DurableDeferred.d.ts +1 -1
  642. package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
  643. package/dist/unstable/workflow/DurableDeferred.js +7 -7
  644. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  645. package/dist/unstable/workflow/Workflow.d.ts +9 -9
  646. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  647. package/dist/unstable/workflow/Workflow.js +18 -18
  648. package/dist/unstable/workflow/Workflow.js.map +1 -1
  649. package/dist/unstable/workflow/WorkflowEngine.d.ts +3 -3
  650. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  651. package/dist/unstable/workflow/WorkflowEngine.js +5 -5
  652. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  653. package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
  654. package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
  655. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  656. package/package.json +1 -1
  657. package/src/Cache.ts +18 -46
  658. package/src/Cause.ts +21 -21
  659. package/src/Channel.ts +120 -79
  660. package/src/Clock.ts +2 -2
  661. package/src/Config.ts +2 -2
  662. package/src/ConfigProvider.ts +5 -5
  663. package/src/Console.ts +2 -2
  664. package/src/{ServiceMap.ts → Context.ts} +337 -340
  665. package/src/DateTime.ts +2 -2
  666. package/src/Effect.ts +182 -184
  667. package/src/ErrorReporter.ts +3 -3
  668. package/src/ExecutionPlan.ts +8 -9
  669. package/src/Fiber.ts +7 -7
  670. package/src/FiberHandle.ts +5 -5
  671. package/src/FiberMap.ts +5 -5
  672. package/src/FiberSet.ts +5 -5
  673. package/src/FileSystem.ts +3 -3
  674. package/src/Layer.ts +333 -307
  675. package/src/LayerMap.ts +27 -26
  676. package/src/Logger.ts +3 -3
  677. package/src/ManagedRuntime.ts +32 -32
  678. package/src/Metric.ts +58 -58
  679. package/src/Path.ts +2 -2
  680. package/src/Pool.ts +5 -5
  681. package/src/PubSub.ts +3 -3
  682. package/src/Random.ts +2 -2
  683. package/src/RcMap.ts +14 -14
  684. package/src/Redactable.ts +146 -72
  685. package/src/References.ts +14 -14
  686. package/src/Request.ts +5 -5
  687. package/src/RequestResolver.ts +6 -7
  688. package/src/Resource.ts +4 -4
  689. package/src/Schedule.ts +2 -2
  690. package/src/Scheduler.ts +4 -4
  691. package/src/Schema.ts +837 -397
  692. package/src/SchemaAST.ts +5 -14
  693. package/src/SchemaGetter.ts +69 -11
  694. package/src/SchemaTransformation.ts +166 -0
  695. package/src/Scope.ts +2 -2
  696. package/src/ScopedCache.ts +5 -5
  697. package/src/Sink.ts +9 -9
  698. package/src/Stdio.ts +2 -2
  699. package/src/Stream.ts +234 -158
  700. package/src/Terminal.ts +3 -3
  701. package/src/Tracer.ts +17 -17
  702. package/src/Unify.ts +26 -2
  703. package/src/index.ts +82 -16
  704. package/src/internal/core.ts +7 -7
  705. package/src/internal/effect.ts +106 -106
  706. package/src/internal/layer.ts +7 -7
  707. package/src/internal/random.ts +2 -2
  708. package/src/internal/rcRef.ts +10 -10
  709. package/src/internal/references.ts +13 -13
  710. package/src/internal/request.ts +8 -8
  711. package/src/internal/schedule.ts +3 -1
  712. package/src/internal/schema/representation.ts +8 -1
  713. package/src/internal/schema/schema.ts +24 -1
  714. package/src/testing/TestSchema.ts +3 -3
  715. package/src/unstable/ai/AiError.ts +3 -2
  716. package/src/unstable/ai/Chat.ts +3 -3
  717. package/src/unstable/ai/EmbeddingModel.ts +3 -3
  718. package/src/unstable/ai/IdGenerator.ts +2 -2
  719. package/src/unstable/ai/LanguageModel.ts +2 -2
  720. package/src/unstable/ai/McpSchema.ts +11 -9
  721. package/src/unstable/ai/McpServer.ts +44 -44
  722. package/src/unstable/ai/Model.ts +8 -8
  723. package/src/unstable/ai/Prompt.ts +6 -12
  724. package/src/unstable/ai/Response.ts +6 -8
  725. package/src/unstable/ai/ResponseIdTracker.ts +2 -4
  726. package/src/unstable/ai/Telemetry.ts +2 -2
  727. package/src/unstable/ai/Tokenizer.ts +2 -2
  728. package/src/unstable/ai/Tool.ts +25 -25
  729. package/src/unstable/ai/Toolkit.ts +12 -12
  730. package/src/unstable/cli/Argument.ts +3 -4
  731. package/src/unstable/cli/CliError.ts +22 -9
  732. package/src/unstable/cli/CliOutput.ts +2 -2
  733. package/src/unstable/cli/Command.ts +36 -30
  734. package/src/unstable/cli/Flag.ts +3 -4
  735. package/src/unstable/cli/GlobalFlag.ts +3 -3
  736. package/src/unstable/cli/HelpDoc.ts +8 -8
  737. package/src/unstable/cli/Param.ts +39 -16
  738. package/src/unstable/cli/Prompt.ts +13 -6
  739. package/src/unstable/cli/internal/command.ts +7 -7
  740. package/src/unstable/cli/internal/parser.ts +130 -21
  741. package/src/unstable/cluster/ClusterSchema.ts +12 -12
  742. package/src/unstable/cluster/ClusterWorkflowEngine.ts +14 -15
  743. package/src/unstable/cluster/Entity.ts +25 -25
  744. package/src/unstable/cluster/EntityProxy.ts +3 -3
  745. package/src/unstable/cluster/EntityProxyServer.ts +4 -4
  746. package/src/unstable/cluster/EntityResource.ts +2 -2
  747. package/src/unstable/cluster/HttpRunner.ts +2 -2
  748. package/src/unstable/cluster/K8sHttpClient.ts +2 -2
  749. package/src/unstable/cluster/Message.ts +8 -8
  750. package/src/unstable/cluster/MessageStorage.ts +11 -11
  751. package/src/unstable/cluster/Reply.ts +7 -7
  752. package/src/unstable/cluster/RunnerHealth.ts +2 -2
  753. package/src/unstable/cluster/RunnerServer.ts +1 -1
  754. package/src/unstable/cluster/RunnerStorage.ts +9 -9
  755. package/src/unstable/cluster/Runners.ts +7 -7
  756. package/src/unstable/cluster/ShardId.ts +84 -74
  757. package/src/unstable/cluster/Sharding.ts +26 -26
  758. package/src/unstable/cluster/ShardingConfig.ts +5 -5
  759. package/src/unstable/cluster/Snowflake.ts +2 -2
  760. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  761. package/src/unstable/cluster/internal/entityManager.ts +27 -23
  762. package/src/unstable/cluster/internal/entityReaper.ts +2 -2
  763. package/src/unstable/cluster/internal/resourceMap.ts +3 -3
  764. package/src/unstable/devtools/DevToolsClient.ts +5 -5
  765. package/src/unstable/eventlog/EventJournal.ts +2 -2
  766. package/src/unstable/eventlog/EventLog.ts +21 -21
  767. package/src/unstable/eventlog/EventLogEncryption.ts +2 -2
  768. package/src/unstable/eventlog/EventLogRemote.ts +2 -2
  769. package/src/unstable/eventlog/EventLogServer.ts +2 -2
  770. package/src/unstable/http/Etag.ts +2 -2
  771. package/src/unstable/http/FetchHttpClient.ts +5 -5
  772. package/src/unstable/http/Headers.ts +4 -4
  773. package/src/unstable/http/HttpClient.ts +9 -8
  774. package/src/unstable/http/HttpClientRequest.ts +5 -5
  775. package/src/unstable/http/HttpEffect.ts +35 -35
  776. package/src/unstable/http/HttpIncomingMessage.ts +2 -2
  777. package/src/unstable/http/HttpMiddleware.ts +28 -14
  778. package/src/unstable/http/HttpPlatform.ts +2 -2
  779. package/src/unstable/http/HttpRouter.ts +37 -37
  780. package/src/unstable/http/HttpServer.ts +2 -2
  781. package/src/unstable/http/HttpServerError.ts +4 -4
  782. package/src/unstable/http/HttpServerRequest.ts +7 -7
  783. package/src/unstable/http/HttpServerResponse.ts +8 -8
  784. package/src/unstable/http/Multipart.ts +8 -8
  785. package/src/unstable/httpapi/HttpApi.ts +18 -18
  786. package/src/unstable/httpapi/HttpApiBuilder.ts +20 -20
  787. package/src/unstable/httpapi/HttpApiClient.ts +4 -4
  788. package/src/unstable/httpapi/HttpApiEndpoint.ts +14 -14
  789. package/src/unstable/httpapi/HttpApiGroup.ts +16 -16
  790. package/src/unstable/httpapi/HttpApiMiddleware.ts +14 -14
  791. package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
  792. package/src/unstable/httpapi/OpenApi.ts +29 -31
  793. package/src/unstable/observability/OtlpExporter.ts +5 -5
  794. package/src/unstable/observability/OtlpMetrics.ts +1 -1
  795. package/src/unstable/observability/OtlpSerialization.ts +2 -2
  796. package/src/unstable/observability/OtlpTracer.ts +2 -2
  797. package/src/unstable/observability/PrometheusMetrics.ts +5 -5
  798. package/src/unstable/persistence/KeyValueStore.ts +226 -3
  799. package/src/unstable/persistence/PersistedCache.ts +20 -17
  800. package/src/unstable/persistence/PersistedQueue.ts +3 -3
  801. package/src/unstable/persistence/Persistence.ts +4 -4
  802. package/src/unstable/persistence/RateLimiter.ts +3 -3
  803. package/src/unstable/persistence/Redis.ts +2 -2
  804. package/src/unstable/process/ChildProcessSpawner.ts +46 -2
  805. package/src/unstable/reactivity/Atom.ts +79 -79
  806. package/src/unstable/reactivity/AtomHttpApi.ts +4 -4
  807. package/src/unstable/reactivity/AtomRegistry.ts +4 -4
  808. package/src/unstable/reactivity/AtomRpc.ts +4 -4
  809. package/src/unstable/reactivity/Reactivity.ts +6 -6
  810. package/src/unstable/rpc/Rpc.ts +17 -17
  811. package/src/unstable/rpc/RpcClient.ts +44 -30
  812. package/src/unstable/rpc/RpcGroup.ts +30 -30
  813. package/src/unstable/rpc/RpcMiddleware.ts +14 -14
  814. package/src/unstable/rpc/RpcSchema.ts +4 -4
  815. package/src/unstable/rpc/RpcSerialization.ts +2 -2
  816. package/src/unstable/rpc/RpcServer.ts +19 -19
  817. package/src/unstable/rpc/RpcWorker.ts +5 -5
  818. package/src/unstable/rpc/Utils.ts +4 -4
  819. package/src/unstable/socket/Socket.ts +9 -9
  820. package/src/unstable/socket/SocketServer.ts +2 -2
  821. package/src/unstable/sql/SqlClient.ts +11 -11
  822. package/src/unstable/sql/SqlConnection.ts +2 -2
  823. package/src/unstable/sql/SqlModel.ts +54 -82
  824. package/src/unstable/sql/SqlResolver.ts +11 -11
  825. package/src/unstable/sql/Statement.ts +2 -2
  826. package/src/unstable/workers/Transferable.ts +6 -6
  827. package/src/unstable/workers/Worker.ts +4 -4
  828. package/src/unstable/workers/WorkerRunner.ts +2 -2
  829. package/src/unstable/workflow/Activity.ts +14 -14
  830. package/src/unstable/workflow/DurableClock.ts +3 -3
  831. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  832. package/src/unstable/workflow/Workflow.ts +23 -23
  833. package/src/unstable/workflow/WorkflowEngine.ts +6 -6
  834. package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
  835. package/dist/ServiceMap.d.ts +0 -1150
  836. package/dist/ServiceMap.d.ts.map +0 -1
  837. package/dist/ServiceMap.js.map +0 -1
@@ -11,7 +11,6 @@ import type * as Schema from "../../Schema.ts"
11
11
  import type * as CliError from "./CliError.ts"
12
12
  import * as Param from "./Param.ts"
13
13
  import type * as Primitive from "./Primitive.ts"
14
- import type * as Prompt from "./Prompt.ts"
15
14
 
16
15
  // -------------------------------------------------------------------------------------
17
16
  // models
@@ -775,7 +774,7 @@ export const withFallbackPrompt: {
775
774
  * @since 4.0.0
776
775
  * @category combinators
777
776
  */
778
- <B>(prompt: Prompt.Prompt<B>): <A>(self: Flag<A>) => Flag<A | B>
777
+ <B>(prompt: Param.FallbackPrompt<B>): <A>(self: Flag<A>) => Flag<A | B>
779
778
  /**
780
779
  * Adds a fallback prompt that is shown when a required flag is missing.
781
780
  *
@@ -791,8 +790,8 @@ export const withFallbackPrompt: {
791
790
  * @since 4.0.0
792
791
  * @category combinators
793
792
  */
794
- <A, B>(self: Flag<A>, prompt: Prompt.Prompt<B>): Flag<A | B>
795
- } = dual(2, <A, B>(self: Flag<A>, prompt: Prompt.Prompt<B>) => Param.withFallbackPrompt(self, prompt))
793
+ <A, B>(self: Flag<A>, prompt: Param.FallbackPrompt<B>): Flag<A | B>
794
+ } = dual(2, <A, B>(self: Flag<A>, prompt: Param.FallbackPrompt<B>) => Param.withFallbackPrompt(self, prompt))
796
795
 
797
796
  /**
798
797
  * Transforms the parsed value of a flag using a mapping function.
@@ -3,10 +3,10 @@
3
3
  */
4
4
 
5
5
  import * as Console from "../../Console.ts"
6
+ import * as Context from "../../Context.ts"
6
7
  import * as Effect from "../../Effect.ts"
7
8
  import type { LogLevel as LogLevelType } from "../../LogLevel.ts"
8
9
  import * as Option from "../../Option.ts"
9
- import * as ServiceMap from "../../ServiceMap.ts"
10
10
  import * as CliOutput from "./CliOutput.ts"
11
11
  import type * as Command from "./Command.ts"
12
12
  import * as Completions_ from "./Completions.ts"
@@ -51,7 +51,7 @@ export interface Action<A> {
51
51
  * @since 4.0.0
52
52
  * @category models
53
53
  */
54
- export interface Setting<Id extends string, A> extends ServiceMap.Service<Setting.Identifier<Id>, A> {
54
+ export interface Setting<Id extends string, A> extends Context.Service<Setting.Identifier<Id>, A> {
55
55
  readonly _tag: "Setting"
56
56
  readonly id: Id
57
57
  readonly flag: Flag.Flag<A>
@@ -111,7 +111,7 @@ export const setting = <const Id extends string>(
111
111
  readonly flag: Flag.Flag<A>
112
112
  }): Setting<Id, A> => {
113
113
  settingIdCounter += 1
114
- const ref = ServiceMap.Service<Setting.Identifier<Id>, A>(
114
+ const ref = Context.Service<Setting.Identifier<Id>, A>(
115
115
  `effect/unstable/cli/GlobalFlag/${id}/${settingIdCounter}`
116
116
  )
117
117
  return Object.assign(ref, {
@@ -3,8 +3,8 @@
3
3
  */
4
4
 
5
5
  import type { NonEmptyReadonlyArray } from "../../Array.ts"
6
+ import type * as Context from "../../Context.ts"
6
7
  import type * as Option from "../../Option.ts"
7
- import type * as ServiceMap from "../../ServiceMap.ts"
8
8
 
9
9
  /**
10
10
  * Structured representation of help documentation for a command.
@@ -13,13 +13,13 @@ import type * as ServiceMap from "../../ServiceMap.ts"
13
13
  *
14
14
  * @example
15
15
  * ```ts
16
- * import { Option as O, ServiceMap } from "effect"
16
+ * import { Option as O, Context } from "effect"
17
17
  * import type * as HelpDoc from "effect/unstable/cli/HelpDoc"
18
18
  *
19
19
  * const deployCommandHelp: HelpDoc.HelpDoc = {
20
20
  * description: "Deploy your application to the cloud",
21
21
  * usage: "myapp deploy [options] <target>",
22
- * annotations: ServiceMap.empty(),
22
+ * annotations: Context.empty(),
23
23
  * flags: [
24
24
  * {
25
25
  * name: "verbose",
@@ -76,7 +76,7 @@ export interface HelpDoc {
76
76
  /**
77
77
  * Custom command annotations.
78
78
  */
79
- readonly annotations: ServiceMap.ServiceMap<never>
79
+ readonly annotations: Context.Context<never>
80
80
 
81
81
  /**
82
82
  * List of positional arguments for this command
@@ -172,7 +172,7 @@ export interface FlagDoc {
172
172
  *
173
173
  * @example
174
174
  * ```ts
175
- * import { Option as O, ServiceMap } from "effect"
175
+ * import { Option as O, Context } from "effect"
176
176
  * import type { HelpDoc } from "effect/unstable/cli"
177
177
  *
178
178
  * const deploySubcommand: HelpDoc.SubcommandDoc = {
@@ -193,7 +193,7 @@ export interface FlagDoc {
193
193
  * const mainCommandHelp: HelpDoc.HelpDoc = {
194
194
  * description: "Cloud deployment tool",
195
195
  * usage: "myapp <command> [options]",
196
- * annotations: ServiceMap.empty(),
196
+ * annotations: Context.empty(),
197
197
  * flags: [],
198
198
  * subcommands: [{
199
199
  * group: undefined,
@@ -251,7 +251,7 @@ export interface SubcommandGroupDoc {
251
251
  *
252
252
  * @example
253
253
  * ```ts
254
- * import { Option as O, ServiceMap } from "effect"
254
+ * import { Option as O, Context } from "effect"
255
255
  * import type { HelpDoc } from "effect/unstable/cli"
256
256
  *
257
257
  * const sourceArg: HelpDoc.ArgDoc = {
@@ -274,7 +274,7 @@ export interface SubcommandGroupDoc {
274
274
  * const copyCommandHelp: HelpDoc.HelpDoc = {
275
275
  * description: "Copy files from source to destination",
276
276
  * usage: "copy <source> [files...]",
277
- * annotations: ServiceMap.empty(),
277
+ * annotations: Context.empty(),
278
278
  * flags: [],
279
279
  * args: [sourceArg, filesArg]
280
280
  * }
@@ -139,6 +139,17 @@ export interface ParsedArgs {
139
139
  readonly arguments: ReadonlyArray<string>
140
140
  }
141
141
 
142
+ /**
143
+ * Represents a fallback prompt that can either be provided directly or
144
+ * computed effectfully when the parameter is missing.
145
+ *
146
+ * @since 4.0.0
147
+ * @category models
148
+ */
149
+ export type FallbackPrompt<A> =
150
+ | Prompt.Prompt<A>
151
+ | Effect.Effect<Prompt.Prompt<A>, CliError.CliError, Environment>
152
+
142
153
  /**
143
154
  * @since 4.0.0
144
155
  * @category models
@@ -851,7 +862,7 @@ const FLAG_DASH_REGEXP = /^-+/
851
862
  *
852
863
  * const force = Param.boolean(Param.flagKind, "force").pipe(
853
864
  * Param.withAlias("-f"),
854
- * Param.withAlias("--no-prompt")
865
+ * Param.withAlias("-F")
855
866
  * )
856
867
  *
857
868
  * // Also works on composed params:
@@ -882,7 +893,7 @@ export const withAlias: {
882
893
  *
883
894
  * const force = Param.boolean(Param.flagKind, "force").pipe(
884
895
  * Param.withAlias("-f"),
885
- * Param.withAlias("--no-prompt")
896
+ * Param.withAlias("-F")
886
897
  * )
887
898
  *
888
899
  * // Also works on composed params:
@@ -913,7 +924,7 @@ export const withAlias: {
913
924
  *
914
925
  * const force = Param.boolean(Param.flagKind, "force").pipe(
915
926
  * Param.withAlias("-f"),
916
- * Param.withAlias("--no-prompt")
927
+ * Param.withAlias("-F")
917
928
  * )
918
929
  *
919
930
  * // Also works on composed params:
@@ -1307,8 +1318,6 @@ export const mapTryCatch: {
1307
1318
  * ```ts
1308
1319
  * import * as Param from "effect/unstable/cli/Param"
1309
1320
  *
1310
- * // @internal - this module is not exported publicly
1311
- *
1312
1321
  * // Create an optional port option
1313
1322
  * // - When not provided: returns Option.none()
1314
1323
  * // - When provided: returns Option.some(parsedValue)
@@ -1321,15 +1330,29 @@ export const mapTryCatch: {
1321
1330
  export const optional = <Kind extends ParamKind, A>(
1322
1331
  param: Param<Kind, A>
1323
1332
  ): Param<Kind, Option.Option<A>> => {
1324
- const parse: Parse<Option.Option<A>> = (args) =>
1325
- param.parse(args).pipe(
1326
- Effect.map(
1327
- ([leftover, value]) => [leftover, Option.some(value)] as const
1328
- ),
1333
+ const parse: Parse<Option.Option<A>> = Effect.fnUntraced(function*(args) {
1334
+ const single = getUnderlyingSingleOrThrow(param)
1335
+
1336
+ // Handle boolean params that are explicitly marked as optional (i.e. the
1337
+ // end user wants to return `Option.none()` instead of `false` when the
1338
+ // flag (or its negated variant) are not present on the command line
1339
+ if (
1340
+ isFlagParam(single) &&
1341
+ Primitive.isBoolean(single.primitiveType) &&
1342
+ ![single.name, ...single.aliases].some((name) => (args.flags[name] ?? []).length > 0)
1343
+ ) {
1344
+ return [args.arguments, Option.none()] as const
1345
+ }
1346
+
1347
+ return yield* param.parse(args).pipe(
1348
+ Effect.map(([leftover, value]) => [leftover, Option.some(value)] as const),
1329
1349
  // Catch both MissingOption (for flags) and MissingArgument (for positional arguments)
1330
- Effect.catchTag("MissingOption", () => Effect.succeed([args.arguments, Option.none()] as const)),
1331
- Effect.catchTag("MissingArgument", () => Effect.succeed([args.arguments, Option.none()] as const))
1350
+ Effect.catchTags({
1351
+ MissingOption: () => Effect.succeed([args.arguments, Option.none()] as const),
1352
+ MissingArgument: () => Effect.succeed([args.arguments, Option.none()] as const)
1353
+ })
1332
1354
  )
1355
+ })
1333
1356
  return Object.assign(Object.create(Proto), {
1334
1357
  _tag: "Optional",
1335
1358
  kind: param.kind,
@@ -1512,20 +1535,20 @@ export const withFallbackPrompt: {
1512
1535
  * @since 4.0.0
1513
1536
  * @category combinators
1514
1537
  */
1515
- <B>(prompt: Prompt.Prompt<B>): <Kind extends ParamKind, A>(self: Param<Kind, A>) => Param<Kind, A | B>
1538
+ <B>(prompt: FallbackPrompt<B>): <Kind extends ParamKind, A>(self: Param<Kind, A>) => Param<Kind, A | B>
1516
1539
  /**
1517
1540
  * Adds a fallback prompt that is shown when a required parameter is missing.
1518
1541
  *
1519
1542
  * @since 4.0.0
1520
1543
  * @category combinators
1521
1544
  */
1522
- <Kind extends ParamKind, A, B>(self: Param<Kind, A>, prompt: Prompt.Prompt<B>): Param<Kind, A | B>
1545
+ <Kind extends ParamKind, A, B>(self: Param<Kind, A>, prompt: FallbackPrompt<B>): Param<Kind, A | B>
1523
1546
  } = dual(2, <Kind extends ParamKind, A, B>(
1524
1547
  self: Param<Kind, A>,
1525
- prompt: Prompt.Prompt<B>
1548
+ prompt: FallbackPrompt<B>
1526
1549
  ): Param<Kind, A | B> => {
1527
1550
  const runPrompt = (error: CliError.MissingOption | CliError.MissingArgument, args: ParsedArgs) =>
1528
- Prompt.run(prompt).pipe(
1551
+ Effect.flatMap(Prompt.isPrompt(prompt) ? Effect.succeed(prompt) : prompt, Prompt.run).pipe(
1529
1552
  Effect.map((value) => [args.arguments, value as A | B] as const),
1530
1553
  Effect.catchTag("QuitError", () => Effect.fail(error))
1531
1554
  )
@@ -2309,6 +2309,17 @@ const renderChoiceDescription = <A>(
2309
2309
 
2310
2310
  const metaOptionsCount = 2
2311
2311
 
2312
+ const renderMultiSelectTitle = (
2313
+ title: string,
2314
+ isHighlighted: boolean,
2315
+ renderOptions?: RenderOptions | undefined
2316
+ ) => {
2317
+ if (renderOptions?.plain === true || !isHighlighted) {
2318
+ return title
2319
+ }
2320
+ return Ansi.annotate(title, Ansi.combine(Ansi.underlined, Ansi.cyanBright))
2321
+ }
2322
+
2312
2323
  const renderMultiSelectChoices = <A>(
2313
2324
  state: MultiSelectState,
2314
2325
  options: SelectOptionsReq<A> & MultiSelectOptionsReq,
@@ -2344,9 +2355,7 @@ const renderMultiSelectChoices = <A>(
2344
2355
  }
2345
2356
  if (index < metaOptions.length) {
2346
2357
  // Meta options
2347
- const title = isHighlighted && renderOptions?.plain !== true
2348
- ? Ansi.annotate(choice.title, Ansi.cyanBright)
2349
- : choice.title
2358
+ const title = renderMultiSelectTitle(choice.title, isHighlighted, renderOptions)
2350
2359
  documents.push(prefix + " " + title)
2351
2360
  } else {
2352
2361
  // Regular choices
@@ -2356,9 +2365,7 @@ const renderMultiSelectChoices = <A>(
2356
2365
  const annotatedCheckbox = isHighlighted && renderOptions?.plain !== true
2357
2366
  ? Ansi.annotate(checkbox, Ansi.cyanBright)
2358
2367
  : checkbox
2359
- const title = isHighlighted && renderOptions?.plain !== true
2360
- ? Ansi.annotate(choice.title, Ansi.cyanBright)
2361
- : choice.title
2368
+ const title = renderMultiSelectTitle(choice.title, isHighlighted, renderOptions)
2362
2369
  const description = renderChoiceDescription(choice as SelectChoice<A>, isHighlighted, renderOptions)
2363
2370
  documents.push(prefix + " " + annotatedCheckbox + " " + title + " " + description)
2364
2371
  }
@@ -6,12 +6,12 @@
6
6
  * Public API is in ../Command.ts
7
7
  */
8
8
  import * as Arr from "../../../Array.ts"
9
+ import * as Context from "../../../Context.ts"
9
10
  import * as Effect from "../../../Effect.ts"
10
11
  import { YieldableProto } from "../../../internal/core.ts"
11
12
  import * as Option from "../../../Option.ts"
12
13
  import { pipeArguments } from "../../../Pipeable.ts"
13
14
  import * as Predicate from "../../../Predicate.ts"
14
- import * as ServiceMap from "../../../ServiceMap.ts"
15
15
  import * as CliError from "../CliError.ts"
16
16
  import type * as GlobalFlag from "../GlobalFlag.ts"
17
17
  import type { ArgDoc, ExampleDoc, FlagDoc, HelpDoc, SubcommandGroupDoc } from "../HelpDoc.ts"
@@ -39,8 +39,8 @@ export interface CommandInternal<Name extends string, Input, E, R, ContextInput>
39
39
  {
40
40
  readonly config: ConfigInternal
41
41
  readonly contextConfig: ConfigInternal
42
- readonly service: ServiceMap.Key<CommandContext<Name>, ContextInput>
43
- readonly annotations: ServiceMap.ServiceMap<never>
42
+ readonly service: Context.Key<CommandContext<Name>, ContextInput>
43
+ readonly annotations: Context.Context<never>
44
44
  readonly globalFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>
45
45
  readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>
46
46
  readonly parseContext: (input: ParsedTokens) => Effect.Effect<ContextInput, CliError.CliError, Environment>
@@ -94,8 +94,8 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
94
94
  readonly name: Name
95
95
  readonly config: ConfigInternal
96
96
  readonly contextConfig?: ConfigInternal | undefined
97
- readonly service?: ServiceMap.Key<CommandContext<Name>, ContextInput> | undefined
98
- readonly annotations?: ServiceMap.ServiceMap<never> | undefined
97
+ readonly service?: Context.Key<CommandContext<Name>, ContextInput> | undefined
98
+ readonly annotations?: Context.Context<never> | undefined
99
99
  readonly globalFlags?: ReadonlyArray<GlobalFlag.GlobalFlag<any>> | undefined
100
100
  readonly description?: string | undefined
101
101
  readonly shortDescription?: string | undefined
@@ -112,8 +112,8 @@ export const makeCommand = <const Name extends string, Input, E, R, ContextInput
112
112
  }): Command<Name, Input, ContextInput, E, R> => {
113
113
  const config = options.config
114
114
  const contextConfig = options.contextConfig ?? emptyConfig
115
- const service = options.service ?? ServiceMap.Service<CommandContext<Name>, ContextInput>(`${TypeId}/${options.name}`)
116
- const annotations = options.annotations ?? ServiceMap.empty()
115
+ const service = options.service ?? Context.Service<CommandContext<Name>, ContextInput>(`${TypeId}/${options.name}`)
116
+ const annotations = options.annotations ?? Context.empty()
117
117
  const globalFlags = options.globalFlags ?? []
118
118
  const subcommands = options.subcommands ?? []
119
119
 
@@ -50,7 +50,7 @@ export const parseArgs = (
50
50
  lexResult: LexResult,
51
51
  command: Command.Any,
52
52
  commandPath: ReadonlyArray<string> = []
53
- ): Effect.Effect<ParsedTokens, CliError.CliError, Param.Environment> =>
53
+ ): Effect.Effect<ParsedTokens, never, Param.Environment> =>
54
54
  Effect.gen(function*() {
55
55
  const { tokens, trailingOperands: afterEndOfOptions } = lexResult
56
56
  const newCommandPath = [...commandPath, command.name]
@@ -161,7 +161,7 @@ type ParseMode =
161
161
  type ParseState = {
162
162
  readonly flags: FlagAccumulator
163
163
  readonly arguments: Array<string>
164
- readonly errors: Array<CliError.CliError>
164
+ readonly errors: Array<CliError.NonShowHelpErrors>
165
165
  mode: ParseMode
166
166
  }
167
167
 
@@ -179,7 +179,7 @@ type LeafResult = {
179
179
  readonly _tag: "Leaf"
180
180
  readonly flags: Readonly<FlagMap>
181
181
  readonly arguments: ReadonlyArray<string>
182
- readonly errors: ReadonlyArray<CliError.CliError>
182
+ readonly errors: ReadonlyArray<CliError.NonShowHelpErrors>
183
183
  }
184
184
 
185
185
  /**
@@ -190,7 +190,7 @@ type SubcommandResult = {
190
190
  readonly flags: Readonly<FlagMap>
191
191
  readonly sub: Command<string, unknown, unknown, unknown, unknown>
192
192
  readonly childTokens: ReadonlyArray<Token>
193
- readonly errors: ReadonlyArray<CliError.CliError>
193
+ readonly errors: ReadonlyArray<CliError.NonShowHelpErrors>
194
194
  }
195
195
 
196
196
  type LevelResult = LeafResult | SubcommandResult
@@ -317,11 +317,70 @@ const createFlagAccumulator = (params: ReadonlyArray<FlagParam>): FlagAccumulato
317
317
  /* ========================================================================== */
318
318
 
319
319
  type FlagToken = Extract<Token, { _tag: "LongOption" | "ShortOption" }>
320
+ type ResolvedFlag = {
321
+ readonly param: FlagParam
322
+ readonly negated: boolean
323
+ }
324
+ type ConsumedFlagValue =
325
+ | {
326
+ readonly _tag: "Value"
327
+ readonly value: string | undefined
328
+ }
329
+ | {
330
+ readonly _tag: "Error"
331
+ readonly error: CliError.InvalidValue
332
+ }
320
333
 
321
334
  const isFlagToken = (t: Token): t is FlagToken => t._tag === "LongOption" || t._tag === "ShortOption"
322
335
 
323
336
  const getFlagName = (t: FlagToken): string => t._tag === "LongOption" ? t.name : t.flag
324
337
 
338
+ const resolveFlag = (
339
+ token: FlagToken,
340
+ registry: FlagRegistry
341
+ ): ResolvedFlag | undefined => {
342
+ const tokenName = getFlagName(token)
343
+ const direct = registry.index.get(tokenName)
344
+ if (direct && direct.name === tokenName) {
345
+ return {
346
+ param: direct,
347
+ negated: false
348
+ }
349
+ }
350
+
351
+ if (token._tag === "LongOption" && token.name.startsWith("no-")) {
352
+ const canonicalName = token.name.slice(3)
353
+ const param = registry.index.get(canonicalName)
354
+ if (param && param.name === canonicalName && Primitive.isBoolean(param.primitiveType)) {
355
+ return {
356
+ param,
357
+ negated: true
358
+ }
359
+ }
360
+ }
361
+
362
+ if (direct) {
363
+ return {
364
+ param: direct,
365
+ negated: false
366
+ }
367
+ }
368
+
369
+ return undefined
370
+ }
371
+
372
+ const invalidNegatedFlagValue = (
373
+ token: FlagToken,
374
+ spec: FlagParam,
375
+ value: string
376
+ ): CliError.InvalidValue =>
377
+ new CliError.InvalidValue({
378
+ option: spec.name,
379
+ value,
380
+ expected: `omit the value and use ${token.raw} by itself to set --${spec.name} to false`,
381
+ kind: "flag"
382
+ })
383
+
325
384
  /**
326
385
  * Checks if a token is a boolean literal value.
327
386
  * Recognizes: true/false, yes/no, on/off, 1/0
@@ -346,28 +405,64 @@ const asBooleanLiteral = (token: Token | undefined): string | undefined =>
346
405
  const consumeFlagValue = (
347
406
  cursor: TokenCursor,
348
407
  token: FlagToken,
349
- spec: FlagParam
350
- ): string | undefined => {
408
+ spec: FlagParam,
409
+ negated = false
410
+ ): ConsumedFlagValue => {
351
411
  // Inline value has highest priority
412
+ if (negated) {
413
+ if (token.value !== undefined) {
414
+ return {
415
+ _tag: "Error",
416
+ error: invalidNegatedFlagValue(token, spec, token.value)
417
+ }
418
+ }
419
+
420
+ const literal = asBooleanLiteral(cursor.peek())
421
+ if (literal !== undefined) {
422
+ cursor.take()
423
+ return {
424
+ _tag: "Error",
425
+ error: invalidNegatedFlagValue(token, spec, literal)
426
+ }
427
+ }
428
+
429
+ return {
430
+ _tag: "Value",
431
+ value: "false"
432
+ }
433
+ }
434
+
352
435
  if (token.value !== undefined) {
353
- return token.value
436
+ return {
437
+ _tag: "Value",
438
+ value: token.value
439
+ }
354
440
  }
355
441
 
356
442
  // Boolean flags: check for explicit literal or default to "true"
357
443
  if (Primitive.isBoolean(spec.primitiveType)) {
358
444
  const literal = asBooleanLiteral(cursor.peek())
359
445
  if (literal !== undefined) cursor.take()
360
- return literal ?? "true"
446
+ return {
447
+ _tag: "Value",
448
+ value: literal ?? "true"
449
+ }
361
450
  }
362
451
 
363
452
  // Non-boolean: try to consume next Value token
364
453
  const next = cursor.peek()
365
454
  if (next?._tag === "Value") {
366
455
  cursor.take()
367
- return next.value
456
+ return {
457
+ _tag: "Value",
458
+ value: next.value
459
+ }
368
460
  }
369
461
 
370
- return undefined
462
+ return {
463
+ _tag: "Value",
464
+ value: undefined
465
+ }
371
466
  }
372
467
 
373
468
  /**
@@ -379,9 +474,10 @@ const consumeFlagValue = (
379
474
  export const consumeKnownFlags = (
380
475
  tokens: ReadonlyArray<Token>,
381
476
  registry: FlagRegistry
382
- ): { flagMap: FlagMap; remainder: ReadonlyArray<Token> } => {
477
+ ): { flagMap: FlagMap; remainder: ReadonlyArray<Token>; errors: ReadonlyArray<CliError.InvalidValue> } => {
383
478
  const flagMap = createEmptyFlagMap(registry.params)
384
479
  const remainder: Array<Token> = []
480
+ const errors: Array<CliError.InvalidValue> = []
385
481
  const cursor = makeCursor(tokens)
386
482
 
387
483
  for (let t = cursor.take(); t; t = cursor.take()) {
@@ -390,19 +486,23 @@ export const consumeKnownFlags = (
390
486
  continue
391
487
  }
392
488
 
393
- const param = registry.index.get(getFlagName(t))
394
- if (!param) {
489
+ const resolved = resolveFlag(t, registry)
490
+ if (!resolved) {
395
491
  remainder.push(t)
396
492
  continue
397
493
  }
398
494
 
399
- const value = consumeFlagValue(cursor, t, param)
400
- if (value !== undefined) {
401
- flagMap[param.name].push(value)
495
+ const consumed = consumeFlagValue(cursor, t, resolved.param, resolved.negated)
496
+ if (consumed._tag === "Error") {
497
+ errors.push(consumed.error)
498
+ continue
499
+ }
500
+ if (consumed.value !== undefined) {
501
+ flagMap[resolved.param.name].push(consumed.value)
402
502
  }
403
503
  }
404
504
 
405
- return { flagMap, remainder }
505
+ return { flagMap, remainder, errors }
406
506
  }
407
507
 
408
508
  /* ========================================================================== */
@@ -419,6 +519,9 @@ const createUnrecognizedFlagError = (
419
519
 
420
520
  for (const p of params) {
421
521
  validNames.push(p.name)
522
+ if (Primitive.isBoolean(p.primitiveType)) {
523
+ validNames.push(`no-${p.name}`)
524
+ }
422
525
  for (const alias of p.aliases) {
423
526
  validNames.push(alias)
424
527
  }
@@ -498,6 +601,7 @@ const resolveFirstValue = (
498
601
  // npm-style: inherited parent flags can appear after subcommand name
499
602
  const tail = consumeKnownFlags(cursor.rest(), inheritedFlagRegistry)
500
603
  state.flags.merge(tail.flagMap)
604
+ state.errors.push(...tail.errors)
501
605
 
502
606
  return {
503
607
  _tag: "Subcommand",
@@ -542,15 +646,20 @@ const processFlag = (
542
646
  state: ParseState
543
647
  ): void => {
544
648
  const { commandPath, flagRegistry } = context
545
- const name = getFlagName(token)
546
- const spec = flagRegistry.index.get(name)
649
+ const resolved = resolveFlag(token, flagRegistry)
547
650
 
548
- if (!spec) {
651
+ if (!resolved) {
549
652
  state.errors.push(createUnrecognizedFlagError(token, flagRegistry.params, commandPath))
550
653
  return
551
654
  }
552
655
 
553
- state.flags.add(spec.name, consumeFlagValue(cursor, token, spec))
656
+ const consumed = consumeFlagValue(cursor, token, resolved.param, resolved.negated)
657
+ if (consumed._tag === "Error") {
658
+ state.errors.push(consumed.error)
659
+ return
660
+ }
661
+
662
+ state.flags.add(resolved.param.name, consumed.value)
554
663
  }
555
664
 
556
665
  /**
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @since 4.0.0
3
3
  */
4
+ import * as Context from "../../Context.ts"
4
5
  import { constFalse, constTrue, identity } from "../../Function.ts"
5
- import * as ServiceMap from "../../ServiceMap.ts"
6
6
  import type * as Rpc from "../rpc/Rpc.ts"
7
7
  import type { EntityId } from "./EntityId.ts"
8
8
  import type { Request } from "./Envelope.ts"
@@ -11,7 +11,7 @@ import type { Request } from "./Envelope.ts"
11
11
  * @since 4.0.0
12
12
  * @category Annotations
13
13
  */
14
- export const Persisted = ServiceMap.Reference<boolean>("effect/cluster/ClusterSchema/Persisted", {
14
+ export const Persisted = Context.Reference<boolean>("effect/cluster/ClusterSchema/Persisted", {
15
15
  defaultValue: constFalse
16
16
  })
17
17
 
@@ -22,7 +22,7 @@ export const Persisted = ServiceMap.Reference<boolean>("effect/cluster/ClusterSc
22
22
  * @since 4.0.0
23
23
  * @category Annotations
24
24
  */
25
- export const WithTransaction = ServiceMap.Reference<boolean>(
25
+ export const WithTransaction = Context.Reference<boolean>(
26
26
  "effect/cluster/ClusterSchema/WithTransaction",
27
27
  { defaultValue: constFalse }
28
28
  )
@@ -31,7 +31,7 @@ export const WithTransaction = ServiceMap.Reference<boolean>(
31
31
  * @since 4.0.0
32
32
  * @category Annotations
33
33
  */
34
- export const Uninterruptible = ServiceMap.Reference<boolean | "client" | "server">(
34
+ export const Uninterruptible = Context.Reference<boolean | "client" | "server">(
35
35
  "effect/cluster/ClusterSchema/Uninterruptible",
36
36
  { defaultValue: constFalse }
37
37
  )
@@ -40,8 +40,8 @@ export const Uninterruptible = ServiceMap.Reference<boolean | "client" | "server
40
40
  * @since 4.0.0
41
41
  * @category Annotations
42
42
  */
43
- export const isUninterruptibleForServer = (context: ServiceMap.ServiceMap<never>): boolean => {
44
- const value = ServiceMap.get(context, Uninterruptible)
43
+ export const isUninterruptibleForServer = (context: Context.Context<never>): boolean => {
44
+ const value = Context.get(context, Uninterruptible)
45
45
  return value === true || value === "server"
46
46
  }
47
47
 
@@ -49,8 +49,8 @@ export const isUninterruptibleForServer = (context: ServiceMap.ServiceMap<never>
49
49
  * @since 4.0.0
50
50
  * @category Annotations
51
51
  */
52
- export const isUninterruptibleForClient = (context: ServiceMap.ServiceMap<never>): boolean => {
53
- const value = ServiceMap.get(context, Uninterruptible)
52
+ export const isUninterruptibleForClient = (context: Context.Context<never>): boolean => {
53
+ const value = Context.get(context, Uninterruptible)
54
54
  return value === true || value === "client"
55
55
  }
56
56
 
@@ -58,7 +58,7 @@ export const isUninterruptibleForClient = (context: ServiceMap.ServiceMap<never>
58
58
  * @since 4.0.0
59
59
  * @category Annotations
60
60
  */
61
- export const ShardGroup = ServiceMap.Reference<(entityId: EntityId) => string>(
61
+ export const ShardGroup = Context.Reference<(entityId: EntityId) => string>(
62
62
  "effect/cluster/ClusterSchema/ShardGroup",
63
63
  { defaultValue: () => (_) => "default" }
64
64
  )
@@ -67,7 +67,7 @@ export const ShardGroup = ServiceMap.Reference<(entityId: EntityId) => string>(
67
67
  * @since 4.0.0
68
68
  * @category Annotations
69
69
  */
70
- export const ClientTracingEnabled = ServiceMap.Reference<boolean>("effect/cluster/ClusterSchema/ClientTracingEnabled", {
70
+ export const ClientTracingEnabled = Context.Reference<boolean>("effect/cluster/ClusterSchema/ClientTracingEnabled", {
71
71
  defaultValue: constTrue
72
72
  })
73
73
 
@@ -78,8 +78,8 @@ export const ClientTracingEnabled = ServiceMap.Reference<boolean>("effect/cluste
78
78
  * @since 4.0.0
79
79
  * @category Annotations
80
80
  */
81
- export const Dynamic = ServiceMap.Reference<
82
- (annotations: ServiceMap.ServiceMap<never>, request: Request<Rpc.AnyWithProps>) => ServiceMap.ServiceMap<never>
81
+ export const Dynamic = Context.Reference<
82
+ (annotations: Context.Context<never>, request: Request<Rpc.AnyWithProps>) => Context.Context<never>
83
83
  >(
84
84
  "effect/cluster/ClusterSchema/Dynamic",
85
85
  { defaultValue: () => identity }