@minded-ai/mindedjs 1.0.122 → 1.0.123-beta-1

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.
Files changed (97) hide show
  1. package/dist/agent.d.ts +4 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +65 -9
  4. package/dist/agent.js.map +1 -1
  5. package/dist/browserTask/README.md +419 -0
  6. package/dist/browserTask/browserAgent.py +632 -0
  7. package/dist/browserTask/captcha_isolated.png +0 -0
  8. package/dist/browserTask/executeBrowserTask.ts +79 -0
  9. package/dist/browserTask/requirements.txt +8 -0
  10. package/dist/browserTask/setup.sh +144 -0
  11. package/dist/cli/index.js +14 -14
  12. package/dist/cli/index.js.map +1 -1
  13. package/dist/edges/edgeFactory.js +2 -2
  14. package/dist/edges/edgeFactory.js.map +1 -1
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/internalTools/retell.d.ts +12 -0
  20. package/dist/internalTools/retell.d.ts.map +1 -0
  21. package/dist/internalTools/retell.js +54 -0
  22. package/dist/internalTools/retell.js.map +1 -0
  23. package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
  24. package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
  25. package/dist/internalTools/sendPlaceholderMessage.js +61 -0
  26. package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
  27. package/dist/interrupts/BaseInterruptSessionManager.d.ts +52 -0
  28. package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +1 -0
  29. package/dist/interrupts/BaseInterruptSessionManager.js +40 -0
  30. package/dist/interrupts/BaseInterruptSessionManager.js.map +1 -0
  31. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
  32. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
  33. package/dist/interrupts/MemoryInterruptSessionManager.js +60 -0
  34. package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
  35. package/dist/interrupts/MindedInterruptSessionManager.d.ts +13 -0
  36. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
  37. package/dist/interrupts/MindedInterruptSessionManager.js +151 -0
  38. package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
  39. package/dist/interrupts/interruptSessionManagerFactory.d.ts +3 -0
  40. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
  41. package/dist/interrupts/interruptSessionManagerFactory.js +46 -0
  42. package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
  43. package/dist/nodes/addBrowserTaskNode.js +2 -0
  44. package/dist/nodes/addBrowserTaskNode.js.map +1 -1
  45. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -1
  46. package/dist/nodes/addHumanInTheLoopNode.js +2 -1
  47. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -1
  48. package/dist/nodes/addJumpToNode.js +1 -1
  49. package/dist/nodes/addJumpToNode.js.map +1 -1
  50. package/dist/nodes/addPromptNode.d.ts.map +1 -1
  51. package/dist/nodes/addPromptNode.js +43 -1
  52. package/dist/nodes/addPromptNode.js.map +1 -1
  53. package/dist/nodes/addToolNode.d.ts.map +1 -1
  54. package/dist/nodes/addToolNode.js +2 -0
  55. package/dist/nodes/addToolNode.js.map +1 -1
  56. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  57. package/dist/nodes/addToolRunNode.js +1 -0
  58. package/dist/nodes/addToolRunNode.js.map +1 -1
  59. package/dist/platform/mindedConnection.js +12 -12
  60. package/dist/platform/mindedConnection.js.map +1 -1
  61. package/dist/platform/mindedConnectionTypes.d.ts +151 -1
  62. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  63. package/dist/platform/mindedConnectionTypes.js +9 -0
  64. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  65. package/dist/playbooks/playbooks.js +5 -5
  66. package/dist/playbooks/playbooks.js.map +1 -1
  67. package/dist/types/Agent.types.d.ts +2 -0
  68. package/dist/types/Agent.types.d.ts.map +1 -1
  69. package/dist/types/Agent.types.js.map +1 -1
  70. package/dist/types/LangGraph.types.d.ts +2 -2
  71. package/dist/types/LangGraph.types.d.ts.map +1 -1
  72. package/dist/types/LangGraph.types.js +3 -1
  73. package/dist/types/LangGraph.types.js.map +1 -1
  74. package/dist/voice/voiceSession.d.ts.map +1 -1
  75. package/dist/voice/voiceSession.js +9 -1
  76. package/dist/voice/voiceSession.js.map +1 -1
  77. package/package.json +1 -1
  78. package/src/agent.ts +89 -19
  79. package/src/cli/index.ts +14 -14
  80. package/src/edges/edgeFactory.ts +2 -2
  81. package/src/index.ts +14 -1
  82. package/src/interrupts/BaseInterruptSessionManager.ts +88 -0
  83. package/src/interrupts/MemoryInterruptSessionManager.ts +63 -0
  84. package/src/interrupts/MindedInterruptSessionManager.ts +162 -0
  85. package/src/interrupts/interruptSessionManagerFactory.ts +20 -0
  86. package/src/nodes/addBrowserTaskNode.ts +2 -2
  87. package/src/nodes/addHumanInTheLoopNode.ts +2 -1
  88. package/src/nodes/addJumpToNode.ts +1 -1
  89. package/src/nodes/addPromptNode.ts +47 -4
  90. package/src/nodes/addToolNode.ts +2 -0
  91. package/src/nodes/addToolRunNode.ts +1 -1
  92. package/src/platform/mindedConnection.ts +12 -12
  93. package/src/platform/mindedConnectionTypes.ts +187 -0
  94. package/src/playbooks/playbooks.ts +5 -5
  95. package/src/types/Agent.types.ts +2 -0
  96. package/src/types/LangGraph.types.ts +3 -1
  97. package/src/voice/voiceSession.ts +9 -1
