@fgv/ts-extras 5.1.0-20 → 5.1.0-22
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/dist/packlets/ai-assist/apiClient.js +30 -25
- package/dist/packlets/ai-assist/apiClient.js.map +1 -1
- package/dist/packlets/ai-assist/converters.js +2 -1
- package/dist/packlets/ai-assist/converters.js.map +1 -1
- package/dist/packlets/ai-assist/endpoint.js +78 -0
- package/dist/packlets/ai-assist/endpoint.js.map +1 -0
- package/dist/packlets/ai-assist/index.js +2 -0
- package/dist/packlets/ai-assist/index.js.map +1 -1
- package/dist/packlets/ai-assist/jsonCompletion.js +95 -0
- package/dist/packlets/ai-assist/jsonCompletion.js.map +1 -0
- package/dist/packlets/ai-assist/jsonResponse.js +149 -0
- package/dist/packlets/ai-assist/jsonResponse.js.map +1 -0
- package/dist/packlets/ai-assist/model.js.map +1 -1
- package/dist/packlets/ai-assist/registry.js +26 -0
- package/dist/packlets/ai-assist/registry.js.map +1 -1
- package/dist/packlets/ai-assist/streamingAdapters/common.js.map +1 -1
- package/dist/packlets/ai-assist/streamingAdapters/openaiChat.js +2 -1
- package/dist/packlets/ai-assist/streamingAdapters/openaiChat.js.map +1 -1
- package/dist/packlets/ai-assist/streamingAdapters/openaiResponses.js +2 -1
- package/dist/packlets/ai-assist/streamingAdapters/openaiResponses.js.map +1 -1
- package/dist/packlets/ai-assist/streamingClient.js +11 -5
- package/dist/packlets/ai-assist/streamingClient.js.map +1 -1
- package/dist/packlets/crypto-utils/keyPairAlgorithmParams.js +6 -0
- package/dist/packlets/crypto-utils/keyPairAlgorithmParams.js.map +1 -1
- package/dist/packlets/crypto-utils/keystore/keyStore.js +81 -0
- package/dist/packlets/crypto-utils/keystore/keyStore.js.map +1 -1
- package/dist/packlets/crypto-utils/model.js +2 -1
- package/dist/packlets/crypto-utils/model.js.map +1 -1
- package/dist/packlets/crypto-utils/nodeCryptoProvider.js +21 -2
- package/dist/packlets/crypto-utils/nodeCryptoProvider.js.map +1 -1
- package/dist/ts-extras.d.ts +301 -6
- package/lib/packlets/ai-assist/apiClient.d.ts +29 -0
- package/lib/packlets/ai-assist/apiClient.d.ts.map +1 -1
- package/lib/packlets/ai-assist/apiClient.js +30 -25
- package/lib/packlets/ai-assist/apiClient.js.map +1 -1
- package/lib/packlets/ai-assist/converters.d.ts.map +1 -1
- package/lib/packlets/ai-assist/converters.js +2 -1
- package/lib/packlets/ai-assist/converters.js.map +1 -1
- package/lib/packlets/ai-assist/endpoint.d.ts +28 -0
- package/lib/packlets/ai-assist/endpoint.d.ts.map +1 -0
- package/lib/packlets/ai-assist/endpoint.js +82 -0
- package/lib/packlets/ai-assist/endpoint.js.map +1 -0
- package/lib/packlets/ai-assist/index.d.ts +2 -0
- package/lib/packlets/ai-assist/index.d.ts.map +1 -1
- package/lib/packlets/ai-assist/index.js +7 -1
- package/lib/packlets/ai-assist/index.js.map +1 -1
- package/lib/packlets/ai-assist/jsonCompletion.d.ts +93 -0
- package/lib/packlets/ai-assist/jsonCompletion.d.ts.map +1 -0
- package/lib/packlets/ai-assist/jsonCompletion.js +99 -0
- package/lib/packlets/ai-assist/jsonCompletion.js.map +1 -0
- package/lib/packlets/ai-assist/jsonResponse.d.ts +91 -0
- package/lib/packlets/ai-assist/jsonResponse.d.ts.map +1 -0
- package/lib/packlets/ai-assist/jsonResponse.js +154 -0
- package/lib/packlets/ai-assist/jsonResponse.js.map +1 -0
- package/lib/packlets/ai-assist/model.d.ts +9 -1
- package/lib/packlets/ai-assist/model.d.ts.map +1 -1
- package/lib/packlets/ai-assist/model.js.map +1 -1
- package/lib/packlets/ai-assist/registry.d.ts.map +1 -1
- package/lib/packlets/ai-assist/registry.js +26 -0
- package/lib/packlets/ai-assist/registry.js.map +1 -1
- package/lib/packlets/ai-assist/streamingAdapters/common.d.ts +8 -0
- package/lib/packlets/ai-assist/streamingAdapters/common.d.ts.map +1 -1
- package/lib/packlets/ai-assist/streamingAdapters/common.js.map +1 -1
- package/lib/packlets/ai-assist/streamingAdapters/openaiChat.d.ts.map +1 -1
- package/lib/packlets/ai-assist/streamingAdapters/openaiChat.js +2 -1
- package/lib/packlets/ai-assist/streamingAdapters/openaiChat.js.map +1 -1
- package/lib/packlets/ai-assist/streamingAdapters/openaiResponses.d.ts.map +1 -1
- package/lib/packlets/ai-assist/streamingAdapters/openaiResponses.js +2 -1
- package/lib/packlets/ai-assist/streamingAdapters/openaiResponses.js.map +1 -1
- package/lib/packlets/ai-assist/streamingClient.d.ts.map +1 -1
- package/lib/packlets/ai-assist/streamingClient.js +11 -5
- package/lib/packlets/ai-assist/streamingClient.js.map +1 -1
- package/lib/packlets/crypto-utils/keyPairAlgorithmParams.d.ts +14 -3
- package/lib/packlets/crypto-utils/keyPairAlgorithmParams.d.ts.map +1 -1
- package/lib/packlets/crypto-utils/keyPairAlgorithmParams.js +6 -0
- package/lib/packlets/crypto-utils/keyPairAlgorithmParams.js.map +1 -1
- package/lib/packlets/crypto-utils/keystore/keyStore.d.ts +43 -1
- package/lib/packlets/crypto-utils/keystore/keyStore.d.ts.map +1 -1
- package/lib/packlets/crypto-utils/keystore/keyStore.js +81 -0
- package/lib/packlets/crypto-utils/keystore/keyStore.js.map +1 -1
- package/lib/packlets/crypto-utils/model.d.ts +16 -2
- package/lib/packlets/crypto-utils/model.d.ts.map +1 -1
- package/lib/packlets/crypto-utils/model.js +2 -1
- package/lib/packlets/crypto-utils/model.js.map +1 -1
- package/lib/packlets/crypto-utils/nodeCryptoProvider.d.ts +7 -1
- package/lib/packlets/crypto-utils/nodeCryptoProvider.d.ts.map +1 -1
- package/lib/packlets/crypto-utils/nodeCryptoProvider.js +20 -1
- package/lib/packlets/crypto-utils/nodeCryptoProvider.js.map +1 -1
- package/package.json +7 -7
|
@@ -41,6 +41,7 @@ const ts_json_base_1 = require("@fgv/ts-json-base");
|
|
|
41
41
|
const ts_utils_1 = require("@fgv/ts-utils");
|
|
42
42
|
const model_1 = require("./model");
|
|
43
43
|
const chatRequestBuilders_1 = require("./chatRequestBuilders");
|
|
44
|
+
const endpoint_1 = require("./endpoint");
|
|
44
45
|
const registry_1 = require("./registry");
|
|
45
46
|
const toolFormats_1 = require("./toolFormats");
|
|
46
47
|
// ============================================================================
|
|
@@ -287,9 +288,7 @@ async function callOpenAiCompletion(config, prompt, additionalMessages, temperat
|
|
|
287
288
|
tail: additionalMessages
|
|
288
289
|
});
|
|
289
290
|
const body = { model: config.model, messages, temperature };
|
|
290
|
-
const headers =
|
|
291
|
-
Authorization: `Bearer ${config.apiKey}`
|
|
292
|
-
};
|
|
291
|
+
const headers = (0, endpoint_1.bearerAuthHeader)(config.apiKey);
|
|
293
292
|
/* c8 ignore next 1 - optional logger */
|
|
294
293
|
logger === null || logger === void 0 ? void 0 : logger.info(`OpenAI completion: model=${config.model}`);
|
|
295
294
|
const jsonResult = await fetchJson(url, headers, body, logger, signal);
|
|
@@ -342,9 +341,7 @@ async function callOpenAiResponsesCompletion(config, prompt, tools, additionalMe
|
|
|
342
341
|
tools: (0, toolFormats_1.toResponsesApiTools)(tools),
|
|
343
342
|
temperature
|
|
344
343
|
};
|
|
345
|
-
const headers =
|
|
346
|
-
Authorization: `Bearer ${config.apiKey}`
|
|
347
|
-
};
|
|
344
|
+
const headers = (0, endpoint_1.bearerAuthHeader)(config.apiKey);
|
|
348
345
|
/* c8 ignore next 1 - optional logger */
|
|
349
346
|
logger === null || logger === void 0 ? void 0 : logger.info(`OpenAI Responses API: model=${config.model}, tools=${tools.map((t) => t.type).join(',')}`);
|
|
350
347
|
const jsonResult = await fetchJson(url, headers, body, logger, signal);
|
|
@@ -509,19 +506,24 @@ async function callGeminiCompletion(config, prompt, additionalMessages, temperat
|
|
|
509
506
|
* @public
|
|
510
507
|
*/
|
|
511
508
|
async function callProviderCompletion(params) {
|
|
512
|
-
const { descriptor, apiKey, prompt, additionalMessages, temperature = 0.7, modelOverride, logger, tools, signal } = params;
|
|
513
|
-
|
|
514
|
-
|
|
509
|
+
const { descriptor, apiKey, prompt, additionalMessages, temperature = 0.7, modelOverride, logger, tools, signal, endpoint } = params;
|
|
510
|
+
const baseUrlResult = (0, endpoint_1.resolveEffectiveBaseUrl)(descriptor, endpoint);
|
|
511
|
+
if (baseUrlResult.isFailure()) {
|
|
512
|
+
return (0, ts_utils_1.fail)(baseUrlResult.message);
|
|
515
513
|
}
|
|
516
514
|
if (prompt.attachments.length > 0 && !descriptor.acceptsImageInput) {
|
|
517
515
|
return (0, ts_utils_1.fail)(`provider "${descriptor.id}" does not accept image input`);
|
|
518
516
|
}
|
|
519
517
|
const hasTools = tools !== undefined && tools.length > 0;
|
|
520
518
|
const modelContext = hasTools ? 'tools' : undefined;
|
|
519
|
+
const model = (0, model_1.resolveModel)(modelOverride !== null && modelOverride !== void 0 ? modelOverride : descriptor.defaultModel, modelContext);
|
|
520
|
+
if (model.length === 0) {
|
|
521
|
+
return (0, ts_utils_1.fail)(`provider "${descriptor.id}": no model resolved; pass modelOverride or set descriptor.defaultModel`);
|
|
522
|
+
}
|
|
521
523
|
const config = {
|
|
522
|
-
baseUrl:
|
|
524
|
+
baseUrl: baseUrlResult.value,
|
|
523
525
|
apiKey,
|
|
524
|
-
model
|
|
526
|
+
model
|
|
525
527
|
};
|
|
526
528
|
/* c8 ignore next 8 - optional logger diagnostic output */
|
|
527
529
|
if (logger) {
|
|
@@ -615,9 +617,7 @@ async function callOpenAiImageGeneration(config, request, defaultMimeType, logge
|
|
|
615
617
|
var _a, _b, _c;
|
|
616
618
|
const opts = (_a = request.options) !== null && _a !== void 0 ? _a : {};
|
|
617
619
|
const refs = (_b = request.referenceImages) !== null && _b !== void 0 ? _b : [];
|
|
618
|
-
const headers =
|
|
619
|
-
Authorization: `Bearer ${config.apiKey}`
|
|
620
|
-
};
|
|
620
|
+
const headers = (0, endpoint_1.bearerAuthHeader)(config.apiKey);
|
|
621
621
|
const n = (_c = opts.count) !== null && _c !== void 0 ? _c : 1;
|
|
622
622
|
const fetched = refs.length > 0
|
|
623
623
|
? await callOpenAiImagesEdits(config, request, headers, n, refs, logger, signal)
|
|
@@ -803,14 +803,20 @@ async function callImagenGeneration(config, request, logger, signal) {
|
|
|
803
803
|
*/
|
|
804
804
|
async function callProviderImageGeneration(params) {
|
|
805
805
|
var _a, _b;
|
|
806
|
-
const { descriptor, apiKey, params: request, modelOverride, logger, signal } = params;
|
|
806
|
+
const { descriptor, apiKey, params: request, modelOverride, logger, signal, endpoint } = params;
|
|
807
807
|
if (!(0, registry_1.supportsImageGeneration)(descriptor)) {
|
|
808
808
|
return (0, ts_utils_1.fail)(`provider "${descriptor.id}" does not support image generation`);
|
|
809
809
|
}
|
|
810
|
-
|
|
811
|
-
|
|
810
|
+
const baseUrlResult = (0, endpoint_1.resolveEffectiveBaseUrl)(descriptor, endpoint);
|
|
811
|
+
if (baseUrlResult.isFailure()) {
|
|
812
|
+
return (0, ts_utils_1.fail)(baseUrlResult.message);
|
|
812
813
|
}
|
|
813
814
|
const model = (0, model_1.resolveModel)(modelOverride !== null && modelOverride !== void 0 ? modelOverride : descriptor.defaultModel, 'image');
|
|
815
|
+
if (model.length === 0) {
|
|
816
|
+
return (0, ts_utils_1.fail)(`provider "${descriptor.id}": no image model resolved; ` +
|
|
817
|
+
`pass modelOverride or set descriptor.defaultModel ` +
|
|
818
|
+
`(a plain string, or an object with an "image" entry)`);
|
|
819
|
+
}
|
|
814
820
|
const capability = (0, registry_1.resolveImageCapability)(descriptor, model);
|
|
815
821
|
if (capability === undefined) {
|
|
816
822
|
return (0, ts_utils_1.fail)(`provider "${descriptor.id}" does not support image generation for model "${model}"`);
|
|
@@ -819,7 +825,7 @@ async function callProviderImageGeneration(params) {
|
|
|
819
825
|
return (0, ts_utils_1.fail)(`model "${model}" does not support reference images`);
|
|
820
826
|
}
|
|
821
827
|
const config = {
|
|
822
|
-
baseUrl:
|
|
828
|
+
baseUrl: baseUrlResult.value,
|
|
823
829
|
apiKey,
|
|
824
830
|
model
|
|
825
831
|
};
|
|
@@ -946,9 +952,7 @@ function buildModelInfo(providerId, id, nativeCapabilities, nativeDisplayName, c
|
|
|
946
952
|
*/
|
|
947
953
|
async function callOpenAiListModels(config, providerId, capabilityConfig, logger, signal) {
|
|
948
954
|
const url = `${config.baseUrl}/models`;
|
|
949
|
-
const headers =
|
|
950
|
-
Authorization: `Bearer ${config.apiKey}`
|
|
951
|
-
};
|
|
955
|
+
const headers = (0, endpoint_1.bearerAuthHeader)(config.apiKey);
|
|
952
956
|
/* c8 ignore next 1 - optional logger */
|
|
953
957
|
logger === null || logger === void 0 ? void 0 : logger.info(`List models: provider=${providerId}, format=openai`);
|
|
954
958
|
const jsonResult = await fetchGetJson(url, headers, logger, signal);
|
|
@@ -1035,12 +1039,13 @@ async function callGeminiListModels(config, providerId, capabilityConfig, logger
|
|
|
1035
1039
|
* @public
|
|
1036
1040
|
*/
|
|
1037
1041
|
async function callProviderListModels(params) {
|
|
1038
|
-
const { descriptor, apiKey, capability, capabilityConfig, logger, signal } = params;
|
|
1039
|
-
|
|
1040
|
-
|
|
1042
|
+
const { descriptor, apiKey, capability, capabilityConfig, logger, signal, endpoint } = params;
|
|
1043
|
+
const baseUrlResult = (0, endpoint_1.resolveEffectiveBaseUrl)(descriptor, endpoint);
|
|
1044
|
+
if (baseUrlResult.isFailure()) {
|
|
1045
|
+
return (0, ts_utils_1.fail)(baseUrlResult.message);
|
|
1041
1046
|
}
|
|
1042
1047
|
const config = {
|
|
1043
|
-
baseUrl:
|
|
1048
|
+
baseUrl: baseUrlResult.value,
|
|
1044
1049
|
apiKey,
|
|
1045
1050
|
model: '' // unused by listing
|
|
1046
1051
|
};
|