@minded-ai/mindedjs 1.0.91 → 1.0.92-beta-2

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 (83) hide show
  1. package/dist/agent.d.ts +4 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +93 -12
  4. package/dist/agent.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/interrupts/InterruptSessionManager.types.d.ts +36 -0
  10. package/dist/interrupts/InterruptSessionManager.types.d.ts.map +1 -0
  11. package/dist/interrupts/InterruptSessionManager.types.js +39 -0
  12. package/dist/interrupts/InterruptSessionManager.types.js.map +1 -0
  13. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
  14. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
  15. package/dist/interrupts/MemoryInterruptSessionManager.js +51 -0
  16. package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
  17. package/dist/interrupts/MindedInterruptSessionManager.d.ts +15 -0
  18. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
  19. package/dist/interrupts/MindedInterruptSessionManager.js +121 -0
  20. package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
  21. package/dist/interrupts/interruptSessionManagerFactory.d.ts +4 -0
  22. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
  23. package/dist/interrupts/interruptSessionManagerFactory.js +19 -0
  24. package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
  25. package/dist/nodes/addAppToolNode.d.ts.map +1 -1
  26. package/dist/nodes/addAppToolNode.js +2 -2
  27. package/dist/nodes/addAppToolNode.js.map +1 -1
  28. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -1
  29. package/dist/nodes/addHumanInTheLoopNode.js +2 -1
  30. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -1
  31. package/dist/nodes/addJumpToNode.d.ts.map +1 -1
  32. package/dist/nodes/addJumpToNode.js +2 -2
  33. package/dist/nodes/addJumpToNode.js.map +1 -1
  34. package/dist/nodes/addJunctionNode.d.ts +7 -0
  35. package/dist/nodes/addJunctionNode.d.ts.map +1 -0
  36. package/dist/nodes/addJunctionNode.js +20 -0
  37. package/dist/nodes/addJunctionNode.js.map +1 -0
  38. package/dist/nodes/addPromptNode.d.ts.map +1 -1
  39. package/dist/nodes/addPromptNode.js +42 -2
  40. package/dist/nodes/addPromptNode.js.map +1 -1
  41. package/dist/nodes/addToolNode.d.ts.map +1 -1
  42. package/dist/nodes/addToolNode.js +2 -2
  43. package/dist/nodes/addToolNode.js.map +1 -1
  44. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  45. package/dist/nodes/addToolRunNode.js +1 -2
  46. package/dist/nodes/addToolRunNode.js.map +1 -1
  47. package/dist/nodes/addTriggerNode.d.ts.map +1 -1
  48. package/dist/nodes/addTriggerNode.js +1 -2
  49. package/dist/nodes/addTriggerNode.js.map +1 -1
  50. package/dist/nodes/nodeFactory.d.ts.map +1 -1
  51. package/dist/nodes/nodeFactory.js +2 -5
  52. package/dist/nodes/nodeFactory.js.map +1 -1
  53. package/dist/platform/mindedConnectionTypes.d.ts +82 -1
  54. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  55. package/dist/platform/mindedConnectionTypes.js +9 -0
  56. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  57. package/dist/types/Agent.types.d.ts +11 -13
  58. package/dist/types/Agent.types.d.ts.map +1 -1
  59. package/dist/types/Agent.types.js +1 -10
  60. package/dist/types/Agent.types.js.map +1 -1
  61. package/dist/types/LangGraph.types.d.ts +2 -2
  62. package/dist/types/LangGraph.types.d.ts.map +1 -1
  63. package/dist/types/LangGraph.types.js +3 -1
  64. package/dist/types/LangGraph.types.js.map +1 -1
  65. package/package.json +2 -2
  66. package/src/agent.ts +119 -21
  67. package/src/index.ts +0 -1
  68. package/src/interrupts/InterruptSessionManager.types.ts +79 -0
  69. package/src/interrupts/MemoryInterruptSessionManager.ts +56 -0
  70. package/src/interrupts/MindedInterruptSessionManager.ts +157 -0
  71. package/src/interrupts/interruptSessionManagerFactory.ts +17 -0
  72. package/src/nodes/addAppToolNode.ts +3 -3
  73. package/src/nodes/addHumanInTheLoopNode.ts +2 -1
  74. package/src/nodes/addJumpToNode.ts +3 -3
  75. package/src/nodes/addJunctionNode.ts +19 -0
  76. package/src/nodes/addPromptNode.ts +48 -7
  77. package/src/nodes/addToolNode.ts +2 -3
  78. package/src/nodes/addToolRunNode.ts +2 -3
  79. package/src/nodes/addTriggerNode.ts +3 -3
  80. package/src/nodes/nodeFactory.ts +2 -7
  81. package/src/platform/mindedConnectionTypes.ts +100 -0
  82. package/src/types/Agent.types.ts +12 -15
  83. package/src/types/LangGraph.types.ts +3 -1
