@minded-ai/mindedjs 1.0.21 → 1.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/agent.js CHANGED
@@ -62,9 +62,7 @@ class Agent {
62
62
  this.tools = tools;
63
63
  this.platformToken = platformToken;
64
64
  this.llm = (0, createLlmInstance_1.createLlmInstance)(config.llm);
65
- this.checkpointer = memorySaver || (0, checkpointSaverFactory_1.createCheckpointSaver)('');
66
65
  this.validate();
67
- this.compiledGraph = this.initializeGraph();
68
66
  if (process.env.NODE_ENV !== 'test' && process.env.NO_PLATFORM_CONNECT !== 'true') {
69
67
  this.mindedConnection = new mindedConnection_1.MindedConnection();
70
68
  this.mindedConnection.start();
@@ -77,6 +75,8 @@ class Agent {
77
75
  });
78
76
  });
79
77
  }
78
+ this.checkpointer = memorySaver || (0, checkpointSaverFactory_1.createCheckpointSaver)(this.mindedConnection);
79
+ this.compiledGraph = this.initializeGraph();
80
80
  }
81
81
  loadFlowsFromDirectory(flowsDirectories) {
82
82
  const flows = [];
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { BaseCheckpointSaver } from '@langchain/langgraph';
2
+ import { MindedConnection } from '../platform/mindedConnection';
2
3
  /**
3
- * Factory function to create the appropriate checkpoint saver based on environment variables
4
+ * Factory function to create the appropriate checkpoint saver based on environment variables.
4
5
  * @param platformToken - Optional platform token for remote checkpoint saving
5
6
  * @returns BaseCheckpointSaver instance (either MemorySaver or MindedCheckpointSaver)
6
7
  */
7
- export declare function createCheckpointSaver(platformToken: string): BaseCheckpointSaver;
8
+ export declare function createCheckpointSaver(mindedConnection: MindedConnection | null): BaseCheckpointSaver;
@@ -4,27 +4,16 @@ exports.createCheckpointSaver = createCheckpointSaver;
4
4
  const langgraph_1 = require("@langchain/langgraph");
5
5
  const mindedCheckpointSaver_1 = require("../platform/mindedCheckpointSaver");
6
6
  /**
7
- * Factory function to create the appropriate checkpoint saver based on environment variables
7
+ * Factory function to create the appropriate checkpoint saver based on environment variables.
8
8
  * @param platformToken - Optional platform token for remote checkpoint saving
9
9
  * @returns BaseCheckpointSaver instance (either MemorySaver or MindedCheckpointSaver)
10
10
  */
11
- function createCheckpointSaver(platformToken) {
12
- const useRemoteCheckpointSaver = process.env.REMOTE_CHECKPOINT_SAVER === 'true';
13
- if (!useRemoteCheckpointSaver || process.env.NODE_ENV === 'test') {
14
- console.log('Using in-memory checkpoint saver');
11
+ function createCheckpointSaver(mindedConnection) {
12
+ if (!mindedConnection) {
13
+ console.warn('mindedConnection not set, falling back to in-memory checkpoint saver');
15
14
  return new langgraph_1.MemorySaver();
16
15
  }
17
- // // If not using in-memory, check for platform token and MINDED_SERVER
18
- // if (!platformToken) {
19
- // console.warn('No platform token provided, falling back to in-memory checkpoint saver');
20
- // return new MemorySaver();
21
- // }
22
- const mindedServer = process.env.MINDED_SERVER;
23
- if (!mindedServer) {
24
- console.warn('MINDED_SERVER environment variable not set, falling back to in-memory checkpoint saver');
25
- return new langgraph_1.MemorySaver();
26
- }
27
- console.log(`Using remote checkpoint saver with server: ${mindedServer}`);
28
- return new mindedCheckpointSaver_1.MindedCheckpointSaver(platformToken);
16
+ console.log(`Using remote checkpoint saver}`);
17
+ return new mindedCheckpointSaver_1.MindedCheckpointSaver(mindedConnection);
29
18
  }
30
19
  //# sourceMappingURL=checkpointSaverFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkpointSaverFactory.js","sourceRoot":"","sources":["../../src/checkpointer/checkpointSaverFactory.ts"],"names":[],"mappings":";;AAQA,sDAsBC;AA9BD,oDAAwE;AACxE,6EAA0E;AAE1E;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,aAAqB;IACzD,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,CAAC;IAEhF,IAAI,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,IAAI,uBAAW,EAAE,CAAC;IAC3B,CAAC;IAED,0EAA0E;IAC1E,0BAA0B;IAC1B,8FAA8F;IAC9F,gCAAgC;IAChC,MAAM;IAEN,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAC/C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;QACvG,OAAO,IAAI,uBAAW,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,YAAY,EAAE,CAAC,CAAC;IAC1E,OAAO,IAAI,6CAAqB,CAAC,aAAa,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"checkpointSaverFactory.js","sourceRoot":"","sources":["../../src/checkpointer/checkpointSaverFactory.ts"],"names":[],"mappings":";;AASA,sDAQC;AAjBD,oDAAwE;AACxE,6EAA0E;AAG1E;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,gBAAyC;IAC7E,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACrF,OAAO,IAAI,uBAAW,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,IAAI,6CAAqB,CAAC,gBAAgB,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const TOKEN_FILE = '.minded-token';
40
+ function getTokenFilePath() {
41
+ return path.join(process.cwd(), TOKEN_FILE);
42
+ }
43
+ function setToken(token) {
44
+ const tokenPath = getTokenFilePath();
45
+ fs.writeFileSync(tokenPath, token);
46
+ console.log(`Token saved to ${tokenPath}`);
47
+ }
48
+ function main() {
49
+ const args = process.argv.slice(2);
50
+ const command = args[0];
51
+ if (command === 'token') {
52
+ const token = args[1];
53
+ if (!token) {
54
+ console.error('Please provide a token');
55
+ process.exit(1);
56
+ }
57
+ setToken(token);
58
+ }
59
+ else {
60
+ console.error('Unknown command. Available commands: token');
61
+ process.exit(1);
62
+ }
63
+ }
64
+ main();
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,UAAU,GAAG,eAAe,CAAC;AAEnC,SAAS,gBAAgB;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,IAAI;IACX,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
@@ -1,8 +1,9 @@
1
1
  import { BaseCheckpointSaver, CheckpointTuple, Checkpoint, CheckpointMetadata, ChannelVersions, PendingWrite, CheckpointListOptions } from '@langchain/langgraph-checkpoint';
2
2
  import type { RunnableConfig } from '@langchain/core/runnables';
3
+ import { MindedConnection } from './mindedConnection';
3
4
  export declare class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
4
- private token;
5
- constructor(token: string);
5
+ private mindedConnection;
6
+ constructor(mindedConnection: MindedConnection);
6
7
  getTuple(config: RunnableConfig<Record<string, any>>): Promise<CheckpointTuple | undefined>;
7
8
  list(config: RunnableConfig<Record<string, any>>, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple, any, any>;
8
9
  put(config: RunnableConfig<Record<string, any>>, checkpoint: Checkpoint<string, string>, metadata: CheckpointMetadata, newVersions: ChannelVersions): Promise<RunnableConfig<Record<string, any>>>;
@@ -2,18 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MindedCheckpointSaver = void 0;
4
4
  const langgraph_checkpoint_1 = require("@langchain/langgraph-checkpoint");
5
- const mindedRequest_1 = require("./mindedRequest");
5
+ const mindedConnectionTypes_1 = require("./mindedConnectionTypes");
6
6
  class MindedCheckpointSaver extends langgraph_checkpoint_1.BaseCheckpointSaver {
7
- constructor(token) {
7
+ constructor(mindedConnection) {
8
8
  super();
9
- this.token = token;
9
+ this.mindedConnection = mindedConnection;
10
10
  }
11
11
  async getTuple(config) {
12
- const response = await (0, mindedRequest_1.mindedRequest)({
13
- path: '/sdk-checkpoints/getTuple',
14
- method: 'POST',
15
- body: { config },
16
- token: this.token,
12
+ const response = await this.mindedConnection.awaitEmit(mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE, {
13
+ type: mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE,
14
+ config,
17
15
  });
18
16
  if (!response.tuple) {
19
17
  return undefined;
@@ -47,13 +45,12 @@ class MindedCheckpointSaver extends langgraph_checkpoint_1.BaseCheckpointSaver {
47
45
  };
48
46
  }
49
47
  async *list(config, options) {
50
- const response = await (0, mindedRequest_1.mindedRequest)({
51
- path: '/sdk-checkpoints/list',
52
- method: 'POST',
53
- body: { config, options },
54
- token: this.token,
48
+ const response = await this.mindedConnection.awaitEmit(mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_LIST, {
49
+ type: mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_LIST,
50
+ config,
51
+ options,
55
52
  });
56
- for (const tuple of response.checkpoints) {
53
+ for (const tuple of response.checkpoints || []) {
57
54
  // Re-serialize and deserialize checkpoint to restore class information
58
55
  const [checkpointType, serializedCheckpoint] = this.serde.dumpsTyped(tuple.checkpoint);
59
56
  const checkpoint = (await this.serde.loadsTyped(checkpointType, serializedCheckpoint));
@@ -73,21 +70,33 @@ class MindedCheckpointSaver extends langgraph_checkpoint_1.BaseCheckpointSaver {
73
70
  }
74
71
  }
75
72
  async put(config, checkpoint, metadata, newVersions) {
76
- const response = await (0, mindedRequest_1.mindedRequest)({
77
- path: '/sdk-checkpoints/put',
78
- method: 'POST',
79
- body: { config, checkpoint, metadata, newVersions },
80
- token: this.token,
81
- });
82
- return response.config;
73
+ try {
74
+ const response = await this.mindedConnection.awaitEmit(mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_PUT, {
75
+ type: mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_PUT,
76
+ config,
77
+ checkpoint,
78
+ metadata,
79
+ newVersions,
80
+ });
81
+ return response.config;
82
+ }
83
+ catch (error) {
84
+ console.error('Error putting checkpoint:', error);
85
+ return config;
86
+ }
83
87
  }
84
88
  async putWrites(config, writes, taskId) {
85
- await (0, mindedRequest_1.mindedRequest)({
86
- path: '/sdk-checkpoints/putWrites',
87
- method: 'POST',
88
- body: { config, writes, taskId },
89
- token: this.token,
90
- });
89
+ try {
90
+ await this.mindedConnection.awaitEmit(mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_PUT_WRITES, {
91
+ type: mindedConnectionTypes_1.MindedConnectionSocketMessageType.CHECKPOINT_PUT_WRITES,
92
+ config,
93
+ writes,
94
+ taskId,
95
+ });
96
+ }
97
+ catch (error) {
98
+ console.error('Error putting writes:', error);
99
+ }
91
100
  }
92
101
  }
93
102
  exports.MindedCheckpointSaver = MindedCheckpointSaver;
@@ -1 +1 @@
1
- {"version":3,"file":"mindedCheckpointSaver.js","sourceRoot":"","sources":["../../src/platform/mindedCheckpointSaver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mindedCheckpointSaver.js","sourceRoot":"","sources":["../../src/platform/mindedCheckpointSaver.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class MindedConnection {
13
13
  private getMindedToken;
14
14
  on: (event: MindedConnectionSocketMessageType, callback: (message: BaseMindedConnectionSocketMessage) => void) => void;
15
15
  emit: (event: MindedConnectionSocketMessageType, message: BaseMindedConnectionSocketMessage) => void;
16
+ awaitEmit: <T, R>(event: MindedConnectionSocketMessageType, message: T, timeoutMs?: number) => Promise<R>;
16
17
  private connect;
17
18
  start(): Promise<void>;
18
19
  }
@@ -38,6 +38,7 @@ const socket_io_client_1 = require("socket.io-client");
38
38
  const readline = __importStar(require("readline"));
39
39
  const fs = __importStar(require("fs"));
40
40
  const path = __importStar(require("path"));
41
+ const flatted_1 = require("flatted");
41
42
  class MindedConnection {
42
43
  constructor() {
43
44
  this.socket = null;
@@ -55,6 +56,29 @@ class MindedConnection {
55
56
  this.socket.emit(event, message);
56
57
  }
57
58
  };
59
+ this.awaitEmit = (event, message, timeoutMs = 5000) => {
60
+ return new Promise((resolve, reject) => {
61
+ if (!this.socket) {
62
+ reject(new Error('Socket is not connected'));
63
+ return;
64
+ }
65
+ // Set up timeout
66
+ const timeout = setTimeout(() => {
67
+ reject(new Error(`Acknowledgement timeout after ${timeoutMs}ms`));
68
+ }, timeoutMs);
69
+ // Emit with acknowledgement callback
70
+ this.socket.emit(event, (0, flatted_1.stringify)(message), (response) => {
71
+ clearTimeout(timeout);
72
+ // Check if the response indicates an error
73
+ if (response && response.error) {
74
+ reject(new Error(response.error));
75
+ }
76
+ else {
77
+ resolve(response);
78
+ }
79
+ });
80
+ });
81
+ };
58
82
  if (!process.env.MINDED_CONNECTION_TOKEN && !this.getSavedToken()) {
59
83
  this.initializeReadline();
60
84
  }
@@ -105,7 +129,7 @@ class MindedConnection {
105
129
  });
106
130
  }
107
131
  async connect(token) {
108
- this.socket = (0, socket_io_client_1.io)('http://localhost:8888', {
132
+ this.socket = (0, socket_io_client_1.io)(process.env.MINDED_SERVER, {
109
133
  path: '/minded-connect',
110
134
  query: {
111
135
  token,
@@ -1 +1 @@
1
- {"version":3,"file":"mindedConnection.js","sourceRoot":"","sources":["../../src/platform/mindedConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mindedConnection.js","sourceRoot":"","sources":["../../src/platform/mindedConnection.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,48 @@
1
+ import type { CheckpointListOptions, CheckpointMetadata, PendingWrite, Checkpoint, ChannelVersions, CheckpointTuple } from '@langchain/langgraph-checkpoint';
2
+ import type { RunnableConfig } from '@langchain/core/runnables';
1
3
  export declare enum MindedConnectionSocketMessageType {
2
- OnAppTrigger = "on-app-trigger"
4
+ OnAppTrigger = "on-app-trigger",
5
+ CHECKPOINT_GET_TUPLE = "checkpoint-get-tuple",
6
+ CHECKPOINT_PUT = "checkpoint-put",
7
+ CHECKPOINT_LIST = "checkpoint-list",
8
+ CHECKPOINT_PUT_WRITES = "checkpoint-put-writes"
3
9
  }
4
10
  export interface BaseMindedConnectionSocketMessage {
5
11
  type: MindedConnectionSocketMessageType;
6
12
  }
13
+ export interface BaseSdkConnectionSocketMessageResponseCallbackAck {
14
+ error?: string;
15
+ }
7
16
  export interface OnAppTrigger extends BaseMindedConnectionSocketMessage {
8
17
  name: string;
9
18
  agentId: string;
10
19
  body: Record<string, any>;
11
20
  cnvId: string;
12
21
  }
22
+ export interface OnCheckpointPut extends BaseMindedConnectionSocketMessage {
23
+ config: RunnableConfig;
24
+ checkpoint: Checkpoint;
25
+ metadata: CheckpointMetadata;
26
+ newVersions: ChannelVersions;
27
+ }
28
+ export interface OnCheckpointPutResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
29
+ config: RunnableConfig;
30
+ }
31
+ export interface OnCheckpointPutWrites extends BaseMindedConnectionSocketMessage {
32
+ config: RunnableConfig;
33
+ writes: PendingWrite[];
34
+ taskId: string;
35
+ }
36
+ export interface OnCheckpointGetTupleResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
37
+ tuple?: CheckpointTuple | undefined;
38
+ }
39
+ export interface OnCheckpointGetTuple extends BaseMindedConnectionSocketMessage {
40
+ config: RunnableConfig;
41
+ }
42
+ export interface OnCheckpointList extends BaseMindedConnectionSocketMessage {
43
+ config: RunnableConfig;
44
+ options?: CheckpointListOptions;
45
+ }
46
+ export interface OnCheckpointListResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
47
+ checkpoints?: CheckpointTuple[];
48
+ }
@@ -4,5 +4,9 @@ exports.MindedConnectionSocketMessageType = void 0;
4
4
  var MindedConnectionSocketMessageType;
5
5
  (function (MindedConnectionSocketMessageType) {
6
6
  MindedConnectionSocketMessageType["OnAppTrigger"] = "on-app-trigger";
7
+ MindedConnectionSocketMessageType["CHECKPOINT_GET_TUPLE"] = "checkpoint-get-tuple";
8
+ MindedConnectionSocketMessageType["CHECKPOINT_PUT"] = "checkpoint-put";
9
+ MindedConnectionSocketMessageType["CHECKPOINT_LIST"] = "checkpoint-list";
10
+ MindedConnectionSocketMessageType["CHECKPOINT_PUT_WRITES"] = "checkpoint-put-writes";
7
11
  })(MindedConnectionSocketMessageType || (exports.MindedConnectionSocketMessageType = MindedConnectionSocketMessageType = {}));
8
12
  //# sourceMappingURL=mindedConnectionTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mindedConnectionTypes.js","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":";;;AAAA,IAAY,iCAEX;AAFD,WAAY,iCAAiC;IAC3C,oEAA+B,CAAA;AACjC,CAAC,EAFW,iCAAiC,iDAAjC,iCAAiC,QAE5C"}
1
+ {"version":3,"file":"mindedConnectionTypes.js","sourceRoot":"","sources":["../../src/platform/mindedConnectionTypes.ts"],"names":[],"mappings":";;;AAUA,IAAY,iCAMX;AAND,WAAY,iCAAiC;IAC3C,oEAA+B,CAAA;IAC/B,kFAA6C,CAAA;IAC7C,sEAAiC,CAAA;IACjC,wEAAmC,CAAA;IACnC,oFAA+C,CAAA;AACjD,CAAC,EANW,iCAAiC,iDAAjC,iCAAiC,QAM5C"}
@@ -15,7 +15,7 @@ nodes:
15
15
  canStayOnNode: true
16
16
  prompt: "You are a customer support agent (Alex) tasked with identifying the issue and escalating it if necessary. Introduce yourself and make sure to collect the customer's name, the issue they are having, and the order id they are referring to. make sure you got all the details you need before continue with the flow. You don't need to further help the customer."
17
17
  llmConfig:
18
- name: 'ChatOpenAI'
18
+ name: 'AzureChatOpenAI'
19
19
  properties:
20
20
  model: 'gpt-4o'
21
21
  edges:
@@ -1,14 +1,10 @@
1
1
  {
2
- "flows": [
3
- "./flows"
4
- ],
5
- "tools": [
6
- "./tools"
7
- ],
2
+ "flows": ["./flows"],
3
+ "tools": ["./tools"],
8
4
  "llm": {
9
- "name": "ChatOpenAI",
5
+ "name": "AzureChatOpenAI",
10
6
  "properties": {
11
7
  "model": "gpt-4o"
12
8
  }
13
9
  }
14
- }
10
+ }
@@ -5,12 +5,12 @@ import tools from './tools';
5
5
  import { HumanMessage } from '@langchain/core/messages';
6
6
  import { events } from '../../src/index';
7
7
  import mindedConfig from './minded.json';
8
-
8
+ import { v4 as uuidv4 } from 'uuid';
9
+ const sessionId = `123_${uuidv4()}`;
9
10
  const agent = new Agent({
10
11
  memorySchema,
11
12
  config: mindedConfig,
12
13
  tools,
13
- platformToken: '123',
14
14
  });
15
15
 
16
16
  agent.on(events.AI_MESSAGE, async ({ message }) => {
@@ -54,9 +54,9 @@ if (process.env.NO_PLATFORM_CONNECT === 'true') {
54
54
  }
55
55
 
56
56
  await agent.invoke({
57
- triggerBody: userInput,
57
+ triggerBody: { event: { text: userInput } },
58
58
  triggerName: 'New Direct Message (Instant)',
59
- sessionId: 'cli-session',
59
+ sessionId: sessionId,
60
60
  });
61
61
 
62
62
  rl.prompt();
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "1.0.21",
3
+ "version": "1.0.23",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "bin": {
8
+ "minded": "./dist/cli/index.js"
9
+ },
7
10
  "scripts": {
8
11
  "build": "tsc",
9
12
  "watch": "tsc -w",
@@ -39,6 +42,7 @@
39
42
  "@langchain/langgraph": "^0.2.72",
40
43
  "@types/js-yaml": "^4.0.9",
41
44
  "axios": "^1.9.0",
45
+ "flatted": "^3.3.3",
42
46
  "js-yaml": "^4.1.0",
43
47
  "langchain": "^0.3.25",
44
48
  "socket.io-client": "^4.8.1",
package/src/agent.ts CHANGED
@@ -56,9 +56,7 @@ export class Agent {
56
56
  this.tools = tools;
57
57
  this.platformToken = platformToken;
58
58
  this.llm = createLlmInstance(config.llm);
59
- this.checkpointer = memorySaver || createCheckpointSaver('');
60
59
  this.validate();
61
- this.compiledGraph = this.initializeGraph();
62
60
 
63
61
  if (process.env.NODE_ENV !== 'test' && process.env.NO_PLATFORM_CONNECT !== 'true') {
64
62
  this.mindedConnection = new MindedConnection();
@@ -72,6 +70,8 @@ export class Agent {
72
70
  });
73
71
  });
74
72
  }
73
+ this.checkpointer = memorySaver || createCheckpointSaver(this.mindedConnection);
74
+ this.compiledGraph = this.initializeGraph();
75
75
  }
76
76
 
77
77
  private loadFlowsFromDirectory(flowsDirectories: string[]): Flow[] {
@@ -1,31 +1,18 @@
1
1
  import { BaseCheckpointSaver, MemorySaver } from '@langchain/langgraph';
2
2
  import { MindedCheckpointSaver } from '../platform/mindedCheckpointSaver';
3
+ import { MindedConnection } from '../platform/mindedConnection';
3
4
 
4
5
  /**
5
- * Factory function to create the appropriate checkpoint saver based on environment variables
6
+ * Factory function to create the appropriate checkpoint saver based on environment variables.
6
7
  * @param platformToken - Optional platform token for remote checkpoint saving
7
8
  * @returns BaseCheckpointSaver instance (either MemorySaver or MindedCheckpointSaver)
8
9
  */
9
- export function createCheckpointSaver(platformToken: string): BaseCheckpointSaver {
10
- const useRemoteCheckpointSaver = process.env.REMOTE_CHECKPOINT_SAVER === 'true';
11
-
12
- if (!useRemoteCheckpointSaver || process.env.NODE_ENV === 'test') {
13
- console.log('Using in-memory checkpoint saver');
14
- return new MemorySaver();
15
- }
16
-
17
- // // If not using in-memory, check for platform token and MINDED_SERVER
18
- // if (!platformToken) {
19
- // console.warn('No platform token provided, falling back to in-memory checkpoint saver');
20
- // return new MemorySaver();
21
- // }
22
-
23
- const mindedServer = process.env.MINDED_SERVER;
24
- if (!mindedServer) {
25
- console.warn('MINDED_SERVER environment variable not set, falling back to in-memory checkpoint saver');
10
+ export function createCheckpointSaver(mindedConnection: MindedConnection | null): BaseCheckpointSaver {
11
+ if (!mindedConnection) {
12
+ console.warn('mindedConnection not set, falling back to in-memory checkpoint saver');
26
13
  return new MemorySaver();
27
14
  }
28
15
 
29
- console.log(`Using remote checkpoint saver with server: ${mindedServer}`);
30
- return new MindedCheckpointSaver(platformToken);
16
+ console.log(`Using remote checkpoint saver}`);
17
+ return new MindedCheckpointSaver(mindedConnection);
31
18
  }
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env node
2
+
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+
6
+ const TOKEN_FILE = '.minded-token';
7
+
8
+ function getTokenFilePath(): string {
9
+ return path.join(process.cwd(), TOKEN_FILE);
10
+ }
11
+
12
+ function setToken(token: string): void {
13
+ const tokenPath = getTokenFilePath();
14
+ fs.writeFileSync(tokenPath, token);
15
+ console.log(`Token saved to ${tokenPath}`);
16
+ }
17
+
18
+ function main() {
19
+ const args = process.argv.slice(2);
20
+ const command = args[0];
21
+
22
+ if (command === 'token') {
23
+ const token = args[1];
24
+ if (!token) {
25
+ console.error('Please provide a token');
26
+ process.exit(1);
27
+ }
28
+ setToken(token);
29
+ } else {
30
+ console.error('Unknown command. Available commands: token');
31
+ process.exit(1);
32
+ }
33
+ }
34
+
35
+ main();
@@ -9,20 +9,31 @@ import {
9
9
  CheckpointPendingWrite,
10
10
  } from '@langchain/langgraph-checkpoint';
11
11
  import type { RunnableConfig } from '@langchain/core/runnables';
12
- import { mindedRequest } from './mindedRequest';
12
+ import { MindedConnection } from './mindedConnection';
13
+ import {
14
+ MindedConnectionSocketMessageType,
15
+ OnCheckpointGetTuple,
16
+ OnCheckpointGetTupleResponse,
17
+ OnCheckpointList,
18
+ OnCheckpointListResponse,
19
+ OnCheckpointPut,
20
+ OnCheckpointPutResponse,
21
+ OnCheckpointPutWrites,
22
+ } from './mindedConnectionTypes';
13
23
 
14
24
  export class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
15
- constructor(private token: string) {
25
+ constructor(private mindedConnection: MindedConnection) {
16
26
  super();
17
27
  }
18
28
 
19
29
  async getTuple(config: RunnableConfig<Record<string, any>>): Promise<CheckpointTuple | undefined> {
20
- const response = await mindedRequest<{ tuple: CheckpointTuple | undefined }, { config: RunnableConfig<Record<string, any>> }>({
21
- path: '/sdk-checkpoints/getTuple',
22
- method: 'POST',
23
- body: { config },
24
- token: this.token,
25
- });
30
+ const response = await this.mindedConnection.awaitEmit<OnCheckpointGetTuple, OnCheckpointGetTupleResponse>(
31
+ MindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE,
32
+ {
33
+ type: MindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE,
34
+ config,
35
+ },
36
+ );
26
37
 
27
38
  if (!response.tuple) {
28
39
  return undefined;
@@ -64,17 +75,16 @@ export class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
64
75
  }
65
76
 
66
77
  async *list(config: RunnableConfig<Record<string, any>>, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple, any, any> {
67
- const response = await mindedRequest<
68
- { checkpoints: CheckpointTuple[] },
69
- { config: RunnableConfig<Record<string, any>>; options?: CheckpointListOptions }
70
- >({
71
- path: '/sdk-checkpoints/list',
72
- method: 'POST',
73
- body: { config, options },
74
- token: this.token,
75
- });
78
+ const response = await this.mindedConnection.awaitEmit<OnCheckpointList, OnCheckpointListResponse>(
79
+ MindedConnectionSocketMessageType.CHECKPOINT_LIST,
80
+ {
81
+ type: MindedConnectionSocketMessageType.CHECKPOINT_LIST,
82
+ config,
83
+ options,
84
+ },
85
+ );
76
86
 
77
- for (const tuple of response.checkpoints) {
87
+ for (const tuple of response.checkpoints || []) {
78
88
  // Re-serialize and deserialize checkpoint to restore class information
79
89
  const [checkpointType, serializedCheckpoint] = this.serde.dumpsTyped(tuple.checkpoint);
80
90
  const checkpoint = (await this.serde.loadsTyped(checkpointType, serializedCheckpoint)) as Checkpoint;
@@ -102,30 +112,34 @@ export class MindedCheckpointSaver extends BaseCheckpointSaver<number> {
102
112
  metadata: CheckpointMetadata,
103
113
  newVersions: ChannelVersions,
104
114
  ): Promise<RunnableConfig<Record<string, any>>> {
105
- const response = await mindedRequest<
106
- { config: RunnableConfig<Record<string, any>> },
107
- {
108
- config: RunnableConfig<Record<string, any>>;
109
- checkpoint: Checkpoint<string, string>;
110
- metadata: CheckpointMetadata;
111
- newVersions: ChannelVersions;
112
- }
113
- >({
114
- path: '/sdk-checkpoints/put',
115
- method: 'POST',
116
- body: { config, checkpoint, metadata, newVersions },
117
- token: this.token,
118
- });
119
-
120
- return response.config;
115
+ try {
116
+ const response = await this.mindedConnection.awaitEmit<OnCheckpointPut, OnCheckpointPutResponse>(
117
+ MindedConnectionSocketMessageType.CHECKPOINT_PUT,
118
+ {
119
+ type: MindedConnectionSocketMessageType.CHECKPOINT_PUT,
120
+ config,
121
+ checkpoint,
122
+ metadata,
123
+ newVersions,
124
+ },
125
+ );
126
+ return response.config;
127
+ } catch (error) {
128
+ console.error('Error putting checkpoint:', error);
129
+ return config;
130
+ }
121
131
  }
122
132
 
123
133
  async putWrites(config: RunnableConfig<Record<string, any>>, writes: PendingWrite[], taskId: string): Promise<void> {
124
- await mindedRequest({
125
- path: '/sdk-checkpoints/putWrites',
126
- method: 'POST',
127
- body: { config, writes, taskId },
128
- token: this.token,
129
- });
134
+ try {
135
+ await this.mindedConnection.awaitEmit<OnCheckpointPutWrites, any>(MindedConnectionSocketMessageType.CHECKPOINT_PUT_WRITES, {
136
+ type: MindedConnectionSocketMessageType.CHECKPOINT_PUT_WRITES,
137
+ config,
138
+ writes,
139
+ taskId,
140
+ });
141
+ } catch (error) {
142
+ console.error('Error putting writes:', error);
143
+ }
130
144
  }
131
145
  }
@@ -3,6 +3,7 @@ import * as readline from 'readline';
3
3
  import { BaseMindedConnectionSocketMessage, MindedConnectionSocketMessageType } from './mindedConnectionTypes';
4
4
  import * as fs from 'fs';
5
5
  import * as path from 'path';
6
+ import { stringify } from 'flatted';
6
7
 
7
8
  export class MindedConnection {
8
9
  private socket: Socket | null = null;
@@ -81,8 +82,35 @@ export class MindedConnection {
81
82
  }
82
83
  };
83
84
 
85
+ public awaitEmit = <T, R>(event: MindedConnectionSocketMessageType, message: T, timeoutMs: number = 5000): Promise<R> => {
86
+ return new Promise((resolve, reject) => {
87
+ if (!this.socket) {
88
+ reject(new Error('Socket is not connected'));
89
+ return;
90
+ }
91
+
92
+ // Set up timeout
93
+ const timeout = setTimeout(() => {
94
+ reject(new Error(`Acknowledgement timeout after ${timeoutMs}ms`));
95
+ }, timeoutMs);
96
+
97
+ // Emit with acknowledgement callback
98
+
99
+ this.socket.emit(event, stringify(message), (response: any) => {
100
+ clearTimeout(timeout);
101
+
102
+ // Check if the response indicates an error
103
+ if (response && response.error) {
104
+ reject(new Error(response.error));
105
+ } else {
106
+ resolve(response);
107
+ }
108
+ });
109
+ });
110
+ };
111
+
84
112
  private async connect(token: string) {
85
- this.socket = io('http://localhost:8888', {
113
+ this.socket = io(process.env.MINDED_SERVER, {
86
114
  path: '/minded-connect',
87
115
  query: {
88
116
  token,
@@ -1,14 +1,64 @@
1
+ import type {
2
+ CheckpointListOptions,
3
+ CheckpointMetadata,
4
+ PendingWrite,
5
+ Checkpoint,
6
+ ChannelVersions,
7
+ CheckpointTuple,
8
+ } from '@langchain/langgraph-checkpoint';
9
+ import type { RunnableConfig } from '@langchain/core/runnables';
10
+
1
11
  export enum MindedConnectionSocketMessageType {
2
12
  OnAppTrigger = 'on-app-trigger',
13
+ CHECKPOINT_GET_TUPLE = 'checkpoint-get-tuple',
14
+ CHECKPOINT_PUT = 'checkpoint-put',
15
+ CHECKPOINT_LIST = 'checkpoint-list',
16
+ CHECKPOINT_PUT_WRITES = 'checkpoint-put-writes',
3
17
  }
4
18
 
5
19
  export interface BaseMindedConnectionSocketMessage {
6
20
  type: MindedConnectionSocketMessageType;
7
21
  }
8
22
 
23
+ export interface BaseSdkConnectionSocketMessageResponseCallbackAck {
24
+ error?: string;
25
+ }
9
26
  export interface OnAppTrigger extends BaseMindedConnectionSocketMessage {
10
27
  name: string;
11
28
  agentId: string;
12
29
  body: Record<string, any>;
13
30
  cnvId: string;
14
31
  }
32
+
33
+ export interface OnCheckpointPut extends BaseMindedConnectionSocketMessage {
34
+ config: RunnableConfig;
35
+ checkpoint: Checkpoint;
36
+ metadata: CheckpointMetadata;
37
+ newVersions: ChannelVersions;
38
+ }
39
+
40
+ export interface OnCheckpointPutResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
41
+ config: RunnableConfig;
42
+ }
43
+ export interface OnCheckpointPutWrites extends BaseMindedConnectionSocketMessage {
44
+ config: RunnableConfig;
45
+ writes: PendingWrite[];
46
+ taskId: string;
47
+ }
48
+
49
+ export interface OnCheckpointGetTupleResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
50
+ tuple?: CheckpointTuple | undefined;
51
+ }
52
+
53
+ export interface OnCheckpointGetTuple extends BaseMindedConnectionSocketMessage {
54
+ config: RunnableConfig;
55
+ }
56
+
57
+ export interface OnCheckpointList extends BaseMindedConnectionSocketMessage {
58
+ config: RunnableConfig;
59
+ options?: CheckpointListOptions;
60
+ }
61
+
62
+ export interface OnCheckpointListResponse extends BaseSdkConnectionSocketMessageResponseCallbackAck {
63
+ checkpoints?: CheckpointTuple[];
64
+ }
@@ -2,19 +2,21 @@ import { expect } from 'chai';
2
2
  import { describe, it, beforeEach, afterEach } from 'mocha';
3
3
  import * as sinon from 'sinon';
4
4
  import { MindedCheckpointSaver } from '../../src/platform/mindedCheckpointSaver';
5
- import * as mindedRequestModule from '../../src/platform/mindedRequest';
6
5
  import { Checkpoint, CheckpointTuple, CheckpointMetadata, emptyCheckpoint, CheckpointListOptions } from '@langchain/langgraph-checkpoint';
7
6
  import { RunnableConfig } from '@langchain/core/runnables';
8
7
  import { HumanMessage, AIMessage, SystemMessage } from '@langchain/core/messages';
8
+ import { MindedConnection } from '../../src/platform/mindedConnection';
9
+ import { MindedConnectionSocketMessageType } from '../../src/platform/mindedConnectionTypes';
9
10
 
10
11
  describe('MindedCheckpointSaver - List Method', function () {
11
12
  let checkpointSaver: MindedCheckpointSaver;
12
- let mindedRequestStub: sinon.SinonStub;
13
- const testToken = 'test-token-456';
13
+ let mindedConnection: MindedConnection;
14
+ let awaitEmitStub: sinon.SinonStub;
14
15
 
15
16
  beforeEach(() => {
16
- checkpointSaver = new MindedCheckpointSaver(testToken);
17
- mindedRequestStub = sinon.stub(mindedRequestModule, 'mindedRequest');
17
+ mindedConnection = new MindedConnection();
18
+ checkpointSaver = new MindedCheckpointSaver(mindedConnection);
19
+ awaitEmitStub = sinon.stub(mindedConnection, 'awaitEmit');
18
20
  });
19
21
 
20
22
  afterEach(() => {
@@ -77,8 +79,8 @@ describe('MindedCheckpointSaver - List Method', function () {
77
79
  ],
78
80
  };
79
81
 
80
- // Mock the HTTP response with JSON-serialized objects (no class info)
81
- mindedRequestStub.resolves(mockServerResponse);
82
+ // Mock the awaitEmit response
83
+ awaitEmitStub.resolves(mockServerResponse);
82
84
 
83
85
  const config: RunnableConfig = { configurable: { thread_id: 'test-thread' } };
84
86
  const options: CheckpointListOptions = { limit: 10 };
@@ -88,13 +90,13 @@ describe('MindedCheckpointSaver - List Method', function () {
88
90
  results.push(tuple);
89
91
  }
90
92
 
91
- // Verify the request was made correctly
92
- expect(mindedRequestStub.calledOnce).to.equal(true);
93
- expect(mindedRequestStub.firstCall.args[0]).to.deep.include({
94
- path: '/sdk-checkpoints/list',
95
- method: 'POST',
96
- body: { config, options },
97
- token: testToken,
93
+ // Verify the awaitEmit was called correctly
94
+ expect(awaitEmitStub.calledOnce).to.equal(true);
95
+ expect(awaitEmitStub.firstCall.args[0]).to.equal(MindedConnectionSocketMessageType.CHECKPOINT_LIST);
96
+ expect(awaitEmitStub.firstCall.args[1]).to.deep.equal({
97
+ type: MindedConnectionSocketMessageType.CHECKPOINT_LIST,
98
+ config,
99
+ options,
98
100
  });
99
101
 
100
102
  // Verify we got the correct number of results
@@ -123,7 +125,7 @@ describe('MindedCheckpointSaver - List Method', function () {
123
125
  });
124
126
 
125
127
  it('should handle empty checkpoint list', async () => {
126
- mindedRequestStub.resolves({ checkpoints: [] });
128
+ awaitEmitStub.resolves({ checkpoints: [] });
127
129
 
128
130
  const config: RunnableConfig = { configurable: { thread_id: 'empty-thread' } };
129
131
 
@@ -2,19 +2,21 @@ import { expect } from 'chai';
2
2
  import { describe, it, beforeEach, afterEach } from 'mocha';
3
3
  import * as sinon from 'sinon';
4
4
  import { MindedCheckpointSaver } from '../../src/platform/mindedCheckpointSaver';
5
- import * as mindedRequestModule from '../../src/platform/mindedRequest';
6
5
  import { Checkpoint, CheckpointMetadata, emptyCheckpoint } from '@langchain/langgraph-checkpoint';
7
6
  import { RunnableConfig } from '@langchain/core/runnables';
8
7
  import { HumanMessage, AIMessage } from '@langchain/core/messages';
8
+ import { MindedConnection } from '../../src/platform/mindedConnection';
9
+ import { MindedConnectionSocketMessageType } from '../../src/platform/mindedConnectionTypes';
9
10
 
10
11
  describe('MindedCheckpointSaver', function () {
11
12
  let checkpointSaver: MindedCheckpointSaver;
12
- let mindedRequestStub: sinon.SinonStub;
13
- const testToken = 'test-token-123';
13
+ let mindedConnection: MindedConnection;
14
+ let awaitEmitStub: sinon.SinonStub;
14
15
 
15
16
  beforeEach(() => {
16
- checkpointSaver = new MindedCheckpointSaver(testToken);
17
- mindedRequestStub = sinon.stub(mindedRequestModule, 'mindedRequest');
17
+ mindedConnection = new MindedConnection();
18
+ checkpointSaver = new MindedCheckpointSaver(mindedConnection);
19
+ awaitEmitStub = sinon.stub(mindedConnection, 'awaitEmit');
18
20
  });
19
21
 
20
22
  afterEach(() => {
@@ -58,19 +60,18 @@ describe('MindedCheckpointSaver', function () {
58
60
  },
59
61
  };
60
62
 
61
- // Mock the HTTP response with JSON-serialized objects (no class info)
62
- mindedRequestStub.resolves(mockServerResponse);
63
+ // Mock the awaitEmit response
64
+ awaitEmitStub.resolves(mockServerResponse);
63
65
 
64
66
  const config: RunnableConfig = { configurable: { thread_id: 'test-thread' } };
65
67
  const result = await checkpointSaver.getTuple(config);
66
68
 
67
- // Verify the request was made correctly
68
- expect(mindedRequestStub.calledOnce).to.equal(true);
69
- expect(mindedRequestStub.firstCall.args[0]).to.deep.include({
70
- path: '/sdk-checkpoints/getTuple',
71
- method: 'POST',
72
- body: { config },
73
- token: testToken,
69
+ // Verify the awaitEmit was called correctly
70
+ expect(awaitEmitStub.calledOnce).to.equal(true);
71
+ expect(awaitEmitStub.firstCall.args[0]).to.equal(MindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE);
72
+ expect(awaitEmitStub.firstCall.args[1]).to.deep.equal({
73
+ type: MindedConnectionSocketMessageType.CHECKPOINT_GET_TUPLE,
74
+ config,
74
75
  });
75
76
 
76
77
  // Verify the result structure
@@ -88,7 +89,7 @@ describe('MindedCheckpointSaver', function () {
88
89
  });
89
90
 
90
91
  it('should return undefined when server returns no tuple', async () => {
91
- mindedRequestStub.resolves({ tuple: undefined });
92
+ awaitEmitStub.resolves({ tuple: undefined });
92
93
 
93
94
  const config: RunnableConfig = { configurable: { thread_id: 'test-thread' } };
94
95
  const result = await checkpointSaver.getTuple(config);