@actuate-media/plugin-ai 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) 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 -31
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +36 -35
  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.map +1 -1
  57. package/dist/page-builder/generate.js +106 -87
  58. package/dist/page-builder/generate.js.map +1 -1
  59. package/dist/providers/anthropic.d.ts +1 -1
  60. package/dist/providers/anthropic.d.ts.map +1 -1
  61. package/dist/providers/anthropic.js +32 -32
  62. package/dist/providers/anthropic.js.map +1 -1
  63. package/dist/providers/index.d.ts +1 -1
  64. package/dist/providers/index.d.ts.map +1 -1
  65. package/dist/providers/index.js +6 -6
  66. package/dist/providers/index.js.map +1 -1
  67. package/dist/providers/openai.d.ts +1 -1
  68. package/dist/providers/openai.d.ts.map +1 -1
  69. package/dist/providers/openai.js +24 -24
  70. package/dist/providers/openai.js.map +1 -1
  71. package/dist/scoring/accessibility.d.ts +1 -1
  72. package/dist/scoring/accessibility.d.ts.map +1 -1
  73. package/dist/scoring/accessibility.js +22 -22
  74. package/dist/scoring/accessibility.js.map +1 -1
  75. package/dist/scoring/brand-alignment.d.ts +1 -1
  76. package/dist/scoring/brand-alignment.d.ts.map +1 -1
  77. package/dist/scoring/brand-alignment.js +14 -12
  78. package/dist/scoring/brand-alignment.js.map +1 -1
  79. package/dist/scoring/composite.d.ts +1 -1
  80. package/dist/scoring/composite.d.ts.map +1 -1
  81. package/dist/scoring/composite.js +5 -5
  82. package/dist/scoring/composite.js.map +1 -1
  83. package/dist/scoring/freshness.d.ts +1 -1
  84. package/dist/scoring/freshness.d.ts.map +1 -1
  85. package/dist/scoring/freshness.js +5 -7
  86. package/dist/scoring/freshness.js.map +1 -1
  87. package/dist/scoring/readability.d.ts +1 -1
  88. package/dist/scoring/readability.d.ts.map +1 -1
  89. package/dist/scoring/readability.js +8 -8
  90. package/dist/scoring/readability.js.map +1 -1
  91. package/dist/scoring/seo-score.d.ts.map +1 -1
  92. package/dist/scoring/seo-score.js +82 -16
  93. package/dist/scoring/seo-score.js.map +1 -1
  94. package/dist/search/clustering.d.ts +1 -1
  95. package/dist/search/clustering.d.ts.map +1 -1
  96. package/dist/search/clustering.js +7 -9
  97. package/dist/search/clustering.js.map +1 -1
  98. package/dist/search/embeddings.d.ts +1 -1
  99. package/dist/search/embeddings.d.ts.map +1 -1
  100. package/dist/search/embeddings.js +3 -3
  101. package/dist/search/embeddings.js.map +1 -1
  102. package/dist/search/semantic-search.d.ts +1 -1
  103. package/dist/search/semantic-search.d.ts.map +1 -1
  104. package/dist/search/semantic-search.js +5 -5
  105. package/dist/search/semantic-search.js.map +1 -1
  106. package/dist/translation/translator.d.ts +2 -2
  107. package/dist/translation/translator.d.ts.map +1 -1
  108. package/dist/translation/translator.js +8 -8
  109. package/dist/translation/translator.js.map +1 -1
  110. package/dist/writing/assistant.d.ts +3 -3
  111. package/dist/writing/assistant.d.ts.map +1 -1
  112. package/dist/writing/assistant.js +19 -16
  113. package/dist/writing/assistant.js.map +1 -1
  114. package/dist/writing/content-generator.d.ts +107 -0
  115. package/dist/writing/content-generator.d.ts.map +1 -0
  116. package/dist/writing/content-generator.js +287 -0
  117. package/dist/writing/content-generator.js.map +1 -0
  118. package/dist/writing/inline-suggestions.d.ts +2 -2
  119. package/dist/writing/inline-suggestions.d.ts.map +1 -1
  120. package/dist/writing/inline-suggestions.js +8 -5
  121. package/dist/writing/inline-suggestions.js.map +1 -1
  122. package/dist/writing/meta-generator.d.ts +2 -2
  123. package/dist/writing/meta-generator.d.ts.map +1 -1
  124. package/dist/writing/meta-generator.js +21 -9
  125. package/dist/writing/meta-generator.js.map +1 -1
  126. package/package.json +2 -2
