@minded-ai/mindedjs 1.0.95-beta-2 → 1.0.95

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 (101) hide show
  1. package/dist/agent.d.ts +1 -4
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +29 -72
  4. package/dist/agent.js.map +1 -1
  5. package/dist/cli/index.js +12 -12
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/edges/createDirectEdge.js +1 -1
  8. package/dist/edges/createDirectEdge.js.map +1 -1
  9. package/dist/edges/createLogicalRouter.d.ts.map +1 -1
  10. package/dist/edges/createLogicalRouter.js +7 -7
  11. package/dist/edges/createLogicalRouter.js.map +1 -1
  12. package/dist/edges/createPromptRouter.d.ts.map +1 -1
  13. package/dist/edges/createPromptRouter.js +3 -4
  14. package/dist/edges/createPromptRouter.js.map +1 -1
  15. package/dist/edges/edgeFactory.js +2 -2
  16. package/dist/edges/edgeFactory.js.map +1 -1
  17. package/dist/nodes/addAppToolNode.js +1 -1
  18. package/dist/nodes/addAppToolNode.js.map +1 -1
  19. package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -1
  20. package/dist/nodes/addHumanInTheLoopNode.js +2 -3
  21. package/dist/nodes/addHumanInTheLoopNode.js.map +1 -1
  22. package/dist/nodes/addJumpToNode.js +1 -1
  23. package/dist/nodes/addJumpToNode.js.map +1 -1
  24. package/dist/nodes/addPromptNode.d.ts.map +1 -1
  25. package/dist/nodes/addPromptNode.js +1 -45
  26. package/dist/nodes/addPromptNode.js.map +1 -1
  27. package/dist/nodes/addToolNode.d.ts.map +1 -1
  28. package/dist/nodes/addToolNode.js +1 -4
  29. package/dist/nodes/addToolNode.js.map +1 -1
  30. package/dist/nodes/addToolRunNode.d.ts.map +1 -1
  31. package/dist/nodes/addToolRunNode.js +0 -1
  32. package/dist/nodes/addToolRunNode.js.map +1 -1
  33. package/dist/nodes/addTriggerNode.js +1 -1
  34. package/dist/nodes/addTriggerNode.js.map +1 -1
  35. package/dist/platform/mindedConnection.d.ts.map +1 -1
  36. package/dist/platform/mindedConnection.js +12 -12
  37. package/dist/platform/mindedConnection.js.map +1 -1
  38. package/dist/platform/mindedConnectionTypes.d.ts +1 -162
  39. package/dist/platform/mindedConnectionTypes.d.ts.map +1 -1
  40. package/dist/platform/mindedConnectionTypes.js +0 -10
  41. package/dist/platform/mindedConnectionTypes.js.map +1 -1
  42. package/dist/playbooks/playbooks.js +4 -4
  43. package/dist/playbooks/playbooks.js.map +1 -1
  44. package/dist/types/Agent.types.d.ts +0 -2
  45. package/dist/types/Agent.types.d.ts.map +1 -1
  46. package/dist/types/Agent.types.js.map +1 -1
  47. package/dist/types/LangGraph.types.d.ts +4 -2
  48. package/dist/types/LangGraph.types.d.ts.map +1 -1
  49. package/dist/types/LangGraph.types.js +5 -3
  50. package/dist/types/LangGraph.types.js.map +1 -1
  51. package/dist/utils/logger.d.ts.map +1 -1
  52. package/dist/utils/logger.js +0 -1
  53. package/dist/utils/logger.js.map +1 -1
  54. package/dist/voice/voiceSession.d.ts.map +1 -1
  55. package/dist/voice/voiceSession.js +3 -2
  56. package/dist/voice/voiceSession.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/agent.ts +34 -90
  59. package/src/cli/index.ts +12 -12
  60. package/src/edges/createDirectEdge.ts +1 -1
  61. package/src/edges/createLogicalRouter.ts +8 -7
  62. package/src/edges/createPromptRouter.ts +3 -4
  63. package/src/edges/edgeFactory.ts +2 -2
  64. package/src/nodes/addAppToolNode.ts +1 -1
  65. package/src/nodes/addHumanInTheLoopNode.ts +3 -3
  66. package/src/nodes/addJumpToNode.ts +1 -1
  67. package/src/nodes/addPromptNode.ts +6 -51
  68. package/src/nodes/addToolNode.ts +2 -4
  69. package/src/nodes/addToolRunNode.ts +1 -1
  70. package/src/nodes/addTriggerNode.ts +1 -1
  71. package/src/platform/mindedConnection.ts +25 -15
  72. package/src/platform/mindedConnectionTypes.ts +1 -202
  73. package/src/playbooks/playbooks.ts +4 -4
  74. package/src/types/Agent.types.ts +0 -2
  75. package/src/types/LangGraph.types.ts +5 -3
  76. package/src/utils/logger.ts +0 -1
  77. package/src/voice/voiceSession.ts +4 -7
  78. package/dist/interrupts/BaseInterruptSessionManager.d.ts +0 -36
  79. package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +0 -1
  80. package/dist/interrupts/BaseInterruptSessionManager.js +0 -39
  81. package/dist/interrupts/BaseInterruptSessionManager.js.map +0 -1
  82. package/dist/interrupts/InterruptSessionManager.types.d.ts +0 -36
  83. package/dist/interrupts/InterruptSessionManager.types.d.ts.map +0 -1
  84. package/dist/interrupts/InterruptSessionManager.types.js +0 -40
  85. package/dist/interrupts/InterruptSessionManager.types.js.map +0 -1
  86. package/dist/interrupts/MemoryInterruptSessionManager.d.ts +0 -14
  87. package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +0 -1
  88. package/dist/interrupts/MemoryInterruptSessionManager.js +0 -56
  89. package/dist/interrupts/MemoryInterruptSessionManager.js.map +0 -1
  90. package/dist/interrupts/MindedInterruptSessionManager.d.ts +0 -14
  91. package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +0 -1
  92. package/dist/interrupts/MindedInterruptSessionManager.js +0 -168
  93. package/dist/interrupts/MindedInterruptSessionManager.js.map +0 -1
  94. package/dist/interrupts/interruptSessionManagerFactory.d.ts +0 -3
  95. package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +0 -1
  96. package/dist/interrupts/interruptSessionManagerFactory.js +0 -56
  97. package/dist/interrupts/interruptSessionManagerFactory.js.map +0 -1
  98. package/src/interrupts/BaseInterruptSessionManager.ts +0 -79
  99. package/src/interrupts/MemoryInterruptSessionManager.ts +0 -57
  100. package/src/interrupts/MindedInterruptSessionManager.ts +0 -172
  101. package/src/interrupts/interruptSessionManagerFactory.ts +0 -20
