@particle-academy/prism 0.0.0
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/LICENSE +21 -0
- package/README.md +155 -0
- package/dist/audio/pending-request.d.ts +37 -0
- package/dist/audio/pending-request.d.ts.map +1 -0
- package/dist/audio/pending-request.js +91 -0
- package/dist/audio/pending-request.js.map +1 -0
- package/dist/audio/request.d.ts +37 -0
- package/dist/audio/request.d.ts.map +1 -0
- package/dist/audio/request.js +50 -0
- package/dist/audio/request.js.map +1 -0
- package/dist/audio/response.d.ts +24 -0
- package/dist/audio/response.d.ts.map +1 -0
- package/dist/audio/response.js +36 -0
- package/dist/audio/response.js.map +1 -0
- package/dist/batch/batch-job.d.ts +91 -0
- package/dist/batch/batch-job.d.ts.map +1 -0
- package/dist/batch/batch-job.js +156 -0
- package/dist/batch/batch-job.js.map +1 -0
- package/dist/batch/pending-request.d.ts +29 -0
- package/dist/batch/pending-request.d.ts.map +1 -0
- package/dist/batch/pending-request.js +73 -0
- package/dist/batch/pending-request.js.map +1 -0
- package/dist/batch/request.d.ts +73 -0
- package/dist/batch/request.d.ts.map +1 -0
- package/dist/batch/request.js +79 -0
- package/dist/batch/request.js.map +1 -0
- package/dist/embeddings/pending-request.d.ts +38 -0
- package/dist/embeddings/pending-request.d.ts.map +1 -0
- package/dist/embeddings/pending-request.js +86 -0
- package/dist/embeddings/pending-request.js.map +1 -0
- package/dist/embeddings/request.d.ts +27 -0
- package/dist/embeddings/request.d.ts.map +1 -0
- package/dist/embeddings/request.js +38 -0
- package/dist/embeddings/request.js.map +1 -0
- package/dist/embeddings/response.d.ts +19 -0
- package/dist/embeddings/response.d.ts.map +1 -0
- package/dist/embeddings/response.js +21 -0
- package/dist/embeddings/response.js.map +1 -0
- package/dist/enums.d.ts +52 -0
- package/dist/enums.d.ts.map +1 -0
- package/dist/enums.js +69 -0
- package/dist/enums.js.map +1 -0
- package/dist/errors.d.ts +119 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +115 -0
- package/dist/errors.js.map +1 -0
- package/dist/files/file-data.d.ts +53 -0
- package/dist/files/file-data.d.ts.map +1 -0
- package/dist/files/file-data.js +79 -0
- package/dist/files/file-data.js.map +1 -0
- package/dist/files/pending-request.d.ts +38 -0
- package/dist/files/pending-request.d.ts.map +1 -0
- package/dist/files/pending-request.js +96 -0
- package/dist/files/pending-request.js.map +1 -0
- package/dist/files/request.d.ts +77 -0
- package/dist/files/request.d.ts.map +1 -0
- package/dist/files/request.js +81 -0
- package/dist/files/request.js.map +1 -0
- package/dist/fim/pending-request.d.ts +31 -0
- package/dist/fim/pending-request.d.ts.map +1 -0
- package/dist/fim/pending-request.js +89 -0
- package/dist/fim/pending-request.js.map +1 -0
- package/dist/fim/request.d.ts +39 -0
- package/dist/fim/request.d.ts.map +1 -0
- package/dist/fim/request.js +65 -0
- package/dist/fim/request.js.map +1 -0
- package/dist/fim/response.d.ts +21 -0
- package/dist/fim/response.d.ts.map +1 -0
- package/dist/fim/response.js +30 -0
- package/dist/fim/response.js.map +1 -0
- package/dist/http/header-names.d.ts +36 -0
- package/dist/http/header-names.d.ts.map +1 -0
- package/dist/http/header-names.js +44 -0
- package/dist/http/header-names.js.map +1 -0
- package/dist/http/transport.d.ts +94 -0
- package/dist/http/transport.d.ts.map +1 -0
- package/dist/http/transport.js +131 -0
- package/dist/http/transport.js.map +1 -0
- package/dist/images/pending-request.d.ts +30 -0
- package/dist/images/pending-request.d.ts.map +1 -0
- package/dist/images/pending-request.js +66 -0
- package/dist/images/pending-request.js.map +1 -0
- package/dist/images/request.d.ts +19 -0
- package/dist/images/request.d.ts.map +1 -0
- package/dist/images/request.js +30 -0
- package/dist/images/request.js.map +1 -0
- package/dist/images/response.d.ts +29 -0
- package/dist/images/response.d.ts.map +1 -0
- package/dist/images/response.js +34 -0
- package/dist/images/response.js.map +1 -0
- package/dist/index.d.ts +108 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/filters.d.ts +40 -0
- package/dist/internal/filters.d.ts.map +1 -0
- package/dist/internal/filters.js +83 -0
- package/dist/internal/filters.js.map +1 -0
- package/dist/json.d.ts +41 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +75 -0
- package/dist/json.js.map +1 -0
- package/dist/moderation/pending-request.d.ts +24 -0
- package/dist/moderation/pending-request.d.ts.map +1 -0
- package/dist/moderation/pending-request.js +60 -0
- package/dist/moderation/pending-request.js.map +1 -0
- package/dist/moderation/request.d.ts +20 -0
- package/dist/moderation/request.d.ts.map +1 -0
- package/dist/moderation/request.js +31 -0
- package/dist/moderation/request.js.map +1 -0
- package/dist/moderation/response.d.ts +26 -0
- package/dist/moderation/response.d.ts.map +1 -0
- package/dist/moderation/response.js +34 -0
- package/dist/moderation/response.js.map +1 -0
- package/dist/prism.d.ts +43 -0
- package/dist/prism.d.ts.map +1 -0
- package/dist/prism.js +79 -0
- package/dist/prism.js.map +1 -0
- package/dist/providers/anthropic/anthropic.d.ts +67 -0
- package/dist/providers/anthropic/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic/anthropic.js +172 -0
- package/dist/providers/anthropic/anthropic.js.map +1 -0
- package/dist/providers/anthropic/build-request-body.d.ts +15 -0
- package/dist/providers/anthropic/build-request-body.d.ts.map +1 -0
- package/dist/providers/anthropic/build-request-body.js +51 -0
- package/dist/providers/anthropic/build-request-body.js.map +1 -0
- package/dist/providers/anthropic/maps/finish-reason-map.d.ts +14 -0
- package/dist/providers/anthropic/maps/finish-reason-map.d.ts.map +1 -0
- package/dist/providers/anthropic/maps/finish-reason-map.js +30 -0
- package/dist/providers/anthropic/maps/finish-reason-map.js.map +1 -0
- package/dist/providers/anthropic/maps/media-map.d.ts +25 -0
- package/dist/providers/anthropic/maps/media-map.d.ts.map +1 -0
- package/dist/providers/anthropic/maps/media-map.js +87 -0
- package/dist/providers/anthropic/maps/media-map.js.map +1 -0
- package/dist/providers/anthropic/maps/message-map.d.ts +31 -0
- package/dist/providers/anthropic/maps/message-map.d.ts.map +1 -0
- package/dist/providers/anthropic/maps/message-map.js +121 -0
- package/dist/providers/anthropic/maps/message-map.js.map +1 -0
- package/dist/providers/anthropic/maps/tool-choice-map.d.ts +11 -0
- package/dist/providers/anthropic/maps/tool-choice-map.d.ts.map +1 -0
- package/dist/providers/anthropic/maps/tool-choice-map.js +25 -0
- package/dist/providers/anthropic/maps/tool-choice-map.js.map +1 -0
- package/dist/providers/anthropic/maps/tool-map.d.ts +14 -0
- package/dist/providers/anthropic/maps/tool-map.d.ts.map +1 -0
- package/dist/providers/anthropic/maps/tool-map.js +22 -0
- package/dist/providers/anthropic/maps/tool-map.js.map +1 -0
- package/dist/providers/anthropic/parse-response.d.ts +21 -0
- package/dist/providers/anthropic/parse-response.d.ts.map +1 -0
- package/dist/providers/anthropic/parse-response.js +109 -0
- package/dist/providers/anthropic/parse-response.js.map +1 -0
- package/dist/providers/anthropic/rate-limits.d.ts +4 -0
- package/dist/providers/anthropic/rate-limits.d.ts.map +1 -0
- package/dist/providers/anthropic/rate-limits.js +47 -0
- package/dist/providers/anthropic/rate-limits.js.map +1 -0
- package/dist/providers/anthropic/stream-events.d.ts +27 -0
- package/dist/providers/anthropic/stream-events.d.ts.map +1 -0
- package/dist/providers/anthropic/stream-events.js +147 -0
- package/dist/providers/anthropic/stream-events.js.map +1 -0
- package/dist/providers/mistral/build-request-body.d.ts +32 -0
- package/dist/providers/mistral/build-request-body.d.ts.map +1 -0
- package/dist/providers/mistral/build-request-body.js +69 -0
- package/dist/providers/mistral/build-request-body.js.map +1 -0
- package/dist/providers/mistral/embeddings.d.ts +14 -0
- package/dist/providers/mistral/embeddings.d.ts.map +1 -0
- package/dist/providers/mistral/embeddings.js +41 -0
- package/dist/providers/mistral/embeddings.js.map +1 -0
- package/dist/providers/mistral/fim.d.ts +32 -0
- package/dist/providers/mistral/fim.d.ts.map +1 -0
- package/dist/providers/mistral/fim.js +70 -0
- package/dist/providers/mistral/fim.js.map +1 -0
- package/dist/providers/mistral/maps/finish-reason-map.d.ts +15 -0
- package/dist/providers/mistral/maps/finish-reason-map.d.ts.map +1 -0
- package/dist/providers/mistral/maps/finish-reason-map.js +32 -0
- package/dist/providers/mistral/maps/finish-reason-map.js.map +1 -0
- package/dist/providers/mistral/maps/media-map.d.ts +24 -0
- package/dist/providers/mistral/maps/media-map.d.ts.map +1 -0
- package/dist/providers/mistral/maps/media-map.js +41 -0
- package/dist/providers/mistral/maps/media-map.js.map +1 -0
- package/dist/providers/mistral/maps/message-map.d.ts +20 -0
- package/dist/providers/mistral/maps/message-map.d.ts.map +1 -0
- package/dist/providers/mistral/maps/message-map.js +83 -0
- package/dist/providers/mistral/maps/message-map.js.map +1 -0
- package/dist/providers/mistral/maps/tool-choice-map.d.ts +12 -0
- package/dist/providers/mistral/maps/tool-choice-map.d.ts.map +1 -0
- package/dist/providers/mistral/maps/tool-choice-map.js +25 -0
- package/dist/providers/mistral/maps/tool-choice-map.js.map +1 -0
- package/dist/providers/mistral/maps/tool-map.d.ts +15 -0
- package/dist/providers/mistral/maps/tool-map.d.ts.map +1 -0
- package/dist/providers/mistral/maps/tool-map.js +26 -0
- package/dist/providers/mistral/maps/tool-map.js.map +1 -0
- package/dist/providers/mistral/mistral.d.ts +90 -0
- package/dist/providers/mistral/mistral.d.ts.map +1 -0
- package/dist/providers/mistral/mistral.js +210 -0
- package/dist/providers/mistral/mistral.js.map +1 -0
- package/dist/providers/mistral/parse-response.d.ts +35 -0
- package/dist/providers/mistral/parse-response.d.ts.map +1 -0
- package/dist/providers/mistral/parse-response.js +114 -0
- package/dist/providers/mistral/parse-response.js.map +1 -0
- package/dist/providers/mistral/rate-limits.d.ts +24 -0
- package/dist/providers/mistral/rate-limits.d.ts.map +1 -0
- package/dist/providers/mistral/rate-limits.js +55 -0
- package/dist/providers/mistral/rate-limits.js.map +1 -0
- package/dist/providers/mistral/stream-events.d.ts +29 -0
- package/dist/providers/mistral/stream-events.d.ts.map +1 -0
- package/dist/providers/mistral/stream-events.js +142 -0
- package/dist/providers/mistral/stream-events.js.map +1 -0
- package/dist/providers/openai/audio.d.ts +16 -0
- package/dist/providers/openai/audio.d.ts.map +1 -0
- package/dist/providers/openai/audio.js +105 -0
- package/dist/providers/openai/audio.js.map +1 -0
- package/dist/providers/openai/batch.d.ts +29 -0
- package/dist/providers/openai/batch.d.ts.map +1 -0
- package/dist/providers/openai/batch.js +181 -0
- package/dist/providers/openai/batch.js.map +1 -0
- package/dist/providers/openai/build-request-body.d.ts +25 -0
- package/dist/providers/openai/build-request-body.d.ts.map +1 -0
- package/dist/providers/openai/build-request-body.js +66 -0
- package/dist/providers/openai/build-request-body.js.map +1 -0
- package/dist/providers/openai/build-structured-body.d.ts +16 -0
- package/dist/providers/openai/build-structured-body.d.ts.map +1 -0
- package/dist/providers/openai/build-structured-body.js +47 -0
- package/dist/providers/openai/build-structured-body.js.map +1 -0
- package/dist/providers/openai/embeddings.d.ts +6 -0
- package/dist/providers/openai/embeddings.d.ts.map +1 -0
- package/dist/providers/openai/embeddings.js +61 -0
- package/dist/providers/openai/embeddings.js.map +1 -0
- package/dist/providers/openai/files.d.ts +16 -0
- package/dist/providers/openai/files.d.ts.map +1 -0
- package/dist/providers/openai/files.js +80 -0
- package/dist/providers/openai/files.js.map +1 -0
- package/dist/providers/openai/images.d.ts +6 -0
- package/dist/providers/openai/images.d.ts.map +1 -0
- package/dist/providers/openai/images.js +55 -0
- package/dist/providers/openai/images.js.map +1 -0
- package/dist/providers/openai/maps/finish-reason-map.d.ts +21 -0
- package/dist/providers/openai/maps/finish-reason-map.d.ts.map +1 -0
- package/dist/providers/openai/maps/finish-reason-map.js +56 -0
- package/dist/providers/openai/maps/finish-reason-map.js.map +1 -0
- package/dist/providers/openai/maps/media-map.d.ts +25 -0
- package/dist/providers/openai/maps/media-map.d.ts.map +1 -0
- package/dist/providers/openai/maps/media-map.js +53 -0
- package/dist/providers/openai/maps/media-map.js.map +1 -0
- package/dist/providers/openai/maps/message-map.d.ts +21 -0
- package/dist/providers/openai/maps/message-map.d.ts.map +1 -0
- package/dist/providers/openai/maps/message-map.js +128 -0
- package/dist/providers/openai/maps/message-map.js.map +1 -0
- package/dist/providers/openai/maps/tool-choice-map.d.ts +14 -0
- package/dist/providers/openai/maps/tool-choice-map.d.ts.map +1 -0
- package/dist/providers/openai/maps/tool-choice-map.js +27 -0
- package/dist/providers/openai/maps/tool-choice-map.js.map +1 -0
- package/dist/providers/openai/maps/tool-map.d.ts +16 -0
- package/dist/providers/openai/maps/tool-map.d.ts.map +1 -0
- package/dist/providers/openai/maps/tool-map.js +34 -0
- package/dist/providers/openai/maps/tool-map.js.map +1 -0
- package/dist/providers/openai/moderation.d.ts +6 -0
- package/dist/providers/openai/moderation.d.ts.map +1 -0
- package/dist/providers/openai/moderation.js +26 -0
- package/dist/providers/openai/moderation.js.map +1 -0
- package/dist/providers/openai/openai.d.ts +103 -0
- package/dist/providers/openai/openai.d.ts.map +1 -0
- package/dist/providers/openai/openai.js +385 -0
- package/dist/providers/openai/openai.js.map +1 -0
- package/dist/providers/openai/parse-response.d.ts +21 -0
- package/dist/providers/openai/parse-response.d.ts.map +1 -0
- package/dist/providers/openai/parse-response.js +114 -0
- package/dist/providers/openai/parse-response.js.map +1 -0
- package/dist/providers/openai/rate-limits.d.ts +4 -0
- package/dist/providers/openai/rate-limits.d.ts.map +1 -0
- package/dist/providers/openai/rate-limits.js +47 -0
- package/dist/providers/openai/rate-limits.js.map +1 -0
- package/dist/providers/openai/stream-events.d.ts +13 -0
- package/dist/providers/openai/stream-events.d.ts.map +1 -0
- package/dist/providers/openai/stream-events.js +79 -0
- package/dist/providers/openai/stream-events.js.map +1 -0
- package/dist/providers/openai/structured-mode-resolver.d.ts +3 -0
- package/dist/providers/openai/structured-mode-resolver.d.ts.map +1 -0
- package/dist/providers/openai/structured-mode-resolver.js +41 -0
- package/dist/providers/openai/structured-mode-resolver.js.map +1 -0
- package/dist/providers/provider.d.ts +55 -0
- package/dist/providers/provider.d.ts.map +1 -0
- package/dist/providers/provider.js +73 -0
- package/dist/providers/provider.js.map +1 -0
- package/dist/providers/registry.d.ts +10 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +27 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/support/media.d.ts +16 -0
- package/dist/providers/support/media.d.ts.map +1 -0
- package/dist/providers/support/media.js +26 -0
- package/dist/providers/support/media.js.map +1 -0
- package/dist/schema/index.d.ts +114 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +192 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/streaming/events.d.ts +90 -0
- package/dist/streaming/events.d.ts.map +1 -0
- package/dist/streaming/events.js +152 -0
- package/dist/streaming/events.js.map +1 -0
- package/dist/streaming/sse.d.ts +17 -0
- package/dist/streaming/sse.d.ts.map +1 -0
- package/dist/streaming/sse.js +50 -0
- package/dist/streaming/sse.js.map +1 -0
- package/dist/structured/extract.d.ts +23 -0
- package/dist/structured/extract.d.ts.map +1 -0
- package/dist/structured/extract.js +43 -0
- package/dist/structured/extract.js.map +1 -0
- package/dist/structured/from-text.d.ts +16 -0
- package/dist/structured/from-text.d.ts.map +1 -0
- package/dist/structured/from-text.js +27 -0
- package/dist/structured/from-text.js.map +1 -0
- package/dist/structured/pending-request.d.ts +28 -0
- package/dist/structured/pending-request.d.ts.map +1 -0
- package/dist/structured/pending-request.js +48 -0
- package/dist/structured/pending-request.js.map +1 -0
- package/dist/structured/request.d.ts +28 -0
- package/dist/structured/request.d.ts.map +1 -0
- package/dist/structured/request.js +31 -0
- package/dist/structured/request.js.map +1 -0
- package/dist/structured/response.d.ts +44 -0
- package/dist/structured/response.d.ts.map +1 -0
- package/dist/structured/response.js +49 -0
- package/dist/structured/response.js.map +1 -0
- package/dist/text/pending-request.d.ts +77 -0
- package/dist/text/pending-request.d.ts.map +1 -0
- package/dist/text/pending-request.js +189 -0
- package/dist/text/pending-request.js.map +1 -0
- package/dist/text/request.d.ts +62 -0
- package/dist/text/request.d.ts.map +1 -0
- package/dist/text/request.js +117 -0
- package/dist/text/request.js.map +1 -0
- package/dist/text/response-builder.d.ts +16 -0
- package/dist/text/response-builder.d.ts.map +1 -0
- package/dist/text/response-builder.js +52 -0
- package/dist/text/response-builder.js.map +1 -0
- package/dist/text/response.d.ts +36 -0
- package/dist/text/response.d.ts.map +1 -0
- package/dist/text/response.js +40 -0
- package/dist/text/response.js.map +1 -0
- package/dist/text/step.d.ts +41 -0
- package/dist/text/step.d.ts.map +1 -0
- package/dist/text/step.js +46 -0
- package/dist/text/step.js.map +1 -0
- package/dist/tool.d.ts +34 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +86 -0
- package/dist/tool.js.map +1 -0
- package/dist/value-objects/artifact.d.ts +14 -0
- package/dist/value-objects/artifact.d.ts.map +1 -0
- package/dist/value-objects/artifact.js +32 -0
- package/dist/value-objects/artifact.js.map +1 -0
- package/dist/value-objects/embedding.d.ts +24 -0
- package/dist/value-objects/embedding.d.ts.map +1 -0
- package/dist/value-objects/embedding.js +29 -0
- package/dist/value-objects/embedding.js.map +1 -0
- package/dist/value-objects/embeddings-usage.d.ts +16 -0
- package/dist/value-objects/embeddings-usage.d.ts.map +1 -0
- package/dist/value-objects/embeddings-usage.js +19 -0
- package/dist/value-objects/embeddings-usage.js.map +1 -0
- package/dist/value-objects/generated-audio.d.ts +20 -0
- package/dist/value-objects/generated-audio.d.ts.map +1 -0
- package/dist/value-objects/generated-audio.js +23 -0
- package/dist/value-objects/generated-audio.js.map +1 -0
- package/dist/value-objects/generated-image.d.ts +36 -0
- package/dist/value-objects/generated-image.d.ts.map +1 -0
- package/dist/value-objects/generated-image.js +35 -0
- package/dist/value-objects/generated-image.js.map +1 -0
- package/dist/value-objects/index.d.ts +13 -0
- package/dist/value-objects/index.d.ts.map +1 -0
- package/dist/value-objects/index.js +10 -0
- package/dist/value-objects/index.js.map +1 -0
- package/dist/value-objects/media/audio.d.ts +8 -0
- package/dist/value-objects/media/audio.d.ts.map +1 -0
- package/dist/value-objects/media/audio.js +9 -0
- package/dist/value-objects/media/audio.js.map +1 -0
- package/dist/value-objects/media/document.d.ts +44 -0
- package/dist/value-objects/media/document.d.ts.map +1 -0
- package/dist/value-objects/media/document.js +75 -0
- package/dist/value-objects/media/document.js.map +1 -0
- package/dist/value-objects/media/image.d.ts +13 -0
- package/dist/value-objects/media/image.d.ts.map +1 -0
- package/dist/value-objects/media/image.js +14 -0
- package/dist/value-objects/media/image.js.map +1 -0
- package/dist/value-objects/media/media.d.ts +119 -0
- package/dist/value-objects/media/media.d.ts.map +1 -0
- package/dist/value-objects/media/media.js +267 -0
- package/dist/value-objects/media/media.js.map +1 -0
- package/dist/value-objects/media/part.d.ts +25 -0
- package/dist/value-objects/media/part.d.ts.map +1 -0
- package/dist/value-objects/media/part.js +41 -0
- package/dist/value-objects/media/part.js.map +1 -0
- package/dist/value-objects/media/text.d.ts +24 -0
- package/dist/value-objects/media/text.d.ts.map +1 -0
- package/dist/value-objects/media/text.js +33 -0
- package/dist/value-objects/media/text.js.map +1 -0
- package/dist/value-objects/media/video.d.ts +7 -0
- package/dist/value-objects/media/video.d.ts.map +1 -0
- package/dist/value-objects/media/video.js +8 -0
- package/dist/value-objects/media/video.js.map +1 -0
- package/dist/value-objects/messages/assistant-message.d.ts +26 -0
- package/dist/value-objects/messages/assistant-message.d.ts.map +1 -0
- package/dist/value-objects/messages/assistant-message.js +37 -0
- package/dist/value-objects/messages/assistant-message.js.map +1 -0
- package/dist/value-objects/messages/index.d.ts +27 -0
- package/dist/value-objects/messages/index.d.ts.map +1 -0
- package/dist/value-objects/messages/index.js +32 -0
- package/dist/value-objects/messages/index.js.map +1 -0
- package/dist/value-objects/messages/system-message.d.ts +9 -0
- package/dist/value-objects/messages/system-message.d.ts.map +1 -0
- package/dist/value-objects/messages/system-message.js +17 -0
- package/dist/value-objects/messages/system-message.js.map +1 -0
- package/dist/value-objects/messages/tool-result-message.d.ts +14 -0
- package/dist/value-objects/messages/tool-result-message.d.ts.map +1 -0
- package/dist/value-objects/messages/tool-result-message.js +26 -0
- package/dist/value-objects/messages/tool-result-message.js.map +1 -0
- package/dist/value-objects/messages/user-message.d.ts +47 -0
- package/dist/value-objects/messages/user-message.d.ts.map +1 -0
- package/dist/value-objects/messages/user-message.js +87 -0
- package/dist/value-objects/messages/user-message.js.map +1 -0
- package/dist/value-objects/meta.d.ts +12 -0
- package/dist/value-objects/meta.d.ts.map +1 -0
- package/dist/value-objects/meta.js +28 -0
- package/dist/value-objects/meta.js.map +1 -0
- package/dist/value-objects/moderation-result.d.ts +20 -0
- package/dist/value-objects/moderation-result.d.ts.map +1 -0
- package/dist/value-objects/moderation-result.js +64 -0
- package/dist/value-objects/moderation-result.js.map +1 -0
- package/dist/value-objects/provider-rate-limit.d.ts +11 -0
- package/dist/value-objects/provider-rate-limit.d.ts.map +1 -0
- package/dist/value-objects/provider-rate-limit.js +34 -0
- package/dist/value-objects/provider-rate-limit.js.map +1 -0
- package/dist/value-objects/provider-tool.d.ts +19 -0
- package/dist/value-objects/provider-tool.d.ts.map +1 -0
- package/dist/value-objects/provider-tool.js +31 -0
- package/dist/value-objects/provider-tool.js.map +1 -0
- package/dist/value-objects/tool-call.d.ts +29 -0
- package/dist/value-objects/tool-call.d.ts.map +1 -0
- package/dist/value-objects/tool-call.js +112 -0
- package/dist/value-objects/tool-call.js.map +1 -0
- package/dist/value-objects/tool-result.d.ts +25 -0
- package/dist/value-objects/tool-result.d.ts.map +1 -0
- package/dist/value-objects/tool-result.js +45 -0
- package/dist/value-objects/tool-result.js.map +1 -0
- package/dist/value-objects/usage.d.ts +13 -0
- package/dist/value-objects/usage.d.ts.map +1 -0
- package/dist/value-objects/usage.js +31 -0
- package/dist/value-objects/usage.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comparing an HTTP field name the way HTTP defines it: without regard to case.
|
|
3
|
+
*
|
|
4
|
+
* Field names are case-insensitive (RFC 9110 §5.1), and a gateway that
|
|
5
|
+
* title-cases them is ordinary rather than hostile. Every rate-limit reader
|
|
6
|
+
* here looks its headers up as exact object keys, so a single such proxy in
|
|
7
|
+
* front of the provider made `parseRateLimits` return an EMPTY ARRAY — which is
|
|
8
|
+
* also exactly what a response that legitimately carried no quota headers looks
|
|
9
|
+
* like. The failure was therefore invisible when it happened and permanent
|
|
10
|
+
* afterwards.
|
|
11
|
+
*
|
|
12
|
+
* **The fold is deliberately ASCII-only, and that is the whole subtlety here.**
|
|
13
|
+
* `String.prototype.toLowerCase()` is Unicode-aware: `K` (U+212A KELVIN SIGN)
|
|
14
|
+
* folds to a plain `k`, so `anthropic-ratelimit-to<U+212A>ens-limit` would come
|
|
15
|
+
* back as a bucket named `tokens` — the name a caller matches on to decide
|
|
16
|
+
* whether it has token quota left, manufactured from a header the provider
|
|
17
|
+
* never sent. `İ` (U+0130) folds to TWO codepoints, changing the string's
|
|
18
|
+
* length under the offset arithmetic that splits a bucket from a field.
|
|
19
|
+
*
|
|
20
|
+
* An HTTP field name is a `token` — ASCII by grammar — so a codepoint range
|
|
21
|
+
* over the 26 ASCII letters is both the correct fold and the only one the
|
|
22
|
+
* sibling ports (`prism`, `prism-py`) can reproduce byte for byte.
|
|
23
|
+
*/
|
|
24
|
+
/** One field name, folded to lower case as ASCII and nothing else. */
|
|
25
|
+
export function foldHeaderName(name) {
|
|
26
|
+
return name.replace(/[A-Z]/g, (letter) => String.fromCharCode(letter.charCodeAt(0) + 32));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* A header map re-keyed by folded name, values untouched.
|
|
30
|
+
*
|
|
31
|
+
* Insertion order survives, because a reader that names its buckets in header
|
|
32
|
+
* order would otherwise hand a caller reading `rateLimits[0]` a different
|
|
33
|
+
* bucket — a divergence nothing errors on. Later duplicates win, which is the
|
|
34
|
+
* answer a case-insensitive lookup would give for a name a server spelled two
|
|
35
|
+
* ways in one response.
|
|
36
|
+
*/
|
|
37
|
+
export function foldHeaderNames(headers) {
|
|
38
|
+
const folded = {};
|
|
39
|
+
for (const [name, value] of Object.entries(headers)) {
|
|
40
|
+
folded[foldHeaderName(name)] = value;
|
|
41
|
+
}
|
|
42
|
+
return folded;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=header-names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"header-names.js","sourceRoot":"","sources":["../../src/http/header-names.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAyC;IAEzC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The seam between a provider and the network.
|
|
3
|
+
*
|
|
4
|
+
* Providers never call `fetch` directly — they call a `HttpTransport`. That is
|
|
5
|
+
* what lets a test drive a provider end to end without a network, and what lets
|
|
6
|
+
* an application wrap every call in its own retry, proxy or instrumentation.
|
|
7
|
+
*/
|
|
8
|
+
export interface HttpRequest {
|
|
9
|
+
url: string;
|
|
10
|
+
method: string;
|
|
11
|
+
headers: Readonly<Record<string, string>>;
|
|
12
|
+
/** Already-serialized canonical JSON. */
|
|
13
|
+
body: string;
|
|
14
|
+
/** Whatever `withClientOptions()` was given, passed through untouched. */
|
|
15
|
+
clientOptions: Readonly<Record<string, unknown>>;
|
|
16
|
+
}
|
|
17
|
+
export interface HttpResponse {
|
|
18
|
+
status: number;
|
|
19
|
+
/** Header names lowercased. */
|
|
20
|
+
headers: Readonly<Record<string, string>>;
|
|
21
|
+
/** The parsed JSON body, or `null` when the body was empty or not JSON. */
|
|
22
|
+
body: unknown;
|
|
23
|
+
/** The body as text, kept for error reporting. */
|
|
24
|
+
rawBody: string;
|
|
25
|
+
}
|
|
26
|
+
export type HttpTransport = (request: HttpRequest) => Promise<HttpResponse>;
|
|
27
|
+
/** The default transport: `fetch`, available as a global from Node 18. */
|
|
28
|
+
export declare const fetchTransport: HttpTransport;
|
|
29
|
+
/**
|
|
30
|
+
* A response whose body arrives in pieces.
|
|
31
|
+
*
|
|
32
|
+
* Separate from `HttpResponse` rather than a mode of it, because the two have
|
|
33
|
+
* genuinely different contracts: one has a body you can read twice, the other
|
|
34
|
+
* has a body you can read once. Modelling them as one type would let a caller
|
|
35
|
+
* hold a `body` that is sometimes a string and sometimes already consumed.
|
|
36
|
+
*
|
|
37
|
+
* The chunks are whatever the network handed over — NOT lines and NOT events. A
|
|
38
|
+
* transport that promised lines would have to buffer, and buffering is where
|
|
39
|
+
* streaming bugs live; the parser owns reassembly instead, where it can be
|
|
40
|
+
* tested with payloads split at deliberately awkward places.
|
|
41
|
+
*/
|
|
42
|
+
export interface HttpStreamResponse {
|
|
43
|
+
status: number;
|
|
44
|
+
/** Header names lowercased. */
|
|
45
|
+
headers: Readonly<Record<string, string>>;
|
|
46
|
+
chunks: AsyncIterable<string>;
|
|
47
|
+
}
|
|
48
|
+
export type HttpStreamTransport = (request: HttpRequest) => Promise<HttpStreamResponse>;
|
|
49
|
+
/** The default streaming transport: `fetch`, reading the body as it arrives. */
|
|
50
|
+
export declare const fetchStreamTransport: HttpStreamTransport;
|
|
51
|
+
/**
|
|
52
|
+
* A file being uploaded as part of a multipart request.
|
|
53
|
+
*
|
|
54
|
+
* `bytes` rather than a path: the transport should not be reading the disk. By
|
|
55
|
+
* the time a request reaches it, whatever named the file has already decided
|
|
56
|
+
* whether it exists — which keeps a "file not found" attributable to the caller
|
|
57
|
+
* that named it rather than surfacing from inside the network layer.
|
|
58
|
+
*/
|
|
59
|
+
export interface MultipartFile {
|
|
60
|
+
field: string;
|
|
61
|
+
filename: string;
|
|
62
|
+
bytes: Uint8Array;
|
|
63
|
+
contentType?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A request whose body is a multipart form rather than JSON.
|
|
67
|
+
*
|
|
68
|
+
* Separate from the JSON `body` rather than a union on it, so a provider cannot
|
|
69
|
+
* accidentally send both and a transport cannot silently prefer one. Exactly one
|
|
70
|
+
* of `body` and `multipart` is meaningful for any request.
|
|
71
|
+
*/
|
|
72
|
+
export interface MultipartBody {
|
|
73
|
+
fields: Readonly<Record<string, string>>;
|
|
74
|
+
files: readonly MultipartFile[];
|
|
75
|
+
}
|
|
76
|
+
export interface HttpBinaryResponse {
|
|
77
|
+
status: number;
|
|
78
|
+
/** Header names lowercased. */
|
|
79
|
+
headers: Readonly<Record<string, string>>;
|
|
80
|
+
bytes: Uint8Array;
|
|
81
|
+
}
|
|
82
|
+
export type HttpBinaryTransport = (request: HttpRequest & {
|
|
83
|
+
multipart?: MultipartBody;
|
|
84
|
+
}) => Promise<HttpBinaryResponse>;
|
|
85
|
+
/**
|
|
86
|
+
* The default binary transport.
|
|
87
|
+
*
|
|
88
|
+
* Reads the whole body into memory, which is right for the payloads this serves
|
|
89
|
+
* — a spoken sentence is measured in kilobytes — and would be wrong for a large
|
|
90
|
+
* file. When something needs to stream audio out, that is a different transport
|
|
91
|
+
* rather than a flag on this one.
|
|
92
|
+
*/
|
|
93
|
+
export declare const fetchBinaryTransport: HttpBinaryTransport;
|
|
94
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/http/transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,2EAA2E;IAC3E,IAAI,EAAE,OAAO,CAAC;IACd,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;AAE5E,0EAA0E;AAC1E,eAAO,MAAM,cAAc,EAAE,aAqB5B,CAAC;AAcF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAExF,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,EAAE,mBAiBlC,CAAC;AAmCF;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,WAAW,GAAG;IAAE,SAAS,CAAC,EAAE,aAAa,CAAA;CAAE,KACjD,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,mBAqDlC,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The seam between a provider and the network.
|
|
3
|
+
*
|
|
4
|
+
* Providers never call `fetch` directly — they call a `HttpTransport`. That is
|
|
5
|
+
* what lets a test drive a provider end to end without a network, and what lets
|
|
6
|
+
* an application wrap every call in its own retry, proxy or instrumentation.
|
|
7
|
+
*/
|
|
8
|
+
import { foldHeaderName } from './header-names.js';
|
|
9
|
+
/** The default transport: `fetch`, available as a global from Node 18. */
|
|
10
|
+
export const fetchTransport = async (request) => {
|
|
11
|
+
const response = await fetch(request.url, {
|
|
12
|
+
method: request.method,
|
|
13
|
+
headers: { ...request.headers },
|
|
14
|
+
body: request.body,
|
|
15
|
+
...request.clientOptions,
|
|
16
|
+
});
|
|
17
|
+
const rawBody = await response.text();
|
|
18
|
+
const headers = {};
|
|
19
|
+
response.headers.forEach((value, name) => {
|
|
20
|
+
headers[foldHeaderName(name)] = value;
|
|
21
|
+
});
|
|
22
|
+
return {
|
|
23
|
+
status: response.status,
|
|
24
|
+
headers,
|
|
25
|
+
body: parseJson(rawBody),
|
|
26
|
+
rawBody,
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
function parseJson(body) {
|
|
30
|
+
if (body === '') {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
return JSON.parse(body);
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** The default streaming transport: `fetch`, reading the body as it arrives. */
|
|
41
|
+
export const fetchStreamTransport = async (request) => {
|
|
42
|
+
const response = await fetch(request.url, {
|
|
43
|
+
method: request.method,
|
|
44
|
+
headers: { ...request.headers },
|
|
45
|
+
body: request.body,
|
|
46
|
+
...request.clientOptions,
|
|
47
|
+
});
|
|
48
|
+
const headers = {};
|
|
49
|
+
response.headers.forEach((value, name) => {
|
|
50
|
+
headers[foldHeaderName(name)] = value;
|
|
51
|
+
});
|
|
52
|
+
return { status: response.status, headers, chunks: readChunks(response) };
|
|
53
|
+
};
|
|
54
|
+
async function* readChunks(response) {
|
|
55
|
+
if (response.body === null) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const decoder = new TextDecoder();
|
|
59
|
+
const reader = response.body.getReader();
|
|
60
|
+
try {
|
|
61
|
+
for (;;) {
|
|
62
|
+
const { done, value } = await reader.read();
|
|
63
|
+
if (done) {
|
|
64
|
+
// Flush whatever the decoder is holding: a multi-byte character split
|
|
65
|
+
// across two network chunks is only complete once the stream ends.
|
|
66
|
+
const tail = decoder.decode();
|
|
67
|
+
if (tail !== '') {
|
|
68
|
+
yield tail;
|
|
69
|
+
}
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
yield decoder.decode(value, { stream: true });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
// Releases the lock even when the consumer abandons the generator, which
|
|
77
|
+
// is the ordinary case for a browser that navigated away mid-answer.
|
|
78
|
+
reader.releaseLock();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The default binary transport.
|
|
83
|
+
*
|
|
84
|
+
* Reads the whole body into memory, which is right for the payloads this serves
|
|
85
|
+
* — a spoken sentence is measured in kilobytes — and would be wrong for a large
|
|
86
|
+
* file. When something needs to stream audio out, that is a different transport
|
|
87
|
+
* rather than a flag on this one.
|
|
88
|
+
*/
|
|
89
|
+
export const fetchBinaryTransport = async (request) => {
|
|
90
|
+
const headers = { ...request.headers };
|
|
91
|
+
let body = request.body;
|
|
92
|
+
if (request.multipart !== undefined) {
|
|
93
|
+
const form = new FormData();
|
|
94
|
+
for (const [name, value] of Object.entries(request.multipart.fields)) {
|
|
95
|
+
form.append(name, value);
|
|
96
|
+
}
|
|
97
|
+
for (const file of request.multipart.files) {
|
|
98
|
+
form.append(file.field,
|
|
99
|
+
// Copied into a fresh ArrayBuffer. A Uint8Array can be a VIEW over a
|
|
100
|
+
// larger buffer — one slice of a pooled Node Buffer, say — and Blob
|
|
101
|
+
// takes the whole backing store, so handing the view straight over can
|
|
102
|
+
// upload bytes that were never part of this file.
|
|
103
|
+
new Blob([new Uint8Array(file.bytes).buffer], {
|
|
104
|
+
type: file.contentType ?? 'application/octet-stream',
|
|
105
|
+
}), file.filename);
|
|
106
|
+
}
|
|
107
|
+
body = form;
|
|
108
|
+
// DELETED, not overwritten. `fetch` sets the multipart boundary itself, and
|
|
109
|
+
// a Content-Type left behind from the JSON path arrives without one — which
|
|
110
|
+
// a server reads as a malformed body rather than as a missing boundary, so
|
|
111
|
+
// the error names the wrong thing.
|
|
112
|
+
delete headers['Content-Type'];
|
|
113
|
+
delete headers['content-type'];
|
|
114
|
+
}
|
|
115
|
+
const response = await fetch(request.url, {
|
|
116
|
+
method: request.method,
|
|
117
|
+
headers,
|
|
118
|
+
body,
|
|
119
|
+
...request.clientOptions,
|
|
120
|
+
});
|
|
121
|
+
const responseHeaders = {};
|
|
122
|
+
response.headers.forEach((value, name) => {
|
|
123
|
+
responseHeaders[foldHeaderName(name)] = value;
|
|
124
|
+
});
|
|
125
|
+
return {
|
|
126
|
+
status: response.status,
|
|
127
|
+
headers: responseHeaders,
|
|
128
|
+
bytes: new Uint8Array(await response.arrayBuffer()),
|
|
129
|
+
};
|
|
130
|
+
};
|
|
131
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/http/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { JsonObject } from '../json.js';
|
|
2
|
+
import type { Provider } from '../providers/provider.js';
|
|
3
|
+
import { ImagesRequest } from './request.js';
|
|
4
|
+
import type { ImagesResponse } from './response.js';
|
|
5
|
+
/**
|
|
6
|
+
* The fluent builder for image generation.
|
|
7
|
+
*
|
|
8
|
+
* Like the embeddings builder and unlike the structured one, it does not extend
|
|
9
|
+
* the text builder: an image request has no messages, no tools and no step
|
|
10
|
+
* budget, and inheriting those would advertise controls that do nothing.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ImagesPendingRequest {
|
|
13
|
+
#private;
|
|
14
|
+
using(provider: string, model?: string, providerConfig?: Record<string, unknown>): this;
|
|
15
|
+
/** REPLACES. An image request has one prompt, not a conversation. */
|
|
16
|
+
withPrompt(prompt: string): this;
|
|
17
|
+
withProviderOptions(options?: Readonly<JsonObject>): this;
|
|
18
|
+
withClientOptions(options: Record<string, unknown>): this;
|
|
19
|
+
provider(): Provider;
|
|
20
|
+
/**
|
|
21
|
+
* @throws PrismError code `no_image_prompt` when none was set.
|
|
22
|
+
*
|
|
23
|
+
* Absence, not emptiness: `withPrompt('')` is refused by the provider with
|
|
24
|
+
* its own message, which is more useful than one invented here. What this
|
|
25
|
+
* catches is the caller who forgot the line entirely.
|
|
26
|
+
*/
|
|
27
|
+
toRequest(): ImagesRequest;
|
|
28
|
+
generate(): Promise<ImagesResponse>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=pending-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-request.d.ts","sourceRoot":"","sources":["../../src/images/pending-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;GAMG;AACH,qBAAa,oBAAoB;;IAa/B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,EAAE,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IAQvF,qEAAqE;IACrE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMhC,mBAAmB,CAAC,OAAO,GAAE,QAAQ,CAAC,UAAU,CAAM,GAAG,IAAI;IAM7D,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMzD,QAAQ,IAAI,QAAQ;IAWpB;;;;;;OAMG;IACH,SAAS,IAAI,aAAa;IAcpB,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;CAG1C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { PrismError } from '../errors.js';
|
|
2
|
+
import { resolveProvider } from '../providers/registry.js';
|
|
3
|
+
import { ImagesRequest } from './request.js';
|
|
4
|
+
/**
|
|
5
|
+
* The fluent builder for image generation.
|
|
6
|
+
*
|
|
7
|
+
* Like the embeddings builder and unlike the structured one, it does not extend
|
|
8
|
+
* the text builder: an image request has no messages, no tools and no step
|
|
9
|
+
* budget, and inheriting those would advertise controls that do nothing.
|
|
10
|
+
*/
|
|
11
|
+
export class ImagesPendingRequest {
|
|
12
|
+
#provider = null;
|
|
13
|
+
#providerKey = '';
|
|
14
|
+
#model = '';
|
|
15
|
+
#prompt = null;
|
|
16
|
+
#providerOptions = {};
|
|
17
|
+
#clientOptions = {};
|
|
18
|
+
using(provider, model = '', providerConfig = {}) {
|
|
19
|
+
this.#providerKey = provider;
|
|
20
|
+
this.#model = model;
|
|
21
|
+
this.#provider = resolveProvider(provider, providerConfig);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
/** REPLACES. An image request has one prompt, not a conversation. */
|
|
25
|
+
withPrompt(prompt) {
|
|
26
|
+
this.#prompt = prompt;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
withProviderOptions(options = {}) {
|
|
30
|
+
this.#providerOptions = { ...options };
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
withClientOptions(options) {
|
|
34
|
+
this.#clientOptions = { ...options };
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
provider() {
|
|
38
|
+
if (this.#provider === null) {
|
|
39
|
+
throw PrismError.unsupportedProviderAction('Sending a request', 'a pending request with no provider — call using() first');
|
|
40
|
+
}
|
|
41
|
+
return this.#provider;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @throws PrismError code `no_image_prompt` when none was set.
|
|
45
|
+
*
|
|
46
|
+
* Absence, not emptiness: `withPrompt('')` is refused by the provider with
|
|
47
|
+
* its own message, which is more useful than one invented here. What this
|
|
48
|
+
* catches is the caller who forgot the line entirely.
|
|
49
|
+
*/
|
|
50
|
+
toRequest() {
|
|
51
|
+
if (this.#prompt === null) {
|
|
52
|
+
throw PrismError.noImagePrompt();
|
|
53
|
+
}
|
|
54
|
+
return new ImagesRequest({
|
|
55
|
+
model: this.#model,
|
|
56
|
+
providerKey: this.#providerKey,
|
|
57
|
+
prompt: this.#prompt,
|
|
58
|
+
clientOptions: this.#clientOptions,
|
|
59
|
+
providerOptions: this.#providerOptions,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
async generate() {
|
|
63
|
+
return this.provider().images(this.toRequest());
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=pending-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pending-request.js","sourceRoot":"","sources":["../../src/images/pending-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;;;GAMG;AACH,MAAM,OAAO,oBAAoB;IAC/B,SAAS,GAAoB,IAAI,CAAC;IAElC,YAAY,GAAG,EAAE,CAAC;IAElB,MAAM,GAAG,EAAE,CAAC;IAEZ,OAAO,GAAkB,IAAI,CAAC;IAE9B,gBAAgB,GAAe,EAAE,CAAC;IAElC,cAAc,GAA4B,EAAE,CAAC;IAE7C,KAAK,CAAC,QAAgB,EAAE,KAAK,GAAG,EAAE,EAAE,iBAA0C,EAAE;QAC9E,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAE3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qEAAqE;IACrE,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,UAAgC,EAAE;QACpD,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAEvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB,CAAC,OAAgC;QAChD,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAErC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ;QACN,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,UAAU,CAAC,yBAAyB,CACxC,mBAAmB,EACnB,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACH,SAAS;QACP,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,UAAU,CAAC,aAAa,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,aAAa,CAAC;YACvB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,eAAe,EAAE,IAAI,CAAC,gBAAgB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { JsonObject, JsonValue } from '../json.js';
|
|
2
|
+
export interface ImagesRequestOptions {
|
|
3
|
+
model: string;
|
|
4
|
+
providerKey: string;
|
|
5
|
+
prompt: string;
|
|
6
|
+
clientOptions?: Readonly<Record<string, unknown>>;
|
|
7
|
+
providerOptions?: Readonly<JsonObject>;
|
|
8
|
+
}
|
|
9
|
+
export declare class ImagesRequest {
|
|
10
|
+
#private;
|
|
11
|
+
constructor(options: ImagesRequestOptions);
|
|
12
|
+
model(): string;
|
|
13
|
+
providerKey(): string;
|
|
14
|
+
prompt(): string;
|
|
15
|
+
clientOptions(): Readonly<Record<string, unknown>>;
|
|
16
|
+
providerOptions(): JsonObject;
|
|
17
|
+
providerOptions(path: string): JsonValue | undefined;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/images/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;CACxC;AAED,qBAAa,aAAa;;gBAWZ,OAAO,EAAE,oBAAoB;IAQzC,KAAK,IAAI,MAAM;IAIf,WAAW,IAAI,MAAM;IAIrB,MAAM,IAAI,MAAM;IAIhB,aAAa,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIlD,eAAe,IAAI,UAAU;IAC7B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;CAIrD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class ImagesRequest {
|
|
2
|
+
#model;
|
|
3
|
+
#providerKey;
|
|
4
|
+
#prompt;
|
|
5
|
+
#clientOptions;
|
|
6
|
+
#providerOptions;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.#model = options.model;
|
|
9
|
+
this.#providerKey = options.providerKey;
|
|
10
|
+
this.#prompt = options.prompt;
|
|
11
|
+
this.#clientOptions = options.clientOptions ?? {};
|
|
12
|
+
this.#providerOptions = { ...(options.providerOptions ?? {}) };
|
|
13
|
+
}
|
|
14
|
+
model() {
|
|
15
|
+
return this.#model;
|
|
16
|
+
}
|
|
17
|
+
providerKey() {
|
|
18
|
+
return this.#providerKey;
|
|
19
|
+
}
|
|
20
|
+
prompt() {
|
|
21
|
+
return this.#prompt;
|
|
22
|
+
}
|
|
23
|
+
clientOptions() {
|
|
24
|
+
return this.#clientOptions;
|
|
25
|
+
}
|
|
26
|
+
providerOptions(path) {
|
|
27
|
+
return path === undefined ? this.#providerOptions : this.#providerOptions[path];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/images/request.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,aAAa;IACf,MAAM,CAAS;IAEf,YAAY,CAAS;IAErB,OAAO,CAAS;IAEhB,cAAc,CAAoC;IAElD,gBAAgB,CAAa;IAEtC,YAAY,OAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAID,eAAe,CAAC,IAAa;QAC3B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClF,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { JsonObject } from '../json.js';
|
|
2
|
+
import type { GeneratedImage } from '../value-objects/generated-image.js';
|
|
3
|
+
import type { Meta } from '../value-objects/meta.js';
|
|
4
|
+
import type { Usage } from '../value-objects/usage.js';
|
|
5
|
+
export interface ImagesResponseOptions {
|
|
6
|
+
images: readonly GeneratedImage[];
|
|
7
|
+
usage: Usage;
|
|
8
|
+
meta: Meta;
|
|
9
|
+
additionalContent?: Readonly<JsonObject>;
|
|
10
|
+
raw?: JsonObject | null;
|
|
11
|
+
}
|
|
12
|
+
export declare class ImagesResponse {
|
|
13
|
+
readonly images: readonly GeneratedImage[];
|
|
14
|
+
readonly usage: Usage;
|
|
15
|
+
readonly meta: Meta;
|
|
16
|
+
readonly additionalContent: Readonly<JsonObject>;
|
|
17
|
+
readonly raw: JsonObject | null;
|
|
18
|
+
constructor(options: ImagesResponseOptions);
|
|
19
|
+
/**
|
|
20
|
+
* The first image, or null.
|
|
21
|
+
*
|
|
22
|
+
* Most callers ask for one image and want it without indexing. Nullable
|
|
23
|
+
* rather than throwing: a provider that returned none has answered, and the
|
|
24
|
+
* caller can see `raw` to find out why.
|
|
25
|
+
*/
|
|
26
|
+
firstImage(): GeneratedImage | null;
|
|
27
|
+
toObject(): JsonObject;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/images/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEvD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAClC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,iBAAiB,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACzC,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACzB;AAED,qBAAa,cAAc;IACzB,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAE3C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;gBAEpB,OAAO,EAAE,qBAAqB;IAQ1C;;;;;;OAMG;IACH,UAAU,IAAI,cAAc,GAAG,IAAI;IAInC,QAAQ,IAAI,UAAU;CASvB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export class ImagesResponse {
|
|
2
|
+
images;
|
|
3
|
+
usage;
|
|
4
|
+
meta;
|
|
5
|
+
additionalContent;
|
|
6
|
+
raw;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.images = options.images;
|
|
9
|
+
this.usage = options.usage;
|
|
10
|
+
this.meta = options.meta;
|
|
11
|
+
this.additionalContent = options.additionalContent ?? {};
|
|
12
|
+
this.raw = options.raw ?? null;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The first image, or null.
|
|
16
|
+
*
|
|
17
|
+
* Most callers ask for one image and want it without indexing. Nullable
|
|
18
|
+
* rather than throwing: a provider that returned none has answered, and the
|
|
19
|
+
* caller can see `raw` to find out why.
|
|
20
|
+
*/
|
|
21
|
+
firstImage() {
|
|
22
|
+
return this.images[0] ?? null;
|
|
23
|
+
}
|
|
24
|
+
toObject() {
|
|
25
|
+
return {
|
|
26
|
+
images: this.images.map((image) => image.toObject()),
|
|
27
|
+
usage: this.usage.toObject(),
|
|
28
|
+
meta: this.meta.toObject(),
|
|
29
|
+
additional_content: { ...this.additionalContent },
|
|
30
|
+
raw: this.raw === null ? null : { ...this.raw },
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/images/response.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,cAAc;IAChB,MAAM,CAA4B;IAElC,KAAK,CAAQ;IAEb,IAAI,CAAO;IAEX,iBAAiB,CAAuB;IAExC,GAAG,CAAoB;IAEhC,YAAY,OAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACzD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChC,CAAC;IAED,QAAQ;QACN,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC1B,kBAAkB,EAAE,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACjD,GAAG,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;SAChD,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
export { Prism } from './prism.js';
|
|
2
|
+
export { PrismError } from './errors.js';
|
|
3
|
+
export type { PrismErrorCode, PrismErrorOptions } from './errors.js';
|
|
4
|
+
export { FinishReason, StructuredMode, ToolChoice, finishReasonFromValue, toolChoiceFromName } from './enums.js';
|
|
5
|
+
export { Tool } from './tool.js';
|
|
6
|
+
export type { ToolHandler } from './tool.js';
|
|
7
|
+
export { BooleanSchema, NumberSchema, StringSchema } from './schema/index.js';
|
|
8
|
+
export type { BooleanSchemaOptions, NumberSchemaOptions, Schema, StringSchemaOptions } from './schema/index.js';
|
|
9
|
+
export { Artifact, AssistantMessage, Meta, ProviderRateLimit, ProviderTool, SystemMessage, Text, ToolCall, ToolResult, ToolResultMessage, Usage, UserMessage, messageFromObject, } from './value-objects/index.js';
|
|
10
|
+
export type { Message, MessageType, ToolCallArguments, ToolResultValue } from './value-objects/index.js';
|
|
11
|
+
export { TextPendingRequest } from './text/pending-request.js';
|
|
12
|
+
export type { TextResponseCallback } from './text/pending-request.js';
|
|
13
|
+
export { TextRequest } from './text/request.js';
|
|
14
|
+
export type { TextRequestOptions } from './text/request.js';
|
|
15
|
+
export { TextResponse } from './text/response.js';
|
|
16
|
+
export type { TextResponseOptions } from './text/response.js';
|
|
17
|
+
export { TextStep } from './text/step.js';
|
|
18
|
+
export type { TextStepOptions } from './text/step.js';
|
|
19
|
+
export { ResponseBuilder } from './text/response-builder.js';
|
|
20
|
+
export { Provider } from './providers/provider.js';
|
|
21
|
+
export { Anthropic } from './providers/anthropic/anthropic.js';
|
|
22
|
+
export type { AnthropicConfig } from './providers/anthropic/anthropic.js';
|
|
23
|
+
export { registerProvider, registeredProviders, resolveProvider } from './providers/registry.js';
|
|
24
|
+
export type { ProviderFactory } from './providers/registry.js';
|
|
25
|
+
export { OpenAI } from './providers/openai/openai.js';
|
|
26
|
+
export type { OpenAIConfig } from './providers/openai/openai.js';
|
|
27
|
+
export { buildRequestBody, buildTools } from './providers/openai/build-request-body.js';
|
|
28
|
+
export { parseTextResponse } from './providers/openai/parse-response.js';
|
|
29
|
+
export { parseTextResponse as parseAnthropicTextResponse } from './providers/anthropic/parse-response.js';
|
|
30
|
+
export type { ParseTextResponseOptions } from './providers/openai/parse-response.js';
|
|
31
|
+
export { mapMessages } from './providers/openai/maps/message-map.js';
|
|
32
|
+
export { mapTools } from './providers/openai/maps/tool-map.js';
|
|
33
|
+
export { mapToolChoice } from './providers/openai/maps/tool-choice-map.js';
|
|
34
|
+
export { lastOutputItem, mapFinishReason, mapFinishReasonFromOutput } from './providers/openai/maps/finish-reason-map.js';
|
|
35
|
+
export { parseRateLimits } from './providers/openai/rate-limits.js';
|
|
36
|
+
export { canonicalJson, getByPath, isJsonObject } from './json.js';
|
|
37
|
+
export type { JsonObject, JsonPrimitive, JsonValue } from './json.js';
|
|
38
|
+
export { fetchTransport } from './http/transport.js';
|
|
39
|
+
export type { HttpRequest, HttpResponse, HttpTransport } from './http/transport.js';
|
|
40
|
+
export { StructuredPendingRequest } from './structured/pending-request.js';
|
|
41
|
+
export type { StructuredResponseCallback } from './structured/pending-request.js';
|
|
42
|
+
export { StructuredRequest } from './structured/request.js';
|
|
43
|
+
export type { StructuredRequestOptions } from './structured/request.js';
|
|
44
|
+
export { StructuredResponse } from './structured/response.js';
|
|
45
|
+
export type { StructuredResponseOptions } from './structured/response.js';
|
|
46
|
+
export { extractStructured } from './structured/extract.js';
|
|
47
|
+
export { fetchStreamTransport } from './http/transport.js';
|
|
48
|
+
export type { HttpStreamResponse, HttpStreamTransport } from './http/transport.js';
|
|
49
|
+
export { ObjectSchema, ArraySchema, EnumSchema } from './schema/index.js';
|
|
50
|
+
export type { ObjectSchemaOptions, ArraySchemaOptions, EnumSchemaOptions } from './schema/index.js';
|
|
51
|
+
export { structuredFromTextResponse } from './structured/from-text.js';
|
|
52
|
+
export { sseData } from './streaming/sse.js';
|
|
53
|
+
export { ErrorEvent, StreamEndEvent, StreamEvent, StreamEventType, StreamStartEvent, TextCompleteEvent, TextDeltaEvent, TextStartEvent, ToolCallEvent, eventId, } from './streaming/events.js';
|
|
54
|
+
export { mapStreamEvent } from './providers/openai/stream-events.js';
|
|
55
|
+
export { EmbeddingsPendingRequest } from './embeddings/pending-request.js';
|
|
56
|
+
export { EmbeddingsRequest } from './embeddings/request.js';
|
|
57
|
+
export type { EmbeddingsRequestOptions } from './embeddings/request.js';
|
|
58
|
+
export { EmbeddingsResponse } from './embeddings/response.js';
|
|
59
|
+
export type { EmbeddingsResponseOptions } from './embeddings/response.js';
|
|
60
|
+
export { Embedding } from './value-objects/embedding.js';
|
|
61
|
+
export { EmbeddingsUsage } from './value-objects/embeddings-usage.js';
|
|
62
|
+
export { buildEmbeddingsBody, parseEmbeddingsResponse } from './providers/openai/embeddings.js';
|
|
63
|
+
export { ImagesPendingRequest } from './images/pending-request.js';
|
|
64
|
+
export { ImagesRequest } from './images/request.js';
|
|
65
|
+
export type { ImagesRequestOptions } from './images/request.js';
|
|
66
|
+
export { ImagesResponse } from './images/response.js';
|
|
67
|
+
export type { ImagesResponseOptions } from './images/response.js';
|
|
68
|
+
export { GeneratedImage } from './value-objects/generated-image.js';
|
|
69
|
+
export { buildImagesBody, parseImagesResponse } from './providers/openai/images.js';
|
|
70
|
+
export { ModerationPendingRequest } from './moderation/pending-request.js';
|
|
71
|
+
export { ModerationRequest } from './moderation/request.js';
|
|
72
|
+
export type { ModerationRequestOptions } from './moderation/request.js';
|
|
73
|
+
export { ModerationResponse } from './moderation/response.js';
|
|
74
|
+
export type { ModerationResponseOptions } from './moderation/response.js';
|
|
75
|
+
export { ModerationResult } from './value-objects/moderation-result.js';
|
|
76
|
+
export { buildModerationBody, parseModerationResponse } from './providers/openai/moderation.js';
|
|
77
|
+
export { Media, guessMimeType } from './value-objects/media/media.js';
|
|
78
|
+
export type { MediaKind } from './value-objects/media/media.js';
|
|
79
|
+
export { Image } from './value-objects/media/image.js';
|
|
80
|
+
export { Audio } from './value-objects/media/audio.js';
|
|
81
|
+
export { Document } from './value-objects/media/document.js';
|
|
82
|
+
export { Video } from './value-objects/media/video.js';
|
|
83
|
+
export { partFromObject } from './value-objects/media/part.js';
|
|
84
|
+
export type { MessagePart } from './value-objects/media/part.js';
|
|
85
|
+
export { AudioPendingRequest } from './audio/pending-request.js';
|
|
86
|
+
export { SpeechToTextRequest, TextToSpeechRequest } from './audio/request.js';
|
|
87
|
+
export { AudioResponse, AudioTextResponse } from './audio/response.js';
|
|
88
|
+
export { GeneratedAudio } from './value-objects/generated-audio.js';
|
|
89
|
+
export { fetchBinaryTransport } from './http/transport.js';
|
|
90
|
+
export type { HttpBinaryResponse, HttpBinaryTransport, MultipartBody, MultipartFile } from './http/transport.js';
|
|
91
|
+
export { buildSpeechBody, buildTranscriptionForm, parseSpeechResponse, parseTranscriptionResponse, } from './providers/openai/audio.js';
|
|
92
|
+
export { FilesPendingRequest } from './files/pending-request.js';
|
|
93
|
+
export { DeleteFileResult, FileData, FileListResult } from './files/file-data.js';
|
|
94
|
+
export { DeleteFileRequest, DownloadFileRequest, GetFileMetadataRequest, ListFilesRequest, UploadFileRequest, } from './files/request.js';
|
|
95
|
+
export { buildListQuery, buildUploadForm, parseDeleteResponse, parseFileData, parseFileListResponse, } from './providers/openai/files.js';
|
|
96
|
+
export { BatchPendingRequest } from './batch/pending-request.js';
|
|
97
|
+
export { BatchJob, BatchJobRequestCounts, BatchListResult, BatchResultItem, BatchResultStatus, BatchStatus, } from './batch/batch-job.js';
|
|
98
|
+
export type { BatchJobError } from './batch/batch-job.js';
|
|
99
|
+
export { BatchRequest, BatchRequestItem, CancelBatchRequest, GetBatchResultsRequest, ListBatchesRequest, RetrieveBatchRequest, } from './batch/request.js';
|
|
100
|
+
export { batchStatusFromValue, buildBatchBody, buildBatchInputFile, buildBatchListQuery, parseBatchJob, parseBatchListResponse, parseBatchResultItem, parseBatchResults, } from './providers/openai/batch.js';
|
|
101
|
+
export { FimPendingRequest } from './fim/pending-request.js';
|
|
102
|
+
export { FimRequest } from './fim/request.js';
|
|
103
|
+
export { FimResponse } from './fim/response.js';
|
|
104
|
+
export { Mistral } from './providers/mistral/mistral.js';
|
|
105
|
+
export type { MistralConfig } from './providers/mistral/mistral.js';
|
|
106
|
+
export { MistralStreamMapper } from './providers/mistral/stream-events.js';
|
|
107
|
+
export { buildFimBody, parseFimResponse } from './providers/mistral/fim.js';
|
|
108
|
+
//# sourceMappingURL=index.d.ts.map
|