@minded-ai/mindedjs 1.0.134 → 1.0.136

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/index.d.ts CHANGED
@@ -26,6 +26,8 @@ export { zendesk } from './interfaces/zendesk';
26
26
  export * as toolsLibrary from './toolsLibrary';
27
27
  export { classify, createClassifier, multiClassify } from './toolsLibrary/classifier';
28
28
  export type { ClassDefinition, ClassifierConfig, ClassificationResult } from './toolsLibrary/classifier';
29
+ export { extract, createExtractor } from './toolsLibrary/extraction';
30
+ export type { ExtractionSchema, ExtractionConfig, ExtractionResult } from './toolsLibrary/extraction';
29
31
  export { AgentEvents } from './events/AgentEvents';
30
32
  export type { AgentEventRequestPayloads, AgentEventResponsePayloads } from './events/AgentEvents';
31
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,iCAAiC,EAAE,MAAM,kCAAkC,CAAC;AAErF,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,iCAAiC,GAClC,CAAC;AAGF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACzG,YAAY,EAAE,sBAAsB,IAAI,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAGzG,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEjG,YAAY,EACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,WAAW,EACX,cAAc,EACd,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAC/G,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,qBAAqB,EACrB,iCAAiC,EACjC,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC9E,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACtF,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGzG,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,YAAY,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.AgentEvents = exports.multiClassify = exports.createClassifier = exports.classify = exports.toolsLibrary = exports.zendesk = exports.SessionType = exports.extractFromDocument = exports.DocumentProcessor = exports.KnownTriggerNames = exports.AppNodeMetadataType = exports.EdgeType = exports.TriggerType = exports.NodeType = exports.createParallelWrapper = exports.MindedChatOpenAI = exports.mindedConnectionSocketMessageType = exports.escalateVoiceCall = exports.retellGetCall = exports.retellCall = exports.onTimer = exports.cancelTimer = exports.resetTimer = exports.sendPlaceholderMessage = exports.logger = exports.events = exports.Agent = void 0;
29
+ exports.AgentEvents = exports.createExtractor = exports.extract = exports.multiClassify = exports.createClassifier = exports.classify = exports.toolsLibrary = exports.zendesk = exports.SessionType = exports.extractFromDocument = exports.DocumentProcessor = exports.KnownTriggerNames = exports.AppNodeMetadataType = exports.EdgeType = exports.TriggerType = exports.NodeType = exports.createParallelWrapper = exports.MindedChatOpenAI = exports.mindedConnectionSocketMessageType = exports.escalateVoiceCall = exports.retellGetCall = exports.retellCall = exports.onTimer = exports.cancelTimer = exports.resetTimer = exports.sendPlaceholderMessage = exports.logger = exports.events = exports.Agent = void 0;
30
30
  const agent_1 = require("./agent");
31
31
  Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
32
32
  const events_1 = __importDefault(require("./events"));
@@ -72,6 +72,10 @@ var classifier_1 = require("./toolsLibrary/classifier");
72
72
  Object.defineProperty(exports, "classify", { enumerable: true, get: function () { return classifier_1.classify; } });
73
73
  Object.defineProperty(exports, "createClassifier", { enumerable: true, get: function () { return classifier_1.createClassifier; } });
74
74
  Object.defineProperty(exports, "multiClassify", { enumerable: true, get: function () { return classifier_1.multiClassify; } });
75
+ // Export extraction utilities
76
+ var extraction_1 = require("./toolsLibrary/extraction");
77
+ Object.defineProperty(exports, "extract", { enumerable: true, get: function () { return extraction_1.extract; } });
78
+ Object.defineProperty(exports, "createExtractor", { enumerable: true, get: function () { return extraction_1.createExtractor; } });
75
79
  // Export event types
76
80
  var AgentEvents_1 = require("./events/AgentEvents");
