@minded-ai/mindedjs 2.0.14 → 2.0.15-beta-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,15 +6,25 @@ exports.createClassifier = createClassifier;
6
6
  exports.multiClassify = multiClassify;
7
7
  const zod_1 = require("zod");
8
8
  const logger_1 = require("../utils/logger");
9
- const output_parsers_1 = require("@langchain/core/output_parsers");
10
9
  const messages_1 = require("@langchain/core/messages");
11
- // Default configuration
12
- const DEFAULT_CONFIG = {
13
- outputFormat: 'json',
14
- includeReason: true,
15
- defaultClass: 'unknown',
16
- defaultReason: 'Unable to determine classification',
17
- };
10
+ function supportsStructuredOutput(llm) {
11
+ return 'withStructuredOutput' in llm && typeof llm.withStructuredOutput === 'function';
12
+ }
13
+ /**
14
+ * Create a dynamic Zod schema for classification result based on valid classes
15
+ */
16
+ function createClassificationSchema(config) {
17
+ const validClassNames = config.classes.map((c) => c.name);
18
+ // Create a union type for valid class names
19
+ const classEnum = zod_1.z.enum(validClassNames);
20
+ // Build the schema - always include all fields
21
+ const schemaShape = {
22
+ class: classEnum.describe('The selected classification category'),
23
+ reason: zod_1.z.string().describe('Explanation for the classification'),
24
+ confidence: zod_1.z.number().min(0).max(1).describe('Confidence score between 0 and 1'),
25
+ };
26
+ return zod_1.z.object(schemaShape);
27
+ }
18
28
  /**
19
29
  * Generic classifier utility that can be used standalone
20
30
  * @param content The content to classify
@@ -23,49 +33,73 @@ const DEFAULT_CONFIG = {
23
33
  * @returns The classification result
24
34
  */
