effect 4.0.0-beta.100 → 4.0.0-beta.102

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 (502) hide show
  1. package/dist/Array.d.ts.map +1 -1
  2. package/dist/Array.js +81 -5
  3. package/dist/Array.js.map +1 -1
  4. package/dist/Channel.d.ts.map +1 -1
  5. package/dist/Channel.js +27 -9
  6. package/dist/Channel.js.map +1 -1
  7. package/dist/Config.d.ts +1 -1
  8. package/dist/Config.d.ts.map +1 -1
  9. package/dist/Config.js +6 -5
  10. package/dist/Config.js.map +1 -1
  11. package/dist/ConfigProvider.js +7 -7
  12. package/dist/ConfigProvider.js.map +1 -1
  13. package/dist/Data.d.ts.map +1 -1
  14. package/dist/Data.js +2 -1
  15. package/dist/Data.js.map +1 -1
  16. package/dist/Effect.d.ts +61 -100
  17. package/dist/Effect.d.ts.map +1 -1
  18. package/dist/Effect.js +66 -39
  19. package/dist/Effect.js.map +1 -1
  20. package/dist/FiberHandle.d.ts.map +1 -1
  21. package/dist/FiberHandle.js +3 -2
  22. package/dist/FiberHandle.js.map +1 -1
  23. package/dist/Iterable.d.ts.map +1 -1
  24. package/dist/Iterable.js +2 -1
  25. package/dist/Iterable.js.map +1 -1
  26. package/dist/JsonPatch.d.ts.map +1 -1
  27. package/dist/JsonPatch.js +4 -3
  28. package/dist/JsonPatch.js.map +1 -1
  29. package/dist/JsonSchema.d.ts.map +1 -1
  30. package/dist/JsonSchema.js +9 -11
  31. package/dist/JsonSchema.js.map +1 -1
  32. package/dist/Logger.d.ts.map +1 -1
  33. package/dist/Logger.js +3 -2
  34. package/dist/Logger.js.map +1 -1
  35. package/dist/ManagedRuntime.d.ts +9 -0
  36. package/dist/ManagedRuntime.d.ts.map +1 -1
  37. package/dist/ManagedRuntime.js +3 -0
  38. package/dist/ManagedRuntime.js.map +1 -1
  39. package/dist/Metric.d.ts.map +1 -1
  40. package/dist/Metric.js +4 -3
  41. package/dist/Metric.js.map +1 -1
  42. package/dist/MutableList.d.ts.map +1 -1
  43. package/dist/MutableList.js +4 -0
  44. package/dist/MutableList.js.map +1 -1
  45. package/dist/Optic.d.ts.map +1 -1
  46. package/dist/Optic.js +5 -4
  47. package/dist/Optic.js.map +1 -1
  48. package/dist/Option.d.ts.map +1 -1
  49. package/dist/Option.js +2 -1
  50. package/dist/Option.js.map +1 -1
  51. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  52. package/dist/PartitionedSemaphore.js +1 -4
  53. package/dist/PartitionedSemaphore.js.map +1 -1
  54. package/dist/Record.d.ts +93 -1
  55. package/dist/Record.d.ts.map +1 -1
  56. package/dist/Record.js +57 -19
  57. package/dist/Record.js.map +1 -1
  58. package/dist/References.d.ts +0 -45
  59. package/dist/References.d.ts.map +1 -1
  60. package/dist/References.js +0 -45
  61. package/dist/References.js.map +1 -1
  62. package/dist/Request.d.ts.map +1 -1
  63. package/dist/Request.js +9 -6
  64. package/dist/Request.js.map +1 -1
  65. package/dist/Result.d.ts.map +1 -1
  66. package/dist/Result.js +2 -1
  67. package/dist/Result.js.map +1 -1
  68. package/dist/Schema.d.ts +1269 -496
  69. package/dist/Schema.d.ts.map +1 -1
  70. package/dist/Schema.js +2308 -614
  71. package/dist/Schema.js.map +1 -1
  72. package/dist/SchemaAST.d.ts +2 -2
  73. package/dist/SchemaAST.d.ts.map +1 -1
  74. package/dist/SchemaAST.js +189 -130
  75. package/dist/SchemaAST.js.map +1 -1
  76. package/dist/SchemaError.js +1 -1
  77. package/dist/SchemaError.js.map +1 -1
  78. package/dist/SchemaGetter.d.ts +13 -11
  79. package/dist/SchemaGetter.d.ts.map +1 -1
  80. package/dist/SchemaGetter.js +34 -24
  81. package/dist/SchemaGetter.js.map +1 -1
  82. package/dist/SchemaIssue.js +1 -1
  83. package/dist/SchemaIssue.js.map +1 -1
  84. package/dist/SchemaParser.d.ts.map +1 -1
  85. package/dist/SchemaParser.js +1 -12
  86. package/dist/SchemaParser.js.map +1 -1
  87. package/dist/SchemaRepresentation.d.ts +403 -1504
  88. package/dist/SchemaRepresentation.d.ts.map +1 -1
  89. package/dist/SchemaRepresentation.js +294 -2852
  90. package/dist/SchemaRepresentation.js.map +1 -1
  91. package/dist/SchemaTransformation.d.ts +2 -2
  92. package/dist/SchemaTransformation.js +3 -3
  93. package/dist/SchemaTransformation.js.map +1 -1
  94. package/dist/Semaphore.d.ts +5 -3
  95. package/dist/Semaphore.d.ts.map +1 -1
  96. package/dist/Semaphore.js.map +1 -1
  97. package/dist/Stream.d.ts +15 -9
  98. package/dist/Stream.d.ts.map +1 -1
  99. package/dist/Stream.js +46 -16
  100. package/dist/Stream.js.map +1 -1
  101. package/dist/Struct.d.ts.map +1 -1
  102. package/dist/Struct.js +5 -4
  103. package/dist/Struct.js.map +1 -1
  104. package/dist/Types.d.ts +1 -3
  105. package/dist/Types.d.ts.map +1 -1
  106. package/dist/index.d.ts +0 -4
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +0 -4
  109. package/dist/index.js.map +1 -1
  110. package/dist/internal/core.js +3 -2
  111. package/dist/internal/core.js.map +1 -1
  112. package/dist/internal/effect.js +119 -53
  113. package/dist/internal/effect.js.map +1 -1
  114. package/dist/internal/matcher.js +1 -1
  115. package/dist/internal/matcher.js.map +1 -1
  116. package/dist/internal/record.d.ts +0 -3
  117. package/dist/internal/record.d.ts.map +1 -1
  118. package/dist/internal/record.js +10 -5
  119. package/dist/internal/record.js.map +1 -1
  120. package/dist/internal/references.js +0 -4
  121. package/dist/internal/references.js.map +1 -1
  122. package/dist/internal/schema/annotations.js +12 -0
  123. package/dist/internal/schema/annotations.js.map +1 -1
  124. package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
  125. package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
  126. package/dist/internal/schema/fromJsonSchemaDocument.js +743 -0
  127. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
  128. package/dist/internal/schema/fromRepresentation.d.ts +2 -0
  129. package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
  130. package/dist/internal/schema/fromRepresentation.js +252 -0
  131. package/dist/internal/schema/fromRepresentation.js.map +1 -0
  132. package/dist/internal/schema/schema.js +28 -40
  133. package/dist/internal/schema/schema.js.map +1 -1
  134. package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
  135. package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
  136. package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
  137. package/dist/internal/schema/toArbitrary.js.map +1 -0
  138. package/dist/internal/schema/toCodeDocument.d.ts +2 -0
  139. package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
  140. package/dist/internal/schema/toCodeDocument.js +438 -0
  141. package/dist/internal/schema/toCodeDocument.js.map +1 -0
  142. package/dist/internal/schema/toEquivalence.d.ts +2 -0
  143. package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
  144. package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
  145. package/dist/internal/schema/toEquivalence.js.map +1 -0
  146. package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
  147. package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
  148. package/dist/internal/schema/toJsonSchemaDocument.js +466 -0
  149. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
  150. package/dist/internal/schema/toRepresentation.d.ts +2 -0
  151. package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
  152. package/dist/internal/schema/toRepresentation.js +369 -0
  153. package/dist/internal/schema/toRepresentation.js.map +1 -0
  154. package/dist/internal/stackTraceLimit.js +3 -6
  155. package/dist/internal/stackTraceLimit.js.map +1 -1
  156. package/dist/testing/TestClock.js +4 -1
  157. package/dist/testing/TestClock.js.map +1 -1
  158. package/dist/unstable/ai/AiError.d.ts +26 -26
  159. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  160. package/dist/unstable/ai/AiError.js +5 -4
  161. package/dist/unstable/ai/AiError.js.map +1 -1
  162. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +21 -6
  163. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  164. package/dist/unstable/ai/AnthropicStructuredOutput.js +86 -316
  165. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  166. package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
  167. package/dist/unstable/ai/EmbeddingModel.js +1 -1
  168. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  169. package/dist/unstable/ai/LanguageModel.d.ts +4 -1
  170. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  171. package/dist/unstable/ai/LanguageModel.js +19 -17
  172. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  173. package/dist/unstable/ai/McpSchema.d.ts +197 -197
  174. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  175. package/dist/unstable/ai/McpSchema.js +13 -13
  176. package/dist/unstable/ai/McpSchema.js.map +1 -1
  177. package/dist/unstable/ai/McpServer.d.ts +4 -4
  178. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  179. package/dist/unstable/ai/McpServer.js +116 -49
  180. package/dist/unstable/ai/McpServer.js.map +1 -1
  181. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +32 -10
  182. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  183. package/dist/unstable/ai/OpenAiStructuredOutput.js +193 -377
  184. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  185. package/dist/unstable/ai/Response.d.ts +19 -19
  186. package/dist/unstable/ai/Response.d.ts.map +1 -1
  187. package/dist/unstable/ai/Response.js +14 -14
  188. package/dist/unstable/ai/Response.js.map +1 -1
  189. package/dist/unstable/ai/Tool.d.ts +4 -0
  190. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  191. package/dist/unstable/ai/Tool.js +11 -3
  192. package/dist/unstable/ai/Tool.js.map +1 -1
  193. package/dist/unstable/ai/Toolkit.d.ts +9 -1
  194. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  195. package/dist/unstable/ai/Toolkit.js +14 -10
  196. package/dist/unstable/ai/Toolkit.js.map +1 -1
  197. package/dist/unstable/ai/internal/codec-transformer.js +15 -12
  198. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  199. package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
  200. package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
  201. package/dist/unstable/ai/internal/structured-output.js +316 -0
  202. package/dist/unstable/ai/internal/structured-output.js.map +1 -0
  203. package/dist/unstable/cli/CliError.d.ts +40 -2
  204. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  205. package/dist/unstable/cli/CliError.js +45 -6
  206. package/dist/unstable/cli/CliError.js.map +1 -1
  207. package/dist/unstable/cli/Command.js +14 -5
  208. package/dist/unstable/cli/Command.js.map +1 -1
  209. package/dist/unstable/cli/Param.js +3 -3
  210. package/dist/unstable/cli/Param.js.map +1 -1
  211. package/dist/unstable/cli/Primitive.js +1 -1
  212. package/dist/unstable/cli/Primitive.js.map +1 -1
  213. package/dist/unstable/cli/internal/command.d.ts +3 -1
  214. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  215. package/dist/unstable/cli/internal/command.js +11 -4
  216. package/dist/unstable/cli/internal/command.js.map +1 -1
  217. package/dist/unstable/cli/internal/config.d.ts +0 -48
  218. package/dist/unstable/cli/internal/config.d.ts.map +1 -1
  219. package/dist/unstable/cli/internal/config.js +8 -10
  220. package/dist/unstable/cli/internal/config.js.map +1 -1
  221. package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
  222. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  223. package/dist/unstable/cluster/Entity.js +1 -1
  224. package/dist/unstable/cluster/Entity.js.map +1 -1
  225. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  226. package/dist/unstable/cluster/Envelope.js +2 -1
  227. package/dist/unstable/cluster/Envelope.js.map +1 -1
  228. package/dist/unstable/cluster/Reply.js +1 -1
  229. package/dist/unstable/cluster/Reply.js.map +1 -1
  230. package/dist/unstable/cluster/Runner.d.ts +1 -1
  231. package/dist/unstable/cluster/Runner.js +1 -1
  232. package/dist/unstable/cluster/Runner.js.map +1 -1
  233. package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
  234. package/dist/unstable/cluster/RunnerAddress.js +1 -1
  235. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  236. package/dist/unstable/cluster/ShardId.js +1 -1
  237. package/dist/unstable/cluster/ShardId.js.map +1 -1
  238. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  239. package/dist/unstable/cluster/Sharding.js +125 -24
  240. package/dist/unstable/cluster/Sharding.js.map +1 -1
  241. package/dist/unstable/cluster/ShardingConfig.d.ts +10 -2
  242. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  243. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  244. package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
  245. package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
  246. package/dist/unstable/cluster/SingleRunner.js +2 -1
  247. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  248. package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
  249. package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
  250. package/dist/unstable/cluster/SqlMessageStorage.js +55 -24
  251. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  252. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  253. package/dist/unstable/cluster/SqlRunnerStorage.js +109 -62
  254. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  255. package/dist/unstable/cluster/internal/entityManager.js +19 -7
  256. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  257. package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
  258. package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
  259. package/dist/unstable/cluster/internal/shardLock.js +4 -0
  260. package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
  261. package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
  262. package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
  263. package/dist/unstable/devtools/DevToolsSchema.js +8 -5
  264. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  265. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  266. package/dist/unstable/eventlog/EventJournal.js +1 -1
  267. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  268. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  269. package/dist/unstable/eventlog/EventLog.js +15 -11
  270. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  271. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  272. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  273. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  274. package/dist/unstable/eventlog/EventLogMessage.d.ts +26 -26
  275. package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
  276. package/dist/unstable/eventlog/EventLogMessage.js +8 -3
  277. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  278. package/dist/unstable/eventlog/EventLogRemote.d.ts +1 -1
  279. package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
  280. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  281. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
  282. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  283. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
  284. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  285. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  286. package/dist/unstable/http/Cookies.js +24 -22
  287. package/dist/unstable/http/Cookies.js.map +1 -1
  288. package/dist/unstable/http/Headers.js +8 -8
  289. package/dist/unstable/http/Headers.js.map +1 -1
  290. package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
  291. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  292. package/dist/unstable/http/HttpClientRequest.js +14 -0
  293. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  294. package/dist/unstable/http/HttpRouter.d.ts +2 -2
  295. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  296. package/dist/unstable/http/HttpRouter.js.map +1 -1
  297. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  298. package/dist/unstable/http/HttpServerRequest.js +5 -4
  299. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  300. package/dist/unstable/http/Multipart.d.ts.map +1 -1
  301. package/dist/unstable/http/Multipart.js +17 -15
  302. package/dist/unstable/http/Multipart.js.map +1 -1
  303. package/dist/unstable/http/Template.js +1 -1
  304. package/dist/unstable/http/Template.js.map +1 -1
  305. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  306. package/dist/unstable/http/UrlParams.js +17 -14
  307. package/dist/unstable/http/UrlParams.js.map +1 -1
  308. package/dist/unstable/httpapi/HttpApi.js +3 -3
  309. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  310. package/dist/unstable/httpapi/HttpApiClient.js +5 -5
  311. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  312. package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
  313. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  314. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  315. package/dist/unstable/httpapi/OpenApi.js +37 -24
  316. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  317. package/dist/unstable/observability/OtlpExporter.d.ts +72 -1
  318. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  319. package/dist/unstable/observability/OtlpExporter.js +69 -4
  320. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  321. package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
  322. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  323. package/dist/unstable/observability/OtlpLogger.js +2 -2
  324. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  325. package/dist/unstable/observability/OtlpMetrics.d.ts +7 -3
  326. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  327. package/dist/unstable/observability/OtlpMetrics.js +5 -2
  328. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  329. package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
  330. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  331. package/dist/unstable/observability/OtlpTracer.js +2 -2
  332. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  333. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  334. package/dist/unstable/persistence/Persistable.js +2 -1
  335. package/dist/unstable/persistence/Persistable.js.map +1 -1
  336. package/dist/unstable/persistence/RateLimiter.d.ts +2 -2
  337. package/dist/unstable/persistence/RateLimiter.js +2 -2
  338. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  339. package/dist/unstable/persistence/Redis.d.ts.map +1 -1
  340. package/dist/unstable/persistence/Redis.js +2 -2
  341. package/dist/unstable/persistence/Redis.js.map +1 -1
  342. package/dist/unstable/process/ChildProcessSpawner.js +3 -1
  343. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  344. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  345. package/dist/unstable/reactivity/AsyncResult.js +4 -3
  346. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  347. package/dist/unstable/reactivity/Atom.d.ts +83 -0
  348. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  349. package/dist/unstable/reactivity/Atom.js +31 -0
  350. package/dist/unstable/reactivity/Atom.js.map +1 -1
  351. package/dist/unstable/reactivity/AtomRegistry.js +1 -1
  352. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  353. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  354. package/dist/unstable/rpc/RpcClient.js +2 -1
  355. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  356. package/dist/unstable/schema/VariantSchema.d.ts +1 -2
  357. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  358. package/dist/unstable/schema/VariantSchema.js +13 -10
  359. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  360. package/dist/unstable/socket/Socket.d.ts +1 -1
  361. package/dist/unstable/socket/Socket.js +1 -1
  362. package/dist/unstable/socket/Socket.js.map +1 -1
  363. package/dist/unstable/sql/SqlError.d.ts +2 -2
  364. package/dist/unstable/sql/SqlError.js +2 -2
  365. package/dist/unstable/sql/SqlError.js.map +1 -1
  366. package/dist/unstable/sql/Statement.d.ts.map +1 -1
  367. package/dist/unstable/sql/Statement.js +7 -6
  368. package/dist/unstable/sql/Statement.js.map +1 -1
  369. package/package.json +1 -1
  370. package/src/Array.ts +86 -25
  371. package/src/Channel.ts +32 -14
  372. package/src/Config.ts +6 -5
  373. package/src/ConfigProvider.ts +7 -7
  374. package/src/Data.ts +3 -2
  375. package/src/Effect.ts +70 -116
  376. package/src/FiberHandle.ts +3 -2
  377. package/src/Iterable.ts +2 -1
  378. package/src/JsonPatch.ts +4 -3
  379. package/src/JsonSchema.ts +9 -11
  380. package/src/Logger.ts +3 -2
  381. package/src/ManagedRuntime.ts +13 -0
  382. package/src/Metric.ts +4 -3
  383. package/src/MutableList.ts +4 -0
  384. package/src/Optic.ts +5 -4
  385. package/src/Option.ts +2 -1
  386. package/src/PartitionedSemaphore.ts +1 -4
  387. package/src/Record.ts +119 -22
  388. package/src/References.ts +0 -46
  389. package/src/Request.ts +5 -7
  390. package/src/Result.ts +2 -1
  391. package/src/Schema.ts +2538 -987
  392. package/src/SchemaAST.ts +228 -149
  393. package/src/SchemaError.ts +1 -1
  394. package/src/SchemaGetter.ts +36 -29
  395. package/src/SchemaIssue.ts +1 -1
  396. package/src/SchemaParser.ts +1 -25
  397. package/src/SchemaRepresentation.ts +697 -3398
  398. package/src/SchemaTransformation.ts +3 -3
  399. package/src/Semaphore.ts +5 -3
  400. package/src/Stream.ts +63 -19
  401. package/src/Struct.ts +5 -4
  402. package/src/Types.ts +1 -3
  403. package/src/index.ts +0 -5
  404. package/src/internal/core.ts +4 -3
  405. package/src/internal/effect.ts +132 -70
  406. package/src/internal/matcher.ts +1 -1
  407. package/src/internal/record.ts +11 -7
  408. package/src/internal/references.ts +0 -5
  409. package/src/internal/schema/annotations.ts +44 -0
  410. package/src/internal/schema/fromJsonSchemaDocument.ts +957 -0
  411. package/src/internal/schema/fromRepresentation.ts +345 -0
  412. package/src/internal/schema/schema.ts +45 -46
  413. package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
  414. package/src/internal/schema/toCodeDocument.ts +572 -0
  415. package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
  416. package/src/internal/schema/toJsonSchemaDocument.ts +475 -0
  417. package/src/internal/schema/toRepresentation.ts +401 -0
  418. package/src/internal/stackTraceLimit.ts +3 -7
  419. package/src/testing/TestClock.ts +1 -1
  420. package/src/unstable/ai/AiError.ts +5 -4
  421. package/src/unstable/ai/AnthropicStructuredOutput.ts +102 -333
  422. package/src/unstable/ai/EmbeddingModel.ts +1 -1
  423. package/src/unstable/ai/LanguageModel.ts +30 -28
  424. package/src/unstable/ai/McpSchema.ts +15 -15
  425. package/src/unstable/ai/McpServer.ts +172 -56
  426. package/src/unstable/ai/OpenAiStructuredOutput.ts +230 -395
  427. package/src/unstable/ai/Response.ts +24 -24
  428. package/src/unstable/ai/Tool.ts +22 -4
  429. package/src/unstable/ai/Toolkit.ts +19 -7
  430. package/src/unstable/ai/internal/codec-transformer.ts +13 -7
  431. package/src/unstable/ai/internal/structured-output.ts +458 -0
  432. package/src/unstable/cli/CliError.ts +51 -5
  433. package/src/unstable/cli/Command.ts +4 -4
  434. package/src/unstable/cli/Param.ts +3 -3
  435. package/src/unstable/cli/Primitive.ts +1 -1
  436. package/src/unstable/cli/internal/command.ts +13 -5
  437. package/src/unstable/cli/internal/config.ts +8 -10
  438. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -3
  439. package/src/unstable/cluster/Entity.ts +1 -1
  440. package/src/unstable/cluster/Envelope.ts +2 -1
  441. package/src/unstable/cluster/Reply.ts +1 -1
  442. package/src/unstable/cluster/Runner.ts +1 -1
  443. package/src/unstable/cluster/RunnerAddress.ts +1 -1
  444. package/src/unstable/cluster/ShardId.ts +1 -1
  445. package/src/unstable/cluster/Sharding.ts +161 -34
  446. package/src/unstable/cluster/ShardingConfig.ts +5 -1
  447. package/src/unstable/cluster/SingleRunner.ts +4 -2
  448. package/src/unstable/cluster/SqlMessageStorage.ts +83 -35
  449. package/src/unstable/cluster/SqlRunnerStorage.ts +186 -116
  450. package/src/unstable/cluster/internal/entityManager.ts +31 -10
  451. package/src/unstable/cluster/internal/shardLock.ts +9 -0
  452. package/src/unstable/devtools/DevToolsSchema.ts +10 -5
  453. package/src/unstable/eventlog/EventJournal.ts +1 -1
  454. package/src/unstable/eventlog/EventLog.ts +21 -11
  455. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  456. package/src/unstable/eventlog/EventLogMessage.ts +10 -3
  457. package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
  458. package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
  459. package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
  460. package/src/unstable/http/Cookies.ts +29 -24
  461. package/src/unstable/http/Headers.ts +8 -8
  462. package/src/unstable/http/HttpClientRequest.ts +57 -0
  463. package/src/unstable/http/HttpRouter.ts +6 -3
  464. package/src/unstable/http/HttpServerRequest.ts +5 -4
  465. package/src/unstable/http/Multipart.ts +16 -13
  466. package/src/unstable/http/Template.ts +1 -1
  467. package/src/unstable/http/UrlParams.ts +17 -14
  468. package/src/unstable/httpapi/HttpApi.ts +3 -3
  469. package/src/unstable/httpapi/HttpApiClient.ts +5 -5
  470. package/src/unstable/httpapi/HttpApiGroup.ts +1 -1
  471. package/src/unstable/httpapi/OpenApi.ts +52 -28
  472. package/src/unstable/observability/OtlpExporter.ts +109 -5
  473. package/src/unstable/observability/OtlpLogger.ts +5 -5
  474. package/src/unstable/observability/OtlpMetrics.ts +8 -4
  475. package/src/unstable/observability/OtlpTracer.ts +8 -4
  476. package/src/unstable/persistence/Persistable.ts +3 -2
  477. package/src/unstable/persistence/RateLimiter.ts +2 -2
  478. package/src/unstable/persistence/Redis.ts +2 -2
  479. package/src/unstable/process/ChildProcessSpawner.ts +1 -1
  480. package/src/unstable/reactivity/AsyncResult.ts +4 -3
  481. package/src/unstable/reactivity/Atom.ts +92 -0
  482. package/src/unstable/reactivity/AtomRegistry.ts +1 -1
  483. package/src/unstable/rpc/RpcClient.ts +2 -1
  484. package/src/unstable/schema/VariantSchema.ts +14 -24
  485. package/src/unstable/socket/Socket.ts +1 -1
  486. package/src/unstable/sql/SqlError.ts +2 -2
  487. package/src/unstable/sql/Statement.ts +7 -6
  488. package/dist/SchemaUtils.d.ts +0 -28
  489. package/dist/SchemaUtils.d.ts.map +0 -1
  490. package/dist/SchemaUtils.js +0 -45
  491. package/dist/SchemaUtils.js.map +0 -1
  492. package/dist/internal/schema/arbitrary.d.ts.map +0 -1
  493. package/dist/internal/schema/arbitrary.js.map +0 -1
  494. package/dist/internal/schema/equivalence.d.ts +0 -2
  495. package/dist/internal/schema/equivalence.d.ts.map +0 -1
  496. package/dist/internal/schema/equivalence.js.map +0 -1
  497. package/dist/internal/schema/representation.d.ts +0 -2
  498. package/dist/internal/schema/representation.d.ts.map +0 -1
  499. package/dist/internal/schema/representation.js +0 -865
  500. package/dist/internal/schema/representation.js.map +0 -1
  501. package/src/SchemaUtils.ts +0 -51
  502. package/src/internal/schema/representation.ts +0 -795
