@exulu/backend 1.35.0 → 1.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -3
- package/dist/index.cjs +98 -30
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +98 -30
- package/package.json +2 -2
- package/types/models/context.ts +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
## [1.36.1](https://github.com/Qventu/exulu-backend/compare/v1.36.0...v1.36.1) (2025-11-19)
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
###
|
|
4
|
+
### Bug Fixes
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* issue with upsert ([37c1805](https://github.com/Qventu/exulu-backend/commit/37c1805ff14d3c1aacc116760d8b905db8a2ce6c))
|
package/dist/index.cjs
CHANGED
|
@@ -3958,7 +3958,8 @@ type PageInfo {
|
|
|
3958
3958
|
schedule: source.config?.schedule,
|
|
3959
3959
|
queue: queueName,
|
|
3960
3960
|
retries: source.config?.retries,
|
|
3961
|
-
backoff: source.config?.backoff
|
|
3961
|
+
backoff: source.config?.backoff,
|
|
3962
|
+
params: source.config?.params
|
|
3962
3963
|
}
|
|
3963
3964
|
};
|
|
3964
3965
|
}));
|
|
@@ -4013,7 +4014,8 @@ type PageInfo {
|
|
|
4013
4014
|
schedule: source.config?.schedule,
|
|
4014
4015
|
queue: queueName,
|
|
4015
4016
|
retries: source.config?.retries,
|
|
4016
|
-
backoff: source.config?.backoff
|
|
4017
|
+
backoff: source.config?.backoff,
|
|
4018
|
+
params: source.config?.params
|
|
4017
4019
|
}
|
|
4018
4020
|
};
|
|
4019
4021
|
}));
|
|
@@ -4270,6 +4272,13 @@ type ContextSourceConfig {
|
|
|
4270
4272
|
queue: String
|
|
4271
4273
|
retries: Int
|
|
4272
4274
|
backoff: ContextSourceBackoff
|
|
4275
|
+
params: [ContextSourceParam!]
|
|
4276
|
+
}
|
|
4277
|
+
|
|
4278
|
+
type ContextSourceParam {
|
|
4279
|
+
name: String!
|
|
4280
|
+
description: String!
|
|
4281
|
+
default: String
|
|
4273
4282
|
}
|
|
4274
4283
|
|
|
4275
4284
|
type ContextSourceBackoff {
|
|
@@ -5898,7 +5907,13 @@ var ExuluContext = class {
|
|
|
5898
5907
|
}
|
|
5899
5908
|
).returning("id");
|
|
5900
5909
|
if (upsert) {
|
|
5901
|
-
|
|
5910
|
+
if (item.external_id) {
|
|
5911
|
+
mutation.onConflict("external_id").merge();
|
|
5912
|
+
} else if (item.id) {
|
|
5913
|
+
mutation.onConflict("id").merge();
|
|
5914
|
+
} else {
|
|
5915
|
+
throw new Error("Either id or external_id must be provided for upsert");
|
|
5916
|
+
}
|
|
5902
5917
|
}
|
|
5903
5918
|
const results = await mutation;
|
|
5904
5919
|
if (!results[0]) {
|
|
@@ -6074,14 +6089,13 @@ var ExuluContext = class {
|
|
|
6074
6089
|
table.text("description");
|
|
6075
6090
|
table.text("tags");
|
|
6076
6091
|
table.boolean("archived").defaultTo(false);
|
|
6077
|
-
table.text("external_id");
|
|
6092
|
+
table.text("external_id").unique();
|
|
6078
6093
|
table.text("created_by");
|
|
6079
6094
|
table.text("ttl");
|
|
6080
6095
|
table.text("rights_mode").defaultTo(this.configuration?.defaultRightsMode ?? "private");
|
|
6081
6096
|
table.integer("textlength");
|
|
6082
6097
|
table.text("source");
|
|
6083
6098
|
table.timestamp("embeddings_updated_at");
|
|
6084
|
-
table.unique(["id", "external_id"]);
|
|
6085
6099
|
for (const field of this.fields) {
|
|
6086
6100
|
let { type, name, unique } = field;
|
|
6087
6101
|
if (!type || !name) {
|
|
@@ -8119,24 +8133,41 @@ var claudeSonnet45Agent = new ExuluAgent2({
|
|
|
8119
8133
|
|
|
8120
8134
|
// src/templates/agents/google/vertex/index.ts
|
|
8121
8135
|
var import_google_vertex = require("@ai-sdk/google-vertex");
|
|
8122
|
-
var
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8130
|
-
|
|
8131
|
-
|
|
8132
|
-
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
|
|
8138
|
-
|
|
8139
|
-
|
|
8136
|
+
var import_google_vertex2 = require("@ai-sdk/google-vertex");
|
|
8137
|
+
var vertexAuthenticationInformation = `
|
|
8138
|
+
### Vertex Authentication Setup (Google Auth)
|
|
8139
|
+
|
|
8140
|
+
Vertex uses **Google Auth**. To authenticate, follow these steps:
|
|
8141
|
+
|
|
8142
|
+
1. Visit the Google Cloud Credentials page:
|
|
8143
|
+
**[https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)**
|
|
8144
|
+
|
|
8145
|
+
2. Create a **Service Account**.
|
|
8146
|
+
|
|
8147
|
+
3. Navigate to **Keys** \u2192 **Add Key** \u2192 **Create new key** \u2192 select **JSON**.
|
|
8148
|
+
|
|
8149
|
+
4. Download the generated JSON key file.
|
|
8150
|
+
|
|
8151
|
+
5. Copy the **entire contents** of the JSON file into an **encrypted authentication variable** in your IMP Agent Instance, using a structure like this:
|
|
8152
|
+
|
|
8153
|
+
\`\`\`json
|
|
8154
|
+
{
|
|
8155
|
+
"project": "project-name",
|
|
8156
|
+
"location": "europe-west1",
|
|
8157
|
+
"googleAuthOptions": {
|
|
8158
|
+
"credentials": {
|
|
8159
|
+
"type": "service_account",
|
|
8160
|
+
"project_id": "XX-XXXX",
|
|
8161
|
+
"private_key_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
8162
|
+
"private_key": "-----BEGIN PRIVATE KEY-----.....-----END PRIVATE KEY-----",
|
|
8163
|
+
"client_email": "xxxx@xxxx.gserviceaccount.com",
|
|
8164
|
+
"client_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
8165
|
+
"universe_domain": "googleapis.com"
|
|
8166
|
+
}
|
|
8167
|
+
}
|
|
8168
|
+
}
|
|
8169
|
+
\`\`\`
|
|
8170
|
+
`;
|
|
8140
8171
|
var vertexGemini25FlashAgent = new ExuluAgent2({
|
|
8141
8172
|
id: `default_vertex_gemini_2_5_flash_agent`,
|
|
8142
8173
|
name: `GEMINI-2.5-FLASH`,
|
|
@@ -8150,10 +8181,7 @@ var vertexGemini25FlashAgent = new ExuluAgent2({
|
|
|
8150
8181
|
audio: [".mpeg", ".mp3", ".m4a", ".wav", ".mp4"],
|
|
8151
8182
|
video: [".mp4", ".mpeg"]
|
|
8152
8183
|
},
|
|
8153
|
-
authenticationInformation:
|
|
8154
|
-
https://console.cloud.google.com/apis/credentials, create a service account, go to 'keys'
|
|
8155
|
-
and download the resulting JSON file, and copy the contents of the JSON file into an
|
|
8156
|
-
encrypted authentication variable in your IMP Agent Instance like this: ${wrapperJsonGoogleAuth}.`,
|
|
8184
|
+
authenticationInformation: vertexAuthenticationInformation,
|
|
8157
8185
|
maxContextLength: 1048576,
|
|
8158
8186
|
config: {
|
|
8159
8187
|
name: `GEMINI-2.5-FLASH`,
|
|
@@ -8171,8 +8199,46 @@ var vertexGemini25FlashAgent = new ExuluAgent2({
|
|
|
8171
8199
|
if (!googleAuthPayload.location) {
|
|
8172
8200
|
throw new Error("Location not set in authentication json for Google Vertex Gemini 2.5 Flash agent, should be for example 'europe-west1'");
|
|
8173
8201
|
}
|
|
8174
|
-
const
|
|
8175
|
-
const model =
|
|
8202
|
+
const vertex2 = (0, import_google_vertex.createVertex)(googleAuthPayload);
|
|
8203
|
+
const model = vertex2("gemini-2.5-flash");
|
|
8204
|
+
return model;
|
|
8205
|
+
}
|
|
8206
|
+
}
|
|
8207
|
+
}
|
|
8208
|
+
});
|
|
8209
|
+
var vertexGemini3ProAgent = new ExuluAgent2({
|
|
8210
|
+
id: `default_vertex_gemini_3_pro_agent`,
|
|
8211
|
+
name: `GEMINI-3-PRO`,
|
|
8212
|
+
provider: "vertex",
|
|
8213
|
+
description: `Google Vertex Gemini 3 Pro model. Very high intelligence and capability. Moderately Fast.`,
|
|
8214
|
+
type: "agent",
|
|
8215
|
+
capabilities: {
|
|
8216
|
+
text: true,
|
|
8217
|
+
images: [".png", ".jpg", ".jpeg", ".webp"],
|
|
8218
|
+
files: [".pdf", ".txt"],
|
|
8219
|
+
audio: [".mpeg", ".mp3", ".m4a", ".wav", ".mp4"],
|
|
8220
|
+
video: [".mp4", ".mpeg"]
|
|
8221
|
+
},
|
|
8222
|
+
authenticationInformation: vertexAuthenticationInformation,
|
|
8223
|
+
maxContextLength: 1048576,
|
|
8224
|
+
config: {
|
|
8225
|
+
name: `GEMINI-3-PRO`,
|
|
8226
|
+
instructions: "",
|
|
8227
|
+
model: {
|
|
8228
|
+
create: ({ apiKey }) => {
|
|
8229
|
+
console.log("[EXULU] apiKey", apiKey);
|
|
8230
|
+
if (!apiKey) {
|
|
8231
|
+
throw new Error("Auth credentials not found for Google Vertex agent, make sure you have set the provider api key to a valid google authentication json.");
|
|
8232
|
+
}
|
|
8233
|
+
const googleAuthPayload = JSON.parse(apiKey || "{}");
|
|
8234
|
+
if (!googleAuthPayload) {
|
|
8235
|
+
throw new Error("API key not found for Google Vertex Gemini 3 Pro agent.");
|
|
8236
|
+
}
|
|
8237
|
+
if (!googleAuthPayload.location) {
|
|
8238
|
+
throw new Error("Location not set in authentication json for Google Vertex Gemini 3 Pro agent, should be for example 'europe-west1'");
|
|
8239
|
+
}
|
|
8240
|
+
const vertex2 = (0, import_google_vertex.createVertex)(googleAuthPayload);
|
|
8241
|
+
const model = vertex2("gemini-3-pro-preview");
|
|
8176
8242
|
return model;
|
|
8177
8243
|
}
|
|
8178
8244
|
}
|
|
@@ -9593,6 +9659,7 @@ var ExuluApp = class {
|
|
|
9593
9659
|
claudeSonnet4Agent,
|
|
9594
9660
|
claudeOpus4Agent,
|
|
9595
9661
|
vertexGemini25FlashAgent,
|
|
9662
|
+
vertexGemini3ProAgent,
|
|
9596
9663
|
claudeSonnet45Agent,
|
|
9597
9664
|
gpt5MiniAgent,
|
|
9598
9665
|
gpt5agent,
|
|
@@ -11332,7 +11399,8 @@ var ExuluDefaultAgents = {
|
|
|
11332
11399
|
sonnet45: claudeSonnet45Agent
|
|
11333
11400
|
},
|
|
11334
11401
|
google: {
|
|
11335
|
-
vertexGemini25Flash: vertexGemini25FlashAgent
|
|
11402
|
+
vertexGemini25Flash: vertexGemini25FlashAgent,
|
|
11403
|
+
vertexGemini3Pro: vertexGemini3ProAgent
|
|
11336
11404
|
},
|
|
11337
11405
|
openai: {
|
|
11338
11406
|
gpt5Mini: gpt5MiniAgent,
|
package/dist/index.d.cts
CHANGED
|
@@ -570,6 +570,11 @@ type ExuluContextSource = {
|
|
|
570
570
|
type: 'exponential' | 'linear';
|
|
571
571
|
delay: number;
|
|
572
572
|
};
|
|
573
|
+
params?: {
|
|
574
|
+
name: string;
|
|
575
|
+
description: string;
|
|
576
|
+
default?: string;
|
|
577
|
+
}[];
|
|
573
578
|
};
|
|
574
579
|
execute: (inputs: any) => Promise<Item[]>;
|
|
575
580
|
};
|
|
@@ -1610,6 +1615,7 @@ declare const ExuluDefaultAgents: {
|
|
|
1610
1615
|
};
|
|
1611
1616
|
google: {
|
|
1612
1617
|
vertexGemini25Flash: ExuluAgent;
|
|
1618
|
+
vertexGemini3Pro: ExuluAgent;
|
|
1613
1619
|
};
|
|
1614
1620
|
openai: {
|
|
1615
1621
|
gpt5Mini: ExuluAgent;
|
package/dist/index.d.ts
CHANGED
|
@@ -570,6 +570,11 @@ type ExuluContextSource = {
|
|
|
570
570
|
type: 'exponential' | 'linear';
|
|
571
571
|
delay: number;
|
|
572
572
|
};
|
|
573
|
+
params?: {
|
|
574
|
+
name: string;
|
|
575
|
+
description: string;
|
|
576
|
+
default?: string;
|
|
577
|
+
}[];
|
|
573
578
|
};
|
|
574
579
|
execute: (inputs: any) => Promise<Item[]>;
|
|
575
580
|
};
|
|
@@ -1610,6 +1615,7 @@ declare const ExuluDefaultAgents: {
|
|
|
1610
1615
|
};
|
|
1611
1616
|
google: {
|
|
1612
1617
|
vertexGemini25Flash: ExuluAgent;
|
|
1618
|
+
vertexGemini3Pro: ExuluAgent;
|
|
1613
1619
|
};
|
|
1614
1620
|
openai: {
|
|
1615
1621
|
gpt5Mini: ExuluAgent;
|
package/dist/index.js
CHANGED
|
@@ -3906,7 +3906,8 @@ type PageInfo {
|
|
|
3906
3906
|
schedule: source.config?.schedule,
|
|
3907
3907
|
queue: queueName,
|
|
3908
3908
|
retries: source.config?.retries,
|
|
3909
|
-
backoff: source.config?.backoff
|
|
3909
|
+
backoff: source.config?.backoff,
|
|
3910
|
+
params: source.config?.params
|
|
3910
3911
|
}
|
|
3911
3912
|
};
|
|
3912
3913
|
}));
|
|
@@ -3961,7 +3962,8 @@ type PageInfo {
|
|
|
3961
3962
|
schedule: source.config?.schedule,
|
|
3962
3963
|
queue: queueName,
|
|
3963
3964
|
retries: source.config?.retries,
|
|
3964
|
-
backoff: source.config?.backoff
|
|
3965
|
+
backoff: source.config?.backoff,
|
|
3966
|
+
params: source.config?.params
|
|
3965
3967
|
}
|
|
3966
3968
|
};
|
|
3967
3969
|
}));
|
|
@@ -4218,6 +4220,13 @@ type ContextSourceConfig {
|
|
|
4218
4220
|
queue: String
|
|
4219
4221
|
retries: Int
|
|
4220
4222
|
backoff: ContextSourceBackoff
|
|
4223
|
+
params: [ContextSourceParam!]
|
|
4224
|
+
}
|
|
4225
|
+
|
|
4226
|
+
type ContextSourceParam {
|
|
4227
|
+
name: String!
|
|
4228
|
+
description: String!
|
|
4229
|
+
default: String
|
|
4221
4230
|
}
|
|
4222
4231
|
|
|
4223
4232
|
type ContextSourceBackoff {
|
|
@@ -5865,7 +5874,13 @@ var ExuluContext = class {
|
|
|
5865
5874
|
}
|
|
5866
5875
|
).returning("id");
|
|
5867
5876
|
if (upsert) {
|
|
5868
|
-
|
|
5877
|
+
if (item.external_id) {
|
|
5878
|
+
mutation.onConflict("external_id").merge();
|
|
5879
|
+
} else if (item.id) {
|
|
5880
|
+
mutation.onConflict("id").merge();
|
|
5881
|
+
} else {
|
|
5882
|
+
throw new Error("Either id or external_id must be provided for upsert");
|
|
5883
|
+
}
|
|
5869
5884
|
}
|
|
5870
5885
|
const results = await mutation;
|
|
5871
5886
|
if (!results[0]) {
|
|
@@ -6041,14 +6056,13 @@ var ExuluContext = class {
|
|
|
6041
6056
|
table.text("description");
|
|
6042
6057
|
table.text("tags");
|
|
6043
6058
|
table.boolean("archived").defaultTo(false);
|
|
6044
|
-
table.text("external_id");
|
|
6059
|
+
table.text("external_id").unique();
|
|
6045
6060
|
table.text("created_by");
|
|
6046
6061
|
table.text("ttl");
|
|
6047
6062
|
table.text("rights_mode").defaultTo(this.configuration?.defaultRightsMode ?? "private");
|
|
6048
6063
|
table.integer("textlength");
|
|
6049
6064
|
table.text("source");
|
|
6050
6065
|
table.timestamp("embeddings_updated_at");
|
|
6051
|
-
table.unique(["id", "external_id"]);
|
|
6052
6066
|
for (const field of this.fields) {
|
|
6053
6067
|
let { type, name, unique } = field;
|
|
6054
6068
|
if (!type || !name) {
|
|
@@ -8086,24 +8100,41 @@ var claudeSonnet45Agent = new ExuluAgent2({
|
|
|
8086
8100
|
|
|
8087
8101
|
// src/templates/agents/google/vertex/index.ts
|
|
8088
8102
|
import { createVertex } from "@ai-sdk/google-vertex";
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
|
|
8103
|
+
import "@ai-sdk/google-vertex";
|
|
8104
|
+
var vertexAuthenticationInformation = `
|
|
8105
|
+
### Vertex Authentication Setup (Google Auth)
|
|
8106
|
+
|
|
8107
|
+
Vertex uses **Google Auth**. To authenticate, follow these steps:
|
|
8108
|
+
|
|
8109
|
+
1. Visit the Google Cloud Credentials page:
|
|
8110
|
+
**[https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials)**
|
|
8111
|
+
|
|
8112
|
+
2. Create a **Service Account**.
|
|
8113
|
+
|
|
8114
|
+
3. Navigate to **Keys** \u2192 **Add Key** \u2192 **Create new key** \u2192 select **JSON**.
|
|
8115
|
+
|
|
8116
|
+
4. Download the generated JSON key file.
|
|
8117
|
+
|
|
8118
|
+
5. Copy the **entire contents** of the JSON file into an **encrypted authentication variable** in your IMP Agent Instance, using a structure like this:
|
|
8119
|
+
|
|
8120
|
+
\`\`\`json
|
|
8121
|
+
{
|
|
8122
|
+
"project": "project-name",
|
|
8123
|
+
"location": "europe-west1",
|
|
8124
|
+
"googleAuthOptions": {
|
|
8125
|
+
"credentials": {
|
|
8126
|
+
"type": "service_account",
|
|
8127
|
+
"project_id": "XX-XXXX",
|
|
8128
|
+
"private_key_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
8129
|
+
"private_key": "-----BEGIN PRIVATE KEY-----.....-----END PRIVATE KEY-----",
|
|
8130
|
+
"client_email": "xxxx@xxxx.gserviceaccount.com",
|
|
8131
|
+
"client_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
|
|
8132
|
+
"universe_domain": "googleapis.com"
|
|
8133
|
+
}
|
|
8134
|
+
}
|
|
8135
|
+
}
|
|
8136
|
+
\`\`\`
|
|
8137
|
+
`;
|
|
8107
8138
|
var vertexGemini25FlashAgent = new ExuluAgent2({
|
|
8108
8139
|
id: `default_vertex_gemini_2_5_flash_agent`,
|
|
8109
8140
|
name: `GEMINI-2.5-FLASH`,
|
|
@@ -8117,10 +8148,7 @@ var vertexGemini25FlashAgent = new ExuluAgent2({
|
|
|
8117
8148
|
audio: [".mpeg", ".mp3", ".m4a", ".wav", ".mp4"],
|
|
8118
8149
|
video: [".mp4", ".mpeg"]
|
|
8119
8150
|
},
|
|
8120
|
-
authenticationInformation:
|
|
8121
|
-
https://console.cloud.google.com/apis/credentials, create a service account, go to 'keys'
|
|
8122
|
-
and download the resulting JSON file, and copy the contents of the JSON file into an
|
|
8123
|
-
encrypted authentication variable in your IMP Agent Instance like this: ${wrapperJsonGoogleAuth}.`,
|
|
8151
|
+
authenticationInformation: vertexAuthenticationInformation,
|
|
8124
8152
|
maxContextLength: 1048576,
|
|
8125
8153
|
config: {
|
|
8126
8154
|
name: `GEMINI-2.5-FLASH`,
|
|
@@ -8138,8 +8166,46 @@ var vertexGemini25FlashAgent = new ExuluAgent2({
|
|
|
8138
8166
|
if (!googleAuthPayload.location) {
|
|
8139
8167
|
throw new Error("Location not set in authentication json for Google Vertex Gemini 2.5 Flash agent, should be for example 'europe-west1'");
|
|
8140
8168
|
}
|
|
8141
|
-
const
|
|
8142
|
-
const model =
|
|
8169
|
+
const vertex2 = createVertex(googleAuthPayload);
|
|
8170
|
+
const model = vertex2("gemini-2.5-flash");
|
|
8171
|
+
return model;
|
|
8172
|
+
}
|
|
8173
|
+
}
|
|
8174
|
+
}
|
|
8175
|
+
});
|
|
8176
|
+
var vertexGemini3ProAgent = new ExuluAgent2({
|
|
8177
|
+
id: `default_vertex_gemini_3_pro_agent`,
|
|
8178
|
+
name: `GEMINI-3-PRO`,
|
|
8179
|
+
provider: "vertex",
|
|
8180
|
+
description: `Google Vertex Gemini 3 Pro model. Very high intelligence and capability. Moderately Fast.`,
|
|
8181
|
+
type: "agent",
|
|
8182
|
+
capabilities: {
|
|
8183
|
+
text: true,
|
|
8184
|
+
images: [".png", ".jpg", ".jpeg", ".webp"],
|
|
8185
|
+
files: [".pdf", ".txt"],
|
|
8186
|
+
audio: [".mpeg", ".mp3", ".m4a", ".wav", ".mp4"],
|
|
8187
|
+
video: [".mp4", ".mpeg"]
|
|
8188
|
+
},
|
|
8189
|
+
authenticationInformation: vertexAuthenticationInformation,
|
|
8190
|
+
maxContextLength: 1048576,
|
|
8191
|
+
config: {
|
|
8192
|
+
name: `GEMINI-3-PRO`,
|
|
8193
|
+
instructions: "",
|
|
8194
|
+
model: {
|
|
8195
|
+
create: ({ apiKey }) => {
|
|
8196
|
+
console.log("[EXULU] apiKey", apiKey);
|
|
8197
|
+
if (!apiKey) {
|
|
8198
|
+
throw new Error("Auth credentials not found for Google Vertex agent, make sure you have set the provider api key to a valid google authentication json.");
|
|
8199
|
+
}
|
|
8200
|
+
const googleAuthPayload = JSON.parse(apiKey || "{}");
|
|
8201
|
+
if (!googleAuthPayload) {
|
|
8202
|
+
throw new Error("API key not found for Google Vertex Gemini 3 Pro agent.");
|
|
8203
|
+
}
|
|
8204
|
+
if (!googleAuthPayload.location) {
|
|
8205
|
+
throw new Error("Location not set in authentication json for Google Vertex Gemini 3 Pro agent, should be for example 'europe-west1'");
|
|
8206
|
+
}
|
|
8207
|
+
const vertex2 = createVertex(googleAuthPayload);
|
|
8208
|
+
const model = vertex2("gemini-3-pro-preview");
|
|
8143
8209
|
return model;
|
|
8144
8210
|
}
|
|
8145
8211
|
}
|
|
@@ -9560,6 +9626,7 @@ var ExuluApp = class {
|
|
|
9560
9626
|
claudeSonnet4Agent,
|
|
9561
9627
|
claudeOpus4Agent,
|
|
9562
9628
|
vertexGemini25FlashAgent,
|
|
9629
|
+
vertexGemini3ProAgent,
|
|
9563
9630
|
claudeSonnet45Agent,
|
|
9564
9631
|
gpt5MiniAgent,
|
|
9565
9632
|
gpt5agent,
|
|
@@ -11299,7 +11366,8 @@ var ExuluDefaultAgents = {
|
|
|
11299
11366
|
sonnet45: claudeSonnet45Agent
|
|
11300
11367
|
},
|
|
11301
11368
|
google: {
|
|
11302
|
-
vertexGemini25Flash: vertexGemini25FlashAgent
|
|
11369
|
+
vertexGemini25Flash: vertexGemini25FlashAgent,
|
|
11370
|
+
vertexGemini3Pro: vertexGemini3ProAgent
|
|
11303
11371
|
},
|
|
11304
11372
|
openai: {
|
|
11305
11373
|
gpt5Mini: gpt5MiniAgent,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exulu/backend",
|
|
3
3
|
"author": "Qventu Bv.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.36.1",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"private": false,
|
|
7
7
|
"publishConfig": {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"@opentelemetry/sdk-node": "^0.203.0",
|
|
68
68
|
"@opentelemetry/semantic-conventions": "^1.36.0",
|
|
69
69
|
"@opentelemetry/winston-transport": "^0.14.1",
|
|
70
|
-
"ai": "^5.0.
|
|
70
|
+
"ai": "^5.0.95",
|
|
71
71
|
"apollo-server": "^3.13.0",
|
|
72
72
|
"bcryptjs": "^3.0.2",
|
|
73
73
|
"body-parser": "^2.2.0",
|
package/types/models/context.ts
CHANGED