@@ -21,7 +21,15 @@ export declare enum MindedConnectionSocketMessageType {
21
21
  INTERFACE_FUNCTION_CALL = "interface-function-call",
22
22
  TIMER_RESET = "timer-reset",
23
23
  TIMER_CANCEL = "timer-cancel",
24
- TIMER_TRIGGER = "timer-trigger"
24
+ TIMER_TRIGGER = "timer-trigger",
25
+ INTERRUPT_SESSION_IS_PROCESSED = "interrupt-session-is-processed",
26
+ INTERRUPT_SESSION_LOCK = "interrupt-session-lock",
27
+ INTERRUPT_SESSION_RELEASE = "interrupt-session-release",
28
+ INTERRUPT_SESSION_ENQUEUE = "interrupt-session-enqueue",
29
+ INTERRUPT_SESSION_DEQUEUE_ALL = "interrupt-session-dequeue-all",
30
+ INTERRUPT_SESSION_DEQUEUE = "interrupt-session-dequeue",
31
+ INTERRUPT_SESSION_HAS_MESSAGES = "interrupt-session-has-messages",
32
+ INTERRUPT_SESSION_GET_MESSAGES = "interrupt-session-get-messages"
25
33
  }
26
34
  export type MindedConnectionSocketMessageTypeMap = {
27
35
  [MindedConnectionSocketMessageType.OnAppAction]: BaseMindedConnectionSocketMessage;
@@ -44,6 +52,14 @@ export type MindedConnectionSocketMessageTypeMap = {
44
52
  [MindedConnectionSocketMessageType.TIMER_RESET]: TimerResetRequest;
45
53
  [MindedConnectionSocketMessageType.TIMER_CANCEL]: TimerCancelRequest;
46
54
  [MindedConnectionSocketMessageType.TIMER_TRIGGER]: TimerTriggerRequest;
55
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED]: InterruptSessionIsProcessedRequest;
56
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK]: InterruptSessionLockRequest;
57
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE]: InterruptSessionReleaseRequest;
58
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE]: InterruptSessionEnqueueRequest;
59
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL]: InterruptSessionDequeueAllRequest;
60
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE]: InterruptSessionDequeueRequest;
61
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES]: InterruptSessionHasMessagesRequest;
62
+ [MindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES]: InterruptSessionGetMessagesRequest;
47
63
  };
48
64
  export interface BaseMindedConnectionSocketMessage {
49
65
  type: MindedConnectionSocketMessageType;
@@ -145,4 +161,69 @@ export interface TimerTriggerRequest extends BaseMindedConnectionSocketMessage {
145
161
  timerName: string;
146
162
  eventArgs: Record<string, any>;
147
163
  }
164
+ export interface InterruptSessionIsProcessedRequest extends BaseMindedConnectionSocketMessage {
165
+ sessionId: string;
166
+ }
167
+ export interface InterruptSessionIsProcessedResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
168
+ isProcessed?: boolean;
169
+ }
170
+ export interface InterruptSessionLockRequest extends BaseMindedConnectionSocketMessage {
171
+ sessionId: string;
172
+ }
173
+ export interface InterruptSessionLockResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
174
+ success?: boolean;
175
+ }
176
+ export interface InterruptSessionReleaseRequest extends BaseMindedConnectionSocketMessage {
177
+ sessionId: string;
178
+ }
179
+ export interface InterruptSessionReleaseResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
180
+ success?: boolean;
181
+ }
182
+ export interface InterruptSessionEnqueueRequest extends BaseMindedConnectionSocketMessage {
183
+ sessionId: string;
184
+ message: {
185
+ triggerBody: any;
186
+ triggerName: string;
187
+ appName?: string;
188
+ };
189
+ }
190
+ export interface InterruptSessionEnqueueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
191
+ success?: boolean;
192
+ }
193
+ export interface InterruptSessionDequeueAllRequest extends BaseMindedConnectionSocketMessage {
194
+ sessionId: string;
195
+ }
196
+ export interface InterruptSessionDequeueAllResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
197
+ messages?: Array<{
198
+ triggerBody: any;
199
+ triggerName: string;
200
+ appName?: string;
201
+ }>;
202
+ }
203
+ export interface InterruptSessionDequeueRequest extends BaseMindedConnectionSocketMessage {
204
+ sessionId: string;
205
+ }
206
+ export interface InterruptSessionDequeueResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
207
+ message?: {
208
+ triggerBody: any;
209
+ triggerName: string;
210
+ appName?: string;
211
+ } | null;
212
+ }
213
+ export interface InterruptSessionHasMessagesRequest extends BaseMindedConnectionSocketMessage {
214
+ sessionId: string;
215
+ }
216
+ export interface InterruptSessionHasMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
217
+ hasMessages?: boolean;
218
+ }
219
+ export interface InterruptSessionGetMessagesRequest extends BaseMindedConnectionSocketMessage {
220
+ sessionId: string;
221
+ }
222
+ export interface InterruptSessionGetMessagesResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
223
+ messages?: Array<{
224
+ triggerBody: any;
225
+ triggerName: string;
226
+ appName?: string;
227
+ }>;
228
+ }
148
229
  //# sourceMappingURL=mindedConnectionTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mindedConnectionTypes.d.ts","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mindedConnectionTypes.d.ts","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":"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"}
@@ -25,5 +25,14 @@ var MindedConnectionSocketMessageType;
25
25
  MindedConnectionSocketMessageType["TIMER_RESET"] = "timer-reset";
