@actuate-media/plugin-ai 0.0.11 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/LICENSE +21 -21
  2. package/dist/__tests__/content-generator.test.d.ts +2 -0
  3. package/dist/__tests__/content-generator.test.d.ts.map +1 -0
  4. package/dist/__tests__/content-generator.test.js +200 -0
  5. package/dist/__tests__/content-generator.test.js.map +1 -0
  6. package/dist/__tests__/index.test.js.map +1 -1
  7. package/dist/admin/AIScorePanel.d.ts +1 -1
  8. package/dist/admin/AIScorePanel.d.ts.map +1 -1
  9. package/dist/admin/AIScorePanel.js +34 -17
  10. package/dist/admin/AIScorePanel.js.map +1 -1
  11. package/dist/admin/BrandVoiceSettings.d.ts +2 -2
  12. package/dist/admin/BrandVoiceSettings.d.ts.map +1 -1
  13. package/dist/admin/BrandVoiceSettings.js +123 -34
  14. package/dist/admin/BrandVoiceSettings.js.map +1 -1
  15. package/dist/admin/ContentScoreDashboard.d.ts +1 -1
  16. package/dist/admin/ContentScoreDashboard.d.ts.map +1 -1
  17. package/dist/admin/ContentScoreDashboard.js +50 -16
  18. package/dist/admin/ContentScoreDashboard.js.map +1 -1
  19. package/dist/admin/WritingAssistantToolbar.d.ts.map +1 -1
  20. package/dist/admin/WritingAssistantToolbar.js +21 -21
  21. package/dist/admin/WritingAssistantToolbar.js.map +1 -1
  22. package/dist/brand/consistency-checker.d.ts +3 -3
  23. package/dist/brand/consistency-checker.d.ts.map +1 -1
  24. package/dist/brand/consistency-checker.js +7 -7
  25. package/dist/brand/consistency-checker.js.map +1 -1
  26. package/dist/brand/profile-builder.d.ts +2 -2
  27. package/dist/brand/profile-builder.d.ts.map +1 -1
  28. package/dist/brand/profile-builder.js +20 -19
  29. package/dist/brand/profile-builder.js.map +1 -1
  30. package/dist/brand/voice-profile.d.ts +4 -4
  31. package/dist/brand/voice-profile.d.ts.map +1 -1
  32. package/dist/collections.d.ts +1 -1
  33. package/dist/collections.d.ts.map +1 -1
  34. package/dist/collections.js.map +1 -1
  35. package/dist/fields.d.ts +1 -1
  36. package/dist/fields.d.ts.map +1 -1
  37. package/dist/fields.js.map +1 -1
  38. package/dist/hooks.d.ts.map +1 -1
  39. package/dist/hooks.js +16 -14
  40. package/dist/hooks.js.map +1 -1
  41. package/dist/index.d.ts +33 -29
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +36 -34
  44. package/dist/index.js.map +1 -1
  45. package/dist/links/smart-links.d.ts.map +1 -1
  46. package/dist/links/smart-links.js +2 -2
  47. package/dist/links/smart-links.js.map +1 -1
  48. package/dist/media/alt-text-generator.d.ts +2 -2
  49. package/dist/media/alt-text-generator.d.ts.map +1 -1
  50. package/dist/media/alt-text-generator.js +14 -9
  51. package/dist/media/alt-text-generator.js.map +1 -1
  52. package/dist/media/auto-tagger.d.ts +1 -1
  53. package/dist/media/auto-tagger.d.ts.map +1 -1
  54. package/dist/media/auto-tagger.js +8 -5
  55. package/dist/media/auto-tagger.js.map +1 -1
  56. package/dist/page-builder/generate.d.ts +23 -0
  57. package/dist/page-builder/generate.d.ts.map +1 -0
  58. package/dist/page-builder/generate.js +422 -0
  59. package/dist/page-builder/generate.js.map +1 -0
  60. package/dist/page-builder/index.d.ts +3 -0
  61. package/dist/page-builder/index.d.ts.map +1 -0
  62. package/dist/page-builder/index.js +2 -0
  63. package/dist/page-builder/index.js.map +1 -0
  64. package/dist/providers/anthropic.d.ts +1 -1
  65. package/dist/providers/anthropic.d.ts.map +1 -1
  66. package/dist/providers/anthropic.js +32 -32
  67. package/dist/providers/anthropic.js.map +1 -1
  68. package/dist/providers/index.d.ts +1 -1
  69. package/dist/providers/index.d.ts.map +1 -1
  70. package/dist/providers/index.js +6 -6
  71. package/dist/providers/index.js.map +1 -1
  72. package/dist/providers/openai.d.ts +1 -1
  73. package/dist/providers/openai.d.ts.map +1 -1
  74. package/dist/providers/openai.js +24 -24
  75. package/dist/providers/openai.js.map +1 -1
  76. package/dist/scoring/accessibility.d.ts +1 -1
  77. package/dist/scoring/accessibility.d.ts.map +1 -1
  78. package/dist/scoring/accessibility.js +22 -22
  79. package/dist/scoring/accessibility.js.map +1 -1
  80. package/dist/scoring/brand-alignment.d.ts +1 -1
  81. package/dist/scoring/brand-alignment.d.ts.map +1 -1
  82. package/dist/scoring/brand-alignment.js +14 -12
  83. package/dist/scoring/brand-alignment.js.map +1 -1
  84. package/dist/scoring/composite.d.ts +1 -1
  85. package/dist/scoring/composite.d.ts.map +1 -1
  86. package/dist/scoring/composite.js +5 -5
  87. package/dist/scoring/composite.js.map +1 -1
  88. package/dist/scoring/freshness.d.ts +1 -1
  89. package/dist/scoring/freshness.d.ts.map +1 -1
  90. package/dist/scoring/freshness.js +5 -7
  91. package/dist/scoring/freshness.js.map +1 -1
  92. package/dist/scoring/readability.d.ts +1 -1
  93. package/dist/scoring/readability.d.ts.map +1 -1
  94. package/dist/scoring/readability.js +8 -8
  95. package/dist/scoring/readability.js.map +1 -1
  96. package/dist/scoring/seo-score.d.ts.map +1 -1
  97. package/dist/scoring/seo-score.js +82 -16
  98. package/dist/scoring/seo-score.js.map +1 -1
  99. package/dist/search/clustering.d.ts +1 -1
  100. package/dist/search/clustering.d.ts.map +1 -1
  101. package/dist/search/clustering.js +7 -9
  102. package/dist/search/clustering.js.map +1 -1
  103. package/dist/search/embeddings.d.ts +1 -1
  104. package/dist/search/embeddings.d.ts.map +1 -1
  105. package/dist/search/embeddings.js +3 -3
  106. package/dist/search/embeddings.js.map +1 -1
  107. package/dist/search/semantic-search.d.ts +1 -1
  108. package/dist/search/semantic-search.d.ts.map +1 -1
  109. package/dist/search/semantic-search.js +5 -5
  110. package/dist/search/semantic-search.js.map +1 -1
  111. package/dist/translation/translator.d.ts +2 -2
  112. package/dist/translation/translator.d.ts.map +1 -1
  113. package/dist/translation/translator.js +8 -8
  114. package/dist/translation/translator.js.map +1 -1
  115. package/dist/writing/assistant.d.ts +3 -3
  116. package/dist/writing/assistant.d.ts.map +1 -1
  117. package/dist/writing/assistant.js +19 -16
  118. package/dist/writing/assistant.js.map +1 -1
  119. package/dist/writing/content-generator.d.ts +107 -0
  120. package/dist/writing/content-generator.d.ts.map +1 -0
  121. package/dist/writing/content-generator.js +273 -0
  122. package/dist/writing/content-generator.js.map +1 -0
  123. package/dist/writing/inline-suggestions.d.ts +2 -2
  124. package/dist/writing/inline-suggestions.d.ts.map +1 -1
  125. package/dist/writing/inline-suggestions.js +8 -5
  126. package/dist/writing/inline-suggestions.js.map +1 -1
  127. package/dist/writing/meta-generator.d.ts +2 -2
  128. package/dist/writing/meta-generator.d.ts.map +1 -1
  129. package/dist/writing/meta-generator.js +21 -9
  130. package/dist/writing/meta-generator.js.map +1 -1
  131. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/scoring/composite.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/E,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACpC;AAUD,wFAAwF;AACxF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,MAAM,CAAC,CAAC,GACnD,cAAc,CA6BhB"}
