@sayoriqwq/effect-harness 0.0.1

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 (2055) hide show
  1. package/HARNESS.md +34 -0
  2. package/README.md +113 -0
  3. package/dist/bin/effect-harness.d.ts +2 -0
  4. package/dist/bin/effect-harness.js +39 -0
  5. package/dist/bin/effect-harness.js.map +1 -0
  6. package/dist/src/cli/Main.d.ts +6 -0
  7. package/dist/src/cli/Main.js +141 -0
  8. package/dist/src/cli/Main.js.map +1 -0
  9. package/dist/src/harness/CraftSkills.d.ts +14 -0
  10. package/dist/src/harness/CraftSkills.js +164 -0
  11. package/dist/src/harness/CraftSkills.js.map +1 -0
  12. package/dist/src/harness/Errors.d.ts +24 -0
  13. package/dist/src/harness/Errors.js +26 -0
  14. package/dist/src/harness/Errors.js.map +1 -0
  15. package/dist/src/harness/GuardrailRules.d.ts +6 -0
  16. package/dist/src/harness/GuardrailRules.js +303 -0
  17. package/dist/src/harness/GuardrailRules.js.map +1 -0
  18. package/dist/src/harness/Guardrails.d.ts +10 -0
  19. package/dist/src/harness/Guardrails.js +69 -0
  20. package/dist/src/harness/Guardrails.js.map +1 -0
  21. package/dist/src/harness/Init.d.ts +9 -0
  22. package/dist/src/harness/Init.js +234 -0
  23. package/dist/src/harness/Init.js.map +1 -0
  24. package/dist/src/harness/Model.d.ts +44 -0
  25. package/dist/src/harness/Model.js +169 -0
  26. package/dist/src/harness/Model.js.map +1 -0
  27. package/dist/src/harness/ModuleSources.d.ts +5 -0
  28. package/dist/src/harness/ModuleSources.js +47 -0
  29. package/dist/src/harness/ModuleSources.js.map +1 -0
  30. package/dist/src/harness/PnpmWorkspace.d.ts +2 -0
  31. package/dist/src/harness/PnpmWorkspace.js +23 -0
  32. package/dist/src/harness/PnpmWorkspace.js.map +1 -0
  33. package/dist/src/harness/Publish.d.ts +53 -0
  34. package/dist/src/harness/Publish.js +282 -0
  35. package/dist/src/harness/Publish.js.map +1 -0
  36. package/dist/src/harness/SelfVerify.d.ts +4 -0
  37. package/dist/src/harness/SelfVerify.js +56 -0
  38. package/dist/src/harness/SelfVerify.js.map +1 -0
  39. package/dist/src/harness/SourcePin.d.ts +12 -0
  40. package/dist/src/harness/SourcePin.js +320 -0
  41. package/dist/src/harness/SourcePin.js.map +1 -0
  42. package/dist/src/harness/Status.d.ts +12 -0
  43. package/dist/src/harness/Status.js +88 -0
  44. package/dist/src/harness/Status.js.map +1 -0
  45. package/dist/src/harness/TargetVerify.d.ts +8 -0
  46. package/dist/src/harness/TargetVerify.js +432 -0
  47. package/dist/src/harness/TargetVerify.js.map +1 -0
  48. package/dist/src/harness/TestContract.d.ts +6 -0
  49. package/dist/src/harness/TestContract.js +45 -0
  50. package/dist/src/harness/TestContract.js.map +1 -0
  51. package/dist/src/platform/Json.d.ts +8 -0
  52. package/dist/src/platform/Json.js +35 -0
  53. package/dist/src/platform/Json.js.map +1 -0
  54. package/dist/src/platform/ManagedFiles.d.ts +8 -0
  55. package/dist/src/platform/ManagedFiles.js +59 -0
  56. package/dist/src/platform/ManagedFiles.js.map +1 -0
  57. package/dist/src/platform/Process.d.ts +8 -0
  58. package/dist/src/platform/Process.js +80 -0
  59. package/dist/src/platform/Process.js.map +1 -0
  60. package/guide/default-capabilities.md +38 -0
  61. package/guide/index.md +49 -0
  62. package/guide/setup.md +64 -0
  63. package/harness/default-capabilities.md +32 -0
  64. package/harness/exposure.md +46 -0
  65. package/harness/feedback/index.md +60 -0
  66. package/harness/index.md +22 -0
  67. package/harness/official-inventory.md +85 -0
  68. package/harness/runtime/codex/AGENTS.fragment.md +28 -0
  69. package/harness/runtime/codex/agents/effect-worker.md +26 -0
  70. package/harness/runtime/codex/skills/effect-code/SKILL.md +72 -0
  71. package/harness/runtime/codex/skills/effect-code/agents/openai.yaml +4 -0
  72. package/harness/runtime/codex/skills/effect-feedback/SKILL.md +66 -0
  73. package/harness/runtime/codex/skills/effect-feedback/agents/openai.yaml +4 -0
  74. package/harness/source.md +52 -0
  75. package/harness/target-agent-contract.md +205 -0
  76. package/package.json +68 -0
  77. package/repos/craft-skills.manifest.json +34 -0
  78. package/repos/effect/.agents/skills/grill-me/SKILL.md +43 -0
  79. package/repos/effect/.agents/skills/jsdocs/SKILL.md +203 -0
  80. package/repos/effect/.agents/skills/scratchpad/SKILL.md +44 -0
  81. package/repos/effect/.agents/skills/scratchpad/agents/openai.yaml +7 -0
  82. package/repos/effect/.agents/skills/scratchpad/scripts/extract-example.mjs +260 -0
  83. package/repos/effect/.changeset/add-bigdecimal-sumall-multiplyall.md +5 -0
  84. package/repos/effect/.changeset/add-chunk-schema.md +5 -0
  85. package/repos/effect/.changeset/add-command-hidden.md +19 -0
  86. package/repos/effect/.changeset/add-config-nested.md +5 -0
  87. package/repos/effect/.changeset/add-flag-hidden.md +15 -0
  88. package/repos/effect/.changeset/add-from-string-schemas.md +5 -0
  89. package/repos/effect/.changeset/add-headers-remove-many.md +5 -0
  90. package/repos/effect/.changeset/add-indexeddb-kvs-layer.md +5 -0
  91. package/repos/effect/.changeset/add-make-msgpack.md +5 -0
  92. package/repos/effect/.changeset/add-make-option.md +5 -0
  93. package/repos/effect/.changeset/add-missing-tx-modules.md +11 -0
  94. package/repos/effect/.changeset/add-newtype-module.md +5 -0
  95. package/repos/effect/.changeset/add-scalar-show-operation-id.md +5 -0
  96. package/repos/effect/.changeset/add-schedule-tap.md +5 -0
  97. package/repos/effect/.changeset/add-schema-annotate-encoded.md +5 -0
  98. package/repos/effect/.changeset/add-schema-array-ensure.md +5 -0
  99. package/repos/effect/.changeset/add-schema-bigdecimal.md +5 -0
  100. package/repos/effect/.changeset/add-schema-datetime.md +5 -0
  101. package/repos/effect/.changeset/add-schema-option-from-optional-nullor.md +5 -0
  102. package/repos/effect/.changeset/add-schema-option-from-undefined-nullish.md +5 -0
  103. package/repos/effect/.changeset/add-schema-string-encoding.md +5 -0
  104. package/repos/effect/.changeset/add-sql-pglite.md +5 -0
  105. package/repos/effect/.changeset/add-standard-jsdoc-rule.md +5 -0
  106. package/repos/effect/.changeset/add-stream-broadcastn.md +5 -0
  107. package/repos/effect/.changeset/add-unstable-encoding-export.md +5 -0
  108. package/repos/effect/.changeset/afraid-cobras-like.md +5 -0
  109. package/repos/effect/.changeset/ai-openai-config-field-leak.md +6 -0
  110. package/repos/effect/.changeset/ai-openai-file-nullable-fields.md +5 -0
  111. package/repos/effect/.changeset/anthropic-4-6-structured-output.md +5 -0
  112. package/repos/effect/.changeset/asyncresult-exhaustive.md +5 -0
  113. package/repos/effect/.changeset/atom-stream-error-type.md +5 -0
  114. package/repos/effect/.changeset/beige-paths-sort.md +5 -0
  115. package/repos/effect/.changeset/better-apples-nail.md +5 -0
  116. package/repos/effect/.changeset/better-rocks-arrive.md +5 -0
  117. package/repos/effect/.changeset/big-pans-look.md +5 -0
  118. package/repos/effect/.changeset/blue-dingos-greet.md +5 -0
  119. package/repos/effect/.changeset/blue-ligers-cheat.md +5 -0
  120. package/repos/effect/.changeset/blue-onions-smile.md +5 -0
  121. package/repos/effect/.changeset/blue-ravens-type.md +5 -0
  122. package/repos/effect/.changeset/blue-trams-kiss.md +7 -0
  123. package/repos/effect/.changeset/bold-chairs-yawn.md +5 -0
  124. package/repos/effect/.changeset/bold-planets-shout.md +30 -0
  125. package/repos/effect/.changeset/breezy-meals-see.md +5 -0
  126. package/repos/effect/.changeset/bright-bugs-bow.md +5 -0
  127. package/repos/effect/.changeset/bright-canyons-clean.md +5 -0
  128. package/repos/effect/.changeset/bright-dogs-fail.md +5 -0
  129. package/repos/effect/.changeset/bright-flags-stand.md +5 -0
  130. package/repos/effect/.changeset/bright-laws-teach.md +5 -0
  131. package/repos/effect/.changeset/bright-lemons-dance.md +5 -0
  132. package/repos/effect/.changeset/bright-planes-smash.md +5 -0
  133. package/repos/effect/.changeset/bright-rats-attend.md +5 -0
  134. package/repos/effect/.changeset/bright-toes-rush.md +5 -0
  135. package/repos/effect/.changeset/bumpy-boxes-teach.md +5 -0
  136. package/repos/effect/.changeset/busy-lions-sneeze.md +5 -0
  137. package/repos/effect/.changeset/busy-maps-attend.md +7 -0
  138. package/repos/effect/.changeset/calm-buckets-own.md +5 -0
  139. package/repos/effect/.changeset/calm-carrots-march.md +7 -0
  140. package/repos/effect/.changeset/calm-cars-rest.md +5 -0
  141. package/repos/effect/.changeset/calm-panthers-nail.md +5 -0
  142. package/repos/effect/.changeset/calm-seas-smile.md +5 -0
  143. package/repos/effect/.changeset/calm-squids-hug.md +5 -0
  144. package/repos/effect/.changeset/chatty-poets-type.md +5 -0
  145. package/repos/effect/.changeset/chilled-mice-wash.md +5 -0
  146. package/repos/effect/.changeset/chilly-pumas-rule.md +5 -0
  147. package/repos/effect/.changeset/chubby-buckets-feel.md +5 -0
  148. package/repos/effect/.changeset/chubby-parents-flow.md +5 -0
  149. package/repos/effect/.changeset/chubby-planets-fall.md +5 -0
  150. package/repos/effect/.changeset/clean-balloons-tan.md +5 -0
  151. package/repos/effect/.changeset/clean-bulldogs-care.md +5 -0
  152. package/repos/effect/.changeset/clean-dryers-sneeze.md +5 -0
  153. package/repos/effect/.changeset/clean-geese-work.md +5 -0
  154. package/repos/effect/.changeset/clean-goats-wave.md +5 -0
  155. package/repos/effect/.changeset/clean-needles-shake.md +23 -0
  156. package/repos/effect/.changeset/clean-tires-guess.md +5 -0
  157. package/repos/effect/.changeset/clear-spies-boil.md +5 -0
  158. package/repos/effect/.changeset/cli-help-choices.md +5 -0
  159. package/repos/effect/.changeset/cold-knives-lie.md +35 -0
  160. package/repos/effect/.changeset/cold-rooms-show.md +5 -0
  161. package/repos/effect/.changeset/cold-sloths-wave.md +5 -0
  162. package/repos/effect/.changeset/compact-json-schema-enum.md +25 -0
  163. package/repos/effect/.changeset/config-withdefault-eager.md +7 -0
  164. package/repos/effect/.changeset/config.json +24 -0
  165. package/repos/effect/.changeset/consolidate-encoding.md +5 -0
  166. package/repos/effect/.changeset/consolidate-sql-error.md +16 -0
  167. package/repos/effect/.changeset/crisp-seas-warn.md +5 -0
  168. package/repos/effect/.changeset/cuddly-rooms-bet.md +5 -0
  169. package/repos/effect/.changeset/curly-poems-talk.md +5 -0
  170. package/repos/effect/.changeset/curly-spies-relax.md +5 -0
  171. package/repos/effect/.changeset/curvy-apples-float.md +5 -0
  172. package/repos/effect/.changeset/custom-http-security-openapi-generator.md +5 -0
  173. package/repos/effect/.changeset/cute-heads-thank.md +5 -0
  174. package/repos/effect/.changeset/cyan-loops-grow.md +5 -0
  175. package/repos/effect/.changeset/cyan-radios-switch.md +5 -0
  176. package/repos/effect/.changeset/deep-rivers-spend.md +5 -0
  177. package/repos/effect/.changeset/dirty-lamps-trade.md +5 -0
  178. package/repos/effect/.changeset/dirty-laws-wear.md +5 -0
  179. package/repos/effect/.changeset/duration-temporal-object-input.md +7 -0
  180. package/repos/effect/.changeset/eager-coats-cheat.md +5 -0
  181. package/repos/effect/.changeset/early-birds-dream.md +5 -0
  182. package/repos/effect/.changeset/early-donuts-argue.md +5 -0
  183. package/repos/effect/.changeset/early-peaches-check.md +6 -0
  184. package/repos/effect/.changeset/eff-691-default-logger-ordering.md +5 -0
  185. package/repos/effect/.changeset/eff-693-rpcgroup-handler-deps.md +5 -0
  186. package/repos/effect/.changeset/eff-694-cli-completions-module.md +5 -0
  187. package/repos/effect/.changeset/eff-695-layer-mock-dual-api.md +5 -0
  188. package/repos/effect/.changeset/eff-697-rpcserialization-json-array-decode.md +5 -0
  189. package/repos/effect/.changeset/eff-698-rpcserialization-unreachable-branch.md +5 -0
  190. package/repos/effect/.changeset/eff-700-httpapi-middleware-errors.md +12 -0
  191. package/repos/effect/.changeset/eff-701-httpapierror-respondable.md +5 -0
  192. package/repos/effect/.changeset/eff-704-stream-merge-predicate.md +5 -0
  193. package/repos/effect/.changeset/eff-705-layer-tap-apis.md +5 -0
  194. package/repos/effect/.changeset/eff-706-servicemap-mutate.md +6 -0
  195. package/repos/effect/.changeset/eff-716-response-id-tracker-map.md +5 -0
  196. package/repos/effect/.changeset/eff-717-openai-socket-cancel.md +5 -0
  197. package/repos/effect/.changeset/eff-718-embedding-model-surface.md +13 -0
  198. package/repos/effect/.changeset/eff-725-fix-catch-jsdoc.md +5 -0
  199. package/repos/effect/.changeset/eff-726-model-dimensions.md +7 -0
  200. package/repos/effect/.changeset/eff-727-cli-help-alignment.md +5 -0
  201. package/repos/effect/.changeset/eff-730-language-model-incremental-fallback.md +5 -0
  202. package/repos/effect/.changeset/eff-736-cached-with-ttl.md +5 -0
  203. package/repos/effect/.changeset/eff-738-cron-prev.md +5 -0
  204. package/repos/effect/.changeset/eff-739-openai-function-call-done.md +5 -0
  205. package/repos/effect/.changeset/eff-740-missing-summary-parts.md +5 -0
  206. package/repos/effect/.changeset/eff-742-http-client-request-web.md +5 -0
  207. package/repos/effect/.changeset/eff-744-sqlite-migrator-lock.md +5 -0
  208. package/repos/effect/.changeset/eff-746-fixed-iteration-catchup.md +5 -0
  209. package/repos/effect/.changeset/eff-747-unify-effect.md +5 -0
  210. package/repos/effect/.changeset/eff-754-url-builder-any.md +6 -0
  211. package/repos/effect/.changeset/eff-755-references-core.md +5 -0
  212. package/repos/effect/.changeset/eff-769-select-text-highlight.md +5 -0
  213. package/repos/effect/.changeset/eff-774-mutable-list-append-all-empty-array.md +5 -0
  214. package/repos/effect/.changeset/eff-777-schema-make-effect.md +5 -0
  215. package/repos/effect/.changeset/eff-778-http-middleware-path-logger.md +5 -0
  216. package/repos/effect/.changeset/eff-779-keyvaluestore-layer-sql.md +5 -0
  217. package/repos/effect/.changeset/eff-780-layer-unify.md +5 -0
  218. package/repos/effect/.changeset/eff-781-fix-stream-toqueue-types.md +5 -0
  219. package/repos/effect/.changeset/eff-782-httpapi-status-literals.md +5 -0
  220. package/repos/effect/.changeset/eff-783-atom-http-api-errors.md +5 -0
  221. package/repos/effect/.changeset/eff-819-cluster-workflow-shard-groups.md +5 -0
  222. package/repos/effect/.changeset/eight-turkeys-own.md +7 -0
  223. package/repos/effect/.changeset/eighty-lies-deny.md +5 -0
  224. package/repos/effect/.changeset/eighty-poets-draw.md +9 -0
  225. package/repos/effect/.changeset/eighty-swans-scream.md +5 -0
  226. package/repos/effect/.changeset/eighty-teeth-sniff.md +5 -0
  227. package/repos/effect/.changeset/eleven-apes-share.md +5 -0
  228. package/repos/effect/.changeset/eleven-numbers-bake.md +5 -0
  229. package/repos/effect/.changeset/empty-gifts-beg.md +5 -0
  230. package/repos/effect/.changeset/empty-http-rpc-client.md +5 -0
  231. package/repos/effect/.changeset/eventlog-unencrypted.md +5 -0
  232. package/repos/effect/.changeset/expand-schema-filter-output.md +24 -0
  233. package/repos/effect/.changeset/export-schema-encode-keys-interface.md +7 -0
  234. package/repos/effect/.changeset/extract-semaphore-latch.md +10 -0
  235. package/repos/effect/.changeset/fair-bees-relax.md +5 -0
  236. package/repos/effect/.changeset/fair-buttons-share.md +7 -0
  237. package/repos/effect/.changeset/fair-cooks-stop.md +5 -0
  238. package/repos/effect/.changeset/fair-cups-train.md +5 -0
  239. package/repos/effect/.changeset/fair-dryers-speak.md +5 -0
  240. package/repos/effect/.changeset/fair-forks-shake.md +5 -0
  241. package/repos/effect/.changeset/fair-pandas-prove.md +5 -0
  242. package/repos/effect/.changeset/fair-pants-float.md +5 -0
  243. package/repos/effect/.changeset/fair-poems-visit.md +5 -0
  244. package/repos/effect/.changeset/famous-wolves-lead.md +5 -0
  245. package/repos/effect/.changeset/fancy-glasses-grow.md +5 -0
  246. package/repos/effect/.changeset/fast-times-camp.md +5 -0
  247. package/repos/effect/.changeset/few-birds-matter.md +5 -0
  248. package/repos/effect/.changeset/few-cougars-dig.md +5 -0
  249. package/repos/effect/.changeset/few-foxes-grin.md +5 -0
  250. package/repos/effect/.changeset/few-mirrors-pull.md +14 -0
  251. package/repos/effect/.changeset/few-socks-poke.md +5 -0
  252. package/repos/effect/.changeset/fiber-runtime-start-metrics.md +5 -0
  253. package/repos/effect/.changeset/fiery-jokes-care.md +5 -0
  254. package/repos/effect/.changeset/fiery-mammals-call.md +5 -0
  255. package/repos/effect/.changeset/fine-walls-decide.md +5 -0
  256. package/repos/effect/.changeset/first-success-of.md +5 -0
  257. package/repos/effect/.changeset/five-parents-relax.md +5 -0
  258. package/repos/effect/.changeset/five-worms-rhyme.md +5 -0
  259. package/repos/effect/.changeset/fix-1332.md +5 -0
  260. package/repos/effect/.changeset/fix-1917.md +11 -0
  261. package/repos/effect/.changeset/fix-1927.md +5 -0
  262. package/repos/effect/.changeset/fix-1940.md +7 -0
  263. package/repos/effect/.changeset/fix-1947.md +7 -0
  264. package/repos/effect/.changeset/fix-2002.md +5 -0
  265. package/repos/effect/.changeset/fix-2012.md +5 -0
  266. package/repos/effect/.changeset/fix-2015.md +5 -0
  267. package/repos/effect/.changeset/fix-2260.md +5 -0
  268. package/repos/effect/.changeset/fix-2268.md +5 -0
  269. package/repos/effect/.changeset/fix-2271.md +5 -0
  270. package/repos/effect/.changeset/fix-2384.md +7 -0
  271. package/repos/effect/.changeset/fix-ai-empty-params-structured-output.md +5 -0
  272. package/repos/effect/.changeset/fix-ai-text-toolkit-typing.md +5 -0
  273. package/repos/effect/.changeset/fix-catch-orelse-error-erasure.md +5 -0
  274. package/repos/effect/.changeset/fix-class-constructor-defaults.md +5 -0
  275. package/repos/effect/.changeset/fix-cli-mixed-global-flag-context.md +7 -0
  276. package/repos/effect/.changeset/fix-config-withDefault.md +5 -0
  277. package/repos/effect/.changeset/fix-config-withdefault-filter.md +7 -0
  278. package/repos/effect/.changeset/fix-datetime-gmt.md +5 -0
  279. package/repos/effect/.changeset/fix-devtools-flush-on-teardown.md +10 -0
  280. package/repos/effect/.changeset/fix-duration-symmetric-rounding.md +5 -0
  281. package/repos/effect/.changeset/fix-entity-manager-defect-replay.md +5 -0
  282. package/repos/effect/.changeset/fix-entity-proxy-rpc-handler-context.md +5 -0
  283. package/repos/effect/.changeset/fix-entity-proxy-server-path-params.md +5 -0
  284. package/repos/effect/.changeset/fix-from-readable-stream-cancel-defect.md +5 -0
  285. package/repos/effect/.changeset/fix-graph-undirected-traversal.md +5 -0
  286. package/repos/effect/.changeset/fix-has-interrupts-only-empty.md +5 -0
  287. package/repos/effect/.changeset/fix-hashmap-bit31-ordering.md +5 -0
  288. package/repos/effect/.changeset/fix-headers-proto-enumerability.md +5 -0
  289. package/repos/effect/.changeset/fix-http-incoming-message-parse-options.md +5 -0
  290. package/repos/effect/.changeset/fix-httpapi-endpoint-error-inference.md +5 -0
  291. package/repos/effect/.changeset/fix-httpapi-schema-types.md +5 -0
  292. package/repos/effect/.changeset/fix-httpapi-security-middleware-cache.md +5 -0
  293. package/repos/effect/.changeset/fix-is-json-dag.md +7 -0
  294. package/repos/effect/.changeset/fix-json-schema-anyof-oneof-siblings.md +5 -0
  295. package/repos/effect/.changeset/fix-json-schema-import-json.md +5 -0
  296. package/repos/effect/.changeset/fix-keepalive-blocked-timers.md +5 -0
  297. package/repos/effect/.changeset/fix-mcp-param-name-resolution.md +5 -0
  298. package/repos/effect/.changeset/fix-mermaid-escape-special-chars.md +5 -0
  299. package/repos/effect/.changeset/fix-mutable-list-filter-length.md +5 -0
  300. package/repos/effect/.changeset/fix-object-keyword-json-schema.md +5 -0
  301. package/repos/effect/.changeset/fix-openai-mcp-tool-names.md +5 -0
  302. package/repos/effect/.changeset/fix-openapi-generator-form-urlencoded.md +5 -0
  303. package/repos/effect/.changeset/fix-openapi-generator-swagger2openapi.md +5 -0
  304. package/repos/effect/.changeset/fix-openapi-preserve-multiple-response-content-types.md +5 -0
  305. package/repos/effect/.changeset/fix-openrouter-sparse-array.md +5 -0
  306. package/repos/effect/.changeset/fix-otel-logger-clock-skew.md +7 -0
  307. package/repos/effect/.changeset/fix-otel-logger-severity-number.md +20 -0
  308. package/repos/effect/.changeset/fix-queue-collect-duplication.md +5 -0
  309. package/repos/effect/.changeset/fix-random-string-seeds.md +5 -0
  310. package/repos/effect/.changeset/fix-ratelimiter-tokenbucket-redis-ttl.md +5 -0
  311. package/repos/effect/.changeset/fix-remainder-scientific-notation.md +5 -0
  312. package/repos/effect/.changeset/fix-request-resolver-pending-batches-leak.md +5 -0
  313. package/repos/effect/.changeset/fix-retry-transient-autocomplete.md +5 -0
  314. package/repos/effect/.changeset/fix-rpc-http-requestids-finalizer.md +5 -0
  315. package/repos/effect/.changeset/fix-rpc-json-id-edges.md +5 -0
  316. package/repos/effect/.changeset/fix-schedule-fixed-double-exec.md +9 -0
  317. package/repos/effect/.changeset/fix-schedule-reduce-sync-state.md +5 -0
  318. package/repos/effect/.changeset/fix-schema-arbitrary-exclusive-bounds.md +5 -0
  319. package/repos/effect/.changeset/fix-schema-defect-message.md +5 -0
  320. package/repos/effect/.changeset/fix-schema-encode-keys-property-keys.md +5 -0
  321. package/repos/effect/.changeset/fix-schema-encodekeys-class.md +5 -0
  322. package/repos/effect/.changeset/fix-schema-encodekeys-struct.md +5 -0
  323. package/repos/effect/.changeset/fix-schema-identifier-expected-message.md +5 -0
  324. package/repos/effect/.changeset/fix-schema-is-uuid.md +5 -0
  325. package/repos/effect/.changeset/fix-schema-option-non-schema-failures.md +17 -0
  326. package/repos/effect/.changeset/fix-schema-parser-checks.md +9 -0
  327. package/repos/effect/.changeset/fix-searchparam-initial-decode.md +5 -0
  328. package/repos/effect/.changeset/fix-serializable-wire-transfer.md +7 -0
  329. package/repos/effect/.changeset/fix-stream-grouped-within-flush.md +5 -0
  330. package/repos/effect/.changeset/fix-stream-run-for-each-while.md +5 -0
  331. package/repos/effect/.changeset/fix-stream-scan-effect.md +5 -0
  332. package/repos/effect/.changeset/fix-stream-scoped-scope.md +5 -0
  333. package/repos/effect/.changeset/fix-strip-approval-artifacts-multi-round.md +13 -0
  334. package/repos/effect/.changeset/fix-struct-utility-types-simplify.md +5 -0
  335. package/repos/effect/.changeset/fix-structwithrest-index-signatures.md +6 -0
  336. package/repos/effect/.changeset/fix-tagged-union-class-sentinels.md +5 -0
  337. package/repos/effect/.changeset/fix-tagged-union-match-unify.md +6 -0
  338. package/repos/effect/.changeset/fix-to-tagged-union-isanyof-custom-tags.md +10 -0
  339. package/repos/effect/.changeset/fix-tuple-with-rest-post-rest-index-drift.md +5 -0
  340. package/repos/effect/.changeset/fix-tuple-with-rest-post-rest-validation.md +5 -0
  341. package/repos/effect/.changeset/fix-types-voidifempty.md +5 -0
  342. package/repos/effect/.changeset/fix-void-response-encoding.md +5 -0
  343. package/repos/effect/.changeset/fix-workflow-proxy-rpc-handler-context.md +5 -0
  344. package/repos/effect/.changeset/flat-chicken-remain.md +5 -0
  345. package/repos/effect/.changeset/floppy-cows-spend.md +5 -0
  346. package/repos/effect/.changeset/floppy-items-admire.md +5 -0
  347. package/repos/effect/.changeset/floppy-pigs-kiss.md +5 -0
  348. package/repos/effect/.changeset/fluffy-meals-matter.md +5 -0
  349. package/repos/effect/.changeset/fluffy-pumas-push.md +5 -0
  350. package/repos/effect/.changeset/forked-memo-maps.md +6 -0
  351. package/repos/effect/.changeset/forty-hounds-cheer.md +5 -0
  352. package/repos/effect/.changeset/forty-otters-cry.md +5 -0
  353. package/repos/effect/.changeset/forty-rings-film.md +7 -0
  354. package/repos/effect/.changeset/forty-signs-stay.md +5 -0
  355. package/repos/effect/.changeset/forty-swans-divide.md +5 -0
  356. package/repos/effect/.changeset/forty-trees-pay.md +5 -0
  357. package/repos/effect/.changeset/four-papayas-bow.md +5 -0
  358. package/repos/effect/.changeset/four-points-repeat.md +5 -0
  359. package/repos/effect/.changeset/fresh-cats-smash.md +5 -0
  360. package/repos/effect/.changeset/fresh-emus-cheat.md +5 -0
  361. package/repos/effect/.changeset/fresh-monkeys-smoke.md +9 -0
  362. package/repos/effect/.changeset/fruity-houses-learn.md +6 -0
  363. package/repos/effect/.changeset/full-adults-double.md +5 -0
  364. package/repos/effect/.changeset/funny-crabs-hang.md +6 -0
  365. package/repos/effect/.changeset/funny-forks-move.md +5 -0
  366. package/repos/effect/.changeset/fuzzy-camels-hunt.md +5 -0
  367. package/repos/effect/.changeset/fuzzy-dodos-help.md +5 -0
  368. package/repos/effect/.changeset/fuzzy-lions-perform.md +5 -0
  369. package/repos/effect/.changeset/fuzzy-planets-sneeze.md +5 -0
  370. package/repos/effect/.changeset/gold-meteors-move.md +5 -0
  371. package/repos/effect/.changeset/gold-readers-hug.md +5 -0
  372. package/repos/effect/.changeset/gold-rings-start.md +5 -0
  373. package/repos/effect/.changeset/good-tools-work.md +7 -0
  374. package/repos/effect/.changeset/graph-algorithm-fixes.md +5 -0
  375. package/repos/effect/.changeset/great-trains-mate.md +5 -0
  376. package/repos/effect/.changeset/great-trams-report.md +5 -0
  377. package/repos/effect/.changeset/green-beds-unref.md +7 -0
  378. package/repos/effect/.changeset/green-chips-wash.md +5 -0
  379. package/repos/effect/.changeset/green-moons-smile.md +5 -0
  380. package/repos/effect/.changeset/green-pugs-play.md +5 -0
  381. package/repos/effect/.changeset/green-rings-prove.md +5 -0
  382. package/repos/effect/.changeset/happy-mirrors-dream.md +5 -0
  383. package/repos/effect/.changeset/heavy-loops-cut.md +5 -0
  384. package/repos/effect/.changeset/heavy-trams-fix.md +5 -0
  385. package/repos/effect/.changeset/hip-socks-travel.md +5 -0
  386. package/repos/effect/.changeset/honest-pens-thank.md +5 -0
  387. package/repos/effect/.changeset/honest-rivers-notice.md +5 -0
  388. package/repos/effect/.changeset/hot-taxis-fry.md +5 -0
  389. package/repos/effect/.changeset/httpapi-endpoint-relax-constraints.md +5 -0
  390. package/repos/effect/.changeset/httpapi-schema-service-types.md +6 -0
  391. package/repos/effect/.changeset/huge-moons-rhyme.md +5 -0
  392. package/repos/effect/.changeset/humble-pigs-dig.md +5 -0
  393. package/repos/effect/.changeset/icy-flies-cross.md +5 -0
  394. package/repos/effect/.changeset/itchy-radios-poke.md +5 -0
  395. package/repos/effect/.changeset/itchy-results-bet.md +5 -0
  396. package/repos/effect/.changeset/itchy-shrimps-deny.md +5 -0
  397. package/repos/effect/.changeset/itchy-toes-promise.md +5 -0
  398. package/repos/effect/.changeset/k8s-last-transition-null.md +5 -0
  399. package/repos/effect/.changeset/khaki-cats-learn.md +5 -0
  400. package/repos/effect/.changeset/khaki-melons-appear.md +5 -0
  401. package/repos/effect/.changeset/kind-hounds-float.md +5 -0
  402. package/repos/effect/.changeset/kind-windows-fall.md +5 -0
  403. package/repos/effect/.changeset/late-hotels-rule.md +5 -0
  404. package/repos/effect/.changeset/late-lamps-care.md +5 -0
  405. package/repos/effect/.changeset/late-rivers-applaud.md +5 -0
  406. package/repos/effect/.changeset/layer-map-dynamic-idle-ttl.md +5 -0
  407. package/repos/effect/.changeset/lazy-queens-rush.md +5 -0
  408. package/repos/effect/.changeset/lazy-recursive-forward-refs.md +5 -0
  409. package/repos/effect/.changeset/lazy-timers-exist.md +5 -0
  410. package/repos/effect/.changeset/legal-pants-drop.md +5 -0
  411. package/repos/effect/.changeset/lemon-taxis-sin.md +5 -0
  412. package/repos/effect/.changeset/light-kids-sneeze.md +5 -0
  413. package/repos/effect/.changeset/little-dryers-allow.md +7 -0
  414. package/repos/effect/.changeset/long-cameras-think.md +5 -0
  415. package/repos/effect/.changeset/lovely-cobras-change.md +5 -0
  416. package/repos/effect/.changeset/lovely-frogs-rescue.md +5 -0
  417. package/repos/effect/.changeset/lucky-buttons-jump.md +5 -0
  418. package/repos/effect/.changeset/lucky-phones-listen.md +5 -0
  419. package/repos/effect/.changeset/lucky-worms-type.md +5 -0
  420. package/repos/effect/.changeset/mean-dingos-share.md +5 -0
  421. package/repos/effect/.changeset/mean-trains-smash.md +5 -0
  422. package/repos/effect/.changeset/metal-parts-yell.md +5 -0
  423. package/repos/effect/.changeset/mighty-games-matter.md +5 -0
  424. package/repos/effect/.changeset/modern-uuid-guid-filter.md +5 -0
  425. package/repos/effect/.changeset/nasty-geese-grow.md +5 -0
  426. package/repos/effect/.changeset/neat-goats-wave.md +5 -0
  427. package/repos/effect/.changeset/neat-kings-chew.md +5 -0
  428. package/repos/effect/.changeset/neat-lions-rest.md +5 -0
  429. package/repos/effect/.changeset/neat-snails-wash.md +5 -0
  430. package/repos/effect/.changeset/neat-taxis-notice.md +5 -0
  431. package/repos/effect/.changeset/new-dogs-swim.md +5 -0
  432. package/repos/effect/.changeset/new-toes-stop.md +5 -0
  433. package/repos/effect/.changeset/ninety-geese-exist.md +5 -0
  434. package/repos/effect/.changeset/odd-boats-think.md +5 -0
  435. package/repos/effect/.changeset/odd-bulldogs-sleep.md +5 -0
  436. package/repos/effect/.changeset/odd-fans-glow.md +5 -0
  437. package/repos/effect/.changeset/odd-forks-talk.md +5 -0
  438. package/repos/effect/.changeset/odd-laws-draw.md +5 -0
  439. package/repos/effect/.changeset/odd-owls-smoke.md +5 -0
  440. package/repos/effect/.changeset/odd-socks-boil.md +5 -0
  441. package/repos/effect/.changeset/odd-suns-dance.md +5 -0
  442. package/repos/effect/.changeset/old-brooms-cry.md +5 -0
  443. package/repos/effect/.changeset/old-facts-stand.md +5 -0
  444. package/repos/effect/.changeset/old-mirrors-float.md +5 -0
  445. package/repos/effect/.changeset/olive-poems-visit.md +5 -0
  446. package/repos/effect/.changeset/open-hotels-remain.md +5 -0
  447. package/repos/effect/.changeset/openai-compat-nullable-tool-name.md +7 -0
  448. package/repos/effect/.changeset/openai-compat-reasoning.md +5 -0
  449. package/repos/effect/.changeset/otel-resource-env-precedence.md +5 -0
  450. package/repos/effect/.changeset/perfect-buckets-tickle.md +5 -0
  451. package/repos/effect/.changeset/petite-months-allow.md +6 -0
  452. package/repos/effect/.changeset/platform-crypto-service.md +9 -0
  453. package/repos/effect/.changeset/platform-node-shared-barrel.md +5 -0
  454. package/repos/effect/.changeset/plenty-moons-pull.md +5 -0
  455. package/repos/effect/.changeset/polite-brooms-tickle.md +5 -0
  456. package/repos/effect/.changeset/polite-pigs-speak.md +5 -0
  457. package/repos/effect/.changeset/polite-tables-kneel.md +5 -0
  458. package/repos/effect/.changeset/port-react-hydration.md +8 -0
  459. package/repos/effect/.changeset/pre.json +588 -0
  460. package/repos/effect/.changeset/public-deer-ring.md +5 -0
  461. package/repos/effect/.changeset/public-jeans-stop.md +5 -0
  462. package/repos/effect/.changeset/pubsub-publish-false.md +5 -0
  463. package/repos/effect/.changeset/puny-pens-clap.md +6 -0
  464. package/repos/effect/.changeset/purple-bars-prove.md +5 -0
  465. package/repos/effect/.changeset/purple-schools-float.md +5 -0
  466. package/repos/effect/.changeset/purple-turtles-draw.md +5 -0
  467. package/repos/effect/.changeset/quick-dragons-fix.md +5 -0
  468. package/repos/effect/.changeset/quick-falcons-travel.md +5 -0
  469. package/repos/effect/.changeset/quick-geese-relax.md +5 -0
  470. package/repos/effect/.changeset/quick-lamps-dig.md +5 -0
  471. package/repos/effect/.changeset/quick-lizards-fall.md +5 -0
  472. package/repos/effect/.changeset/quick-trees-join.md +5 -0
  473. package/repos/effect/.changeset/quiet-carpets-grin.md +5 -0
  474. package/repos/effect/.changeset/quiet-files-hunt.md +5 -0
  475. package/repos/effect/.changeset/quiet-lamps-jam.md +5 -0
  476. package/repos/effect/.changeset/quiet-radios-wave.md +5 -0
  477. package/repos/effect/.changeset/quiet-redis-scripts.md +5 -0
  478. package/repos/effect/.changeset/ready-olives-divide.md +5 -0
  479. package/repos/effect/.changeset/real-trains-ring.md +5 -0
  480. package/repos/effect/.changeset/red-pigs-repair.md +5 -0
  481. package/repos/effect/.changeset/redacted-representation-options.md +7 -0
  482. package/repos/effect/.changeset/refactor-cli-global-flags.md +27 -0
  483. package/repos/effect/.changeset/refactor-config-provider.md +23 -0
  484. package/repos/effect/.changeset/refactor-representation-references.md +5 -0
  485. package/repos/effect/.changeset/remove-effect-transactionwith.md +5 -0
  486. package/repos/effect/.changeset/remove-http-span-counter.md +5 -0
  487. package/repos/effect/.changeset/remove-nullor.md +5 -0
  488. package/repos/effect/.changeset/remove-openapi-fromapi-options.md +7 -0
  489. package/repos/effect/.changeset/remove-types-mergerecord.md +5 -0
  490. package/repos/effect/.changeset/remove-unused-utils-apis.md +5 -0
  491. package/repos/effect/.changeset/rename-rebuild-out.md +5 -0
  492. package/repos/effect/.changeset/restore-schema-parse-options.md +5 -0
  493. package/repos/effect/.changeset/rich-dots-push.md +5 -0
  494. package/repos/effect/.changeset/rich-hoops-nail.md +5 -0
  495. package/repos/effect/.changeset/rich-sloths-draw.md +5 -0
  496. package/repos/effect/.changeset/ripe-lies-battle.md +5 -0
  497. package/repos/effect/.changeset/rpc-middleware-provides-fix.md +5 -0
  498. package/repos/effect/.changeset/scalar-custom-fetch.md +5 -0
  499. package/repos/effect/.changeset/schema-as-class.md +17 -0
  500. package/repos/effect/.changeset/schema-asserts-signature.md +5 -0
  501. package/repos/effect/.changeset/schema-clean-up-additionalProperties.md +7 -0
  502. package/repos/effect/.changeset/schema-datetime-utc-from-string.md +5 -0
  503. package/repos/effect/.changeset/schema-decoding-defaults-services.md +7 -0
  504. package/repos/effect/.changeset/schema-defaults-issue-channel.md +7 -0
  505. package/repos/effect/.changeset/schema-dollar-prefix.md +5 -0
  506. package/repos/effect/.changeset/schema-missing-self-generic.md +5 -0
  507. package/repos/effect/.changeset/schema-ordered-arbitrary-constraints.md +12 -0
  508. package/repos/effect/.changeset/schema-parser-adapter-errors.md +5 -0
  509. package/repos/effect/.changeset/schema-refactor-toCodecJson.md +5 -0
  510. package/repos/effect/.changeset/schema-remove-annotate-in.md +5 -0
  511. package/repos/effect/.changeset/schema-rename-makeUnsafe-to-make.md +7 -0
  512. package/repos/effect/.changeset/schema-rename-parser-makeUnsafe.md +5 -0
  513. package/repos/effect/.changeset/schema-result-combinators.md +5 -0
  514. package/repos/effect/.changeset/schema-struct-simplify.md +5 -0
  515. package/repos/effect/.changeset/seven-mugs-marry.md +5 -0
  516. package/repos/effect/.changeset/shaggy-birds-stay.md +5 -0
  517. package/repos/effect/.changeset/shaggy-cities-push.md +5 -0
  518. package/repos/effect/.changeset/shaggy-numbers-accept.md +5 -0
  519. package/repos/effect/.changeset/sharp-emus-applaud.md +5 -0
  520. package/repos/effect/.changeset/sharp-goats-wink.md +5 -0
  521. package/repos/effect/.changeset/sharp-pandas-care.md +5 -0
  522. package/repos/effect/.changeset/sharp-peas-march.md +5 -0
  523. package/repos/effect/.changeset/sharp-rules-draw.md +5 -0
  524. package/repos/effect/.changeset/sharp-singers-sort.md +5 -0
  525. package/repos/effect/.changeset/shiny-trains-hug.md +5 -0
  526. package/repos/effect/.changeset/short-cows-relate.md +5 -0
  527. package/repos/effect/.changeset/short-foxes-admire.md +5 -0
  528. package/repos/effect/.changeset/shy-cycles-flow.md +5 -0
  529. package/repos/effect/.changeset/shy-geckos-sniff.md +30 -0
  530. package/repos/effect/.changeset/silent-geckos-matter.md +5 -0
  531. package/repos/effect/.changeset/silent-needles-design.md +6 -0
  532. package/repos/effect/.changeset/silent-plants-matter.md +8 -0
  533. package/repos/effect/.changeset/silent-spoons-stare.md +5 -0
  534. package/repos/effect/.changeset/silly-loops-tickle.md +5 -0
  535. package/repos/effect/.changeset/silver-bulk-indexeddb.md +5 -0
  536. package/repos/effect/.changeset/silver-emus-smoke.md +5 -0
  537. package/repos/effect/.changeset/silver-kings-poke.md +5 -0
  538. package/repos/effect/.changeset/silver-snails-sqlite.md +17 -0
  539. package/repos/effect/.changeset/silver-wings-watch.md +5 -0
  540. package/repos/effect/.changeset/six-cups-taste.md +5 -0
  541. package/repos/effect/.changeset/sixty-mails-shout.md +5 -0
  542. package/repos/effect/.changeset/sixty-socks-yell.md +5 -0
  543. package/repos/effect/.changeset/slimy-planets-divide.md +5 -0
  544. package/repos/effect/.changeset/slimy-turtles-juggle.md +5 -0
  545. package/repos/effect/.changeset/slow-beans-battle.md +28 -0
  546. package/repos/effect/.changeset/slow-berries-enjoy.md +5 -0
  547. package/repos/effect/.changeset/small-bugs-hunt.md +5 -0
  548. package/repos/effect/.changeset/small-crabs-care.md +9 -0
  549. package/repos/effect/.changeset/small-pets-sit.md +6 -0
  550. package/repos/effect/.changeset/smart-ducks-jump.md +6 -0
  551. package/repos/effect/.changeset/smart-pillows-buy.md +6 -0
  552. package/repos/effect/.changeset/smart-timers-fly.md +5 -0
  553. package/repos/effect/.changeset/smart-tips-sort.md +5 -0
  554. package/repos/effect/.changeset/social-pumas-prove.md +5 -0
  555. package/repos/effect/.changeset/soft-comics-wink.md +5 -0
  556. package/repos/effect/.changeset/soft-delete-sqlmodel.md +5 -0
  557. package/repos/effect/.changeset/soft-seals-allow.md +5 -0
  558. package/repos/effect/.changeset/solid-cougars-attack.md +5 -0
  559. package/repos/effect/.changeset/solid-doors-ring.md +5 -0
  560. package/repos/effect/.changeset/solid-items-tease.md +5 -0
  561. package/repos/effect/.changeset/solid-towns-smoke.md +5 -0
  562. package/repos/effect/.changeset/sour-canyons-rescue.md +5 -0
  563. package/repos/effect/.changeset/sparkly-bears-act.md +5 -0
  564. package/repos/effect/.changeset/sparkly-coins-sit.md +5 -0
  565. package/repos/effect/.changeset/spotty-comics-fry.md +5 -0
  566. package/repos/effect/.changeset/sql-migrator-mjs-mts.md +5 -0
  567. package/repos/effect/.changeset/stale-dots-tell.md +5 -0
  568. package/repos/effect/.changeset/stale-snakes-know.md +5 -0
  569. package/repos/effect/.changeset/strict-areas-end.md +5 -0
  570. package/repos/effect/.changeset/strict-buckets-hug.md +8 -0
  571. package/repos/effect/.changeset/strip-resolved-approvals.md +5 -0
  572. package/repos/effect/.changeset/strong-balloons-tickle.md +5 -0
  573. package/repos/effect/.changeset/strong-bees-queue.md +5 -0
  574. package/repos/effect/.changeset/struct-record.md +5 -0
  575. package/repos/effect/.changeset/sunny-ads-hang.md +5 -0
  576. package/repos/effect/.changeset/sunny-bikes-sleep.md +5 -0
  577. package/repos/effect/.changeset/sunny-rooms-invent.md +5 -0
  578. package/repos/effect/.changeset/sweet-donuts-bet.md +5 -0
  579. package/repos/effect/.changeset/sweet-hotels-give.md +5 -0
  580. package/repos/effect/.changeset/sweet-views-learn.md +5 -0
  581. package/repos/effect/.changeset/swift-spiders-unpack.md +5 -0
  582. package/repos/effect/.changeset/swift-symbols-stand.md +5 -0
  583. package/repos/effect/.changeset/tagged-error-class-optional-empty-props.md +5 -0
  584. package/repos/effect/.changeset/tall-hairs-return.md +5 -0
  585. package/repos/effect/.changeset/tall-mails-listen.md +5 -0
  586. package/repos/effect/.changeset/tall-queens-cheer.md +5 -0
  587. package/repos/effect/.changeset/tall-wombats-wave.md +5 -0
  588. package/repos/effect/.changeset/tangy-colts-lose.md +5 -0
  589. package/repos/effect/.changeset/tasty-comics-send.md +5 -0
  590. package/repos/effect/.changeset/ten-kings-fry.md +5 -0
  591. package/repos/effect/.changeset/thick-pandas-wait.md +5 -0
  592. package/repos/effect/.changeset/thin-ducks-wonder.md +5 -0
  593. package/repos/effect/.changeset/thirty-ducks-go.md +5 -0
  594. package/repos/effect/.changeset/thirty-pans-love.md +5 -0
  595. package/repos/effect/.changeset/three-corners-sort.md +5 -0
  596. package/repos/effect/.changeset/three-ravens-jam.md +5 -0
  597. package/repos/effect/.changeset/three-tomatoes-wave.md +5 -0
  598. package/repos/effect/.changeset/tidy-foxes-own.md +5 -0
  599. package/repos/effect/.changeset/tidy-icons-glow.md +5 -0
  600. package/repos/effect/.changeset/tidy-stacks-encode.md +5 -0
  601. package/repos/effect/.changeset/tidy-stars-drive.md +5 -0
  602. package/repos/effect/.changeset/tiny-buckets-wave.md +5 -0
  603. package/repos/effect/.changeset/tiny-lilies-flash.md +5 -0
  604. package/repos/effect/.changeset/tiny-rabbits-smile.md +5 -0
  605. package/repos/effect/.changeset/tocodecjson-return-json-type.md +10 -0
  606. package/repos/effect/.changeset/tool-get-json-schema-tests.md +5 -0
  607. package/repos/effect/.changeset/true-actors-battle.md +5 -0
  608. package/repos/effect/.changeset/twenty-buttons-cheer.md +5 -0
  609. package/repos/effect/.changeset/two-roses-double.md +5 -0
  610. package/repos/effect/.changeset/unify-error-defect-stack-options.md +23 -0
  611. package/repos/effect/.changeset/update-schema-arbitrary-report.md +22 -0
  612. package/repos/effect/.changeset/upset-colts-stick.md +5 -0
  613. package/repos/effect/.changeset/vast-bananas-send.md +5 -0
  614. package/repos/effect/.changeset/vast-deserts-travel.md +5 -0
  615. package/repos/effect/.changeset/violet-peaches-feel.md +5 -0
  616. package/repos/effect/.changeset/vitest-layer-top-level-options.md +5 -0
  617. package/repos/effect/.changeset/wacky-grapes-poke.md +5 -0
  618. package/repos/effect/.changeset/wacky-rice-add.md +5 -0
  619. package/repos/effect/.changeset/warm-dolls-brake.md +5 -0
  620. package/repos/effect/.changeset/warm-friends-tie.md +5 -0
  621. package/repos/effect/.changeset/warm-snails-shop.md +7 -0
  622. package/repos/effect/.changeset/wet-news-invent.md +5 -0
  623. package/repos/effect/.changeset/wild-readers-clean.md +5 -0
  624. package/repos/effect/.changeset/wild-suns-bearer-space.md +5 -0
  625. package/repos/effect/.changeset/wise-ants-wave.md +6 -0
  626. package/repos/effect/.changeset/wise-flags-shift.md +22 -0
  627. package/repos/effect/.changeset/wise-oranges-stay.md +5 -0
  628. package/repos/effect/.changeset/witty-lobsters-share.md +5 -0
  629. package/repos/effect/.changeset/yellow-adults-study.md +5 -0
  630. package/repos/effect/.changeset/yellow-clocks-dance.md +5 -0
  631. package/repos/effect/.changeset/yellow-dingos-jump.md +5 -0
  632. package/repos/effect/.changeset/young-doors-change.md +5 -0
  633. package/repos/effect/.envrc +1 -0
  634. package/repos/effect/.github/actions/setup/action.yaml +33 -0
  635. package/repos/effect/.github/workflows/ai-codegen.yml +66 -0
  636. package/repos/effect/.github/workflows/bundle-comment.yml +72 -0
  637. package/repos/effect/.github/workflows/check.yml +195 -0
  638. package/repos/effect/.github/workflows/release.yml +47 -0
  639. package/repos/effect/.github/workflows/snapshot.yml +34 -0
  640. package/repos/effect/.oxlintrc.json +25 -0
  641. package/repos/effect/.patterns/effect.md +102 -0
  642. package/repos/effect/.patterns/jsdoc.md +53 -0
  643. package/repos/effect/.patterns/testing.md +44 -0
  644. package/repos/effect/.specs/README.md +2 -0
  645. package/repos/effect/.vscode/extensions.json +6 -0
  646. package/repos/effect/.vscode/settings.json +44 -0
  647. package/repos/effect/AGENTS.md +139 -0
  648. package/repos/effect/LICENSE +21 -0
  649. package/repos/effect/LLMS.md +343 -0
  650. package/repos/effect/MIGRATION.md +83 -0
  651. package/repos/effect/README.md +3 -0
  652. package/repos/effect/TODOS.md +28 -0
  653. package/repos/effect/ai-docs/README.md +44 -0
  654. package/repos/effect/ai-docs/package.json +36 -0
  655. package/repos/effect/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
  656. package/repos/effect/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
  657. package/repos/effect/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
  658. package/repos/effect/ai-docs/src/01_effect/01_basics/index.md +5 -0
  659. package/repos/effect/ai-docs/src/01_effect/02_services/01_service.ts +45 -0
  660. package/repos/effect/ai-docs/src/01_effect/02_services/10_reference.ts +10 -0
  661. package/repos/effect/ai-docs/src/01_effect/02_services/20_layer-composition.ts +70 -0
  662. package/repos/effect/ai-docs/src/01_effect/02_services/20_layer-unwrap.ts +66 -0
  663. package/repos/effect/ai-docs/src/01_effect/02_services/index.md +5 -0
  664. package/repos/effect/ai-docs/src/01_effect/03_errors/01_error-handling.ts +30 -0
  665. package/repos/effect/ai-docs/src/01_effect/03_errors/10_catch-tags.ts +24 -0
  666. package/repos/effect/ai-docs/src/01_effect/03_errors/20_reason-errors.ts +64 -0
  667. package/repos/effect/ai-docs/src/01_effect/03_errors/index.md +1 -0
  668. package/repos/effect/ai-docs/src/01_effect/04_resources/10_acquire-release.ts +105 -0
  669. package/repos/effect/ai-docs/src/01_effect/04_resources/20_layer-side-effects.ts +31 -0
  670. package/repos/effect/ai-docs/src/01_effect/04_resources/30_layer-map.ts +86 -0
  671. package/repos/effect/ai-docs/src/01_effect/04_resources/index.md +3 -0
  672. package/repos/effect/ai-docs/src/01_effect/05_running/10_run-main.ts +30 -0
  673. package/repos/effect/ai-docs/src/01_effect/05_running/20_layer-launch.ts +27 -0
  674. package/repos/effect/ai-docs/src/01_effect/05_running/index.md +1 -0
  675. package/repos/effect/ai-docs/src/01_effect/06_pubsub/10_pubsub.ts +56 -0
  676. package/repos/effect/ai-docs/src/01_effect/06_pubsub/index.md +3 -0
  677. package/repos/effect/ai-docs/src/02_stream/10_creating-streams.ts +103 -0
  678. package/repos/effect/ai-docs/src/02_stream/20_consuming-streams.ts +137 -0
  679. package/repos/effect/ai-docs/src/02_stream/30_encoding.ts +165 -0
  680. package/repos/effect/ai-docs/src/02_stream/index.md +4 -0
  681. package/repos/effect/ai-docs/src/03_integration/10_managed-runtime.ts +129 -0
  682. package/repos/effect/ai-docs/src/03_integration/index.md +5 -0
  683. package/repos/effect/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
  684. package/repos/effect/ai-docs/src/05_batching/index.md +3 -0
  685. package/repos/effect/ai-docs/src/06_schedule/10_schedules.ts +102 -0
  686. package/repos/effect/ai-docs/src/06_schedule/index.md +3 -0
  687. package/repos/effect/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
  688. package/repos/effect/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
  689. package/repos/effect/ai-docs/src/07_datetime/index.md +5 -0
  690. package/repos/effect/ai-docs/src/08_observability/10_logging.ts +66 -0
  691. package/repos/effect/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
  692. package/repos/effect/ai-docs/src/08_observability/index.md +7 -0
  693. package/repos/effect/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
  694. package/repos/effect/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
  695. package/repos/effect/ai-docs/src/09_testing/index.md +1 -0
  696. package/repos/effect/ai-docs/src/50_http-client/10_basics.ts +102 -0
  697. package/repos/effect/ai-docs/src/50_http-client/index.md +3 -0
  698. package/repos/effect/ai-docs/src/51_http-server/10_basics.ts +116 -0
  699. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
  700. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
  701. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
  702. package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
  703. package/repos/effect/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
  704. package/repos/effect/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
  705. package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
  706. package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
  707. package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
  708. package/repos/effect/ai-docs/src/51_http-server/index.md +3 -0
  709. package/repos/effect/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
  710. package/repos/effect/ai-docs/src/60_child-process/index.md +3 -0
  711. package/repos/effect/ai-docs/src/70_cli/10_basics.ts +136 -0
  712. package/repos/effect/ai-docs/src/70_cli/index.md +5 -0
  713. package/repos/effect/ai-docs/src/71_ai/10_language-model.ts +156 -0
  714. package/repos/effect/ai-docs/src/71_ai/20_tools.ts +226 -0
  715. package/repos/effect/ai-docs/src/71_ai/30_chat.ts +158 -0
  716. package/repos/effect/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
  717. package/repos/effect/ai-docs/src/71_ai/index.md +5 -0
  718. package/repos/effect/ai-docs/src/80_cluster/10_entities.ts +97 -0
  719. package/repos/effect/ai-docs/src/80_cluster/index.md +4 -0
  720. package/repos/effect/ai-docs/src/index.md +12 -0
  721. package/repos/effect/ai-docs/tsconfig.json +24 -0
  722. package/repos/effect/cookbooks/schedule.md +3507 -0
  723. package/repos/effect/deno.json +33 -0
  724. package/repos/effect/docker-compose.yaml +18 -0
  725. package/repos/effect/dprint.json +32 -0
  726. package/repos/effect/flake.lock +27 -0
  727. package/repos/effect/flake.nix +24 -0
  728. package/repos/effect/jsdocs.config.json +16 -0
  729. package/repos/effect/migration/cause.md +163 -0
  730. package/repos/effect/migration/equality.md +72 -0
  731. package/repos/effect/migration/error-handling.md +106 -0
  732. package/repos/effect/migration/fiber-keep-alive.md +74 -0
  733. package/repos/effect/migration/fiberref.md +109 -0
  734. package/repos/effect/migration/forking.md +94 -0
  735. package/repos/effect/migration/generators.md +32 -0
  736. package/repos/effect/migration/layer-memoization.md +98 -0
  737. package/repos/effect/migration/runtime.md +88 -0
  738. package/repos/effect/migration/schema.md +1032 -0
  739. package/repos/effect/migration/scope.md +50 -0
  740. package/repos/effect/migration/services.md +235 -0
  741. package/repos/effect/migration/v3-to-v4.md +421 -0
  742. package/repos/effect/migration/yieldable.md +173 -0
  743. package/repos/effect/package.json +104 -0
  744. package/repos/effect/packages/ai/anthropic/CHANGELOG.md +611 -0
  745. package/repos/effect/packages/ai/anthropic/codegen.yml +63 -0
  746. package/repos/effect/packages/ai/anthropic/docgen.json +26 -0
  747. package/repos/effect/packages/ai/anthropic/package.json +67 -0
  748. package/repos/effect/packages/ai/anthropic/src/AnthropicClient.ts +432 -0
  749. package/repos/effect/packages/ai/anthropic/src/AnthropicConfig.ts +84 -0
  750. package/repos/effect/packages/ai/anthropic/src/AnthropicError.ts +212 -0
  751. package/repos/effect/packages/ai/anthropic/src/AnthropicLanguageModel.ts +3098 -0
  752. package/repos/effect/packages/ai/anthropic/src/AnthropicTelemetry.ts +132 -0
  753. package/repos/effect/packages/ai/anthropic/src/AnthropicTool.ts +2512 -0
  754. package/repos/effect/packages/ai/anthropic/src/Generated.ts +12600 -0
  755. package/repos/effect/packages/ai/anthropic/src/index.ts +40 -0
  756. package/repos/effect/packages/ai/anthropic/src/internal/errors.ts +370 -0
  757. package/repos/effect/packages/ai/anthropic/src/internal/utilities.ts +26 -0
  758. package/repos/effect/packages/ai/anthropic/test/AnthropicLanguageModel.test.ts +300 -0
  759. package/repos/effect/packages/ai/anthropic/tsconfig.json +8 -0
  760. package/repos/effect/packages/ai/anthropic/vitest.config.ts +6 -0
  761. package/repos/effect/packages/ai/openai/CHANGELOG.md +668 -0
  762. package/repos/effect/packages/ai/openai/codegen.yaml +41 -0
  763. package/repos/effect/packages/ai/openai/docgen.json +24 -0
  764. package/repos/effect/packages/ai/openai/package.json +67 -0
  765. package/repos/effect/packages/ai/openai/src/Generated.ts +35774 -0
  766. package/repos/effect/packages/ai/openai/src/OpenAiClient.ts +730 -0
  767. package/repos/effect/packages/ai/openai/src/OpenAiClientGenerated.ts +202 -0
  768. package/repos/effect/packages/ai/openai/src/OpenAiConfig.ts +93 -0
  769. package/repos/effect/packages/ai/openai/src/OpenAiEmbeddingModel.ts +258 -0
  770. package/repos/effect/packages/ai/openai/src/OpenAiError.ts +242 -0
  771. package/repos/effect/packages/ai/openai/src/OpenAiLanguageModel.ts +3133 -0
  772. package/repos/effect/packages/ai/openai/src/OpenAiSchema.ts +1286 -0
  773. package/repos/effect/packages/ai/openai/src/OpenAiTelemetry.ts +162 -0
  774. package/repos/effect/packages/ai/openai/src/OpenAiTool.ts +342 -0
  775. package/repos/effect/packages/ai/openai/src/index.ts +55 -0
  776. package/repos/effect/packages/ai/openai/src/internal/errors.ts +349 -0
  777. package/repos/effect/packages/ai/openai/src/internal/utilities.ts +33 -0
  778. package/repos/effect/packages/ai/openai/test/OpenAiClient.test.ts +798 -0
  779. package/repos/effect/packages/ai/openai/test/OpenAiEmbeddingModel.test.ts +289 -0
  780. package/repos/effect/packages/ai/openai/test/OpenAiLanguageModel.test.ts +1528 -0
  781. package/repos/effect/packages/ai/openai/test/OpenAiSchema.test.ts +273 -0
  782. package/repos/effect/packages/ai/openai/tsconfig.json +8 -0
  783. package/repos/effect/packages/ai/openai/vitest.config.ts +6 -0
  784. package/repos/effect/packages/ai/openai-compat/CHANGELOG.md +626 -0
  785. package/repos/effect/packages/ai/openai-compat/docgen.json +24 -0
  786. package/repos/effect/packages/ai/openai-compat/package.json +69 -0
  787. package/repos/effect/packages/ai/openai-compat/src/OpenAiClient.ts +1221 -0
  788. package/repos/effect/packages/ai/openai-compat/src/OpenAiConfig.ts +87 -0
  789. package/repos/effect/packages/ai/openai-compat/src/OpenAiEmbeddingModel.ts +254 -0
  790. package/repos/effect/packages/ai/openai-compat/src/OpenAiError.ts +178 -0
  791. package/repos/effect/packages/ai/openai-compat/src/OpenAiLanguageModel.ts +1951 -0
  792. package/repos/effect/packages/ai/openai-compat/src/OpenAiTelemetry.ts +164 -0
  793. package/repos/effect/packages/ai/openai-compat/src/index.ts +35 -0
  794. package/repos/effect/packages/ai/openai-compat/src/internal/errors.ts +327 -0
  795. package/repos/effect/packages/ai/openai-compat/src/internal/utilities.ts +33 -0
  796. package/repos/effect/packages/ai/openai-compat/test/OpenAiClient.test.ts +474 -0
  797. package/repos/effect/packages/ai/openai-compat/test/OpenAiEmbeddingModel.test.ts +216 -0
  798. package/repos/effect/packages/ai/openai-compat/test/OpenAiLanguageModel.test.ts +1505 -0
  799. package/repos/effect/packages/ai/openai-compat/tsconfig.json +8 -0
  800. package/repos/effect/packages/ai/openai-compat/vitest.config.ts +6 -0
  801. package/repos/effect/packages/ai/openrouter/CHANGELOG.md +607 -0
  802. package/repos/effect/packages/ai/openrouter/codegen.yml +35 -0
  803. package/repos/effect/packages/ai/openrouter/docgen.json +24 -0
  804. package/repos/effect/packages/ai/openrouter/package.json +67 -0
  805. package/repos/effect/packages/ai/openrouter/src/Generated.ts +10028 -0
  806. package/repos/effect/packages/ai/openrouter/src/OpenRouterClient.ts +357 -0
  807. package/repos/effect/packages/ai/openrouter/src/OpenRouterConfig.ts +99 -0
  808. package/repos/effect/packages/ai/openrouter/src/OpenRouterError.ts +225 -0
  809. package/repos/effect/packages/ai/openrouter/src/OpenRouterLanguageModel.ts +1796 -0
  810. package/repos/effect/packages/ai/openrouter/src/index.ts +30 -0
  811. package/repos/effect/packages/ai/openrouter/src/internal/errors.ts +375 -0
  812. package/repos/effect/packages/ai/openrouter/src/internal/utilities.ts +92 -0
  813. package/repos/effect/packages/ai/openrouter/tsconfig.json +10 -0
  814. package/repos/effect/packages/ai/openrouter/vitest.config.ts +6 -0
  815. package/repos/effect/packages/atom/react/CHANGELOG.md +599 -0
  816. package/repos/effect/packages/atom/react/LICENSE +21 -0
  817. package/repos/effect/packages/atom/react/README.md +7 -0
  818. package/repos/effect/packages/atom/react/docgen.json +25 -0
  819. package/repos/effect/packages/atom/react/package.json +79 -0
  820. package/repos/effect/packages/atom/react/src/Hooks.ts +476 -0
  821. package/repos/effect/packages/atom/react/src/ReactHydration.ts +109 -0
  822. package/repos/effect/packages/atom/react/src/RegistryContext.ts +108 -0
  823. package/repos/effect/packages/atom/react/src/ScopedAtom.ts +151 -0
  824. package/repos/effect/packages/atom/react/src/index.ts +23 -0
  825. package/repos/effect/packages/atom/react/test/index.test.tsx +650 -0
  826. package/repos/effect/packages/atom/react/tsconfig.json +8 -0
  827. package/repos/effect/packages/atom/react/vitest.config.ts +9 -0
  828. package/repos/effect/packages/atom/react/vitest.setup.ts +8 -0
  829. package/repos/effect/packages/atom/solid/CHANGELOG.md +595 -0
  830. package/repos/effect/packages/atom/solid/LICENSE +21 -0
  831. package/repos/effect/packages/atom/solid/README.md +7 -0
  832. package/repos/effect/packages/atom/solid/docgen.json +26 -0
  833. package/repos/effect/packages/atom/solid/package.json +72 -0
  834. package/repos/effect/packages/atom/solid/src/Hooks.ts +359 -0
  835. package/repos/effect/packages/atom/solid/src/RegistryContext.ts +80 -0
  836. package/repos/effect/packages/atom/solid/src/index.ts +13 -0
  837. package/repos/effect/packages/atom/solid/test/index.test.tsx +296 -0
  838. package/repos/effect/packages/atom/solid/tsconfig.json +8 -0
  839. package/repos/effect/packages/atom/solid/vitest.config.ts +15 -0
  840. package/repos/effect/packages/atom/solid/vitest.setup.ts +8 -0
  841. package/repos/effect/packages/atom/vue/CHANGELOG.md +593 -0
  842. package/repos/effect/packages/atom/vue/LICENSE +21 -0
  843. package/repos/effect/packages/atom/vue/README.md +7 -0
  844. package/repos/effect/packages/atom/vue/docgen.json +24 -0
  845. package/repos/effect/packages/atom/vue/package.json +68 -0
  846. package/repos/effect/packages/atom/vue/src/index.ts +211 -0
  847. package/repos/effect/packages/atom/vue/test/index.test.ts +5 -0
  848. package/repos/effect/packages/atom/vue/tsconfig.json +14 -0
  849. package/repos/effect/packages/atom/vue/vitest.config.ts +8 -0
  850. package/repos/effect/packages/effect/CHANGELOG.md +1607 -0
  851. package/repos/effect/packages/effect/CONFIG.md +690 -0
  852. package/repos/effect/packages/effect/HTTPAPI.md +3213 -0
  853. package/repos/effect/packages/effect/LICENSE +21 -0
  854. package/repos/effect/packages/effect/MCP.md +369 -0
  855. package/repos/effect/packages/effect/OPTIC.md +620 -0
  856. package/repos/effect/packages/effect/README.md +53 -0
  857. package/repos/effect/packages/effect/SCHEMA.md +7284 -0
  858. package/repos/effect/packages/effect/benchmark/schema/Enums.ts +40 -0
  859. package/repos/effect/packages/effect/benchmark/schema/Optic.ts +79 -0
  860. package/repos/effect/packages/effect/benchmark/schema/array.ts +74 -0
  861. package/repos/effect/packages/effect/benchmark/schema/filter.ts +74 -0
  862. package/repos/effect/packages/effect/benchmark/schema/object.ts +82 -0
  863. package/repos/effect/packages/effect/benchmark/schema/tagged-union.ts +69 -0
  864. package/repos/effect/packages/effect/benchmark/schema/transformation.ts +91 -0
  865. package/repos/effect/packages/effect/benchmark/stream/splitLines.ts +46 -0
  866. package/repos/effect/packages/effect/docgen.json +38 -0
  867. package/repos/effect/packages/effect/package.json +127 -0
  868. package/repos/effect/packages/effect/src/Array.ts +4908 -0
  869. package/repos/effect/packages/effect/src/BigDecimal.ts +1943 -0
  870. package/repos/effect/packages/effect/src/BigInt.ts +1029 -0
  871. package/repos/effect/packages/effect/src/Boolean.ts +481 -0
  872. package/repos/effect/packages/effect/src/Brand.ts +318 -0
  873. package/repos/effect/packages/effect/src/Cache.ts +1295 -0
  874. package/repos/effect/packages/effect/src/Cause.ts +1939 -0
  875. package/repos/effect/packages/effect/src/Channel.ts +8615 -0
  876. package/repos/effect/packages/effect/src/ChannelSchema.ts +308 -0
  877. package/repos/effect/packages/effect/src/Chunk.ts +2976 -0
  878. package/repos/effect/packages/effect/src/Clock.ts +194 -0
  879. package/repos/effect/packages/effect/src/Combiner.ts +316 -0
  880. package/repos/effect/packages/effect/src/Config.ts +1416 -0
  881. package/repos/effect/packages/effect/src/ConfigProvider.ts +1159 -0
  882. package/repos/effect/packages/effect/src/Console.ts +653 -0
  883. package/repos/effect/packages/effect/src/Context.ts +1339 -0
  884. package/repos/effect/packages/effect/src/Cron.ts +1212 -0
  885. package/repos/effect/packages/effect/src/Crypto.ts +318 -0
  886. package/repos/effect/packages/effect/src/Data.ts +774 -0
  887. package/repos/effect/packages/effect/src/DateTime.ts +2922 -0
  888. package/repos/effect/packages/effect/src/Deferred.ts +917 -0
  889. package/repos/effect/packages/effect/src/Differ.ts +32 -0
  890. package/repos/effect/packages/effect/src/Duration.ts +1827 -0
  891. package/repos/effect/packages/effect/src/Effect.ts +15347 -0
  892. package/repos/effect/packages/effect/src/Effectable.ts +68 -0
  893. package/repos/effect/packages/effect/src/Encoding.ts +1046 -0
  894. package/repos/effect/packages/effect/src/Equal.ts +550 -0
  895. package/repos/effect/packages/effect/src/Equivalence.ts +870 -0
  896. package/repos/effect/packages/effect/src/ErrorReporter.ts +543 -0
  897. package/repos/effect/packages/effect/src/ExecutionPlan.ts +416 -0
  898. package/repos/effect/packages/effect/src/Exit.ts +1085 -0
  899. package/repos/effect/packages/effect/src/Fiber.ts +632 -0
  900. package/repos/effect/packages/effect/src/FiberHandle.ts +815 -0
  901. package/repos/effect/packages/effect/src/FiberMap.ts +1030 -0
  902. package/repos/effect/packages/effect/src/FiberSet.ts +713 -0
  903. package/repos/effect/packages/effect/src/FileSystem.ts +1394 -0
  904. package/repos/effect/packages/effect/src/Filter.ts +827 -0
  905. package/repos/effect/packages/effect/src/Formatter.ts +319 -0
  906. package/repos/effect/packages/effect/src/Function.ts +1415 -0
  907. package/repos/effect/packages/effect/src/Graph.ts +4892 -0
  908. package/repos/effect/packages/effect/src/HKT.ts +213 -0
  909. package/repos/effect/packages/effect/src/Hash.ts +539 -0
  910. package/repos/effect/packages/effect/src/HashMap.ts +1236 -0
  911. package/repos/effect/packages/effect/src/HashRing.ts +426 -0
  912. package/repos/effect/packages/effect/src/HashSet.ts +605 -0
  913. package/repos/effect/packages/effect/src/Inspectable.ts +329 -0
  914. package/repos/effect/packages/effect/src/Iterable.ts +2483 -0
  915. package/repos/effect/packages/effect/src/JsonPatch.ts +469 -0
  916. package/repos/effect/packages/effect/src/JsonPointer.ts +80 -0
  917. package/repos/effect/packages/effect/src/JsonSchema.ts +948 -0
  918. package/repos/effect/packages/effect/src/Latch.ts +373 -0
  919. package/repos/effect/packages/effect/src/Layer.ts +2773 -0
  920. package/repos/effect/packages/effect/src/LayerMap.ts +468 -0
  921. package/repos/effect/packages/effect/src/LogLevel.ts +412 -0
  922. package/repos/effect/packages/effect/src/Logger.ts +1284 -0
  923. package/repos/effect/packages/effect/src/ManagedRuntime.ts +381 -0
  924. package/repos/effect/packages/effect/src/Match.ts +2606 -0
  925. package/repos/effect/packages/effect/src/Metric.ts +4058 -0
  926. package/repos/effect/packages/effect/src/MutableHashMap.ts +845 -0
  927. package/repos/effect/packages/effect/src/MutableHashSet.ts +422 -0
  928. package/repos/effect/packages/effect/src/MutableList.ts +967 -0
  929. package/repos/effect/packages/effect/src/MutableRef.ts +822 -0
  930. package/repos/effect/packages/effect/src/Newtype.ts +319 -0
  931. package/repos/effect/packages/effect/src/NonEmptyIterable.ts +221 -0
  932. package/repos/effect/packages/effect/src/Number.ts +860 -0
  933. package/repos/effect/packages/effect/src/Optic.ts +1701 -0
  934. package/repos/effect/packages/effect/src/Option.ts +2664 -0
  935. package/repos/effect/packages/effect/src/Order.ts +982 -0
  936. package/repos/effect/packages/effect/src/Ordering.ts +182 -0
  937. package/repos/effect/packages/effect/src/PartitionedSemaphore.ts +561 -0
  938. package/repos/effect/packages/effect/src/Path.ts +870 -0
  939. package/repos/effect/packages/effect/src/Pipeable.ts +674 -0
  940. package/repos/effect/packages/effect/src/PlatformError.ts +221 -0
  941. package/repos/effect/packages/effect/src/Pool.ts +699 -0
  942. package/repos/effect/packages/effect/src/Predicate.ts +1872 -0
  943. package/repos/effect/packages/effect/src/PrimaryKey.ts +123 -0
  944. package/repos/effect/packages/effect/src/PubSub.ts +2797 -0
  945. package/repos/effect/packages/effect/src/Pull.ts +376 -0
  946. package/repos/effect/packages/effect/src/Queue.ts +1962 -0
  947. package/repos/effect/packages/effect/src/Random.ts +549 -0
  948. package/repos/effect/packages/effect/src/RcMap.ts +612 -0
  949. package/repos/effect/packages/effect/src/RcRef.ts +225 -0
  950. package/repos/effect/packages/effect/src/Record.ts +1563 -0
  951. package/repos/effect/packages/effect/src/Redactable.ts +168 -0
  952. package/repos/effect/packages/effect/src/Redacted.ts +314 -0
  953. package/repos/effect/packages/effect/src/Reducer.ts +178 -0
  954. package/repos/effect/packages/effect/src/Ref.ts +801 -0
  955. package/repos/effect/packages/effect/src/References.ts +786 -0
  956. package/repos/effect/packages/effect/src/RegExp.ts +82 -0
  957. package/repos/effect/packages/effect/src/Request.ts +598 -0
  958. package/repos/effect/packages/effect/src/RequestResolver.ts +1249 -0
  959. package/repos/effect/packages/effect/src/Resource.ts +184 -0
  960. package/repos/effect/packages/effect/src/Result.ts +1939 -0
  961. package/repos/effect/packages/effect/src/Runtime.ts +432 -0
  962. package/repos/effect/packages/effect/src/Schedule.ts +3564 -0
  963. package/repos/effect/packages/effect/src/Scheduler.ts +285 -0
  964. package/repos/effect/packages/effect/src/Schema.ts +14653 -0
  965. package/repos/effect/packages/effect/src/SchemaAST.ts +3903 -0
  966. package/repos/effect/packages/effect/src/SchemaGetter.ts +1870 -0
  967. package/repos/effect/packages/effect/src/SchemaIssue.ts +1176 -0
  968. package/repos/effect/packages/effect/src/SchemaParser.ts +1105 -0
  969. package/repos/effect/packages/effect/src/SchemaRepresentation.ts +3944 -0
  970. package/repos/effect/packages/effect/src/SchemaTransformation.ts +1818 -0
  971. package/repos/effect/packages/effect/src/SchemaUtils.ts +51 -0
  972. package/repos/effect/packages/effect/src/Scope.ts +572 -0
  973. package/repos/effect/packages/effect/src/ScopedCache.ts +820 -0
  974. package/repos/effect/packages/effect/src/ScopedRef.ts +192 -0
  975. package/repos/effect/packages/effect/src/Semaphore.ts +517 -0
  976. package/repos/effect/packages/effect/src/Sink.ts +2174 -0
  977. package/repos/effect/packages/effect/src/Stdio.ts +143 -0
  978. package/repos/effect/packages/effect/src/Stream.ts +11722 -0
  979. package/repos/effect/packages/effect/src/String.ts +1427 -0
  980. package/repos/effect/packages/effect/src/Struct.ts +979 -0
  981. package/repos/effect/packages/effect/src/SubscriptionRef.ts +1021 -0
  982. package/repos/effect/packages/effect/src/Symbol.ts +31 -0
  983. package/repos/effect/packages/effect/src/SynchronizedRef.ts +668 -0
  984. package/repos/effect/packages/effect/src/Take.ts +46 -0
  985. package/repos/effect/packages/effect/src/Terminal.ts +188 -0
  986. package/repos/effect/packages/effect/src/Tracer.ts +683 -0
  987. package/repos/effect/packages/effect/src/Trie.ts +953 -0
  988. package/repos/effect/packages/effect/src/Tuple.ts +737 -0
  989. package/repos/effect/packages/effect/src/TxChunk.ts +822 -0
  990. package/repos/effect/packages/effect/src/TxDeferred.ts +319 -0
  991. package/repos/effect/packages/effect/src/TxHashMap.ts +2165 -0
  992. package/repos/effect/packages/effect/src/TxHashSet.ts +908 -0
  993. package/repos/effect/packages/effect/src/TxPriorityQueue.ts +567 -0
  994. package/repos/effect/packages/effect/src/TxPubSub.ts +684 -0
  995. package/repos/effect/packages/effect/src/TxQueue.ts +1488 -0
  996. package/repos/effect/packages/effect/src/TxReentrantLock.ts +655 -0
  997. package/repos/effect/packages/effect/src/TxRef.ts +282 -0
  998. package/repos/effect/packages/effect/src/TxSemaphore.ts +707 -0
  999. package/repos/effect/packages/effect/src/TxSubscriptionRef.ts +518 -0
  1000. package/repos/effect/packages/effect/src/Types.ts +1121 -0
  1001. package/repos/effect/packages/effect/src/UndefinedOr.ts +239 -0
  1002. package/repos/effect/packages/effect/src/Unify.ts +314 -0
  1003. package/repos/effect/packages/effect/src/Utils.ts +221 -0
  1004. package/repos/effect/packages/effect/src/index.ts +712 -0
  1005. package/repos/effect/packages/effect/src/internal/array.ts +8 -0
  1006. package/repos/effect/packages/effect/src/internal/concurrency.ts +52 -0
  1007. package/repos/effect/packages/effect/src/internal/core.ts +666 -0
  1008. package/repos/effect/packages/effect/src/internal/dateTime.ts +1264 -0
  1009. package/repos/effect/packages/effect/src/internal/doNotation.ts +117 -0
  1010. package/repos/effect/packages/effect/src/internal/effect.ts +6427 -0
  1011. package/repos/effect/packages/effect/src/internal/equal.ts +28 -0
  1012. package/repos/effect/packages/effect/src/internal/errors.ts +9 -0
  1013. package/repos/effect/packages/effect/src/internal/executionPlan.ts +120 -0
  1014. package/repos/effect/packages/effect/src/internal/hashMap.ts +1309 -0
  1015. package/repos/effect/packages/effect/src/internal/hashSet.ts +190 -0
  1016. package/repos/effect/packages/effect/src/internal/layer.ts +88 -0
  1017. package/repos/effect/packages/effect/src/internal/matcher.ts +637 -0
  1018. package/repos/effect/packages/effect/src/internal/metric.ts +2 -0
  1019. package/repos/effect/packages/effect/src/internal/option.ts +98 -0
  1020. package/repos/effect/packages/effect/src/internal/random.ts +20 -0
  1021. package/repos/effect/packages/effect/src/internal/rcRef.ts +189 -0
  1022. package/repos/effect/packages/effect/src/internal/record.ts +18 -0
  1023. package/repos/effect/packages/effect/src/internal/redacted.ts +19 -0
  1024. package/repos/effect/packages/effect/src/internal/references.ts +72 -0
  1025. package/repos/effect/packages/effect/src/internal/request.ts +205 -0
  1026. package/repos/effect/packages/effect/src/internal/result.ts +112 -0
  1027. package/repos/effect/packages/effect/src/internal/schedule.ts +248 -0
  1028. package/repos/effect/packages/effect/src/internal/schema/annotations.ts +37 -0
  1029. package/repos/effect/packages/effect/src/internal/schema/arbitrary.ts +894 -0
  1030. package/repos/effect/packages/effect/src/internal/schema/cause.ts +26 -0
  1031. package/repos/effect/packages/effect/src/internal/schema/equivalence.ts +154 -0
  1032. package/repos/effect/packages/effect/src/internal/schema/representation.ts +799 -0
  1033. package/repos/effect/packages/effect/src/internal/schema/schema.ts +128 -0
  1034. package/repos/effect/packages/effect/src/internal/stream.ts +28 -0
  1035. package/repos/effect/packages/effect/src/internal/tracer.ts +41 -0
  1036. package/repos/effect/packages/effect/src/internal/trie.ts +733 -0
  1037. package/repos/effect/packages/effect/src/internal/version.ts +2 -0
  1038. package/repos/effect/packages/effect/src/testing/FastCheck.ts +89 -0
  1039. package/repos/effect/packages/effect/src/testing/TestClock.ts +547 -0
  1040. package/repos/effect/packages/effect/src/testing/TestConsole.ts +369 -0
  1041. package/repos/effect/packages/effect/src/testing/TestSchema.ts +567 -0
  1042. package/repos/effect/packages/effect/src/testing/index.ts +25 -0
  1043. package/repos/effect/packages/effect/src/unstable/ai/AiError.ts +1629 -0
  1044. package/repos/effect/packages/effect/src/unstable/ai/AnthropicStructuredOutput.ts +407 -0
  1045. package/repos/effect/packages/effect/src/unstable/ai/Chat.ts +931 -0
  1046. package/repos/effect/packages/effect/src/unstable/ai/EmbeddingModel.ts +269 -0
  1047. package/repos/effect/packages/effect/src/unstable/ai/IdGenerator.ts +300 -0
  1048. package/repos/effect/packages/effect/src/unstable/ai/LanguageModel.ts +2221 -0
  1049. package/repos/effect/packages/effect/src/unstable/ai/McpSchema.ts +2527 -0
  1050. package/repos/effect/packages/effect/src/unstable/ai/McpServer.ts +1468 -0
  1051. package/repos/effect/packages/effect/src/unstable/ai/Model.ts +166 -0
  1052. package/repos/effect/packages/effect/src/unstable/ai/OpenAiStructuredOutput.ts +476 -0
  1053. package/repos/effect/packages/effect/src/unstable/ai/Prompt.ts +2234 -0
  1054. package/repos/effect/packages/effect/src/unstable/ai/Response.ts +2582 -0
  1055. package/repos/effect/packages/effect/src/unstable/ai/ResponseIdTracker.ts +139 -0
  1056. package/repos/effect/packages/effect/src/unstable/ai/Telemetry.ts +515 -0
  1057. package/repos/effect/packages/effect/src/unstable/ai/Tokenizer.ts +176 -0
  1058. package/repos/effect/packages/effect/src/unstable/ai/Tool.ts +2003 -0
  1059. package/repos/effect/packages/effect/src/unstable/ai/Toolkit.ts +554 -0
  1060. package/repos/effect/packages/effect/src/unstable/ai/index.ts +90 -0
  1061. package/repos/effect/packages/effect/src/unstable/ai/internal/codec-transformer.ts +13 -0
  1062. package/repos/effect/packages/effect/src/unstable/cli/Argument.ts +749 -0
  1063. package/repos/effect/packages/effect/src/unstable/cli/CliError.ts +549 -0
  1064. package/repos/effect/packages/effect/src/unstable/cli/CliOutput.ts +607 -0
  1065. package/repos/effect/packages/effect/src/unstable/cli/Command.ts +1610 -0
  1066. package/repos/effect/packages/effect/src/unstable/cli/Completions.ts +123 -0
  1067. package/repos/effect/packages/effect/src/unstable/cli/Flag.ts +986 -0
  1068. package/repos/effect/packages/effect/src/unstable/cli/GlobalFlag.ts +295 -0
  1069. package/repos/effect/packages/effect/src/unstable/cli/HelpDoc.ts +323 -0
  1070. package/repos/effect/packages/effect/src/unstable/cli/Param.ts +2193 -0
  1071. package/repos/effect/packages/effect/src/unstable/cli/Primitive.ts +766 -0
  1072. package/repos/effect/packages/effect/src/unstable/cli/Prompt.ts +3852 -0
  1073. package/repos/effect/packages/effect/src/unstable/cli/SEMANTICS.md +157 -0
  1074. package/repos/effect/packages/effect/src/unstable/cli/index.ts +60 -0
  1075. package/repos/effect/packages/effect/src/unstable/cli/internal/ansi.ts +152 -0
  1076. package/repos/effect/packages/effect/src/unstable/cli/internal/auto-suggest.ts +41 -0
  1077. package/repos/effect/packages/effect/src/unstable/cli/internal/command.ts +340 -0
  1078. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/bash.ts +222 -0
  1079. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/descriptor.ts +133 -0
  1080. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/fish.ts +253 -0
  1081. package/repos/effect/packages/effect/src/unstable/cli/internal/completions/zsh.ts +220 -0
  1082. package/repos/effect/packages/effect/src/unstable/cli/internal/config.ts +272 -0
  1083. package/repos/effect/packages/effect/src/unstable/cli/internal/help.ts +181 -0
  1084. package/repos/effect/packages/effect/src/unstable/cli/internal/lexer.ts +70 -0
  1085. package/repos/effect/packages/effect/src/unstable/cli/internal/parser.ts +932 -0
  1086. package/repos/effect/packages/effect/src/unstable/cluster/ClusterCron.ts +163 -0
  1087. package/repos/effect/packages/effect/src/unstable/cluster/ClusterError.ts +238 -0
  1088. package/repos/effect/packages/effect/src/unstable/cluster/ClusterMetrics.ts +112 -0
  1089. package/repos/effect/packages/effect/src/unstable/cluster/ClusterSchema.ts +170 -0
  1090. package/repos/effect/packages/effect/src/unstable/cluster/ClusterWorkflowEngine.ts +778 -0
  1091. package/repos/effect/packages/effect/src/unstable/cluster/DeliverAt.ts +58 -0
  1092. package/repos/effect/packages/effect/src/unstable/cluster/Entity.ts +779 -0
  1093. package/repos/effect/packages/effect/src/unstable/cluster/EntityAddress.ts +93 -0
  1094. package/repos/effect/packages/effect/src/unstable/cluster/EntityId.ts +50 -0
  1095. package/repos/effect/packages/effect/src/unstable/cluster/EntityProxy.ts +263 -0
  1096. package/repos/effect/packages/effect/src/unstable/cluster/EntityProxyServer.ts +149 -0
  1097. package/repos/effect/packages/effect/src/unstable/cluster/EntityResource.ts +184 -0
  1098. package/repos/effect/packages/effect/src/unstable/cluster/EntityType.ts +52 -0
  1099. package/repos/effect/packages/effect/src/unstable/cluster/Envelope.ts +433 -0
  1100. package/repos/effect/packages/effect/src/unstable/cluster/HttpRunner.ts +345 -0
  1101. package/repos/effect/packages/effect/src/unstable/cluster/K8sHttpClient.ts +297 -0
  1102. package/repos/effect/packages/effect/src/unstable/cluster/MachineId.ts +54 -0
  1103. package/repos/effect/packages/effect/src/unstable/cluster/Message.ts +314 -0
  1104. package/repos/effect/packages/effect/src/unstable/cluster/MessageStorage.ts +1072 -0
  1105. package/repos/effect/packages/effect/src/unstable/cluster/Reply.ts +455 -0
  1106. package/repos/effect/packages/effect/src/unstable/cluster/Runner.ts +129 -0
  1107. package/repos/effect/packages/effect/src/unstable/cluster/RunnerAddress.ts +112 -0
  1108. package/repos/effect/packages/effect/src/unstable/cluster/RunnerHealth.ts +145 -0
  1109. package/repos/effect/packages/effect/src/unstable/cluster/RunnerServer.ts +220 -0
  1110. package/repos/effect/packages/effect/src/unstable/cluster/RunnerStorage.ts +243 -0
  1111. package/repos/effect/packages/effect/src/unstable/cluster/Runners.ts +690 -0
  1112. package/repos/effect/packages/effect/src/unstable/cluster/ShardId.ts +178 -0
  1113. package/repos/effect/packages/effect/src/unstable/cluster/Sharding.ts +1488 -0
  1114. package/repos/effect/packages/effect/src/unstable/cluster/ShardingConfig.ts +367 -0
  1115. package/repos/effect/packages/effect/src/unstable/cluster/ShardingRegistrationEvent.ts +76 -0
  1116. package/repos/effect/packages/effect/src/unstable/cluster/SingleRunner.ts +75 -0
  1117. package/repos/effect/packages/effect/src/unstable/cluster/Singleton.ts +56 -0
  1118. package/repos/effect/packages/effect/src/unstable/cluster/SingletonAddress.ts +49 -0
  1119. package/repos/effect/packages/effect/src/unstable/cluster/Snowflake.ts +282 -0
  1120. package/repos/effect/packages/effect/src/unstable/cluster/SocketRunner.ts +96 -0
  1121. package/repos/effect/packages/effect/src/unstable/cluster/SqlMessageStorage.ts +1045 -0
  1122. package/repos/effect/packages/effect/src/unstable/cluster/SqlRunnerStorage.ts +700 -0
  1123. package/repos/effect/packages/effect/src/unstable/cluster/TestRunner.ts +36 -0
  1124. package/repos/effect/packages/effect/src/unstable/cluster/index.ts +195 -0
  1125. package/repos/effect/packages/effect/src/unstable/cluster/internal/entityManager.ts +678 -0
  1126. package/repos/effect/packages/effect/src/unstable/cluster/internal/entityReaper.ts +58 -0
  1127. package/repos/effect/packages/effect/src/unstable/cluster/internal/hash.ts +23 -0
  1128. package/repos/effect/packages/effect/src/unstable/cluster/internal/interruptors.ts +2 -0
  1129. package/repos/effect/packages/effect/src/unstable/cluster/internal/resourceMap.ts +100 -0
  1130. package/repos/effect/packages/effect/src/unstable/cluster/internal/resourceRef.ts +99 -0
  1131. package/repos/effect/packages/effect/src/unstable/devtools/DevTools.ts +68 -0
  1132. package/repos/effect/packages/effect/src/unstable/devtools/DevToolsClient.ts +236 -0
  1133. package/repos/effect/packages/effect/src/unstable/devtools/DevToolsSchema.ts +558 -0
  1134. package/repos/effect/packages/effect/src/unstable/devtools/DevToolsServer.ts +94 -0
  1135. package/repos/effect/packages/effect/src/unstable/devtools/index.ts +25 -0
  1136. package/repos/effect/packages/effect/src/unstable/encoding/Msgpack.ts +383 -0
  1137. package/repos/effect/packages/effect/src/unstable/encoding/Ndjson.ts +602 -0
  1138. package/repos/effect/packages/effect/src/unstable/encoding/Sse.ts +593 -0
  1139. package/repos/effect/packages/effect/src/unstable/encoding/index.ts +20 -0
  1140. package/repos/effect/packages/effect/src/unstable/eventlog/Event.ts +447 -0
  1141. package/repos/effect/packages/effect/src/unstable/eventlog/EventGroup.ts +193 -0
  1142. package/repos/effect/packages/effect/src/unstable/eventlog/EventJournal.ts +795 -0
  1143. package/repos/effect/packages/effect/src/unstable/eventlog/EventLog.ts +1030 -0
  1144. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogEncryption.ts +169 -0
  1145. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogMessage.ts +354 -0
  1146. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogRemote.ts +377 -0
  1147. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServer.ts +242 -0
  1148. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServerEncrypted.ts +268 -0
  1149. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServerUnencrypted.ts +898 -0
  1150. package/repos/effect/packages/effect/src/unstable/eventlog/EventLogSessionAuth.ts +524 -0
  1151. package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventJournal.ts +353 -0
  1152. package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +343 -0
  1153. package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +527 -0
  1154. package/repos/effect/packages/effect/src/unstable/eventlog/index.ts +75 -0
  1155. package/repos/effect/packages/effect/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
  1156. package/repos/effect/packages/effect/src/unstable/http/Cookies.ts +952 -0
  1157. package/repos/effect/packages/effect/src/unstable/http/Etag.ts +141 -0
  1158. package/repos/effect/packages/effect/src/unstable/http/FetchHttpClient.ts +123 -0
  1159. package/repos/effect/packages/effect/src/unstable/http/FindMyWay.ts +15 -0
  1160. package/repos/effect/packages/effect/src/unstable/http/Headers.ts +438 -0
  1161. package/repos/effect/packages/effect/src/unstable/http/HttpBody.ts +545 -0
  1162. package/repos/effect/packages/effect/src/unstable/http/HttpClient.ts +1630 -0
  1163. package/repos/effect/packages/effect/src/unstable/http/HttpClientError.ts +328 -0
  1164. package/repos/effect/packages/effect/src/unstable/http/HttpClientRequest.ts +968 -0
  1165. package/repos/effect/packages/effect/src/unstable/http/HttpClientResponse.ts +408 -0
  1166. package/repos/effect/packages/effect/src/unstable/http/HttpEffect.ts +400 -0
  1167. package/repos/effect/packages/effect/src/unstable/http/HttpIncomingMessage.ts +153 -0
  1168. package/repos/effect/packages/effect/src/unstable/http/HttpMethod.ts +124 -0
  1169. package/repos/effect/packages/effect/src/unstable/http/HttpMiddleware.ts +394 -0
  1170. package/repos/effect/packages/effect/src/unstable/http/HttpPlatform.ts +165 -0
  1171. package/repos/effect/packages/effect/src/unstable/http/HttpRouter.ts +1341 -0
  1172. package/repos/effect/packages/effect/src/unstable/http/HttpServer.ts +329 -0
  1173. package/repos/effect/packages/effect/src/unstable/http/HttpServerError.ts +374 -0
  1174. package/repos/effect/packages/effect/src/unstable/http/HttpServerRequest.ts +1081 -0
  1175. package/repos/effect/packages/effect/src/unstable/http/HttpServerRespondable.ts +115 -0
  1176. package/repos/effect/packages/effect/src/unstable/http/HttpServerResponse.ts +1381 -0
  1177. package/repos/effect/packages/effect/src/unstable/http/HttpStaticServer.ts +464 -0
  1178. package/repos/effect/packages/effect/src/unstable/http/HttpTraceContext.ts +160 -0
  1179. package/repos/effect/packages/effect/src/unstable/http/Multipart.ts +830 -0
  1180. package/repos/effect/packages/effect/src/unstable/http/Multipasta/HeadersParser.ts +14 -0
  1181. package/repos/effect/packages/effect/src/unstable/http/Multipasta/Node.ts +14 -0
  1182. package/repos/effect/packages/effect/src/unstable/http/Multipasta/Search.ts +14 -0
  1183. package/repos/effect/packages/effect/src/unstable/http/Multipasta/Web.ts +14 -0
  1184. package/repos/effect/packages/effect/src/unstable/http/Multipasta.ts +15 -0
  1185. package/repos/effect/packages/effect/src/unstable/http/Template.ts +262 -0
  1186. package/repos/effect/packages/effect/src/unstable/http/Url.ts +330 -0
  1187. package/repos/effect/packages/effect/src/unstable/http/UrlParams.ts +678 -0
  1188. package/repos/effect/packages/effect/src/unstable/http/index.ts +145 -0
  1189. package/repos/effect/packages/effect/src/unstable/http/internal/preResponseHandler.ts +15 -0
  1190. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApi.ts +316 -0
  1191. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiBuilder.ts +1015 -0
  1192. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiClient.ts +1005 -0
  1193. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiEndpoint.ts +1545 -0
  1194. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiError.ts +443 -0
  1195. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiGroup.ts +381 -0
  1196. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiMiddleware.ts +478 -0
  1197. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiScalar.ts +267 -0
  1198. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSchema.ts +733 -0
  1199. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSecurity.ts +244 -0
  1200. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSwagger.ts +68 -0
  1201. package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiTest.ts +112 -0
  1202. package/repos/effect/packages/effect/src/unstable/httpapi/OpenApi.ts +1098 -0
  1203. package/repos/effect/packages/effect/src/unstable/httpapi/index.ts +70 -0
  1204. package/repos/effect/packages/effect/src/unstable/httpapi/internal/html.ts +18 -0
  1205. package/repos/effect/packages/effect/src/unstable/httpapi/internal/httpApiScalar.ts +5 -0
  1206. package/repos/effect/packages/effect/src/unstable/httpapi/internal/httpApiSwagger.ts +9 -0
  1207. package/repos/effect/packages/effect/src/unstable/observability/Otlp.ts +172 -0
  1208. package/repos/effect/packages/effect/src/unstable/observability/OtlpExporter.ts +149 -0
  1209. package/repos/effect/packages/effect/src/unstable/observability/OtlpLogger.ts +340 -0
  1210. package/repos/effect/packages/effect/src/unstable/observability/OtlpMetrics.ts +826 -0
  1211. package/repos/effect/packages/effect/src/unstable/observability/OtlpResource.ts +288 -0
  1212. package/repos/effect/packages/effect/src/unstable/observability/OtlpSerialization.ts +66 -0
  1213. package/repos/effect/packages/effect/src/unstable/observability/OtlpTracer.ts +442 -0
  1214. package/repos/effect/packages/effect/src/unstable/observability/PrometheusMetrics.ts +468 -0
  1215. package/repos/effect/packages/effect/src/unstable/observability/index.ts +45 -0
  1216. package/repos/effect/packages/effect/src/unstable/observability/internal/otlpEnv.ts +39 -0
  1217. package/repos/effect/packages/effect/src/unstable/observability/internal/otlpProtobuf.ts +779 -0
  1218. package/repos/effect/packages/effect/src/unstable/observability/internal/protobuf.ts +262 -0
  1219. package/repos/effect/packages/effect/src/unstable/persistence/KeyValueStore.ts +864 -0
  1220. package/repos/effect/packages/effect/src/unstable/persistence/Persistable.ts +252 -0
  1221. package/repos/effect/packages/effect/src/unstable/persistence/PersistedCache.ts +111 -0
  1222. package/repos/effect/packages/effect/src/unstable/persistence/PersistedQueue.ts +1196 -0
  1223. package/repos/effect/packages/effect/src/unstable/persistence/Persistence.ts +1071 -0
  1224. package/repos/effect/packages/effect/src/unstable/persistence/RateLimiter.ts +748 -0
  1225. package/repos/effect/packages/effect/src/unstable/persistence/Redis.ts +188 -0
  1226. package/repos/effect/packages/effect/src/unstable/persistence/index.ts +40 -0
  1227. package/repos/effect/packages/effect/src/unstable/process/ChildProcess.ts +1036 -0
  1228. package/repos/effect/packages/effect/src/unstable/process/ChildProcessSpawner.ts +285 -0
  1229. package/repos/effect/packages/effect/src/unstable/process/index.ts +15 -0
  1230. package/repos/effect/packages/effect/src/unstable/reactivity/AsyncResult.ts +1081 -0
  1231. package/repos/effect/packages/effect/src/unstable/reactivity/Atom.ts +2520 -0
  1232. package/repos/effect/packages/effect/src/unstable/reactivity/AtomHttpApi.ts +352 -0
  1233. package/repos/effect/packages/effect/src/unstable/reactivity/AtomRef.ts +352 -0
  1234. package/repos/effect/packages/effect/src/unstable/reactivity/AtomRegistry.ts +1127 -0
  1235. package/repos/effect/packages/effect/src/unstable/reactivity/AtomRpc.ts +305 -0
  1236. package/repos/effect/packages/effect/src/unstable/reactivity/Hydration.ts +155 -0
  1237. package/repos/effect/packages/effect/src/unstable/reactivity/Reactivity.ts +348 -0
  1238. package/repos/effect/packages/effect/src/unstable/reactivity/index.ts +45 -0
  1239. package/repos/effect/packages/effect/src/unstable/rpc/Rpc.ts +1255 -0
  1240. package/repos/effect/packages/effect/src/unstable/rpc/RpcClient.ts +1370 -0
  1241. package/repos/effect/packages/effect/src/unstable/rpc/RpcClientError.ts +57 -0
  1242. package/repos/effect/packages/effect/src/unstable/rpc/RpcGroup.ts +409 -0
  1243. package/repos/effect/packages/effect/src/unstable/rpc/RpcMessage.ts +402 -0
  1244. package/repos/effect/packages/effect/src/unstable/rpc/RpcMiddleware.ts +344 -0
  1245. package/repos/effect/packages/effect/src/unstable/rpc/RpcSchema.ts +97 -0
  1246. package/repos/effect/packages/effect/src/unstable/rpc/RpcSerialization.ts +546 -0
  1247. package/repos/effect/packages/effect/src/unstable/rpc/RpcServer.ts +1492 -0
  1248. package/repos/effect/packages/effect/src/unstable/rpc/RpcTest.ts +56 -0
  1249. package/repos/effect/packages/effect/src/unstable/rpc/RpcWorker.ts +118 -0
  1250. package/repos/effect/packages/effect/src/unstable/rpc/Utils.ts +120 -0
  1251. package/repos/effect/packages/effect/src/unstable/rpc/index.ts +65 -0
  1252. package/repos/effect/packages/effect/src/unstable/schema/Model.ts +862 -0
  1253. package/repos/effect/packages/effect/src/unstable/schema/VariantSchema.ts +604 -0
  1254. package/repos/effect/packages/effect/src/unstable/schema/index.ts +15 -0
  1255. package/repos/effect/packages/effect/src/unstable/socket/Socket.ts +911 -0
  1256. package/repos/effect/packages/effect/src/unstable/socket/SocketServer.ts +147 -0
  1257. package/repos/effect/packages/effect/src/unstable/socket/index.ts +15 -0
  1258. package/repos/effect/packages/effect/src/unstable/sql/Migrator.ts +440 -0
  1259. package/repos/effect/packages/effect/src/unstable/sql/SqlClient.ts +342 -0
  1260. package/repos/effect/packages/effect/src/unstable/sql/SqlConnection.ts +83 -0
  1261. package/repos/effect/packages/effect/src/unstable/sql/SqlError.ts +590 -0
  1262. package/repos/effect/packages/effect/src/unstable/sql/SqlModel.ts +359 -0
  1263. package/repos/effect/packages/effect/src/unstable/sql/SqlResolver.ts +380 -0
  1264. package/repos/effect/packages/effect/src/unstable/sql/SqlSchema.ts +172 -0
  1265. package/repos/effect/packages/effect/src/unstable/sql/SqlStream.ts +81 -0
  1266. package/repos/effect/packages/effect/src/unstable/sql/Statement.ts +1500 -0
  1267. package/repos/effect/packages/effect/src/unstable/sql/index.ts +50 -0
  1268. package/repos/effect/packages/effect/src/unstable/workers/Transferable.ts +191 -0
  1269. package/repos/effect/packages/effect/src/unstable/workers/Worker.ts +245 -0
  1270. package/repos/effect/packages/effect/src/unstable/workers/WorkerError.ts +148 -0
  1271. package/repos/effect/packages/effect/src/unstable/workers/WorkerRunner.ts +57 -0
  1272. package/repos/effect/packages/effect/src/unstable/workers/index.ts +25 -0
  1273. package/repos/effect/packages/effect/src/unstable/workflow/Activity.ts +322 -0
  1274. package/repos/effect/packages/effect/src/unstable/workflow/DurableClock.ts +117 -0
  1275. package/repos/effect/packages/effect/src/unstable/workflow/DurableDeferred.ts +653 -0
  1276. package/repos/effect/packages/effect/src/unstable/workflow/DurableQueue.ts +360 -0
  1277. package/repos/effect/packages/effect/src/unstable/workflow/Workflow.ts +898 -0
  1278. package/repos/effect/packages/effect/src/unstable/workflow/WorkflowEngine.ts +759 -0
  1279. package/repos/effect/packages/effect/src/unstable/workflow/WorkflowProxy.ts +212 -0
  1280. package/repos/effect/packages/effect/src/unstable/workflow/WorkflowProxyServer.ts +151 -0
  1281. package/repos/effect/packages/effect/src/unstable/workflow/index.ts +45 -0
  1282. package/repos/effect/packages/effect/src/unstable/workflow/internal/crypto.ts +15 -0
  1283. package/repos/effect/packages/effect/test/Array.test.ts +1579 -0
  1284. package/repos/effect/packages/effect/test/AtomRef.test.ts +27 -0
  1285. package/repos/effect/packages/effect/test/BigDecimal.test.ts +525 -0
  1286. package/repos/effect/packages/effect/test/BigInt.test.ts +57 -0
  1287. package/repos/effect/packages/effect/test/Boolean.test.ts +289 -0
  1288. package/repos/effect/packages/effect/test/Brand.test.ts +160 -0
  1289. package/repos/effect/packages/effect/test/Cache.test.ts +1423 -0
  1290. package/repos/effect/packages/effect/test/Cause.test.ts +834 -0
  1291. package/repos/effect/packages/effect/test/Channel.test.ts +556 -0
  1292. package/repos/effect/packages/effect/test/Chunk.test.ts +874 -0
  1293. package/repos/effect/packages/effect/test/Combiner.test.ts +42 -0
  1294. package/repos/effect/packages/effect/test/Config.test.ts +1416 -0
  1295. package/repos/effect/packages/effect/test/ConfigProvider.test.ts +726 -0
  1296. package/repos/effect/packages/effect/test/Cron.test.ts +401 -0
  1297. package/repos/effect/packages/effect/test/Crypto.test.ts +86 -0
  1298. package/repos/effect/packages/effect/test/Data.test.ts +269 -0
  1299. package/repos/effect/packages/effect/test/DateTime.test.ts +953 -0
  1300. package/repos/effect/packages/effect/test/Deferred.test.ts +165 -0
  1301. package/repos/effect/packages/effect/test/Duration.test.ts +679 -0
  1302. package/repos/effect/packages/effect/test/Effect.test.ts +2658 -0
  1303. package/repos/effect/packages/effect/test/EffectEager.test.ts +678 -0
  1304. package/repos/effect/packages/effect/test/EffectKeepAlive.test.ts +71 -0
  1305. package/repos/effect/packages/effect/test/Equal.test.ts +1278 -0
  1306. package/repos/effect/packages/effect/test/Equivalence.test.ts +170 -0
  1307. package/repos/effect/packages/effect/test/ExecutionPlan.test.ts +117 -0
  1308. package/repos/effect/packages/effect/test/Exit.test.ts +12 -0
  1309. package/repos/effect/packages/effect/test/Fiber.test.ts +9 -0
  1310. package/repos/effect/packages/effect/test/FiberHandle.test.ts +146 -0
  1311. package/repos/effect/packages/effect/test/FiberMap.test.ts +171 -0
  1312. package/repos/effect/packages/effect/test/FiberSet.test.ts +119 -0
  1313. package/repos/effect/packages/effect/test/Formatter.test.ts +247 -0
  1314. package/repos/effect/packages/effect/test/Function.test.ts +333 -0
  1315. package/repos/effect/packages/effect/test/Graph.test.ts +3505 -0
  1316. package/repos/effect/packages/effect/test/HashMap.test.ts +618 -0
  1317. package/repos/effect/packages/effect/test/HashSet.test.ts +298 -0
  1318. package/repos/effect/packages/effect/test/HttpClient.test.ts +131 -0
  1319. package/repos/effect/packages/effect/test/Iterable.test.ts +486 -0
  1320. package/repos/effect/packages/effect/test/JsonPatch.test.ts +948 -0
  1321. package/repos/effect/packages/effect/test/JsonPointer.test.ts +353 -0
  1322. package/repos/effect/packages/effect/test/JsonSchema.test.ts +1253 -0
  1323. package/repos/effect/packages/effect/test/Latch.test.ts +21 -0
  1324. package/repos/effect/packages/effect/test/Layer.test.ts +648 -0
  1325. package/repos/effect/packages/effect/test/LayerMap.test.ts +98 -0
  1326. package/repos/effect/packages/effect/test/LogLevel.test.ts +28 -0
  1327. package/repos/effect/packages/effect/test/Logger.test.ts +154 -0
  1328. package/repos/effect/packages/effect/test/ManagedRuntime.test.ts +58 -0
  1329. package/repos/effect/packages/effect/test/Match.test.ts +27 -0
  1330. package/repos/effect/packages/effect/test/Metric.test.ts +682 -0
  1331. package/repos/effect/packages/effect/test/Migrator.test.ts +69 -0
  1332. package/repos/effect/packages/effect/test/MutableHashMap.test.ts +309 -0
  1333. package/repos/effect/packages/effect/test/MutableHashSet.test.ts +10 -0
  1334. package/repos/effect/packages/effect/test/MutableList.test.ts +58 -0
  1335. package/repos/effect/packages/effect/test/Newtype.test.ts +90 -0
  1336. package/repos/effect/packages/effect/test/Number.test.ts +422 -0
  1337. package/repos/effect/packages/effect/test/Optic.test.ts +452 -0
  1338. package/repos/effect/packages/effect/test/Option.test.ts +564 -0
  1339. package/repos/effect/packages/effect/test/Order.test.ts +163 -0
  1340. package/repos/effect/packages/effect/test/Ordering.test.ts +18 -0
  1341. package/repos/effect/packages/effect/test/PartitionedSemaphore.test.ts +74 -0
  1342. package/repos/effect/packages/effect/test/Pathfinding.test.ts +426 -0
  1343. package/repos/effect/packages/effect/test/Pool.test.ts +422 -0
  1344. package/repos/effect/packages/effect/test/Predicate.test.ts +555 -0
  1345. package/repos/effect/packages/effect/test/PubSub.test.ts +538 -0
  1346. package/repos/effect/packages/effect/test/Queue.test.ts +317 -0
  1347. package/repos/effect/packages/effect/test/Random.test.ts +238 -0
  1348. package/repos/effect/packages/effect/test/RcMap.test.ts +237 -0
  1349. package/repos/effect/packages/effect/test/RcRef.test.ts +97 -0
  1350. package/repos/effect/packages/effect/test/Record.test.ts +395 -0
  1351. package/repos/effect/packages/effect/test/Redacted.test.ts +59 -0
  1352. package/repos/effect/packages/effect/test/Reducer.test.ts +12 -0
  1353. package/repos/effect/packages/effect/test/Ref.test.ts +187 -0
  1354. package/repos/effect/packages/effect/test/Request.test.ts +305 -0
  1355. package/repos/effect/packages/effect/test/Resource.test.ts +59 -0
  1356. package/repos/effect/packages/effect/test/Result.test.ts +517 -0
  1357. package/repos/effect/packages/effect/test/Schedule.test.ts +395 -0
  1358. package/repos/effect/packages/effect/test/Scheduler.test.ts +70 -0
  1359. package/repos/effect/packages/effect/test/Scope.test.ts +19 -0
  1360. package/repos/effect/packages/effect/test/ScopedCache.test.ts +2316 -0
  1361. package/repos/effect/packages/effect/test/ScopedRef.test.ts +80 -0
  1362. package/repos/effect/packages/effect/test/Semaphore.test.ts +469 -0
  1363. package/repos/effect/packages/effect/test/Sink.test.ts +230 -0
  1364. package/repos/effect/packages/effect/test/Stream.test.ts +4712 -0
  1365. package/repos/effect/packages/effect/test/String.test.ts +690 -0
  1366. package/repos/effect/packages/effect/test/Struct.test.ts +216 -0
  1367. package/repos/effect/packages/effect/test/SubscriptionRef.test.ts +90 -0
  1368. package/repos/effect/packages/effect/test/Symbol.test.ts +50 -0
  1369. package/repos/effect/packages/effect/test/SynchronizedRef.test.ts +105 -0
  1370. package/repos/effect/packages/effect/test/TestClock.test.ts +71 -0
  1371. package/repos/effect/packages/effect/test/Tracer.test.ts +410 -0
  1372. package/repos/effect/packages/effect/test/Trie.test.ts +531 -0
  1373. package/repos/effect/packages/effect/test/Tuple.test.ts +127 -0
  1374. package/repos/effect/packages/effect/test/TxChunk.test.ts +342 -0
  1375. package/repos/effect/packages/effect/test/TxDeferred.test.ts +197 -0
  1376. package/repos/effect/packages/effect/test/TxHashMap.test.ts +963 -0
  1377. package/repos/effect/packages/effect/test/TxHashSet.test.ts +442 -0
  1378. package/repos/effect/packages/effect/test/TxPriorityQueue.test.ts +187 -0
  1379. package/repos/effect/packages/effect/test/TxPubSub.test.ts +391 -0
  1380. package/repos/effect/packages/effect/test/TxQueue.test.ts +1260 -0
  1381. package/repos/effect/packages/effect/test/TxReentrantLock.test.ts +413 -0
  1382. package/repos/effect/packages/effect/test/TxSemaphore.test.ts +283 -0
  1383. package/repos/effect/packages/effect/test/TxSubscriptionRef.test.ts +197 -0
  1384. package/repos/effect/packages/effect/test/UndefinedOr.test.ts +65 -0
  1385. package/repos/effect/packages/effect/test/cluster/ClusterWorkflowEngine.test.ts +652 -0
  1386. package/repos/effect/packages/effect/test/cluster/Entity.test.ts +81 -0
  1387. package/repos/effect/packages/effect/test/cluster/K8sHttpClient.test.ts +34 -0
  1388. package/repos/effect/packages/effect/test/cluster/MessageStorage.test.ts +196 -0
  1389. package/repos/effect/packages/effect/test/cluster/Sharding.test.ts +578 -0
  1390. package/repos/effect/packages/effect/test/cluster/TestEntity.ts +132 -0
  1391. package/repos/effect/packages/effect/test/reactivity/AsyncResult.test.ts +41 -0
  1392. package/repos/effect/packages/effect/test/reactivity/Atom.test.ts +2551 -0
  1393. package/repos/effect/packages/effect/test/reactivity/AtomHttpApi.test.ts +86 -0
  1394. package/repos/effect/packages/effect/test/reactivity/AtomRpc.test.ts +70 -0
  1395. package/repos/effect/packages/effect/test/rpc/Rpc.test.ts +73 -0
  1396. package/repos/effect/packages/effect/test/rpc/RpcClient.test.ts +58 -0
  1397. package/repos/effect/packages/effect/test/rpc/RpcSerialization.test.ts +171 -0
  1398. package/repos/effect/packages/effect/test/schema/HMR.test.ts +72 -0
  1399. package/repos/effect/packages/effect/test/schema/Schema.test.ts +9133 -0
  1400. package/repos/effect/packages/effect/test/schema/SchemaAST.test.ts +280 -0
  1401. package/repos/effect/packages/effect/test/schema/SchemaGetter.test.ts +383 -0
  1402. package/repos/effect/packages/effect/test/schema/SchemaIssue.test.ts +9 -0
  1403. package/repos/effect/packages/effect/test/schema/SchemaParser.test.ts +323 -0
  1404. package/repos/effect/packages/effect/test/schema/fixtures/HMR-Class.ts +5 -0
  1405. package/repos/effect/packages/effect/test/schema/fixtures/HMR-sanity-check.ts +3 -0
  1406. package/repos/effect/packages/effect/test/schema/representation/fromASTs.test.ts +820 -0
  1407. package/repos/effect/packages/effect/test/schema/representation/fromJsonSchemaDocument.test.ts +2137 -0
  1408. package/repos/effect/packages/effect/test/schema/representation/toCodeDocument.test.ts +2089 -0
  1409. package/repos/effect/packages/effect/test/schema/representation/toJsonSchemaMultiDocument.test.ts +39 -0
  1410. package/repos/effect/packages/effect/test/schema/representation/toSchema.test.ts +506 -0
  1411. package/repos/effect/packages/effect/test/schema/toArbitrary.test.ts +1693 -0
  1412. package/repos/effect/packages/effect/test/schema/toCodec.test.ts +3149 -0
  1413. package/repos/effect/packages/effect/test/schema/toDifferJsonPatch.test.ts +239 -0
  1414. package/repos/effect/packages/effect/test/schema/toEquivalence.test.ts +519 -0
  1415. package/repos/effect/packages/effect/test/schema/toFormatter.test.ts +565 -0
  1416. package/repos/effect/packages/effect/test/schema/toIso.test.ts +394 -0
  1417. package/repos/effect/packages/effect/test/schema/toJsonSchemaDocument.test.ts +3630 -0
  1418. package/repos/effect/packages/effect/test/schema/toStandardJSONSchemaV1.test.ts +126 -0
  1419. package/repos/effect/packages/effect/test/schema/toStandardSchemaV1.test.ts +495 -0
  1420. package/repos/effect/packages/effect/test/schema/v3-v4.test.ts +250 -0
  1421. package/repos/effect/packages/effect/test/testing/TestSchema.test.ts +78 -0
  1422. package/repos/effect/packages/effect/test/unstable/ai/AiError.test.ts +823 -0
  1423. package/repos/effect/packages/effect/test/unstable/ai/AnthropicStructuredOutput.test.ts +593 -0
  1424. package/repos/effect/packages/effect/test/unstable/ai/Chat.test.ts +147 -0
  1425. package/repos/effect/packages/effect/test/unstable/ai/EmbeddingModel.test.ts +185 -0
  1426. package/repos/effect/packages/effect/test/unstable/ai/LanguageModel.test.ts +1714 -0
  1427. package/repos/effect/packages/effect/test/unstable/ai/LanguageModelTrackerLifecycle.test.ts +413 -0
  1428. package/repos/effect/packages/effect/test/unstable/ai/McpServer.test.ts +82 -0
  1429. package/repos/effect/packages/effect/test/unstable/ai/Model.test.ts +16 -0
  1430. package/repos/effect/packages/effect/test/unstable/ai/OpenAiStructuredOutput.test.ts +723 -0
  1431. package/repos/effect/packages/effect/test/unstable/ai/Prompt.test.ts +346 -0
  1432. package/repos/effect/packages/effect/test/unstable/ai/ResponseIdTracker.test.ts +424 -0
  1433. package/repos/effect/packages/effect/test/unstable/ai/Tool.test.ts +1264 -0
  1434. package/repos/effect/packages/effect/test/unstable/ai/utils.ts +68 -0
  1435. package/repos/effect/packages/effect/test/unstable/cli/Arguments.test.ts +390 -0
  1436. package/repos/effect/packages/effect/test/unstable/cli/Command.test.ts +1801 -0
  1437. package/repos/effect/packages/effect/test/unstable/cli/Errors.test.ts +150 -0
  1438. package/repos/effect/packages/effect/test/unstable/cli/Help.test.ts +572 -0
  1439. package/repos/effect/packages/effect/test/unstable/cli/LogLevel.test.ts +202 -0
  1440. package/repos/effect/packages/effect/test/unstable/cli/Param.test.ts +391 -0
  1441. package/repos/effect/packages/effect/test/unstable/cli/Primitive.test.ts +321 -0
  1442. package/repos/effect/packages/effect/test/unstable/cli/Prompt.test.ts +597 -0
  1443. package/repos/effect/packages/effect/test/unstable/cli/completions/completions.test.ts +656 -0
  1444. package/repos/effect/packages/effect/test/unstable/cli/completions/descriptor.test.ts +245 -0
  1445. package/repos/effect/packages/effect/test/unstable/cli/fixtures/ComprehensiveCli.ts +422 -0
  1446. package/repos/effect/packages/effect/test/unstable/cli/services/MockTerminal.ts +135 -0
  1447. package/repos/effect/packages/effect/test/unstable/cli/services/TestActions.ts +36 -0
  1448. package/repos/effect/packages/effect/test/unstable/encoding/Ndjson.test.ts +18 -0
  1449. package/repos/effect/packages/effect/test/unstable/encoding/Sse.test.ts +62 -0
  1450. package/repos/effect/packages/effect/test/unstable/eventlog/EventJournal.test.ts +25 -0
  1451. package/repos/effect/packages/effect/test/unstable/eventlog/EventLog.test.ts +104 -0
  1452. package/repos/effect/packages/effect/test/unstable/eventlog/EventLogIdentityDerivation.test.ts +85 -0
  1453. package/repos/effect/packages/effect/test/unstable/eventlog/EventLogRemote.test.ts +176 -0
  1454. package/repos/effect/packages/effect/test/unstable/eventlog/EventLogSessionAuth.test.ts +130 -0
  1455. package/repos/effect/packages/effect/test/unstable/eventlog/SqlEventLogServerUnencryptedStorageTest.ts +169 -0
  1456. package/repos/effect/packages/effect/test/unstable/http/Cookies.test.ts +80 -0
  1457. package/repos/effect/packages/effect/test/unstable/http/Headers.test.ts +73 -0
  1458. package/repos/effect/packages/effect/test/unstable/http/HttpClient.test.ts +306 -0
  1459. package/repos/effect/packages/effect/test/unstable/http/HttpClientRequest.test.ts +164 -0
  1460. package/repos/effect/packages/effect/test/unstable/http/HttpEffect.test.ts +254 -0
  1461. package/repos/effect/packages/effect/test/unstable/http/HttpMiddleware.test.ts +57 -0
  1462. package/repos/effect/packages/effect/test/unstable/http/HttpServerError.test.ts +121 -0
  1463. package/repos/effect/packages/effect/test/unstable/http/HttpServerRequest.test.ts +157 -0
  1464. package/repos/effect/packages/effect/test/unstable/http/HttpServerResponse.test.ts +76 -0
  1465. package/repos/effect/packages/effect/test/unstable/http/Multipart.test.ts +69 -0
  1466. package/repos/effect/packages/effect/test/unstable/http/Url.test.ts +98 -0
  1467. package/repos/effect/packages/effect/test/unstable/http/UrlParams.test.ts +30 -0
  1468. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiBuilder.test.ts +186 -0
  1469. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiClient.test.ts +446 -0
  1470. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiEndpoint.test.ts +160 -0
  1471. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiSchema.test.ts +108 -0
  1472. package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiSecurity.test.ts +41 -0
  1473. package/repos/effect/packages/effect/test/unstable/httpapi/OpenApi.test.ts +39 -0
  1474. package/repos/effect/packages/effect/test/unstable/observability/OtlpConfig.test.ts +151 -0
  1475. package/repos/effect/packages/effect/test/unstable/observability/OtlpExporter.test.ts +108 -0
  1476. package/repos/effect/packages/effect/test/unstable/observability/OtlpMetrics.test.ts +518 -0
  1477. package/repos/effect/packages/effect/test/unstable/observability/OtlpResource.test.ts +84 -0
  1478. package/repos/effect/packages/effect/test/unstable/observability/PrometheusMetrics.test.ts +417 -0
  1479. package/repos/effect/packages/effect/test/unstable/persistence/KeyValueStore.test.ts +164 -0
  1480. package/repos/effect/packages/effect/test/unstable/persistence/KeyValueStoreTest.ts +85 -0
  1481. package/repos/effect/packages/effect/test/unstable/persistence/PersistedCache.test.ts +4 -0
  1482. package/repos/effect/packages/effect/test/unstable/persistence/PersistedCacheTest.ts +111 -0
  1483. package/repos/effect/packages/effect/test/unstable/persistence/PersistedQueue.test.ts +4 -0
  1484. package/repos/effect/packages/effect/test/unstable/persistence/PersistedQueueTest.ts +106 -0
  1485. package/repos/effect/packages/effect/test/unstable/persistence/RateLimiter.test.ts +145 -0
  1486. package/repos/effect/packages/effect/test/unstable/persistence/Redis.test.ts +43 -0
  1487. package/repos/effect/packages/effect/test/unstable/process/ChildProcess.test.ts +352 -0
  1488. package/repos/effect/packages/effect/test/unstable/schema/VariantSchema.test.ts +72 -0
  1489. package/repos/effect/packages/effect/test/unstable/sql/SqlError.test.ts +228 -0
  1490. package/repos/effect/packages/effect/test/unstable/sql/SqlSchema.test.ts +168 -0
  1491. package/repos/effect/packages/effect/test/unstable/workers/WorkerError.test.ts +90 -0
  1492. package/repos/effect/packages/effect/test/unstable/workflow/DurableQueue.test.ts +105 -0
  1493. package/repos/effect/packages/effect/test/unstable/workflow/WorkflowEngine.test.ts +60 -0
  1494. package/repos/effect/packages/effect/test/utils/assert.ts +182 -0
  1495. package/repos/effect/packages/effect/test/utils/chunkCoordination.ts +36 -0
  1496. package/repos/effect/packages/effect/test/utils/counter.ts +54 -0
  1497. package/repos/effect/packages/effect/tsconfig.json +8 -0
  1498. package/repos/effect/packages/effect/typetest/AiError.tst.ts +49 -0
  1499. package/repos/effect/packages/effect/typetest/Array.tst.ts +1289 -0
  1500. package/repos/effect/packages/effect/typetest/Brand.tst.ts +51 -0
  1501. package/repos/effect/packages/effect/typetest/Channel.tst.ts +112 -0
  1502. package/repos/effect/packages/effect/typetest/Config.tst.ts +31 -0
  1503. package/repos/effect/packages/effect/typetest/Data.tst.ts +121 -0
  1504. package/repos/effect/packages/effect/typetest/Effect.tst.ts +976 -0
  1505. package/repos/effect/packages/effect/typetest/Equivalence.tst.ts +19 -0
  1506. package/repos/effect/packages/effect/typetest/Newtype.tst.ts +72 -0
  1507. package/repos/effect/packages/effect/typetest/Optic.tst.ts +130 -0
  1508. package/repos/effect/packages/effect/typetest/Option.tst.ts +72 -0
  1509. package/repos/effect/packages/effect/typetest/Order.tst.ts +19 -0
  1510. package/repos/effect/packages/effect/typetest/Predicate.tst.ts +251 -0
  1511. package/repos/effect/packages/effect/typetest/Result.tst.ts +353 -0
  1512. package/repos/effect/packages/effect/typetest/Schedule.tst.ts +21 -0
  1513. package/repos/effect/packages/effect/typetest/Stream.tst.ts +197 -0
  1514. package/repos/effect/packages/effect/typetest/Struct.tst.ts +422 -0
  1515. package/repos/effect/packages/effect/typetest/Tuple.tst.ts +177 -0
  1516. package/repos/effect/packages/effect/typetest/Types.tst.ts +364 -0
  1517. package/repos/effect/packages/effect/typetest/VariantSchema.tst.ts +76 -0
  1518. package/repos/effect/packages/effect/typetest/schema/Array.tst.ts +46 -0
  1519. package/repos/effect/packages/effect/typetest/schema/Literals.tst.ts +58 -0
  1520. package/repos/effect/packages/effect/typetest/schema/Record.tst.ts +145 -0
  1521. package/repos/effect/packages/effect/typetest/schema/Schema.tst.ts +1854 -0
  1522. package/repos/effect/packages/effect/typetest/schema/Struct.tst.ts +745 -0
  1523. package/repos/effect/packages/effect/typetest/schema/Tuple.tst.ts +199 -0
  1524. package/repos/effect/packages/effect/typetest/schema/Union.tst.ts +198 -0
  1525. package/repos/effect/packages/effect/typetest/schema/api.tst.ts +276 -0
  1526. package/repos/effect/packages/effect/typetest/schema/toArbitrary.tst.ts +65 -0
  1527. package/repos/effect/packages/effect/typetest/schema/toIso.tst.ts +282 -0
  1528. package/repos/effect/packages/effect/typetest/unstable/ai/LanguageModel.tst.ts +191 -0
  1529. package/repos/effect/packages/effect/typetest/unstable/ai/Tool.tst.ts +33 -0
  1530. package/repos/effect/packages/effect/typetest/unstable/cli/Command.tst.ts +124 -0
  1531. package/repos/effect/packages/effect/typetest/unstable/cli/Param.tst.ts +20 -0
  1532. package/repos/effect/packages/effect/typetest/unstable/cli/Prompt.tst.ts +97 -0
  1533. package/repos/effect/packages/effect/typetest/unstable/encoding/Ndjson.tst.ts +24 -0
  1534. package/repos/effect/packages/effect/typetest/unstable/http/HttpClient.tst.ts +143 -0
  1535. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiBuilder.tst.ts +98 -0
  1536. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiClient.tst.ts +677 -0
  1537. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiEndpoint.tst.ts +466 -0
  1538. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiMiddleware.tst.ts +90 -0
  1539. package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiSchema.tst.ts +135 -0
  1540. package/repos/effect/packages/effect/typetest/unstable/reactivity/AsyncResult.tst.ts +65 -0
  1541. package/repos/effect/packages/effect/typetest/unstable/reactivity/AtomHttpApi.tst.ts +63 -0
  1542. package/repos/effect/packages/effect/typetest/unstable/rpc/Rpc.tst.ts +74 -0
  1543. package/repos/effect/packages/effect/typetest/unstable/rpc/RpcGroup.tst.ts +61 -0
  1544. package/repos/effect/packages/effect/typetest/unstable/rpc/RpcMiddleware.tst.ts +41 -0
  1545. package/repos/effect/packages/effect/typetest/unstable/rpc/RpcServer.tst.ts +26 -0
  1546. package/repos/effect/packages/effect/typetest/unstable/sql/SqlSchema.tst.ts +75 -0
  1547. package/repos/effect/packages/effect/typetest/unstable/workflow/Workflow.tst.ts +16 -0
  1548. package/repos/effect/packages/effect/vitest.config.ts +11 -0
  1549. package/repos/effect/packages/opentelemetry/CHANGELOG.md +620 -0
  1550. package/repos/effect/packages/opentelemetry/LICENSE +21 -0
  1551. package/repos/effect/packages/opentelemetry/README.md +5 -0
  1552. package/repos/effect/packages/opentelemetry/docgen.json +30 -0
  1553. package/repos/effect/packages/opentelemetry/package.json +126 -0
  1554. package/repos/effect/packages/opentelemetry/src/Logger.ts +193 -0
  1555. package/repos/effect/packages/opentelemetry/src/Metrics.ts +138 -0
  1556. package/repos/effect/packages/opentelemetry/src/NodeSdk.ts +162 -0
  1557. package/repos/effect/packages/opentelemetry/src/Resource.ts +147 -0
  1558. package/repos/effect/packages/opentelemetry/src/Tracer.ts +594 -0
  1559. package/repos/effect/packages/opentelemetry/src/WebSdk.ts +140 -0
  1560. package/repos/effect/packages/opentelemetry/src/index.ts +35 -0
  1561. package/repos/effect/packages/opentelemetry/src/internal/attributes.ts +28 -0
  1562. package/repos/effect/packages/opentelemetry/src/internal/metrics.ts +463 -0
  1563. package/repos/effect/packages/opentelemetry/src/internal/utilities.ts +5 -0
  1564. package/repos/effect/packages/opentelemetry/test/Logger.test.ts +122 -0
  1565. package/repos/effect/packages/opentelemetry/test/Metrics.test.ts +339 -0
  1566. package/repos/effect/packages/opentelemetry/test/Tracer.test.ts +167 -0
  1567. package/repos/effect/packages/opentelemetry/tsconfig.json +8 -0
  1568. package/repos/effect/packages/opentelemetry/vitest.config.ts +6 -0
  1569. package/repos/effect/packages/platform-browser/CHANGELOG.md +637 -0
  1570. package/repos/effect/packages/platform-browser/LICENSE +21 -0
  1571. package/repos/effect/packages/platform-browser/README.md +1 -0
  1572. package/repos/effect/packages/platform-browser/docgen.json +21 -0
  1573. package/repos/effect/packages/platform-browser/package.json +74 -0
  1574. package/repos/effect/packages/platform-browser/src/BrowserCrypto.ts +97 -0
  1575. package/repos/effect/packages/platform-browser/src/BrowserHttpClient.ts +430 -0
  1576. package/repos/effect/packages/platform-browser/src/BrowserKeyValueStore.ts +177 -0
  1577. package/repos/effect/packages/platform-browser/src/BrowserPersistence.ts +334 -0
  1578. package/repos/effect/packages/platform-browser/src/BrowserRuntime.ts +53 -0
  1579. package/repos/effect/packages/platform-browser/src/BrowserSocket.ts +52 -0
  1580. package/repos/effect/packages/platform-browser/src/BrowserStream.ts +56 -0
  1581. package/repos/effect/packages/platform-browser/src/BrowserWorker.ts +98 -0
  1582. package/repos/effect/packages/platform-browser/src/BrowserWorkerRunner.ts +199 -0
  1583. package/repos/effect/packages/platform-browser/src/Clipboard.ts +143 -0
  1584. package/repos/effect/packages/platform-browser/src/Geolocation.ts +233 -0
  1585. package/repos/effect/packages/platform-browser/src/IndexedDb.ts +113 -0
  1586. package/repos/effect/packages/platform-browser/src/IndexedDbDatabase.ts +648 -0
  1587. package/repos/effect/packages/platform-browser/src/IndexedDbQueryBuilder.ts +2032 -0
  1588. package/repos/effect/packages/platform-browser/src/IndexedDbTable.ts +260 -0
  1589. package/repos/effect/packages/platform-browser/src/IndexedDbVersion.ts +138 -0
  1590. package/repos/effect/packages/platform-browser/src/Permissions.ts +146 -0
  1591. package/repos/effect/packages/platform-browser/src/index.ts +90 -0
  1592. package/repos/effect/packages/platform-browser/test/BrowserCrypto.test.ts +74 -0
  1593. package/repos/effect/packages/platform-browser/test/BrowserHttpClient.test.ts +91 -0
  1594. package/repos/effect/packages/platform-browser/test/BrowserKeyValueStore.test.ts +23 -0
  1595. package/repos/effect/packages/platform-browser/test/BrowserPersistence.test.ts +209 -0
  1596. package/repos/effect/packages/platform-browser/test/BrowserPersistencePersistedCache.test.ts +29 -0
  1597. package/repos/effect/packages/platform-browser/test/IndexedDbDatabase.test.ts +253 -0
  1598. package/repos/effect/packages/platform-browser/test/IndexedDbQueryBuilder.test.ts +1459 -0
  1599. package/repos/effect/packages/platform-browser/test/IndexedDbTable.test.ts +101 -0
  1600. package/repos/effect/packages/platform-browser/test/IndexedDbVersion.test.ts +50 -0
  1601. package/repos/effect/packages/platform-browser/test/Permissions.test.ts +12 -0
  1602. package/repos/effect/packages/platform-browser/test/RpcWorker.test.ts +19 -0
  1603. package/repos/effect/packages/platform-browser/test/fixtures/rpc-e2e.ts +141 -0
  1604. package/repos/effect/packages/platform-browser/test/fixtures/rpc-schemas.ts +157 -0
  1605. package/repos/effect/packages/platform-browser/test/fixtures/rpc-worker.ts +12 -0
  1606. package/repos/effect/packages/platform-browser/tsconfig.json +8 -0
  1607. package/repos/effect/packages/platform-browser/vitest.config.ts +17 -0
  1608. package/repos/effect/packages/platform-browser/vitest.setup.ts +5 -0
  1609. package/repos/effect/packages/platform-bun/CHANGELOG.md +691 -0
  1610. package/repos/effect/packages/platform-bun/LICENSE +21 -0
  1611. package/repos/effect/packages/platform-bun/README.md +7 -0
  1612. package/repos/effect/packages/platform-bun/docgen.json +20 -0
  1613. package/repos/effect/packages/platform-bun/package.json +73 -0
  1614. package/repos/effect/packages/platform-bun/src/BunChildProcessSpawner.ts +6 -0
  1615. package/repos/effect/packages/platform-bun/src/BunClusterHttp.ts +174 -0
  1616. package/repos/effect/packages/platform-bun/src/BunClusterSocket.ts +153 -0
  1617. package/repos/effect/packages/platform-bun/src/BunCrypto.ts +24 -0
  1618. package/repos/effect/packages/platform-bun/src/BunFileSystem.ts +20 -0
  1619. package/repos/effect/packages/platform-bun/src/BunHttpClient.ts +9 -0
  1620. package/repos/effect/packages/platform-bun/src/BunHttpPlatform.ts +50 -0
  1621. package/repos/effect/packages/platform-bun/src/BunHttpServer.ts +600 -0
  1622. package/repos/effect/packages/platform-bun/src/BunHttpServerRequest.ts +19 -0
  1623. package/repos/effect/packages/platform-bun/src/BunMultipart.ts +54 -0
  1624. package/repos/effect/packages/platform-bun/src/BunPath.ts +37 -0
  1625. package/repos/effect/packages/platform-bun/src/BunRedis.ts +88 -0
  1626. package/repos/effect/packages/platform-bun/src/BunRuntime.ts +52 -0
  1627. package/repos/effect/packages/platform-bun/src/BunServices.ts +49 -0
  1628. package/repos/effect/packages/platform-bun/src/BunSink.ts +8 -0
  1629. package/repos/effect/packages/platform-bun/src/BunSocket.ts +54 -0
  1630. package/repos/effect/packages/platform-bun/src/BunSocketServer.ts +8 -0
  1631. package/repos/effect/packages/platform-bun/src/BunStdio.ts +22 -0
  1632. package/repos/effect/packages/platform-bun/src/BunStream.ts +68 -0
  1633. package/repos/effect/packages/platform-bun/src/BunTerminal.ts +32 -0
  1634. package/repos/effect/packages/platform-bun/src/BunWorker.ts +92 -0
  1635. package/repos/effect/packages/platform-bun/src/BunWorkerRunner.ts +113 -0
  1636. package/repos/effect/packages/platform-bun/src/index.ts +115 -0
  1637. package/repos/effect/packages/platform-bun/tsconfig.json +12 -0
  1638. package/repos/effect/packages/platform-node/CHANGELOG.md +695 -0
  1639. package/repos/effect/packages/platform-node/LICENSE +21 -0
  1640. package/repos/effect/packages/platform-node/README.md +7 -0
  1641. package/repos/effect/packages/platform-node/docgen.json +24 -0
  1642. package/repos/effect/packages/platform-node/package.json +82 -0
  1643. package/repos/effect/packages/platform-node/src/Mime.ts +25 -0
  1644. package/repos/effect/packages/platform-node/src/NodeChildProcessSpawner.ts +6 -0
  1645. package/repos/effect/packages/platform-node/src/NodeClusterHttp.ts +155 -0
  1646. package/repos/effect/packages/platform-node/src/NodeClusterSocket.ts +176 -0
  1647. package/repos/effect/packages/platform-node/src/NodeCrypto.ts +24 -0
  1648. package/repos/effect/packages/platform-node/src/NodeFileSystem.ts +21 -0
  1649. package/repos/effect/packages/platform-node/src/NodeHttpClient.ts +664 -0
  1650. package/repos/effect/packages/platform-node/src/NodeHttpIncomingMessage.ts +141 -0
  1651. package/repos/effect/packages/platform-node/src/NodeHttpPlatform.ts +70 -0
  1652. package/repos/effect/packages/platform-node/src/NodeHttpServer.ts +646 -0
  1653. package/repos/effect/packages/platform-node/src/NodeHttpServerRequest.ts +33 -0
  1654. package/repos/effect/packages/platform-node/src/NodeMultipart.ts +183 -0
  1655. package/repos/effect/packages/platform-node/src/NodePath.ts +40 -0
  1656. package/repos/effect/packages/platform-node/src/NodeRedis.ts +92 -0
  1657. package/repos/effect/packages/platform-node/src/NodeRuntime.ts +53 -0
  1658. package/repos/effect/packages/platform-node/src/NodeServices.ts +50 -0
  1659. package/repos/effect/packages/platform-node/src/NodeSink.ts +8 -0
  1660. package/repos/effect/packages/platform-node/src/NodeSocket.ts +72 -0
  1661. package/repos/effect/packages/platform-node/src/NodeSocketServer.ts +8 -0
  1662. package/repos/effect/packages/platform-node/src/NodeStdio.ts +22 -0
  1663. package/repos/effect/packages/platform-node/src/NodeStream.ts +8 -0
  1664. package/repos/effect/packages/platform-node/src/NodeTerminal.ts +32 -0
  1665. package/repos/effect/packages/platform-node/src/NodeWorker.ts +121 -0
  1666. package/repos/effect/packages/platform-node/src/NodeWorkerRunner.ts +110 -0
  1667. package/repos/effect/packages/platform-node/src/Undici.ts +29 -0
  1668. package/repos/effect/packages/platform-node/src/index.ts +130 -0
  1669. package/repos/effect/packages/platform-node/test/HttpApi.test.ts +1831 -0
  1670. package/repos/effect/packages/platform-node/test/HttpStaticServer.test.ts +253 -0
  1671. package/repos/effect/packages/platform-node/test/HttpStaticServerConditional.test.ts +296 -0
  1672. package/repos/effect/packages/platform-node/test/NodeCrypto.test.ts +59 -0
  1673. package/repos/effect/packages/platform-node/test/NodeHttpClient.test.ts +157 -0
  1674. package/repos/effect/packages/platform-node/test/NodeHttpPlatform.test.ts +51 -0
  1675. package/repos/effect/packages/platform-node/test/NodeHttpServer.test.ts +598 -0
  1676. package/repos/effect/packages/platform-node/test/NodeRedis.test.ts +31 -0
  1677. package/repos/effect/packages/platform-node/test/NodeSocket.test.ts +153 -0
  1678. package/repos/effect/packages/platform-node/test/OpenApi.test.ts +1573 -0
  1679. package/repos/effect/packages/platform-node/test/RpcServer.test.ts +213 -0
  1680. package/repos/effect/packages/platform-node/test/__snapshots__/HttpApi.test.ts.snap +715 -0
  1681. package/repos/effect/packages/platform-node/test/cluster/MessageStorageTest.ts +196 -0
  1682. package/repos/effect/packages/platform-node/test/cluster/SocketRunner.test.ts +120 -0
  1683. package/repos/effect/packages/platform-node/test/cluster/SqlMessageStorage.test.ts +222 -0
  1684. package/repos/effect/packages/platform-node/test/cluster/SqlRunnerStorage.test.ts +101 -0
  1685. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/conditional.txt +1 -0
  1686. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/custom/home.html +1 -0
  1687. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/file.binx +1 -0
  1688. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/guide/index.html +1 -0
  1689. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/hello.txt +1 -0
  1690. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/index.html +1 -0
  1691. package/repos/effect/packages/platform-node/test/fixtures/http-static-server/range.txt +1 -0
  1692. package/repos/effect/packages/platform-node/test/fixtures/http-static-server-outside.txt +1 -0
  1693. package/repos/effect/packages/platform-node/test/fixtures/mysql2-utils.ts +64 -0
  1694. package/repos/effect/packages/platform-node/test/fixtures/pg-utils.ts +39 -0
  1695. package/repos/effect/packages/platform-node/test/fixtures/rpc-e2e.ts +149 -0
  1696. package/repos/effect/packages/platform-node/test/fixtures/rpc-schemas.ts +175 -0
  1697. package/repos/effect/packages/platform-node/test/fixtures/text.txt +1 -0
  1698. package/repos/effect/packages/platform-node/tsconfig.json +12 -0
  1699. package/repos/effect/packages/platform-node/vitest.config.ts +6 -0
  1700. package/repos/effect/packages/platform-node-shared/CHANGELOG.md +617 -0
  1701. package/repos/effect/packages/platform-node-shared/LICENSE +21 -0
  1702. package/repos/effect/packages/platform-node-shared/README.md +7 -0
  1703. package/repos/effect/packages/platform-node-shared/docgen.json +38 -0
  1704. package/repos/effect/packages/platform-node-shared/package.json +76 -0
  1705. package/repos/effect/packages/platform-node-shared/src/NodeChildProcessSpawner.ts +713 -0
  1706. package/repos/effect/packages/platform-node-shared/src/NodeClusterSocket.ts +70 -0
  1707. package/repos/effect/packages/platform-node-shared/src/NodeCrypto.ts +60 -0
  1708. package/repos/effect/packages/platform-node-shared/src/NodeFileSystem.ts +652 -0
  1709. package/repos/effect/packages/platform-node-shared/src/NodePath.ts +80 -0
  1710. package/repos/effect/packages/platform-node-shared/src/NodeRuntime.ts +59 -0
  1711. package/repos/effect/packages/platform-node-shared/src/NodeSink.ts +116 -0
  1712. package/repos/effect/packages/platform-node-shared/src/NodeSocket.ts +269 -0
  1713. package/repos/effect/packages/platform-node-shared/src/NodeSocketServer.ts +301 -0
  1714. package/repos/effect/packages/platform-node-shared/src/NodeStdio.ts +67 -0
  1715. package/repos/effect/packages/platform-node-shared/src/NodeStream.ts +445 -0
  1716. package/repos/effect/packages/platform-node-shared/src/NodeTerminal.ts +129 -0
  1717. package/repos/effect/packages/platform-node-shared/src/index.ts +65 -0
  1718. package/repos/effect/packages/platform-node-shared/src/internal/utils.ts +51 -0
  1719. package/repos/effect/packages/platform-node-shared/test/NodeChildProcessSpawner.test.ts +1069 -0
  1720. package/repos/effect/packages/platform-node-shared/test/NodeFileSystem.test.ts +214 -0
  1721. package/repos/effect/packages/platform-node-shared/test/NodeSink.test.ts +153 -0
  1722. package/repos/effect/packages/platform-node-shared/test/NodeStream.test.ts +173 -0
  1723. package/repos/effect/packages/platform-node-shared/test/fixtures/bash/no-permissions.sh +3 -0
  1724. package/repos/effect/packages/platform-node-shared/test/fixtures/bash/parent-exits-early.sh +31 -0
  1725. package/repos/effect/packages/platform-node-shared/test/fixtures/bash/spawn-children.sh +32 -0
  1726. package/repos/effect/packages/platform-node-shared/test/fixtures/config/SHOUTING +1 -0
  1727. package/repos/effect/packages/platform-node-shared/test/fixtures/config/integer +1 -0
  1728. package/repos/effect/packages/platform-node-shared/test/fixtures/config/nested/config +1 -0
  1729. package/repos/effect/packages/platform-node-shared/test/fixtures/config/secret +1 -0
  1730. package/repos/effect/packages/platform-node-shared/test/fixtures/helloworld.tar.gz +0 -0
  1731. package/repos/effect/packages/platform-node-shared/test/fixtures/text.txt +1 -0
  1732. package/repos/effect/packages/platform-node-shared/tsconfig.json +11 -0
  1733. package/repos/effect/packages/platform-node-shared/vitest.config.ts +6 -0
  1734. package/repos/effect/packages/sql/clickhouse/CHANGELOG.md +681 -0
  1735. package/repos/effect/packages/sql/clickhouse/LICENSE +21 -0
  1736. package/repos/effect/packages/sql/clickhouse/README.md +7 -0
  1737. package/repos/effect/packages/sql/clickhouse/docgen.json +24 -0
  1738. package/repos/effect/packages/sql/clickhouse/package.json +72 -0
  1739. package/repos/effect/packages/sql/clickhouse/src/ClickhouseClient.ts +546 -0
  1740. package/repos/effect/packages/sql/clickhouse/src/ClickhouseMigrator.ts +51 -0
  1741. package/repos/effect/packages/sql/clickhouse/src/index.ts +15 -0
  1742. package/repos/effect/packages/sql/clickhouse/test/Client.test.ts +6 -0
  1743. package/repos/effect/packages/sql/clickhouse/test/SqlErrorClassification.test.ts +75 -0
  1744. package/repos/effect/packages/sql/clickhouse/tsconfig.json +12 -0
  1745. package/repos/effect/packages/sql/clickhouse/vitest.config.ts +6 -0
  1746. package/repos/effect/packages/sql/d1/CHANGELOG.md +597 -0
  1747. package/repos/effect/packages/sql/d1/LICENSE +21 -0
  1748. package/repos/effect/packages/sql/d1/README.md +7 -0
  1749. package/repos/effect/packages/sql/d1/docgen.json +24 -0
  1750. package/repos/effect/packages/sql/d1/package.json +75 -0
  1751. package/repos/effect/packages/sql/d1/src/D1Client.ts +249 -0
  1752. package/repos/effect/packages/sql/d1/src/index.ts +10 -0
  1753. package/repos/effect/packages/sql/d1/test/Client.test.ts +65 -0
  1754. package/repos/effect/packages/sql/d1/test/Resolver.test.ts +176 -0
  1755. package/repos/effect/packages/sql/d1/test/utils.ts +38 -0
  1756. package/repos/effect/packages/sql/d1/tsconfig.json +8 -0
  1757. package/repos/effect/packages/sql/d1/vitest.config.ts +6 -0
  1758. package/repos/effect/packages/sql/libsql/CHANGELOG.md +601 -0
  1759. package/repos/effect/packages/sql/libsql/LICENSE +21 -0
  1760. package/repos/effect/packages/sql/libsql/README.md +7 -0
  1761. package/repos/effect/packages/sql/libsql/docgen.json +24 -0
  1762. package/repos/effect/packages/sql/libsql/package.json +73 -0
  1763. package/repos/effect/packages/sql/libsql/src/LibsqlClient.ts +381 -0
  1764. package/repos/effect/packages/sql/libsql/src/LibsqlMigrator.ts +46 -0
  1765. package/repos/effect/packages/sql/libsql/src/index.ts +15 -0
  1766. package/repos/effect/packages/sql/libsql/test/Client.test.ts +106 -0
  1767. package/repos/effect/packages/sql/libsql/test/Resolver.test.ts +177 -0
  1768. package/repos/effect/packages/sql/libsql/test/util.ts +54 -0
  1769. package/repos/effect/packages/sql/libsql/tsconfig.json +9 -0
  1770. package/repos/effect/packages/sql/libsql/vitest.config.ts +6 -0
  1771. package/repos/effect/packages/sql/mssql/CHANGELOG.md +601 -0
  1772. package/repos/effect/packages/sql/mssql/LICENSE +21 -0
  1773. package/repos/effect/packages/sql/mssql/README.md +7 -0
  1774. package/repos/effect/packages/sql/mssql/docgen.json +24 -0
  1775. package/repos/effect/packages/sql/mssql/package.json +70 -0
  1776. package/repos/effect/packages/sql/mssql/src/MssqlClient.ts +732 -0
  1777. package/repos/effect/packages/sql/mssql/src/MssqlMigrator.ts +45 -0
  1778. package/repos/effect/packages/sql/mssql/src/Parameter.ts +64 -0
  1779. package/repos/effect/packages/sql/mssql/src/Procedure.ts +213 -0
  1780. package/repos/effect/packages/sql/mssql/src/index.ts +32 -0
  1781. package/repos/effect/packages/sql/mssql/test/Client.test.ts +91 -0
  1782. package/repos/effect/packages/sql/mssql/test/SqlErrorClassification.test.ts +206 -0
  1783. package/repos/effect/packages/sql/mssql/tsconfig.json +8 -0
  1784. package/repos/effect/packages/sql/mssql/vitest.config.ts +6 -0
  1785. package/repos/effect/packages/sql/mysql2/CHANGELOG.md +603 -0
  1786. package/repos/effect/packages/sql/mysql2/LICENSE +21 -0
  1787. package/repos/effect/packages/sql/mysql2/README.md +7 -0
  1788. package/repos/effect/packages/sql/mysql2/docgen.json +24 -0
  1789. package/repos/effect/packages/sql/mysql2/package.json +71 -0
  1790. package/repos/effect/packages/sql/mysql2/src/MysqlClient.ts +517 -0
  1791. package/repos/effect/packages/sql/mysql2/src/MysqlMigrator.ts +102 -0
  1792. package/repos/effect/packages/sql/mysql2/src/index.ts +15 -0
  1793. package/repos/effect/packages/sql/mysql2/test/Client.test.ts +34 -0
  1794. package/repos/effect/packages/sql/mysql2/test/KeyValueStore.test.ts +16 -0
  1795. package/repos/effect/packages/sql/mysql2/test/Model.test.ts +227 -0
  1796. package/repos/effect/packages/sql/mysql2/test/MysqlClient.test.ts +35 -0
  1797. package/repos/effect/packages/sql/mysql2/test/Persistence.test.ts +22 -0
  1798. package/repos/effect/packages/sql/mysql2/test/SqlErrorClassification.test.ts +133 -0
  1799. package/repos/effect/packages/sql/mysql2/test/SqlEventLogServerUnencrypted.test.ts +7 -0
  1800. package/repos/effect/packages/sql/mysql2/test/utils.ts +64 -0
  1801. package/repos/effect/packages/sql/mysql2/tsconfig.json +9 -0
  1802. package/repos/effect/packages/sql/mysql2/vitest.config.ts +6 -0
  1803. package/repos/effect/packages/sql/pg/CHANGELOG.md +3432 -0
  1804. package/repos/effect/packages/sql/pg/LICENSE +21 -0
  1805. package/repos/effect/packages/sql/pg/README.md +7 -0
  1806. package/repos/effect/packages/sql/pg/docgen.json +24 -0
  1807. package/repos/effect/packages/sql/pg/package.json +77 -0
  1808. package/repos/effect/packages/sql/pg/src/PgClient.ts +947 -0
  1809. package/repos/effect/packages/sql/pg/src/PgMigrator.ts +120 -0
  1810. package/repos/effect/packages/sql/pg/src/index.ts +15 -0
  1811. package/repos/effect/packages/sql/pg/test/Client.test.ts +373 -0
  1812. package/repos/effect/packages/sql/pg/test/KeyValueStore.test.ts +16 -0
  1813. package/repos/effect/packages/sql/pg/test/Persistence.test.ts +20 -0
  1814. package/repos/effect/packages/sql/pg/test/SqlErrorClassification.test.ts +81 -0
  1815. package/repos/effect/packages/sql/pg/test/SqlEventLogServerUnencrypted.test.ts +7 -0
  1816. package/repos/effect/packages/sql/pg/test/TransactionAcquire.test.ts +52 -0
  1817. package/repos/effect/packages/sql/pg/test/utils.ts +49 -0
  1818. package/repos/effect/packages/sql/pg/tsconfig.json +9 -0
  1819. package/repos/effect/packages/sql/pg/vitest.config.ts +6 -0
  1820. package/repos/effect/packages/sql/pglite/CHANGELOG.md +198 -0
  1821. package/repos/effect/packages/sql/pglite/LICENSE +21 -0
  1822. package/repos/effect/packages/sql/pglite/README.md +7 -0
  1823. package/repos/effect/packages/sql/pglite/docgen.json +24 -0
  1824. package/repos/effect/packages/sql/pglite/package.json +74 -0
  1825. package/repos/effect/packages/sql/pglite/src/PgliteClient.ts +503 -0
  1826. package/repos/effect/packages/sql/pglite/src/PgliteMigrator.ts +44 -0
  1827. package/repos/effect/packages/sql/pglite/src/index.ts +15 -0
  1828. package/repos/effect/packages/sql/pglite/test/Client.test.ts +149 -0
  1829. package/repos/effect/packages/sql/pglite/test/Migrator.test.ts +45 -0
  1830. package/repos/effect/packages/sql/pglite/test/SqlErrorClassification.test.ts +56 -0
  1831. package/repos/effect/packages/sql/pglite/test/Transaction.test.ts +62 -0
  1832. package/repos/effect/packages/sql/pglite/tsconfig.json +8 -0
  1833. package/repos/effect/packages/sql/pglite/vitest.config.ts +6 -0
  1834. package/repos/effect/packages/sql/sqlite-bun/CHANGELOG.md +601 -0
  1835. package/repos/effect/packages/sql/sqlite-bun/LICENSE +21 -0
  1836. package/repos/effect/packages/sql/sqlite-bun/README.md +7 -0
  1837. package/repos/effect/packages/sql/sqlite-bun/docgen.json +24 -0
  1838. package/repos/effect/packages/sql/sqlite-bun/package.json +69 -0
  1839. package/repos/effect/packages/sql/sqlite-bun/src/SqliteClient.ts +262 -0
  1840. package/repos/effect/packages/sql/sqlite-bun/src/SqliteMigrator.ts +90 -0
  1841. package/repos/effect/packages/sql/sqlite-bun/src/index.ts +15 -0
  1842. package/repos/effect/packages/sql/sqlite-bun/test/Client.test.ts +6 -0
  1843. package/repos/effect/packages/sql/sqlite-bun/tsconfig.json +11 -0
  1844. package/repos/effect/packages/sql/sqlite-bun/vitest.config.ts +6 -0
  1845. package/repos/effect/packages/sql/sqlite-do/CHANGELOG.md +601 -0
  1846. package/repos/effect/packages/sql/sqlite-do/LICENSE +21 -0
  1847. package/repos/effect/packages/sql/sqlite-do/README.md +7 -0
  1848. package/repos/effect/packages/sql/sqlite-do/docgen.json +24 -0
  1849. package/repos/effect/packages/sql/sqlite-do/package.json +68 -0
  1850. package/repos/effect/packages/sql/sqlite-do/src/SqliteClient.ts +249 -0
  1851. package/repos/effect/packages/sql/sqlite-do/src/SqliteMigrator.ts +45 -0
  1852. package/repos/effect/packages/sql/sqlite-do/src/index.ts +15 -0
  1853. package/repos/effect/packages/sql/sqlite-do/test/Client.test.ts +24 -0
  1854. package/repos/effect/packages/sql/sqlite-do/tsconfig.json +8 -0
  1855. package/repos/effect/packages/sql/sqlite-do/vitest.config.ts +6 -0
  1856. package/repos/effect/packages/sql/sqlite-node/CHANGELOG.md +3415 -0
  1857. package/repos/effect/packages/sql/sqlite-node/LICENSE +21 -0
  1858. package/repos/effect/packages/sql/sqlite-node/README.md +7 -0
  1859. package/repos/effect/packages/sql/sqlite-node/docgen.json +24 -0
  1860. package/repos/effect/packages/sql/sqlite-node/package.json +72 -0
  1861. package/repos/effect/packages/sql/sqlite-node/src/SqliteClient.ts +312 -0
  1862. package/repos/effect/packages/sql/sqlite-node/src/SqliteMigrator.ts +90 -0
  1863. package/repos/effect/packages/sql/sqlite-node/src/index.ts +15 -0
  1864. package/repos/effect/packages/sql/sqlite-node/test/Client.test.ts +75 -0
  1865. package/repos/effect/packages/sql/sqlite-node/test/KeyValueStore.test.ts +29 -0
  1866. package/repos/effect/packages/sql/sqlite-node/test/Persistence.test.ts +109 -0
  1867. package/repos/effect/packages/sql/sqlite-node/test/Resolver.test.ts +183 -0
  1868. package/repos/effect/packages/sql/sqlite-node/test/SqlEventJournal.test.ts +84 -0
  1869. package/repos/effect/packages/sql/sqlite-node/test/SqlEventLogServerEncrypted.test.ts +249 -0
  1870. package/repos/effect/packages/sql/sqlite-node/test/SqlEventLogServerUnencrypted.test.ts +110 -0
  1871. package/repos/effect/packages/sql/sqlite-node/test/SqliteMigrator.test.ts +48 -0
  1872. package/repos/effect/packages/sql/sqlite-node/tsconfig.json +8 -0
  1873. package/repos/effect/packages/sql/sqlite-node/vitest.config.ts +6 -0
  1874. package/repos/effect/packages/sql/sqlite-react-native/CHANGELOG.md +601 -0
  1875. package/repos/effect/packages/sql/sqlite-react-native/LICENSE +21 -0
  1876. package/repos/effect/packages/sql/sqlite-react-native/README.md +7 -0
  1877. package/repos/effect/packages/sql/sqlite-react-native/docgen.json +24 -0
  1878. package/repos/effect/packages/sql/sqlite-react-native/package.json +69 -0
  1879. package/repos/effect/packages/sql/sqlite-react-native/src/SqliteClient.ts +354 -0
  1880. package/repos/effect/packages/sql/sqlite-react-native/src/SqliteMigrator.ts +55 -0
  1881. package/repos/effect/packages/sql/sqlite-react-native/src/index.ts +15 -0
  1882. package/repos/effect/packages/sql/sqlite-react-native/test/Client.test.ts +6 -0
  1883. package/repos/effect/packages/sql/sqlite-react-native/tsconfig.json +8 -0
  1884. package/repos/effect/packages/sql/sqlite-react-native/vitest.config.ts +6 -0
  1885. package/repos/effect/packages/sql/sqlite-wasm/CHANGELOG.md +601 -0
  1886. package/repos/effect/packages/sql/sqlite-wasm/LICENSE +21 -0
  1887. package/repos/effect/packages/sql/sqlite-wasm/README.md +7 -0
  1888. package/repos/effect/packages/sql/sqlite-wasm/docgen.json +24 -0
  1889. package/repos/effect/packages/sql/sqlite-wasm/package.json +69 -0
  1890. package/repos/effect/packages/sql/sqlite-wasm/src/OpfsWorker.ts +118 -0
  1891. package/repos/effect/packages/sql/sqlite-wasm/src/SqliteClient.ts +551 -0
  1892. package/repos/effect/packages/sql/sqlite-wasm/src/SqliteMigrator.ts +55 -0
  1893. package/repos/effect/packages/sql/sqlite-wasm/src/index.ts +14 -0
  1894. package/repos/effect/packages/sql/sqlite-wasm/src/internal/opfsWorker.ts +7 -0
  1895. package/repos/effect/packages/sql/sqlite-wasm/src/sqlite-wasm.d.ts +47 -0
  1896. package/repos/effect/packages/sql/sqlite-wasm/test/Client.test.ts +6 -0
  1897. package/repos/effect/packages/sql/sqlite-wasm/tsconfig.json +8 -0
  1898. package/repos/effect/packages/sql/sqlite-wasm/vitest.config.ts +6 -0
  1899. package/repos/effect/packages/tools/ai-codegen/codegen.schema.json +92 -0
  1900. package/repos/effect/packages/tools/ai-codegen/docgen.json +4 -0
  1901. package/repos/effect/packages/tools/ai-codegen/package.json +61 -0
  1902. package/repos/effect/packages/tools/ai-codegen/src/Config.ts +292 -0
  1903. package/repos/effect/packages/tools/ai-codegen/src/Discovery.ts +197 -0
  1904. package/repos/effect/packages/tools/ai-codegen/src/Generator.ts +183 -0
  1905. package/repos/effect/packages/tools/ai-codegen/src/Glob.ts +56 -0
  1906. package/repos/effect/packages/tools/ai-codegen/src/PostProcess.ts +157 -0
  1907. package/repos/effect/packages/tools/ai-codegen/src/SpecFetcher.ts +154 -0
  1908. package/repos/effect/packages/tools/ai-codegen/src/bin.ts +10 -0
  1909. package/repos/effect/packages/tools/ai-codegen/src/main.ts +237 -0
  1910. package/repos/effect/packages/tools/ai-codegen/tsconfig.json +15 -0
  1911. package/repos/effect/packages/tools/ai-docgen/docgen.json +4 -0
  1912. package/repos/effect/packages/tools/ai-docgen/package.json +60 -0
  1913. package/repos/effect/packages/tools/ai-docgen/src/Glob.ts +48 -0
  1914. package/repos/effect/packages/tools/ai-docgen/src/main.ts +186 -0
  1915. package/repos/effect/packages/tools/ai-docgen/tsconfig.json +14 -0
  1916. package/repos/effect/packages/tools/bundle/docgen.json +4 -0
  1917. package/repos/effect/packages/tools/bundle/fixtures/basic.ts +3 -0
  1918. package/repos/effect/packages/tools/bundle/fixtures/batching.ts +25 -0
  1919. package/repos/effect/packages/tools/bundle/fixtures/brand.ts +5 -0
  1920. package/repos/effect/packages/tools/bundle/fixtures/cache.ts +10 -0
  1921. package/repos/effect/packages/tools/bundle/fixtures/config.ts +13 -0
  1922. package/repos/effect/packages/tools/bundle/fixtures/differ.ts +9 -0
  1923. package/repos/effect/packages/tools/bundle/fixtures/http-client.ts +12 -0
  1924. package/repos/effect/packages/tools/bundle/fixtures/logger.ts +5 -0
  1925. package/repos/effect/packages/tools/bundle/fixtures/metric.ts +13 -0
  1926. package/repos/effect/packages/tools/bundle/fixtures/optic.ts +6 -0
  1927. package/repos/effect/packages/tools/bundle/fixtures/pubsub.ts +22 -0
  1928. package/repos/effect/packages/tools/bundle/fixtures/queue.ts +18 -0
  1929. package/repos/effect/packages/tools/bundle/fixtures/schedule.ts +9 -0
  1930. package/repos/effect/packages/tools/bundle/fixtures/schema-fromJsonSchemaDocument.ts +16 -0
  1931. package/repos/effect/packages/tools/bundle/fixtures/schema-representation-roundtrip.ts +16 -0
  1932. package/repos/effect/packages/tools/bundle/fixtures/schema-string-transformation.ts +20 -0
  1933. package/repos/effect/packages/tools/bundle/fixtures/schema-string.ts +8 -0
  1934. package/repos/effect/packages/tools/bundle/fixtures/schema-template-literal.ts +8 -0
  1935. package/repos/effect/packages/tools/bundle/fixtures/schema-toArbitraryLazy.ts +9 -0
  1936. package/repos/effect/packages/tools/bundle/fixtures/schema-toCodeDocument.ts +12 -0
  1937. package/repos/effect/packages/tools/bundle/fixtures/schema-toCodecJson.ts +9 -0
  1938. package/repos/effect/packages/tools/bundle/fixtures/schema-toEquivalence.ts +9 -0
  1939. package/repos/effect/packages/tools/bundle/fixtures/schema-toFormatter.ts +9 -0
  1940. package/repos/effect/packages/tools/bundle/fixtures/schema-toJsonSchemaDocument.ts +9 -0
  1941. package/repos/effect/packages/tools/bundle/fixtures/schema-toRepresentation.ts +9 -0
  1942. package/repos/effect/packages/tools/bundle/fixtures/schema.ts +12 -0
  1943. package/repos/effect/packages/tools/bundle/fixtures/stm.ts +21 -0
  1944. package/repos/effect/packages/tools/bundle/fixtures/stream.ts +7 -0
  1945. package/repos/effect/packages/tools/bundle/package.json +52 -0
  1946. package/repos/effect/packages/tools/bundle/src/Cli.ts +104 -0
  1947. package/repos/effect/packages/tools/bundle/src/Fixtures.ts +51 -0
  1948. package/repos/effect/packages/tools/bundle/src/Plugins.ts +131 -0
  1949. package/repos/effect/packages/tools/bundle/src/Reporter.ts +200 -0
  1950. package/repos/effect/packages/tools/bundle/src/Rollup.ts +179 -0
  1951. package/repos/effect/packages/tools/bundle/src/bin.ts +23 -0
  1952. package/repos/effect/packages/tools/bundle/tsconfig.fixtures.json +13 -0
  1953. package/repos/effect/packages/tools/bundle/tsconfig.json +9 -0
  1954. package/repos/effect/packages/tools/bundle/tsconfig.src.json +13 -0
  1955. package/repos/effect/packages/tools/jsdocs/docgen.json +4 -0
  1956. package/repos/effect/packages/tools/jsdocs/package.json +64 -0
  1957. package/repos/effect/packages/tools/jsdocs/src/Jsdocs.ts +3303 -0
  1958. package/repos/effect/packages/tools/jsdocs/src/bin.ts +23 -0
  1959. package/repos/effect/packages/tools/jsdocs/test/jsdocs.test.ts +979 -0
  1960. package/repos/effect/packages/tools/jsdocs/tsconfig.json +8 -0
  1961. package/repos/effect/packages/tools/jsdocs/vitest.config.ts +6 -0
  1962. package/repos/effect/packages/tools/openapi-generator/CHANGELOG.md +691 -0
  1963. package/repos/effect/packages/tools/openapi-generator/LICENSE +21 -0
  1964. package/repos/effect/packages/tools/openapi-generator/docgen.json +4 -0
  1965. package/repos/effect/packages/tools/openapi-generator/package.json +78 -0
  1966. package/repos/effect/packages/tools/openapi-generator/src/HttpApiTransformer.ts +552 -0
  1967. package/repos/effect/packages/tools/openapi-generator/src/JsonSchemaGenerator.ts +319 -0
  1968. package/repos/effect/packages/tools/openapi-generator/src/OpenApiGenerator.ts +1201 -0
  1969. package/repos/effect/packages/tools/openapi-generator/src/OpenApiPatch.ts +539 -0
  1970. package/repos/effect/packages/tools/openapi-generator/src/OpenApiTransformer.ts +1019 -0
  1971. package/repos/effect/packages/tools/openapi-generator/src/ParsedOperation.ts +277 -0
  1972. package/repos/effect/packages/tools/openapi-generator/src/Utils.ts +111 -0
  1973. package/repos/effect/packages/tools/openapi-generator/src/bin.ts +10 -0
  1974. package/repos/effect/packages/tools/openapi-generator/src/main.ts +116 -0
  1975. package/repos/effect/packages/tools/openapi-generator/test/JsonSchemaGenerator.test.ts +173 -0
  1976. package/repos/effect/packages/tools/openapi-generator/test/OpenApiGenerator.test.ts +2130 -0
  1977. package/repos/effect/packages/tools/openapi-generator/test/OpenApiGeneratorCli.test.ts +147 -0
  1978. package/repos/effect/packages/tools/openapi-generator/test/OpenApiPatch.test.ts +380 -0
  1979. package/repos/effect/packages/tools/openapi-generator/test/Utils.test.ts +33 -0
  1980. package/repos/effect/packages/tools/openapi-generator/test/fixtures/cli-basic-spec.json +35 -0
  1981. package/repos/effect/packages/tools/openapi-generator/test/fixtures/cli-warning-spec.json +57 -0
  1982. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/invalid-op.json +7 -0
  1983. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/missing-path.json +6 -0
  1984. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/missing-value.json +6 -0
  1985. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-add.json +8 -0
  1986. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-multiple.json +17 -0
  1987. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-patch.yaml +6 -0
  1988. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-remove.json +6 -0
  1989. package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-replace.json +7 -0
  1990. package/repos/effect/packages/tools/openapi-generator/tsconfig.json +9 -0
  1991. package/repos/effect/packages/tools/openapi-generator/vitest.config.ts +6 -0
  1992. package/repos/effect/packages/tools/oxc/docgen.json +4 -0
  1993. package/repos/effect/packages/tools/oxc/oxlintrc.json +83 -0
  1994. package/repos/effect/packages/tools/oxc/package.json +72 -0
  1995. package/repos/effect/packages/tools/oxc/src/oxlint/index.ts +18 -0
  1996. package/repos/effect/packages/tools/oxc/src/oxlint/rules/jsdocs.ts +108 -0
  1997. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-bigint-literals.ts +25 -0
  1998. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-import-from-barrel-package.ts +144 -0
  1999. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-js-extension-imports.ts +73 -0
  2000. package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-opaque-instance-fields.ts +92 -0
  2001. package/repos/effect/packages/tools/oxc/test/jsdocs.test.ts +75 -0
  2002. package/repos/effect/packages/tools/oxc/test/no-import-from-barrel-package.test.ts +182 -0
  2003. package/repos/effect/packages/tools/oxc/test/no-js-extension-imports.test.ts +120 -0
  2004. package/repos/effect/packages/tools/oxc/test/no-opaque-instance-fields.test.ts +276 -0
  2005. package/repos/effect/packages/tools/oxc/test/utils.ts +61 -0
  2006. package/repos/effect/packages/tools/oxc/tsconfig.json +8 -0
  2007. package/repos/effect/packages/tools/oxc/vitest.config.ts +6 -0
  2008. package/repos/effect/packages/tools/utils/docgen.json +4 -0
  2009. package/repos/effect/packages/tools/utils/package.json +59 -0
  2010. package/repos/effect/packages/tools/utils/src/Codegen.ts +214 -0
  2011. package/repos/effect/packages/tools/utils/src/Glob.ts +61 -0
  2012. package/repos/effect/packages/tools/utils/src/bin.ts +16 -0
  2013. package/repos/effect/packages/tools/utils/src/commands/codegen.ts +44 -0
  2014. package/repos/effect/packages/tools/utils/tsconfig.json +9 -0
  2015. package/repos/effect/packages/vitest/CHANGELOG.md +601 -0
  2016. package/repos/effect/packages/vitest/LICENSE +21 -0
  2017. package/repos/effect/packages/vitest/README.md +320 -0
  2018. package/repos/effect/packages/vitest/docgen.json +24 -0
  2019. package/repos/effect/packages/vitest/package.json +60 -0
  2020. package/repos/effect/packages/vitest/src/index.ts +259 -0
  2021. package/repos/effect/packages/vitest/src/internal/internal.ts +374 -0
  2022. package/repos/effect/packages/vitest/src/utils.ts +321 -0
  2023. package/repos/effect/packages/vitest/test/index.test.ts +222 -0
  2024. package/repos/effect/packages/vitest/test/isolation.test.ts +105 -0
  2025. package/repos/effect/packages/vitest/test/nested-isolation.test.ts +212 -0
  2026. package/repos/effect/packages/vitest/tsconfig.json +11 -0
  2027. package/repos/effect/packages/vitest/typetest/index.tst.ts +56 -0
  2028. package/repos/effect/packages/vitest/vitest.config.ts +6 -0
  2029. package/repos/effect/patches/@changesets__assemble-release-plan.patch +26 -0
  2030. package/repos/effect/patches/@changesets__get-github-info.patch +44 -0
  2031. package/repos/effect/pnpm-lock.yaml +13483 -0
  2032. package/repos/effect/pnpm-workspace.yaml +10 -0
  2033. package/repos/effect/scripts/bundle-compare.sh +42 -0
  2034. package/repos/effect/scripts/check-cookbook-schedule.ts +390 -0
  2035. package/repos/effect/scripts/circular.mjs +26 -0
  2036. package/repos/effect/scripts/clean.mjs +19 -0
  2037. package/repos/effect/scripts/codemod.mjs +22 -0
  2038. package/repos/effect/scripts/codemods/jsdoc.ts +79 -0
  2039. package/repos/effect/scripts/docs.mjs +64 -0
  2040. package/repos/effect/scripts/package-scalar.mjs +14 -0
  2041. package/repos/effect/scripts/package-swagger.mjs +23 -0
  2042. package/repos/effect/scripts/package.json +22 -0
  2043. package/repos/effect/scripts/tsconfig.json +18 -0
  2044. package/repos/effect/scripts/version.mjs +9 -0
  2045. package/repos/effect/scripts/version.template.txt +2 -0
  2046. package/repos/effect/scripts/worktree-setup.sh +27 -0
  2047. package/repos/effect/stats.txt +30 -0
  2048. package/repos/effect/tsconfig.base.json +46 -0
  2049. package/repos/effect/tsconfig.json +128 -0
  2050. package/repos/effect/tsconfig.packages.json +39 -0
  2051. package/repos/effect/tstyche.json +7 -0
  2052. package/repos/effect/vitest.config.ts +31 -0
  2053. package/repos/effect/vitest.setup.ts +4 -0
  2054. package/repos/effect/vitest.shared.ts +61 -0
  2055. package/repos/effect.subtree.json +16 -0
