effect 4.0.5 → 4.0.6

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 (985) hide show
  1. package/ai-docs/package.json +1 -1
  2. package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
  3. package/ai-docs/tsconfig.json +3 -1
  4. package/dist/Array.d.ts +117 -52
  5. package/dist/Array.d.ts.map +1 -1
  6. package/dist/Array.js +41 -20
  7. package/dist/Array.js.map +1 -1
  8. package/dist/Bytes.d.ts +79 -0
  9. package/dist/Bytes.d.ts.map +1 -0
  10. package/dist/Bytes.js +109 -0
  11. package/dist/Bytes.js.map +1 -0
  12. package/dist/Channel.d.ts +181 -13
  13. package/dist/Channel.d.ts.map +1 -1
  14. package/dist/Channel.js +125 -30
  15. package/dist/Channel.js.map +1 -1
  16. package/dist/ChannelSchema.d.ts.map +1 -1
  17. package/dist/ChannelSchema.js.map +1 -1
  18. package/dist/Chunk.d.ts +39 -21
  19. package/dist/Chunk.d.ts.map +1 -1
  20. package/dist/Chunk.js +26 -17
  21. package/dist/Chunk.js.map +1 -1
  22. package/dist/Config.d.ts.map +1 -1
  23. package/dist/Config.js +8 -3
  24. package/dist/Config.js.map +1 -1
  25. package/dist/ConfigProvider.d.ts.map +1 -1
  26. package/dist/ConfigProvider.js +2 -1
  27. package/dist/ConfigProvider.js.map +1 -1
  28. package/dist/Cron.d.ts +2 -2
  29. package/dist/Cron.d.ts.map +1 -1
  30. package/dist/Cron.js +6 -3
  31. package/dist/Cron.js.map +1 -1
  32. package/dist/Duration.d.ts.map +1 -1
  33. package/dist/Duration.js +56 -16
  34. package/dist/Duration.js.map +1 -1
  35. package/dist/Effect.d.ts +487 -163
  36. package/dist/Effect.d.ts.map +1 -1
  37. package/dist/Effect.js +203 -37
  38. package/dist/Effect.js.map +1 -1
  39. package/dist/Equivalence.d.ts +2 -1
  40. package/dist/Equivalence.d.ts.map +1 -1
  41. package/dist/Equivalence.js +12 -8
  42. package/dist/Equivalence.js.map +1 -1
  43. package/dist/Exit.d.ts +24 -9
  44. package/dist/Exit.d.ts.map +1 -1
  45. package/dist/Exit.js +8 -3
  46. package/dist/Exit.js.map +1 -1
  47. package/dist/FiberHandle.d.ts +2 -0
  48. package/dist/FiberHandle.d.ts.map +1 -1
  49. package/dist/FiberHandle.js +9 -4
  50. package/dist/FiberHandle.js.map +1 -1
  51. package/dist/FiberMap.d.ts +2 -0
  52. package/dist/FiberMap.d.ts.map +1 -1
  53. package/dist/FiberMap.js +5 -2
  54. package/dist/FiberMap.js.map +1 -1
  55. package/dist/FileSystem.d.ts +5 -0
  56. package/dist/FileSystem.d.ts.map +1 -1
  57. package/dist/FileSystem.js +3 -0
  58. package/dist/FileSystem.js.map +1 -1
  59. package/dist/Graph.d.ts.map +1 -1
  60. package/dist/Graph.js.map +1 -1
  61. package/dist/HashSet.d.ts.map +1 -1
  62. package/dist/HashSet.js.map +1 -1
  63. package/dist/Iterable.d.ts.map +1 -1
  64. package/dist/Iterable.js +18 -17
  65. package/dist/Iterable.js.map +1 -1
  66. package/dist/JsonSchema.d.ts +9 -3
  67. package/dist/JsonSchema.d.ts.map +1 -1
  68. package/dist/JsonSchema.js +19 -3
  69. package/dist/JsonSchema.js.map +1 -1
  70. package/dist/Layer.d.ts.map +1 -1
  71. package/dist/Layer.js +2 -2
  72. package/dist/Layer.js.map +1 -1
  73. package/dist/ManagedRuntime.d.ts +19 -1
  74. package/dist/ManagedRuntime.d.ts.map +1 -1
  75. package/dist/ManagedRuntime.js +62 -6
  76. package/dist/ManagedRuntime.js.map +1 -1
  77. package/dist/Metric.d.ts +132 -0
  78. package/dist/Metric.d.ts.map +1 -1
  79. package/dist/Metric.js +197 -25
  80. package/dist/Metric.js.map +1 -1
  81. package/dist/MutableHashMap.d.ts.map +1 -1
  82. package/dist/MutableHashMap.js.map +1 -1
  83. package/dist/Number.js +2 -2
  84. package/dist/Number.js.map +1 -1
  85. package/dist/Optic.d.ts.map +1 -1
  86. package/dist/Optic.js.map +1 -1
  87. package/dist/Path.d.ts.map +1 -1
  88. package/dist/Path.js +8 -1
  89. package/dist/Path.js.map +1 -1
  90. package/dist/PubSub.d.ts.map +1 -1
  91. package/dist/PubSub.js +12 -7
  92. package/dist/PubSub.js.map +1 -1
  93. package/dist/Queue.d.ts +4 -1
  94. package/dist/Queue.d.ts.map +1 -1
  95. package/dist/Queue.js +4 -1
  96. package/dist/Queue.js.map +1 -1
  97. package/dist/Random.d.ts.map +1 -1
  98. package/dist/Random.js +1 -1
  99. package/dist/Random.js.map +1 -1
  100. package/dist/RcMap.d.ts +12 -7
  101. package/dist/RcMap.d.ts.map +1 -1
  102. package/dist/RcMap.js +9 -6
  103. package/dist/RcMap.js.map +1 -1
  104. package/dist/Record.d.ts +51 -0
  105. package/dist/Record.d.ts.map +1 -1
  106. package/dist/Record.js +17 -0
  107. package/dist/Record.js.map +1 -1
  108. package/dist/Ref.d.ts.map +1 -1
  109. package/dist/Ref.js.map +1 -1
  110. package/dist/References.d.ts +5 -4
  111. package/dist/References.d.ts.map +1 -1
  112. package/dist/References.js +5 -4
  113. package/dist/References.js.map +1 -1
  114. package/dist/RequestResolver.d.ts +31 -1
  115. package/dist/RequestResolver.d.ts.map +1 -1
  116. package/dist/RequestResolver.js +39 -4
  117. package/dist/RequestResolver.js.map +1 -1
  118. package/dist/Resource.js +1 -1
  119. package/dist/Resource.js.map +1 -1
  120. package/dist/Runtime.d.ts +3 -3
  121. package/dist/Runtime.d.ts.map +1 -1
  122. package/dist/Runtime.js +18 -15
  123. package/dist/Runtime.js.map +1 -1
  124. package/dist/Schedule.d.ts.map +1 -1
  125. package/dist/Schedule.js.map +1 -1
  126. package/dist/Schema.d.ts +384 -332
  127. package/dist/Schema.d.ts.map +1 -1
  128. package/dist/Schema.js +333 -19
  129. package/dist/Schema.js.map +1 -1
  130. package/dist/SchemaAST.d.ts +5 -5
  131. package/dist/SchemaAST.d.ts.map +1 -1
  132. package/dist/SchemaAST.js +24 -8
  133. package/dist/SchemaAST.js.map +1 -1
  134. package/dist/SchemaGetter.d.ts +8 -3
  135. package/dist/SchemaGetter.d.ts.map +1 -1
  136. package/dist/SchemaGetter.js +15 -5
  137. package/dist/SchemaGetter.js.map +1 -1
  138. package/dist/SchemaIssue.d.ts +4 -4
  139. package/dist/SchemaIssue.d.ts.map +1 -1
  140. package/dist/SchemaIssue.js +29 -51
  141. package/dist/SchemaIssue.js.map +1 -1
  142. package/dist/SchemaRepresentation.d.ts +56 -1
  143. package/dist/SchemaRepresentation.d.ts.map +1 -1
  144. package/dist/SchemaRepresentation.js +18 -0
  145. package/dist/SchemaRepresentation.js.map +1 -1
  146. package/dist/SchemaTransformation.d.ts +1 -1
  147. package/dist/SchemaTransformation.js +1 -1
  148. package/dist/Scope.d.ts +12 -2
  149. package/dist/Scope.d.ts.map +1 -1
  150. package/dist/Scope.js +5 -0
  151. package/dist/Scope.js.map +1 -1
  152. package/dist/ScopedCache.d.ts +10 -7
  153. package/dist/ScopedCache.d.ts.map +1 -1
  154. package/dist/ScopedCache.js +9 -5
  155. package/dist/ScopedCache.js.map +1 -1
  156. package/dist/SemVer.d.ts +1196 -0
  157. package/dist/SemVer.d.ts.map +1 -0
  158. package/dist/SemVer.js +756 -0
  159. package/dist/SemVer.js.map +1 -0
  160. package/dist/SemVerRange.d.ts +559 -0
  161. package/dist/SemVerRange.d.ts.map +1 -0
  162. package/dist/SemVerRange.js +551 -0
  163. package/dist/SemVerRange.js.map +1 -0
  164. package/dist/Sink.d.ts.map +1 -1
  165. package/dist/Sink.js +6 -2
  166. package/dist/Sink.js.map +1 -1
  167. package/dist/Stream.d.ts +235 -8
  168. package/dist/Stream.d.ts.map +1 -1
  169. package/dist/Stream.js +145 -60
  170. package/dist/Stream.js.map +1 -1
  171. package/dist/String.d.ts +4 -2
  172. package/dist/String.d.ts.map +1 -1
  173. package/dist/String.js +8 -6
  174. package/dist/String.js.map +1 -1
  175. package/dist/TextDiff.d.ts +399 -0
  176. package/dist/TextDiff.d.ts.map +1 -0
  177. package/dist/TextDiff.js +634 -0
  178. package/dist/TextDiff.js.map +1 -0
  179. package/dist/TxHashMap.d.ts.map +1 -1
  180. package/dist/TxHashMap.js.map +1 -1
  181. package/dist/TxHashSet.d.ts.map +1 -1
  182. package/dist/TxHashSet.js.map +1 -1
  183. package/dist/ai/AiError.d.ts +68 -4
  184. package/dist/ai/AiError.d.ts.map +1 -1
  185. package/dist/ai/AiError.js +50 -2
  186. package/dist/ai/AiError.js.map +1 -1
  187. package/dist/ai/Chat.d.ts +1 -2
  188. package/dist/ai/Chat.d.ts.map +1 -1
  189. package/dist/ai/Chat.js +6 -3
  190. package/dist/ai/Chat.js.map +1 -1
  191. package/dist/ai/Decision.d.ts +46 -1
  192. package/dist/ai/Decision.d.ts.map +1 -1
  193. package/dist/ai/Decision.js.map +1 -1
  194. package/dist/ai/DecisionModel.d.ts +129 -11
  195. package/dist/ai/DecisionModel.d.ts.map +1 -1
  196. package/dist/ai/DecisionModel.js +182 -94
  197. package/dist/ai/DecisionModel.js.map +1 -1
  198. package/dist/ai/EmbeddingModel.d.ts +10 -0
  199. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  200. package/dist/ai/EmbeddingModel.js +21 -7
  201. package/dist/ai/EmbeddingModel.js.map +1 -1
  202. package/dist/ai/McpClient.d.ts +289 -0
  203. package/dist/ai/McpClient.d.ts.map +1 -0
  204. package/dist/ai/McpClient.js +819 -0
  205. package/dist/ai/McpClient.js.map +1 -0
  206. package/dist/ai/McpClientError.d.ts +254 -0
  207. package/dist/ai/McpClientError.d.ts.map +1 -0
  208. package/dist/ai/McpClientError.js +260 -0
  209. package/dist/ai/McpClientError.js.map +1 -0
  210. package/dist/ai/McpProtocol.d.ts +2 -2
  211. package/dist/ai/McpProtocol.d.ts.map +1 -1
  212. package/dist/ai/McpSchema.d.ts +368 -235
  213. package/dist/ai/McpSchema.d.ts.map +1 -1
  214. package/dist/ai/McpSchema.js +94 -24
  215. package/dist/ai/McpSchema.js.map +1 -1
  216. package/dist/ai/McpServer.d.ts.map +1 -1
  217. package/dist/ai/McpServer.js +25 -22
  218. package/dist/ai/McpServer.js.map +1 -1
  219. package/dist/ai/Prompt.d.ts +22 -20
  220. package/dist/ai/Prompt.d.ts.map +1 -1
  221. package/dist/ai/Prompt.js +23 -1
  222. package/dist/ai/Prompt.js.map +1 -1
  223. package/dist/ai/Response.d.ts +147 -3
  224. package/dist/ai/Response.d.ts.map +1 -1
  225. package/dist/ai/Response.js +35 -37
  226. package/dist/ai/Response.js.map +1 -1
  227. package/dist/ai/Tool.d.ts +12 -4
  228. package/dist/ai/Tool.d.ts.map +1 -1
  229. package/dist/ai/Tool.js.map +1 -1
  230. package/dist/ai/Toolkit.d.ts +48 -1
  231. package/dist/ai/Toolkit.d.ts.map +1 -1
  232. package/dist/ai/Toolkit.js +65 -12
  233. package/dist/ai/Toolkit.js.map +1 -1
  234. package/dist/ai/index.d.ts +10 -0
  235. package/dist/ai/index.d.ts.map +1 -1
  236. package/dist/ai/index.js +10 -0
  237. package/dist/ai/index.js.map +1 -1
  238. package/dist/ai/internal/mcpCore.js.map +1 -1
  239. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  240. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  241. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  242. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  243. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  244. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  245. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  246. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  247. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  248. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  249. package/dist/ai/internal/mcpProtocol.js +16 -2
  250. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  251. package/dist/ai/internal/mcpRuntime.js +3 -4
  252. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  253. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  254. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  255. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  256. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  257. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  258. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  259. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  260. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  261. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  262. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  263. package/dist/cli/CliError.d.ts +42 -2
  264. package/dist/cli/CliError.d.ts.map +1 -1
  265. package/dist/cli/CliError.js +44 -5
  266. package/dist/cli/CliError.js.map +1 -1
  267. package/dist/cli/Command.d.ts +286 -2
  268. package/dist/cli/Command.d.ts.map +1 -1
  269. package/dist/cli/Command.js +107 -6
  270. package/dist/cli/Command.js.map +1 -1
  271. package/dist/cli/Completions.d.ts +5 -0
  272. package/dist/cli/Completions.d.ts.map +1 -1
  273. package/dist/cli/Completions.js.map +1 -1
  274. package/dist/cli/Flag.d.ts +115 -0
  275. package/dist/cli/Flag.d.ts.map +1 -1
  276. package/dist/cli/Flag.js +56 -0
  277. package/dist/cli/Flag.js.map +1 -1
  278. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  279. package/dist/cli/GlobalFlag.js +3 -3
  280. package/dist/cli/GlobalFlag.js.map +1 -1
  281. package/dist/cli/Param.d.ts +107 -0
  282. package/dist/cli/Param.d.ts.map +1 -1
  283. package/dist/cli/Param.js +56 -0
  284. package/dist/cli/Param.js.map +1 -1
  285. package/dist/cli/TerminalCapabilities.d.ts +84 -0
  286. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  287. package/dist/cli/TerminalCapabilities.js +122 -0
  288. package/dist/cli/TerminalCapabilities.js.map +1 -0
  289. package/dist/cli/index.d.ts +5 -0
  290. package/dist/cli/index.d.ts.map +1 -1
  291. package/dist/cli/index.js +5 -0
  292. package/dist/cli/index.js.map +1 -1
  293. package/dist/cli/internal/command.d.ts +2 -1
  294. package/dist/cli/internal/command.d.ts.map +1 -1
  295. package/dist/cli/internal/command.js +5 -2
  296. package/dist/cli/internal/command.js.map +1 -1
  297. package/dist/cli/internal/completions/bash.js +4 -3
  298. package/dist/cli/internal/completions/bash.js.map +1 -1
  299. package/dist/cli/internal/completions/descriptor.js +9 -1
  300. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  301. package/dist/cli/internal/completions/fish.js +10 -8
  302. package/dist/cli/internal/completions/fish.js.map +1 -1
  303. package/dist/cli/internal/completions/powershell.js +18 -9
  304. package/dist/cli/internal/completions/powershell.js.map +1 -1
  305. package/dist/cli/internal/completions/zsh.js +8 -5
  306. package/dist/cli/internal/completions/zsh.js.map +1 -1
  307. package/dist/cli/internal/formatter.d.ts +2 -0
  308. package/dist/cli/internal/formatter.d.ts.map +1 -0
  309. package/dist/cli/internal/formatter.js +15 -0
  310. package/dist/cli/internal/formatter.js.map +1 -0
  311. package/dist/cli/internal/lexer.js +24 -10
  312. package/dist/cli/internal/lexer.js.map +1 -1
  313. package/dist/cli/internal/parser.js +24 -12
  314. package/dist/cli/internal/parser.js.map +1 -1
  315. package/dist/cluster/ClusterCron.d.ts +29 -1
  316. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  317. package/dist/cluster/ClusterCron.js +64 -32
  318. package/dist/cluster/ClusterCron.js.map +1 -1
  319. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  320. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  321. package/dist/cluster/ClusterMetrics.js +151 -7
  322. package/dist/cluster/ClusterMetrics.js.map +1 -1
  323. package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
  324. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  325. package/dist/cluster/ClusterWorkflowEngine.js +37 -11
  326. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  327. package/dist/cluster/Entity.d.ts +2 -0
  328. package/dist/cluster/Entity.d.ts.map +1 -1
  329. package/dist/cluster/Entity.js.map +1 -1
  330. package/dist/cluster/MessageStorage.d.ts +21 -0
  331. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  332. package/dist/cluster/MessageStorage.js.map +1 -1
  333. package/dist/cluster/Runners.d.ts.map +1 -1
  334. package/dist/cluster/Runners.js +54 -15
  335. package/dist/cluster/Runners.js.map +1 -1
  336. package/dist/cluster/Sharding.d.ts +1 -0
  337. package/dist/cluster/Sharding.d.ts.map +1 -1
  338. package/dist/cluster/Sharding.js +95 -32
  339. package/dist/cluster/Sharding.js.map +1 -1
  340. package/dist/cluster/ShardingConfig.d.ts +20 -0
  341. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  342. package/dist/cluster/ShardingConfig.js +4 -0
  343. package/dist/cluster/ShardingConfig.js.map +1 -1
  344. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  345. package/dist/cluster/SqlMessageStorage.js +40 -50
  346. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  347. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  348. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  349. package/dist/cluster/SqlRunnerStorage.js +10 -4
  350. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  351. package/dist/cluster/internal/entityManager.js +65 -8
  352. package/dist/cluster/internal/entityManager.js.map +1 -1
  353. package/dist/devtools/DevTools.d.ts +3 -2
  354. package/dist/devtools/DevTools.d.ts.map +1 -1
  355. package/dist/devtools/DevTools.js +3 -2
  356. package/dist/devtools/DevTools.js.map +1 -1
  357. package/dist/devtools/DevToolsClient.d.ts +11 -0
  358. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  359. package/dist/devtools/DevToolsClient.js +31 -4
  360. package/dist/devtools/DevToolsClient.js.map +1 -1
  361. package/dist/encoding/Base64Url.d.ts +29 -0
  362. package/dist/encoding/Base64Url.d.ts.map +1 -1
  363. package/dist/encoding/Base64Url.js +29 -0
  364. package/dist/encoding/Base64Url.js.map +1 -1
  365. package/dist/encoding/Ini.d.ts.map +1 -1
  366. package/dist/encoding/Ini.js +3 -0
  367. package/dist/encoding/Ini.js.map +1 -1
  368. package/dist/encoding/JsonArray.d.ts +270 -0
  369. package/dist/encoding/JsonArray.d.ts.map +1 -0
  370. package/dist/encoding/JsonArray.js +691 -0
  371. package/dist/encoding/JsonArray.js.map +1 -0
  372. package/dist/encoding/Ndjson.d.ts +43 -4
  373. package/dist/encoding/Ndjson.d.ts.map +1 -1
  374. package/dist/encoding/Ndjson.js +169 -18
  375. package/dist/encoding/Ndjson.js.map +1 -1
  376. package/dist/encoding/SchemaBinary.d.ts +9 -1
  377. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  378. package/dist/encoding/SchemaBinary.js +12 -19
  379. package/dist/encoding/SchemaBinary.js.map +1 -1
  380. package/dist/encoding/Tar.d.ts +309 -0
  381. package/dist/encoding/Tar.d.ts.map +1 -0
  382. package/dist/encoding/Tar.js +1182 -0
  383. package/dist/encoding/Tar.js.map +1 -0
  384. package/dist/encoding/Toml.js +3 -3
  385. package/dist/encoding/Toml.js.map +1 -1
  386. package/dist/encoding/Xml.d.ts +464 -0
  387. package/dist/encoding/Xml.d.ts.map +1 -0
  388. package/dist/encoding/Xml.js +1619 -0
  389. package/dist/encoding/Xml.js.map +1 -0
  390. package/dist/encoding/Yaml.d.ts +6 -2
  391. package/dist/encoding/Yaml.d.ts.map +1 -1
  392. package/dist/encoding/Yaml.js +97 -34
  393. package/dist/encoding/Yaml.js.map +1 -1
  394. package/dist/encoding/Zip.d.ts +413 -0
  395. package/dist/encoding/Zip.d.ts.map +1 -0
  396. package/dist/encoding/Zip.js +1255 -0
  397. package/dist/encoding/Zip.js.map +1 -0
  398. package/dist/encoding/index.d.ts +20 -0
  399. package/dist/encoding/index.d.ts.map +1 -1
  400. package/dist/encoding/index.js +20 -0
  401. package/dist/encoding/index.js.map +1 -1
  402. package/dist/eventlog/EventJournal.d.ts +90 -5
  403. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  404. package/dist/eventlog/EventJournal.js +488 -228
  405. package/dist/eventlog/EventJournal.js.map +1 -1
  406. package/dist/eventlog/EventLog.d.ts +180 -12
  407. package/dist/eventlog/EventLog.d.ts.map +1 -1
  408. package/dist/eventlog/EventLog.js +394 -146
  409. package/dist/eventlog/EventLog.js.map +1 -1
  410. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  411. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  412. package/dist/eventlog/EventLogEncryption.js +97 -38
  413. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  414. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  415. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  416. package/dist/eventlog/EventLogMessage.js +45 -11
  417. package/dist/eventlog/EventLogMessage.js.map +1 -1
  418. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  419. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  420. package/dist/eventlog/EventLogRemote.js +51 -14
  421. package/dist/eventlog/EventLogRemote.js.map +1 -1
  422. package/dist/eventlog/EventLogServer.d.ts +46 -3
  423. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  424. package/dist/eventlog/EventLogServer.js +119 -19
  425. package/dist/eventlog/EventLogServer.js.map +1 -1
  426. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  427. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  428. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  429. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  430. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  431. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  432. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  433. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  434. package/dist/eventlog/EventRow.d.ts +288 -0
  435. package/dist/eventlog/EventRow.d.ts.map +1 -0
  436. package/dist/eventlog/EventRow.js +435 -0
  437. package/dist/eventlog/EventRow.js.map +1 -0
  438. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  439. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventJournal.js +387 -159
  441. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  443. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  444. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  445. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  446. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  447. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  448. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  449. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  450. package/dist/eventlog/index.d.ts +5 -0
  451. package/dist/eventlog/index.d.ts.map +1 -1
  452. package/dist/eventlog/index.js +5 -0
  453. package/dist/eventlog/index.js.map +1 -1
  454. package/dist/eventlog/internal/conflicts.d.ts +47 -0
  455. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  456. package/dist/eventlog/internal/conflicts.js +92 -0
  457. package/dist/eventlog/internal/conflicts.js.map +1 -0
  458. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  459. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  460. package/dist/graphql/GraphQLClientError.js +4 -18
  461. package/dist/graphql/GraphQLClientError.js.map +1 -1
  462. package/dist/graphql/GraphQLProtocol.d.ts +12 -9
  463. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  464. package/dist/graphql/GraphQLProtocol.js +4 -3
  465. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  466. package/dist/graphql/GraphQLResolver.d.ts +2 -0
  467. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  468. package/dist/graphql/GraphQLResolver.js +74 -32
  469. package/dist/graphql/GraphQLResolver.js.map +1 -1
  470. package/dist/http/FetchHttpClient.d.ts +8 -1
  471. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  472. package/dist/http/FetchHttpClient.js +51 -4
  473. package/dist/http/FetchHttpClient.js.map +1 -1
  474. package/dist/http/FindMyWay/internal/router.js +10 -0
  475. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  476. package/dist/http/Headers.d.ts +227 -0
  477. package/dist/http/Headers.d.ts.map +1 -1
  478. package/dist/http/Headers.js +261 -0
  479. package/dist/http/Headers.js.map +1 -1
  480. package/dist/http/HttpClient.d.ts +93 -0
  481. package/dist/http/HttpClient.d.ts.map +1 -1
  482. package/dist/http/HttpClient.js +55 -16
  483. package/dist/http/HttpClient.js.map +1 -1
  484. package/dist/http/HttpClientRequest.d.ts +127 -3
  485. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  486. package/dist/http/HttpClientRequest.js +44 -2
  487. package/dist/http/HttpClientRequest.js.map +1 -1
  488. package/dist/http/HttpClientResponse.d.ts +53 -0
  489. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  490. package/dist/http/HttpClientResponse.js +47 -0
  491. package/dist/http/HttpClientResponse.js.map +1 -1
  492. package/dist/http/HttpEffect.d.ts +6 -2
  493. package/dist/http/HttpEffect.d.ts.map +1 -1
  494. package/dist/http/HttpEffect.js +21 -17
  495. package/dist/http/HttpEffect.js.map +1 -1
  496. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  497. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  498. package/dist/http/HttpIncomingMessage.js +3 -23
  499. package/dist/http/HttpIncomingMessage.js.map +1 -1
  500. package/dist/http/HttpMiddleware.d.ts +119 -2
  501. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  502. package/dist/http/HttpMiddleware.js +159 -13
  503. package/dist/http/HttpMiddleware.js.map +1 -1
  504. package/dist/http/HttpRouter.d.ts.map +1 -1
  505. package/dist/http/HttpRouter.js +7 -2
  506. package/dist/http/HttpRouter.js.map +1 -1
  507. package/dist/http/HttpServerError.d.ts +5 -2
  508. package/dist/http/HttpServerError.d.ts.map +1 -1
  509. package/dist/http/HttpServerError.js +5 -3
  510. package/dist/http/HttpServerError.js.map +1 -1
  511. package/dist/http/HttpServerRequest.d.ts +25 -5
  512. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  513. package/dist/http/HttpServerRequest.js +36 -10
  514. package/dist/http/HttpServerRequest.js.map +1 -1
  515. package/dist/http/HttpServerResponse.d.ts +17 -8
  516. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  517. package/dist/http/HttpServerResponse.js +37 -21
  518. package/dist/http/HttpServerResponse.js.map +1 -1
  519. package/dist/http/HttpStaticServer.d.ts +0 -12
  520. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  521. package/dist/http/HttpStaticServer.js +21 -7
  522. package/dist/http/HttpStaticServer.js.map +1 -1
  523. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  524. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  525. package/dist/http/MultipartParser/internal/contentType.js +87 -5
  526. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  527. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  528. package/dist/http/MultipartParser/internal/headers.js +4 -12
  529. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  530. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  531. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  532. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  533. package/dist/http/Url.d.ts.map +1 -1
  534. package/dist/http/Url.js +6 -1
  535. package/dist/http/Url.js.map +1 -1
  536. package/dist/http/internal/decompression.js +17 -11
  537. package/dist/http/internal/decompression.js.map +1 -1
  538. package/dist/http/internal/lazyStream.d.ts +2 -0
  539. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  540. package/dist/http/internal/lazyStream.js +18 -0
  541. package/dist/http/internal/lazyStream.js.map +1 -0
  542. package/dist/http/internal/requestState.d.ts +2 -0
  543. package/dist/http/internal/requestState.d.ts.map +1 -0
  544. package/dist/http/internal/requestState.js +28 -0
  545. package/dist/http/internal/requestState.js.map +1 -0
  546. package/dist/http/internal/webResponse.d.ts +2 -0
  547. package/dist/http/internal/webResponse.d.ts.map +1 -0
  548. package/dist/http/internal/webResponse.js +12 -0
  549. package/dist/http/internal/webResponse.js.map +1 -0
  550. package/dist/http-api/HttpApi.js +1 -1
  551. package/dist/http-api/HttpApi.js.map +1 -1
  552. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  553. package/dist/http-api/HttpApiBuilder.js +121 -18
  554. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  555. package/dist/http-api/HttpApiClient.d.ts +29 -4
  556. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  557. package/dist/http-api/HttpApiClient.js +83 -23
  558. package/dist/http-api/HttpApiClient.js.map +1 -1
  559. package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
  560. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiEndpoint.js +49 -5
  562. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  563. package/dist/http-api/HttpApiError.d.ts +58 -0
  564. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  565. package/dist/http-api/HttpApiError.js +38 -12
  566. package/dist/http-api/HttpApiError.js.map +1 -1
  567. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  568. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  569. package/dist/http-api/HttpApiScalar.js +6 -3
  570. package/dist/http-api/HttpApiScalar.js.map +1 -1
  571. package/dist/http-api/HttpApiSchema.d.ts +191 -9
  572. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  573. package/dist/http-api/HttpApiSchema.js +137 -4
  574. package/dist/http-api/HttpApiSchema.js.map +1 -1
  575. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  576. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  577. package/dist/http-api/HttpApiSwagger.js +14 -4
  578. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  579. package/dist/http-api/HttpApiTest.d.ts +13 -2
  580. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  581. package/dist/http-api/HttpApiTest.js +30 -9
  582. package/dist/http-api/HttpApiTest.js.map +1 -1
  583. package/dist/http-api/OpenApi.d.ts +17 -3
  584. package/dist/http-api/OpenApi.d.ts.map +1 -1
  585. package/dist/http-api/OpenApi.js +57 -32
  586. package/dist/http-api/OpenApi.js.map +1 -1
  587. package/dist/http-api/internal/path.js +35 -10
  588. package/dist/http-api/internal/path.js.map +1 -1
  589. package/dist/index.d.ts +20 -0
  590. package/dist/index.d.ts.map +1 -1
  591. package/dist/index.js +20 -0
  592. package/dist/index.js.map +1 -1
  593. package/dist/internal/core.js +1 -1
  594. package/dist/internal/core.js.map +1 -1
  595. package/dist/internal/dateTime.js +19 -7
  596. package/dist/internal/dateTime.js.map +1 -1
  597. package/dist/internal/effect.js +85 -74
  598. package/dist/internal/effect.js.map +1 -1
  599. package/dist/internal/hashMap.js +2 -2
  600. package/dist/internal/hashMap.js.map +1 -1
  601. package/dist/internal/hydration.d.ts +2 -0
  602. package/dist/internal/hydration.d.ts.map +1 -0
  603. package/dist/internal/hydration.js +15 -0
  604. package/dist/internal/hydration.js.map +1 -0
  605. package/dist/internal/inflate.d.ts +2 -0
  606. package/dist/internal/inflate.d.ts.map +1 -0
  607. package/dist/internal/inflate.js +680 -0
  608. package/dist/internal/inflate.js.map +1 -0
  609. package/dist/internal/record.js +6 -0
  610. package/dist/internal/record.js.map +1 -1
  611. package/dist/internal/request.js +20 -7
  612. package/dist/internal/request.js.map +1 -1
  613. package/dist/internal/schedule.js +17 -22
  614. package/dist/internal/schedule.js.map +1 -1
  615. package/dist/internal/schema/fromJsonSchemaDocument.js +136 -126
  616. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  617. package/dist/internal/schema/interpreter.js +51 -36
  618. package/dist/internal/schema/interpreter.js.map +1 -1
  619. package/dist/internal/schema/standardSchema.js +34 -33
  620. package/dist/internal/schema/standardSchema.js.map +1 -1
  621. package/dist/internal/schema/toCodeDocument.js +7 -2
  622. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  623. package/dist/internal/schema/toCodec.js +86 -1
  624. package/dist/internal/schema/toCodec.js.map +1 -1
  625. package/dist/internal/schema/toFormatter.js +5 -5
  626. package/dist/internal/schema/toFormatter.js.map +1 -1
  627. package/dist/internal/schema/toJsonSchemaDocument.js +60 -38
  628. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  629. package/dist/internal/trie.js +1 -3
  630. package/dist/internal/trie.js.map +1 -1
  631. package/dist/internal/uuid.js +7 -3
  632. package/dist/internal/uuid.js.map +1 -1
  633. package/dist/internal/version.js +1 -1
  634. package/dist/net/NetAddress.d.ts.map +1 -1
  635. package/dist/net/NetAddress.js +2 -8
  636. package/dist/net/NetAddress.js.map +1 -1
  637. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  638. package/dist/observability/OtlpExporter.js +5 -12
  639. package/dist/observability/OtlpExporter.js.map +1 -1
  640. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  641. package/dist/observability/OtlpMetrics.js +5 -3
  642. package/dist/observability/OtlpMetrics.js.map +1 -1
  643. package/dist/observability/OtlpResource.d.ts +3 -1
  644. package/dist/observability/OtlpResource.d.ts.map +1 -1
  645. package/dist/observability/OtlpResource.js +11 -4
  646. package/dist/observability/OtlpResource.js.map +1 -1
  647. package/dist/observability/OtlpSerialization.d.ts +5 -0
  648. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  649. package/dist/observability/OtlpSerialization.js +14 -3
  650. package/dist/observability/OtlpSerialization.js.map +1 -1
  651. package/dist/observability/internal/protobuf.d.ts +0 -9
  652. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  653. package/dist/observability/internal/protobuf.js +2 -10
  654. package/dist/observability/internal/protobuf.js.map +1 -1
  655. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  656. package/dist/persistence/PersistedCache.js +1 -1
  657. package/dist/persistence/PersistedCache.js.map +1 -1
  658. package/dist/persistence/PersistedQueue.d.ts +6 -2
  659. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  660. package/dist/persistence/PersistedQueue.js +162 -84
  661. package/dist/persistence/PersistedQueue.js.map +1 -1
  662. package/dist/persistence/Persistence.d.ts +28 -0
  663. package/dist/persistence/Persistence.d.ts.map +1 -1
  664. package/dist/persistence/Persistence.js +36 -8
  665. package/dist/persistence/Persistence.js.map +1 -1
  666. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  667. package/dist/persistence/RateLimiter.js +8 -12
  668. package/dist/persistence/RateLimiter.js.map +1 -1
  669. package/dist/persistence/UserDirectories.d.ts +129 -0
  670. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  671. package/dist/persistence/UserDirectories.js +178 -0
  672. package/dist/persistence/UserDirectories.js.map +1 -0
  673. package/dist/persistence/index.d.ts +5 -0
  674. package/dist/persistence/index.d.ts.map +1 -1
  675. package/dist/persistence/index.js +5 -0
  676. package/dist/persistence/index.js.map +1 -1
  677. package/dist/process/ChildProcess.d.ts +2 -1
  678. package/dist/process/ChildProcess.d.ts.map +1 -1
  679. package/dist/process/ChildProcess.js.map +1 -1
  680. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  681. package/dist/reactivity/AsyncResult.js +1 -1
  682. package/dist/reactivity/AsyncResult.js.map +1 -1
  683. package/dist/reactivity/Atom.d.ts +69 -30
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +40 -15
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomHttpApi.js +1 -1
  690. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  691. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  692. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js +44 -9
  694. package/dist/reactivity/AtomRegistry.js.map +1 -1
  695. package/dist/reactivity/AtomRpc.d.ts +3 -3
  696. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  697. package/dist/reactivity/AtomRpc.js +1 -1
  698. package/dist/reactivity/AtomRpc.js.map +1 -1
  699. package/dist/reactivity/Hydration.d.ts.map +1 -1
  700. package/dist/reactivity/Hydration.js +46 -12
  701. package/dist/reactivity/Hydration.js.map +1 -1
  702. package/dist/reactivity/Reactivity.d.ts +71 -7
  703. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  704. package/dist/reactivity/Reactivity.js +21 -12
  705. package/dist/reactivity/Reactivity.js.map +1 -1
  706. package/dist/rpc/Rpc.d.ts +18 -0
  707. package/dist/rpc/Rpc.d.ts.map +1 -1
  708. package/dist/rpc/Rpc.js +20 -0
  709. package/dist/rpc/Rpc.js.map +1 -1
  710. package/dist/rpc/RpcClient.d.ts +26 -2
  711. package/dist/rpc/RpcClient.d.ts.map +1 -1
  712. package/dist/rpc/RpcClient.js +196 -60
  713. package/dist/rpc/RpcClient.js.map +1 -1
  714. package/dist/rpc/RpcSerialization.d.ts +15 -0
  715. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  716. package/dist/rpc/RpcSerialization.js +21 -5
  717. package/dist/rpc/RpcSerialization.js.map +1 -1
  718. package/dist/rpc/RpcServer.d.ts.map +1 -1
  719. package/dist/rpc/RpcServer.js +9 -18
  720. package/dist/rpc/RpcServer.js.map +1 -1
  721. package/dist/schema/Model.d.ts +1 -1
  722. package/dist/schema/VariantSchema.d.ts +22 -3
  723. package/dist/schema/VariantSchema.d.ts.map +1 -1
  724. package/dist/schema/VariantSchema.js +32 -18
  725. package/dist/schema/VariantSchema.js.map +1 -1
  726. package/dist/socket/Socket.d.ts +23 -1
  727. package/dist/socket/Socket.d.ts.map +1 -1
  728. package/dist/socket/Socket.js +36 -3
  729. package/dist/socket/Socket.js.map +1 -1
  730. package/dist/sql/Migrator.d.ts.map +1 -1
  731. package/dist/sql/Migrator.js +15 -3
  732. package/dist/sql/Migrator.js.map +1 -1
  733. package/dist/sql/SqlClient.d.ts +143 -5
  734. package/dist/sql/SqlClient.d.ts.map +1 -1
  735. package/dist/sql/SqlClient.js +148 -27
  736. package/dist/sql/SqlClient.js.map +1 -1
  737. package/dist/sql/SqlResolver.d.ts +9 -0
  738. package/dist/sql/SqlResolver.d.ts.map +1 -1
  739. package/dist/sql/SqlResolver.js +9 -0
  740. package/dist/sql/SqlResolver.js.map +1 -1
  741. package/dist/sql/Statement.d.ts +3 -1
  742. package/dist/sql/Statement.d.ts.map +1 -1
  743. package/dist/sql/Statement.js +24 -5
  744. package/dist/sql/Statement.js.map +1 -1
  745. package/dist/testing/TestClock.d.ts.map +1 -1
  746. package/dist/testing/TestClock.js +4 -2
  747. package/dist/testing/TestClock.js.map +1 -1
  748. package/dist/testing/TestSchema.d.ts +7 -1
  749. package/dist/testing/TestSchema.d.ts.map +1 -1
  750. package/dist/testing/TestSchema.js +9 -3
  751. package/dist/testing/TestSchema.js.map +1 -1
  752. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  753. package/dist/workflow/WorkflowEngine.js +18 -4
  754. package/dist/workflow/WorkflowEngine.js.map +1 -1
  755. package/package.json +13 -3
  756. package/src/Array.ts +128 -55
  757. package/src/Bytes.ts +111 -0
  758. package/src/Channel.ts +263 -436
  759. package/src/ChannelSchema.ts +1 -49
  760. package/src/Chunk.ts +55 -61
  761. package/src/Config.ts +12 -86
  762. package/src/ConfigProvider.ts +2 -1
  763. package/src/Cron.ts +6 -3
  764. package/src/Duration.ts +66 -16
  765. package/src/Effect.ts +502 -167
  766. package/src/Equivalence.ts +7 -4
  767. package/src/Exit.ts +24 -9
  768. package/src/FiberHandle.ts +10 -9
  769. package/src/FiberMap.ts +13 -66
  770. package/src/FileSystem.ts +10 -0
  771. package/src/Graph.ts +171 -1263
  772. package/src/HashSet.ts +0 -60
  773. package/src/Iterable.ts +15 -14
  774. package/src/JsonSchema.ts +28 -3
  775. package/src/Layer.ts +2 -2
  776. package/src/ManagedRuntime.ts +72 -6
  777. package/src/Metric.ts +249 -507
  778. package/src/MutableHashMap.ts +4 -473
  779. package/src/Number.ts +2 -2
  780. package/src/Optic.ts +17 -332
  781. package/src/Path.ts +9 -1
  782. package/src/PubSub.ts +12 -7
  783. package/src/Queue.ts +5 -37
  784. package/src/Random.ts +1 -1
  785. package/src/RcMap.ts +14 -8
  786. package/src/Record.ts +51 -0
  787. package/src/Ref.ts +7 -104
  788. package/src/References.ts +5 -4
  789. package/src/RequestResolver.ts +46 -87
  790. package/src/Resource.ts +1 -1
  791. package/src/Runtime.ts +19 -18
  792. package/src/Schedule.ts +2 -94
  793. package/src/Schema.ts +591 -356
  794. package/src/SchemaAST.ts +20 -9
  795. package/src/SchemaGetter.ts +22 -5
  796. package/src/SchemaIssue.ts +44 -53
  797. package/src/SchemaRepresentation.ts +64 -1
  798. package/src/SchemaTransformation.ts +1 -1
  799. package/src/Scope.ts +12 -2
  800. package/src/ScopedCache.ts +17 -142
  801. package/src/SemVer.ts +1528 -0
  802. package/src/SemVerRange.ts +883 -0
  803. package/src/Sink.ts +6 -2
  804. package/src/Stream.ts +334 -1011
  805. package/src/String.ts +8 -8
  806. package/src/TextDiff.ts +766 -0
  807. package/src/TxHashMap.ts +1 -103
  808. package/src/TxHashSet.ts +48 -753
  809. package/src/ai/AiError.ts +66 -4
  810. package/src/ai/Chat.ts +10 -5
  811. package/src/ai/Decision.ts +49 -1
  812. package/src/ai/DecisionModel.ts +264 -108
  813. package/src/ai/EmbeddingModel.ts +25 -13
  814. package/src/ai/McpClient.ts +1211 -0
  815. package/src/ai/McpClientError.ts +329 -0
  816. package/src/ai/McpProtocol.ts +2 -2
  817. package/src/ai/McpSchema.ts +153 -35
  818. package/src/ai/McpServer.ts +217 -220
  819. package/src/ai/Prompt.ts +49 -35
  820. package/src/ai/Response.ts +195 -65
  821. package/src/ai/Tool.ts +12 -4
  822. package/src/ai/Toolkit.ts +78 -10
  823. package/src/ai/index.ts +12 -0
  824. package/src/ai/internal/mcpCore.ts +13 -14
  825. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  826. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  827. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  828. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  829. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  830. package/src/ai/internal/mcpProtocol.ts +22 -2
  831. package/src/ai/internal/mcpRuntime.ts +3 -4
  832. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  833. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  834. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  835. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  836. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  837. package/src/cli/CliError.ts +49 -4
  838. package/src/cli/Command.ts +316 -9
  839. package/src/cli/Completions.ts +5 -0
  840. package/src/cli/Flag.ts +117 -0
  841. package/src/cli/GlobalFlag.ts +3 -3
  842. package/src/cli/Param.ts +122 -0
  843. package/src/cli/TerminalCapabilities.ts +156 -0
  844. package/src/cli/index.ts +6 -0
  845. package/src/cli/internal/command.ts +8 -3
  846. package/src/cli/internal/completions/bash.ts +4 -3
  847. package/src/cli/internal/completions/descriptor.ts +11 -1
  848. package/src/cli/internal/completions/fish.ts +10 -8
  849. package/src/cli/internal/completions/powershell.ts +23 -14
  850. package/src/cli/internal/completions/zsh.ts +8 -5
  851. package/src/cli/internal/formatter.ts +18 -0
  852. package/src/cli/internal/lexer.ts +12 -5
  853. package/src/cli/internal/parser.ts +31 -11
  854. package/src/cluster/ClusterCron.ts +94 -35
  855. package/src/cluster/ClusterMetrics.ts +149 -7
  856. package/src/cluster/ClusterWorkflowEngine.ts +84 -41
  857. package/src/cluster/Entity.ts +4 -0
  858. package/src/cluster/MessageStorage.ts +7 -0
  859. package/src/cluster/Runners.ts +76 -25
  860. package/src/cluster/Sharding.ts +118 -38
  861. package/src/cluster/ShardingConfig.ts +15 -0
  862. package/src/cluster/SqlMessageStorage.ts +58 -55
  863. package/src/cluster/SqlRunnerStorage.ts +10 -4
  864. package/src/cluster/internal/entityManager.ts +80 -10
  865. package/src/devtools/DevTools.ts +3 -2
  866. package/src/devtools/DevToolsClient.ts +27 -10
  867. package/src/encoding/Base64Url.ts +31 -0
  868. package/src/encoding/Ini.ts +3 -0
  869. package/src/encoding/JsonArray.ts +849 -0
  870. package/src/encoding/Ndjson.ts +211 -20
  871. package/src/encoding/SchemaBinary.ts +14 -48
  872. package/src/encoding/Tar.ts +1417 -0
  873. package/src/encoding/Toml.ts +3 -3
  874. package/src/encoding/Xml.ts +2037 -0
  875. package/src/encoding/Yaml.ts +108 -36
  876. package/src/encoding/Zip.ts +1558 -0
  877. package/src/encoding/index.ts +24 -0
  878. package/src/eventlog/EventJournal.ts +611 -227
  879. package/src/eventlog/EventLog.ts +496 -196
  880. package/src/eventlog/EventLogEncryption.ts +128 -43
  881. package/src/eventlog/EventLogMessage.ts +62 -11
  882. package/src/eventlog/EventLogRemote.ts +77 -21
  883. package/src/eventlog/EventLogServer.ts +162 -20
  884. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  885. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  886. package/src/eventlog/EventRow.ts +706 -0
  887. package/src/eventlog/SqlEventJournal.ts +453 -173
  888. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  889. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  890. package/src/eventlog/index.ts +6 -0
  891. package/src/eventlog/internal/conflicts.ts +123 -0
  892. package/src/graphql/GraphQLClientError.ts +5 -12
  893. package/src/graphql/GraphQLProtocol.ts +12 -9
  894. package/src/graphql/GraphQLResolver.ts +90 -239
  895. package/src/http/FetchHttpClient.ts +56 -6
  896. package/src/http/FindMyWay/internal/router.ts +11 -0
  897. package/src/http/Headers.ts +337 -154
  898. package/src/http/HttpClient.ts +126 -135
  899. package/src/http/HttpClientRequest.ts +142 -4
  900. package/src/http/HttpClientResponse.ts +71 -0
  901. package/src/http/HttpEffect.ts +25 -33
  902. package/src/http/HttpIncomingMessage.ts +3 -23
  903. package/src/http/HttpMiddleware.ts +180 -23
  904. package/src/http/HttpRouter.ts +8 -2
  905. package/src/http/HttpServerError.ts +6 -3
  906. package/src/http/HttpServerRequest.ts +71 -12
  907. package/src/http/HttpServerResponse.ts +49 -23
  908. package/src/http/HttpStaticServer.ts +25 -9
  909. package/src/http/MultipartParser/internal/contentType.ts +107 -6
  910. package/src/http/MultipartParser/internal/headers.ts +4 -16
  911. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  912. package/src/http/Url.ts +6 -1
  913. package/src/http/internal/decompression.ts +26 -17
  914. package/src/http/internal/lazyStream.ts +25 -0
  915. package/src/http/internal/requestState.ts +33 -0
  916. package/src/http/internal/webResponse.ts +20 -0
  917. package/src/http-api/HttpApi.ts +1 -1
  918. package/src/http-api/HttpApiBuilder.ts +151 -23
  919. package/src/http-api/HttpApiClient.ts +158 -30
  920. package/src/http-api/HttpApiEndpoint.ts +144 -33
  921. package/src/http-api/HttpApiError.ts +55 -0
  922. package/src/http-api/HttpApiScalar.ts +4 -3
  923. package/src/http-api/HttpApiSchema.ts +275 -13
  924. package/src/http-api/HttpApiSwagger.ts +11 -4
  925. package/src/http-api/HttpApiTest.ts +33 -9
  926. package/src/http-api/OpenApi.ts +84 -42
  927. package/src/http-api/internal/path.ts +40 -12
  928. package/src/index.ts +24 -0
  929. package/src/internal/core.ts +1 -1
  930. package/src/internal/dateTime.ts +20 -7
  931. package/src/internal/effect.ts +120 -84
  932. package/src/internal/hashMap.ts +2 -2
  933. package/src/internal/hydration.ts +15 -0
  934. package/src/internal/inflate.ts +710 -0
  935. package/src/internal/record.ts +6 -0
  936. package/src/internal/request.ts +21 -6
  937. package/src/internal/schedule.ts +20 -39
  938. package/src/internal/schema/fromJsonSchemaDocument.ts +262 -193
  939. package/src/internal/schema/interpreter.ts +58 -45
  940. package/src/internal/schema/standardSchema.ts +32 -30
  941. package/src/internal/schema/toCodeDocument.ts +8 -3
  942. package/src/internal/schema/toCodec.ts +116 -1
  943. package/src/internal/schema/toFormatter.ts +6 -6
  944. package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
  945. package/src/internal/trie.ts +1 -3
  946. package/src/internal/uuid.ts +15 -10
  947. package/src/internal/version.ts +1 -1
  948. package/src/net/NetAddress.ts +2 -9
  949. package/src/observability/OtlpExporter.ts +5 -12
  950. package/src/observability/OtlpMetrics.ts +5 -3
  951. package/src/observability/OtlpResource.ts +16 -6
  952. package/src/observability/OtlpSerialization.ts +17 -3
  953. package/src/observability/internal/protobuf.ts +2 -10
  954. package/src/persistence/PersistedCache.ts +3 -1
  955. package/src/persistence/PersistedQueue.ts +223 -153
  956. package/src/persistence/Persistence.ts +64 -30
  957. package/src/persistence/RateLimiter.ts +18 -21
  958. package/src/persistence/UserDirectories.ts +273 -0
  959. package/src/persistence/index.ts +6 -0
  960. package/src/process/ChildProcess.ts +2 -1
  961. package/src/reactivity/AsyncResult.ts +4 -38
  962. package/src/reactivity/Atom.ts +134 -166
  963. package/src/reactivity/AtomHttpApi.ts +10 -16
  964. package/src/reactivity/AtomRegistry.ts +50 -29
  965. package/src/reactivity/AtomRpc.ts +6 -22
  966. package/src/reactivity/Hydration.ts +53 -12
  967. package/src/reactivity/Reactivity.ts +97 -39
  968. package/src/rpc/Rpc.ts +21 -0
  969. package/src/rpc/RpcClient.ts +279 -103
  970. package/src/rpc/RpcSerialization.ts +21 -5
  971. package/src/rpc/RpcServer.ts +11 -20
  972. package/src/schema/VariantSchema.ts +86 -22
  973. package/src/socket/Socket.ts +45 -20
  974. package/src/sql/Migrator.ts +19 -9
  975. package/src/sql/SqlClient.ts +266 -29
  976. package/src/sql/SqlResolver.ts +9 -0
  977. package/src/sql/Statement.ts +35 -8
  978. package/src/testing/TestClock.ts +4 -1
  979. package/src/testing/TestSchema.ts +9 -3
  980. package/src/workflow/WorkflowEngine.ts +34 -10
  981. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  982. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  983. package/dist/http/internal/preResponseHandler.js +0 -14
  984. package/dist/http/internal/preResponseHandler.js.map +0 -1
  985. package/src/http/internal/preResponseHandler.ts +0 -19