1
+ {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/scoring/composite.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9E,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;CACnC;AAUD,wFAAwF;AACxF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,WAAW,EAAE,MAAM,CAAC,CAAC,GACnD,cAAc,CA6BhB"}
@@ -24,15 +24,15 @@ export function calculateCompositeScore(scores, weights) {
24
24
  const overall = totalWeight > 0 ? Math.round(totalWeighted / totalWeight) : 0;
25
25
  let grade;
26
26
  if (overall >= 90)
27
- grade = "A";
27
+ grade = 'A';
28
28
  else if (overall >= 80)
29
- grade = "B";
29
+ grade = 'B';
30
30
  else if (overall >= 70)
31
- grade = "C";
31
+ grade = 'C';
32
32
  else if (overall >= 60)
33
- grade = "D";
33
+ grade = 'D';
34
34
  else
35
- grade = "F";
35
+ grade = 'F';
36
36
  return { overall, breakdown, grade };
37
37
  }
38
38
  //# sourceMappingURL=composite.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/scoring/composite.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAsC;IACzD,WAAW,EAAE,GAAG;IAChB,GAAG,EAAE,IAAI;IACT,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CACrC,MAAmB,EACnB,OAAoD;IAEpD,MAAM,aAAa,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAC;IAEzD,MAAM,SAAS,GAAgC,EAAE,CAAC;IAClD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAElC,MAAM,CAAC,GAAG,GAAwB,CAAC;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;QAEhC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACpD,WAAW,IAAI,MAAM,CAAC;QACtB,aAAa,IAAI,QAAQ,CAAC;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9E,IAAI,KAA8B,CAAC;IACnC,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAC;SAC1B,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAC;SAC/B,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAC;SAC/B,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAC;;QAC/B,KAAK,GAAG,GAAG,CAAC;IAEjB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/scoring/composite.ts"],"names":[],"mappings":"AAcA,MAAM,eAAe,GAAsC;IACzD,WAAW,EAAE,GAAG;IAChB,GAAG,EAAE,IAAI;IACT,cAAc,EAAE,GAAG;IACnB,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CACrC,MAAmB,EACnB,OAAoD;IAEpD,MAAM,aAAa,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,EAAE,CAAA;IAExD,MAAM,SAAS,GAAgC,EAAE,CAAA;IACjD,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,IAAI,aAAa,GAAG,CAAC,CAAA;IAErB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAQ;QAEjC,MAAM,CAAC,GAAG,GAAwB,CAAA;QAClC,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAA;QAE/B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;QACnD,WAAW,IAAI,MAAM,CAAA;QACrB,aAAa,IAAI,QAAQ,CAAA;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7E,IAAI,KAA8B,CAAA;IAClC,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAA;SACzB,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAA;SAC9B,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAA;SAC9B,IAAI,OAAO,IAAI,EAAE;QAAE,KAAK,GAAG,GAAG,CAAA;;QAC9B,KAAK,GAAG,GAAG,CAAA;IAEhB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;AACtC,CAAC"}
@@ -8,7 +8,7 @@ export interface FreshnessResult {
8
8
  score: number;
9
9
  decayRate: number;
10
10
  daysOld: number;
11
- recommendation: "current" | "review" | "stale" | "outdated";
11
+ recommendation: 'current' | 'review' | 'stale' | 'outdated';
12
12
  }
13
13
  /** Calculates a freshness score using exponential decay based on content age. */
14
14
  export declare function calculateFreshnessScore(options: FreshnessOptions): FreshnessResult;
@@ -1 +1 @@
1
- {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../src/scoring/freshness.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,IAAI,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;CAC7D;AAUD,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CA2BlF"}
1
+ {"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../../src/scoring/freshness.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAA;CAC5D;AAUD,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAyBlF"}
@@ -7,9 +7,7 @@ const DEFAULT_LIFESPANS = {
7
7
  };
8
8
  /** Calculates a freshness score using exponential decay based on content age. */
9
9
  export function calculateFreshnessScore(options) {
10
- const lifespanDays = options.averageLifespanDays
11
- ?? DEFAULT_LIFESPANS[options.contentType]
12
- ?? 365;
10
+ const lifespanDays = options.averageLifespanDays ?? DEFAULT_LIFESPANS[options.contentType] ?? 365;
13
11
  const referenceDate = options.updatedAt ?? options.publishedAt;
14
12
  const now = new Date();
15
13
  const msPerDay = 1000 * 60 * 60 * 24;
@@ -20,13 +18,13 @@ export function calculateFreshnessScore(options) {
20
18
  const clampedScore = Math.max(0, Math.min(100, score));
21
19
  let recommendation;
22
20
  if (clampedScore >= 75)
23
- recommendation = "current";
21
+ recommendation = 'current';
24
22
  else if (clampedScore >= 50)
25
- recommendation = "review";
23
+ recommendation = 'review';
26
24
  else if (clampedScore >= 25)
27
- recommendation = "stale";
25
+ recommendation = 'stale';
28
26
  else
29
- recommendation = "outdated";
27
+ recommendation = 'outdated';
30
28
  return {
31
29
  score: clampedScore,
32
30
  decayRate: Math.round(decayRate * 10000) / 10000,
@@ -1 +1 @@
1
- {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/scoring/freshness.ts"],"names":[],"mappings":"AAcA,MAAM,iBAAiB,GAA2B;IAChD,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,OAAyB;IAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB;WAC3C,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC;WACtC,GAAG,CAAC;IAET,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;IAElF,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAEvD,IAAI,cAAiD,CAAC;IACtD,IAAI,YAAY,IAAI,EAAE;QAAE,cAAc,GAAG,SAAS,CAAC;SAC9C,IAAI,YAAY,IAAI,EAAE;QAAE,cAAc,GAAG,QAAQ,CAAC;SAClD,IAAI,YAAY,IAAI,EAAE;QAAE,cAAc,GAAG,OAAO,CAAC;;QACjD,cAAc,GAAG,UAAU,CAAC;IAEjC,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK;QAChD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"freshness.js","sourceRoot":"","sources":["../../src/scoring/freshness.ts"],"names":[],"mappings":"AAcA,MAAM,iBAAiB,GAA2B;IAChD,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,IAAI;CAChB,CAAA;AAED,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,OAAyB;IAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB,IAAI,iBAAiB,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,GAAG,CAAA;IAEjG,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,WAAW,CAAA;IAC9D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IACtB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;IACpC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAA;IAEjF,MAAM,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAA;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAA;IACrC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,CAAA;IAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IAEtD,IAAI,cAAiD,CAAA;IACrD,IAAI,YAAY,IAAI,EAAE;QAAE,cAAc,GAAG,SAAS,CAAA;SAC7C,IAAI,YAAY,IAAI,EAAE;QAAE,cAAc,GAAG,QAAQ,CAAA;SACjD,IAAI,YAAY,IAAI,EAAE;QAAE,cAAc,GAAG,OAAO,CAAA;;QAChD,cAAc,GAAG,UAAU,CAAA;IAEhC,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK;QAChD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,cAAc;KACf,CAAA;AACH,CAAC"}
@@ -3,7 +3,7 @@ export interface ReadabilityResult {
3
3
  gunningFog: number;
4
4
  smog: number;
5
5
  averageGradeLevel: number;
6
- difficulty: "easy" | "moderate" | "difficult" | "expert";
6
+ difficulty: 'easy' | 'moderate' | 'difficult' | 'expert';
7
7
  }
8
8
  /** Calculates the Flesch-Kincaid grade level for the given text. */
9
9
  export declare function calculateFleschKincaid(text: string): number;
@@ -1 +1 @@
1
- {"version":3,"file":"readability.d.ts","sourceRoot":"","sources":["../../src/scoring/readability.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC1D;AAmCD,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY3D;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlD;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAanE"}
1
+ {"version":3,"file":"readability.d.ts","sourceRoot":"","sources":["../../src/scoring/readability.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAA;CACzD;AAmCD,oEAAoE;AACpE,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAY3D;AAED,2DAA2D;AAC3D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlD;AAED,sEAAsE;AACtE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAanE"}
@@ -7,11 +7,11 @@ function countWords(text) {
7
7
  return matches.length;
8
8
  }
9
9
  function countSyllables(word) {
10
- const cleaned = word.toLowerCase().replace(/[^a-z]/g, "");
10
+ const cleaned = word.toLowerCase().replace(/[^a-z]/g, '');
11
11
  if (cleaned.length <= 3)
12
12
  return 1;
13
13
  let count = 0;
14
- const vowels = "aeiouy";
14
+ const vowels = 'aeiouy';
15
15
  let previousWasVowel = false;
16
16
  for (const char of cleaned) {
17
17
  const isVowel = vowels.includes(char);
@@ -19,7 +19,7 @@ function countSyllables(word) {
19
19
  count++;
20
20
  previousWasVowel = isVowel;
21
21
  }
22
- if (cleaned.endsWith("e") && count > 1)
22
+ if (cleaned.endsWith('e') && count > 1)
23
23
  count--;
24
24
  return Math.max(count, 1);
25
25
  }
@@ -55,7 +55,7 @@ export function calculateSMOG(text) {
55
55
  const complex = countComplexWords(text);
56
56
  if (sentences === 0)
57
57
  return 0;
58
- return 1.0430 * Math.sqrt(complex * (30 / sentences)) + 3.1291;
58
+ return 1.043 * Math.sqrt(complex * (30 / sentences)) + 3.1291;
59
59
  }
60
60
  /** Returns a comprehensive readability analysis of the given text. */
61
61
  export function getReadabilityScore(text) {
@@ -65,13 +65,13 @@ export function getReadabilityScore(text) {
65
65
  const averageGradeLevel = (fleschKincaid + gunningFog + smog) / 3;
66
66
  let difficulty;
67
67
  if (averageGradeLevel <= 6)
68
- difficulty = "easy";
68
+ difficulty = 'easy';
69
69
  else if (averageGradeLevel <= 10)
70
- difficulty = "moderate";
70
+ difficulty = 'moderate';
71
71
  else if (averageGradeLevel <= 14)
72
- difficulty = "difficult";
72
+ difficulty = 'difficult';
73
73
  else
74
- difficulty = "expert";
74
+ difficulty = 'expert';
75
75
  return { fleschKincaid, gunningFog, smog, averageGradeLevel, difficulty };
76
76
  }
77
77
  //# sourceMappingURL=readability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readability.js","sourceRoot":"","sources":["../../src/scoring/readability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readability.js","sourceRoot":"","sources":["../../src/scoring/readability.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"seo-score.d.ts","sourceRoot":"","sources":["../../src/scoring/seo-score.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CA4DrE"}
1
+ {"version":3,"file":"seo-score.d.ts","sourceRoot":"","sources":["../../src/scoring/seo-score.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,KAAK,CAAC;QACf,SAAS,EAAE,MAAM,CAAA;QACjB,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,CAAC,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;CACH;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CAkIrE"}
@@ -4,49 +4,115 @@ export function calculateSEOScore(content) {
4
4
  const titleLen = content.title.length;
5
5
  const titleScore = titleLen >= 30 && titleLen <= 60 ? 15 : titleLen > 0 ? 8 : 0;
6
6
  breakdown.push({
7
- criterion: "Title length",
7
+ criterion: 'Title length',
8
8
  score: titleScore,
9
9
  maxScore: 15,
10
- suggestion: titleLen < 30 ? "Title is too short — aim for 30-60 characters" : titleLen > 60 ? "Title is too long — keep under 60 characters" : undefined,
10
+ suggestion: titleLen < 30
11
+ ? 'Title is too short — aim for 30-60 characters'
12
+ : titleLen > 60
13
+ ? 'Title is too long — keep under 60 characters'
14
+ : undefined,
11
15
  });
12
16
  const metaLen = content.metaDescription.length;
13
17
  const metaScore = metaLen >= 120 && metaLen <= 160 ? 10 : metaLen > 0 ? 5 : 0;
14
18
  breakdown.push({
15
- criterion: "Meta description length",
19
+ criterion: 'Meta description length',
16
20
  score: metaScore,
17
21
  maxScore: 10,
18
- suggestion: metaLen < 120 ? "Meta description should be 120-160 characters" : metaLen > 160 ? "Meta description is too long" : undefined,
22
+ suggestion: metaLen < 120
23
+ ? 'Meta description should be 120-160 characters'
24
+ : metaLen > 160
25
+ ? 'Meta description is too long'
26
+ : undefined,
19
27
  });
20
28
  if (content.targetKeyword) {
21
29
  const kw = content.targetKeyword.toLowerCase();
22
30
  const titleHasKw = content.title.toLowerCase().includes(kw) ? 10 : 0;
23
- breakdown.push({ criterion: "Keyword in title", score: titleHasKw, maxScore: 10, suggestion: titleHasKw === 0 ? "Include target keyword in your title" : undefined });
24
- const bodyKwCount = (content.body.toLowerCase().match(new RegExp(kw, "g")) || []).length;
31
+ breakdown.push({
32
+ criterion: 'Keyword in title',
33
+ score: titleHasKw,
34
+ maxScore: 10,
35
+ suggestion: titleHasKw === 0 ? 'Include target keyword in your title' : undefined,
36
+ });
37
+ const bodyKwCount = (content.body.toLowerCase().match(new RegExp(kw, 'g')) || []).length;
25
38
  const bodyWordCount = content.body.split(/\s+/).length;
26
39
  const density = bodyWordCount > 0 ? (bodyKwCount / bodyWordCount) * 100 : 0;
27
40
  const densityScore = density >= 0.5 && density <= 2.5 ? 10 : bodyKwCount > 0 ? 5 : 0;
28
- breakdown.push({ criterion: "Keyword density", score: densityScore, maxScore: 10, suggestion: density < 0.5 ? "Increase keyword usage in body" : density > 2.5 ? "Reduce keyword stuffing" : undefined });
41
+ breakdown.push({
42
+ criterion: 'Keyword density',
43
+ score: densityScore,
44
+ maxScore: 10,
45
+ suggestion: density < 0.5
46
+ ? 'Increase keyword usage in body'
47
+ : density > 2.5
48
+ ? 'Reduce keyword stuffing'
49
+ : undefined,
50
+ });
29
51
  const headingHasKw = (content.headings ?? []).some((h) => h.toLowerCase().includes(kw));
30
- breakdown.push({ criterion: "Keyword in headings", score: headingHasKw ? 10 : 0, maxScore: 10, suggestion: headingHasKw ? undefined : "Add target keyword to at least one heading" });
52
+ breakdown.push({
53
+ criterion: 'Keyword in headings',
54
+ score: headingHasKw ? 10 : 0,
55
+ maxScore: 10,
56
+ suggestion: headingHasKw ? undefined : 'Add target keyword to at least one heading',
57
+ });
31
58
  }
32
59
  else {
33
- breakdown.push({ criterion: "Keyword in title", score: 0, maxScore: 10, suggestion: "Set a target keyword" });
34
- breakdown.push({ criterion: "Keyword density", score: 0, maxScore: 10, suggestion: "Set a target keyword" });
35
- breakdown.push({ criterion: "Keyword in headings", score: 0, maxScore: 10, suggestion: "Set a target keyword" });
60
+ breakdown.push({
61
+ criterion: 'Keyword in title',
62
+ score: 0,
63
+ maxScore: 10,
64
+ suggestion: 'Set a target keyword',
65
+ });
66
+ breakdown.push({
67
+ criterion: 'Keyword density',
68
+ score: 0,
69
+ maxScore: 10,
70
+ suggestion: 'Set a target keyword',
71
+ });
72
+ breakdown.push({
73
+ criterion: 'Keyword in headings',
74
+ score: 0,
75
+ maxScore: 10,
76
+ suggestion: 'Set a target keyword',
77
+ });
36
78
  }
37
79
  const headings = content.headings ?? [];
38
80
  const headingScore = headings.length >= 2 ? 10 : headings.length === 1 ? 5 : 0;
39
- breakdown.push({ criterion: "Heading structure", score: headingScore, maxScore: 10, suggestion: headings.length < 2 ? "Use at least two headings to structure content" : undefined });
81
+ breakdown.push({
82
+ criterion: 'Heading structure',
83
+ score: headingScore,
84
+ maxScore: 10,
85
+ suggestion: headings.length < 2 ? 'Use at least two headings to structure content' : undefined,
86
+ });
40
87
  const images = content.images ?? [];
41
88
  const imagesWithAlt = images.filter((img) => img.alt && img.alt.trim().length > 0).length;
42
- const altScore = images.length === 0 ? 5 : images.length === imagesWithAlt ? 10 : Math.round((imagesWithAlt / images.length) * 10);
43
- breakdown.push({ criterion: "Image alt texts", score: altScore, maxScore: 10, suggestion: imagesWithAlt < images.length ? "Add alt text to all images" : undefined });
89
+ const altScore = images.length === 0
90
+ ? 5
91
+ : images.length === imagesWithAlt
92
+ ? 10
93
+ : Math.round((imagesWithAlt / images.length) * 10);
94
+ breakdown.push({
95
+ criterion: 'Image alt texts',
96
+ score: altScore,
97
+ maxScore: 10,
98
+ suggestion: imagesWithAlt < images.length ? 'Add alt text to all images' : undefined,
99
+ });
44
100
  const linkCount = (content.internalLinks?.length ?? 0) + (content.externalLinks?.length ?? 0);
45
101
  const linkScore = linkCount >= 3 ? 10 : linkCount >= 1 ? 5 : 0;
46
- breakdown.push({ criterion: "Link count", score: linkScore, maxScore: 10, suggestion: linkCount < 3 ? "Add more internal and external links" : undefined });
102
+ breakdown.push({
103
+ criterion: 'Link count',
104
+ score: linkScore,
105
+ maxScore: 10,
106
+ suggestion: linkCount < 3 ? 'Add more internal and external links' : undefined,
107
+ });
47
108
  const wordCount = content.body.split(/\s+/).filter(Boolean).length;
48
109
  const lengthScore = wordCount >= 300 ? 15 : wordCount >= 150 ? 8 : wordCount > 0 ? 3 : 0;
49
- breakdown.push({ criterion: "Content length", score: lengthScore, maxScore: 15, suggestion: wordCount < 300 ? "Aim for at least 300 words" : undefined });
110
+ breakdown.push({
111
+ criterion: 'Content length',
112
+ score: lengthScore,
113
+ maxScore: 15,
114
+ suggestion: wordCount < 300 ? 'Aim for at least 300 words' : undefined,
115
+ });
50
116
  const totalScore = breakdown.reduce((sum, b) => sum + b.score, 0);
51
117
  return { score: totalScore, breakdown };
52
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"seo-score.js","sourceRoot":"","sources":["../../src/scoring/seo-score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seo-score.js","sourceRoot":"","sources":["../../src/scoring/seo-score.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export interface ClusterInput {
6
6
  export interface ClusterOptions {
7
7
  numClusters?: number;
8
8
  minClusterSize?: number;
9
- algorithm?: "kmeans" | "dbscan";
9
+ algorithm?: 'kmeans' | 'dbscan';
10
10
  }
11
11
  export interface ContentCluster {
12
12
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"clustering.d.ts","sourceRoot":"","sources":["../../src/search/clustering.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,mFAAmF;AACnF,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB3B"}
1
+ {"version":3,"file":"clustering.d.ts","sourceRoot":"","sources":["../../src/search/clustering.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,mFAAmF;AACnF,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,cAAc,EAAE,CAAC,CAwB3B"}
@@ -1,30 +1,28 @@
1
1
  /** Clusters content items by semantic similarity using the specified algorithm. */
2
2
  export async function clusterContent(items, options) {
3
- const algorithm = options?.algorithm ?? "kmeans";
3
+ const algorithm = options?.algorithm ?? 'kmeans';
4
4
  const numClusters = options?.numClusters ?? Math.max(2, Math.floor(Math.sqrt(items.length)));
5
5
  const minClusterSize = options?.minClusterSize ?? 2;
6
6
  const embeddedItems = items.filter((item) => item.embedding && item.embedding.length > 0);
7
7
  if (embeddedItems.length < minClusterSize) {
8
8
  return [
9
9
  {
10
- id: "cluster-0",
11
- label: "All Content",
10
+ id: 'cluster-0',
11
+ label: 'All Content',
12
12
  items,
13
13
  centroid: [],
14
14
  coherence: 1.0,
15
15
  },
16
16
  ];
17
17
  }
18
- if (algorithm === "kmeans") {
18
+ if (algorithm === 'kmeans') {
19
19
  return kMeansClustering(embeddedItems, numClusters);
20
20
  }
21
21
  return dbscanClustering(embeddedItems, minClusterSize);
22
22
  }
23
23
  function kMeansClustering(items, k) {
24
24
  const dimensions = items[0].embedding.length;
25
- const centroids = items
26
- .slice(0, k)
27
- .map((item) => [...item.embedding]);
25
+ const centroids = items.slice(0, k).map((item) => [...item.embedding]);
28
26
  const assignments = new Array(items.length).fill(0);
29
27
  for (let iteration = 0; iteration < 20; iteration++) {
30
28
  for (let i = 0; i < items.length; i++) {
@@ -65,8 +63,8 @@ function dbscanClustering(items, minSize) {
65
63
  void minSize;
66
64
  return [
67
65
  {
68
- id: "cluster-0",
69
- label: "DBSCAN Cluster",
66
+ id: 'cluster-0',
67
+ label: 'DBSCAN Cluster',
70
68
  items,
71
69
  centroid: items[0].embedding ?? [],
72
70
  coherence: 0.5,
@@ -1 +1 @@
1
- {"version":3,"file":"clustering.js","sourceRoot":"","sources":["../../src/search/clustering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clustering.js","sourceRoot":"","sources":["../../src/search/clustering.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AIProvider } from "../providers/index.js";
1
+ import type { AIProvider } from '../providers/index.js';
2
2
  export interface EmbeddingResult {
3
3
  vector: number[];
4
4
  dimensions: number;
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/search/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,uDAAuD;AACvD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,wDAAwD;AACxD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAM5B;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAoBjE"}
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/search/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,uDAAuD;AACvD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,eAAe,CAAC,CAc1B;AAED,wDAAwD;AACxD,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EAAE,EACf,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,eAAe,EAAE,CAAC,CAM5B;AAED,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAoBjE"}
@@ -1,21 +1,21 @@
1
1
  /** Generates a vector embedding for the given text. */
2
2
  export async function generateEmbedding(text, provider) {
3
3
  if (!provider) {
4
- throw new Error("Embedding generation requires an AI provider");
4
+ throw new Error('Embedding generation requires an AI provider');
5
5
  }
6
6
  const vector = await provider.generateEmbedding(text);
7
7
  const tokenCount = Math.ceil(text.split(/\s+/).length * 1.3);
8
8
  return {
9
9
  vector,
10
10
  dimensions: vector.length,
11
- model: "provider-default",
11
+ model: 'provider-default',
12
12
  tokenCount,
13
13
  };
14
14
  }
15
15
  /** Generates embeddings for multiple texts in batch. */
16
16
  export async function generateBatchEmbeddings(texts, provider) {
17
17
  if (!provider) {
18
- throw new Error("Embedding generation requires an AI provider");
18
+ throw new Error('Embedding generation requires an AI provider');
19
19
  }
20
20
  return Promise.all(texts.map((text) => generateEmbedding(text, provider)));
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/search/embeddings.ts"],"names":[],"mappings":"AASA,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,QAAqB;IAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;IAE7D,OAAO;QACL,MAAM;QACN,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,kBAAkB;QACzB,UAAU;KACX,CAAC;AACJ,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAe,EACf,QAAqB;IAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE7B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAC5B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAC5B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;IAC9B,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChE,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE9B,OAAO,UAAU,GAAG,SAAS,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/search/embeddings.ts"],"names":[],"mappings":"AASA,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,IAAY,EACZ,QAAqB;IAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAA;IAE5D,OAAO;QACL,MAAM;QACN,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,KAAK,EAAE,kBAAkB;QACzB,UAAU;KACX,CAAA;AACH,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAe,EACf,QAAqB;IAErB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC5E,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,gBAAgB,CAAC,CAAW,EAAE,CAAW;IACvD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAE5B,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;QAC3B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;QAC3B,UAAU,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC/D,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAE7B,OAAO,UAAU,GAAG,SAAS,CAAA;AAC/B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AIProvider } from "../providers/index.js";
1
+ import type { AIProvider } from '../providers/index.js';
2
2
  export interface SemanticSearchOptions {
3
3
  limit?: number;
4
4
  threshold?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKxD,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA6DjC"}
1
+ {"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAKvD,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAA;QACV,cAAc,EAAE,MAAM,CAAA;QACtB,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,EAAE,MAAM,CAAA;QACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;KACrB,CAAC,CAAA;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA6DjC"}
@@ -1,6 +1,6 @@
1
- import { requireAIProvider } from "../providers/index.js";
2
- import { generateEmbedding } from "./embeddings.js";
3
- import { cosineSimilarity } from "./embeddings.js";
1
+ import { requireAIProvider } from '../providers/index.js';
2
+ import { generateEmbedding } from './embeddings.js';
3
+ import { cosineSimilarity } from './embeddings.js';
4
4
  /**
5
5
  * Performs semantic search across content using vector similarity.
6
6
  *
@@ -53,7 +53,7 @@ export async function semanticSearch(query, options) {
53
53
  // For production use with a vector database (pgvector, Pinecone, etc.),
54
54
  // the embedding would be passed to the vector store's similarity search API.
55
55
  // This requires project-specific setup based on the chosen vector store.
56
- throw new Error("Semantic search requires either a pre-computed corpus (pass options.corpus) " +
57
- "or a vector database integration. See docs for pgvector setup.");
56
+ throw new Error('Semantic search requires either a pre-computed corpus (pass options.corpus) ' +
57
+ 'or a vector database integration. See docs for pgvector setup.');
58
58
  }
59
59
  //# sourceMappingURL=semantic-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { BrandVoiceProfile } from "../brand/voice-profile.js";
2
- import type { AIProvider } from "../providers/index.js";
1
+ import type { BrandVoiceProfile } from '../brand/voice-profile.js';
2
+ import type { AIProvider } from '../providers/index.js';
3
3
  export interface TranslationOptions {
4
4
  sourceLanguage: string;
5
5
  targetLanguage: string;
@@ -1 +1 @@
1
- {"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../../src/translation/translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClE;AAED,4FAA4F;AAC5F,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CA+C5B"}
1
+ {"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../../src/translation/translator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjE;AAED,4FAA4F;AAC5F,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAkD5B"}