@axiom-lattice/core 1.0.38 → 1.0.39

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.js CHANGED
@@ -412,6 +412,7 @@ var import_zod = __toESM(require("zod"));
412
412
 
413
413
  // src/tool_lattice/ToolLatticeManager.ts
414
414
  var import_tools = require("@langchain/core/tools");
415
+ var import_langgraph = require("@langchain/langgraph");
415
416
  var ToolLatticeManager = class _ToolLatticeManager extends BaseLatticeManager {
416
417
  /**
417
418
  * 获取ToolLatticeManager单例实例
@@ -439,6 +440,24 @@ var ToolLatticeManager = class _ToolLatticeManager extends BaseLatticeManager {
439
440
  const result = await executor(input, exe_config);
440
441
  return result;
441
442
  };
443
+ if (config.needUserApprove) {
444
+ toolExecutor = async (input, exe_config) => {
445
+ const contents = [
446
+ "```confirm",
447
+ JSON.stringify({
448
+ message: "try to " + config.name + ",please confirm the action"
449
+ }),
450
+ "```"
451
+ ].join("\n");
452
+ const feedback = await (0, import_langgraph.interrupt)(contents);
453
+ if (feedback.data.action === "yes") {
454
+ const result = await executor(input, exe_config);
455
+ return result;
456
+ } else {
457
+ return "user denied the action";
458
+ }
459
+ };
460
+ }
442
461
  const toolLattice = {
443
462
  key,
444
463
  config,
@@ -610,7 +629,7 @@ var import_protocols = require("@axiom-lattice/protocols");
610
629
  var import_prebuilt = require("@langchain/langgraph/prebuilt");
611
630
 
612
631
  // src/memory_lattice/DefaultMemorySaver.ts
613
- var import_langgraph = require("@langchain/langgraph");
632
+ var import_langgraph2 = require("@langchain/langgraph");
614
633
 
615
634
  // src/memory_lattice/MemoryLatticeManager.ts
616
635
  var import_protocols2 = require("@axiom-lattice/protocols");
@@ -686,20 +705,20 @@ var getCheckpointSaver = (key) => MemoryLatticeManager.getInstance().getCheckpoi
686
705
  var registerCheckpointSaver = (key, saver) => MemoryLatticeManager.getInstance().registerCheckpointSaver(key, saver);
687
706
 
688
707
  // src/memory_lattice/DefaultMemorySaver.ts
689
- var memory = new import_langgraph.MemorySaver();
708
+ var memory = new import_langgraph2.MemorySaver();
690
709
  registerCheckpointSaver("default", memory);
691
710
 
692
711
  // src/agent_lattice/builders/state.ts
693
712
  var import_zod3 = require("@langchain/langgraph/zod");
694
- var import_langgraph2 = require("@langchain/langgraph");
713
+ var import_langgraph3 = require("@langchain/langgraph");
695
714
  var import_zod4 = require("zod");
696
- var ReActAgentState = import_langgraph2.MessagesZodState.extend({
715
+ var ReActAgentState = import_langgraph3.MessagesZodState.extend({
697
716
  files: import_zod4.z.object({
698
717
  final_output: import_zod4.z.record(import_zod4.z.any())
699
718
  })
700
719
  });
701
720
  var createReactAgentSchema = (schema) => {
702
- return schema ? import_langgraph2.MessagesZodState.extend(schema.shape) : void 0;
721
+ return schema ? import_langgraph3.MessagesZodState.extend(schema.shape) : void 0;
703
722
  };
704
723
 
705
724
  // src/agent_lattice/builders/ReActAgentGraphBuilder.ts
@@ -731,14 +750,14 @@ var ReActAgentGraphBuilder = class {
731
750
  // src/deep_agent/subAgent.ts
732
751
  var import_tools3 = require("@langchain/core/tools");
733
752
  var import_messages2 = require("@langchain/core/messages");
734
- var import_langgraph4 = require("@langchain/langgraph");
753
+ var import_langgraph5 = require("@langchain/langgraph");
735
754
  var import_prebuilt2 = require("@langchain/langgraph/prebuilt");
736
755
  var import_zod6 = require("zod");
737
756
 
738
757
  // src/deep_agent/tools.ts
739
758
  var import_tools2 = require("@langchain/core/tools");
740
759
  var import_messages = require("@langchain/core/messages");
741
- var import_langgraph3 = require("@langchain/langgraph");
760
+ var import_langgraph4 = require("@langchain/langgraph");
742
761
  var import_zod5 = require("zod");
743
762
 
744
763
  // src/deep_agent/prompts.ts
@@ -1004,7 +1023,7 @@ var genUIMarkdown = (type, data) => {
1004
1023
  // src/deep_agent/tools.ts
1005
1024
  var writeTodos = (0, import_tools2.tool)(
1006
1025
  (input, config) => {
1007
- return new import_langgraph3.Command({
1026
+ return new import_langgraph4.Command({
1008
1027
  update: {
1009
1028
  todos: input.todos,
1010
1029
  messages: [
@@ -1031,7 +1050,7 @@ var writeTodos = (0, import_tools2.tool)(
1031
1050
  );
1032
1051
  var ls = (0, import_tools2.tool)(
1033
1052
  () => {
1034
- const state = (0, import_langgraph3.getCurrentTaskInput)();
1053
+ const state = (0, import_langgraph4.getCurrentTaskInput)();
1035
1054
  const files = state.files || {};
1036
1055
  return Object.keys(files);
1037
1056
  },
@@ -1043,7 +1062,7 @@ var ls = (0, import_tools2.tool)(
1043
1062
  );
1044
1063
  var readFile = (0, import_tools2.tool)(
1045
1064
  (input) => {
1046
- const state = (0, import_langgraph3.getCurrentTaskInput)();
1065
+ const state = (0, import_langgraph4.getCurrentTaskInput)();
1047
1066
  const mockFilesystem = state.files || {};
1048
1067
  const { file_path, offset = 0, limit = 2e3 } = input;
1049
1068
  if (!(file_path in mockFilesystem)) {
@@ -1082,10 +1101,10 @@ var readFile = (0, import_tools2.tool)(
1082
1101
  );
1083
1102
  var writeFile = (0, import_tools2.tool)(
1084
1103
  (input, config) => {
1085
- const state = (0, import_langgraph3.getCurrentTaskInput)();
1104
+ const state = (0, import_langgraph4.getCurrentTaskInput)();
1086
1105
  const files = { ...state.files || {} };
1087
1106
  files[input.file_path] = input.content;
1088
- return new import_langgraph3.Command({
1107
+ return new import_langgraph4.Command({
1089
1108
  update: {
1090
1109
  files,
1091
1110
  messages: [
@@ -1108,7 +1127,7 @@ var writeFile = (0, import_tools2.tool)(
1108
1127
  );
1109
1128
  var editFile = (0, import_tools2.tool)(
1110
1129
  (input, config) => {
1111
- const state = (0, import_langgraph3.getCurrentTaskInput)();
1130
+ const state = (0, import_langgraph4.getCurrentTaskInput)();
1112
1131
  const mockFilesystem = { ...state.files || {} };
1113
1132
  const { file_path, old_string, new_string, replace_all = false } = input;
1114
1133
  if (!(file_path in mockFilesystem)) {
@@ -1144,7 +1163,7 @@ var editFile = (0, import_tools2.tool)(
1144
1163
  newContent = content.replace(old_string, new_string);
1145
1164
  }
1146
1165
  mockFilesystem[file_path] = newContent;
1147
- return new import_langgraph3.Command({
1166
+ return new import_langgraph4.Command({
1148
1167
  update: {
1149
1168
  files: mockFilesystem,
1150
1169
  messages: [
@@ -1223,7 +1242,7 @@ function createTaskTool(inputs) {
1223
1242
  ).join(", ")}`;
1224
1243
  }
1225
1244
  try {
1226
- const currentState = (0, import_langgraph4.getCurrentTaskInput)();
1245
+ const currentState = (0, import_langgraph5.getCurrentTaskInput)();
1227
1246
  const modifiedState = {
1228
1247
  ...currentState,
1229
1248
  messages: [
@@ -1234,7 +1253,7 @@ function createTaskTool(inputs) {
1234
1253
  ]
1235
1254
  };
1236
1255
  const result = await reactAgent.invoke(modifiedState, config);
1237
- return new import_langgraph4.Command({
1256
+ return new import_langgraph5.Command({
1238
1257
  update: {
1239
1258
  files: result.files || {},
1240
1259
  messages: [
@@ -1246,11 +1265,11 @@ function createTaskTool(inputs) {
1246
1265
  }
1247
1266
  });
1248
1267
  } catch (error) {
1249
- if (error instanceof import_langgraph4.GraphInterrupt) {
1268
+ if (error instanceof import_langgraph5.GraphInterrupt) {
1250
1269
  throw error;
1251
1270
  }
1252
1271
  const errorMessage = error instanceof Error ? error.message : String(error);
1253
- return new import_langgraph4.Command({
1272
+ return new import_langgraph5.Command({
1254
1273
  update: {
1255
1274
  messages: [
1256
1275
  new import_messages2.ToolMessage({
@@ -1280,7 +1299,7 @@ function createTaskTool(inputs) {
1280
1299
 
1281
1300
  // src/deep_agent/state.ts
1282
1301
  var import_zod7 = require("@langchain/langgraph/zod");
1283
- var import_langgraph5 = require("@langchain/langgraph");
1302
+ var import_langgraph6 = require("@langchain/langgraph");
1284
1303
  var import_zod8 = require("@langchain/langgraph/zod");
1285
1304
  var import_zod9 = require("zod");
1286
1305
  function fileReducer(left, right) {
@@ -1298,7 +1317,7 @@ function todoReducer(left, right) {
1298
1317
  }
1299
1318
  return left || [];
1300
1319
  }
1301
- var DeepAgentState = import_langgraph5.MessagesZodState.extend({
1320
+ var DeepAgentState = import_langgraph6.MessagesZodState.extend({
1302
1321
  todos: (0, import_zod8.withLangGraph)(import_zod9.z.custom(), {
1303
1322
  reducer: {
1304
1323
  schema: import_zod9.z.custom(),
@@ -1399,7 +1418,7 @@ var DeepAgentGraphBuilder = class {
1399
1418
  };
1400
1419
 
1401
1420
  // src/createPlanExecuteAgent.ts
1402
- var import_langgraph7 = require("@langchain/langgraph");
1421
+ var import_langgraph8 = require("@langchain/langgraph");
1403
1422
  var import_messages6 = require("@langchain/core/messages");
1404
1423
  var import_zod10 = require("zod");
1405
1424
 
@@ -1599,10 +1618,10 @@ var getLastHumanMessageData = (messages) => {
1599
1618
  var import_tools7 = require("@langchain/core/tools");
1600
1619
 
1601
1620
  // src/util/PGMemory.ts
1602
- var import_langgraph6 = require("@langchain/langgraph");
1621
+ var import_langgraph7 = require("@langchain/langgraph");
1603
1622
  var import_langgraph_checkpoint_postgres = require("@langchain/langgraph-checkpoint-postgres");
1604
1623
  var globalMemory = import_langgraph_checkpoint_postgres.PostgresSaver.fromConnString(process.env.DATABASE_URL);
1605
- var memory2 = new import_langgraph6.MemorySaver();
1624
+ var memory2 = new import_langgraph7.MemorySaver();
1606
1625
  var _MemoryManager = class _MemoryManager {
1607
1626
  static getInstance() {
1608
1627
  return _MemoryManager.instance;
@@ -1613,32 +1632,32 @@ var MemoryManager = _MemoryManager;
1613
1632
 
1614
1633
  // src/createPlanExecuteAgent.ts
1615
1634
  var import_prebuilt4 = require("@langchain/langgraph/prebuilt");
1616
- var PlanExecuteState = import_langgraph7.Annotation.Root({
1635
+ var PlanExecuteState = import_langgraph8.Annotation.Root({
1617
1636
  // 输入
1618
- input: (0, import_langgraph7.Annotation)({
1637
+ input: (0, import_langgraph8.Annotation)({
1619
1638
  reducer: (x, y) => y ?? x ?? ""
1620
1639
  }),
1621
1640
  // 计划步骤列表
1622
- plan: (0, import_langgraph7.Annotation)({
1641
+ plan: (0, import_langgraph8.Annotation)({
1623
1642
  reducer: (x, y) => y ?? x ?? []
1624
1643
  }),
1625
1644
  // 已执行的步骤 [步骤名称, 执行结果]
1626
- pastSteps: (0, import_langgraph7.Annotation)({
1645
+ pastSteps: (0, import_langgraph8.Annotation)({
1627
1646
  reducer: (x, y) => x.concat(y),
1628
1647
  default: () => []
1629
1648
  }),
1630
1649
  // 最终响应
1631
- response: (0, import_langgraph7.Annotation)({
1650
+ response: (0, import_langgraph8.Annotation)({
1632
1651
  reducer: (x, y) => y ?? x
1633
1652
  }),
1634
1653
  // 错误信息
1635
- error: (0, import_langgraph7.Annotation)({
1654
+ error: (0, import_langgraph8.Annotation)({
1636
1655
  reducer: (x, y) => y ?? x
1637
1656
  }),
1638
1657
  // 继承基础状态
1639
- "x-tenant-id": (0, import_langgraph7.Annotation)(),
1640
- messages: (0, import_langgraph7.Annotation)({
1641
- reducer: import_langgraph7.messagesStateReducer,
1658
+ "x-tenant-id": (0, import_langgraph8.Annotation)(),
1659
+ messages: (0, import_langgraph8.Annotation)({
1660
+ reducer: import_langgraph8.messagesStateReducer,
1642
1661
  default: () => []
1643
1662
  })
1644
1663
  });
@@ -1738,7 +1757,7 @@ ${executorTools.map((tool5) => tool5.name).join("\n")}
1738
1757
  error: void 0
1739
1758
  };
1740
1759
  } catch (error) {
1741
- if (error instanceof import_langgraph7.GraphInterrupt) {
1760
+ if (error instanceof import_langgraph8.GraphInterrupt) {
1742
1761
  throw error;
1743
1762
  }
1744
1763
  const errorMsg = `\u4EFB\u52A1\u6267\u884C\u5931\u8D25: ${error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"}`;
@@ -1831,7 +1850,7 @@ Only add steps to the plan that still NEED to be done. Do not return previously
1831
1850
  };
1832
1851
  }
1833
1852
  } catch (error) {
1834
- if (error instanceof import_langgraph7.GraphInterrupt) {
1853
+ if (error instanceof import_langgraph8.GraphInterrupt) {
1835
1854
  throw error;
1836
1855
  }
1837
1856
  const errorMsg = `\u91CD\u65B0\u89C4\u5212\u5931\u8D25: ${error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"}`;
@@ -1863,8 +1882,8 @@ Only add steps to the plan that still NEED to be done. Do not return previously
1863
1882
  }
1864
1883
  return "continue";
1865
1884
  }
1866
- const workflow = new import_langgraph7.StateGraph(PlanExecuteState).addNode("planner", planStep).addNode("executor", executeStep).addNode("replanner", replanStep).addEdge(import_langgraph7.START, "planner").addEdge("planner", "executor").addEdge("executor", "replanner").addConditionalEdges("replanner", shouldEnd, {
1867
- end: import_langgraph7.END,
1885
+ const workflow = new import_langgraph8.StateGraph(PlanExecuteState).addNode("planner", planStep).addNode("executor", executeStep).addNode("replanner", replanStep).addEdge(import_langgraph8.START, "planner").addEdge("planner", "executor").addEdge("executor", "replanner").addConditionalEdges("replanner", shouldEnd, {
1886
+ end: import_langgraph8.END,
1868
1887
  continue: "executor"
1869
1888
  });
1870
1889
  const compiledGraph = workflow.compile({