@@ -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":"AAoBA,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAqB,EACrB,OAAwB;IAExB,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,QAAQ,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7F,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1F,IAAI,aAAa,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAC1C,OAAO;YACL;gBACE,EAAE,EAAE,WAAW;gBACf,KAAK,EAAE,aAAa;gBACpB,KAAK;gBACL,QAAQ,EAAE,EAAE;gBACZ,SAAS,EAAE,GAAG;aACf;SACF,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqB,EAAE,CAAS;IACxD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,SAAU,CAAC,MAAM,CAAC;IAC/C,MAAM,SAAS,GAAe,KAAK;SAChC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC;IAEvC,MAAM,WAAW,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5D,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAI,OAAO,GAAG,QAAQ,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,SAAU,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC;gBACpE,IAAI,IAAI,GAAG,OAAO,EAAE,CAAC;oBACnB,OAAO,GAAG,IAAI,CAAC;oBACf,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,SAAS,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAU,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;YAC5F,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAExC,QAAQ,CAAC,IAAI,CAAC;YACZ,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE;YACzB,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAE;YACvB,SAAS,EAAE,kBAAkB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAqB,EAAE,OAAe;IAC9D,KAAK,OAAO,CAAC;IACb,OAAO;QACL;YACE,EAAE,EAAE,WAAW;YACf,KAAK,EAAE,gBAAgB;YACvB,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAE,CAAC,SAAS,IAAI,EAAE;YACnC,SAAS,EAAE,GAAG;SACf;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAW,EAAE,CAAW;IACjD,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAC3B,GAAG,IAAI,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB,EAAE,QAAkB;IACnE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACjC,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAClF,KAAK,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AAC3B,CAAC"}
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"}
@@ -1,4 +1,4 @@
1
- import { requireAIProvider } from "../providers/index.js";
1
+ import { requireAIProvider } from '../providers/index.js';
2
2
  /** Translates content between languages while preserving brand voice and glossary terms. */
3
3
  export async function translateContent(content, options) {
4
4
  const ai = options.provider ?? requireAIProvider();
@@ -11,20 +11,20 @@ export async function translateContent(content, options) {
11
11
  }
12
12
  }
13
13
  const glossaryInstruction = glossaryMatches.length > 0
14
- ? `\n\nGlossary (use these exact translations):\n${glossaryMatches.map((g) => `- "${g.original}" → "${g.translated}"`).join("\n")}`
15
- : "";
14
+ ? `\n\nGlossary (use these exact translations):\n${glossaryMatches.map((g) => `- "${g.original}" → "${g.translated}"`).join('\n')}`
15
+ : '';
16
16
  const brandInstruction = options.brandProfile
17
- ? `\nMaintain a ${options.brandProfile.tone.map((t) => t.dimension).join("/")} tone.`
18
- : "";
17
+ ? `\nMaintain a ${options.brandProfile.tone.map((t) => t.dimension).join('/')} tone.`
18
+ : '';
19
19
  const formatInstruction = options.preserveFormatting !== false
20
- ? "\nPreserve all HTML tags, markdown formatting, and line breaks exactly."
21
- : "";
20
+ ? '\nPreserve all HTML tags, markdown formatting, and line breaks exactly.'
21
+ : '';
22
22
  const prompt = `Translate the following content from ${options.sourceLanguage} to ${options.targetLanguage}.${formatInstruction}${brandInstruction}${glossaryInstruction}
23
23
 
24
24
  Content to translate:
25
25
  ${content}`;
