@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.
- package/HARNESS.md +34 -0
- package/README.md +113 -0
- package/dist/bin/effect-harness.d.ts +2 -0
- package/dist/bin/effect-harness.js +39 -0
- package/dist/bin/effect-harness.js.map +1 -0
- package/dist/src/cli/Main.d.ts +6 -0
- package/dist/src/cli/Main.js +141 -0
- package/dist/src/cli/Main.js.map +1 -0
- package/dist/src/harness/CraftSkills.d.ts +14 -0
- package/dist/src/harness/CraftSkills.js +164 -0
- package/dist/src/harness/CraftSkills.js.map +1 -0
- package/dist/src/harness/Errors.d.ts +24 -0
- package/dist/src/harness/Errors.js +26 -0
- package/dist/src/harness/Errors.js.map +1 -0
- package/dist/src/harness/GuardrailRules.d.ts +6 -0
- package/dist/src/harness/GuardrailRules.js +303 -0
- package/dist/src/harness/GuardrailRules.js.map +1 -0
- package/dist/src/harness/Guardrails.d.ts +10 -0
- package/dist/src/harness/Guardrails.js +69 -0
- package/dist/src/harness/Guardrails.js.map +1 -0
- package/dist/src/harness/Init.d.ts +9 -0
- package/dist/src/harness/Init.js +234 -0
- package/dist/src/harness/Init.js.map +1 -0
- package/dist/src/harness/Model.d.ts +44 -0
- package/dist/src/harness/Model.js +169 -0
- package/dist/src/harness/Model.js.map +1 -0
- package/dist/src/harness/ModuleSources.d.ts +5 -0
- package/dist/src/harness/ModuleSources.js +47 -0
- package/dist/src/harness/ModuleSources.js.map +1 -0
- package/dist/src/harness/PnpmWorkspace.d.ts +2 -0
- package/dist/src/harness/PnpmWorkspace.js +23 -0
- package/dist/src/harness/PnpmWorkspace.js.map +1 -0
- package/dist/src/harness/Publish.d.ts +53 -0
- package/dist/src/harness/Publish.js +282 -0
- package/dist/src/harness/Publish.js.map +1 -0
- package/dist/src/harness/SelfVerify.d.ts +4 -0
- package/dist/src/harness/SelfVerify.js +56 -0
- package/dist/src/harness/SelfVerify.js.map +1 -0
- package/dist/src/harness/SourcePin.d.ts +12 -0
- package/dist/src/harness/SourcePin.js +320 -0
- package/dist/src/harness/SourcePin.js.map +1 -0
- package/dist/src/harness/Status.d.ts +12 -0
- package/dist/src/harness/Status.js +88 -0
- package/dist/src/harness/Status.js.map +1 -0
- package/dist/src/harness/TargetVerify.d.ts +8 -0
- package/dist/src/harness/TargetVerify.js +432 -0
- package/dist/src/harness/TargetVerify.js.map +1 -0
- package/dist/src/harness/TestContract.d.ts +6 -0
- package/dist/src/harness/TestContract.js +45 -0
- package/dist/src/harness/TestContract.js.map +1 -0
- package/dist/src/platform/Json.d.ts +8 -0
- package/dist/src/platform/Json.js +35 -0
- package/dist/src/platform/Json.js.map +1 -0
- package/dist/src/platform/ManagedFiles.d.ts +8 -0
- package/dist/src/platform/ManagedFiles.js +59 -0
- package/dist/src/platform/ManagedFiles.js.map +1 -0
- package/dist/src/platform/Process.d.ts +8 -0
- package/dist/src/platform/Process.js +80 -0
- package/dist/src/platform/Process.js.map +1 -0
- package/guide/default-capabilities.md +38 -0
- package/guide/index.md +49 -0
- package/guide/setup.md +64 -0
- package/harness/default-capabilities.md +32 -0
- package/harness/exposure.md +46 -0
- package/harness/feedback/index.md +60 -0
- package/harness/index.md +22 -0
- package/harness/official-inventory.md +85 -0
- package/harness/runtime/codex/AGENTS.fragment.md +28 -0
- package/harness/runtime/codex/agents/effect-worker.md +26 -0
- package/harness/runtime/codex/skills/effect-code/SKILL.md +72 -0
- package/harness/runtime/codex/skills/effect-code/agents/openai.yaml +4 -0
- package/harness/runtime/codex/skills/effect-feedback/SKILL.md +66 -0
- package/harness/runtime/codex/skills/effect-feedback/agents/openai.yaml +4 -0
- package/harness/source.md +52 -0
- package/harness/target-agent-contract.md +205 -0
- package/package.json +68 -0
- package/repos/craft-skills.manifest.json +34 -0
- package/repos/effect/.agents/skills/grill-me/SKILL.md +43 -0
- package/repos/effect/.agents/skills/jsdocs/SKILL.md +203 -0
- package/repos/effect/.agents/skills/scratchpad/SKILL.md +44 -0
- package/repos/effect/.agents/skills/scratchpad/agents/openai.yaml +7 -0
- package/repos/effect/.agents/skills/scratchpad/scripts/extract-example.mjs +260 -0
- package/repos/effect/.changeset/add-bigdecimal-sumall-multiplyall.md +5 -0
- package/repos/effect/.changeset/add-chunk-schema.md +5 -0
- package/repos/effect/.changeset/add-command-hidden.md +19 -0
- package/repos/effect/.changeset/add-config-nested.md +5 -0
- package/repos/effect/.changeset/add-flag-hidden.md +15 -0
- package/repos/effect/.changeset/add-from-string-schemas.md +5 -0
- package/repos/effect/.changeset/add-headers-remove-many.md +5 -0
- package/repos/effect/.changeset/add-indexeddb-kvs-layer.md +5 -0
- package/repos/effect/.changeset/add-make-msgpack.md +5 -0
- package/repos/effect/.changeset/add-make-option.md +5 -0
- package/repos/effect/.changeset/add-missing-tx-modules.md +11 -0
- package/repos/effect/.changeset/add-newtype-module.md +5 -0
- package/repos/effect/.changeset/add-scalar-show-operation-id.md +5 -0
- package/repos/effect/.changeset/add-schedule-tap.md +5 -0
- package/repos/effect/.changeset/add-schema-annotate-encoded.md +5 -0
- package/repos/effect/.changeset/add-schema-array-ensure.md +5 -0
- package/repos/effect/.changeset/add-schema-bigdecimal.md +5 -0
- package/repos/effect/.changeset/add-schema-datetime.md +5 -0
- package/repos/effect/.changeset/add-schema-option-from-optional-nullor.md +5 -0
- package/repos/effect/.changeset/add-schema-option-from-undefined-nullish.md +5 -0
- package/repos/effect/.changeset/add-schema-string-encoding.md +5 -0
- package/repos/effect/.changeset/add-sql-pglite.md +5 -0
- package/repos/effect/.changeset/add-standard-jsdoc-rule.md +5 -0
- package/repos/effect/.changeset/add-stream-broadcastn.md +5 -0
- package/repos/effect/.changeset/add-unstable-encoding-export.md +5 -0
- package/repos/effect/.changeset/afraid-cobras-like.md +5 -0
- package/repos/effect/.changeset/ai-openai-config-field-leak.md +6 -0
- package/repos/effect/.changeset/ai-openai-file-nullable-fields.md +5 -0
- package/repos/effect/.changeset/anthropic-4-6-structured-output.md +5 -0
- package/repos/effect/.changeset/asyncresult-exhaustive.md +5 -0
- package/repos/effect/.changeset/atom-stream-error-type.md +5 -0
- package/repos/effect/.changeset/beige-paths-sort.md +5 -0
- package/repos/effect/.changeset/better-apples-nail.md +5 -0
- package/repos/effect/.changeset/better-rocks-arrive.md +5 -0
- package/repos/effect/.changeset/big-pans-look.md +5 -0
- package/repos/effect/.changeset/blue-dingos-greet.md +5 -0
- package/repos/effect/.changeset/blue-ligers-cheat.md +5 -0
- package/repos/effect/.changeset/blue-onions-smile.md +5 -0
- package/repos/effect/.changeset/blue-ravens-type.md +5 -0
- package/repos/effect/.changeset/blue-trams-kiss.md +7 -0
- package/repos/effect/.changeset/bold-chairs-yawn.md +5 -0
- package/repos/effect/.changeset/bold-planets-shout.md +30 -0
- package/repos/effect/.changeset/breezy-meals-see.md +5 -0
- package/repos/effect/.changeset/bright-bugs-bow.md +5 -0
- package/repos/effect/.changeset/bright-canyons-clean.md +5 -0
- package/repos/effect/.changeset/bright-dogs-fail.md +5 -0
- package/repos/effect/.changeset/bright-flags-stand.md +5 -0
- package/repos/effect/.changeset/bright-laws-teach.md +5 -0
- package/repos/effect/.changeset/bright-lemons-dance.md +5 -0
- package/repos/effect/.changeset/bright-planes-smash.md +5 -0
- package/repos/effect/.changeset/bright-rats-attend.md +5 -0
- package/repos/effect/.changeset/bright-toes-rush.md +5 -0
- package/repos/effect/.changeset/bumpy-boxes-teach.md +5 -0
- package/repos/effect/.changeset/busy-lions-sneeze.md +5 -0
- package/repos/effect/.changeset/busy-maps-attend.md +7 -0
- package/repos/effect/.changeset/calm-buckets-own.md +5 -0
- package/repos/effect/.changeset/calm-carrots-march.md +7 -0
- package/repos/effect/.changeset/calm-cars-rest.md +5 -0
- package/repos/effect/.changeset/calm-panthers-nail.md +5 -0
- package/repos/effect/.changeset/calm-seas-smile.md +5 -0
- package/repos/effect/.changeset/calm-squids-hug.md +5 -0
- package/repos/effect/.changeset/chatty-poets-type.md +5 -0
- package/repos/effect/.changeset/chilled-mice-wash.md +5 -0
- package/repos/effect/.changeset/chilly-pumas-rule.md +5 -0
- package/repos/effect/.changeset/chubby-buckets-feel.md +5 -0
- package/repos/effect/.changeset/chubby-parents-flow.md +5 -0
- package/repos/effect/.changeset/chubby-planets-fall.md +5 -0
- package/repos/effect/.changeset/clean-balloons-tan.md +5 -0
- package/repos/effect/.changeset/clean-bulldogs-care.md +5 -0
- package/repos/effect/.changeset/clean-dryers-sneeze.md +5 -0
- package/repos/effect/.changeset/clean-geese-work.md +5 -0
- package/repos/effect/.changeset/clean-goats-wave.md +5 -0
- package/repos/effect/.changeset/clean-needles-shake.md +23 -0
- package/repos/effect/.changeset/clean-tires-guess.md +5 -0
- package/repos/effect/.changeset/clear-spies-boil.md +5 -0
- package/repos/effect/.changeset/cli-help-choices.md +5 -0
- package/repos/effect/.changeset/cold-knives-lie.md +35 -0
- package/repos/effect/.changeset/cold-rooms-show.md +5 -0
- package/repos/effect/.changeset/cold-sloths-wave.md +5 -0
- package/repos/effect/.changeset/compact-json-schema-enum.md +25 -0
- package/repos/effect/.changeset/config-withdefault-eager.md +7 -0
- package/repos/effect/.changeset/config.json +24 -0
- package/repos/effect/.changeset/consolidate-encoding.md +5 -0
- package/repos/effect/.changeset/consolidate-sql-error.md +16 -0
- package/repos/effect/.changeset/crisp-seas-warn.md +5 -0
- package/repos/effect/.changeset/cuddly-rooms-bet.md +5 -0
- package/repos/effect/.changeset/curly-poems-talk.md +5 -0
- package/repos/effect/.changeset/curly-spies-relax.md +5 -0
- package/repos/effect/.changeset/curvy-apples-float.md +5 -0
- package/repos/effect/.changeset/custom-http-security-openapi-generator.md +5 -0
- package/repos/effect/.changeset/cute-heads-thank.md +5 -0
- package/repos/effect/.changeset/cyan-loops-grow.md +5 -0
- package/repos/effect/.changeset/cyan-radios-switch.md +5 -0
- package/repos/effect/.changeset/deep-rivers-spend.md +5 -0
- package/repos/effect/.changeset/dirty-lamps-trade.md +5 -0
- package/repos/effect/.changeset/dirty-laws-wear.md +5 -0
- package/repos/effect/.changeset/duration-temporal-object-input.md +7 -0
- package/repos/effect/.changeset/eager-coats-cheat.md +5 -0
- package/repos/effect/.changeset/early-birds-dream.md +5 -0
- package/repos/effect/.changeset/early-donuts-argue.md +5 -0
- package/repos/effect/.changeset/early-peaches-check.md +6 -0
- package/repos/effect/.changeset/eff-691-default-logger-ordering.md +5 -0
- package/repos/effect/.changeset/eff-693-rpcgroup-handler-deps.md +5 -0
- package/repos/effect/.changeset/eff-694-cli-completions-module.md +5 -0
- package/repos/effect/.changeset/eff-695-layer-mock-dual-api.md +5 -0
- package/repos/effect/.changeset/eff-697-rpcserialization-json-array-decode.md +5 -0
- package/repos/effect/.changeset/eff-698-rpcserialization-unreachable-branch.md +5 -0
- package/repos/effect/.changeset/eff-700-httpapi-middleware-errors.md +12 -0
- package/repos/effect/.changeset/eff-701-httpapierror-respondable.md +5 -0
- package/repos/effect/.changeset/eff-704-stream-merge-predicate.md +5 -0
- package/repos/effect/.changeset/eff-705-layer-tap-apis.md +5 -0
- package/repos/effect/.changeset/eff-706-servicemap-mutate.md +6 -0
- package/repos/effect/.changeset/eff-716-response-id-tracker-map.md +5 -0
- package/repos/effect/.changeset/eff-717-openai-socket-cancel.md +5 -0
- package/repos/effect/.changeset/eff-718-embedding-model-surface.md +13 -0
- package/repos/effect/.changeset/eff-725-fix-catch-jsdoc.md +5 -0
- package/repos/effect/.changeset/eff-726-model-dimensions.md +7 -0
- package/repos/effect/.changeset/eff-727-cli-help-alignment.md +5 -0
- package/repos/effect/.changeset/eff-730-language-model-incremental-fallback.md +5 -0
- package/repos/effect/.changeset/eff-736-cached-with-ttl.md +5 -0
- package/repos/effect/.changeset/eff-738-cron-prev.md +5 -0
- package/repos/effect/.changeset/eff-739-openai-function-call-done.md +5 -0
- package/repos/effect/.changeset/eff-740-missing-summary-parts.md +5 -0
- package/repos/effect/.changeset/eff-742-http-client-request-web.md +5 -0
- package/repos/effect/.changeset/eff-744-sqlite-migrator-lock.md +5 -0
- package/repos/effect/.changeset/eff-746-fixed-iteration-catchup.md +5 -0
- package/repos/effect/.changeset/eff-747-unify-effect.md +5 -0
- package/repos/effect/.changeset/eff-754-url-builder-any.md +6 -0
- package/repos/effect/.changeset/eff-755-references-core.md +5 -0
- package/repos/effect/.changeset/eff-769-select-text-highlight.md +5 -0
- package/repos/effect/.changeset/eff-774-mutable-list-append-all-empty-array.md +5 -0
- package/repos/effect/.changeset/eff-777-schema-make-effect.md +5 -0
- package/repos/effect/.changeset/eff-778-http-middleware-path-logger.md +5 -0
- package/repos/effect/.changeset/eff-779-keyvaluestore-layer-sql.md +5 -0
- package/repos/effect/.changeset/eff-780-layer-unify.md +5 -0
- package/repos/effect/.changeset/eff-781-fix-stream-toqueue-types.md +5 -0
- package/repos/effect/.changeset/eff-782-httpapi-status-literals.md +5 -0
- package/repos/effect/.changeset/eff-783-atom-http-api-errors.md +5 -0
- package/repos/effect/.changeset/eff-819-cluster-workflow-shard-groups.md +5 -0
- package/repos/effect/.changeset/eight-turkeys-own.md +7 -0
- package/repos/effect/.changeset/eighty-lies-deny.md +5 -0
- package/repos/effect/.changeset/eighty-poets-draw.md +9 -0
- package/repos/effect/.changeset/eighty-swans-scream.md +5 -0
- package/repos/effect/.changeset/eighty-teeth-sniff.md +5 -0
- package/repos/effect/.changeset/eleven-apes-share.md +5 -0
- package/repos/effect/.changeset/eleven-numbers-bake.md +5 -0
- package/repos/effect/.changeset/empty-gifts-beg.md +5 -0
- package/repos/effect/.changeset/empty-http-rpc-client.md +5 -0
- package/repos/effect/.changeset/eventlog-unencrypted.md +5 -0
- package/repos/effect/.changeset/expand-schema-filter-output.md +24 -0
- package/repos/effect/.changeset/export-schema-encode-keys-interface.md +7 -0
- package/repos/effect/.changeset/extract-semaphore-latch.md +10 -0
- package/repos/effect/.changeset/fair-bees-relax.md +5 -0
- package/repos/effect/.changeset/fair-buttons-share.md +7 -0
- package/repos/effect/.changeset/fair-cooks-stop.md +5 -0
- package/repos/effect/.changeset/fair-cups-train.md +5 -0
- package/repos/effect/.changeset/fair-dryers-speak.md +5 -0
- package/repos/effect/.changeset/fair-forks-shake.md +5 -0
- package/repos/effect/.changeset/fair-pandas-prove.md +5 -0
- package/repos/effect/.changeset/fair-pants-float.md +5 -0
- package/repos/effect/.changeset/fair-poems-visit.md +5 -0
- package/repos/effect/.changeset/famous-wolves-lead.md +5 -0
- package/repos/effect/.changeset/fancy-glasses-grow.md +5 -0
- package/repos/effect/.changeset/fast-times-camp.md +5 -0
- package/repos/effect/.changeset/few-birds-matter.md +5 -0
- package/repos/effect/.changeset/few-cougars-dig.md +5 -0
- package/repos/effect/.changeset/few-foxes-grin.md +5 -0
- package/repos/effect/.changeset/few-mirrors-pull.md +14 -0
- package/repos/effect/.changeset/few-socks-poke.md +5 -0
- package/repos/effect/.changeset/fiber-runtime-start-metrics.md +5 -0
- package/repos/effect/.changeset/fiery-jokes-care.md +5 -0
- package/repos/effect/.changeset/fiery-mammals-call.md +5 -0
- package/repos/effect/.changeset/fine-walls-decide.md +5 -0
- package/repos/effect/.changeset/first-success-of.md +5 -0
- package/repos/effect/.changeset/five-parents-relax.md +5 -0
- package/repos/effect/.changeset/five-worms-rhyme.md +5 -0
- package/repos/effect/.changeset/fix-1332.md +5 -0
- package/repos/effect/.changeset/fix-1917.md +11 -0
- package/repos/effect/.changeset/fix-1927.md +5 -0
- package/repos/effect/.changeset/fix-1940.md +7 -0
- package/repos/effect/.changeset/fix-1947.md +7 -0
- package/repos/effect/.changeset/fix-2002.md +5 -0
- package/repos/effect/.changeset/fix-2012.md +5 -0
- package/repos/effect/.changeset/fix-2015.md +5 -0
- package/repos/effect/.changeset/fix-2260.md +5 -0
- package/repos/effect/.changeset/fix-2268.md +5 -0
- package/repos/effect/.changeset/fix-2271.md +5 -0
- package/repos/effect/.changeset/fix-2384.md +7 -0
- package/repos/effect/.changeset/fix-ai-empty-params-structured-output.md +5 -0
- package/repos/effect/.changeset/fix-ai-text-toolkit-typing.md +5 -0
- package/repos/effect/.changeset/fix-catch-orelse-error-erasure.md +5 -0
- package/repos/effect/.changeset/fix-class-constructor-defaults.md +5 -0
- package/repos/effect/.changeset/fix-cli-mixed-global-flag-context.md +7 -0
- package/repos/effect/.changeset/fix-config-withDefault.md +5 -0
- package/repos/effect/.changeset/fix-config-withdefault-filter.md +7 -0
- package/repos/effect/.changeset/fix-datetime-gmt.md +5 -0
- package/repos/effect/.changeset/fix-devtools-flush-on-teardown.md +10 -0
- package/repos/effect/.changeset/fix-duration-symmetric-rounding.md +5 -0
- package/repos/effect/.changeset/fix-entity-manager-defect-replay.md +5 -0
- package/repos/effect/.changeset/fix-entity-proxy-rpc-handler-context.md +5 -0
- package/repos/effect/.changeset/fix-entity-proxy-server-path-params.md +5 -0
- package/repos/effect/.changeset/fix-from-readable-stream-cancel-defect.md +5 -0
- package/repos/effect/.changeset/fix-graph-undirected-traversal.md +5 -0
- package/repos/effect/.changeset/fix-has-interrupts-only-empty.md +5 -0
- package/repos/effect/.changeset/fix-hashmap-bit31-ordering.md +5 -0
- package/repos/effect/.changeset/fix-headers-proto-enumerability.md +5 -0
- package/repos/effect/.changeset/fix-http-incoming-message-parse-options.md +5 -0
- package/repos/effect/.changeset/fix-httpapi-endpoint-error-inference.md +5 -0
- package/repos/effect/.changeset/fix-httpapi-schema-types.md +5 -0
- package/repos/effect/.changeset/fix-httpapi-security-middleware-cache.md +5 -0
- package/repos/effect/.changeset/fix-is-json-dag.md +7 -0
- package/repos/effect/.changeset/fix-json-schema-anyof-oneof-siblings.md +5 -0
- package/repos/effect/.changeset/fix-json-schema-import-json.md +5 -0
- package/repos/effect/.changeset/fix-keepalive-blocked-timers.md +5 -0
- package/repos/effect/.changeset/fix-mcp-param-name-resolution.md +5 -0
- package/repos/effect/.changeset/fix-mermaid-escape-special-chars.md +5 -0
- package/repos/effect/.changeset/fix-mutable-list-filter-length.md +5 -0
- package/repos/effect/.changeset/fix-object-keyword-json-schema.md +5 -0
- package/repos/effect/.changeset/fix-openai-mcp-tool-names.md +5 -0
- package/repos/effect/.changeset/fix-openapi-generator-form-urlencoded.md +5 -0
- package/repos/effect/.changeset/fix-openapi-generator-swagger2openapi.md +5 -0
- package/repos/effect/.changeset/fix-openapi-preserve-multiple-response-content-types.md +5 -0
- package/repos/effect/.changeset/fix-openrouter-sparse-array.md +5 -0
- package/repos/effect/.changeset/fix-otel-logger-clock-skew.md +7 -0
- package/repos/effect/.changeset/fix-otel-logger-severity-number.md +20 -0
- package/repos/effect/.changeset/fix-queue-collect-duplication.md +5 -0
- package/repos/effect/.changeset/fix-random-string-seeds.md +5 -0
- package/repos/effect/.changeset/fix-ratelimiter-tokenbucket-redis-ttl.md +5 -0
- package/repos/effect/.changeset/fix-remainder-scientific-notation.md +5 -0
- package/repos/effect/.changeset/fix-request-resolver-pending-batches-leak.md +5 -0
- package/repos/effect/.changeset/fix-retry-transient-autocomplete.md +5 -0
- package/repos/effect/.changeset/fix-rpc-http-requestids-finalizer.md +5 -0
- package/repos/effect/.changeset/fix-rpc-json-id-edges.md +5 -0
- package/repos/effect/.changeset/fix-schedule-fixed-double-exec.md +9 -0
- package/repos/effect/.changeset/fix-schedule-reduce-sync-state.md +5 -0
- package/repos/effect/.changeset/fix-schema-arbitrary-exclusive-bounds.md +5 -0
- package/repos/effect/.changeset/fix-schema-defect-message.md +5 -0
- package/repos/effect/.changeset/fix-schema-encode-keys-property-keys.md +5 -0
- package/repos/effect/.changeset/fix-schema-encodekeys-class.md +5 -0
- package/repos/effect/.changeset/fix-schema-encodekeys-struct.md +5 -0
- package/repos/effect/.changeset/fix-schema-identifier-expected-message.md +5 -0
- package/repos/effect/.changeset/fix-schema-is-uuid.md +5 -0
- package/repos/effect/.changeset/fix-schema-option-non-schema-failures.md +17 -0
- package/repos/effect/.changeset/fix-schema-parser-checks.md +9 -0
- package/repos/effect/.changeset/fix-searchparam-initial-decode.md +5 -0
- package/repos/effect/.changeset/fix-serializable-wire-transfer.md +7 -0
- package/repos/effect/.changeset/fix-stream-grouped-within-flush.md +5 -0
- package/repos/effect/.changeset/fix-stream-run-for-each-while.md +5 -0
- package/repos/effect/.changeset/fix-stream-scan-effect.md +5 -0
- package/repos/effect/.changeset/fix-stream-scoped-scope.md +5 -0
- package/repos/effect/.changeset/fix-strip-approval-artifacts-multi-round.md +13 -0
- package/repos/effect/.changeset/fix-struct-utility-types-simplify.md +5 -0
- package/repos/effect/.changeset/fix-structwithrest-index-signatures.md +6 -0
- package/repos/effect/.changeset/fix-tagged-union-class-sentinels.md +5 -0
- package/repos/effect/.changeset/fix-tagged-union-match-unify.md +6 -0
- package/repos/effect/.changeset/fix-to-tagged-union-isanyof-custom-tags.md +10 -0
- package/repos/effect/.changeset/fix-tuple-with-rest-post-rest-index-drift.md +5 -0
- package/repos/effect/.changeset/fix-tuple-with-rest-post-rest-validation.md +5 -0
- package/repos/effect/.changeset/fix-types-voidifempty.md +5 -0
- package/repos/effect/.changeset/fix-void-response-encoding.md +5 -0
- package/repos/effect/.changeset/fix-workflow-proxy-rpc-handler-context.md +5 -0
- package/repos/effect/.changeset/flat-chicken-remain.md +5 -0
- package/repos/effect/.changeset/floppy-cows-spend.md +5 -0
- package/repos/effect/.changeset/floppy-items-admire.md +5 -0
- package/repos/effect/.changeset/floppy-pigs-kiss.md +5 -0
- package/repos/effect/.changeset/fluffy-meals-matter.md +5 -0
- package/repos/effect/.changeset/fluffy-pumas-push.md +5 -0
- package/repos/effect/.changeset/forked-memo-maps.md +6 -0
- package/repos/effect/.changeset/forty-hounds-cheer.md +5 -0
- package/repos/effect/.changeset/forty-otters-cry.md +5 -0
- package/repos/effect/.changeset/forty-rings-film.md +7 -0
- package/repos/effect/.changeset/forty-signs-stay.md +5 -0
- package/repos/effect/.changeset/forty-swans-divide.md +5 -0
- package/repos/effect/.changeset/forty-trees-pay.md +5 -0
- package/repos/effect/.changeset/four-papayas-bow.md +5 -0
- package/repos/effect/.changeset/four-points-repeat.md +5 -0
- package/repos/effect/.changeset/fresh-cats-smash.md +5 -0
- package/repos/effect/.changeset/fresh-emus-cheat.md +5 -0
- package/repos/effect/.changeset/fresh-monkeys-smoke.md +9 -0
- package/repos/effect/.changeset/fruity-houses-learn.md +6 -0
- package/repos/effect/.changeset/full-adults-double.md +5 -0
- package/repos/effect/.changeset/funny-crabs-hang.md +6 -0
- package/repos/effect/.changeset/funny-forks-move.md +5 -0
- package/repos/effect/.changeset/fuzzy-camels-hunt.md +5 -0
- package/repos/effect/.changeset/fuzzy-dodos-help.md +5 -0
- package/repos/effect/.changeset/fuzzy-lions-perform.md +5 -0
- package/repos/effect/.changeset/fuzzy-planets-sneeze.md +5 -0
- package/repos/effect/.changeset/gold-meteors-move.md +5 -0
- package/repos/effect/.changeset/gold-readers-hug.md +5 -0
- package/repos/effect/.changeset/gold-rings-start.md +5 -0
- package/repos/effect/.changeset/good-tools-work.md +7 -0
- package/repos/effect/.changeset/graph-algorithm-fixes.md +5 -0
- package/repos/effect/.changeset/great-trains-mate.md +5 -0
- package/repos/effect/.changeset/great-trams-report.md +5 -0
- package/repos/effect/.changeset/green-beds-unref.md +7 -0
- package/repos/effect/.changeset/green-chips-wash.md +5 -0
- package/repos/effect/.changeset/green-moons-smile.md +5 -0
- package/repos/effect/.changeset/green-pugs-play.md +5 -0
- package/repos/effect/.changeset/green-rings-prove.md +5 -0
- package/repos/effect/.changeset/happy-mirrors-dream.md +5 -0
- package/repos/effect/.changeset/heavy-loops-cut.md +5 -0
- package/repos/effect/.changeset/heavy-trams-fix.md +5 -0
- package/repos/effect/.changeset/hip-socks-travel.md +5 -0
- package/repos/effect/.changeset/honest-pens-thank.md +5 -0
- package/repos/effect/.changeset/honest-rivers-notice.md +5 -0
- package/repos/effect/.changeset/hot-taxis-fry.md +5 -0
- package/repos/effect/.changeset/httpapi-endpoint-relax-constraints.md +5 -0
- package/repos/effect/.changeset/httpapi-schema-service-types.md +6 -0
- package/repos/effect/.changeset/huge-moons-rhyme.md +5 -0
- package/repos/effect/.changeset/humble-pigs-dig.md +5 -0
- package/repos/effect/.changeset/icy-flies-cross.md +5 -0
- package/repos/effect/.changeset/itchy-radios-poke.md +5 -0
- package/repos/effect/.changeset/itchy-results-bet.md +5 -0
- package/repos/effect/.changeset/itchy-shrimps-deny.md +5 -0
- package/repos/effect/.changeset/itchy-toes-promise.md +5 -0
- package/repos/effect/.changeset/k8s-last-transition-null.md +5 -0
- package/repos/effect/.changeset/khaki-cats-learn.md +5 -0
- package/repos/effect/.changeset/khaki-melons-appear.md +5 -0
- package/repos/effect/.changeset/kind-hounds-float.md +5 -0
- package/repos/effect/.changeset/kind-windows-fall.md +5 -0
- package/repos/effect/.changeset/late-hotels-rule.md +5 -0
- package/repos/effect/.changeset/late-lamps-care.md +5 -0
- package/repos/effect/.changeset/late-rivers-applaud.md +5 -0
- package/repos/effect/.changeset/layer-map-dynamic-idle-ttl.md +5 -0
- package/repos/effect/.changeset/lazy-queens-rush.md +5 -0
- package/repos/effect/.changeset/lazy-recursive-forward-refs.md +5 -0
- package/repos/effect/.changeset/lazy-timers-exist.md +5 -0
- package/repos/effect/.changeset/legal-pants-drop.md +5 -0
- package/repos/effect/.changeset/lemon-taxis-sin.md +5 -0
- package/repos/effect/.changeset/light-kids-sneeze.md +5 -0
- package/repos/effect/.changeset/little-dryers-allow.md +7 -0
- package/repos/effect/.changeset/long-cameras-think.md +5 -0
- package/repos/effect/.changeset/lovely-cobras-change.md +5 -0
- package/repos/effect/.changeset/lovely-frogs-rescue.md +5 -0
- package/repos/effect/.changeset/lucky-buttons-jump.md +5 -0
- package/repos/effect/.changeset/lucky-phones-listen.md +5 -0
- package/repos/effect/.changeset/lucky-worms-type.md +5 -0
- package/repos/effect/.changeset/mean-dingos-share.md +5 -0
- package/repos/effect/.changeset/mean-trains-smash.md +5 -0
- package/repos/effect/.changeset/metal-parts-yell.md +5 -0
- package/repos/effect/.changeset/mighty-games-matter.md +5 -0
- package/repos/effect/.changeset/modern-uuid-guid-filter.md +5 -0
- package/repos/effect/.changeset/nasty-geese-grow.md +5 -0
- package/repos/effect/.changeset/neat-goats-wave.md +5 -0
- package/repos/effect/.changeset/neat-kings-chew.md +5 -0
- package/repos/effect/.changeset/neat-lions-rest.md +5 -0
- package/repos/effect/.changeset/neat-snails-wash.md +5 -0
- package/repos/effect/.changeset/neat-taxis-notice.md +5 -0
- package/repos/effect/.changeset/new-dogs-swim.md +5 -0
- package/repos/effect/.changeset/new-toes-stop.md +5 -0
- package/repos/effect/.changeset/ninety-geese-exist.md +5 -0
- package/repos/effect/.changeset/odd-boats-think.md +5 -0
- package/repos/effect/.changeset/odd-bulldogs-sleep.md +5 -0
- package/repos/effect/.changeset/odd-fans-glow.md +5 -0
- package/repos/effect/.changeset/odd-forks-talk.md +5 -0
- package/repos/effect/.changeset/odd-laws-draw.md +5 -0
- package/repos/effect/.changeset/odd-owls-smoke.md +5 -0
- package/repos/effect/.changeset/odd-socks-boil.md +5 -0
- package/repos/effect/.changeset/odd-suns-dance.md +5 -0
- package/repos/effect/.changeset/old-brooms-cry.md +5 -0
- package/repos/effect/.changeset/old-facts-stand.md +5 -0
- package/repos/effect/.changeset/old-mirrors-float.md +5 -0
- package/repos/effect/.changeset/olive-poems-visit.md +5 -0
- package/repos/effect/.changeset/open-hotels-remain.md +5 -0
- package/repos/effect/.changeset/openai-compat-nullable-tool-name.md +7 -0
- package/repos/effect/.changeset/openai-compat-reasoning.md +5 -0
- package/repos/effect/.changeset/otel-resource-env-precedence.md +5 -0
- package/repos/effect/.changeset/perfect-buckets-tickle.md +5 -0
- package/repos/effect/.changeset/petite-months-allow.md +6 -0
- package/repos/effect/.changeset/platform-crypto-service.md +9 -0
- package/repos/effect/.changeset/platform-node-shared-barrel.md +5 -0
- package/repos/effect/.changeset/plenty-moons-pull.md +5 -0
- package/repos/effect/.changeset/polite-brooms-tickle.md +5 -0
- package/repos/effect/.changeset/polite-pigs-speak.md +5 -0
- package/repos/effect/.changeset/polite-tables-kneel.md +5 -0
- package/repos/effect/.changeset/port-react-hydration.md +8 -0
- package/repos/effect/.changeset/pre.json +588 -0
- package/repos/effect/.changeset/public-deer-ring.md +5 -0
- package/repos/effect/.changeset/public-jeans-stop.md +5 -0
- package/repos/effect/.changeset/pubsub-publish-false.md +5 -0
- package/repos/effect/.changeset/puny-pens-clap.md +6 -0
- package/repos/effect/.changeset/purple-bars-prove.md +5 -0
- package/repos/effect/.changeset/purple-schools-float.md +5 -0
- package/repos/effect/.changeset/purple-turtles-draw.md +5 -0
- package/repos/effect/.changeset/quick-dragons-fix.md +5 -0
- package/repos/effect/.changeset/quick-falcons-travel.md +5 -0
- package/repos/effect/.changeset/quick-geese-relax.md +5 -0
- package/repos/effect/.changeset/quick-lamps-dig.md +5 -0
- package/repos/effect/.changeset/quick-lizards-fall.md +5 -0
- package/repos/effect/.changeset/quick-trees-join.md +5 -0
- package/repos/effect/.changeset/quiet-carpets-grin.md +5 -0
- package/repos/effect/.changeset/quiet-files-hunt.md +5 -0
- package/repos/effect/.changeset/quiet-lamps-jam.md +5 -0
- package/repos/effect/.changeset/quiet-radios-wave.md +5 -0
- package/repos/effect/.changeset/quiet-redis-scripts.md +5 -0
- package/repos/effect/.changeset/ready-olives-divide.md +5 -0
- package/repos/effect/.changeset/real-trains-ring.md +5 -0
- package/repos/effect/.changeset/red-pigs-repair.md +5 -0
- package/repos/effect/.changeset/redacted-representation-options.md +7 -0
- package/repos/effect/.changeset/refactor-cli-global-flags.md +27 -0
- package/repos/effect/.changeset/refactor-config-provider.md +23 -0
- package/repos/effect/.changeset/refactor-representation-references.md +5 -0
- package/repos/effect/.changeset/remove-effect-transactionwith.md +5 -0
- package/repos/effect/.changeset/remove-http-span-counter.md +5 -0
- package/repos/effect/.changeset/remove-nullor.md +5 -0
- package/repos/effect/.changeset/remove-openapi-fromapi-options.md +7 -0
- package/repos/effect/.changeset/remove-types-mergerecord.md +5 -0
- package/repos/effect/.changeset/remove-unused-utils-apis.md +5 -0
- package/repos/effect/.changeset/rename-rebuild-out.md +5 -0
- package/repos/effect/.changeset/restore-schema-parse-options.md +5 -0
- package/repos/effect/.changeset/rich-dots-push.md +5 -0
- package/repos/effect/.changeset/rich-hoops-nail.md +5 -0
- package/repos/effect/.changeset/rich-sloths-draw.md +5 -0
- package/repos/effect/.changeset/ripe-lies-battle.md +5 -0
- package/repos/effect/.changeset/rpc-middleware-provides-fix.md +5 -0
- package/repos/effect/.changeset/scalar-custom-fetch.md +5 -0
- package/repos/effect/.changeset/schema-as-class.md +17 -0
- package/repos/effect/.changeset/schema-asserts-signature.md +5 -0
- package/repos/effect/.changeset/schema-clean-up-additionalProperties.md +7 -0
- package/repos/effect/.changeset/schema-datetime-utc-from-string.md +5 -0
- package/repos/effect/.changeset/schema-decoding-defaults-services.md +7 -0
- package/repos/effect/.changeset/schema-defaults-issue-channel.md +7 -0
- package/repos/effect/.changeset/schema-dollar-prefix.md +5 -0
- package/repos/effect/.changeset/schema-missing-self-generic.md +5 -0
- package/repos/effect/.changeset/schema-ordered-arbitrary-constraints.md +12 -0
- package/repos/effect/.changeset/schema-parser-adapter-errors.md +5 -0
- package/repos/effect/.changeset/schema-refactor-toCodecJson.md +5 -0
- package/repos/effect/.changeset/schema-remove-annotate-in.md +5 -0
- package/repos/effect/.changeset/schema-rename-makeUnsafe-to-make.md +7 -0
- package/repos/effect/.changeset/schema-rename-parser-makeUnsafe.md +5 -0
- package/repos/effect/.changeset/schema-result-combinators.md +5 -0
- package/repos/effect/.changeset/schema-struct-simplify.md +5 -0
- package/repos/effect/.changeset/seven-mugs-marry.md +5 -0
- package/repos/effect/.changeset/shaggy-birds-stay.md +5 -0
- package/repos/effect/.changeset/shaggy-cities-push.md +5 -0
- package/repos/effect/.changeset/shaggy-numbers-accept.md +5 -0
- package/repos/effect/.changeset/sharp-emus-applaud.md +5 -0
- package/repos/effect/.changeset/sharp-goats-wink.md +5 -0
- package/repos/effect/.changeset/sharp-pandas-care.md +5 -0
- package/repos/effect/.changeset/sharp-peas-march.md +5 -0
- package/repos/effect/.changeset/sharp-rules-draw.md +5 -0
- package/repos/effect/.changeset/sharp-singers-sort.md +5 -0
- package/repos/effect/.changeset/shiny-trains-hug.md +5 -0
- package/repos/effect/.changeset/short-cows-relate.md +5 -0
- package/repos/effect/.changeset/short-foxes-admire.md +5 -0
- package/repos/effect/.changeset/shy-cycles-flow.md +5 -0
- package/repos/effect/.changeset/shy-geckos-sniff.md +30 -0
- package/repos/effect/.changeset/silent-geckos-matter.md +5 -0
- package/repos/effect/.changeset/silent-needles-design.md +6 -0
- package/repos/effect/.changeset/silent-plants-matter.md +8 -0
- package/repos/effect/.changeset/silent-spoons-stare.md +5 -0
- package/repos/effect/.changeset/silly-loops-tickle.md +5 -0
- package/repos/effect/.changeset/silver-bulk-indexeddb.md +5 -0
- package/repos/effect/.changeset/silver-emus-smoke.md +5 -0
- package/repos/effect/.changeset/silver-kings-poke.md +5 -0
- package/repos/effect/.changeset/silver-snails-sqlite.md +17 -0
- package/repos/effect/.changeset/silver-wings-watch.md +5 -0
- package/repos/effect/.changeset/six-cups-taste.md +5 -0
- package/repos/effect/.changeset/sixty-mails-shout.md +5 -0
- package/repos/effect/.changeset/sixty-socks-yell.md +5 -0
- package/repos/effect/.changeset/slimy-planets-divide.md +5 -0
- package/repos/effect/.changeset/slimy-turtles-juggle.md +5 -0
- package/repos/effect/.changeset/slow-beans-battle.md +28 -0
- package/repos/effect/.changeset/slow-berries-enjoy.md +5 -0
- package/repos/effect/.changeset/small-bugs-hunt.md +5 -0
- package/repos/effect/.changeset/small-crabs-care.md +9 -0
- package/repos/effect/.changeset/small-pets-sit.md +6 -0
- package/repos/effect/.changeset/smart-ducks-jump.md +6 -0
- package/repos/effect/.changeset/smart-pillows-buy.md +6 -0
- package/repos/effect/.changeset/smart-timers-fly.md +5 -0
- package/repos/effect/.changeset/smart-tips-sort.md +5 -0
- package/repos/effect/.changeset/social-pumas-prove.md +5 -0
- package/repos/effect/.changeset/soft-comics-wink.md +5 -0
- package/repos/effect/.changeset/soft-delete-sqlmodel.md +5 -0
- package/repos/effect/.changeset/soft-seals-allow.md +5 -0
- package/repos/effect/.changeset/solid-cougars-attack.md +5 -0
- package/repos/effect/.changeset/solid-doors-ring.md +5 -0
- package/repos/effect/.changeset/solid-items-tease.md +5 -0
- package/repos/effect/.changeset/solid-towns-smoke.md +5 -0
- package/repos/effect/.changeset/sour-canyons-rescue.md +5 -0
- package/repos/effect/.changeset/sparkly-bears-act.md +5 -0
- package/repos/effect/.changeset/sparkly-coins-sit.md +5 -0
- package/repos/effect/.changeset/spotty-comics-fry.md +5 -0
- package/repos/effect/.changeset/sql-migrator-mjs-mts.md +5 -0
- package/repos/effect/.changeset/stale-dots-tell.md +5 -0
- package/repos/effect/.changeset/stale-snakes-know.md +5 -0
- package/repos/effect/.changeset/strict-areas-end.md +5 -0
- package/repos/effect/.changeset/strict-buckets-hug.md +8 -0
- package/repos/effect/.changeset/strip-resolved-approvals.md +5 -0
- package/repos/effect/.changeset/strong-balloons-tickle.md +5 -0
- package/repos/effect/.changeset/strong-bees-queue.md +5 -0
- package/repos/effect/.changeset/struct-record.md +5 -0
- package/repos/effect/.changeset/sunny-ads-hang.md +5 -0
- package/repos/effect/.changeset/sunny-bikes-sleep.md +5 -0
- package/repos/effect/.changeset/sunny-rooms-invent.md +5 -0
- package/repos/effect/.changeset/sweet-donuts-bet.md +5 -0
- package/repos/effect/.changeset/sweet-hotels-give.md +5 -0
- package/repos/effect/.changeset/sweet-views-learn.md +5 -0
- package/repos/effect/.changeset/swift-spiders-unpack.md +5 -0
- package/repos/effect/.changeset/swift-symbols-stand.md +5 -0
- package/repos/effect/.changeset/tagged-error-class-optional-empty-props.md +5 -0
- package/repos/effect/.changeset/tall-hairs-return.md +5 -0
- package/repos/effect/.changeset/tall-mails-listen.md +5 -0
- package/repos/effect/.changeset/tall-queens-cheer.md +5 -0
- package/repos/effect/.changeset/tall-wombats-wave.md +5 -0
- package/repos/effect/.changeset/tangy-colts-lose.md +5 -0
- package/repos/effect/.changeset/tasty-comics-send.md +5 -0
- package/repos/effect/.changeset/ten-kings-fry.md +5 -0
- package/repos/effect/.changeset/thick-pandas-wait.md +5 -0
- package/repos/effect/.changeset/thin-ducks-wonder.md +5 -0
- package/repos/effect/.changeset/thirty-ducks-go.md +5 -0
- package/repos/effect/.changeset/thirty-pans-love.md +5 -0
- package/repos/effect/.changeset/three-corners-sort.md +5 -0
- package/repos/effect/.changeset/three-ravens-jam.md +5 -0
- package/repos/effect/.changeset/three-tomatoes-wave.md +5 -0
- package/repos/effect/.changeset/tidy-foxes-own.md +5 -0
- package/repos/effect/.changeset/tidy-icons-glow.md +5 -0
- package/repos/effect/.changeset/tidy-stacks-encode.md +5 -0
- package/repos/effect/.changeset/tidy-stars-drive.md +5 -0
- package/repos/effect/.changeset/tiny-buckets-wave.md +5 -0
- package/repos/effect/.changeset/tiny-lilies-flash.md +5 -0
- package/repos/effect/.changeset/tiny-rabbits-smile.md +5 -0
- package/repos/effect/.changeset/tocodecjson-return-json-type.md +10 -0
- package/repos/effect/.changeset/tool-get-json-schema-tests.md +5 -0
- package/repos/effect/.changeset/true-actors-battle.md +5 -0
- package/repos/effect/.changeset/twenty-buttons-cheer.md +5 -0
- package/repos/effect/.changeset/two-roses-double.md +5 -0
- package/repos/effect/.changeset/unify-error-defect-stack-options.md +23 -0
- package/repos/effect/.changeset/update-schema-arbitrary-report.md +22 -0
- package/repos/effect/.changeset/upset-colts-stick.md +5 -0
- package/repos/effect/.changeset/vast-bananas-send.md +5 -0
- package/repos/effect/.changeset/vast-deserts-travel.md +5 -0
- package/repos/effect/.changeset/violet-peaches-feel.md +5 -0
- package/repos/effect/.changeset/vitest-layer-top-level-options.md +5 -0
- package/repos/effect/.changeset/wacky-grapes-poke.md +5 -0
- package/repos/effect/.changeset/wacky-rice-add.md +5 -0
- package/repos/effect/.changeset/warm-dolls-brake.md +5 -0
- package/repos/effect/.changeset/warm-friends-tie.md +5 -0
- package/repos/effect/.changeset/warm-snails-shop.md +7 -0
- package/repos/effect/.changeset/wet-news-invent.md +5 -0
- package/repos/effect/.changeset/wild-readers-clean.md +5 -0
- package/repos/effect/.changeset/wild-suns-bearer-space.md +5 -0
- package/repos/effect/.changeset/wise-ants-wave.md +6 -0
- package/repos/effect/.changeset/wise-flags-shift.md +22 -0
- package/repos/effect/.changeset/wise-oranges-stay.md +5 -0
- package/repos/effect/.changeset/witty-lobsters-share.md +5 -0
- package/repos/effect/.changeset/yellow-adults-study.md +5 -0
- package/repos/effect/.changeset/yellow-clocks-dance.md +5 -0
- package/repos/effect/.changeset/yellow-dingos-jump.md +5 -0
- package/repos/effect/.changeset/young-doors-change.md +5 -0
- package/repos/effect/.envrc +1 -0
- package/repos/effect/.github/actions/setup/action.yaml +33 -0
- package/repos/effect/.github/workflows/ai-codegen.yml +66 -0
- package/repos/effect/.github/workflows/bundle-comment.yml +72 -0
- package/repos/effect/.github/workflows/check.yml +195 -0
- package/repos/effect/.github/workflows/release.yml +47 -0
- package/repos/effect/.github/workflows/snapshot.yml +34 -0
- package/repos/effect/.oxlintrc.json +25 -0
- package/repos/effect/.patterns/effect.md +102 -0
- package/repos/effect/.patterns/jsdoc.md +53 -0
- package/repos/effect/.patterns/testing.md +44 -0
- package/repos/effect/.specs/README.md +2 -0
- package/repos/effect/.vscode/extensions.json +6 -0
- package/repos/effect/.vscode/settings.json +44 -0
- package/repos/effect/AGENTS.md +139 -0
- package/repos/effect/LICENSE +21 -0
- package/repos/effect/LLMS.md +343 -0
- package/repos/effect/MIGRATION.md +83 -0
- package/repos/effect/README.md +3 -0
- package/repos/effect/TODOS.md +28 -0
- package/repos/effect/ai-docs/README.md +44 -0
- package/repos/effect/ai-docs/package.json +36 -0
- package/repos/effect/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/repos/effect/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/repos/effect/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/repos/effect/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/repos/effect/ai-docs/src/01_effect/02_services/01_service.ts +45 -0
- package/repos/effect/ai-docs/src/01_effect/02_services/10_reference.ts +10 -0
- package/repos/effect/ai-docs/src/01_effect/02_services/20_layer-composition.ts +70 -0
- package/repos/effect/ai-docs/src/01_effect/02_services/20_layer-unwrap.ts +66 -0
- package/repos/effect/ai-docs/src/01_effect/02_services/index.md +5 -0
- package/repos/effect/ai-docs/src/01_effect/03_errors/01_error-handling.ts +30 -0
- package/repos/effect/ai-docs/src/01_effect/03_errors/10_catch-tags.ts +24 -0
- package/repos/effect/ai-docs/src/01_effect/03_errors/20_reason-errors.ts +64 -0
- package/repos/effect/ai-docs/src/01_effect/03_errors/index.md +1 -0
- package/repos/effect/ai-docs/src/01_effect/04_resources/10_acquire-release.ts +105 -0
- package/repos/effect/ai-docs/src/01_effect/04_resources/20_layer-side-effects.ts +31 -0
- package/repos/effect/ai-docs/src/01_effect/04_resources/30_layer-map.ts +86 -0
- package/repos/effect/ai-docs/src/01_effect/04_resources/index.md +3 -0
- package/repos/effect/ai-docs/src/01_effect/05_running/10_run-main.ts +30 -0
- package/repos/effect/ai-docs/src/01_effect/05_running/20_layer-launch.ts +27 -0
- package/repos/effect/ai-docs/src/01_effect/05_running/index.md +1 -0
- package/repos/effect/ai-docs/src/01_effect/06_pubsub/10_pubsub.ts +56 -0
- package/repos/effect/ai-docs/src/01_effect/06_pubsub/index.md +3 -0
- package/repos/effect/ai-docs/src/02_stream/10_creating-streams.ts +103 -0
- package/repos/effect/ai-docs/src/02_stream/20_consuming-streams.ts +137 -0
- package/repos/effect/ai-docs/src/02_stream/30_encoding.ts +165 -0
- package/repos/effect/ai-docs/src/02_stream/index.md +4 -0
- package/repos/effect/ai-docs/src/03_integration/10_managed-runtime.ts +129 -0
- package/repos/effect/ai-docs/src/03_integration/index.md +5 -0
- package/repos/effect/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/repos/effect/ai-docs/src/05_batching/index.md +3 -0
- package/repos/effect/ai-docs/src/06_schedule/10_schedules.ts +102 -0
- package/repos/effect/ai-docs/src/06_schedule/index.md +3 -0
- package/repos/effect/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/repos/effect/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/repos/effect/ai-docs/src/07_datetime/index.md +5 -0
- package/repos/effect/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/repos/effect/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/repos/effect/ai-docs/src/08_observability/index.md +7 -0
- package/repos/effect/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/repos/effect/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/repos/effect/ai-docs/src/09_testing/index.md +1 -0
- package/repos/effect/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/repos/effect/ai-docs/src/50_http-client/index.md +3 -0
- package/repos/effect/ai-docs/src/51_http-server/10_basics.ts +116 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
- package/repos/effect/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
- package/repos/effect/ai-docs/src/51_http-server/index.md +3 -0
- package/repos/effect/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/repos/effect/ai-docs/src/60_child-process/index.md +3 -0
- package/repos/effect/ai-docs/src/70_cli/10_basics.ts +136 -0
- package/repos/effect/ai-docs/src/70_cli/index.md +5 -0
- package/repos/effect/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/repos/effect/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/repos/effect/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/repos/effect/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/repos/effect/ai-docs/src/71_ai/index.md +5 -0
- package/repos/effect/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/repos/effect/ai-docs/src/80_cluster/index.md +4 -0
- package/repos/effect/ai-docs/src/index.md +12 -0
- package/repos/effect/ai-docs/tsconfig.json +24 -0
- package/repos/effect/cookbooks/schedule.md +3507 -0
- package/repos/effect/deno.json +33 -0
- package/repos/effect/docker-compose.yaml +18 -0
- package/repos/effect/dprint.json +32 -0
- package/repos/effect/flake.lock +27 -0
- package/repos/effect/flake.nix +24 -0
- package/repos/effect/jsdocs.config.json +16 -0
- package/repos/effect/migration/cause.md +163 -0
- package/repos/effect/migration/equality.md +72 -0
- package/repos/effect/migration/error-handling.md +106 -0
- package/repos/effect/migration/fiber-keep-alive.md +74 -0
- package/repos/effect/migration/fiberref.md +109 -0
- package/repos/effect/migration/forking.md +94 -0
- package/repos/effect/migration/generators.md +32 -0
- package/repos/effect/migration/layer-memoization.md +98 -0
- package/repos/effect/migration/runtime.md +88 -0
- package/repos/effect/migration/schema.md +1032 -0
- package/repos/effect/migration/scope.md +50 -0
- package/repos/effect/migration/services.md +235 -0
- package/repos/effect/migration/v3-to-v4.md +421 -0
- package/repos/effect/migration/yieldable.md +173 -0
- package/repos/effect/package.json +104 -0
- package/repos/effect/packages/ai/anthropic/CHANGELOG.md +611 -0
- package/repos/effect/packages/ai/anthropic/codegen.yml +63 -0
- package/repos/effect/packages/ai/anthropic/docgen.json +26 -0
- package/repos/effect/packages/ai/anthropic/package.json +67 -0
- package/repos/effect/packages/ai/anthropic/src/AnthropicClient.ts +432 -0
- package/repos/effect/packages/ai/anthropic/src/AnthropicConfig.ts +84 -0
- package/repos/effect/packages/ai/anthropic/src/AnthropicError.ts +212 -0
- package/repos/effect/packages/ai/anthropic/src/AnthropicLanguageModel.ts +3098 -0
- package/repos/effect/packages/ai/anthropic/src/AnthropicTelemetry.ts +132 -0
- package/repos/effect/packages/ai/anthropic/src/AnthropicTool.ts +2512 -0
- package/repos/effect/packages/ai/anthropic/src/Generated.ts +12600 -0
- package/repos/effect/packages/ai/anthropic/src/index.ts +40 -0
- package/repos/effect/packages/ai/anthropic/src/internal/errors.ts +370 -0
- package/repos/effect/packages/ai/anthropic/src/internal/utilities.ts +26 -0
- package/repos/effect/packages/ai/anthropic/test/AnthropicLanguageModel.test.ts +300 -0
- package/repos/effect/packages/ai/anthropic/tsconfig.json +8 -0
- package/repos/effect/packages/ai/anthropic/vitest.config.ts +6 -0
- package/repos/effect/packages/ai/openai/CHANGELOG.md +668 -0
- package/repos/effect/packages/ai/openai/codegen.yaml +41 -0
- package/repos/effect/packages/ai/openai/docgen.json +24 -0
- package/repos/effect/packages/ai/openai/package.json +67 -0
- package/repos/effect/packages/ai/openai/src/Generated.ts +35774 -0
- package/repos/effect/packages/ai/openai/src/OpenAiClient.ts +730 -0
- package/repos/effect/packages/ai/openai/src/OpenAiClientGenerated.ts +202 -0
- package/repos/effect/packages/ai/openai/src/OpenAiConfig.ts +93 -0
- package/repos/effect/packages/ai/openai/src/OpenAiEmbeddingModel.ts +258 -0
- package/repos/effect/packages/ai/openai/src/OpenAiError.ts +242 -0
- package/repos/effect/packages/ai/openai/src/OpenAiLanguageModel.ts +3133 -0
- package/repos/effect/packages/ai/openai/src/OpenAiSchema.ts +1286 -0
- package/repos/effect/packages/ai/openai/src/OpenAiTelemetry.ts +162 -0
- package/repos/effect/packages/ai/openai/src/OpenAiTool.ts +342 -0
- package/repos/effect/packages/ai/openai/src/index.ts +55 -0
- package/repos/effect/packages/ai/openai/src/internal/errors.ts +349 -0
- package/repos/effect/packages/ai/openai/src/internal/utilities.ts +33 -0
- package/repos/effect/packages/ai/openai/test/OpenAiClient.test.ts +798 -0
- package/repos/effect/packages/ai/openai/test/OpenAiEmbeddingModel.test.ts +289 -0
- package/repos/effect/packages/ai/openai/test/OpenAiLanguageModel.test.ts +1528 -0
- package/repos/effect/packages/ai/openai/test/OpenAiSchema.test.ts +273 -0
- package/repos/effect/packages/ai/openai/tsconfig.json +8 -0
- package/repos/effect/packages/ai/openai/vitest.config.ts +6 -0
- package/repos/effect/packages/ai/openai-compat/CHANGELOG.md +626 -0
- package/repos/effect/packages/ai/openai-compat/docgen.json +24 -0
- package/repos/effect/packages/ai/openai-compat/package.json +69 -0
- package/repos/effect/packages/ai/openai-compat/src/OpenAiClient.ts +1221 -0
- package/repos/effect/packages/ai/openai-compat/src/OpenAiConfig.ts +87 -0
- package/repos/effect/packages/ai/openai-compat/src/OpenAiEmbeddingModel.ts +254 -0
- package/repos/effect/packages/ai/openai-compat/src/OpenAiError.ts +178 -0
- package/repos/effect/packages/ai/openai-compat/src/OpenAiLanguageModel.ts +1951 -0
- package/repos/effect/packages/ai/openai-compat/src/OpenAiTelemetry.ts +164 -0
- package/repos/effect/packages/ai/openai-compat/src/index.ts +35 -0
- package/repos/effect/packages/ai/openai-compat/src/internal/errors.ts +327 -0
- package/repos/effect/packages/ai/openai-compat/src/internal/utilities.ts +33 -0
- package/repos/effect/packages/ai/openai-compat/test/OpenAiClient.test.ts +474 -0
- package/repos/effect/packages/ai/openai-compat/test/OpenAiEmbeddingModel.test.ts +216 -0
- package/repos/effect/packages/ai/openai-compat/test/OpenAiLanguageModel.test.ts +1505 -0
- package/repos/effect/packages/ai/openai-compat/tsconfig.json +8 -0
- package/repos/effect/packages/ai/openai-compat/vitest.config.ts +6 -0
- package/repos/effect/packages/ai/openrouter/CHANGELOG.md +607 -0
- package/repos/effect/packages/ai/openrouter/codegen.yml +35 -0
- package/repos/effect/packages/ai/openrouter/docgen.json +24 -0
- package/repos/effect/packages/ai/openrouter/package.json +67 -0
- package/repos/effect/packages/ai/openrouter/src/Generated.ts +10028 -0
- package/repos/effect/packages/ai/openrouter/src/OpenRouterClient.ts +357 -0
- package/repos/effect/packages/ai/openrouter/src/OpenRouterConfig.ts +99 -0
- package/repos/effect/packages/ai/openrouter/src/OpenRouterError.ts +225 -0
- package/repos/effect/packages/ai/openrouter/src/OpenRouterLanguageModel.ts +1796 -0
- package/repos/effect/packages/ai/openrouter/src/index.ts +30 -0
- package/repos/effect/packages/ai/openrouter/src/internal/errors.ts +375 -0
- package/repos/effect/packages/ai/openrouter/src/internal/utilities.ts +92 -0
- package/repos/effect/packages/ai/openrouter/tsconfig.json +10 -0
- package/repos/effect/packages/ai/openrouter/vitest.config.ts +6 -0
- package/repos/effect/packages/atom/react/CHANGELOG.md +599 -0
- package/repos/effect/packages/atom/react/LICENSE +21 -0
- package/repos/effect/packages/atom/react/README.md +7 -0
- package/repos/effect/packages/atom/react/docgen.json +25 -0
- package/repos/effect/packages/atom/react/package.json +79 -0
- package/repos/effect/packages/atom/react/src/Hooks.ts +476 -0
- package/repos/effect/packages/atom/react/src/ReactHydration.ts +109 -0
- package/repos/effect/packages/atom/react/src/RegistryContext.ts +108 -0
- package/repos/effect/packages/atom/react/src/ScopedAtom.ts +151 -0
- package/repos/effect/packages/atom/react/src/index.ts +23 -0
- package/repos/effect/packages/atom/react/test/index.test.tsx +650 -0
- package/repos/effect/packages/atom/react/tsconfig.json +8 -0
- package/repos/effect/packages/atom/react/vitest.config.ts +9 -0
- package/repos/effect/packages/atom/react/vitest.setup.ts +8 -0
- package/repos/effect/packages/atom/solid/CHANGELOG.md +595 -0
- package/repos/effect/packages/atom/solid/LICENSE +21 -0
- package/repos/effect/packages/atom/solid/README.md +7 -0
- package/repos/effect/packages/atom/solid/docgen.json +26 -0
- package/repos/effect/packages/atom/solid/package.json +72 -0
- package/repos/effect/packages/atom/solid/src/Hooks.ts +359 -0
- package/repos/effect/packages/atom/solid/src/RegistryContext.ts +80 -0
- package/repos/effect/packages/atom/solid/src/index.ts +13 -0
- package/repos/effect/packages/atom/solid/test/index.test.tsx +296 -0
- package/repos/effect/packages/atom/solid/tsconfig.json +8 -0
- package/repos/effect/packages/atom/solid/vitest.config.ts +15 -0
- package/repos/effect/packages/atom/solid/vitest.setup.ts +8 -0
- package/repos/effect/packages/atom/vue/CHANGELOG.md +593 -0
- package/repos/effect/packages/atom/vue/LICENSE +21 -0
- package/repos/effect/packages/atom/vue/README.md +7 -0
- package/repos/effect/packages/atom/vue/docgen.json +24 -0
- package/repos/effect/packages/atom/vue/package.json +68 -0
- package/repos/effect/packages/atom/vue/src/index.ts +211 -0
- package/repos/effect/packages/atom/vue/test/index.test.ts +5 -0
- package/repos/effect/packages/atom/vue/tsconfig.json +14 -0
- package/repos/effect/packages/atom/vue/vitest.config.ts +8 -0
- package/repos/effect/packages/effect/CHANGELOG.md +1607 -0
- package/repos/effect/packages/effect/CONFIG.md +690 -0
- package/repos/effect/packages/effect/HTTPAPI.md +3213 -0
- package/repos/effect/packages/effect/LICENSE +21 -0
- package/repos/effect/packages/effect/MCP.md +369 -0
- package/repos/effect/packages/effect/OPTIC.md +620 -0
- package/repos/effect/packages/effect/README.md +53 -0
- package/repos/effect/packages/effect/SCHEMA.md +7284 -0
- package/repos/effect/packages/effect/benchmark/schema/Enums.ts +40 -0
- package/repos/effect/packages/effect/benchmark/schema/Optic.ts +79 -0
- package/repos/effect/packages/effect/benchmark/schema/array.ts +74 -0
- package/repos/effect/packages/effect/benchmark/schema/filter.ts +74 -0
- package/repos/effect/packages/effect/benchmark/schema/object.ts +82 -0
- package/repos/effect/packages/effect/benchmark/schema/tagged-union.ts +69 -0
- package/repos/effect/packages/effect/benchmark/schema/transformation.ts +91 -0
- package/repos/effect/packages/effect/benchmark/stream/splitLines.ts +46 -0
- package/repos/effect/packages/effect/docgen.json +38 -0
- package/repos/effect/packages/effect/package.json +127 -0
- package/repos/effect/packages/effect/src/Array.ts +4908 -0
- package/repos/effect/packages/effect/src/BigDecimal.ts +1943 -0
- package/repos/effect/packages/effect/src/BigInt.ts +1029 -0
- package/repos/effect/packages/effect/src/Boolean.ts +481 -0
- package/repos/effect/packages/effect/src/Brand.ts +318 -0
- package/repos/effect/packages/effect/src/Cache.ts +1295 -0
- package/repos/effect/packages/effect/src/Cause.ts +1939 -0
- package/repos/effect/packages/effect/src/Channel.ts +8615 -0
- package/repos/effect/packages/effect/src/ChannelSchema.ts +308 -0
- package/repos/effect/packages/effect/src/Chunk.ts +2976 -0
- package/repos/effect/packages/effect/src/Clock.ts +194 -0
- package/repos/effect/packages/effect/src/Combiner.ts +316 -0
- package/repos/effect/packages/effect/src/Config.ts +1416 -0
- package/repos/effect/packages/effect/src/ConfigProvider.ts +1159 -0
- package/repos/effect/packages/effect/src/Console.ts +653 -0
- package/repos/effect/packages/effect/src/Context.ts +1339 -0
- package/repos/effect/packages/effect/src/Cron.ts +1212 -0
- package/repos/effect/packages/effect/src/Crypto.ts +318 -0
- package/repos/effect/packages/effect/src/Data.ts +774 -0
- package/repos/effect/packages/effect/src/DateTime.ts +2922 -0
- package/repos/effect/packages/effect/src/Deferred.ts +917 -0
- package/repos/effect/packages/effect/src/Differ.ts +32 -0
- package/repos/effect/packages/effect/src/Duration.ts +1827 -0
- package/repos/effect/packages/effect/src/Effect.ts +15347 -0
- package/repos/effect/packages/effect/src/Effectable.ts +68 -0
- package/repos/effect/packages/effect/src/Encoding.ts +1046 -0
- package/repos/effect/packages/effect/src/Equal.ts +550 -0
- package/repos/effect/packages/effect/src/Equivalence.ts +870 -0
- package/repos/effect/packages/effect/src/ErrorReporter.ts +543 -0
- package/repos/effect/packages/effect/src/ExecutionPlan.ts +416 -0
- package/repos/effect/packages/effect/src/Exit.ts +1085 -0
- package/repos/effect/packages/effect/src/Fiber.ts +632 -0
- package/repos/effect/packages/effect/src/FiberHandle.ts +815 -0
- package/repos/effect/packages/effect/src/FiberMap.ts +1030 -0
- package/repos/effect/packages/effect/src/FiberSet.ts +713 -0
- package/repos/effect/packages/effect/src/FileSystem.ts +1394 -0
- package/repos/effect/packages/effect/src/Filter.ts +827 -0
- package/repos/effect/packages/effect/src/Formatter.ts +319 -0
- package/repos/effect/packages/effect/src/Function.ts +1415 -0
- package/repos/effect/packages/effect/src/Graph.ts +4892 -0
- package/repos/effect/packages/effect/src/HKT.ts +213 -0
- package/repos/effect/packages/effect/src/Hash.ts +539 -0
- package/repos/effect/packages/effect/src/HashMap.ts +1236 -0
- package/repos/effect/packages/effect/src/HashRing.ts +426 -0
- package/repos/effect/packages/effect/src/HashSet.ts +605 -0
- package/repos/effect/packages/effect/src/Inspectable.ts +329 -0
- package/repos/effect/packages/effect/src/Iterable.ts +2483 -0
- package/repos/effect/packages/effect/src/JsonPatch.ts +469 -0
- package/repos/effect/packages/effect/src/JsonPointer.ts +80 -0
- package/repos/effect/packages/effect/src/JsonSchema.ts +948 -0
- package/repos/effect/packages/effect/src/Latch.ts +373 -0
- package/repos/effect/packages/effect/src/Layer.ts +2773 -0
- package/repos/effect/packages/effect/src/LayerMap.ts +468 -0
- package/repos/effect/packages/effect/src/LogLevel.ts +412 -0
- package/repos/effect/packages/effect/src/Logger.ts +1284 -0
- package/repos/effect/packages/effect/src/ManagedRuntime.ts +381 -0
- package/repos/effect/packages/effect/src/Match.ts +2606 -0
- package/repos/effect/packages/effect/src/Metric.ts +4058 -0
- package/repos/effect/packages/effect/src/MutableHashMap.ts +845 -0
- package/repos/effect/packages/effect/src/MutableHashSet.ts +422 -0
- package/repos/effect/packages/effect/src/MutableList.ts +967 -0
- package/repos/effect/packages/effect/src/MutableRef.ts +822 -0
- package/repos/effect/packages/effect/src/Newtype.ts +319 -0
- package/repos/effect/packages/effect/src/NonEmptyIterable.ts +221 -0
- package/repos/effect/packages/effect/src/Number.ts +860 -0
- package/repos/effect/packages/effect/src/Optic.ts +1701 -0
- package/repos/effect/packages/effect/src/Option.ts +2664 -0
- package/repos/effect/packages/effect/src/Order.ts +982 -0
- package/repos/effect/packages/effect/src/Ordering.ts +182 -0
- package/repos/effect/packages/effect/src/PartitionedSemaphore.ts +561 -0
- package/repos/effect/packages/effect/src/Path.ts +870 -0
- package/repos/effect/packages/effect/src/Pipeable.ts +674 -0
- package/repos/effect/packages/effect/src/PlatformError.ts +221 -0
- package/repos/effect/packages/effect/src/Pool.ts +699 -0
- package/repos/effect/packages/effect/src/Predicate.ts +1872 -0
- package/repos/effect/packages/effect/src/PrimaryKey.ts +123 -0
- package/repos/effect/packages/effect/src/PubSub.ts +2797 -0
- package/repos/effect/packages/effect/src/Pull.ts +376 -0
- package/repos/effect/packages/effect/src/Queue.ts +1962 -0
- package/repos/effect/packages/effect/src/Random.ts +549 -0
- package/repos/effect/packages/effect/src/RcMap.ts +612 -0
- package/repos/effect/packages/effect/src/RcRef.ts +225 -0
- package/repos/effect/packages/effect/src/Record.ts +1563 -0
- package/repos/effect/packages/effect/src/Redactable.ts +168 -0
- package/repos/effect/packages/effect/src/Redacted.ts +314 -0
- package/repos/effect/packages/effect/src/Reducer.ts +178 -0
- package/repos/effect/packages/effect/src/Ref.ts +801 -0
- package/repos/effect/packages/effect/src/References.ts +786 -0
- package/repos/effect/packages/effect/src/RegExp.ts +82 -0
- package/repos/effect/packages/effect/src/Request.ts +598 -0
- package/repos/effect/packages/effect/src/RequestResolver.ts +1249 -0
- package/repos/effect/packages/effect/src/Resource.ts +184 -0
- package/repos/effect/packages/effect/src/Result.ts +1939 -0
- package/repos/effect/packages/effect/src/Runtime.ts +432 -0
- package/repos/effect/packages/effect/src/Schedule.ts +3564 -0
- package/repos/effect/packages/effect/src/Scheduler.ts +285 -0
- package/repos/effect/packages/effect/src/Schema.ts +14653 -0
- package/repos/effect/packages/effect/src/SchemaAST.ts +3903 -0
- package/repos/effect/packages/effect/src/SchemaGetter.ts +1870 -0
- package/repos/effect/packages/effect/src/SchemaIssue.ts +1176 -0
- package/repos/effect/packages/effect/src/SchemaParser.ts +1105 -0
- package/repos/effect/packages/effect/src/SchemaRepresentation.ts +3944 -0
- package/repos/effect/packages/effect/src/SchemaTransformation.ts +1818 -0
- package/repos/effect/packages/effect/src/SchemaUtils.ts +51 -0
- package/repos/effect/packages/effect/src/Scope.ts +572 -0
- package/repos/effect/packages/effect/src/ScopedCache.ts +820 -0
- package/repos/effect/packages/effect/src/ScopedRef.ts +192 -0
- package/repos/effect/packages/effect/src/Semaphore.ts +517 -0
- package/repos/effect/packages/effect/src/Sink.ts +2174 -0
- package/repos/effect/packages/effect/src/Stdio.ts +143 -0
- package/repos/effect/packages/effect/src/Stream.ts +11722 -0
- package/repos/effect/packages/effect/src/String.ts +1427 -0
- package/repos/effect/packages/effect/src/Struct.ts +979 -0
- package/repos/effect/packages/effect/src/SubscriptionRef.ts +1021 -0
- package/repos/effect/packages/effect/src/Symbol.ts +31 -0
- package/repos/effect/packages/effect/src/SynchronizedRef.ts +668 -0
- package/repos/effect/packages/effect/src/Take.ts +46 -0
- package/repos/effect/packages/effect/src/Terminal.ts +188 -0
- package/repos/effect/packages/effect/src/Tracer.ts +683 -0
- package/repos/effect/packages/effect/src/Trie.ts +953 -0
- package/repos/effect/packages/effect/src/Tuple.ts +737 -0
- package/repos/effect/packages/effect/src/TxChunk.ts +822 -0
- package/repos/effect/packages/effect/src/TxDeferred.ts +319 -0
- package/repos/effect/packages/effect/src/TxHashMap.ts +2165 -0
- package/repos/effect/packages/effect/src/TxHashSet.ts +908 -0
- package/repos/effect/packages/effect/src/TxPriorityQueue.ts +567 -0
- package/repos/effect/packages/effect/src/TxPubSub.ts +684 -0
- package/repos/effect/packages/effect/src/TxQueue.ts +1488 -0
- package/repos/effect/packages/effect/src/TxReentrantLock.ts +655 -0
- package/repos/effect/packages/effect/src/TxRef.ts +282 -0
- package/repos/effect/packages/effect/src/TxSemaphore.ts +707 -0
- package/repos/effect/packages/effect/src/TxSubscriptionRef.ts +518 -0
- package/repos/effect/packages/effect/src/Types.ts +1121 -0
- package/repos/effect/packages/effect/src/UndefinedOr.ts +239 -0
- package/repos/effect/packages/effect/src/Unify.ts +314 -0
- package/repos/effect/packages/effect/src/Utils.ts +221 -0
- package/repos/effect/packages/effect/src/index.ts +712 -0
- package/repos/effect/packages/effect/src/internal/array.ts +8 -0
- package/repos/effect/packages/effect/src/internal/concurrency.ts +52 -0
- package/repos/effect/packages/effect/src/internal/core.ts +666 -0
- package/repos/effect/packages/effect/src/internal/dateTime.ts +1264 -0
- package/repos/effect/packages/effect/src/internal/doNotation.ts +117 -0
- package/repos/effect/packages/effect/src/internal/effect.ts +6427 -0
- package/repos/effect/packages/effect/src/internal/equal.ts +28 -0
- package/repos/effect/packages/effect/src/internal/errors.ts +9 -0
- package/repos/effect/packages/effect/src/internal/executionPlan.ts +120 -0
- package/repos/effect/packages/effect/src/internal/hashMap.ts +1309 -0
- package/repos/effect/packages/effect/src/internal/hashSet.ts +190 -0
- package/repos/effect/packages/effect/src/internal/layer.ts +88 -0
- package/repos/effect/packages/effect/src/internal/matcher.ts +637 -0
- package/repos/effect/packages/effect/src/internal/metric.ts +2 -0
- package/repos/effect/packages/effect/src/internal/option.ts +98 -0
- package/repos/effect/packages/effect/src/internal/random.ts +20 -0
- package/repos/effect/packages/effect/src/internal/rcRef.ts +189 -0
- package/repos/effect/packages/effect/src/internal/record.ts +18 -0
- package/repos/effect/packages/effect/src/internal/redacted.ts +19 -0
- package/repos/effect/packages/effect/src/internal/references.ts +72 -0
- package/repos/effect/packages/effect/src/internal/request.ts +205 -0
- package/repos/effect/packages/effect/src/internal/result.ts +112 -0
- package/repos/effect/packages/effect/src/internal/schedule.ts +248 -0
- package/repos/effect/packages/effect/src/internal/schema/annotations.ts +37 -0
- package/repos/effect/packages/effect/src/internal/schema/arbitrary.ts +894 -0
- package/repos/effect/packages/effect/src/internal/schema/cause.ts +26 -0
- package/repos/effect/packages/effect/src/internal/schema/equivalence.ts +154 -0
- package/repos/effect/packages/effect/src/internal/schema/representation.ts +799 -0
- package/repos/effect/packages/effect/src/internal/schema/schema.ts +128 -0
- package/repos/effect/packages/effect/src/internal/stream.ts +28 -0
- package/repos/effect/packages/effect/src/internal/tracer.ts +41 -0
- package/repos/effect/packages/effect/src/internal/trie.ts +733 -0
- package/repos/effect/packages/effect/src/internal/version.ts +2 -0
- package/repos/effect/packages/effect/src/testing/FastCheck.ts +89 -0
- package/repos/effect/packages/effect/src/testing/TestClock.ts +547 -0
- package/repos/effect/packages/effect/src/testing/TestConsole.ts +369 -0
- package/repos/effect/packages/effect/src/testing/TestSchema.ts +567 -0
- package/repos/effect/packages/effect/src/testing/index.ts +25 -0
- package/repos/effect/packages/effect/src/unstable/ai/AiError.ts +1629 -0
- package/repos/effect/packages/effect/src/unstable/ai/AnthropicStructuredOutput.ts +407 -0
- package/repos/effect/packages/effect/src/unstable/ai/Chat.ts +931 -0
- package/repos/effect/packages/effect/src/unstable/ai/EmbeddingModel.ts +269 -0
- package/repos/effect/packages/effect/src/unstable/ai/IdGenerator.ts +300 -0
- package/repos/effect/packages/effect/src/unstable/ai/LanguageModel.ts +2221 -0
- package/repos/effect/packages/effect/src/unstable/ai/McpSchema.ts +2527 -0
- package/repos/effect/packages/effect/src/unstable/ai/McpServer.ts +1468 -0
- package/repos/effect/packages/effect/src/unstable/ai/Model.ts +166 -0
- package/repos/effect/packages/effect/src/unstable/ai/OpenAiStructuredOutput.ts +476 -0
- package/repos/effect/packages/effect/src/unstable/ai/Prompt.ts +2234 -0
- package/repos/effect/packages/effect/src/unstable/ai/Response.ts +2582 -0
- package/repos/effect/packages/effect/src/unstable/ai/ResponseIdTracker.ts +139 -0
- package/repos/effect/packages/effect/src/unstable/ai/Telemetry.ts +515 -0
- package/repos/effect/packages/effect/src/unstable/ai/Tokenizer.ts +176 -0
- package/repos/effect/packages/effect/src/unstable/ai/Tool.ts +2003 -0
- package/repos/effect/packages/effect/src/unstable/ai/Toolkit.ts +554 -0
- package/repos/effect/packages/effect/src/unstable/ai/index.ts +90 -0
- package/repos/effect/packages/effect/src/unstable/ai/internal/codec-transformer.ts +13 -0
- package/repos/effect/packages/effect/src/unstable/cli/Argument.ts +749 -0
- package/repos/effect/packages/effect/src/unstable/cli/CliError.ts +549 -0
- package/repos/effect/packages/effect/src/unstable/cli/CliOutput.ts +607 -0
- package/repos/effect/packages/effect/src/unstable/cli/Command.ts +1610 -0
- package/repos/effect/packages/effect/src/unstable/cli/Completions.ts +123 -0
- package/repos/effect/packages/effect/src/unstable/cli/Flag.ts +986 -0
- package/repos/effect/packages/effect/src/unstable/cli/GlobalFlag.ts +295 -0
- package/repos/effect/packages/effect/src/unstable/cli/HelpDoc.ts +323 -0
- package/repos/effect/packages/effect/src/unstable/cli/Param.ts +2193 -0
- package/repos/effect/packages/effect/src/unstable/cli/Primitive.ts +766 -0
- package/repos/effect/packages/effect/src/unstable/cli/Prompt.ts +3852 -0
- package/repos/effect/packages/effect/src/unstable/cli/SEMANTICS.md +157 -0
- package/repos/effect/packages/effect/src/unstable/cli/index.ts +60 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/ansi.ts +152 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/auto-suggest.ts +41 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/command.ts +340 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/completions/bash.ts +222 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/completions/descriptor.ts +133 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/completions/fish.ts +253 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/completions/zsh.ts +220 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/config.ts +272 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/help.ts +181 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/lexer.ts +70 -0
- package/repos/effect/packages/effect/src/unstable/cli/internal/parser.ts +932 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ClusterCron.ts +163 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ClusterError.ts +238 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ClusterMetrics.ts +112 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ClusterSchema.ts +170 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ClusterWorkflowEngine.ts +778 -0
- package/repos/effect/packages/effect/src/unstable/cluster/DeliverAt.ts +58 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Entity.ts +779 -0
- package/repos/effect/packages/effect/src/unstable/cluster/EntityAddress.ts +93 -0
- package/repos/effect/packages/effect/src/unstable/cluster/EntityId.ts +50 -0
- package/repos/effect/packages/effect/src/unstable/cluster/EntityProxy.ts +263 -0
- package/repos/effect/packages/effect/src/unstable/cluster/EntityProxyServer.ts +149 -0
- package/repos/effect/packages/effect/src/unstable/cluster/EntityResource.ts +184 -0
- package/repos/effect/packages/effect/src/unstable/cluster/EntityType.ts +52 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Envelope.ts +433 -0
- package/repos/effect/packages/effect/src/unstable/cluster/HttpRunner.ts +345 -0
- package/repos/effect/packages/effect/src/unstable/cluster/K8sHttpClient.ts +297 -0
- package/repos/effect/packages/effect/src/unstable/cluster/MachineId.ts +54 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Message.ts +314 -0
- package/repos/effect/packages/effect/src/unstable/cluster/MessageStorage.ts +1072 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Reply.ts +455 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Runner.ts +129 -0
- package/repos/effect/packages/effect/src/unstable/cluster/RunnerAddress.ts +112 -0
- package/repos/effect/packages/effect/src/unstable/cluster/RunnerHealth.ts +145 -0
- package/repos/effect/packages/effect/src/unstable/cluster/RunnerServer.ts +220 -0
- package/repos/effect/packages/effect/src/unstable/cluster/RunnerStorage.ts +243 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Runners.ts +690 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ShardId.ts +178 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Sharding.ts +1488 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ShardingConfig.ts +367 -0
- package/repos/effect/packages/effect/src/unstable/cluster/ShardingRegistrationEvent.ts +76 -0
- package/repos/effect/packages/effect/src/unstable/cluster/SingleRunner.ts +75 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Singleton.ts +56 -0
- package/repos/effect/packages/effect/src/unstable/cluster/SingletonAddress.ts +49 -0
- package/repos/effect/packages/effect/src/unstable/cluster/Snowflake.ts +282 -0
- package/repos/effect/packages/effect/src/unstable/cluster/SocketRunner.ts +96 -0
- package/repos/effect/packages/effect/src/unstable/cluster/SqlMessageStorage.ts +1045 -0
- package/repos/effect/packages/effect/src/unstable/cluster/SqlRunnerStorage.ts +700 -0
- package/repos/effect/packages/effect/src/unstable/cluster/TestRunner.ts +36 -0
- package/repos/effect/packages/effect/src/unstable/cluster/index.ts +195 -0
- package/repos/effect/packages/effect/src/unstable/cluster/internal/entityManager.ts +678 -0
- package/repos/effect/packages/effect/src/unstable/cluster/internal/entityReaper.ts +58 -0
- package/repos/effect/packages/effect/src/unstable/cluster/internal/hash.ts +23 -0
- package/repos/effect/packages/effect/src/unstable/cluster/internal/interruptors.ts +2 -0
- package/repos/effect/packages/effect/src/unstable/cluster/internal/resourceMap.ts +100 -0
- package/repos/effect/packages/effect/src/unstable/cluster/internal/resourceRef.ts +99 -0
- package/repos/effect/packages/effect/src/unstable/devtools/DevTools.ts +68 -0
- package/repos/effect/packages/effect/src/unstable/devtools/DevToolsClient.ts +236 -0
- package/repos/effect/packages/effect/src/unstable/devtools/DevToolsSchema.ts +558 -0
- package/repos/effect/packages/effect/src/unstable/devtools/DevToolsServer.ts +94 -0
- package/repos/effect/packages/effect/src/unstable/devtools/index.ts +25 -0
- package/repos/effect/packages/effect/src/unstable/encoding/Msgpack.ts +383 -0
- package/repos/effect/packages/effect/src/unstable/encoding/Ndjson.ts +602 -0
- package/repos/effect/packages/effect/src/unstable/encoding/Sse.ts +593 -0
- package/repos/effect/packages/effect/src/unstable/encoding/index.ts +20 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/Event.ts +447 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventGroup.ts +193 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventJournal.ts +795 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLog.ts +1030 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogEncryption.ts +169 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogMessage.ts +354 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogRemote.ts +377 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServer.ts +242 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServerEncrypted.ts +268 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogServerUnencrypted.ts +898 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/EventLogSessionAuth.ts +524 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventJournal.ts +353 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +343 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +527 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/index.ts +75 -0
- package/repos/effect/packages/effect/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
- package/repos/effect/packages/effect/src/unstable/http/Cookies.ts +952 -0
- package/repos/effect/packages/effect/src/unstable/http/Etag.ts +141 -0
- package/repos/effect/packages/effect/src/unstable/http/FetchHttpClient.ts +123 -0
- package/repos/effect/packages/effect/src/unstable/http/FindMyWay.ts +15 -0
- package/repos/effect/packages/effect/src/unstable/http/Headers.ts +438 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpBody.ts +545 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpClient.ts +1630 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpClientError.ts +328 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpClientRequest.ts +968 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpClientResponse.ts +408 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpEffect.ts +400 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpIncomingMessage.ts +153 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpMethod.ts +124 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpMiddleware.ts +394 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpPlatform.ts +165 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpRouter.ts +1341 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpServer.ts +329 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpServerError.ts +374 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpServerRequest.ts +1081 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpServerRespondable.ts +115 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpServerResponse.ts +1381 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpStaticServer.ts +464 -0
- package/repos/effect/packages/effect/src/unstable/http/HttpTraceContext.ts +160 -0
- package/repos/effect/packages/effect/src/unstable/http/Multipart.ts +830 -0
- package/repos/effect/packages/effect/src/unstable/http/Multipasta/HeadersParser.ts +14 -0
- package/repos/effect/packages/effect/src/unstable/http/Multipasta/Node.ts +14 -0
- package/repos/effect/packages/effect/src/unstable/http/Multipasta/Search.ts +14 -0
- package/repos/effect/packages/effect/src/unstable/http/Multipasta/Web.ts +14 -0
- package/repos/effect/packages/effect/src/unstable/http/Multipasta.ts +15 -0
- package/repos/effect/packages/effect/src/unstable/http/Template.ts +262 -0
- package/repos/effect/packages/effect/src/unstable/http/Url.ts +330 -0
- package/repos/effect/packages/effect/src/unstable/http/UrlParams.ts +678 -0
- package/repos/effect/packages/effect/src/unstable/http/index.ts +145 -0
- package/repos/effect/packages/effect/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApi.ts +316 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiBuilder.ts +1015 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiClient.ts +1005 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiEndpoint.ts +1545 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiError.ts +443 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiGroup.ts +381 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiMiddleware.ts +478 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiScalar.ts +267 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSchema.ts +733 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSecurity.ts +244 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiSwagger.ts +68 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/HttpApiTest.ts +112 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/OpenApi.ts +1098 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/index.ts +70 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/internal/html.ts +18 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/internal/httpApiScalar.ts +5 -0
- package/repos/effect/packages/effect/src/unstable/httpapi/internal/httpApiSwagger.ts +9 -0
- package/repos/effect/packages/effect/src/unstable/observability/Otlp.ts +172 -0
- package/repos/effect/packages/effect/src/unstable/observability/OtlpExporter.ts +149 -0
- package/repos/effect/packages/effect/src/unstable/observability/OtlpLogger.ts +340 -0
- package/repos/effect/packages/effect/src/unstable/observability/OtlpMetrics.ts +826 -0
- package/repos/effect/packages/effect/src/unstable/observability/OtlpResource.ts +288 -0
- package/repos/effect/packages/effect/src/unstable/observability/OtlpSerialization.ts +66 -0
- package/repos/effect/packages/effect/src/unstable/observability/OtlpTracer.ts +442 -0
- package/repos/effect/packages/effect/src/unstable/observability/PrometheusMetrics.ts +468 -0
- package/repos/effect/packages/effect/src/unstable/observability/index.ts +45 -0
- package/repos/effect/packages/effect/src/unstable/observability/internal/otlpEnv.ts +39 -0
- package/repos/effect/packages/effect/src/unstable/observability/internal/otlpProtobuf.ts +779 -0
- package/repos/effect/packages/effect/src/unstable/observability/internal/protobuf.ts +262 -0
- package/repos/effect/packages/effect/src/unstable/persistence/KeyValueStore.ts +864 -0
- package/repos/effect/packages/effect/src/unstable/persistence/Persistable.ts +252 -0
- package/repos/effect/packages/effect/src/unstable/persistence/PersistedCache.ts +111 -0
- package/repos/effect/packages/effect/src/unstable/persistence/PersistedQueue.ts +1196 -0
- package/repos/effect/packages/effect/src/unstable/persistence/Persistence.ts +1071 -0
- package/repos/effect/packages/effect/src/unstable/persistence/RateLimiter.ts +748 -0
- package/repos/effect/packages/effect/src/unstable/persistence/Redis.ts +188 -0
- package/repos/effect/packages/effect/src/unstable/persistence/index.ts +40 -0
- package/repos/effect/packages/effect/src/unstable/process/ChildProcess.ts +1036 -0
- package/repos/effect/packages/effect/src/unstable/process/ChildProcessSpawner.ts +285 -0
- package/repos/effect/packages/effect/src/unstable/process/index.ts +15 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/AsyncResult.ts +1081 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/Atom.ts +2520 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/AtomHttpApi.ts +352 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/AtomRef.ts +352 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/AtomRegistry.ts +1127 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/AtomRpc.ts +305 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/Hydration.ts +155 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/Reactivity.ts +348 -0
- package/repos/effect/packages/effect/src/unstable/reactivity/index.ts +45 -0
- package/repos/effect/packages/effect/src/unstable/rpc/Rpc.ts +1255 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcClient.ts +1370 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcClientError.ts +57 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcGroup.ts +409 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcMessage.ts +402 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcMiddleware.ts +344 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcSchema.ts +97 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcSerialization.ts +546 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcServer.ts +1492 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcTest.ts +56 -0
- package/repos/effect/packages/effect/src/unstable/rpc/RpcWorker.ts +118 -0
- package/repos/effect/packages/effect/src/unstable/rpc/Utils.ts +120 -0
- package/repos/effect/packages/effect/src/unstable/rpc/index.ts +65 -0
- package/repos/effect/packages/effect/src/unstable/schema/Model.ts +862 -0
- package/repos/effect/packages/effect/src/unstable/schema/VariantSchema.ts +604 -0
- package/repos/effect/packages/effect/src/unstable/schema/index.ts +15 -0
- package/repos/effect/packages/effect/src/unstable/socket/Socket.ts +911 -0
- package/repos/effect/packages/effect/src/unstable/socket/SocketServer.ts +147 -0
- package/repos/effect/packages/effect/src/unstable/socket/index.ts +15 -0
- package/repos/effect/packages/effect/src/unstable/sql/Migrator.ts +440 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlClient.ts +342 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlConnection.ts +83 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlError.ts +590 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlModel.ts +359 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlResolver.ts +380 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlSchema.ts +172 -0
- package/repos/effect/packages/effect/src/unstable/sql/SqlStream.ts +81 -0
- package/repos/effect/packages/effect/src/unstable/sql/Statement.ts +1500 -0
- package/repos/effect/packages/effect/src/unstable/sql/index.ts +50 -0
- package/repos/effect/packages/effect/src/unstable/workers/Transferable.ts +191 -0
- package/repos/effect/packages/effect/src/unstable/workers/Worker.ts +245 -0
- package/repos/effect/packages/effect/src/unstable/workers/WorkerError.ts +148 -0
- package/repos/effect/packages/effect/src/unstable/workers/WorkerRunner.ts +57 -0
- package/repos/effect/packages/effect/src/unstable/workers/index.ts +25 -0
- package/repos/effect/packages/effect/src/unstable/workflow/Activity.ts +322 -0
- package/repos/effect/packages/effect/src/unstable/workflow/DurableClock.ts +117 -0
- package/repos/effect/packages/effect/src/unstable/workflow/DurableDeferred.ts +653 -0
- package/repos/effect/packages/effect/src/unstable/workflow/DurableQueue.ts +360 -0
- package/repos/effect/packages/effect/src/unstable/workflow/Workflow.ts +898 -0
- package/repos/effect/packages/effect/src/unstable/workflow/WorkflowEngine.ts +759 -0
- package/repos/effect/packages/effect/src/unstable/workflow/WorkflowProxy.ts +212 -0
- package/repos/effect/packages/effect/src/unstable/workflow/WorkflowProxyServer.ts +151 -0
- package/repos/effect/packages/effect/src/unstable/workflow/index.ts +45 -0
- package/repos/effect/packages/effect/src/unstable/workflow/internal/crypto.ts +15 -0
- package/repos/effect/packages/effect/test/Array.test.ts +1579 -0
- package/repos/effect/packages/effect/test/AtomRef.test.ts +27 -0
- package/repos/effect/packages/effect/test/BigDecimal.test.ts +525 -0
- package/repos/effect/packages/effect/test/BigInt.test.ts +57 -0
- package/repos/effect/packages/effect/test/Boolean.test.ts +289 -0
- package/repos/effect/packages/effect/test/Brand.test.ts +160 -0
- package/repos/effect/packages/effect/test/Cache.test.ts +1423 -0
- package/repos/effect/packages/effect/test/Cause.test.ts +834 -0
- package/repos/effect/packages/effect/test/Channel.test.ts +556 -0
- package/repos/effect/packages/effect/test/Chunk.test.ts +874 -0
- package/repos/effect/packages/effect/test/Combiner.test.ts +42 -0
- package/repos/effect/packages/effect/test/Config.test.ts +1416 -0
- package/repos/effect/packages/effect/test/ConfigProvider.test.ts +726 -0
- package/repos/effect/packages/effect/test/Cron.test.ts +401 -0
- package/repos/effect/packages/effect/test/Crypto.test.ts +86 -0
- package/repos/effect/packages/effect/test/Data.test.ts +269 -0
- package/repos/effect/packages/effect/test/DateTime.test.ts +953 -0
- package/repos/effect/packages/effect/test/Deferred.test.ts +165 -0
- package/repos/effect/packages/effect/test/Duration.test.ts +679 -0
- package/repos/effect/packages/effect/test/Effect.test.ts +2658 -0
- package/repos/effect/packages/effect/test/EffectEager.test.ts +678 -0
- package/repos/effect/packages/effect/test/EffectKeepAlive.test.ts +71 -0
- package/repos/effect/packages/effect/test/Equal.test.ts +1278 -0
- package/repos/effect/packages/effect/test/Equivalence.test.ts +170 -0
- package/repos/effect/packages/effect/test/ExecutionPlan.test.ts +117 -0
- package/repos/effect/packages/effect/test/Exit.test.ts +12 -0
- package/repos/effect/packages/effect/test/Fiber.test.ts +9 -0
- package/repos/effect/packages/effect/test/FiberHandle.test.ts +146 -0
- package/repos/effect/packages/effect/test/FiberMap.test.ts +171 -0
- package/repos/effect/packages/effect/test/FiberSet.test.ts +119 -0
- package/repos/effect/packages/effect/test/Formatter.test.ts +247 -0
- package/repos/effect/packages/effect/test/Function.test.ts +333 -0
- package/repos/effect/packages/effect/test/Graph.test.ts +3505 -0
- package/repos/effect/packages/effect/test/HashMap.test.ts +618 -0
- package/repos/effect/packages/effect/test/HashSet.test.ts +298 -0
- package/repos/effect/packages/effect/test/HttpClient.test.ts +131 -0
- package/repos/effect/packages/effect/test/Iterable.test.ts +486 -0
- package/repos/effect/packages/effect/test/JsonPatch.test.ts +948 -0
- package/repos/effect/packages/effect/test/JsonPointer.test.ts +353 -0
- package/repos/effect/packages/effect/test/JsonSchema.test.ts +1253 -0
- package/repos/effect/packages/effect/test/Latch.test.ts +21 -0
- package/repos/effect/packages/effect/test/Layer.test.ts +648 -0
- package/repos/effect/packages/effect/test/LayerMap.test.ts +98 -0
- package/repos/effect/packages/effect/test/LogLevel.test.ts +28 -0
- package/repos/effect/packages/effect/test/Logger.test.ts +154 -0
- package/repos/effect/packages/effect/test/ManagedRuntime.test.ts +58 -0
- package/repos/effect/packages/effect/test/Match.test.ts +27 -0
- package/repos/effect/packages/effect/test/Metric.test.ts +682 -0
- package/repos/effect/packages/effect/test/Migrator.test.ts +69 -0
- package/repos/effect/packages/effect/test/MutableHashMap.test.ts +309 -0
- package/repos/effect/packages/effect/test/MutableHashSet.test.ts +10 -0
- package/repos/effect/packages/effect/test/MutableList.test.ts +58 -0
- package/repos/effect/packages/effect/test/Newtype.test.ts +90 -0
- package/repos/effect/packages/effect/test/Number.test.ts +422 -0
- package/repos/effect/packages/effect/test/Optic.test.ts +452 -0
- package/repos/effect/packages/effect/test/Option.test.ts +564 -0
- package/repos/effect/packages/effect/test/Order.test.ts +163 -0
- package/repos/effect/packages/effect/test/Ordering.test.ts +18 -0
- package/repos/effect/packages/effect/test/PartitionedSemaphore.test.ts +74 -0
- package/repos/effect/packages/effect/test/Pathfinding.test.ts +426 -0
- package/repos/effect/packages/effect/test/Pool.test.ts +422 -0
- package/repos/effect/packages/effect/test/Predicate.test.ts +555 -0
- package/repos/effect/packages/effect/test/PubSub.test.ts +538 -0
- package/repos/effect/packages/effect/test/Queue.test.ts +317 -0
- package/repos/effect/packages/effect/test/Random.test.ts +238 -0
- package/repos/effect/packages/effect/test/RcMap.test.ts +237 -0
- package/repos/effect/packages/effect/test/RcRef.test.ts +97 -0
- package/repos/effect/packages/effect/test/Record.test.ts +395 -0
- package/repos/effect/packages/effect/test/Redacted.test.ts +59 -0
- package/repos/effect/packages/effect/test/Reducer.test.ts +12 -0
- package/repos/effect/packages/effect/test/Ref.test.ts +187 -0
- package/repos/effect/packages/effect/test/Request.test.ts +305 -0
- package/repos/effect/packages/effect/test/Resource.test.ts +59 -0
- package/repos/effect/packages/effect/test/Result.test.ts +517 -0
- package/repos/effect/packages/effect/test/Schedule.test.ts +395 -0
- package/repos/effect/packages/effect/test/Scheduler.test.ts +70 -0
- package/repos/effect/packages/effect/test/Scope.test.ts +19 -0
- package/repos/effect/packages/effect/test/ScopedCache.test.ts +2316 -0
- package/repos/effect/packages/effect/test/ScopedRef.test.ts +80 -0
- package/repos/effect/packages/effect/test/Semaphore.test.ts +469 -0
- package/repos/effect/packages/effect/test/Sink.test.ts +230 -0
- package/repos/effect/packages/effect/test/Stream.test.ts +4712 -0
- package/repos/effect/packages/effect/test/String.test.ts +690 -0
- package/repos/effect/packages/effect/test/Struct.test.ts +216 -0
- package/repos/effect/packages/effect/test/SubscriptionRef.test.ts +90 -0
- package/repos/effect/packages/effect/test/Symbol.test.ts +50 -0
- package/repos/effect/packages/effect/test/SynchronizedRef.test.ts +105 -0
- package/repos/effect/packages/effect/test/TestClock.test.ts +71 -0
- package/repos/effect/packages/effect/test/Tracer.test.ts +410 -0
- package/repos/effect/packages/effect/test/Trie.test.ts +531 -0
- package/repos/effect/packages/effect/test/Tuple.test.ts +127 -0
- package/repos/effect/packages/effect/test/TxChunk.test.ts +342 -0
- package/repos/effect/packages/effect/test/TxDeferred.test.ts +197 -0
- package/repos/effect/packages/effect/test/TxHashMap.test.ts +963 -0
- package/repos/effect/packages/effect/test/TxHashSet.test.ts +442 -0
- package/repos/effect/packages/effect/test/TxPriorityQueue.test.ts +187 -0
- package/repos/effect/packages/effect/test/TxPubSub.test.ts +391 -0
- package/repos/effect/packages/effect/test/TxQueue.test.ts +1260 -0
- package/repos/effect/packages/effect/test/TxReentrantLock.test.ts +413 -0
- package/repos/effect/packages/effect/test/TxSemaphore.test.ts +283 -0
- package/repos/effect/packages/effect/test/TxSubscriptionRef.test.ts +197 -0
- package/repos/effect/packages/effect/test/UndefinedOr.test.ts +65 -0
- package/repos/effect/packages/effect/test/cluster/ClusterWorkflowEngine.test.ts +652 -0
- package/repos/effect/packages/effect/test/cluster/Entity.test.ts +81 -0
- package/repos/effect/packages/effect/test/cluster/K8sHttpClient.test.ts +34 -0
- package/repos/effect/packages/effect/test/cluster/MessageStorage.test.ts +196 -0
- package/repos/effect/packages/effect/test/cluster/Sharding.test.ts +578 -0
- package/repos/effect/packages/effect/test/cluster/TestEntity.ts +132 -0
- package/repos/effect/packages/effect/test/reactivity/AsyncResult.test.ts +41 -0
- package/repos/effect/packages/effect/test/reactivity/Atom.test.ts +2551 -0
- package/repos/effect/packages/effect/test/reactivity/AtomHttpApi.test.ts +86 -0
- package/repos/effect/packages/effect/test/reactivity/AtomRpc.test.ts +70 -0
- package/repos/effect/packages/effect/test/rpc/Rpc.test.ts +73 -0
- package/repos/effect/packages/effect/test/rpc/RpcClient.test.ts +58 -0
- package/repos/effect/packages/effect/test/rpc/RpcSerialization.test.ts +171 -0
- package/repos/effect/packages/effect/test/schema/HMR.test.ts +72 -0
- package/repos/effect/packages/effect/test/schema/Schema.test.ts +9133 -0
- package/repos/effect/packages/effect/test/schema/SchemaAST.test.ts +280 -0
- package/repos/effect/packages/effect/test/schema/SchemaGetter.test.ts +383 -0
- package/repos/effect/packages/effect/test/schema/SchemaIssue.test.ts +9 -0
- package/repos/effect/packages/effect/test/schema/SchemaParser.test.ts +323 -0
- package/repos/effect/packages/effect/test/schema/fixtures/HMR-Class.ts +5 -0
- package/repos/effect/packages/effect/test/schema/fixtures/HMR-sanity-check.ts +3 -0
- package/repos/effect/packages/effect/test/schema/representation/fromASTs.test.ts +820 -0
- package/repos/effect/packages/effect/test/schema/representation/fromJsonSchemaDocument.test.ts +2137 -0
- package/repos/effect/packages/effect/test/schema/representation/toCodeDocument.test.ts +2089 -0
- package/repos/effect/packages/effect/test/schema/representation/toJsonSchemaMultiDocument.test.ts +39 -0
- package/repos/effect/packages/effect/test/schema/representation/toSchema.test.ts +506 -0
- package/repos/effect/packages/effect/test/schema/toArbitrary.test.ts +1693 -0
- package/repos/effect/packages/effect/test/schema/toCodec.test.ts +3149 -0
- package/repos/effect/packages/effect/test/schema/toDifferJsonPatch.test.ts +239 -0
- package/repos/effect/packages/effect/test/schema/toEquivalence.test.ts +519 -0
- package/repos/effect/packages/effect/test/schema/toFormatter.test.ts +565 -0
- package/repos/effect/packages/effect/test/schema/toIso.test.ts +394 -0
- package/repos/effect/packages/effect/test/schema/toJsonSchemaDocument.test.ts +3630 -0
- package/repos/effect/packages/effect/test/schema/toStandardJSONSchemaV1.test.ts +126 -0
- package/repos/effect/packages/effect/test/schema/toStandardSchemaV1.test.ts +495 -0
- package/repos/effect/packages/effect/test/schema/v3-v4.test.ts +250 -0
- package/repos/effect/packages/effect/test/testing/TestSchema.test.ts +78 -0
- package/repos/effect/packages/effect/test/unstable/ai/AiError.test.ts +823 -0
- package/repos/effect/packages/effect/test/unstable/ai/AnthropicStructuredOutput.test.ts +593 -0
- package/repos/effect/packages/effect/test/unstable/ai/Chat.test.ts +147 -0
- package/repos/effect/packages/effect/test/unstable/ai/EmbeddingModel.test.ts +185 -0
- package/repos/effect/packages/effect/test/unstable/ai/LanguageModel.test.ts +1714 -0
- package/repos/effect/packages/effect/test/unstable/ai/LanguageModelTrackerLifecycle.test.ts +413 -0
- package/repos/effect/packages/effect/test/unstable/ai/McpServer.test.ts +82 -0
- package/repos/effect/packages/effect/test/unstable/ai/Model.test.ts +16 -0
- package/repos/effect/packages/effect/test/unstable/ai/OpenAiStructuredOutput.test.ts +723 -0
- package/repos/effect/packages/effect/test/unstable/ai/Prompt.test.ts +346 -0
- package/repos/effect/packages/effect/test/unstable/ai/ResponseIdTracker.test.ts +424 -0
- package/repos/effect/packages/effect/test/unstable/ai/Tool.test.ts +1264 -0
- package/repos/effect/packages/effect/test/unstable/ai/utils.ts +68 -0
- package/repos/effect/packages/effect/test/unstable/cli/Arguments.test.ts +390 -0
- package/repos/effect/packages/effect/test/unstable/cli/Command.test.ts +1801 -0
- package/repos/effect/packages/effect/test/unstable/cli/Errors.test.ts +150 -0
- package/repos/effect/packages/effect/test/unstable/cli/Help.test.ts +572 -0
- package/repos/effect/packages/effect/test/unstable/cli/LogLevel.test.ts +202 -0
- package/repos/effect/packages/effect/test/unstable/cli/Param.test.ts +391 -0
- package/repos/effect/packages/effect/test/unstable/cli/Primitive.test.ts +321 -0
- package/repos/effect/packages/effect/test/unstable/cli/Prompt.test.ts +597 -0
- package/repos/effect/packages/effect/test/unstable/cli/completions/completions.test.ts +656 -0
- package/repos/effect/packages/effect/test/unstable/cli/completions/descriptor.test.ts +245 -0
- package/repos/effect/packages/effect/test/unstable/cli/fixtures/ComprehensiveCli.ts +422 -0
- package/repos/effect/packages/effect/test/unstable/cli/services/MockTerminal.ts +135 -0
- package/repos/effect/packages/effect/test/unstable/cli/services/TestActions.ts +36 -0
- package/repos/effect/packages/effect/test/unstable/encoding/Ndjson.test.ts +18 -0
- package/repos/effect/packages/effect/test/unstable/encoding/Sse.test.ts +62 -0
- package/repos/effect/packages/effect/test/unstable/eventlog/EventJournal.test.ts +25 -0
- package/repos/effect/packages/effect/test/unstable/eventlog/EventLog.test.ts +104 -0
- package/repos/effect/packages/effect/test/unstable/eventlog/EventLogIdentityDerivation.test.ts +85 -0
- package/repos/effect/packages/effect/test/unstable/eventlog/EventLogRemote.test.ts +176 -0
- package/repos/effect/packages/effect/test/unstable/eventlog/EventLogSessionAuth.test.ts +130 -0
- package/repos/effect/packages/effect/test/unstable/eventlog/SqlEventLogServerUnencryptedStorageTest.ts +169 -0
- package/repos/effect/packages/effect/test/unstable/http/Cookies.test.ts +80 -0
- package/repos/effect/packages/effect/test/unstable/http/Headers.test.ts +73 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpClient.test.ts +306 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpClientRequest.test.ts +164 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpEffect.test.ts +254 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpMiddleware.test.ts +57 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpServerError.test.ts +121 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpServerRequest.test.ts +157 -0
- package/repos/effect/packages/effect/test/unstable/http/HttpServerResponse.test.ts +76 -0
- package/repos/effect/packages/effect/test/unstable/http/Multipart.test.ts +69 -0
- package/repos/effect/packages/effect/test/unstable/http/Url.test.ts +98 -0
- package/repos/effect/packages/effect/test/unstable/http/UrlParams.test.ts +30 -0
- package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiBuilder.test.ts +186 -0
- package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiClient.test.ts +446 -0
- package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiEndpoint.test.ts +160 -0
- package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiSchema.test.ts +108 -0
- package/repos/effect/packages/effect/test/unstable/httpapi/HttpApiSecurity.test.ts +41 -0
- package/repos/effect/packages/effect/test/unstable/httpapi/OpenApi.test.ts +39 -0
- package/repos/effect/packages/effect/test/unstable/observability/OtlpConfig.test.ts +151 -0
- package/repos/effect/packages/effect/test/unstable/observability/OtlpExporter.test.ts +108 -0
- package/repos/effect/packages/effect/test/unstable/observability/OtlpMetrics.test.ts +518 -0
- package/repos/effect/packages/effect/test/unstable/observability/OtlpResource.test.ts +84 -0
- package/repos/effect/packages/effect/test/unstable/observability/PrometheusMetrics.test.ts +417 -0
- package/repos/effect/packages/effect/test/unstable/persistence/KeyValueStore.test.ts +164 -0
- package/repos/effect/packages/effect/test/unstable/persistence/KeyValueStoreTest.ts +85 -0
- package/repos/effect/packages/effect/test/unstable/persistence/PersistedCache.test.ts +4 -0
- package/repos/effect/packages/effect/test/unstable/persistence/PersistedCacheTest.ts +111 -0
- package/repos/effect/packages/effect/test/unstable/persistence/PersistedQueue.test.ts +4 -0
- package/repos/effect/packages/effect/test/unstable/persistence/PersistedQueueTest.ts +106 -0
- package/repos/effect/packages/effect/test/unstable/persistence/RateLimiter.test.ts +145 -0
- package/repos/effect/packages/effect/test/unstable/persistence/Redis.test.ts +43 -0
- package/repos/effect/packages/effect/test/unstable/process/ChildProcess.test.ts +352 -0
- package/repos/effect/packages/effect/test/unstable/schema/VariantSchema.test.ts +72 -0
- package/repos/effect/packages/effect/test/unstable/sql/SqlError.test.ts +228 -0
- package/repos/effect/packages/effect/test/unstable/sql/SqlSchema.test.ts +168 -0
- package/repos/effect/packages/effect/test/unstable/workers/WorkerError.test.ts +90 -0
- package/repos/effect/packages/effect/test/unstable/workflow/DurableQueue.test.ts +105 -0
- package/repos/effect/packages/effect/test/unstable/workflow/WorkflowEngine.test.ts +60 -0
- package/repos/effect/packages/effect/test/utils/assert.ts +182 -0
- package/repos/effect/packages/effect/test/utils/chunkCoordination.ts +36 -0
- package/repos/effect/packages/effect/test/utils/counter.ts +54 -0
- package/repos/effect/packages/effect/tsconfig.json +8 -0
- package/repos/effect/packages/effect/typetest/AiError.tst.ts +49 -0
- package/repos/effect/packages/effect/typetest/Array.tst.ts +1289 -0
- package/repos/effect/packages/effect/typetest/Brand.tst.ts +51 -0
- package/repos/effect/packages/effect/typetest/Channel.tst.ts +112 -0
- package/repos/effect/packages/effect/typetest/Config.tst.ts +31 -0
- package/repos/effect/packages/effect/typetest/Data.tst.ts +121 -0
- package/repos/effect/packages/effect/typetest/Effect.tst.ts +976 -0
- package/repos/effect/packages/effect/typetest/Equivalence.tst.ts +19 -0
- package/repos/effect/packages/effect/typetest/Newtype.tst.ts +72 -0
- package/repos/effect/packages/effect/typetest/Optic.tst.ts +130 -0
- package/repos/effect/packages/effect/typetest/Option.tst.ts +72 -0
- package/repos/effect/packages/effect/typetest/Order.tst.ts +19 -0
- package/repos/effect/packages/effect/typetest/Predicate.tst.ts +251 -0
- package/repos/effect/packages/effect/typetest/Result.tst.ts +353 -0
- package/repos/effect/packages/effect/typetest/Schedule.tst.ts +21 -0
- package/repos/effect/packages/effect/typetest/Stream.tst.ts +197 -0
- package/repos/effect/packages/effect/typetest/Struct.tst.ts +422 -0
- package/repos/effect/packages/effect/typetest/Tuple.tst.ts +177 -0
- package/repos/effect/packages/effect/typetest/Types.tst.ts +364 -0
- package/repos/effect/packages/effect/typetest/VariantSchema.tst.ts +76 -0
- package/repos/effect/packages/effect/typetest/schema/Array.tst.ts +46 -0
- package/repos/effect/packages/effect/typetest/schema/Literals.tst.ts +58 -0
- package/repos/effect/packages/effect/typetest/schema/Record.tst.ts +145 -0
- package/repos/effect/packages/effect/typetest/schema/Schema.tst.ts +1854 -0
- package/repos/effect/packages/effect/typetest/schema/Struct.tst.ts +745 -0
- package/repos/effect/packages/effect/typetest/schema/Tuple.tst.ts +199 -0
- package/repos/effect/packages/effect/typetest/schema/Union.tst.ts +198 -0
- package/repos/effect/packages/effect/typetest/schema/api.tst.ts +276 -0
- package/repos/effect/packages/effect/typetest/schema/toArbitrary.tst.ts +65 -0
- package/repos/effect/packages/effect/typetest/schema/toIso.tst.ts +282 -0
- package/repos/effect/packages/effect/typetest/unstable/ai/LanguageModel.tst.ts +191 -0
- package/repos/effect/packages/effect/typetest/unstable/ai/Tool.tst.ts +33 -0
- package/repos/effect/packages/effect/typetest/unstable/cli/Command.tst.ts +124 -0
- package/repos/effect/packages/effect/typetest/unstable/cli/Param.tst.ts +20 -0
- package/repos/effect/packages/effect/typetest/unstable/cli/Prompt.tst.ts +97 -0
- package/repos/effect/packages/effect/typetest/unstable/encoding/Ndjson.tst.ts +24 -0
- package/repos/effect/packages/effect/typetest/unstable/http/HttpClient.tst.ts +143 -0
- package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiBuilder.tst.ts +98 -0
- package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiClient.tst.ts +677 -0
- package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiEndpoint.tst.ts +466 -0
- package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiMiddleware.tst.ts +90 -0
- package/repos/effect/packages/effect/typetest/unstable/httpapi/HttpApiSchema.tst.ts +135 -0
- package/repos/effect/packages/effect/typetest/unstable/reactivity/AsyncResult.tst.ts +65 -0
- package/repos/effect/packages/effect/typetest/unstable/reactivity/AtomHttpApi.tst.ts +63 -0
- package/repos/effect/packages/effect/typetest/unstable/rpc/Rpc.tst.ts +74 -0
- package/repos/effect/packages/effect/typetest/unstable/rpc/RpcGroup.tst.ts +61 -0
- package/repos/effect/packages/effect/typetest/unstable/rpc/RpcMiddleware.tst.ts +41 -0
- package/repos/effect/packages/effect/typetest/unstable/rpc/RpcServer.tst.ts +26 -0
- package/repos/effect/packages/effect/typetest/unstable/sql/SqlSchema.tst.ts +75 -0
- package/repos/effect/packages/effect/typetest/unstable/workflow/Workflow.tst.ts +16 -0
- package/repos/effect/packages/effect/vitest.config.ts +11 -0
- package/repos/effect/packages/opentelemetry/CHANGELOG.md +620 -0
- package/repos/effect/packages/opentelemetry/LICENSE +21 -0
- package/repos/effect/packages/opentelemetry/README.md +5 -0
- package/repos/effect/packages/opentelemetry/docgen.json +30 -0
- package/repos/effect/packages/opentelemetry/package.json +126 -0
- package/repos/effect/packages/opentelemetry/src/Logger.ts +193 -0
- package/repos/effect/packages/opentelemetry/src/Metrics.ts +138 -0
- package/repos/effect/packages/opentelemetry/src/NodeSdk.ts +162 -0
- package/repos/effect/packages/opentelemetry/src/Resource.ts +147 -0
- package/repos/effect/packages/opentelemetry/src/Tracer.ts +594 -0
- package/repos/effect/packages/opentelemetry/src/WebSdk.ts +140 -0
- package/repos/effect/packages/opentelemetry/src/index.ts +35 -0
- package/repos/effect/packages/opentelemetry/src/internal/attributes.ts +28 -0
- package/repos/effect/packages/opentelemetry/src/internal/metrics.ts +463 -0
- package/repos/effect/packages/opentelemetry/src/internal/utilities.ts +5 -0
- package/repos/effect/packages/opentelemetry/test/Logger.test.ts +122 -0
- package/repos/effect/packages/opentelemetry/test/Metrics.test.ts +339 -0
- package/repos/effect/packages/opentelemetry/test/Tracer.test.ts +167 -0
- package/repos/effect/packages/opentelemetry/tsconfig.json +8 -0
- package/repos/effect/packages/opentelemetry/vitest.config.ts +6 -0
- package/repos/effect/packages/platform-browser/CHANGELOG.md +637 -0
- package/repos/effect/packages/platform-browser/LICENSE +21 -0
- package/repos/effect/packages/platform-browser/README.md +1 -0
- package/repos/effect/packages/platform-browser/docgen.json +21 -0
- package/repos/effect/packages/platform-browser/package.json +74 -0
- package/repos/effect/packages/platform-browser/src/BrowserCrypto.ts +97 -0
- package/repos/effect/packages/platform-browser/src/BrowserHttpClient.ts +430 -0
- package/repos/effect/packages/platform-browser/src/BrowserKeyValueStore.ts +177 -0
- package/repos/effect/packages/platform-browser/src/BrowserPersistence.ts +334 -0
- package/repos/effect/packages/platform-browser/src/BrowserRuntime.ts +53 -0
- package/repos/effect/packages/platform-browser/src/BrowserSocket.ts +52 -0
- package/repos/effect/packages/platform-browser/src/BrowserStream.ts +56 -0
- package/repos/effect/packages/platform-browser/src/BrowserWorker.ts +98 -0
- package/repos/effect/packages/platform-browser/src/BrowserWorkerRunner.ts +199 -0
- package/repos/effect/packages/platform-browser/src/Clipboard.ts +143 -0
- package/repos/effect/packages/platform-browser/src/Geolocation.ts +233 -0
- package/repos/effect/packages/platform-browser/src/IndexedDb.ts +113 -0
- package/repos/effect/packages/platform-browser/src/IndexedDbDatabase.ts +648 -0
- package/repos/effect/packages/platform-browser/src/IndexedDbQueryBuilder.ts +2032 -0
- package/repos/effect/packages/platform-browser/src/IndexedDbTable.ts +260 -0
- package/repos/effect/packages/platform-browser/src/IndexedDbVersion.ts +138 -0
- package/repos/effect/packages/platform-browser/src/Permissions.ts +146 -0
- package/repos/effect/packages/platform-browser/src/index.ts +90 -0
- package/repos/effect/packages/platform-browser/test/BrowserCrypto.test.ts +74 -0
- package/repos/effect/packages/platform-browser/test/BrowserHttpClient.test.ts +91 -0
- package/repos/effect/packages/platform-browser/test/BrowserKeyValueStore.test.ts +23 -0
- package/repos/effect/packages/platform-browser/test/BrowserPersistence.test.ts +209 -0
- package/repos/effect/packages/platform-browser/test/BrowserPersistencePersistedCache.test.ts +29 -0
- package/repos/effect/packages/platform-browser/test/IndexedDbDatabase.test.ts +253 -0
- package/repos/effect/packages/platform-browser/test/IndexedDbQueryBuilder.test.ts +1459 -0
- package/repos/effect/packages/platform-browser/test/IndexedDbTable.test.ts +101 -0
- package/repos/effect/packages/platform-browser/test/IndexedDbVersion.test.ts +50 -0
- package/repos/effect/packages/platform-browser/test/Permissions.test.ts +12 -0
- package/repos/effect/packages/platform-browser/test/RpcWorker.test.ts +19 -0
- package/repos/effect/packages/platform-browser/test/fixtures/rpc-e2e.ts +141 -0
- package/repos/effect/packages/platform-browser/test/fixtures/rpc-schemas.ts +157 -0
- package/repos/effect/packages/platform-browser/test/fixtures/rpc-worker.ts +12 -0
- package/repos/effect/packages/platform-browser/tsconfig.json +8 -0
- package/repos/effect/packages/platform-browser/vitest.config.ts +17 -0
- package/repos/effect/packages/platform-browser/vitest.setup.ts +5 -0
- package/repos/effect/packages/platform-bun/CHANGELOG.md +691 -0
- package/repos/effect/packages/platform-bun/LICENSE +21 -0
- package/repos/effect/packages/platform-bun/README.md +7 -0
- package/repos/effect/packages/platform-bun/docgen.json +20 -0
- package/repos/effect/packages/platform-bun/package.json +73 -0
- package/repos/effect/packages/platform-bun/src/BunChildProcessSpawner.ts +6 -0
- package/repos/effect/packages/platform-bun/src/BunClusterHttp.ts +174 -0
- package/repos/effect/packages/platform-bun/src/BunClusterSocket.ts +153 -0
- package/repos/effect/packages/platform-bun/src/BunCrypto.ts +24 -0
- package/repos/effect/packages/platform-bun/src/BunFileSystem.ts +20 -0
- package/repos/effect/packages/platform-bun/src/BunHttpClient.ts +9 -0
- package/repos/effect/packages/platform-bun/src/BunHttpPlatform.ts +50 -0
- package/repos/effect/packages/platform-bun/src/BunHttpServer.ts +600 -0
- package/repos/effect/packages/platform-bun/src/BunHttpServerRequest.ts +19 -0
- package/repos/effect/packages/platform-bun/src/BunMultipart.ts +54 -0
- package/repos/effect/packages/platform-bun/src/BunPath.ts +37 -0
- package/repos/effect/packages/platform-bun/src/BunRedis.ts +88 -0
- package/repos/effect/packages/platform-bun/src/BunRuntime.ts +52 -0
- package/repos/effect/packages/platform-bun/src/BunServices.ts +49 -0
- package/repos/effect/packages/platform-bun/src/BunSink.ts +8 -0
- package/repos/effect/packages/platform-bun/src/BunSocket.ts +54 -0
- package/repos/effect/packages/platform-bun/src/BunSocketServer.ts +8 -0
- package/repos/effect/packages/platform-bun/src/BunStdio.ts +22 -0
- package/repos/effect/packages/platform-bun/src/BunStream.ts +68 -0
- package/repos/effect/packages/platform-bun/src/BunTerminal.ts +32 -0
- package/repos/effect/packages/platform-bun/src/BunWorker.ts +92 -0
- package/repos/effect/packages/platform-bun/src/BunWorkerRunner.ts +113 -0
- package/repos/effect/packages/platform-bun/src/index.ts +115 -0
- package/repos/effect/packages/platform-bun/tsconfig.json +12 -0
- package/repos/effect/packages/platform-node/CHANGELOG.md +695 -0
- package/repos/effect/packages/platform-node/LICENSE +21 -0
- package/repos/effect/packages/platform-node/README.md +7 -0
- package/repos/effect/packages/platform-node/docgen.json +24 -0
- package/repos/effect/packages/platform-node/package.json +82 -0
- package/repos/effect/packages/platform-node/src/Mime.ts +25 -0
- package/repos/effect/packages/platform-node/src/NodeChildProcessSpawner.ts +6 -0
- package/repos/effect/packages/platform-node/src/NodeClusterHttp.ts +155 -0
- package/repos/effect/packages/platform-node/src/NodeClusterSocket.ts +176 -0
- package/repos/effect/packages/platform-node/src/NodeCrypto.ts +24 -0
- package/repos/effect/packages/platform-node/src/NodeFileSystem.ts +21 -0
- package/repos/effect/packages/platform-node/src/NodeHttpClient.ts +664 -0
- package/repos/effect/packages/platform-node/src/NodeHttpIncomingMessage.ts +141 -0
- package/repos/effect/packages/platform-node/src/NodeHttpPlatform.ts +70 -0
- package/repos/effect/packages/platform-node/src/NodeHttpServer.ts +646 -0
- package/repos/effect/packages/platform-node/src/NodeHttpServerRequest.ts +33 -0
- package/repos/effect/packages/platform-node/src/NodeMultipart.ts +183 -0
- package/repos/effect/packages/platform-node/src/NodePath.ts +40 -0
- package/repos/effect/packages/platform-node/src/NodeRedis.ts +92 -0
- package/repos/effect/packages/platform-node/src/NodeRuntime.ts +53 -0
- package/repos/effect/packages/platform-node/src/NodeServices.ts +50 -0
- package/repos/effect/packages/platform-node/src/NodeSink.ts +8 -0
- package/repos/effect/packages/platform-node/src/NodeSocket.ts +72 -0
- package/repos/effect/packages/platform-node/src/NodeSocketServer.ts +8 -0
- package/repos/effect/packages/platform-node/src/NodeStdio.ts +22 -0
- package/repos/effect/packages/platform-node/src/NodeStream.ts +8 -0
- package/repos/effect/packages/platform-node/src/NodeTerminal.ts +32 -0
- package/repos/effect/packages/platform-node/src/NodeWorker.ts +121 -0
- package/repos/effect/packages/platform-node/src/NodeWorkerRunner.ts +110 -0
- package/repos/effect/packages/platform-node/src/Undici.ts +29 -0
- package/repos/effect/packages/platform-node/src/index.ts +130 -0
- package/repos/effect/packages/platform-node/test/HttpApi.test.ts +1831 -0
- package/repos/effect/packages/platform-node/test/HttpStaticServer.test.ts +253 -0
- package/repos/effect/packages/platform-node/test/HttpStaticServerConditional.test.ts +296 -0
- package/repos/effect/packages/platform-node/test/NodeCrypto.test.ts +59 -0
- package/repos/effect/packages/platform-node/test/NodeHttpClient.test.ts +157 -0
- package/repos/effect/packages/platform-node/test/NodeHttpPlatform.test.ts +51 -0
- package/repos/effect/packages/platform-node/test/NodeHttpServer.test.ts +598 -0
- package/repos/effect/packages/platform-node/test/NodeRedis.test.ts +31 -0
- package/repos/effect/packages/platform-node/test/NodeSocket.test.ts +153 -0
- package/repos/effect/packages/platform-node/test/OpenApi.test.ts +1573 -0
- package/repos/effect/packages/platform-node/test/RpcServer.test.ts +213 -0
- package/repos/effect/packages/platform-node/test/__snapshots__/HttpApi.test.ts.snap +715 -0
- package/repos/effect/packages/platform-node/test/cluster/MessageStorageTest.ts +196 -0
- package/repos/effect/packages/platform-node/test/cluster/SocketRunner.test.ts +120 -0
- package/repos/effect/packages/platform-node/test/cluster/SqlMessageStorage.test.ts +222 -0
- package/repos/effect/packages/platform-node/test/cluster/SqlRunnerStorage.test.ts +101 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/conditional.txt +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/custom/home.html +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/file.binx +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/guide/index.html +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/hello.txt +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/index.html +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server/range.txt +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/http-static-server-outside.txt +1 -0
- package/repos/effect/packages/platform-node/test/fixtures/mysql2-utils.ts +64 -0
- package/repos/effect/packages/platform-node/test/fixtures/pg-utils.ts +39 -0
- package/repos/effect/packages/platform-node/test/fixtures/rpc-e2e.ts +149 -0
- package/repos/effect/packages/platform-node/test/fixtures/rpc-schemas.ts +175 -0
- package/repos/effect/packages/platform-node/test/fixtures/text.txt +1 -0
- package/repos/effect/packages/platform-node/tsconfig.json +12 -0
- package/repos/effect/packages/platform-node/vitest.config.ts +6 -0
- package/repos/effect/packages/platform-node-shared/CHANGELOG.md +617 -0
- package/repos/effect/packages/platform-node-shared/LICENSE +21 -0
- package/repos/effect/packages/platform-node-shared/README.md +7 -0
- package/repos/effect/packages/platform-node-shared/docgen.json +38 -0
- package/repos/effect/packages/platform-node-shared/package.json +76 -0
- package/repos/effect/packages/platform-node-shared/src/NodeChildProcessSpawner.ts +713 -0
- package/repos/effect/packages/platform-node-shared/src/NodeClusterSocket.ts +70 -0
- package/repos/effect/packages/platform-node-shared/src/NodeCrypto.ts +60 -0
- package/repos/effect/packages/platform-node-shared/src/NodeFileSystem.ts +652 -0
- package/repos/effect/packages/platform-node-shared/src/NodePath.ts +80 -0
- package/repos/effect/packages/platform-node-shared/src/NodeRuntime.ts +59 -0
- package/repos/effect/packages/platform-node-shared/src/NodeSink.ts +116 -0
- package/repos/effect/packages/platform-node-shared/src/NodeSocket.ts +269 -0
- package/repos/effect/packages/platform-node-shared/src/NodeSocketServer.ts +301 -0
- package/repos/effect/packages/platform-node-shared/src/NodeStdio.ts +67 -0
- package/repos/effect/packages/platform-node-shared/src/NodeStream.ts +445 -0
- package/repos/effect/packages/platform-node-shared/src/NodeTerminal.ts +129 -0
- package/repos/effect/packages/platform-node-shared/src/index.ts +65 -0
- package/repos/effect/packages/platform-node-shared/src/internal/utils.ts +51 -0
- package/repos/effect/packages/platform-node-shared/test/NodeChildProcessSpawner.test.ts +1069 -0
- package/repos/effect/packages/platform-node-shared/test/NodeFileSystem.test.ts +214 -0
- package/repos/effect/packages/platform-node-shared/test/NodeSink.test.ts +153 -0
- package/repos/effect/packages/platform-node-shared/test/NodeStream.test.ts +173 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/bash/no-permissions.sh +3 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/bash/parent-exits-early.sh +31 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/bash/spawn-children.sh +32 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/config/SHOUTING +1 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/config/integer +1 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/config/nested/config +1 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/config/secret +1 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/helloworld.tar.gz +0 -0
- package/repos/effect/packages/platform-node-shared/test/fixtures/text.txt +1 -0
- package/repos/effect/packages/platform-node-shared/tsconfig.json +11 -0
- package/repos/effect/packages/platform-node-shared/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/clickhouse/CHANGELOG.md +681 -0
- package/repos/effect/packages/sql/clickhouse/LICENSE +21 -0
- package/repos/effect/packages/sql/clickhouse/README.md +7 -0
- package/repos/effect/packages/sql/clickhouse/docgen.json +24 -0
- package/repos/effect/packages/sql/clickhouse/package.json +72 -0
- package/repos/effect/packages/sql/clickhouse/src/ClickhouseClient.ts +546 -0
- package/repos/effect/packages/sql/clickhouse/src/ClickhouseMigrator.ts +51 -0
- package/repos/effect/packages/sql/clickhouse/src/index.ts +15 -0
- package/repos/effect/packages/sql/clickhouse/test/Client.test.ts +6 -0
- package/repos/effect/packages/sql/clickhouse/test/SqlErrorClassification.test.ts +75 -0
- package/repos/effect/packages/sql/clickhouse/tsconfig.json +12 -0
- package/repos/effect/packages/sql/clickhouse/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/d1/CHANGELOG.md +597 -0
- package/repos/effect/packages/sql/d1/LICENSE +21 -0
- package/repos/effect/packages/sql/d1/README.md +7 -0
- package/repos/effect/packages/sql/d1/docgen.json +24 -0
- package/repos/effect/packages/sql/d1/package.json +75 -0
- package/repos/effect/packages/sql/d1/src/D1Client.ts +249 -0
- package/repos/effect/packages/sql/d1/src/index.ts +10 -0
- package/repos/effect/packages/sql/d1/test/Client.test.ts +65 -0
- package/repos/effect/packages/sql/d1/test/Resolver.test.ts +176 -0
- package/repos/effect/packages/sql/d1/test/utils.ts +38 -0
- package/repos/effect/packages/sql/d1/tsconfig.json +8 -0
- package/repos/effect/packages/sql/d1/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/libsql/CHANGELOG.md +601 -0
- package/repos/effect/packages/sql/libsql/LICENSE +21 -0
- package/repos/effect/packages/sql/libsql/README.md +7 -0
- package/repos/effect/packages/sql/libsql/docgen.json +24 -0
- package/repos/effect/packages/sql/libsql/package.json +73 -0
- package/repos/effect/packages/sql/libsql/src/LibsqlClient.ts +381 -0
- package/repos/effect/packages/sql/libsql/src/LibsqlMigrator.ts +46 -0
- package/repos/effect/packages/sql/libsql/src/index.ts +15 -0
- package/repos/effect/packages/sql/libsql/test/Client.test.ts +106 -0
- package/repos/effect/packages/sql/libsql/test/Resolver.test.ts +177 -0
- package/repos/effect/packages/sql/libsql/test/util.ts +54 -0
- package/repos/effect/packages/sql/libsql/tsconfig.json +9 -0
- package/repos/effect/packages/sql/libsql/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/mssql/CHANGELOG.md +601 -0
- package/repos/effect/packages/sql/mssql/LICENSE +21 -0
- package/repos/effect/packages/sql/mssql/README.md +7 -0
- package/repos/effect/packages/sql/mssql/docgen.json +24 -0
- package/repos/effect/packages/sql/mssql/package.json +70 -0
- package/repos/effect/packages/sql/mssql/src/MssqlClient.ts +732 -0
- package/repos/effect/packages/sql/mssql/src/MssqlMigrator.ts +45 -0
- package/repos/effect/packages/sql/mssql/src/Parameter.ts +64 -0
- package/repos/effect/packages/sql/mssql/src/Procedure.ts +213 -0
- package/repos/effect/packages/sql/mssql/src/index.ts +32 -0
- package/repos/effect/packages/sql/mssql/test/Client.test.ts +91 -0
- package/repos/effect/packages/sql/mssql/test/SqlErrorClassification.test.ts +206 -0
- package/repos/effect/packages/sql/mssql/tsconfig.json +8 -0
- package/repos/effect/packages/sql/mssql/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/mysql2/CHANGELOG.md +603 -0
- package/repos/effect/packages/sql/mysql2/LICENSE +21 -0
- package/repos/effect/packages/sql/mysql2/README.md +7 -0
- package/repos/effect/packages/sql/mysql2/docgen.json +24 -0
- package/repos/effect/packages/sql/mysql2/package.json +71 -0
- package/repos/effect/packages/sql/mysql2/src/MysqlClient.ts +517 -0
- package/repos/effect/packages/sql/mysql2/src/MysqlMigrator.ts +102 -0
- package/repos/effect/packages/sql/mysql2/src/index.ts +15 -0
- package/repos/effect/packages/sql/mysql2/test/Client.test.ts +34 -0
- package/repos/effect/packages/sql/mysql2/test/KeyValueStore.test.ts +16 -0
- package/repos/effect/packages/sql/mysql2/test/Model.test.ts +227 -0
- package/repos/effect/packages/sql/mysql2/test/MysqlClient.test.ts +35 -0
- package/repos/effect/packages/sql/mysql2/test/Persistence.test.ts +22 -0
- package/repos/effect/packages/sql/mysql2/test/SqlErrorClassification.test.ts +133 -0
- package/repos/effect/packages/sql/mysql2/test/SqlEventLogServerUnencrypted.test.ts +7 -0
- package/repos/effect/packages/sql/mysql2/test/utils.ts +64 -0
- package/repos/effect/packages/sql/mysql2/tsconfig.json +9 -0
- package/repos/effect/packages/sql/mysql2/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/pg/CHANGELOG.md +3432 -0
- package/repos/effect/packages/sql/pg/LICENSE +21 -0
- package/repos/effect/packages/sql/pg/README.md +7 -0
- package/repos/effect/packages/sql/pg/docgen.json +24 -0
- package/repos/effect/packages/sql/pg/package.json +77 -0
- package/repos/effect/packages/sql/pg/src/PgClient.ts +947 -0
- package/repos/effect/packages/sql/pg/src/PgMigrator.ts +120 -0
- package/repos/effect/packages/sql/pg/src/index.ts +15 -0
- package/repos/effect/packages/sql/pg/test/Client.test.ts +373 -0
- package/repos/effect/packages/sql/pg/test/KeyValueStore.test.ts +16 -0
- package/repos/effect/packages/sql/pg/test/Persistence.test.ts +20 -0
- package/repos/effect/packages/sql/pg/test/SqlErrorClassification.test.ts +81 -0
- package/repos/effect/packages/sql/pg/test/SqlEventLogServerUnencrypted.test.ts +7 -0
- package/repos/effect/packages/sql/pg/test/TransactionAcquire.test.ts +52 -0
- package/repos/effect/packages/sql/pg/test/utils.ts +49 -0
- package/repos/effect/packages/sql/pg/tsconfig.json +9 -0
- package/repos/effect/packages/sql/pg/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/pglite/CHANGELOG.md +198 -0
- package/repos/effect/packages/sql/pglite/LICENSE +21 -0
- package/repos/effect/packages/sql/pglite/README.md +7 -0
- package/repos/effect/packages/sql/pglite/docgen.json +24 -0
- package/repos/effect/packages/sql/pglite/package.json +74 -0
- package/repos/effect/packages/sql/pglite/src/PgliteClient.ts +503 -0
- package/repos/effect/packages/sql/pglite/src/PgliteMigrator.ts +44 -0
- package/repos/effect/packages/sql/pglite/src/index.ts +15 -0
- package/repos/effect/packages/sql/pglite/test/Client.test.ts +149 -0
- package/repos/effect/packages/sql/pglite/test/Migrator.test.ts +45 -0
- package/repos/effect/packages/sql/pglite/test/SqlErrorClassification.test.ts +56 -0
- package/repos/effect/packages/sql/pglite/test/Transaction.test.ts +62 -0
- package/repos/effect/packages/sql/pglite/tsconfig.json +8 -0
- package/repos/effect/packages/sql/pglite/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/sqlite-bun/CHANGELOG.md +601 -0
- package/repos/effect/packages/sql/sqlite-bun/LICENSE +21 -0
- package/repos/effect/packages/sql/sqlite-bun/README.md +7 -0
- package/repos/effect/packages/sql/sqlite-bun/docgen.json +24 -0
- package/repos/effect/packages/sql/sqlite-bun/package.json +69 -0
- package/repos/effect/packages/sql/sqlite-bun/src/SqliteClient.ts +262 -0
- package/repos/effect/packages/sql/sqlite-bun/src/SqliteMigrator.ts +90 -0
- package/repos/effect/packages/sql/sqlite-bun/src/index.ts +15 -0
- package/repos/effect/packages/sql/sqlite-bun/test/Client.test.ts +6 -0
- package/repos/effect/packages/sql/sqlite-bun/tsconfig.json +11 -0
- package/repos/effect/packages/sql/sqlite-bun/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/sqlite-do/CHANGELOG.md +601 -0
- package/repos/effect/packages/sql/sqlite-do/LICENSE +21 -0
- package/repos/effect/packages/sql/sqlite-do/README.md +7 -0
- package/repos/effect/packages/sql/sqlite-do/docgen.json +24 -0
- package/repos/effect/packages/sql/sqlite-do/package.json +68 -0
- package/repos/effect/packages/sql/sqlite-do/src/SqliteClient.ts +249 -0
- package/repos/effect/packages/sql/sqlite-do/src/SqliteMigrator.ts +45 -0
- package/repos/effect/packages/sql/sqlite-do/src/index.ts +15 -0
- package/repos/effect/packages/sql/sqlite-do/test/Client.test.ts +24 -0
- package/repos/effect/packages/sql/sqlite-do/tsconfig.json +8 -0
- package/repos/effect/packages/sql/sqlite-do/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/sqlite-node/CHANGELOG.md +3415 -0
- package/repos/effect/packages/sql/sqlite-node/LICENSE +21 -0
- package/repos/effect/packages/sql/sqlite-node/README.md +7 -0
- package/repos/effect/packages/sql/sqlite-node/docgen.json +24 -0
- package/repos/effect/packages/sql/sqlite-node/package.json +72 -0
- package/repos/effect/packages/sql/sqlite-node/src/SqliteClient.ts +312 -0
- package/repos/effect/packages/sql/sqlite-node/src/SqliteMigrator.ts +90 -0
- package/repos/effect/packages/sql/sqlite-node/src/index.ts +15 -0
- package/repos/effect/packages/sql/sqlite-node/test/Client.test.ts +75 -0
- package/repos/effect/packages/sql/sqlite-node/test/KeyValueStore.test.ts +29 -0
- package/repos/effect/packages/sql/sqlite-node/test/Persistence.test.ts +109 -0
- package/repos/effect/packages/sql/sqlite-node/test/Resolver.test.ts +183 -0
- package/repos/effect/packages/sql/sqlite-node/test/SqlEventJournal.test.ts +84 -0
- package/repos/effect/packages/sql/sqlite-node/test/SqlEventLogServerEncrypted.test.ts +249 -0
- package/repos/effect/packages/sql/sqlite-node/test/SqlEventLogServerUnencrypted.test.ts +110 -0
- package/repos/effect/packages/sql/sqlite-node/test/SqliteMigrator.test.ts +48 -0
- package/repos/effect/packages/sql/sqlite-node/tsconfig.json +8 -0
- package/repos/effect/packages/sql/sqlite-node/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/sqlite-react-native/CHANGELOG.md +601 -0
- package/repos/effect/packages/sql/sqlite-react-native/LICENSE +21 -0
- package/repos/effect/packages/sql/sqlite-react-native/README.md +7 -0
- package/repos/effect/packages/sql/sqlite-react-native/docgen.json +24 -0
- package/repos/effect/packages/sql/sqlite-react-native/package.json +69 -0
- package/repos/effect/packages/sql/sqlite-react-native/src/SqliteClient.ts +354 -0
- package/repos/effect/packages/sql/sqlite-react-native/src/SqliteMigrator.ts +55 -0
- package/repos/effect/packages/sql/sqlite-react-native/src/index.ts +15 -0
- package/repos/effect/packages/sql/sqlite-react-native/test/Client.test.ts +6 -0
- package/repos/effect/packages/sql/sqlite-react-native/tsconfig.json +8 -0
- package/repos/effect/packages/sql/sqlite-react-native/vitest.config.ts +6 -0
- package/repos/effect/packages/sql/sqlite-wasm/CHANGELOG.md +601 -0
- package/repos/effect/packages/sql/sqlite-wasm/LICENSE +21 -0
- package/repos/effect/packages/sql/sqlite-wasm/README.md +7 -0
- package/repos/effect/packages/sql/sqlite-wasm/docgen.json +24 -0
- package/repos/effect/packages/sql/sqlite-wasm/package.json +69 -0
- package/repos/effect/packages/sql/sqlite-wasm/src/OpfsWorker.ts +118 -0
- package/repos/effect/packages/sql/sqlite-wasm/src/SqliteClient.ts +551 -0
- package/repos/effect/packages/sql/sqlite-wasm/src/SqliteMigrator.ts +55 -0
- package/repos/effect/packages/sql/sqlite-wasm/src/index.ts +14 -0
- package/repos/effect/packages/sql/sqlite-wasm/src/internal/opfsWorker.ts +7 -0
- package/repos/effect/packages/sql/sqlite-wasm/src/sqlite-wasm.d.ts +47 -0
- package/repos/effect/packages/sql/sqlite-wasm/test/Client.test.ts +6 -0
- package/repos/effect/packages/sql/sqlite-wasm/tsconfig.json +8 -0
- package/repos/effect/packages/sql/sqlite-wasm/vitest.config.ts +6 -0
- package/repos/effect/packages/tools/ai-codegen/codegen.schema.json +92 -0
- package/repos/effect/packages/tools/ai-codegen/docgen.json +4 -0
- package/repos/effect/packages/tools/ai-codegen/package.json +61 -0
- package/repos/effect/packages/tools/ai-codegen/src/Config.ts +292 -0
- package/repos/effect/packages/tools/ai-codegen/src/Discovery.ts +197 -0
- package/repos/effect/packages/tools/ai-codegen/src/Generator.ts +183 -0
- package/repos/effect/packages/tools/ai-codegen/src/Glob.ts +56 -0
- package/repos/effect/packages/tools/ai-codegen/src/PostProcess.ts +157 -0
- package/repos/effect/packages/tools/ai-codegen/src/SpecFetcher.ts +154 -0
- package/repos/effect/packages/tools/ai-codegen/src/bin.ts +10 -0
- package/repos/effect/packages/tools/ai-codegen/src/main.ts +237 -0
- package/repos/effect/packages/tools/ai-codegen/tsconfig.json +15 -0
- package/repos/effect/packages/tools/ai-docgen/docgen.json +4 -0
- package/repos/effect/packages/tools/ai-docgen/package.json +60 -0
- package/repos/effect/packages/tools/ai-docgen/src/Glob.ts +48 -0
- package/repos/effect/packages/tools/ai-docgen/src/main.ts +186 -0
- package/repos/effect/packages/tools/ai-docgen/tsconfig.json +14 -0
- package/repos/effect/packages/tools/bundle/docgen.json +4 -0
- package/repos/effect/packages/tools/bundle/fixtures/basic.ts +3 -0
- package/repos/effect/packages/tools/bundle/fixtures/batching.ts +25 -0
- package/repos/effect/packages/tools/bundle/fixtures/brand.ts +5 -0
- package/repos/effect/packages/tools/bundle/fixtures/cache.ts +10 -0
- package/repos/effect/packages/tools/bundle/fixtures/config.ts +13 -0
- package/repos/effect/packages/tools/bundle/fixtures/differ.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/http-client.ts +12 -0
- package/repos/effect/packages/tools/bundle/fixtures/logger.ts +5 -0
- package/repos/effect/packages/tools/bundle/fixtures/metric.ts +13 -0
- package/repos/effect/packages/tools/bundle/fixtures/optic.ts +6 -0
- package/repos/effect/packages/tools/bundle/fixtures/pubsub.ts +22 -0
- package/repos/effect/packages/tools/bundle/fixtures/queue.ts +18 -0
- package/repos/effect/packages/tools/bundle/fixtures/schedule.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-fromJsonSchemaDocument.ts +16 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-representation-roundtrip.ts +16 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-string-transformation.ts +20 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-string.ts +8 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-template-literal.ts +8 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toArbitraryLazy.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toCodeDocument.ts +12 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toCodecJson.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toEquivalence.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toFormatter.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toJsonSchemaDocument.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema-toRepresentation.ts +9 -0
- package/repos/effect/packages/tools/bundle/fixtures/schema.ts +12 -0
- package/repos/effect/packages/tools/bundle/fixtures/stm.ts +21 -0
- package/repos/effect/packages/tools/bundle/fixtures/stream.ts +7 -0
- package/repos/effect/packages/tools/bundle/package.json +52 -0
- package/repos/effect/packages/tools/bundle/src/Cli.ts +104 -0
- package/repos/effect/packages/tools/bundle/src/Fixtures.ts +51 -0
- package/repos/effect/packages/tools/bundle/src/Plugins.ts +131 -0
- package/repos/effect/packages/tools/bundle/src/Reporter.ts +200 -0
- package/repos/effect/packages/tools/bundle/src/Rollup.ts +179 -0
- package/repos/effect/packages/tools/bundle/src/bin.ts +23 -0
- package/repos/effect/packages/tools/bundle/tsconfig.fixtures.json +13 -0
- package/repos/effect/packages/tools/bundle/tsconfig.json +9 -0
- package/repos/effect/packages/tools/bundle/tsconfig.src.json +13 -0
- package/repos/effect/packages/tools/jsdocs/docgen.json +4 -0
- package/repos/effect/packages/tools/jsdocs/package.json +64 -0
- package/repos/effect/packages/tools/jsdocs/src/Jsdocs.ts +3303 -0
- package/repos/effect/packages/tools/jsdocs/src/bin.ts +23 -0
- package/repos/effect/packages/tools/jsdocs/test/jsdocs.test.ts +979 -0
- package/repos/effect/packages/tools/jsdocs/tsconfig.json +8 -0
- package/repos/effect/packages/tools/jsdocs/vitest.config.ts +6 -0
- package/repos/effect/packages/tools/openapi-generator/CHANGELOG.md +691 -0
- package/repos/effect/packages/tools/openapi-generator/LICENSE +21 -0
- package/repos/effect/packages/tools/openapi-generator/docgen.json +4 -0
- package/repos/effect/packages/tools/openapi-generator/package.json +78 -0
- package/repos/effect/packages/tools/openapi-generator/src/HttpApiTransformer.ts +552 -0
- package/repos/effect/packages/tools/openapi-generator/src/JsonSchemaGenerator.ts +319 -0
- package/repos/effect/packages/tools/openapi-generator/src/OpenApiGenerator.ts +1201 -0
- package/repos/effect/packages/tools/openapi-generator/src/OpenApiPatch.ts +539 -0
- package/repos/effect/packages/tools/openapi-generator/src/OpenApiTransformer.ts +1019 -0
- package/repos/effect/packages/tools/openapi-generator/src/ParsedOperation.ts +277 -0
- package/repos/effect/packages/tools/openapi-generator/src/Utils.ts +111 -0
- package/repos/effect/packages/tools/openapi-generator/src/bin.ts +10 -0
- package/repos/effect/packages/tools/openapi-generator/src/main.ts +116 -0
- package/repos/effect/packages/tools/openapi-generator/test/JsonSchemaGenerator.test.ts +173 -0
- package/repos/effect/packages/tools/openapi-generator/test/OpenApiGenerator.test.ts +2130 -0
- package/repos/effect/packages/tools/openapi-generator/test/OpenApiGeneratorCli.test.ts +147 -0
- package/repos/effect/packages/tools/openapi-generator/test/OpenApiPatch.test.ts +380 -0
- package/repos/effect/packages/tools/openapi-generator/test/Utils.test.ts +33 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/cli-basic-spec.json +35 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/cli-warning-spec.json +57 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/invalid-op.json +7 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/missing-path.json +6 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/missing-value.json +6 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-add.json +8 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-multiple.json +17 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-patch.yaml +6 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-remove.json +6 -0
- package/repos/effect/packages/tools/openapi-generator/test/fixtures/patches/valid-replace.json +7 -0
- package/repos/effect/packages/tools/openapi-generator/tsconfig.json +9 -0
- package/repos/effect/packages/tools/openapi-generator/vitest.config.ts +6 -0
- package/repos/effect/packages/tools/oxc/docgen.json +4 -0
- package/repos/effect/packages/tools/oxc/oxlintrc.json +83 -0
- package/repos/effect/packages/tools/oxc/package.json +72 -0
- package/repos/effect/packages/tools/oxc/src/oxlint/index.ts +18 -0
- package/repos/effect/packages/tools/oxc/src/oxlint/rules/jsdocs.ts +108 -0
- package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-bigint-literals.ts +25 -0
- package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-import-from-barrel-package.ts +144 -0
- package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-js-extension-imports.ts +73 -0
- package/repos/effect/packages/tools/oxc/src/oxlint/rules/no-opaque-instance-fields.ts +92 -0
- package/repos/effect/packages/tools/oxc/test/jsdocs.test.ts +75 -0
- package/repos/effect/packages/tools/oxc/test/no-import-from-barrel-package.test.ts +182 -0
- package/repos/effect/packages/tools/oxc/test/no-js-extension-imports.test.ts +120 -0
- package/repos/effect/packages/tools/oxc/test/no-opaque-instance-fields.test.ts +276 -0
- package/repos/effect/packages/tools/oxc/test/utils.ts +61 -0
- package/repos/effect/packages/tools/oxc/tsconfig.json +8 -0
- package/repos/effect/packages/tools/oxc/vitest.config.ts +6 -0
- package/repos/effect/packages/tools/utils/docgen.json +4 -0
- package/repos/effect/packages/tools/utils/package.json +59 -0
- package/repos/effect/packages/tools/utils/src/Codegen.ts +214 -0
- package/repos/effect/packages/tools/utils/src/Glob.ts +61 -0
- package/repos/effect/packages/tools/utils/src/bin.ts +16 -0
- package/repos/effect/packages/tools/utils/src/commands/codegen.ts +44 -0
- package/repos/effect/packages/tools/utils/tsconfig.json +9 -0
- package/repos/effect/packages/vitest/CHANGELOG.md +601 -0
- package/repos/effect/packages/vitest/LICENSE +21 -0
- package/repos/effect/packages/vitest/README.md +320 -0
- package/repos/effect/packages/vitest/docgen.json +24 -0
- package/repos/effect/packages/vitest/package.json +60 -0
- package/repos/effect/packages/vitest/src/index.ts +259 -0
- package/repos/effect/packages/vitest/src/internal/internal.ts +374 -0
- package/repos/effect/packages/vitest/src/utils.ts +321 -0
- package/repos/effect/packages/vitest/test/index.test.ts +222 -0
- package/repos/effect/packages/vitest/test/isolation.test.ts +105 -0
- package/repos/effect/packages/vitest/test/nested-isolation.test.ts +212 -0
- package/repos/effect/packages/vitest/tsconfig.json +11 -0
- package/repos/effect/packages/vitest/typetest/index.tst.ts +56 -0
- package/repos/effect/packages/vitest/vitest.config.ts +6 -0
- package/repos/effect/patches/@changesets__assemble-release-plan.patch +26 -0
- package/repos/effect/patches/@changesets__get-github-info.patch +44 -0
- package/repos/effect/pnpm-lock.yaml +13483 -0
- package/repos/effect/pnpm-workspace.yaml +10 -0
- package/repos/effect/scripts/bundle-compare.sh +42 -0
- package/repos/effect/scripts/check-cookbook-schedule.ts +390 -0
- package/repos/effect/scripts/circular.mjs +26 -0
- package/repos/effect/scripts/clean.mjs +19 -0
- package/repos/effect/scripts/codemod.mjs +22 -0
- package/repos/effect/scripts/codemods/jsdoc.ts +79 -0
- package/repos/effect/scripts/docs.mjs +64 -0
- package/repos/effect/scripts/package-scalar.mjs +14 -0
- package/repos/effect/scripts/package-swagger.mjs +23 -0
- package/repos/effect/scripts/package.json +22 -0
- package/repos/effect/scripts/tsconfig.json +18 -0
- package/repos/effect/scripts/version.mjs +9 -0
- package/repos/effect/scripts/version.template.txt +2 -0
- package/repos/effect/scripts/worktree-setup.sh +27 -0
- package/repos/effect/stats.txt +30 -0
- package/repos/effect/tsconfig.base.json +46 -0
- package/repos/effect/tsconfig.json +128 -0
- package/repos/effect/tsconfig.packages.json +39 -0
- package/repos/effect/tstyche.json +7 -0
- package/repos/effect/vitest.config.ts +31 -0
- package/repos/effect/vitest.setup.ts +4 -0
- package/repos/effect/vitest.shared.ts +61 -0
- package/repos/effect.subtree.json +16 -0
|
@@ -0,0 +1,2582 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines a shared data model for AI model output.
|
|
3
|
+
*
|
|
4
|
+
* Responses are represented as typed parts so different providers can expose
|
|
5
|
+
* text, reasoning, tool calls, files, sources, metadata, finish information, and
|
|
6
|
+
* errors through one shape. The same model is used for complete responses and
|
|
7
|
+
* streaming responses, where start, delta, and end parts describe content as it
|
|
8
|
+
* arrives. This module also carries provider metadata and schemas used by tools
|
|
9
|
+
* that need to validate response parts.
|
|
10
|
+
*
|
|
11
|
+
* @since 4.0.0
|
|
12
|
+
*/
|
|
13
|
+
import type * as DateTime from "../../DateTime.ts"
|
|
14
|
+
import * as Effect from "../../Effect.ts"
|
|
15
|
+
import { identity } from "../../Function.ts"
|
|
16
|
+
import * as Predicate from "../../Predicate.ts"
|
|
17
|
+
import * as Schema from "../../Schema.ts"
|
|
18
|
+
import * as SchemaTransformation from "../../SchemaTransformation.ts"
|
|
19
|
+
import type * as Tool from "./Tool.ts"
|
|
20
|
+
import type * as Toolkit from "./Toolkit.ts"
|
|
21
|
+
|
|
22
|
+
const PartTypeId = "~effect/ai/Content/Part" as const
|
|
23
|
+
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// All Parts
|
|
26
|
+
// =============================================================================
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Type guard to check if a value is a Response Part.
|
|
30
|
+
*
|
|
31
|
+
* @category guards
|
|
32
|
+
* @since 4.0.0
|
|
33
|
+
*/
|
|
34
|
+
export const isPart = (u: unknown): u is AnyPart => Predicate.hasProperty(u, PartTypeId)
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Union type representing all possible response content parts.
|
|
38
|
+
*
|
|
39
|
+
* @category models
|
|
40
|
+
* @since 4.0.0
|
|
41
|
+
*/
|
|
42
|
+
export type AnyPart =
|
|
43
|
+
| TextPart
|
|
44
|
+
| TextStartPart
|
|
45
|
+
| TextDeltaPart
|
|
46
|
+
| TextEndPart
|
|
47
|
+
| ReasoningPart
|
|
48
|
+
| ReasoningStartPart
|
|
49
|
+
| ReasoningDeltaPart
|
|
50
|
+
| ReasoningEndPart
|
|
51
|
+
| ToolParamsStartPart
|
|
52
|
+
| ToolParamsDeltaPart
|
|
53
|
+
| ToolParamsEndPart
|
|
54
|
+
| ToolCallPart<any, any>
|
|
55
|
+
| ToolResultPart<any, any, any>
|
|
56
|
+
| ToolApprovalRequestPart
|
|
57
|
+
| FilePart
|
|
58
|
+
| DocumentSourcePart
|
|
59
|
+
| UrlSourcePart
|
|
60
|
+
| ResponseMetadataPart
|
|
61
|
+
| FinishPart
|
|
62
|
+
| ErrorPart
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Encoded representation of all possible response content parts for serialization.
|
|
66
|
+
*
|
|
67
|
+
* @category models
|
|
68
|
+
* @since 4.0.0
|
|
69
|
+
*/
|
|
70
|
+
export type AnyPartEncoded =
|
|
71
|
+
| TextPartEncoded
|
|
72
|
+
| TextStartPartEncoded
|
|
73
|
+
| TextDeltaPartEncoded
|
|
74
|
+
| TextEndPartEncoded
|
|
75
|
+
| ReasoningPartEncoded
|
|
76
|
+
| ReasoningStartPartEncoded
|
|
77
|
+
| ReasoningDeltaPartEncoded
|
|
78
|
+
| ReasoningEndPartEncoded
|
|
79
|
+
| ToolParamsStartPartEncoded
|
|
80
|
+
| ToolParamsDeltaPartEncoded
|
|
81
|
+
| ToolParamsEndPartEncoded
|
|
82
|
+
| ToolCallPartEncoded
|
|
83
|
+
| ToolResultPartEncoded
|
|
84
|
+
| ToolApprovalRequestPartEncoded
|
|
85
|
+
| FilePartEncoded
|
|
86
|
+
| DocumentSourcePartEncoded
|
|
87
|
+
| UrlSourcePartEncoded
|
|
88
|
+
| ResponseMetadataPartEncoded
|
|
89
|
+
| FinishPartEncoded
|
|
90
|
+
| ErrorPartEncoded
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Union type for all response parts with tool-specific typing.
|
|
94
|
+
*
|
|
95
|
+
* @category models
|
|
96
|
+
* @since 4.0.0
|
|
97
|
+
*/
|
|
98
|
+
export type AllParts<Tools extends Record<string, Tool.Any>> =
|
|
99
|
+
| TextPart
|
|
100
|
+
| TextStartPart
|
|
101
|
+
| TextDeltaPart
|
|
102
|
+
| TextEndPart
|
|
103
|
+
| ReasoningPart
|
|
104
|
+
| ReasoningStartPart
|
|
105
|
+
| ReasoningDeltaPart
|
|
106
|
+
| ReasoningEndPart
|
|
107
|
+
| ToolParamsStartPart
|
|
108
|
+
| ToolParamsDeltaPart
|
|
109
|
+
| ToolParamsEndPart
|
|
110
|
+
| ToolCallParts<Tools>
|
|
111
|
+
| ToolResultParts<Tools>
|
|
112
|
+
| ToolApprovalRequestPart
|
|
113
|
+
| FilePart
|
|
114
|
+
| DocumentSourcePart
|
|
115
|
+
| UrlSourcePart
|
|
116
|
+
| ResponseMetadataPart
|
|
117
|
+
| FinishPart
|
|
118
|
+
| ErrorPart
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Encoded representation of all response parts for serialization.
|
|
122
|
+
*
|
|
123
|
+
* @category models
|
|
124
|
+
* @since 4.0.0
|
|
125
|
+
*/
|
|
126
|
+
export type AllPartsEncoded =
|
|
127
|
+
| TextPartEncoded
|
|
128
|
+
| TextStartPartEncoded
|
|
129
|
+
| TextDeltaPartEncoded
|
|
130
|
+
| TextEndPartEncoded
|
|
131
|
+
| ReasoningPartEncoded
|
|
132
|
+
| ReasoningStartPartEncoded
|
|
133
|
+
| ReasoningDeltaPartEncoded
|
|
134
|
+
| ReasoningEndPartEncoded
|
|
135
|
+
| ToolParamsStartPartEncoded
|
|
136
|
+
| ToolParamsDeltaPartEncoded
|
|
137
|
+
| ToolParamsEndPartEncoded
|
|
138
|
+
| ToolCallPartEncoded
|
|
139
|
+
| ToolResultPartEncoded
|
|
140
|
+
| ToolApprovalRequestPartEncoded
|
|
141
|
+
| FilePartEncoded
|
|
142
|
+
| DocumentSourcePartEncoded
|
|
143
|
+
| UrlSourcePartEncoded
|
|
144
|
+
| ResponseMetadataPartEncoded
|
|
145
|
+
| FinishPartEncoded
|
|
146
|
+
| ErrorPartEncoded
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Creates a Schema for all response parts based on a toolkit.
|
|
150
|
+
*
|
|
151
|
+
* **Details**
|
|
152
|
+
*
|
|
153
|
+
* Generates a schema that includes all possible response parts, with tool call
|
|
154
|
+
* and tool result parts dynamically created based on the provided toolkit.
|
|
155
|
+
*
|
|
156
|
+
* **Example** (Building a response parts schema)
|
|
157
|
+
*
|
|
158
|
+
* ```ts
|
|
159
|
+
* import { Schema } from "effect"
|
|
160
|
+
* import { Response, Tool, Toolkit } from "effect/unstable/ai"
|
|
161
|
+
*
|
|
162
|
+
* const myToolkit = Toolkit.make(
|
|
163
|
+
* Tool.make("GetWeather", {
|
|
164
|
+
* parameters: Schema.Struct({ city: Schema.String }),
|
|
165
|
+
* success: Schema.Struct({ temperature: Schema.Number })
|
|
166
|
+
* })
|
|
167
|
+
* )
|
|
168
|
+
*
|
|
169
|
+
* const allPartsSchema = Response.AllParts(myToolkit)
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @category schemas
|
|
173
|
+
* @since 4.0.0
|
|
174
|
+
*/
|
|
175
|
+
export const AllParts = <T extends Toolkit.Any | Toolkit.WithHandler<any>>(
|
|
176
|
+
toolkit: T
|
|
177
|
+
): Schema.Codec<
|
|
178
|
+
AllParts<T extends Toolkit.Any ? Toolkit.Tools<T> : Toolkit.WithHandlerTools<T>>,
|
|
179
|
+
AllPartsEncoded,
|
|
180
|
+
Tool.ResultDecodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>,
|
|
181
|
+
Tool.ResultEncodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>
|
|
182
|
+
> => {
|
|
183
|
+
const toolCalls: Array<Schema.Top> = []
|
|
184
|
+
const toolResults: Array<Schema.Top> = []
|
|
185
|
+
for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) {
|
|
186
|
+
const toolCall = ToolCallPart(tool.name, tool.parametersSchema)
|
|
187
|
+
const toolResult = ToolResultPart(tool.name, tool.successSchema, tool.failureSchema)
|
|
188
|
+
toolCalls.push(toolCall)
|
|
189
|
+
toolResults.push(toolResult)
|
|
190
|
+
}
|
|
191
|
+
return Schema.Union([
|
|
192
|
+
TextPart,
|
|
193
|
+
TextStartPart,
|
|
194
|
+
TextDeltaPart,
|
|
195
|
+
TextEndPart,
|
|
196
|
+
ReasoningPart,
|
|
197
|
+
ReasoningStartPart,
|
|
198
|
+
ReasoningDeltaPart,
|
|
199
|
+
ReasoningEndPart,
|
|
200
|
+
ToolParamsStartPart,
|
|
201
|
+
ToolParamsDeltaPart,
|
|
202
|
+
ToolParamsEndPart,
|
|
203
|
+
ToolApprovalRequestPart,
|
|
204
|
+
FilePart,
|
|
205
|
+
DocumentSourcePart,
|
|
206
|
+
UrlSourcePart,
|
|
207
|
+
ResponseMetadataPart,
|
|
208
|
+
FinishPart,
|
|
209
|
+
ErrorPart,
|
|
210
|
+
...toolCalls,
|
|
211
|
+
...toolResults
|
|
212
|
+
]) as any
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// =============================================================================
|
|
216
|
+
// Parts
|
|
217
|
+
// =============================================================================
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* A type for representing non-streaming response parts with tool-specific
|
|
221
|
+
* typing.
|
|
222
|
+
*
|
|
223
|
+
* @category models
|
|
224
|
+
* @since 4.0.0
|
|
225
|
+
*/
|
|
226
|
+
export type Part<Tools extends Record<string, Tool.Any>> =
|
|
227
|
+
| TextPart
|
|
228
|
+
| ReasoningPart
|
|
229
|
+
| ToolCallParts<Tools>
|
|
230
|
+
| ToolResultParts<Tools>
|
|
231
|
+
| ToolApprovalRequestPart
|
|
232
|
+
| FilePart
|
|
233
|
+
| DocumentSourcePart
|
|
234
|
+
| UrlSourcePart
|
|
235
|
+
| ResponseMetadataPart
|
|
236
|
+
| FinishPart
|
|
237
|
+
|
|
238
|
+
/**
|
|
239
|
+
* Encoded representation of non-streaming response parts for serialization.
|
|
240
|
+
*
|
|
241
|
+
* @category models
|
|
242
|
+
* @since 4.0.0
|
|
243
|
+
*/
|
|
244
|
+
export type PartEncoded =
|
|
245
|
+
| TextPartEncoded
|
|
246
|
+
| ReasoningPartEncoded
|
|
247
|
+
| ReasoningDeltaPartEncoded
|
|
248
|
+
| ReasoningEndPartEncoded
|
|
249
|
+
| ToolCallPartEncoded
|
|
250
|
+
| ToolResultPartEncoded
|
|
251
|
+
| ToolApprovalRequestPartEncoded
|
|
252
|
+
| FilePartEncoded
|
|
253
|
+
| DocumentSourcePartEncoded
|
|
254
|
+
| UrlSourcePartEncoded
|
|
255
|
+
| ResponseMetadataPartEncoded
|
|
256
|
+
| FinishPartEncoded
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Creates a Schema for non-streaming response parts based on a toolkit.
|
|
260
|
+
*
|
|
261
|
+
* @category schemas
|
|
262
|
+
* @since 4.0.0
|
|
263
|
+
*/
|
|
264
|
+
export const Part = <T extends Toolkit.Any | Toolkit.WithHandler<any>>(
|
|
265
|
+
toolkit: T
|
|
266
|
+
): Schema.Codec<
|
|
267
|
+
Part<T extends Toolkit.Any ? Toolkit.Tools<T> : Toolkit.WithHandlerTools<T>>,
|
|
268
|
+
PartEncoded,
|
|
269
|
+
Tool.ResultDecodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>,
|
|
270
|
+
Tool.ResultEncodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>
|
|
271
|
+
> => {
|
|
272
|
+
const toolCalls: Array<Schema.Top> = []
|
|
273
|
+
const toolResults: Array<Schema.Top> = []
|
|
274
|
+
for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) {
|
|
275
|
+
const toolCall = ToolCallPart(tool.name, tool.parametersSchema)
|
|
276
|
+
const toolResult = ToolResultPart(tool.name, tool.successSchema, tool.failureSchema)
|
|
277
|
+
toolCalls.push(toolCall)
|
|
278
|
+
toolResults.push(toolResult)
|
|
279
|
+
}
|
|
280
|
+
return Schema.Union([
|
|
281
|
+
TextPart,
|
|
282
|
+
ReasoningPart,
|
|
283
|
+
ToolApprovalRequestPart,
|
|
284
|
+
FilePart,
|
|
285
|
+
DocumentSourcePart,
|
|
286
|
+
UrlSourcePart,
|
|
287
|
+
ResponseMetadataPart,
|
|
288
|
+
FinishPart,
|
|
289
|
+
...toolCalls,
|
|
290
|
+
...toolResults
|
|
291
|
+
]) as any
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// =============================================================================
|
|
295
|
+
// Stream Parts
|
|
296
|
+
// =============================================================================
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* A type for representing streaming response parts with tool-specific typing.
|
|
300
|
+
*
|
|
301
|
+
* @category models
|
|
302
|
+
* @since 4.0.0
|
|
303
|
+
*/
|
|
304
|
+
export type StreamPart<Tools extends Record<string, Tool.Any>> =
|
|
305
|
+
| TextStartPart
|
|
306
|
+
| TextDeltaPart
|
|
307
|
+
| TextEndPart
|
|
308
|
+
| ReasoningStartPart
|
|
309
|
+
| ReasoningDeltaPart
|
|
310
|
+
| ReasoningEndPart
|
|
311
|
+
| ToolParamsStartPart
|
|
312
|
+
| ToolParamsDeltaPart
|
|
313
|
+
| ToolParamsEndPart
|
|
314
|
+
| ToolCallParts<Tools>
|
|
315
|
+
| ToolResultParts<Tools>
|
|
316
|
+
| ToolApprovalRequestPart
|
|
317
|
+
| FilePart
|
|
318
|
+
| DocumentSourcePart
|
|
319
|
+
| UrlSourcePart
|
|
320
|
+
| ResponseMetadataPart
|
|
321
|
+
| FinishPart
|
|
322
|
+
| ErrorPart
|
|
323
|
+
|
|
324
|
+
/**
|
|
325
|
+
* Encoded representation of streaming response parts for serialization.
|
|
326
|
+
*
|
|
327
|
+
* @category models
|
|
328
|
+
* @since 4.0.0
|
|
329
|
+
*/
|
|
330
|
+
export type StreamPartEncoded =
|
|
331
|
+
| TextStartPartEncoded
|
|
332
|
+
| TextDeltaPartEncoded
|
|
333
|
+
| TextEndPartEncoded
|
|
334
|
+
| ReasoningStartPartEncoded
|
|
335
|
+
| ReasoningDeltaPartEncoded
|
|
336
|
+
| ReasoningEndPartEncoded
|
|
337
|
+
| ToolParamsStartPartEncoded
|
|
338
|
+
| ToolParamsDeltaPartEncoded
|
|
339
|
+
| ToolParamsEndPartEncoded
|
|
340
|
+
| ToolCallPartEncoded
|
|
341
|
+
| ToolResultPartEncoded
|
|
342
|
+
| ToolApprovalRequestPartEncoded
|
|
343
|
+
| FilePartEncoded
|
|
344
|
+
| DocumentSourcePartEncoded
|
|
345
|
+
| UrlSourcePartEncoded
|
|
346
|
+
| ResponseMetadataPartEncoded
|
|
347
|
+
| FinishPartEncoded
|
|
348
|
+
| ErrorPartEncoded
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* Creates a Schema for streaming response parts based on a toolkit.
|
|
352
|
+
*
|
|
353
|
+
* @category schemas
|
|
354
|
+
* @since 4.0.0
|
|
355
|
+
*/
|
|
356
|
+
export const StreamPart = <T extends Toolkit.Any | Toolkit.WithHandler<any>>(
|
|
357
|
+
toolkit: T
|
|
358
|
+
): Schema.Codec<
|
|
359
|
+
StreamPart<T extends Toolkit.Any ? Toolkit.Tools<T> : Toolkit.WithHandlerTools<T>>,
|
|
360
|
+
StreamPartEncoded,
|
|
361
|
+
Tool.ResultDecodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>,
|
|
362
|
+
Tool.ResultEncodingServices<Toolkit.Tools<T>[keyof Toolkit.Tools<T>]>
|
|
363
|
+
> => {
|
|
364
|
+
const toolCalls: Array<Schema.Top> = []
|
|
365
|
+
const toolResults: Array<Schema.Top> = []
|
|
366
|
+
for (const tool of Object.values(toolkit.tools as Record<string, Tool.Any>)) {
|
|
367
|
+
const toolCall = ToolCallPart(tool.name, tool.parametersSchema)
|
|
368
|
+
const toolResult = ToolResultPart(tool.name, tool.successSchema, tool.failureSchema)
|
|
369
|
+
toolCalls.push(toolCall)
|
|
370
|
+
toolResults.push(toolResult)
|
|
371
|
+
}
|
|
372
|
+
return Schema.Union([
|
|
373
|
+
TextStartPart,
|
|
374
|
+
TextDeltaPart,
|
|
375
|
+
TextEndPart,
|
|
376
|
+
ReasoningStartPart,
|
|
377
|
+
ReasoningDeltaPart,
|
|
378
|
+
ReasoningEndPart,
|
|
379
|
+
ToolParamsStartPart,
|
|
380
|
+
ToolParamsDeltaPart,
|
|
381
|
+
ToolParamsEndPart,
|
|
382
|
+
ToolApprovalRequestPart,
|
|
383
|
+
FilePart,
|
|
384
|
+
DocumentSourcePart,
|
|
385
|
+
UrlSourcePart,
|
|
386
|
+
ResponseMetadataPart,
|
|
387
|
+
FinishPart,
|
|
388
|
+
ErrorPart,
|
|
389
|
+
...toolCalls,
|
|
390
|
+
...toolResults
|
|
391
|
+
]) as any
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
// =============================================================================
|
|
395
|
+
// utility types
|
|
396
|
+
// =============================================================================
|
|
397
|
+
|
|
398
|
+
/**
|
|
399
|
+
* Utility type that extracts tool call parts from a set of tools.
|
|
400
|
+
*
|
|
401
|
+
* @category utility types
|
|
402
|
+
* @since 4.0.0
|
|
403
|
+
*/
|
|
404
|
+
export type ToolCallParts<Tools extends Record<string, Tool.Any>> = {
|
|
405
|
+
[Name in keyof Tools]: Name extends string ? ToolCallPart<Name, Tool.Parameters<Tools[Name]>>
|
|
406
|
+
: never
|
|
407
|
+
}[keyof Tools]
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* Utility type that extracts tool result parts from a set of tools.
|
|
411
|
+
*
|
|
412
|
+
* @category utility types
|
|
413
|
+
* @since 4.0.0
|
|
414
|
+
*/
|
|
415
|
+
export type ToolResultParts<Tools extends Record<string, Tool.Any>> = {
|
|
416
|
+
[Name in keyof Tools]: Name extends string
|
|
417
|
+
? ToolResultPart<Name, Tool.Success<Tools[Name]>, Tool.FailureResult<Tools[Name]>>
|
|
418
|
+
: never
|
|
419
|
+
}[keyof Tools]
|
|
420
|
+
|
|
421
|
+
// =============================================================================
|
|
422
|
+
// Base Part
|
|
423
|
+
// =============================================================================
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Schema for provider-specific metadata attached to response parts,
|
|
427
|
+
* represented as a record from provider-specific keys to JSON values or `null`.
|
|
428
|
+
*
|
|
429
|
+
* @category schemas
|
|
430
|
+
* @since 4.0.0
|
|
431
|
+
*/
|
|
432
|
+
export const ProviderMetadata: Schema.$Record<
|
|
433
|
+
Schema.String,
|
|
434
|
+
Schema.NullOr<Schema.Codec<Schema.Json>>
|
|
435
|
+
> = Schema.Record(Schema.String, Schema.NullOr(Schema.Json))
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Type of provider-specific metadata attached to response parts, keyed by
|
|
439
|
+
* provider-specific names with JSON or `null` values.
|
|
440
|
+
*
|
|
441
|
+
* @category models
|
|
442
|
+
* @since 4.0.0
|
|
443
|
+
*/
|
|
444
|
+
export type ProviderMetadata = typeof ProviderMetadata.Type
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Base interface for all response content parts, including the type identifier
|
|
448
|
+
* and optional metadata.
|
|
449
|
+
*
|
|
450
|
+
* @category models
|
|
451
|
+
* @since 4.0.0
|
|
452
|
+
*/
|
|
453
|
+
export interface BasePart<Type extends string, Metadata extends ProviderMetadata> {
|
|
454
|
+
readonly [PartTypeId]: typeof PartTypeId
|
|
455
|
+
/**
|
|
456
|
+
* The type of this response part.
|
|
457
|
+
*/
|
|
458
|
+
readonly type: Type
|
|
459
|
+
/**
|
|
460
|
+
* Optional provider-specific metadata for this part.
|
|
461
|
+
*/
|
|
462
|
+
readonly metadata: Metadata
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
/**
|
|
466
|
+
* Base interface for encoded response content parts.
|
|
467
|
+
*
|
|
468
|
+
* @category models
|
|
469
|
+
* @since 4.0.0
|
|
470
|
+
*/
|
|
471
|
+
export interface BasePartEncoded<Type extends string, Metadata extends ProviderMetadata> {
|
|
472
|
+
/**
|
|
473
|
+
* The type of this response part.
|
|
474
|
+
*/
|
|
475
|
+
readonly type: Type
|
|
476
|
+
/**
|
|
477
|
+
* Optional provider-specific metadata for this part.
|
|
478
|
+
*/
|
|
479
|
+
readonly metadata?: Metadata | undefined
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
const BasePart = Schema.Struct({
|
|
483
|
+
[PartTypeId]: Schema.tag(PartTypeId).pipe(
|
|
484
|
+
Schema.withDecodingDefaultKey(Effect.succeed(PartTypeId), { encodingStrategy: "omit" })
|
|
485
|
+
),
|
|
486
|
+
metadata: ProviderMetadata.pipe(
|
|
487
|
+
Schema.withDecodingDefault(Effect.succeed({}))
|
|
488
|
+
)
|
|
489
|
+
})
|
|
490
|
+
|
|
491
|
+
/**
|
|
492
|
+
* Creates a new response content part of the specified type.
|
|
493
|
+
*
|
|
494
|
+
* **Example** (Creating response content parts)
|
|
495
|
+
*
|
|
496
|
+
* ```ts
|
|
497
|
+
* import { Response } from "effect/unstable/ai"
|
|
498
|
+
*
|
|
499
|
+
* const textPart = Response.makePart("text", {
|
|
500
|
+
* text: "Hello, world!"
|
|
501
|
+
* })
|
|
502
|
+
*
|
|
503
|
+
* const toolCallPart = Response.makePart("tool-call", {
|
|
504
|
+
* id: "call_123",
|
|
505
|
+
* name: "get_weather",
|
|
506
|
+
* params: { city: "San Francisco" },
|
|
507
|
+
* providerExecuted: false
|
|
508
|
+
* })
|
|
509
|
+
* ```
|
|
510
|
+
*
|
|
511
|
+
* @category constructors
|
|
512
|
+
* @since 4.0.0
|
|
513
|
+
*/
|
|
514
|
+
export const makePart = <const Type extends AnyPart["type"]>(
|
|
515
|
+
/**
|
|
516
|
+
* The type of part to create.
|
|
517
|
+
*/
|
|
518
|
+
type: Type,
|
|
519
|
+
/**
|
|
520
|
+
* Parameters specific to the part type being created.
|
|
521
|
+
*/
|
|
522
|
+
params: Omit<Extract<AnyPart, { type: Type }>, typeof PartTypeId | "type" | "metadata"> & {
|
|
523
|
+
/**
|
|
524
|
+
* Optional provider-specific metadata for this part.
|
|
525
|
+
*/
|
|
526
|
+
readonly metadata?: Extract<AnyPart, { type: Type }>["metadata"] | undefined
|
|
527
|
+
}
|
|
528
|
+
): Extract<AnyPart, { type: Type }> => (({
|
|
529
|
+
...params,
|
|
530
|
+
[PartTypeId]: PartTypeId,
|
|
531
|
+
type,
|
|
532
|
+
metadata: params.metadata ?? {}
|
|
533
|
+
}) as any)
|
|
534
|
+
|
|
535
|
+
/**
|
|
536
|
+
* A utility type for specifying the parameters required to construct a
|
|
537
|
+
* specific response part.
|
|
538
|
+
*
|
|
539
|
+
* @category utility types
|
|
540
|
+
* @since 4.0.0
|
|
541
|
+
*/
|
|
542
|
+
export type ConstructorParams<Part extends AnyPart> =
|
|
543
|
+
& Omit<Part, typeof PartTypeId | "type" | "sourceType" | "metadata">
|
|
544
|
+
& {
|
|
545
|
+
/**
|
|
546
|
+
* Optional provider-specific metadata for this part.
|
|
547
|
+
*/
|
|
548
|
+
readonly metadata?: Part["metadata"] | undefined
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
// =============================================================================
|
|
552
|
+
// Text Part
|
|
553
|
+
// =============================================================================
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* Response part representing plain text content.
|
|
557
|
+
*
|
|
558
|
+
* **Example** (Creating a text part)
|
|
559
|
+
*
|
|
560
|
+
* ```ts
|
|
561
|
+
* import { Response } from "effect/unstable/ai"
|
|
562
|
+
*
|
|
563
|
+
* const textPart: Response.TextPart = Response.makePart("text", {
|
|
564
|
+
* text: "The answer to your question is 42."
|
|
565
|
+
* })
|
|
566
|
+
* ```
|
|
567
|
+
*
|
|
568
|
+
* @category models
|
|
569
|
+
* @since 4.0.0
|
|
570
|
+
*/
|
|
571
|
+
export interface TextPart extends BasePart<"text", TextPartMetadata> {
|
|
572
|
+
/**
|
|
573
|
+
* The text content.
|
|
574
|
+
*/
|
|
575
|
+
readonly text: string
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Encoded representation of text parts for serialization.
|
|
580
|
+
*
|
|
581
|
+
* @category models
|
|
582
|
+
* @since 4.0.0
|
|
583
|
+
*/
|
|
584
|
+
export interface TextPartEncoded extends BasePartEncoded<"text", TextPartMetadata> {
|
|
585
|
+
/**
|
|
586
|
+
* The text content.
|
|
587
|
+
*/
|
|
588
|
+
readonly text: string
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
/**
|
|
592
|
+
* Represents provider-specific metadata that can be associated with a
|
|
593
|
+
* `TextPart` through module augmentation.
|
|
594
|
+
*
|
|
595
|
+
* @category configuration
|
|
596
|
+
* @since 4.0.0
|
|
597
|
+
*/
|
|
598
|
+
export interface TextPartMetadata extends ProviderMetadata {}
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
* Schema for validation and encoding of text parts.
|
|
602
|
+
*
|
|
603
|
+
* @category schemas
|
|
604
|
+
* @since 4.0.0
|
|
605
|
+
*/
|
|
606
|
+
export const TextPart: Schema.Struct<{
|
|
607
|
+
readonly type: Schema.tag<"text">
|
|
608
|
+
readonly text: Schema.String
|
|
609
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
610
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
611
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
612
|
+
>
|
|
613
|
+
}> = Schema.Struct({
|
|
614
|
+
...BasePart.fields,
|
|
615
|
+
type: Schema.tag("text"),
|
|
616
|
+
text: Schema.String
|
|
617
|
+
}).annotate({ identifier: "TextPart" }) satisfies Schema.Codec<TextPart, TextPartEncoded>
|
|
618
|
+
|
|
619
|
+
// =============================================================================
|
|
620
|
+
// Text Start Part
|
|
621
|
+
// =============================================================================
|
|
622
|
+
|
|
623
|
+
/**
|
|
624
|
+
* Response part indicating the start of streaming text content with a unique
|
|
625
|
+
* text chunk identifier.
|
|
626
|
+
*
|
|
627
|
+
* @category models
|
|
628
|
+
* @since 4.0.0
|
|
629
|
+
*/
|
|
630
|
+
export interface TextStartPart extends BasePart<"text-start", TextStartPartMetadata> {
|
|
631
|
+
/**
|
|
632
|
+
* Unique identifier for this text chunk.
|
|
633
|
+
*/
|
|
634
|
+
readonly id: string
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
/**
|
|
638
|
+
* Encoded representation of text start parts for serialization.
|
|
639
|
+
*
|
|
640
|
+
* @category models
|
|
641
|
+
* @since 4.0.0
|
|
642
|
+
*/
|
|
643
|
+
export interface TextStartPartEncoded extends BasePartEncoded<"text-start", TextStartPartMetadata> {
|
|
644
|
+
/**
|
|
645
|
+
* Unique identifier for this text chunk.
|
|
646
|
+
*/
|
|
647
|
+
readonly id: string
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
/**
|
|
651
|
+
* Represents provider-specific metadata that can be associated with a
|
|
652
|
+
* `TextStartPart` through module augmentation.
|
|
653
|
+
*
|
|
654
|
+
* @category configuration
|
|
655
|
+
* @since 4.0.0
|
|
656
|
+
*/
|
|
657
|
+
export interface TextStartPartMetadata extends ProviderMetadata {}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* Schema for validation and encoding of text start parts.
|
|
661
|
+
*
|
|
662
|
+
* @category schemas
|
|
663
|
+
* @since 4.0.0
|
|
664
|
+
*/
|
|
665
|
+
export const TextStartPart: Schema.Struct<{
|
|
666
|
+
readonly type: Schema.tag<"text-start">
|
|
667
|
+
readonly id: Schema.String
|
|
668
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
669
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
670
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
671
|
+
>
|
|
672
|
+
}> = Schema.Struct({
|
|
673
|
+
...BasePart.fields,
|
|
674
|
+
type: Schema.tag("text-start"),
|
|
675
|
+
id: Schema.String
|
|
676
|
+
}).annotate({ identifier: "TextStartPart" }) satisfies Schema.Codec<TextStartPart, TextStartPartEncoded>
|
|
677
|
+
|
|
678
|
+
// =============================================================================
|
|
679
|
+
// Text Delta Part
|
|
680
|
+
// =============================================================================
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* Response part containing incremental text content to be added to the existing
|
|
684
|
+
* text chunk with the same unique identifier.
|
|
685
|
+
*
|
|
686
|
+
* @category models
|
|
687
|
+
* @since 4.0.0
|
|
688
|
+
*/
|
|
689
|
+
export interface TextDeltaPart extends BasePart<"text-delta", TextDeltaPartMetadata> {
|
|
690
|
+
/**
|
|
691
|
+
* Unique identifier matching the corresponding text chunk.
|
|
692
|
+
*/
|
|
693
|
+
readonly id: string
|
|
694
|
+
/**
|
|
695
|
+
* The incremental text content to add.
|
|
696
|
+
*/
|
|
697
|
+
readonly delta: string
|
|
698
|
+
}
|
|
699
|
+
|
|
700
|
+
/**
|
|
701
|
+
* Encoded representation of text delta parts for serialization.
|
|
702
|
+
*
|
|
703
|
+
* @category models
|
|
704
|
+
* @since 4.0.0
|
|
705
|
+
*/
|
|
706
|
+
export interface TextDeltaPartEncoded extends BasePartEncoded<"text-delta", TextDeltaPartMetadata> {
|
|
707
|
+
/**
|
|
708
|
+
* Unique identifier matching the corresponding text chunk.
|
|
709
|
+
*/
|
|
710
|
+
readonly id: string
|
|
711
|
+
/**
|
|
712
|
+
* The incremental text content to add.
|
|
713
|
+
*/
|
|
714
|
+
readonly delta: string
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/**
|
|
718
|
+
* Represents provider-specific metadata that can be associated with a
|
|
719
|
+
* `TextDeltaPart` through module augmentation.
|
|
720
|
+
*
|
|
721
|
+
* @category configuration
|
|
722
|
+
* @since 4.0.0
|
|
723
|
+
*/
|
|
724
|
+
export interface TextDeltaPartMetadata extends ProviderMetadata {}
|
|
725
|
+
|
|
726
|
+
/**
|
|
727
|
+
* Schema for validation and encoding of text delta parts.
|
|
728
|
+
*
|
|
729
|
+
* @category schemas
|
|
730
|
+
* @since 4.0.0
|
|
731
|
+
*/
|
|
732
|
+
export const TextDeltaPart: Schema.Struct<{
|
|
733
|
+
readonly type: Schema.tag<"text-delta">
|
|
734
|
+
readonly id: Schema.String
|
|
735
|
+
readonly delta: Schema.String
|
|
736
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
737
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
738
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
739
|
+
>
|
|
740
|
+
}> = Schema.Struct({
|
|
741
|
+
...BasePart.fields,
|
|
742
|
+
type: Schema.tag("text-delta"),
|
|
743
|
+
id: Schema.String,
|
|
744
|
+
delta: Schema.String
|
|
745
|
+
}).annotate({ identifier: "TextDeltaPart" }) satisfies Schema.Codec<TextDeltaPart, TextDeltaPartEncoded>
|
|
746
|
+
|
|
747
|
+
// =============================================================================
|
|
748
|
+
// Text End Part
|
|
749
|
+
// =============================================================================
|
|
750
|
+
|
|
751
|
+
/**
|
|
752
|
+
* Response part indicating the completion of a streaming text chunk.
|
|
753
|
+
*
|
|
754
|
+
* @category models
|
|
755
|
+
* @since 4.0.0
|
|
756
|
+
*/
|
|
757
|
+
export interface TextEndPart extends BasePart<"text-end", TextEndPartMetadata> {
|
|
758
|
+
/**
|
|
759
|
+
* Unique identifier matching the corresponding text chunk.
|
|
760
|
+
*/
|
|
761
|
+
readonly id: string
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
/**
|
|
765
|
+
* Encoded representation of text end parts for serialization.
|
|
766
|
+
*
|
|
767
|
+
* @category models
|
|
768
|
+
* @since 4.0.0
|
|
769
|
+
*/
|
|
770
|
+
export interface TextEndPartEncoded extends BasePartEncoded<"text-end", TextEndPartMetadata> {
|
|
771
|
+
/**
|
|
772
|
+
* Unique identifier matching the corresponding text chunk.
|
|
773
|
+
*/
|
|
774
|
+
readonly id: string
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
/**
|
|
778
|
+
* Represents provider-specific metadata that can be associated with a
|
|
779
|
+
* `TextEndPart` through module augmentation.
|
|
780
|
+
*
|
|
781
|
+
* @category configuration
|
|
782
|
+
* @since 4.0.0
|
|
783
|
+
*/
|
|
784
|
+
export interface TextEndPartMetadata extends ProviderMetadata {}
|
|
785
|
+
|
|
786
|
+
/**
|
|
787
|
+
* Schema for validation and encoding of text end parts.
|
|
788
|
+
*
|
|
789
|
+
* @category schemas
|
|
790
|
+
* @since 4.0.0
|
|
791
|
+
*/
|
|
792
|
+
export const TextEndPart: Schema.Struct<{
|
|
793
|
+
readonly type: Schema.tag<"text-end">
|
|
794
|
+
readonly id: Schema.String
|
|
795
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
796
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
797
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
798
|
+
>
|
|
799
|
+
}> = Schema.Struct({
|
|
800
|
+
...BasePart.fields,
|
|
801
|
+
type: Schema.tag("text-end"),
|
|
802
|
+
id: Schema.String
|
|
803
|
+
}).annotate({ identifier: "TextEndPart" }) satisfies Schema.Codec<TextEndPart, TextEndPartEncoded>
|
|
804
|
+
|
|
805
|
+
// =============================================================================
|
|
806
|
+
// Reasoning Part
|
|
807
|
+
// =============================================================================
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* Response part carrying provider-supplied reasoning text, such as an exposed
|
|
811
|
+
* reasoning summary or explanation. Do not assume it contains hidden
|
|
812
|
+
* chain-of-thought.
|
|
813
|
+
*
|
|
814
|
+
* **Example** (Creating a reasoning part)
|
|
815
|
+
*
|
|
816
|
+
* ```ts
|
|
817
|
+
* import { Response } from "effect/unstable/ai"
|
|
818
|
+
*
|
|
819
|
+
* const reasoningPart: Response.ReasoningPart = Response.makePart("reasoning", {
|
|
820
|
+
* text:
|
|
821
|
+
* "Let me think step by step: First I need to analyze the user's question..."
|
|
822
|
+
* })
|
|
823
|
+
* ```
|
|
824
|
+
*
|
|
825
|
+
* @category models
|
|
826
|
+
* @since 4.0.0
|
|
827
|
+
*/
|
|
828
|
+
export interface ReasoningPart extends BasePart<"reasoning", ReasoningPartMetadata> {
|
|
829
|
+
/**
|
|
830
|
+
* The reasoning or thought process text.
|
|
831
|
+
*/
|
|
832
|
+
readonly text: string
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
/**
|
|
836
|
+
* Encoded representation of reasoning parts for serialization.
|
|
837
|
+
*
|
|
838
|
+
* @category models
|
|
839
|
+
* @since 4.0.0
|
|
840
|
+
*/
|
|
841
|
+
export interface ReasoningPartEncoded extends BasePartEncoded<"reasoning", ReasoningPartMetadata> {
|
|
842
|
+
/**
|
|
843
|
+
* The reasoning or thought process text.
|
|
844
|
+
*/
|
|
845
|
+
readonly text: string
|
|
846
|
+
}
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* Represents provider-specific metadata that can be associated with a
|
|
850
|
+
* `ReasoningPart` through module augmentation.
|
|
851
|
+
*
|
|
852
|
+
* @category configuration
|
|
853
|
+
* @since 4.0.0
|
|
854
|
+
*/
|
|
855
|
+
export interface ReasoningPartMetadata extends ProviderMetadata {}
|
|
856
|
+
|
|
857
|
+
/**
|
|
858
|
+
* Schema for validation and encoding of reasoning parts.
|
|
859
|
+
*
|
|
860
|
+
* @category schemas
|
|
861
|
+
* @since 4.0.0
|
|
862
|
+
*/
|
|
863
|
+
export const ReasoningPart: Schema.Struct<{
|
|
864
|
+
readonly type: Schema.tag<"reasoning">
|
|
865
|
+
readonly text: Schema.String
|
|
866
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
867
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
868
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
869
|
+
>
|
|
870
|
+
}> = Schema.Struct({
|
|
871
|
+
...BasePart.fields,
|
|
872
|
+
type: Schema.tag("reasoning"),
|
|
873
|
+
text: Schema.String
|
|
874
|
+
}).annotate({ identifier: "ReasoningPart" }) satisfies Schema.Codec<ReasoningPart, ReasoningPartEncoded>
|
|
875
|
+
|
|
876
|
+
// =============================================================================
|
|
877
|
+
// Reasoning Start Part
|
|
878
|
+
// =============================================================================
|
|
879
|
+
|
|
880
|
+
/**
|
|
881
|
+
* Response part indicating the start of streaming reasoning content with a
|
|
882
|
+
* unique reasoning chunk identifier.
|
|
883
|
+
*
|
|
884
|
+
* @category models
|
|
885
|
+
* @since 4.0.0
|
|
886
|
+
*/
|
|
887
|
+
export interface ReasoningStartPart extends BasePart<"reasoning-start", ReasoningStartPartMetadata> {
|
|
888
|
+
/**
|
|
889
|
+
* Unique identifier for this reasoning chunk.
|
|
890
|
+
*/
|
|
891
|
+
readonly id: string
|
|
892
|
+
}
|
|
893
|
+
|
|
894
|
+
/**
|
|
895
|
+
* Encoded representation of reasoning start parts for serialization.
|
|
896
|
+
*
|
|
897
|
+
* @category models
|
|
898
|
+
* @since 4.0.0
|
|
899
|
+
*/
|
|
900
|
+
export interface ReasoningStartPartEncoded extends BasePartEncoded<"reasoning-start", ReasoningStartPartMetadata> {
|
|
901
|
+
/**
|
|
902
|
+
* Unique identifier for this reasoning stream.
|
|
903
|
+
*/
|
|
904
|
+
readonly id: string
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* Represents provider-specific metadata that can be associated with a
|
|
909
|
+
* `ReasoningStartPart` through module augmentation.
|
|
910
|
+
*
|
|
911
|
+
* @category configuration
|
|
912
|
+
* @since 4.0.0
|
|
913
|
+
*/
|
|
914
|
+
export interface ReasoningStartPartMetadata extends ProviderMetadata {}
|
|
915
|
+
|
|
916
|
+
/**
|
|
917
|
+
* Schema for validation and encoding of reasoning start parts.
|
|
918
|
+
*
|
|
919
|
+
* @category schemas
|
|
920
|
+
* @since 4.0.0
|
|
921
|
+
*/
|
|
922
|
+
export const ReasoningStartPart: Schema.Struct<{
|
|
923
|
+
readonly type: Schema.tag<"reasoning-start">
|
|
924
|
+
readonly id: Schema.String
|
|
925
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
926
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
927
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
928
|
+
>
|
|
929
|
+
}> = Schema.Struct({
|
|
930
|
+
...BasePart.fields,
|
|
931
|
+
type: Schema.tag("reasoning-start"),
|
|
932
|
+
id: Schema.String
|
|
933
|
+
}).annotate({ identifier: "ReasoningStartPart" }) satisfies Schema.Codec<ReasoningStartPart, ReasoningStartPartEncoded>
|
|
934
|
+
|
|
935
|
+
// =============================================================================
|
|
936
|
+
// Reasoning Delta Part
|
|
937
|
+
// =============================================================================
|
|
938
|
+
|
|
939
|
+
/**
|
|
940
|
+
* Response part containing incremental reasoning content to be added to the
|
|
941
|
+
* existing chunk of reasoning text with the same unique identifier.
|
|
942
|
+
*
|
|
943
|
+
* @category models
|
|
944
|
+
* @since 4.0.0
|
|
945
|
+
*/
|
|
946
|
+
export interface ReasoningDeltaPart extends BasePart<"reasoning-delta", ReasoningDeltaPartMetadata> {
|
|
947
|
+
/**
|
|
948
|
+
* Unique identifier matching the corresponding reasoning chunk.
|
|
949
|
+
*/
|
|
950
|
+
readonly id: string
|
|
951
|
+
/**
|
|
952
|
+
* The incremental reasoning content to add.
|
|
953
|
+
*/
|
|
954
|
+
readonly delta: string
|
|
955
|
+
}
|
|
956
|
+
|
|
957
|
+
/**
|
|
958
|
+
* Encoded representation of reasoning delta parts for serialization.
|
|
959
|
+
*
|
|
960
|
+
* @category models
|
|
961
|
+
* @since 4.0.0
|
|
962
|
+
*/
|
|
963
|
+
export interface ReasoningDeltaPartEncoded extends BasePartEncoded<"reasoning-delta", ReasoningDeltaPartMetadata> {
|
|
964
|
+
/**
|
|
965
|
+
* Unique identifier matching the corresponding reasoning chunk.
|
|
966
|
+
*/
|
|
967
|
+
readonly id: string
|
|
968
|
+
/**
|
|
969
|
+
* The incremental reasoning content to add.
|
|
970
|
+
*/
|
|
971
|
+
readonly delta: string
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
/**
|
|
975
|
+
* Represents provider-specific metadata that can be associated with a
|
|
976
|
+
* `ReasoningDeltaPart` through module augmentation.
|
|
977
|
+
*
|
|
978
|
+
* @category configuration
|
|
979
|
+
* @since 4.0.0
|
|
980
|
+
*/
|
|
981
|
+
export interface ReasoningDeltaPartMetadata extends ProviderMetadata {}
|
|
982
|
+
|
|
983
|
+
/**
|
|
984
|
+
* Schema for validation and encoding of reasoning delta parts.
|
|
985
|
+
*
|
|
986
|
+
* @category schemas
|
|
987
|
+
* @since 4.0.0
|
|
988
|
+
*/
|
|
989
|
+
export const ReasoningDeltaPart: Schema.Struct<{
|
|
990
|
+
readonly type: Schema.tag<"reasoning-delta">
|
|
991
|
+
readonly id: Schema.String
|
|
992
|
+
readonly delta: Schema.String
|
|
993
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
994
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
995
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
996
|
+
>
|
|
997
|
+
}> = Schema.Struct({
|
|
998
|
+
...BasePart.fields,
|
|
999
|
+
type: Schema.tag("reasoning-delta"),
|
|
1000
|
+
id: Schema.String,
|
|
1001
|
+
delta: Schema.String
|
|
1002
|
+
}).annotate({ identifier: "ReasoningDeltaPart" }) satisfies Schema.Codec<ReasoningDeltaPart, ReasoningDeltaPartEncoded>
|
|
1003
|
+
|
|
1004
|
+
// =============================================================================
|
|
1005
|
+
// Reasoning End Part
|
|
1006
|
+
// =============================================================================
|
|
1007
|
+
|
|
1008
|
+
/**
|
|
1009
|
+
* Response part indicating the completion of a streaming reasoning chunk.
|
|
1010
|
+
*
|
|
1011
|
+
* @category models
|
|
1012
|
+
* @since 4.0.0
|
|
1013
|
+
*/
|
|
1014
|
+
export interface ReasoningEndPart extends BasePart<"reasoning-end", ReasoningEndPartMetadata> {
|
|
1015
|
+
/**
|
|
1016
|
+
* Unique identifier matching the corresponding reasoning chunk.
|
|
1017
|
+
*/
|
|
1018
|
+
readonly id: string
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
/**
|
|
1022
|
+
* Encoded representation of reasoning end parts for serialization.
|
|
1023
|
+
*
|
|
1024
|
+
* @category models
|
|
1025
|
+
* @since 4.0.0
|
|
1026
|
+
*/
|
|
1027
|
+
export interface ReasoningEndPartEncoded extends BasePartEncoded<"reasoning-end", ReasoningEndPartMetadata> {
|
|
1028
|
+
/**
|
|
1029
|
+
* Unique identifier matching the corresponding reasoning chunk.
|
|
1030
|
+
*/
|
|
1031
|
+
readonly id: string
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
/**
|
|
1035
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1036
|
+
* `ReasoningEndPart` through module augmentation.
|
|
1037
|
+
*
|
|
1038
|
+
* @category configuration
|
|
1039
|
+
* @since 4.0.0
|
|
1040
|
+
*/
|
|
1041
|
+
export interface ReasoningEndPartMetadata extends ProviderMetadata {}
|
|
1042
|
+
|
|
1043
|
+
/**
|
|
1044
|
+
* Schema for validation and encoding of reasoning end parts.
|
|
1045
|
+
*
|
|
1046
|
+
* @category schemas
|
|
1047
|
+
* @since 4.0.0
|
|
1048
|
+
*/
|
|
1049
|
+
export const ReasoningEndPart: Schema.Struct<{
|
|
1050
|
+
readonly type: Schema.tag<"reasoning-end">
|
|
1051
|
+
readonly id: Schema.String
|
|
1052
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1053
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1054
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1055
|
+
>
|
|
1056
|
+
}> = Schema.Struct({
|
|
1057
|
+
...BasePart.fields,
|
|
1058
|
+
type: Schema.tag("reasoning-end"),
|
|
1059
|
+
id: Schema.String
|
|
1060
|
+
}).annotate({ identifier: "ReasoningEndPart" }) satisfies Schema.Codec<ReasoningEndPart, ReasoningEndPartEncoded>
|
|
1061
|
+
|
|
1062
|
+
// =============================================================================
|
|
1063
|
+
// Tool Params Start Part
|
|
1064
|
+
// =============================================================================
|
|
1065
|
+
|
|
1066
|
+
/**
|
|
1067
|
+
* Response part indicating the start of streaming tool parameters.
|
|
1068
|
+
*
|
|
1069
|
+
* **Details**
|
|
1070
|
+
*
|
|
1071
|
+
* Marks the beginning of tool parameter streaming with metadata about the tool
|
|
1072
|
+
* call.
|
|
1073
|
+
*
|
|
1074
|
+
* @category models
|
|
1075
|
+
* @since 4.0.0
|
|
1076
|
+
*/
|
|
1077
|
+
export interface ToolParamsStartPart extends BasePart<"tool-params-start", ToolParamsStartPartMetadata> {
|
|
1078
|
+
/**
|
|
1079
|
+
* Unique identifier for this tool parameter chunk.
|
|
1080
|
+
*/
|
|
1081
|
+
readonly id: string
|
|
1082
|
+
/**
|
|
1083
|
+
* Name of the tool being called, which corresponds to the name of the tool
|
|
1084
|
+
* in the `Toolkit` included with the request.
|
|
1085
|
+
*/
|
|
1086
|
+
readonly name: string
|
|
1087
|
+
/**
|
|
1088
|
+
* Whether the tool was executed by the provider (true) or framework (false).
|
|
1089
|
+
*/
|
|
1090
|
+
readonly providerExecuted: boolean
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
/**
|
|
1094
|
+
* Encoded representation of tool params start parts for serialization.
|
|
1095
|
+
*
|
|
1096
|
+
* @category models
|
|
1097
|
+
* @since 4.0.0
|
|
1098
|
+
*/
|
|
1099
|
+
export interface ToolParamsStartPartEncoded extends BasePartEncoded<"tool-params-start", ToolParamsStartPartMetadata> {
|
|
1100
|
+
/**
|
|
1101
|
+
* Unique identifier for this tool parameter chunk.
|
|
1102
|
+
*/
|
|
1103
|
+
readonly id: string
|
|
1104
|
+
/**
|
|
1105
|
+
* Name of the tool being called, which corresponds to the name of the tool
|
|
1106
|
+
* in the `Toolkit` included with the request.
|
|
1107
|
+
*/
|
|
1108
|
+
readonly name: string
|
|
1109
|
+
/**
|
|
1110
|
+
* Whether the tool was executed by the provider (true) or framework (false).
|
|
1111
|
+
*/
|
|
1112
|
+
readonly providerExecuted?: boolean
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
/**
|
|
1116
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1117
|
+
* `ToolParamsStartPart` through module augmentation.
|
|
1118
|
+
*
|
|
1119
|
+
* @category configuration
|
|
1120
|
+
* @since 4.0.0
|
|
1121
|
+
*/
|
|
1122
|
+
export interface ToolParamsStartPartMetadata extends ProviderMetadata {}
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* Schema for validation and encoding of tool params start parts.
|
|
1126
|
+
*
|
|
1127
|
+
* @category schemas
|
|
1128
|
+
* @since 4.0.0
|
|
1129
|
+
*/
|
|
1130
|
+
export const ToolParamsStartPart: Schema.Struct<{
|
|
1131
|
+
readonly type: Schema.tag<"tool-params-start">
|
|
1132
|
+
readonly id: Schema.String
|
|
1133
|
+
readonly name: Schema.String
|
|
1134
|
+
readonly providerExecuted: Schema.withDecodingDefaultKey<Schema.Boolean>
|
|
1135
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1136
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1137
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1138
|
+
>
|
|
1139
|
+
}> = Schema.Struct({
|
|
1140
|
+
...BasePart.fields,
|
|
1141
|
+
type: Schema.tag("tool-params-start"),
|
|
1142
|
+
id: Schema.String,
|
|
1143
|
+
name: Schema.String,
|
|
1144
|
+
providerExecuted: Schema.Boolean.pipe(Schema.withDecodingDefaultKey(Effect.succeed(false)))
|
|
1145
|
+
}).annotate({ identifier: "ToolParamsStartPart" }) satisfies Schema.Codec<
|
|
1146
|
+
ToolParamsStartPart,
|
|
1147
|
+
ToolParamsStartPartEncoded
|
|
1148
|
+
>
|
|
1149
|
+
|
|
1150
|
+
// =============================================================================
|
|
1151
|
+
// Tool Params Delta Part
|
|
1152
|
+
// =============================================================================
|
|
1153
|
+
|
|
1154
|
+
/**
|
|
1155
|
+
* Response part containing incremental tool parameter content.
|
|
1156
|
+
*
|
|
1157
|
+
* **Details**
|
|
1158
|
+
*
|
|
1159
|
+
* Represents a chunk of tool parameters being streamed, containing the
|
|
1160
|
+
* incremental JSON content that forms the tool parameters.
|
|
1161
|
+
*
|
|
1162
|
+
* @category models
|
|
1163
|
+
* @since 4.0.0
|
|
1164
|
+
*/
|
|
1165
|
+
export interface ToolParamsDeltaPart extends BasePart<"tool-params-delta", ToolParamsDeltaPartMetadata> {
|
|
1166
|
+
/**
|
|
1167
|
+
* Unique identifier matching the corresponding tool parameter chunk.
|
|
1168
|
+
*/
|
|
1169
|
+
readonly id: string
|
|
1170
|
+
/**
|
|
1171
|
+
* The incremental parameter content (typically JSON fragment) to add.
|
|
1172
|
+
*/
|
|
1173
|
+
readonly delta: string
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
/**
|
|
1177
|
+
* Encoded representation of tool params delta parts for serialization.
|
|
1178
|
+
*
|
|
1179
|
+
* @category models
|
|
1180
|
+
* @since 4.0.0
|
|
1181
|
+
*/
|
|
1182
|
+
export interface ToolParamsDeltaPartEncoded extends BasePartEncoded<"tool-params-delta", ToolParamsDeltaPartMetadata> {
|
|
1183
|
+
/**
|
|
1184
|
+
* Unique identifier matching the corresponding tool parameter chunk.
|
|
1185
|
+
*/
|
|
1186
|
+
readonly id: string
|
|
1187
|
+
/**
|
|
1188
|
+
* The incremental parameter content (typically JSON fragment) to add.
|
|
1189
|
+
*/
|
|
1190
|
+
readonly delta: string
|
|
1191
|
+
}
|
|
1192
|
+
|
|
1193
|
+
/**
|
|
1194
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1195
|
+
* `ToolParamsDeltaPart` through module augmentation.
|
|
1196
|
+
*
|
|
1197
|
+
* @category configuration
|
|
1198
|
+
* @since 4.0.0
|
|
1199
|
+
*/
|
|
1200
|
+
export interface ToolParamsDeltaPartMetadata extends ProviderMetadata {}
|
|
1201
|
+
|
|
1202
|
+
/**
|
|
1203
|
+
* Schema for validation and encoding of tool params delta parts.
|
|
1204
|
+
*
|
|
1205
|
+
* @category schemas
|
|
1206
|
+
* @since 4.0.0
|
|
1207
|
+
*/
|
|
1208
|
+
export const ToolParamsDeltaPart: Schema.Struct<{
|
|
1209
|
+
readonly type: Schema.tag<"tool-params-delta">
|
|
1210
|
+
readonly id: Schema.String
|
|
1211
|
+
readonly delta: Schema.String
|
|
1212
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1213
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1214
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1215
|
+
>
|
|
1216
|
+
}> = Schema.Struct({
|
|
1217
|
+
...BasePart.fields,
|
|
1218
|
+
type: Schema.tag("tool-params-delta"),
|
|
1219
|
+
id: Schema.String,
|
|
1220
|
+
delta: Schema.String
|
|
1221
|
+
}).annotate({ identifier: "ToolParamsDeltaPart" }) satisfies Schema.Codec<
|
|
1222
|
+
ToolParamsDeltaPart,
|
|
1223
|
+
ToolParamsDeltaPartEncoded
|
|
1224
|
+
>
|
|
1225
|
+
|
|
1226
|
+
// =============================================================================
|
|
1227
|
+
// Tool Params End Part
|
|
1228
|
+
// =============================================================================
|
|
1229
|
+
|
|
1230
|
+
/**
|
|
1231
|
+
* Response part indicating the end of streaming tool parameters.
|
|
1232
|
+
*
|
|
1233
|
+
* **Details**
|
|
1234
|
+
*
|
|
1235
|
+
* Marks the completion of a tool parameter stream, indicating that all
|
|
1236
|
+
* parameter data has been sent and the tool call is ready to be executed.
|
|
1237
|
+
*
|
|
1238
|
+
* @category models
|
|
1239
|
+
* @since 4.0.0
|
|
1240
|
+
*/
|
|
1241
|
+
export interface ToolParamsEndPart extends BasePart<"tool-params-end", ToolParamsEndPartMetadata> {
|
|
1242
|
+
/**
|
|
1243
|
+
* Unique identifier matching the corresponding tool parameter chunk.
|
|
1244
|
+
*/
|
|
1245
|
+
readonly id: string
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
/**
|
|
1249
|
+
* Encoded representation of tool params end parts for serialization.
|
|
1250
|
+
*
|
|
1251
|
+
* @category models
|
|
1252
|
+
* @since 4.0.0
|
|
1253
|
+
*/
|
|
1254
|
+
export interface ToolParamsEndPartEncoded extends BasePartEncoded<"tool-params-end", ToolParamsEndPartMetadata> {
|
|
1255
|
+
/**
|
|
1256
|
+
* Unique identifier matching the corresponding tool parameter stream.
|
|
1257
|
+
*/
|
|
1258
|
+
readonly id: string
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
/**
|
|
1262
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1263
|
+
* `ToolParamsEndPart` through module augmentation.
|
|
1264
|
+
*
|
|
1265
|
+
* @category configuration
|
|
1266
|
+
* @since 4.0.0
|
|
1267
|
+
*/
|
|
1268
|
+
export interface ToolParamsEndPartMetadata extends ProviderMetadata {}
|
|
1269
|
+
|
|
1270
|
+
/**
|
|
1271
|
+
* Schema for validation and encoding of tool params end parts.
|
|
1272
|
+
*
|
|
1273
|
+
* @category schemas
|
|
1274
|
+
* @since 4.0.0
|
|
1275
|
+
*/
|
|
1276
|
+
export const ToolParamsEndPart: Schema.Struct<{
|
|
1277
|
+
readonly type: Schema.tag<"tool-params-end">
|
|
1278
|
+
readonly id: Schema.String
|
|
1279
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1280
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1281
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1282
|
+
>
|
|
1283
|
+
}> = Schema.Struct({
|
|
1284
|
+
...BasePart.fields,
|
|
1285
|
+
type: Schema.tag("tool-params-end"),
|
|
1286
|
+
id: Schema.String
|
|
1287
|
+
}).annotate({ identifier: "ToolParamsEndPart" }) satisfies Schema.Codec<ToolParamsEndPart, ToolParamsEndPartEncoded>
|
|
1288
|
+
|
|
1289
|
+
// =============================================================================
|
|
1290
|
+
// Tool Call Part
|
|
1291
|
+
// =============================================================================
|
|
1292
|
+
|
|
1293
|
+
/**
|
|
1294
|
+
* Response part representing a tool call request.
|
|
1295
|
+
*
|
|
1296
|
+
* **Example** (Creating a tool call part)
|
|
1297
|
+
*
|
|
1298
|
+
* ```ts
|
|
1299
|
+
* import { Schema } from "effect"
|
|
1300
|
+
* import { Response } from "effect/unstable/ai"
|
|
1301
|
+
*
|
|
1302
|
+
* const weatherParams = Schema.Struct({
|
|
1303
|
+
* city: Schema.String,
|
|
1304
|
+
* units: Schema.optional(Schema.Literals(["celsius", "fahrenheit"]))
|
|
1305
|
+
* })
|
|
1306
|
+
*
|
|
1307
|
+
* const toolCallPart: Response.ToolCallPart<
|
|
1308
|
+
* "get_weather",
|
|
1309
|
+
* {
|
|
1310
|
+
* readonly city: string
|
|
1311
|
+
* readonly units?: "celsius" | "fahrenheit"
|
|
1312
|
+
* }
|
|
1313
|
+
* > = Response.makePart("tool-call", {
|
|
1314
|
+
* id: "call_123",
|
|
1315
|
+
* name: "get_weather",
|
|
1316
|
+
* params: { city: "San Francisco", units: "celsius" },
|
|
1317
|
+
* providerExecuted: false
|
|
1318
|
+
* })
|
|
1319
|
+
* ```
|
|
1320
|
+
*
|
|
1321
|
+
* @category models
|
|
1322
|
+
* @since 4.0.0
|
|
1323
|
+
*/
|
|
1324
|
+
export interface ToolCallPart<Name extends string, Params> extends BasePart<"tool-call", ToolCallPartMetadata> {
|
|
1325
|
+
/**
|
|
1326
|
+
* Unique identifier for this tool call.
|
|
1327
|
+
*/
|
|
1328
|
+
readonly id: string
|
|
1329
|
+
/**
|
|
1330
|
+
* Name of the tool being called, which corresponds to the name of the tool
|
|
1331
|
+
* in the `Toolkit` included with the request.
|
|
1332
|
+
*/
|
|
1333
|
+
readonly name: Name
|
|
1334
|
+
/**
|
|
1335
|
+
* Parameters to pass to the tool.
|
|
1336
|
+
*/
|
|
1337
|
+
readonly params: Params
|
|
1338
|
+
/**
|
|
1339
|
+
* Whether the tool was executed by the provider (true) or framework (false).
|
|
1340
|
+
*/
|
|
1341
|
+
readonly providerExecuted: boolean
|
|
1342
|
+
}
|
|
1343
|
+
|
|
1344
|
+
/**
|
|
1345
|
+
* Encoded representation of tool call parts for serialization.
|
|
1346
|
+
*
|
|
1347
|
+
* @category models
|
|
1348
|
+
* @since 4.0.0
|
|
1349
|
+
*/
|
|
1350
|
+
export interface ToolCallPartEncoded extends BasePartEncoded<"tool-call", ToolCallPartMetadata> {
|
|
1351
|
+
/**
|
|
1352
|
+
* Unique identifier for this tool call.
|
|
1353
|
+
*/
|
|
1354
|
+
readonly id: string
|
|
1355
|
+
/**
|
|
1356
|
+
* Name of the tool being called, which corresponds to the name of the tool
|
|
1357
|
+
* in the `Toolkit` included with the request.
|
|
1358
|
+
*/
|
|
1359
|
+
readonly name: string
|
|
1360
|
+
/**
|
|
1361
|
+
* Parameters to pass to the tool.
|
|
1362
|
+
*/
|
|
1363
|
+
readonly params: unknown
|
|
1364
|
+
/**
|
|
1365
|
+
* Whether the tool was executed by the provider (true) or framework (false).
|
|
1366
|
+
*/
|
|
1367
|
+
readonly providerExecuted?: boolean | undefined
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1370
|
+
/**
|
|
1371
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1372
|
+
* `ToolCallPart` through module augmentation.
|
|
1373
|
+
*
|
|
1374
|
+
* @category configuration
|
|
1375
|
+
* @since 4.0.0
|
|
1376
|
+
*/
|
|
1377
|
+
export interface ToolCallPartMetadata extends ProviderMetadata {}
|
|
1378
|
+
|
|
1379
|
+
/**
|
|
1380
|
+
* Creates a Schema for tool call parts with specific tool name and parameters.
|
|
1381
|
+
*
|
|
1382
|
+
* @category schemas
|
|
1383
|
+
* @since 4.0.0
|
|
1384
|
+
*/
|
|
1385
|
+
export const ToolCallPart: <const Name extends string, Params extends Schema.Top>(
|
|
1386
|
+
name: Name,
|
|
1387
|
+
params: Params
|
|
1388
|
+
) => Schema.Struct<
|
|
1389
|
+
{
|
|
1390
|
+
readonly type: Schema.Literal<"tool-call">
|
|
1391
|
+
readonly id: Schema.String
|
|
1392
|
+
readonly name: Schema.Literal<Name>
|
|
1393
|
+
readonly params: Params
|
|
1394
|
+
readonly providerExecuted: Schema.withDecodingDefaultKey<Schema.Boolean>
|
|
1395
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1396
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1397
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1398
|
+
>
|
|
1399
|
+
}
|
|
1400
|
+
> = <const Name extends string, Params extends Schema.Top>(
|
|
1401
|
+
name: Name,
|
|
1402
|
+
params: Params
|
|
1403
|
+
) =>
|
|
1404
|
+
Schema.Struct({
|
|
1405
|
+
...BasePart.fields,
|
|
1406
|
+
type: Schema.Literal("tool-call"),
|
|
1407
|
+
id: Schema.String,
|
|
1408
|
+
name: Schema.Literal(name),
|
|
1409
|
+
params,
|
|
1410
|
+
providerExecuted: Schema.Boolean.pipe(Schema.withDecodingDefaultKey(Effect.succeed(false)))
|
|
1411
|
+
}).annotate({ identifier: "ToolCallPart" }) as any
|
|
1412
|
+
|
|
1413
|
+
/**
|
|
1414
|
+
* Constructs a new tool call part.
|
|
1415
|
+
*
|
|
1416
|
+
* @category constructors
|
|
1417
|
+
* @since 4.0.0
|
|
1418
|
+
*/
|
|
1419
|
+
export const toolCallPart = <const Name extends string, Params>(
|
|
1420
|
+
params: ConstructorParams<ToolCallPart<Name, Params>>
|
|
1421
|
+
): ToolCallPart<Name, Params> => makePart("tool-call", params)
|
|
1422
|
+
|
|
1423
|
+
// =============================================================================
|
|
1424
|
+
// Tool Call Result Part
|
|
1425
|
+
// =============================================================================
|
|
1426
|
+
|
|
1427
|
+
/**
|
|
1428
|
+
* The base fields of a tool result part.
|
|
1429
|
+
*
|
|
1430
|
+
* @category models
|
|
1431
|
+
* @since 4.0.0
|
|
1432
|
+
*/
|
|
1433
|
+
export interface BaseToolResult<Name extends string> extends BasePart<"tool-result", ToolResultPartMetadata> {
|
|
1434
|
+
/**
|
|
1435
|
+
* Unique identifier matching the original tool call.
|
|
1436
|
+
*/
|
|
1437
|
+
readonly id: string
|
|
1438
|
+
/**
|
|
1439
|
+
* Name of the tool being called, which corresponds to the name of the tool
|
|
1440
|
+
* in the `Toolkit` included with the request.
|
|
1441
|
+
*/
|
|
1442
|
+
readonly name: Name
|
|
1443
|
+
/**
|
|
1444
|
+
* The encoded result for serialization purposes.
|
|
1445
|
+
*/
|
|
1446
|
+
readonly encodedResult: unknown
|
|
1447
|
+
/**
|
|
1448
|
+
* Whether the tool was executed by the provider (true) or framework (false).
|
|
1449
|
+
*/
|
|
1450
|
+
readonly providerExecuted: boolean
|
|
1451
|
+
/**
|
|
1452
|
+
* Whether this is a preliminary (intermediate) result.
|
|
1453
|
+
*
|
|
1454
|
+
* **Details**
|
|
1455
|
+
*
|
|
1456
|
+
* Preliminary results represent progress updates during streaming tool
|
|
1457
|
+
* execution. Only the final result (where `preliminary` is `false` or
|
|
1458
|
+
* `undefined`) should be used as the authoritative output.
|
|
1459
|
+
*
|
|
1460
|
+
* **Gotchas**
|
|
1461
|
+
*
|
|
1462
|
+
* Only applicable for framework-executed tools during streaming.
|
|
1463
|
+
*/
|
|
1464
|
+
readonly preliminary: boolean
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
/**
|
|
1468
|
+
* Represents a successful tool call result.
|
|
1469
|
+
*
|
|
1470
|
+
* @category models
|
|
1471
|
+
* @since 4.0.0
|
|
1472
|
+
*/
|
|
1473
|
+
export interface ToolResultSuccess<Name extends string, Success> extends BaseToolResult<Name> {
|
|
1474
|
+
/**
|
|
1475
|
+
* The decoded success returned by the tool execution.
|
|
1476
|
+
*/
|
|
1477
|
+
readonly result: Success
|
|
1478
|
+
/**
|
|
1479
|
+
* Whether or not the result of executing the tool call handler was an error.
|
|
1480
|
+
*/
|
|
1481
|
+
readonly isFailure: false
|
|
1482
|
+
}
|
|
1483
|
+
|
|
1484
|
+
/**
|
|
1485
|
+
* Represents a failed tool call result.
|
|
1486
|
+
*
|
|
1487
|
+
* @category models
|
|
1488
|
+
* @since 4.0.0
|
|
1489
|
+
*/
|
|
1490
|
+
export interface ToolResultFailure<Name extends string, Failure> extends BaseToolResult<Name> {
|
|
1491
|
+
/**
|
|
1492
|
+
* The decoded failure returned by the tool execution.
|
|
1493
|
+
*/
|
|
1494
|
+
readonly result: Failure
|
|
1495
|
+
/**
|
|
1496
|
+
* Whether or not the result of executing the tool call handler was an error.
|
|
1497
|
+
*/
|
|
1498
|
+
readonly isFailure: true
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
/**
|
|
1502
|
+
* Response part representing the result of a tool call.
|
|
1503
|
+
*
|
|
1504
|
+
* **Example** (Creating a tool result part)
|
|
1505
|
+
*
|
|
1506
|
+
* ```ts
|
|
1507
|
+
* import { Response } from "effect/unstable/ai"
|
|
1508
|
+
*
|
|
1509
|
+
* interface WeatherData {
|
|
1510
|
+
* temperature: number
|
|
1511
|
+
* condition: string
|
|
1512
|
+
* humidity: number
|
|
1513
|
+
* }
|
|
1514
|
+
*
|
|
1515
|
+
* const toolResultPart: Response.ToolResultPart<
|
|
1516
|
+
* "get_weather",
|
|
1517
|
+
* WeatherData,
|
|
1518
|
+
* never
|
|
1519
|
+
* > = Response.toolResultPart({
|
|
1520
|
+
* id: "call_123",
|
|
1521
|
+
* name: "get_weather",
|
|
1522
|
+
* isFailure: false,
|
|
1523
|
+
* result: {
|
|
1524
|
+
* temperature: 22,
|
|
1525
|
+
* condition: "sunny",
|
|
1526
|
+
* humidity: 65
|
|
1527
|
+
* },
|
|
1528
|
+
* encodedResult: {
|
|
1529
|
+
* temperature: 22,
|
|
1530
|
+
* condition: "sunny",
|
|
1531
|
+
* humidity: 65
|
|
1532
|
+
* },
|
|
1533
|
+
* providerExecuted: false,
|
|
1534
|
+
* preliminary: false
|
|
1535
|
+
* })
|
|
1536
|
+
* ```
|
|
1537
|
+
*
|
|
1538
|
+
* @category models
|
|
1539
|
+
* @since 4.0.0
|
|
1540
|
+
*/
|
|
1541
|
+
export type ToolResultPart<Name extends string, Success, Failure> =
|
|
1542
|
+
| ToolResultSuccess<Name, Success>
|
|
1543
|
+
| ToolResultFailure<Name, Failure>
|
|
1544
|
+
|
|
1545
|
+
/**
|
|
1546
|
+
* Encoded representation of tool result parts for serialization.
|
|
1547
|
+
*
|
|
1548
|
+
* @category models
|
|
1549
|
+
* @since 4.0.0
|
|
1550
|
+
*/
|
|
1551
|
+
export interface ToolResultPartEncoded extends BasePartEncoded<"tool-result", ToolResultPartMetadata> {
|
|
1552
|
+
/**
|
|
1553
|
+
* Unique identifier matching the original tool call.
|
|
1554
|
+
*/
|
|
1555
|
+
readonly id: string
|
|
1556
|
+
/**
|
|
1557
|
+
* Name of the tool being called, which corresponds to the name of the tool
|
|
1558
|
+
* in the `Toolkit` included with the request.
|
|
1559
|
+
*/
|
|
1560
|
+
readonly name: string
|
|
1561
|
+
/**
|
|
1562
|
+
* The result returned by the tool execution.
|
|
1563
|
+
*/
|
|
1564
|
+
readonly result: unknown
|
|
1565
|
+
/**
|
|
1566
|
+
* Whether or not the result of executing the tool call handler was an error.
|
|
1567
|
+
*/
|
|
1568
|
+
readonly isFailure: boolean
|
|
1569
|
+
/**
|
|
1570
|
+
* Whether the tool was executed by the provider (true) or framework (false).
|
|
1571
|
+
*/
|
|
1572
|
+
readonly providerExecuted?: boolean | undefined
|
|
1573
|
+
/**
|
|
1574
|
+
* Whether this is a preliminary (intermediate) result.
|
|
1575
|
+
*
|
|
1576
|
+
* **Gotchas**
|
|
1577
|
+
*
|
|
1578
|
+
* Only applicable for framework-executed tools during streaming.
|
|
1579
|
+
*/
|
|
1580
|
+
readonly preliminary?: boolean | undefined
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
/**
|
|
1584
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1585
|
+
* `ToolResultPart` through module augmentation.
|
|
1586
|
+
*
|
|
1587
|
+
* @category configuration
|
|
1588
|
+
* @since 4.0.0
|
|
1589
|
+
*/
|
|
1590
|
+
export interface ToolResultPartMetadata extends ProviderMetadata {}
|
|
1591
|
+
|
|
1592
|
+
/**
|
|
1593
|
+
* Creates a Schema for tool result parts with specific tool name and result type.
|
|
1594
|
+
*
|
|
1595
|
+
* @category schemas
|
|
1596
|
+
* @since 4.0.0
|
|
1597
|
+
*/
|
|
1598
|
+
export const ToolResultPart: <const Name extends string, Success extends Schema.Top, Failure extends Schema.Top>(
|
|
1599
|
+
name: Name,
|
|
1600
|
+
success: Success,
|
|
1601
|
+
failure: Failure
|
|
1602
|
+
) => Schema.decodeTo<
|
|
1603
|
+
Schema.Struct<
|
|
1604
|
+
{
|
|
1605
|
+
readonly "~effect/ai/Content/Part": Schema.Literal<"~effect/ai/Content/Part">
|
|
1606
|
+
readonly result: Schema.Union<readonly [Success, Failure]>
|
|
1607
|
+
readonly providerExecuted: Schema.Boolean
|
|
1608
|
+
readonly metadata: Schema.$Record<
|
|
1609
|
+
Schema.String,
|
|
1610
|
+
Schema.NullOr<Schema.Codec<Schema.Json>>
|
|
1611
|
+
>
|
|
1612
|
+
readonly encodedResult: Schema.toEncoded<Schema.Union<readonly [Success, Failure]>>
|
|
1613
|
+
readonly preliminary: Schema.Boolean
|
|
1614
|
+
readonly id: Schema.String
|
|
1615
|
+
readonly type: Schema.Literal<"tool-result">
|
|
1616
|
+
readonly isFailure: Schema.Boolean
|
|
1617
|
+
readonly name: Schema.Literal<Name>
|
|
1618
|
+
}
|
|
1619
|
+
>,
|
|
1620
|
+
Schema.Struct<
|
|
1621
|
+
{
|
|
1622
|
+
readonly result: Schema.toEncoded<Schema.Union<readonly [Success, Failure]>>
|
|
1623
|
+
readonly providerExecuted: Schema.optional<Schema.Boolean>
|
|
1624
|
+
readonly metadata: Schema.optional<
|
|
1625
|
+
Schema.$Record<Schema.String, Schema.NullOr<Schema.Codec<Schema.Json>>>
|
|
1626
|
+
>
|
|
1627
|
+
readonly preliminary: Schema.optional<Schema.Boolean>
|
|
1628
|
+
readonly id: Schema.String
|
|
1629
|
+
readonly type: Schema.Literal<"tool-result">
|
|
1630
|
+
readonly isFailure: Schema.Boolean
|
|
1631
|
+
readonly name: Schema.Literal<Name>
|
|
1632
|
+
}
|
|
1633
|
+
>
|
|
1634
|
+
> = <
|
|
1635
|
+
const Name extends string,
|
|
1636
|
+
Success extends Schema.Top,
|
|
1637
|
+
Failure extends Schema.Top
|
|
1638
|
+
>(
|
|
1639
|
+
name: Name,
|
|
1640
|
+
success: Success,
|
|
1641
|
+
failure: Failure
|
|
1642
|
+
) => {
|
|
1643
|
+
const ResultSchema = Schema.Union([success, failure])
|
|
1644
|
+
const Common = {
|
|
1645
|
+
id: Schema.String,
|
|
1646
|
+
type: Schema.Literal("tool-result"),
|
|
1647
|
+
isFailure: Schema.Boolean,
|
|
1648
|
+
name: Schema.Literal(name)
|
|
1649
|
+
}
|
|
1650
|
+
const Decoded = Schema.Struct({
|
|
1651
|
+
...Common,
|
|
1652
|
+
[PartTypeId]: Schema.Literal(PartTypeId),
|
|
1653
|
+
result: ResultSchema,
|
|
1654
|
+
providerExecuted: Schema.Boolean,
|
|
1655
|
+
metadata: ProviderMetadata,
|
|
1656
|
+
encodedResult: Schema.toEncoded(ResultSchema),
|
|
1657
|
+
preliminary: Schema.Boolean
|
|
1658
|
+
})
|
|
1659
|
+
const Encoded = Schema.Struct({
|
|
1660
|
+
...Common,
|
|
1661
|
+
result: Schema.toEncoded(ResultSchema),
|
|
1662
|
+
providerExecuted: Schema.optional(Schema.Boolean),
|
|
1663
|
+
metadata: Schema.optional(ProviderMetadata),
|
|
1664
|
+
preliminary: Schema.optional(Schema.Boolean)
|
|
1665
|
+
})
|
|
1666
|
+
return Decoded.pipe(Schema.encodeTo(
|
|
1667
|
+
Encoded,
|
|
1668
|
+
SchemaTransformation.transform({
|
|
1669
|
+
decode: (encoded) => ({
|
|
1670
|
+
...encoded,
|
|
1671
|
+
[PartTypeId]: PartTypeId,
|
|
1672
|
+
providerExecuted: encoded.providerExecuted ?? false,
|
|
1673
|
+
metadata: encoded.metadata ?? {},
|
|
1674
|
+
encodedResult: encoded.result,
|
|
1675
|
+
preliminary: encoded.preliminary ?? false
|
|
1676
|
+
}),
|
|
1677
|
+
encode: identity
|
|
1678
|
+
})
|
|
1679
|
+
)).annotate({ identifier: `ToolResultPart(${name})` }) satisfies Schema.Codec<
|
|
1680
|
+
ToolResultPart<Name, Success["Type"], Failure["Type"]>,
|
|
1681
|
+
ToolResultPartEncoded,
|
|
1682
|
+
Success["EncodingServices"] | Failure["EncodingServices"],
|
|
1683
|
+
Success["DecodingServices"] | Failure["DecodingServices"]
|
|
1684
|
+
>
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
/**
|
|
1688
|
+
* Constructs a new tool result part.
|
|
1689
|
+
*
|
|
1690
|
+
* @category constructors
|
|
1691
|
+
* @since 4.0.0
|
|
1692
|
+
*/
|
|
1693
|
+
export const toolResultPart = <const Params extends ConstructorParams<ToolResultPart<string, unknown, unknown>>>(
|
|
1694
|
+
params: Params
|
|
1695
|
+
): Params extends {
|
|
1696
|
+
readonly name: infer Name extends string
|
|
1697
|
+
readonly isFailure: false
|
|
1698
|
+
readonly result: infer Success
|
|
1699
|
+
} ? ToolResultPart<Name, Success, never>
|
|
1700
|
+
: Params extends {
|
|
1701
|
+
readonly name: infer Name extends string
|
|
1702
|
+
readonly isFailure: true
|
|
1703
|
+
readonly result: infer Failure
|
|
1704
|
+
} ? ToolResultPart<Name, never, Failure>
|
|
1705
|
+
: never => makePart("tool-result", params) as any
|
|
1706
|
+
|
|
1707
|
+
// =============================================================================
|
|
1708
|
+
// Tool Approval Request Part
|
|
1709
|
+
// =============================================================================
|
|
1710
|
+
|
|
1711
|
+
/**
|
|
1712
|
+
* Response part representing a tool approval request.
|
|
1713
|
+
*
|
|
1714
|
+
* **Details**
|
|
1715
|
+
*
|
|
1716
|
+
* Emitted when a tool requires user approval before execution. The framework
|
|
1717
|
+
* checks the tool's `needsApproval` property and emits this part instead of
|
|
1718
|
+
* executing the tool when approval is required.
|
|
1719
|
+
*
|
|
1720
|
+
* **Example** (Creating an approval request part)
|
|
1721
|
+
*
|
|
1722
|
+
* ```ts
|
|
1723
|
+
* import { Response } from "effect/unstable/ai"
|
|
1724
|
+
*
|
|
1725
|
+
* const approvalRequest: Response.ToolApprovalRequestPart = Response.makePart(
|
|
1726
|
+
* "tool-approval-request",
|
|
1727
|
+
* {
|
|
1728
|
+
* approvalId: "approval_123",
|
|
1729
|
+
* toolCallId: "call_456"
|
|
1730
|
+
* }
|
|
1731
|
+
* )
|
|
1732
|
+
* ```
|
|
1733
|
+
*
|
|
1734
|
+
* @category models
|
|
1735
|
+
* @since 4.0.0
|
|
1736
|
+
*/
|
|
1737
|
+
export interface ToolApprovalRequestPart extends BasePart<"tool-approval-request", ToolApprovalRequestPartMetadata> {
|
|
1738
|
+
/**
|
|
1739
|
+
* Unique identifier for this approval flow.
|
|
1740
|
+
*/
|
|
1741
|
+
readonly approvalId: string
|
|
1742
|
+
/**
|
|
1743
|
+
* The tool call ID requiring approval.
|
|
1744
|
+
*/
|
|
1745
|
+
readonly toolCallId: string
|
|
1746
|
+
}
|
|
1747
|
+
|
|
1748
|
+
/**
|
|
1749
|
+
* Encoded representation of tool approval request parts for serialization.
|
|
1750
|
+
*
|
|
1751
|
+
* @category models
|
|
1752
|
+
* @since 4.0.0
|
|
1753
|
+
*/
|
|
1754
|
+
export interface ToolApprovalRequestPartEncoded
|
|
1755
|
+
extends BasePartEncoded<"tool-approval-request", ToolApprovalRequestPartMetadata>
|
|
1756
|
+
{
|
|
1757
|
+
/**
|
|
1758
|
+
* Unique identifier for this approval flow.
|
|
1759
|
+
*/
|
|
1760
|
+
readonly approvalId: string
|
|
1761
|
+
/**
|
|
1762
|
+
* The tool call ID requiring approval.
|
|
1763
|
+
*/
|
|
1764
|
+
readonly toolCallId: string
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
/**
|
|
1768
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1769
|
+
* `ToolApprovalRequestPart` through module augmentation.
|
|
1770
|
+
*
|
|
1771
|
+
* @category configuration
|
|
1772
|
+
* @since 4.0.0
|
|
1773
|
+
*/
|
|
1774
|
+
export interface ToolApprovalRequestPartMetadata extends ProviderMetadata {}
|
|
1775
|
+
|
|
1776
|
+
/**
|
|
1777
|
+
* Schema for validation and encoding of tool approval request parts.
|
|
1778
|
+
*
|
|
1779
|
+
* @category schemas
|
|
1780
|
+
* @since 4.0.0
|
|
1781
|
+
*/
|
|
1782
|
+
export const ToolApprovalRequestPart: Schema.Struct<{
|
|
1783
|
+
readonly type: Schema.tag<"tool-approval-request">
|
|
1784
|
+
readonly approvalId: Schema.String
|
|
1785
|
+
readonly toolCallId: Schema.String
|
|
1786
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1787
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1788
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1789
|
+
>
|
|
1790
|
+
}> = Schema.Struct({
|
|
1791
|
+
...BasePart.fields,
|
|
1792
|
+
type: Schema.tag("tool-approval-request"),
|
|
1793
|
+
approvalId: Schema.String,
|
|
1794
|
+
toolCallId: Schema.String
|
|
1795
|
+
}).annotate({ identifier: "ToolApprovalRequestPart" }) satisfies Schema.Codec<
|
|
1796
|
+
ToolApprovalRequestPart,
|
|
1797
|
+
ToolApprovalRequestPartEncoded
|
|
1798
|
+
>
|
|
1799
|
+
|
|
1800
|
+
/**
|
|
1801
|
+
* Constructs a new tool approval request part.
|
|
1802
|
+
*
|
|
1803
|
+
* @category constructors
|
|
1804
|
+
* @since 4.0.0
|
|
1805
|
+
*/
|
|
1806
|
+
export const toolApprovalRequestPart = (
|
|
1807
|
+
params: ConstructorParams<ToolApprovalRequestPart>
|
|
1808
|
+
): ToolApprovalRequestPart => makePart("tool-approval-request", params as any)
|
|
1809
|
+
|
|
1810
|
+
// =============================================================================
|
|
1811
|
+
// File Part
|
|
1812
|
+
// =============================================================================
|
|
1813
|
+
|
|
1814
|
+
/**
|
|
1815
|
+
* Response part representing a file attachment.
|
|
1816
|
+
*
|
|
1817
|
+
* **Details**
|
|
1818
|
+
*
|
|
1819
|
+
* Supports various file types including images, documents, and binary data.
|
|
1820
|
+
*
|
|
1821
|
+
* **Example** (Creating a file part)
|
|
1822
|
+
*
|
|
1823
|
+
* ```ts
|
|
1824
|
+
* import { Response } from "effect/unstable/ai"
|
|
1825
|
+
*
|
|
1826
|
+
* const imagePart: Response.FilePart = Response.makePart("file", {
|
|
1827
|
+
* mediaType: "image/jpeg",
|
|
1828
|
+
* data: new Uint8Array([1, 2, 3])
|
|
1829
|
+
* })
|
|
1830
|
+
* ```
|
|
1831
|
+
*
|
|
1832
|
+
* @category models
|
|
1833
|
+
* @since 4.0.0
|
|
1834
|
+
*/
|
|
1835
|
+
export interface FilePart extends BasePart<"file", FilePartMetadata> {
|
|
1836
|
+
/**
|
|
1837
|
+
* MIME type of the file (e.g., "image/jpeg", "application/pdf").
|
|
1838
|
+
*/
|
|
1839
|
+
readonly mediaType: string
|
|
1840
|
+
/**
|
|
1841
|
+
* File data as a byte array.
|
|
1842
|
+
*/
|
|
1843
|
+
readonly data: Uint8Array
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
/**
|
|
1847
|
+
* Encoded representation of file parts for serialization.
|
|
1848
|
+
*
|
|
1849
|
+
* @category models
|
|
1850
|
+
* @since 4.0.0
|
|
1851
|
+
*/
|
|
1852
|
+
export interface FilePartEncoded extends BasePartEncoded<"file", FilePartMetadata> {
|
|
1853
|
+
/**
|
|
1854
|
+
* MIME type of the file (e.g., "image/jpeg", "application/pdf").
|
|
1855
|
+
*/
|
|
1856
|
+
readonly mediaType: string
|
|
1857
|
+
/**
|
|
1858
|
+
* File data as a base64 string.
|
|
1859
|
+
*/
|
|
1860
|
+
readonly data: string
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
/**
|
|
1864
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1865
|
+
* `FilePart` through module augmentation.
|
|
1866
|
+
*
|
|
1867
|
+
* @category configuration
|
|
1868
|
+
* @since 4.0.0
|
|
1869
|
+
*/
|
|
1870
|
+
export interface FilePartMetadata extends ProviderMetadata {}
|
|
1871
|
+
|
|
1872
|
+
/**
|
|
1873
|
+
* Schema for validation and encoding of file parts.
|
|
1874
|
+
*
|
|
1875
|
+
* **Details**
|
|
1876
|
+
*
|
|
1877
|
+
* Decoded `data` is a `Uint8Array`; encoded `data` is a base64 string through
|
|
1878
|
+
* `Schema.Uint8ArrayFromBase64`.
|
|
1879
|
+
*
|
|
1880
|
+
* @category schemas
|
|
1881
|
+
* @since 4.0.0
|
|
1882
|
+
*/
|
|
1883
|
+
export const FilePart: Schema.Struct<{
|
|
1884
|
+
readonly type: Schema.tag<"file">
|
|
1885
|
+
readonly mediaType: Schema.String
|
|
1886
|
+
readonly data: Schema.Uint8ArrayFromBase64
|
|
1887
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1888
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1889
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
1890
|
+
>
|
|
1891
|
+
}> = Schema.Struct({
|
|
1892
|
+
...BasePart.fields,
|
|
1893
|
+
type: Schema.tag("file"),
|
|
1894
|
+
mediaType: Schema.String,
|
|
1895
|
+
data: Schema.Uint8ArrayFromBase64
|
|
1896
|
+
}).annotate({ identifier: "FilePart" }) satisfies Schema.Codec<FilePart, FilePartEncoded>
|
|
1897
|
+
|
|
1898
|
+
// =============================================================================
|
|
1899
|
+
// Document Source Part
|
|
1900
|
+
// =============================================================================
|
|
1901
|
+
|
|
1902
|
+
/**
|
|
1903
|
+
* Response part representing a document source reference used in generating the
|
|
1904
|
+
* response.
|
|
1905
|
+
*
|
|
1906
|
+
* @category models
|
|
1907
|
+
* @since 4.0.0
|
|
1908
|
+
*/
|
|
1909
|
+
export interface DocumentSourcePart extends BasePart<"source", DocumentSourcePartMetadata> {
|
|
1910
|
+
/**
|
|
1911
|
+
* Type discriminator for document sources.
|
|
1912
|
+
*/
|
|
1913
|
+
readonly sourceType: "document"
|
|
1914
|
+
/**
|
|
1915
|
+
* Unique identifier for the document.
|
|
1916
|
+
*/
|
|
1917
|
+
readonly id: string
|
|
1918
|
+
/**
|
|
1919
|
+
* MIME type of the document.
|
|
1920
|
+
*/
|
|
1921
|
+
readonly mediaType: string
|
|
1922
|
+
/**
|
|
1923
|
+
* Display title of the document.
|
|
1924
|
+
*/
|
|
1925
|
+
readonly title: string
|
|
1926
|
+
/**
|
|
1927
|
+
* Optional filename of the document.
|
|
1928
|
+
*/
|
|
1929
|
+
readonly fileName?: string
|
|
1930
|
+
}
|
|
1931
|
+
|
|
1932
|
+
/**
|
|
1933
|
+
* Encoded representation of document source parts for serialization.
|
|
1934
|
+
*
|
|
1935
|
+
* @category models
|
|
1936
|
+
* @since 4.0.0
|
|
1937
|
+
*/
|
|
1938
|
+
export interface DocumentSourcePartEncoded extends BasePartEncoded<"source", DocumentSourcePartMetadata> {
|
|
1939
|
+
/**
|
|
1940
|
+
* Type discriminator for document sources.
|
|
1941
|
+
*/
|
|
1942
|
+
readonly sourceType: "document"
|
|
1943
|
+
/**
|
|
1944
|
+
* Unique identifier for the document.
|
|
1945
|
+
*/
|
|
1946
|
+
readonly id: string
|
|
1947
|
+
/**
|
|
1948
|
+
* MIME type of the document.
|
|
1949
|
+
*/
|
|
1950
|
+
readonly mediaType: string
|
|
1951
|
+
/**
|
|
1952
|
+
* Display title of the document.
|
|
1953
|
+
*/
|
|
1954
|
+
readonly title: string
|
|
1955
|
+
/**
|
|
1956
|
+
* Optional filename of the document.
|
|
1957
|
+
*/
|
|
1958
|
+
readonly fileName?: string
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
/**
|
|
1962
|
+
* Represents provider-specific metadata that can be associated with a
|
|
1963
|
+
* `DocumentSourcePart` through module augmentation.
|
|
1964
|
+
*
|
|
1965
|
+
* @category configuration
|
|
1966
|
+
* @since 4.0.0
|
|
1967
|
+
*/
|
|
1968
|
+
export interface DocumentSourcePartMetadata extends ProviderMetadata {}
|
|
1969
|
+
|
|
1970
|
+
/**
|
|
1971
|
+
* Schema for validation and encoding of document source parts.
|
|
1972
|
+
*
|
|
1973
|
+
* **When to use**
|
|
1974
|
+
*
|
|
1975
|
+
* Use to validate or encode document source references returned as response
|
|
1976
|
+
* content parts.
|
|
1977
|
+
*
|
|
1978
|
+
* **Details**
|
|
1979
|
+
*
|
|
1980
|
+
* Validates `type: "source"`, `sourceType: "document"`, required `id`,
|
|
1981
|
+
* `mediaType`, and `title`, optional `fileName`, and the metadata fields
|
|
1982
|
+
* inherited from response parts.
|
|
1983
|
+
*
|
|
1984
|
+
* @see {@link UrlSourcePart} for URL source references
|
|
1985
|
+
* @see {@link DocumentSourcePartEncoded} for the encoded document source representation
|
|
1986
|
+
*
|
|
1987
|
+
* @category schemas
|
|
1988
|
+
* @since 4.0.0
|
|
1989
|
+
*/
|
|
1990
|
+
export const DocumentSourcePart: Schema.Struct<{
|
|
1991
|
+
readonly type: Schema.tag<"source">
|
|
1992
|
+
readonly sourceType: Schema.tag<"document">
|
|
1993
|
+
readonly id: Schema.String
|
|
1994
|
+
readonly mediaType: Schema.String
|
|
1995
|
+
readonly title: Schema.String
|
|
1996
|
+
readonly fileName: Schema.optionalKey<Schema.String>
|
|
1997
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
1998
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
1999
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
2000
|
+
>
|
|
2001
|
+
}> = Schema.Struct({
|
|
2002
|
+
...BasePart.fields,
|
|
2003
|
+
type: Schema.tag("source"),
|
|
2004
|
+
sourceType: Schema.tag("document"),
|
|
2005
|
+
id: Schema.String,
|
|
2006
|
+
mediaType: Schema.String,
|
|
2007
|
+
title: Schema.String,
|
|
2008
|
+
fileName: Schema.optionalKey(Schema.String)
|
|
2009
|
+
}).annotate({ identifier: "DocumentSourcePart" }) satisfies Schema.Codec<DocumentSourcePart, DocumentSourcePartEncoded>
|
|
2010
|
+
|
|
2011
|
+
// =============================================================================
|
|
2012
|
+
// Url Source Part
|
|
2013
|
+
// =============================================================================
|
|
2014
|
+
|
|
2015
|
+
/**
|
|
2016
|
+
* Response part representing a URL source reference used in generating the
|
|
2017
|
+
* response.
|
|
2018
|
+
*
|
|
2019
|
+
* @category models
|
|
2020
|
+
* @since 4.0.0
|
|
2021
|
+
*/
|
|
2022
|
+
export interface UrlSourcePart extends BasePart<"source", UrlSourcePartMetadata> {
|
|
2023
|
+
/**
|
|
2024
|
+
* Type discriminator for URL sources.
|
|
2025
|
+
*/
|
|
2026
|
+
readonly sourceType: "url"
|
|
2027
|
+
/**
|
|
2028
|
+
* Unique identifier for the URL.
|
|
2029
|
+
*/
|
|
2030
|
+
readonly id: string
|
|
2031
|
+
/**
|
|
2032
|
+
* The URL that was referenced.
|
|
2033
|
+
*/
|
|
2034
|
+
readonly url: URL
|
|
2035
|
+
/**
|
|
2036
|
+
* Display title of the URL content.
|
|
2037
|
+
*/
|
|
2038
|
+
readonly title: string
|
|
2039
|
+
}
|
|
2040
|
+
|
|
2041
|
+
/**
|
|
2042
|
+
* Encoded representation of URL source parts for serialization.
|
|
2043
|
+
*
|
|
2044
|
+
* @category models
|
|
2045
|
+
* @since 4.0.0
|
|
2046
|
+
*/
|
|
2047
|
+
export interface UrlSourcePartEncoded extends BasePartEncoded<"source", UrlSourcePartMetadata> {
|
|
2048
|
+
/**
|
|
2049
|
+
* Type discriminator for URL sources.
|
|
2050
|
+
*/
|
|
2051
|
+
readonly sourceType: "url"
|
|
2052
|
+
/**
|
|
2053
|
+
* Unique identifier for the URL.
|
|
2054
|
+
*/
|
|
2055
|
+
readonly id: string
|
|
2056
|
+
/**
|
|
2057
|
+
* The URL that was referenced as a string.
|
|
2058
|
+
*/
|
|
2059
|
+
readonly url: string
|
|
2060
|
+
/**
|
|
2061
|
+
* Display title of the URL content.
|
|
2062
|
+
*/
|
|
2063
|
+
readonly title: string
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
/**
|
|
2067
|
+
* Represents provider-specific metadata that can be associated with a
|
|
2068
|
+
* `UrlSourcePart` through module augmentation.
|
|
2069
|
+
*
|
|
2070
|
+
* @category configuration
|
|
2071
|
+
* @since 4.0.0
|
|
2072
|
+
*/
|
|
2073
|
+
export interface UrlSourcePartMetadata extends ProviderMetadata {}
|
|
2074
|
+
|
|
2075
|
+
/**
|
|
2076
|
+
* Schema for validation and encoding of url source parts.
|
|
2077
|
+
*
|
|
2078
|
+
* @category schemas
|
|
2079
|
+
* @since 4.0.0
|
|
2080
|
+
*/
|
|
2081
|
+
export const UrlSourcePart: Schema.Struct<{
|
|
2082
|
+
readonly type: Schema.tag<"source">
|
|
2083
|
+
readonly sourceType: Schema.tag<"url">
|
|
2084
|
+
readonly id: Schema.String
|
|
2085
|
+
readonly url: Schema.URLFromString
|
|
2086
|
+
readonly title: Schema.String
|
|
2087
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
2088
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
2089
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
2090
|
+
>
|
|
2091
|
+
}> = Schema.Struct({
|
|
2092
|
+
...BasePart.fields,
|
|
2093
|
+
type: Schema.tag("source"),
|
|
2094
|
+
sourceType: Schema.tag("url"),
|
|
2095
|
+
id: Schema.String,
|
|
2096
|
+
url: Schema.URLFromString,
|
|
2097
|
+
title: Schema.String
|
|
2098
|
+
}).annotate({ identifier: "UrlSourcePart" }) satisfies Schema.Codec<UrlSourcePart, UrlSourcePartEncoded>
|
|
2099
|
+
|
|
2100
|
+
// =============================================================================
|
|
2101
|
+
// HTTP Details
|
|
2102
|
+
// =============================================================================
|
|
2103
|
+
|
|
2104
|
+
/**
|
|
2105
|
+
* Schema for HTTP request details associated with an AI response.
|
|
2106
|
+
*
|
|
2107
|
+
* **Details**
|
|
2108
|
+
*
|
|
2109
|
+
* Captures comprehensive information about the HTTP request made to the
|
|
2110
|
+
* AI provider, enabling inspection of request metadata for debugging and
|
|
2111
|
+
* observability purposes.
|
|
2112
|
+
*
|
|
2113
|
+
* **Example** (Describing an HTTP request)
|
|
2114
|
+
*
|
|
2115
|
+
* ```ts
|
|
2116
|
+
* import type { Response } from "effect/unstable/ai"
|
|
2117
|
+
*
|
|
2118
|
+
* const requestDetails: typeof Response.HttpRequestDetails.Type = {
|
|
2119
|
+
* method: "POST",
|
|
2120
|
+
* url: "https://api.openai.com/v1/responses",
|
|
2121
|
+
* urlParams: [],
|
|
2122
|
+
* hash: undefined,
|
|
2123
|
+
* headers: { "Content-Type": "application/json" }
|
|
2124
|
+
* }
|
|
2125
|
+
* ```
|
|
2126
|
+
*
|
|
2127
|
+
* @category schemas
|
|
2128
|
+
* @since 4.0.0
|
|
2129
|
+
*/
|
|
2130
|
+
export const HttpRequestDetails = Schema.Struct({
|
|
2131
|
+
method: Schema.Literals(["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE"]),
|
|
2132
|
+
url: Schema.String,
|
|
2133
|
+
urlParams: Schema.Array(Schema.Tuple([Schema.String, Schema.String])),
|
|
2134
|
+
hash: Schema.UndefinedOr(Schema.String),
|
|
2135
|
+
headers: Schema.Record(
|
|
2136
|
+
Schema.String,
|
|
2137
|
+
Schema.Union([
|
|
2138
|
+
Schema.String,
|
|
2139
|
+
Schema.Redacted(Schema.String)
|
|
2140
|
+
])
|
|
2141
|
+
)
|
|
2142
|
+
}).annotate({ identifier: "HttpRequestDetails" })
|
|
2143
|
+
|
|
2144
|
+
/**
|
|
2145
|
+
* Schema for HTTP response details associated with an AI response.
|
|
2146
|
+
*
|
|
2147
|
+
* **Details**
|
|
2148
|
+
*
|
|
2149
|
+
* Captures essential information about the HTTP response received from
|
|
2150
|
+
* the AI provider, including status codes and headers for debugging and
|
|
2151
|
+
* observability purposes.
|
|
2152
|
+
*
|
|
2153
|
+
* **Example** (Describing an HTTP response)
|
|
2154
|
+
*
|
|
2155
|
+
* ```ts
|
|
2156
|
+
* import type { Response } from "effect/unstable/ai"
|
|
2157
|
+
*
|
|
2158
|
+
* const responseDetails: typeof Response.HttpResponseDetails.Type = {
|
|
2159
|
+
* status: 200,
|
|
2160
|
+
* headers: {
|
|
2161
|
+
* "Content-Type": "application/json",
|
|
2162
|
+
* "X-Request-Id": "req_abc123"
|
|
2163
|
+
* }
|
|
2164
|
+
* }
|
|
2165
|
+
* ```
|
|
2166
|
+
*
|
|
2167
|
+
* @category schemas
|
|
2168
|
+
* @since 4.0.0
|
|
2169
|
+
*/
|
|
2170
|
+
export const HttpResponseDetails = Schema.Struct({
|
|
2171
|
+
status: Schema.Number,
|
|
2172
|
+
headers: Schema.Record(
|
|
2173
|
+
Schema.String,
|
|
2174
|
+
Schema.Union([
|
|
2175
|
+
Schema.String,
|
|
2176
|
+
Schema.Redacted(Schema.String)
|
|
2177
|
+
])
|
|
2178
|
+
)
|
|
2179
|
+
}).annotate({ identifier: "HttpResponseDetails" })
|
|
2180
|
+
|
|
2181
|
+
// =============================================================================
|
|
2182
|
+
// Response Metadata Part
|
|
2183
|
+
// =============================================================================
|
|
2184
|
+
|
|
2185
|
+
/**
|
|
2186
|
+
* Response part containing metadata about the large language model response.
|
|
2187
|
+
*
|
|
2188
|
+
* **Example** (Creating a metadata part)
|
|
2189
|
+
*
|
|
2190
|
+
* ```ts
|
|
2191
|
+
* import { DateTime } from "effect"
|
|
2192
|
+
* import { Response } from "effect/unstable/ai"
|
|
2193
|
+
*
|
|
2194
|
+
* const metadataPart: Response.ResponseMetadataPart = Response.makePart(
|
|
2195
|
+
* "response-metadata",
|
|
2196
|
+
* {
|
|
2197
|
+
* id: "resp_123",
|
|
2198
|
+
* modelId: "gpt-4",
|
|
2199
|
+
* timestamp: DateTime.nowUnsafe(),
|
|
2200
|
+
* request: undefined
|
|
2201
|
+
* }
|
|
2202
|
+
* )
|
|
2203
|
+
* ```
|
|
2204
|
+
*
|
|
2205
|
+
* @category models
|
|
2206
|
+
* @since 4.0.0
|
|
2207
|
+
*/
|
|
2208
|
+
export interface ResponseMetadataPart extends BasePart<"response-metadata", ResponseMetadataPartMetadata> {
|
|
2209
|
+
/**
|
|
2210
|
+
* Optional unique identifier for this specific response.
|
|
2211
|
+
*/
|
|
2212
|
+
readonly id: string | undefined
|
|
2213
|
+
/**
|
|
2214
|
+
* Optional identifier of the AI model that generated the response.
|
|
2215
|
+
*/
|
|
2216
|
+
readonly modelId: string | undefined
|
|
2217
|
+
/**
|
|
2218
|
+
* Optional timestamp when the response was generated.
|
|
2219
|
+
*/
|
|
2220
|
+
readonly timestamp: DateTime.Utc | undefined
|
|
2221
|
+
/**
|
|
2222
|
+
* Optional HTTP request details for the request made to the AI provider.
|
|
2223
|
+
*/
|
|
2224
|
+
readonly request: typeof HttpRequestDetails.Type | undefined
|
|
2225
|
+
}
|
|
2226
|
+
|
|
2227
|
+
/**
|
|
2228
|
+
* Encoded representation of response metadata parts for serialization.
|
|
2229
|
+
*
|
|
2230
|
+
* @category models
|
|
2231
|
+
* @since 4.0.0
|
|
2232
|
+
*/
|
|
2233
|
+
export interface ResponseMetadataPartEncoded
|
|
2234
|
+
extends BasePartEncoded<"response-metadata", ResponseMetadataPartMetadata>
|
|
2235
|
+
{
|
|
2236
|
+
/**
|
|
2237
|
+
* Optional unique identifier for this specific response.
|
|
2238
|
+
*/
|
|
2239
|
+
readonly id?: string | undefined
|
|
2240
|
+
/**
|
|
2241
|
+
* Optional identifier of the AI model that generated the response.
|
|
2242
|
+
*/
|
|
2243
|
+
readonly modelId?: string | undefined
|
|
2244
|
+
/**
|
|
2245
|
+
* Optional timestamp when the response was generated.
|
|
2246
|
+
*/
|
|
2247
|
+
readonly timestamp?: string | undefined
|
|
2248
|
+
/**
|
|
2249
|
+
* Optional HTTP request details for the request made to the AI provider.
|
|
2250
|
+
*/
|
|
2251
|
+
readonly request?: typeof HttpRequestDetails.Encoded | undefined
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2254
|
+
/**
|
|
2255
|
+
* Represents provider-specific metadata that can be associated with a
|
|
2256
|
+
* `ResponseMetadataPart` through module augmentation.
|
|
2257
|
+
*
|
|
2258
|
+
* @category configuration
|
|
2259
|
+
* @since 4.0.0
|
|
2260
|
+
*/
|
|
2261
|
+
export interface ResponseMetadataPartMetadata extends ProviderMetadata {}
|
|
2262
|
+
|
|
2263
|
+
/**
|
|
2264
|
+
* Schema for validation and encoding of response metadata parts.
|
|
2265
|
+
*
|
|
2266
|
+
* @category schemas
|
|
2267
|
+
* @since 4.0.0
|
|
2268
|
+
*/
|
|
2269
|
+
export const ResponseMetadataPart: Schema.Struct<{
|
|
2270
|
+
readonly type: Schema.tag<"response-metadata">
|
|
2271
|
+
readonly id: Schema.UndefinedOr<Schema.String>
|
|
2272
|
+
readonly modelId: Schema.UndefinedOr<Schema.String>
|
|
2273
|
+
readonly timestamp: Schema.UndefinedOr<Schema.DateTimeUtcFromString>
|
|
2274
|
+
readonly request: Schema.UndefinedOr<typeof HttpRequestDetails>
|
|
2275
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
2276
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
2277
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
2278
|
+
>
|
|
2279
|
+
}> = Schema.Struct({
|
|
2280
|
+
...BasePart.fields,
|
|
2281
|
+
type: Schema.tag("response-metadata"),
|
|
2282
|
+
id: Schema.UndefinedOr(Schema.String),
|
|
2283
|
+
modelId: Schema.UndefinedOr(Schema.String),
|
|
2284
|
+
timestamp: Schema.UndefinedOr(Schema.DateTimeUtcFromString),
|
|
2285
|
+
request: Schema.UndefinedOr(HttpRequestDetails)
|
|
2286
|
+
}).annotate({ identifier: "ResponseMetadataPart" }) satisfies Schema.Codec<
|
|
2287
|
+
ResponseMetadataPart,
|
|
2288
|
+
ResponseMetadataPartEncoded
|
|
2289
|
+
>
|
|
2290
|
+
|
|
2291
|
+
// =============================================================================
|
|
2292
|
+
// Finish Part
|
|
2293
|
+
// =============================================================================
|
|
2294
|
+
|
|
2295
|
+
/**
|
|
2296
|
+
* Represents the reason why a model finished generation of a response.
|
|
2297
|
+
*
|
|
2298
|
+
* **Details**
|
|
2299
|
+
*
|
|
2300
|
+
* Possible finish reasons:
|
|
2301
|
+
* - `"stop"`: The model generated a stop sequence.
|
|
2302
|
+
* - `"length"`: The model exceeded its token budget.
|
|
2303
|
+
* - `"content-filter"`: The model generated content which violated a content filter.
|
|
2304
|
+
* - `"tool-calls"`: The model triggered a tool call.
|
|
2305
|
+
* - `"error"`: The model encountered an error.
|
|
2306
|
+
* - `"pause"`: The model requested to pause execution.
|
|
2307
|
+
* - `"other"`: The model stopped for a reason not supported by this protocol.
|
|
2308
|
+
* - `"unknown"`: The model did not specify a finish reason.
|
|
2309
|
+
*
|
|
2310
|
+
* @category models
|
|
2311
|
+
* @since 4.0.0
|
|
2312
|
+
*/
|
|
2313
|
+
export const FinishReason: Schema.Literals<[
|
|
2314
|
+
"stop",
|
|
2315
|
+
"length",
|
|
2316
|
+
"content-filter",
|
|
2317
|
+
"tool-calls",
|
|
2318
|
+
"error",
|
|
2319
|
+
"pause",
|
|
2320
|
+
"other",
|
|
2321
|
+
"unknown"
|
|
2322
|
+
]> = Schema.Literals([
|
|
2323
|
+
"stop",
|
|
2324
|
+
"length",
|
|
2325
|
+
"content-filter",
|
|
2326
|
+
"tool-calls",
|
|
2327
|
+
"error",
|
|
2328
|
+
"pause",
|
|
2329
|
+
"other",
|
|
2330
|
+
"unknown"
|
|
2331
|
+
])
|
|
2332
|
+
|
|
2333
|
+
/**
|
|
2334
|
+
* Type of the reason why a model stopped generating a response.
|
|
2335
|
+
*
|
|
2336
|
+
* **Details**
|
|
2337
|
+
*
|
|
2338
|
+
* Values include normal stops, token-limit stops, content filtering,
|
|
2339
|
+
* tool-call pauses, provider errors, and unknown provider-specific finish
|
|
2340
|
+
* reasons.
|
|
2341
|
+
*
|
|
2342
|
+
* @category models
|
|
2343
|
+
* @since 4.0.0
|
|
2344
|
+
*/
|
|
2345
|
+
export type FinishReason = typeof FinishReason.Type
|
|
2346
|
+
|
|
2347
|
+
/**
|
|
2348
|
+
* Represents usage information for a request to a large language model provider.
|
|
2349
|
+
*
|
|
2350
|
+
* **Details**
|
|
2351
|
+
*
|
|
2352
|
+
* If the model provider returns additional usage information than what is
|
|
2353
|
+
* specified here, you can generally find that information under the provider
|
|
2354
|
+
* metadata of the finish part of the response.
|
|
2355
|
+
*
|
|
2356
|
+
* @category models
|
|
2357
|
+
* @since 4.0.0
|
|
2358
|
+
*/
|
|
2359
|
+
export class Usage extends Schema.Class<Usage>("effect/ai/AiResponse/Usage")({
|
|
2360
|
+
/**
|
|
2361
|
+
* Information about input (i.e. prompt) token utilization.
|
|
2362
|
+
*/
|
|
2363
|
+
inputTokens: Schema.Struct({
|
|
2364
|
+
/**
|
|
2365
|
+
* The number of non-cached input (i.e. prompt) tokens used.
|
|
2366
|
+
*/
|
|
2367
|
+
uncached: Schema.UndefinedOr(Schema.Number),
|
|
2368
|
+
/**
|
|
2369
|
+
* The total of number of input (i.e. prompt) tokens used.
|
|
2370
|
+
*/
|
|
2371
|
+
total: Schema.UndefinedOr(Schema.Number),
|
|
2372
|
+
/**
|
|
2373
|
+
* The number of cached input (i.e. prompt) tokens read.
|
|
2374
|
+
*/
|
|
2375
|
+
cacheRead: Schema.UndefinedOr(Schema.Number),
|
|
2376
|
+
/**
|
|
2377
|
+
* The number of cached input (i.e. prompt) tokens written.
|
|
2378
|
+
*/
|
|
2379
|
+
cacheWrite: Schema.UndefinedOr(Schema.Number)
|
|
2380
|
+
}),
|
|
2381
|
+
/**
|
|
2382
|
+
* Information about the output (i.e. response) tokens used.
|
|
2383
|
+
*/
|
|
2384
|
+
outputTokens: Schema.Struct({
|
|
2385
|
+
/**
|
|
2386
|
+
* The total of number of output (i.e. response) tokens used.
|
|
2387
|
+
*/
|
|
2388
|
+
total: Schema.UndefinedOr(Schema.Number),
|
|
2389
|
+
/**
|
|
2390
|
+
* The number of text tokens used.
|
|
2391
|
+
*/
|
|
2392
|
+
text: Schema.UndefinedOr(Schema.Number),
|
|
2393
|
+
/**
|
|
2394
|
+
* The number of reasoning tokens used.
|
|
2395
|
+
*/
|
|
2396
|
+
reasoning: Schema.UndefinedOr(Schema.Number)
|
|
2397
|
+
})
|
|
2398
|
+
}) {}
|
|
2399
|
+
|
|
2400
|
+
/**
|
|
2401
|
+
* Response part indicating the completion of a response generation.
|
|
2402
|
+
*
|
|
2403
|
+
* **Example** (Creating a finish part)
|
|
2404
|
+
*
|
|
2405
|
+
* ```ts
|
|
2406
|
+
* import { Response } from "effect/unstable/ai"
|
|
2407
|
+
*
|
|
2408
|
+
* const finishPart: Response.FinishPart = Response.makePart("finish", {
|
|
2409
|
+
* reason: "stop",
|
|
2410
|
+
* usage: new Response.Usage({
|
|
2411
|
+
* inputTokens: {
|
|
2412
|
+
* uncached: undefined,
|
|
2413
|
+
* total: 50,
|
|
2414
|
+
* cacheRead: undefined,
|
|
2415
|
+
* cacheWrite: undefined
|
|
2416
|
+
* },
|
|
2417
|
+
* outputTokens: {
|
|
2418
|
+
* total: 25,
|
|
2419
|
+
* text: undefined,
|
|
2420
|
+
* reasoning: undefined
|
|
2421
|
+
* }
|
|
2422
|
+
* }),
|
|
2423
|
+
* response: undefined
|
|
2424
|
+
* })
|
|
2425
|
+
* ```
|
|
2426
|
+
*
|
|
2427
|
+
* @category models
|
|
2428
|
+
* @since 4.0.0
|
|
2429
|
+
*/
|
|
2430
|
+
export interface FinishPart extends BasePart<"finish", FinishPartMetadata> {
|
|
2431
|
+
/**
|
|
2432
|
+
* The reason why the model finished generating the response.
|
|
2433
|
+
*/
|
|
2434
|
+
readonly reason: FinishReason
|
|
2435
|
+
/**
|
|
2436
|
+
* Token usage statistics for the request.
|
|
2437
|
+
*/
|
|
2438
|
+
readonly usage: Usage
|
|
2439
|
+
/**
|
|
2440
|
+
* Optional HTTP response details from the AI provider.
|
|
2441
|
+
*/
|
|
2442
|
+
readonly response: typeof HttpResponseDetails.Type | undefined
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
/**
|
|
2446
|
+
* Encoded representation of finish parts for serialization.
|
|
2447
|
+
*
|
|
2448
|
+
* @category models
|
|
2449
|
+
* @since 4.0.0
|
|
2450
|
+
*/
|
|
2451
|
+
export interface FinishPartEncoded extends BasePartEncoded<"finish", FinishPartMetadata> {
|
|
2452
|
+
/**
|
|
2453
|
+
* The reason why the model finished generating the response.
|
|
2454
|
+
*/
|
|
2455
|
+
readonly reason: typeof FinishReason.Encoded
|
|
2456
|
+
/**
|
|
2457
|
+
* Token usage statistics for the request.
|
|
2458
|
+
*/
|
|
2459
|
+
readonly usage: typeof Usage.Encoded
|
|
2460
|
+
/**
|
|
2461
|
+
* Optional HTTP response details from the AI provider.
|
|
2462
|
+
*/
|
|
2463
|
+
readonly response?: typeof HttpResponseDetails.Encoded | undefined
|
|
2464
|
+
}
|
|
2465
|
+
|
|
2466
|
+
/**
|
|
2467
|
+
* Represents provider-specific metadata that can be associated with a
|
|
2468
|
+
* `FinishPart` through module augmentation.
|
|
2469
|
+
*
|
|
2470
|
+
* @category configuration
|
|
2471
|
+
* @since 4.0.0
|
|
2472
|
+
*/
|
|
2473
|
+
export interface FinishPartMetadata extends ProviderMetadata {}
|
|
2474
|
+
|
|
2475
|
+
/**
|
|
2476
|
+
* Schema for finish response parts.
|
|
2477
|
+
*
|
|
2478
|
+
* **Details**
|
|
2479
|
+
*
|
|
2480
|
+
* Validates `type: "finish"`, `reason` through `FinishReason`, `usage`
|
|
2481
|
+
* through `Usage`, and optional provider HTTP response details.
|
|
2482
|
+
*
|
|
2483
|
+
* @category schemas
|
|
2484
|
+
* @since 4.0.0
|
|
2485
|
+
*/
|
|
2486
|
+
export const FinishPart: Schema.Struct<{
|
|
2487
|
+
readonly type: Schema.tag<"finish">
|
|
2488
|
+
readonly reason: Schema.Literals<[
|
|
2489
|
+
"stop",
|
|
2490
|
+
"length",
|
|
2491
|
+
"content-filter",
|
|
2492
|
+
"tool-calls",
|
|
2493
|
+
"error",
|
|
2494
|
+
"pause",
|
|
2495
|
+
"other",
|
|
2496
|
+
"unknown"
|
|
2497
|
+
]>
|
|
2498
|
+
readonly usage: typeof Usage
|
|
2499
|
+
readonly response: Schema.UndefinedOr<typeof HttpResponseDetails>
|
|
2500
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
2501
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
2502
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
2503
|
+
>
|
|
2504
|
+
}> = Schema.Struct({
|
|
2505
|
+
...BasePart.fields,
|
|
2506
|
+
type: Schema.tag("finish"),
|
|
2507
|
+
reason: FinishReason,
|
|
2508
|
+
usage: Usage,
|
|
2509
|
+
response: Schema.UndefinedOr(HttpResponseDetails)
|
|
2510
|
+
}).annotate({ identifier: "FinishPart" }) satisfies Schema.Codec<FinishPart, FinishPartEncoded>
|
|
2511
|
+
|
|
2512
|
+
// =============================================================================
|
|
2513
|
+
// Error Part
|
|
2514
|
+
// =============================================================================
|
|
2515
|
+
|
|
2516
|
+
/**
|
|
2517
|
+
* Response part indicating that an error occurred generating the response.
|
|
2518
|
+
*
|
|
2519
|
+
* **Example** (Creating an error part)
|
|
2520
|
+
*
|
|
2521
|
+
* ```ts
|
|
2522
|
+
* import { Response } from "effect/unstable/ai"
|
|
2523
|
+
*
|
|
2524
|
+
* const errorPart: Response.ErrorPart = Response.makePart("error", {
|
|
2525
|
+
* error: new Error("boom")
|
|
2526
|
+
* })
|
|
2527
|
+
* ```
|
|
2528
|
+
*
|
|
2529
|
+
* @category models
|
|
2530
|
+
* @since 4.0.0
|
|
2531
|
+
*/
|
|
2532
|
+
export interface ErrorPart extends BasePart<"error", ErrorPartMetadata> {
|
|
2533
|
+
readonly error: unknown
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
/**
|
|
2537
|
+
* Encoded representation of error parts for serialization.
|
|
2538
|
+
*
|
|
2539
|
+
* @category models
|
|
2540
|
+
* @since 4.0.0
|
|
2541
|
+
*/
|
|
2542
|
+
export interface ErrorPartEncoded extends BasePartEncoded<"error", ErrorPartMetadata> {
|
|
2543
|
+
readonly error: unknown
|
|
2544
|
+
}
|
|
2545
|
+
|
|
2546
|
+
/**
|
|
2547
|
+
* Represents provider-specific metadata that can be associated with a
|
|
2548
|
+
* `ErrorPart` through module augmentation.
|
|
2549
|
+
*
|
|
2550
|
+
* @category configuration
|
|
2551
|
+
* @since 4.0.0
|
|
2552
|
+
*/
|
|
2553
|
+
export interface ErrorPartMetadata extends ProviderMetadata {}
|
|
2554
|
+
|
|
2555
|
+
/**
|
|
2556
|
+
* Schema for validation and encoding of error parts.
|
|
2557
|
+
*
|
|
2558
|
+
* **Details**
|
|
2559
|
+
*
|
|
2560
|
+
* Validates and encodes error parts with `type: "error"` and an `error` payload
|
|
2561
|
+
* kept as `unknown`.
|
|
2562
|
+
*
|
|
2563
|
+
* **Gotchas**
|
|
2564
|
+
*
|
|
2565
|
+
* The decoded `error` value is not guaranteed to be an `Error`; narrow it before
|
|
2566
|
+
* reading `Error`-specific fields.
|
|
2567
|
+
*
|
|
2568
|
+
* @category schemas
|
|
2569
|
+
* @since 4.0.0
|
|
2570
|
+
*/
|
|
2571
|
+
export const ErrorPart: Schema.Struct<{
|
|
2572
|
+
readonly type: Schema.tag<"error">
|
|
2573
|
+
readonly error: Schema.Unknown
|
|
2574
|
+
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
2575
|
+
readonly metadata: Schema.withDecodingDefault<
|
|
2576
|
+
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
2577
|
+
>
|
|
2578
|
+
}> = Schema.Struct({
|
|
2579
|
+
...BasePart.fields,
|
|
2580
|
+
type: Schema.tag("error"),
|
|
2581
|
+
error: Schema.Unknown
|
|
2582
|
+
}).annotate({ identifier: "ErrorPart" }) satisfies Schema.Codec<ErrorPart, ErrorPartEncoded>
|