effect 4.0.6 → 4.1.0

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 (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
@@ -17,11 +17,10 @@ import * as Context from "../Context.ts"
17
17
  import * as Effect from "../Effect.ts"
18
18
  import type { LogLevel as LogLevelType } from "../LogLevel.ts"
19
19
  import * as Option from "../Option.ts"
20
+ import * as CliOutput from "./CliOutput.ts"
20
21
  import type * as Command from "./Command.ts"
21
22
  import * as Completions_ from "./Completions.ts"
22
23
  import * as Flag from "./Flag.ts"
23
- import * as CommandDescriptor from "./internal/completions/descriptor.ts"
24
- import { resolveFormatter } from "./internal/formatter.ts"
25
24
  import * as HelpInternal from "./internal/help.ts"
26
25
 
27
26
  /* ========================================================================== */
@@ -169,9 +168,9 @@ export const Help: Action<boolean> = Action({
169
168
  Flag.withDefault(false)
170
169
  ),
171
170
  run: Effect.fnUntraced(function*(_, { builtIns, command, commandPath }) {
172
- const formatter = yield* resolveFormatter
171
+ const presenter = yield* CliOutput.Presenter
173
172
  const helpDoc = yield* HelpInternal.getHelpForCommandPath(command, commandPath, builtIns)
174
- yield* Console.log(formatter.formatHelpDoc(helpDoc))
173
+ yield* presenter.present({ _tag: "Help", reason: "Requested", commandPath, helpDoc })
175
174
  })
176
175
  })
177
176
 
@@ -193,8 +192,8 @@ export const Version: Action<boolean> = Action({
193
192
  Flag.withDefault(false)
194
193
  ),
195
194
  run: Effect.fnUntraced(function*(_, { command, version }) {
196
- const formatter = yield* resolveFormatter
197
- yield* Console.log(formatter.formatVersion(command.name, version))
195
+ const presenter = yield* CliOutput.Presenter
196
+ yield* presenter.present({ _tag: "Version", name: command.name, version })
198
197
  })
199
198
  })
200
199
 