@@ -2,12 +2,15 @@
2
2
  * Defines the provider-neutral service for structured decisions.
3
3
  * `decide` encodes one input as JSON, sends its named decisions in one provider
4
4
  * call, and validates the answers. Failures are reported as `AiError` values.
5
+ * `decideSettled` makes the same call but reports each decision separately, so
6
+ * valid answers survive when others are missing, refused, or invalid.
5
7
  * @stability unstable
6
8
  * @since 4.0.0
7
9
  */
8
10
  import * as Context from "../Context.js";
9
11
  import * as Effect from "../Effect.js";
10
12
  import * as Predicate from "../Predicate.js";
13
+ import * as Result from "../Result.js";
11
14
  import * as Schema from "../Schema.js";
12
15
  import * as AiError from "./AiError.js";
13
16
  /**
@@ -40,12 +43,16 @@ export class DecisionUsage extends /*#__PURE__*/Schema.Class("effect/ai/Decision
40
43
  inputTokens: /*#__PURE__*/Schema.optional(Schema.Finite),
41
44
  outputTokens: /*#__PURE__*/Schema.optional(Schema.Finite)
42
45
  }) {}
43
- const invalidOutput = description => AiError.make({
46
+ const unanswered = (reason, description) => Result.fail({
47
+ _tag: "Unanswered",
48
+ reason,
49
+ description
50
+ });
51
+ const invalid = description => unanswered("Invalid", description);
52
+ const aiError = (method, reason) => AiError.make({
44
53
  module: "DecisionModel",
45
- method: "decide",
46
- reason: new AiError.InvalidOutputError({
47
- description
48
- })
54
+ method,
55
+ reason
49
56
  });
50
57
  const isFiniteNumber = value => Predicate.isNumber(value) && Number.isFinite(value);
51
58
  const isUnitInterval = value => isFiniteNumber(value) && value >= 0 && value <= 1;
@@ -58,120 +65,140 @@ const sumTolerance = 1e-6;
58
65
  const validateDistribution = (key, labels, answer, roundingError) => {
59
66
  const raw = answer.probabilities;
60
67
  if (!Predicate.isObject(raw)) {
61
- return invalidOutput(`Provider returned no probabilities for decision "${key}"`);
68
+ return unanswered("NoDistribution", `Provider returned no probabilities for decision "${key}"`);
62
69
  }
63
70
  const probabilities = Object.create(null);
64
71
  let total = 0;
65
72
  for (const label of labels) {
66
73
  const value = raw[label];
67
74
  if (!isUnitInterval(value)) {
68
- return invalidOutput(`Provider returned no probability for label "${label}" of decision "${key}"`);
75
+ return invalid(`Provider returned no probability for label "${label}" of decision "${key}"`);
69
76
  }
70
77
  probabilities[label] = value;
71
78
  total += value;
72
79
  }
73
80
  const drift = Math.abs(total - 1);
74
81
  if (total === 0 || drift > labels.length * roundingError + sumTolerance) {
75
- return invalidOutput(`Provider returned probabilities that do not sum to 1 for decision "${key}"`);
82
+ return invalid(`Provider returned probabilities that do not sum to 1 for decision "${key}"`);
76
83
  }
77
84
  if (drift > sumTolerance) {
78
85
  for (const label of labels) probabilities[label] /= total;
79
86
  }
80
- return probabilities;
87
+ return Result.succeed(probabilities);
81
88
  };
82
89
  const validateConfidence = (key, answer) => {
83
90
  if (answer.confidence === undefined) {
84
- return undefined;
91
+ return Result.succeed(undefined);
85
92
  }
86
- return isUnitInterval(answer.confidence) ? answer.confidence : invalidOutput(`Provider returned confidence outside [0, 1] for decision "${key}"`);
93
+ return isUnitInterval(answer.confidence) ? Result.succeed(answer.confidence) : invalid(`Provider returned confidence outside [0, 1] for decision "${key}"`);
87
94
  };
88
95
  const validateAnswer = (key, decision, answer, roundingError) => {
89
96
  if (!Predicate.isObject(answer)) {
90
- return invalidOutput(`Provider returned no answer for decision "${key}"`);
97
+ return unanswered("Missing", `Provider returned no answer for decision "${key}"`);
98
+ }
99
+ if (answer._tag === "Refusal") {
100
+ return unanswered("Refused", `Provider refused to answer decision "${key}"`);
91
101
  }
92
102
  if (answer._tag !== decision._tag) {
93
- return invalidOutput(`Provider returned a "${String(answer._tag)}" answer for decision "${key}", expected "${decision._tag}"`);
103
+ return invalid(`Provider returned a "${String(answer._tag)}" answer for decision "${key}", expected "${decision._tag}"`);
94
104
  }
95
105
  switch (decision._tag) {
96
106
  case "Classify":
97
107
  {
98
108
  const labels = Object.keys(decision.criteria);
99
- if (!Predicate.isString(answer.label) || !labels.includes(answer.label)) {
100
- return invalidOutput(`Provider returned an unknown label for decision "${key}"`);
101
- }
102
- const confidence = validateConfidence(key, answer);
103
- if (AiError.isAiError(confidence)) {
104
- return confidence;
109
+ const label = answer.label;
110
+ if (!Predicate.isString(label) || !labels.includes(label)) {
111
+ return invalid(`Provider returned an unknown label for decision "${key}"`);
105
112
  }
106
- const probabilities = validateDistribution(key, labels, answer, roundingError);
107
- if (AiError.isAiError(probabilities)) {
108
- return probabilities;
109
- }
110
- return {
111
- label: answer.label,
112
- probabilities,
113
- ...(confidence === undefined ? undefined : {
114
- confidence
115
- })
116
- };
113
+ return Result.gen(function* () {
114
+ const confidence = yield* validateConfidence(key, answer);
115
+ const probabilities = yield* validateDistribution(key, labels, answer, roundingError);
116
+ return {
117
+ label,
118
+ probabilities,
119
+ ...(confidence === undefined ? undefined : {
120
+ confidence
121
+ })
122
+ };
123
+ });
117
124
  }
118
125
  case "Rate":
119
126
  {
120
127
  const levels = decision.criteria.map(level => level.label);
121
- if (!isFiniteNumber(answer.rating) || answer.rating < 0 || answer.rating > levels.length - 1) {
122
- return invalidOutput(`Provider returned a rating outside [0, ${levels.length - 1}] for decision "${key}"`);
123
- }
124
- const confidence = validateConfidence(key, answer);
125
- if (AiError.isAiError(confidence)) {
126
- return confidence;
127
- }
128
- const probabilities = validateDistribution(key, levels, answer, roundingError);
129
- if (AiError.isAiError(probabilities)) {
130
- return probabilities;
128
+ const rating = answer.rating;
129
+ if (!isFiniteNumber(rating) || rating < 0 || rating > levels.length - 1) {
130
+ return invalid(`Provider returned a rating outside [0, ${levels.length - 1}] for decision "${key}"`);
131
131
  }
132
- let label = levels[0];
133
- for (let i = 1; i < levels.length; i++) {
134
- if (probabilities[levels[i]] > probabilities[label]) {
135
- label = levels[i];
132
+ return Result.gen(function* () {
133
+ const confidence = yield* validateConfidence(key, answer);
134
+ const probabilities = yield* validateDistribution(key, levels, answer, roundingError);
135
+ let label = levels[0];
136
+ for (let i = 1; i < levels.length; i++) {
137
+ if (probabilities[levels[i]] > probabilities[label]) {
138
+ label = levels[i];
139
+ }
136
140
  }
137
- }
138
- return {
139
- rating: answer.rating,
140
- label,
141
- probabilities,
142
- ...(confidence === undefined ? undefined : {
143
- confidence
144
- })
145
- };
141
+ return {
142
+ rating,
143
+ label,
144
+ probabilities,
145
+ ...(confidence === undefined ? undefined : {
146
+ confidence
147
+ })
148
+ };
149
+ });
146
150
  }
147
151
  case "Probability":
148
152
  {
149
153
  if (!isUnitInterval(answer.probability)) {
150
- return invalidOutput(`Provider returned a probability outside [0, 1] for decision "${key}"`);
154
+ return invalid(`Provider returned a probability outside [0, 1] for decision "${key}"`);
151
155
  }
152
- return {
156
+ return Result.succeed({
153
157
  probability: answer.probability
154
- };
158
+ });
155
159
  }
156
160
  }
157
161
  };
158
- const validateAnswers = (decisions, answers, roundingError) => {
159
- const validated = Object.create(null);
162
+ const settleAnswers = (decisions, answers, roundingError) => {
163
+ const outcomes = Object.create(null);
160
164
  for (const key of Object.keys(decisions)) {
161
- const answer = validateAnswer(key, decisions[key], answers[key], roundingError);
162
- if (AiError.isAiError(answer)) {
163
- return Effect.fail(answer);
165
+ outcomes[key] = validateAnswer(key, decisions[key], answers[key], roundingError);
166
+ }
167
+ return outcomes;
168
+ };
169
+ const requireAnswers = outcomes => {
170
+ const answers = Object.create(null);
171
+ const refused = [];
172
+ let firstUnanswered;
173
+ for (const [key, outcome] of Object.entries(outcomes)) {
174
+ if (Result.isSuccess(outcome)) {
175
+ answers[key] = outcome.success;
176
+ } else if (outcome.failure.reason === "Refused") {
177
+ refused.push(`"${key}"`);
178
+ } else {
179
+ firstUnanswered ??= outcome.failure;
164
180
  }
165
- validated[key] = answer;
166
181
  }
167
- return Effect.succeed(validated);
182
+ if (refused.length > 0) {
183
+ return Effect.fail(aiError("decide", new AiError.ContentPolicyError({
184
+ description: `Provider refused to answer decisions ${refused.join(", ")}`
185
+ })));
186
+ }
187
+ if (firstUnanswered !== undefined) {
188
+ return Effect.fail(aiError("decide", new AiError.InvalidOutputError({
189
+ description: firstUnanswered.description
190
+ })));
191
+ }
192
+ return Effect.succeed(answers);
168
193
  };
169
194
  /**
170
195
  * Creates a `DecisionModel` that encodes inputs as JSON and validates provider answers.
171
196
  * Answers must cover every decision and use its labels. Distributions must
172
197
  * sum to 1 within `1e-6`, optional confidence must be in `[0, 1]`, and ratings must be
173
- * in `[0, criteria.length - 1]`. Invalid answers fail with
174
- * `AiError.InvalidOutputError`; encoding failures use `AiError.InvalidUserInputError`.
198
+ * in `[0, criteria.length - 1]`. With `decide`, refused decisions fail with
199
+ * `AiError.ContentPolicyError` and other unanswered decisions fail with
200
+ * `AiError.InvalidOutputError`; `decideSettled` reports them per decision
201
+ * instead. Encoding failures use `AiError.InvalidUserInputError`.
175
202
  *
176
203
  * **Details**
177
204
  *
@@ -193,40 +220,49 @@ const validateAnswers = (decisions, answers, roundingError) => {
193
220
  */
194
221
  export const make = params => Effect.sync(() => {
195
222
  const roundingError = params.probabilityPrecision === undefined ? 0 : 0.5 * 10 ** -params.probabilityPrecision;
223
+ const settle = (method, definition, options) => Schema.encodeEffect(Schema.toCodecJson(definition.input))(options.input).pipe(Effect.mapError(error => aiError(method, new AiError.InvalidUserInputError({
224
+ description: error.message
225
+ }))), Effect.flatMap(state => {
226
+ const images = options.images?.length ? options.images : undefined;
227
+ if (images !== undefined && params.supportsImages !== true) {
228
+ return Effect.fail(aiError(method, new AiError.InvalidUserInputError({
229
+ description: "This decision model does not accept images"
230
+ })));
231
+ }
232
+ return params.decide({
233
+ state,
234
+ decisions: definition.decisions,
235
+ ...(images === undefined ? undefined : {
236
+ images
237
+ })
238
+ });
239
+ }), Effect.map(response => ({
240
+ outcomes: settleAnswers(definition.decisions, response.answers, roundingError),
241
+ usage: new DecisionUsage({
242
+ inputTokens: response.usage.inputTokens,
243
+ outputTokens: response.usage.outputTokens
244
+ }),
245
+ ...(response.id === undefined ? undefined : {
246
+ id: response.id
247
+ }),
248
+ ...(response.modelId === undefined ? undefined : {
249
+ modelId: response.modelId
250
+ }),
251
+ metadata: response.metadata ?? {}
252
+ })));
196
253
  return DecisionModel.of({
197
254
  [TypeId]: TypeId,
198
- decide: (definition, options) => Schema.encodeEffect(Schema.toCodecJson(definition.input))(options.input).pipe(Effect.mapError(error => AiError.make({
199
- module: "DecisionModel",
200
- method: "decide",
201
- reason: new AiError.InvalidUserInputError({
202
- description: error.message
203
- })
204
- })), Effect.flatMap(state => {
205
- const images = options.images?.length ? options.images : undefined;
206
- if (images !== undefined && params.supportsImages !== true) {
207
- return Effect.fail(AiError.make({
208
- module: "DecisionModel",
209
- method: "decide",
210
- reason: new AiError.InvalidUserInputError({
211
- description: "This decision model does not accept images"
212
- })
213
- }));
214
- }
215
- return params.decide({
216
- state,
217
- decisions: definition.decisions,
218
- ...(images === undefined ? undefined : {
219
- images
220
- })
221
- });
222
- }), Effect.flatMap(response => Effect.map(validateAnswers(definition.decisions, response.answers, roundingError), answers => ({
255
+ decide: (definition, options) => settle("decide", definition, options).pipe(Effect.flatMap(({
256
+ outcomes,
257
+ ...response
258
+ }) => Effect.map(requireAnswers(outcomes), answers => ({
223
259
  answers,
224
- usage: new DecisionUsage({
225
- inputTokens: response.usage.inputTokens,
226
- outputTokens: response.usage.outputTokens
227
- })
260
+ ...response
228
261
  }))), effect => Effect.withSpan(effect, "DecisionModel.decide", {
229
262
  captureStackTrace: false
263
+ })),
264
+ decideSettled: (definition, options) => settle("decideSettled", definition, options).pipe(effect => Effect.withSpan(effect, "DecisionModel.decideSettled", {
265
+ captureStackTrace: false
230
266
  }))
231
267
  });
232
268
  });
@@ -236,6 +272,9 @@ export const make = params => Effect.sync(() => {
236
272
  * Explicit `undefined` fields become `null`; absent fields stay absent.
237
273
  * Custom declarations need a JSON codec annotation or encoding fails.
238
274
  * Returned answers and probability dictionaries have null prototypes.
275
+ * Fails with `AiError.ContentPolicyError` if the provider refuses any decision,
276
+ * and otherwise with `AiError.InvalidOutputError` for the first unanswered
277
+ * decision in definition order.
239
278
  *
240
279
  * **Example** (Triaging a ticket)
241
280
  *
@@ -262,10 +301,59 @@ export const make = params => Effect.sync(() => {
262
301
  * ```
263
302
  *
264
303
  * @see {@link DecisionModel} for the service this function requires
304
+ * @see {@link decideSettled} for keeping valid answers when others fail
265
305
  *
266
306
  * @stability unstable
267
307
  * @category decisions
268
308
  * @since 4.0.0
269
309
  */
270
310
  export const decide = (definition, options) => DecisionModel.use(model => model.decide(definition, options));
311
+ /**
312
+ * Answers each decision with a `Result` containing a validated answer or a
313
+ * `Decision.Unanswered` reason. Input encoding and provider failures still
314
+ * fail the effect. Token usage covers the whole call.
315
+ *
316
+ * **Details**
317
+ *
318
+ * Provider response decoding errors fail the whole call. Per-decision reasons
319
+ * reflect the first failed validation check; `"NoDistribution"` requires an
320
+ * otherwise valid answer.
321
+ *
322
+ * **Example** (Falling back for unanswered decisions)
323
+ *
324
+ * ```ts
325
+ * import { Effect, Result, Schema } from "effect"
326
+ * import { Decision, DecisionModel } from "effect/ai"
327
+ *
328
+ * const TicketTriage = Decision.make({
329
+ * input: Schema.String,
330
+ * decisions: {
331
+ * department: Decision.classify({
332
+ * instructions: "Which team should handle this",
333
+ * criteria: { billing: "payments", technical: "bugs" }
334
+ * }),
335
+ * urgent: Decision.probability({ instructions: "The message is time-sensitive" })
336
+ * }
337
+ * })
338
+ *
339
+ * const program = Effect.gen(function*() {
340
+ * const { outcomes } = yield* DecisionModel.decideSettled(TicketTriage, {
341
+ * input: "My card was charged twice, please fix this today"
342
+ * })
343
+ * const department = Result.isSuccess(outcomes.department) &&
344
+ * outcomes.department.success.probabilities.billing >= 0.8
345
+ * ? "billing"
346
+ * : "needs review"
347
+ * const urgent = Result.isSuccess(outcomes.urgent) ? outcomes.urgent.success.probability : undefined
348
+ * return { department, urgent }
349
+ * })
350
+ * ```
351
+ *
352
+ * @see {@link decide} for failing unless every decision is answered
353
+ *
354
+ * @stability unstable
355
+ * @category decisions
356
+ * @since 4.0.6
357
+ */
358
+ export const decideSettled = (definition, options) => DecisionModel.use(model => model.decideSettled(definition, options));
271
359
  //# sourceMappingURL=DecisionModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DecisionModel.js","names":[],"sources":["../../src/ai/DecisionModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DecisionModel.js","names":[],"sources":["../../src/ai/DecisionModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -189,8 +189,17 @@ export interface EmbeddingModel {
189
189
  * provider, while `embedMany([])` returns an empty response without calling the
190
190
  * provider.
191
191
  *
192
+ * Concurrent `embed` calls share one `embedMany` call when `batchKey` returns
193
+ * equal keys under `Equal.equals`. The batch runs with the first caller's
194
+ * context, so return every value `embedMany` reads from that context. Without
195
+ * `batchKey`, all callers share one batch.
196
+ *
192
197
  * **Gotchas**
193
198
  *
199
+ * Context that `batchKey` does not return is not isolated. Per-call
200
+ * `FetchHttpClient.RequestInit`, or any service read by an injected HTTP
201
+ * client, takes the first caller's value for the whole batch.
202
+ *
194
203
  * Provider responses are interpreted positionally and must contain exactly one
195
204
  * result for each requested input. If the provider returns a different number
196
205
  * of results, `embed` and `embedMany` fail with `AiError.InvalidOutputError`.
@@ -205,6 +214,7 @@ export interface EmbeddingModel {
205
214
  */
206
215
  export declare const make: (params: {
207
216
  readonly embedMany: (options: ProviderOptions) => Effect.Effect<ProviderResponse, AiError.AiError>;
217
+ readonly batchKey?: ((context: Context.Context<never>) => unknown) | undefined;
208
218
  }) => Effect.Effect<EmbeddingModel>;
209
219
  export {};
210
220
  //# sourceMappingURL=EmbeddingModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingModel.d.ts","sourceRoot":"","sources":["../../src/ai/EmbeddingModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAE1E,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG,2BAA2B,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,MAAoC,CAAA;;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,SAAQ,eAE/B;CAAG;;;;AAEJ;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,mBAIlC;CAAG;;;;AAEL;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,kBAIjC;CAAG;;;;;AAEL;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACvC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;KACzC,CAAA;CACF;;;;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,SAAQ,sBACpC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC1B,aAAa,EACb,OAAO,CAAC,OAAO,CAChB;CAAG;AAEJ;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACpE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAChF,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACxG;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACnG,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,CA+ChC,CAAA"}
1
+ {"version":3,"file":"EmbeddingModel.d.ts","sourceRoot":"","sources":["../../src/ai/EmbeddingModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAE1E,CAAA;AAED;;;;;;GAMG;AACH,MAAM,MAAM,MAAM,GAAG,2BAA2B,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,MAAoC,CAAA;;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,SAAQ,eAE/B;CAAG;;;;AAEJ;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,mBAIlC;CAAG;;;;AAEL;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,kBAIjC;CAAG;;;;;AAEL;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,iBAAkB,SAAQ,sBAKrC;CAAG;AAEL;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACvC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAA;KACzC,CAAA;CACF;;;;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAiB,SAAQ,sBACpC;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC1B,aAAa,EACb,OAAO,CAAC,OAAO,CAChB;CAAG;AAEJ;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;IACpE,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAChF,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACxG;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE;IAC1B,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IAClG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;CAC/E,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,CAiDhC,CAAA"}
@@ -139,8 +139,17 @@ const invalidProviderResponse = description => AiError.make({
139
139
  * provider, while `embedMany([])` returns an empty response without calling the
140
140
  * provider.
141
141
  *
142
+ * Concurrent `embed` calls share one `embedMany` call when `batchKey` returns
143
+ * equal keys under `Equal.equals`. The batch runs with the first caller's
144
+ * context, so return every value `embedMany` reads from that context. Without
145
+ * `batchKey`, all callers share one batch.
146
+ *
142
147
  * **Gotchas**
143
148
  *
149
+ * Context that `batchKey` does not return is not isolated. Per-call
150
+ * `FetchHttpClient.RequestInit`, or any service read by an injected HTTP
151
+ * client, takes the first caller's value for the whole batch.
152
+ *
144
153
  * Provider responses are interpreted positionally and must contain exactly one
145
154
  * result for each requested input. If the provider returns a different number
146
155
  * of results, `embed` and `embedMany` fail with `AiError.InvalidOutputError`.
@@ -154,13 +163,18 @@ const invalidProviderResponse = description => AiError.make({
154
163
  * @since 4.0.0
155
164
  */
156
165
  export const make = /*#__PURE__*/Effect.fnUntraced(function* (params) {
157
- const resolver = RequestResolver.make(entries => Effect.flatMap(params.embedMany({
158
- inputs: entries.map(entry => entry.request.input)
159
- }), response => Effect.map(mapProviderResults(entries.length, response.results), embeddings => {
160
- for (let i = 0; i < entries.length; i++) {
161
- entries[i].completeUnsafe(Exit.succeed(embeddings[i]));
162
- }
163
- }))).pipe(RequestResolver.withSpan("EmbeddingModel.resolver"));
166
+ const resolver = RequestResolver.makeGrouped({
167
+ key: ({
168
+ context
169
+ }) => params.batchKey?.(context),
170
+ resolver: entries => Effect.flatMap(params.embedMany({
171
+ inputs: entries.map(entry => entry.request.input)
172
+ }), response => Effect.map(mapProviderResults(entries.length, response.results), embeddings => {
173
+ for (let i = 0; i < entries.length; i++) {
174
+ entries[i].completeUnsafe(Exit.succeed(embeddings[i]));
175
+ }
176
+ }))
177
+ }).pipe(RequestResolver.withSpan("EmbeddingModel.resolver"));
164
178
  return EmbeddingModel.of({
165
179
  [TypeId]: TypeId,
166
180
  resolver,
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddingModel.js","names":[],"sources":["../../src/ai/EmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"EmbeddingModel.js","names":[],"sources":["../../src/ai/EmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}