effect 4.0.0-beta.103 → 4.0.0-beta.105

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 (667) hide show
  1. package/AGENTS.md +381 -0
  2. package/CLAUDE.md +381 -0
  3. package/ai-docs/README.md +44 -0
  4. package/ai-docs/package.json +36 -0
  5. package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  6. package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  7. package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  8. package/ai-docs/src/01_effect/01_basics/index.md +5 -0
  9. package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
  10. package/ai-docs/src/01_effect/02_schema/index.md +7 -0
  11. package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
  12. package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
  13. package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
  14. package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
  15. package/ai-docs/src/01_effect/03_services/index.md +5 -0
  16. package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
  17. package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
  18. package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
  19. package/ai-docs/src/01_effect/04_errors/index.md +1 -0
  20. package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
  21. package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
  22. package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
  23. package/ai-docs/src/01_effect/05_resources/index.md +3 -0
  24. package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
  25. package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
  26. package/ai-docs/src/01_effect/06_running/index.md +1 -0
  27. package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
  28. package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
  29. package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
  30. package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
  31. package/ai-docs/src/03_stream/30_encoding.ts +165 -0
  32. package/ai-docs/src/03_stream/index.md +4 -0
  33. package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
  34. package/ai-docs/src/04_integration/index.md +5 -0
  35. package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  36. package/ai-docs/src/05_batching/index.md +3 -0
  37. package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
  38. package/ai-docs/src/06_schedule/index.md +3 -0
  39. package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  40. package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  41. package/ai-docs/src/07_datetime/index.md +5 -0
  42. package/ai-docs/src/08_observability/10_logging.ts +66 -0
  43. package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  44. package/ai-docs/src/08_observability/index.md +7 -0
  45. package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  46. package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  47. package/ai-docs/src/09_testing/index.md +1 -0
  48. package/ai-docs/src/10_predicate/01_basics.ts +14 -0
  49. package/ai-docs/src/10_predicate/index.md +9 -0
  50. package/ai-docs/src/50_http-client/10_basics.ts +102 -0
  51. package/ai-docs/src/50_http-client/index.md +3 -0
  52. package/ai-docs/src/51_http-server/10_basics.ts +116 -0
  53. package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  54. package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  55. package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  56. package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  57. package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  58. package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  59. package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  60. package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  61. package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  62. package/ai-docs/src/51_http-server/index.md +3 -0
  63. package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  64. package/ai-docs/src/60_child-process/index.md +3 -0
  65. package/ai-docs/src/70_cli/10_basics.ts +136 -0
  66. package/ai-docs/src/70_cli/index.md +5 -0
  67. package/ai-docs/src/71_ai/10_language-model.ts +156 -0
  68. package/ai-docs/src/71_ai/20_tools.ts +226 -0
  69. package/ai-docs/src/71_ai/30_chat.ts +158 -0
  70. package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  71. package/ai-docs/src/71_ai/index.md +5 -0
  72. package/ai-docs/src/80_cluster/10_entities.ts +97 -0
  73. package/ai-docs/src/80_cluster/index.md +4 -0
  74. package/ai-docs/src/index.md +10 -0
  75. package/ai-docs/tsconfig.json +24 -0
  76. package/dist/Brand.d.ts +3 -3
  77. package/dist/Brand.d.ts.map +1 -1
  78. package/dist/Brand.js +4 -3
  79. package/dist/Brand.js.map +1 -1
  80. package/dist/Cache.js +1 -1
  81. package/dist/Cache.js.map +1 -1
  82. package/dist/Channel.d.ts +1 -1
  83. package/dist/Channel.d.ts.map +1 -1
  84. package/dist/Channel.js.map +1 -1
  85. package/dist/Config.d.ts.map +1 -1
  86. package/dist/Config.js +30 -8
  87. package/dist/Config.js.map +1 -1
  88. package/dist/ConfigProvider.d.ts.map +1 -1
  89. package/dist/ConfigProvider.js +2 -1
  90. package/dist/ConfigProvider.js.map +1 -1
  91. package/dist/Context.d.ts +2 -3
  92. package/dist/Context.d.ts.map +1 -1
  93. package/dist/Context.js +1 -22
  94. package/dist/Context.js.map +1 -1
  95. package/dist/Cron.d.ts +31 -0
  96. package/dist/Cron.d.ts.map +1 -1
  97. package/dist/Cron.js +58 -2
  98. package/dist/Cron.js.map +1 -1
  99. package/dist/Crypto.d.ts.map +1 -1
  100. package/dist/Crypto.js +13 -5
  101. package/dist/Crypto.js.map +1 -1
  102. package/dist/Duration.d.ts.map +1 -1
  103. package/dist/Duration.js +12 -1
  104. package/dist/Duration.js.map +1 -1
  105. package/dist/Effect.d.ts +132 -14
  106. package/dist/Effect.d.ts.map +1 -1
  107. package/dist/Effect.js +38 -0
  108. package/dist/Effect.js.map +1 -1
  109. package/dist/Equal.d.ts.map +1 -1
  110. package/dist/Equal.js +10 -2
  111. package/dist/Equal.js.map +1 -1
  112. package/dist/ExecutionPlan.d.ts +73 -0
  113. package/dist/ExecutionPlan.d.ts.map +1 -1
  114. package/dist/ExecutionPlan.js +1 -1
  115. package/dist/ExecutionPlan.js.map +1 -1
  116. package/dist/FiberSet.js +1 -1
  117. package/dist/FileSystem.d.ts +2 -2
  118. package/dist/Function.d.ts +4 -3
  119. package/dist/Function.d.ts.map +1 -1
  120. package/dist/Function.js +5 -5
  121. package/dist/Function.js.map +1 -1
  122. package/dist/Iterable.d.ts.map +1 -1
  123. package/dist/Iterable.js +11 -10
  124. package/dist/Iterable.js.map +1 -1
  125. package/dist/Layer.d.ts.map +1 -1
  126. package/dist/Layer.js +7 -5
  127. package/dist/Layer.js.map +1 -1
  128. package/dist/Optic.d.ts +35 -21
  129. package/dist/Optic.d.ts.map +1 -1
  130. package/dist/Optic.js +33 -34
  131. package/dist/Optic.js.map +1 -1
  132. package/dist/Schedule.d.ts +8 -8
  133. package/dist/Schedule.d.ts.map +1 -1
  134. package/dist/Schedule.js +4 -4
  135. package/dist/Schedule.js.map +1 -1
  136. package/dist/Schema.d.ts +105 -57
  137. package/dist/Schema.d.ts.map +1 -1
  138. package/dist/Schema.js +105 -67
  139. package/dist/Schema.js.map +1 -1
  140. package/dist/SchemaAST.d.ts +33 -3
  141. package/dist/SchemaAST.d.ts.map +1 -1
  142. package/dist/SchemaAST.js +87 -63
  143. package/dist/SchemaAST.js.map +1 -1
  144. package/dist/SchemaError.d.ts +8 -8
  145. package/dist/SchemaError.d.ts.map +1 -1
  146. package/dist/SchemaError.js +7 -6
  147. package/dist/SchemaError.js.map +1 -1
  148. package/dist/SchemaGetter.d.ts +8 -5
  149. package/dist/SchemaGetter.d.ts.map +1 -1
  150. package/dist/SchemaGetter.js +41 -37
  151. package/dist/SchemaGetter.js.map +1 -1
  152. package/dist/SchemaIssue.d.ts +195 -38
  153. package/dist/SchemaIssue.d.ts.map +1 -1
  154. package/dist/SchemaIssue.js +243 -68
  155. package/dist/SchemaIssue.js.map +1 -1
  156. package/dist/SchemaParser.d.ts +30 -0
  157. package/dist/SchemaParser.d.ts.map +1 -1
  158. package/dist/SchemaParser.js +74 -62
  159. package/dist/SchemaParser.js.map +1 -1
  160. package/dist/SchemaTransformation.d.ts +2 -2
  161. package/dist/SchemaTransformation.d.ts.map +1 -1
  162. package/dist/SchemaTransformation.js +26 -26
  163. package/dist/SchemaTransformation.js.map +1 -1
  164. package/dist/ScopedCache.js +1 -1
  165. package/dist/ScopedCache.js.map +1 -1
  166. package/dist/Sink.d.ts +1 -1
  167. package/dist/Sink.d.ts.map +1 -1
  168. package/dist/Stdio.d.ts +17 -4
  169. package/dist/Stdio.d.ts.map +1 -1
  170. package/dist/Stdio.js +6 -3
  171. package/dist/Stdio.js.map +1 -1
  172. package/dist/Stream.d.ts +27 -4
  173. package/dist/Stream.d.ts.map +1 -1
  174. package/dist/Stream.js +27 -2
  175. package/dist/Stream.js.map +1 -1
  176. package/dist/SynchronizedRef.js +1 -1
  177. package/dist/SynchronizedRef.js.map +1 -1
  178. package/dist/Terminal.js +1 -1
  179. package/dist/Terminal.js.map +1 -1
  180. package/dist/Tuple.d.ts +6 -4
  181. package/dist/Tuple.d.ts.map +1 -1
  182. package/dist/Tuple.js.map +1 -1
  183. package/dist/TxReentrantLock.d.ts +0 -56
  184. package/dist/TxReentrantLock.d.ts.map +1 -1
  185. package/dist/TxReentrantLock.js +8 -8
  186. package/dist/TxReentrantLock.js.map +1 -1
  187. package/dist/internal/dateTime.js +1 -1
  188. package/dist/internal/dateTime.js.map +1 -1
  189. package/dist/internal/executionPlan.js +51 -3
  190. package/dist/internal/executionPlan.js.map +1 -1
  191. package/dist/internal/hashMap.js +12 -8
  192. package/dist/internal/hashMap.js.map +1 -1
  193. package/dist/internal/matcher.js +1 -1
  194. package/dist/internal/matcher.js.map +1 -1
  195. package/dist/internal/schedule.js.map +1 -1
  196. package/dist/internal/schema/annotations.js +2 -0
  197. package/dist/internal/schema/annotations.js.map +1 -1
  198. package/dist/internal/schema/schema.js +1 -9
  199. package/dist/internal/schema/schema.js.map +1 -1
  200. package/dist/internal/schema/toArbitrary.js +1 -1
  201. package/dist/internal/schema/toArbitrary.js.map +1 -1
  202. package/dist/internal/trie.js +13 -3
  203. package/dist/internal/trie.js.map +1 -1
  204. package/dist/testing/TestClock.d.ts.map +1 -1
  205. package/dist/testing/TestClock.js +11 -1
  206. package/dist/testing/TestClock.js.map +1 -1
  207. package/dist/testing/TestSchema.d.ts +2 -2
  208. package/dist/testing/TestSchema.d.ts.map +1 -1
  209. package/dist/testing/TestSchema.js +8 -7
  210. package/dist/testing/TestSchema.js.map +1 -1
  211. package/dist/unstable/ai/AiError.js +19 -19
  212. package/dist/unstable/ai/AiError.js.map +1 -1
  213. package/dist/unstable/ai/Chat.js +1 -1
  214. package/dist/unstable/ai/Chat.js.map +1 -1
  215. package/dist/unstable/ai/LanguageModel.js +4 -2
  216. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  217. package/dist/unstable/ai/McpSchema.d.ts +132 -132
  218. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  219. package/dist/unstable/ai/McpSchema.js +8 -8
  220. package/dist/unstable/ai/McpSchema.js.map +1 -1
  221. package/dist/unstable/ai/McpServer.js +1 -1
  222. package/dist/unstable/ai/McpServer.js.map +1 -1
  223. package/dist/unstable/ai/Prompt.d.ts +15 -3
  224. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  225. package/dist/unstable/ai/Prompt.js +10 -7
  226. package/dist/unstable/ai/Prompt.js.map +1 -1
  227. package/dist/unstable/cli/CliError.d.ts +3 -3
  228. package/dist/unstable/cli/CliError.js +11 -11
  229. package/dist/unstable/cli/CliError.js.map +1 -1
  230. package/dist/unstable/cli/Command.d.ts +9 -9
  231. package/dist/unstable/cli/Command.d.ts.map +1 -1
  232. package/dist/unstable/cli/Command.js +8 -6
  233. package/dist/unstable/cli/Command.js.map +1 -1
  234. package/dist/unstable/cli/Param.d.ts +7 -5
  235. package/dist/unstable/cli/Param.d.ts.map +1 -1
  236. package/dist/unstable/cli/Param.js +15 -11
  237. package/dist/unstable/cli/Param.js.map +1 -1
  238. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  239. package/dist/unstable/cli/Primitive.js +31 -24
  240. package/dist/unstable/cli/Primitive.js.map +1 -1
  241. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  242. package/dist/unstable/cli/Prompt.js +31 -17
  243. package/dist/unstable/cli/Prompt.js.map +1 -1
  244. package/dist/unstable/cli/internal/ansi.js +2 -2
  245. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  246. package/dist/unstable/cli/internal/command.d.ts +2 -2
  247. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  248. package/dist/unstable/cli/internal/command.js +10 -9
  249. package/dist/unstable/cli/internal/command.js.map +1 -1
  250. package/dist/unstable/cli/internal/completions/bash.js +69 -9
  251. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  252. package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
  253. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  254. package/dist/unstable/cli/internal/completions/fish.js +5 -5
  255. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  256. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  257. package/dist/unstable/cli/internal/help.js +4 -2
  258. package/dist/unstable/cli/internal/help.js.map +1 -1
  259. package/dist/unstable/cli/internal/parser.js +3 -3
  260. package/dist/unstable/cli/internal/parser.js.map +1 -1
  261. package/dist/unstable/cli/internal/wizard.js +2 -2
  262. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  263. package/dist/unstable/cluster/ClusterError.js +7 -7
  264. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  265. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  266. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
  267. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  268. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  269. package/dist/unstable/cluster/MessageStorage.js +8 -1
  270. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  271. package/dist/unstable/cluster/Reply.d.ts +8 -0
  272. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  273. package/dist/unstable/cluster/Reply.js +16 -4
  274. package/dist/unstable/cluster/Reply.js.map +1 -1
  275. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  276. package/dist/unstable/cluster/RunnerServer.js +4 -2
  277. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  278. package/dist/unstable/cluster/RunnerStorage.d.ts +1 -2
  279. package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
  280. package/dist/unstable/cluster/RunnerStorage.js +7 -6
  281. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  282. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  283. package/dist/unstable/cluster/Sharding.js +22 -4
  284. package/dist/unstable/cluster/Sharding.js.map +1 -1
  285. package/dist/unstable/cluster/internal/entityManager.js +1 -1
  286. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  287. package/dist/unstable/cluster/internal/resourceMap.js +2 -2
  288. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  289. package/dist/unstable/cluster/internal/resourceRef.js +17 -0
  290. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  291. package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
  292. package/dist/unstable/devtools/DevToolsClient.js +7 -2
  293. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  294. package/dist/unstable/encoding/Ini.d.ts +20 -0
  295. package/dist/unstable/encoding/Ini.d.ts.map +1 -0
  296. package/dist/unstable/encoding/Ini.js +153 -0
  297. package/dist/unstable/encoding/Ini.js.map +1 -0
  298. package/dist/unstable/encoding/Msgpack.d.ts +2 -1
  299. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  300. package/dist/unstable/encoding/Msgpack.js +27 -13
  301. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  302. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  303. package/dist/unstable/encoding/Ndjson.js +7 -1
  304. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  305. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  306. package/dist/unstable/encoding/Sse.js +14 -23
  307. package/dist/unstable/encoding/Sse.js.map +1 -1
  308. package/dist/unstable/encoding/Toml.d.ts +19 -0
  309. package/dist/unstable/encoding/Toml.d.ts.map +1 -0
  310. package/dist/unstable/encoding/Toml.js +434 -0
  311. package/dist/unstable/encoding/Toml.js.map +1 -0
  312. package/dist/unstable/encoding/Yaml.d.ts +19 -0
  313. package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
  314. package/dist/unstable/encoding/Yaml.js +461 -0
  315. package/dist/unstable/encoding/Yaml.js.map +1 -0
  316. package/dist/unstable/encoding/index.d.ts +12 -0
  317. package/dist/unstable/encoding/index.d.ts.map +1 -1
  318. package/dist/unstable/encoding/index.js +12 -0
  319. package/dist/unstable/encoding/index.js.map +1 -1
  320. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  321. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  322. package/dist/unstable/eventlog/EventJournal.js +13 -5
  323. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  324. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  325. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  326. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +1 -1
  327. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  328. package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
  329. package/dist/unstable/eventlog/SqlEventJournal.js +1 -4
  330. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  331. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
  332. package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
  333. package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
  334. package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
  335. package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
  336. package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
  337. package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
  338. package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
  339. package/dist/unstable/http/FindMyWay.d.ts +33 -8
  340. package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
  341. package/dist/unstable/http/FindMyWay.js +4 -7
  342. package/dist/unstable/http/FindMyWay.js.map +1 -1
  343. package/dist/unstable/http/HttpClient.d.ts +59 -3
  344. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  345. package/dist/unstable/http/HttpClient.js +33 -19
  346. package/dist/unstable/http/HttpClient.js.map +1 -1
  347. package/dist/unstable/http/HttpClientError.js +1 -1
  348. package/dist/unstable/http/HttpClientError.js.map +1 -1
  349. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  350. package/dist/unstable/http/HttpClientRequest.js +2 -14
  351. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  352. package/dist/unstable/http/HttpClientResponse.js +1 -16
  353. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  354. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  355. package/dist/unstable/http/HttpPlatform.js +21 -3
  356. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  357. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  358. package/dist/unstable/http/HttpServerRequest.js +7 -6
  359. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  360. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  361. package/dist/unstable/http/HttpServerResponse.js +8 -6
  362. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  363. package/dist/unstable/http/Multipart.d.ts +1 -1
  364. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  365. package/dist/unstable/http/Multipart.js +9 -2
  366. package/dist/unstable/http/Multipart.js.map +1 -1
  367. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
  368. package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
  369. package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
  370. package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
  371. package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
  372. package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
  373. package/dist/unstable/http/MultipartParser/Search.js +14 -0
  374. package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
  375. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
  376. package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
  377. package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
  378. package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
  379. package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
  380. package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
  381. package/dist/unstable/http/MultipartParser/internal/headers.js +194 -0
  382. package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
  383. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
  384. package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
  385. package/dist/unstable/http/MultipartParser/internal/multipart.js +226 -0
  386. package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
  387. package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
  388. package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
  389. package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
  390. package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
  391. package/dist/unstable/http/MultipartParser.d.ts +98 -0
  392. package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
  393. package/dist/unstable/http/MultipartParser.js +23 -0
  394. package/dist/unstable/http/MultipartParser.js.map +1 -0
  395. package/dist/unstable/http/Template.d.ts.map +1 -1
  396. package/dist/unstable/http/Template.js +2 -2
  397. package/dist/unstable/http/Template.js.map +1 -1
  398. package/dist/unstable/http/index.d.ts +1 -1
  399. package/dist/unstable/http/index.d.ts.map +1 -1
  400. package/dist/unstable/http/index.js +1 -1
  401. package/dist/unstable/http/index.js.map +1 -1
  402. package/dist/unstable/http/internal/httpBody.d.ts +2 -0
  403. package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
  404. package/dist/unstable/http/internal/httpBody.js +10 -0
  405. package/dist/unstable/http/internal/httpBody.js.map +1 -0
  406. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  407. package/dist/unstable/httpapi/HttpApi.js +5 -5
  408. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  409. package/dist/unstable/httpapi/HttpApiBuilder.js +73 -20
  410. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  411. package/dist/unstable/httpapi/HttpApiClient.d.ts +1 -1
  412. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  413. package/dist/unstable/httpapi/HttpApiClient.js +74 -34
  414. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  415. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +6 -4
  416. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  417. package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
  418. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  419. package/dist/unstable/httpapi/HttpApiError.d.ts +5 -5
  420. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  421. package/dist/unstable/httpapi/HttpApiError.js +17 -17
  422. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  423. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +1 -1
  424. package/dist/unstable/httpapi/HttpApiMiddleware.js +1 -1
  425. package/dist/unstable/httpapi/HttpApiSchema.d.ts +219 -0
  426. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  427. package/dist/unstable/httpapi/HttpApiSchema.js +170 -0
  428. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  429. package/dist/unstable/httpapi/OpenApi.d.ts +8 -0
  430. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  431. package/dist/unstable/httpapi/OpenApi.js +45 -18
  432. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  433. package/dist/unstable/observability/OtlpExporter.d.ts +1 -1
  434. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  435. package/dist/unstable/observability/OtlpExporter.js +2 -1
  436. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  437. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  438. package/dist/unstable/observability/OtlpLogger.js +2 -2
  439. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  440. package/dist/unstable/observability/OtlpMetrics.d.ts +2 -2
  441. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  442. package/dist/unstable/observability/OtlpMetrics.js +28 -15
  443. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  444. package/dist/unstable/observability/OtlpTracer.js +1 -1
  445. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  446. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  447. package/dist/unstable/persistence/PersistedQueue.js +9 -9
  448. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  449. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  450. package/dist/unstable/persistence/Persistence.js +17 -7
  451. package/dist/unstable/persistence/Persistence.js.map +1 -1
  452. package/dist/unstable/persistence/RateLimiter.d.ts +22 -12
  453. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  454. package/dist/unstable/persistence/RateLimiter.js +15 -42
  455. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  456. package/dist/unstable/persistence/Redis.js +1 -1
  457. package/dist/unstable/persistence/Redis.js.map +1 -1
  458. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  459. package/dist/unstable/reactivity/AsyncResult.js +4 -4
  460. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  461. package/dist/unstable/reactivity/Atom.d.ts +26 -11
  462. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  463. package/dist/unstable/reactivity/Atom.js +9 -22
  464. package/dist/unstable/reactivity/Atom.js.map +1 -1
  465. package/dist/unstable/rpc/RpcClient.d.ts +14 -0
  466. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  467. package/dist/unstable/rpc/RpcClient.js +21 -10
  468. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  469. package/dist/unstable/rpc/RpcClientError.js +2 -2
  470. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  471. package/dist/unstable/rpc/RpcSerialization.js +3 -1
  472. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  473. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  474. package/dist/unstable/rpc/RpcServer.js +3 -2
  475. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  476. package/dist/unstable/schema/Model.d.ts +1 -1
  477. package/dist/unstable/schema/Model.d.ts.map +1 -1
  478. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  479. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  480. package/dist/unstable/schema/VariantSchema.js +17 -9
  481. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  482. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  483. package/dist/unstable/socket/Socket.js +28 -12
  484. package/dist/unstable/socket/Socket.js.map +1 -1
  485. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  486. package/dist/unstable/sql/SqlClient.js +7 -3
  487. package/dist/unstable/sql/SqlClient.js.map +1 -1
  488. package/dist/unstable/sql/SqlError.js +13 -13
  489. package/dist/unstable/sql/SqlError.js.map +1 -1
  490. package/dist/unstable/sql/SqlResolver.js +8 -6
  491. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  492. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  493. package/dist/unstable/sql/Statement.js +8 -6
  494. package/dist/unstable/sql/Statement.js.map +1 -1
  495. package/dist/unstable/workers/WorkerError.js +5 -5
  496. package/dist/unstable/workers/WorkerError.js.map +1 -1
  497. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  498. package/dist/unstable/workflow/Workflow.js +2 -2
  499. package/dist/unstable/workflow/Workflow.js.map +1 -1
  500. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  501. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  502. package/dist/unstable/workflow/WorkflowEngine.js +3 -3
  503. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  504. package/package.json +6 -9
  505. package/src/Brand.ts +4 -4
  506. package/src/Cache.ts +1 -1
  507. package/src/Channel.ts +1 -1
  508. package/src/Config.ts +31 -8
  509. package/src/ConfigProvider.ts +4 -1
  510. package/src/Context.ts +6 -28
  511. package/src/Cron.ts +65 -2
  512. package/src/Crypto.ts +17 -8
  513. package/src/Duration.ts +16 -2
  514. package/src/Effect.ts +141 -17
  515. package/src/Equal.ts +10 -2
  516. package/src/ExecutionPlan.ts +78 -1
  517. package/src/FiberSet.ts +1 -1
  518. package/src/FileSystem.ts +2 -2
  519. package/src/Function.ts +6 -6
  520. package/src/Iterable.ts +11 -10
  521. package/src/Layer.ts +7 -5
  522. package/src/Optic.ts +59 -58
  523. package/src/Schedule.ts +13 -13
  524. package/src/Schema.ts +195 -112
  525. package/src/SchemaAST.ts +154 -85
  526. package/src/SchemaError.ts +9 -9
  527. package/src/SchemaGetter.ts +89 -30
  528. package/src/SchemaIssue.ts +285 -80
  529. package/src/SchemaParser.ts +126 -86
  530. package/src/SchemaTransformation.ts +66 -18
  531. package/src/ScopedCache.ts +1 -1
  532. package/src/Sink.ts +1 -1
  533. package/src/Stdio.ts +23 -4
  534. package/src/Stream.ts +77 -10
  535. package/src/SynchronizedRef.ts +1 -1
  536. package/src/Terminal.ts +1 -1
  537. package/src/Tuple.ts +7 -4
  538. package/src/TxReentrantLock.ts +39 -35
  539. package/src/internal/dateTime.ts +1 -1
  540. package/src/internal/executionPlan.ts +105 -10
  541. package/src/internal/hashMap.ts +20 -14
  542. package/src/internal/matcher.ts +2 -2
  543. package/src/internal/schedule.ts +4 -4
  544. package/src/internal/schema/annotations.ts +3 -0
  545. package/src/internal/schema/schema.ts +1 -17
  546. package/src/internal/schema/toArbitrary.ts +3 -1
  547. package/src/internal/trie.ts +12 -2
  548. package/src/testing/TestClock.ts +13 -1
  549. package/src/testing/TestSchema.ts +9 -9
  550. package/src/unstable/ai/AiError.ts +19 -19
  551. package/src/unstable/ai/Chat.ts +1 -1
  552. package/src/unstable/ai/LanguageModel.ts +4 -2
  553. package/src/unstable/ai/McpSchema.ts +17 -16
  554. package/src/unstable/ai/McpServer.ts +1 -1
  555. package/src/unstable/ai/Prompt.ts +35 -10
  556. package/src/unstable/cli/CliError.ts +12 -12
  557. package/src/unstable/cli/Command.ts +12 -10
  558. package/src/unstable/cli/Param.ts +41 -19
  559. package/src/unstable/cli/Primitive.ts +11 -5
  560. package/src/unstable/cli/Prompt.ts +36 -20
  561. package/src/unstable/cli/internal/ansi.ts +2 -2
  562. package/src/unstable/cli/internal/command.ts +15 -10
  563. package/src/unstable/cli/internal/completions/bash.ts +59 -9
  564. package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
  565. package/src/unstable/cli/internal/completions/fish.ts +5 -7
  566. package/src/unstable/cli/internal/help.ts +4 -2
  567. package/src/unstable/cli/internal/parser.ts +3 -3
  568. package/src/unstable/cli/internal/wizard.ts +2 -2
  569. package/src/unstable/cluster/ClusterError.ts +7 -7
  570. package/src/unstable/cluster/ClusterWorkflowEngine.ts +4 -1
  571. package/src/unstable/cluster/MessageStorage.ts +9 -5
  572. package/src/unstable/cluster/Reply.ts +25 -4
  573. package/src/unstable/cluster/RunnerServer.ts +4 -10
  574. package/src/unstable/cluster/RunnerStorage.ts +9 -7
  575. package/src/unstable/cluster/Sharding.ts +35 -7
  576. package/src/unstable/cluster/internal/entityManager.ts +1 -1
  577. package/src/unstable/cluster/internal/resourceMap.ts +5 -2
  578. package/src/unstable/cluster/internal/resourceRef.ts +27 -5
  579. package/src/unstable/devtools/DevToolsClient.ts +3 -2
  580. package/src/unstable/encoding/Ini.ts +174 -0
  581. package/src/unstable/encoding/Msgpack.ts +59 -36
  582. package/src/unstable/encoding/Ndjson.ts +9 -1
  583. package/src/unstable/encoding/Sse.ts +11 -21
  584. package/src/unstable/encoding/Toml.ts +504 -0
  585. package/src/unstable/encoding/Yaml.ts +541 -0
  586. package/src/unstable/encoding/index.ts +15 -0
  587. package/src/unstable/eventlog/EventJournal.ts +14 -6
  588. package/src/unstable/eventlog/EventLogMessage.ts +1 -1
  589. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +1 -1
  590. package/src/unstable/eventlog/SqlEventJournal.ts +6 -4
  591. package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
  592. package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
  593. package/src/unstable/http/FindMyWay.ts +65 -6
  594. package/src/unstable/http/HttpClient.ts +132 -23
  595. package/src/unstable/http/HttpClientError.ts +1 -1
  596. package/src/unstable/http/HttpClientRequest.ts +2 -14
  597. package/src/unstable/http/HttpClientResponse.ts +1 -17
  598. package/src/unstable/http/HttpPlatform.ts +34 -6
  599. package/src/unstable/http/HttpServerRequest.ts +14 -6
  600. package/src/unstable/http/HttpServerResponse.ts +9 -7
  601. package/src/unstable/http/Multipart.ts +9 -2
  602. package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
  603. package/src/unstable/http/MultipartParser/Search.ts +17 -0
  604. package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
  605. package/src/unstable/http/MultipartParser/internal/headers.ts +615 -0
  606. package/src/unstable/http/MultipartParser/internal/multipart.ts +262 -0
  607. package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
  608. package/src/unstable/http/MultipartParser.ts +115 -0
  609. package/src/unstable/http/Template.ts +6 -5
  610. package/src/unstable/http/index.ts +1 -1
  611. package/src/unstable/http/internal/httpBody.ts +15 -0
  612. package/src/unstable/httpapi/HttpApi.ts +6 -7
  613. package/src/unstable/httpapi/HttpApiBuilder.ts +142 -25
  614. package/src/unstable/httpapi/HttpApiClient.ts +130 -49
  615. package/src/unstable/httpapi/HttpApiEndpoint.ts +117 -29
  616. package/src/unstable/httpapi/HttpApiError.ts +33 -39
  617. package/src/unstable/httpapi/HttpApiMiddleware.ts +1 -1
  618. package/src/unstable/httpapi/HttpApiSchema.ts +353 -0
  619. package/src/unstable/httpapi/OpenApi.ts +70 -20
  620. package/src/unstable/observability/OtlpExporter.ts +4 -2
  621. package/src/unstable/observability/OtlpLogger.ts +3 -1
  622. package/src/unstable/observability/OtlpMetrics.ts +32 -18
  623. package/src/unstable/observability/OtlpTracer.ts +1 -1
  624. package/src/unstable/persistence/PersistedQueue.ts +12 -9
  625. package/src/unstable/persistence/Persistence.ts +27 -7
  626. package/src/unstable/persistence/RateLimiter.ts +54 -31
  627. package/src/unstable/persistence/Redis.ts +1 -1
  628. package/src/unstable/reactivity/AsyncResult.ts +11 -6
  629. package/src/unstable/reactivity/Atom.ts +44 -25
  630. package/src/unstable/rpc/RpcClient.ts +42 -13
  631. package/src/unstable/rpc/RpcClientError.ts +2 -2
  632. package/src/unstable/rpc/RpcSerialization.ts +1 -1
  633. package/src/unstable/rpc/RpcServer.ts +4 -2
  634. package/src/unstable/schema/VariantSchema.ts +36 -18
  635. package/src/unstable/socket/Socket.ts +24 -14
  636. package/src/unstable/sql/SqlClient.ts +65 -56
  637. package/src/unstable/sql/SqlError.ts +13 -13
  638. package/src/unstable/sql/SqlResolver.ts +8 -6
  639. package/src/unstable/sql/Statement.ts +13 -8
  640. package/src/unstable/workers/WorkerError.ts +5 -5
  641. package/src/unstable/workflow/Workflow.ts +2 -5
  642. package/src/unstable/workflow/WorkflowEngine.ts +8 -3
  643. package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
  644. package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
  645. package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
  646. package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
  647. package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
  648. package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
  649. package/dist/unstable/http/Multipasta/Node.js +0 -14
  650. package/dist/unstable/http/Multipasta/Node.js.map +0 -1
  651. package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
  652. package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
  653. package/dist/unstable/http/Multipasta/Search.js +0 -14
  654. package/dist/unstable/http/Multipasta/Search.js.map +0 -1
  655. package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
  656. package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
  657. package/dist/unstable/http/Multipasta/Web.js +0 -14
  658. package/dist/unstable/http/Multipasta/Web.js.map +0 -1
  659. package/dist/unstable/http/Multipasta.d.ts +0 -15
  660. package/dist/unstable/http/Multipasta.d.ts.map +0 -1
  661. package/dist/unstable/http/Multipasta.js +0 -15
  662. package/dist/unstable/http/Multipasta.js.map +0 -1
  663. package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
  664. package/src/unstable/http/Multipasta/Node.ts +0 -14
  665. package/src/unstable/http/Multipasta/Search.ts +0 -14
  666. package/src/unstable/http/Multipasta/Web.ts +0 -14
  667. package/src/unstable/http/Multipasta.ts +0 -15
