@exulu/backend 1.29.0 → 1.30.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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
- # [1.29.0](https://github.com/Qventu/exulu-backend/compare/v1.28.2...v1.29.0) (2025-10-28)
1
+ # [1.30.0](https://github.com/Qventu/exulu-backend/compare/v1.29.0...v1.30.0) (2025-10-28)
2
2
 
3
3
 
4
4
  ### Features
5
5
 
6
- * add agent animations, math tools, and improve file handling ([d335a7e](https://github.com/Qventu/exulu-backend/commit/d335a7e6c8454490d971ec63dc8486fcd60ef59b))
6
+ * add tool categorization system with search and pagination ([686b125](https://github.com/Qventu/exulu-backend/commit/686b1259001e7464e7fca8a5ab900170376db02b))
package/dist/index.cjs CHANGED
@@ -2532,11 +2532,14 @@ var addAgentFields = async (requestedFields, agents, result, tools, user) => {
2532
2532
  } else {
2533
2533
  hydrated = tools.find((t) => t.id === tool2.id);
2534
2534
  }
2535
- return {
2535
+ const hydratedTool = {
2536
2536
  ...tool2,
2537
2537
  name: hydrated?.name || "",
2538
- description: hydrated?.description || ""
2538
+ description: hydrated?.description || "",
2539
+ category: tool2?.category || "default"
2539
2540
  };
2541
+ console.log("[EXULU] hydratedTool", hydratedTool);
2542
+ return hydratedTool;
2540
2543
  }));
2541
2544
  result.tools = result.tools.filter((tool2) => tool2 !== null);
2542
2545
  } else {
@@ -3480,7 +3483,8 @@ type PageInfo {
3480
3483
  deleteJob(queue: QueueEnum!, id: String!): JobActionReturnPayload
3481
3484
  `;
3482
3485
  typeDefs += `
3483
- tools: ToolPaginationResult
3486
+ tools(search: String, category: String, limit: Int, page: Int): ToolPaginationResult
3487
+ toolCategories: [String!]!
3484
3488
  `;
3485
3489
  typeDefs += `
3486
3490
  jobs(queue: QueueEnum!, statusses: [JobStateEnum!]): JobPaginationResult
@@ -3800,6 +3804,7 @@ type PageInfo {
3800
3804
  };
3801
3805
  resolvers.Query["tools"] = async (_, args, context, info) => {
3802
3806
  const requestedFields = getRequestedFields(info);
3807
+ const { search, category, limit = 100, page = 0 } = args;
3803
3808
  const instances = await loadAgents();
3804
3809
  let agentTools = await Promise.all(
3805
3810
  instances.map(async (instance) => {
@@ -3811,16 +3816,39 @@ type PageInfo {
3811
3816
  })
3812
3817
  );
3813
3818
  const filtered = agentTools.filter((tool2) => tool2 !== null);
3819
+ let allTools = [...filtered, ...tools];
3820
+ if (search && search.trim()) {
3821
+ const searchTerm = search.toLowerCase().trim();
3822
+ allTools = allTools.filter(
3823
+ (tool2) => tool2.name?.toLowerCase().includes(searchTerm) || tool2.description?.toLowerCase().includes(searchTerm)
3824
+ );
3825
+ }
3826
+ if (category && category.trim()) {
3827
+ allTools = allTools.filter((tool2) => tool2.category === category);
3828
+ }
3829
+ const total = allTools.length;
3830
+ const start = page * limit;
3831
+ const end = start + limit;
3832
+ const paginatedTools = allTools.slice(start, end);
3814
3833
  return {
3815
- items: [...filtered, ...tools].map((tool2) => {
3834
+ items: paginatedTools.map((tool2) => {
3816
3835
  const object = {};
3817
3836
  requestedFields.forEach((field) => {
3818
3837
  object[field] = tool2[field];
3819
3838
  });
3820
3839
  return object;
3821
- })
3840
+ }),
3841
+ total,
3842
+ page,
3843
+ limit
3822
3844
  };
3823
3845
  };
3846
+ resolvers.Query["toolCategories"] = async () => {
3847
+ const array = tools.map((tool2) => tool2.category).filter((category) => category && typeof category === "string");
3848
+ array.push("contexts");
3849
+ array.push("agents");
3850
+ return [...new Set(array)].sort();
3851
+ };
3824
3852
  modelDefs += `
3825
3853
  type ProviderPaginationResult {
3826
3854
  items: [Provider]!
@@ -3859,6 +3887,9 @@ type PageInfo {
3859
3887
  modelDefs += `
3860
3888
  type ToolPaginationResult {
3861
3889
  items: [Tool]!
3890
+ total: Int!
3891
+ page: Int!
3892
+ limit: Int!
3862
3893
  }
3863
3894
  `;
3864
3895
  modelDefs += `
@@ -3968,6 +3999,7 @@ type Tool {
3968
3999
  id: ID!
3969
4000
  name: String!
3970
4001
  description: String
4002
+ category: String
3971
4003
  type: String
3972
4004
  config: JSON
3973
4005
  }
@@ -4856,6 +4888,7 @@ var ExuluAgent2 = class {
4856
4888
  id: agentInstance.id,
4857
4889
  name: `${agentInstance.name}`,
4858
4890
  type: "agent",
4891
+ category: "agents",
4859
4892
  inputSchema: import_zod.z.object({
4860
4893
  prompt: import_zod.z.string().describe("The prompt (usually a question for the agent) to send to the agent."),
4861
4894
  information: import_zod.z.string().describe("A summary of relevant context / information from the current session")
@@ -5284,13 +5317,15 @@ var ExuluTool2 = class {
5284
5317
  id;
5285
5318
  name;
5286
5319
  description;
5320
+ category;
5287
5321
  inputSchema;
5288
5322
  type;
5289
5323
  tool;
5290
5324
  config;
5291
- constructor({ id, name, description, inputSchema, type, execute: execute2, config }) {
5325
+ constructor({ id, name, description, category, inputSchema, type, execute: execute2, config }) {
5292
5326
  this.id = id;
5293
5327
  this.config = config;
5328
+ this.category = category || "default";
5294
5329
  this.name = name;
5295
5330
  this.description = description;
5296
5331
  this.inputSchema = inputSchema;
@@ -5719,6 +5754,7 @@ var ExuluContext = class {
5719
5754
  id: this.id,
5720
5755
  name: `${this.name}`,
5721
5756
  type: "context",
5757
+ category: "contexts",
5722
5758
  inputSchema: import_zod.z.object({
5723
5759
  query: import_zod.z.string()
5724
5760
  }),
@@ -8104,6 +8140,7 @@ var additionTool = new ExuluTool2({
8104
8140
  name: "Addition",
8105
8141
  description: "Adds two numbers together",
8106
8142
  type: "function",
8143
+ category: "math",
8107
8144
  config: [],
8108
8145
  inputSchema: import_zod4.z.object({
8109
8146
  firstNumber: import_zod4.z.number().describe("The first addend"),
@@ -8119,6 +8156,7 @@ var subtractionTool = new ExuluTool2({
8119
8156
  name: "Subtraction",
8120
8157
  description: "Subtracts the second number from the first number",
8121
8158
  type: "function",
8159
+ category: "math",
8122
8160
  config: [],
8123
8161
  inputSchema: import_zod4.z.object({
8124
8162
  minuend: import_zod4.z.number().describe("The number to subtract from (minuend)"),
@@ -8134,6 +8172,7 @@ var multiplicationTool = new ExuluTool2({
8134
8172
  name: "Multiplication",
8135
8173
  description: "Multiplies two numbers together",
8136
8174
  type: "function",
8175
+ category: "math",
8137
8176
  config: [],
8138
8177
  inputSchema: import_zod4.z.object({
8139
8178
  firstNumber: import_zod4.z.number().describe("The first number"),
@@ -8149,6 +8188,7 @@ var divisionTool = new ExuluTool2({
8149
8188
  name: "Division",
8150
8189
  description: "Divides the first number by the second number",
8151
8190
  type: "function",
8191
+ category: "math",
8152
8192
  config: [],
8153
8193
  inputSchema: import_zod4.z.object({
8154
8194
  numerator: import_zod4.z.number().describe("The number being divided (numerator)"),
@@ -8164,6 +8204,7 @@ var sumTool = new ExuluTool2({
8164
8204
  name: "Sum",
8165
8205
  description: "Adds any number of numbers together",
8166
8206
  type: "function",
8207
+ category: "math",
8167
8208
  config: [],
8168
8209
  inputSchema: import_zod4.z.object({
8169
8210
  numbers: import_zod4.z.array(import_zod4.z.number()).min(1).describe("Array of numbers to sum")
@@ -8178,6 +8219,7 @@ var moduloTool = new ExuluTool2({
8178
8219
  name: "Modulo",
8179
8220
  description: "Divides two numbers and returns the remainder",
8180
8221
  type: "function",
8222
+ category: "math",
8181
8223
  config: [],
8182
8224
  inputSchema: import_zod4.z.object({
8183
8225
  numerator: import_zod4.z.number().describe("The number being divided (numerator)"),
@@ -8193,6 +8235,7 @@ var meanTool = new ExuluTool2({
8193
8235
  name: "Mean",
8194
8236
  description: "Calculates the arithmetic mean of a list of numbers",
8195
8237
  type: "function",
8238
+ category: "math",
8196
8239
  config: [],
8197
8240
  inputSchema: import_zod4.z.object({
8198
8241
  numbers: import_zod4.z.array(import_zod4.z.number()).min(1).describe("Array of numbers to find the mean of")
@@ -8207,6 +8250,7 @@ var medianTool = new ExuluTool2({
8207
8250
  name: "Median",
8208
8251
  description: "Calculates the median of a list of numbers",
8209
8252
  type: "function",
8253
+ category: "math",
8210
8254
  config: [],
8211
8255
  inputSchema: import_zod4.z.object({
8212
8256
  numbers: import_zod4.z.array(import_zod4.z.number()).min(1).describe("Array of numbers to find the median of")
@@ -8221,6 +8265,7 @@ var modeTool = new ExuluTool2({
8221
8265
  name: "Mode",
8222
8266
  description: "Finds the most common number in a list of numbers",
8223
8267
  type: "function",
8268
+ category: "math",
8224
8269
  config: [],
8225
8270
  inputSchema: import_zod4.z.object({
8226
8271
  numbers: import_zod4.z.array(import_zod4.z.number()).describe("Array of numbers to find the mode of")
@@ -8235,6 +8280,7 @@ var minTool = new ExuluTool2({
8235
8280
  name: "Minimum",
8236
8281
  description: "Finds the minimum value from a list of numbers",
8237
8282
  type: "function",
8283
+ category: "math",
8238
8284
  config: [],
8239
8285
  inputSchema: import_zod4.z.object({
8240
8286
  numbers: import_zod4.z.array(import_zod4.z.number()).describe("Array of numbers to find the minimum of")
@@ -8249,6 +8295,7 @@ var maxTool = new ExuluTool2({
8249
8295
  name: "Maximum",
8250
8296
  description: "Finds the maximum value from a list of numbers",
8251
8297
  type: "function",
8298
+ category: "math",
8252
8299
  config: [],
8253
8300
  inputSchema: import_zod4.z.object({
8254
8301
  numbers: import_zod4.z.array(import_zod4.z.number()).describe("Array of numbers to find the maximum of")
@@ -8263,6 +8310,7 @@ var floorTool = new ExuluTool2({
8263
8310
  name: "Floor",
8264
8311
  description: "Rounds a number down to the nearest integer",
8265
8312
  type: "function",
8313
+ category: "math",
8266
8314
  config: [],
8267
8315
  inputSchema: import_zod4.z.object({
8268
8316
  number: import_zod4.z.number().describe("The number to round down")
@@ -8277,6 +8325,7 @@ var ceilingTool = new ExuluTool2({
8277
8325
  name: "Ceiling",
8278
8326
  description: "Rounds a number up to the nearest integer",
8279
8327
  type: "function",
8328
+ category: "math",
8280
8329
  config: [],
8281
8330
  inputSchema: import_zod4.z.object({
8282
8331
  number: import_zod4.z.number().describe("The number to round up")
@@ -8291,6 +8340,7 @@ var roundTool = new ExuluTool2({
8291
8340
  name: "Round",
8292
8341
  description: "Rounds a number to the nearest integer",
8293
8342
  type: "function",
8343
+ category: "math",
8294
8344
  config: [],
8295
8345
  inputSchema: import_zod4.z.object({
8296
8346
  number: import_zod4.z.number().describe("The number to round")
@@ -8305,6 +8355,7 @@ var sinTool = new ExuluTool2({
8305
8355
  name: "Sine",
8306
8356
  description: "Calculates the sine of a number in radians",
8307
8357
  type: "function",
8358
+ category: "math",
8308
8359
  config: [],
8309
8360
  inputSchema: import_zod4.z.object({
8310
8361
  number: import_zod4.z.number().describe("The number in radians to find the sine of")
@@ -8319,6 +8370,7 @@ var arcsinTool = new ExuluTool2({
8319
8370
  name: "Arcsine",
8320
8371
  description: "Calculates the arcsine of a number in radians",
8321
8372
  type: "function",
8373
+ category: "math",
8322
8374
  config: [],
8323
8375
  inputSchema: import_zod4.z.object({
8324
8376
  number: import_zod4.z.number().describe("The number to find the arcsine of")
@@ -8333,6 +8385,7 @@ var cosTool = new ExuluTool2({
8333
8385
  name: "Cosine",
8334
8386
  description: "Calculates the cosine of a number in radians",
8335
8387
  type: "function",
8388
+ category: "math",
8336
8389
  config: [],
8337
8390
  inputSchema: import_zod4.z.object({
8338
8391
  number: import_zod4.z.number().describe("The number in radians to find the cosine of")
@@ -8347,6 +8400,7 @@ var arccosTool = new ExuluTool2({
8347
8400
  name: "Arccosine",
8348
8401
  description: "Calculates the arccosine of a number in radians",
8349
8402
  type: "function",
8403
+ category: "math",
8350
8404
  config: [],
8351
8405
  inputSchema: import_zod4.z.object({
8352
8406
  number: import_zod4.z.number().describe("The number to find the arccosine of")
@@ -8361,6 +8415,7 @@ var tanTool = new ExuluTool2({
8361
8415
  name: "Tangent",
8362
8416
  description: "Calculates the tangent of a number in radians",
8363
8417
  type: "function",
8418
+ category: "math",
8364
8419
  config: [],
8365
8420
  inputSchema: import_zod4.z.object({
8366
8421
  number: import_zod4.z.number().describe("The number in radians to find the tangent of")
@@ -8375,6 +8430,7 @@ var arctanTool = new ExuluTool2({
8375
8430
  name: "Arctangent",
8376
8431
  description: "Calculates the arctangent of a number in radians",
8377
8432
  type: "function",
8433
+ category: "math",
8378
8434
  config: [],
8379
8435
  inputSchema: import_zod4.z.object({
8380
8436
  number: import_zod4.z.number().describe("The number to find the arctangent of")
@@ -8389,6 +8445,7 @@ var radiansToDegreesTool = new ExuluTool2({
8389
8445
  name: "Radians to Degrees",
8390
8446
  description: "Converts a radian value to its equivalent in degrees",
8391
8447
  type: "function",
8448
+ category: "math",
8392
8449
  config: [],
8393
8450
  inputSchema: import_zod4.z.object({
8394
8451
  number: import_zod4.z.number().describe("The number in radians to convert to degrees")
@@ -8403,6 +8460,7 @@ var degreesToRadiansTool = new ExuluTool2({
8403
8460
  name: "Degrees to Radians",
8404
8461
  description: "Converts a degree value to its equivalent in radians",
8405
8462
  type: "function",
8463
+ category: "math",
8406
8464
  config: [],
8407
8465
  inputSchema: import_zod4.z.object({
8408
8466
  number: import_zod4.z.number().describe("The number in degrees to convert to radians")
package/dist/index.d.cts CHANGED
@@ -469,6 +469,7 @@ declare class ExuluTool {
469
469
  id: string;
470
470
  name: string;
471
471
  description: string;
472
+ category: string;
472
473
  inputSchema?: z.ZodType;
473
474
  type: "context" | "function" | "agent";
474
475
  tool: Tool;
@@ -476,10 +477,11 @@ declare class ExuluTool {
476
477
  name: string;
477
478
  description: string;
478
479
  }[];
479
- constructor({ id, name, description, inputSchema, type, execute, config }: {
480
+ constructor({ id, name, description, category, inputSchema, type, execute, config }: {
480
481
  id: string;
481
482
  name: string;
482
483
  description: string;
484
+ category?: string;
483
485
  inputSchema?: z.ZodType;
484
486
  type: "context" | "function" | "agent";
485
487
  config: {
@@ -563,6 +565,7 @@ declare class ExuluContext {
563
565
  fields: ExuluContextFieldDefinition[];
564
566
  description: string;
565
567
  embedder?: ExuluEmbedder;
568
+ category?: string;
566
569
  active: boolean;
567
570
  rateLimit?: RateLimiterRule;
568
571
  queryRewriter?: (query: string) => Promise<string>;
package/dist/index.d.ts CHANGED
@@ -469,6 +469,7 @@ declare class ExuluTool {
469
469
  id: string;
470
470
  name: string;
471
471
  description: string;
472
+ category: string;
472
473
  inputSchema?: z.ZodType;
473
474
  type: "context" | "function" | "agent";
474
475
  tool: Tool;
@@ -476,10 +477,11 @@ declare class ExuluTool {
476
477
  name: string;
477
478
  description: string;
478
479
  }[];
479
- constructor({ id, name, description, inputSchema, type, execute, config }: {
480
+ constructor({ id, name, description, category, inputSchema, type, execute, config }: {
480
481
  id: string;
481
482
  name: string;
482
483
  description: string;
484
+ category?: string;
483
485
  inputSchema?: z.ZodType;
484
486
  type: "context" | "function" | "agent";
485
487
  config: {
@@ -563,6 +565,7 @@ declare class ExuluContext {
563
565
  fields: ExuluContextFieldDefinition[];
564
566
  description: string;
565
567
  embedder?: ExuluEmbedder;
568
+ category?: string;
566
569
  active: boolean;
567
570
  rateLimit?: RateLimiterRule;
568
571
  queryRewriter?: (query: string) => Promise<string>;
package/dist/index.js CHANGED
@@ -2480,11 +2480,14 @@ var addAgentFields = async (requestedFields, agents, result, tools, user) => {
2480
2480
  } else {
2481
2481
  hydrated = tools.find((t) => t.id === tool2.id);
2482
2482
  }
2483
- return {
2483
+ const hydratedTool = {
2484
2484
  ...tool2,
2485
2485
  name: hydrated?.name || "",
2486
- description: hydrated?.description || ""
2486
+ description: hydrated?.description || "",
2487
+ category: tool2?.category || "default"
2487
2488
  };
2489
+ console.log("[EXULU] hydratedTool", hydratedTool);
2490
+ return hydratedTool;
2488
2491
  }));
2489
2492
  result.tools = result.tools.filter((tool2) => tool2 !== null);
2490
2493
  } else {
@@ -3428,7 +3431,8 @@ type PageInfo {
3428
3431
  deleteJob(queue: QueueEnum!, id: String!): JobActionReturnPayload
3429
3432
  `;
3430
3433
  typeDefs += `
3431
- tools: ToolPaginationResult
3434
+ tools(search: String, category: String, limit: Int, page: Int): ToolPaginationResult
3435
+ toolCategories: [String!]!
3432
3436
  `;
3433
3437
  typeDefs += `
3434
3438
  jobs(queue: QueueEnum!, statusses: [JobStateEnum!]): JobPaginationResult
@@ -3748,6 +3752,7 @@ type PageInfo {
3748
3752
  };
3749
3753
  resolvers.Query["tools"] = async (_, args, context, info) => {
3750
3754
  const requestedFields = getRequestedFields(info);
3755
+ const { search, category, limit = 100, page = 0 } = args;
3751
3756
  const instances = await loadAgents();
3752
3757
  let agentTools = await Promise.all(
3753
3758
  instances.map(async (instance) => {
@@ -3759,16 +3764,39 @@ type PageInfo {
3759
3764
  })
3760
3765
  );
3761
3766
  const filtered = agentTools.filter((tool2) => tool2 !== null);
3767
+ let allTools = [...filtered, ...tools];
3768
+ if (search && search.trim()) {
3769
+ const searchTerm = search.toLowerCase().trim();
3770
+ allTools = allTools.filter(
3771
+ (tool2) => tool2.name?.toLowerCase().includes(searchTerm) || tool2.description?.toLowerCase().includes(searchTerm)
3772
+ );
3773
+ }
3774
+ if (category && category.trim()) {
3775
+ allTools = allTools.filter((tool2) => tool2.category === category);
3776
+ }
3777
+ const total = allTools.length;
3778
+ const start = page * limit;
3779
+ const end = start + limit;
3780
+ const paginatedTools = allTools.slice(start, end);
3762
3781
  return {
3763
- items: [...filtered, ...tools].map((tool2) => {
3782
+ items: paginatedTools.map((tool2) => {
3764
3783
  const object = {};
3765
3784
  requestedFields.forEach((field) => {
3766
3785
  object[field] = tool2[field];
3767
3786
  });
3768
3787
  return object;
3769
- })
3788
+ }),
3789
+ total,
3790
+ page,
3791
+ limit
3770
3792
  };
3771
3793
  };
3794
+ resolvers.Query["toolCategories"] = async () => {
3795
+ const array = tools.map((tool2) => tool2.category).filter((category) => category && typeof category === "string");
3796
+ array.push("contexts");
3797
+ array.push("agents");
3798
+ return [...new Set(array)].sort();
3799
+ };
3772
3800
  modelDefs += `
3773
3801
  type ProviderPaginationResult {
3774
3802
  items: [Provider]!
@@ -3807,6 +3835,9 @@ type PageInfo {
3807
3835
  modelDefs += `
3808
3836
  type ToolPaginationResult {
3809
3837
  items: [Tool]!
3838
+ total: Int!
3839
+ page: Int!
3840
+ limit: Int!
3810
3841
  }
3811
3842
  `;
3812
3843
  modelDefs += `
@@ -3916,6 +3947,7 @@ type Tool {
3916
3947
  id: ID!
3917
3948
  name: String!
3918
3949
  description: String
3950
+ category: String
3919
3951
  type: String
3920
3952
  config: JSON
3921
3953
  }
@@ -4823,6 +4855,7 @@ var ExuluAgent2 = class {
4823
4855
  id: agentInstance.id,
4824
4856
  name: `${agentInstance.name}`,
4825
4857
  type: "agent",
4858
+ category: "agents",
4826
4859
  inputSchema: z.object({
4827
4860
  prompt: z.string().describe("The prompt (usually a question for the agent) to send to the agent."),
4828
4861
  information: z.string().describe("A summary of relevant context / information from the current session")
@@ -5251,13 +5284,15 @@ var ExuluTool2 = class {
5251
5284
  id;
5252
5285
  name;
5253
5286
  description;
5287
+ category;
5254
5288
  inputSchema;
5255
5289
  type;
5256
5290
  tool;
5257
5291
  config;
5258
- constructor({ id, name, description, inputSchema, type, execute: execute2, config }) {
5292
+ constructor({ id, name, description, category, inputSchema, type, execute: execute2, config }) {
5259
5293
  this.id = id;
5260
5294
  this.config = config;
5295
+ this.category = category || "default";
5261
5296
  this.name = name;
5262
5297
  this.description = description;
5263
5298
  this.inputSchema = inputSchema;
@@ -5686,6 +5721,7 @@ var ExuluContext = class {
5686
5721
  id: this.id,
5687
5722
  name: `${this.name}`,
5688
5723
  type: "context",
5724
+ category: "contexts",
5689
5725
  inputSchema: z.object({
5690
5726
  query: z.string()
5691
5727
  }),
@@ -8071,6 +8107,7 @@ var additionTool = new ExuluTool2({
8071
8107
  name: "Addition",
8072
8108
  description: "Adds two numbers together",
8073
8109
  type: "function",
8110
+ category: "math",
8074
8111
  config: [],
8075
8112
  inputSchema: z4.object({
8076
8113
  firstNumber: z4.number().describe("The first addend"),
@@ -8086,6 +8123,7 @@ var subtractionTool = new ExuluTool2({
8086
8123
  name: "Subtraction",
8087
8124
  description: "Subtracts the second number from the first number",
8088
8125
  type: "function",
8126
+ category: "math",
8089
8127
  config: [],
8090
8128
  inputSchema: z4.object({
8091
8129
  minuend: z4.number().describe("The number to subtract from (minuend)"),
@@ -8101,6 +8139,7 @@ var multiplicationTool = new ExuluTool2({
8101
8139
  name: "Multiplication",
8102
8140
  description: "Multiplies two numbers together",
8103
8141
  type: "function",
8142
+ category: "math",
8104
8143
  config: [],
8105
8144
  inputSchema: z4.object({
8106
8145
  firstNumber: z4.number().describe("The first number"),
@@ -8116,6 +8155,7 @@ var divisionTool = new ExuluTool2({
8116
8155
  name: "Division",
8117
8156
  description: "Divides the first number by the second number",
8118
8157
  type: "function",
8158
+ category: "math",
8119
8159
  config: [],
8120
8160
  inputSchema: z4.object({
8121
8161
  numerator: z4.number().describe("The number being divided (numerator)"),
@@ -8131,6 +8171,7 @@ var sumTool = new ExuluTool2({
8131
8171
  name: "Sum",
8132
8172
  description: "Adds any number of numbers together",
8133
8173
  type: "function",
8174
+ category: "math",
8134
8175
  config: [],
8135
8176
  inputSchema: z4.object({
8136
8177
  numbers: z4.array(z4.number()).min(1).describe("Array of numbers to sum")
@@ -8145,6 +8186,7 @@ var moduloTool = new ExuluTool2({
8145
8186
  name: "Modulo",
8146
8187
  description: "Divides two numbers and returns the remainder",
8147
8188
  type: "function",
8189
+ category: "math",
8148
8190
  config: [],
8149
8191
  inputSchema: z4.object({
8150
8192
  numerator: z4.number().describe("The number being divided (numerator)"),
@@ -8160,6 +8202,7 @@ var meanTool = new ExuluTool2({
8160
8202
  name: "Mean",
8161
8203
  description: "Calculates the arithmetic mean of a list of numbers",
8162
8204
  type: "function",
8205
+ category: "math",
8163
8206
  config: [],
8164
8207
  inputSchema: z4.object({
8165
8208
  numbers: z4.array(z4.number()).min(1).describe("Array of numbers to find the mean of")
@@ -8174,6 +8217,7 @@ var medianTool = new ExuluTool2({
8174
8217
  name: "Median",
8175
8218
  description: "Calculates the median of a list of numbers",
8176
8219
  type: "function",
8220
+ category: "math",
8177
8221
  config: [],
8178
8222
  inputSchema: z4.object({
8179
8223
  numbers: z4.array(z4.number()).min(1).describe("Array of numbers to find the median of")
@@ -8188,6 +8232,7 @@ var modeTool = new ExuluTool2({
8188
8232
  name: "Mode",
8189
8233
  description: "Finds the most common number in a list of numbers",
8190
8234
  type: "function",
8235
+ category: "math",
8191
8236
  config: [],
8192
8237
  inputSchema: z4.object({
8193
8238
  numbers: z4.array(z4.number()).describe("Array of numbers to find the mode of")
@@ -8202,6 +8247,7 @@ var minTool = new ExuluTool2({
8202
8247
  name: "Minimum",
8203
8248
  description: "Finds the minimum value from a list of numbers",
8204
8249
  type: "function",
8250
+ category: "math",
8205
8251
  config: [],
8206
8252
  inputSchema: z4.object({
8207
8253
  numbers: z4.array(z4.number()).describe("Array of numbers to find the minimum of")
@@ -8216,6 +8262,7 @@ var maxTool = new ExuluTool2({
8216
8262
  name: "Maximum",
8217
8263
  description: "Finds the maximum value from a list of numbers",
8218
8264
  type: "function",
8265
+ category: "math",
8219
8266
  config: [],
8220
8267
  inputSchema: z4.object({
8221
8268
  numbers: z4.array(z4.number()).describe("Array of numbers to find the maximum of")
@@ -8230,6 +8277,7 @@ var floorTool = new ExuluTool2({
8230
8277
  name: "Floor",
8231
8278
  description: "Rounds a number down to the nearest integer",
8232
8279
  type: "function",
8280
+ category: "math",
8233
8281
  config: [],
8234
8282
  inputSchema: z4.object({
8235
8283
  number: z4.number().describe("The number to round down")
@@ -8244,6 +8292,7 @@ var ceilingTool = new ExuluTool2({
8244
8292
  name: "Ceiling",
8245
8293
  description: "Rounds a number up to the nearest integer",
8246
8294
  type: "function",
8295
+ category: "math",
8247
8296
  config: [],
8248
8297
  inputSchema: z4.object({
8249
8298
  number: z4.number().describe("The number to round up")
@@ -8258,6 +8307,7 @@ var roundTool = new ExuluTool2({
8258
8307
  name: "Round",
8259
8308
  description: "Rounds a number to the nearest integer",
8260
8309
  type: "function",
8310
+ category: "math",
8261
8311
  config: [],
8262
8312
  inputSchema: z4.object({
8263
8313
  number: z4.number().describe("The number to round")
@@ -8272,6 +8322,7 @@ var sinTool = new ExuluTool2({
8272
8322
  name: "Sine",
8273
8323
  description: "Calculates the sine of a number in radians",
8274
8324
  type: "function",
8325
+ category: "math",
8275
8326
  config: [],
8276
8327
  inputSchema: z4.object({
8277
8328
  number: z4.number().describe("The number in radians to find the sine of")
@@ -8286,6 +8337,7 @@ var arcsinTool = new ExuluTool2({
8286
8337
  name: "Arcsine",
8287
8338
  description: "Calculates the arcsine of a number in radians",
8288
8339
  type: "function",
8340
+ category: "math",
8289
8341
  config: [],
8290
8342
  inputSchema: z4.object({
8291
8343
  number: z4.number().describe("The number to find the arcsine of")
@@ -8300,6 +8352,7 @@ var cosTool = new ExuluTool2({
8300
8352
  name: "Cosine",
8301
8353
  description: "Calculates the cosine of a number in radians",
8302
8354
  type: "function",
8355
+ category: "math",
8303
8356
  config: [],
8304
8357
  inputSchema: z4.object({
8305
8358
  number: z4.number().describe("The number in radians to find the cosine of")
@@ -8314,6 +8367,7 @@ var arccosTool = new ExuluTool2({
8314
8367
  name: "Arccosine",
8315
8368
  description: "Calculates the arccosine of a number in radians",
8316
8369
  type: "function",
8370
+ category: "math",
8317
8371
  config: [],
8318
8372
  inputSchema: z4.object({
8319
8373
  number: z4.number().describe("The number to find the arccosine of")
@@ -8328,6 +8382,7 @@ var tanTool = new ExuluTool2({
8328
8382
  name: "Tangent",
8329
8383
  description: "Calculates the tangent of a number in radians",
8330
8384
  type: "function",
8385
+ category: "math",
8331
8386
  config: [],
8332
8387
  inputSchema: z4.object({
8333
8388
  number: z4.number().describe("The number in radians to find the tangent of")
@@ -8342,6 +8397,7 @@ var arctanTool = new ExuluTool2({
8342
8397
  name: "Arctangent",
8343
8398
  description: "Calculates the arctangent of a number in radians",
8344
8399
  type: "function",
8400
+ category: "math",
8345
8401
  config: [],
8346
8402
  inputSchema: z4.object({
8347
8403
  number: z4.number().describe("The number to find the arctangent of")
@@ -8356,6 +8412,7 @@ var radiansToDegreesTool = new ExuluTool2({
8356
8412
  name: "Radians to Degrees",
8357
8413
  description: "Converts a radian value to its equivalent in degrees",
8358
8414
  type: "function",
8415
+ category: "math",
8359
8416
  config: [],
8360
8417
  inputSchema: z4.object({
8361
8418
  number: z4.number().describe("The number in radians to convert to degrees")
@@ -8370,6 +8427,7 @@ var degreesToRadiansTool = new ExuluTool2({
8370
8427
  name: "Degrees to Radians",
8371
8428
  description: "Converts a degree value to its equivalent in radians",
8372
8429
  type: "function",
8430
+ category: "math",
8373
8431
  config: [],
8374
8432
  inputSchema: z4.object({
8375
8433
  number: z4.number().describe("The number in degrees to convert to radians")
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@exulu/backend",
3
3
  "author": "Qventu Bv.",
4
- "version": "1.29.0",
4
+ "version": "1.30.0",
5
5
  "main": "./dist/index.js",
6
6
  "private": false,
7
7
  "publishConfig": {
@@ -5,4 +5,5 @@ export interface Tool {
5
5
  type: string;
6
6
  inputSchema: any;
7
7
  outputSchema: any;
8
+ category: string;
8
9
  }