26
26
  MindedConnectionSocketMessageType["TIMER_CANCEL"] = "timer-cancel";
27
27
  MindedConnectionSocketMessageType["TIMER_TRIGGER"] = "timer-trigger";
28
+ // Interrupt Session Management
29
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_IS_PROCESSED"] = "interrupt-session-is-processed";
30
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_LOCK"] = "interrupt-session-lock";
31
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_RELEASE"] = "interrupt-session-release";
32
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_ENQUEUE"] = "interrupt-session-enqueue";
33
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_DEQUEUE_ALL"] = "interrupt-session-dequeue-all";
34
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_DEQUEUE"] = "interrupt-session-dequeue";
35
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_HAS_MESSAGES"] = "interrupt-session-has-messages";
36
+ MindedConnectionSocketMessageType["INTERRUPT_SESSION_GET_MESSAGES"] = "interrupt-session-get-messages";
28
37
  })(MindedConnectionSocketMessageType || (exports.MindedConnectionSocketMessageType = MindedConnectionSocketMessageType = {}));
29
38
  //# sourceMappingURL=mindedConnectionTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mindedConnectionTypes.js","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":";;;AAWA,IAAY,iCAuBX;AAvBD,WAAY,iCAAiC;IAC3C,kEAA6B,CAAA;IAC7B,gEAA2B,CAAA;IAC3B,4DAAuB,CAAA;IACvB,oEAA+B,CAAA;IAC/B,sDAAiB,CAAA;IACjB,0EAAqC,CAAA;IACrC,cAAc;IACd,kFAA6C,CAAA;IAC7C,sEAAiC,CAAA;IACjC,wEAAmC,CAAA;IACnC,oFAA+C,CAAA;IAC/C,QAAQ;IACR,8FAAyD,CAAA;IACzD,gGAA2D,CAAA;IAC3D,oGAA+D,CAAA;IAC/D,gGAA2D,CAAA;IAC3D,kGAA6D,CAAA;IAC7D,kHAA6E,CAAA;IAC7E,wFAAmD,CAAA;IACnD,gEAA2B,CAAA;IAC3B,kEAA6B,CAAA;IAC7B,oEAA+B,CAAA;AACjC,CAAC,EAvBW,iCAAiC,iDAAjC,iCAAiC,QAuB5C"}
1
+ {"version":3,"file":"mindedConnectionTypes.js","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":";;;AAWA,IAAY,iCAgCX;AAhCD,WAAY,iCAAiC;IAC3C,kEAA6B,CAAA;IAC7B,gEAA2B,CAAA;IAC3B,4DAAuB,CAAA;IACvB,oEAA+B,CAAA;IAC/B,sDAAiB,CAAA;IACjB,0EAAqC,CAAA;IACrC,cAAc;IACd,kFAA6C,CAAA;IAC7C,sEAAiC,CAAA;IACjC,wEAAmC,CAAA;IACnC,oFAA+C,CAAA;IAC/C,QAAQ;IACR,8FAAyD,CAAA;IACzD,gGAA2D,CAAA;IAC3D,oGAA+D,CAAA;IAC/D,gGAA2D,CAAA;IAC3D,kGAA6D,CAAA;IAC7D,kHAA6E,CAAA;IAC7E,wFAAmD,CAAA;IACnD,gEAA2B,CAAA;IAC3B,kEAA6B,CAAA;IAC7B,oEAA+B,CAAA;IAC/B,+BAA+B;IAC/B,sGAAiE,CAAA;IACjE,sFAAiD,CAAA;IACjD,4FAAuD,CAAA;IACvD,4FAAuD,CAAA;IACvD,oGAA+D,CAAA;IAC/D,4FAAuD,CAAA;IACvD,sGAAiE,CAAA;IACjE,sGAAiE,CAAA;AACnE,CAAC,EAhCW,iCAAiC,iDAAjC,iCAAiC,QAgC5C"}
@@ -1,5 +1,6 @@
1
1
  import { AgentEventRequestPayloads, AgentEventResponsePayloads } from '../events/AgentEvents';
2
2
  import { LLMConfig } from './LLM.types';
3
+ import { NodeType } from './Flows.types';
3
4
  export type EmitSignature<Memory, E extends keyof AgentEventRequestPayloads<Memory>> = (event: E, payload: AgentEventRequestPayloads<Memory>[E]) => Promise<AgentEventResponsePayloads<Memory>[E][]>;