@@ -1,79 +0,0 @@
1
- import { State } from '../types/LangGraph.types';
2
- import { GraphInterrupt } from '@langchain/langgraph';
3
- import { logger } from '../utils/logger';
4
-
5
- export enum InterruptType {
6
- NEW_TRIGGERS = 'NEW_TRIGGERS',
7
- HUMAN_IN_THE_LOOP = 'HUMAN_IN_THE_LOOP',
8
- }
9
-
10
- export interface QueuedMessage {
11
- triggerBody: any;
12
- triggerName: string;
13
- appName?: string;
14
- }
15
-
16
- // export interface UpdateStateObject {
17
- // memory: any;
18
- // messages: any[];
19
- // history: any[];
20
- // sessionId: string;
21
- // sessionType: SessionType;
22
- // }
23
- export interface InterruptPayload {
24
- type: InterruptType.NEW_TRIGGERS;
25
- updateStateObject?: Partial<State>;
26
- id?: string;
27
- }
28
-
29
- export interface InterruptSessionManager {
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
- tryLock(sessionId: string): boolean | Promise<boolean>;
37
- }
38
-
39
- export abstract class BaseInterruptSessionManager implements InterruptSessionManager {
40
- // Abstract methods that subclasses must implement for queue management
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
- abstract tryLock(sessionId: string): boolean | Promise<boolean>;
47
-
48
- // Abstract method to check if queue has messages - this is the only queue-specific part
49
- protected abstract hasQueuedMessages(sessionId: string): boolean | Promise<boolean>;
50
- protected abstract getQueuedMessages(sessionId: string): QueuedMessage[] | Promise<QueuedMessage[]>;
51
-
52
- // Common implementation of checkQueueAndInterrupt
53
- async checkQueueAndInterrupt(sessionId: string, updateStateObject?: Partial<State>): Promise<boolean> {
54
- if (await this.hasQueuedMessages(sessionId)) {
55
- logger.trace({ message: 'graph has queued messagess, interrupting graph', sessionId });
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
- }
@@ -1,57 +0,0 @@
1
- import { BaseInterruptSessionManager, QueuedMessage } from './BaseInterruptSessionManager';
2
-
3
- export class MemoryInterruptSessionManager extends BaseInterruptSessionManager {
4
- private sessionProcessing: Map<string, boolean> = new Map();
5
- private sessionMessageQueues: Map<string, QueuedMessage[]> = new Map();
6
-
7
- lock(sessionId: string): void {
8
- this.sessionProcessing.set(sessionId, true);
9
- }
10
-
11
- release(sessionId: string): void {
12
- this.sessionProcessing.set(sessionId, false);
13
- }
14
-
15
- enqueueMessage(sessionId: string, message: QueuedMessage): void {
16
- if (!this.sessionMessageQueues.has(sessionId)) {
17
- this.sessionMessageQueues.set(sessionId, []);
18
- }
19
- this.sessionMessageQueues.get(sessionId)!.push(message);
20
- }
21
-
22
- dequeueAll(sessionId: string): QueuedMessage[] {
23
- const messages = this.sessionMessageQueues.get(sessionId) || [];
24
- const result = [...messages];
25
- this.sessionMessageQueues.set(sessionId, []);
26
- return result;
27
- }
28
-
29
- dequeue(sessionId: string): QueuedMessage | null {
30
- const messages = this.sessionMessageQueues.get(sessionId) || [];
31
- if (messages.length === 0) {
32
- return null;
33
- }
34
- const firstMessage = messages.shift()!;
35
- this.sessionMessageQueues.set(sessionId, messages);
36
- return firstMessage;
37
- }
38
-
39
- tryLock(sessionId: string): boolean {
40
- const isCurrentlyProcessed = this.sessionProcessing.get(sessionId) || false;
41
- if (isCurrentlyProcessed) {
42
- return false; // Could not acquire lock
43
- }
44
- this.sessionProcessing.set(sessionId, true);
45
- return true; // Successfully acquired lock
46
- }
47
-
48
- // Implementation of abstract methods from BaseInterruptSessionManager
49
- protected hasQueuedMessages(sessionId: string): boolean {
50
- const queue = this.sessionMessageQueues.get(sessionId) || [];
51
- return queue.length > 0;
52
- }
53
-
54
- protected getQueuedMessages(sessionId: string): QueuedMessage[] {
55
- return this.sessionMessageQueues.get(sessionId) || [];
56
- }
57
- }
@@ -1,172 +0,0 @@
1
- import { BaseInterruptSessionManager, QueuedMessage } from './BaseInterruptSessionManager';
2
- import * as mindedConnection from '../platform/mindedConnection';
3
- import {
4
- mindedConnectionSocketMessageType,
5
- InterruptSessionIsProcessedRequest,
6
- InterruptSessionIsProcessedResponse,
7
- InterruptSessionLockRequest,
8
- InterruptSessionLockResponse,
9
- InterruptSessionTryLockRequest,
10
- InterruptSessionTryLockResponse,
11
- InterruptSessionReleaseRequest,
12
- InterruptSessionReleaseResponse,
13
- InterruptSessionEnqueueRequest,
14
- InterruptSessionEnqueueResponse,
15
- InterruptSessionDequeueAllRequest,
16
- InterruptSessionDequeueAllResponse,
17
- InterruptSessionDequeueRequest,
18
- InterruptSessionDequeueResponse,
19
- InterruptSessionHasMessagesRequest,
20
- InterruptSessionHasMessagesResponse,
21
- InterruptSessionGetMessagesRequest,
22
- InterruptSessionGetMessagesResponse,
23
- } from '../platform/mindedConnectionTypes';
24
-
25
- export class MindedInterruptSessionManager extends BaseInterruptSessionManager {
26
- constructor() {
27
- super();
28
- }
29
-
30
- async isProcessed(sessionId: string): Promise<boolean> {
31
- try {
32
- const response = await mindedConnection.awaitEmit<InterruptSessionIsProcessedRequest, InterruptSessionIsProcessedResponse>(
33
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED,
34
- {
35
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_IS_PROCESSED,
36
- sessionId,
37
- },
38
- );
39
- return response.isProcessed ?? false;
40
- } catch (error) {
41
- console.error('Error checking if session is processed:', error);
42
- return false;
43
- }
44
- }
45
-
46
- async lock(sessionId: string): Promise<void> {
47
- try {
48
- await mindedConnection.awaitEmit<InterruptSessionLockRequest, InterruptSessionLockResponse>(
49
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK,
50
- {
51
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_LOCK,
52
- sessionId,
53
- },
54
- );
55
- } catch (error) {
56
- console.error('Error locking session:', error);
57
- throw error;
58
- }
59
- }
60
-
61
- async release(sessionId: string): Promise<void> {
62
- try {
63
- await mindedConnection.awaitEmit<InterruptSessionReleaseRequest, InterruptSessionReleaseResponse>(
64
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE,
65
- {
66
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_RELEASE,
67
- sessionId,
68
- },
69
- );
70
- } catch (error) {
71
- console.error('Error releasing session:', error);
72
- throw error;
73
- }
74
- }
75
-
76
- async enqueueMessage(sessionId: string, message: QueuedMessage): Promise<void> {
77
- try {
78
- await mindedConnection.awaitEmit<InterruptSessionEnqueueRequest, InterruptSessionEnqueueResponse>(
79
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE,
80
- {
81
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_ENQUEUE,
82
- sessionId,
83
- message,
84
- },
85
- );
86
- } catch (error) {
87
- console.error('Error enqueuing message:', error);
88
- throw error;
89
- }
90
- }
91
-
92
- async dequeueAll(sessionId: string): Promise<QueuedMessage[]> {
93
- try {
94
- const response = await mindedConnection.awaitEmit<InterruptSessionDequeueAllRequest, InterruptSessionDequeueAllResponse>(
95
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL,
96
- {
97
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE_ALL,
98
- sessionId,
99
- },
100
- );
101
- return response.messages ?? [];
102
- } catch (error) {
103
- console.error('Error dequeuing all messages:', error);
104
- return [];
105
- }
106
- }
107
-
108
- async dequeue(sessionId: string): Promise<QueuedMessage | null> {
109
- try {
110
- const response = await mindedConnection.awaitEmit<InterruptSessionDequeueRequest, InterruptSessionDequeueResponse>(
111
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE,
112
- {
113
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_DEQUEUE,
114
- sessionId,
115
- },
116
- );
117
- return response.message ?? null;
118
- } catch (error) {
119
- console.error('Error dequeuing message:', error);
120
- return null;
121
- }
122
- }
123
-
124
- async tryLock(sessionId: string): Promise<boolean> {
125
- try {
126
- const response = await mindedConnection.awaitEmit<InterruptSessionTryLockRequest, InterruptSessionTryLockResponse>(
127
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_TRY_LOCK,
128
- {
129
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_TRY_LOCK,
130
- sessionId,
131
- },
132
- );
133
- return response.lockAcquired ?? false;
134
- } catch (error) {
135
- console.error('Error trying to lock session:', error);
136
- return false;
137
- }
138
- }
139
-
140
- // Implementation of abstract methods from BaseInterruptSessionManager
141
- protected async hasQueuedMessages(sessionId: string): Promise<boolean> {
142
- try {
143
- const response = await mindedConnection.awaitEmit<InterruptSessionHasMessagesRequest, InterruptSessionHasMessagesResponse>(
144
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES,
145
- {
146
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_HAS_MESSAGES,
147
- sessionId,
148
- },
149
- );
150
- return response.hasMessages ?? false;
151
- } catch (error) {
152
- console.error('Error checking if session has messages:', error);
153
- return false;
154
- }
155
- }
156
-
157
- protected async getQueuedMessages(sessionId: string): Promise<QueuedMessage[]> {
158
- try {
159
- const response = await mindedConnection.awaitEmit<InterruptSessionGetMessagesRequest, InterruptSessionGetMessagesResponse>(
160
- mindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES,
161
- {
162
- type: mindedConnectionSocketMessageType.INTERRUPT_SESSION_GET_MESSAGES,
163
- sessionId,
164
- },
165
- );
166
- return response.messages ?? [];
167
- } catch (error) {
168
- console.error('Error getting queued messages:', error);
169
- return [];
170
- }
171
- }
172
- }
@@ -1,20 +0,0 @@
1
- import { InterruptSessionManager } from './BaseInterruptSessionManager';
2
- import { MemoryInterruptSessionManager } from './MemoryInterruptSessionManager';
3
- import { MindedInterruptSessionManager } from './MindedInterruptSessionManager';
4
- import * as mindedConnection from '../platform/mindedConnection';
5
- import { getConfig } from '../platform/config';
6
- import { logger } from '../utils/logger';
7
-
8
- export function createInterruptSessionManager(): InterruptSessionManager {
9
- const { runLocally } = getConfig();
10
- if (runLocally) {
11
- logger.info({ message: 'Using memory interrupt session manager' });
12
- return new MemoryInterruptSessionManager();
13
- } else {
14
- if (!mindedConnection.isConnected()) {
15
- throw new Error('MindedConnection is required for platform interrupt session manager');
16
- }
17
- logger.info({ message: 'Using Minded interrupt session manager' });
18
- return new MindedInterruptSessionManager();
19
- }
20
- }