25
35
  async function classify(content, config, llm) {
26
- const mergedConfig = { ...DEFAULT_CONFIG, ...config };
27
- try {
28
- // Build the classification prompt
29
- const classesDescription = mergedConfig.classes.map((c) => `${c.name}: ${c.description}`).join('\n');
30
- const basePrompt = mergedConfig.systemPrompt || 'You are a classifier. Your task is to classify the given content into one of the following categories:';
31
- let prompt = `${basePrompt}\n\n${classesDescription}\n\n`;
32
- if (mergedConfig.outputFormat === 'json') {
33
- prompt += `You should output the result in the following JSON format: {
34
- "class": "<selected class name>",
35
- ${mergedConfig.includeReason ? '"reason": "<explanation for the classification>",' : ''}
36
- "confidence": <confidence score between 0 and 1>
37
- }.\nReturn JSON and nothing more.`;
38
- }
39
- else {
40
- prompt += 'Return only the class name.';
41
- }
42
- prompt += `\n\nContent to classify:\n${content}`;
43
- // Make the classification request
44
- if (mergedConfig.outputFormat === 'json') {
45
- const parser = new output_parsers_1.JsonOutputParser();
46
- const result = await llm.pipe(parser).invoke([new messages_1.SystemMessage(prompt)]);
36
+ const MAX_RETRIES = 3;
37
+ let lastError = null;
38
+ // Check if LLM supports structured output upfront
39
+ if (!supportsStructuredOutput(llm)) {
40
+ throw new Error('LLM does not support structured output, which is required for classification');
41
+ }
42
+ for (let attempt = 1; attempt <= MAX_RETRIES; attempt++) {
43
+ try {
44
+ // Build the classification prompt
45
+ const classesDescription = config.classes.map((c) => `${c.name}: ${c.description}`).join('\n');
46
+ const basePrompt = config.systemPrompt || 'You are a classifier. Your task is to classify the given content into one of the following categories:';
47
+ let prompt = `${basePrompt}\n\n${classesDescription}\n\n`;
48
+ // Add retry feedback if this is not the first attempt
49
+ if (attempt > 1) {
50
+ const validClassNames = config.classes.map((c) => c.name);
51
+ prompt += `\n⚠️ IMPORTANT: Your previous classification attempt failed. `;
52
+ prompt += `You MUST select ONLY from these valid classes:\n${validClassNames.join(', ')}\n\n`;
53
+ }
54
+ // Create dynamic schema based on valid classes
55
+ const classificationSchema = createClassificationSchema(config);
56
+ // Add content to classify to the prompt
57
+ prompt += `\n\nContent to classify:\n${content}`;
58
+ // Use structured output for guaranteed compliance
59
+ const structuredLLM = llm.withStructuredOutput(classificationSchema);
60
+ const messages = [new messages_1.SystemMessage(prompt)];
61
+ const result = (await structuredLLM.invoke(messages));
62
+ // The result is already validated by withStructuredOutput
63
+ logger_1.logger.debug({
64
+ message: 'Classification successful with structured output',
65
+ attempt,
66
+ class: result.class,
67
+ });
47
68
  return result;
48
69
  }
49
- else {
50
- const result = await llm.invoke([new messages_1.SystemMessage(prompt)]);
51
- const classText = typeof result.content === 'string' ? result.content.trim() : '';
52
- return { class: classText };
70
+ catch (err) {
71
+ lastError = err;
72
+ logger_1.logger.warn({
73
+ message: `Classification attempt ${attempt} failed`,
74
+ attempt,
75
+ maxRetries: MAX_RETRIES,
76
+ error: lastError.message,
77
+ });
78
+ // If this is not the last attempt, continue to retry
79
+ if (attempt < MAX_RETRIES) {
80
+ continue;
81
+ }
53
82
  }
54
83
  }
55
- catch (err) {
56
- logger_1.logger.error({ message: 'Classification failed, using default', err });
57
- // Return default classification on error
58
- return {
59
- class: mergedConfig.defaultClass || 'unknown',
60
- reason: mergedConfig.defaultReason || err.message,
61
- confidence: 0,
62
- };
63
- }
84
+ // All retries exhausted - fallback to default
85
+ logger_1.logger.warn({
86
+ message: 'Classification failed after max retries, using default class',
87
+ maxRetries: MAX_RETRIES,
88
+ lastError: lastError === null || lastError === void 0 ? void 0 : lastError.message,
89
+ defaultClass: config.defaultClass,
90
+ defaultReason: config.defaultReason,
91
+ });
92
+ // Return default classification
93
+ return {
94
+ class: config.defaultClass,
95
+ reason: config.defaultReason,
96
+ confidence: 0,
97
+ };
64
98
  }
65
99
  /**
66
100
  * Create a classifier from a simple class list
67
101
  * @param classes Array of class names or [name, description] tuples
68
- * @param options Additional configuration options
102
+ * @param options Configuration options (includeReason, defaultClass, defaultReason are required)
69
103
  * @returns A configured classify function
70
104
  */
71
105
  function createClassifier(classes, options) {
@@ -96,19 +130,17 @@ exports.schema = zod_1.z.object({
96
130
  .optional()
97
131
  .describe('Classes to classify into. Can be strings, [name, description] tuples, or objects with name and description'),
98
132
  systemPrompt: zod_1.z.string().optional().describe('Custom system prompt for classification'),
99
- includeReason: zod_1.z.boolean().optional().default(true).describe('Whether to include reasoning in the response'),
100
- outputFormat: zod_1.z.enum(['json', 'text']).optional().default('json').describe('Output format for the classification'),
101
- defaultClass: zod_1.z.string().optional().describe('Default class to use if classification fails'),
102
- defaultReason: zod_1.z.string().optional().describe('Default reason to use if classification fails'),
133
+ defaultClass: zod_1.z.string().describe('Default class to use if classification fails'),
134
+ defaultReason: zod_1.z.string().describe('Default reason to use if classification fails'),
103
135
  });
104
136
  const classifierTool = {
105
137
  name: 'minded-classifier',
106
- description: 'Classify content into predefined categories using AI. Supports custom classes, system prompts, and various output formats. Can be configured with default fallback values.',
138
+ description: 'Classify content into predefined categories using AI. Supports custom classes and system prompts. Uses structured output for guaranteed schema compliance. Requires default fallback values.',
107
139
  input: exports.schema,
108
140
  isGlobal: false,
109
141
  execute: async ({ input, state, agent }) => {
110
142
  var _a, _b;
111
- const { content, classes, systemPrompt, includeReason, outputFormat, defaultClass, defaultReason } = input;
143
+ const { content, classes, systemPrompt, defaultClass, defaultReason } = input;
112
144
  logger_1.logger.info({
113
145
  message: 'Classifying content',
114
146
  sessionId: state.sessionId,
@@ -140,8 +172,6 @@ const classifierTool = {
140
172
  const config = {
141
173
  classes: classDefinitions,
142
174
  systemPrompt,
143
- includeReason,
144
- outputFormat,
145
175
  defaultClass,
146
176
  defaultReason,
147
177
  };
@@ -175,39 +205,41 @@ const classifierTool = {
175
205
  exports.default = classifierTool;
176
206
  // Export utility for multi-label classification
177
207
  async function multiClassify(content, config, llm) {
178
- const mergedConfig = { ...DEFAULT_CONFIG, ...config };
179
- const maxClasses = mergedConfig.maxClasses || 3;
208
+ const maxClasses = config.maxClasses || 3;
209
+ // Check if LLM supports structured output
210
+ if (!supportsStructuredOutput(llm)) {
211
+ throw new Error('LLM does not support structured output, which is required for multi-classification');
212
+ }
180
213
  try {
181
- const classesDescription = mergedConfig.classes.map((c) => `${c.name}: ${c.description}`).join('\n');
182
- const basePrompt = mergedConfig.systemPrompt || 'You are a multi-label classifier. Select all applicable categories for the given content:';
214
+ const classesDescription = config.classes.map((c) => `${c.name}: ${c.description}`).join('\n');
215
+ const validClassNames = config.classes.map((c) => c.name);
216
+ const basePrompt = config.systemPrompt || 'You are a multi-label classifier. Select all applicable categories for the given content:';
183
217
  const prompt = `${basePrompt}\n\n${classesDescription}\n\n
184
- You should output the result as a JSON array of up to ${maxClasses} classifications, ordered by relevance:
185
- [
186
- {
187
- "class": "<class name>",
188
- ${mergedConfig.includeReason ? '"reason": "<explanation>",' : ''}
189
- "confidence": <confidence score between 0 and 1>
190
- },
191
- ...
192
- ]
193
- Return JSON and nothing more.
218
+ Select up to ${maxClasses} classifications, ordered by relevance.
194
219
 
195
220
  Content to classify:
196
221
  ${content}`;
197
- const parser = new output_parsers_1.JsonOutputParser();
198
- const result = await llm.pipe(parser).invoke([new messages_1.SystemMessage(prompt)]);
199
- if (Array.isArray(result)) {
200
- return result;
201
- }
202
- // If single result returned, wrap in array
203
- return [result];
222
+ // Create schema for array of classifications
223
+ const classEnum = zod_1.z.enum(validClassNames);
224
+ const multiClassSchema = zod_1.z
225
+ .array(zod_1.z.object({
226
+ class: classEnum.describe('The selected classification category'),
227
+ reason: zod_1.z.string().describe('Explanation for the classification'),
228
+ confidence: zod_1.z.number().min(0).max(1).describe('Confidence score between 0 and 1'),
229
+ }))
230
+ .min(1)
231
+ .max(maxClasses);
232
+ const structuredLLM = llm.withStructuredOutput(multiClassSchema);
233
+ const messages = [new messages_1.SystemMessage(prompt)];
234
+ const result = (await structuredLLM.invoke(messages));
235
+ return result;
204
236
  }
205
237
  catch (err) {
206
238
  logger_1.logger.error({ message: 'Multi-classification failed', err });
207
239
  return [
208
240
  {
209
- class: mergedConfig.defaultClass || 'unknown',
210
- reason: mergedConfig.defaultReason || err.message,
241
+ class: config.defaultClass,
242
+ reason: config.defaultReason,
211
243
  confidence: 0,
212
244
  },
213
245
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/toolsLibrary/classifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/toolsLibrary/classifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ToolMessage } from '@langchain/core/messages';
2
+ import { State } from '../types/LangGraph.types';
3
+ declare const extractToolStateResponse: (toolMessage: ToolMessage) => Partial<State>;
4
+ export default extractToolStateResponse;
5
+ //# sourceMappingURL=extractStateMemoryResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractStateMemoryResponse.d.ts","sourceRoot":"","sources":["../../src/utils/extractStateMemoryResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,WAAW,EAA0C,MAAM,0BAA0B,CAAC;AAE5G,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,QAAA,MAAM,wBAAwB,gBAAiB,WAAW,KAAG,OAAO,CAAC,KAAK,CAazE,CAAC;AA4EF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const messages_1 = require("@langchain/core/messages");
4
+ const logger_1 = require("./logger");
5
+ const extractToolStateResponse = (toolMessage) => {
6
+ try {
7
+ const parsed = JSON.parse(toolMessage.content);
8
+ if (typeof parsed === 'object' && parsed !== null && 'state' in parsed) {
9
+ if (parsed.state.messages) {
10
+ parsed.state.messages = constructMessagesFromToolMessage(parsed.state.messages);
11
+ }
12
+ return parsed.state;
13
+ }
14
+ }
15
+ catch (err) {
16
+ logger_1.logger.error({ message: 'Error parsing tool state response', err });
17
+ }
18
+ return {};
19
+ };
20
+ const constructMessagesFromToolMessage = (messages) => {
21
+ if (!Array.isArray(messages)) {
22
+ logger_1.logger.error({ msg: 'Expected messages to be an array', messages });
23
+ return [];
24
+ }
25
+ return messages
26
+ .map((messageObj) => {
27
+ try {
28
+ // Handle case where message is already a BaseMessage instance
29
+ if (messageObj instanceof messages_1.BaseMessage) {
30
+ return messageObj;
31
+ }
32
+ // Handle case where message is a plain object that needs reconstruction
33
+ const messageType = messageObj.id[2];
34
+ const content = messageObj.kwargs.content || '';
35
+ const id = messageObj.kwargs.id;
36
+ const additionalKwargs = messageObj.additional_kwargs || {};
37
+ switch (messageType) {
38
+ case 'AIMessage':
39
+ return new messages_1.AIMessage({
40
+ content,
41
+ id,
42
+ additional_kwargs: additionalKwargs,
43
+ tool_calls: messageObj.tool_calls || [],
44
+ invalid_tool_calls: messageObj.invalid_tool_calls || [],
45
+ });
46
+ case 'HumanMessage':
47
+ return new messages_1.HumanMessage({
48
+ content,
49
+ id,
50
+ additional_kwargs: additionalKwargs,
51
+ });
52
+ case 'SystemMessage':
53
+ return new messages_1.SystemMessage({
54
+ content,
55
+ id,
56
+ additional_kwargs: additionalKwargs,
57
+ });
58
+ case 'ToolMessage':
59
+ return new messages_1.ToolMessage({
60
+ content,
61
+ id,
62
+ additional_kwargs: additionalKwargs,
63
+ tool_call_id: messageObj.tool_call_id || '',
64
+ });
65
+ default:
66
+ // Default to HumanMessage for unknown types
67
+ logger_1.logger.warn({
68
+ msg: 'Unknown message type, defaulting to HumanMessage',
69
+ messageType,
70
+ messageObj,
71
+ });
72
+ return null;
73
+ }
74
+ }
75
+ catch (err) {
76
+ logger_1.logger.error({
77
+ msg: 'Error reconstructing message',
78
+ err,
79
+ messageObj,
80
+ });
81
+ // Return a fallback HumanMessage in case of error
82
+ return new messages_1.HumanMessage({
83
+ content: messageObj.content || 'Error reconstructing message',
84
+ id: messageObj.id,
85
+ });
86
+ }
87
+ })
88
+ .filter(Boolean);
89
+ };
90
+ exports.default = extractToolStateResponse;
91
+ //# sourceMappingURL=extractStateMemoryResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractStateMemoryResponse.js","sourceRoot":"","sources":["../../src/utils/extractStateMemoryResponse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "2.0.14",
3
+ "version": "2.0.15-beta-1",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -12,6 +12,8 @@ import { LLMProviders } from '../types/LLM.types';
12
12
  import { AIMessage, ToolMessage } from '@langchain/core/messages';
13
13
  import { v4 as uuidv4 } from 'uuid';
14
14
  import { executeRpaStep } from './rpaStepsExecutor';
15
+ import { createBrowserSession } from '../browserTask/executeBrowserTask';
16
+ import { getConfig } from '../platform/config';
15
17
 
16
18
  type AddRpaNodeParams = {
17
19
  graph: PreCompiledGraph;
@@ -29,13 +31,22 @@ export const addRpaNode = async ({ graph, node, agent, llm }: AddRpaNodeParams)
29
31
 
30
32
  let browser: Browser | null = null;
31
33
  let page: Page | null = null;
34
+ const { browserTaskMode } = getConfig();
32
35
 
36
+ const session = await createBrowserSession({
37
+ sessionId: state.sessionId,
38
+ browserTaskMode,
39
+ });
40
+
41
+ if (!session.sessionId || !session.cdpUrl) {
42
+ throw new Error('Failed to create browser session: missing session details');
43
+ }
33
44
  // Create tool call for RPA execution
34
45
  const toolCallId = uuidv4();
35
46
  const aiMessageId = uuidv4();
36
-
47
+ state.cdpUrl = session.cdpUrl;
37
48
  // Get CDP URL from state
38
- const cdpUrl = state.cdpUrl;
49
+ const cdpUrl = session.cdpUrl;
39
50
 
40
51
  const toolCall = {
41
52
  id: toolCallId,