4
5
  export type MindedSDKConfig = {
5
6
  flows: string[];
@@ -22,17 +23,11 @@ export interface AgentInvokeParams {
22
23
  sessionId?: string;
23
24
  /** Optional name of the application triggering the agent in case of an app trigger */
24
25
  appName?: string;
25
- }
26
- export declare enum HistoryStepType {
27
- APP_TRIGGER_NODE = "appTriggerNode",
28
- TRIGGER_NODE = "triggerNode",
29
- APP_ACTION_NODE = "appActionNode",
30
- CUSTOM_ACTION_NODE = "customActionNode",
31
- PROMPT_NODE = "promptNode",
32
- JUMP_TO_NODE = "jumpToNode"
26
+ /** Internal flag to bypass session processing check for recursive calls */
27
+ bypassSessionCheck?: boolean;
33
28
  }
34
29
  export interface HistoryStep {
35
- type: HistoryStepType;
30
+ type: NodeType;
36
31
  step: number;
37
32
  raw: any;
38
33
  nodeId: string;
@@ -40,18 +35,21 @@ export interface HistoryStep {
40
35
  messageIds?: string[];
41
36
  }
42
37
  export interface AppTriggerHistoryStep extends HistoryStep {
43
- type: HistoryStepType.APP_TRIGGER_NODE;
38
+ type: NodeType.TRIGGER;
44
39
  appName: string;
45
40
  }
46
41
  export interface TriggerHistoryStep extends HistoryStep {
47
- type: HistoryStepType.TRIGGER_NODE;
42
+ type: NodeType.TRIGGER;
48
43
  }
49
44
  export interface AppActionInvocationHistoryStep extends HistoryStep {
50
- type: HistoryStepType.APP_ACTION_NODE;
45
+ type: NodeType.APP_TOOL;
51
46
  appName: string;
52
47
  }
53
48
  export interface CustomActionInvocationHistoryStep extends HistoryStep {
54
- type: HistoryStepType.CUSTOM_ACTION_NODE;
49
+ type: NodeType.TOOL;
50
+ }
51
+ export interface JunctionHistoryStep extends HistoryStep {
52
+ type: NodeType.JUNCTION;
55
53
  }
56
54
  export declare enum SessionType {
57
55
  VOICE = "voice",
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.types.d.ts","sourceRoot":"","sources":["../../src/types/Agent.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,yBAAyB,CAAC,MAAM,CAAC,IAAI,CACrF,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAC1C,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,WAAW,EAAE,GAAG,CAAC;IACjB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,oBAAY,eAAe;IACzB,gBAAgB,mBAAmB;IACnC,YAAY,gBAAgB;IAC5B,eAAe,kBAAkB;IACjC,kBAAkB,qBAAqB;IACvC,WAAW,eAAe;IAC1B,YAAY,eAAe;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,IAAI,EAAE,eAAe,CAAC,gBAAgB,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC;CACpC;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IACjE,IAAI,EAAE,eAAe,CAAC,eAAe,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iCAAkC,SAAQ,WAAW;IACpE,IAAI,EAAE,eAAe,CAAC,kBAAkB,CAAC;CAC1C;AAED,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
1
+ {"version":3,"file":"Agent.types.d.ts","sourceRoot":"","sources":["../../src/types/Agent.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,yBAAyB,CAAC,MAAM,CAAC,IAAI,CACrF,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAC1C,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,WAAW,EAAE,GAAG,CAAC;IACjB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AACD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAsB,SAAQ,WAAW;IACxD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IACjE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iCAAkC,SAAQ,WAAW;IACpE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACzB;AAED,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;CACd"}
@@ -1,15 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionType = exports.HistoryStepType = void 0;
4
- var HistoryStepType;
5
- (function (HistoryStepType) {
6
- HistoryStepType["APP_TRIGGER_NODE"] = "appTriggerNode";
7
- HistoryStepType["TRIGGER_NODE"] = "triggerNode";
8
- HistoryStepType["APP_ACTION_NODE"] = "appActionNode";
9
- HistoryStepType["CUSTOM_ACTION_NODE"] = "customActionNode";
10
- HistoryStepType["PROMPT_NODE"] = "promptNode";
11
- HistoryStepType["JUMP_TO_NODE"] = "jumpToNode";
12
- })(HistoryStepType || (exports.HistoryStepType = HistoryStepType = {}));
3
+ exports.SessionType = void 0;
13
4
  var SessionType;
14
5
  (function (SessionType) {
15
6
  SessionType["VOICE"] = "voice";
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.types.js","sourceRoot":"","sources":["../../src/types/Agent.types.ts"],"names":[],"mappings":";;;AAgCA,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,sDAAmC,CAAA;IACnC,+CAA4B,CAAA;IAC5B,oDAAiC,CAAA;IACjC,0DAAuC,CAAA;IACvC,6CAA0B,CAAA;IAC1B,8CAA2B,CAAA;AAC7B,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AA6BD,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
1
+ {"version":3,"file":"Agent.types.js","sourceRoot":"","sources":["../../src/types/Agent.types.ts"],"names":[],"mappings":";;;AAiEA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -5,14 +5,14 @@ export declare const createStateAnnotation: <Memory = any>() => import("@langcha
5
5
  messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage[], BaseMessage[]>;
6
6
  memory: import("@langchain/langgraph").BinaryOperatorAggregate<Memory, Memory>;
7
7
  history: import("@langchain/langgraph").BinaryOperatorAggregate<HistoryStep[], HistoryStep[]>;
8
- sessionId: import("@langchain/langgraph").LastValue<string>;
8
+ sessionId: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
9
9
  sessionType: import("@langchain/langgraph").BinaryOperatorAggregate<SessionType, SessionType>;
10
10
  }>;
11
11
  export declare const stateAnnotation: import("@langchain/langgraph").AnnotationRoot<{
12
12
  messages: import("@langchain/langgraph").BinaryOperatorAggregate<BaseMessage[], BaseMessage[]>;
13
13
  memory: import("@langchain/langgraph").BinaryOperatorAggregate<any, any>;
14
14
  history: import("@langchain/langgraph").BinaryOperatorAggregate<HistoryStep[], HistoryStep[]>;
15
- sessionId: import("@langchain/langgraph").LastValue<string>;
15
+ sessionId: import("@langchain/langgraph").BinaryOperatorAggregate<string, string>;
16
16
  sessionType: import("@langchain/langgraph").BinaryOperatorAggregate<SessionType, SessionType>;
17
17
  }>;
18
18
  export type CompiledGraph = CompiledStateGraph<any, any, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"LangGraph.types.d.ts","sourceRoot":"","sources":["../../src/types/LangGraph.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAc,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEzD,eAAO,MAAM,qBAAqB,GAAI,MAAM,GAAG,GAAG;;;;;;EAgC9C,CAAC;AAGL,eAAO,MAAM,eAAe;;;;;;EAA0B,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"LangGraph.types.d.ts","sourceRoot":"","sources":["../../src/types/LangGraph.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAc,kBAAkB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEzD,eAAO,MAAM,qBAAqB,GAAI,MAAM,GAAG,GAAG;;;;;;EAkC9C,CAAC;AAGL,eAAO,MAAM,eAAe;;;;;;EAA0B,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAC5D,MAAM,MAAM,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC"}
@@ -31,7 +31,9 @@ const createStateAnnotation = () => langgraph_1.Annotation.Root({
31
31
  default: () => [],
32
32
  reducer: (a, b) => a.concat(b),
33
33
  }),
34
- sessionId: (0, langgraph_1.Annotation)(),
34
+ sessionId: (0, langgraph_1.Annotation)({
35
+ reducer: (a, b) => b || a,
36
+ }),
35
37
  sessionType: (0, langgraph_1.Annotation)({
36
38
  default: () => Agent_types_1.SessionType.TEXT,
37
39
  reducer: (a, b) => b || a,
@@ -1 +1 @@
1
- {"version":3,"file":"LangGraph.types.js","sourceRoot":"","sources":["../../src/types/LangGraph.types.ts"],"names":[],"mappings":";;;AACA,oDAAkF;AAClF,+CAAyD;AAElD,MAAM,qBAAqB,GAAG,GAAiB,EAAE,CACtD,sBAAU,CAAC,IAAI,CAAC;IACd,QAAQ,EAAE,IAAA,sBAAU,EAAqB;QACvC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE;;YACrC,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAA,OAAO,CAAC,iBAAiB,0CAAE,MAAM,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;oBAChE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjB,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBACvC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;IACF,MAAM,EAAE,IAAA,sBAAU,EAAS;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAa,CAAA;QAC7B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;KACpC,CAAC;IACF,OAAO,EAAE,IAAA,sBAAU,EAAqB;QACtC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,CAAC;IACF,SAAS,EAAE,IAAA,sBAAU,GAAU;IAC/B,WAAW,EAAE,IAAA,sBAAU,EAAc;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAW,CAAC,IAAI;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;KAC1B,CAAC;CACH,CAAC,CAAC;AAhCQ,QAAA,qBAAqB,yBAgC7B;AAEL,gDAAgD;AACnC,QAAA,eAAe,GAAG,IAAA,6BAAqB,GAAE,CAAC"}
1
+ {"version":3,"file":"LangGraph.types.js","sourceRoot":"","sources":["../../src/types/LangGraph.types.ts"],"names":[],"mappings":";;;AACA,oDAAkF;AAClF,+CAAyD;AAElD,MAAM,qBAAqB,GAAG,GAAiB,EAAE,CACtD,sBAAU,CAAC,IAAI,CAAC;IACd,QAAQ,EAAE,IAAA,sBAAU,EAAqB;QACvC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE;;YACrC,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;YAC9B,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,IAAI,MAAA,OAAO,CAAC,iBAAiB,0CAAE,MAAM,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;oBAChE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjB,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBACvC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,CAAC;YACH,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;KACF,CAAC;IACF,MAAM,EAAE,IAAA,sBAAU,EAAS;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAa,CAAA;QAC7B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;KACpC,CAAC;IACF,OAAO,EAAE,IAAA,sBAAU,EAAqB;QACtC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;QACjB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/B,CAAC;IACF,SAAS,EAAE,IAAA,sBAAU,EAAS;QAC5B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;KAC1B,CAAC;IACF,WAAW,EAAE,IAAA,sBAAU,EAAc;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,yBAAW,CAAC,IAAI;QAC/B,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;KAC1B,CAAC;CACH,CAAC,CAAC;AAlCQ,QAAA,qBAAqB,yBAkC7B;AAEL,gDAAgD;AACnC,QAAA,eAAe,GAAG,IAAA,6BAAqB,GAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "1.0.91",
3
+ "version": "1.0.92-beta-2",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -66,4 +66,4 @@
66
66
  "uuid": "^11.1.0",
67
67
  "ws": "^8.15.1"
68
68
  }
69
- }
69
+ }
package/src/agent.ts CHANGED
@@ -25,7 +25,6 @@ import {
25
25
  AgentInvokeParams,
26
26
  AppTriggerHistoryStep,
27
27
  TriggerHistoryStep,
28
- HistoryStepType,
29
28
  MindedSDKConfig,
30
29
  SessionType,
31
30
  HistoryStep,
@@ -33,6 +32,8 @@ import {
33
32
  import { createLlmInstance } from './llm/createLlmInstance';
34
33
  import { createCheckpointSaver } from './checkpointer/checkpointSaverFactory';
35
34
  import { getConfig } from './platform/config';
35
+ import { InterruptSessionManager, InterruptType } from './interrupts/InterruptSessionManager.types';
36
+ import { createInterruptSessionManager } from './interrupts/interruptSessionManagerFactory';
36
37
  import { BaseMessage, HumanMessage } from '@langchain/core/messages';
37
38
  import triggerTypeToDefaultMessage from './triggers/triggerTypeToDefaultMessage';
38
39
  import appActionRunnerToolCreator from './internalTools/appActionRunnerTool';
@@ -49,6 +50,7 @@ type CreateAgentParams<Memory> = {
49
50
  tools: Tool<any, Memory>[];
50
51
  platformToken?: string;
51
52
  memorySaver?: BaseCheckpointSaver;
53
+ interruptSessionManager?: InterruptSessionManager;
52
54
  };
53
55
 
54
56
  /**
@@ -77,6 +79,8 @@ export class Agent {
77
79
  public mindedConnection: MindedConnection | null = null;
78
80
  // Langgraph memory saver. In memory for local development, Custom for Platform
79
81
  private checkpointer!: BaseCheckpointSaver;
82
+ // Interrupt session manager. In memory for local development, Custom for Platform
83
+ public interruptSessionManager!: InterruptSessionManager;
80
84
  // Langgraph compiled graph
81
85
  public compiledGraph!: CompiledGraph;
82
86
  // Cache for secrets to avoid repeated API calls
@@ -147,7 +151,7 @@ export class Agent {
147
151
 
148
152
  private async init(params: CreateAgentParams<z.infer<typeof this.memorySchema>>): Promise<void> {
149
153
  try {
150
- const { config, tools, memorySaver } = params;
154
+ const { config, tools, memorySaver, interruptSessionManager } = params;
151
155
  const { runLocally } = getConfig();
152
156
  if (!runLocally) {
153
157
  this.mindedConnection = new MindedConnection();
@@ -187,6 +191,7 @@ export class Agent {
187
191
  const appActionsRunnerTools = this.initAppActionsRunnerTools();
188
192
  this.tools = [...tools, ...appActionsRunnerTools];
189
193
  this.checkpointer = memorySaver || createCheckpointSaver(this.mindedConnection);
194
+ this.interruptSessionManager = interruptSessionManager || createInterruptSessionManager(this.mindedConnection);
190
195
 
191
196
  // call here methods that needs environment variables to be loaded
192
197
  this.llm = createLlmInstance(config.llm);
@@ -377,14 +382,14 @@ export class Agent {
377
382
 
378
383
  return appName
379
384
  ? createHistoryStep<AppTriggerHistoryStep>(currentHistory, {
380
- ...baseStep,
381
- type: HistoryStepType.APP_TRIGGER_NODE,
382
- appName,
383
- })
385
+ ...baseStep,
386
+ type: NodeType.TRIGGER,
387
+ appName,
388
+ })
384
389
  : createHistoryStep<TriggerHistoryStep>(currentHistory, {
385
- ...baseStep,
386
- type: HistoryStepType.TRIGGER_NODE,
387
- });
390
+ ...baseStep,
391
+ type: NodeType.TRIGGER,
392
+ });
388
393
  }
389
394
 
390
395
  /**
@@ -415,10 +420,26 @@ export class Agent {
415
420
  * });
416
421
  * ```
417
422
  */
418
- public async invoke({ triggerBody, triggerName, sessionId, appName }: AgentInvokeParams) {
423
+ public async invoke({ triggerBody, triggerName, sessionId, appName, bypassSessionCheck }: AgentInvokeParams): Promise<any> {
419
424
  sessionId = sessionId ?? uuidv4();
420
425
  try {
421
426
  await this.waitForInitialization();
427
+
428
+ // Check if session is already being processed (unless bypassing)
429
+ if (!bypassSessionCheck && this.interruptSessionManager.isProcessed(sessionId)) {
430
+ // Enqueue the raw message and return
431
+ console.log({ message: 'Enqueuing message', sessionId, triggerBody, triggerName, appName });
432
+ this.interruptSessionManager.enqueueMessage(sessionId, {
433
+ triggerBody,
434
+ triggerName,
435
+ appName,
436
+ });
437
+ return;
438
+ }
439
+
440
+ // Lock the session for processing
441
+ this.interruptSessionManager.lock(sessionId);
442
+
422
443
  let messages: Array<BaseMessage> = [];
423
444
  let memoryUpdate = {};
424
445
  let sessionType: SessionType = SessionType.TEXT;
@@ -447,6 +468,7 @@ export class Agent {
447
468
  if (handlerResult) {
448
469
  if (!handlerResult.isQualified) {
449
470
  logger.info(`Trigger ${triggerName} was disqualified`);
471
+ this.interruptSessionManager.release(sessionId);
450
472
  return;
451
473
  }
452
474
  memoryUpdate = handlerResult.memory || {};
@@ -473,22 +495,90 @@ export class Agent {
473
495
 
474
496
  let res;
475
497
  // Resume interruption
476
- if (state.tasks?.[0]?.interrupts?.length > 0) {
477
- res = await this.compiledGraph.invoke(
478
- new Command({
479
- resume: { memory: memoryUpdate, messages, history: historyStep, sessionId, sessionType },
480
- }),
481
- langraphConfig,
482
- );
498
+ if (state.tasks && state.tasks.length > 0) {
499
+ const lastTask = state.tasks[state.tasks.length - 1];
500
+ if (lastTask?.interrupts?.length > 0) {
501
+ const interrupt = lastTask.interrupts[0];
502
+ const interruptValue = (interrupt as any).value;
503
+
504
+ if (interruptValue?.type === InterruptType.HUMAN_IN_THE_LOOP) {
505
+ // For HUMAN_IN_THE_LOOP, use resume with the full object
506
+ res = await this.compiledGraph.invoke(
507
+ new Command({
508
+ resume: { memory: memoryUpdate, messages, history: historyStep, sessionId, sessionType },
509
+ }),
510
+ langraphConfig,
511
+ );
512
+ } else if (interruptValue?.type === InterruptType.NEW_TRIGGERS) {
513
+ // For NEW_TRIGGERS, check if there's an updateStateObject to apply first
514
+ const finalState = { memory: memoryUpdate, messages, history: [historyStep], sessionId, sessionType };
515
+ if (interruptValue.updateStateObject) {
516
+ finalState.messages = [...interruptValue.updateStateObject.messages, ...messages];
517
+ finalState.history = [...(interruptValue.updateStateObject.history || []), historyStep];
518
+ //add handlers for other state fields as needed
519
+ }
520
+
521
+ // Then use update with the full object and empty resume
522
+ res = await this.compiledGraph.invoke(
523
+ new Command({
524
+ update: finalState,
525
+ resume: '',
526
+ }),
527
+ langraphConfig,
528
+ );
529
+ }
530
+ } else {
531
+ res = await this.compiledGraph.invoke(
532
+ { messages, memory: memoryUpdate, history: historyStep, sessionId, sessionType },
533
+ langraphConfig,
534
+ );
535
+ }
483
536
  } else {
484
537
  res = await this.compiledGraph.invoke(
485
538
  { messages, memory: memoryUpdate, history: historyStep, sessionId, sessionType },
486
539
  langraphConfig,
487
540
  );
488
541
  }
542
+
543
+ // Check if graph was interrupted with NEW_TRIGGERS flag
544
+ const finalState = await this.compiledGraph.getState(langraphConfig);
545
+ if (finalState.tasks && finalState.tasks.length > 0) {
546
+ const lastTask = finalState.tasks[finalState.tasks.length - 1];
547
+ if (lastTask?.interrupts?.length > 0) {
548
+ const interrupt = lastTask.interrupts[0];
549
+ const interruptValue = (interrupt as any).value;
550
+
551
+ if (interruptValue?.type === InterruptType.NEW_TRIGGERS) {
552
+ // Dequeue the first message and process it recursively
553
+ const nextMessage = await this.interruptSessionManager.dequeue(sessionId);
554
+ if (nextMessage) {
555
+ // Recursively process the next message with bypass flag
556
+ const invokeParams: AgentInvokeParams = {
557
+ triggerBody: nextMessage.triggerBody,
558
+ triggerName: nextMessage.triggerName,
559
+ sessionId: sessionId,
560
+ bypassSessionCheck: true,
561
+ };
562
+ if (nextMessage.appName) {
563
+ invokeParams.appName = nextMessage.appName;
564
+ }
565
+ console.log('Invoking next message RECURSIVELY', invokeParams);
566
+ return await this.invoke(invokeParams);
567
+ }
568
+ }
569
+ }
570
+ }
571
+
572
+ // Release the session lock
573
+ this.interruptSessionManager.release(sessionId);
574
+
489
575
  return res;
490
- } catch (error) {
491
- logger.error({ message: 'Invoke error', error, sessionId });
576
+ } catch (error: any) {
577
+ logger.error({ message: 'Invoke error', errorMessage: error.message, sessionId });
578
+
579
+ // Release the session lock on error
580
+ this.interruptSessionManager.release(sessionId);
581
+
492
582
  const state = await this.compiledGraph.getState(this.getLangraphConfig(sessionId));
493
583
  this.emit(AgentEvents.ERROR, { error: error instanceof Error ? error : new Error(JSON.stringify(error)), state: state.values });
494
584
  throw error;
@@ -813,7 +903,11 @@ export class Agent {
813
903
  if (voiceSession) {
814
904
  voiceSession.sendAudio(audioMessage.audioData);
815
905
  } else {
816
- logger.trace({ message: 'Audio received; voice session not found for sessionId', sessionId: audioMessage.sessionId, activeSessions: Array.from(this.voiceSessions.keys()) });
906
+ logger.trace({
907
+ message: 'Audio received; voice session not found for sessionId',
908
+ sessionId: audioMessage.sessionId,
909
+ activeSessions: Array.from(this.voiceSessions.keys()),
910
+ });
817
911
  }
818
912
  });
819
913
 
@@ -825,7 +919,11 @@ export class Agent {
825
919
  if (voiceSession) {
826
920
  voiceSession.hangup();
827
921
  } else {
828
- logger.trace({ message: 'Session ended; voice session not found for sessionId', sessionId: hangup.sessionId, activeSessions: this.voiceSessions.keys() });
922
+ logger.trace({
923
+ message: 'Session ended; voice session not found for sessionId',
924
+ sessionId: hangup.sessionId,
925
+ activeSessions: this.voiceSessions.keys(),
926
+ });
829
927
  }
830
928
  });
831
929
  }
package/src/index.ts CHANGED
@@ -36,7 +36,6 @@ export {
36
36
  } from './types/Flows.types';
37
37
  export type { Tool, ToolExecuteInput } from './types/Tools.types';
38
38
  export {
39
- HistoryStepType,
40
39
  HistoryStep,
41
40
  TriggerHistoryStep,
42
41
  AppActionInvocationHistoryStep,
@@ -0,0 +1,79 @@
1
+ import { State } from '../types/LangGraph.types';
2
+ import { GraphInterrupt } from '@langchain/langgraph';
3
+
4
+ export enum InterruptType {
5
+ NEW_TRIGGERS = 'NEW_TRIGGERS',
6
+ HUMAN_IN_THE_LOOP = 'HUMAN_IN_THE_LOOP',
7
+ }
8
+
9
+ export interface QueuedMessage {
10
+ triggerBody: any;
11
+ triggerName: string;
12
+ appName?: string;
13
+ }
14
+
15
+ // export interface UpdateStateObject {
16
+ // memory: any;
17
+ // messages: any[];
18
+ // history: any[];
19
+ // sessionId: string;
20
+ // sessionType: SessionType;
21
+ // }
22
+ export interface InterruptPayload {
23
+ type: InterruptType.NEW_TRIGGERS;
24
+ updateStateObject?: Partial<State>;
25
+ id?: string;
26
+ }
27
+
28
+ export interface InterruptSessionManager {
29
+ isProcessed(sessionId: string): boolean | Promise<boolean>;
30
+ lock(sessionId: string): void | Promise<void>;
31
+ release(sessionId: string): void | Promise<void>;
32
+ enqueueMessage(sessionId: string, message: QueuedMessage): void | Promise<void>;
33
+ dequeueAll(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
34
+ dequeue(sessionId: string): QueuedMessage | null | Promise<QueuedMessage | null>;
35
+ checkQueueAndInterrupt(sessionId: string, updateStateObject?: Partial<State>): Promise<boolean>;
36
+ }
37
+
38
+ export abstract class BaseInterruptSessionManager implements InterruptSessionManager {
39
+ // Abstract methods that subclasses must implement for queue management
40
+ abstract isProcessed(sessionId: string): boolean | Promise<boolean>;
41
+ abstract lock(sessionId: string): void | Promise<void>;
42
+ abstract release(sessionId: string): void | Promise<void>;
43
+ abstract enqueueMessage(sessionId: string, message: QueuedMessage): void | Promise<void>;
44
+ abstract dequeueAll(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
45
+ abstract dequeue(sessionId: string): QueuedMessage | null | Promise<QueuedMessage | null>;
46
+
47
+ // Abstract method to check if queue has messages - this is the only queue-specific part
48
+ protected abstract hasQueuedMessages(sessionId: string): boolean | Promise<boolean>;
49
+ protected abstract getQueuedMessages(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
50
+
51
+ // Common implementation of checkQueueAndInterrupt
52
+ async checkQueueAndInterrupt(sessionId: string, updateStateObject?: Partial<State>): Promise<boolean> {
53
+ if (await this.hasQueuedMessages(sessionId)) {
54
+ const queue = await this.getQueuedMessages(sessionId);
55
+ console.log({ message: 'Interrupting graph', sessionId, queue, updateStateObject });
56
+
57
+ // Interrupt the graph with NEW_TRIGGERS flag and optional updateStateObject
58
+ const interruptPayload: InterruptPayload = { type: InterruptType.NEW_TRIGGERS };
59
+ if (updateStateObject) {
60
+ interruptPayload.updateStateObject = {
61
+ messages: updateStateObject.messages,
62
+ memory: updateStateObject.memory,
63
+ history: updateStateObject.history,
64
+ sessionId: updateStateObject.sessionId,
65
+ sessionType: updateStateObject.sessionType,
66
+ };
67
+ }
68
+
69
+ throw new GraphInterrupt([
70
+ {
71
+ value: interruptPayload,
72
+ when: 'during',
73
+ resumable: true,
74
+ },
75
+ ]);
76
+ }
77
+ return false;
78
+ }
79
+ }