@@ -1,10 +1,6 @@
1
- import * as Cause from "../../Cause.ts"
2
- import * as Effect from "../../Effect.ts"
3
1
  import * as Pipeable from "../../Pipeable.ts"
4
2
  import type * as Schema from "../../Schema.ts"
5
3
  import * as SchemaAST from "../../SchemaAST.ts"
6
- import { SchemaError } from "../../SchemaError.ts"
7
- import type { Issue } from "../../SchemaIssue.ts"
8
4
  import * as SchemaParser from "../../SchemaParser.ts"
9
5
  import type * as SchemaRepresentation from "../../SchemaRepresentation.ts"
10
6
 
@@ -75,20 +71,8 @@ export function make<S extends Schema.Constraint>(ast: S["ast"], options?: objec
75
71
  )
76
72
  self.ast = ast
77
73
  self.rebuild = (ast: SchemaAST.AST) => make(ast, options)
78
- const makeEffect = SchemaParser.makeEffect(self)
79
- self.makeEffect = (input: S["~type.make.in"], options?: Schema.MakeOptions) =>
80
- fromIssueEffect(makeEffect(input, options))
74
+ self.makeEffect = SchemaParser.makeEffect(self)
81
75
  self.make = SchemaParser.make(self)
82
76
  self.makeOption = SchemaParser.makeOption(self)
