@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,79 @@
|
|
|
1
|
+
import { isJsonObject } from '../../json.js';
|
|
2
|
+
import { finishReasonFromValue, FinishReason } from '../../enums.js';
|
|
3
|
+
import { ToolCall } from '../../value-objects/tool-call.js';
|
|
4
|
+
import { Usage } from '../../value-objects/usage.js';
|
|
5
|
+
import { ErrorEvent, StreamEndEvent, StreamStartEvent, TextCompleteEvent, TextDeltaEvent, TextStartEvent, ToolCallEvent, } from '../../streaming/events.js';
|
|
6
|
+
/**
|
|
7
|
+
* Map one OpenAI Responses SSE payload to zero or one port events.
|
|
8
|
+
*
|
|
9
|
+
* RETURNS NULL FOR ANYTHING IT DOES NOT RECOGNISE, on purpose. OpenAI adds
|
|
10
|
+
* event types without warning, and a mapper that threw on an unknown `type`
|
|
11
|
+
* would turn a provider's additive change into an outage for every consumer.
|
|
12
|
+
* A stream that silently ignores an event it cannot use still delivers the
|
|
13
|
+
* text; one that throws delivers nothing.
|
|
14
|
+
*/
|
|
15
|
+
export function mapStreamEvent(payload) {
|
|
16
|
+
const type = typeof payload.type === 'string' ? payload.type : '';
|
|
17
|
+
switch (type) {
|
|
18
|
+
case 'response.created':
|
|
19
|
+
return new StreamStartEvent(readModel(payload));
|
|
20
|
+
case 'response.output_item.added':
|
|
21
|
+
return new TextStartEvent(readString(payload.item_id) || readString(payload.id));
|
|
22
|
+
case 'response.output_text.delta':
|
|
23
|
+
return new TextDeltaEvent(readString(payload.delta), readString(payload.item_id));
|
|
24
|
+
case 'response.output_text.done':
|
|
25
|
+
return new TextCompleteEvent(readString(payload.text), readString(payload.item_id));
|
|
26
|
+
case 'response.output_item.done':
|
|
27
|
+
return toolCallEvent(payload);
|
|
28
|
+
case 'error':
|
|
29
|
+
case 'response.failed':
|
|
30
|
+
return new ErrorEvent(readString(readObject(payload.error)?.code) || 'unknown_error', readString(readObject(payload.error)?.message) || 'The provider reported an error mid-stream.');
|
|
31
|
+
case 'response.completed':
|
|
32
|
+
case 'response.incomplete':
|
|
33
|
+
return new StreamEndEvent(finishReason(payload), usage(payload));
|
|
34
|
+
default:
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function toolCallEvent(payload) {
|
|
39
|
+
const item = readObject(payload.item);
|
|
40
|
+
// Only function calls become tool-call events. `output_item.done` also closes
|
|
41
|
+
// ordinary message items, and treating those as tool calls would invent one
|
|
42
|
+
// per assistant turn.
|
|
43
|
+
if (item === null || item.type !== 'function_call') {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return new ToolCallEvent(new ToolCall(readString(item.call_id) || readString(item.id), readString(item.name), readString(item.arguments)), readString(payload.item_id) || readString(item.id));
|
|
47
|
+
}
|
|
48
|
+
function finishReason(payload) {
|
|
49
|
+
const response = readObject(payload.response);
|
|
50
|
+
const incomplete = readObject(response?.incomplete_details);
|
|
51
|
+
// `incomplete` carries its own reason; the response status does not say why.
|
|
52
|
+
if (incomplete !== null && readString(incomplete.reason) === 'max_output_tokens') {
|
|
53
|
+
return FinishReason.Length;
|
|
54
|
+
}
|
|
55
|
+
return response === null ? FinishReason.Stop : finishReasonFromValue(mapStatus(readString(response.status)));
|
|
56
|
+
}
|
|
57
|
+
function mapStatus(status) {
|
|
58
|
+
return status === 'completed' ? 'stop' : status === 'incomplete' ? 'length' : 'unknown';
|
|
59
|
+
}
|
|
60
|
+
function usage(payload) {
|
|
61
|
+
const raw = readObject(readObject(payload.response)?.usage);
|
|
62
|
+
if (raw === null) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return new Usage(readNumber(raw.input_tokens), readNumber(raw.output_tokens));
|
|
66
|
+
}
|
|
67
|
+
function readModel(payload) {
|
|
68
|
+
return readString(readObject(payload.response)?.model) || readString(payload.model);
|
|
69
|
+
}
|
|
70
|
+
function readObject(value) {
|
|
71
|
+
return isJsonObject(value) ? value : null;
|
|
72
|
+
}
|
|
73
|
+
function readString(value) {
|
|
74
|
+
return typeof value === 'string' ? value : '';
|
|
75
|
+
}
|
|
76
|
+
function readNumber(value) {
|
|
77
|
+
return typeof value === 'number' ? value : 0;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=stream-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-events.js","sourceRoot":"","sources":["../../../src/providers/openai/stream-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-mode-resolver.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/structured-mode-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAwBhD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAQnE"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PrismError } from '../../errors.js';
|
|
2
|
+
import { StructuredMode } from '../../enums.js';
|
|
3
|
+
/**
|
|
4
|
+
* Which structured method a model can actually honour.
|
|
5
|
+
*
|
|
6
|
+
* CAPABILITY INFERRED FROM THE MODEL NAME, which is a compromise worth naming
|
|
7
|
+
* rather than hiding: OpenAI publishes no endpoint that answers "does this model
|
|
8
|
+
* support strict schemas", so the reference matches prefixes, and so does this.
|
|
9
|
+
* The cost is that a model released tomorrow is treated as JSON-only until this
|
|
10
|
+
* list learns about it — a conservative failure, but a failure.
|
|
11
|
+
*
|
|
12
|
+
* prism-provider-watch treats changes to this list as actionable drift for
|
|
13
|
+
* exactly that reason.
|
|
14
|
+
*/
|
|
15
|
+
const STRUCTURED_PREFIXES = ['gpt-4o', 'gpt-4.1', 'gpt-4.5', 'gpt-5', 'chatgpt-4o', 'o3-mini'];
|
|
16
|
+
/** Models that cannot do structured output at all, by exact name. */
|
|
17
|
+
const UNSUPPORTED = [
|
|
18
|
+
'o1-mini',
|
|
19
|
+
'o1-mini-2024-09-12',
|
|
20
|
+
'o1-preview',
|
|
21
|
+
'o1-preview-2024-09-12',
|
|
22
|
+
];
|
|
23
|
+
export function resolveStructuredMode(model) {
|
|
24
|
+
const base = resolveBaseModel(model);
|
|
25
|
+
if (UNSUPPORTED.includes(base)) {
|
|
26
|
+
throw PrismError.unsupportedStructuredModel(model);
|
|
27
|
+
}
|
|
28
|
+
return STRUCTURED_PREFIXES.some((prefix) => base.startsWith(prefix)) ? StructuredMode.Structured : StructuredMode.Json;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* A fine-tune is named `ft:<base>:<org>:<name>:<hash>`, and its capability is
|
|
32
|
+
* the BASE model's. Matching prefixes against the whole string would classify
|
|
33
|
+
* every fine-tune as JSON-only, including ones built on gpt-4o.
|
|
34
|
+
*/
|
|
35
|
+
function resolveBaseModel(model) {
|
|
36
|
+
if (!model.startsWith('ft:')) {
|
|
37
|
+
return model;
|
|
38
|
+
}
|
|
39
|
+
return model.split(':', 3)[1] ?? model;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=structured-mode-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structured-mode-resolver.js","sourceRoot":"","sources":["../../../src/providers/openai/structured-mode-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH,MAAM,mBAAmB,GAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;AAElH,qEAAqE;AACrE,MAAM,WAAW,GAAsB;IACrC,SAAS;IACT,oBAAoB;IACpB,YAAY;IACZ,uBAAuB;CACxB,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAErC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC;AACzH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { TextRequest } from '../text/request.js';
|
|
2
|
+
import type { TextResponse } from '../text/response.js';
|
|
3
|
+
import type { EmbeddingsRequest } from '../embeddings/request.js';
|
|
4
|
+
import type { ImagesRequest } from '../images/request.js';
|
|
5
|
+
import type { SpeechToTextRequest, TextToSpeechRequest } from '../audio/request.js';
|
|
6
|
+
import type { AudioResponse, AudioTextResponse } from '../audio/response.js';
|
|
7
|
+
import type { ModerationRequest } from '../moderation/request.js';
|
|
8
|
+
import type { DeleteFileRequest, DownloadFileRequest, GetFileMetadataRequest, ListFilesRequest, UploadFileRequest } from '../files/request.js';
|
|
9
|
+
import type { DeleteFileResult, FileData, FileListResult } from '../files/file-data.js';
|
|
10
|
+
import type { BatchRequest, CancelBatchRequest, GetBatchResultsRequest, ListBatchesRequest, RetrieveBatchRequest } from '../batch/request.js';
|
|
11
|
+
import type { BatchJob, BatchListResult, BatchResultItem } from '../batch/batch-job.js';
|
|
12
|
+
import type { FimRequest } from '../fim/request.js';
|
|
13
|
+
import type { FimResponse } from '../fim/response.js';
|
|
14
|
+
import type { ModerationResponse } from '../moderation/response.js';
|
|
15
|
+
import type { ImagesResponse } from '../images/response.js';
|
|
16
|
+
import type { EmbeddingsResponse } from '../embeddings/response.js';
|
|
17
|
+
import type { StreamEvent } from '../streaming/events.js';
|
|
18
|
+
import type { StructuredRequest } from '../structured/request.js';
|
|
19
|
+
import type { StructuredResponse } from '../structured/response.js';
|
|
20
|
+
/**
|
|
21
|
+
* The provider contract.
|
|
22
|
+
*
|
|
23
|
+
* Every capability has a default that THROWS with a stable code, so a provider
|
|
24
|
+
* implements only what it actually supports and asking for anything else fails
|
|
25
|
+
* the same way everywhere instead of returning a plausible-looking empty result.
|
|
26
|
+
*
|
|
27
|
+
* `text` and `structured` are part of this port's slice. The remaining capabilities keep
|
|
28
|
+
* their place in the contract but take `unknown` requests, because their request
|
|
29
|
+
* and response types are not ported.
|
|
30
|
+
*/
|
|
31
|
+
export declare abstract class Provider {
|
|
32
|
+
/** The name that appears in `unsupported_provider_action` failures. */
|
|
33
|
+
abstract readonly providerName: string;
|
|
34
|
+
text(_request: TextRequest): Promise<TextResponse>;
|
|
35
|
+
stream(_request: TextRequest): AsyncGenerator<StreamEvent>;
|
|
36
|
+
structured(_request: StructuredRequest): Promise<StructuredResponse>;
|
|
37
|
+
embeddings(_request: EmbeddingsRequest): Promise<EmbeddingsResponse>;
|
|
38
|
+
images(_request: ImagesRequest): Promise<ImagesResponse>;
|
|
39
|
+
moderation(_request: ModerationRequest): Promise<ModerationResponse>;
|
|
40
|
+
textToSpeech(_request: TextToSpeechRequest): Promise<AudioResponse>;
|
|
41
|
+
speechToText(_request: SpeechToTextRequest): Promise<AudioTextResponse>;
|
|
42
|
+
fim(_request: FimRequest): Promise<FimResponse>;
|
|
43
|
+
batch(_request: BatchRequest): Promise<BatchJob>;
|
|
44
|
+
retrieveBatch(_request: RetrieveBatchRequest): Promise<BatchJob>;
|
|
45
|
+
listBatches(_request: ListBatchesRequest): Promise<BatchListResult>;
|
|
46
|
+
getBatchResults(_request: GetBatchResultsRequest): Promise<readonly BatchResultItem[]>;
|
|
47
|
+
cancelBatch(_request: CancelBatchRequest): Promise<BatchJob>;
|
|
48
|
+
uploadFile(_request: UploadFileRequest): Promise<FileData>;
|
|
49
|
+
listFiles(_request: ListFilesRequest): Promise<FileListResult>;
|
|
50
|
+
getFileMetadata(_request: GetFileMetadataRequest): Promise<FileData>;
|
|
51
|
+
deleteFile(_request: DeleteFileRequest): Promise<DeleteFileResult>;
|
|
52
|
+
/** Bytes, not a string. See `FilesPendingRequest.download`. */
|
|
53
|
+
downloadFile(_request: DownloadFileRequest): Promise<Uint8Array>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { PrismError } from '../errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* The provider contract.
|
|
4
|
+
*
|
|
5
|
+
* Every capability has a default that THROWS with a stable code, so a provider
|
|
6
|
+
* implements only what it actually supports and asking for anything else fails
|
|
7
|
+
* the same way everywhere instead of returning a plausible-looking empty result.
|
|
8
|
+
*
|
|
9
|
+
* `text` and `structured` are part of this port's slice. The remaining capabilities keep
|
|
10
|
+
* their place in the contract but take `unknown` requests, because their request
|
|
11
|
+
* and response types are not ported.
|
|
12
|
+
*/
|
|
13
|
+
export class Provider {
|
|
14
|
+
text(_request) {
|
|
15
|
+
throw PrismError.unsupportedProviderAction('text', this.providerName);
|
|
16
|
+
}
|
|
17
|
+
stream(_request) {
|
|
18
|
+
throw PrismError.unsupportedProviderAction('stream', this.providerName);
|
|
19
|
+
}
|
|
20
|
+
structured(_request) {
|
|
21
|
+
throw PrismError.unsupportedProviderAction('structured', this.providerName);
|
|
22
|
+
}
|
|
23
|
+
embeddings(_request) {
|
|
24
|
+
throw PrismError.unsupportedProviderAction('embeddings', this.providerName);
|
|
25
|
+
}
|
|
26
|
+
images(_request) {
|
|
27
|
+
throw PrismError.unsupportedProviderAction('images', this.providerName);
|
|
28
|
+
}
|
|
29
|
+
moderation(_request) {
|
|
30
|
+
throw PrismError.unsupportedProviderAction('moderation', this.providerName);
|
|
31
|
+
}
|
|
32
|
+
textToSpeech(_request) {
|
|
33
|
+
throw PrismError.unsupportedProviderAction('textToSpeech', this.providerName);
|
|
34
|
+
}
|
|
35
|
+
speechToText(_request) {
|
|
36
|
+
throw PrismError.unsupportedProviderAction('speechToText', this.providerName);
|
|
37
|
+
}
|
|
38
|
+
fim(_request) {
|
|
39
|
+
throw PrismError.unsupportedProviderAction('fim', this.providerName);
|
|
40
|
+
}
|
|
41
|
+
batch(_request) {
|
|
42
|
+
throw PrismError.unsupportedProviderAction('batch', this.providerName);
|
|
43
|
+
}
|
|
44
|
+
retrieveBatch(_request) {
|
|
45
|
+
throw PrismError.unsupportedProviderAction('retrieveBatch', this.providerName);
|
|
46
|
+
}
|
|
47
|
+
listBatches(_request) {
|
|
48
|
+
throw PrismError.unsupportedProviderAction('listBatches', this.providerName);
|
|
49
|
+
}
|
|
50
|
+
getBatchResults(_request) {
|
|
51
|
+
throw PrismError.unsupportedProviderAction('getBatchResults', this.providerName);
|
|
52
|
+
}
|
|
53
|
+
cancelBatch(_request) {
|
|
54
|
+
throw PrismError.unsupportedProviderAction('cancelBatch', this.providerName);
|
|
55
|
+
}
|
|
56
|
+
uploadFile(_request) {
|
|
57
|
+
throw PrismError.unsupportedProviderAction('uploadFile', this.providerName);
|
|
58
|
+
}
|
|
59
|
+
listFiles(_request) {
|
|
60
|
+
throw PrismError.unsupportedProviderAction('listFiles', this.providerName);
|
|
61
|
+
}
|
|
62
|
+
getFileMetadata(_request) {
|
|
63
|
+
throw PrismError.unsupportedProviderAction('getFileMetadata', this.providerName);
|
|
64
|
+
}
|
|
65
|
+
deleteFile(_request) {
|
|
66
|
+
throw PrismError.unsupportedProviderAction('deleteFile', this.providerName);
|
|
67
|
+
}
|
|
68
|
+
/** Bytes, not a string. See `FilesPendingRequest.download`. */
|
|
69
|
+
downloadFile(_request) {
|
|
70
|
+
throw PrismError.unsupportedProviderAction('downloadFile', this.providerName);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/providers/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Provider } from './provider.js';
|
|
2
|
+
export type ProviderFactory = (config: Record<string, unknown>) => Provider;
|
|
3
|
+
/** Teach `using()` about a provider this package does not ship. */
|
|
4
|
+
export declare function registerProvider(key: string, factory: ProviderFactory): void;
|
|
5
|
+
export declare function registeredProviders(): readonly string[];
|
|
6
|
+
/**
|
|
7
|
+
* @throws PrismError code `unsupported_provider_action` for an unregistered key.
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolveProvider(key: string, config?: Record<string, unknown>): Provider;
|
|
10
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQ9C,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,QAAQ,CAAC;AAQ5E,mEAAmE;AACnE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI,CAE5E;AAED,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,QAAQ,CAW3F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PrismError } from '../errors.js';
|
|
2
|
+
import { Anthropic } from './anthropic/anthropic.js';
|
|
3
|
+
import { Mistral } from './mistral/mistral.js';
|
|
4
|
+
import { OpenAI } from './openai/openai.js';
|
|
5
|
+
const providers = new Map([
|
|
6
|
+
['anthropic', (config) => new Anthropic(config)],
|
|
7
|
+
['mistral', (config) => new Mistral(config)],
|
|
8
|
+
['openai', (config) => new OpenAI(config)],
|
|
9
|
+
]);
|
|
10
|
+
/** Teach `using()` about a provider this package does not ship. */
|
|
11
|
+
export function registerProvider(key, factory) {
|
|
12
|
+
providers.set(key, factory);
|
|
13
|
+
}
|
|
14
|
+
export function registeredProviders() {
|
|
15
|
+
return [...providers.keys()];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @throws PrismError code `unsupported_provider_action` for an unregistered key.
|
|
19
|
+
*/
|
|
20
|
+
export function resolveProvider(key, config = {}) {
|
|
21
|
+
const factory = providers.get(key);
|
|
22
|
+
if (factory === undefined) {
|
|
23
|
+
throw PrismError.unsupportedProviderAction(`The provider "${key}"`, `this build (registered: ${registeredProviders().join(', ')})`);
|
|
24
|
+
}
|
|
25
|
+
return factory(config);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAK5C,MAAM,SAAS,GAAG,IAAI,GAAG,CAA0B;IACjD,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,MAAyB,CAAC,CAAC;IACnE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,MAAuB,CAAC,CAAC;IAC7D,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,MAAsB,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEH,mEAAmE;AACnE,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,OAAwB;IACpE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,SAAkC,EAAE;IAC/E,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEnC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,UAAU,CAAC,yBAAyB,CACxC,iBAAiB,GAAG,GAAG,EACvB,2BAA2B,mBAAmB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC/D,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Media } from '../../value-objects/media/media.js';
|
|
2
|
+
/**
|
|
3
|
+
* A payload as a `data:` uri.
|
|
4
|
+
*
|
|
5
|
+
* Shared by the two providers that inline bytes into a url string rather than
|
|
6
|
+
* into a field of their own. `provider` and `part` are only carried so a
|
|
7
|
+
* failure here names the same provider the caller's mapper would have.
|
|
8
|
+
*
|
|
9
|
+
* The mime type is REQUIRED and never defaulted: a `data:;base64,` uri is
|
|
10
|
+
* accepted by both providers and then fails as the wrong kind of file, which is
|
|
11
|
+
* a worse failure than being told the type is missing. `guessMimeType` reads
|
|
12
|
+
* the extension, so a payload built from raw content is the case that arrives
|
|
13
|
+
* here without one.
|
|
14
|
+
*/
|
|
15
|
+
export declare function dataUri(media: Media, provider: string, part: string): string;
|
|
16
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/providers/support/media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAEhE;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB5E"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { PrismError } from '../../errors.js';
|
|
2
|
+
/**
|
|
3
|
+
* A payload as a `data:` uri.
|
|
4
|
+
*
|
|
5
|
+
* Shared by the two providers that inline bytes into a url string rather than
|
|
6
|
+
* into a field of their own. `provider` and `part` are only carried so a
|
|
7
|
+
* failure here names the same provider the caller's mapper would have.
|
|
8
|
+
*
|
|
9
|
+
* The mime type is REQUIRED and never defaulted: a `data:;base64,` uri is
|
|
10
|
+
* accepted by both providers and then fails as the wrong kind of file, which is
|
|
11
|
+
* a worse failure than being told the type is missing. `guessMimeType` reads
|
|
12
|
+
* the extension, so a payload built from raw content is the case that arrives
|
|
13
|
+
* here without one.
|
|
14
|
+
*/
|
|
15
|
+
export function dataUri(media, provider, part) {
|
|
16
|
+
const base64 = media.base64();
|
|
17
|
+
if (base64 === null) {
|
|
18
|
+
throw PrismError.unsupportedMedia(provider, part, 'a url, or bytes to encode');
|
|
19
|
+
}
|
|
20
|
+
const mimeType = media.mimeType();
|
|
21
|
+
if (mimeType === null) {
|
|
22
|
+
throw PrismError.unsupportedMedia(provider, part, 'bytes with a known mime type — pass one to the factory when it cannot be read from a file extension');
|
|
23
|
+
}
|
|
24
|
+
return `data:${mimeType};base64,${base64}`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/providers/support/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY,EAAE,QAAgB,EAAE,IAAY;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAE9B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,2BAA2B,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAElC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,UAAU,CAAC,gBAAgB,CAC/B,QAAQ,EACR,IAAI,EACJ,qGAAqG,CACtG,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,QAAQ,WAAW,MAAM,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { JsonObject } from '../json.js';
|
|
2
|
+
/**
|
|
3
|
+
* A JSON Schema fragment for one tool parameter.
|
|
4
|
+
*
|
|
5
|
+
* `toObject()` decides the key order that reaches the wire — `description`
|
|
6
|
+
* before `type` — so the fragment, not the tool mapper, owns that decision.
|
|
7
|
+
*/
|
|
8
|
+
export interface Schema {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly description: string;
|
|
11
|
+
toObject(): JsonObject;
|
|
12
|
+
}
|
|
13
|
+
export interface StringSchemaOptions {
|
|
14
|
+
nullable?: boolean;
|
|
15
|
+
pattern?: string | null;
|
|
16
|
+
format?: string | null;
|
|
17
|
+
}
|
|
18
|
+
export declare class StringSchema implements Schema {
|
|
19
|
+
readonly name: string;
|
|
20
|
+
readonly description: string;
|
|
21
|
+
readonly nullable: boolean;
|
|
22
|
+
readonly pattern: string | null;
|
|
23
|
+
readonly format: string | null;
|
|
24
|
+
constructor(name: string, description: string, options?: StringSchemaOptions);
|
|
25
|
+
toObject(): JsonObject;
|
|
26
|
+
}
|
|
27
|
+
export interface NumberSchemaOptions {
|
|
28
|
+
nullable?: boolean;
|
|
29
|
+
multipleOf?: number | null;
|
|
30
|
+
maximum?: number | null;
|
|
31
|
+
exclusiveMaximum?: number | null;
|
|
32
|
+
minimum?: number | null;
|
|
33
|
+
exclusiveMinimum?: number | null;
|
|
34
|
+
}
|
|
35
|
+
export declare class NumberSchema implements Schema {
|
|
36
|
+
readonly name: string;
|
|
37
|
+
readonly description: string;
|
|
38
|
+
readonly nullable: boolean;
|
|
39
|
+
readonly multipleOf: number | null;
|
|
40
|
+
readonly maximum: number | null;
|
|
41
|
+
readonly exclusiveMaximum: number | null;
|
|
42
|
+
readonly minimum: number | null;
|
|
43
|
+
readonly exclusiveMinimum: number | null;
|
|
44
|
+
constructor(name: string, description: string, options?: NumberSchemaOptions);
|
|
45
|
+
toObject(): JsonObject;
|
|
46
|
+
}
|
|
47
|
+
export interface BooleanSchemaOptions {
|
|
48
|
+
nullable?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export declare class BooleanSchema implements Schema {
|
|
51
|
+
readonly name: string;
|
|
52
|
+
readonly description: string;
|
|
53
|
+
readonly nullable: boolean;
|
|
54
|
+
constructor(name: string, description: string, options?: BooleanSchemaOptions);
|
|
55
|
+
toObject(): JsonObject;
|
|
56
|
+
}
|
|
57
|
+
export interface ObjectSchemaOptions {
|
|
58
|
+
requiredFields?: readonly string[];
|
|
59
|
+
allowAdditionalProperties?: boolean;
|
|
60
|
+
nullable?: boolean;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The schema a structured response is shaped by.
|
|
64
|
+
*
|
|
65
|
+
* `allowAdditionalProperties` DEFAULTS TO FALSE, matching the reference, and the
|
|
66
|
+
* default matters more here than it looks: OpenAI's strict schema mode REJECTS a
|
|
67
|
+
* schema that permits extra properties, so a permissive default would make the
|
|
68
|
+
* strongest structured mode unusable and silently push every request down to
|
|
69
|
+
* plain JSON mode.
|
|
70
|
+
*/
|
|
71
|
+
export declare class ObjectSchema implements Schema {
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly description: string;
|
|
74
|
+
readonly properties: readonly Schema[];
|
|
75
|
+
readonly requiredFields: readonly string[];
|
|
76
|
+
readonly allowAdditionalProperties: boolean;
|
|
77
|
+
readonly nullable: boolean;
|
|
78
|
+
constructor(name: string, description: string, properties?: readonly Schema[], options?: ObjectSchemaOptions);
|
|
79
|
+
toObject(): JsonObject;
|
|
80
|
+
}
|
|
81
|
+
export interface ArraySchemaOptions {
|
|
82
|
+
minItems?: number | null;
|
|
83
|
+
maxItems?: number | null;
|
|
84
|
+
nullable?: boolean;
|
|
85
|
+
}
|
|
86
|
+
export declare class ArraySchema implements Schema {
|
|
87
|
+
readonly name: string;
|
|
88
|
+
readonly description: string;
|
|
89
|
+
readonly items: Schema;
|
|
90
|
+
readonly minItems: number | null;
|
|
91
|
+
readonly maxItems: number | null;
|
|
92
|
+
readonly nullable: boolean;
|
|
93
|
+
constructor(name: string, description: string, items: Schema, options?: ArraySchemaOptions);
|
|
94
|
+
toObject(): JsonObject;
|
|
95
|
+
}
|
|
96
|
+
export interface EnumSchemaOptions {
|
|
97
|
+
nullable?: boolean;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A closed set of allowed values.
|
|
101
|
+
*
|
|
102
|
+
* When nullable, the reference adds `null` to the OPTIONS as well as to the
|
|
103
|
+
* type union — a nullable enum whose options omit null describes a value that
|
|
104
|
+
* can be null and may not be, which no validator can satisfy.
|
|
105
|
+
*/
|
|
106
|
+
export declare class EnumSchema implements Schema {
|
|
107
|
+
readonly name: string;
|
|
108
|
+
readonly description: string;
|
|
109
|
+
readonly options: readonly (string | number | null)[];
|
|
110
|
+
readonly nullable: boolean;
|
|
111
|
+
constructor(name: string, description: string, options: readonly (string | number | null)[], schemaOptions?: EnumSchemaOptions);
|
|
112
|
+
toObject(): JsonObject;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAExD;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,IAAI,UAAU,CAAC;CACxB;AAOD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,qBAAa,YAAa,YAAW,MAAM;IAQvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAR9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;gBAGpB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAC5B,OAAO,GAAE,mBAAwB;IAOnC,QAAQ,IAAI,UAAU;CAgBvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,qBAAa,YAAa,YAAW,MAAM;IAcvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAd9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAG9B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAC5B,OAAO,GAAE,mBAAwB;IAUnC,QAAQ,IAAI,UAAU;CA4BvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,aAAc,YAAW,MAAM;IAIxC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAJ9B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAGhB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EAC5B,OAAO,GAAE,oBAAyB;IAKpC,QAAQ,IAAI,UAAU;CAMvB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;GAQG;AACH,qBAAa,YAAa,YAAW,MAAM;IAQvC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE;IATxC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAE3C,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAE5C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAGhB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,MAAM,EAAO,EAC3C,OAAO,GAAE,mBAAwB;IAOnC,QAAQ,IAAI,UAAU;CAwBvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,WAAY,YAAW,MAAM;IAQtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM;IATxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAGhB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACtB,OAAO,GAAE,kBAAuB;IAOlC,QAAQ,IAAI,UAAU;CAmBvB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,UAAW,YAAW,MAAM;IAIrC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE;IALvD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAGhB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,EACrD,aAAa,GAAE,iBAAsB;IAKvC,QAAQ,IAAI,UAAU;CAOvB"}
|