@@ -0,0 +1,52 @@
1
+ import { State } from '../types/LangGraph.types';
2
+ export declare enum InterruptType {
3
+ NEW_TRIGGERS = "NEW_TRIGGERS",
4
+ HUMAN_IN_THE_LOOP = "HUMAN_IN_THE_LOOP"
5
+ }
6
+ export declare const QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH = "QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH";
7
+ export interface QueuedMessage {
8
+ triggerBody: any;
9
+ triggerName: string;
10
+ appName?: string;
11
+ }
12
+ export interface InterruptPayload {
13
+ type: InterruptType.NEW_TRIGGERS;
14
+ updateStateObject?: Partial<State>;
15
+ id?: string;
16
+ }
17
+ export interface InterruptSessionManager {
18
+ isProcessed(sessionId: string): boolean | Promise<boolean>;
19
+ /**
20
+ * Atomically attempts to acquire a lock for the given session.
21
+ * This method should only succeed if the session is not already being processed.
22
+ *
23
+ * @param sessionId - The session ID to lock
24
+ * @returns true if the lock was successfully acquired, false if the session is already locked
25
+ */
26
+ lock(sessionId: string): boolean | Promise<boolean>;
27
+ release(sessionId: string): void | Promise<void>;
28
+ enqueueMessage(sessionId: string, message: QueuedMessage): void | Promise<void>;
29
+ dequeueAll(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
30
+ dequeue(sessionId: string): QueuedMessage | null | Promise<QueuedMessage | null>;
31
+ checkQueueAndInterrupt(sessionId: string, updateStateObject?: Partial<State>): Promise<boolean>;
32
+ }
33
+ export declare abstract class BaseInterruptSessionManager implements InterruptSessionManager {
34
+ abstract isProcessed(sessionId: string): boolean | Promise<boolean>;
35
+ /**
36
+ * Atomically attempts to acquire a lock for the given session.
37
+ * This method should only succeed if the session is not already being processed.
38
+ * Implementations must ensure this operation is atomic to prevent race conditions.
39
+ *
40
+ * @param sessionId - The session ID to lock
41
+ * @returns true if the lock was successfully acquired, false if the session is already locked
42
+ */
43
+ abstract lock(sessionId: string): boolean | Promise<boolean>;
44
+ abstract release(sessionId: string): void | Promise<void>;
45
+ abstract enqueueMessage(sessionId: string, message: QueuedMessage): void | Promise<void>;
46
+ abstract dequeueAll(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
47
+ abstract dequeue(sessionId: string): QueuedMessage | null | Promise<QueuedMessage | null>;
48
+ protected abstract hasQueuedMessages(sessionId: string): boolean | Promise<boolean>;
49
+ protected abstract getQueuedMessages(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
50
+ checkQueueAndInterrupt(sessionId: string, updateStateObject?: Partial<State>): Promise<boolean>;
51
+ }
52
+ //# sourceMappingURL=BaseInterruptSessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseInterruptSessionManager.d.ts","sourceRoot":"","sources":["../../src/interrupts/BaseInterruptSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAIjD,oBAAY,aAAa;IACvB,YAAY,iBAAiB;IAC7B,iBAAiB,sBAAsB;CACxC;AAED,eAAO,MAAM,sCAAsC,2CAA2C,CAAC;AAE/F,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,GAAG,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3D;;;;;;OAMG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1E,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACjF,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjG;AAED,8BAAsB,2BAA4B,YAAW,uBAAuB;IAElF,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC5D,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,QAAQ,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxF,QAAQ,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAClF,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAGzF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAG7F,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;CA0BtG"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseInterruptSessionManager = exports.QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH = exports.InterruptType = void 0;
4
+ const langgraph_1 = require("@langchain/langgraph");
5
+ const logger_1 = require("../utils/logger");
6
+ var InterruptType;
7
+ (function (InterruptType) {
8
+ InterruptType["NEW_TRIGGERS"] = "NEW_TRIGGERS";
9
+ InterruptType["HUMAN_IN_THE_LOOP"] = "HUMAN_IN_THE_LOOP";
10
+ })(InterruptType || (exports.InterruptType = InterruptType = {}));
11
+ exports.QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH = 'QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH';
12
+ class BaseInterruptSessionManager {
13
+ // Common implementation of checkQueueAndInterrupt
14
+ async checkQueueAndInterrupt(sessionId, updateStateObject) {
15
+ if (await this.hasQueuedMessages(sessionId)) {
16
+ logger_1.logger.trace({ msg: 'graph has queued messagess, interrupting graph', sessionId });
17
+ // Interrupt the graph with NEW_TRIGGERS flag and optional updateStateObject
18
+ const interruptPayload = { type: InterruptType.NEW_TRIGGERS };
19
+ if (updateStateObject) {
20
+ interruptPayload.updateStateObject = {
21
+ messages: updateStateObject.messages,
22
+ memory: updateStateObject.memory,
23
+ history: updateStateObject.history,
24
+ sessionId: updateStateObject.sessionId,
25
+ sessionType: updateStateObject.sessionType,
26
+ };
27
+ }
28
+ throw new langgraph_1.GraphInterrupt([
29
+ {
30
+ value: interruptPayload,
31
+ when: 'during',
32
+ resumable: true,
33
+ },
34
+ ]);
35
+ }
36
+ return false;
37
+ }
38
+ }
39
+ exports.BaseInterruptSessionManager = BaseInterruptSessionManager;
40
+ //# sourceMappingURL=BaseInterruptSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseInterruptSessionManager.js","sourceRoot":"","sources":["../../src/interrupts/BaseInterruptSessionManager.ts"],"names":[],"mappings":";;;AACA,oDAAsD;AACtD,4CAAyC;AAEzC,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,8CAA6B,CAAA;IAC7B,wDAAuC,CAAA;AACzC,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB;AAEY,QAAA,sCAAsC,GAAG,wCAAwC,CAAC;AA8B/F,MAAsB,2BAA2B;IAqB/C,kDAAkD;IAClD,KAAK,CAAC,sBAAsB,CAAC,SAAiB,EAAE,iBAAkC;QAChF,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,gDAAgD,EAAE,SAAS,EAAE,CAAC,CAAC;YAEnF,4EAA4E;YAC5E,MAAM,gBAAgB,GAAqB,EAAE,IAAI,EAAE,aAAa,CAAC,YAAY,EAAE,CAAC;YAChF,IAAI,iBAAiB,EAAE,CAAC;gBACtB,gBAAgB,CAAC,iBAAiB,GAAG;oBACnC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;oBACpC,MAAM,EAAE,iBAAiB,CAAC,MAAM;oBAChC,OAAO,EAAE,iBAAiB,CAAC,OAAO;oBAClC,SAAS,EAAE,iBAAiB,CAAC,SAAS;oBACtC,WAAW,EAAE,iBAAiB,CAAC,WAAW;iBAC3C,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,0BAAc,CAAC;gBACvB;oBACE,KAAK,EAAE,gBAAgB;oBACvB,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,IAAI;iBAChB;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAhDD,kEAgDC"}
@@ -0,0 +1,14 @@
1
+ import { BaseInterruptSessionManager, QueuedMessage } from './BaseInterruptSessionManager';
2
+ export declare class MemoryInterruptSessionManager extends BaseInterruptSessionManager {
3
+ private sessionProcessing;
4
+ private sessionMessageQueues;
5
+ isProcessed(sessionId: string): boolean;
6
+ lock(sessionId: string): boolean;
7
+ release(sessionId: string): void;
8
+ enqueueMessage(sessionId: string, message: QueuedMessage): void;
9
+ dequeueAll(sessionId: string): QueuedMessage[];
10
+ dequeue(sessionId: string): QueuedMessage | null;
11
+ protected hasQueuedMessages(sessionId: string): boolean;
12
+ protected getQueuedMessages(sessionId: string): QueuedMessage[];
13
+ }
14
+ //# sourceMappingURL=MemoryInterruptSessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryInterruptSessionManager.d.ts","sourceRoot":"","sources":["../../src/interrupts/MemoryInterruptSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAA0C,MAAM,+BAA+B,CAAC;AAEnI,qBAAa,6BAA8B,SAAQ,2BAA2B;IAC5E,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,oBAAoB,CAA2C;IAEvE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIvC,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAShC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIhC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI;IAO/D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE;IAO9C,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAiBhD,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAKvD,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,EAAE;CAGhE"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryInterruptSessionManager = void 0;
4
+ const BaseInterruptSessionManager_1 = require("./BaseInterruptSessionManager");
5
+ class MemoryInterruptSessionManager extends BaseInterruptSessionManager_1.BaseInterruptSessionManager {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.sessionProcessing = new Map();
9
+ this.sessionMessageQueues = new Map();
10
+ }
11
+ isProcessed(sessionId) {
12
+ return this.sessionProcessing.get(sessionId) || false;
13
+ }
14
+ lock(sessionId) {
15
+ const isCurrentlyProcessed = this.sessionProcessing.get(sessionId) || false;
16
+ if (isCurrentlyProcessed) {
17
+ return false; // Could not acquire lock
18
+ }
19
+ this.sessionProcessing.set(sessionId, true);
20
+ return true; // Successfully acquired lock
21
+ }
22
+ release(sessionId) {
23
+ this.sessionProcessing.delete(sessionId);
24
+ }
25
+ enqueueMessage(sessionId, message) {
26
+ if (!this.sessionMessageQueues.has(sessionId)) {
27
+ this.sessionMessageQueues.set(sessionId, []);
28
+ }
29
+ this.sessionMessageQueues.get(sessionId).push(message);
30
+ }
31
+ dequeueAll(sessionId) {
32
+ const messages = this.sessionMessageQueues.get(sessionId) || [];
33
+ const result = [...messages];
34
+ this.sessionMessageQueues.set(sessionId, []);
35
+ return result;
36
+ }
37
+ dequeue(sessionId) {
38
+ const messages = this.sessionMessageQueues.get(sessionId) || [];
39
+ if (messages.length === 0) {
40
+ return null;
41
+ }
42
+ const firstMessage = messages.shift();
43
+ this.sessionMessageQueues.set(sessionId, messages);
44
+ // If the dequeued message has the special trigger name, recursively dequeue the next one
45
+ if (firstMessage.triggerName === BaseInterruptSessionManager_1.QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH) {
46
+ return this.dequeue(sessionId);
47
+ }
48
+ return firstMessage;
49
+ }
50
+ // Implementation of abstract methods from BaseInterruptSessionManager
51
+ hasQueuedMessages(sessionId) {
52
+ const queue = this.sessionMessageQueues.get(sessionId) || [];
53
+ return queue.length > 0;
54
+ }
55
+ getQueuedMessages(sessionId) {
56
+ return this.sessionMessageQueues.get(sessionId) || [];
57
+ }
58
+ }
59
+ exports.MemoryInterruptSessionManager = MemoryInterruptSessionManager;
60
+ //# sourceMappingURL=MemoryInterruptSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryInterruptSessionManager.js","sourceRoot":"","sources":["../../src/interrupts/MemoryInterruptSessionManager.ts"],"names":[],"mappings":";;;AAAA,+EAAmI;AAEnI,MAAa,6BAA8B,SAAQ,yDAA2B;IAA9E;;QACU,sBAAiB,GAAyB,IAAI,GAAG,EAAE,CAAC;QACpD,yBAAoB,GAAiC,IAAI,GAAG,EAAE,CAAC;IA0DzE,CAAC;IAxDC,WAAW,CAAC,SAAiB;QAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;QAC5E,IAAI,oBAAoB,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,CAAC,yBAAyB;QACzC,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,CAAC,6BAA6B;IAC5C,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,OAAsB;QACtD,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAG,CAAC;QACvC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEnD,yFAAyF;QACzF,IAAI,YAAY,CAAC,WAAW,KAAK,oEAAsC,EAAE,CAAC;YACxE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,sEAAsE;IAC5D,iBAAiB,CAAC,SAAiB;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1B,CAAC;IAES,iBAAiB,CAAC,SAAiB;QAC3C,OAAO,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;CACF;AA5DD,sEA4DC"}
@@ -0,0 +1,13 @@
1
+ import { BaseInterruptSessionManager, QueuedMessage } from './BaseInterruptSessionManager';
2
+ export declare class MindedInterruptSessionManager extends BaseInterruptSessionManager {
3
+ constructor();
4
+ isProcessed(sessionId: string): Promise<boolean>;
5
+ lock(sessionId: string): Promise<boolean>;
6
+ release(sessionId: string): Promise<void>;
7
+ enqueueMessage(sessionId: string, message: QueuedMessage): Promise<void>;
8
+ dequeueAll(sessionId: string): Promise<QueuedMessage[]>;
9
+ dequeue(sessionId: string): Promise<QueuedMessage | null>;
10
+ protected hasQueuedMessages(sessionId: string): Promise<boolean>;
11
+ protected getQueuedMessages(sessionId: string): Promise<QueuedMessage[]>;
12
+ }
13
+ //# sourceMappingURL=MindedInterruptSessionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MindedInterruptSessionManager.d.ts","sourceRoot":"","sources":["../../src/interrupts/MindedInterruptSessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAA0C,MAAM,+BAA+B,CAAC;AAsBnI,qBAAa,6BAA8B,SAAQ,2BAA2B;;IAKtE,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBhD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezC,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgBvD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;cAwB/C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAgBtD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAe/E"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.MindedInterruptSessionManager = void 0;
27
+ const BaseInterruptSessionManager_1 = require("./BaseInterruptSessionManager");
28
+ const mindedConnection = __importStar(require("../platform/mindedConnection"));
29
+ const mindedConnectionTypes_1 = require("../platform/mindedConnectionTypes");
30
+ class MindedInterruptSessionManager extends BaseInterruptSessionManager_1.BaseInterruptSessionManager {
31
+ constructor() {
32
+ super();
33
+ }
34
+ async isProcessed(sessionId) {
35
+ var _a;
36
+ try {
37
+ const response = await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED, {
38
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED,
39
+ sessionId,
40
+ });
41
+ return (_a = response.isProcessed) !== null && _a !== void 0 ? _a : false;
42
+ }
43
+ catch (error) {
44
+ console.error('Error checking if session is processed:', error);
45
+ return false;
46
+ }
47
+ }
48
+ async lock(sessionId) {
49
+ var _a;
50
+ try {
51
+ const response = await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK, {
52
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK,
53
+ sessionId,
54
+ });
55
+ return (_a = response.lockAcquired) !== null && _a !== void 0 ? _a : false;
56
+ }
57
+ catch (error) {
58
+ console.error('Error locking session:', error);
59
+ return false;
60
+ }
61
+ }
62
+ async release(sessionId) {
63
+ try {
64
+ await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE, {
65
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE,
66
+ sessionId,
67
+ });
68
+ }
69
+ catch (error) {
70
+ console.error('Error releasing session:', error);
71
+ throw error;
72
+ }
73
+ }
74
+ async enqueueMessage(sessionId, message) {
75
+ try {
76
+ await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE, {
77
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE,
78
+ sessionId,
79
+ message,
80
+ });
81
+ }
82
+ catch (error) {
83
+ console.error('Error enqueuing message:', error);
84
+ throw error;
85
+ }
86
+ }
87
+ async dequeueAll(sessionId) {
88
+ var _a;
89
+ try {
90
+ const response = await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL, {
91
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL,
92
+ sessionId,
93
+ });
94
+ return (_a = response.messages) !== null && _a !== void 0 ? _a : [];
95
+ }
96
+ catch (error) {
97
+ console.error('Error dequeuing all messages:', error);
98
+ return [];
99
+ }
100
+ }
101
+ async dequeue(sessionId) {
102
+ var _a;
103
+ try {
104
+ const response = await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE, {
105
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE,
106
+ sessionId,
107
+ });
108
+ const message = (_a = response.message) !== null && _a !== void 0 ? _a : null;
109
+ // If the dequeued message has the special trigger name, recursively dequeue the next one
110
+ if (message && message.triggerName === BaseInterruptSessionManager_1.QUEUE_INTERRUPT_DETECTED_BEFORE_SPEECH) {
111
+ return this.dequeue(sessionId);
112
+ }
113
+ return message;
114
+ }
115
+ catch (error) {
116
+ console.error('Error dequeuing message:', error);
117
+ return null;
118
+ }
119
+ }
120
+ // Implementation of abstract methods from BaseInterruptSessionManager
121
+ async hasQueuedMessages(sessionId) {
122
+ var _a;
123
+ try {
124
+ const response = await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES, {
125
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES,
126
+ sessionId,
127
+ });
128
+ return (_a = response.hasMessages) !== null && _a !== void 0 ? _a : false;
129
+ }
130
+ catch (error) {
131
+ console.error('Error checking if session has messages:', error);
132
+ return false;
133
+ }
134
+ }
135
+ async getQueuedMessages(sessionId) {
136
+ var _a;
137
+ try {
138
+ const response = await mindedConnection.awaitEmit(mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES, {
139
+ type: mindedConnectionTypes_1.mindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES,
140
+ sessionId,
141
+ });
142
+ return (_a = response.messages) !== null && _a !== void 0 ? _a : [];
143
+ }
144
+ catch (error) {
145
+ console.error('Error getting queued messages:', error);
146
+ return [];
147
+ }
148
+ }
149
+ }
150
+ exports.MindedInterruptSessionManager = MindedInterruptSessionManager;
151
+ //# sourceMappingURL=MindedInterruptSessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MindedInterruptSessionManager.js","sourceRoot":"","sources":["../../src/interrupts/MindedInterruptSessionManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { InterruptSessionManager } from './BaseInterruptSessionManager';
2
+ export declare function createInterruptSessionManager(): InterruptSessionManager;
3
+ //# sourceMappingURL=interruptSessionManagerFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interruptSessionManagerFactory.d.ts","sourceRoot":"","sources":["../../src/interrupts/interruptSessionManagerFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAOxE,wBAAgB,6BAA6B,IAAI,uBAAuB,CAYvE"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.createInterruptSessionManager = createInterruptSessionManager;
27
+ const MemoryInterruptSessionManager_1 = require("./MemoryInterruptSessionManager");
28
+ const MindedInterruptSessionManager_1 = require("./MindedInterruptSessionManager");
29
+ const mindedConnection = __importStar(require("../platform/mindedConnection"));
30
+ const config_1 = require("../platform/config");
31
+ const logger_1 = require("../utils/logger");
32
+ function createInterruptSessionManager() {
33
+ const { runLocally } = (0, config_1.getConfig)();
34
+ if (runLocally) {
35
+ logger_1.logger.info({ msg: 'Using memory interrupt session manager' });
36
+ return new MemoryInterruptSessionManager_1.MemoryInterruptSessionManager();
37
+ }
38
+ else {
39
+ if (!mindedConnection.isConnected()) {
40
+ throw new Error('MindedConnection is required for platform interrupt session manager');
41
+ }
42
+ logger_1.logger.info({ msg: 'Using Minded interrupt session manager' });
43
+ return new MindedInterruptSessionManager_1.MindedInterruptSessionManager();
44
+ }
45
+ }
46
+ //# sourceMappingURL=interruptSessionManagerFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interruptSessionManagerFactory.js","sourceRoot":"","sources":["../../src/interrupts/interruptSessionManagerFactory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAOA,sEAYC;AAlBD,mFAAgF;AAChF,mFAAgF;AAChF,+EAAiE;AACjE,+CAA+C;AAC/C,4CAAyC;AAEzC,SAAgB,6BAA6B;IAC3C,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAS,GAAE,CAAC;IACnC,IAAI,UAAU,EAAE,CAAC;QACf,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,wCAAwC,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,6DAA6B,EAAE,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACzF,CAAC;QACD,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,wCAAwC,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,6DAA6B,EAAE,CAAC;IAC7C,CAAC;AACH,CAAC"}
@@ -14,6 +14,7 @@ const playbooks_1 = require("../playbooks/playbooks");
14
14
  const addBrowserTaskNode = async ({ graph, node, agent, llm }) => {
15
15
  const callback = async (state) => {
16
16
  logger_1.logger.info({ msg: `Executing browser task node ${node.displayName}`, prompt: node.prompt });
17
+ await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
17
18
  // Create Zod schema from inputSchema
18
19
  const schemaFields = {};
19
20
  if (node.inputSchema) {
@@ -53,6 +54,7 @@ const addBrowserTaskNode = async ({ graph, node, agent, llm }) => {
53
54
  tool_choice: tool.name,
54
55
  })
55
56
  .invoke([...state.messages, new messages_1.SystemMessage(systemPrompt)]);
57
+ await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
56
58
  if (!AIToolCallMessage.tool_calls || AIToolCallMessage.tool_calls.length === 0) {
57
59
  throw new Error('No tool calls generated by LLM');
58
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"addBrowserTaskNode.js","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addBrowserTaskNode.js","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":";;;AACA,sDAAiE;AAGjE,4CAAyC;AACzC,8CAAqD;AACrD,uDAAoE;AACpE,+BAAoC;AAEpC,0EAAyE;AACzE,iDAA8D;AAC9D,6BAAwB;AAExB,mDAAgD;AAChD,sDAA0D;AASnD,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAA4B,EAAE,EAAE;IAChG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,+BAA+B,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5E,qCAAqC;QACrC,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,WAAyB,CAAC;gBAE9B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,oBAAoB;gBAChD,CAAC;gBAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxD,CAAC;gBAED,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAC7B,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACvC,CAAC;gBAED,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEzC,wBAAwB;QACxB,MAAM,IAAI,GAAG,IAAA,YAAa,EAAC,GAAG,EAAE,GAAE,CAAC,EAAE;YACnC,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAA,4BAAgB,EAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjI,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,iBAAiB,GAAc,MAAM,GAAG;iBAC3C,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;gBACjB,WAAW,EAAE,IAAI,CAAC,IAAI;aACvB,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,wBAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5E,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAExC,4CAA4C;YAC5C,MAAM,YAAY,GAAG;gBACnB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;aAClD,CAAC;YAEF,qCAAqC;YACrC,MAAM,cAAc,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAEhE,8CAA8C;YAC9C,MAAM,UAAU,GAAG;;;;EAIvB,cAAc;;EAEd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAE5G,sCAAsC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAA,yCAAoB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvD,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YAED,wCAAwC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;YAExD,eAAM,CAAC,KAAK,CAAC;gBACX,GAAG,EAAE,yBAAyB;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBACjC,SAAS;gBACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;aAC9B,CAAC,CAAC;YAEH,oDAAoD;YACpD,MAAM,eAAe,GAAG;gBACtB,GAAG,QAAQ;gBACX,IAAI,EAAE;oBACJ,GAAG,WAAW;oBACd,MAAM,EAAE,UAAU;iBACnB;aACF,CAAC;YAEF,MAAM,kBAAkB,GAAG,IAAI,oBAAS,CAAC;gBACvC,EAAE,EAAE,iBAAiB,CAAC,EAAE;gBACxB,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,UAAU,EAAE,CAAC,eAAe,CAAC;gBAC7B,iBAAiB,EAAE;oBACjB,cAAc,EAAE;wBACd,QAAQ,EAAE,sBAAQ,CAAC,YAAY;wBAC/B,eAAe,EAAE,IAAI,CAAC,WAAW;wBACjC,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,SAAS;wBACT,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;qBACxB;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;oBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;oBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;oBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE;oBAC7E,UAAU,EAAE,CAAC,kBAAkB,CAAC,EAAG,CAAC;iBACrC,CAAC;gBACF,QAAQ,EAAE,CAAC,kBAAkB,CAAC;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;YAE/E,MAAM,cAAc,GAAG,IAAA,SAAM,GAAE,CAAC;YAChC,MAAM,eAAe,GAAG,IAAA,SAAM,GAAE,CAAC;YAEjC,MAAM,kBAAkB,GAAG,IAAI,oBAAS,CAAC;gBACvC,EAAE,EAAE,cAAc;gBAClB,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE;oBACV;wBACE,EAAE,EAAE,eAAe;wBACnB,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE;4BACJ,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB;qBACF;iBACF;gBACD,iBAAiB,EAAE;oBACjB,cAAc,EAAE;wBACd,QAAQ,EAAE,sBAAQ,CAAC,YAAY;wBAC/B,eAAe,EAAE,IAAI,CAAC,WAAW;wBACjC,KAAK,EAAE,KAAK,CAAC,OAAO;wBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;qBACxB;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;oBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;oBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;oBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,GAAG,EAAE,KAAK;oBACV,UAAU,EAAE,CAAC,cAAc,CAAC;iBAC7B,CAAC;gBACF,QAAQ,EAAE,CAAC,kBAAkB,CAAC;aAC/B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AA3KW,QAAA,kBAAkB,sBA2K7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"addHumanInTheLoopNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addHumanInTheLoopNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAK7E,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAAc,MAAM,WAA0D,CAAC;AAEvH,eAAO,MAAM,qBAAqB,kCAAyC,2BAA2B,kBAWrG,CAAC"}
1
+ {"version":3,"file":"addHumanInTheLoopNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addHumanInTheLoopNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAM7E,KAAK,2BAA2B,GAAG;IACjC,KAAK,EAAE,gBAAgB,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,2BAA2B,aAAc,MAAM,WAA0D,CAAC;AAEvH,eAAO,MAAM,qBAAqB,kCAAyC,2BAA2B,kBAWrG,CAAC"}
@@ -4,13 +4,14 @@ exports.addHumanInTheLoopNode = exports.buildHumanInTheLoopNodeName = void 0;
4
4
  const langgraph_1 = require("@langchain/langgraph");
5
5
  const logger_1 = require("../utils/logger");
6
6
  const Flows_types_1 = require("../types/Flows.types");
7
+ const BaseInterruptSessionManager_1 = require("../interrupts/BaseInterruptSessionManager");
7
8
  const buildHumanInTheLoopNodeName = (nodeName) => `${nodeName}${Flows_types_1.internalNodesSuffix.HUMAN_IN_THE_LOOP}`;
8
9
  exports.buildHumanInTheLoopNodeName = buildHumanInTheLoopNodeName;
9
10
  const addHumanInTheLoopNode = async ({ graph, attachedToNodeName }) => {
10
11
  const callback = async (state) => {
11
12
  logger_1.logger.debug({ msg: `[Node] Waiting for human input`, node: attachedToNodeName });
12
13
  if (state.messages[state.messages.length - 1].getType() === 'ai') {
13
- const value = (0, langgraph_1.interrupt)('input from human in the loop');
14
+ const value = (0, langgraph_1.interrupt)({ type: BaseInterruptSessionManager_1.InterruptType.HUMAN_IN_THE_LOOP });
14
15
  return value;
15
16
  }
16
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"addHumanInTheLoopNode.js","sourceRoot":"","sources":["../../src/nodes/addHumanInTheLoopNode.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAGjD,4CAAyC;AACzC,sDAA2D;AAOpD,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,iCAAmB,CAAC,iBAAiB,EAAE,CAAC;AAA1G,QAAA,2BAA2B,+BAA+E;AAEhH,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAA+B,EAAE,EAAE;IACxG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,gCAAgC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAElF,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,8BAA8B,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAA,mCAA2B,EAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzE,KAAK,CAAC,OAAO,CAAC,kBAAyB,EAAE,IAAA,mCAA2B,EAAC,kBAAkB,CAAQ,CAAC,CAAC;AACnG,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
1
+ {"version":3,"file":"addHumanInTheLoopNode.js","sourceRoot":"","sources":["../../src/nodes/addHumanInTheLoopNode.ts"],"names":[],"mappings":";;;AAAA,oDAAiD;AAGjD,4CAAyC;AACzC,sDAA2D;AAC3D,2FAA0E;AAOnE,MAAM,2BAA2B,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,QAAQ,GAAG,iCAAmB,CAAC,iBAAiB,EAAE,CAAC;AAA1G,QAAA,2BAA2B,+BAA+E;AAEhH,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAA+B,EAAE,EAAE;IACxG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,gCAAgC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAElF,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,KAAK,GAAG,IAAA,qBAAS,EAAC,EAAE,IAAI,EAAE,2CAAa,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAA,mCAA2B,EAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzE,KAAK,CAAC,OAAO,CAAC,kBAAyB,EAAE,IAAA,mCAA2B,EAAC,kBAAkB,CAAQ,CAAC,CAAC;AACnG,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC"}
@@ -6,7 +6,7 @@ const logger_1 = require("../utils/logger");
6
6
  const history_1 = require("../utils/history");
7
7
  const addJumpToNode = async ({ graph, node }) => {
8
8
  const callback = async (state) => {
9
- logger_1.logger.info(`Executing jump node ${node.displayName} – jumping to ${node.targetNodeId}`);
9
+ logger_1.logger.info({ msg: `Executing jump node ${node.displayName} – jumping to ${node.targetNodeId}` });
10
10
  // No state modifications are necessary; control flow is handled via edges.
11
11
  return {
12
12
  goto: node.targetNodeId,
@@ -1 +1 @@
1
- {"version":3,"file":"addJumpToNode.js","sourceRoot":"","sources":["../../src/nodes/addJumpToNode.ts"],"names":[],"mappings":";;;AAEA,sDAA4D;AAC5D,4CAAyC;AAEzC,8CAAqD;AAE9C,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAiD,EAAE,EAAE;IACpG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,eAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACzF,2EAA2E;QAC3E,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;gBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;gBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;gBACjC,GAAG,EAAE,EAAE;aACR,CAAC;SACH,CAAC;IACJ,CAAC,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAW,EAAE,IAAI,CAAC,YAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAjBW,QAAA,aAAa,iBAiBxB"}
1
+ {"version":3,"file":"addJumpToNode.js","sourceRoot":"","sources":["../../src/nodes/addJumpToNode.ts"],"names":[],"mappings":";;;AAEA,sDAA4D;AAC5D,4CAAyC;AAEzC,8CAAqD;AAE9C,MAAM,aAAa,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAiD,EAAE,EAAE;IACpG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,uBAAuB,IAAI,CAAC,WAAW,iBAAiB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAClG,2EAA2E;QAC3E,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;gBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;gBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;gBACjC,GAAG,EAAE,EAAE;aACR,CAAC;SACH,CAAC;IACJ,CAAC,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAW,EAAE,IAAI,CAAC,YAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAjBW,QAAA,aAAa,iBAiBxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"addPromptNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addPromptNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,yBAAyB,EAAe,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMjC,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,aAAa,6CAAoD,mBAAmB,kBA6FhG,CAAC"}
1
+ {"version":3,"file":"addPromptNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addPromptNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAEzE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAE5C,OAAO,EAAE,yBAAyB,EAAe,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAe,MAAM,sBAAsB,CAAC;AAGlE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAMjC,KAAK,mBAAmB,GAAG;IACzB,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,iBAAiB,CAAC;IACvB,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,aAAa,6CAAoD,mBAAmB,kBAwIhG,CAAC"}
@@ -14,10 +14,12 @@ const logger_1 = require("../utils/logger");
14
14
  const playbooks_1 = require("../playbooks/playbooks");
15
15
  const history_1 = require("../utils/history");
16
16
  const compilePrompt_1 = require("./compilePrompt");
17
+ const uuid_1 = require("uuid");
17
18
  const addPromptNode = async ({ graph, node, llm, tools, emit, agent }) => {
18
19
  const callback = async (state) => {
19
20
  var _a;
20
- logger_1.logger.debug({ msg: `[Node] Executing prompt node`, node: node.displayName });
21
+ await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
22
+ logger_1.logger.info({ msg: `[Node] Executing prompt node`, node: node.displayName });
21
23
  const llmToUse = node.llmConfig ? (0, createLlmInstance_1.createLlmInstance)(node.llmConfig) : llm;
22
24
  const globalTools = tools
23
25
  .filter((tool) => tool.isGlobal)
@@ -35,6 +37,7 @@ const addPromptNode = async ({ graph, node, llm, tools, emit, agent }) => {
35
37
  const compiledPrompt = (0, compilePrompt_1.compilePrompt)(systemMessage, { memory: state.memory, system: { currentTime: new Date().toISOString() } });
36
38
  const startTime = Date.now();
37
39
  const result = await llmToUse.bindTools(globalTools).invoke([new messages_1.SystemMessage(compiledPrompt), ...state.messages]);
40
+ await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId);
38
41
  const endTime = Date.now();
39
42
  logger_1.logger.debug({ msg: '[Model] Model execution time', executionTimeMs: endTime - startTime });
40
43
  // Check if the result contains tool calls
@@ -52,6 +55,27 @@ const addPromptNode = async ({ graph, node, llm, tools, emit, agent }) => {
52
55
  const toolResult = await matchedTool.invoke(toolCall);
53
56
  const endTime = Date.now();
54
57
  logger_1.logger.debug({ msg: `[Tool] Tool result`, tool: matchedTool === null || matchedTool === void 0 ? void 0 : matchedTool.name, result: toolResult, executionTimeMs: endTime - startTime });
58
+ //check for queue after tool call
59
+ const systemMessageId = (0, uuid_1.v4)();
60
+ await agent.interruptSessionManager.checkQueueAndInterrupt(state.sessionId, {
61
+ messages: [
62
+ result,
63
+ toolResult,
64
+ new messages_1.SystemMessage({
65
+ id: systemMessageId,
66
+ content: 'you called tool when the user send a new message, Consider calling the function again after user message is processed',
67
+ }),
68
+ ],
69
+ history: [
70
+ (0, history_1.createHistoryStep)(state.history, {
71
+ type: Flows_types_1.NodeType.TOOL,
72
+ nodeId: node.name,
73
+ nodeDisplayName: node.displayName,
74
+ raw: toolResult,
75
+ messageIds: [toolResult.id, systemMessageId],
76
+ }),
77
+ ],
78
+ });
55
79
  const toolStateUpdate = (0, extractStateMemoryResponse_1.default)(toolResult);
56
80
  // Properly merge memory and other state updates
57
81
  stateUpdates = {
@@ -62,6 +86,8 @@ const addPromptNode = async ({ graph, node, llm, tools, emit, agent }) => {
62
86
  toolResults.push(toolResult);
63
87
  }
64
88
  catch (error) {
89
+ if ((error === null || error === void 0 ? void 0 : error.name) === 'GraphInterrupt')
90
+ throw error;
65
91
  logger_1.logger.error({ msg: `[Tool] Error executing tool`, tool: toolCall.name, error });
66
92
  const errorMessage = new messages_1.ToolMessage({
67
93
  content: JSON.stringify({ error: error instanceof Error ? error.message : String(error) }),
@@ -78,6 +104,22 @@ const addPromptNode = async ({ graph, node, llm, tools, emit, agent }) => {
78
104
  return {
79
105
  ...stateUpdates,
80
106
  messages: [result, ...toolResults],
107
+ history: [
108
+ (0, history_1.createHistoryStep)(state.history, {
109
+ type: Flows_types_1.NodeType.TOOL,
110
+ nodeId: node.name,
111
+ nodeDisplayName: node.displayName,
112
+ raw: result,
113
+ messageIds: [result.id],
114
+ }),
115
+ ...toolResults.map((toolResult) => (0, history_1.createHistoryStep)(state.history, {
116
+ type: Flows_types_1.NodeType.TOOL,
117
+ nodeId: node.name,
118
+ nodeDisplayName: node.displayName,
119
+ raw: toolResult,
120
+ messageIds: [toolResult.id],
121
+ })),
122
+ ],
81
123
  };
82
124
  }
83
125
  if (result.getType() === 'ai') {