@@ -0,0 +1,3098 @@
1
+ /**
2
+ * The `AnthropicLanguageModel` module provides the Anthropic implementation of
3
+ * Effect AI's `LanguageModel` service. It translates Effect AI prompts, tools,
4
+ * files, reasoning content, and Anthropic-specific options into Messages API
5
+ * requests, then converts normal and streaming Anthropic responses back into
6
+ * Effect AI response content with provider metadata.
7
+ *
8
+ * @since 4.0.0
9
+ */
10
+ /** @effect-diagnostics preferSchemaOverJson:skip-file */
11
+ import * as Arr from "effect/Array"
12
+ import * as Context from "effect/Context"
13
+ import * as DateTime from "effect/DateTime"
14
+ import * as Effect from "effect/Effect"
15
+ import * as Encoding from "effect/Encoding"
16
+ import { dual } from "effect/Function"
17
+ import * as Layer from "effect/Layer"
18
+ import * as Option from "effect/Option"
19
+ import * as Predicate from "effect/Predicate"
20
+ import * as Redactable from "effect/Redactable"
21
+ import * as Schema from "effect/Schema"
22
+ import * as SchemaAST from "effect/SchemaAST"
23
+ import * as Stream from "effect/Stream"
24
+ import type { Span } from "effect/Tracer"
25
+ import type { Mutable, Simplify } from "effect/Types"
26
+ import * as AiError from "effect/unstable/ai/AiError"
27
+ import { toCodecAnthropic } from "effect/unstable/ai/AnthropicStructuredOutput"
28
+ import * as IdGenerator from "effect/unstable/ai/IdGenerator"
29
+ import * as LanguageModel from "effect/unstable/ai/LanguageModel"
30
+ import * as AiModel from "effect/unstable/ai/Model"
31
+ import type * as Prompt from "effect/unstable/ai/Prompt"
32
+ import type * as Response from "effect/unstable/ai/Response"
33
+ import * as Tool from "effect/unstable/ai/Tool"
34
+ import type * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"
35
+ import type * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"
36
+ import { AnthropicClient, type MessageStreamEvent } from "./AnthropicClient.ts"
37
+ import { addGenAIAnnotations } from "./AnthropicTelemetry.ts"
38
+ import type { AnthropicTool } from "./AnthropicTool.ts"
39
+ import type * as Generated from "./Generated.ts"
40
+ import * as InternalUtilities from "./internal/utilities.ts"
41
+
42
+ /**
43
+ * Known Anthropic Claude model identifiers exposed by the generated Anthropic schema.
44
+ *
45
+ * **Details**
46
+ *
47
+ * The Anthropic language model constructors accept `Model` values and custom
48
+ * string model ids, so this type is best used for autocomplete and type checking
49
+ * of known Claude ids.
50
+ *
51
+ * @category models
52
+ * @since 4.0.0
53
+ */
54
+ export type Model = typeof Generated.Model.Type
55
+
56
+ // =============================================================================
57
+ // Configuration
58
+ // =============================================================================
59
+
60
+ /**
61
+ * Context service for Anthropic language model configuration.
62
+ *
63
+ * **When to use**
64
+ *
65
+ * Use when you need scoped Anthropic model request defaults or per-operation
66
+ * overrides from Effect context.
67
+ *
68
+ * **Details**
69
+ *
70
+ * The service stores request fields that are merged into Anthropic Messages API
71
+ * requests. Scoped configuration overrides defaults supplied to `model`,
72
+ * `make`, or `layer`.
73
+ *
74
+ * @category configuration
75
+ * @since 4.0.0
76
+ */
77
+ export class Config extends Context.Service<
78
+ Config,
79
+ Simplify<
80
+ & Partial<
81
+ Omit<
82
+ typeof Generated.BetaCreateMessageParams.Encoded,
83
+ "messages" | "output_config" | "tools" | "tool_choice" | "stream"
84
+ >
85
+ >
86
+ & {
87
+ readonly output_config?: {
88
+ readonly effort?: "low" | "medium" | "high" | null
89
+ }
90
+ /**
91
+ * Disables Claude's ability to use multiple tools to respond to a query.
92
+ */
93
+ readonly disableParallelToolCalls?: boolean | undefined
94
+ /**
95
+ * Whether to use strict JSON schema validation for tool calls.
96
+ *
97
+ * **Details**
98
+ *
99
+ * Only applies to models that support structured outputs. Defaults to
100
+ * `true` when structured outputs are supported.
101
+ */
102
+ readonly strictJsonSchema?: boolean | undefined
103
+ }
104
+ >
105
+ >()("@effect/ai-anthropic/AnthropicLanguageModel/Config") {}
106
+
107
+ // =============================================================================
108
+ // Provider Options / Metadata
109
+ // =============================================================================
110
+
111
+ declare module "effect/unstable/ai/Prompt" {
112
+ /**
113
+ * Anthropic-specific options for system messages.
114
+ *
115
+ * **Details**
116
+ *
117
+ * These options are used when translating system messages into Anthropic
118
+ * request content.
119
+ *
120
+ * @category request
121
+ * @since 4.0.0
122
+ */
123
+ export interface SystemMessageOptions extends ProviderOptions {
124
+ readonly anthropic?: {
125
+ /**
126
+ * A breakpoint which marks the end of reusable content eligible for caching.
127
+ */
128
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
129
+ } | null
130
+ }
131
+
132
+ /**
133
+ * Anthropic-specific options for user messages.
134
+ *
135
+ * **Details**
136
+ *
137
+ * These options are used when translating user messages into Anthropic
138
+ * request content.
139
+ *
140
+ * @category request
141
+ * @since 4.0.0
142
+ */
143
+ export interface UserMessageOptions extends ProviderOptions {
144
+ readonly anthropic?: {
145
+ /**
146
+ * A breakpoint which marks the end of reusable content eligible for caching.
147
+ */
148
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
149
+ } | null
150
+ }
151
+
152
+ /**
153
+ * Anthropic-specific options for assistant messages.
154
+ *
155
+ * **Details**
156
+ *
157
+ * These options are used when replaying assistant messages in Anthropic
158
+ * conversation history.
159
+ *
160
+ * @category request
161
+ * @since 4.0.0
162
+ */
163
+ export interface AssistantMessageOptions extends ProviderOptions {
164
+ readonly anthropic?: {
165
+ /**
166
+ * A breakpoint which marks the end of reusable content eligible for caching.
167
+ */
168
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
169
+ } | null
170
+ }
171
+
172
+ /**
173
+ * Anthropic-specific options for tool messages.
174
+ *
175
+ * **Details**
176
+ *
177
+ * These options are used when converting tool results into Anthropic user
178
+ * content blocks.
179
+ *
180
+ * @category request
181
+ * @since 4.0.0
182
+ */
183
+ export interface ToolMessageOptions extends ProviderOptions {
184
+ readonly anthropic?: {
185
+ /**
186
+ * A breakpoint which marks the end of reusable content eligible for caching.
187
+ */
188
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
189
+ } | null
190
+ }
191
+
192
+ /**
193
+ * Anthropic-specific options for text prompt parts.
194
+ *
195
+ * **When to use**
196
+ *
197
+ * Use when you use these options to control how text blocks are sent to Anthropic.
198
+ *
199
+ * @category request
200
+ * @since 4.0.0
201
+ */
202
+ export interface TextPartOptions extends ProviderOptions {
203
+ readonly anthropic?: {
204
+ /**
205
+ * A breakpoint which marks the end of reusable content eligible for caching.
206
+ */
207
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
208
+ } | null
209
+ }
210
+
211
+ /**
212
+ * Anthropic-specific options for reasoning prompt parts.
213
+ *
214
+ * **Details**
215
+ *
216
+ * Preserves Claude thinking metadata when reasoning content is sent back to
217
+ * Anthropic in later turns.
218
+ *
219
+ * @category request
220
+ * @since 4.0.0
221
+ */
222
+ export interface ReasoningPartOptions extends ProviderOptions {
223
+ readonly anthropic?: {
224
+ readonly info?: {
225
+ readonly type: "thinking"
226
+ /**
227
+ * Thinking content as an encrypted string, which is used to verify
228
+ * that thinking content was indeed generated by Anthropic's API.
229
+ */
230
+ readonly signature: typeof Generated.ResponseThinkingBlock.fields.thinking.Encoded
231
+ } | {
232
+ readonly type: "redacted_thinking"
233
+ /**
234
+ * Thinking content which was flagged by Anthropic's safety systems, and
235
+ * was therefore encrypted.
236
+ */
237
+ readonly redactedData: typeof Generated.ResponseRedactedThinkingBlock.fields.data.Encoded
238
+ } | null
239
+ /**
240
+ * A breakpoint which marks the end of reusable content eligible for caching.
241
+ */
242
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
243
+ } | null
244
+ }
245
+
246
+ /**
247
+ * Anthropic-specific options for file prompt parts.
248
+ *
249
+ * **Details**
250
+ *
251
+ * Controls document metadata, citations, and prompt caching for files sent to
252
+ * Anthropic.
253
+ *
254
+ * @category request
255
+ * @since 4.0.0
256
+ */
257
+ export interface FilePartOptions extends ProviderOptions {
258
+ readonly anthropic?: {
259
+ /**
260
+ * A breakpoint which marks the end of reusable content eligible for caching.
261
+ */
262
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
263
+ /**
264
+ * Whether or not citations should be enabled for the file part.
265
+ */
266
+ readonly citations?: typeof Generated.RequestCitationsConfig.Encoded | null
267
+ /**
268
+ * A custom title to provide to the document. If omitted, the file part's
269
+ * `fileName` property will be used.
270
+ */
271
+ readonly documentTitle?: string | null
272
+ /**
273
+ * Additional context about the document that will be forwarded to the
274
+ * large language model, but will not be used towards cited content.
275
+ *
276
+ * **When to use**
277
+ *
278
+ * Use when storing additional document metadata as text or stringified JSON.
279
+ */
280
+ readonly documentContext?: string | null
281
+ } | null
282
+ }
283
+
284
+ /**
285
+ * Anthropic-specific options for tool call prompt parts.
286
+ *
287
+ * **Details**
288
+ *
289
+ * Carries Anthropic tool caller metadata, MCP metadata, and cache control for
290
+ * tool use blocks.
291
+ *
292
+ * @category request
293
+ * @since 4.0.0
294
+ */
295
+ export interface ToolCallPartOptions extends ProviderOptions {
296
+ readonly anthropic?: {
297
+ readonly caller?: {
298
+ readonly type: string
299
+ readonly toolId?: string | null
300
+ } | null
301
+ /**
302
+ * Contains details about the MCP tool that was called.
303
+ */
304
+ readonly mcp_tool?: {
305
+ /**
306
+ * The name of the MCP server
307
+ */
308
+ readonly server: string
309
+ } | null
310
+ /**
311
+ * A breakpoint which marks the end of reusable content eligible for caching.
312
+ */
313
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
314
+ } | null
315
+ }
316
+
317
+ /**
318
+ * Anthropic-specific options for tool result prompt parts.
319
+ *
320
+ * **Details**
321
+ *
322
+ * Controls Anthropic prompt caching for tool result content.
323
+ *
324
+ * @category request
325
+ * @since 4.0.0
326
+ */
327
+ export interface ToolResultPartOptions extends ProviderOptions {
328
+ readonly anthropic?: {
329
+ /**
330
+ * A breakpoint which marks the end of reusable content eligible for caching.
331
+ */
332
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
333
+ } | null
334
+ }
335
+
336
+ /**
337
+ * Anthropic-specific options for tool approval request prompt parts.
338
+ *
339
+ * **Details**
340
+ *
341
+ * Controls prompt caching for human approval requests in conversations.
342
+ *
343
+ * @category request
344
+ * @since 4.0.0
345
+ */
346
+ export interface ToolApprovalRequestPartOptions extends ProviderOptions {
347
+ readonly anthropic?: {
348
+ /**
349
+ * A breakpoint which marks the end of reusable content eligible for caching.
350
+ */
351
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
352
+ } | null
353
+ }
354
+
355
+ /**
356
+ * Anthropic-specific options for tool approval response prompt parts.
357
+ *
358
+ * **Details**
359
+ *
360
+ * Controls prompt caching for human approval responses in conversations.
361
+ *
362
+ * @category request
363
+ * @since 4.0.0
364
+ */
365
+ export interface ToolApprovalResponsePartOptions extends ProviderOptions {
366
+ readonly anthropic?: {
367
+ /**
368
+ * A breakpoint which marks the end of reusable content eligible for caching.
369
+ */
370
+ readonly cacheControl?: typeof Generated.CacheControlEphemeral.Encoded | null
371
+ } | null
372
+ }
373
+ }
374
+
375
+ declare module "effect/unstable/ai/Response" {
376
+ /**
377
+ * Anthropic metadata attached when a reasoning block begins.
378
+ *
379
+ * **Details**
380
+ *
381
+ * Includes Claude thinking metadata needed to continue reasoning-aware
382
+ * conversations.
383
+ *
384
+ * @category response
385
+ * @since 4.0.0
386
+ */
387
+ export interface ReasoningStartPartMetadata extends ProviderMetadata {
388
+ readonly anthropic?: {
389
+ readonly info?: {
390
+ readonly type: "thinking"
391
+ /**
392
+ * Thinking content as an encrypted string, which is used to verify
393
+ * that thinking content was indeed generated by Anthropic's API.
394
+ */
395
+ readonly signature: typeof Generated.ResponseThinkingBlock.fields.thinking.Encoded
396
+ } | {
397
+ readonly type: "redacted_thinking"
398
+ /**
399
+ * Thinking content which was flagged by Anthropic's safety systems, and
400
+ * was therefore encrypted.
401
+ */
402
+ readonly redactedData: typeof Generated.ResponseRedactedThinkingBlock.fields.data.Encoded
403
+ } | null
404
+ } | null
405
+ }
406
+
407
+ /**
408
+ * Anthropic metadata attached to streaming reasoning deltas.
409
+ *
410
+ * **Details**
411
+ *
412
+ * Includes the signature for streamed Claude thinking content when available.
413
+ *
414
+ * @category response
415
+ * @since 4.0.0
416
+ */
417
+ export interface ReasoningDeltaPartMetadata extends ProviderMetadata {
418
+ readonly anthropic?: {
419
+ readonly info?: {
420
+ readonly type: "thinking"
421
+ /**
422
+ * Thinking content as an encrypted string, which is used to verify
423
+ * that thinking content was indeed generated by Anthropic's API.
424
+ */
425
+ readonly signature: typeof Generated.ResponseThinkingBlock.fields.thinking.Encoded
426
+ } | null
427
+ } | null
428
+ }
429
+
430
+ /**
431
+ * Anthropic metadata attached to completed reasoning parts.
432
+ *
433
+ * **Details**
434
+ *
435
+ * Preserves Claude thinking or redacted thinking information for later turns.
436
+ *
437
+ * @category response
438
+ * @since 4.0.0
439
+ */
440
+ export interface ReasoningPartMetadata extends ProviderMetadata {
441
+ readonly anthropic?: {
442
+ readonly info?: {
443
+ readonly type: "thinking"
444
+ /**
445
+ * Thinking content as an encrypted string, which is used to verify
446
+ * that thinking content was indeed generated by Anthropic's API.
447
+ */
448
+ readonly signature: typeof Generated.ResponseThinkingBlock.fields.thinking.Encoded
449
+ } | {
450
+ readonly type: "redacted_thinking"
451
+ /**
452
+ * Thinking content which was flagged by Anthropic's safety systems, and
453
+ * was therefore encrypted.
454
+ */
455
+ readonly redactedData: typeof Generated.ResponseRedactedThinkingBlock.fields.data.Encoded
456
+ } | null
457
+ } | null
458
+ }
459
+
460
+ /**
461
+ * Anthropic metadata attached to tool call response parts.
462
+ *
463
+ * **Details**
464
+ *
465
+ * Identifies Anthropic caller details and MCP tool metadata emitted by the
466
+ * provider.
467
+ *
468
+ * @category response
469
+ * @since 4.0.0
470
+ */
471
+ export interface ToolCallPartMetadata extends ProviderMetadata {
472
+ readonly anthropic?: {
473
+ readonly caller?: {
474
+ readonly type: string
475
+ readonly toolId?: string | null
476
+ } | null
477
+ /**
478
+ * Contains details about the MCP tool that was called.
479
+ */
480
+ readonly mcp_tool?: {
481
+ /**
482
+ * The name of the MCP server
483
+ */
484
+ readonly server: string
485
+ } | null
486
+ } | null
487
+ }
488
+
489
+ /**
490
+ * Anthropic metadata attached to tool result response parts.
491
+ *
492
+ * **Details**
493
+ *
494
+ * Identifies MCP tool metadata associated with provider-executed tool
495
+ * results.
496
+ *
497
+ * @category response
498
+ * @since 4.0.0
499
+ */
500
+ export interface ToolResultPartMetadata extends ProviderMetadata {
501
+ readonly anthropic?: {
502
+ /**
503
+ * Contains details about the MCP tool that was called.
504
+ */
505
+ readonly mcp_tool?: {
506
+ /**
507
+ * The name of the MCP server
508
+ */
509
+ readonly server: string
510
+ } | null
511
+ } | null
512
+ }
513
+
514
+ /**
515
+ * Anthropic metadata for document citations in model responses.
516
+ *
517
+ * **Details**
518
+ *
519
+ * Records the cited document span by character position or page number.
520
+ *
521
+ * @category response
522
+ * @since 4.0.0
523
+ */
524
+ export interface DocumentSourcePartMetadata extends ProviderMetadata {
525
+ readonly anthropic?: {
526
+ readonly source: "document"
527
+ readonly type: "char_location"
528
+ /**
529
+ * The text that was cited in the response.
530
+ */
531
+ readonly citedText: string
532
+ /**
533
+ * The 0-indexed starting position of the characters that were cited.
534
+ */
535
+ readonly startCharIndex: number
536
+ /**
537
+ * The exclusive ending position of the characters that were cited.
538
+ */
539
+ readonly endCharIndex: number
540
+ } | {
541
+ readonly source: "document"
542
+ readonly type: "page_location"
543
+ /**
544
+ * The text that was cited in the response.
545
+ */
546
+ readonly citedText: string
547
+ /**
548
+ * The 1-indexed starting page of pages that were cited.
549
+ */
550
+ readonly startPageNumber: number
551
+ /**
552
+ * The exclusive ending position of the pages that were cited.
553
+ */
554
+ readonly endPageNumber: number
555
+ } | null
556
+ }
557
+
558
+ /**
559
+ * Anthropic metadata for URL and web citations in model responses.
560
+ *
561
+ * **Details**
562
+ *
563
+ * Records cited URL text or web-search source freshness information.
564
+ *
565
+ * @category response
566
+ * @since 4.0.0
567
+ */
568
+ export interface UrlSourcePartMetadata extends ProviderMetadata {
569
+ readonly anthropic?: {
570
+ readonly source: "url"
571
+ /**
572
+ * Up to 150 characters of the text content that was referenced from the
573
+ * URL source material.
574
+ */
575
+ readonly citedText: string
576
+ /**
577
+ * An internal reference that must be passed back to the Anthropic API
578
+ * during multi-turn conversations.
579
+ */
580
+ readonly encryptedIndex: string
581
+ } | {
582
+ readonly source: "web"
583
+ readonly pageAge: string | null
584
+ } | null
585
+ }
586
+
587
+ /**
588
+ * Anthropic metadata attached to the finish part of a response.
589
+ *
590
+ * **Details**
591
+ *
592
+ * Includes container state, context management information, stop details, and
593
+ * token usage reported by Anthropic.
594
+ *
595
+ * @category response
596
+ * @since 4.0.0
597
+ */
598
+ export interface FinishPartMetadata extends ProviderMetadata {
599
+ readonly anthropic?: {
600
+ readonly container: typeof Generated.BetaContainer.Encoded | null
601
+ readonly contextManagement: typeof Generated.BetaResponseContextManagement.Encoded | null
602
+ readonly stopSequence: string | null
603
+ readonly usage: typeof Generated.BetaMessage.Encoded["usage"] | null
604
+ } | null
605
+ }
606
+
607
+ /**
608
+ * Anthropic metadata attached to error response parts.
609
+ *
610
+ * **Details**
611
+ *
612
+ * Includes the provider request identifier when Anthropic returns one.
613
+ *
614
+ * @category response
615
+ * @since 4.0.0
616
+ */
617
+ export interface ErrorPartMetadata extends ProviderMetadata {
618
+ readonly anthropic?: {
619
+ requestId?: string | null
620
+ } | null
621
+ }
622
+ }
623
+
624
+ // =============================================================================
625
+ // Language Model
626
+ // =============================================================================
627
+
628
+ /**
629
+ * Creates an Anthropic model descriptor that can be provided with `Effect.provide`.
630
+ *
631
+ * **When to use**
632
+ *
633
+ * Use when you want an Anthropic Claude model value that carries provider and
634
+ * model metadata and can be supplied directly to an Effect program.
635
+ *
636
+ * @see {@link layer} for creating a `LanguageModel.LanguageModel` layer directly
637
+ * @see {@link make} for constructing the language model service effectfully
638
+ *
639
+ * @category constructors
640
+ * @since 4.0.0
641
+ */
642
+ export const model = (
643
+ model: (string & {}) | Model,
644
+ config?: Omit<typeof Config.Service, "model">
645
+ ): AiModel.Model<"anthropic", LanguageModel.LanguageModel, AnthropicClient> =>
646
+ AiModel.make("anthropic", model, layer({ model, config }))
647
+
648
+ /**
649
+ * Creates an Anthropic `LanguageModel` service from a model identifier and optional request defaults.
650
+ *
651
+ * **When to use**
652
+ *
653
+ * Use when you need to construct a `LanguageModel.Service` value backed by
654
+ * `AnthropicClient` inside an Effect.
655
+ *
656
+ * **Details**
657
+ *
658
+ * The returned effect requires `AnthropicClient`. Request defaults from the
659
+ * `config` option are merged with any `Config` service in the context, with
660
+ * context values taking precedence.
661
+ *
662
+ * @see {@link layer} for providing the service as a `Layer`
663
+ * @see {@link model} for creating a model descriptor for `AiModel.provide`
664
+ *
665
+ * @category constructors
666
+ * @since 4.0.0
667
+ */
668
+ export const make = Effect.fnUntraced(function*({ model, config: providerConfig }: {
669
+ readonly model: (string & {}) | Model
670
+ readonly config?: Omit<typeof Config.Service, "model"> | undefined
671
+ }): Effect.fn.Return<LanguageModel.Service, never, AnthropicClient> {
672
+ const client = yield* AnthropicClient
673
+
674
+ const makeConfig: Effect.Effect<typeof Config.Service & { readonly model: string }> = Effect.gen(function*() {
675
+ const services = yield* Effect.context<never>()
676
+ return { model, ...providerConfig, ...services.mapUnsafe.get(Config.key) }
677
+ })
678
+
679
+ const makeRequest = Effect.fnUntraced(
680
+ function*<Tools extends ReadonlyArray<Tool.Any>>({ config, options, toolNameMapper }: {
681
+ readonly config: typeof Config.Service & { readonly model: string }
682
+ readonly options: LanguageModel.ProviderOptions
683
+ readonly toolNameMapper: Tool.NameMapper<Tools>
684
+ }): Effect.fn.Return<{
685
+ readonly params: typeof Generated.BetaMessagesPostParams.Encoded
686
+ readonly payload: typeof Generated.BetaCreateMessageParams.Encoded
687
+ }, AiError.AiError> {
688
+ const betas = new Set<string>()
689
+ const capabilities = getModelCapabilities(config.model!)
690
+ const { messages, system } = yield* prepareMessages({ betas, options, toolNameMapper })
691
+ const outputFormat = yield* getOutputFormat({ capabilities, options })
692
+ const { tools, toolChoice } = yield* prepareTools({ betas, capabilities, config, options })
693
+ const params: Mutable<typeof Generated.BetaMessagesPostParams.Encoded> = {}
694
+ if (betas.size > 0) {
695
+ params["anthropic-beta"] = Array.from(betas).join(",")
696
+ }
697
+ const { disableParallelToolCalls: _, output_config, ...requestConfig } = config
698
+ const payload: Mutable<typeof Generated.BetaCreateMessageParams.Encoded> = {
699
+ ...requestConfig,
700
+ max_tokens: requestConfig.max_tokens ?? capabilities.maxOutputTokens,
701
+ messages,
702
+ ...(Predicate.isNotUndefined(system) ? { system } : undefined),
703
+ ...(Predicate.isNotUndefined(tools) ? { tools } : undefined),
704
+ ...(Predicate.isNotUndefined(toolChoice) ? { tool_choice: toolChoice } : undefined)
705
+ }
706
+ const outputConfig: Mutable<typeof Generated.BetaCreateMessageParams.Encoded["output_config"]> = {}
707
+ if (Predicate.isNotUndefined(outputFormat)) {
708
+ outputConfig.format = outputFormat
709
+ }
710
+ if (Predicate.isNotUndefined(output_config?.effort)) {
711
+ outputConfig.effort = output_config.effort
712
+ }
713
+ if (Object.keys(outputConfig).length > 0) {
714
+ payload.output_config = outputConfig
715
+ }
716
+ return { params, payload }
717
+ }
718
+ )
719
+
720
+ return yield* LanguageModel.make({
721
+ codecTransformer: toCodecAnthropic,
722
+ generateText: Effect.fnUntraced(function*(options) {
723
+ const config = yield* makeConfig
724
+ const toolNameMapper = new Tool.NameMapper(options.tools)
725
+ const request = yield* makeRequest({ config, options, toolNameMapper })
726
+ annotateRequest(options.span, request.payload)
727
+ const [rawResponse, response] = yield* client.createMessage(request)
728
+ annotateResponse(options.span, rawResponse)
729
+ return yield* makeResponse({ options, rawResponse, response, toolNameMapper })
730
+ }),
731
+ streamText: Effect.fnUntraced(function*(options) {
732
+ const config = yield* makeConfig
733
+ const toolNameMapper = new Tool.NameMapper(options.tools)
734
+ const request = yield* makeRequest({ config, options, toolNameMapper })
735
+ annotateRequest(options.span, request.payload)
736
+ const [response, stream] = yield* client.createMessageStream(request)
737
+ return yield* makeStreamResponse({ stream, response, options, toolNameMapper })
738
+ }, (effect, options) =>
739
+ effect.pipe(
740
+ Stream.unwrap,
741
+ Stream.map((response) => {
742
+ annotateStreamResponse(options.span, response)
743
+ return response
744
+ })
745
+ ))
746
+ })
747
+ })
748
+
749
+ /**
750
+ * Creates a layer for the Anthropic language model.
751
+ *
752
+ * **When to use**
753
+ *
754
+ * Use when composing application layers and you want Anthropic to satisfy
755
+ * `LanguageModel.LanguageModel` while supplying `AnthropicClient` from another
756
+ * layer.
757
+ *
758
+ * @see {@link make} for constructing the language model service effectfully
759
+ * @see {@link model} for creating a model service directly
760
+ *
761
+ * @category layers
762
+ * @since 4.0.0
763
+ */
764
+ export const layer = (options: {
765
+ readonly model: (string & {}) | Model
766
+ readonly config?: Omit<typeof Config.Service, "model"> | undefined
767
+ }): Layer.Layer<LanguageModel.LanguageModel, never, AnthropicClient> =>
768
+ Layer.effect(LanguageModel.LanguageModel, make(options))
769
+
770
+ /**
771
+ * Provides config overrides for Anthropic language model operations.
772
+ *
773
+ * **When to use**
774
+ *
775
+ * Use to apply Anthropic request configuration to one effect without changing
776
+ * the model's default configuration.
777
+ *
778
+ * **Details**
779
+ *
780
+ * The overrides are merged with any existing `Config` service for the duration
781
+ * of the supplied effect. Fields in `overrides` take precedence over existing
782
+ * config, and the helper supports both `effect.pipe(withConfigOverride(overrides))`
783
+ * and `withConfigOverride(effect, overrides)`.
784
+ *
785
+ * @see {@link Config} for available Anthropic request configuration fields
786
+ *
787
+ * @category configuration
788
+ * @since 4.0.0
789
+ */
790
+ export const withConfigOverride: {
791
+ (overrides: typeof Config.Service): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Config>>
792
+ <A, E, R>(self: Effect.Effect<A, E, R>, overrides: typeof Config.Service): Effect.Effect<A, E, Exclude<R, Config>>
793
+ } = dual<
794
+ (
795
+ overrides: typeof Config.Service
796
+ ) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Config>>,
797
+ <A, E, R>(self: Effect.Effect<A, E, R>, overrides: typeof Config.Service) => Effect.Effect<A, E, Exclude<R, Config>>
798
+ >(2, (self, overrides) =>
799
+ Effect.flatMap(
800
+ Effect.serviceOption(Config),
801
+ (config) =>
802
+ Effect.provideService(self, Config, {
803
+ ...(config._tag === "Some" ? config.value : {}),
804
+ ...overrides
805
+ })
806
+ ))
807
+
808
+ // =============================================================================
809
+ // Prompt Conversion
810
+ // =============================================================================
811
+
812
+ const prepareMessages = Effect.fnUntraced(
813
+ function*<Tools extends ReadonlyArray<Tool.Any>>({ betas, options, toolNameMapper }: {
814
+ readonly betas: Set<string>
815
+ readonly options: LanguageModel.ProviderOptions
816
+ readonly toolNameMapper: Tool.NameMapper<Tools>
817
+ }): Effect.fn.Return<{
818
+ readonly system: ReadonlyArray<typeof Generated.BetaRequestTextBlock.Encoded> | undefined
819
+ readonly messages: ReadonlyArray<typeof Generated.BetaInputMessage.Encoded>
820
+ }, AiError.AiError> {
821
+ const groups = groupMessages(options.prompt)
822
+
823
+ let system: Array<typeof Generated.BetaRequestTextBlock.Encoded> | undefined = undefined
824
+ const messages: Array<typeof Generated.BetaInputMessage.Encoded> = []
825
+
826
+ for (let i = 0; i < groups.length; i++) {
827
+ const group = groups[i]
828
+ const isLastGroup = i === groups.length - 1
829
+
830
+ switch (group.type) {
831
+ case "system": {
832
+ system = group.messages.map((message) => ({
833
+ type: "text",
834
+ text: message.content,
835
+ cache_control: getCacheControl(message)
836
+ }))
837
+ break
838
+ }
839
+
840
+ case "user": {
841
+ const content: Array<typeof Generated.BetaInputContentBlock.Encoded> = []
842
+
843
+ for (const message of group.messages) {
844
+ switch (message.role) {
845
+ case "user": {
846
+ for (let j = 0; j < message.content.length; j++) {
847
+ const part = message.content[j]
848
+ const isLastPart = j === message.content.length - 1
849
+
850
+ // Attempt to get the cache control from the part first. If
851
+ // the part does not have cache control defined and we are
852
+ // evaluating the last part for this message, also check the
853
+ // message for cache control.
854
+ const cacheControl = getCacheControl(part) ?? (
855
+ isLastPart ? getCacheControl(message) : null
856
+ )
857
+
858
+ switch (part.type) {
859
+ case "text": {
860
+ content.push({
861
+ type: "text",
862
+ text: part.text,
863
+ cache_control: cacheControl
864
+ })
865
+ break
866
+ }
867
+
868
+ case "file": {
869
+ if (part.mediaType.startsWith("image/")) {
870
+ const mediaType: typeof Generated.Base64ImageSource.Type["media_type"] =
871
+ (part.mediaType === "image/*" ? "image/jpeg" : part.mediaType) as any
872
+
873
+ const source = isUrlData(part.data)
874
+ ? { type: "url", url: getUrlString(part.data) } as const
875
+ : { type: "base64", media_type: mediaType, data: Encoding.encodeBase64(part.data) } as const
876
+
877
+ content.push({ type: "image", source, cache_control: cacheControl })
878
+ } else if (part.mediaType === "application/pdf" || part.mediaType === "text/plain") {
879
+ betas.add("pdfs-2024-09-25")
880
+
881
+ const enableCitations = areCitationsEnabled(part)
882
+ const documentOptions = getDocumentMetadata(part)
883
+
884
+ const source = isUrlData(part.data)
885
+ ? {
886
+ type: "url",
887
+ url: getUrlString(part.data)
888
+ } as const
889
+ : part.mediaType === "application/pdf"
890
+ ? {
891
+ type: "base64",
892
+ media_type: "application/pdf",
893
+ data: typeof part.data === "string" ? part.data : Encoding.encodeBase64(part.data)
894
+ } as const
895
+ : {
896
+ type: "text",
897
+ media_type: "text/plain",
898
+ data: typeof part.data === "string" ? part.data : Encoding.encodeBase64(part.data)
899
+ } as const
900
+
901
+ content.push({
902
+ type: "document",
903
+ source,
904
+ title: documentOptions?.title ?? part.fileName ?? null,
905
+ cache_control: cacheControl,
906
+ ...(documentOptions?.context ? { context: documentOptions.context } : undefined),
907
+ ...(enableCitations ? { citations: { enabled: true } } : undefined)
908
+ })
909
+ } else {
910
+ return yield* new AiError.AiError({
911
+ module: "AnthropicLanguageModel",
912
+ method: "prepareMessages",
913
+ reason: new AiError.InvalidUserInputError({
914
+ description: `Detected unsupported media type for file: '${part.mediaType}'`
915
+ })
916
+ })
917
+ }
918
+
919
+ break
920
+ }
921
+ }
922
+ }
923
+ break
924
+ }
925
+
926
+ case "tool": {
927
+ for (let j = 0; j < message.content.length; j++) {
928
+ const part = message.content[j]
929
+
930
+ // Skip evaluation of tool approval parts
931
+ if (part.type === "tool-approval-response") {
932
+ continue
933
+ }
934
+
935
+ const isLastPart = j === message.content.length - 1
936
+
937
+ // Attempt to get the cache control from the part first. If
938
+ // the part does not have cache control defined and we are
939
+ // evaluating the last part for this message, also check the
940
+ // message for cache control.
941
+ const cacheControl = getCacheControl(part) ?? (
942
+ isLastPart ? getCacheControl(message) : null
943
+ )
944
+
945
+ content.push({
946
+ type: "tool_result",
947
+ tool_use_id: part.id,
948
+ content: JSON.stringify(part.result),
949
+ is_error: part.isFailure,
950
+ cache_control: cacheControl
951
+ })
952
+ }
953
+ }
954
+ }
955
+ }
956
+
957
+ messages.push({ role: "user", content })
958
+
959
+ break
960
+ }
961
+
962
+ case "assistant": {
963
+ const content: Array<typeof Generated.BetaContentBlock.Encoded> = []
964
+ const mcpToolIds = new Set<string>()
965
+
966
+ for (let j = 0; j < group.messages.length; j++) {
967
+ const message = group.messages[j]
968
+ const isLastMessage = j === group.messages.length - 1
969
+
970
+ for (let k = 0; k < message.content.length; k++) {
971
+ const part = message.content[k]
972
+
973
+ if (part.type === "file" || part.type === "tool-approval-request") {
974
+ continue
975
+ }
976
+
977
+ const isLastPart = k === message.content.length - 1
978
+
979
+ // Attempt to get the cache control from the part first. If
980
+ // the part does not have cache control defined and we are
981
+ // evaluating the last part for this message, also check the
982
+ // message for cache control.
983
+ const cacheControl = getCacheControl(part) ?? (
984
+ isLastPart ? getCacheControl(message) : undefined
985
+ )
986
+
987
+ // TODO: use cache_control in content blocks
988
+ void cacheControl
989
+
990
+ switch (part.type) {
991
+ case "text": {
992
+ content.push({
993
+ type: "text",
994
+ // Anthropic does not allow trailing whitespace in assistant
995
+ // content blocks
996
+ text: isLastGroup && isLastMessage && isLastPart
997
+ ? part.text.trim()
998
+ : part.text
999
+ })
1000
+ break
1001
+ }
1002
+ case "reasoning": {
1003
+ // TODO: make sending reasoning configurable
1004
+ const info = part.options.anthropic?.info
1005
+ if (Predicate.isNotNullish(info)) {
1006
+ if (info.type === "thinking") {
1007
+ content.push({
1008
+ type: "thinking",
1009
+ thinking: part.text,
1010
+ signature: info.signature
1011
+ })
1012
+ } else {
1013
+ content.push({
1014
+ type: "redacted_thinking",
1015
+ data: info.redactedData
1016
+ })
1017
+ }
1018
+ }
1019
+ break
1020
+ }
1021
+
1022
+ case "tool-call": {
1023
+ if (part.providerExecuted) {
1024
+ const toolName = toolNameMapper.getProviderName(part.name)
1025
+
1026
+ const isMcpTool = Predicate.isNotNullish(part.options.anthropic?.mcp_tool)
1027
+
1028
+ if (isMcpTool) {
1029
+ const { server } = part.options.anthropic.mcp_tool
1030
+
1031
+ mcpToolIds.add(part.id)
1032
+
1033
+ content.push({
1034
+ type: "mcp_tool_use",
1035
+ id: part.id,
1036
+ name: part.name,
1037
+ input: part.params as any,
1038
+ server_name: server
1039
+ })
1040
+ } else if (
1041
+ toolName === "code_execution" &&
1042
+ Predicate.hasProperty(part.params, "type") &&
1043
+ (
1044
+ part.params.type === "bash_code_execution" ||
1045
+ part.params.type === "text_editor_code_execution"
1046
+ )
1047
+ ) {
1048
+ content.push({
1049
+ type: "server_tool_use",
1050
+ id: part.id,
1051
+ name: part.params.type,
1052
+ input: part.params as any
1053
+ })
1054
+ } else if (
1055
+ // code execution 20250825 programmatic tool calling:
1056
+ // Strip the fake 'programmatic-tool-call' type before sending to Anthropic
1057
+ toolName === "code_execution" &&
1058
+ Predicate.hasProperty(part.params, "type") &&
1059
+ part.params.type === "programmatic-tool-call"
1060
+ ) {
1061
+ const { type, ...params } = part.params
1062
+ content.push({
1063
+ type: "server_tool_use",
1064
+ id: part.id,
1065
+ name: toolName,
1066
+ input: params as any
1067
+ })
1068
+ } else {
1069
+ if (
1070
+ // code execution 20250522
1071
+ toolName === "code_execution" ||
1072
+ toolName === "tool_search_tool_regex" ||
1073
+ toolName === "tool_search_tool_bm25" ||
1074
+ toolName === "web_fetch" ||
1075
+ toolName === "web_search"
1076
+ ) {
1077
+ content.push({
1078
+ type: "server_tool_use",
1079
+ id: part.id,
1080
+ name: toolName,
1081
+ input: part.params as any
1082
+ })
1083
+ }
1084
+ }
1085
+ } else {
1086
+ // Extract caller info from provider options for programmatic tool calling
1087
+ const options = part.options.anthropic
1088
+ const caller = Predicate.isNotNullish(options?.caller)
1089
+ ? (
1090
+ options.caller.type === "code_execution_20250825" &&
1091
+ Predicate.isNotNullish(options.caller.toolId)
1092
+ )
1093
+ ? {
1094
+ type: "code_execution_20250825",
1095
+ tool_id: options.caller.toolId
1096
+ } as const
1097
+ : options.caller.type === "direct"
1098
+ ? {
1099
+ type: "direct"
1100
+ } as const
1101
+ : undefined
1102
+ : undefined
1103
+
1104
+ content.push({
1105
+ type: "tool_use",
1106
+ id: part.id,
1107
+ name: part.name,
1108
+ input: part.params as any,
1109
+ ...(Predicate.isNotUndefined(caller) ? { caller } : undefined)
1110
+ })
1111
+ }
1112
+
1113
+ break
1114
+ }
1115
+
1116
+ case "tool-result": {
1117
+ const toolName = toolNameMapper.getProviderName(part.name)
1118
+
1119
+ if (mcpToolIds.has(part.id)) {
1120
+ content.push({
1121
+ type: "mcp_tool_result",
1122
+ tool_use_id: part.id,
1123
+ is_error: part.isFailure,
1124
+ content: part.result as any
1125
+ })
1126
+ break
1127
+ }
1128
+
1129
+ if (toolName === "code_execution" && Predicate.hasProperty(part.result, "type")) {
1130
+ if (part.result.type === "code_execution_result") {
1131
+ content.push({
1132
+ type: "code_execution_tool_result",
1133
+ tool_use_id: part.id,
1134
+ content: part.result as any
1135
+ })
1136
+ } else if (
1137
+ part.result.type === "bash_code_execution_result" ||
1138
+ part.result.type === "bash_code_execution_tool_result_error"
1139
+ ) {
1140
+ content.push({
1141
+ type: "bash_code_execution_tool_result",
1142
+ tool_use_id: part.id,
1143
+ content: part.result as any
1144
+ })
1145
+ } else if (
1146
+ part.result.type === "text_editor_code_execution_tool_result" ||
1147
+ part.result.type === "text_editor_code_execution_tool_result_error"
1148
+ ) {
1149
+ content.push({
1150
+ type: "text_editor_code_execution_tool_result",
1151
+ tool_use_id: part.id,
1152
+ content: part.result as any
1153
+ })
1154
+ }
1155
+ break
1156
+ }
1157
+
1158
+ if (toolName === "web_fetch") {
1159
+ content.push({
1160
+ type: "web_fetch_tool_result",
1161
+ tool_use_id: part.id,
1162
+ content: part.result as any
1163
+ })
1164
+ break
1165
+ }
1166
+
1167
+ if (toolName === "web_search") {
1168
+ content.push({
1169
+ type: "web_search_tool_result",
1170
+ tool_use_id: part.id,
1171
+ content: part.result as any
1172
+ })
1173
+ break
1174
+ }
1175
+
1176
+ if (
1177
+ toolName === "tool_search_tool_regex" ||
1178
+ toolName === "tool_search_tool_bm25"
1179
+ ) {
1180
+ content.push({
1181
+ type: "tool_search_tool_result",
1182
+ tool_use_id: part.id,
1183
+ content: part.result as any
1184
+ })
1185
+ break
1186
+ }
1187
+
1188
+ break
1189
+ }
1190
+ }
1191
+ }
1192
+ }
1193
+
1194
+ messages.push({ role: "assistant", content })
1195
+
1196
+ break
1197
+ }
1198
+ }
1199
+ }
1200
+
1201
+ return {
1202
+ system,
1203
+ messages
1204
+ }
1205
+ }
1206
+ )
1207
+
1208
+ // =============================================================================
1209
+ // Tool Conversion
1210
+ // =============================================================================
1211
+
1212
+ /**
1213
+ * Encoded Anthropic custom tool definition that can be sent in a Messages API request.
1214
+ *
1215
+ * **When to use**
1216
+ *
1217
+ * Use when you need to type or inspect the provider-specific request payload for
1218
+ * a custom Anthropic tool.
1219
+ *
1220
+ * **Details**
1221
+ *
1222
+ * This type aliases the encoded `Generated.BetaTool` schema used for Effect
1223
+ * user-defined and dynamic tools after conversion. It contains the tool `name`,
1224
+ * optional `description`, and `input_schema`, plus Anthropic-specific fields
1225
+ * such as `strict` and `cache_control`.
1226
+ *
1227
+ * @see {@link AnthropicProviderDefinedTool} for the request shape used by Anthropic built-in provider tools
1228
+ *
1229
+ * @category tools
1230
+ * @since 4.0.0
1231
+ */
1232
+ export type AnthropicUserDefinedTool = typeof Generated.BetaTool.Encoded
1233
+
1234
+ /**
1235
+ * Represents a provider-defined tool that can be passed to the Anthropic API.
1236
+ *
1237
+ * **Details**
1238
+ *
1239
+ * These include Anthropic's built-in tools like computer use, code execution,
1240
+ * web search, and text editing.
1241
+ *
1242
+ * @category tools
1243
+ * @since 4.0.0
1244
+ */
1245
+ export type AnthropicProviderDefinedTool =
1246
+ | typeof Generated.BetaBashTool_20241022.Encoded
1247
+ | typeof Generated.BetaBashTool_20250124.Encoded
1248
+ | typeof Generated.BetaCodeExecutionTool_20250522.Encoded
1249
+ | typeof Generated.BetaCodeExecutionTool_20250825.Encoded
1250
+ | typeof Generated.BetaComputerUseTool_20241022.Encoded
1251
+ | typeof Generated.BetaComputerUseTool_20250124.Encoded
1252
+ | typeof Generated.BetaComputerUseTool_20251124.Encoded
1253
+ | typeof Generated.BetaMemoryTool_20250818.Encoded
1254
+ | typeof Generated.BetaTextEditor_20241022.Encoded
1255
+ | typeof Generated.BetaTextEditor_20250124.Encoded
1256
+ | typeof Generated.BetaTextEditor_20250429.Encoded
1257
+ | typeof Generated.BetaTextEditor_20250728.Encoded
1258
+ | typeof Generated.BetaToolSearchToolBM25_20251119.Encoded
1259
+ | typeof Generated.BetaToolSearchToolRegex_20251119.Encoded
1260
+ | typeof Generated.BetaWebFetchTool_20250910.Encoded
1261
+ | typeof Generated.BetaWebSearchTool_20250305.Encoded
1262
+
1263
+ const prepareTools = Effect.fnUntraced(
1264
+ function*({ betas, capabilities, config, options }: {
1265
+ readonly betas: Set<string>
1266
+ readonly capabilities: ModelCapabilities
1267
+ readonly config: typeof Config.Service
1268
+ readonly options: LanguageModel.ProviderOptions
1269
+ }): Effect.fn.Return<{
1270
+ readonly tools: ReadonlyArray<AnthropicUserDefinedTool | AnthropicProviderDefinedTool> | undefined
1271
+ readonly toolChoice: typeof Generated.BetaToolChoice.Encoded | undefined
1272
+ }, AiError.AiError> {
1273
+ if (options.tools.length === 0 || options.toolChoice === "none") {
1274
+ return { tools: undefined, toolChoice: undefined }
1275
+ }
1276
+
1277
+ // Return a JSON response tool when using non-native structured outputs
1278
+ if (options.responseFormat.type === "json" && !capabilities.supportsStructuredOutput) {
1279
+ const input_schema = yield* tryJsonSchema(options.responseFormat.schema, "prepareTools")
1280
+ const userDescription = SchemaAST.resolveDescription(options.responseFormat.schema.ast)
1281
+ const description = Predicate.isNotUndefined(userDescription) ? `${userDescription} - ` : ""
1282
+ return {
1283
+ tools: [{
1284
+ name: options.responseFormat.objectName,
1285
+ description: `${description}You MUST respond with a JSON object.`,
1286
+ input_schema: input_schema as any
1287
+ }],
1288
+ toolChoice: {
1289
+ type: "tool",
1290
+ name: options.responseFormat.objectName,
1291
+ disable_parallel_tool_use: true
1292
+ }
1293
+ }
1294
+ }
1295
+
1296
+ const userTools: Array<AnthropicUserDefinedTool> = []
1297
+ const providerTools: Array<AnthropicProviderDefinedTool> = []
1298
+
1299
+ for (const tool of options.tools) {
1300
+ if (Tool.isUserDefined(tool) || Tool.isDynamic(tool)) {
1301
+ const description = Tool.getDescription(tool)
1302
+ const input_schema = yield* tryToolJsonSchema(tool, "prepareTools")
1303
+ const toolStrict = Tool.getStrictMode(tool)
1304
+ const strict = capabilities.supportsStructuredOutput
1305
+ ? (toolStrict ?? config.strictJsonSchema ?? true)
1306
+ : undefined
1307
+
1308
+ userTools.push({
1309
+ name: tool.name,
1310
+ input_schema: input_schema as any,
1311
+ ...(Predicate.isNotUndefined(description) ? { description } : undefined),
1312
+ ...(Predicate.isNotUndefined(strict) ? { strict } : undefined)
1313
+ })
1314
+
1315
+ if (capabilities.supportsStructuredOutput === true) {
1316
+ betas.add("structured-outputs-2025-11-13")
1317
+ }
1318
+ }
1319
+
1320
+ if (Tool.isProviderDefined(tool)) {
1321
+ const providerTool = tool as AnthropicTool
1322
+ switch (providerTool.id) {
1323
+ case "anthropic.bash_20241022": {
1324
+ betas.add("computer-use-2024-10-22")
1325
+ providerTools.push({ name: "bash", type: "bash_20241022" })
1326
+ break
1327
+ }
1328
+
1329
+ case "anthropic.bash_20250124": {
1330
+ betas.add("computer-use-2025-01-24")
1331
+ providerTools.push({ name: "bash", type: "bash_20250124" })
1332
+ break
1333
+ }
1334
+
1335
+ case "anthropic.code_execution_20250522": {
1336
+ betas.add("code-execution-2025-05-22")
1337
+ providerTools.push({ name: "code_execution", type: "code_execution_20250522" })
1338
+ break
1339
+ }
1340
+
1341
+ case "anthropic.code_execution_20250825": {
1342
+ betas.add("code-execution-2025-08-25")
1343
+ providerTools.push({ name: "code_execution", type: "code_execution_20250825" })
1344
+ break
1345
+ }
1346
+
1347
+ case "anthropic.computer_use_20241022": {
1348
+ betas.add("computer-use-2024-10-22")
1349
+ providerTools.push({
1350
+ name: "computer",
1351
+ type: "computer_20241022",
1352
+ display_height_px: providerTool.args.displayHeightPx,
1353
+ display_width_px: providerTool.args.displayWidthPx,
1354
+ display_number: providerTool.args.displayNumber ?? null
1355
+ })
1356
+ break
1357
+ }
1358
+
1359
+ case "anthropic.computer_20250124": {
1360
+ betas.add("computer-use-2025-01-24")
1361
+ providerTools.push({
1362
+ name: "computer",
1363
+ type: "computer_20250124",
1364
+ display_height_px: providerTool.args.displayHeightPx,
1365
+ display_width_px: providerTool.args.displayWidthPx,
1366
+ display_number: providerTool.args.displayNumber ?? null
1367
+ })
1368
+ break
1369
+ }
1370
+
1371
+ case "anthropic.computer_20251124": {
1372
+ betas.add("computer-use-2025-11-24")
1373
+ providerTools.push({
1374
+ name: "computer",
1375
+ type: "computer_20251124",
1376
+ display_height_px: providerTool.args.displayHeightPx,
1377
+ display_width_px: providerTool.args.displayWidthPx,
1378
+ display_number: providerTool.args.displayNumber ?? null,
1379
+ enable_zoom: providerTool.args.enableZoom ?? false
1380
+ })
1381
+ break
1382
+ }
1383
+
1384
+ case "anthropic.memory_20250818": {
1385
+ betas.add("context-management-2025-06-27")
1386
+ providerTools.push({ name: "memory", type: "memory_20250818" })
1387
+ break
1388
+ }
1389
+
1390
+ case "anthropic.text_editor_20241022": {
1391
+ betas.add("computer-use-2024-10-22")
1392
+ providerTools.push({ name: "str_replace_editor", type: "text_editor_20241022" })
1393
+ break
1394
+ }
1395
+
1396
+ case "anthropic.text_editor_20250124": {
1397
+ betas.add("computer-use-2025-01-24")
1398
+ providerTools.push({ name: "str_replace_editor", type: "text_editor_20250124" })
1399
+ break
1400
+ }
1401
+
1402
+ case "anthropic.text_editor_20250429": {
1403
+ betas.add("computer-use-2025-01-24")
1404
+ providerTools.push({ name: "str_replace_based_edit_tool", type: "text_editor_20250429" })
1405
+ break
1406
+ }
1407
+
1408
+ case "anthropic.text_editor_20250728": {
1409
+ providerTools.push({
1410
+ name: "str_replace_based_edit_tool",
1411
+ type: "text_editor_20250728",
1412
+ max_characters: providerTool.args.max_characters ?? null
1413
+ })
1414
+ break
1415
+ }
1416
+
1417
+ case "anthropic.tool_search_tool_bm25_20251119": {
1418
+ betas.add("advanced-tool-use-2025-11-20")
1419
+ providerTools.push({ name: "tool_search_tool_bm25", type: "tool_search_tool_bm25_20251119" })
1420
+ break
1421
+ }
1422
+
1423
+ case "anthropic.tool_search_tool_regex_20251119": {
1424
+ providerTools.push({ name: "tool_search_tool_regex", type: "tool_search_tool_regex_20251119" })
1425
+ break
1426
+ }
1427
+
1428
+ case "anthropic.web_search_20250305": {
1429
+ providerTools.push({
1430
+ name: "web_search",
1431
+ type: "web_search_20250305",
1432
+ max_uses: providerTool.args.maxUses ?? null,
1433
+ allowed_domains: providerTool.args.allowedDomains ?? null,
1434
+ blocked_domains: providerTool.args.blockedDomains ?? null,
1435
+ user_location: Predicate.isNotUndefined(providerTool.args.userLocation)
1436
+ ? {
1437
+ type: providerTool.args.userLocation.type,
1438
+ region: providerTool.args.userLocation.region ?? null,
1439
+ city: providerTool.args.userLocation.city ?? null,
1440
+ country: providerTool.args.userLocation.country ?? null,
1441
+ timezone: providerTool.args.userLocation.timezone ?? null
1442
+ }
1443
+ : null
1444
+ })
1445
+ break
1446
+ }
1447
+
1448
+ case "anthropic.web_fetch_20250910": {
1449
+ betas.add("web-fetch-2025-09-10")
1450
+ providerTools.push({
1451
+ name: "web_fetch",
1452
+ type: "web_fetch_20250910",
1453
+ max_uses: providerTool.args.maxUses ?? null,
1454
+ allowed_domains: providerTool.args.allowedDomains ?? null,
1455
+ blocked_domains: providerTool.args.blockedDomains ?? null,
1456
+ citations: providerTool.args.citations ?? null,
1457
+ max_content_tokens: providerTool.args.maxContentTokens ?? null
1458
+ })
1459
+ break
1460
+ }
1461
+
1462
+ default: {
1463
+ return yield* AiError.make({
1464
+ module: "AnthropicLanguageModel",
1465
+ method: "prepareTools",
1466
+ reason: new AiError.InvalidUserInputError({
1467
+ description: `Received request to call unknown provider-defined tool '${tool.name}'`
1468
+ })
1469
+ })
1470
+ }
1471
+ }
1472
+ }
1473
+ }
1474
+
1475
+ let tools = [...userTools, ...providerTools]
1476
+ let toolChoice: Mutable<typeof Generated.BetaToolChoice.Encoded> | undefined = undefined
1477
+
1478
+ if (options.toolChoice === "auto") {
1479
+ toolChoice = { type: "auto" }
1480
+ } else if (options.toolChoice === "required") {
1481
+ toolChoice = { type: "any" }
1482
+ } else if ("tool" in options.toolChoice) {
1483
+ toolChoice = { type: "tool", name: options.toolChoice.tool }
1484
+ } else {
1485
+ const allowedTools = new Set(options.toolChoice.oneOf)
1486
+ tools = tools.filter((tool) => allowedTools.has(tool.name))
1487
+ toolChoice = { type: options.toolChoice.mode === "required" ? "any" : "auto" }
1488
+ }
1489
+
1490
+ if (
1491
+ Predicate.isNotUndefined(config.disableParallelToolCalls) &&
1492
+ Predicate.isNotUndefined(toolChoice) &&
1493
+ toolChoice.type !== "none"
1494
+ ) {
1495
+ toolChoice.disable_parallel_tool_use = config.disableParallelToolCalls
1496
+ }
1497
+
1498
+ return {
1499
+ tools,
1500
+ toolChoice
1501
+ }
1502
+ }
1503
+ )
1504
+
1505
+ // =============================================================================
1506
+ // HTTP Details
1507
+ // =============================================================================
1508
+
1509
+ const buildHttpRequestDetails = (
1510
+ request: HttpClientRequest.HttpClientRequest
1511
+ ): typeof Response.HttpRequestDetails.Type => ({
1512
+ method: request.method,
1513
+ url: request.url,
1514
+ urlParams: Array.from(request.urlParams),
1515
+ hash: Option.getOrUndefined(request.hash),
1516
+ headers: Redactable.redact(request.headers) as Record<string, string>
1517
+ })
1518
+
1519
+ const buildHttpResponseDetails = (
1520
+ response: HttpClientResponse.HttpClientResponse
1521
+ ): typeof Response.HttpResponseDetails.Type => ({
1522
+ status: response.status,
1523
+ headers: Redactable.redact(response.headers) as Record<string, string>
1524
+ })
1525
+
1526
+ // =============================================================================
1527
+ // Response Conversion
1528
+ // =============================================================================
1529
+
1530
+ const makeResponse = Effect.fnUntraced(
1531
+ function*<Tools extends ReadonlyArray<Tool.Any>>({
1532
+ options,
1533
+ rawResponse,
1534
+ response,
1535
+ toolNameMapper
1536
+ }: {
1537
+ readonly options: LanguageModel.ProviderOptions
1538
+ readonly rawResponse: Generated.BetaMessage
1539
+ readonly response: HttpClientResponse.HttpClientResponse
1540
+ readonly toolNameMapper: Tool.NameMapper<Tools>
1541
+ }): Effect.fn.Return<
1542
+ Array<Response.PartEncoded>,
1543
+ AiError.AiError,
1544
+ IdGenerator.IdGenerator
1545
+ > {
1546
+ const parts: Array<Response.PartEncoded> = []
1547
+ const mcpToolCalls: Map<string, Response.ToolCallPartEncoded> = new Map()
1548
+ const serverToolCalls: Map<string, string> = new Map()
1549
+ const citableDocuments = extractCitableDocuments(options.prompt)
1550
+
1551
+ parts.push({
1552
+ type: "response-metadata",
1553
+ id: rawResponse.id,
1554
+ modelId: rawResponse.model,
1555
+ timestamp: DateTime.formatIso(yield* DateTime.now),
1556
+ request: buildHttpRequestDetails(response.request)
1557
+ })
1558
+
1559
+ for (const part of rawResponse.content) {
1560
+ switch (part.type) {
1561
+ case "text": {
1562
+ // Text parts are added for both text and json response formats.
1563
+ // For native structured output (json_schema), the JSON comes directly
1564
+ // in a text content block. For tool-based structured output, text may
1565
+ // also be present alongside the tool_use.
1566
+ parts.push({
1567
+ type: "text",
1568
+ text: part.text
1569
+ })
1570
+
1571
+ if (Predicate.isNotNullish(part.citations)) {
1572
+ for (const citation of part.citations) {
1573
+ const source = yield* processCitation(citation, citableDocuments)
1574
+ if (Predicate.isNotUndefined(source)) {
1575
+ parts.push(source)
1576
+ }
1577
+ }
1578
+ }
1579
+
1580
+ break
1581
+ }
1582
+
1583
+ case "thinking": {
1584
+ const metadata = {
1585
+ info: { type: "thinking", signature: part.signature }
1586
+ } as const
1587
+
1588
+ parts.push({
1589
+ type: "reasoning",
1590
+ text: part.thinking,
1591
+ metadata: { anthropic: metadata }
1592
+ })
1593
+ break
1594
+ }
1595
+
1596
+ case "redacted_thinking": {
1597
+ const metadata = {
1598
+ info: { type: "redacted_thinking", redactedData: part.data }
1599
+ } as const
1600
+
1601
+ parts.push({
1602
+ type: "reasoning",
1603
+ text: "",
1604
+ metadata: { anthropic: metadata }
1605
+ })
1606
+ break
1607
+ }
1608
+
1609
+ case "tool_use": {
1610
+ // When the `"json"` response format is requested, the JSON we need
1611
+ // is returned by a tool call injected into the request
1612
+ if (options.responseFormat.type === "json") {
1613
+ parts.push({
1614
+ type: "text",
1615
+ text: JSON.stringify(part.input)
1616
+ })
1617
+ } else {
1618
+ // Extract caller info if present
1619
+ const caller = (part as any).caller
1620
+ const callerInfo = Predicate.isNotNullish(caller)
1621
+ ? {
1622
+ type: caller.type,
1623
+ toolId: "tool_id" in caller ? caller.tool_id : undefined
1624
+ }
1625
+ : undefined
1626
+
1627
+ const params = yield* transformToolCallParams(options.tools, part.name, part.input)
1628
+
1629
+ parts.push({
1630
+ type: "tool-call",
1631
+ id: part.id,
1632
+ name: part.name,
1633
+ params,
1634
+ ...(Predicate.isNotUndefined(callerInfo)
1635
+ ? { metadata: { anthropic: { caller: callerInfo } } }
1636
+ : undefined)
1637
+ })
1638
+ }
1639
+
1640
+ break
1641
+ }
1642
+
1643
+ case "server_tool_use": {
1644
+ const toolName = toolNameMapper.getCustomName(part.name)
1645
+
1646
+ if (
1647
+ part.name === "bash_code_execution" ||
1648
+ part.name === "text_editor_code_execution"
1649
+ ) {
1650
+ parts.push({
1651
+ type: "tool-call",
1652
+ id: part.id,
1653
+ name: toolName,
1654
+ params: { type: part.name, ...part.input },
1655
+ providerExecuted: true
1656
+ })
1657
+ } else if (
1658
+ part.name === "code_execution" ||
1659
+ part.name === "web_fetch" ||
1660
+ part.name === "web_search"
1661
+ ) {
1662
+ const toolParams: Record<string, unknown> = { ...part.input }
1663
+
1664
+ // Inject `type: "programmatic-tool-call"` when the input parameters
1665
+ // has the format `{ code: ... }`
1666
+ if (
1667
+ part.name === "code_execution" &&
1668
+ Predicate.hasProperty(part.input, "code") &&
1669
+ !Predicate.hasProperty(part.input, "type")
1670
+ ) {
1671
+ toolParams.type = "programmatic-tool-call"
1672
+ }
1673
+
1674
+ parts.push({
1675
+ type: "tool-call",
1676
+ id: part.id,
1677
+ name: toolName,
1678
+ params: toolParams,
1679
+ providerExecuted: true
1680
+ })
1681
+ } else if (
1682
+ part.name === "tool_search_tool_bm25" ||
1683
+ part.name === "tool_search_tool_regex"
1684
+ ) {
1685
+ serverToolCalls.set(part.id, part.name)
1686
+ parts.push({
1687
+ type: "tool-call",
1688
+ id: part.id,
1689
+ name: toolName,
1690
+ params: part.input,
1691
+ providerExecuted: true
1692
+ })
1693
+ }
1694
+
1695
+ break
1696
+ }
1697
+
1698
+ case "mcp_tool_use": {
1699
+ const toolCall: Response.ToolCallPartEncoded = {
1700
+ type: "tool-call",
1701
+ id: part.id,
1702
+ name: part.name,
1703
+ params: part.input,
1704
+ providerExecuted: true,
1705
+ metadata: { anthropic: { mcp_tool: { server: part.server_name } } }
1706
+ }
1707
+
1708
+ mcpToolCalls.set(part.id, toolCall)
1709
+
1710
+ parts.push(toolCall)
1711
+
1712
+ break
1713
+ }
1714
+
1715
+ case "mcp_tool_result": {
1716
+ const toolCall = mcpToolCalls.get(part.tool_use_id)
1717
+ const mcpMetadata = toolCall?.metadata?.anthropic?.mcp_tool
1718
+
1719
+ if (Predicate.isNotUndefined(toolCall)) {
1720
+ parts.push({
1721
+ type: "tool-result",
1722
+ id: part.tool_use_id,
1723
+ name: toolCall.name,
1724
+ isFailure: part.is_error,
1725
+ result: part.content,
1726
+ metadata: {
1727
+ anthropic: {
1728
+ ...(Predicate.isNotNullish(mcpMetadata)
1729
+ ? { mcp_tool: mcpMetadata } :
1730
+ undefined)
1731
+ }
1732
+ }
1733
+ })
1734
+ }
1735
+
1736
+ break
1737
+ }
1738
+
1739
+ // Code Execution 20250522
1740
+ case "code_execution_tool_result": {
1741
+ const toolName = toolNameMapper.getCustomName("code_execution")
1742
+
1743
+ if (part.content.type === "code_execution_result") {
1744
+ parts.push({
1745
+ type: "tool-result",
1746
+ id: part.tool_use_id,
1747
+ name: toolName,
1748
+ isFailure: false,
1749
+ result: part.content
1750
+ })
1751
+ } else {
1752
+ parts.push({
1753
+ type: "tool-result",
1754
+ id: part.tool_use_id,
1755
+ name: toolName,
1756
+ isFailure: true,
1757
+ result: part.content
1758
+ })
1759
+ }
1760
+
1761
+ break
1762
+ }
1763
+
1764
+ // Code Execution 20250825
1765
+ case "bash_code_execution_tool_result":
1766
+ case "text_editor_code_execution_tool_result": {
1767
+ const toolName = toolNameMapper.getCustomName("code_execution")
1768
+
1769
+ if (
1770
+ part.content.type === "bash_code_execution_tool_result_error" ||
1771
+ part.content.type === "text_editor_code_execution_tool_result_error"
1772
+ ) {
1773
+ parts.push({
1774
+ type: "tool-result",
1775
+ id: part.tool_use_id,
1776
+ name: toolName,
1777
+ isFailure: true,
1778
+ result: part.content
1779
+ })
1780
+ } else {
1781
+ parts.push({
1782
+ type: "tool-result",
1783
+ id: part.tool_use_id,
1784
+ name: toolName,
1785
+ isFailure: false,
1786
+ result: part.content
1787
+ })
1788
+ }
1789
+
1790
+ break
1791
+ }
1792
+
1793
+ case "tool_search_tool_result": {
1794
+ let providerName = serverToolCalls.get(part.tool_use_id)
1795
+
1796
+ if (Predicate.isUndefined(providerName)) {
1797
+ const bm25Name = toolNameMapper.getCustomName("tool_search_tool_bm25")
1798
+ const regexName = toolNameMapper.getCustomName("tool_search_tool_regex")
1799
+
1800
+ if (bm25Name !== "tool_search_tool_bm25") {
1801
+ providerName = "tool_search_tool_bm25"
1802
+ } else if (regexName !== "tool_search_tool_regex") {
1803
+ providerName = "tool_search_tool_regex"
1804
+ }
1805
+ }
1806
+
1807
+ const toolName = toolNameMapper.getCustomName(providerName!)
1808
+
1809
+ if (part.content.type === "tool_search_tool_search_result") {
1810
+ parts.push({
1811
+ type: "tool-result",
1812
+ id: part.tool_use_id,
1813
+ name: toolName,
1814
+ isFailure: false,
1815
+ result: part.content.tool_references
1816
+ })
1817
+ } else {
1818
+ parts.push({
1819
+ type: "tool-result",
1820
+ id: part.tool_use_id,
1821
+ name: toolName,
1822
+ isFailure: true,
1823
+ result: part.content
1824
+ })
1825
+ }
1826
+
1827
+ break
1828
+ }
1829
+
1830
+ case "web_fetch_tool_result": {
1831
+ const toolName = toolNameMapper.getCustomName("web_fetch")
1832
+
1833
+ if (part.content.type === "web_fetch_result") {
1834
+ citableDocuments.push({
1835
+ title: part.content.content.title ?? part.content.url,
1836
+ mediaType: part.content.content.source.media_type
1837
+ })
1838
+
1839
+ parts.push({
1840
+ type: "tool-result",
1841
+ id: part.tool_use_id,
1842
+ name: toolName,
1843
+ isFailure: false,
1844
+ result: part.content
1845
+ })
1846
+ } else {
1847
+ parts.push({
1848
+ type: "tool-result",
1849
+ id: part.tool_use_id,
1850
+ name: toolName,
1851
+ isFailure: true,
1852
+ result: part.content
1853
+ })
1854
+ }
1855
+
1856
+ break
1857
+ }
1858
+
1859
+ case "web_search_tool_result": {
1860
+ const toolName = toolNameMapper.getCustomName("web_search")
1861
+
1862
+ if (Predicate.hasProperty(part.content, "type")) {
1863
+ parts.push({
1864
+ type: "tool-result",
1865
+ id: part.tool_use_id,
1866
+ name: toolName,
1867
+ isFailure: true,
1868
+ result: part.content
1869
+ })
1870
+ } else {
1871
+ const idGenerator = yield* IdGenerator.IdGenerator
1872
+
1873
+ parts.push({
1874
+ type: "tool-result",
1875
+ id: part.tool_use_id,
1876
+ name: toolName,
1877
+ isFailure: false,
1878
+ result: part.content
1879
+ })
1880
+
1881
+ const content = part.content as ReadonlyArray<Generated.BetaResponseWebSearchResultBlock>
1882
+
1883
+ for (const result of content) {
1884
+ const id = yield* idGenerator.generateId()
1885
+
1886
+ parts.push({
1887
+ type: "source",
1888
+ sourceType: "url",
1889
+ id,
1890
+ url: result.url,
1891
+ title: result.title,
1892
+ metadata: { anthropic: { source: "web", pageAge: result.page_age } }
1893
+ })
1894
+ }
1895
+ }
1896
+
1897
+ break
1898
+ }
1899
+ }
1900
+ }
1901
+
1902
+ // Anthropic always returns a non-null `stop_reason` for non-streaming responses
1903
+ const finishReason = InternalUtilities.resolveFinishReason(
1904
+ rawResponse.stop_reason!,
1905
+ options.responseFormat.type === "json"
1906
+ )
1907
+
1908
+ const inputTokens = rawResponse.usage.input_tokens
1909
+ const outputTokens = rawResponse.usage.output_tokens
1910
+ const cacheWriteTokens = rawResponse.usage.cache_creation_input_tokens ?? 0
1911
+ const cacheReadTokens = rawResponse.usage.cache_read_input_tokens ?? 0
1912
+
1913
+ parts.push({
1914
+ type: "finish",
1915
+ reason: finishReason,
1916
+ usage: {
1917
+ inputTokens: {
1918
+ uncached: inputTokens,
1919
+ total: inputTokens + cacheWriteTokens + cacheReadTokens,
1920
+ cacheRead: cacheReadTokens,
1921
+ cacheWrite: cacheWriteTokens
1922
+ },
1923
+ outputTokens: {
1924
+ total: outputTokens,
1925
+ text: undefined,
1926
+ reasoning: undefined
1927
+ }
1928
+ },
1929
+ response: buildHttpResponseDetails(response),
1930
+ metadata: {
1931
+ anthropic: {
1932
+ container: rawResponse.container ?? null,
1933
+ contextManagement: rawResponse.context_management ?? null,
1934
+ usage: rawResponse.usage,
1935
+ stopSequence: rawResponse.stop_sequence
1936
+ }
1937
+ }
1938
+ })
1939
+
1940
+ return parts
1941
+ }
1942
+ )
1943
+
1944
+ const makeStreamResponse = Effect.fnUntraced(
1945
+ function*<Tools extends ReadonlyArray<Tool.Any>>({
1946
+ stream,
1947
+ response,
1948
+ options,
1949
+ toolNameMapper
1950
+ }: {
1951
+ readonly stream: Stream.Stream<MessageStreamEvent, AiError.AiError>
1952
+ readonly response: HttpClientResponse.HttpClientResponse
1953
+ readonly options: LanguageModel.ProviderOptions
1954
+ readonly toolNameMapper: Tool.NameMapper<Tools>
1955
+ }): Effect.fn.Return<
1956
+ Stream.Stream<Response.StreamPartEncoded, AiError.AiError, IdGenerator.IdGenerator>,
1957
+ AiError.AiError
1958
+ > {
1959
+ const citableDocuments = extractCitableDocuments(options.prompt)
1960
+
1961
+ let container: typeof Generated.BetaContainer.Encoded | null = null
1962
+ let contextManagement: typeof Generated.BetaResponseContextManagement.Encoded | null = null
1963
+ let finishReason: Response.FinishReason = "unknown"
1964
+ let stopSequence: string | null = null
1965
+ let rawUsage: typeof Generated.BetaMessage.Encoded["usage"] | null = null
1966
+ const mcpToolCalls: Map<string, Response.ToolCallPartEncoded> = new Map()
1967
+ const serverToolCalls: Map<string, string> = new Map()
1968
+ const contentBlocks: Map<
1969
+ number,
1970
+ | {
1971
+ readonly type: "text"
1972
+ }
1973
+ | {
1974
+ readonly type: "reasoning"
1975
+ }
1976
+ | {
1977
+ readonly type: "tool-call"
1978
+ readonly id: string
1979
+ readonly name: string
1980
+ params: string
1981
+ firstDelta: boolean
1982
+ readonly providerName?: string | undefined
1983
+ readonly providerExecuted?: boolean | undefined
1984
+ readonly caller?: { type: string; toolId: string | null } | undefined
1985
+ }
1986
+ > = new Map()
1987
+ const usage: Mutable<{
1988
+ inputTokens: number
1989
+ outputTokens: number
1990
+ cacheReadInputTokens: number
1991
+ cacheWriteInputTokens: number
1992
+ }> = {
1993
+ inputTokens: 0,
1994
+ outputTokens: 0,
1995
+ cacheReadInputTokens: 0,
1996
+ cacheWriteInputTokens: 0
1997
+ }
1998
+
1999
+ let blockType: typeof Generated.BetaContentBlockStartEvent.Encoded["content_block"]["type"] | undefined = undefined
2000
+
2001
+ return stream.pipe(
2002
+ Stream.mapEffect(Effect.fnUntraced(function*(event) {
2003
+ const parts: Array<Response.StreamPartEncoded> = []
2004
+
2005
+ switch (event.type) {
2006
+ case "message_start": {
2007
+ rawUsage = { ...event.message.usage }
2008
+ usage.inputTokens = event.message.usage.input_tokens
2009
+ usage.cacheReadInputTokens = event.message.usage.cache_read_input_tokens ?? 0
2010
+ usage.cacheWriteInputTokens = event.message.usage.cache_creation_input_tokens ?? 0
2011
+
2012
+ if (Predicate.isNotNullish(event.message.container)) {
2013
+ container = event.message.container
2014
+ }
2015
+
2016
+ if (Predicate.isNotNull(event.message.stop_sequence)) {
2017
+ stopSequence = event.message.stop_sequence
2018
+ }
2019
+
2020
+ if (Predicate.isNotNull(event.message.stop_reason)) {
2021
+ finishReason = InternalUtilities.resolveFinishReason(event.message.stop_reason)
2022
+ }
2023
+
2024
+ parts.push({
2025
+ type: "response-metadata",
2026
+ id: event.message.id,
2027
+ modelId: event.message.model,
2028
+ timestamp: DateTime.formatIso(yield* DateTime.now),
2029
+ request: buildHttpRequestDetails(response.request)
2030
+ })
2031
+
2032
+ // Process pre-populated content blocks
2033
+ if (Predicate.isNotNullish(event.message.content) && event.message.content.length > 0) {
2034
+ for (let i = 0; i < event.message.content.length; i++) {
2035
+ const part = event.message.content[i]
2036
+
2037
+ if (part.type === "tool_use") {
2038
+ const callerInfo = Predicate.isNotUndefined(part.caller)
2039
+ ? {
2040
+ type: part.caller.type,
2041
+ toolId: "tool_id" in part.caller ? part.caller.tool_id : null
2042
+ }
2043
+ : undefined
2044
+
2045
+ parts.push({
2046
+ type: "tool-params-start",
2047
+ id: part.id,
2048
+ name: part.name
2049
+ })
2050
+
2051
+ parts.push({
2052
+ type: "tool-params-delta",
2053
+ id: part.id,
2054
+ delta: JSON.stringify(part.input ?? {})
2055
+ })
2056
+
2057
+ parts.push({
2058
+ type: "tool-params-end",
2059
+ id: part.id
2060
+ })
2061
+
2062
+ const params = yield* transformToolCallParams(options.tools, part.name, part.input)
2063
+
2064
+ parts.push({
2065
+ type: "tool-call",
2066
+ id: part.id,
2067
+ name: part.name,
2068
+ params,
2069
+ ...(Predicate.isNotUndefined(callerInfo)
2070
+ ? { metadata: { anthropic: { caller: callerInfo } } }
2071
+ : undefined)
2072
+ })
2073
+ }
2074
+ }
2075
+ }
2076
+
2077
+ break
2078
+ }
2079
+
2080
+ case "message_delta": {
2081
+ rawUsage = { ...rawUsage, ...event.usage } as any
2082
+
2083
+ if (
2084
+ Predicate.isNotNull(event.usage.input_tokens) &&
2085
+ usage.inputTokens !== event.usage.input_tokens
2086
+ ) {
2087
+ usage.inputTokens = event.usage.input_tokens
2088
+ }
2089
+ usage.outputTokens = event.usage.output_tokens
2090
+
2091
+ if (
2092
+ Predicate.isNotNull(event.usage.cache_read_input_tokens) &&
2093
+ usage.cacheReadInputTokens !== event.usage.cache_read_input_tokens
2094
+ ) {
2095
+ usage.cacheReadInputTokens = event.usage.cache_read_input_tokens
2096
+ }
2097
+ if (
2098
+ Predicate.isNotNull(event.usage.cache_creation_input_tokens) &&
2099
+ usage.cacheWriteInputTokens !== event.usage.cache_creation_input_tokens
2100
+ ) {
2101
+ usage.cacheWriteInputTokens = event.usage.cache_creation_input_tokens
2102
+ }
2103
+
2104
+ if (Predicate.isNotNullish(event.delta.container)) {
2105
+ container = event.delta.container
2106
+ }
2107
+
2108
+ if (Predicate.isNotNullish(event.context_management)) {
2109
+ contextManagement = event.context_management
2110
+ }
2111
+
2112
+ if (Predicate.isNotNull(event.delta.stop_reason)) {
2113
+ finishReason = InternalUtilities.resolveFinishReason(event.delta.stop_reason)
2114
+ }
2115
+
2116
+ if (Predicate.isNotNull(event.delta.stop_sequence)) {
2117
+ stopSequence = event.delta.stop_sequence
2118
+ }
2119
+
2120
+ break
2121
+ }
2122
+
2123
+ case "message_stop": {
2124
+ const metadata: Response.FinishPartMetadata = {
2125
+ anthropic: {
2126
+ container,
2127
+ contextManagement,
2128
+ stopSequence,
2129
+ usage: rawUsage
2130
+ }
2131
+ }
2132
+
2133
+ parts.push({
2134
+ type: "finish",
2135
+ reason: finishReason,
2136
+ usage: {
2137
+ inputTokens: {
2138
+ uncached: usage.inputTokens,
2139
+ total: usage.inputTokens + usage.cacheWriteInputTokens + usage.cacheReadInputTokens,
2140
+ cacheRead: usage.cacheReadInputTokens,
2141
+ cacheWrite: usage.cacheWriteInputTokens
2142
+ },
2143
+ outputTokens: {
2144
+ total: usage.outputTokens,
2145
+ text: undefined,
2146
+ reasoning: undefined
2147
+ }
2148
+ },
2149
+ response: buildHttpResponseDetails(response),
2150
+ metadata
2151
+ })
2152
+
2153
+ break
2154
+ }
2155
+
2156
+ case "content_block_start": {
2157
+ blockType = event.content_block.type
2158
+
2159
+ switch (event.content_block.type) {
2160
+ case "text": {
2161
+ contentBlocks.set(event.index, { type: "text" })
2162
+
2163
+ parts.push({
2164
+ type: "text-start",
2165
+ id: event.index.toString()
2166
+ })
2167
+
2168
+ break
2169
+ }
2170
+
2171
+ case "thinking": {
2172
+ contentBlocks.set(event.index, { type: "reasoning" })
2173
+
2174
+ parts.push({
2175
+ type: "reasoning-start",
2176
+ id: event.index.toString()
2177
+ })
2178
+
2179
+ break
2180
+ }
2181
+
2182
+ case "redacted_thinking": {
2183
+ contentBlocks.set(event.index, { type: "reasoning" })
2184
+
2185
+ const metadata: Response.ReasoningStartPartMetadata = {
2186
+ anthropic: {
2187
+ info: {
2188
+ type: "redacted_thinking",
2189
+ redactedData: event.content_block.data
2190
+ }
2191
+ }
2192
+ }
2193
+
2194
+ parts.push({
2195
+ type: "reasoning-start",
2196
+ id: event.index.toString(),
2197
+ metadata
2198
+ })
2199
+
2200
+ break
2201
+ }
2202
+
2203
+ case "tool_use": {
2204
+ const part = event.content_block
2205
+
2206
+ const caller = Predicate.isNotUndefined(part.caller)
2207
+ ? {
2208
+ type: part.caller.type,
2209
+ toolId: "tool_id" in part.caller ? part.caller.tool_id : null
2210
+ }
2211
+ : undefined
2212
+
2213
+ const hasParams = Object.keys(part.input).length > 0
2214
+ const initialParams = hasParams ? JSON.stringify(part.input) : ""
2215
+ contentBlocks.set(event.index, {
2216
+ type: "tool-call",
2217
+ id: part.id,
2218
+ name: part.name,
2219
+ params: initialParams,
2220
+ firstDelta: initialParams.length > 0,
2221
+ ...(Predicate.isNotUndefined(caller) ? { caller } : undefined)
2222
+ })
2223
+
2224
+ parts.push({
2225
+ type: "tool-params-start",
2226
+ id: part.id,
2227
+ name: part.name
2228
+ })
2229
+
2230
+ break
2231
+ }
2232
+
2233
+ case "server_tool_use": {
2234
+ const part = event.content_block
2235
+
2236
+ if (
2237
+ part.name === "code_execution" ||
2238
+ part.name === "bash_code_execution" ||
2239
+ part.name === "text_editor_code_execution" ||
2240
+ part.name === "web_fetch" ||
2241
+ part.name === "web_search"
2242
+ ) {
2243
+ const toolName = toolNameMapper.getCustomName(
2244
+ part.name === "bash_code_execution" || part.name === "text_editor_code_execution"
2245
+ ? "code_execution"
2246
+ : part.name
2247
+ )
2248
+
2249
+ contentBlocks.set(event.index, {
2250
+ type: "tool-call",
2251
+ id: part.id,
2252
+ name: toolName,
2253
+ params: "",
2254
+ firstDelta: true,
2255
+ providerName: part.name,
2256
+ providerExecuted: true
2257
+ })
2258
+
2259
+ parts.push({
2260
+ type: "tool-params-start",
2261
+ id: part.id,
2262
+ name: toolName,
2263
+ providerExecuted: true
2264
+ })
2265
+ } else if (
2266
+ part.name === "tool_search_tool_bm25" ||
2267
+ part.name === "tool_search_tool_regex"
2268
+ ) {
2269
+ serverToolCalls.set(part.id, part.name)
2270
+
2271
+ const toolName = toolNameMapper.getCustomName(part.name)
2272
+
2273
+ contentBlocks.set(event.index, {
2274
+ type: "tool-call",
2275
+ id: part.id,
2276
+ name: toolName,
2277
+ params: "",
2278
+ firstDelta: true,
2279
+ providerName: part.name,
2280
+ providerExecuted: true
2281
+ })
2282
+
2283
+ parts.push({
2284
+ type: "tool-params-start",
2285
+ id: part.id,
2286
+ name: toolName,
2287
+ providerExecuted: true
2288
+ })
2289
+ }
2290
+
2291
+ break
2292
+ }
2293
+
2294
+ case "web_fetch_tool_result": {
2295
+ const part = event.content_block
2296
+ const toolName = toolNameMapper.getCustomName("web_fetch")
2297
+
2298
+ if (part.content.type === "web_fetch_result") {
2299
+ citableDocuments.push({
2300
+ title: part.content.content.title ?? part.content.url,
2301
+ mediaType: part.content.content.source.media_type
2302
+ })
2303
+
2304
+ parts.push({
2305
+ type: "tool-result",
2306
+ id: part.tool_use_id,
2307
+ name: toolName,
2308
+ isFailure: false,
2309
+ result: part.content
2310
+ })
2311
+ } else {
2312
+ parts.push({
2313
+ type: "tool-result",
2314
+ id: part.tool_use_id,
2315
+ name: toolName,
2316
+ isFailure: true,
2317
+ result: part.content
2318
+ })
2319
+ }
2320
+
2321
+ break
2322
+ }
2323
+
2324
+ case "web_search_tool_result": {
2325
+ const part = event.content_block
2326
+ const toolName = toolNameMapper.getCustomName("web_search")
2327
+
2328
+ if (Predicate.hasProperty(part.content, "type")) {
2329
+ parts.push({
2330
+ type: "tool-result",
2331
+ id: part.tool_use_id,
2332
+ name: toolName,
2333
+ isFailure: true,
2334
+ result: part.content
2335
+ })
2336
+ } else {
2337
+ const idGenerator = yield* IdGenerator.IdGenerator
2338
+
2339
+ parts.push({
2340
+ type: "tool-result",
2341
+ id: part.tool_use_id,
2342
+ name: toolName,
2343
+ isFailure: false,
2344
+ result: part.content
2345
+ })
2346
+
2347
+ const content = part.content as ReadonlyArray<Generated.BetaResponseWebSearchResultBlock>
2348
+
2349
+ for (const result of content) {
2350
+ const id = yield* idGenerator.generateId()
2351
+
2352
+ parts.push({
2353
+ type: "source",
2354
+ sourceType: "url",
2355
+ id,
2356
+ url: result.url,
2357
+ title: result.title,
2358
+ metadata: { anthropic: { source: "web", pageAge: result.page_age } }
2359
+ })
2360
+ }
2361
+ }
2362
+ break
2363
+ }
2364
+
2365
+ case "code_execution_tool_result": {
2366
+ const part = event.content_block
2367
+ const toolName = toolNameMapper.getCustomName("code_execution")
2368
+
2369
+ if (part.content.type === "code_execution_result") {
2370
+ parts.push({
2371
+ type: "tool-result",
2372
+ id: part.tool_use_id,
2373
+ name: toolName,
2374
+ isFailure: false,
2375
+ result: part.content
2376
+ })
2377
+ } else {
2378
+ parts.push({
2379
+ type: "tool-result",
2380
+ id: part.tool_use_id,
2381
+ name: toolName,
2382
+ isFailure: true,
2383
+ result: part.content
2384
+ })
2385
+ }
2386
+ break
2387
+ }
2388
+
2389
+ case "bash_code_execution_tool_result":
2390
+ case "text_editor_code_execution_tool_result": {
2391
+ const part = event.content_block
2392
+ const toolName = toolNameMapper.getCustomName("code_execution")
2393
+
2394
+ if (
2395
+ part.content.type === "bash_code_execution_tool_result_error" ||
2396
+ part.content.type === "text_editor_code_execution_tool_result_error"
2397
+ ) {
2398
+ parts.push({
2399
+ type: "tool-result",
2400
+ id: part.tool_use_id,
2401
+ name: toolName,
2402
+ isFailure: true,
2403
+ result: part.content
2404
+ })
2405
+ } else {
2406
+ parts.push({
2407
+ type: "tool-result",
2408
+ id: part.tool_use_id,
2409
+ name: toolName,
2410
+ isFailure: false,
2411
+ result: part.content
2412
+ })
2413
+ }
2414
+ break
2415
+ }
2416
+
2417
+ case "tool_search_tool_result": {
2418
+ const part = event.content_block
2419
+ let providerName = serverToolCalls.get(part.tool_use_id)
2420
+
2421
+ if (Predicate.isUndefined(providerName)) {
2422
+ const bm25Name = toolNameMapper.getCustomName("tool_search_tool_bm25")
2423
+ const regexName = toolNameMapper.getCustomName("tool_search_tool_regex")
2424
+
2425
+ if (bm25Name !== "tool_search_tool_bm25") {
2426
+ providerName = "tool_search_tool_bm25"
2427
+ } else if (regexName !== "tool_search_tool_regex") {
2428
+ providerName = "tool_search_tool_regex"
2429
+ }
2430
+ }
2431
+
2432
+ const toolName = toolNameMapper.getCustomName(providerName!)
2433
+
2434
+ if (part.content.type === "tool_search_tool_search_result") {
2435
+ parts.push({
2436
+ type: "tool-result",
2437
+ id: part.tool_use_id,
2438
+ name: toolName,
2439
+ isFailure: false,
2440
+ result: part.content.tool_references
2441
+ })
2442
+ } else {
2443
+ parts.push({
2444
+ type: "tool-result",
2445
+ id: part.tool_use_id,
2446
+ name: toolName,
2447
+ isFailure: true,
2448
+ result: part.content
2449
+ })
2450
+ }
2451
+ break
2452
+ }
2453
+
2454
+ case "mcp_tool_use": {
2455
+ const part = event.content_block
2456
+
2457
+ const toolCall: Response.ToolCallPartEncoded = {
2458
+ type: "tool-call",
2459
+ id: part.id,
2460
+ name: part.name,
2461
+ params: part.input,
2462
+ providerExecuted: true,
2463
+ metadata: { anthropic: { mcp_tool: { server: part.server_name } } }
2464
+ }
2465
+
2466
+ mcpToolCalls.set(part.id, toolCall)
2467
+
2468
+ parts.push(toolCall)
2469
+
2470
+ break
2471
+ }
2472
+
2473
+ case "mcp_tool_result": {
2474
+ const part = event.content_block
2475
+ const toolCall = mcpToolCalls.get(part.tool_use_id)
2476
+ const mcpMetadata = toolCall?.metadata?.anthropic?.mcp_tool
2477
+
2478
+ if (Predicate.isNotUndefined(toolCall)) {
2479
+ parts.push({
2480
+ type: "tool-result",
2481
+ id: part.tool_use_id,
2482
+ name: toolCall.name,
2483
+ isFailure: part.is_error,
2484
+ result: part.content,
2485
+ metadata: {
2486
+ anthropic: {
2487
+ ...(Predicate.isNotNullish(mcpMetadata)
2488
+ ? { mcp_tool: mcpMetadata } :
2489
+ undefined)
2490
+ }
2491
+ }
2492
+ })
2493
+ }
2494
+
2495
+ break
2496
+ }
2497
+ }
2498
+
2499
+ break
2500
+ }
2501
+
2502
+ case "content_block_delta": {
2503
+ const part = event.delta
2504
+
2505
+ switch (part.type) {
2506
+ case "text_delta": {
2507
+ parts.push({
2508
+ type: "text-delta",
2509
+ id: event.index.toString(),
2510
+ delta: part.text
2511
+ })
2512
+
2513
+ break
2514
+ }
2515
+
2516
+ case "thinking_delta": {
2517
+ parts.push({
2518
+ type: "reasoning-delta",
2519
+ id: event.index.toString(),
2520
+ delta: part.thinking
2521
+ })
2522
+
2523
+ break
2524
+ }
2525
+
2526
+ case "signature_delta": {
2527
+ if (blockType === "thinking") {
2528
+ parts.push({
2529
+ type: "reasoning-delta",
2530
+ id: event.index.toString(),
2531
+ delta: "",
2532
+ metadata: {
2533
+ anthropic: {
2534
+ info: {
2535
+ type: "thinking",
2536
+ signature: part.signature
2537
+ }
2538
+ }
2539
+ }
2540
+ })
2541
+ }
2542
+
2543
+ break
2544
+ }
2545
+
2546
+ case "input_json_delta": {
2547
+ let delta = part.partial_json
2548
+
2549
+ // Skip empty deltas
2550
+ if (delta.length === 0) {
2551
+ break
2552
+ }
2553
+
2554
+ const contentBlock = contentBlocks.get(event.index)
2555
+
2556
+ // Skip invalid deltas
2557
+ if (Predicate.isUndefined(contentBlock)) {
2558
+ break
2559
+ }
2560
+
2561
+ // Skip non-tool-call deltas
2562
+ if (contentBlock.type !== "tool-call") {
2563
+ break
2564
+ }
2565
+
2566
+ if (
2567
+ contentBlock.firstDelta &&
2568
+ (contentBlock.providerName === "bash_code_execution" ||
2569
+ contentBlock.providerName === "text_editor_code_execution")
2570
+ ) {
2571
+ delta = `{"type":${contentBlock.providerName},${delta.substring(1)}}`
2572
+ }
2573
+
2574
+ parts.push({
2575
+ type: "tool-params-delta",
2576
+ id: contentBlock.id,
2577
+ delta
2578
+ })
2579
+
2580
+ contentBlock.params += delta
2581
+ contentBlock.firstDelta = false
2582
+
2583
+ break
2584
+ }
2585
+
2586
+ case "citations_delta": {
2587
+ const source = yield* processCitation(part.citation, citableDocuments)
2588
+
2589
+ if (Predicate.isNotUndefined(source)) {
2590
+ parts.push(source)
2591
+ }
2592
+
2593
+ break
2594
+ }
2595
+ }
2596
+
2597
+ break
2598
+ }
2599
+
2600
+ case "content_block_stop": {
2601
+ const contentBlock = contentBlocks.get(event.index)
2602
+
2603
+ if (Predicate.isNotUndefined(contentBlock)) {
2604
+ switch (contentBlock.type) {
2605
+ case "text": {
2606
+ parts.push({
2607
+ type: "text-end",
2608
+ id: event.index.toString()
2609
+ })
2610
+
2611
+ break
2612
+ }
2613
+
2614
+ case "reasoning": {
2615
+ parts.push({
2616
+ type: "reasoning-end",
2617
+ id: event.index.toString()
2618
+ })
2619
+
2620
+ break
2621
+ }
2622
+
2623
+ case "tool-call": {
2624
+ parts.push({
2625
+ type: "tool-params-end",
2626
+ id: contentBlock.id
2627
+ })
2628
+
2629
+ // For code execution, inject the `programmatic-tool-call` type
2630
+ // when the input format is `{ code }`
2631
+ let finalParams = contentBlock.params.length === 0 ? "{}" : contentBlock.params
2632
+
2633
+ if (contentBlock.providerName === "code_execution") {
2634
+ // @effect-diagnostics-next-line tryCatchInEffectGen:off
2635
+ try {
2636
+ const params = Tool.unsafeSecureJsonParse(finalParams)
2637
+ if (Predicate.hasProperty(params, "code") && !Predicate.hasProperty(params, "type")) {
2638
+ finalParams = JSON.stringify({ type: "programmatic-tool-call", ...params })
2639
+ }
2640
+ } catch {
2641
+ // Ignore errors and use original tool call parameters
2642
+ }
2643
+ }
2644
+
2645
+ const params = contentBlock.providerExecuted === true
2646
+ ? finalParams
2647
+ : yield* transformToolCallParams(
2648
+ options.tools,
2649
+ contentBlock.name,
2650
+ Tool.unsafeSecureJsonParse(finalParams)
2651
+ )
2652
+
2653
+ parts.push({
2654
+ type: "tool-call",
2655
+ id: contentBlock.id,
2656
+ name: contentBlock.name,
2657
+ params,
2658
+ ...(Predicate.isNotUndefined(contentBlock.providerExecuted)
2659
+ ? { providerExecuted: contentBlock.providerExecuted }
2660
+ : undefined),
2661
+ ...(Predicate.isNotUndefined(contentBlock.caller)
2662
+ ? { metadata: { anthropic: { caller: contentBlock.caller } } }
2663
+ : undefined)
2664
+ })
2665
+ }
2666
+ }
2667
+
2668
+ contentBlocks.delete(event.index)
2669
+ }
2670
+
2671
+ blockType = undefined
2672
+
2673
+ break
2674
+ }
2675
+
2676
+ case "error": {
2677
+ parts.push({
2678
+ type: "error",
2679
+ error: event.error,
2680
+ metadata: { anthropic: { requestId: event.request_id } }
2681
+ })
2682
+
2683
+ break
2684
+ }
2685
+ }
2686
+
2687
+ return parts
2688
+ })),
2689
+ Stream.flattenIterable
2690
+ )
2691
+ }
2692
+ )
2693
+
2694
+ // =============================================================================
2695
+ // Telemetry
2696
+ // =============================================================================
2697
+
2698
+ const annotateRequest = (
2699
+ span: Span,
2700
+ request: typeof Generated.BetaCreateMessageParams.Encoded
2701
+ ): void => {
2702
+ addGenAIAnnotations(span, {
2703
+ system: "anthropic",
2704
+ operation: { name: "chat" },
2705
+ request: {
2706
+ model: request.model,
2707
+ temperature: request.temperature,
2708
+ topK: request.top_k,
2709
+ topP: request.top_p,
2710
+ maxTokens: request.max_tokens,
2711
+ stopSequences: Arr.ensure(request.stop_sequences).filter(
2712
+ Predicate.isNotNullish
2713
+ )
2714
+ }
2715
+ })
2716
+ }
2717
+
2718
+ const annotateResponse = (span: Span, response: Generated.BetaMessage): void => {
2719
+ addGenAIAnnotations(span, {
2720
+ response: {
2721
+ id: response.id,
2722
+ model: response.model,
2723
+ finishReasons: response.stop_reason ? [response.stop_reason] : undefined
2724
+ },
2725
+ usage: {
2726
+ inputTokens: response.usage.input_tokens,
2727
+ outputTokens: response.usage.output_tokens
2728
+ }
2729
+ })
2730
+ }
2731
+
2732
+ const annotateStreamResponse = (span: Span, part: Response.StreamPartEncoded) => {
2733
+ if (part.type === "response-metadata") {
2734
+ addGenAIAnnotations(span, {
2735
+ response: {
2736
+ id: part.id,
2737
+ model: part.modelId
2738
+ }
2739
+ })
2740
+ }
2741
+ if (part.type === "finish") {
2742
+ addGenAIAnnotations(span, {
2743
+ response: {
2744
+ finishReasons: [part.reason]
2745
+ },
2746
+ usage: {
2747
+ inputTokens: part.usage.inputTokens.uncached,
2748
+ outputTokens: part.usage.outputTokens.total
2749
+ }
2750
+ })
2751
+ }
2752
+ }
2753
+
2754
+ // =============================================================================
2755
+ // Internal Utilities
2756
+ // =============================================================================
2757
+
2758
+ type ContentGroup = SystemMessageGroup | AssistantMessageGroup | UserMessageGroup
2759
+
2760
+ interface SystemMessageGroup {
2761
+ readonly type: "system"
2762
+ readonly messages: Array<Prompt.SystemMessage>
2763
+ }
2764
+
2765
+ interface AssistantMessageGroup {
2766
+ readonly type: "assistant"
2767
+ readonly messages: Array<Prompt.AssistantMessage>
2768
+ }
2769
+
2770
+ interface UserMessageGroup {
2771
+ readonly type: "user"
2772
+ readonly messages: Array<Prompt.ToolMessage | Prompt.UserMessage>
2773
+ }
2774
+
2775
+ const groupMessages = (prompt: Prompt.Prompt): Array<ContentGroup> => {
2776
+ const messages: Array<ContentGroup> = []
2777
+ let current: ContentGroup | undefined = undefined
2778
+ for (const message of prompt.content) {
2779
+ switch (message.role) {
2780
+ case "system": {
2781
+ if (current?.type !== "system") {
2782
+ current = { type: "system", messages: [] }
2783
+ messages.push(current)
2784
+ }
2785
+ current.messages.push(message)
2786
+ break
2787
+ }
2788
+ case "assistant": {
2789
+ if (current?.type !== "assistant") {
2790
+ current = { type: "assistant", messages: [] }
2791
+ messages.push(current)
2792
+ }
2793
+ current.messages.push(message)
2794
+ break
2795
+ }
2796
+ case "tool":
2797
+ case "user": {
2798
+ if (current?.type !== "user") {
2799
+ current = { type: "user", messages: [] }
2800
+ messages.push(current)
2801
+ }
2802
+ current.messages.push(message)
2803
+ break
2804
+ }
2805
+ }
2806
+ }
2807
+ return messages
2808
+ }
2809
+
2810
+ /**
2811
+ * Checks whether data is a URL (either a URL object or a URL string).
2812
+ */
2813
+ const isUrlData = (
2814
+ data: typeof Prompt.FilePart.Type["data"]
2815
+ ): data is URL => data instanceof URL || isUrlString(data)
2816
+
2817
+ const isUrlString = (data: typeof Prompt.FilePart.Type["data"]): boolean =>
2818
+ typeof data === "string" && /^https?:\/\//i.test(data)
2819
+
2820
+ const getUrlString = (data: string | URL): string => data instanceof URL ? data.toString() : data
2821
+
2822
+ const getCacheControl = (
2823
+ part:
2824
+ | Prompt.SystemMessage
2825
+ | Prompt.UserMessage
2826
+ | Prompt.AssistantMessage
2827
+ | Prompt.ToolMessage
2828
+ | Prompt.UserMessagePart
2829
+ | Prompt.AssistantMessagePart
2830
+ | Prompt.ToolMessagePart
2831
+ ): typeof Generated.CacheControlEphemeral.Encoded | null => part.options.anthropic?.cacheControl ?? null
2832
+
2833
+ const getDocumentMetadata = (part: Prompt.FilePart): {
2834
+ readonly title: string | null
2835
+ readonly context: string | null
2836
+ } | null => {
2837
+ const options = part.options.anthropic
2838
+ if (Predicate.isNotUndefined(options)) {
2839
+ return {
2840
+ title: options?.documentTitle ?? null,
2841
+ context: options?.documentContext ?? null
2842
+ }
2843
+ }
2844
+ return null
2845
+ }
2846
+
2847
+ const areCitationsEnabled = (part: Prompt.FilePart): boolean => part.options.anthropic?.citations?.enabled ?? false
2848
+
2849
+ const isCitationPart = (part: Prompt.UserMessagePart): part is Prompt.FilePart =>
2850
+ part.type === "file" && (part.mediaType === "application/pdf" || part.mediaType === "text/plain")
2851
+ ? areCitationsEnabled(part)
2852
+ : false
2853
+
2854
+ interface CitableDocument {
2855
+ readonly title: string
2856
+ readonly fileName?: string | undefined
2857
+ readonly mediaType: string
2858
+ }
2859
+
2860
+ const extractCitableDocuments = (prompt: Prompt.Prompt): Array<CitableDocument> => {
2861
+ const citableDocuments: Array<CitableDocument> = []
2862
+
2863
+ for (const message of prompt.content) {
2864
+ if (message.role === "user") {
2865
+ for (const part of message.content) {
2866
+ if (isCitationPart(part)) {
2867
+ citableDocuments.push({
2868
+ title: part.fileName ?? "Untitled Document",
2869
+ fileName: part.fileName,
2870
+ mediaType: part.mediaType
2871
+ })
2872
+ }
2873
+ }
2874
+ }
2875
+ }
2876
+
2877
+ return citableDocuments
2878
+ }
2879
+
2880
+ const processCitation = Effect.fnUntraced(
2881
+ function*(
2882
+ citation:
2883
+ | Generated.ResponseCharLocationCitation
2884
+ | Generated.ResponsePageLocationCitation
2885
+ | Generated.ResponseContentBlockLocationCitation
2886
+ | Generated.ResponseWebSearchResultLocationCitation
2887
+ | Generated.ResponseSearchResultLocationCitation,
2888
+ citableDocuments: ReadonlyArray<CitableDocument>
2889
+ ): Effect.fn.Return<
2890
+ Response.DocumentSourcePartEncoded | Response.UrlSourcePartEncoded | undefined,
2891
+ never,
2892
+ IdGenerator.IdGenerator
2893
+ > {
2894
+ const idGenerator = yield* IdGenerator.IdGenerator
2895
+
2896
+ if (citation.type === "page_location" || citation.type === "char_location") {
2897
+ const citedDocument = citableDocuments[citation.document_index]
2898
+ if (Predicate.isNotUndefined(citedDocument)) {
2899
+ const id = yield* idGenerator.generateId()
2900
+ const metadata = citation.type === "char_location"
2901
+ ? {
2902
+ source: "document",
2903
+ type: citation.type,
2904
+ citedText: citation.cited_text,
2905
+ startCharIndex: citation.start_char_index,
2906
+ endCharIndex: citation.end_char_index
2907
+ } as const
2908
+ : {
2909
+ source: "document",
2910
+ type: citation.type,
2911
+ citedText: citation.cited_text,
2912
+ startPageNumber: citation.start_page_number,
2913
+ endPageNumber: citation.end_page_number
2914
+ } as const
2915
+
2916
+ return {
2917
+ type: "source",
2918
+ sourceType: "document",
2919
+ id,
2920
+ mediaType: citedDocument.mediaType,
2921
+ title: citation.document_title ?? citedDocument.title,
2922
+ ...(Predicate.isNotUndefined(citedDocument.fileName)
2923
+ ? { fileName: citedDocument.fileName }
2924
+ : undefined),
2925
+ metadata: { anthropic: metadata }
2926
+ }
2927
+ }
2928
+ }
2929
+
2930
+ if (citation.type === "web_search_result_location") {
2931
+ const id = yield* idGenerator.generateId()
2932
+
2933
+ const metadata = {
2934
+ source: "url",
2935
+ citedText: citation.cited_text,
2936
+ encryptedIndex: citation.encrypted_index
2937
+ } as const
2938
+
2939
+ return {
2940
+ type: "source",
2941
+ sourceType: "url",
2942
+ id,
2943
+ url: citation.url,
2944
+ title: citation.title ?? "Untitled",
2945
+ metadata: { anthropic: metadata }
2946
+ }
2947
+ }
2948
+
2949
+ return undefined
2950
+ }
2951
+ )
2952
+
2953
+ interface ModelCapabilities {
2954
+ readonly maxOutputTokens: number
2955
+ readonly supportsStructuredOutput: boolean
2956
+ readonly isKnownModel: boolean
2957
+ }
2958
+
2959
+ /**
2960
+ * Returns the capabilities of a Claude model that are used for defaults and feature selection.
2961
+ *
2962
+ * @see https://docs.claude.com/en/docs/about-claude/models/overview#model-comparison-table
2963
+ * @see https://platform.claude.com/docs/en/build-with-claude/structured-outputs
2964
+ */
2965
+ const getModelCapabilities = (modelId: string): ModelCapabilities => {
2966
+ if (
2967
+ modelId.includes("claude-sonnet-4-5") ||
2968
+ modelId.includes("claude-opus-4-5") ||
2969
+ modelId.includes("claude-haiku-4-5") ||
2970
+ modelId.includes("claude-opus-4-6") ||
2971
+ modelId.includes("claude-sonnet-4-6") ||
2972
+ modelId.includes("claude-opus-4-7") ||
2973
+ modelId.includes("claude-opus-4-8")
2974
+ ) {
2975
+ return {
2976
+ maxOutputTokens: 64000,
2977
+ supportsStructuredOutput: true,
2978
+ isKnownModel: true
2979
+ }
2980
+ } else if (modelId.includes("claude-opus-4-1")) {
2981
+ return {
2982
+ maxOutputTokens: 32000,
2983
+ supportsStructuredOutput: true,
2984
+ isKnownModel: true
2985
+ }
2986
+ } else if (
2987
+ modelId.includes("claude-sonnet-4-") ||
2988
+ modelId.includes("claude-3-7-sonnet")
2989
+ ) {
2990
+ return {
2991
+ maxOutputTokens: 64000,
2992
+ supportsStructuredOutput: false,
2993
+ isKnownModel: true
2994
+ }
2995
+ } else if (modelId.includes("claude-opus-4-")) {
2996
+ return {
2997
+ maxOutputTokens: 32000,
2998
+ supportsStructuredOutput: false,
2999
+ isKnownModel: true
3000
+ }
3001
+ } else if (modelId.includes("claude-3-5-haiku")) {
3002
+ return {
3003
+ maxOutputTokens: 8192,
3004
+ supportsStructuredOutput: false,
3005
+ isKnownModel: true
3006
+ }
3007
+ } else if (modelId.includes("claude-3-haiku")) {
3008
+ return {
3009
+ maxOutputTokens: 4096,
3010
+ supportsStructuredOutput: false,
3011
+ isKnownModel: true
3012
+ }
3013
+ } else {
3014
+ return {
3015
+ maxOutputTokens: 4096,
3016
+ supportsStructuredOutput: false,
3017
+ isKnownModel: false
3018
+ }
3019
+ }
3020
+ }
3021
+
3022
+ const unsupportedSchemaError = (error: unknown, method: string): AiError.AiError =>
3023
+ AiError.make({
3024
+ module: "AnthropicLanguageModel",
3025
+ method,
3026
+ reason: new AiError.UnsupportedSchemaError({
3027
+ description: error instanceof Error ? error.message : String(error)
3028
+ })
3029
+ })
3030
+
3031
+ const tryCodecTransform = <S extends Schema.Top>(schema: S, method: string) =>
3032
+ Effect.try({
3033
+ try: () => toCodecAnthropic(schema),
3034
+ catch: (error) => unsupportedSchemaError(error, method)
3035
+ })
3036
+
3037
+ const tryJsonSchema = <S extends Schema.Top>(schema: S, method: string) =>
3038
+ Effect.try({
3039
+ try: () => Tool.getJsonSchemaFromSchema(schema, { transformer: toCodecAnthropic }),
3040
+ catch: (error) => unsupportedSchemaError(error, method)
3041
+ })
3042
+
3043
+ const tryToolJsonSchema = <T extends Tool.Any | Tool.AnyDynamic>(tool: T, method: string) =>
3044
+ Effect.try({
3045
+ try: () => Tool.getJsonSchema(tool, { transformer: toCodecAnthropic }),
3046
+ catch: (error) => unsupportedSchemaError(error, method)
3047
+ })
3048
+
3049
+ const getOutputFormat = Effect.fnUntraced(function*({ capabilities, options }: {
3050
+ readonly capabilities: ModelCapabilities
3051
+ readonly options: LanguageModel.ProviderOptions
3052
+ }): Effect.fn.Return<typeof Generated.JsonOutputFormat.Encoded | undefined, AiError.AiError> {
3053
+ if (options.responseFormat.type === "json" && capabilities.supportsStructuredOutput) {
3054
+ const jsonSchema = yield* tryJsonSchema(options.responseFormat.schema, "getOutputFormat")
3055
+ return {
3056
+ type: "json_schema",
3057
+ schema: jsonSchema as any
3058
+ }
3059
+ }
3060
+ return undefined
3061
+ })
3062
+
3063
+ const transformToolCallParams = Effect.fnUntraced(function*<Tools extends ReadonlyArray<Tool.Any>>(
3064
+ tools: Tools,
3065
+ toolName: string,
3066
+ toolParams: unknown
3067
+ ): Effect.fn.Return<unknown, AiError.AiError> {
3068
+ const tool = tools.find((tool) => tool.name === toolName)
3069
+
3070
+ if (Predicate.isUndefined(tool)) {
3071
+ return yield* AiError.make({
3072
+ module: "AnthropicLanguageModel",
3073
+ method: "makeResponse",
3074
+ reason: new AiError.ToolNotFoundError({
3075
+ toolName,
3076
+ availableTools: tools.map((tool) => tool.name)
3077
+ })
3078
+ })
3079
+ }
3080
+
3081
+ const { codec } = yield* tryCodecTransform(tool.parametersSchema, "makeResponse")
3082
+
3083
+ const transform = Schema.decodeEffect(codec)
3084
+
3085
+ return yield* (
3086
+ transform(toolParams) as Effect.Effect<unknown, Schema.SchemaError>
3087
+ ).pipe(Effect.mapError((error) =>
3088
+ AiError.make({
3089
+ module: "AnthropicLanguageModel",
3090
+ method: "makeResponse",
3091
+ reason: new AiError.ToolParameterValidationError({
3092
+ toolName,
3093
+ toolParams,
3094
+ description: error.issue.toString()
3095
+ })
3096
+ })
3097
+ ))
3098
+ })