@atomoz/workflows-nodes 0.1.18 → 0.1.20
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 +324 -42
- package/dist/index.d.cts +441 -0
- package/dist/index.d.ts +441 -0
- package/dist/index.js +325 -43
- package/package.json +6 -3
package/dist/index.js
CHANGED
|
@@ -460,6 +460,104 @@ var DelayNode = {
|
|
|
460
460
|
]
|
|
461
461
|
};
|
|
462
462
|
|
|
463
|
+
// src/nodes/processors/http-request/index.ts
|
|
464
|
+
var HttpRequestNodeFunction = async (params, input, context) => {
|
|
465
|
+
const { url, method, headers, body } = params;
|
|
466
|
+
console.log(`\u{1F4E1} Making HTTP Request: ${method} ${url}`);
|
|
467
|
+
const headersObj = typeof headers === "string" ? JSON.parse(headers || "{}") : headers || {};
|
|
468
|
+
const bodyObj = typeof body === "string" ? body : JSON.stringify(body);
|
|
469
|
+
const response = await fetch(url, {
|
|
470
|
+
method,
|
|
471
|
+
headers: {
|
|
472
|
+
"Content-Type": "application/json",
|
|
473
|
+
...headersObj
|
|
474
|
+
},
|
|
475
|
+
body: method !== "GET" && method !== "HEAD" ? bodyObj : void 0
|
|
476
|
+
});
|
|
477
|
+
const responseText = await response.text();
|
|
478
|
+
let responseData;
|
|
479
|
+
try {
|
|
480
|
+
responseData = JSON.parse(responseText);
|
|
481
|
+
} catch (e) {
|
|
482
|
+
responseData = responseText;
|
|
483
|
+
}
|
|
484
|
+
return {
|
|
485
|
+
status: response.status,
|
|
486
|
+
statusText: response.statusText,
|
|
487
|
+
headers: Object.fromEntries(response.headers.entries()),
|
|
488
|
+
data: responseData
|
|
489
|
+
};
|
|
490
|
+
};
|
|
491
|
+
var HttpRequestNode = {
|
|
492
|
+
label: "HTTP Request",
|
|
493
|
+
type: "HttpRequestNode",
|
|
494
|
+
category: "step",
|
|
495
|
+
// or 'api'?
|
|
496
|
+
icon: "\u{1F310}",
|
|
497
|
+
description: "Faz uma requisi\xE7\xE3o HTTP externa",
|
|
498
|
+
tags: {
|
|
499
|
+
execution: "async",
|
|
500
|
+
group: "HTTP"
|
|
501
|
+
},
|
|
502
|
+
fields: [
|
|
503
|
+
{
|
|
504
|
+
id: "input",
|
|
505
|
+
label: "Input",
|
|
506
|
+
type: "any",
|
|
507
|
+
handle: {
|
|
508
|
+
type: "input",
|
|
509
|
+
label: "Start",
|
|
510
|
+
name: "input",
|
|
511
|
+
fieldType: "any"
|
|
512
|
+
}
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
id: "url",
|
|
516
|
+
label: "URL",
|
|
517
|
+
type: "string",
|
|
518
|
+
required: true,
|
|
519
|
+
placeholder: "https://api.example.com"
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
id: "method",
|
|
523
|
+
label: "Method",
|
|
524
|
+
type: "select",
|
|
525
|
+
required: true,
|
|
526
|
+
defaultValue: "GET",
|
|
527
|
+
options: [
|
|
528
|
+
{ label: "GET", value: "GET" },
|
|
529
|
+
{ label: "POST", value: "POST" },
|
|
530
|
+
{ label: "PUT", value: "PUT" },
|
|
531
|
+
{ label: "DELETE", value: "DELETE" },
|
|
532
|
+
{ label: "PATCH", value: "PATCH" }
|
|
533
|
+
]
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
id: "headers",
|
|
537
|
+
label: "Headers (JSON)",
|
|
538
|
+
type: "json",
|
|
539
|
+
defaultValue: "{}"
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
id: "body",
|
|
543
|
+
label: "Body (JSON)",
|
|
544
|
+
type: "json",
|
|
545
|
+
defaultValue: "{}"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
id: "output",
|
|
549
|
+
label: "Output",
|
|
550
|
+
type: "any",
|
|
551
|
+
handle: {
|
|
552
|
+
type: "output",
|
|
553
|
+
label: "Response",
|
|
554
|
+
name: "output",
|
|
555
|
+
fieldType: "any"
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
]
|
|
559
|
+
};
|
|
560
|
+
|
|
463
561
|
// src/nodes/processors/concat.ts
|
|
464
562
|
import { z as z4 } from "zod";
|
|
465
563
|
var ConcatNodeFunction = (params) => {
|
|
@@ -792,6 +890,21 @@ var IaAgentNode = {
|
|
|
792
890
|
fieldType: "agent"
|
|
793
891
|
}
|
|
794
892
|
},
|
|
893
|
+
{
|
|
894
|
+
id: "sessionMemory",
|
|
895
|
+
label: "Session Memory",
|
|
896
|
+
type: "memory",
|
|
897
|
+
required: false,
|
|
898
|
+
typeable: false,
|
|
899
|
+
handle: {
|
|
900
|
+
type: "input",
|
|
901
|
+
label: "Session Memory",
|
|
902
|
+
name: "sessionMemory",
|
|
903
|
+
fieldType: "memory",
|
|
904
|
+
acceptTypes: ["memory"],
|
|
905
|
+
maxConnections: 1
|
|
906
|
+
}
|
|
907
|
+
},
|
|
795
908
|
{
|
|
796
909
|
id: "response",
|
|
797
910
|
label: "Response",
|
|
@@ -871,10 +984,14 @@ async function createLLMFromModel(modelConfig, authToken, streaming = false) {
|
|
|
871
984
|
// src/nodes/ia/agent/function.ts
|
|
872
985
|
var IaAgentNodeFunction = async (inputs) => {
|
|
873
986
|
const { $field: _$field, $req: _$req, $inputs: _$inputs, $vars: _$vars } = inputs;
|
|
874
|
-
const
|
|
987
|
+
const fieldValues = inputs.fieldValues || {};
|
|
988
|
+
const { model, tools, systemMessage, name, message } = fieldValues;
|
|
875
989
|
const authToken = inputs.authToken;
|
|
876
990
|
const stream = Boolean(inputs?.stream);
|
|
877
991
|
const emitter = inputs?.emitter;
|
|
992
|
+
const sessionMemory = fieldValues.sessionMemory || inputs.sessionMemory;
|
|
993
|
+
const checkpointer = sessionMemory?.checkpointer;
|
|
994
|
+
const sessionId = inputs.sessionId || inputs.$req?.sessionId || `session-${Date.now()}`;
|
|
878
995
|
if (!name) {
|
|
879
996
|
throw new Error("Agent 'name' is required. Please provide a unique name for the agent in the node properties.");
|
|
880
997
|
}
|
|
@@ -905,17 +1022,26 @@ IMPORTANT: You must base your response on the last message in the conversation h
|
|
|
905
1022
|
const agent = createReactAgent({
|
|
906
1023
|
llm: llmInstance,
|
|
907
1024
|
tools: toolsArray,
|
|
908
|
-
messageModifier: finalSystemMessage
|
|
1025
|
+
messageModifier: finalSystemMessage,
|
|
1026
|
+
// Pass checkpointer directly for distributed memory
|
|
1027
|
+
...checkpointer ? { checkpointer } : {}
|
|
909
1028
|
});
|
|
910
1029
|
agent.name = name;
|
|
1030
|
+
if (checkpointer) {
|
|
1031
|
+
console.log(`\u{1F9E0} IaAgentNode "${name}": Using distributed memory (sessionId: ${sessionId})`);
|
|
1032
|
+
} else {
|
|
1033
|
+
console.log(`\u26A0\uFE0F IaAgentNode "${name}": No sessionMemory connected - stateless mode`);
|
|
1034
|
+
}
|
|
911
1035
|
let output = "";
|
|
912
1036
|
if (message) {
|
|
913
1037
|
try {
|
|
914
1038
|
const { HumanMessage: HumanMessage2 } = await import("@langchain/core/messages");
|
|
1039
|
+
const invokeConfig = checkpointer ? { configurable: { thread_id: sessionId } } : {};
|
|
915
1040
|
if (stream && emitter) {
|
|
916
|
-
const streamIterator = await agent.stream(
|
|
917
|
-
messages: [new HumanMessage2(message)]
|
|
918
|
-
|
|
1041
|
+
const streamIterator = await agent.stream(
|
|
1042
|
+
{ messages: [new HumanMessage2(message)] },
|
|
1043
|
+
invokeConfig
|
|
1044
|
+
);
|
|
919
1045
|
let lastMessages = [];
|
|
920
1046
|
const sentContents = /* @__PURE__ */ new Set();
|
|
921
1047
|
for await (const step of streamIterator) {
|
|
@@ -959,9 +1085,10 @@ IMPORTANT: You must base your response on the last message in the conversation h
|
|
|
959
1085
|
}
|
|
960
1086
|
}
|
|
961
1087
|
} else {
|
|
962
|
-
const result = await agent.invoke(
|
|
963
|
-
messages: [new HumanMessage2(message)]
|
|
964
|
-
|
|
1088
|
+
const result = await agent.invoke(
|
|
1089
|
+
{ messages: [new HumanMessage2(message)] },
|
|
1090
|
+
invokeConfig
|
|
1091
|
+
);
|
|
965
1092
|
if (result?.messages && result.messages.length > 0) {
|
|
966
1093
|
const lastMessage = result.messages[result.messages.length - 1];
|
|
967
1094
|
const content = lastMessage?.content;
|
|
@@ -1059,6 +1186,21 @@ var AiSupervisorNode = {
|
|
|
1059
1186
|
acceptTypes: ["agent"]
|
|
1060
1187
|
}
|
|
1061
1188
|
},
|
|
1189
|
+
{
|
|
1190
|
+
id: "sessionMemory",
|
|
1191
|
+
label: "Session Memory",
|
|
1192
|
+
type: "memory",
|
|
1193
|
+
required: false,
|
|
1194
|
+
typeable: false,
|
|
1195
|
+
handle: {
|
|
1196
|
+
type: "input",
|
|
1197
|
+
label: "Session Memory",
|
|
1198
|
+
name: "sessionMemory",
|
|
1199
|
+
fieldType: "memory",
|
|
1200
|
+
acceptTypes: ["memory"],
|
|
1201
|
+
maxConnections: 1
|
|
1202
|
+
}
|
|
1203
|
+
},
|
|
1062
1204
|
{
|
|
1063
1205
|
id: "response",
|
|
1064
1206
|
label: "Response",
|
|
@@ -1078,8 +1220,7 @@ var AiSupervisorNode = {
|
|
|
1078
1220
|
// src/nodes/ia/supervisor/function.ts
|
|
1079
1221
|
import { createSupervisor } from "@langchain/langgraph-supervisor";
|
|
1080
1222
|
import { HumanMessage } from "@langchain/core/messages";
|
|
1081
|
-
import { InMemoryStore
|
|
1082
|
-
var checkpointer = new MemorySaver();
|
|
1223
|
+
import { InMemoryStore } from "@langchain/langgraph";
|
|
1083
1224
|
var store = new InMemoryStore();
|
|
1084
1225
|
var extractSupervisorAgents = (agents) => {
|
|
1085
1226
|
if (Array.isArray(agents)) {
|
|
@@ -1135,6 +1276,9 @@ var AiSupervisorNodeFunction = async (params) => {
|
|
|
1135
1276
|
const stream = (typeof outer.stream === "boolean" ? outer.stream : inner.stream) ?? false;
|
|
1136
1277
|
const emitter = outer.emitter ?? inner.emitter;
|
|
1137
1278
|
const authToken = outer.authToken ?? inner.authToken;
|
|
1279
|
+
const sessionMemory = inner.sessionMemory ?? outer.sessionMemory;
|
|
1280
|
+
const checkpointer = sessionMemory?.checkpointer;
|
|
1281
|
+
const sessionId = outer.sessionId || outer.$req?.sessionId || `supervisor-${Date.now()}`;
|
|
1138
1282
|
if (!model) throw new Error("Model is required for AiSupervisorNode");
|
|
1139
1283
|
if (!agents) throw new Error("Agents are required for AiSupervisorNode.");
|
|
1140
1284
|
try {
|
|
@@ -1144,12 +1288,17 @@ var AiSupervisorNodeFunction = async (params) => {
|
|
|
1144
1288
|
let llmInstance;
|
|
1145
1289
|
if (model?.model && model?.integrationId) {
|
|
1146
1290
|
if (!authToken) {
|
|
1147
|
-
throw new Error("Auth token is required to instantiate LLM from integration
|
|
1291
|
+
throw new Error("Auth token is required to instantiate LLM from integration");
|
|
1148
1292
|
}
|
|
1149
1293
|
llmInstance = await createLLMFromModel(model, authToken, stream);
|
|
1150
1294
|
} else {
|
|
1151
1295
|
llmInstance = model;
|
|
1152
1296
|
}
|
|
1297
|
+
if (checkpointer) {
|
|
1298
|
+
console.log(`\u{1F9E0} AiSupervisorNode: Using distributed memory (sessionId: ${sessionId})`);
|
|
1299
|
+
} else {
|
|
1300
|
+
console.log(`\u26A0\uFE0F AiSupervisorNode: No sessionMemory connected - stateless mode`);
|
|
1301
|
+
}
|
|
1153
1302
|
const finalSystemPrompt = systemMessage || "You are a supervisor...";
|
|
1154
1303
|
const workflow = createSupervisor({
|
|
1155
1304
|
llm: llmInstance,
|
|
@@ -1157,14 +1306,14 @@ var AiSupervisorNodeFunction = async (params) => {
|
|
|
1157
1306
|
prompt: finalSystemPrompt
|
|
1158
1307
|
});
|
|
1159
1308
|
const app = workflow.compile({
|
|
1160
|
-
checkpointer,
|
|
1309
|
+
...checkpointer ? { checkpointer } : {},
|
|
1161
1310
|
store
|
|
1162
1311
|
});
|
|
1163
1312
|
if (stream && emitter) {
|
|
1164
1313
|
try {
|
|
1165
1314
|
const streamIterator = await app.stream(
|
|
1166
1315
|
{ messages: [new HumanMessage({ content: message })] },
|
|
1167
|
-
{ recursionLimit: 150, configurable: { thread_id:
|
|
1316
|
+
{ recursionLimit: 150, configurable: { thread_id: sessionId } }
|
|
1168
1317
|
);
|
|
1169
1318
|
let finalMessages = [];
|
|
1170
1319
|
const previousStepMessages = /* @__PURE__ */ new Map();
|
|
@@ -1243,7 +1392,7 @@ var AiSupervisorNodeFunction = async (params) => {
|
|
|
1243
1392
|
} else {
|
|
1244
1393
|
const result = await app.invoke(
|
|
1245
1394
|
{ messages: [new HumanMessage({ content: message })] },
|
|
1246
|
-
{ recursionLimit: 150, configurable: { thread_id:
|
|
1395
|
+
{ recursionLimit: 150, configurable: { thread_id: sessionId } }
|
|
1247
1396
|
);
|
|
1248
1397
|
const finalResponse = extractFinalResponse(result?.messages);
|
|
1249
1398
|
return {
|
|
@@ -1337,12 +1486,139 @@ var AiToolNode = {
|
|
|
1337
1486
|
// src/nodes/ia/tool/function.ts
|
|
1338
1487
|
import { tool } from "@langchain/core/tools";
|
|
1339
1488
|
|
|
1489
|
+
// src/nodes/memory/postgres/data.ts
|
|
1490
|
+
import { z as z8 } from "zod";
|
|
1491
|
+
var PostgresMemoryNodeSchema = z8.object({
|
|
1492
|
+
connectionString: z8.string().describe("PostgreSQL connection string")
|
|
1493
|
+
});
|
|
1494
|
+
var PostgresMemoryNode = {
|
|
1495
|
+
label: "Postgres Memory",
|
|
1496
|
+
type: "PostgresMemoryNode",
|
|
1497
|
+
category: "memory",
|
|
1498
|
+
description: "Persistent conversation memory using PostgreSQL (distributed across pods)",
|
|
1499
|
+
icon: "\u{1F418}",
|
|
1500
|
+
group: "Memory",
|
|
1501
|
+
tags: {
|
|
1502
|
+
execution: "sync",
|
|
1503
|
+
group: "Memory"
|
|
1504
|
+
},
|
|
1505
|
+
fields: [
|
|
1506
|
+
{
|
|
1507
|
+
id: "connectionString",
|
|
1508
|
+
label: "Connection String",
|
|
1509
|
+
type: "string",
|
|
1510
|
+
required: true,
|
|
1511
|
+
defaultValue: "postgresql://postgres:postgres@localhost:5432/workflows",
|
|
1512
|
+
placeholder: "postgresql://user:pass@host:5432/database"
|
|
1513
|
+
},
|
|
1514
|
+
{
|
|
1515
|
+
id: "checkpointer",
|
|
1516
|
+
label: "Checkpointer",
|
|
1517
|
+
type: "memory",
|
|
1518
|
+
required: true,
|
|
1519
|
+
typeable: false,
|
|
1520
|
+
handle: {
|
|
1521
|
+
type: "output",
|
|
1522
|
+
label: "Memory",
|
|
1523
|
+
name: "checkpointer",
|
|
1524
|
+
fieldType: "memory"
|
|
1525
|
+
}
|
|
1526
|
+
}
|
|
1527
|
+
]
|
|
1528
|
+
};
|
|
1529
|
+
|
|
1530
|
+
// src/nodes/memory/postgres/function.ts
|
|
1531
|
+
import { PostgresSaver } from "@langchain/langgraph-checkpoint-postgres";
|
|
1532
|
+
var PostgresMemoryNodeFunction = async (inputs) => {
|
|
1533
|
+
const { $field: _$field, $req: _$req, $inputs: _$inputs, $vars: _$vars } = inputs;
|
|
1534
|
+
const fieldValues = inputs.fieldValues || {};
|
|
1535
|
+
const connectionString = fieldValues.connectionString || inputs.connectionString || "postgresql://postgres:postgres@localhost:5432/workflows";
|
|
1536
|
+
try {
|
|
1537
|
+
const checkpointer = PostgresSaver.fromConnString(connectionString);
|
|
1538
|
+
await checkpointer.setup();
|
|
1539
|
+
console.log("\u2705 PostgresMemory: Checkpointer initialized");
|
|
1540
|
+
return {
|
|
1541
|
+
checkpointer,
|
|
1542
|
+
type: "PostgresMemoryNode",
|
|
1543
|
+
connectionString: connectionString.replace(/:[^:@]+@/, ":***@")
|
|
1544
|
+
// Hide password in output
|
|
1545
|
+
};
|
|
1546
|
+
} catch (error) {
|
|
1547
|
+
console.error("\u274C PostgresMemory: Failed to initialize checkpointer:", error);
|
|
1548
|
+
throw new Error(`PostgresMemory initialization failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1549
|
+
}
|
|
1550
|
+
};
|
|
1551
|
+
|
|
1552
|
+
// src/nodes/memory/redis/data.ts
|
|
1553
|
+
import { z as z9 } from "zod";
|
|
1554
|
+
var RedisMemoryNodeSchema = z9.object({
|
|
1555
|
+
redisUrl: z9.string().describe("Redis connection URL")
|
|
1556
|
+
});
|
|
1557
|
+
var RedisMemoryNode = {
|
|
1558
|
+
label: "Redis Memory",
|
|
1559
|
+
type: "RedisMemoryNode",
|
|
1560
|
+
category: "memory",
|
|
1561
|
+
description: "Fast, persistent conversation memory using Redis (distributed across pods)",
|
|
1562
|
+
icon: "\u{1F534}",
|
|
1563
|
+
group: "Memory",
|
|
1564
|
+
tags: {
|
|
1565
|
+
execution: "sync",
|
|
1566
|
+
group: "Memory"
|
|
1567
|
+
},
|
|
1568
|
+
fields: [
|
|
1569
|
+
{
|
|
1570
|
+
id: "redisUrl",
|
|
1571
|
+
label: "Redis URL",
|
|
1572
|
+
type: "string",
|
|
1573
|
+
required: true,
|
|
1574
|
+
defaultValue: "redis://localhost:6379",
|
|
1575
|
+
placeholder: "redis://localhost:6379"
|
|
1576
|
+
},
|
|
1577
|
+
{
|
|
1578
|
+
id: "checkpointer",
|
|
1579
|
+
label: "Checkpointer",
|
|
1580
|
+
type: "memory",
|
|
1581
|
+
required: true,
|
|
1582
|
+
typeable: false,
|
|
1583
|
+
handle: {
|
|
1584
|
+
type: "output",
|
|
1585
|
+
label: "Memory",
|
|
1586
|
+
name: "checkpointer",
|
|
1587
|
+
fieldType: "memory"
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1590
|
+
]
|
|
1591
|
+
};
|
|
1592
|
+
|
|
1593
|
+
// src/nodes/memory/redis/function.ts
|
|
1594
|
+
import { RedisSaver } from "@langchain/langgraph-checkpoint-redis";
|
|
1595
|
+
var RedisMemoryNodeFunction = async (inputs) => {
|
|
1596
|
+
const { $field: _$field, $req: _$req, $inputs: _$inputs, $vars: _$vars } = inputs;
|
|
1597
|
+
const fieldValues = inputs.fieldValues || {};
|
|
1598
|
+
const redisUrl = fieldValues.redisUrl || inputs.redisUrl || "redis://localhost:6379";
|
|
1599
|
+
try {
|
|
1600
|
+
const checkpointer = await RedisSaver.fromUrl(redisUrl);
|
|
1601
|
+
console.log("\u2705 RedisMemory: Checkpointer initialized");
|
|
1602
|
+
return {
|
|
1603
|
+
checkpointer,
|
|
1604
|
+
type: "RedisMemoryNode",
|
|
1605
|
+
redisUrl: redisUrl.replace(/:[^:@]+@/, ":***@")
|
|
1606
|
+
// Hide password in output
|
|
1607
|
+
};
|
|
1608
|
+
} catch (error) {
|
|
1609
|
+
console.error("\u274C RedisMemory: Failed to initialize checkpointer:", error);
|
|
1610
|
+
throw new Error(`RedisMemory initialization failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
1611
|
+
}
|
|
1612
|
+
};
|
|
1613
|
+
|
|
1340
1614
|
// src/nodes/consts/schemas.ts
|
|
1341
1615
|
var schemas = {
|
|
1342
1616
|
IaAgentNode: IaAgentNodeSchema,
|
|
1343
1617
|
AiSupervisorNode: AiSupervisorNodeSchema,
|
|
1344
1618
|
AiToolNode: AiToolNodeSchema,
|
|
1345
|
-
IaMessageNode: IaMessageNodeSchema
|
|
1619
|
+
IaMessageNode: IaMessageNodeSchema,
|
|
1620
|
+
PostgresMemoryNode: PostgresMemoryNodeSchema,
|
|
1621
|
+
RedisMemoryNode: RedisMemoryNodeSchema
|
|
1346
1622
|
};
|
|
1347
1623
|
|
|
1348
1624
|
// src/nodes/ia/tool/function.ts
|
|
@@ -1384,11 +1660,11 @@ var AiToolNodeFunction = async (params) => {
|
|
|
1384
1660
|
};
|
|
1385
1661
|
|
|
1386
1662
|
// src/nodes/ia/message/message.ts
|
|
1387
|
-
import { z as
|
|
1388
|
-
var IaMessageNodeSchema =
|
|
1389
|
-
model:
|
|
1390
|
-
systemMessage:
|
|
1391
|
-
message:
|
|
1663
|
+
import { z as z10 } from "zod";
|
|
1664
|
+
var IaMessageNodeSchema = z10.object({
|
|
1665
|
+
model: z10.any().describe("LLM model to use"),
|
|
1666
|
+
systemMessage: z10.string().optional().describe("System message for context"),
|
|
1667
|
+
message: z10.string().describe("User message to send to the LLM")
|
|
1392
1668
|
});
|
|
1393
1669
|
var IaMessageNodeFunction = async (inputs) => {
|
|
1394
1670
|
const { $field: _$field, $req: _$req, $inputs: _$inputs_var, $vars: _$vars } = inputs;
|
|
@@ -1523,10 +1799,10 @@ var IaMessageNode = {
|
|
|
1523
1799
|
};
|
|
1524
1800
|
|
|
1525
1801
|
// src/nodes/social/whatsapp/send-template/data.ts
|
|
1526
|
-
import { z as
|
|
1527
|
-
var WhatsappSendTemplateNodeSchema =
|
|
1528
|
-
phoneNumber:
|
|
1529
|
-
message:
|
|
1802
|
+
import { z as z11 } from "zod";
|
|
1803
|
+
var WhatsappSendTemplateNodeSchema = z11.object({
|
|
1804
|
+
phoneNumber: z11.string().describe("Phone number to send the message to"),
|
|
1805
|
+
message: z11.string().describe("Message to send")
|
|
1530
1806
|
});
|
|
1531
1807
|
var WhatsappSendTemplateNode = {
|
|
1532
1808
|
label: "Whatsapp Send Template",
|
|
@@ -1567,10 +1843,10 @@ var WhatsappSendTemplateNode = {
|
|
|
1567
1843
|
};
|
|
1568
1844
|
|
|
1569
1845
|
// src/nodes/social/whatsapp/send-message/data.ts
|
|
1570
|
-
import { z as
|
|
1571
|
-
var WhatsappSendMessageNodeSchema =
|
|
1572
|
-
phoneNumber:
|
|
1573
|
-
message:
|
|
1846
|
+
import { z as z12 } from "zod";
|
|
1847
|
+
var WhatsappSendMessageNodeSchema = z12.object({
|
|
1848
|
+
phoneNumber: z12.string().describe("Phone number to send the message to"),
|
|
1849
|
+
message: z12.string().describe("Message content to send")
|
|
1574
1850
|
});
|
|
1575
1851
|
var WhatsappSendMessageNode = {
|
|
1576
1852
|
label: "Whatsapp Send Message",
|
|
@@ -1790,6 +2066,7 @@ var nodes = [
|
|
|
1790
2066
|
ManualTriggerNode,
|
|
1791
2067
|
CronTriggerNode,
|
|
1792
2068
|
DelayNode,
|
|
2069
|
+
HttpRequestNode,
|
|
1793
2070
|
HttpGetInputNode,
|
|
1794
2071
|
// HttpPostInputNode,
|
|
1795
2072
|
// TransformNode,
|
|
@@ -1800,6 +2077,8 @@ var nodes = [
|
|
|
1800
2077
|
IaAgentNode,
|
|
1801
2078
|
AiToolNode,
|
|
1802
2079
|
AiSupervisorNode,
|
|
2080
|
+
PostgresMemoryNode,
|
|
2081
|
+
RedisMemoryNode,
|
|
1803
2082
|
WhatsappSendTemplateNode,
|
|
1804
2083
|
WhatsappSendMessageNode,
|
|
1805
2084
|
WhatsappMessageTriggerNode,
|
|
@@ -1911,6 +2190,7 @@ var nodeFunctions = {
|
|
|
1911
2190
|
CronTrigger: CronTriggerNodeFunction,
|
|
1912
2191
|
HttpOutput: HttpOutputNodeFunction,
|
|
1913
2192
|
ConcatNode: ConcatNodeFunction,
|
|
2193
|
+
HttpRequestNode: HttpRequestNodeFunction,
|
|
1914
2194
|
IaMessageNode: IaMessageNodeFunction,
|
|
1915
2195
|
IaAgentNode: IaAgentNodeFunction,
|
|
1916
2196
|
AiToolNode: AiToolNodeFunction,
|
|
@@ -1918,7 +2198,9 @@ var nodeFunctions = {
|
|
|
1918
2198
|
WhatsappNode: WhatsappStartChatFunction,
|
|
1919
2199
|
WhatsappSendMessageNode: WhatsappSendMessageFunction,
|
|
1920
2200
|
CustomCodeNode: NodeFunction,
|
|
1921
|
-
CustomNode: CustomNodeFunction
|
|
2201
|
+
CustomNode: CustomNodeFunction,
|
|
2202
|
+
PostgresMemoryNode: PostgresMemoryNodeFunction,
|
|
2203
|
+
RedisMemoryNode: RedisMemoryNodeFunction
|
|
1922
2204
|
};
|
|
1923
2205
|
var node_functions_default = nodeFunctions;
|
|
1924
2206
|
|
|
@@ -2032,12 +2314,12 @@ var HttpPutInputNodeFunction = (params) => {
|
|
|
2032
2314
|
};
|
|
2033
2315
|
|
|
2034
2316
|
// src/nodes/inputs/http/put/schema.ts
|
|
2035
|
-
import { z as
|
|
2036
|
-
var HttpPutInputNodeSchema =
|
|
2317
|
+
import { z as z13 } from "zod";
|
|
2318
|
+
var HttpPutInputNodeSchema = z13.object({
|
|
2037
2319
|
route: RouteSchema,
|
|
2038
|
-
queryParams:
|
|
2039
|
-
headers:
|
|
2040
|
-
body:
|
|
2320
|
+
queryParams: z13.array(QueryParamSchema).optional().describe("Query parameters configuration"),
|
|
2321
|
+
headers: z13.array(HeaderSchema).optional().describe("Headers configuration"),
|
|
2322
|
+
body: z13.array(BodyFieldSchema).optional().describe("Body fields configuration")
|
|
2041
2323
|
});
|
|
2042
2324
|
|
|
2043
2325
|
// src/nodes/inputs/http/delete/data.ts
|
|
@@ -2129,11 +2411,11 @@ var HttpDeleteInputNodeFunction = async (params) => {
|
|
|
2129
2411
|
};
|
|
2130
2412
|
|
|
2131
2413
|
// src/nodes/inputs/http/delete/schema.ts
|
|
2132
|
-
import { z as
|
|
2133
|
-
var HttpDeleteInputNodeSchema =
|
|
2414
|
+
import { z as z14 } from "zod";
|
|
2415
|
+
var HttpDeleteInputNodeSchema = z14.object({
|
|
2134
2416
|
route: RouteSchema,
|
|
2135
|
-
queryParams:
|
|
2136
|
-
headers:
|
|
2417
|
+
queryParams: z14.array(QueryParamSchema).optional().describe("Query parameters configuration"),
|
|
2418
|
+
headers: z14.array(HeaderSchema).optional().describe("Headers configuration")
|
|
2137
2419
|
});
|
|
2138
2420
|
|
|
2139
2421
|
// src/nodes/inputs/http/patch/data.ts
|
|
@@ -2246,12 +2528,12 @@ var HttpPatchInputNodeFunction = (params) => {
|
|
|
2246
2528
|
};
|
|
2247
2529
|
|
|
2248
2530
|
// src/nodes/inputs/http/patch/schema.ts
|
|
2249
|
-
import { z as
|
|
2250
|
-
var HttpPatchInputNodeSchema =
|
|
2531
|
+
import { z as z15 } from "zod";
|
|
2532
|
+
var HttpPatchInputNodeSchema = z15.object({
|
|
2251
2533
|
route: RouteSchema,
|
|
2252
|
-
queryParams:
|
|
2253
|
-
headers:
|
|
2254
|
-
body:
|
|
2534
|
+
queryParams: z15.array(QueryParamSchema).optional().describe("Query parameters configuration"),
|
|
2535
|
+
headers: z15.array(HeaderSchema).optional().describe("Headers configuration"),
|
|
2536
|
+
body: z15.array(BodyFieldSchema).optional().describe("Body fields configuration")
|
|
2255
2537
|
});
|
|
2256
2538
|
|
|
2257
2539
|
// src/nodes/inputs/http/utils.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atomoz/workflows-nodes",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.20",
|
|
4
4
|
"description": "Atomoz Workflows - Node Library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"author": "Atomoz",
|
|
33
33
|
"license": "MIT",
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "tsup
|
|
36
|
-
"dev": "tsup
|
|
35
|
+
"build": "tsup",
|
|
36
|
+
"dev": "tsup --watch"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"zod": ">=3.0.0 || >=4.0.0"
|
|
@@ -42,11 +42,14 @@
|
|
|
42
42
|
"@langchain/core": "^0.3.66",
|
|
43
43
|
"@langchain/google-gauth": "^0.2.16",
|
|
44
44
|
"@langchain/langgraph": "^0.4.3",
|
|
45
|
+
"@langchain/langgraph-checkpoint-postgres": "^1.0.0",
|
|
46
|
+
"@langchain/langgraph-checkpoint-redis": "^1.0.1",
|
|
45
47
|
"@langchain/langgraph-supervisor": "^0.0.17",
|
|
46
48
|
"@langchain/openai": "^0.6.3",
|
|
47
49
|
"graphql-request": "^7.2.0"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
52
|
+
"@types/node": "^25.0.3",
|
|
50
53
|
"tsup": "^8.2.4",
|
|
51
54
|
"typescript": "^5.6.3",
|
|
52
55
|
"zod": "^4.0.14"
|