@astermind/cybernetic-chatbot-client 2.2.18 → 2.2.21

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.
@@ -43,6 +43,10 @@ export declare class CyberneticIntentClassifier {
43
43
  * Extract target from regex match
44
44
  */
45
45
  private extractTarget;
46
+ /**
47
+ * Strip common articles and filler words for better matching
48
+ */
49
+ private stripArticles;
46
50
  /**
47
51
  * Find site map match for target string
48
52
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CyberneticIntentClassifier.d.ts","sourceRoot":"","sources":["../../src/agentic/CyberneticIntentClassifier.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,oBAAoB,EAIpB,WAAW,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACR,mBAAmB,EACnB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAoCzD;;;;;GAKG;AACH,qBAAa,0BAA0B;IACnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAAoC;IAEzD,8CAA8C;IAC9C,OAAO,CAAC,gBAAgB,CAAiC;IAEzD;;;;;;OAMG;gBACS,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAW,EAAE,MAAM,GAAE,MAAW;IAmBzE;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IA6C/C;;OAEG;IACH,OAAO,CAAC,WAAW;IAwLnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4BhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,SAAS,IAAI,WAAW;IAMxB;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IAIrC;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAIzC;;OAEG;IACH,SAAS,IAAI,OAAO;IAMpB;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe1C;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAyCnC;;;;OAIG;IACH,cAAc,IAAI,OAAO;IAQzB;;;;;OAKG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC;;;;OAIG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C;;;;OAIG;IACH,iBAAiB,IAAI,mBAAmB,EAAE;CAO7C"}
1
+ {"version":3,"file":"CyberneticIntentClassifier.d.ts","sourceRoot":"","sources":["../../src/agentic/CyberneticIntentClassifier.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACR,oBAAoB,EAIpB,WAAW,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EACR,mBAAmB,EACnB,aAAa,EAEb,kBAAkB,EAClB,mBAAmB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAoCzD;;;;;GAKG;AACH,qBAAa,0BAA0B;IACnC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,aAAa,CAAoC;IAEzD,8CAA8C;IAC9C,OAAO,CAAC,gBAAgB,CAAiC;IAEzD;;;;;;OAMG;gBACS,MAAM,EAAE,WAAW,EAAE,MAAM,GAAE,MAAW,EAAE,MAAM,GAAE,MAAW;IAmBzE;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;IA6C/C;;OAEG;IACH,OAAO,CAAC,WAAW;IAwLnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA0BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4BhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAgC9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,SAAS,IAAI,WAAW;IAMxB;;;;;OAKG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BrE;;;;OAIG;IACG,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBvD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkC1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAiDlC;;OAEG;IACH,OAAO,CAAC,UAAU;IAelB;;OAEG;IACH,aAAa,IAAI,kBAAkB,EAAE;IAIrC;;OAEG;IACH,gBAAgB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAIzC;;OAEG;IACH,SAAS,IAAI,OAAO;IAMpB;;;;;OAKG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAe1C;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAyCnC;;;;OAIG;IACH,cAAc,IAAI,OAAO;IAQzB;;;;;OAKG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOzC;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC;;;;OAIG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C;;;;OAIG;IACH,iBAAiB,IAAI,mBAAmB,EAAE;CAO7C"}
@@ -3534,22 +3534,35 @@ class CyberneticIntentClassifier {
3534
3534
  }
3535
3535
  return '';
3536
3536
  }
3537
+ /**
3538
+ * Strip common articles and filler words for better matching
3539
+ */
3540
+ stripArticles(text) {
3541
+ return text
3542
+ .replace(/^(the|a|an|my|our|your|this|that)\s+/gi, '')
3543
+ .replace(/\s+(page|section|screen|view)$/gi, '')
3544
+ .trim();
3545
+ }
3537
3546
  /**
3538
3547
  * Find site map match for target string
3539
3548
  */
3540
3549
  findSiteMapMatch(target) {
3541
3550
  const normalizedTarget = target.toLowerCase().replace(/[^a-z0-9\s]/g, '');
3542
- // Exact match
3543
- const exact = this.siteMapIndex.get(normalizedTarget);
3551
+ const strippedTarget = this.stripArticles(normalizedTarget);
3552
+ // Exact match (try both with and without articles)
3553
+ const exact = this.siteMapIndex.get(normalizedTarget) || this.siteMapIndex.get(strippedTarget);
3544
3554
  if (exact) {
3545
3555
  return { entry: exact, similarity: 1.0 };
3546
3556
  }
3547
- // Fuzzy match
3557
+ // Fuzzy match using stripped version for better accuracy
3548
3558
  let bestMatch = null;
3549
3559
  let bestScore = 0;
3550
3560
  for (const [key, entry] of this.siteMapIndex) {
3551
- const score = this.calculateSimilarity(normalizedTarget, key);
3552
- if (score > bestScore && score > 0.6) {
3561
+ // Compare both original and stripped versions, take the better score
3562
+ const score1 = this.calculateSimilarity(normalizedTarget, key);
3563
+ const score2 = this.calculateSimilarity(strippedTarget, key);
3564
+ const score = Math.max(score1, score2);
3565
+ if (score > bestScore && score > 0.5) {
3553
3566
  bestScore = score;
3554
3567
  bestMatch = entry;
3555
3568
  }