@@ -2135,7 +2135,7 @@ export const HttpRequestDetails = Schema.Struct({
2135
2135
  method: Schema.Literals(["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE"]),
2136
2136
  url: Schema.String,
2137
2137
  urlParams: Schema.Array(Schema.Tuple([Schema.String, Schema.String])),
2138
- hash: Schema.UndefinedOr(Schema.String),
2138
+ hash: Schema.optional(Schema.String),
2139
2139
  headers: Schema.Record(
2140
2140
  Schema.String,
2141
2141
  Schema.Union([
@@ -2172,7 +2172,7 @@ export const HttpRequestDetails = Schema.Struct({
2172
2172
  * @since 4.0.0
2173
2173
  */
2174
2174
  export const HttpResponseDetails = Schema.Struct({
2175
- status: Schema.Number,
2175
+ status: Schema.Int,
2176
2176
  headers: Schema.Record(
2177
2177
  Schema.String,
2178
2178
  Schema.Union([
@@ -2213,19 +2213,19 @@ export interface ResponseMetadataPart extends BasePart<"response-metadata", Resp
2213
2213
  /**
2214
2214
  * Optional unique identifier for this specific response.
2215
2215
  */
2216
- readonly id: string | undefined
2216
+ readonly id?: string | undefined
2217
2217
  /**
2218
2218
  * Optional identifier of the AI model that generated the response.
2219
2219
  */
2220
- readonly modelId: string | undefined
2220
+ readonly modelId?: string | undefined
2221
2221
  /**
2222
2222
  * Optional timestamp when the response was generated.
2223
2223
  */
2224
- readonly timestamp: DateTime.Utc | undefined
2224
+ readonly timestamp?: DateTime.Utc | undefined
2225
2225
  /**
2226
2226
  * Optional HTTP request details for the request made to the AI provider.
2227
2227
  */
2228
- readonly request: typeof HttpRequestDetails.Type | undefined
2228
+ readonly request?: typeof HttpRequestDetails.Type | undefined
2229
2229
  }
2230
2230
 
2231
2231
  /**
@@ -2272,10 +2272,10 @@ export interface ResponseMetadataPartMetadata extends ProviderMetadata {}
2272
2272
  */
2273
2273
  export const ResponseMetadataPart: Schema.Struct<{
2274
2274
  readonly type: Schema.tag<"response-metadata">
2275
- readonly id: Schema.UndefinedOr<Schema.String>
2276
- readonly modelId: Schema.UndefinedOr<Schema.String>
2277
- readonly timestamp: Schema.UndefinedOr<Schema.DateTimeUtcFromString>
2278
- readonly request: Schema.UndefinedOr<typeof HttpRequestDetails>
2275
+ readonly id: Schema.optional<Schema.String>
2276
+ readonly modelId: Schema.optional<Schema.String>
2277
+ readonly timestamp: Schema.optional<Schema.DateTimeUtcFromString>
2278
+ readonly request: Schema.optional<typeof HttpRequestDetails>
2279
2279
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
2280
2280
  readonly metadata: Schema.withDecodingDefault<
2281
2281
  Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
@@ -2283,10 +2283,10 @@ export const ResponseMetadataPart: Schema.Struct<{
2283
2283
  }> = Schema.Struct({
2284
2284
  ...BasePart.fields,
2285
2285
  type: Schema.tag("response-metadata"),
2286
- id: Schema.UndefinedOr(Schema.String),
2287
- modelId: Schema.UndefinedOr(Schema.String),
2288
- timestamp: Schema.UndefinedOr(Schema.DateTimeUtcFromString),
2289
- request: Schema.UndefinedOr(HttpRequestDetails)
2286
+ id: Schema.optional(Schema.String),
2287
+ modelId: Schema.optional(Schema.String),
2288
+ timestamp: Schema.optional(Schema.DateTimeUtcFromString),
2289
+ request: Schema.optional(HttpRequestDetails)
2290
2290
  }).annotate({ identifier: "ResponseMetadataPart" }) satisfies Schema.Codec<
2291
2291
  ResponseMetadataPart,
2292
2292
  ResponseMetadataPartEncoded
@@ -2368,19 +2368,19 @@ export class Usage extends Schema.Class<Usage>("effect/ai/AiResponse/Usage")({
2368
2368
  /**
2369
2369
  * The number of non-cached input (i.e. prompt) tokens used.
2370
2370
  */
2371
- uncached: Schema.UndefinedOr(Schema.Number),
2371
+ uncached: Schema.optional(Schema.Int),
2372
2372
  /**
2373
2373
  * The total of number of input (i.e. prompt) tokens used.
2374
2374
  */
2375
- total: Schema.UndefinedOr(Schema.Number),
2375
+ total: Schema.optional(Schema.Int),
2376
2376
  /**
2377
2377
  * The number of cached input (i.e. prompt) tokens read.
2378
2378
  */
2379
- cacheRead: Schema.UndefinedOr(Schema.Number),
2379
+ cacheRead: Schema.optional(Schema.Int),
2380
2380
  /**
2381
2381
  * The number of cached input (i.e. prompt) tokens written.
2382
2382
  */
2383
- cacheWrite: Schema.UndefinedOr(Schema.Number)
2383
+ cacheWrite: Schema.optional(Schema.Int)
2384
2384
  }),
2385
2385
  /**
2386
2386
  * Information about the output (i.e. response) tokens used.
@@ -2389,15 +2389,15 @@ export class Usage extends Schema.Class<Usage>("effect/ai/AiResponse/Usage")({
2389
2389
  /**
2390
2390
  * The total of number of output (i.e. response) tokens used.
2391
2391
  */
2392
- total: Schema.UndefinedOr(Schema.Number),
2392
+ total: Schema.optional(Schema.Int),
2393
2393
  /**
2394
2394
  * The number of text tokens used.
2395
2395
  */
2396
- text: Schema.UndefinedOr(Schema.Number),
2396
+ text: Schema.optional(Schema.Int),
2397
2397
  /**
2398
2398
  * The number of reasoning tokens used.
2399
2399
  */
2400
- reasoning: Schema.UndefinedOr(Schema.Number)
2400
+ reasoning: Schema.optional(Schema.Int)
2401
2401
  })
2402
2402
  }) {}
2403
2403
 
@@ -2443,7 +2443,7 @@ export interface FinishPart extends BasePart<"finish", FinishPartMetadata> {
2443
2443
  /**
2444
2444
  * Optional HTTP response details from the AI provider.
2445
2445
  */
2446
- readonly response: typeof HttpResponseDetails.Type | undefined
2446
+ readonly response?: typeof HttpResponseDetails.Type | undefined
2447
2447
  }
2448
2448
 
2449
2449
  /**
@@ -2500,7 +2500,7 @@ export const FinishPart: Schema.Struct<{
2500
2500
  "unknown"
2501
2501
  ]>
2502
2502
  readonly usage: typeof Usage
2503
- readonly response: Schema.UndefinedOr<typeof HttpResponseDetails>
2503
+ readonly response: Schema.optional<typeof HttpResponseDetails>
2504
2504
  readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
2505
2505
  readonly metadata: Schema.withDecodingDefault<
2506
2506
  Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
@@ -2510,7 +2510,7 @@ export const FinishPart: Schema.Struct<{
2510
2510
  type: Schema.tag("finish"),
2511
2511
  reason: FinishReason,
2512
2512
  usage: Usage,
2513
- response: Schema.UndefinedOr(HttpResponseDetails)
2513
+ response: Schema.optional(HttpResponseDetails)
2514
2514
  }).annotate({ identifier: "FinishPart" }) satisfies Schema.Codec<FinishPart, FinishPartEncoded>
2515
2515
 
2516
2516
  // =============================================================================
@@ -273,6 +273,13 @@ export interface Tool<
273
273
  */
274
274
  readonly needsApproval?: boolean | NeedsApprovalFunction<any> | undefined
275
275
 
276
+ /**
277
+ * Set whether user approval is required before executing this tool.
278
+ */
279
+ setNeedsApproval(
280
+ needsApproval: NeedsApproval<Config["parameters"]>
281
+ ): Tool<Name, Config, Requirements>
282
+
276
283
  /**
277
284
  * Adds a _request-level_ dependency which must be provided before the tool
278
285
  * call handler can be executed.
@@ -1051,6 +1058,9 @@ const Proto = {
1051
1058
  setFailure(this: Any, failureSchema: Schema.Constraint) {
1052
1059
  return clone(this, { failureSchema })
1053
1060
  },
1061
+ setNeedsApproval(this: Any, needsApproval: NeedsApproval<any>) {
1062
+ return clone(this, { needsApproval })
1063
+ },
1054
1064
  annotate<I, S>(this: Any, tag: Context.Key<I, S>, value: S) {
1055
1065
  return clone(this, { annotations: Context.add(this.annotations, tag, value) })
1056
1066
  },
@@ -1707,10 +1717,18 @@ export const getJsonSchema = <Tool extends Any>(tool: Tool, options?: {
1707
1717
  export const getJsonSchemaFromSchema = <S extends Schema.Constraint>(schema: S, options?: {
1708
1718
  readonly transformer?: CodecTransformer
1709
1719
  }): JsonSchema.JsonSchema => {
1720
+ return getJsonSchemaFromSchemaWith(schema, Schema.toJsonSchemaDocument, options)
1721
+ }
1722
+
1723
+ const getJsonSchemaFromSchemaWith = <S extends Schema.Constraint>(
1724
+ schema: S,
1725
+ toJsonSchemaDocument: (schema: Schema.Constraint) => JsonSchema.Document<"draft-2020-12">,
1726
+ options?: { readonly transformer?: CodecTransformer }
1727
+ ): JsonSchema.JsonSchema => {
1710
1728
  if (Predicate.isNotUndefined(options?.transformer)) {
1711
1729
  return options.transformer(schema).jsonSchema
1712
1730
  }
1713
- const document = Schema.toJsonSchemaDocument(schema)
1731
+ const document = toJsonSchemaDocument(schema)
1714
1732
  if (Object.keys(document.definitions).length > 0) {
1715
1733
  document.schema.$defs = document.definitions
1716
1734
  }
@@ -1956,13 +1974,13 @@ function filter(obj: any) {
1956
1974
  next = []
1957
1975
 
1958
1976
  for (const node of nodes) {
1959
- if (Object.prototype.hasOwnProperty.call(node, "__proto__")) {
1977
+ if (Object.hasOwn(node, "__proto__")) {
1960
1978
  throw new SyntaxError("Object contains forbidden prototype property")
1961
1979
  }
1962
1980
 
1963
1981
  if (
1964
- Object.prototype.hasOwnProperty.call(node, "constructor") &&
1965
- Object.prototype.hasOwnProperty.call(node.constructor, "prototype")
1982
+ Object.hasOwn(node, "constructor") &&
1983
+ Object.hasOwn(node.constructor, "prototype")
1966
1984
  ) {
1967
1985
  throw new SyntaxError("Object contains forbidden prototype property")
1968
1986
  }
@@ -15,6 +15,7 @@ import * as Effect from "../../Effect.ts"
15
15
  import * as Effectable from "../../Effectable.ts"
16
16
  import * as Fiber from "../../Fiber.ts"
17
17
  import { identity } from "../../Function.ts"
18
+ import * as InternalRecord from "../../internal/record.ts"
18
19
  import * as Layer from "../../Layer.ts"
19
20
  import * as Predicate from "../../Predicate.ts"
20
21
  import * as Queue from "../../Queue.ts"
@@ -105,6 +106,10 @@ export interface Toolkit<in out Tools extends Record<string, Tool.Any>> extends
105
106
  * @since 4.0.0
106
107
  */
107
108
  export interface HandlerContext<Tool extends Tool.Any> {
109
+ /**
110
+ * The unique identifier of the tool call, when available.
111
+ */
112
+ readonly toolCallId?: string | undefined
108
113
  /**
109
114
  * Emit a preliminary result during long-running tool calls.
110
115
  *
@@ -199,7 +204,11 @@ export interface WithHandler<in out Tools extends Record<string, Tool.Any>> {
199
204
  /**
200
205
  * Parameters to pass to the tool handler.
201
206
  */
202
- params: Tool.Parameters<Tools[Name]>
207
+ params: Tool.Parameters<Tools[Name]>,
208
+ /**
209
+ * The unique identifier of the tool call.
210
+ */
211
+ toolCallId?: string
203
212
  ) => Effect.Effect<
204
213
  Stream.Stream<
205
214
  Tool.HandlerResult<Tools[Name]>,
@@ -257,8 +266,8 @@ const Proto = {
257
266
  return schemas
258
267
  }
259
268
 
260
- const handle = Effect.fnUntraced(function*(name: string, params: unknown) {
261
- const tool = tools[name]
269
+ const handle = Effect.fnUntraced(function*(name: string, params: unknown, toolCallId?: string) {
270
+ const tool = Object.hasOwn(tools, name) ? tools[name] : undefined
262
271
 
263
272
  yield* Effect.annotateCurrentSpan({
264
273
  tool: name,
@@ -302,6 +311,7 @@ const Proto = {
302
311
  readonly preliminary: boolean
303
312
  }, Cause.Done>()
304
313
  const context: HandlerContext<any> = {
314
+ toolCallId,
305
315
  preliminary: (result) =>
306
316
  Effect.asVoid(Queue.offer(queue, {
307
317
  result,
@@ -390,8 +400,10 @@ const Proto = {
390
400
  const handlers = Effect.isEffect(build) ? yield* build : build
391
401
  const context = new Map<string, unknown>()
392
402
  for (const [name, handler] of Object.entries(handlers)) {
393
- const tool = this.tools[name]!
394
- context.set(tool.id, { name, handler, context: services })
403
+ const tool = Object.hasOwn(this.tools, name) ? this.tools[name] : undefined
404
+ if (tool !== undefined) {
405
+ context.set(tool.id, { name, handler, context: services })
406
+ }
395
407
  }
396
408
  return Context.makeUnsafe(context)
397
409
  })
@@ -418,7 +430,7 @@ const resolveInput = <Tools extends ReadonlyArray<Tool.Any>>(
418
430
  ): Record<string, Tools[number]> => {
419
431
  const output = {} as Record<string, Tools[number]>
420
432
  for (const tool of tools) {
421
- output[tool.name] = tool
433
+ InternalRecord.assignProperty(output, tool.name, tool)
422
434
  }
423
435
  return output
424
436
  }
@@ -547,7 +559,7 @@ export const merge = <const Toolkits extends ReadonlyArray<Any>>(
547
559
  const tools = {} as Record<string, any>
548
560
  for (const toolkit of toolkits) {
549
561
  for (const [name, tool] of Object.entries(toolkit.tools)) {
550
- tools[name] = tool
562
+ InternalRecord.assignProperty(tools, name, tool)
551
563
  }
552
564
  }
553
565
  return makeProto(tools) as any
@@ -2,12 +2,18 @@ import * as JsonSchema from "../../../JsonSchema.ts"
2
2
  import * as Schema from "../../../Schema.ts"
3
3
  import type { CodecTransformer } from "../LanguageModel.ts"
4
4
 
5
- /** @internal */
6
- export const defaultCodecTransformer: CodecTransformer = (codec) => {
7
- const document = JsonSchema.resolveTopLevel$ref(Schema.toJsonSchemaDocument(codec))
8
- const jsonSchema = { ...document.schema }
9
- if (Object.keys(document.definitions).length > 0) {
10
- jsonSchema.$defs = document.definitions
5
+ const makeDefaultCodecTransformer = (
6
+ toJsonSchemaDocument: (schema: Schema.Constraint) => JsonSchema.Document<"draft-2020-12">
7
+ ): CodecTransformer => {
8
+ return (codec) => {
9
+ const document = JsonSchema.resolveTopLevel$ref(toJsonSchemaDocument(codec))
10
+ const jsonSchema = { ...document.schema }
11
+ if (Object.keys(document.definitions).length > 0) {
12
+ jsonSchema.$defs = document.definitions
13
+ }
14
+ return { codec, jsonSchema }
11
15
  }
12
- return { codec, jsonSchema }
13
16
  }
17
+
18
+ /** @internal */
19
+ export const defaultCodecTransformer = makeDefaultCodecTransformer(Schema.toJsonSchemaDocument)