@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.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 { model, tools, systemMessage, name, message } = inputs.fieldValues || {};
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, MemorySaver } from "@langchain/langgraph";
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 3");
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: "conversation" } }
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: "conversation" } }
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 z8 } from "zod";
1388
- var IaMessageNodeSchema = z8.object({
1389
- model: z8.any().describe("LLM model to use"),
1390
- systemMessage: z8.string().optional().describe("System message for context"),
1391
- message: z8.string().describe("User message to send to the LLM")
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 z9 } from "zod";
1527
- var WhatsappSendTemplateNodeSchema = z9.object({
1528
- phoneNumber: z9.string().describe("Phone number to send the message to"),
1529
- message: z9.string().describe("Message to send")
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 z10 } from "zod";
1571
- var WhatsappSendMessageNodeSchema = z10.object({
1572
- phoneNumber: z10.string().describe("Phone number to send the message to"),
1573
- message: z10.string().describe("Message content to send")
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 z11 } from "zod";
2036
- var HttpPutInputNodeSchema = z11.object({
2317
+ import { z as z13 } from "zod";
2318
+ var HttpPutInputNodeSchema = z13.object({
2037
2319
  route: RouteSchema,
2038
- queryParams: z11.array(QueryParamSchema).optional().describe("Query parameters configuration"),
2039
- headers: z11.array(HeaderSchema).optional().describe("Headers configuration"),
2040
- body: z11.array(BodyFieldSchema).optional().describe("Body fields configuration")
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 z12 } from "zod";
2133
- var HttpDeleteInputNodeSchema = z12.object({
2414
+ import { z as z14 } from "zod";
2415
+ var HttpDeleteInputNodeSchema = z14.object({
2134
2416
  route: RouteSchema,
2135
- queryParams: z12.array(QueryParamSchema).optional().describe("Query parameters configuration"),
2136
- headers: z12.array(HeaderSchema).optional().describe("Headers configuration")
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 z13 } from "zod";
2250
- var HttpPatchInputNodeSchema = z13.object({
2531
+ import { z as z15 } from "zod";
2532
+ var HttpPatchInputNodeSchema = z15.object({
2251
2533
  route: RouteSchema,
2252
- queryParams: z13.array(QueryParamSchema).optional().describe("Query parameters configuration"),
2253
- headers: z13.array(HeaderSchema).optional().describe("Headers configuration"),
2254
- body: z13.array(BodyFieldSchema).optional().describe("Body fields configuration")
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.18",
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 index.ts --dts --format esm,cjs --target node18 --out-dir dist --clean --tsconfig tsconfig.build.json",
36
- "dev": "tsup index.ts --dts --format esm,cjs --target node18 --out-dir dist --watch --tsconfig tsconfig.build.json"
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"