@@ -249,7 +248,7 @@ export const Completions: Action<Option.Option<Completions_.Shell>> = Action({
249
248
  ),
250
249
  run: Effect.fnUntraced(function*(shell, { command }) {
251
250
  if (Option.isNone(shell)) return
252
- const descriptor = CommandDescriptor.fromCommand(command)
251
+ const descriptor = Completions_.fromCommand(command)
253
252
  yield* Console.log(
254
253
  Completions_.generate(command.name, shell.value, descriptor)
255
254
  )
@@ -82,10 +82,27 @@ export interface HelpDoc {
82
82
  readonly flags: ReadonlyArray<FlagDoc>
83
83
 
84
84
  /**
85
- * Global flags available to all commands (e.g., --help, --version).
85
+ * Shared flags inherited from ancestor commands.
86
+ */
87
+ readonly inheritedFlags?: ReadonlyArray<FlagDoc>
88
+
89
+ /**
90
+ * Global flags active at this command, including built-ins (e.g., --help).
86
91
  */
87
92
  readonly globalFlags?: ReadonlyArray<FlagDoc>
88
93
 
94
+ /**
95
+ * Root-to-command path of the nearest ancestor (or this command) declaring
96
+ * global flags. Defaults to the root for built-ins.
97
+ */
98
+ readonly globalFlagsScope?: ReadonlyArray<string>
99
+
100
+ /**
101
+ * Command names from the root command to this command, e.g.
102
+ * `["myapp", "deploy"]`.
103
+ */
104
+ readonly commandPath?: ReadonlyArray<string>
105
+
89
106
  /**
90
107
  * Custom command annotations.
91
108
  */
package/src/cli/Param.ts CHANGED
@@ -25,6 +25,7 @@ import * as CliError from "./CliError.ts"
25
25
  import type { Environment } from "./Command.ts"
26
26
  import * as Primitive from "./Primitive.ts"
27
27
  import * as Prompt from "./Prompt.ts"
28
+ import * as TerminalCapabilities from "./TerminalCapabilities.ts"
28
29
 
29
30
  const TypeId = "~effect/cli/Param"
30
31
 
@@ -1299,6 +1300,7 @@ const transform = <Kind extends ParamKind, A, B>(
1299
1300
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1300
1301
  * columns: Effect.succeed(80),
1301
1302
  * rows: Effect.succeed(24),
1303
+ * size: Effect.die("unused"),
1302
1304
  * readInput: Effect.die("unused"),
1303
1305
  * readLine: Effect.die("unused"),
1304
1306
  * display: () => Effect.void
@@ -1355,6 +1357,7 @@ export const mapEffect: {
1355
1357
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1356
1358
  * columns: Effect.succeed(80),
1357
1359
  * rows: Effect.succeed(24),
1360
+ * size: Effect.die("unused"),
1358
1361
  * readInput: Effect.die("unused"),
1359
1362
  * readLine: Effect.die("unused"),
1360
1363
  * display: () => Effect.void
@@ -1411,6 +1414,7 @@ export const mapEffect: {
1411
1414
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1412
1415
  * columns: Effect.succeed(80),
1413
1416
  * rows: Effect.succeed(24),
1417
+ * size: Effect.die("unused"),
1414
1418
  * readInput: Effect.die("unused"),
1415
1419
  * readLine: Effect.die("unused"),
1416
1420
  * display: () => Effect.void
@@ -1484,6 +1488,7 @@ export const mapEffect: {
1484
1488
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1485
1489
  * columns: Effect.succeed(80),
1486
1490
  * rows: Effect.succeed(24),
1491
+ * size: Effect.die("unused"),
1487
1492
  * readInput: Effect.die("unused"),
1488
1493
  * readLine: Effect.die("unused"),
1489
1494
  * display: () => Effect.void
@@ -1534,6 +1539,7 @@ export const mapTryCatch: {
1534
1539
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1535
1540
  * columns: Effect.succeed(80),
1536
1541
  * rows: Effect.succeed(24),
1542
+ * size: Effect.die("unused"),
1537
1543
  * readInput: Effect.die("unused"),
1538
1544
  * readLine: Effect.die("unused"),
1539
1545
  * display: () => Effect.void
@@ -1584,6 +1590,7 @@ export const mapTryCatch: {
1584
1590
  * Layer.succeed(Terminal.Terminal, Terminal.make({
1585
1591
  * columns: Effect.succeed(80),
1586
1592
  * rows: Effect.succeed(24),
1593
+ * size: Effect.die("unused"),
1587
1594
  * readInput: Effect.die("unused"),
1588
1595
  * readLine: Effect.die("unused"),
1589
1596
  * display: () => Effect.void
@@ -1931,6 +1938,9 @@ export const withFallbackConfig: {
1931
1938
  *
1932
1939
  * This only handles missing options and missing arguments. Invalid values do not
1933
1940
  * prompt, and prompt cancellation re-fails with the original missing error.
1941
+ * When `TerminalCapabilities.canPrompt` is `false`, the fallback is skipped
1942
+ * entirely: no prompt is built or shown, and the original missing error is
1943
+ * returned.
1934
1944
  *
1935
1945
  * @see {@link FallbackPrompt} for accepted fallback prompt forms
1936
1946
  * @see {@link withFallbackConfig} for loading a fallback from config
@@ -1958,6 +1968,9 @@ export const withFallbackPrompt: {
1958
1968
  *
1959
1969
  * This only handles missing options and missing arguments. Invalid values do not
1960
1970
  * prompt, and prompt cancellation re-fails with the original missing error.
1971
+ * When `TerminalCapabilities.canPrompt` is `false`, the fallback is skipped
1972
+ * entirely: no prompt is built or shown, and the original missing error is
1973
+ * returned.
1961
1974
  *
1962
1975
  * @see {@link FallbackPrompt} for accepted fallback prompt forms
1963
1976
  * @see {@link withFallbackConfig} for loading a fallback from config
@@ -1985,6 +1998,9 @@ export const withFallbackPrompt: {
1985
1998
  *
1986
1999
  * This only handles missing options and missing arguments. Invalid values do not
1987
2000
  * prompt, and prompt cancellation re-fails with the original missing error.
2001
+ * When `TerminalCapabilities.canPrompt` is `false`, the fallback is skipped
2002
+ * entirely: no prompt is built or shown, and the original missing error is
2003
+ * returned.
1988
2004
  *
1989
2005
  * @see {@link FallbackPrompt} for accepted fallback prompt forms
1990
2006
  * @see {@link withFallbackConfig} for loading a fallback from config
@@ -1999,11 +2015,16 @@ export const withFallbackPrompt: {
1999
2015
  self: Param<Kind, A>,
2000
2016
  prompt: FallbackPrompt<B>
2001
2017
  ): Param<Kind, A | B> => {
2002
- const runPrompt = (error: CliError.MissingOption | CliError.MissingArgument, args: ParsedArgs) =>
2003
- Effect.flatMap(Prompt.isPrompt(prompt) ? Effect.succeed(prompt) : prompt, Prompt.run).pipe(
2004
- Effect.map((value) => [args.arguments, value as A | B] as const),
2005
- Effect.catchTag("QuitError", () => Effect.fail(error))
2006
- )
2018
+ const runPrompt = Effect.fnUntraced(function*(
2019
+ error: CliError.MissingOption | CliError.MissingArgument,
2020
+ args: ParsedArgs
2021
+ ) {
2022
+ const { canPrompt } = yield* TerminalCapabilities.TerminalCapabilities
2023
+ if (!canPrompt) return yield* Effect.fail(error)
2024
+ const built = Prompt.isPrompt(prompt) ? prompt : yield* prompt
2025
+ const value = yield* Effect.catchTag(Prompt.run(built), "QuitError", () => Effect.fail(error))
2026
+ return [args.arguments, value as A | B] as const
2027
+ })
2007
2028
  return transform(
2008
2029
  self,
2009
2030
  (parse) => (args) =>
@@ -3191,7 +3212,15 @@ const parseFlag: <A>(
3191
3212
  return yield* new CliError.MissingOption({ option: name })
3192
3213
  }
3193
3214
 
3194
- // Parse the first value (later we can handle multiple)
3215
+ if (providedValues.length > 1) {
3216
+ return yield* new CliError.InvalidValue({
3217
+ option: name,
3218
+ value: `${providedValues.length} occurrences`,
3219
+ expected: "at most 1 value",
3220
+ kind: "flag"
3221
+ })
3222
+ }
3223
+
3195
3224
  const arg = providedValues[0]
3196
3225
  const value = yield* Effect.mapError(
3197
3226
  primitiveType.parse(arg),
@@ -20,6 +20,7 @@ import { format } from "../Formatter.ts"
20
20
  import { identity } from "../Function.ts"
21
21
  import * as Path_ from "../Path.ts"
22
22
  import * as Redacted_ from "../Redacted.ts"
23
+ import * as Result from "../Result.ts"
23
24
  import * as Schema from "../Schema.ts"
24
25
  import type { Formatter } from "../SchemaIssue.ts"
25
26
  import type * as Struct from "../Struct.ts"
@@ -45,6 +46,7 @@ const TypeId = "~effect/cli/Primitive"
45
46
  * Layer.succeed(Terminal.Terminal, Terminal.make({
46
47
  * columns: Effect.succeed(80),
47
48
  * rows: Effect.succeed(24),
49
+ * size: Effect.die("unused"),
48
50
  * readInput: Effect.die("unused"),
49
51
  * readLine: Effect.die("unused"),
50
52
  * display: () => Effect.void
@@ -157,6 +159,7 @@ const makeSchemaPrimitive = <T>(
157
159
  * Layer.succeed(Terminal.Terminal, Terminal.make({
158
160
  * columns: Effect.succeed(80),
159
161
  * rows: Effect.succeed(24),
162
+ * size: Effect.die("unused"),
160
163
  * readInput: Effect.die("unused"),
161
164
  * readLine: Effect.die("unused"),
162
165
  * display: () => Effect.void
@@ -203,6 +206,7 @@ export const Boolean: Primitive<boolean> = makeSchemaPrimitive(
203
206
  * Layer.succeed(Terminal.Terminal, Terminal.make({
204
207
  * columns: Effect.succeed(80),
205
208
  * rows: Effect.succeed(24),
209
+ * size: Effect.die("unused"),
206
210
  * readInput: Effect.die("unused"),
207
211
  * readLine: Effect.die("unused"),
208
212
  * display: () => Effect.void
@@ -248,6 +252,7 @@ export const Finite: Primitive<number> = makeSchemaPrimitive(
248
252
  * Layer.succeed(Terminal.Terminal, Terminal.make({
249
253
  * columns: Effect.succeed(80),
250
254
  * rows: Effect.succeed(24),
255
+ * size: Effect.die("unused"),
251
256
  * readInput: Effect.die("unused"),
252
257
  * readLine: Effect.die("unused"),
253
258
  * display: () => Effect.void
@@ -293,6 +298,7 @@ export const Int: Primitive<number> = makeSchemaPrimitive(
293
298
  * Layer.succeed(Terminal.Terminal, Terminal.make({
294
299
  * columns: Effect.succeed(80),
295
300
  * rows: Effect.succeed(24),
301
+ * size: Effect.die("unused"),
296
302
  * readInput: Effect.die("unused"),
297
303
  * readLine: Effect.die("unused"),
298
304
  * display: () => Effect.void
@@ -337,6 +343,7 @@ export const Date: Primitive<globalThis.Date> = makeSchemaPrimitive(
337
343
  * Layer.succeed(Terminal.Terminal, Terminal.make({
338
344
  * columns: Effect.succeed(80),
339
345
  * rows: Effect.succeed(24),
346
+ * size: Effect.die("unused"),
340
347
  * readInput: Effect.die("unused"),
341
348
  * readLine: Effect.die("unused"),
342
349
  * display: () => Effect.void
@@ -379,6 +386,7 @@ export const String: Primitive<string> = makePrimitive("String", (value) => Effe
379
386
  * Layer.succeed(Terminal.Terminal, Terminal.make({
380
387
  * columns: Effect.succeed(80),
381
388
  * rows: Effect.succeed(24),
389
+ * size: Effect.die("unused"),
382
390
  * readInput: Effect.die("unused"),
383
391
  * readLine: Effect.die("unused"),
384
392
  * display: () => Effect.void
@@ -470,6 +478,7 @@ export type PathType = "file" | "directory" | "either"
470
478
  * Layer.succeed(Terminal.Terminal, Terminal.make({
471
479
  * columns: Effect.succeed(80),
472
480
  * rows: Effect.succeed(24),
481
+ * size: Effect.die("unused"),
473
482
  * readInput: Effect.die("unused"),
474
483
  * readLine: Effect.die("unused"),
475
484
  * display: () => Effect.void
@@ -560,6 +569,7 @@ export const Path = (
560
569
  * Layer.succeed(Terminal.Terminal, Terminal.make({
561
570
  * columns: Effect.succeed(80),
562
571
  * rows: Effect.succeed(24),
572
+ * size: Effect.die("unused"),
563
573
  * readInput: Effect.die("unused"),
564
574
  * readLine: Effect.die("unused"),
565
575
  * display: () => Effect.void
@@ -608,6 +618,7 @@ export const Redacted: Primitive<Redacted_.Redacted<string>> = makePrimitive(
608
618
  * Layer.succeed(Terminal.Terminal, Terminal.make({
609
619
  * columns: Effect.succeed(80),
610
620
  * rows: Effect.succeed(24),
621
+ * size: Effect.die("unused"),
611
622
  * readInput: Effect.die("unused"),
612
623
  * readLine: Effect.die("unused"),
613
624
  * display: () => Effect.void
@@ -686,7 +697,7 @@ export type FileParseOptions = {
686
697
  const fileParsers: Record<string, (content: string) => unknown> = {
687
698
  ini: (content: string) => Ini.parse(content),
688
699
  json: (content: string) => JSON.parse(content),
689
- toml: (content: string) => Toml.parse(content),
700
+ toml: (content: string) => Result.getOrThrow(Toml.parse(content)),
690
701
  yml: (content: string) => Yaml.parse(content),
691
702
  yaml: (content: string) => Yaml.parse(content)
692
703
  }
@@ -718,6 +729,7 @@ const fileParsers: Record<string, (content: string) => unknown> = {
718
729
  * Layer.succeed(Terminal.Terminal, Terminal.make({
719
730
  * columns: Effect.succeed(80),
720
731
  * rows: Effect.succeed(24),
732
+ * size: Effect.die("unused"),
721
733
  * readInput: Effect.die("unused"),
722
734
  * readLine: Effect.die("unused"),
723
735
  * display: () => Effect.void
@@ -795,6 +807,7 @@ export type FileSchemaOptions = Struct.Simplify<
795
807
  * Layer.succeed(Terminal.Terminal, Terminal.make({
796
808
  * columns: Effect.succeed(80),
797
809
  * rows: Effect.succeed(24),
810
+ * size: Effect.die("unused"),
798
811
  * readInput: Effect.die("unused"),
799
812
  * readLine: Effect.die("unused"),
800
813
  * display: () => Effect.void
@@ -862,6 +875,7 @@ export const FileSchema = <A>(
862
875
  * Layer.succeed(Terminal.Terminal, Terminal.make({
863
876
  * columns: Effect.succeed(80),
864
877
  * rows: Effect.succeed(24),
878
+ * size: Effect.die("unused"),
865
879
  * readInput: Effect.die("unused"),
866
880
  * readLine: Effect.die("unused"),
867
881
  * display: () => Effect.void
@@ -923,6 +937,7 @@ export const KeyValuePair: Primitive<Record<string, string>> = makePrimitive(
923
937
  * Layer.succeed(Terminal.Terminal, Terminal.make({
924
938
  * columns: Effect.succeed(80),
925
939
  * rows: Effect.succeed(24),
940
+ * size: Effect.die("unused"),
926
941
  * readInput: Effect.die("unused"),
927
942
  * readLine: Effect.die("unused"),
928
943
  * display: () => Effect.void
package/src/cli/Prompt.ts CHANGED
@@ -791,6 +791,7 @@ export declare namespace All {
791
791
  * const terminal = Terminal.make({
792
792
  * columns: Effect.succeed(80),
793
793
  * rows: Effect.succeed(24),
794
+ * size: Effect.die("unused"),
794
795
  * readInput: Effect.succeed({} as never),
795
796
  * readLine: Effect.die("unused"),
796
797
  * display: () => Effect.void
@@ -5,7 +5,9 @@
5
5
  * the current process. The layer reads the same variables through
6
6
  * `ConfigProvider`, plus the TTY state of `Stdio`. Unless a
7
7
  * `CliOutput.Formatter` is provided, the built-in help, version, and error
8
- * output of `Command` follows `canColor`.
8
+ * output of `Command` follows `canColor`. Fallback prompts added with
9
+ * `Flag.withFallbackPrompt` or `Argument.withFallbackPrompt` only run when
10
+ * `canPrompt` is `true`.
9
11
  *
10
12
  * @stability unstable
11
13
  * @since 4.0.0
@@ -25,8 +27,9 @@ import * as Stdio from "../Stdio.ts"
25
27
  * `canColor` says whether styling will be rendered rather than stored as
26
28
  * bytes. `canAnimate` says whether output is being watched, so pacing means
27
29
  * something. `canPrompt` says whether a question can be asked and answered.
28
- * Only `canColor` is read by the built-in `Command` output; the other two are
29
- * for application code that renders its own output.
30
+ * The built-in `Command` output reads `canColor`, and fallback prompts for
31
+ * missing flags and arguments are skipped when `canPrompt` is `false`.
32
+ * `canAnimate` is for application code that renders its own output.
30
33
  *
31
34
  * @stability unstable
32
35
  * @category models
@@ -51,6 +51,10 @@ const buildFlagGroupDeclarations = (
51
51
  lines.push(``)
52
52
  }
53
53
 
54
+ // Quoting these substitutions breaks quote matching on Bash 3.2.
55
+ const removeQuotes = (variable: string): string =>
56
+ [`\\\\`, `\\"`, `\\'`].map((quote) => `${variable}=\${${variable}//${quote}/}`).join("; ")
57
+
54
58
  /**
55
59
  * Complete choices without `compgen -W`, which reparses quoted values. Escape
56
60
  * only the portion readline replaces for the active quote context.
@@ -71,9 +75,8 @@ const choicesHelper = (helperName: string, lines: Array<string>): void => {
71
75
  lines.push(` esac`)
72
76
  lines.push(``)
73
77
  lines.push(` local _prefix="$_cur" _committed="$_head"`)
74
- // Quoting these substitutions breaks quote matching on Bash 3.2.
75
- lines.push(` _prefix=\${_prefix//\\\\/}; _prefix=\${_prefix//\\"/}; _prefix=\${_prefix//\\'/}`)
76
- lines.push(` _committed=\${_committed//\\\\/}; _committed=\${_committed//\\"/}; _committed=\${_committed//\\'/}`)
78
+ lines.push(` ${removeQuotes("_prefix")}`)
79
+ lines.push(` ${removeQuotes("_committed")}`)
77
80
  lines.push(``)
78
81
  lines.push(` COMPREPLY=()`)
79
82
  lines.push(` local _choice _rest _match`)
@@ -111,30 +114,76 @@ const choicesHelper = (helperName: string, lines: Array<string>): void => {
111
114
  lines.push(``)
112
115
  }
113
116
 
114
- const choiceCompletion = (helperName: string, values: ReadonlyArray<string>): string =>
115
- `${helperName} "$cur" "$_comp_word" ${values.map((value) => `'${escapeForBash(value)}'`).join(" ")}`
117
+ interface Helpers {
118
+ readonly choices: string
119
+ readonly paths: string
120
+ }
116
121
 
117
- const flagValueCompletion = (type: Completions.FlagType, helperName: string): string | undefined => {
118
- switch (type._tag) {
119
- case "Boolean":
120
- return undefined
121
- case "Choice":
122
- return choiceCompletion(helperName, type.values)
123
- case "Path":
124
- if (type.pathType === "directory") return `COMPREPLY=( $(compgen -d -- "$cur") )`
125
- return `COMPREPLY=( $(compgen -f -- "$cur") )`
126
- default:
127
- return undefined
128
- }
122
+ /**
123
+ * Complete paths through the choice helper, one `compgen` line per candidate.
124
+ * The typed directory is kept as written so expansions in it still apply; only
125
+ * the completed name is quoted.
126
+ */
127
+ const pathsHelper = (helpers: Helpers, lines: Array<string>): void => {
128
+ lines.push(`${helpers.paths}()`)
129
+ lines.push(`{`)
130
+ lines.push(` local _kind="$1" _cur="$2" _word="$3"`)
131
+ lines.push(``)
132
+ lines.push(` local _prefix="$_cur" _committed="\${_cur%"$_word"}"`)
133
+ lines.push(` ${removeQuotes("_prefix")}`)
134
+ lines.push(` ${removeQuotes("_committed")}`)
135
+ lines.push(``)
136
+ // Track a quote the typed directory leaves open.
137
+ lines.push(` local _typed="" _dir="$_committed" _open="" _i`)
138
+ lines.push(` if [[ "$_word" == */* ]]; then`)
139
+ lines.push(` _typed="\${_word%/*}/"`)
140
+ lines.push(` _dir="\${_prefix%/*}/"`)
141
+ lines.push(` if [[ "$_cur" == "$_word" ]]; then`)
142
+ lines.push(` for ((_i = 0; _i < \${#_typed}; _i++)); do`)
143
+ lines.push(` case "$_open\${_typed:_i:1}" in`)
144
+ lines.push(` \\\\|\\"\\\\) ((_i += 1)) ;;`)
145
+ lines.push(` \\"|\\') _open="\${_typed:_i:1}" ;;`)
146
+ lines.push(` \\"\\"|\\'\\') _open="" ;;`)
147
+ lines.push(` esac`)
148
+ lines.push(` done`)
149
+ lines.push(` fi`)
150
+ lines.push(` fi`)
151
+ lines.push(``)
152
+ lines.push(` local _path _names=() _rest="\${_word#"$_typed"}"`)
153
+ lines.push(` while IFS= read -r _path; do`)
154
+ lines.push(` if [[ "$_path" == "$_dir"* ]]; then`)
155
+ lines.push(` _names+=("$_committed\${_path#"$_dir"}")`)
156
+ lines.push(` elif [[ -z "$_committed" ]]; then`)
157
+ // Bash 3.2 returns expanded paths, which replace the whole word.
158
+ lines.push(` _names+=("$_path")`)
159
+ lines.push(` _typed="" _rest="" _open=""`)
160
+ lines.push(` fi`)
161
+ lines.push(` done < <(compgen "$_kind" -- "$_prefix")`)
162
+ // Close the quote before the name so a common prefix stays balanced.
163
+ lines.push(` if [[ -n "$_open" ]]; then`)
164
+ lines.push(` _typed+="$_open"`)
165
+ lines.push(` _rest="\${_prefix##*/}"`)
166
+ lines.push(` fi`)
167
+ lines.push(``)
168
+ lines.push(` ${helpers.choices} "\${_cur%"$_word"}$_rest" "$_rest" "\${_names[@]}"`)
169
+ lines.push(` for ((_i = 0; _i < \${#COMPREPLY[@]}; _i++)); do`)
170
+ lines.push(` COMPREPLY[_i]="$_typed\${COMPREPLY[_i]}"`)
171
+ lines.push(` done`)
172
+ lines.push(`}`)
173
+ lines.push(``)
129
174
  }
130
175
 
131
- const argCompletion = (type: Completions.ArgumentType, helperName: string): string | undefined => {
176
+ const valueCompletion = (
177
+ type: Completions.FlagType | Completions.ArgumentType,
178
+ helpers: Helpers
179
+ ): string | undefined => {
132
180
  switch (type._tag) {
133
- case "Choice":
134
- return choiceCompletion(helperName, type.values)
181
+ case "Choice": {
182
+ const values = type.values.map((value) => `'${escapeForBash(value)}'`).join(" ")
183
+ return `${helpers.choices} "$cur" "$_comp_word" ${values}`
184
+ }
135
185
  case "Path":
136
- if (type.pathType === "directory") return `COMPREPLY=( $(compgen -d -- "$cur") )`
137
- return `COMPREPLY=( $(compgen -f -- "$cur") )`
186
+ return `${helpers.paths} ${type.pathType === "directory" ? "-d" : "-f"} "$cur" "$_comp_word"`
138
187
  default:
139
188
  return undefined
140
189
  }
@@ -148,7 +197,7 @@ const generateFunction = (
148
197
  descriptor: Completions.CommandDescriptor,
149
198
  parentPath: ReadonlyArray<string>,
150
199
  lines: Array<string>,
151
- helperName: string
200
+ helpers: Helpers
152
201
  ): void => {
153
202
  const currentPath = [...parentPath, descriptor.name]
154
203
  const funcName = `_${currentPath.map(sanitizeFunctionName).join("_")}`
@@ -175,7 +224,7 @@ const generateFunction = (
175
224
  for (const alias of flag.aliases) {
176
225
  longNames.push(alias.length === 1 ? `-${alias}` : `--${alias}`)
177
226
  }
178
- const completion = flagValueCompletion(flag.type, helperName)
227
+ const completion = valueCompletion(flag.type, helpers)
179
228
  if (completion) {
180
229
  lines.push(` ${longNames.join("|")})`)
181
230
  lines.push(` ${completion}`)
@@ -231,7 +280,7 @@ const generateFunction = (
231
280
 
232
281
  // Positional argument completion
233
282
  const argsWithCompletions = descriptor.arguments.flatMap((argument, index) => {
234
- const completion = argCompletion(argument.type, helperName)
283
+ const completion = valueCompletion(argument.type, helpers)
235
284
  return completion === undefined ? [] : [{ argument, completion, index }]
236
285
  })
237
286
  if (argsWithCompletions.length > 0) {
@@ -287,7 +336,7 @@ const generateFunction = (
287
336
 
288
337
  // Recurse into subcommands
289
338
  for (const sub of descriptor.subcommands) {
290
- generateFunction(sub, currentPath, lines, helperName)
339
+ generateFunction(sub, currentPath, lines, helpers)
291
340
  }
292
341
  }
293
342
 
@@ -301,7 +350,7 @@ export const generate = (
301
350
  const lines: Array<string> = []
302
351
  const safeName = sanitizeFunctionName(executableName)
303
352
  // Sanitized command names cannot contain `-`.
304
- const helperName = `_${safeName}--choices`
353
+ const helpers: Helpers = { choices: `_${safeName}--choices`, paths: `_${safeName}--paths` }
305
354
 
306
355
  lines.push(`###-begin-${escapeForBash(executableName)}-completions-###`)
307
356
  lines.push(`#`)
@@ -341,8 +390,9 @@ export const generate = (
341
390
  lines.push(`fi`)
342
391
  lines.push(``)
343
392
 
344
- choicesHelper(helperName, lines)
345
- generateFunction(descriptor, [], lines, helperName)
393
+ choicesHelper(helpers.choices, lines)
394
+ pathsHelper(helpers, lines)
395
+ generateFunction(descriptor, [], lines, helpers)
346
396
 
347
397
  lines.push(`complete -F _${safeName} ${escapeForBash(executableName)}`)
348
398
  lines.push(`###-end-${escapeForBash(executableName)}-completions-###`)
@@ -96,7 +96,7 @@ const collectDeclaredGlobalFlags = (command: Command.Any): ReadonlyArray<GlobalF
96
96
  return dedupeGlobalFlags(collected)
97
97
  }
98
98
 
99
- const getSharedFlagsForCommandPath = (
99
+ const getInheritedFlagsForCommandPath = (
100
100
  commands: ReadonlyArray<Command.Any>,
101
101
  currentFlags: ReadonlyArray<FlagDoc>
102
102
  ): ReadonlyArray<FlagDoc> => {
@@ -105,7 +105,7 @@ const getSharedFlagsForCommandPath = (
105
105
  }
106
106
 
107
107
  const seen = new Set(currentFlags.map((flag) => flag.name))
108
- const sharedFlags: Array<FlagDoc> = []
108
+ const inheritedFlags: Array<FlagDoc> = []
109
109
 
110
110
  for (const ancestor of commands.slice(0, -1)) {
111
111
  const ancestorImpl = toImpl(ancestor)
@@ -116,19 +116,16 @@ const getSharedFlagsForCommandPath = (
116
116
  if (seen.has(single.name)) {
117
117
  continue
118
118
  }
119
- // Hidden ancestor flags are excluded from the shared-flags section
120
- // of subcommand help, the same way they're excluded from the owning
121
- // command's own help output.
122
119
  if (single.hidden) {
123
120
  continue
124
121
  }
125
122
  seen.add(single.name)
126
- sharedFlags.push(toFlagDoc(single, metadata))
123
+ inheritedFlags.push(toFlagDoc(single, metadata))
127
124
  }
128
125
  }
129
126
  }
130
127
 
131
- return sharedFlags
128
+ return inheritedFlags
132
129
  }
133
130
 
134
131
  /**
@@ -160,7 +157,7 @@ export const getHelpForCommandPath = <Name extends string, Input, E, R, ContextI
160
157
 
161
158
  const baseDoc = toImpl(currentCommand).buildHelpDoc(commandPath)
162
159
 
163
- const sharedFlags = getSharedFlagsForCommandPath(commands, baseDoc.flags)
160
+ const inheritedFlags = getInheritedFlagsForCommandPath(commands, baseDoc.flags)
164
161
 
165
162
  const flags = getGlobalFlagsForCommandPath(command, commandPath, builtIns)
166
163
  const globalFlagDocs: Array<FlagDoc> = []
@@ -179,5 +176,20 @@ export const getHelpForCommandPath = <Name extends string, Input, E, R, ContextI
179
176
  }
180
177
  }
181
178
 
182
- return { ...baseDoc, flags: [...sharedFlags, ...baseDoc.flags], globalFlags: globalFlagDocs }
179
+ // Globals accumulate along the path, so the deepest declaring scope lists them all.
180
+ let scopeLength = 1
181
+ for (let i = commands.length - 1; i > 0; i--) {
182
+ if (toImpl(commands[i]).globalFlags.length > 0) {
183
+ scopeLength = i + 1
184
+ break
185
+ }
186
+ }
187
+
188
+ return {
189
+ ...baseDoc,
190
+ inheritedFlags,
191
+ globalFlags: globalFlagDocs,
192
+ globalFlagsScope: commandPath.slice(0, scopeLength),
193
+ commandPath
194
+ }
183
195
  })