83
77
  return self
84
78
  }
85
-
86
- /** @internal */
87
- export function fromIssueEffect<A, R>(
88
- self: Effect.Effect<A, Issue, R>
89
- ): Effect.Effect<A, SchemaError, R> {
90
- return Effect.catchCause(
91
- self,
92
- (cause) => Effect.failCauseSync(() => Cause.map(cause, (issue) => new SchemaError(issue)))
93
- )
94
- }
@@ -717,7 +717,9 @@ function base(ast: SchemaAST.AST, path: ReadonlyArray<PropertyKey>): LazyArbitra
717
717
  : out.map(Option.some)
718
718
  }
719
719
  )
720
- let out = fc.tuple(...elementArbitraries).map(Array.getSomes)
720
+ let out = fc.tuple(...elementArbitraries).map((elements) =>
721
+ Array.getSomes(Array.takeWhile(elements, Option.isSome))
722
+ )
721
723
  // ---------------------------------------------
722
724
  // handle rest element
723
725
  // ---------------------------------------------
@@ -172,7 +172,7 @@ export const insert = dual<
172
172
  key: key[0],
173
173
  count: 0
174
174
  }
175
- const count = n.count + 1
175
+ let count = n.count + 1
176
176
  let cIndex = 0
177
177
 
178
178
  while (cIndex < key.length) {
@@ -194,7 +194,17 @@ export const insert = dual<
194
194
  }