26
26
  const result = await ai.generateText(prompt, {
27
- systemPrompt: "You are a professional translator. Translate accurately while preserving meaning, tone, and formatting. Return only the translated text, no explanations.",
27
+ systemPrompt: 'You are a professional translator. Translate accurately while preserving meaning, tone, and formatting. Return only the translated text, no explanations.',
28
28
  maxTokens: Math.max(2048, Math.ceil(content.length * 1.5)),
29
29
  temperature: 0.3,
30
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"translator.js","sourceRoot":"","sources":["../../src/translation/translator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAoB1D,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,OAA2B;IAE3B,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC;IAEnD,MAAM,eAAe,GAAyC,EAAE,CAAC;IAEjE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC3D,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;QACpD,CAAC,CAAC,iDAAiD,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnI,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY;QAC3C,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;QACrF,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,KAAK,KAAK;QAC5D,CAAC,CAAC,yEAAyE;QAC3E,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,MAAM,GAAG,wCAAwC,OAAO,CAAC,cAAc,OAAO,OAAO,CAAC,cAAc,IAAI,iBAAiB,GAAG,gBAAgB,GAAG,mBAAmB;;;EAGxK,OAAO,EAAE,CAAC;IAEV,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE;QAC3C,YAAY,EAAE,2JAA2J;QACzK,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAC1D,WAAW,EAAE,GAAG;KACjB,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAEjE,OAAO;QACL,UAAU;QACV,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,SAAS;QACT,UAAU,EAAE,IAAI;QAChB,eAAe;KAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"translator.js","sourceRoot":"","sources":["../../src/translation/translator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAoBzD,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,OAA2B;IAE3B,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAA;IAElD,MAAM,eAAe,GAAyC,EAAE,CAAA;IAEhE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC3D,eAAe,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,mBAAmB,GACvB,eAAe,CAAC,MAAM,GAAG,CAAC;QACxB,CAAC,CAAC,iDAAiD,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,QAAQ,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnI,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY;QAC3C,CAAC,CAAC,gBAAgB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ;QACrF,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,iBAAiB,GACrB,OAAO,CAAC,kBAAkB,KAAK,KAAK;QAClC,CAAC,CAAC,yEAAyE;QAC3E,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,MAAM,GAAG,wCAAwC,OAAO,CAAC,cAAc,OAAO,OAAO,CAAC,cAAc,IAAI,iBAAiB,GAAG,gBAAgB,GAAG,mBAAmB;;;EAGxK,OAAO,EAAE,CAAA;IAET,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE;QAC3C,YAAY,EACV,2JAA2J;QAC7J,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAC1D,WAAW,EAAE,GAAG;KACjB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACrC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAA;IAEhE,OAAO;QACL,UAAU;QACV,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,SAAS;QACT,UAAU,EAAE,IAAI;QAChB,eAAe;KAChB,CAAA;AACH,CAAC"}
@@ -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 WritingContext {
4
4
  collectionSlug?: string;
5
5
  existingContent?: string;
@@ -12,7 +12,7 @@ export interface ProofreadResult {
12
12
  changes: Array<{
13
13
  original: string;
14
14
  corrected: string;
15
- type: "grammar" | "spelling" | "style" | "clarity";
15
+ type: 'grammar' | 'spelling' | 'style' | 'clarity';
16
16
  }>;
17
17
  }
18
18
  /** Generates content from a prompt with optional context. */
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.d.ts","sourceRoot":"","sources":["../../src/writing/assistant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;KACpD,CAAC,CAAC;CACJ;AAkCD,6DAA6D;AAC7D,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,iEAAiE;AACjE,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,+EAA+E;AAC/E,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,4DAA4D;AAC5D,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,2EAA2E;AAC3E,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,eAAe,CAAC,CA2B1B"}
1
+ {"version":3,"file":"assistant.d.ts","sourceRoot":"","sources":["../../src/writing/assistant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,UAAU,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAA;KACnD,CAAC,CAAA;CACH;AAkCD,6DAA6D;AAC7D,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxF;AAED,iEAAiE;AACjE,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,+EAA+E;AAC/E,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,EACrB,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,4DAA4D;AAC5D,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,2EAA2E;AAC3E,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CA+B7F"}
@@ -1,11 +1,11 @@
1
- import { requireAIProvider } from "../providers/index.js";
1
+ import { requireAIProvider } from '../providers/index.js';
2
2
  function resolveProvider(context) {
3
3
  return context?.provider ?? requireAIProvider();
4
4
  }
5
5
  function buildSystemPrompt(context) {
6
6
  const parts = [
7
- "You are an expert content writer for a CMS.",
8
- "Do not include passwords, API keys, personal data, or other sensitive information in your output.",
7
+ 'You are an expert content writer for a CMS.',
8
+ 'Do not include passwords, API keys, personal data, or other sensitive information in your output.',
9
9
  ];
10
10
  if (context?.collectionSlug) {
11
11
  parts.push(`Content type: ${context.collectionSlug}.`);
@@ -16,16 +16,16 @@ function buildSystemPrompt(context) {
16
16
  if (context?.brandProfile) {
17
17
  const tone = context.brandProfile.tone
18
18
  .map((t) => `${t.dimension}: ${Math.round(t.value * 100)}%`)
19
- .join(", ");
19
+ .join(', ');
20
20
  parts.push(`Brand tone: ${tone}.`);
21
21
  if (context.brandProfile.vocabulary.preferred.length > 0) {
22
- parts.push(`Preferred terms: ${context.brandProfile.vocabulary.preferred.join(", ")}.`);
22
+ parts.push(`Preferred terms: ${context.brandProfile.vocabulary.preferred.join(', ')}.`);
23
23
  }
24
24
  if (context.brandProfile.vocabulary.avoided.length > 0) {
25
- parts.push(`Avoid these terms: ${context.brandProfile.vocabulary.avoided.join(", ")}.`);
25
+ parts.push(`Avoid these terms: ${context.brandProfile.vocabulary.avoided.join(', ')}.`);
26
26
  }
27
27
  }
28
- return parts.join(" ");
28
+ return parts.join(' ');
29
29
  }
30
30
  /** Generates content from a prompt with optional context. */
31
31
  export async function generate(prompt, context) {
@@ -45,9 +45,9 @@ export async function generate(prompt, context) {
45
45
  /** Expands the given text with additional detail and context. */
46
46
  export async function expand(text, instructions, provider) {
47
47
  const ai = provider ?? requireAIProvider();
48
- const prompt = `Expand the following text with additional detail and context${instructions ? `. Instructions: ${instructions}` : ""}. Maintain the same voice and style.\n\n${text}`;
48
+ const prompt = `Expand the following text with additional detail and context${instructions ? `. Instructions: ${instructions}` : ''}. Maintain the same voice and style.\n\n${text}`;
49
49
  const result = await ai.generateText(prompt, {
50
- systemPrompt: "You are a content writer. Expand the text while maintaining its voice, style, and accuracy.",
50
+ systemPrompt: 'You are a content writer. Expand the text while maintaining its voice, style, and accuracy.',
51
51
  maxTokens: 2048,
52
52
  temperature: 0.7,
53
53
  });
@@ -58,10 +58,10 @@ export async function compress(text, targetLength, provider) {
58
58
  const ai = provider ?? requireAIProvider();
59
59
  const lengthInstruction = targetLength
60
60
  ? `Target approximately ${targetLength} characters.`
61
- : "Make it significantly shorter.";
61
+ : 'Make it significantly shorter.';
62
62
  const prompt = `Compress the following text while preserving all key information. ${lengthInstruction}\n\n${text}`;
63
63
  const result = await ai.generateText(prompt, {
64
- systemPrompt: "You are an editor. Compress text while preserving meaning, key points, and readability.",
64
+ systemPrompt: 'You are an editor. Compress text while preserving meaning, key points, and readability.',
65
65
  maxTokens: 1024,
66
66
  temperature: 0.3,
67
67
  });
@@ -70,10 +70,10 @@ export async function compress(text, targetLength, provider) {
70
70
  /** Rewrites the given text in a different style or tone. */
71
71
  export async function rewrite(text, style, tone, provider) {
72
72
  const ai = provider ?? requireAIProvider();
73
- const modifiers = [style && `style: ${style}`, tone && `tone: ${tone}`].filter(Boolean).join(", ");
74
- const prompt = `Rewrite the following text${modifiers ? ` with ${modifiers}` : " to improve clarity and engagement"}:\n\n${text}`;
73
+ const modifiers = [style && `style: ${style}`, tone && `tone: ${tone}`].filter(Boolean).join(', ');
74
+ const prompt = `Rewrite the following text${modifiers ? ` with ${modifiers}` : ' to improve clarity and engagement'}:\n\n${text}`;
75
75
  const result = await ai.generateText(prompt, {
76
- systemPrompt: "You are a content editor. Rewrite text as requested while preserving the core message.",
76
+ systemPrompt: 'You are a content editor. Rewrite text as requested while preserving the core message.',
77
77
  maxTokens: 2048,
78
78
  temperature: 0.7,
79
79
  });
@@ -91,12 +91,15 @@ Only include actual errors. If the text is correct, return an empty changes arra
91
91
  Text to proofread:
92
92
  ${text}`;
93
93
  const result = await ai.generateText(prompt, {
94
- systemPrompt: "You are a professional proofreader. Return valid JSON only, no markdown formatting.",
94
+ systemPrompt: 'You are a professional proofreader. Return valid JSON only, no markdown formatting.',
95
95
  maxTokens: 2048,
96
96
  temperature: 0.2,
97
97
  });
98
98
  try {
99
- const cleaned = result.text.replace(/```json?\n?/g, "").replace(/```/g, "").trim();
99
+ const cleaned = result.text
100
+ .replace(/```json?\n?/g, '')
101
+ .replace(/```/g, '')
102
+ .trim();
100
103
  const parsed = JSON.parse(cleaned);
101
104
  return {
102
105
  corrected: parsed.corrected ?? text,
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../src/writing/assistant.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../src/writing/assistant.ts"],"names":[],"mappings":"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"}