@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,2221 @@
1
+ /**
2
+ * Defines the shared service for language model providers.
3
+ *
4
+ * The `LanguageModel` service lets application code ask for generated text,
5
+ * streamed text, or structured output without depending on a specific provider.
6
+ * Requests can include tools, and the service can resolve tool calls while the
7
+ * model is generating a response. This module contains the service contract,
8
+ * request and response types, structured-output support, and the constructor
9
+ * used by provider packages to adapt their own generate and stream functions to
10
+ * the shared interface.
11
+ *
12
+ * @since 4.0.0
13
+ */
14
+ import type * as Cause from "../../Cause.ts"
15
+ import * as Context from "../../Context.ts"
16
+ import * as Effect from "../../Effect.ts"
17
+ import * as FiberSet from "../../FiberSet.ts"
18
+ import { constFalse, identity, pipe } from "../../Function.ts"
19
+ import type * as JsonSchema from "../../JsonSchema.ts"
20
+ import * as Option from "../../Option.ts"
21
+ import * as Predicate from "../../Predicate.ts"
22
+ import * as Queue from "../../Queue.ts"
23
+ import { CurrentConcurrency } from "../../References.ts"
24
+ import * as Schema from "../../Schema.ts"
25
+ import * as SchemaAST from "../../SchemaAST.ts"
26
+ import * as Sink from "../../Sink.ts"
27
+ import * as Stream from "../../Stream.ts"
28
+ import type { Span } from "../../Tracer.ts"
29
+ import type { Concurrency, Mutable, NoExcessProperties } from "../../Types.ts"
30
+ import * as AiError from "./AiError.ts"
31
+ import { defaultIdGenerator, IdGenerator } from "./IdGenerator.ts"
32
+ import * as InternalCodecTransformer from "./internal/codec-transformer.ts"
33
+ import * as Prompt from "./Prompt.ts"
34
+ import * as Response from "./Response.ts"
35
+ import * as ResponseIdTracker from "./ResponseIdTracker.ts"
36
+ import type { SpanTransformer } from "./Telemetry.ts"
37
+ import { CurrentSpanTransformer } from "./Telemetry.ts"
38
+ import type * as Tool from "./Tool.ts"
39
+ import * as Toolkit from "./Toolkit.ts"
40
+
41
+ // =============================================================================
42
+ // Service Definition
43
+ // =============================================================================
44
+
45
+ /**
46
+ * Service tag for AI model services.
47
+ *
48
+ * **When to use**
49
+ *
50
+ * Use to access or provide text generation, streaming generation, structured
51
+ * output, and tool-calling capabilities through the Effect context.
52
+ *
53
+ * **Example** (Accessing the language model service)
54
+ *
55
+ * ```ts
56
+ * import { Effect } from "effect"
57
+ * import { LanguageModel } from "effect/unstable/ai"
58
+ *
59
+ * const program = Effect.gen(function*() {
60
+ * const model = yield* LanguageModel.LanguageModel
61
+ * const response = yield* model.generateText({
62
+ * prompt: "What is machine learning?"
63
+ * })
64
+ * return response.text
65
+ * })
66
+ * ```
67
+ *
68
+ * @category services
69
+ * @since 4.0.0
70
+ */
71
+ export class LanguageModel extends Context.Service<LanguageModel, Service>()(
72
+ "effect/unstable/ai/LanguageModel"
73
+ ) {}
74
+
75
+ /**
76
+ * The service interface for language model operations, defining the contract that all language model implementations must fulfill.
77
+ *
78
+ * @category models
79
+ * @since 4.0.0
80
+ */
81
+ export interface Service {
82
+ /**
83
+ * Generate text using the language model.
84
+ */
85
+ readonly generateText: {
86
+ // No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
87
+ <Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>>(
88
+ options: Options & GenerateTextOptionsWithoutToolkit
89
+ ): Effect.Effect<
90
+ GenerateTextResponse<{}>,
91
+ ExtractError<Options>,
92
+ ExtractServices<Options>
93
+ >
94
+ // Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
95
+ <
96
+ Tools extends Record<string, Tool.Any>,
97
+ Options extends NoExcessProperties<
98
+ GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> },
99
+ Options
100
+ >
101
+ >(
102
+ options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
103
+ ): Effect.Effect<
104
+ GenerateTextResponse<Tools>,
105
+ ExtractError<Options>,
106
+ ExtractServices<Options>
107
+ >
108
+ // Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
109
+ <
110
+ Options extends {
111
+ readonly toolkit: ToolkitOption<any>
112
+ } & NoExcessProperties<GenerateTextOptions<any>, Options>
113
+ >(
114
+ options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
115
+ ): Effect.Effect<
116
+ GenerateTextResponse<ExtractTools<Options>>,
117
+ ExtractError<Options>,
118
+ ExtractServices<Options>
119
+ >
120
+ }
121
+
122
+ /**
123
+ * Generate a structured object from a schema using the language model.
124
+ */
125
+ readonly generateObject: <
126
+ ObjectEncoded extends Record<string, any>,
127
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
128
+ Options extends NoExcessProperties<
129
+ GenerateObjectOptions<any, StructuredOutputSchema>,
130
+ Options
131
+ >,
132
+ Tools extends Record<string, Tool.Any> = {}
133
+ >(
134
+ options: Options & GenerateObjectOptions<Tools, StructuredOutputSchema>
135
+ ) => Effect.Effect<
136
+ GenerateObjectResponse<Tools, StructuredOutputSchema["Type"]>,
137
+ ExtractError<Options>,
138
+ ExtractServices<Options> | StructuredOutputSchema["DecodingServices"]
139
+ >
140
+
141
+ /**
142
+ * Generate text using the language model with streaming output.
143
+ */
144
+ readonly streamText: {
145
+ // No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
146
+ <Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>>(
147
+ options: Options & GenerateTextOptionsWithoutToolkit
148
+ ): Stream.Stream<
149
+ Response.StreamPart<{}>,
150
+ ExtractError<Options>,
151
+ ExtractServices<Options>
152
+ >
153
+ // Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
154
+ <
155
+ Tools extends Record<string, Tool.Any>,
156
+ Options extends NoExcessProperties<
157
+ GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> },
158
+ Options
159
+ >
160
+ >(
161
+ options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
162
+ ): Stream.Stream<
163
+ Response.StreamPart<Tools>,
164
+ ExtractError<Options>,
165
+ ExtractServices<Options>
166
+ >
167
+ // Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
168
+ <
169
+ Options extends {
170
+ readonly toolkit: ToolkitOption<any>
171
+ } & NoExcessProperties<GenerateTextOptions<any>, Options>
172
+ >(
173
+ options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
174
+ ): Stream.Stream<
175
+ Response.StreamPart<ExtractTools<Options>>,
176
+ ExtractError<Options>,
177
+ ExtractServices<Options>
178
+ >
179
+ }
180
+ }
181
+
182
+ /**
183
+ * A function that transforms a `Schema.Codec` into a provider-compatible form for structured output generation.
184
+ *
185
+ * **Details**
186
+ *
187
+ * Different language model providers have varying constraints on the JSON
188
+ * schemas they accept. A `CodecTransformer` rewrites a codec's encoded side to
189
+ * satisfy those constraints while preserving the decoded type.
190
+ *
191
+ * @category models
192
+ * @since 4.0.0
193
+ */
194
+ export type CodecTransformer = <T, E, RD, RE>(schema: Schema.Codec<T, E, RD, RE>) => {
195
+ readonly codec: Schema.Codec<T, unknown, RD, RE>
196
+ readonly jsonSchema: JsonSchema.JsonSchema
197
+ }
198
+
199
+ /**
200
+ * The default codec transformer that passes schemas through without
201
+ * provider-specific rewrites.
202
+ *
203
+ * **When to use**
204
+ *
205
+ * Use as the codec transformer for provider implementations when the provider
206
+ * accepts the JSON Schema generated from an `Effect` Schema codec without
207
+ * provider-specific rewrites.
208
+ *
209
+ * **Details**
210
+ *
211
+ * The transformer returns the original codec, resolves a top-level `$ref`, and
212
+ * copies schema definitions into `$defs`.
213
+ *
214
+ * @see {@link CodecTransformer} for the structured-output transformer contract
215
+ * @see {@link make} for where this transformer is used as the default
216
+ *
217
+ * @category services
218
+ * @since 4.0.0
219
+ */
220
+ export const defaultCodecTransformer: CodecTransformer = InternalCodecTransformer.defaultCodecTransformer
221
+
222
+ /**
223
+ * Configuration options for text generation.
224
+ *
225
+ * @category options
226
+ * @since 4.0.0
227
+ */
228
+ export interface GenerateTextOptions<Tools extends Record<string, Tool.Any>> {
229
+ /**
230
+ * The prompt input to use to generate text.
231
+ */
232
+ readonly prompt: Prompt.RawInput
233
+
234
+ /**
235
+ * A toolkit containing both the tools and the tool call handler to use to
236
+ * augment text generation.
237
+ */
238
+ readonly toolkit?: ToolkitInput<Tools> | undefined
239
+
240
+ /**
241
+ * The tool choice mode for the language model.
242
+ * - `auto` (default): The model can decide whether or not to call tools, as
243
+ * well as which tools to call.
244
+ * - `required`: The model **must** call a tool but can decide which tool will
245
+ * be called.
246
+ * - `none`: The model **must not** call a tool.
247
+ * - `{ tool: <tool_name> }`: The model must call the specified tool.
248
+ * - `{ mode?: "auto" (default) | "required", "oneOf": [<tool-names>] }`: The
249
+ * model is restricted to the subset of tools specified by `oneOf`. When
250
+ * `mode` is `"auto"` or omitted, the model can decide whether or not a tool
251
+ * from the allowed subset of tools can be called. When `mode` is
252
+ * `"required"`, the model **must** call one tool from the allowed subset of
253
+ * tools.
254
+ */
255
+ readonly toolChoice?:
256
+ | ToolChoice<{ [Name in keyof Tools]: Tools[Name]["name"] }[keyof Tools]>
257
+ | undefined
258
+
259
+ /**
260
+ * The concurrency level for resolving tool calls.
261
+ */
262
+ readonly concurrency?: Concurrency | undefined
263
+
264
+ /**
265
+ * When set to `true`, tool calls requested by the large language model are not auto-resolved by the framework.
266
+ *
267
+ * **When to use**
268
+ *
269
+ * Use when you want to include tool call definitions from an `AiToolkit`
270
+ * in requests to the large language model, while controlling tool call
271
+ * resolver execution yourself.
272
+ */
273
+ readonly disableToolCallResolution?: boolean | undefined
274
+ }
275
+
276
+ type GenerateTextOptionsWithoutToolkit = Omit<GenerateTextOptions<{}>, "toolkit"> & {
277
+ readonly toolkit?: undefined
278
+ }
279
+
280
+ /**
281
+ * Configuration options for structured object generation.
282
+ *
283
+ * @category options
284
+ * @since 4.0.0
285
+ */
286
+ export interface GenerateObjectOptions<
287
+ Tools extends Record<string, Tool.Any>,
288
+ StructuredOutputSchema extends Schema.Top
289
+ > extends GenerateTextOptions<Tools> {
290
+ /**
291
+ * The name of the structured output that should be generated. Used by some
292
+ * large language model providers to provide additional guidance to the model.
293
+ */
294
+ readonly objectName?: string | undefined
295
+
296
+ /**
297
+ * The schema to be used to specify the structure of the object to generate.
298
+ */
299
+ readonly schema: StructuredOutputSchema
300
+ }
301
+
302
+ /**
303
+ * The tool choice mode for the language model.
304
+ * - `auto` (default): The model can decide whether or not to call tools, as
305
+ * well as which tools to call.
306
+ * - `required`: The model **must** call a tool but can decide which tool will
307
+ * be called.
308
+ * - `none`: The model **must not** call a tool.
309
+ * - `{ tool: <tool_name> }`: The model must call the specified tool.
310
+ * - `{ mode?: "auto" (default) | "required", "oneOf": [<tool-names>] }`: The
311
+ * model is restricted to the subset of tools specified by `oneOf`. When
312
+ * `mode` is `"auto"` or omitted, the model can decide whether or not a tool
313
+ * from the allowed subset of tools can be called. When `mode` is
314
+ * `"required"`, the model **must** call one tool from the allowed subset of
315
+ * tools.
316
+ *
317
+ * @category models
318
+ * @since 4.0.0
319
+ */
320
+ export type ToolChoice<ToolName extends string> =
321
+ | "auto"
322
+ | "none"
323
+ | "required"
324
+ | {
325
+ readonly tool: ToolName
326
+ }
327
+ | {
328
+ readonly mode?: "auto" | "required"
329
+ readonly oneOf: ReadonlyArray<ToolName>
330
+ }
331
+
332
+ /**
333
+ * Response class for text generation operations, with accessors for extracting text, tool calls, usage information, and other response parts from generated content.
334
+ *
335
+ * **Example** (Inspecting a text response)
336
+ *
337
+ * ```ts
338
+ * import { Effect } from "effect"
339
+ * import { LanguageModel } from "effect/unstable/ai"
340
+ *
341
+ * const program = Effect.gen(function*() {
342
+ * const response = yield* LanguageModel.generateText({
343
+ * prompt: "Explain photosynthesis"
344
+ * })
345
+ *
346
+ * console.log(response.text) // Generated text content
347
+ * console.log(response.finishReason) // "stop", "length", etc.
348
+ * console.log(response.usage) // Usage information
349
+ *
350
+ * return response
351
+ * })
352
+ * ```
353
+ *
354
+ * @category models
355
+ * @since 4.0.0
356
+ */
357
+ export class GenerateTextResponse<Tools extends Record<string, Tool.Any>> {
358
+ readonly content: Array<Response.Part<Tools>>
359
+
360
+ constructor(content: Array<Response.Part<Tools>>) {
361
+ this.content = content
362
+ }
363
+
364
+ /**
365
+ * Extracts and concatenates all text parts from the response.
366
+ */
367
+ get text(): string {
368
+ const text: Array<string> = []
369
+ for (const part of this.content) {
370
+ if (part.type === "text") {
371
+ text.push(part.text)
372
+ }
373
+ }
374
+ return text.join("")
375
+ }
376
+
377
+ /**
378
+ * Returns all reasoning parts from the response.
379
+ */
380
+ get reasoning(): Array<Response.ReasoningPart> {
381
+ return this.content.filter((part) => part.type === "reasoning")
382
+ }
383
+
384
+ /**
385
+ * Extracts and concatenates all reasoning text, or undefined if none exists.
386
+ */
387
+ get reasoningText(): string | undefined {
388
+ const text: Array<string> = []
389
+ for (const part of this.content) {
390
+ if (part.type === "reasoning") {
391
+ text.push(part.text)
392
+ }
393
+ }
394
+ return text.length === 0 ? undefined : text.join("")
395
+ }
396
+
397
+ /**
398
+ * Returns all tool call parts from the response.
399
+ */
400
+ get toolCalls(): Array<Response.ToolCallParts<Tools>> {
401
+ return this.content.filter((part) => part.type === "tool-call")
402
+ }
403
+
404
+ /**
405
+ * Returns all tool result parts from the response.
406
+ */
407
+ get toolResults(): Array<Response.ToolResultParts<Tools>> {
408
+ return this.content.filter((part) => part.type === "tool-result")
409
+ }
410
+
411
+ /**
412
+ * The reason why text generation finished.
413
+ */
414
+ get finishReason(): Response.FinishReason {
415
+ const finishPart = this.content.find((part) => part.type === "finish")
416
+ return Predicate.isUndefined(finishPart) ? "unknown" : finishPart.reason
417
+ }
418
+
419
+ /**
420
+ * Token usage statistics for the generation request.
421
+ */
422
+ get usage(): Response.Usage {
423
+ const finishPart = this.content.find((part) => part.type === "finish")
424
+ if (Predicate.isUndefined(finishPart)) {
425
+ return new Response.Usage({
426
+ inputTokens: {
427
+ uncached: undefined,
428
+ total: undefined,
429
+ cacheRead: undefined,
430
+ cacheWrite: undefined
431
+ },
432
+ outputTokens: {
433
+ total: undefined,
434
+ text: undefined,
435
+ reasoning: undefined
436
+ }
437
+ })
438
+ }
439
+ return finishPart.usage
440
+ }
441
+ }
442
+
443
+ /**
444
+ * Response class for structured object generation operations.
445
+ *
446
+ * **Example** (Inspecting an object response)
447
+ *
448
+ * ```ts
449
+ * import { Effect, Schema } from "effect"
450
+ * import { LanguageModel } from "effect/unstable/ai"
451
+ *
452
+ * const UserSchema = Schema.Struct({
453
+ * name: Schema.String,
454
+ * email: Schema.String
455
+ * })
456
+ *
457
+ * const program = Effect.gen(function*() {
458
+ * const response = yield* LanguageModel.generateObject({
459
+ * prompt: "Create user: John Doe, john@example.com",
460
+ * schema: UserSchema
461
+ * })
462
+ *
463
+ * console.log(response.value) // { name: "John Doe", email: "john@example.com" }
464
+ * console.log(response.text) // Raw generated text
465
+ *
466
+ * return response.value
467
+ * })
468
+ * ```
469
+ *
470
+ * @category models
471
+ * @since 4.0.0
472
+ */
473
+ export class GenerateObjectResponse<
474
+ Tools extends Record<string, Tool.Any>,
475
+ A
476
+ > extends GenerateTextResponse<Tools> {
477
+ /**
478
+ * The parsed structured object that conforms to the provided schema.
479
+ */
480
+ readonly value: A
481
+
482
+ constructor(value: A, content: Array<Response.Part<Tools>>) {
483
+ super(content)
484
+ this.value = value
485
+ }
486
+ }
487
+
488
+ // =============================================================================
489
+ // Utility Types
490
+ // =============================================================================
491
+
492
+ /**
493
+ * The supported toolkit option shapes for language model operations.
494
+ *
495
+ * @category utility types
496
+ * @since 4.0.0
497
+ */
498
+ export type ToolkitOption<
499
+ Tools extends Record<string, Tool.Any>,
500
+ E = never,
501
+ R = any
502
+ > = Tools extends any ? (
503
+ | Toolkit.WithHandler<Tools>
504
+ | Effect.Effect<
505
+ Toolkit.WithHandler<Tools>,
506
+ E,
507
+ R
508
+ >
509
+ )
510
+ : never
511
+
512
+ /**
513
+ * The supported toolkit input shapes for language model operation options.
514
+ *
515
+ * **Details**
516
+ *
517
+ * Unlike `ToolkitOption`, this type does not distribute over unions. It is
518
+ * intended for call-site assignability, while `ToolkitOption` remains the
519
+ * distributive helper used for extraction and inference.
520
+ *
521
+ * @category utility types
522
+ * @since 4.0.0
523
+ */
524
+ export type ToolkitInput<
525
+ Tools extends Record<string, Tool.Any>,
526
+ E = never,
527
+ R = any
528
+ > =
529
+ | ToolkitOption<Tools, E, R>
530
+ | Toolkit.WithHandler<Tools>
531
+ | Effect.Effect<
532
+ Toolkit.WithHandler<Tools>,
533
+ E,
534
+ R
535
+ >
536
+
537
+ type ExtractToolsFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ? Tools
538
+ : ToolkitValue extends Effect.Effect<
539
+ Toolkit.WithHandler<infer _Tools>,
540
+ infer _E,
541
+ infer _R
542
+ > ? _Tools
543
+ : never
544
+
545
+ /**
546
+ * Utility type that extracts the toolset from LanguageModel options.
547
+ *
548
+ * @category utility types
549
+ * @since 4.0.0
550
+ */
551
+ export type ExtractTools<Options> = Options extends {
552
+ readonly toolkit: infer ToolkitValue
553
+ } ? ExtractToolsFromToolkitOption<Exclude<ToolkitValue, undefined>>
554
+ : {}
555
+
556
+ type ExtractErrorFromToolkitOption<ToolkitValue, DisableToolCallResolution extends boolean> = ToolkitValue extends
557
+ Toolkit.WithHandler<infer Tools> ?
558
+ | AiError.AiError
559
+ | (DisableToolCallResolution extends true ? never : Tool.HandlerError<Tools[keyof Tools]>)
560
+ : ToolkitValue extends Effect.Effect<
561
+ Toolkit.WithHandler<infer _Tools>,
562
+ infer E,
563
+ infer _R
564
+ > ? AiError.AiError | E | (DisableToolCallResolution extends true ? never : Tool.HandlerError<_Tools[keyof _Tools]>)
565
+ : AiError.AiError
566
+
567
+ type ExtractServicesFromToolkitOption<ToolkitValue> = ToolkitValue extends Toolkit.WithHandler<infer Tools> ?
568
+ | Tool.HandlerServices<Tools[keyof Tools]>
569
+ | Tool.ResultDecodingServices<Tools[keyof Tools]>
570
+ : ToolkitValue extends Effect.Effect<
571
+ Toolkit.WithHandler<infer Tools>,
572
+ infer _E,
573
+ infer R
574
+ > ?
575
+ | Tool.HandlerServices<Tools[keyof Tools]>
576
+ | Tool.ResultDecodingServices<Tools[keyof Tools]>
577
+ | R
578
+ : never
579
+
580
+ type ExtractToolkitResolutionError<ToolkitValue> = ToolkitValue extends Effect.Effect<
581
+ Toolkit.WithHandler<infer _Tools>,
582
+ infer E,
583
+ infer _R
584
+ > ? E
585
+ : never
586
+
587
+ type ExtractToolkitResolutionServices<ToolkitValue> = ToolkitValue extends Effect.Effect<
588
+ Toolkit.WithHandler<infer _Tools>,
589
+ infer _E,
590
+ infer R
591
+ > ? R
592
+ : never
593
+
594
+ /**
595
+ * Utility type that extracts the error type from LanguageModel options.
596
+ *
597
+ * **Details**
598
+ *
599
+ * Automatically infers the possible error types based on toolkit configuration
600
+ * and tool call resolution settings.
601
+ *
602
+ * @category utility types
603
+ * @since 4.0.0
604
+ */
605
+ export type ExtractError<Options> = Options extends {
606
+ readonly disableToolCallResolution: true
607
+ readonly toolkit: infer ToolkitValue
608
+ } ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, true>
609
+ : Options extends {
610
+ readonly toolkit: infer ToolkitValue
611
+ } ? ExtractErrorFromToolkitOption<Exclude<ToolkitValue, undefined>, false>
612
+ : Options extends {
613
+ readonly disableToolCallResolution: true
614
+ } ? AiError.AiError
615
+ : AiError.AiError
616
+
617
+ /**
618
+ * Utility type that extracts the context requirements from LanguageModel options.
619
+ *
620
+ * **Details**
621
+ *
622
+ * Automatically infers the required services based on the toolkit configuration.
623
+ *
624
+ * @category utility types
625
+ * @since 4.0.0
626
+ */
627
+ export type ExtractServices<Options> = Options extends {
628
+ readonly disableToolCallResolution: true
629
+ } ? never
630
+ : Options extends {
631
+ readonly toolkit: infer Toolkit
632
+ } ? ExtractServicesFromToolkitOption<Exclude<Toolkit, undefined>>
633
+ : never
634
+
635
+ // =============================================================================
636
+ // Service Constructor
637
+ // =============================================================================
638
+
639
+ /**
640
+ * Configuration options passed along to language model provider implementations.
641
+ *
642
+ * **Details**
643
+ *
644
+ * This interface defines the normalized options that are passed to the
645
+ * underlying provider implementation, regardless of the specific provider being
646
+ * used.
647
+ *
648
+ * @category options
649
+ * @since 4.0.0
650
+ */
651
+ export interface ProviderOptions {
652
+ /**
653
+ * The prompt messages to use to generate text.
654
+ */
655
+ readonly prompt: Prompt.Prompt
656
+
657
+ /**
658
+ * The tools that the large language model will have available to provide
659
+ * additional information which can be incorporated into its text generation.
660
+ */
661
+ readonly tools: ReadonlyArray<Tool.Any>
662
+
663
+ /**
664
+ * The format the response should be provided in.
665
+ *
666
+ * **Details**
667
+ *
668
+ * If `"text"` is specified, the large language model response is returned as
669
+ * text. If `"json"` is specified, the large language model response is
670
+ * provided as a JSON object that conforms to the shape of the specified schema.
671
+ * The default is `{ type: "text" }`.
672
+ */
673
+ readonly responseFormat:
674
+ | {
675
+ readonly type: "text"
676
+ }
677
+ | {
678
+ readonly type: "json"
679
+ readonly objectName: string
680
+ readonly schema: Schema.Top
681
+ }
682
+
683
+ /**
684
+ * The tool choice mode for the language model.
685
+ * - `auto` (default): The model can decide whether or not to call tools, as
686
+ * well as which tools to call.
687
+ * - `required`: The model **must** call a tool but can decide which tool will
688
+ * be called.
689
+ * - `none`: The model **must not** call a tool.
690
+ * - `{ tool: <tool_name> }`: The model must call the specified tool.
691
+ * - `{ mode?: "auto" (default) | "required", "oneOf": [<tool-names>] }`: The
692
+ * model is restricted to the subset of tools specified by `oneOf`. When
693
+ * `mode` is `"auto"` or omitted, the model can decide whether or not a tool
694
+ * from the allowed subset of tools can be called. When `mode` is
695
+ * `"required"`, the model **must** call one tool from the allowed subset of
696
+ * tools.
697
+ */
698
+ readonly toolChoice: ToolChoice<any>
699
+
700
+ /**
701
+ * The span to use to trace interactions with the large language model.
702
+ */
703
+ readonly span: Span
704
+
705
+ /**
706
+ * The previous response identifier for incremental provider calls.
707
+ */
708
+ readonly previousResponseId: string | undefined
709
+
710
+ /**
711
+ * The prompt reduced to messages not yet seen by the provider.
712
+ */
713
+ readonly incrementalPrompt: Prompt.Prompt | undefined
714
+ }
715
+
716
+ /**
717
+ * Creates a LanguageModel service from provider-specific text generation and
718
+ * streaming implementations.
719
+ *
720
+ * **When to use**
721
+ *
722
+ * Use when you are implementing a provider adapter and need to expose the
723
+ * standard language-model service while keeping provider-specific request hooks
724
+ * behind it.
725
+ *
726
+ * **Details**
727
+ *
728
+ * The returned service implements `generateText`, `generateObject`, and
729
+ * `streamText`. It prepares `ProviderOptions` for each request, including the
730
+ * normalized prompt, tools, tool choice, response format, tracing span, and
731
+ * incremental response fields, before calling the supplied provider hook.
732
+ * Structured object generation uses the `generateText` hook and the configured
733
+ * `codecTransformer`, or `defaultCodecTransformer` when none is supplied.
734
+ *
735
+ * **Gotchas**
736
+ *
737
+ * Provider hooks must return encoded response parts that match the toolkit and
738
+ * response format prepared in `ProviderOptions`; invalid parts fail decoding as
739
+ * `AiError.InvalidOutputError`.
740
+ *
741
+ * @see {@link Service} for the returned service contract
742
+ * @see {@link ProviderOptions} for the normalized options passed to provider hooks
743
+ * @see {@link defaultCodecTransformer} for the default structured-output schema transformer
744
+ *
745
+ * @category constructors
746
+ * @since 4.0.0
747
+ */
748
+ export const make: (params: {
749
+ /**
750
+ * A method that requests text generation from the large language model provider and returns the final result when generation finishes.
751
+ */
752
+ readonly generateText: (
753
+ options: ProviderOptions
754
+ ) => Effect.Effect<Array<Response.PartEncoded>, AiError.AiError, IdGenerator>
755
+
756
+ /**
757
+ * A method that requests text generation from the large language model provider and streams intermediate results.
758
+ */
759
+ readonly streamText: (
760
+ options: ProviderOptions
761
+ ) => Stream.Stream<Response.StreamPartEncoded, AiError.AiError, IdGenerator>
762
+
763
+ /**
764
+ * A function that transforms a `Schema.Codec` into a provider-compatible form
765
+ * for structured output generation.
766
+ */
767
+ readonly codecTransformer?: CodecTransformer | undefined
768
+ }) => Effect.Effect<Service> = Effect.fnUntraced(function*(params) {
769
+ const codecTransformer = params.codecTransformer ?? defaultCodecTransformer
770
+
771
+ const parentSpanTransformer = yield* Effect.serviceOption(
772
+ CurrentSpanTransformer
773
+ )
774
+ const getSpanTransformer = Effect.serviceOption(
775
+ CurrentSpanTransformer
776
+ ).pipe(Effect.map(Option.orElse(() => parentSpanTransformer)))
777
+
778
+ const idGenerator = yield* Effect.serviceOption(IdGenerator).pipe(
779
+ Effect.map(Option.getOrElse(() => defaultIdGenerator))
780
+ )
781
+
782
+ const generateText = <
783
+ Options extends NoExcessProperties<GenerateTextOptions<any>, Options>,
784
+ Tools extends Record<string, Tool.Any> = {}
785
+ >(
786
+ options: Options & GenerateTextOptions<Tools>
787
+ ): Effect.Effect<
788
+ GenerateTextResponse<Tools>,
789
+ ExtractError<Options>,
790
+ ExtractServices<Options>
791
+ > =>
792
+ Effect.useSpan(
793
+ "LanguageModel.generateText",
794
+ {
795
+ attributes: {
796
+ concurrency: options.concurrency,
797
+ toolChoice: options.toolChoice
798
+ }
799
+ },
800
+ Effect.fnUntraced(
801
+ function*(span) {
802
+ const spanTransformer = yield* getSpanTransformer
803
+
804
+ const providerOptions: Mutable<ProviderOptions> = {
805
+ prompt: Prompt.make(options.prompt),
806
+ tools: [],
807
+ toolChoice: "none",
808
+ responseFormat: { type: "text" },
809
+ span,
810
+ previousResponseId: undefined,
811
+ incrementalPrompt: undefined
812
+ }
813
+ const content = yield* generateContent(options, providerOptions)
814
+
815
+ applySpanTransformer(
816
+ spanTransformer,
817
+ content as any,
818
+ providerOptions
819
+ )
820
+
821
+ return new GenerateTextResponse(content)
822
+ },
823
+ Effect.catchTag("SchemaError", (error) =>
824
+ Effect.fail(
825
+ AiError.make({
826
+ module: "LanguageModel",
827
+ method: "generateText",
828
+ reason: AiError.InvalidOutputError.fromSchemaError(error)
829
+ })
830
+ )),
831
+ (effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
832
+ Effect.provideService(IdGenerator, idGenerator)
833
+ )
834
+ ) as any
835
+
836
+ const generateObject = <
837
+ ObjectEncoded extends Record<string, any>,
838
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
839
+ Options extends NoExcessProperties<
840
+ GenerateObjectOptions<any, StructuredOutputSchema>,
841
+ Options
842
+ >,
843
+ Tools extends Record<string, Tool.Any> = {}
844
+ >(
845
+ options: Options & GenerateObjectOptions<Tools, StructuredOutputSchema>
846
+ ): Effect.Effect<
847
+ GenerateObjectResponse<Tools, StructuredOutputSchema["Type"]>,
848
+ ExtractError<Options>,
849
+ ExtractServices<Options> | StructuredOutputSchema["DecodingServices"]
850
+ > => {
851
+ const objectName = getObjectName(options.objectName, options.schema)
852
+ return Effect.useSpan(
853
+ "LanguageModel.generateObject",
854
+ {
855
+ attributes: {
856
+ objectName,
857
+ concurrency: options.concurrency,
858
+ toolChoice: options.toolChoice
859
+ }
860
+ },
861
+ Effect.fnUntraced(
862
+ function*(span) {
863
+ const spanTransformer = yield* getSpanTransformer
864
+
865
+ const providerOptions: Mutable<ProviderOptions> = {
866
+ prompt: Prompt.make(options.prompt),
867
+ tools: [],
868
+ toolChoice: "none",
869
+ responseFormat: {
870
+ type: "json",
871
+ objectName,
872
+ schema: options.schema
873
+ },
874
+ span,
875
+ previousResponseId: undefined,
876
+ incrementalPrompt: undefined
877
+ }
878
+
879
+ const content = yield* generateContent(options, providerOptions)
880
+
881
+ applySpanTransformer(
882
+ spanTransformer,
883
+ content as any,
884
+ providerOptions
885
+ )
886
+
887
+ const { codec } = yield* Effect.try({
888
+ try: () => codecTransformer(options.schema),
889
+ catch: (error) =>
890
+ AiError.make({
891
+ module: "LanguageModel",
892
+ method: "generateObject",
893
+ reason: new AiError.UnsupportedSchemaError({
894
+ description: error instanceof Error ? error.message : String(error)
895
+ })
896
+ })
897
+ })
898
+
899
+ const value = yield* resolveStructuredOutput(content as any, codec)
900
+
901
+ return new GenerateObjectResponse(value, content)
902
+ },
903
+ Effect.catchTag("SchemaError", (error) =>
904
+ Effect.fail(
905
+ AiError.make({
906
+ module: "LanguageModel",
907
+ method: "generateObject",
908
+ reason: AiError.InvalidOutputError.fromSchemaError(error)
909
+ })
910
+ )),
911
+ (effect, span) => Effect.withParentSpan(effect, span, { captureStackTrace: false }),
912
+ Effect.provideService(IdGenerator, idGenerator)
913
+ )
914
+ ) as any
915
+ }
916
+
917
+ const streamText: <
918
+ Options extends NoExcessProperties<GenerateTextOptions<any>, Options>,
919
+ Tools extends Record<string, Tool.Any> = {}
920
+ >(
921
+ options: Options & GenerateTextOptions<Tools>
922
+ ) => Stream.Stream<
923
+ Response.StreamPart<Tools>,
924
+ ExtractError<Options>,
925
+ ExtractServices<Options>
926
+ > = Effect.fnUntraced(
927
+ function*<
928
+ Tools extends Record<string, Tool.Any>,
929
+ Options extends NoExcessProperties<GenerateTextOptions<Tools>, Options>
930
+ >(options: Options & GenerateTextOptions<Tools>) {
931
+ const span = yield* Effect.makeSpanScoped("LanguageModel.streamText", {
932
+ attributes: {
933
+ concurrency: options.concurrency,
934
+ toolChoice: options.toolChoice
935
+ }
936
+ })
937
+
938
+ const providerOptions: Mutable<ProviderOptions> = {
939
+ prompt: Prompt.make(options.prompt),
940
+ tools: [],
941
+ toolChoice: "none",
942
+ responseFormat: { type: "text" },
943
+ span,
944
+ previousResponseId: undefined,
945
+ incrementalPrompt: undefined
946
+ }
947
+
948
+ // Resolve the content stream for the request
949
+ const stream = yield* streamContent(options, providerOptions)
950
+
951
+ // Return the stream immediately if there is no span transformer
952
+ const spanTransformer = yield* getSpanTransformer
953
+ if (Option.isNone(spanTransformer)) {
954
+ return stream
955
+ }
956
+
957
+ // Otherwise aggregate generated content and apply the span transformer
958
+ // when the stream is finished
959
+ const content: Array<Response.StreamPart<Tools>> = []
960
+ return stream.pipe(
961
+ Stream.mapArray((parts) => {
962
+ content.push(...parts)
963
+ return parts
964
+ }),
965
+ Stream.ensuring(
966
+ Effect.sync(() => {
967
+ spanTransformer.value({
968
+ ...providerOptions,
969
+ response: content as any
970
+ })
971
+ })
972
+ )
973
+ )
974
+ },
975
+ Stream.unwrap,
976
+ Stream.mapError((error) =>
977
+ Schema.isSchemaError(error)
978
+ ? AiError.make({
979
+ module: "LanguageModel",
980
+ method: "streamText",
981
+ reason: AiError.InvalidOutputError.fromSchemaError(error)
982
+ })
983
+ : error
984
+ ),
985
+ Stream.provideService(IdGenerator, idGenerator)
986
+ ) as any
987
+
988
+ const generateContent: <
989
+ Options extends NoExcessProperties<GenerateTextOptions<any>, Options>,
990
+ Tools extends Record<string, Tool.Any> = {}
991
+ >(
992
+ options: Options & GenerateTextOptions<Tools>,
993
+ providerOptions: Mutable<ProviderOptions>
994
+ ) => Effect.Effect<
995
+ Array<Response.Part<Tools>>,
996
+ AiError.AiError | Schema.SchemaError,
997
+ IdGenerator
998
+ > = Effect.fnUntraced(function*<
999
+ Tools extends Record<string, Tool.Any>,
1000
+ Options extends NoExcessProperties<GenerateTextOptions<Tools>, Options>
1001
+ >(
1002
+ options: Options & GenerateTextOptions<Tools>,
1003
+ providerOptions: Mutable<ProviderOptions>
1004
+ ) {
1005
+ const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
1006
+ const toolChoice = options.toolChoice ?? "auto"
1007
+
1008
+ const generateWithNonIncrementalFallback = () => {
1009
+ const requestOptions: ProviderOptions = {
1010
+ ...providerOptions
1011
+ }
1012
+ const fallbackPrompt = requestOptions.prompt
1013
+ const fallbackOptions: ProviderOptions = {
1014
+ ...requestOptions,
1015
+ prompt: fallbackPrompt,
1016
+ incrementalPrompt: undefined,
1017
+ previousResponseId: undefined
1018
+ }
1019
+ return requestOptions.incrementalPrompt
1020
+ ? params.generateText(requestOptions).pipe(
1021
+ Effect.catchReason("AiError", "InvalidRequestError", (_) => params.generateText(fallbackOptions))
1022
+ )
1023
+ : params.generateText(requestOptions)
1024
+ }
1025
+
1026
+ // Check for pending approvals that need resolution
1027
+ const { approved, denied } = collectToolApprovals(
1028
+ providerOptions.prompt.content,
1029
+ { excludeResolved: true }
1030
+ )
1031
+ const hasPendingApprovals = approved.length > 0 || denied.length > 0
1032
+
1033
+ // If there is no toolkit, the generated content can be returned immediately
1034
+ if (Predicate.isUndefined(options.toolkit)) {
1035
+ // But first check if we have pending approvals that require a toolkit
1036
+ if (hasPendingApprovals) {
1037
+ return yield* AiError.make({
1038
+ module: "LanguageModel",
1039
+ method: "generateText",
1040
+ reason: new AiError.ToolkitRequiredError({
1041
+ pendingApprovals: [...approved, ...denied]
1042
+ .map((result) => result.toolCall?.name)
1043
+ .filter(Predicate.isNotUndefined)
1044
+ })
1045
+ })
1046
+ }
1047
+ if (tracker) {
1048
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1049
+ if (Option.isSome(prepared)) {
1050
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1051
+ providerOptions.incrementalPrompt = prepared.value.prompt
1052
+ }
1053
+ }
1054
+ const ResponseSchema = Schema.mutable(
1055
+ Schema.Array(Response.Part(Toolkit.empty))
1056
+ )
1057
+ const rawContent = yield* generateWithNonIncrementalFallback()
1058
+ const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1059
+ if (tracker) {
1060
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1061
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1062
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1063
+ }
1064
+ }
1065
+ return content as Array<Response.Part<Tools>>
1066
+ }
1067
+
1068
+ // If there is a toolkit resolve and apply it to the provider options
1069
+ const toolkit = yield* resolveToolkit<Tools, any, any>(options.toolkit)
1070
+
1071
+ // If the resolved toolkit is empty, return the generated content immediately
1072
+ if (Object.values(toolkit.tools).length === 0) {
1073
+ // But first check if we have pending approvals that require a toolkit
1074
+ if (hasPendingApprovals) {
1075
+ return yield* AiError.make({
1076
+ module: "LanguageModel",
1077
+ method: "generateText",
1078
+ reason: new AiError.ToolkitRequiredError({
1079
+ pendingApprovals: [...approved, ...denied]
1080
+ .map((result) => result.toolCall?.name)
1081
+ .filter(Predicate.isNotUndefined)
1082
+ })
1083
+ })
1084
+ }
1085
+ if (tracker) {
1086
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1087
+ if (Option.isSome(prepared)) {
1088
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1089
+ providerOptions.incrementalPrompt = prepared.value.prompt
1090
+ }
1091
+ }
1092
+ const ResponseSchema = Schema.mutable(
1093
+ Schema.Array(Response.Part(Toolkit.empty))
1094
+ )
1095
+ const rawContent = yield* generateWithNonIncrementalFallback()
1096
+ const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1097
+ if (tracker) {
1098
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1099
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1100
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1101
+ }
1102
+ }
1103
+ return content as Array<Response.Part<Tools>>
1104
+ }
1105
+
1106
+ // Pre-resolve pending tool approvals before calling the LLM
1107
+ if (hasPendingApprovals) {
1108
+ for (const approval of approved) {
1109
+ if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
1110
+ return yield* AiError.make({
1111
+ module: "LanguageModel",
1112
+ method: "generateText",
1113
+ reason: new AiError.ToolNotFoundError({
1114
+ toolName: approval.toolCall.name,
1115
+ availableTools: Object.keys(toolkit.tools)
1116
+ })
1117
+ })
1118
+ }
1119
+ }
1120
+
1121
+ const approvedResults = yield* executeApprovedToolCalls(
1122
+ approved,
1123
+ toolkit,
1124
+ options.concurrency
1125
+ )
1126
+ const deniedResults = createDenialResults(denied)
1127
+ const preResolvedResults = [...approvedResults, ...deniedResults]
1128
+
1129
+ if (preResolvedResults.length > 0) {
1130
+ providerOptions.prompt = Prompt.fromMessages([
1131
+ ...providerOptions.prompt.content,
1132
+ Prompt.makeMessage("tool", { content: preResolvedResults })
1133
+ ])
1134
+ }
1135
+ }
1136
+
1137
+ // Strip all resolved approval artifacts (both current and from previous
1138
+ // rounds) in a single pass before sending to the provider.
1139
+ {
1140
+ const { approved: allResolved, denied: allDenied } = collectToolApprovals(
1141
+ providerOptions.prompt.content
1142
+ )
1143
+ if (allResolved.length > 0 || allDenied.length > 0) {
1144
+ providerOptions.prompt = stripResolvedApprovals(
1145
+ providerOptions.prompt,
1146
+ allResolved,
1147
+ allDenied
1148
+ )
1149
+ }
1150
+ }
1151
+
1152
+ const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
1153
+ ? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
1154
+ : Object.values(toolkit.tools)
1155
+ providerOptions.tools = tools
1156
+ providerOptions.toolChoice = toolChoice
1157
+
1158
+ if (tracker) {
1159
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1160
+ if (Option.isSome(prepared)) {
1161
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1162
+ providerOptions.incrementalPrompt = prepared.value.prompt
1163
+ }
1164
+ }
1165
+
1166
+ // Construct the response schema with the tools from the toolkit
1167
+ const ResponseSchema = Schema.mutable(
1168
+ Schema.Array(Response.Part(toolkit))
1169
+ )
1170
+
1171
+ // If tool call resolution is disabled, return the response without
1172
+ // resolving the tool calls that were generated
1173
+ if (options.disableToolCallResolution === true) {
1174
+ const rawContent = yield* generateWithNonIncrementalFallback()
1175
+ const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1176
+ if (tracker) {
1177
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1178
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1179
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1180
+ }
1181
+ }
1182
+ return content as Array<Response.Part<Tools>>
1183
+ }
1184
+
1185
+ const rawContent = yield* generateWithNonIncrementalFallback()
1186
+
1187
+ // Resolve the generated tool calls
1188
+ const toolResults = yield* resolveToolCalls(
1189
+ rawContent,
1190
+ toolkit,
1191
+ providerOptions.prompt.content,
1192
+ options.concurrency
1193
+ ).pipe(
1194
+ Stream.filter(
1195
+ (result) =>
1196
+ result.type === "tool-approval-request" ||
1197
+ result.preliminary === false
1198
+ ),
1199
+ Stream.runCollect
1200
+ )
1201
+
1202
+ const content = yield* Schema.decodeEffect(ResponseSchema)(rawContent)
1203
+
1204
+ if (tracker) {
1205
+ const responseMetadata = content.find((part) => part.type === "response-metadata")
1206
+ if (Predicate.isNotUndefined(responseMetadata) && Predicate.isNotUndefined(responseMetadata.id)) {
1207
+ tracker.markParts(providerOptions.prompt.content, responseMetadata.id)
1208
+ }
1209
+ }
1210
+
1211
+ // Return the content merged with the tool call results
1212
+ return [...content, ...toolResults] as Array<Response.Part<Tools>>
1213
+ })
1214
+
1215
+ const streamContent: <
1216
+ Options extends NoExcessProperties<GenerateTextOptions<any>, Options>,
1217
+ Tools extends Record<string, Tool.Any> = {}
1218
+ >(
1219
+ options: Options & GenerateTextOptions<Tools>,
1220
+ providerOptions: Mutable<ProviderOptions>
1221
+ ) => Effect.Effect<
1222
+ Stream.Stream<
1223
+ Response.StreamPart<Tools>,
1224
+ AiError.AiError | Schema.SchemaError,
1225
+ IdGenerator
1226
+ >,
1227
+ Options extends { readonly toolkit: infer ToolkitValue } ?
1228
+ ExtractToolkitResolutionError<Exclude<ToolkitValue, undefined>>
1229
+ : never,
1230
+ Options extends { readonly toolkit: infer ToolkitValue } ?
1231
+ ExtractToolkitResolutionServices<Exclude<ToolkitValue, undefined>>
1232
+ : never
1233
+ > = Effect.fnUntraced(function*<
1234
+ Tools extends Record<string, Tool.Any>,
1235
+ Options extends NoExcessProperties<GenerateTextOptions<Tools>, Options>
1236
+ >(
1237
+ options: Options & GenerateTextOptions<Tools>,
1238
+ providerOptions: Mutable<ProviderOptions>
1239
+ ) {
1240
+ const tracker = Option.getOrUndefined(yield* Effect.serviceOption(ResponseIdTracker.ResponseIdTracker))
1241
+ const toolChoice = options.toolChoice ?? "auto"
1242
+
1243
+ const streamWithNonIncrementalFallback = () => {
1244
+ const requestOptions: ProviderOptions = {
1245
+ ...providerOptions
1246
+ }
1247
+ const fallbackPrompt = requestOptions.prompt
1248
+ const fallbackOptions: ProviderOptions = {
1249
+ ...requestOptions,
1250
+ prompt: fallbackPrompt,
1251
+ incrementalPrompt: undefined,
1252
+ previousResponseId: undefined
1253
+ }
1254
+ return requestOptions.incrementalPrompt
1255
+ ? params.streamText(requestOptions).pipe(
1256
+ Stream.catchReason("AiError", "InvalidRequestError", (_) => params.streamText(fallbackOptions))
1257
+ )
1258
+ : params.streamText(requestOptions)
1259
+ }
1260
+
1261
+ // Check for pending approvals that need resolution
1262
+ const { approved: pendingApproved, denied: pendingDenied } = collectToolApprovals(providerOptions.prompt.content, {
1263
+ excludeResolved: true
1264
+ })
1265
+ const hasPendingApprovals = pendingApproved.length > 0 || pendingDenied.length > 0
1266
+
1267
+ // If there is no toolkit, return immediately
1268
+ if (Predicate.isUndefined(options.toolkit)) {
1269
+ // But first check if we have pending approvals that require a toolkit
1270
+ if (hasPendingApprovals) {
1271
+ return yield* AiError.make({
1272
+ module: "LanguageModel",
1273
+ method: "streamText",
1274
+ reason: new AiError.ToolkitRequiredError({
1275
+ pendingApprovals: [...pendingApproved, ...pendingDenied]
1276
+ .map((a) => a.toolCall?.name)
1277
+ .filter(Predicate.isNotUndefined)
1278
+ })
1279
+ })
1280
+ }
1281
+ if (tracker) {
1282
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1283
+ if (Option.isSome(prepared)) {
1284
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1285
+ providerOptions.incrementalPrompt = prepared.value.prompt
1286
+ }
1287
+ }
1288
+ const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
1289
+ const decodeParts = Schema.decodeEffect(schema)
1290
+ return pipe(
1291
+ streamWithNonIncrementalFallback(),
1292
+ Stream.mapArrayEffect((parts) =>
1293
+ decodeParts(parts).pipe(
1294
+ tracker ?
1295
+ Effect.tap((decodedParts) => {
1296
+ for (const part of decodedParts) {
1297
+ if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
1298
+ tracker.markParts(providerOptions.prompt.content, part.id)
1299
+ }
1300
+ }
1301
+ return Effect.void
1302
+ }) :
1303
+ identity
1304
+ )
1305
+ )
1306
+ ) as Stream.Stream<
1307
+ Response.StreamPart<Tools>,
1308
+ AiError.AiError | Schema.SchemaError,
1309
+ IdGenerator
1310
+ >
1311
+ }
1312
+
1313
+ // If there is a toolkit resolve and apply it to the provider options
1314
+ const toolkit = yield* resolveToolkit<Tools, any, any>(options.toolkit)
1315
+
1316
+ // If the toolkit is empty, return immediately
1317
+ if (Object.values(toolkit.tools).length === 0) {
1318
+ // But first check if we have pending approvals that require a toolkit
1319
+ if (hasPendingApprovals) {
1320
+ return yield* AiError.make({
1321
+ module: "LanguageModel",
1322
+ method: "streamText",
1323
+ reason: new AiError.ToolkitRequiredError({
1324
+ pendingApprovals: [...pendingApproved, ...pendingDenied]
1325
+ .map((a) => a.toolCall?.name)
1326
+ .filter(Predicate.isNotUndefined)
1327
+ })
1328
+ })
1329
+ }
1330
+ if (tracker) {
1331
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1332
+ if (Option.isSome(prepared)) {
1333
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1334
+ providerOptions.incrementalPrompt = prepared.value.prompt
1335
+ }
1336
+ }
1337
+ const schema = Schema.NonEmptyArray(Response.StreamPart(Toolkit.empty))
1338
+ const decodeParts = Schema.decodeEffect(schema)
1339
+ return pipe(
1340
+ streamWithNonIncrementalFallback(),
1341
+ Stream.mapArrayEffect((parts) =>
1342
+ decodeParts(parts).pipe(
1343
+ tracker ?
1344
+ Effect.tap((decodedParts) => {
1345
+ for (const part of decodedParts) {
1346
+ if (part.type === "response-metadata" && part.id) {
1347
+ tracker.markParts(providerOptions.prompt.content, part.id)
1348
+ }
1349
+ }
1350
+ return Effect.void
1351
+ }) :
1352
+ identity
1353
+ )
1354
+ )
1355
+ ) as Stream.Stream<
1356
+ Response.StreamPart<Tools>,
1357
+ AiError.AiError | Schema.SchemaError,
1358
+ IdGenerator
1359
+ >
1360
+ }
1361
+
1362
+ // Pre-resolve pending tool approvals before calling the LLM
1363
+ let preResolvedStreamParts: Array<Response.StreamPart<Tools>> = []
1364
+
1365
+ if (hasPendingApprovals) {
1366
+ for (const approval of pendingApproved) {
1367
+ if (approval.toolCall && !toolkit.tools[approval.toolCall.name]) {
1368
+ return yield* AiError.make({
1369
+ module: "LanguageModel",
1370
+ method: "streamText",
1371
+ reason: new AiError.ToolNotFoundError({
1372
+ toolName: approval.toolCall.name,
1373
+ availableTools: Object.keys(toolkit.tools)
1374
+ })
1375
+ })
1376
+ }
1377
+ }
1378
+
1379
+ const approvedResults = yield* executeApprovedToolCalls(
1380
+ pendingApproved,
1381
+ toolkit,
1382
+ options.concurrency
1383
+ )
1384
+ const deniedResults = createDenialResults(pendingDenied)
1385
+ const preResolvedResults = [...approvedResults, ...deniedResults]
1386
+
1387
+ if (preResolvedResults.length > 0) {
1388
+ providerOptions.prompt = Prompt.fromMessages([
1389
+ ...providerOptions.prompt.content,
1390
+ Prompt.makeMessage("tool", { content: preResolvedResults })
1391
+ ])
1392
+ }
1393
+
1394
+ // Emit pre-resolved tool-results as stream parts so Chat.streamText
1395
+ // persists them to history. This lets collectToolApprovals find them
1396
+ // on subsequent rounds and skip the now-resolved approvals.
1397
+ // Note: r.result is already encoded (from executeApprovedToolCalls /
1398
+ // createDenialResults), so it goes into both result and encodedResult.
1399
+ for (const r of preResolvedResults) {
1400
+ preResolvedStreamParts.push(
1401
+ Response.makePart("tool-result", {
1402
+ id: r.id,
1403
+ name: r.name,
1404
+ providerExecuted: false,
1405
+ preliminary: false,
1406
+ result: r.result,
1407
+ encodedResult: r.result,
1408
+ isFailure: r.isFailure
1409
+ }) as Response.StreamPart<Tools>
1410
+ )
1411
+ }
1412
+ }
1413
+
1414
+ // Strip all resolved approval artifacts (both current and from previous
1415
+ // rounds) in a single pass before sending to the provider.
1416
+ const { approved: allResolved, denied: allDenied } = collectToolApprovals(
1417
+ providerOptions.prompt.content
1418
+ )
1419
+ if (allResolved.length > 0 || allDenied.length > 0) {
1420
+ providerOptions.prompt = stripResolvedApprovals(
1421
+ providerOptions.prompt,
1422
+ allResolved,
1423
+ allDenied
1424
+ )
1425
+ }
1426
+
1427
+ const tools = typeof toolChoice === "object" && "oneOf" in toolChoice
1428
+ ? Object.values(toolkit.tools).filter((tool) => toolChoice.oneOf.includes(tool.name))
1429
+ : Object.values(toolkit.tools)
1430
+ providerOptions.tools = tools
1431
+ providerOptions.toolChoice = toolChoice
1432
+
1433
+ if (tracker) {
1434
+ const prepared = tracker.prepareUnsafe(providerOptions.prompt)
1435
+ if (Option.isSome(prepared)) {
1436
+ providerOptions.previousResponseId = prepared.value.previousResponseId
1437
+ providerOptions.incrementalPrompt = prepared.value.prompt
1438
+ }
1439
+ }
1440
+
1441
+ // If tool call resolution is disabled, return the response without
1442
+ // resolving the tool calls that were generated
1443
+ if (options.disableToolCallResolution === true) {
1444
+ const schema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
1445
+ const decodeParts = Schema.decodeEffect(schema)
1446
+ return streamWithNonIncrementalFallback().pipe(
1447
+ Stream.mapArrayEffect((parts) =>
1448
+ decodeParts(parts).pipe(
1449
+ tracker ?
1450
+ Effect.tap((decodedParts) => {
1451
+ for (const part of decodedParts) {
1452
+ if (part.type === "response-metadata" && Predicate.isNotUndefined(part.id)) {
1453
+ tracker.markParts(providerOptions.prompt.content, part.id)
1454
+ }
1455
+ }
1456
+ return Effect.void
1457
+ }) :
1458
+ identity
1459
+ )
1460
+ )
1461
+ ) as Stream.Stream<
1462
+ Response.StreamPart<Tools>,
1463
+ AiError.AiError | Schema.SchemaError,
1464
+ IdGenerator
1465
+ >
1466
+ }
1467
+
1468
+ const ResponseSchema = Schema.NonEmptyArray(Response.StreamPart(toolkit))
1469
+ const decodeParts = Schema.decodeEffect(ResponseSchema)
1470
+
1471
+ // Queue for decoded parts and tool results
1472
+ const queue = yield* Queue.make<
1473
+ Response.StreamPart<Tools>,
1474
+ | AiError.AiError
1475
+ | Cause.Done
1476
+ | Schema.SchemaError
1477
+ >()
1478
+ const deferredFinishParts: Array<Response.StreamPart<Tools>> = []
1479
+
1480
+ // Emit pre-resolved tool results so Chat.streamText persists them to
1481
+ // history. This ensures collectToolApprovals({ excludeResolved }) can
1482
+ // find the corresponding tool-results on future rounds.
1483
+ if (preResolvedStreamParts.length > 0) {
1484
+ yield* Queue.offerAll(queue, preResolvedStreamParts)
1485
+ }
1486
+
1487
+ // FiberSet to track concurrent tool call handlers
1488
+ const toolCallFibers = yield* FiberSet.make<void, AiError.AiError>()
1489
+
1490
+ // Helper function to handle tool calls with approval logic
1491
+ const handleToolCall = Effect.fnUntraced(function*(part: Response.ToolCallPartEncoded) {
1492
+ const tool = toolkit.tools[part.name]
1493
+ if (!tool) return
1494
+
1495
+ const needsApproval = yield* isApprovalNeeded(
1496
+ tool,
1497
+ part,
1498
+ providerOptions.prompt.content
1499
+ )
1500
+
1501
+ if (needsApproval) {
1502
+ const idGen = yield* IdGenerator
1503
+ const approvalId = yield* idGen.generateId()
1504
+ const approvalPart = Response.makePart("tool-approval-request", {
1505
+ approvalId,
1506
+ toolCallId: part.id
1507
+ }) as Response.StreamPart<Tools>
1508
+ yield* Queue.offer(queue, approvalPart)
1509
+ return
1510
+ }
1511
+
1512
+ yield* toolkit.handle(part.name, part.params as any).pipe(
1513
+ Stream.unwrap,
1514
+ Stream.runForEach((result) => {
1515
+ const toolResultPart = Response.makePart("tool-result", {
1516
+ id: part.id,
1517
+ name: part.name,
1518
+ providerExecuted: false,
1519
+ ...result
1520
+ }) as Response.StreamPart<Tools>
1521
+ return Queue.offer(queue, toolResultPart)
1522
+ })
1523
+ )
1524
+ })
1525
+
1526
+ yield* streamWithNonIncrementalFallback().pipe(
1527
+ Stream.runForEachArray(
1528
+ Effect.fnUntraced(function*(chunk) {
1529
+ const parts = yield* decodeParts(chunk)
1530
+ if (tracker) {
1531
+ for (const part of parts) {
1532
+ if (part.type === "response-metadata" && part.id) {
1533
+ tracker.markParts(providerOptions.prompt.content, part.id)
1534
+ }
1535
+ }
1536
+ }
1537
+ // Defer finish parts until all tool handlers complete. This guarantees
1538
+ // tool results are emitted before finish in streaming mode.
1539
+ const immediateParts: Array<Response.StreamPart<Tools>> = []
1540
+ for (const part of parts) {
1541
+ if (part.type === "finish") {
1542
+ deferredFinishParts.push(part)
1543
+ } else {
1544
+ immediateParts.push(part)
1545
+ }
1546
+ }
1547
+ if (immediateParts.length > 0) {
1548
+ yield* Queue.offerAll(queue, immediateParts)
1549
+ }
1550
+ // Fork tool call handlers - use the raw chunk for encoded params
1551
+ for (const part of chunk) {
1552
+ if (part.type === "tool-call" && part.providerExecuted !== true) {
1553
+ yield* FiberSet.run(toolCallFibers, handleToolCall(part))
1554
+ }
1555
+ }
1556
+ })
1557
+ ),
1558
+ // Wait for all tool calls to either:
1559
+ // - complete (FiberSet.awaitEmpty)
1560
+ // - fail (FiberSet.join)
1561
+ Effect.andThen(
1562
+ Effect.raceFirst(
1563
+ FiberSet.join(toolCallFibers),
1564
+ FiberSet.awaitEmpty(toolCallFibers)
1565
+ )
1566
+ ),
1567
+ Effect.andThen(
1568
+ Queue.offerAll(queue, deferredFinishParts)
1569
+ ),
1570
+ // And then end the queue
1571
+ Effect.andThen(Queue.end(queue)),
1572
+ Effect.tapCause((cause) => Queue.failCause(queue, cause)),
1573
+ Effect.forkScoped
1574
+ )
1575
+
1576
+ return Stream.fromQueue(queue)
1577
+ }) as any
1578
+
1579
+ return {
1580
+ generateText: generateText as Service["generateText"],
1581
+ generateObject,
1582
+ streamText: streamText as Service["streamText"]
1583
+ } as const
1584
+ })
1585
+
1586
+ // =============================================================================
1587
+ // Accessors
1588
+ // =============================================================================
1589
+
1590
+ /**
1591
+ * Generates text using a language model.
1592
+ *
1593
+ * **Example** (Generating text with options)
1594
+ *
1595
+ * ```ts
1596
+ * import { Effect } from "effect"
1597
+ * import { LanguageModel } from "effect/unstable/ai"
1598
+ *
1599
+ * const program = Effect.gen(function*() {
1600
+ * const response = yield* LanguageModel.generateText({
1601
+ * prompt: "Write a haiku about programming",
1602
+ * toolChoice: "none"
1603
+ * })
1604
+ *
1605
+ * console.log(response.text)
1606
+ * console.log(response.usage.inputTokens.total)
1607
+ *
1608
+ * return response
1609
+ * })
1610
+ * ```
1611
+ *
1612
+ * @category text generation
1613
+ * @since 4.0.0
1614
+ */
1615
+ export const generateText: {
1616
+ // No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
1617
+ <
1618
+ Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>
1619
+ >(
1620
+ options: Options & GenerateTextOptionsWithoutToolkit
1621
+ ): Effect.Effect<
1622
+ GenerateTextResponse<{}>,
1623
+ ExtractError<Options>,
1624
+ LanguageModel | ExtractServices<Options>
1625
+ >
1626
+ // Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
1627
+ <
1628
+ Tools extends Record<string, Tool.Any>,
1629
+ Options extends NoExcessProperties<GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }, Options>
1630
+ >(
1631
+ options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
1632
+ ): Effect.Effect<
1633
+ GenerateTextResponse<Tools>,
1634
+ ExtractError<Options>,
1635
+ LanguageModel | ExtractServices<Options>
1636
+ >
1637
+ // Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
1638
+ <
1639
+ Options extends {
1640
+ readonly toolkit: ToolkitOption<any>
1641
+ } & NoExcessProperties<GenerateTextOptions<any>, Options>
1642
+ >(
1643
+ options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
1644
+ ): Effect.Effect<
1645
+ GenerateTextResponse<ExtractTools<Options>>,
1646
+ ExtractError<Options>,
1647
+ ExtractServices<Options> | LanguageModel
1648
+ >
1649
+ } = (options: GenerateTextOptions<any>): Effect.Effect<
1650
+ GenerateTextResponse<any>,
1651
+ AiError.AiError,
1652
+ LanguageModel
1653
+ > =>
1654
+ Effect.flatMap(
1655
+ Effect.service(LanguageModel),
1656
+ (model) => model.generateText(options as any)
1657
+ )
1658
+
1659
+ /**
1660
+ * Generates a structured object from a schema using a language model.
1661
+ *
1662
+ * **Example** (Generating an object)
1663
+ *
1664
+ * ```ts
1665
+ * import { Effect, Schema } from "effect"
1666
+ * import { LanguageModel } from "effect/unstable/ai"
1667
+ *
1668
+ * const EventSchema = Schema.Struct({
1669
+ * title: Schema.String,
1670
+ * date: Schema.String,
1671
+ * location: Schema.String
1672
+ * })
1673
+ *
1674
+ * const program = Effect.gen(function*() {
1675
+ * const response = yield* LanguageModel.generateObject({
1676
+ * prompt:
1677
+ * "Extract event info: Tech Conference on March 15th in San Francisco",
1678
+ * schema: EventSchema,
1679
+ * objectName: "event"
1680
+ * })
1681
+ *
1682
+ * console.log(response.value)
1683
+ * // { title: "Tech Conference", date: "March 15th", location: "San Francisco" }
1684
+ *
1685
+ * return response.value
1686
+ * })
1687
+ * ```
1688
+ *
1689
+ * @category object generation
1690
+ * @since 4.0.0
1691
+ */
1692
+ export const generateObject = <
1693
+ ObjectEncoded extends Record<string, any>,
1694
+ StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
1695
+ Options extends NoExcessProperties<
1696
+ GenerateObjectOptions<any, StructuredOutputSchema>,
1697
+ Options
1698
+ >
1699
+ >(
1700
+ options: Options & GenerateObjectOptions<ExtractTools<Options>, StructuredOutputSchema>
1701
+ ): Effect.Effect<
1702
+ GenerateObjectResponse<ExtractTools<Options>, StructuredOutputSchema["Type"]>,
1703
+ ExtractError<Options>,
1704
+ ExtractServices<Options> | StructuredOutputSchema["DecodingServices"] | LanguageModel
1705
+ > =>
1706
+ Effect.flatMap(
1707
+ Effect.service(LanguageModel),
1708
+ (model) => model.generateObject(options as any)
1709
+ ) as any
1710
+
1711
+ /**
1712
+ * Generates text using a language model with streaming output.
1713
+ *
1714
+ * **Details**
1715
+ *
1716
+ * Returns a stream of response parts that are emitted as soon as they are
1717
+ * available from the model, enabling real-time text generation experiences.
1718
+ *
1719
+ * **Example** (Streaming text deltas)
1720
+ *
1721
+ * ```ts
1722
+ * import { Console, Effect, Stream } from "effect"
1723
+ * import { LanguageModel } from "effect/unstable/ai"
1724
+ *
1725
+ * const program = LanguageModel.streamText({
1726
+ * prompt: "Write a story about a space explorer"
1727
+ * }).pipe(Stream.runForEach((part) => {
1728
+ * if (part.type === "text-delta") {
1729
+ * return Console.log(part.delta)
1730
+ * }
1731
+ * return Effect.void
1732
+ * }))
1733
+ * ```
1734
+ *
1735
+ * @category text generation
1736
+ * @since 4.0.0
1737
+ */
1738
+ export const streamText: {
1739
+ // No toolkit: force `{}` instead of falling back to `Record<string, Tool.Any>`.
1740
+ <
1741
+ Options extends NoExcessProperties<GenerateTextOptionsWithoutToolkit, Options>
1742
+ >(
1743
+ options: Options & GenerateTextOptionsWithoutToolkit
1744
+ ): Stream.Stream<
1745
+ Response.StreamPart<{}>,
1746
+ ExtractError<Options>,
1747
+ ExtractServices<Options> | LanguageModel
1748
+ >
1749
+ // Generic toolkit: preserve caller-supplied `Tools` in helpers like `<Tools>(toolkit: WithHandler<Tools>) => ...`.
1750
+ <
1751
+ Tools extends Record<string, Tool.Any>,
1752
+ Options extends NoExcessProperties<GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }, Options>
1753
+ >(
1754
+ options: Options & GenerateTextOptions<Tools> & { readonly toolkit: ToolkitInput<Tools> }
1755
+ ): Stream.Stream<
1756
+ Response.StreamPart<Tools>,
1757
+ ExtractError<Options>,
1758
+ ExtractServices<Options> | LanguageModel
1759
+ >
1760
+ // Toolkit unions: recover distributive `ExtractTools<Options>` inference for `toolkitA | toolkitB` call sites.
1761
+ <
1762
+ Options extends {
1763
+ readonly toolkit: ToolkitOption<any>
1764
+ } & NoExcessProperties<GenerateTextOptions<any>, Options>
1765
+ >(
1766
+ options: Options & GenerateTextOptions<ExtractTools<Options>> & { readonly toolkit: Options["toolkit"] }
1767
+ ): Stream.Stream<
1768
+ Response.StreamPart<ExtractTools<Options>>,
1769
+ ExtractError<Options>,
1770
+ ExtractServices<Options> | LanguageModel
1771
+ >
1772
+ } = (options: GenerateTextOptions<any>): Stream.Stream<
1773
+ Response.StreamPart<{}>,
1774
+ AiError.AiError,
1775
+ LanguageModel
1776
+ > =>
1777
+ Stream.unwrap(Effect.map(
1778
+ Effect.service(LanguageModel),
1779
+ (model) => model.streamText(options as any)
1780
+ )) as any
1781
+
1782
+ // =============================================================================
1783
+ // Tool Approval Helpers
1784
+ // =============================================================================
1785
+
1786
+ interface ApprovalResult {
1787
+ readonly approvalId: string
1788
+ readonly toolCallId: string
1789
+ readonly approved: boolean
1790
+ readonly reason?: string | undefined
1791
+ readonly toolCall?: Prompt.ToolCallPart | undefined
1792
+ }
1793
+
1794
+ interface CollectToolApprovalsOptions {
1795
+ readonly excludeResolved?: boolean
1796
+ }
1797
+
1798
+ const collectToolApprovals = (
1799
+ messages: ReadonlyArray<Prompt.Message>,
1800
+ options?: CollectToolApprovalsOptions
1801
+ ): {
1802
+ readonly approved: Array<ApprovalResult>
1803
+ readonly denied: Array<ApprovalResult>
1804
+ } => {
1805
+ const requests = new Map<
1806
+ string,
1807
+ Pick<ApprovalResult, "approvalId" | "toolCallId">
1808
+ >()
1809
+ const responses: Array<Omit<ApprovalResult, "toolCallId" | "toolCall">> = []
1810
+ const toolCallsById = new Map<string, Prompt.ToolCallPart>()
1811
+ const toolResultIds = new Set<string>()
1812
+
1813
+ // Collect all tool approval requests, responses, tool calls, and tool results
1814
+ for (const message of messages) {
1815
+ if (message.role === "assistant") {
1816
+ for (const part of message.content) {
1817
+ if (part.type === "tool-approval-request") {
1818
+ requests.set(part.approvalId, {
1819
+ approvalId: part.approvalId,
1820
+ toolCallId: part.toolCallId
1821
+ })
1822
+ }
1823
+ if (part.type === "tool-call") {
1824
+ toolCallsById.set(part.id, part)
1825
+ }
1826
+ }
1827
+ }
1828
+ if (message.role === "tool") {
1829
+ for (const part of message.content) {
1830
+ if (part.type === "tool-approval-response") {
1831
+ responses.push({
1832
+ approvalId: part.approvalId,
1833
+ approved: part.approved,
1834
+ reason: part.reason
1835
+ })
1836
+ }
1837
+ if (part.type === "tool-result") {
1838
+ toolResultIds.add(part.id)
1839
+ }
1840
+ }
1841
+ }
1842
+ }
1843
+
1844
+ const approved: Array<ApprovalResult> = []
1845
+ const denied: Array<ApprovalResult> = []
1846
+
1847
+ for (const response of responses) {
1848
+ const request = requests.get(response.approvalId)
1849
+ if (Predicate.isNotUndefined(request)) {
1850
+ // Skip if already resolved
1851
+ if (options?.excludeResolved && toolResultIds.has(request.toolCallId)) {
1852
+ continue
1853
+ }
1854
+
1855
+ const result: ApprovalResult = {
1856
+ ...response,
1857
+ toolCallId: request.toolCallId,
1858
+ toolCall: toolCallsById.get(request.toolCallId)
1859
+ }
1860
+
1861
+ if (response.approved) {
1862
+ approved.push(result)
1863
+ } else {
1864
+ denied.push(result)
1865
+ }
1866
+ }
1867
+ }
1868
+
1869
+ return { approved, denied }
1870
+ }
1871
+
1872
+ /**
1873
+ * Strip resolved approval artifacts from the prompt before sending to the
1874
+ * provider. After pre-resolving approvals (executing approved tools and
1875
+ * creating denial results), the original `tool-approval-request` parts in
1876
+ * assistant messages and `tool-approval-response` parts in tool messages are
1877
+ * no longer needed. Leaving them in causes provider-specific errors (e.g.
1878
+ * OpenAI rejects `mcp_approval_response` items that reference approval
1879
+ * requests it never issued).
1880
+ */
1881
+ const stripResolvedApprovals = (
1882
+ prompt: Prompt.Prompt,
1883
+ approved: ReadonlyArray<ApprovalResult>,
1884
+ denied: ReadonlyArray<ApprovalResult>
1885
+ ): Prompt.Prompt => {
1886
+ const resolvedApprovalIds = new Set<string>()
1887
+ for (const a of approved) resolvedApprovalIds.add(a.approvalId)
1888
+ for (const d of denied) resolvedApprovalIds.add(d.approvalId)
1889
+
1890
+ const cleanedMessages: Array<Prompt.Message> = []
1891
+
1892
+ for (const message of prompt.content) {
1893
+ if (message.role === "assistant") {
1894
+ const filteredContent = message.content.filter(
1895
+ (part) =>
1896
+ part.type !== "tool-approval-request" ||
1897
+ !resolvedApprovalIds.has(part.approvalId)
1898
+ )
1899
+ if (filteredContent.length > 0) {
1900
+ cleanedMessages.push(
1901
+ Prompt.makeMessage("assistant", {
1902
+ content: filteredContent,
1903
+ options: message.options
1904
+ })
1905
+ )
1906
+ }
1907
+ } else if (message.role === "tool") {
1908
+ const filteredContent = message.content.filter(
1909
+ (part) =>
1910
+ part.type !== "tool-approval-response" ||
1911
+ !resolvedApprovalIds.has(part.approvalId)
1912
+ )
1913
+ if (filteredContent.length > 0) {
1914
+ cleanedMessages.push(
1915
+ Prompt.makeMessage("tool", {
1916
+ content: filteredContent,
1917
+ options: message.options
1918
+ })
1919
+ )
1920
+ }
1921
+ } else {
1922
+ cleanedMessages.push(message)
1923
+ }
1924
+ }
1925
+
1926
+ return Prompt.fromMessages(cleanedMessages)
1927
+ }
1928
+
1929
+ const isApprovalNeeded = Effect.fnUntraced(function*<T extends Tool.Any>(
1930
+ tool: T,
1931
+ toolCall: Response.ToolCallPartEncoded,
1932
+ messages: ReadonlyArray<Prompt.Message>
1933
+ ): Effect.fn.Return<boolean, Schema.SchemaError, Tool.HandlerServices<T>> {
1934
+ if (Predicate.isUndefined(tool.needsApproval)) {
1935
+ return false
1936
+ }
1937
+
1938
+ if (typeof tool.needsApproval === "function") {
1939
+ const params = yield* Schema.decodeUnknownEffect(tool.parametersSchema)(
1940
+ toolCall.params
1941
+ ) as any
1942
+
1943
+ const result = tool.needsApproval(params, {
1944
+ toolCallId: toolCall.id,
1945
+ messages
1946
+ })
1947
+
1948
+ return Effect.isEffect(result) ? yield* result : result
1949
+ }
1950
+
1951
+ return tool.needsApproval
1952
+ }, Effect.orElseSucceed(constFalse))
1953
+
1954
+ const executeApprovedToolCalls = <Tools extends Record<string, Tool.Any>>(
1955
+ approvals: ReadonlyArray<ApprovalResult>,
1956
+ toolkit: Toolkit.WithHandler<Tools>,
1957
+ concurrency: Concurrency | undefined
1958
+ ): Effect.Effect<
1959
+ Array<Prompt.ToolResultPart>,
1960
+ Tool.HandlerError<Tools[keyof Tools]> | AiError.AiError,
1961
+ Tool.HandlerServices<Tools[keyof Tools]>
1962
+ > => {
1963
+ const executeTool = Effect.fnUntraced(function*(approval: ApprovalResult) {
1964
+ const toolCall = approval.toolCall
1965
+
1966
+ if (Predicate.isUndefined(toolCall)) {
1967
+ return yield* Effect.die("Approval missing tool call reference")
1968
+ }
1969
+
1970
+ const tool = toolkit.tools[toolCall.name]
1971
+
1972
+ if (Predicate.isUndefined(tool)) {
1973
+ return yield* AiError.make({
1974
+ module: "LanguageModel",
1975
+ method: "generateText",
1976
+ reason: new AiError.ToolNotFoundError({
1977
+ toolName: toolCall.name,
1978
+ availableTools: Object.keys(toolkit.tools)
1979
+ })
1980
+ })
1981
+ }
1982
+
1983
+ const resultStream = yield* toolkit.handle(
1984
+ toolCall.name,
1985
+ toolCall.params as any
1986
+ )
1987
+
1988
+ const terminalResult = yield* resultStream.pipe(
1989
+ Stream.filter((result) => result.preliminary === false),
1990
+ Stream.run(Sink.last()),
1991
+ Effect.flatMap(
1992
+ Option.match({
1993
+ onNone: () => Effect.die("Tool handler did not produce a final result"),
1994
+ onSome: Effect.succeed
1995
+ })
1996
+ )
1997
+ )
1998
+
1999
+ return Prompt.makePart("tool-result", {
2000
+ id: approval.toolCallId,
2001
+ name: toolCall.name,
2002
+ isFailure: terminalResult.isFailure,
2003
+ result: terminalResult.encodedResult
2004
+ })
2005
+ })
2006
+
2007
+ return Effect.gen(function*() {
2008
+ const resolveConcurrency = concurrency === "inherit"
2009
+ ? yield* Effect.service(CurrentConcurrency)
2010
+ : (concurrency ?? "unbounded")
2011
+
2012
+ return yield* Effect.forEach(approvals, executeTool, {
2013
+ concurrency: resolveConcurrency
2014
+ })
2015
+ })
2016
+ }
2017
+
2018
+ const createDenialResults = (
2019
+ denials: ReadonlyArray<ApprovalResult>
2020
+ ): ReadonlyArray<Prompt.ToolResultPart> => {
2021
+ const results: Array<Prompt.ToolResultPart> = []
2022
+ for (const denial of denials) {
2023
+ if (Predicate.isNotUndefined(denial.toolCall)) {
2024
+ results.push(
2025
+ Prompt.makePart("tool-result", {
2026
+ id: denial.toolCallId,
2027
+ name: denial.toolCall.name,
2028
+ isFailure: true,
2029
+ result: { type: "execution-denied", reason: denial.reason }
2030
+ })
2031
+ )
2032
+ }
2033
+ }
2034
+ return results
2035
+ }
2036
+
2037
+ // =============================================================================
2038
+ // Tool Call Resolution
2039
+ // =============================================================================
2040
+
2041
+ type ToolResolutionResult<Tools extends Record<string, Tool.Any>> =
2042
+ | Response.ToolResultPart<
2043
+ Tool.Name<Tools[keyof Tools]>,
2044
+ Tool.Success<Tools[keyof Tools]>,
2045
+ Tool.Failure<Tools[keyof Tools]>
2046
+ >
2047
+ | Response.ToolApprovalRequestPart
2048
+
2049
+ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
2050
+ content: ReadonlyArray<Response.AllPartsEncoded>,
2051
+ toolkit: Toolkit.WithHandler<Tools>,
2052
+ messages: ReadonlyArray<Prompt.Message>,
2053
+ concurrency: Concurrency | undefined
2054
+ ): Stream.Stream<
2055
+ ToolResolutionResult<Tools>,
2056
+ Tool.HandlerError<Tools[keyof Tools]> | AiError.AiError,
2057
+ Tool.HandlerServices<Tools[keyof Tools]> | IdGenerator
2058
+ > => {
2059
+ const toolCalls: Array<Response.ToolCallPartEncoded> = []
2060
+
2061
+ for (const part of content) {
2062
+ if (part.type === "tool-call") {
2063
+ if (part.providerExecuted === true) {
2064
+ continue
2065
+ }
2066
+ toolCalls.push(part)
2067
+ }
2068
+ }
2069
+
2070
+ const { approved, denied } = collectToolApprovals(messages)
2071
+ const approvedToolCallIds = new Set(
2072
+ approved.map((approval) => approval.toolCallId)
2073
+ )
2074
+ const deniedByToolCallId = new Map(
2075
+ denied.map((denial) => [denial.toolCallId, denial])
2076
+ )
2077
+
2078
+ const streams = toolCalls.map((toolCall) =>
2079
+ Effect.gen(function*() {
2080
+ const tool = toolkit.tools[toolCall.name]
2081
+ if (!tool) {
2082
+ return Stream.empty
2083
+ }
2084
+
2085
+ if (deniedByToolCallId.has(toolCall.id)) {
2086
+ const denial = deniedByToolCallId.get(toolCall.id)!
2087
+ return Stream.succeed(
2088
+ Response.makePart("tool-result", {
2089
+ id: toolCall.id,
2090
+ name: toolCall.name,
2091
+ providerExecuted: false,
2092
+ isFailure: true,
2093
+ result: { type: "execution-denied", reason: denial.reason },
2094
+ encodedResult: { type: "execution-denied", reason: denial.reason },
2095
+ preliminary: false
2096
+ }) as ToolResolutionResult<Tools>
2097
+ )
2098
+ }
2099
+
2100
+ if (approvedToolCallIds.has(toolCall.id)) {
2101
+ return toolkit.handle(toolCall.name, toolCall.params as any).pipe(
2102
+ Stream.unwrap,
2103
+ Stream.map(
2104
+ (result) =>
2105
+ Response.makePart("tool-result", {
2106
+ id: toolCall.id,
2107
+ name: toolCall.name,
2108
+ providerExecuted: false,
2109
+ ...result
2110
+ }) as ToolResolutionResult<Tools>
2111
+ )
2112
+ )
2113
+ }
2114
+
2115
+ const needsApproval = yield* isApprovalNeeded(tool, toolCall, messages)
2116
+ if (needsApproval) {
2117
+ const generator = yield* IdGenerator
2118
+ const approvalId = yield* generator.generateId()
2119
+ return Stream.succeed(
2120
+ Response.makePart("tool-approval-request", {
2121
+ approvalId,
2122
+ toolCallId: toolCall.id
2123
+ }) as ToolResolutionResult<Tools>
2124
+ )
2125
+ }
2126
+
2127
+ return toolkit.handle(toolCall.name, toolCall.params as any).pipe(
2128
+ Stream.unwrap,
2129
+ Stream.map(
2130
+ (result) =>
2131
+ Response.makePart("tool-result", {
2132
+ id: toolCall.id,
2133
+ name: toolCall.name,
2134
+ providerExecuted: false,
2135
+ ...result
2136
+ }) as ToolResolutionResult<Tools>
2137
+ )
2138
+ )
2139
+ }).pipe(Stream.unwrap)
2140
+ )
2141
+
2142
+ const resolveConcurrency = concurrency === "inherit"
2143
+ ? Effect.service(CurrentConcurrency)
2144
+ : Effect.succeed(concurrency ?? "unbounded")
2145
+
2146
+ return resolveConcurrency.pipe(
2147
+ Effect.map((concurrency) => Stream.mergeAll(streams, { concurrency })),
2148
+ Stream.unwrap
2149
+ )
2150
+ }
2151
+
2152
+ // =============================================================================
2153
+ // Utilities
2154
+ // =============================================================================
2155
+
2156
+ const resolveToolkit = <Tools extends Record<string, Tool.Any>, E, R>(
2157
+ toolkit: ToolkitInput<Tools, E, R>
2158
+ ): Effect.Effect<Toolkit.WithHandler<Tools>, E, R> =>
2159
+ (Effect.isEffect(toolkit)
2160
+ ? toolkit
2161
+ : Effect.succeed(toolkit as unknown as Toolkit.WithHandler<Tools>)) as any
2162
+
2163
+ /** @internal */
2164
+ export const getObjectName = <StructuredOutputSchema extends Schema.Top>(
2165
+ objectName: string | undefined,
2166
+ schema: StructuredOutputSchema
2167
+ ): string => {
2168
+ if (Predicate.isNotUndefined(objectName)) {
2169
+ return objectName
2170
+ }
2171
+ if ("identifier" in schema && typeof schema.identifier === "string") {
2172
+ return schema.identifier
2173
+ }
2174
+ const identifier = SchemaAST.resolveIdentifier(schema.ast)
2175
+ if (typeof identifier === "string") {
2176
+ return identifier
2177
+ }
2178
+ return "generateObject"
2179
+ }
2180
+
2181
+ const resolveStructuredOutput = Effect.fnUntraced(function*<
2182
+ StructuredOutputSchema extends Schema.Top
2183
+ >(response: ReadonlyArray<Response.AllParts<any>>, schema: StructuredOutputSchema) {
2184
+ const texts: Array<string> = []
2185
+ for (const part of response) {
2186
+ if (part.type === "text") {
2187
+ texts.push(part.text)
2188
+ }
2189
+ }
2190
+
2191
+ const text = texts.join("")
2192
+
2193
+ if (text.length === 0) {
2194
+ return yield* AiError.make({
2195
+ module: "LanguageModel",
2196
+ method: "generateObject",
2197
+ reason: new AiError.StructuredOutputError({
2198
+ description: "No text content in response",
2199
+ responseText: text
2200
+ })
2201
+ })
2202
+ }
2203
+
2204
+ const decode = Schema.decodeEffect(Schema.fromJsonString(schema))
2205
+ return yield* Effect.mapError(decode(text), (error) =>
2206
+ AiError.make({
2207
+ module: "LanguageModel",
2208
+ method: "generateObject",
2209
+ reason: AiError.StructuredOutputError.fromSchemaError(error, text)
2210
+ }))
2211
+ })
2212
+
2213
+ const applySpanTransformer = (
2214
+ transformer: Option.Option<SpanTransformer>,
2215
+ response: ReadonlyArray<Response.AllParts<any>>,
2216
+ options: ProviderOptions
2217
+ ): void => {
2218
+ if (Option.isSome(transformer)) {
2219
+ transformer.value({ ...options, response: response as any })
2220
+ }
2221
+ }