195
195
  } else {
196
196
  if (cIndex === key.length - 1) {
197
- n.value = { value }
197
+ if (n.value !== undefined) {
198
+ count -= 1
199
+ }
200
+ nStack[nStack.length - 1] = {
201
+ key: n.key,
202
+ count,
203
+ value: { value },
204
+ left: n.left,
205
+ mid: n.mid,
206
+ right: n.right
207
+ }
198
208
  } else if (n.mid === undefined) {
199
209
  dStack.push(0)
200
210
  n = { key: key[cIndex + 1], count }
@@ -203,6 +203,14 @@ const SleepOrder = Order.flip(Order.Struct({
203
203
  sequence: Order.Number
204
204
  }))
205
205
 
206
+ const nanosPerMilli = BigInt(1_000_000)
207
+
208
+ const millisToNanos = (millis: number): bigint => {
209
+ const wholeMillis = Math.floor(millis)
210
+ const fractionalNanos = Math.floor((millis - wholeMillis) * 1_000_000)
211
+ return BigInt(wholeMillis) * nanosPerMilli + BigInt(fractionalNanos)
212
+ }
213
+
206
214
  /**
207
215
  * Creates a `TestClock` with optional configuration.
208
216
  *
@@ -247,6 +255,7 @@ export const make = Effect.fnUntraced(function*(
247
255
  const warningSemaphore = yield* Semaphore.make(1)
248
256
 
249
257
  let currentTimestamp: number = new Date(0).getTime()
258
+ let currentWallNanos = BigInt(0)
250
259
  let currentMonotonicNanos = BigInt(0)
251
260
  let warningState: WarningState = WarningState.Start()
252
261
 
@@ -255,7 +264,7 @@ export const make = Effect.fnUntraced(function*(
255
264
  }
256
265
 
257
266
  function currentTimeNanosUnsafe(): bigint {
258
- return BigInt(Math.floor(currentTimestamp * 1000000))
267
+ return currentWallNanos
259
268
  }
260
269
 
261
270
  function monotonicTimeNanosUnsafe(): bigint {
@@ -339,6 +348,9 @@ export const make = Effect.fnUntraced(function*(
339
348
  if (deltaMillis > 0 && Number.isFinite(deltaMillis)) {
340
349
  currentMonotonicNanos += BigInt(Math.round(deltaMillis * 1_000_000))
341
350
  }
351
+ if (Number.isFinite(timestamp)) {
352
+ currentWallNanos = millisToNanos(timestamp)
353
+ }
342
354
  currentTimestamp = timestamp
343
355
  }
344
356
  while (Arr.isArrayNonEmpty(sleeps)) {
@@ -17,7 +17,7 @@ import * as Record from "../Record.ts"
17
17
  import * as Result from "../Result.ts"
18
18
  import * as Schema from "../Schema.ts"
19
19
  import * as SchemaAST from "../SchemaAST.ts"
20
- import type * as SchemaIssue from "../SchemaIssue.ts"
20
+ import * as SchemaIssue from "../SchemaIssue.ts"
21
21
  import * as SchemaParser from "../SchemaParser.ts"
22
22
  import * as FastCheck from "../testing/FastCheck.ts"
23
23
 
@@ -123,7 +123,7 @@ export class Asserts<S extends Schema.Constraint> {
123
123
  async function succeed(input: S["~type.make.in"], expected?: S["Type"]) {
124
124
  const r = await Effect.runPromise(
125
125
  makeEffect(input, options).pipe(
126
- Effect.mapErrorEager((issue) => issue.toString()),
126
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
127
127
  Effect.result
128
128
  )
129
129
  )
@@ -135,7 +135,7 @@ export class Asserts<S extends Schema.Constraint> {
135
135
  async fail(input: unknown, message: string) {
136
136
  const r = await Effect.runPromise(
137
137
  makeEffect(input, options).pipe(
138
- Effect.mapErrorEager((issue) => issue.toString()),
138
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
139
139
  Effect.result
140
140
  )
141
141
  )
@@ -178,7 +178,7 @@ export class Asserts<S extends Schema.Constraint> {
178
178
  const r = await Effect.runPromise(
179
179
  encodeEffect(t).pipe(
180
180
  Effect.flatMapEager((e) => decodeUnknownEffect(e)),
181
- Effect.mapErrorEager((issue) => issue.toString()),
181
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
182
182
  Effect.result
183
183
  )
184
184
  )
@@ -367,7 +367,7 @@ export class Decoding<S extends Schema.Constraint> {
367
367
  ) {
368
368
  const r = await Effect.runPromise(
369
369
  this.decodeUnknownEffect(input, this.options?.parseOptions).pipe(
370
- Effect.mapErrorEager((issue) => issue.toString()),
370
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
371
371
  Effect.result
372
372
  )
373
373
  )
@@ -401,7 +401,7 @@ export class Decoding<S extends Schema.Constraint> {
401
401
  ) {
402
402
  const r = await Effect.runPromise(
403
403
  this.decodeUnknownEffect(input, this.options?.parseOptions).pipe(
404
- Effect.mapErrorEager((issue) => issue.toString()),
404
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
405
405
  Effect.result
406
406
  )
407
407
  )
@@ -459,7 +459,7 @@ export class Encoding<S extends Schema.Constraint> {
459
459
  readonly encodeUnknownEffect: (
460
460
  input: unknown,
461
461
  options?: SchemaAST.ParseOptions
462
- ) => Effect.Effect<S["Type"], SchemaIssue.Issue, S["EncodingServices"]>
462
+ ) => Effect.Effect<S["Encoded"], SchemaIssue.Issue, S["EncodingServices"]>
463
463
  readonly options?: {
464
464
  readonly parseOptions?: SchemaAST.ParseOptions | undefined
465
465
  } | undefined
@@ -507,7 +507,7 @@ export class Encoding<S extends Schema.Constraint> {
507
507
  ) {
508
508
  const r = await Effect.runPromise(
509
509
  this.encodeUnknownEffect(input, this.options?.parseOptions).pipe(
510
- Effect.mapErrorEager((issue) => issue.toString()),
510
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
511
511
  Effect.result
512
512
  )
513
513
  )
@@ -541,7 +541,7 @@ export class Encoding<S extends Schema.Constraint> {
541
541
  ) {
542
542
  const r = await Effect.runPromise(
543
543
  this.encodeUnknownEffect(input, this.options?.parseOptions).pipe(
544
- Effect.mapErrorEager((issue) => issue.toString()),
544
+ Effect.mapErrorEager(SchemaIssue.defaultFormatter),
545
545
  Effect.result
546
546
  )
547
547
  )
@@ -76,7 +76,7 @@ const redactHeaders = (headers: Record<string, string>): Record<string, string>
76
76
  * @category errors
77
77
  * @since 4.0.0
78
78
  */
79
- export class NetworkError extends Schema.ErrorClass<NetworkError>(
79
+ export class NetworkError extends Schema.Error<NetworkError>(
80
80
  "effect/ai/AiError/NetworkError"
81
81
  )({
82
82
  _tag: Schema.tag("NetworkError"),
@@ -369,7 +369,7 @@ export const HttpContext = Schema.Struct({
369
369
  * @category errors
370
370
  * @since 4.0.0
371
371
  */
372
- export class RateLimitError extends Schema.ErrorClass<RateLimitError>(
372
+ export class RateLimitError extends Schema.Error<RateLimitError>(
373
373
  "effect/ai/AiError/RateLimitError"
374
374
  )({
375
375
  _tag: Schema.tag("RateLimitError"),
@@ -420,7 +420,7 @@ export class RateLimitError extends Schema.ErrorClass<RateLimitError>(
420
420
  * @category errors
421
421
  * @since 4.0.0
422
422
  */
423
- export class QuotaExhaustedError extends Schema.ErrorClass<QuotaExhaustedError>(
423
+ export class QuotaExhaustedError extends Schema.Error<QuotaExhaustedError>(
424
424
  "effect/ai/AiError/QuotaExhaustedError"
425
425
  )({
426
426
  _tag: Schema.tag("QuotaExhaustedError"),
@@ -473,7 +473,7 @@ export class QuotaExhaustedError extends Schema.ErrorClass<QuotaExhaustedError>(
473
473
  * @category errors
474
474
  * @since 4.0.0
475
475
  */
476
- export class AuthenticationError extends Schema.ErrorClass<AuthenticationError>(
476
+ export class AuthenticationError extends Schema.Error<AuthenticationError>(
477
477
  "effect/ai/AiError/AuthenticationError"
478
478
  )({
479
479
  _tag: Schema.tag("AuthenticationError"),
@@ -531,7 +531,7 @@ export class AuthenticationError extends Schema.ErrorClass<AuthenticationError>(
531
531
  * @category errors
532
532
  * @since 4.0.0
533
533
  */
534
- export class ContentPolicyError extends Schema.ErrorClass<ContentPolicyError>(
534
+ export class ContentPolicyError extends Schema.Error<ContentPolicyError>(
535
535
  "effect/ai/AiError/ContentPolicyError"
536
536
  )({
537
537
  _tag: Schema.tag("ContentPolicyError"),
@@ -584,7 +584,7 @@ export class ContentPolicyError extends Schema.ErrorClass<ContentPolicyError>(
584
584
  * @category errors
585
585
  * @since 4.0.0
586
586
  */
587
- export class InvalidRequestError extends Schema.ErrorClass<InvalidRequestError>(
587
+ export class InvalidRequestError extends Schema.Error<InvalidRequestError>(
588
588
  "effect/ai/AiError/InvalidRequestError"
589
589
  )({
590
590
  _tag: Schema.tag("InvalidRequestError"),
@@ -641,7 +641,7 @@ export class InvalidRequestError extends Schema.ErrorClass<InvalidRequestError>(
641
641
  * @category errors
642
642
  * @since 4.0.0
643
643
  */
644
- export class InternalProviderError extends Schema.ErrorClass<InternalProviderError>(
644
+ export class InternalProviderError extends Schema.Error<InternalProviderError>(
645
645
  "effect/ai/AiError/InternalProviderError"
646
646
  )({
647
647
  _tag: Schema.tag("InternalProviderError"),
@@ -692,7 +692,7 @@ export class InternalProviderError extends Schema.ErrorClass<InternalProviderErr
692
692
  * @category errors
693
693
  * @since 4.0.0
694
694
  */
695
- export class InvalidOutputError extends Schema.ErrorClass<InvalidOutputError>(
695
+ export class InvalidOutputError extends Schema.Error<InvalidOutputError>(
696
696
  "effect/ai/AiError/InvalidOutputError"
697
697
  )({
698
698
  _tag: Schema.tag("InvalidOutputError"),
@@ -769,7 +769,7 @@ export class InvalidOutputError extends Schema.ErrorClass<InvalidOutputError>(
769
769
  * @category errors
770
770
  * @since 4.0.0
771
771
  */
772
- export class StructuredOutputError extends Schema.ErrorClass<StructuredOutputError>(
772
+ export class StructuredOutputError extends Schema.Error<StructuredOutputError>(
773
773
  "effect/ai/AiError/StructuredOutputError"
774
774
  )({
775
775
  _tag: Schema.tag("StructuredOutputError"),
@@ -848,7 +848,7 @@ export class StructuredOutputError extends Schema.ErrorClass<StructuredOutputErr
848
848
  * @category errors
849
849
  * @since 4.0.0
850
850
  */
851
- export class UnsupportedSchemaError extends Schema.ErrorClass<UnsupportedSchemaError>(
851
+ export class UnsupportedSchemaError extends Schema.Error<UnsupportedSchemaError>(
852
852
  "effect/ai/AiError/UnsupportedSchemaError"
853
853
  )({
854
854
  _tag: Schema.tag("UnsupportedSchemaError"),
@@ -898,7 +898,7 @@ export class UnsupportedSchemaError extends Schema.ErrorClass<UnsupportedSchemaE
898
898
  * @category errors
899
899
  * @since 4.0.0
900
900
  */
901
- export class UnknownError extends Schema.ErrorClass<UnknownError>(
901
+ export class UnknownError extends Schema.Error<UnknownError>(
902
902
  "effect/ai/AiError/UnknownError"
903
903
  )({
904
904
  _tag: Schema.tag("UnknownError"),
@@ -955,7 +955,7 @@ export class UnknownError extends Schema.ErrorClass<UnknownError>(
955
955
  * @category errors
956
956
  * @since 4.0.0
957
957
  */
958
- export class ToolNotFoundError extends Schema.ErrorClass<ToolNotFoundError>(
958
+ export class ToolNotFoundError extends Schema.Error<ToolNotFoundError>(
959
959
  "effect/ai/AiError/ToolNotFoundError"
960
960
  )({
961
961
  _tag: Schema.tag("ToolNotFoundError"),
@@ -1009,7 +1009,7 @@ export class ToolNotFoundError extends Schema.ErrorClass<ToolNotFoundError>(
1009
1009
  * @category errors
1010
1010
  * @since 4.0.0
1011
1011
  */
1012
- export class ToolParameterValidationError extends Schema.ErrorClass<ToolParameterValidationError>(
1012
+ export class ToolParameterValidationError extends Schema.Error<ToolParameterValidationError>(
1013
1013
  "effect/ai/AiError/ToolParameterValidationError"
1014
1014
  )({
1015
1015
  _tag: Schema.tag("ToolParameterValidationError"),
@@ -1063,7 +1063,7 @@ export class ToolParameterValidationError extends Schema.ErrorClass<ToolParamete
1063
1063
  * @category errors
1064
1064
  * @since 4.0.0
1065
1065
  */
1066
- export class InvalidToolResultError extends Schema.ErrorClass<InvalidToolResultError>(
1066
+ export class InvalidToolResultError extends Schema.Error<InvalidToolResultError>(
1067
1067
  "effect/ai/AiError/InvalidToolResultError"
1068
1068
  )({
1069
1069
  _tag: Schema.tag("InvalidToolResultError"),
@@ -1116,7 +1116,7 @@ export class InvalidToolResultError extends Schema.ErrorClass<InvalidToolResultE
1116
1116
  * @category errors
1117
1117
  * @since 4.0.0
1118
1118
  */
1119
- export class ToolResultEncodingError extends Schema.ErrorClass<ToolResultEncodingError>(
1119
+ export class ToolResultEncodingError extends Schema.Error<ToolResultEncodingError>(
1120
1120
  "effect/ai/AiError/ToolResultEncodingError"
1121
1121
  )({
1122
1122
  _tag: Schema.tag("ToolResultEncodingError"),
@@ -1169,7 +1169,7 @@ export class ToolResultEncodingError extends Schema.ErrorClass<ToolResultEncodin
1169
1169
  * @category errors
1170
1170
  * @since 4.0.0
1171
1171
  */
1172
- export class ToolConfigurationError extends Schema.ErrorClass<ToolConfigurationError>(
1172
+ export class ToolConfigurationError extends Schema.Error<ToolConfigurationError>(
1173
1173
  "effect/ai/AiError/ToolConfigurationError"
1174
1174
  )({
1175
1175
  _tag: Schema.tag("ToolConfigurationError"),
@@ -1220,7 +1220,7 @@ export class ToolConfigurationError extends Schema.ErrorClass<ToolConfigurationE
1220
1220
  * @category errors
1221
1221
  * @since 4.0.0
1222
1222
  */
1223
- export class ToolkitRequiredError extends Schema.ErrorClass<ToolkitRequiredError>(
1223
+ export class ToolkitRequiredError extends Schema.Error<ToolkitRequiredError>(
1224
1224
  "effect/ai/AiError/ToolkitRequiredError"
1225
1225
  )({
1226
1226
  _tag: Schema.tag("ToolkitRequiredError"),
@@ -1273,7 +1273,7 @@ export class ToolkitRequiredError extends Schema.ErrorClass<ToolkitRequiredError
1273
1273
  * @category errors
1274
1274
  * @since 4.0.0
1275
1275
  */
1276
- export class InvalidUserInputError extends Schema.ErrorClass<InvalidUserInputError>(
1276
+ export class InvalidUserInputError extends Schema.Error<InvalidUserInputError>(
1277
1277
  "effect/ai/AiError/InvalidUserInputError"
1278
1278
  )({
1279
1279
  _tag: Schema.tag("InvalidUserInputError"),
@@ -1439,7 +1439,7 @@ const TypeId = "~effect/unstable/ai/AiError/AiError" as const
1439
1439
  * @category schemas
1440
1440
  * @since 4.0.0
1441
1441
  */
1442
- export class AiError extends Schema.ErrorClass<AiError>(
1442
+ export class AiError extends Schema.Error<AiError>(
1443
1443
  "effect/ai/AiError/AiError"
1444
1444
  )({
1445
1445
  _tag: Schema.tag("AiError"),
@@ -699,7 +699,7 @@ export const fromJson = (data: string): Effect.Effect<
699
699
  * @category errors
700
700
  * @since 4.0.0
701
701
  */
702
- export class ChatNotFoundError extends Schema.ErrorClass<ChatNotFoundError>(
702
+ export class ChatNotFoundError extends Schema.Error<ChatNotFoundError>(
703
703
  "effect/ai/Chat/ChatNotFoundError"
704
704
  )({
705
705
  _tag: Schema.tag("ChatNotFoundError"),
@@ -2055,7 +2055,8 @@ const executeApprovedToolCalls = <Tools extends Record<string, Tool.Any>>(
2055
2055
  id: approval.toolCallId,
2056
2056
  name: toolCall.name,
2057
2057
  isFailure: terminalResult.isFailure,
2058
- result: terminalResult.encodedResult
2058
+ result: terminalResult.encodedResult,
2059
+ providerExecuted: false
2059
2060
  })
2060
2061
  })
2061
2062
 
@@ -2075,7 +2076,8 @@ const createDenialResults = (
2075
2076
  id: denial.toolCallId,
2076
2077
  name: denial.toolCall.name,
2077
2078
  isFailure: true,
2078
- result: { type: "execution-denied", reason: denial.reason }
2079
+ result: { type: "execution-denied", reason: denial.reason },
2080
+ providerExecuted: false
2079
2081
  })
2080
2082
  )
2081
2083
  }
@@ -540,7 +540,7 @@ export const PARSE_ERROR_CODE = -32700 as const
540
540
  * @category errors
541
541
  * @since 4.0.0
542
542
  */
543
- export class ParseError extends Schema.ErrorClass<ParseError>("effect/ai/McpSchema/ParseError")({
543
+ export class ParseError extends Schema.Error<ParseError>("effect/ai/McpSchema/ParseError")({
544
544
  ...McpErrorBase.fields,
545
545
  _tag: Schema.tag("ParseError"),
546
546
  code: Schema.tag(PARSE_ERROR_CODE)
@@ -561,7 +561,7 @@ export class ParseError extends Schema.ErrorClass<ParseError>("effect/ai/McpSche
561
561
  * @category errors
562
562
  * @since 4.0.0
563
563
  */
564
- export class InvalidRequest extends Schema.ErrorClass<InvalidRequest>("effect/ai/McpSchema/InvalidRequest")({
564
+ export class InvalidRequest extends Schema.Error<InvalidRequest>("effect/ai/McpSchema/InvalidRequest")({
565
565
  ...McpErrorBase.fields,
566
566
  _tag: Schema.tag("InvalidRequest"),
567
567
  code: Schema.tag(INVALID_REQUEST_ERROR_CODE)
@@ -581,7 +581,7 @@ export class InvalidRequest extends Schema.ErrorClass<InvalidRequest>("effect/ai
581
581
  * @category errors
582
582
  * @since 4.0.0
583
583
  */
584
- export class MethodNotFound extends Schema.ErrorClass<MethodNotFound>("effect/ai/McpSchema/MethodNotFound")({
584
+ export class MethodNotFound extends Schema.Error<MethodNotFound>("effect/ai/McpSchema/MethodNotFound")({
585
585
  ...McpErrorBase.fields,
586
586
  _tag: Schema.tag("MethodNotFound"),
587
587
  code: Schema.tag(METHOD_NOT_FOUND_ERROR_CODE)
@@ -602,7 +602,7 @@ export class MethodNotFound extends Schema.ErrorClass<MethodNotFound>("effect/ai
602
602
  * @category errors
603
603
  * @since 4.0.0
604
604
  */
605
- export class InvalidParams extends Schema.ErrorClass<InvalidParams>("effect/ai/McpSchema/InvalidParams")({
605
+ export class InvalidParams extends Schema.Error<InvalidParams>("effect/ai/McpSchema/InvalidParams")({
606
606
  ...McpErrorBase.fields,
607
607
  _tag: Schema.tag("InvalidParams"),
608
608
  code: Schema.tag(INVALID_PARAMS_ERROR_CODE)
@@ -624,7 +624,7 @@ export class InvalidParams extends Schema.ErrorClass<InvalidParams>("effect/ai/M
624
624
  * @category errors
625
625
  * @since 4.0.0
626
626
  */
627
- export class InternalError extends Schema.ErrorClass<InternalError>("effect/ai/McpSchema/InternalError")({
627
+ export class InternalError extends Schema.Error<InternalError>("effect/ai/McpSchema/InternalError")({
628
628
  ...McpErrorBase.fields,
629
629
  _tag: Schema.tag("InternalError"),
630
630
  code: Schema.tag(INTERNAL_ERROR_CODE)
@@ -1562,9 +1562,12 @@ export class CallTool extends Rpc.make("tools/call", {
1562
1562
  payload: {
1563
1563
  ...RequestMeta.fields,
1564
1564
  name: Schema.String,
1565
- arguments: Schema.Record(
1566
- Schema.String,
1567
- Schema.Any
1565
+ arguments: optionalWithDefault(
1566
+ Schema.Record(
1567
+ Schema.String,
1568
+ Schema.Any
1569
+ ),
1570
+ () => ({})
1568
1571
  )
1569
1572
  }
1570
1573
  }) {}
@@ -1851,7 +1854,7 @@ export class CreateMessage extends Rpc.make("sampling/createMessage", {
1851
1854
  * Optional metadata to pass through to the LLM provider. The format of
1852
1855
  * this metadata is provider-specific.
1853
1856
  */
1854
- metadata: Schema.Any
1857
+ metadata: optional(Schema.Record(Schema.String, Schema.Unknown))
1855
1858
  }
1856
1859
  }) {}
1857
1860
 
@@ -2149,13 +2152,11 @@ export class Elicit extends Rpc.make("elicitation/create", {
2149
2152
  * @category schemas
2150
2153
  * @since 4.0.0
2151
2154
  */
2152
- export class ElicitationDeclined
2153
- extends Schema.ErrorClass<ElicitationDeclined>("@effect/ai/McpSchema/ElicitationDeclined")({
2154
- _tag: Schema.tag("ElicitationDeclined"),
2155
- request: Elicit.payloadSchema,
2156
- cause: optional(Schema.Defect())
2157
- })
2158
- {}
2155
+ export class ElicitationDeclined extends Schema.Error<ElicitationDeclined>("@effect/ai/McpSchema/ElicitationDeclined")({
2156
+ _tag: Schema.tag("ElicitationDeclined"),
2157
+ request: Elicit.payloadSchema,
2158
+ cause: optional(Schema.Defect())
2159
+ }) {}
2159
2160
 
2160
2161
  // =============================================================================
2161
2162
  // McpServerClient
@@ -1299,7 +1299,7 @@ export const registerToolkit: <Tools extends Record<string, Tool.Any>>(
1299
1299
  new CallToolResult({
1300
1300
  isError: false,
1301
1301
  structuredContent: typeof result.encodedResult === "object" ? result.encodedResult : undefined,
1302
- content: [{
1302
+ content: result.encodedResult === undefined ? [] : [{
1303
1303
  type: "text",
1304
1304
  text: JSON.stringify(result.encodedResult)
1305
1305
  }]
@@ -631,7 +631,8 @@ export const toolCallPart = (params: PartConstructorParams<ToolCallPart>): ToolC
631
631
  * temperature: 22,
632
632
  * condition: "sunny",
633
633
  * humidity: 65
634
- * }
634
+ * },
635
+ * providerExecuted: false
635
636
  * })
636
637
  * const result = [toolResultPart.name, toolResultPart.isFailure] // => ["get_weather", false]
637
638
  * ```
@@ -656,6 +657,10 @@ export interface ToolResultPart extends BasePart<"tool-result", ToolResultPartOp
656
657
  * The result returned by the tool execution.
657
658
  */
658
659
  readonly result: unknown
660
+ /**
661
+ * Whether the tool was executed by the provider (true) or framework (false).
662
+ */
663
+ readonly providerExecuted: boolean
659
664
  }
660
665
 
661
666
  /**
@@ -681,6 +686,10 @@ export interface ToolResultPartEncoded extends BasePartEncoded<"tool-result", To
681
686
  * The result returned by the tool execution.
682
687
  */
683
688
  readonly result: unknown
689
+ /**
690
+ * Whether the tool was executed by the provider (true) or framework (false).
691
+ */
692
+ readonly providerExecuted?: boolean | undefined
684
693
  }
685
694
 
686
695
  /**
@@ -704,6 +713,7 @@ export const ToolResultPart: Schema.Struct<{
704
713
  readonly name: Schema.String
705
714
  readonly isFailure: Schema.Boolean
706
715
  readonly result: Schema.Unknown
716
+ readonly providerExecuted: Schema.withDecodingDefault<Schema.Boolean>
707
717
  readonly "~effect/ai/Prompt/Part": Schema.withDecodingDefaultKey<Schema.Literal<"~effect/ai/Prompt/Part">>
708
718
  readonly options: Schema.withDecodingDefault<
709
719
  Schema.$Record<
@@ -717,7 +727,8 @@ export const ToolResultPart: Schema.Struct<{
717
727
  id: Schema.String,
718
728
  name: Schema.String,
719
729
  isFailure: Schema.Boolean,
720
- result: Schema.Unknown
730
+ result: Schema.Unknown,
731
+ providerExecuted: Schema.Boolean.pipe(Schema.withDecodingDefault(Effect.succeed(false)))
721
732
  }).annotate({ identifier: "ToolResultPart" })
722
733
 
723
734
  /**
@@ -1420,7 +1431,8 @@ export const userMessage = (params: MessageConstructorParams<UserMessage>): User
1420
1431
  * result: {
1421
1432
  * temperature: 72,
1422
1433
  * condition: "sunny"
1423
- * }
1434
+ * },
1435
+ * providerExecuted: true
1424
1436
  * }),
1425
1437
  * Prompt.makePart("text", {
1426
1438
  * text: "The weather in San Francisco is currently 72°F and sunny."
@@ -1627,7 +1639,8 @@ export const assistantMessage = (params: MessageConstructorParams<AssistantMessa
1627
1639
  * { title: "TypeScript Handbook", url: "https://..." },
1628
1640
  * { title: "Effective TypeScript", url: "https://..." }
1629
1641
  * ]
1630
- * }
1642
+ * },
1643
+ * providerExecuted: false
1631
1644
  * })
1632
1645
  * ]
1633
1646
  * })
@@ -1827,20 +1840,30 @@ export const Prompt: Schema.Codec<Prompt, PromptEncoded> = Schema.Struct({
1827
1840
  Schema.decodeTo(
1828
1841
  $Prompt,
1829
1842
  SchemaTransformation.transformOrFail({
1830
- decode: (input) =>
1843
+ decode: (input, options) =>
1831
1844
  Effect.mapBothEager(
1832
1845
  SchemaParser.decodeEffect(Schema.Array(Message))(input.content),
1833
1846
  {
1834
1847
  onSuccess: makePrompt,
1835
- onFailure: () => new SchemaIssue.InvalidValue({ message: "Invalid Prompt messages" })
1848
+ onFailure: () =>
1849
+ new SchemaIssue.InvalidValue(
1850
+ { message: "Invalid Prompt messages" },
1851
+ input.content,
1852
+ options
1853
+ )
1836
1854
  }
1837
1855
  ),
1838
- encode: (prompt) =>
1856
+ encode: (prompt, options) =>
1839
1857
  Effect.mapBothEager(
1840
1858
  SchemaParser.encodeEffect(Schema.Array(Message))(prompt.content),
1841
1859
  {
1842
1860
  onSuccess: (messages) => ({ content: messages }),
1843
- onFailure: () => new SchemaIssue.InvalidValue({ message: "Invalid Prompt messages" })
1861
+ onFailure: () =>
1862
+ new SchemaIssue.InvalidValue(
1863
+ { message: "Invalid Prompt messages" },
1864
+ prompt.content,
1865
+ options
1866
+ )
1844
1867
  }
1845
1868
  )
1846
1869
  })
@@ -2096,11 +2119,13 @@ export const fromResponseParts = (parts: ReadonlyArray<Response.AnyPart>): Promp
2096
2119
  // Tool Result Parts (skip preliminary results)
2097
2120
  case "tool-result": {
2098
2121
  if (part.preliminary !== true) {
2099
- toolParts.push(makePart("tool-result", {
2122
+ const target = part.providerExecuted === true ? assistantParts : toolParts
2123
+ target.push(makePart("tool-result", {
2100
2124
  id: part.id,
2101
2125
  name: part.name,
2102
2126
  isFailure: part.isFailure,
2103
- result: part.encodedResult
2127
+ result: part.encodedResult,
2128
+ providerExecuted: part.providerExecuted ?? false
2104
2129
  }))
2105
2130
  }
2106
2131
  break