77
81
  Object.defineProperty(exports, "AgentEvents", { enumerable: true, get: function () { return AgentEvents_1.AgentEvents; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAgC;AAW9B,sFAXO,aAAK,OAWP;AAVP,sDAA8B;AAW5B,iBAXK,gBAAM,CAWL;AAVR,2CAAwC;AAWtC,uFAXO,eAAM,OAWP;AAVR,yFAAsF;AAWpF,uGAXO,+CAAsB,OAWP;AAVxB,iDAAyE;AAWvE,2FAXO,kBAAU,OAWP;AACV,4FAZmB,mBAAW,OAYnB;AACX,wFAbgC,eAAO,OAahC;AAZT,yDAAyE;AAavE,2FAbO,mBAAU,OAaP;AACV,8FAdmB,sBAAa,OAcnB;AAbf,+EAA4E;AAc1E,kGAdO,qCAAiB,OAcP;AAbnB,4EAAqF;AAcnF,kHAdO,yDAAiC,OAcP;AAGnC,6BAA6B;AAC7B,uEAAsE;AAA7D,oHAAA,gBAAgB,OAAA;AACzB,qEAA0E;AAAjE,wHAAA,qBAAqB,OAAA;AAyB9B,mDAQ6B;AAP3B,uGAAA,QAAQ,OAAA;AACR,0GAAA,WAAW,OAAA;AACX,uGAAA,QAAQ,OAAA;AAER,kHAAA,mBAAmB,OAAA;AAEnB,gHAAA,iBAAiB,OAAA;AAInB,gCAAgC;AAChC,4FAA+G;AAAtG,uHAAA,iBAAiB,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAO/C,mDAO6B;AAD3B,0GAAA,WAAW,OAAA;AAKb,gDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAEhB,uBAAuB;AACvB,+DAA+C;AAE/C,8BAA8B;AAC9B,wDAAsF;AAA7E,sGAAA,QAAQ,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,2GAAA,aAAa,OAAA;AAGlD,qBAAqB;AACrB,oDAAmD;AAA1C,0GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAgC;AAW9B,sFAXO,aAAK,OAWP;AAVP,sDAA8B;AAW5B,iBAXK,gBAAM,CAWL;AAVR,2CAAwC;AAWtC,uFAXO,eAAM,OAWP;AAVR,yFAAsF;AAWpF,uGAXO,+CAAsB,OAWP;AAVxB,iDAAyE;AAWvE,2FAXO,kBAAU,OAWP;AACV,4FAZmB,mBAAW,OAYnB;AACX,wFAbgC,eAAO,OAahC;AAZT,yDAAyE;AAavE,2FAbO,mBAAU,OAaP;AACV,8FAdmB,sBAAa,OAcnB;AAbf,+EAA4E;AAc1E,kGAdO,qCAAiB,OAcP;AAbnB,4EAAqF;AAcnF,kHAdO,yDAAiC,OAcP;AAGnC,6BAA6B;AAC7B,uEAAsE;AAA7D,oHAAA,gBAAgB,OAAA;AACzB,qEAA0E;AAAjE,wHAAA,qBAAqB,OAAA;AAyB9B,mDAQ6B;AAP3B,uGAAA,QAAQ,OAAA;AACR,0GAAA,WAAW,OAAA;AACX,uGAAA,QAAQ,OAAA;AAER,kHAAA,mBAAmB,OAAA;AAEnB,gHAAA,iBAAiB,OAAA;AAInB,gCAAgC;AAChC,4FAA+G;AAAtG,uHAAA,iBAAiB,OAAA;AAAE,yHAAA,mBAAmB,OAAA;AAO/C,mDAO6B;AAD3B,0GAAA,WAAW,OAAA;AAKb,gDAA+C;AAAtC,kGAAA,OAAO,OAAA;AAEhB,uBAAuB;AACvB,+DAA+C;AAE/C,8BAA8B;AAC9B,wDAAsF;AAA7E,sGAAA,QAAQ,OAAA;AAAE,8GAAA,gBAAgB,OAAA;AAAE,2GAAA,aAAa,OAAA;AAGlD,8BAA8B;AAC9B,wDAAqE;AAA5D,qGAAA,OAAO,OAAA;AAAE,6GAAA,eAAe,OAAA;AAGjC,qBAAqB;AACrB,oDAAmD;AAA1C,0GAAA,WAAW,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"addBrowserTaskNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAM7E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,gCAAuC,wBAAwB,kBA8K7F,CAAC"}
1
+ {"version":3,"file":"addBrowserTaskNode.d.ts","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAY,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAM7E,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,KAAK,wBAAwB,GAAG;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,kBAAkB,gCAAuC,wBAAwB,kBA4K7F,CAAC"}
@@ -70,8 +70,6 @@ const addBrowserTaskNode = async ({ graph, node, agent, llm }) => {
70
70
  const compiledPrompt = (0, compilePrompt_1.compilePrompt)(node.prompt, promptParams);
71
71
  // Build the full prompt with compiled content
72
72
  const fullPrompt = `
73
- Follow the instructions. Any retrieved data should be printed as string and not saved to a file.
74
-
75
73
  # Task instructions:
76
74
  ${compiledPrompt}
77
75
 
@@ -1 +1 @@
1
- {"version":3,"file":"addBrowserTaskNode.js","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addBrowserTaskNode.js","sourceRoot":"","sources":["../../src/nodes/addBrowserTaskNode.ts"],"names":[],"mappings":";;;AACA,sDAAiE;AAGjE,4CAAyC;AACzC,8CAAqD;AACrD,uDAAoE;AACpE,+BAAoC;AAEpC,0EAAyE;AACzE,iDAA8D;AAC9D,6BAAwB;AAExB,mDAAgD;AAChD,sDAA0D;AASnD,MAAM,kBAAkB,GAAG,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAA4B,EAAE,EAAE;IAChG,MAAM,QAAQ,GAAiB,KAAK,EAAE,KAAmC,EAAE,EAAE;QAC3E,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,+BAA+B,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5E,qCAAqC;QACrC,MAAM,YAAY,GAAiC,EAAE,CAAC;QACtD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,WAAyB,CAAC;gBAE9B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5B,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC;gBAC3B,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,oBAAoB;gBAChD,CAAC;gBAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtB,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxD,CAAC;gBAED,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;oBAC7B,WAAW,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACvC,CAAC;gBAED,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,OAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEzC,wBAAwB;QACxB,MAAM,IAAI,GAAG,IAAA,YAAa,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YACpC,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,IAAA,4BAAgB,EAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAA,6BAAa,EAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEjI,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,iBAAiB,GAAc,MAAM,GAAG;iBAC3C,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE;gBACjB,WAAW,EAAE,IAAI,CAAC,IAAI;aACvB,CAAC;iBACD,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,wBAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,KAAK,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5E,IAAI,CAAC,iBAAiB,CAAC,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/E,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAExC,4CAA4C;YAC5C,MAAM,YAAY,GAAG;gBACnB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;aAClD,CAAC;YAEF,qCAAqC;YACrC,MAAM,cAAc,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAEhE,8CAA8C;YAC9C,MAAM,UAAU,GAAG;;EAEvB,cAAc;;EAEd,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAE5G,sCAAsC;YACtC,MAAM,OAAO,GAAG,MAAM,IAAA,yCAAoB,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAEpE,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC/E,CAAC;YAED,wCAAwC;YACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;YAExD,eAAM,CAAC,KAAK,CAAC;gBACX,GAAG,EAAE,yBAAyB;gBAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW;gBACjC,SAAS;gBACT,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;aAC9B,CAAC,CAAC;YAEH,oDAAoD;YACpD,MAAM,eAAe,GAAG;gBACtB,GAAG,QAAQ;gBACX,IAAI,EAAE;oBACJ,GAAG,WAAW;oBACd,MAAM,EAAE,UAAU;iBACnB;aACF,CAAC;YAEF,MAAM,kBAAkB,GAAG,IAAI,oBAAS,CAAC;gBACvC,EAAE,EAAE,iBAAiB,CAAC,EAAE;gBACxB,OAAO,EAAE,iBAAiB,CAAC,OAAO;gBAClC,UAAU,EAAE,CAAC,eAAe,CAAC;gBAC7B,iBAAiB,EAAE;oBACjB,cAAc,EAAE;wBACd,QAAQ,EAAE,sBAAQ,CAAC,YAAY;wBAC/B,eAAe,EAAE,IAAI,CAAC,WAAW;wBACjC,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,SAAS;wBACT,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;wBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;qBAChC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;oBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;oBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;oBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE;oBAC7E,UAAU,EAAE,CAAC,kBAAkB,CAAC,EAAG,CAAC;iBACrC,CAAC;gBACF,QAAQ,EAAE,CAAC,kBAAkB,CAAC;aAC/B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,eAAM,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;YAE/E,MAAM,cAAc,GAAG,IAAA,SAAM,GAAE,CAAC;YAChC,MAAM,eAAe,GAAG,IAAA,SAAM,GAAE,CAAC;YAEjC,MAAM,kBAAkB,GAAG,IAAI,oBAAS,CAAC;gBACvC,EAAE,EAAE,cAAc;gBAClB,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE;oBACV;wBACE,EAAE,EAAE,eAAe;wBACnB,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE;4BACJ,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB;qBACF;iBACF;gBACD,iBAAiB,EAAE;oBACjB,cAAc,EAAE;wBACd,QAAQ,EAAE,sBAAQ,CAAC,YAAY;wBAC/B,eAAe,EAAE,IAAI,CAAC,WAAW;wBACjC,KAAK,EAAE,KAAK,CAAC,OAAO;wBACpB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;wBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;qBAChC;iBACF;aACF,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,IAAA,2BAAiB,EAAc,KAAK,CAAC,OAAO,EAAE;oBACrD,IAAI,EAAE,sBAAQ,CAAC,YAAY;oBAC3B,MAAM,EAAE,IAAI,CAAC,IAAI;oBACjB,eAAe,EAAE,IAAI,CAAC,WAAW;oBACjC,GAAG,EAAE,KAAK;oBACV,UAAU,EAAE,CAAC,cAAc,CAAC;iBAC7B,CAAC;gBACF,QAAQ,EAAE,CAAC,kBAAkB,CAAC;aAC/B,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC,CAAC;AA5KW,QAAA,kBAAkB,sBA4K7B"}
@@ -130,8 +130,8 @@ const connect = async (token) => {
130
130
  ready = true;
131
131
  checkReady();
132
132
  });
133
- socket.on('connect_error', () => {
134
- logger_1.logger.error({ msg: 'Failed to connect to minded platform' });
133
+ socket.on('connect_error', (err) => {
134
+ logger_1.logger.error({ msg: 'Failed to connect to minded platform', err: err.message });
135
135
  reject(new Error('Failed to connect to minded platform'));
136
136
  });
137
137
  socket.on('disconnect', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"mindedConnection.js","sourceRoot":"","sources":["../../src/platform/mindedConnection.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAA8C;AAE9C,qCAAoC;AACpC,qCAAqC;AACrC,4CAAyC;AACzC,wCAAqC;AACrC,gEAAkD;AAElD,+BAA+B;AAC/B,IAAI,MAAM,GAAkB,IAAI,CAAC;AACjC,MAAM,SAAS,GAEX,EAAE,CAAC;AAEA,MAAM,WAAW,GAAG,GAAY,EAAE;;IACvC,OAAO,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,KAAK,CAAC;AACpC,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEK,MAAM,EAAE,GAAG,CAChB,KAAQ,EACR,QAAmE,EACnE,EAAE;IACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;IACxB,CAAC;IACD,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC,CAAC;AARW,QAAA,EAAE,MAQb;AAEK,MAAM,IAAI,GAAG,CAAuD,KAAQ,EAAE,OAAgD,EAAE,EAAE;IACvI,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,IAAI,QAIf;AAEK,MAAM,SAAS,GAAG,KAAK,EAAQ,KAAwC,EAAE,OAAU,EAAE,YAAoB,IAAI,EAAc,EAAE;IAClI,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,iBAAiB,EAAE,CAAC;IAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,iBAAiB;QACjB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,SAAS,mBAAmB,KAAK,GAAG,CAAC,CAAC,CAAC;QAC3F,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,qCAAqC;QACrC,MAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAA,mBAAS,EAAC,OAAO,CAAC,EAAE,CAAC,QAAa,EAAE,EAAE;YACxD,YAAY,CAAC,OAAO,CAAC,CAAC;YAEtB,2CAA2C;YAC3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAzBW,QAAA,SAAS,aAyBpB;AAEF,MAAM,iBAAiB,GAAG,KAAK,IAAmB,EAAE;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,OAAO,CAAC,IAAA,mBAAW,GAAE,EAAE,CAAC;QACtB,MAAM,IAAA,WAAI,EAAC,QAAQ,CAAC,CAAC;QACrB,GAAG,IAAI,QAAQ,CAAC;QAChB,IAAI,GAAG,GAAG,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,GAAW,EAAE;IACjC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,WAAM,CAAC;QACP,eAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,KAAa,EAAiB,EAAE;IACrD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAA,kBAAS,GAAE,CAAC;IACjD,eAAM,CAAC,IAAI,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IACzD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,MAAM,GAAG,IAAA,qBAAE,EAAC,OAAO,EAAE;YACnB,IAAI,EAAE,iBAAiB;YACvB,KAAK,EAAE;gBACL,eAAe,EAAE,UAAU;gBAC3B,KAAK;gBACL,WAAW,EAAE,GAAG;gBAChB,UAAU,EAAE,aAAa,EAAE;aAC5B;SACF,CAAC,CAAC;QAEH,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAAG,KAAK,CAAC;QAElB,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;gBACvB,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,0DAA0D,EAAE,CAAC,CAAC;gBACjF,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,iCAAiC,EAAE,CAAC,CAAC;gBACxD,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF,4BAA4B;QAC5B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACxB,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,+CAA+C,EAAE,CAAC,CAAC;YACtE,SAAS,GAAG,IAAI,CAAC;YACjB,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,qCAAqC;QACrC,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,IAA0C,EAAE,EAAE;YAC3E,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,8BAA8B,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,KAAK,GAAG,IAAI,CAAC;YACb,UAAU,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YAC9B,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,sCAAsC,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,0CAA0C,EAAE,CAAC,CAAC;YACjE,SAAS,GAAG,KAAK,CAAC;YAClB,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE;YACtD,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;YAE9C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC5C,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;gBAEtC,4BAA4B;gBAC5B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,CAAC;oBACtB,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,CAAC;gBAED,8BAA8B;gBAC9B,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,oCAAoC;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YACxC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrB,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;oBACpC,IAAI,QAAQ,EAAE,CAAC;wBACb,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,8BAA8B,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAE,CAAC;gBACtB,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,CAAC,CAAC;gBAC3C,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,KAAK,IAAmB,EAAE;IAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC,CAAC;AANW,QAAA,KAAK,SAMhB;AAEK,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,oCAAoC,EAAE,CAAC,CAAC;QAC3D,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,uCAAuC,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO;IACT,CAAC;IAED,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gCAAgC,EAAE,CAAC,CAAC;AACzD,CAAC,CAAC;AAbW,QAAA,UAAU,cAarB;AAEW,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAX,mBAAW;IACX,EAAE,EAAF,UAAE;IACF,IAAI,EAAJ,YAAI;IACJ,SAAS,EAAT,iBAAS;IACT,KAAK,EAAL,aAAK;CACN,CAAC"}
1
+ {"version":3,"file":"mindedConnection.js","sourceRoot":"","sources":["../../src/platform/mindedConnection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { z } from 'zod';
2
+ import { Tool } from '../types/Tools.types';
3
+ import { BaseLanguageModel } from '@langchain/core/language_models/base';
4
+ export type ExtractionSchema = z.ZodTypeAny;
5
+ export interface ExtractionConfig {
6
+ schema: ExtractionSchema;
7
+ systemPrompt?: string;
8
+ examples?: Array<{
9
+ input: string;
10
+ output?: any;
11
+ }>;
12
+ defaultValue?: any;
13
+ maxRetries?: number;
14
+ strictMode?: boolean;
15
+ }
16
+ export type ExtractionResult = z.infer<ExtractionSchema>;
17
+ /**
18
+ * Generic extraction utility that can be used standalone
19
+ *
20
+ * When strictMode is true:
21
+ * - If the LLM supports withStructuredOutput, it will use that for guaranteed schema compliance
22
+ * - Otherwise, it falls back to JSON parsing with Zod validation and retries
23
+ *
24
+ * When strictMode is false:
25
+ * - Uses JSON parsing without validation for more flexibility
26
+ *
27
+ * @param content The content to extract from
28
+ * @param config The extraction configuration
29
+ * @param llm The language model to use for extraction
30
+ * @param attemptNumber Current attempt number (used internally for retries)
31
+ * @returns The extraction result
32
+ */
33
+ export declare function extract(content: string, config: ExtractionConfig, llm: BaseLanguageModel, attemptNumber?: number): Promise<ExtractionResult>;
34
+ /**
35
+ * Create a simple extractor for common use cases
36
+ * @param schemaOrPrompt Either a Zod schema or a simple prompt string
37
+ * @param options Additional configuration options
38
+ * @returns A configured extract function
39
+ */
40
+ export declare function createExtractor(schemaOrPrompt: ExtractionSchema | string, options?: Partial<ExtractionConfig>): (content: string, llm: BaseLanguageModel) => Promise<any>;
41
+ export declare const schema: z.ZodObject<{
42
+ content: z.ZodString;
43
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
44
+ systemPrompt: z.ZodOptional<z.ZodString>;
45
+ examples: z.ZodOptional<z.ZodArray<z.ZodObject<{
46
+ input: z.ZodString;
47
+ output: z.ZodAny;
48
+ }, "strip", z.ZodTypeAny, {
49
+ input: string;
50
+ output?: any;
51
+ }, {
52
+ input: string;
53
+ output?: any;
54
+ }>, "many">>;
55
+ strictMode: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
56
+ maxRetries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
+ defaultValue: z.ZodOptional<z.ZodAny>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ maxRetries: number;
60
+ content: string;
61
+ strictMode: boolean;
62
+ schema?: Record<string, any> | undefined;
63
+ systemPrompt?: string | undefined;
64
+ examples?: {
65
+ input: string;
66
+ output?: any;
67
+ }[] | undefined;
68
+ defaultValue?: any;
69
+ }, {
70
+ content: string;
71
+ maxRetries?: number | undefined;
72
+ schema?: Record<string, any> | undefined;
73
+ systemPrompt?: string | undefined;
74
+ examples?: {
75
+ input: string;
76
+ output?: any;
77
+ }[] | undefined;
78
+ defaultValue?: any;
79
+ strictMode?: boolean | undefined;
80
+ }>;
81
+ declare const extractionTool: Tool<typeof schema, any>;
82
+ export default extractionTool;
83
+ //# sourceMappingURL=extraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction.d.ts","sourceRoot":"","sources":["../../src/toolsLibrary/extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAYzE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,UAAU,CAAC;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AA0EzD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,iBAAiB,EACtB,aAAa,GAAE,MAAU,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA+G3B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,gBAAgB,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,aAoB3F,MAAM,OAAO,iBAAiB,kBAChD;AAGD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBjB,CAAC;AAEH,QAAA,MAAM,cAAc,EAAE,IAAI,CAAC,OAAO,MAAM,EAAE,GAAG,CA4G5C,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.schema = void 0;
4
+ exports.extract = extract;
5
+ exports.createExtractor = createExtractor;
6
+ const zod_1 = require("zod");
7
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
8
+ const logger_1 = require("../utils/logger");
9
+ const output_parsers_1 = require("@langchain/core/output_parsers");
10
+ const messages_1 = require("@langchain/core/messages");
11
+ function supportsStructuredOutput(llm) {
12
+ return 'withStructuredOutput' in llm && typeof llm.withStructuredOutput === 'function';
13
+ }
14
+ // Default configuration
15
+ const DEFAULT_CONFIG = {
16
+ maxRetries: 3,
17
+ strictMode: true,
18
+ };
19
+ /**
20
+ * Convert Zod schema to JSON schema format for prompt
21
+ */
22
+ function schemaToJsonFormat(schema) {
23
+ // Use zod-to-json-schema for robust conversion
24
+ const jsonSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(schema, {
25
+ target: 'openApi3',
26
+ $refStrategy: 'none', // Inline all references for simpler prompts
27
+ });
28
+ // Remove the $schema property for cleaner output
29
+ if (typeof jsonSchema === 'object' && jsonSchema !== null && '$schema' in jsonSchema) {
30
+ delete jsonSchema.$schema;
31
+ }
32
+ return JSON.stringify(jsonSchema, null, 2);
33
+ }
34
+ /**
35
+ * Build prompt with schema for JSON parsing mode
36
+ */
37
+ function buildPromptWithSchema(basePrompt, schema, examples, content) {
38
+ const schemaDescription = schemaToJsonFormat(schema);
39
+ let prompt = `${basePrompt}\n\nExpected JSON format:\n${schemaDescription}\n\n`;
40
+ // Add examples if provided
41
+ if (examples && examples.length > 0) {
42
+ prompt += 'Examples:\n';
43
+ for (const example of examples) {
44
+ prompt += `Input: ${example.input}\nOutput: ${JSON.stringify(example.output)}\n\n`;
45
+ }
46
+ }
47
+ prompt += 'Return ONLY valid JSON that matches the schema. No additional text or explanation.\n\n';
48
+ prompt += `Content to extract from:\n${content}`;
49
+ return prompt;
50
+ }
51
+ /**
52
+ * Validate extraction result against Zod schema
53
+ */
54
+ function validateResult(result, schema) {
55
+ try {
56
+ // Use Zod's built-in validation
57
+ schema.parse(result);
58
+ return { valid: true, errors: [] };
59
+ }
60
+ catch (error) {
61
+ if (error instanceof zod_1.z.ZodError) {
62
+ // Extract error messages from Zod validation
63
+ const errors = error.errors.map((err) => {
64
+ const path = err.path.join('.');
65
+ return path ? `${path}: ${err.message}` : err.message;
66
+ });
67
+ return { valid: false, errors };
68
+ }
69
+ // Handle non-Zod errors
70
+ return { valid: false, errors: [error instanceof Error ? error.message : 'Unknown validation error'] };
71
+ }
72
+ }
73
+ /**
74
+ * Generic extraction utility that can be used standalone
75
+ *
76
+ * When strictMode is true:
77
+ * - If the LLM supports withStructuredOutput, it will use that for guaranteed schema compliance
78
+ * - Otherwise, it falls back to JSON parsing with Zod validation and retries
79
+ *
80
+ * When strictMode is false:
81
+ * - Uses JSON parsing without validation for more flexibility
82
+ *
83
+ * @param content The content to extract from
84
+ * @param config The extraction configuration
85
+ * @param llm The language model to use for extraction
86
+ * @param attemptNumber Current attempt number (used internally for retries)
87
+ * @returns The extraction result
88
+ */
89
+ async function extract(content, config, llm, attemptNumber = 0) {
90
+ const mergedConfig = { ...DEFAULT_CONFIG, ...config };
91
+ try {
92
+ const basePrompt = mergedConfig.systemPrompt || 'Extract structured information from the given content:';
93
+ let result;
94
+ if (mergedConfig.strictMode) {
95
+ // Use structured output when strict mode is enabled
96
+ try {
97
+ // Check if the LLM supports structured output
98
+ if (supportsStructuredOutput(llm)) {
99
+ // When using withStructuredOutput, we don't need to include the schema in the prompt
100
+ // The LLM already knows the structure from the withStructuredOutput method
101
+ let prompt = basePrompt;
102
+ // Add examples if provided (still useful for context)
103
+ if (mergedConfig.examples && mergedConfig.examples.length > 0) {
104
+ prompt += '\n\nExamples:\n';
105
+ for (const example of mergedConfig.examples) {
106
+ prompt += `Input: ${example.input}\nOutput: ${JSON.stringify(example.output)}\n\n`;
107
+ }
108
+ }
109
+ prompt += `\n\nContent to extract from:\n${content}`;
110
+ const structuredLLM = llm.withStructuredOutput(mergedConfig.schema);
111
+ const messages = [new messages_1.SystemMessage(prompt)];
112
+ result = await structuredLLM.invoke(messages);
113
+ // The result should already be validated by withStructuredOutput
114
+ return result;
115
+ }
116
+ else {
117
+ // Fallback to JSON parser with validation if withStructuredOutput is not available
118
+ logger_1.logger.info({
119
+ message: 'LLM does not support withStructuredOutput, falling back to JSON parser with validation',
120
+ });
121
+ // For JSON parsing mode, we need to include the schema in the prompt
122
+ const prompt = buildPromptWithSchema(basePrompt, mergedConfig.schema, mergedConfig.examples, content);
123
+ const parser = new output_parsers_1.JsonOutputParser();
124
+ const messages = [new messages_1.SystemMessage(prompt)];
125
+ result = await llm.pipe(parser).invoke(messages);
126
+ // Validate the result
127
+ const validation = validateResult(result, mergedConfig.schema);
128
+ if (!validation.valid && attemptNumber < (mergedConfig.maxRetries || 3)) {
129
+ logger_1.logger.warn({
130
+ message: 'Extraction validation failed, retrying',
131
+ errors: validation.errors,
132
+ attempt: attemptNumber + 1,
133
+ });
134
+ // Add validation errors to prompt for retry
135
+ const retryConfig = {
136
+ ...config,
137
+ systemPrompt: `${basePrompt}\n\nPrevious attempt had these errors:\n${validation.errors.join('\n')}\n\nPlease correct these issues and provide valid JSON.`,
138
+ };
139
+ return extract(content, retryConfig, llm, attemptNumber + 1);
140
+ }
141
+ else if (!validation.valid) {
142
+ logger_1.logger.error({
143
+ message: 'Extraction validation failed after max retries',
144
+ errors: validation.errors,
145
+ });
146
+ if (mergedConfig.defaultValue) {
147
+ return mergedConfig.defaultValue;
148
+ }
149
+ throw new Error(`Extraction validation failed: ${validation.errors.join(', ')}`);
150
+ }
151
+ }
152
+ }
153
+ catch (err) {
154
+ // If structured output fails, retry with adjusted config
155
+ if (attemptNumber < (mergedConfig.maxRetries || 3)) {
156
+ logger_1.logger.warn({
157
+ message: 'Structured output failed, retrying',
158
+ error: err instanceof Error ? err.message : 'Unknown error',
159
+ attempt: attemptNumber + 1,
160
+ });
161
+ return extract(content, config, llm, attemptNumber + 1);
162
+ }
163
+ else {
164
+ throw err;
165
+ }
166
+ }
167
+ }
168
+ else {
169
+ // Non-strict mode: use JSON parser without validation
170
+ const prompt = buildPromptWithSchema(basePrompt, mergedConfig.schema, mergedConfig.examples, content);
171
+ const parser = new output_parsers_1.JsonOutputParser();
172
+ const messages = [new messages_1.SystemMessage(prompt)];
173
+ result = await llm.pipe(parser).invoke(messages);
174
+ }
175
+ return result;
176
+ }
177
+ catch (err) {
178
+ logger_1.logger.error({ message: 'Extraction failed', err });
179
+ if (mergedConfig.defaultValue) {
180
+ return mergedConfig.defaultValue;
181
+ }
182
+ throw err;
183
+ }
184
+ }
185
+ /**
186
+ * Create a simple extractor for common use cases
187
+ * @param schemaOrPrompt Either a Zod schema or a simple prompt string
188
+ * @param options Additional configuration options
189
+ * @returns A configured extract function
190
+ */
191
+ function createExtractor(schemaOrPrompt, options) {
192
+ let config;
193
+ if (typeof schemaOrPrompt === 'string') {
194
+ // Simple prompt-based extraction - create a Zod schema for a single string result
195
+ config = {
196
+ schema: zod_1.z.object({
197
+ result: zod_1.z.string().describe('The extracted result'),
198
+ }),
199
+ systemPrompt: schemaOrPrompt,
200
+ ...options,
201
+ };
202
+ }
203
+ else {
204
+ // Schema-based extraction
205
+ config = {
206
+ schema: schemaOrPrompt,
207
+ ...options,
208
+ };
209
+ }
210
+ return (content, llm) => extract(content, config, llm);
211
+ }
212
+ // Schema for the extraction tool
213
+ exports.schema = zod_1.z.object({
214
+ content: zod_1.z.string().describe('The content to extract information from'),
215
+ schema: zod_1.z.record(zod_1.z.any()).optional().describe('Extraction schema defining the structure of data to extract'),
216
+ systemPrompt: zod_1.z.string().optional().describe('Custom system prompt for extraction'),
217
+ examples: zod_1.z
218
+ .array(zod_1.z.object({
219
+ input: zod_1.z.string(),
220
+ output: zod_1.z.any(),
221
+ }))
222
+ .optional()
223
+ .describe('Examples to guide the extraction'),
224
+ strictMode: zod_1.z.boolean().optional().default(true).describe('Whether to validate the extraction against the schema'),
225
+ maxRetries: zod_1.z.number().optional().default(3).describe('Maximum number of retries if validation fails'),
226
+ defaultValue: zod_1.z.any().optional().describe('Default value to return if extraction fails'),
227
+ });
228
+ const extractionTool = {
229
+ name: 'minded-extraction',
230
+ description: 'Extract structured data from unstructured text using AI. Supports custom Zod schemas, validation, examples, and retries. When strictMode is enabled, uses LLM structured output (if available) for guaranteed schema compliance. Perfect for extracting specific information like country codes, emails, dates, or any custom data structure.',
231
+ input: exports.schema,
232
+ isGlobal: false,
233
+ execute: async ({ input, state, agent }) => {
234
+ const { content, schema: inputSchema, systemPrompt, examples, strictMode, maxRetries, defaultValue } = input;
235
+ logger_1.logger.info({
236
+ message: 'Extracting structured data',
237
+ sessionId: state.sessionId,
238
+ contentLength: content.length,
239
+ hasSchema: !!inputSchema,
240
+ });
241
+ // Convert input schema to Zod schema if provided
242
+ let extractionSchema;
243
+ if (inputSchema) {
244
+ // Build a Zod schema from the input schema object
245
+ const zodShape = {};
246
+ for (const [key, value] of Object.entries(inputSchema)) {
247
+ if (typeof value === 'object' && value !== null) {
248
+ const fieldConfig = value;
249
+ let zodType;
250
+ // Create appropriate Zod type based on the field configuration
251
+ if (fieldConfig.type === 'string') {
252
+ zodType = zod_1.z.string();
253
+ }
254
+ else if (fieldConfig.type === 'number') {
255
+ zodType = zod_1.z.number();
256
+ }
257
+ else if (fieldConfig.type === 'boolean') {
258
+ zodType = zod_1.z.boolean();
259
+ }
260
+ else if (fieldConfig.type === 'array') {
261
+ zodType = zod_1.z.array(zod_1.z.any());
262
+ }
263
+ else if (fieldConfig.type === 'object') {
264
+ zodType = zod_1.z.object({});
265
+ }
266
+ else {
267
+ // Default to string if type not specified
268
+ zodType = zod_1.z.string();
269
+ }
270
+ // Add description if available
271
+ if (fieldConfig.description) {
272
+ zodType = zodType.describe(fieldConfig.description);
273
+ }
274
+ // Handle optional fields
275
+ if (fieldConfig.required === false) {
276
+ zodType = zodType.optional();
277
+ }
278
+ zodShape[key] = zodType;
279
+ }
280
+ else {
281
+ // Default to string for simple values
282
+ zodShape[key] = zod_1.z.string();
283
+ }
284
+ }
285
+ extractionSchema = zod_1.z.object(zodShape);
286
+ }
287
+ else {
288
+ // Default schema if none provided
289
+ extractionSchema = zod_1.z.object({
290
+ result: zod_1.z.string().describe('The extracted result'),
291
+ });
292
+ }
293
+ const config = {
294
+ schema: extractionSchema,
295
+ systemPrompt,
296
+ examples,
297
+ strictMode,
298
+ maxRetries,
299
+ defaultValue,
300
+ };
301
+ try {
302
+ const result = await extract(content, config, agent.llm);
303
+ logger_1.logger.info({
304
+ message: 'Extraction completed',
305
+ sessionId: state.sessionId,
306
+ resultKeys: Object.keys(result),
307
+ });
308
+ return {
309
+ result,
310
+ state: {
311
+ memory: {
312
+ lastExtraction: {
313
+ content: content.substring(0, 100) + (content.length > 100 ? '...' : ''),
314
+ result,
315
+ timestamp: new Date().toISOString(),
316
+ },
317
+ },
318
+ },
319
+ };
320
+ }
321
+ catch (err) {
322
+ logger_1.logger.error({
323
+ message: 'Extraction failed',
324
+ sessionId: state.sessionId,
325
+ err,
326
+ });
327
+ throw err;
328
+ }
329
+ },
330
+ };
331
+ exports.default = extractionTool;
332
+ //# sourceMappingURL=extraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraction.js","sourceRoot":"","sources":["../../src/toolsLibrary/extraction.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import * as parseDocument from './parseDocument';
2
2
  import * as classifier from './classifier';
3
+ import * as extraction from './extraction';
3
4
  export declare const tools: {
4
5
  'minded-parse-documents': typeof parseDocument;
5
6
  'minded-classifier': typeof classifier;
7
+ 'minded-extraction': typeof extraction;
6
8
  };
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/toolsLibrary/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAG3C,eAAO,MAAM,KAAK;;;CAGjB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/toolsLibrary/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAG3C,eAAO,MAAM,KAAK;;;;CAIjB,CAAC"}
@@ -26,9 +26,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.tools = void 0;
27
27
  const parseDocument = __importStar(require("./parseDocument"));
28
28
  const classifier = __importStar(require("./classifier"));
29
+ const extraction = __importStar(require("./extraction"));
29
30
  // Export all tools as a collection for easy discovery
30
31
  exports.tools = {
31
32
  'minded-parse-documents': parseDocument,
32
33
  'minded-classifier': classifier,
34
+ 'minded-extraction': extraction,
33
35
  };
34
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolsLibrary/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAiD;AACjD,yDAA2C;AAE3C,sDAAsD;AACzC,QAAA,KAAK,GAAG;IACnB,wBAAwB,EAAE,aAAa;IACvC,mBAAmB,EAAE,UAAU;CAChC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolsLibrary/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAAiD;AACjD,yDAA2C;AAC3C,yDAA2C;AAE3C,sDAAsD;AACzC,QAAA,KAAK,GAAG;IACnB,wBAAwB,EAAE,aAAa;IACvC,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,UAAU;CAChC,CAAC"}
package/docs/SUMMARY.md CHANGED
@@ -31,12 +31,13 @@
31
31
 
32
32
  - [Secrets](platform/secrets.md)
33
33
  - [PII Masking](platform/pii-masking.md)
34
- - [Browser Task](platform/browserTask.md)
34
+ - [Operator](platform/operator.md)
35
35
 
36
36
  ## Tooling
37
37
 
38
38
  - [Timers](tooling/timers.md)
39
39
  - [Document Processing](tooling/document-processing.md)
40
+ - [Data Extraction](tooling/extraction.md)
40
41
  - [Classifier](tooling/classifier.md)
41
42
 
42
43
  ## Integrations
@@ -1,6 +1,6 @@
1
- ## Browser Task
1
+ ## Operator (AI Browser)
2
2
 
3
- The Browser Task lets an agent run autonomous web actions using a live Chromium, guided by an LLM of choice. It supports structured inputs/outputs, live view previews, optional country proxying, and an on-prem mode.
3
+ The Operator lets an agent run autonomous web actions using a live Chromium, guided by an LLM of choice. It supports structured inputs/outputs, live view previews, optional country proxying, and an on-prem mode.
4
4
 
5
5
  ### What it does
6
6
  - **Plans + Executes**: The node first asks the LLM to propose parameters (based on your input schema) and compiles your prompt. It then starts a browser session and runs the task to completion.
@@ -21,6 +21,8 @@ The Browser Task lets an agent run autonomous web actions using a live Chromium,
21
21
 
22
22
  By default, the browser agent runs on the cloud. For customers who want to run the browser agent on their own infrastructure & network, on-prem mode is supported out of the box by running the on-prem kit on a PC / cloud VM.
23
23
 
24
+ Please contact us to assist you with on-prem setup at support@minded.com.
25
+
24
26
  #### How it works
25
27
 
26
28
  The on-prem kit acts as a CDP server that launches chromium locally and exposes the protocol via websocket to the Minded backend service thus while the browser agent runs on the cloud, the browser is running locally inside the customer's network allowing it to access internet services without whitelisting.
@@ -38,18 +40,21 @@ docker run --name --pull minded-browser-onprem -e AGENT_ID=[Agent ID] public.ecr
38
40
 
39
41
  The browser agent can be configured to use a proxy server. This is useful when the browser agent needs to access the internet through a proxy server. Enable the proxy in the node configuration (proxy: 'UK').
40
42
 
43
+ ### MFA
44
+
45
+ The browser agent can be configured to use MFA. Currently TOTP is supported out of the box for MFA login flow.
41
46
 
42
47
  ### Tools
43
48
 
44
- Browser Tasks can leverage **tools**—reusable functions that the agent can call during a browser session to perform specific actions (e.g., extract data, interact with APIs, update memory, etc.). Tools are defined using the platform’s [Tool interface](../low-code-editor/tools.md), and can be made available to the browser agent for use within your browser task flows.
49
+ Operators can leverage **tools**—reusable functions that the agent can call during a browser session to perform specific actions (e.g., extract data, interact with APIs, update memory, etc.). Tools are defined using the platform’s [Tool interface](../low-code-editor/tools.md), and can be made available to the browser agent for use within your browser task flows.
45
50
 
46
- #### How tools work in browser tasks
51
+ #### How tools work in operators
47
52
 
48
53
  - **Tool calls**: During a browser task, the LLM can decide to call any tool that is registered and exposed to the agent. The tool receives validated input, the current state, and the agent instance.
49
54
  - **Structured input/output**: Tools use Zod schemas for input validation and can return structured results, which are sent back to the LLM and/or merged into agent memory.
50
55
  - **Tools available to browser tasks**: Tools marked as `allowExecutionRequests: true` are available to all nodes, including browser tasks.
51
56
 
52
- #### Tool execution in browser tasks
57
+ #### Tool execution in operators
53
58
  You can mention tool names in your browser task prompt to encourage the LLM to use them, or let the LLM decide when to call them based on context.
54
59
 
55
60
  When the LLM calls a tool during a browser task:
@@ -65,7 +70,7 @@ For more on tool structure and best practices, see [Tools documentation](../low-
65
70
  You can manipulate the browser using a package of choice (e.g. puppeteer, playwright, etc.) by using the CDP URL that is passed to the tool in the state object.
66
71
 
67
72
 
68
- ### Browser task node example
73
+ ### Operator node example
69
74
  ```yaml
70
75
  # Flow YAML snippet illustrating a browserTask node
71
76
  - name: 444f2347-dcc0-4c4e-b0af-3743033c8f5e
@@ -0,0 +1,78 @@
1
+ # Data Extraction
2
+
3
+ MindedJS provides a powerful AI-based extraction tool for extracting structured data from unstructured text. The extraction system uses LLM capabilities to parse content and return data in a predefined format.
4
+
5
+ ## Overview
6
+
7
+ The extraction tool (`minded-extraction`) enables you to extract specific information from text using:
8
+
9
+ - **Structured Extraction with Zod Schema**: Define exact data structure using Zod schemas
10
+ - **Prompt-based Extraction**: Extract information using custom prompts
11
+ - **Validation and Retries**: Automatic validation against schema with retry logic
12
+
13
+ ## Key Features
14
+
15
+ - **LLM Structured Output Support**: When available, uses the LLM's native structured output capabilities for guaranteed schema compliance
16
+ - **Fallback JSON Parsing**: Automatically falls back to JSON parsing with validation when structured output is unavailable
17
+ - **Schema Validation**: Built-in Zod validation ensures extracted data matches expected structure
18
+ - **Retry Logic**: Configurable retry attempts with error feedback for improved accuracy
19
+ - **Strict and Non-strict Modes**: Choose between validated extraction (strict) or flexible extraction
20
+
21
+ ## Library Tool Integration
22
+
23
+ The extraction functionality is available as a library tool called `minded-extraction` that can be added to your flows through the Minded platform.
24
+
25
+ ### Configuration Options
26
+
27
+ - `content`: The text to extract information from
28
+ - `schema`: Optional Zod-compatible schema defining the structure
29
+ - `systemPrompt`: Custom instructions for extraction
30
+ - `examples`: Input/output examples to guide extraction
31
+ - `strictMode`: Enable/disable schema validation (default: true)
32
+ - `maxRetries`: Number of retry attempts on validation failure (default: 3)
33
+ - `defaultValue`: Fallback value if extraction fails
34
+
35
+ ## How It Works
36
+
37
+ 1. **With Structured Output Support** (when available):
38
+
39
+ - The tool uses the LLM's `withStructuredOutput` method for direct schema-compliant extraction
40
+ - No manual JSON parsing or validation needed
41
+ - Guaranteed to match the provided Zod schema
42
+
43
+ 2. **Fallback Mode** (JSON parsing):
44
+
45
+ - Generates a prompt with schema description
46
+ - Uses JSON output parser to extract structured data
47
+ - Validates against Zod schema
48
+ - Retries with error feedback if validation fails
49
+
50
+ 3. **Non-strict Mode**:
51
+ - Skips validation for more flexible extraction
52
+ - Useful when schema compliance is not critical
53
+
54
+ ## Standalone Usage
55
+
56
+ The extraction utility can also be used programmatically:
57
+
58
+ ```typescript
59
+ import { extract, createExtractor } from '@minded-ai/mindedjs';
60
+ import { z } from 'zod';
61
+
62
+ // Direct extraction
63
+ const result = await extract(
64
+ content,
65
+ {
66
+ schema: z.object({
67
+ name: z.string(),
68
+ age: z.number(),
69
+ }),
70
+ systemPrompt: 'Extract person details',
71
+ },
72
+ agent.llm,
73
+ );
74
+
75
+ // Create reusable extractor
76
+ const extractor = createExtractor(schema, { systemPrompt: 'Extract data' });
77
+ const result = await extractor(content, agent.llm);
78
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minded-ai/mindedjs",
3
- "version": "1.0.134",
3
+ "version": "1.0.136",
4
4
  "description": "MindedJS is a TypeScript library for building agents.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -51,7 +51,6 @@
51
51
  "typescript-eslint": "^8.32.1"
52
52
  },
53
53
  "dependencies": {
54
- "zod": "^3.25.74",
55
54
  "@langchain/core": "^0.3.55",
56
55
  "@langchain/langgraph": "^0.2.72",
57
56
  "@types/js-yaml": "^4.0.9",
@@ -64,6 +63,8 @@
64
63
  "pino-pretty": "^13.0.0",
65
64
  "socket.io-client": "^4.8.1",
66
65
  "uuid": "^11.1.0",
67
- "ws": "^8.15.1"
66
+ "ws": "^8.15.1",
67
+ "zod": "^3.25.74",
68
+ "zod-to-json-schema": "^3.24.6"
68
69
  }
69
- }
70
+ }
package/src/index.ts CHANGED
@@ -88,6 +88,10 @@ export * as toolsLibrary from './toolsLibrary';
88
88
  export { classify, createClassifier, multiClassify } from './toolsLibrary/classifier';
89
89
  export type { ClassDefinition, ClassifierConfig, ClassificationResult } from './toolsLibrary/classifier';
90
90
 
91
+ // Export extraction utilities
92
+ export { extract, createExtractor } from './toolsLibrary/extraction';
93
+ export type { ExtractionSchema, ExtractionConfig, ExtractionResult } from './toolsLibrary/extraction';
94
+
91
95
  // Export event types
92
96
  export { AgentEvents } from './events/AgentEvents';
93
97
  export type { AgentEventRequestPayloads, AgentEventResponsePayloads } from './events/AgentEvents';
@@ -54,7 +54,7 @@ export const addBrowserTaskNode = async ({ graph, node, agent, llm }: AddBrowser
54
54
  const zodSchema = z.object(schemaFields);
55
55
 
56
56
  // Create langchain tool
57
- const tool = langchainTool(() => {}, {
57
+ const tool = langchainTool(() => { }, {
58
58
  name: 'browser-task',
59
59
  description: node.prompt,
60
60
  schema: zodSchema,
@@ -90,8 +90,6 @@ export const addBrowserTaskNode = async ({ graph, node, agent, llm }: AddBrowser
90
90
 
91
91
  // Build the full prompt with compiled content
92
92
  const fullPrompt = `
93
- Follow the instructions. Any retrieved data should be printed as string and not saved to a file.
94
-
95
93
  # Task instructions:
96
94
  ${compiledPrompt}
97
95
 
@@ -120,8 +120,8 @@ const connect = async (token: string): Promise<void> => {
120
120
  checkReady();
121
121
  });
122
122
 
123
- socket.on('connect_error', () => {
124
- logger.error({ msg: 'Failed to connect to minded platform' });
123
+ socket.on('connect_error', (err) => {
124
+ logger.error({ msg: 'Failed to connect to minded platform', err: err.message });
125
125
  reject(new Error('Failed to connect to minded platform'));
126
126
  });
127
127
 
@@ -0,0 +1,396 @@
1
+ import { z } from 'zod';
2
+ import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ import { Tool } from '../types/Tools.types';
4
+ import { logger } from '../utils/logger';
5
+ import { JsonOutputParser } from '@langchain/core/output_parsers';
6
+ import { SystemMessage } from '@langchain/core/messages';
7
+ import { BaseLanguageModel } from '@langchain/core/language_models/base';
8
+
9
+ // Type guard for checking if LLM supports structured output
10
+ interface StructuredOutputLLM extends BaseLanguageModel {
11
+ withStructuredOutput<T extends z.ZodType>(schema: T): BaseLanguageModel;
12
+ }
13
+
14
+ function supportsStructuredOutput(llm: BaseLanguageModel): llm is StructuredOutputLLM {
15
+ return 'withStructuredOutput' in llm && typeof (llm as any).withStructuredOutput === 'function';
16
+ }
17
+
18
+ // Type definitions for extraction configuration using Zod
19
+ export type ExtractionSchema = z.ZodTypeAny;
20
+
21
+ export interface ExtractionConfig {
22
+ schema: ExtractionSchema;
23
+ systemPrompt?: string;
24
+ examples?: Array<{ input: string; output?: any }>;
25
+ defaultValue?: any;
26
+ maxRetries?: number;
27
+ strictMode?: boolean; // If true, will validate against schema
28
+ }
29
+
30
+ export type ExtractionResult = z.infer<ExtractionSchema>;
31
+
32
+ // Default configuration
33
+ const DEFAULT_CONFIG: Partial<ExtractionConfig> = {
34
+ maxRetries: 3,
35
+ strictMode: true,
36
+ };
37
+
38
+ /**
39
+ * Convert Zod schema to JSON schema format for prompt
40
+ */
41
+ function schemaToJsonFormat(schema: ExtractionSchema): string {
42
+ // Use zod-to-json-schema for robust conversion
43
+ const jsonSchema = zodToJsonSchema(schema, {
44
+ target: 'openApi3',
45
+ $refStrategy: 'none', // Inline all references for simpler prompts
46
+ });
47
+
48
+ // Remove the $schema property for cleaner output
49
+ if (typeof jsonSchema === 'object' && jsonSchema !== null && '$schema' in jsonSchema) {
50
+ delete (jsonSchema as any).$schema;
51
+ }
52
+
53
+ return JSON.stringify(jsonSchema, null, 2);
54
+ }
55
+
56
+ /**
57
+ * Build prompt with schema for JSON parsing mode
58
+ */
59
+ function buildPromptWithSchema(
60
+ basePrompt: string,
61
+ schema: ExtractionSchema,
62
+ examples: Array<{ input: string; output?: any }> | undefined,
63
+ content: string,
64
+ ): string {
65
+ const schemaDescription = schemaToJsonFormat(schema);
66
+ let prompt = `${basePrompt}\n\nExpected JSON format:\n${schemaDescription}\n\n`;
67
+
68
+ // Add examples if provided
69
+ if (examples && examples.length > 0) {
70
+ prompt += 'Examples:\n';
71
+ for (const example of examples) {
72
+ prompt += `Input: ${example.input}\nOutput: ${JSON.stringify(example.output)}\n\n`;
73
+ }
74
+ }
75
+
76
+ prompt += 'Return ONLY valid JSON that matches the schema. No additional text or explanation.\n\n';
77
+ prompt += `Content to extract from:\n${content}`;
78
+
79
+ return prompt;
80
+ }
81
+
82
+ /**
83
+ * Validate extraction result against Zod schema
84
+ */
85
+ function validateResult(result: any, schema: ExtractionSchema): { valid: boolean; errors: string[] } {
86
+ try {
87
+ // Use Zod's built-in validation
88
+ schema.parse(result);
89
+ return { valid: true, errors: [] };
90
+ } catch (error) {
91
+ if (error instanceof z.ZodError) {
92
+ // Extract error messages from Zod validation
93
+ const errors = error.errors.map((err) => {
94
+ const path = err.path.join('.');
95
+ return path ? `${path}: ${err.message}` : err.message;
96
+ });
97
+ return { valid: false, errors };
98
+ }
99
+ // Handle non-Zod errors
100
+ return { valid: false, errors: [error instanceof Error ? error.message : 'Unknown validation error'] };
101
+ }
102
+ }
103
+
104
+ /**
105
+ * Generic extraction utility that can be used standalone
106
+ *
107
+ * When strictMode is true:
108
+ * - If the LLM supports withStructuredOutput, it will use that for guaranteed schema compliance
109
+ * - Otherwise, it falls back to JSON parsing with Zod validation and retries
110
+ *
111
+ * When strictMode is false:
112
+ * - Uses JSON parsing without validation for more flexibility
113
+ *
114
+ * @param content The content to extract from
115
+ * @param config The extraction configuration
116
+ * @param llm The language model to use for extraction
117
+ * @param attemptNumber Current attempt number (used internally for retries)
118
+ * @returns The extraction result
119
+ */
120
+ export async function extract(
121
+ content: string,
122
+ config: ExtractionConfig,
123
+ llm: BaseLanguageModel,
124
+ attemptNumber: number = 0,
125
+ ): Promise<ExtractionResult> {
126
+ const mergedConfig = { ...DEFAULT_CONFIG, ...config };
127
+
128
+ try {
129
+ const basePrompt = mergedConfig.systemPrompt || 'Extract structured information from the given content:';
130
+
131
+ let result: any;
132
+
133
+ if (mergedConfig.strictMode) {
134
+ // Use structured output when strict mode is enabled
135
+ try {
136
+ // Check if the LLM supports structured output
137
+ if (supportsStructuredOutput(llm)) {
138
+ // When using withStructuredOutput, we don't need to include the schema in the prompt
139
+ // The LLM already knows the structure from the withStructuredOutput method
140
+ let prompt = basePrompt;
141
+
142
+ // Add examples if provided (still useful for context)
143
+ if (mergedConfig.examples && mergedConfig.examples.length > 0) {
144
+ prompt += '\n\nExamples:\n';
145
+ for (const example of mergedConfig.examples) {
146
+ prompt += `Input: ${example.input}\nOutput: ${JSON.stringify(example.output)}\n\n`;
147
+ }
148
+ }
149
+
150
+ prompt += `\n\nContent to extract from:\n${content}`;
151
+
152
+ const structuredLLM = llm.withStructuredOutput(mergedConfig.schema);
153
+ const messages = [new SystemMessage(prompt)];
154
+ result = await structuredLLM.invoke(messages);
155
+
156
+ // The result should already be validated by withStructuredOutput
157
+ return result as ExtractionResult;
158
+ } else {
159
+ // Fallback to JSON parser with validation if withStructuredOutput is not available
160
+ logger.info({
161
+ message: 'LLM does not support withStructuredOutput, falling back to JSON parser with validation',
162
+ });
163
+
164
+ // For JSON parsing mode, we need to include the schema in the prompt
165
+ const prompt = buildPromptWithSchema(basePrompt, mergedConfig.schema, mergedConfig.examples, content);
166
+
167
+ const parser = new JsonOutputParser();
168
+ const messages = [new SystemMessage(prompt)];
169
+ result = await llm.pipe(parser).invoke(messages);
170
+
171
+ // Validate the result
172
+ const validation = validateResult(result, mergedConfig.schema);
173
+
174
+ if (!validation.valid && attemptNumber < (mergedConfig.maxRetries || 3)) {
175
+ logger.warn({
176
+ message: 'Extraction validation failed, retrying',
177
+ errors: validation.errors,
178
+ attempt: attemptNumber + 1,
179
+ });
180
+
181
+ // Add validation errors to prompt for retry
182
+ const retryConfig = {
183
+ ...config,
184
+ systemPrompt: `${basePrompt}\n\nPrevious attempt had these errors:\n${validation.errors.join(
185
+ '\n',
186
+ )}\n\nPlease correct these issues and provide valid JSON.`,
187
+ };
188
+
189
+ return extract(content, retryConfig, llm, attemptNumber + 1);
190
+ } else if (!validation.valid) {
191
+ logger.error({
192
+ message: 'Extraction validation failed after max retries',
193
+ errors: validation.errors,
194
+ });
195
+
196
+ if (mergedConfig.defaultValue) {
197
+ return mergedConfig.defaultValue;
198
+ }
199
+
200
+ throw new Error(`Extraction validation failed: ${validation.errors.join(', ')}`);
201
+ }
202
+ }
203
+ } catch (err) {
204
+ // If structured output fails, retry with adjusted config
205
+ if (attemptNumber < (mergedConfig.maxRetries || 3)) {
206
+ logger.warn({
207
+ message: 'Structured output failed, retrying',
208
+ error: err instanceof Error ? err.message : 'Unknown error',
209
+ attempt: attemptNumber + 1,
210
+ });
211
+
212
+ return extract(content, config, llm, attemptNumber + 1);
213
+ } else {
214
+ throw err;
215
+ }
216
+ }
217
+ } else {
218
+ // Non-strict mode: use JSON parser without validation
219
+ const prompt = buildPromptWithSchema(basePrompt, mergedConfig.schema, mergedConfig.examples, content);
220
+
221
+ const parser = new JsonOutputParser();
222
+ const messages = [new SystemMessage(prompt)];
223
+ result = await llm.pipe(parser).invoke(messages);
224
+ }
225
+
226
+ return result as ExtractionResult;
227
+ } catch (err) {
228
+ logger.error({ message: 'Extraction failed', err });
229
+
230
+ if (mergedConfig.defaultValue) {
231
+ return mergedConfig.defaultValue;
232
+ }
233
+
234
+ throw err;
235
+ }
236
+ }
237
+
238
+ /**
239
+ * Create a simple extractor for common use cases
240
+ * @param schemaOrPrompt Either a Zod schema or a simple prompt string
241
+ * @param options Additional configuration options
242
+ * @returns A configured extract function
243
+ */
244
+ export function createExtractor(schemaOrPrompt: ExtractionSchema | string, options?: Partial<ExtractionConfig>) {
245
+ let config: ExtractionConfig;
246
+
247
+ if (typeof schemaOrPrompt === 'string') {
248
+ // Simple prompt-based extraction - create a Zod schema for a single string result
249
+ config = {
250
+ schema: z.object({
251
+ result: z.string().describe('The extracted result'),
252
+ }),
253
+ systemPrompt: schemaOrPrompt,
254
+ ...options,
255
+ };
256
+ } else {
257
+ // Schema-based extraction
258
+ config = {
259
+ schema: schemaOrPrompt,
260
+ ...options,
261
+ };
262
+ }
263
+
264
+ return (content: string, llm: BaseLanguageModel) => extract(content, config, llm);
265
+ }
266
+
267
+ // Schema for the extraction tool
268
+ export const schema = z.object({
269
+ content: z.string().describe('The content to extract information from'),
270
+ schema: z.record(z.any()).optional().describe('Extraction schema defining the structure of data to extract'),
271
+ systemPrompt: z.string().optional().describe('Custom system prompt for extraction'),
272
+ examples: z
273
+ .array(
274
+ z.object({
275
+ input: z.string(),
276
+ output: z.any(),
277
+ }),
278
+ )
279
+ .optional()
280
+ .describe('Examples to guide the extraction'),
281
+ strictMode: z.boolean().optional().default(true).describe('Whether to validate the extraction against the schema'),
282
+ maxRetries: z.number().optional().default(3).describe('Maximum number of retries if validation fails'),
283
+ defaultValue: z.any().optional().describe('Default value to return if extraction fails'),
284
+ });
285
+
286
+ const extractionTool: Tool<typeof schema, any> = {
287
+ name: 'minded-extraction',
288
+ description:
289
+ 'Extract structured data from unstructured text using AI. Supports custom Zod schemas, validation, examples, and retries. When strictMode is enabled, uses LLM structured output (if available) for guaranteed schema compliance. Perfect for extracting specific information like country codes, emails, dates, or any custom data structure.',
290
+ input: schema,
291
+ isGlobal: false,
292
+ execute: async ({ input, state, agent }) => {
293
+ const { content, schema: inputSchema, systemPrompt, examples, strictMode, maxRetries, defaultValue } = input;
294
+
295
+ logger.info({
296
+ message: 'Extracting structured data',
297
+ sessionId: state.sessionId,
298
+ contentLength: content.length,
299
+ hasSchema: !!inputSchema,
300
+ });
301
+
302
+ // Convert input schema to Zod schema if provided
303
+ let extractionSchema: ExtractionSchema;
304
+ if (inputSchema) {
305
+ // Build a Zod schema from the input schema object
306
+ const zodShape: Record<string, z.ZodType> = {};
307
+
308
+ for (const [key, value] of Object.entries(inputSchema)) {
309
+ if (typeof value === 'object' && value !== null) {
310
+ const fieldConfig = value as any;
311
+ let zodType: z.ZodType;
312
+
313
+ // Create appropriate Zod type based on the field configuration
314
+ if (fieldConfig.type === 'string') {
315
+ zodType = z.string();
316
+ } else if (fieldConfig.type === 'number') {
317
+ zodType = z.number();
318
+ } else if (fieldConfig.type === 'boolean') {
319
+ zodType = z.boolean();
320
+ } else if (fieldConfig.type === 'array') {
321
+ zodType = z.array(z.any());
322
+ } else if (fieldConfig.type === 'object') {
323
+ zodType = z.object({});
324
+ } else {
325
+ // Default to string if type not specified
326
+ zodType = z.string();
327
+ }
328
+
329
+ // Add description if available
330
+ if (fieldConfig.description) {
331
+ zodType = zodType.describe(fieldConfig.description);
332
+ }
333
+
334
+ // Handle optional fields
335
+ if (fieldConfig.required === false) {
336
+ zodType = zodType.optional();
337
+ }
338
+
339
+ zodShape[key] = zodType;
340
+ } else {
341
+ // Default to string for simple values
342
+ zodShape[key] = z.string();
343
+ }
344
+ }
345
+
346
+ extractionSchema = z.object(zodShape);
347
+ } else {
348
+ // Default schema if none provided
349
+ extractionSchema = z.object({
350
+ result: z.string().describe('The extracted result'),
351
+ });
352
+ }
353
+
354
+ const config: ExtractionConfig = {
355
+ schema: extractionSchema,
356
+ systemPrompt,
357
+ examples,
358
+ strictMode,
359
+ maxRetries,
360
+ defaultValue,
361
+ };
362
+
363
+ try {
364
+ const result = await extract(content, config, agent.llm);
365
+
366
+ logger.info({
367
+ message: 'Extraction completed',
368
+ sessionId: state.sessionId,
369
+ resultKeys: Object.keys(result),
370
+ });
371
+
372
+ return {
373
+ result,
374
+ state: {
375
+ memory: {
376
+ lastExtraction: {
377
+ content: content.substring(0, 100) + (content.length > 100 ? '...' : ''),
378
+ result,
379
+ timestamp: new Date().toISOString(),
380
+ },
381
+ },
382
+ },
383
+ };
384
+ } catch (err) {
385
+ logger.error({
386
+ message: 'Extraction failed',
387
+ sessionId: state.sessionId,
388
+ err,
389
+ });
390
+
391
+ throw err;
392
+ }
393
+ },
394
+ };
395
+
396
+ export default extractionTool;
@@ -1,8 +1,10 @@
1
1
  import * as parseDocument from './parseDocument';
2
2
  import * as classifier from './classifier';
3
+ import * as extraction from './extraction';
3
4
 
4
5
  // Export all tools as a collection for easy discovery
5
6
  export const tools = {
6
7
  'minded-parse-documents': parseDocument,
7
8
  'minded-classifier': classifier,
9
+ 'minded-extraction': extraction,
8
10
  };