@docyrus/docyrus 0.0.32 → 0.0.33
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/agent-loader.js +38 -15
- package/agent-loader.js.map +2 -2
- package/main.js +1 -1
- package/main.js.map +1 -1
- package/package.json +1 -1
- package/server-loader.js +32 -7
- package/server-loader.js.map +2 -2
package/package.json
CHANGED
package/server-loader.js
CHANGED
|
@@ -3515,7 +3515,7 @@ function createCustomOpenAiProviderConfig(params) {
|
|
|
3515
3515
|
function createAzureProviderConfig(params) {
|
|
3516
3516
|
const providerConfig = {
|
|
3517
3517
|
baseUrl: params.baseUrl,
|
|
3518
|
-
apiKey: "
|
|
3518
|
+
apiKey: "AZURE_OPENAI_API_KEY"
|
|
3519
3519
|
};
|
|
3520
3520
|
if (params.useCustomModel) {
|
|
3521
3521
|
providerConfig.api = "azure-openai-responses";
|
|
@@ -3544,6 +3544,22 @@ function trimOrUndefined(value) {
|
|
|
3544
3544
|
const trimmed = value?.trim();
|
|
3545
3545
|
return trimmed && trimmed.length > 0 ? trimmed : void 0;
|
|
3546
3546
|
}
|
|
3547
|
+
function normalizeAzureBaseUrl(baseUrl) {
|
|
3548
|
+
const trimmed = baseUrl.trim().replace(/\/+$/, "");
|
|
3549
|
+
try {
|
|
3550
|
+
const url = new URL(trimmed);
|
|
3551
|
+
url.search = "";
|
|
3552
|
+
url.hash = "";
|
|
3553
|
+
if (url.pathname.endsWith("/openai/v1")) {
|
|
3554
|
+
url.pathname = url.pathname.slice(0, -3);
|
|
3555
|
+
} else if (url.pathname.endsWith("/openai/responses")) {
|
|
3556
|
+
url.pathname = url.pathname.slice(0, -10);
|
|
3557
|
+
}
|
|
3558
|
+
return url.toString().replace(/\/+$/, "");
|
|
3559
|
+
} catch {
|
|
3560
|
+
return trimmed.replace(/\/openai\/v1$/i, "/openai").replace(/\/openai\/responses$/i, "/openai");
|
|
3561
|
+
}
|
|
3562
|
+
}
|
|
3547
3563
|
async function saveGenericApiKey(params) {
|
|
3548
3564
|
params.authStorage.set(params.providerId, {
|
|
3549
3565
|
type: "api_key",
|
|
@@ -3570,6 +3586,7 @@ async function saveCustomOpenAiConfig(params) {
|
|
|
3570
3586
|
async function saveAzureConfig(params) {
|
|
3571
3587
|
const modelId = params.modelId.trim();
|
|
3572
3588
|
const useCustomModel = params.useCustomModel ?? false;
|
|
3589
|
+
const normalizedBaseUrl = normalizeAzureBaseUrl(params.baseUrl);
|
|
3573
3590
|
params.authStorage.set("azure-openai-responses", {
|
|
3574
3591
|
type: "api_key",
|
|
3575
3592
|
key: params.apiKey.trim()
|
|
@@ -3594,7 +3611,7 @@ async function saveAzureConfig(params) {
|
|
|
3594
3611
|
}
|
|
3595
3612
|
await params.envStore.setMany(envValues);
|
|
3596
3613
|
await upsertModelsProvider(params.modelsJsonPath, "azure-openai-responses", createAzureProviderConfig({
|
|
3597
|
-
baseUrl:
|
|
3614
|
+
baseUrl: normalizedBaseUrl,
|
|
3598
3615
|
modelId,
|
|
3599
3616
|
useCustomModel
|
|
3600
3617
|
}));
|
|
@@ -3841,7 +3858,7 @@ function getProviderFormFields(params) {
|
|
|
3841
3858
|
title: "Azure OpenAI base URL",
|
|
3842
3859
|
required: true,
|
|
3843
3860
|
component: "text",
|
|
3844
|
-
placeholder: "https://my-resource.openai.azure.com/openai
|
|
3861
|
+
placeholder: "https://my-resource.openai.azure.com/openai",
|
|
3845
3862
|
dependsOn: { field: "configMode", equals: "base-url" }
|
|
3846
3863
|
},
|
|
3847
3864
|
{
|
|
@@ -3870,8 +3887,8 @@ function getProviderFormFields(params) {
|
|
|
3870
3887
|
name: "apiVersion",
|
|
3871
3888
|
title: "API version",
|
|
3872
3889
|
component: "text",
|
|
3873
|
-
defaultValue: "2025-
|
|
3874
|
-
placeholder: "2025-
|
|
3890
|
+
defaultValue: "2025-04-01-preview",
|
|
3891
|
+
placeholder: "2025-04-01-preview"
|
|
3875
3892
|
}
|
|
3876
3893
|
];
|
|
3877
3894
|
case "amazon-bedrock":
|
|
@@ -4063,7 +4080,7 @@ async function applyProviderLogin(params) {
|
|
|
4063
4080
|
return { providerId: provider.id, preferredModelId: params.input.modelId };
|
|
4064
4081
|
}
|
|
4065
4082
|
case "azure-openai-responses": {
|
|
4066
|
-
const baseUrl = params.input.baseUrl ?? (params.input.resourceName ? `https://${params.input.resourceName}.openai.azure.com/openai
|
|
4083
|
+
const baseUrl = params.input.baseUrl ?? (params.input.resourceName ? `https://${params.input.resourceName}.openai.azure.com/openai` : void 0);
|
|
4067
4084
|
if (!baseUrl) {
|
|
4068
4085
|
throw new Error("Azure login requires either baseUrl or resourceName.");
|
|
4069
4086
|
}
|
|
@@ -4103,9 +4120,14 @@ async function applyProviderLogin(params) {
|
|
|
4103
4120
|
}
|
|
4104
4121
|
}
|
|
4105
4122
|
async function refreshSessionAfterCredentialChange(params) {
|
|
4123
|
+
await params.envStore?.hydrateProcessEnv(process.env);
|
|
4106
4124
|
params.modelRegistry.refresh();
|
|
4107
4125
|
const availableModels = params.modelRegistry.getAvailable();
|
|
4108
4126
|
const preferredModel = params.preferredProviderId && params.preferredModelId ? availableModels.find((model) => model.provider === params.preferredProviderId && model.id === params.preferredModelId) : params.preferredProviderId ? availableModels.find((model) => model.provider === params.preferredProviderId) : void 0;
|
|
4127
|
+
if (preferredModel) {
|
|
4128
|
+
await params.session.setModel(preferredModel);
|
|
4129
|
+
return;
|
|
4130
|
+
}
|
|
4109
4131
|
const currentModel = params.session.model;
|
|
4110
4132
|
const currentModelStillAvailable = currentModel ? availableModels.some((model) => model.provider === currentModel.provider && model.id === currentModel.id) : false;
|
|
4111
4133
|
if (currentModel && !currentModelStillAvailable) {
|
|
@@ -5436,6 +5458,7 @@ async function createAgentServer(params) {
|
|
|
5436
5458
|
await refreshSessionAfterCredentialChange({
|
|
5437
5459
|
session: activeSession,
|
|
5438
5460
|
modelRegistry,
|
|
5461
|
+
envStore: authRuntime.envStore,
|
|
5439
5462
|
preferredProviderId: result.providerId,
|
|
5440
5463
|
preferredModelId: result.preferredModelId
|
|
5441
5464
|
});
|
|
@@ -5467,6 +5490,7 @@ async function createAgentServer(params) {
|
|
|
5467
5490
|
await refreshSessionAfterCredentialChange({
|
|
5468
5491
|
session: activeSession,
|
|
5469
5492
|
modelRegistry,
|
|
5493
|
+
envStore: authRuntime.envStore,
|
|
5470
5494
|
preferredProviderId: providerId
|
|
5471
5495
|
});
|
|
5472
5496
|
}
|
|
@@ -5498,7 +5522,8 @@ async function createAgentServer(params) {
|
|
|
5498
5522
|
modelRegistry.refresh();
|
|
5499
5523
|
await refreshSessionAfterCredentialChange({
|
|
5500
5524
|
session: activeSession,
|
|
5501
|
-
modelRegistry
|
|
5525
|
+
modelRegistry,
|
|
5526
|
+
envStore: authRuntime.envStore
|
|
5502
5527
|
});
|
|
5503
5528
|
return c.json({
|
|
5504
5529
|
ok: true,
|