@axiom-lattice/core 1.0.35 → 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 +55 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +19 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
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
|
|
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
|
|
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
|
|
713
|
+
var import_langgraph3 = require("@langchain/langgraph");
|
|
695
714
|
var import_zod4 = require("zod");
|
|
696
|
-
var ReActAgentState =
|
|
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 ?
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
1104
|
+
const state = (0, import_langgraph4.getCurrentTaskInput)();
|
|
1086
1105
|
const files = { ...state.files || {} };
|
|
1087
1106
|
files[input.file_path] = input.content;
|
|
1088
|
-
return new
|
|
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,
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
1635
|
+
var PlanExecuteState = import_langgraph8.Annotation.Root({
|
|
1617
1636
|
// 输入
|
|
1618
|
-
input: (0,
|
|
1637
|
+
input: (0, import_langgraph8.Annotation)({
|
|
1619
1638
|
reducer: (x, y) => y ?? x ?? ""
|
|
1620
1639
|
}),
|
|
1621
1640
|
// 计划步骤列表
|
|
1622
|
-
plan: (0,
|
|
1641
|
+
plan: (0, import_langgraph8.Annotation)({
|
|
1623
1642
|
reducer: (x, y) => y ?? x ?? []
|
|
1624
1643
|
}),
|
|
1625
1644
|
// 已执行的步骤 [步骤名称, 执行结果]
|
|
1626
|
-
pastSteps: (0,
|
|
1645
|
+
pastSteps: (0, import_langgraph8.Annotation)({
|
|
1627
1646
|
reducer: (x, y) => x.concat(y),
|
|
1628
1647
|
default: () => []
|
|
1629
1648
|
}),
|
|
1630
1649
|
// 最终响应
|
|
1631
|
-
response: (0,
|
|
1650
|
+
response: (0, import_langgraph8.Annotation)({
|
|
1632
1651
|
reducer: (x, y) => y ?? x
|
|
1633
1652
|
}),
|
|
1634
1653
|
// 错误信息
|
|
1635
|
-
error: (0,
|
|
1654
|
+
error: (0, import_langgraph8.Annotation)({
|
|
1636
1655
|
reducer: (x, y) => y ?? x
|
|
1637
1656
|
}),
|
|
1638
1657
|
// 继承基础状态
|
|
1639
|
-
"x-tenant-id": (0,
|
|
1640
|
-
messages: (0,
|
|
1641
|
-
reducer:
|
|
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
|
|
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
|
|
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
|
|
1867
|
-
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({
|