@agentforge/core 0.18.3 → 0.18.5

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/index.cjs CHANGED
@@ -400,36 +400,28 @@ function getMissingDescriptions(schema) {
400
400
  }
401
401
 
402
402
  // src/tools/helpers.ts
403
- function createTool(metadata, schema, invoke) {
403
+ function constructTool(metadata, schema, invoke, shouldValidateSchemaDescriptions) {
404
404
  const metadataResult = validateToolMetadata(metadata);
405
405
  if (!metadataResult.success) {
406
406
  const errors = metadataResult.error.errors.map((err) => ` - ${err.path.join(".")}: ${err.message}`).join("\n");
407
407
  throw new Error(`Invalid tool metadata:
408
408
  ${errors}`);
409
409
  }
410
- validateSchemaDescriptions(schema);
411
- const tool = {
410
+ if (shouldValidateSchemaDescriptions) {
411
+ validateSchemaDescriptions(schema);
412
+ }
413
+ return {
412
414
  metadata: metadataResult.data,
413
415
  schema,
414
- invoke
416
+ invoke,
417
+ execute: invoke
415
418
  };
416
- tool.execute = invoke;
417
- return tool;
419
+ }
420
+ function createTool(metadata, schema, invoke) {
421
+ return constructTool(metadata, schema, invoke, true);
418
422
  }
419
423
  function createToolUnsafe(metadata, schema, invoke) {
420
- const metadataResult = validateToolMetadata(metadata);
421
- if (!metadataResult.success) {
422
- const errors = metadataResult.error.errors.map((err) => ` - ${err.path.join(".")}: ${err.message}`).join("\n");
423
- throw new Error(`Invalid tool metadata:
424
- ${errors}`);
425
- }
426
- const tool = {
427
- metadata: metadataResult.data,
428
- schema,
429
- invoke
430
- };
431
- tool.execute = invoke;
432
- return tool;
424
+ return constructTool(metadata, schema, invoke, false);
433
425
  }
434
426
  function validateTool(tool) {
435
427
  const errors = [];
@@ -780,6 +772,29 @@ function emitRegistryEvent(eventHandlers, event, data) {
780
772
  });
781
773
  }
782
774
 
775
+ // src/tools/registry-collection.ts
776
+ function getAllRegistryTools(tools) {
777
+ return Array.from(tools.values());
778
+ }
779
+ function getRegistryToolNames(tools) {
780
+ return Array.from(tools.keys());
781
+ }
782
+ function getRegistryToolsByCategory(tools, category) {
783
+ return getAllRegistryTools(tools).filter((tool) => tool.metadata.category === category);
784
+ }
785
+ function getRegistryToolsByTag(tools, tag) {
786
+ return getAllRegistryTools(tools).filter((tool) => tool.metadata.tags?.includes(tag));
787
+ }
788
+ function searchRegistryTools(tools, query) {
789
+ const lowerQuery = query.toLowerCase();
790
+ return getAllRegistryTools(tools).filter((tool) => {
791
+ const name = tool.metadata.name.toLowerCase();
792
+ const displayName = tool.metadata.displayName?.toLowerCase() ?? "";
793
+ const description = tool.metadata.description.toLowerCase();
794
+ return name.includes(lowerQuery) || displayName.includes(lowerQuery) || description.includes(lowerQuery);
795
+ });
796
+ }
797
+
783
798
  // src/tools/registry-mutations.ts
784
799
  function eraseToolType(tool) {
785
800
  return tool;
@@ -853,40 +868,6 @@ function clearRegistryTools(tools, emit, events) {
853
868
  emit(events.cleared, null);
854
869
  }
855
870
 
856
- // src/tools/registry-mutation-api.ts
857
- function createRegistryMutationApi(tools, emit, events) {
858
- return {
859
- register: (tool) => registerRegistryTool(tools, tool, emit, events),
860
- remove: (name) => removeRegistryTool(tools, name, emit, events),
861
- update: (name, tool) => updateRegistryTool(tools, name, tool, emit, events),
862
- registerMany: (toolsToRegister) => registerManyRegistryTools(tools, toolsToRegister, emit, events),
863
- clear: () => clearRegistryTools(tools, emit, events)
864
- };
865
- }
866
-
867
- // src/tools/registry-collection.ts
868
- function getAllRegistryTools(tools) {
869
- return Array.from(tools.values());
870
- }
871
- function getRegistryToolNames(tools) {
872
- return Array.from(tools.keys());
873
- }
874
- function getRegistryToolsByCategory(tools, category) {
875
- return getAllRegistryTools(tools).filter((tool) => tool.metadata.category === category);
876
- }
877
- function getRegistryToolsByTag(tools, tag) {
878
- return getAllRegistryTools(tools).filter((tool) => tool.metadata.tags?.includes(tag));
879
- }
880
- function searchRegistryTools(tools, query) {
881
- const lowerQuery = query.toLowerCase();
882
- return getAllRegistryTools(tools).filter((tool) => {
883
- const name = tool.metadata.name.toLowerCase();
884
- const displayName = tool.metadata.displayName?.toLowerCase() ?? "";
885
- const description = tool.metadata.description.toLowerCase();
886
- return name.includes(lowerQuery) || displayName.includes(lowerQuery) || description.includes(lowerQuery);
887
- });
888
- }
889
-
890
871
  // src/tools/registry-prompt.ts
891
872
  var import_zod3 = require("zod");
892
873
 
@@ -1149,22 +1130,6 @@ function getSchemaShape(schema) {
1149
1130
  return void 0;
1150
1131
  }
1151
1132
 
1152
- // src/tools/registry-query-api.ts
1153
- function createRegistryQueryApi(tools) {
1154
- return {
1155
- get: (name) => tools.get(name),
1156
- has: (name) => tools.has(name),
1157
- getAll: () => getAllRegistryTools(tools),
1158
- getByCategory: (category) => getRegistryToolsByCategory(tools, category),
1159
- getByTag: (tag) => getRegistryToolsByTag(tools, tag),
1160
- search: (query) => searchRegistryTools(tools, query),
1161
- size: () => tools.size,
1162
- getNames: () => getRegistryToolNames(tools),
1163
- toLangChainTools: () => convertRegistryToolsToLangChain(getAllRegistryTools(tools)),
1164
- generatePrompt: (options = {}) => generateRegistryPrompt(getAllRegistryTools(tools), options)
1165
- };
1166
- }
1167
-
1168
1133
  // src/tools/registry-types.ts
1169
1134
  var RegistryEvent = /* @__PURE__ */ ((RegistryEvent2) => {
1170
1135
  RegistryEvent2["TOOL_REGISTERED"] = "tool:registered";
@@ -1187,50 +1152,44 @@ var ToolRegistry = class {
1187
1152
  emitMutation = (event, data) => {
1188
1153
  this.emit(event, data);
1189
1154
  };
1190
- mutations;
1191
- queries;
1192
- constructor() {
1193
- this.mutations = createRegistryMutationApi(this.tools, this.emitMutation, this.mutationEvents);
1194
- this.queries = createRegistryQueryApi(this.tools);
1195
- }
1196
1155
  register(tool) {
1197
- this.mutations.register(tool);
1156
+ registerRegistryTool(this.tools, tool, this.emitMutation, this.mutationEvents);
1198
1157
  }
1199
1158
  get(name) {
1200
- return this.queries.get(name);
1159
+ return this.tools.get(name);
1201
1160
  }
1202
1161
  has(name) {
1203
- return this.queries.has(name);
1162
+ return this.tools.has(name);
1204
1163
  }
1205
1164
  remove(name) {
1206
- return this.mutations.remove(name);
1165
+ return removeRegistryTool(this.tools, name, this.emitMutation, this.mutationEvents);
1207
1166
  }
1208
1167
  update(name, tool) {
1209
- return this.mutations.update(name, tool);
1168
+ return updateRegistryTool(this.tools, name, tool, this.emitMutation, this.mutationEvents);
1210
1169
  }
1211
1170
  getAll() {
1212
- return this.queries.getAll();
1171
+ return getAllRegistryTools(this.tools);
1213
1172
  }
1214
1173
  getByCategory(category) {
1215
- return this.queries.getByCategory(category);
1174
+ return getRegistryToolsByCategory(this.tools, category);
1216
1175
  }
1217
1176
  getByTag(tag) {
1218
- return this.queries.getByTag(tag);
1177
+ return getRegistryToolsByTag(this.tools, tag);
1219
1178
  }
1220
1179
  search(query) {
1221
- return this.queries.search(query);
1180
+ return searchRegistryTools(this.tools, query);
1222
1181
  }
1223
1182
  registerMany(tools) {
1224
- this.mutations.registerMany(tools);
1183
+ registerManyRegistryTools(this.tools, tools, this.emitMutation, this.mutationEvents);
1225
1184
  }
1226
1185
  clear() {
1227
- this.mutations.clear();
1186
+ clearRegistryTools(this.tools, this.emitMutation, this.mutationEvents);
1228
1187
  }
1229
1188
  size() {
1230
- return this.queries.size();
1189
+ return this.tools.size;
1231
1190
  }
1232
1191
  getNames() {
1233
- return this.queries.getNames();
1192
+ return getRegistryToolNames(this.tools);
1234
1193
  }
1235
1194
  on(event, handler) {
1236
1195
  addRegistryEventHandler(this.eventHandlers, event, handler);
@@ -1242,10 +1201,10 @@ var ToolRegistry = class {
1242
1201
  emitRegistryEvent(this.eventHandlers, event, data);
1243
1202
  }
1244
1203
  toLangChainTools() {
1245
- return this.queries.toLangChainTools();
1204
+ return convertRegistryToolsToLangChain(getAllRegistryTools(this.tools));
1246
1205
  }
1247
1206
  generatePrompt(options = {}) {
1248
- return this.queries.generatePrompt(options);
1207
+ return generateRegistryPrompt(getAllRegistryTools(this.tools), options);
1249
1208
  }
1250
1209
  };
1251
1210
 
package/dist/index.d.cts CHANGED
@@ -708,9 +708,6 @@ declare class ToolRegistry {
708
708
  private eventHandlers;
709
709
  private readonly mutationEvents;
710
710
  private readonly emitMutation;
711
- private readonly mutations;
712
- private readonly queries;
713
- constructor();
714
711
  register<TInput, TOutput>(tool: Tool<TInput, TOutput>): void;
715
712
  get(name: string): RegistryTool | undefined;
716
713
  has(name: string): boolean;
package/dist/index.d.ts CHANGED
@@ -708,9 +708,6 @@ declare class ToolRegistry {
708
708
  private eventHandlers;
709
709
  private readonly mutationEvents;
710
710
  private readonly emitMutation;
711
- private readonly mutations;
712
- private readonly queries;
713
- constructor();
714
711
  register<TInput, TOutput>(tool: Tool<TInput, TOutput>): void;
715
712
  get(name: string): RegistryTool | undefined;
716
713
  has(name: string): boolean;
package/dist/index.js CHANGED
@@ -224,36 +224,28 @@ function getMissingDescriptions(schema) {
224
224
  }
225
225
 
226
226
  // src/tools/helpers.ts
227
- function createTool(metadata, schema, invoke) {
227
+ function constructTool(metadata, schema, invoke, shouldValidateSchemaDescriptions) {
228
228
  const metadataResult = validateToolMetadata(metadata);
229
229
  if (!metadataResult.success) {
230
230
  const errors = metadataResult.error.errors.map((err) => ` - ${err.path.join(".")}: ${err.message}`).join("\n");
231
231
  throw new Error(`Invalid tool metadata:
232
232
  ${errors}`);
233
233
  }
234
- validateSchemaDescriptions(schema);
235
- const tool = {
234
+ if (shouldValidateSchemaDescriptions) {
235
+ validateSchemaDescriptions(schema);
236
+ }
237
+ return {
236
238
  metadata: metadataResult.data,
237
239
  schema,
238
- invoke
240
+ invoke,
241
+ execute: invoke
239
242
  };
240
- tool.execute = invoke;
241
- return tool;
243
+ }
244
+ function createTool(metadata, schema, invoke) {
245
+ return constructTool(metadata, schema, invoke, true);
242
246
  }
243
247
  function createToolUnsafe(metadata, schema, invoke) {
244
- const metadataResult = validateToolMetadata(metadata);
245
- if (!metadataResult.success) {
246
- const errors = metadataResult.error.errors.map((err) => ` - ${err.path.join(".")}: ${err.message}`).join("\n");
247
- throw new Error(`Invalid tool metadata:
248
- ${errors}`);
249
- }
250
- const tool = {
251
- metadata: metadataResult.data,
252
- schema,
253
- invoke
254
- };
255
- tool.execute = invoke;
256
- return tool;
248
+ return constructTool(metadata, schema, invoke, false);
257
249
  }
258
250
  function validateTool(tool) {
259
251
  const errors = [];
@@ -604,6 +596,29 @@ function emitRegistryEvent(eventHandlers, event, data) {
604
596
  });
605
597
  }
606
598
 
599
+ // src/tools/registry-collection.ts
600
+ function getAllRegistryTools(tools) {
601
+ return Array.from(tools.values());
602
+ }
603
+ function getRegistryToolNames(tools) {
604
+ return Array.from(tools.keys());
605
+ }
606
+ function getRegistryToolsByCategory(tools, category) {
607
+ return getAllRegistryTools(tools).filter((tool) => tool.metadata.category === category);
608
+ }
609
+ function getRegistryToolsByTag(tools, tag) {
610
+ return getAllRegistryTools(tools).filter((tool) => tool.metadata.tags?.includes(tag));
611
+ }
612
+ function searchRegistryTools(tools, query) {
613
+ const lowerQuery = query.toLowerCase();
614
+ return getAllRegistryTools(tools).filter((tool) => {
615
+ const name = tool.metadata.name.toLowerCase();
616
+ const displayName = tool.metadata.displayName?.toLowerCase() ?? "";
617
+ const description = tool.metadata.description.toLowerCase();
618
+ return name.includes(lowerQuery) || displayName.includes(lowerQuery) || description.includes(lowerQuery);
619
+ });
620
+ }
621
+
607
622
  // src/tools/registry-mutations.ts
608
623
  function eraseToolType(tool) {
609
624
  return tool;
@@ -677,40 +692,6 @@ function clearRegistryTools(tools, emit, events) {
677
692
  emit(events.cleared, null);
678
693
  }
679
694
 
680
- // src/tools/registry-mutation-api.ts
681
- function createRegistryMutationApi(tools, emit, events) {
682
- return {
683
- register: (tool) => registerRegistryTool(tools, tool, emit, events),
684
- remove: (name) => removeRegistryTool(tools, name, emit, events),
685
- update: (name, tool) => updateRegistryTool(tools, name, tool, emit, events),
686
- registerMany: (toolsToRegister) => registerManyRegistryTools(tools, toolsToRegister, emit, events),
687
- clear: () => clearRegistryTools(tools, emit, events)
688
- };
689
- }
690
-
691
- // src/tools/registry-collection.ts
692
- function getAllRegistryTools(tools) {
693
- return Array.from(tools.values());
694
- }
695
- function getRegistryToolNames(tools) {
696
- return Array.from(tools.keys());
697
- }
698
- function getRegistryToolsByCategory(tools, category) {
699
- return getAllRegistryTools(tools).filter((tool) => tool.metadata.category === category);
700
- }
701
- function getRegistryToolsByTag(tools, tag) {
702
- return getAllRegistryTools(tools).filter((tool) => tool.metadata.tags?.includes(tag));
703
- }
704
- function searchRegistryTools(tools, query) {
705
- const lowerQuery = query.toLowerCase();
706
- return getAllRegistryTools(tools).filter((tool) => {
707
- const name = tool.metadata.name.toLowerCase();
708
- const displayName = tool.metadata.displayName?.toLowerCase() ?? "";
709
- const description = tool.metadata.description.toLowerCase();
710
- return name.includes(lowerQuery) || displayName.includes(lowerQuery) || description.includes(lowerQuery);
711
- });
712
- }
713
-
714
695
  // src/tools/registry-prompt.ts
715
696
  import { z as z3 } from "zod";
716
697
 
@@ -973,22 +954,6 @@ function getSchemaShape(schema) {
973
954
  return void 0;
974
955
  }
975
956
 
976
- // src/tools/registry-query-api.ts
977
- function createRegistryQueryApi(tools) {
978
- return {
979
- get: (name) => tools.get(name),
980
- has: (name) => tools.has(name),
981
- getAll: () => getAllRegistryTools(tools),
982
- getByCategory: (category) => getRegistryToolsByCategory(tools, category),
983
- getByTag: (tag) => getRegistryToolsByTag(tools, tag),
984
- search: (query) => searchRegistryTools(tools, query),
985
- size: () => tools.size,
986
- getNames: () => getRegistryToolNames(tools),
987
- toLangChainTools: () => convertRegistryToolsToLangChain(getAllRegistryTools(tools)),
988
- generatePrompt: (options = {}) => generateRegistryPrompt(getAllRegistryTools(tools), options)
989
- };
990
- }
991
-
992
957
  // src/tools/registry-types.ts
993
958
  var RegistryEvent = /* @__PURE__ */ ((RegistryEvent2) => {
994
959
  RegistryEvent2["TOOL_REGISTERED"] = "tool:registered";
@@ -1011,50 +976,44 @@ var ToolRegistry = class {
1011
976
  emitMutation = (event, data) => {
1012
977
  this.emit(event, data);
1013
978
  };
1014
- mutations;
1015
- queries;
1016
- constructor() {
1017
- this.mutations = createRegistryMutationApi(this.tools, this.emitMutation, this.mutationEvents);
1018
- this.queries = createRegistryQueryApi(this.tools);
1019
- }
1020
979
  register(tool) {
1021
- this.mutations.register(tool);
980
+ registerRegistryTool(this.tools, tool, this.emitMutation, this.mutationEvents);
1022
981
  }
1023
982
  get(name) {
1024
- return this.queries.get(name);
983
+ return this.tools.get(name);
1025
984
  }
1026
985
  has(name) {
1027
- return this.queries.has(name);
986
+ return this.tools.has(name);
1028
987
  }
1029
988
  remove(name) {
1030
- return this.mutations.remove(name);
989
+ return removeRegistryTool(this.tools, name, this.emitMutation, this.mutationEvents);
1031
990
  }
1032
991
  update(name, tool) {
1033
- return this.mutations.update(name, tool);
992
+ return updateRegistryTool(this.tools, name, tool, this.emitMutation, this.mutationEvents);
1034
993
  }
1035
994
  getAll() {
1036
- return this.queries.getAll();
995
+ return getAllRegistryTools(this.tools);
1037
996
  }
1038
997
  getByCategory(category) {
1039
- return this.queries.getByCategory(category);
998
+ return getRegistryToolsByCategory(this.tools, category);
1040
999
  }
1041
1000
  getByTag(tag) {
1042
- return this.queries.getByTag(tag);
1001
+ return getRegistryToolsByTag(this.tools, tag);
1043
1002
  }
1044
1003
  search(query) {
1045
- return this.queries.search(query);
1004
+ return searchRegistryTools(this.tools, query);
1046
1005
  }
1047
1006
  registerMany(tools) {
1048
- this.mutations.registerMany(tools);
1007
+ registerManyRegistryTools(this.tools, tools, this.emitMutation, this.mutationEvents);
1049
1008
  }
1050
1009
  clear() {
1051
- this.mutations.clear();
1010
+ clearRegistryTools(this.tools, this.emitMutation, this.mutationEvents);
1052
1011
  }
1053
1012
  size() {
1054
- return this.queries.size();
1013
+ return this.tools.size;
1055
1014
  }
1056
1015
  getNames() {
1057
- return this.queries.getNames();
1016
+ return getRegistryToolNames(this.tools);
1058
1017
  }
1059
1018
  on(event, handler) {
1060
1019
  addRegistryEventHandler(this.eventHandlers, event, handler);
@@ -1066,10 +1025,10 @@ var ToolRegistry = class {
1066
1025
  emitRegistryEvent(this.eventHandlers, event, data);
1067
1026
  }
1068
1027
  toLangChainTools() {
1069
- return this.queries.toLangChainTools();
1028
+ return convertRegistryToolsToLangChain(getAllRegistryTools(this.tools));
1070
1029
  }
1071
1030
  generatePrompt(options = {}) {
1072
- return this.queries.generatePrompt(options);
1031
+ return generateRegistryPrompt(getAllRegistryTools(this.tools), options);
1073
1032
  }
1074
1033
  };
1075
1034
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentforge/core",
3
- "version": "0.18.3",
3
+ "version": "0.18.5",
4
4
  "description": "Production-ready TypeScript agent framework built on LangGraph with orchestration, middleware, and typed abstractions.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",